PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 3.4.3
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v3.4.3
3.4.3 3.4.2 3.4.1 3.4.0 3.3.9 3.3.8 3.3.7 3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 All 196 releases
convertkit / vendor / wordpress / php-mcp-schema / src / Common / Protocol / DTO / ProgressNotification.php

ProgressNotification.php in Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages 3.4.3, at vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/ProgressNotification.php

99 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace WP\McpSchema\Common\Protocol\DTO;
6
7 use WP\McpSchema\Common\JsonRpc\DTO\JSONRPCNotification;
8 use WP\McpSchema\Common\Protocol\Union\ClientNotificationInterface;
9 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
10 use WP\McpSchema\Server\Lifecycle\Union\ServerNotificationInterface;
11
12 /**
13 * An out-of-band notification used to inform the receiver of a progress update for a long-running request.
14 *
15 * @since 2024-11-05
16 * @last-updated 2025-11-25 (modified property: params)
17 *
18 * @mcp-domain Common
19 * @mcp-subdomain Protocol
20 * @mcp-version 2025-11-25
21 */
22 class ProgressNotification extends JSONRPCNotification implements ClientNotificationInterface, ServerNotificationInterface
23 {
24 use ValidatesRequiredFields;
25
26 public const METHOD = 'notifications/progress';
27
28 public const DISCRIMINATOR_FIELD = 'method';
29 public const DISCRIMINATOR_VALUE = 'notifications/progress';
30
31 /**
32 * @var \WP\McpSchema\Common\Protocol\DTO\ProgressNotificationParams
33 */
34 protected ProgressNotificationParams $typedParams;
35
36 /**
37 * @param '2.0' $jsonrpc @since 2025-11-25
38 * @param \WP\McpSchema\Common\Protocol\DTO\ProgressNotificationParams $params @since 2024-11-05
39 */
40 public function __construct(
41 string $jsonrpc,
42 ProgressNotificationParams $params
43 ) {
44 parent::__construct(self::METHOD, $jsonrpc, null);
45 $this->typedParams = $params;
46 }
47
48 /**
49 * Creates an instance from an array.
50 *
51 * @param array{
52 * jsonrpc: '2.0',
53 * method: 'notifications/progress',
54 * params: array<string, mixed>|\WP\McpSchema\Common\Protocol\DTO\ProgressNotificationParams
55 * } $data
56 * @phpstan-param array<string, mixed> $data
57 * @return self
58 */
59 public static function fromArray(array $data): self
60 {
61 self::assertRequired($data, ['jsonrpc', 'params']);
62
63 /** @var '2.0' $jsonrpc */
64 $jsonrpc = self::asString($data['jsonrpc']);
65
66 /** @var \WP\McpSchema\Common\Protocol\DTO\ProgressNotificationParams $params */
67 $params = is_array($data['params'])
68 ? ProgressNotificationParams::fromArray(self::asArray($data['params']))
69 : $data['params'];
70
71 return new self(
72 $jsonrpc,
73 $params
74 );
75 }
76
77 /**
78 * Converts the instance to an array.
79 *
80 * @return array<string, mixed>
81 */
82 public function toArray(): array
83 {
84 $result = parent::toArray();
85
86 $result['params'] = $this->typedParams->toArray();
87
88 return $result;
89 }
90
91 /**
92 * @return \WP\McpSchema\Common\Protocol\DTO\ProgressNotificationParams
93 */
94 public function getTypedParams(): ProgressNotificationParams
95 {
96 return $this->typedParams;
97 }
98 }
99