@frontmcp/testing 0.6.3 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/assertions/index.d.ts +1 -0
  2. package/assertions/index.d.ts.map +1 -0
  3. package/assertions/mcp-assertions.d.ts +1 -0
  4. package/assertions/mcp-assertions.d.ts.map +1 -0
  5. package/auth/auth-headers.d.ts +1 -0
  6. package/auth/auth-headers.d.ts.map +1 -0
  7. package/auth/index.d.ts +1 -0
  8. package/auth/index.d.ts.map +1 -0
  9. package/auth/mock-api-server.d.ts +61 -6
  10. package/auth/mock-api-server.d.ts.map +1 -0
  11. package/auth/mock-oauth-server.d.ts +1 -0
  12. package/auth/mock-oauth-server.d.ts.map +1 -0
  13. package/auth/token-factory.d.ts +1 -0
  14. package/auth/token-factory.d.ts.map +1 -0
  15. package/auth/user-fixtures.d.ts +1 -0
  16. package/auth/user-fixtures.d.ts.map +1 -0
  17. package/client/index.d.ts +1 -0
  18. package/client/index.d.ts.map +1 -0
  19. package/client/mcp-test-client.builder.d.ts +1 -0
  20. package/client/mcp-test-client.builder.d.ts.map +1 -0
  21. package/client/mcp-test-client.d.ts +1 -0
  22. package/client/mcp-test-client.d.ts.map +1 -0
  23. package/client/mcp-test-client.types.d.ts +1 -0
  24. package/client/mcp-test-client.types.d.ts.map +1 -0
  25. package/errors/index.d.ts +1 -0
  26. package/errors/index.d.ts.map +1 -0
  27. package/esm/index.mjs +169 -72
  28. package/esm/matchers/index.mjs +4 -14
  29. package/esm/package.json +3 -3
  30. package/esm/setup.mjs +4 -14
  31. package/example-tools/index.d.ts +1 -0
  32. package/example-tools/index.d.ts.map +1 -0
  33. package/example-tools/tool-configs.d.ts +15 -4
  34. package/example-tools/tool-configs.d.ts.map +1 -0
  35. package/expect.d.ts +1 -0
  36. package/expect.d.ts.map +1 -0
  37. package/fixtures/fixture-types.d.ts +1 -0
  38. package/fixtures/fixture-types.d.ts.map +1 -0
  39. package/fixtures/index.d.ts +1 -0
  40. package/fixtures/index.d.ts.map +1 -0
  41. package/fixtures/test-fixture.d.ts +1 -0
  42. package/fixtures/test-fixture.d.ts.map +1 -0
  43. package/http-mock/http-mock.d.ts +1 -0
  44. package/http-mock/http-mock.d.ts.map +1 -0
  45. package/http-mock/http-mock.types.d.ts +1 -0
  46. package/http-mock/http-mock.types.d.ts.map +1 -0
  47. package/http-mock/index.d.ts +1 -0
  48. package/http-mock/index.d.ts.map +1 -0
  49. package/index.d.ts +3 -2
  50. package/index.d.ts.map +1 -0
  51. package/index.js +170 -73
  52. package/interceptor/index.d.ts +1 -0
  53. package/interceptor/index.d.ts.map +1 -0
  54. package/interceptor/interceptor-chain.d.ts +1 -0
  55. package/interceptor/interceptor-chain.d.ts.map +1 -0
  56. package/interceptor/interceptor.types.d.ts +1 -0
  57. package/interceptor/interceptor.types.d.ts.map +1 -0
  58. package/interceptor/mock-registry.d.ts +1 -0
  59. package/interceptor/mock-registry.d.ts.map +1 -0
  60. package/matchers/index.d.ts +1 -0
  61. package/matchers/index.d.ts.map +1 -0
  62. package/matchers/index.js +4 -14
  63. package/matchers/matcher-types.d.ts +1 -0
  64. package/matchers/matcher-types.d.ts.map +1 -0
  65. package/matchers/mcp-matchers.d.ts +1 -0
  66. package/matchers/mcp-matchers.d.ts.map +1 -0
  67. package/package.json +3 -3
  68. package/platform/index.d.ts +2 -1
  69. package/platform/index.d.ts.map +1 -0
  70. package/platform/platform-client-info.d.ts +1 -0
  71. package/platform/platform-client-info.d.ts.map +1 -0
  72. package/platform/platform-types.d.ts +12 -12
  73. package/platform/platform-types.d.ts.map +1 -0
  74. package/playwright/index.d.ts +1 -0
  75. package/playwright/index.d.ts.map +1 -0
  76. package/server/index.d.ts +1 -0
  77. package/server/index.d.ts.map +1 -0
  78. package/server/test-server.d.ts +1 -0
  79. package/server/test-server.d.ts.map +1 -0
  80. package/setup.d.ts +1 -0
  81. package/setup.d.ts.map +1 -0
  82. package/setup.js +4 -14
  83. package/transport/index.d.ts +1 -0
  84. package/transport/index.d.ts.map +1 -0
  85. package/transport/streamable-http.transport.d.ts +1 -0
  86. package/transport/streamable-http.transport.d.ts.map +1 -0
  87. package/transport/transport.interface.d.ts +1 -0
  88. package/transport/transport.interface.d.ts.map +1 -0
  89. package/ui/index.d.ts +1 -0
  90. package/ui/index.d.ts.map +1 -0
  91. package/ui/ui-assertions.d.ts +5 -4
  92. package/ui/ui-assertions.d.ts.map +1 -0
  93. package/ui/ui-matchers.d.ts +1 -0
  94. package/ui/ui-matchers.d.ts.map +1 -0
@@ -3,3 +3,4 @@
3
3
  * @description MCP assertions exports
4
4
  */
5
5
  export { McpAssertions, containsTool, containsResource, containsResourceTemplate, containsPrompt, isSuccessful, isError, hasTextContent, hasMimeType, } from './mcp-assertions';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assertions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC"}
@@ -79,3 +79,4 @@ export declare function hasTextContent(result: ToolResultWrapper): boolean;
79
79
  * Check if resource has specific MIME type
80
80
  */
81
81
  export declare function hasMimeType(result: ResourceContentWrapper, mimeType: string): boolean;
82
+ //# sourceMappingURL=mcp-assertions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-assertions.d.ts","sourceRoot":"","sources":["../../src/assertions/mcp-assertions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACtG,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,cAAc,EACd,kBAAkB,EACnB,MAAM,oCAAoC,CAAC;AAM5C;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB;;;OAGG;kBACW,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,YAAY,MAAM,GAAG,CAAC;IAW/D;;;OAGG;gBACS,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,iBAAiB,MAAM,GAAG,YAAY;IAa7E;;OAEG;8BACuB,iBAAiB,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,IAAI;IAiBhF;;OAEG;8BAEO,iBAAiB,GAAG,WAAW,CAAC,cAAc,CAAC,QACjD,MAAM,GAAG,OAAO,GAAG,UAAU,GAClC,IAAI;IAkBP;;OAEG;iCAC0B,sBAAsB,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,MAAM;IAwB9F;;OAEG;8BACuB,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI;IASrD;;OAEG;sCAC+B,QAAQ,EAAE,OAAO,MAAM,GAAG,QAAQ;IASpE;;OAEG;8CACuC,gBAAgB,EAAE,eAAe,MAAM,GAAG,gBAAgB;IASpG;;OAEG;kCAC2B,MAAM,EAAE,QAAQ,MAAM,GAAG,MAAM;CAQ9D,CAAC;AAMF;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEpG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,OAAO,CAExF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAM1G;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErF"}
@@ -27,3 +27,4 @@ export declare const AuthHeaders: {
27
27
  */
28
28
  custom(headerName: string, headerValue: string): Record<string, string>;
29
29
  };
30
+ //# sourceMappingURL=auth-headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-headers.d.ts","sourceRoot":"","sources":["../../src/auth/auth-headers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;kBACW,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM7C;;OAEG;cACO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhC;;OAEG;sBACe,MAAM,cAAc,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAcrE;;OAEG;2BACoB,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAatD;;OAEG;uBACgB,MAAM,eAAe,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAKxE,CAAC"}
package/auth/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export type { CreateTokenOptions, TokenFactoryOptions } from './token-factory';
7
7
  export { AuthHeaders } from './auth-headers';
8
8
  export { TestUsers, createTestUser } from './user-fixtures';
9
9
  export type { TestUserFixture } from './user-fixtures';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -27,14 +27,36 @@
27
27
  * await apiServer.stop();
28
28
  * ```
29
29
  */
30
- export interface MockRoute {
30
+ /**
31
+ * Mock request object for handlers
32
+ */
33
+ export interface MockRequest {
34
+ /** Request URL */
35
+ url: string;
31
36
  /** HTTP method */
32
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
33
- /** Path to match (e.g., '/products', '/products/:id') */
34
- path: string;
35
- /** Response to return */
36
- response: MockResponse;
37
+ method: string;
38
+ /** Request headers (lowercase keys) */
39
+ headers: Record<string, string | undefined>;
40
+ /** Path parameters extracted from the route */
41
+ params: Record<string, string>;
42
+ /** Query parameters */
43
+ query: Record<string, string>;
44
+ /** Request body (parsed JSON if applicable) */
45
+ body?: unknown;
37
46
  }
47
+ /**
48
+ * Mock response helper for handlers
49
+ */
50
+ export interface MockResponseHelper {
51
+ /** Send a JSON response */
52
+ json: (body: unknown, status?: number) => void;
53
+ /** Send a response with custom headers */
54
+ send: (body: unknown, status?: number, headers?: Record<string, string>) => void;
55
+ }
56
+ /**
57
+ * Handler function type for dynamic route handling
58
+ */
59
+ export type MockRouteHandler = (req: MockRequest, res: MockResponseHelper) => void | Promise<void>;
38
60
  export interface MockResponse {
39
61
  /** HTTP status code (default: 200) */
40
62
  status?: number;
@@ -43,9 +65,32 @@ export interface MockResponse {
43
65
  /** Response body (will be JSON serialized) */
44
66
  body: unknown;
45
67
  }
68
+ export type MockRoute = {
69
+ /** HTTP method */
70
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
71
+ /** Path to match (e.g., '/products', '/products/:id') */
72
+ path: string;
73
+ /** Dynamic handler function (mutually exclusive with response) */
74
+ handler: MockRouteHandler;
75
+ /** Static response to return (mutually exclusive with handler) */
76
+ response?: never;
77
+ } | {
78
+ /** HTTP method */
79
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
80
+ /** Path to match (e.g., '/products', '/products/:id') */
81
+ path: string;
82
+ /** Static response to return (mutually exclusive with handler) */
83
+ response: MockResponse;
84
+ /** Dynamic handler function (mutually exclusive with response) */
85
+ handler?: never;
86
+ };
46
87
  export interface MockAPIServerOptions {
47
88
  /** Port to listen on (default: random available port) */
48
89
  port?: number;
90
+ /** Maximum request body size (default: 1MB) */
91
+ maxBodyBytes?: number;
92
+ /** Request body read timeout in ms (default: 10s) */
93
+ bodyTimeoutMs?: number;
49
94
  /** OpenAPI spec to serve at /openapi.json */
50
95
  openApiSpec: unknown;
51
96
  /** Routes to mock */
@@ -93,7 +138,17 @@ export declare class MockAPIServer {
93
138
  * Clear all routes
94
139
  */
95
140
  clearRoutes(): void;
141
+ private validateRoute;
96
142
  private handleRequest;
97
143
  private findRoute;
144
+ /**
145
+ * Parse request body as JSON
146
+ */
147
+ private parseBody;
148
+ /**
149
+ * Normalize headers to lowercase keys
150
+ */
151
+ private normalizeHeaders;
98
152
  private log;
99
153
  }
154
+ //# sourceMappingURL=mock-api-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-api-server.d.ts","sourceRoot":"","sources":["../../src/auth/mock-api-server.ts"],"names":[],"mappings":"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"}
@@ -83,3 +83,4 @@ export declare class MockOAuthServer {
83
83
  private readBody;
84
84
  private log;
85
85
  }
86
+ //# sourceMappingURL=mock-oauth-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-oauth-server.d.ts","sourceRoot":"","sources":["../../src/auth/mock-oauth-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMxD,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,WAAW,CAAwC;gBAE/C,YAAY,EAAE,gBAAgB,EAAE,OAAO,GAAE,sBAA2B;IAKhF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA6C3C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B;;OAEG;IACH,IAAI,IAAI,IAAI,mBAAmB,CAK9B;IAED;;OAEG;IACH,eAAe,IAAI,gBAAgB;YAQrB,aAAa;YAmCb,UAAU;YAOV,gBAAgB;YAqBhB,mBAAmB;YAkBnB,mBAAmB;IA6BjC,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,GAAG;CAKZ"}
@@ -92,3 +92,4 @@ export declare class TestTokenFactory {
92
92
  */
93
93
  getAudience(): string;
94
94
  }
95
+ //# sourceMappingURL=token-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-factory.d.ts","sourceRoot":"","sources":["../../src/auth/token-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAwD,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAMtF,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,GAAE,mBAAwB;IAM7C;;OAEG;YACW,UAAU;IAkBxB;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnE;;OAEG;IACG,gBAAgB,CAAC,GAAG,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAY1D;;OAEG;IACG,eAAe,CAAC,GAAG,SAAa,EAAE,MAAM,WAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYpF;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAW7C;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBnF;;OAEG;IACH,+BAA+B,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,MAAM;IAqBjF;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAO/C;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB"}
@@ -24,3 +24,4 @@ export declare const TestUsers: Record<string, TestUserFixture>;
24
24
  export declare function createTestUser(overrides: Partial<TestUserFixture> & {
25
25
  sub: string;
26
26
  }): TestUserFixture;
27
+ //# sourceMappingURL=user-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-fixtures.d.ts","sourceRoot":"","sources":["../../src/auth/user-fixtures.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA4ErD,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAKrG"}
package/client/index.d.ts CHANGED
@@ -5,3 +5,4 @@
5
5
  export { McpTestClient } from './mcp-test-client';
6
6
  export { McpTestClientBuilder } from './mcp-test-client.builder';
7
7
  export type { McpTestClientConfig, McpResponse, McpErrorInfo, TestTransportType, TestAuthConfig, ToolResultWrapper, ResourceContentWrapper, PromptResultWrapper, LogEntry, LogLevel, RequestTrace, NotificationEntry, ProgressUpdate, SessionInfo, AuthState, TransportState, JSONRPCRequest, JSONRPCResponse, InitializeResult, ListToolsResult, CallToolResult, ListResourcesResult, ReadResourceResult, ListResourceTemplatesResult, ListPromptsResult, GetPromptResult, Tool, Resource, ResourceTemplate, Prompt, } from './mcp-test-client.types';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,SAAS,EACT,cAAc,EAEd,cAAc,EACd,eAAe,EAEf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,MAAM,GACP,MAAM,yBAAyB,CAAC"}
@@ -112,3 +112,4 @@ export declare class McpTestClientBuilder {
112
112
  */
113
113
  buildAndConnect(): Promise<McpTestClient>;
114
114
  }
115
+ //# sourceMappingURL=mcp-test-client.builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-test-client.builder.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAIvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAKpC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQlD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAKjD;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,SAAS,CAAC,OAAO,UAAO,GAAG,IAAI;IAK/B;;;;OAIG;IACH,cAAc,CAAC,OAAO,UAAO,GAAG,IAAI;IAKpC;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK1C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAK7D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAS9C;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,YAAY,EAAE,sBAAsB,GAAG,IAAI;IAK5D;;OAEG;IACH,KAAK,IAAI,aAAa;IAItB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;CAKhD"}
@@ -358,3 +358,4 @@ declare class ProgressCollector {
358
358
  waitForComplete(timeoutMs: number): Promise<void>;
359
359
  }
360
360
  export {};
361
+ //# sourceMappingURL=mcp-test-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-test-client.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.ts"],"names":[],"mappings":"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"}
@@ -275,3 +275,4 @@ export interface AuthState {
275
275
  };
276
276
  }
277
277
  export type { InitializeResult, ListToolsResult, CallToolResult, ListResourcesResult, ReadResourceResult, ListResourceTemplatesResult, ListPromptsResult, GetPromptResult, Tool, Resource, ResourceTemplate, Prompt, };
278
+ //# sourceMappingURL=mcp-test-client.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-test-client.types.d.ts","sourceRoot":"","sources":["../../src/client/mcp-test-client.types.ts"],"names":[],"mappings":"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"}
package/errors/index.d.ts CHANGED
@@ -43,3 +43,4 @@ export declare class ServerStartError extends TestClientError {
43
43
  export declare class AssertionError extends TestClientError {
44
44
  constructor(message: string);
45
45
  }
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAM5B;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,eAAe;aACI,KAAK,CAAC,EAAE,KAAK;gBAAvD,OAAO,EAAE,MAAM,EAA2B,KAAK,CAAC,EAAE,KAAK,YAAA;CAKpE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,eAAe;aACF,SAAS,EAAE,MAAM;gBAAlD,OAAO,EAAE,MAAM,EAAkB,SAAS,EAAE,MAAM;CAK/D;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;aACN,IAAI,EAAE,MAAM;aAAkB,IAAI,CAAC,EAAE,OAAO;gBAA7E,OAAO,EAAE,MAAM,EAAkB,IAAI,EAAE,MAAM,EAAkB,IAAI,CAAC,EAAE,OAAO,YAAA;CAK1F;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;aACG,KAAK,CAAC,EAAE,KAAK;gBAAvD,OAAO,EAAE,MAAM,EAA2B,KAAK,CAAC,EAAE,KAAK,YAAA;CAKpE;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,eAAe;gBACrC,OAAO,EAAE,MAAM;CAK5B"}
package/esm/index.mjs CHANGED
@@ -2325,6 +2325,9 @@ var MockAPIServer = class {
2325
2325
  constructor(options) {
2326
2326
  this.options = options;
2327
2327
  this.routes = options.routes ?? [];
2328
+ for (const route of this.routes) {
2329
+ this.validateRoute(route);
2330
+ }
2328
2331
  }
2329
2332
  /**
2330
2333
  * Start the mock API server
@@ -2335,13 +2338,14 @@ var MockAPIServer = class {
2335
2338
  }
2336
2339
  const port = this.options.port ?? 0;
2337
2340
  return new Promise((resolve, reject) => {
2338
- this.server = createServer2(this.handleRequest.bind(this));
2339
- this.server.on("error", (err) => {
2341
+ const server = createServer2(this.handleRequest.bind(this));
2342
+ this.server = server;
2343
+ server.on("error", (err) => {
2340
2344
  this.log(`Server error: ${err.message}`);
2341
2345
  reject(err);
2342
2346
  });
2343
- this.server.listen(port, () => {
2344
- const address = this.server.address();
2347
+ server.listen(port, () => {
2348
+ const address = server.address();
2345
2349
  if (!address || typeof address === "string") {
2346
2350
  reject(new Error("Failed to get server address"));
2347
2351
  return;
@@ -2361,11 +2365,12 @@ var MockAPIServer = class {
2361
2365
  * Stop the mock API server
2362
2366
  */
2363
2367
  async stop() {
2364
- if (!this.server) {
2368
+ const server = this.server;
2369
+ if (!server) {
2365
2370
  return;
2366
2371
  }
2367
2372
  return new Promise((resolve, reject) => {
2368
- this.server.close((err) => {
2373
+ server.close((err) => {
2369
2374
  if (err) {
2370
2375
  reject(err);
2371
2376
  } else {
@@ -2390,6 +2395,7 @@ var MockAPIServer = class {
2390
2395
  * Add a route dynamically
2391
2396
  */
2392
2397
  addRoute(route) {
2398
+ this.validateRoute(route);
2393
2399
  this.routes.push(route);
2394
2400
  }
2395
2401
  /**
@@ -2401,6 +2407,18 @@ var MockAPIServer = class {
2401
2407
  // ═══════════════════════════════════════════════════════════════════
2402
2408
  // PRIVATE
2403
2409
  // ═══════════════════════════════════════════════════════════════════
2410
+ validateRoute(route) {
2411
+ const method = route.method ?? "UNKNOWN";
2412
+ const path = route.path ?? "<unknown>";
2413
+ const hasHandler = typeof route.handler === "function";
2414
+ const hasResponse = route.response != null;
2415
+ if (hasHandler && hasResponse) {
2416
+ throw new Error(`Mock route ${method} ${path} must define either 'handler' or 'response', not both`);
2417
+ }
2418
+ if (!hasHandler && !hasResponse) {
2419
+ throw new Error(`Mock route ${method} ${path} must define either 'handler' or 'response'`);
2420
+ }
2421
+ }
2404
2422
  async handleRequest(req, res) {
2405
2423
  const url = req.url ?? "/";
2406
2424
  const method = (req.method ?? "GET").toUpperCase();
@@ -2420,17 +2438,55 @@ var MockAPIServer = class {
2420
2438
  this.log("Served OpenAPI spec");
2421
2439
  return;
2422
2440
  }
2423
- const route = this.findRoute(method, url);
2424
- if (route) {
2425
- const status = route.response.status ?? 200;
2426
- const headers = {
2427
- "Content-Type": "application/json",
2428
- ...route.response.headers
2429
- };
2430
- res.writeHead(status, headers);
2431
- res.end(JSON.stringify(route.response.body));
2432
- this.log(`Matched route: ${method} ${route.path} -> ${status}`);
2433
- return;
2441
+ const matchResult = this.findRoute(method, url);
2442
+ if (matchResult) {
2443
+ const { route, params } = matchResult;
2444
+ if (route.handler) {
2445
+ let body;
2446
+ if (["POST", "PUT", "PATCH"].includes(method)) {
2447
+ body = await this.parseBody(req);
2448
+ }
2449
+ const queryString = url.includes("?") ? url.split("?")[1] : "";
2450
+ const query = {};
2451
+ if (queryString) {
2452
+ const searchParams = new URLSearchParams(queryString);
2453
+ searchParams.forEach((value, key) => {
2454
+ query[key] = value;
2455
+ });
2456
+ }
2457
+ const mockReq = {
2458
+ url,
2459
+ method,
2460
+ headers: this.normalizeHeaders(req.headers),
2461
+ params,
2462
+ query,
2463
+ body
2464
+ };
2465
+ const mockRes = {
2466
+ json: (responseBody, status = 200) => {
2467
+ res.writeHead(status, { "Content-Type": "application/json" });
2468
+ res.end(JSON.stringify(responseBody));
2469
+ },
2470
+ send: (responseBody, status = 200, headers = {}) => {
2471
+ res.writeHead(status, { "Content-Type": "application/json", ...headers });
2472
+ res.end(JSON.stringify(responseBody));
2473
+ }
2474
+ };
2475
+ await route.handler(mockReq, mockRes);
2476
+ this.log(`Matched route with handler: ${method} ${route.path}`);
2477
+ return;
2478
+ }
2479
+ if (route.response) {
2480
+ const status = route.response.status ?? 200;
2481
+ const headers = {
2482
+ "Content-Type": "application/json",
2483
+ ...route.response.headers
2484
+ };
2485
+ res.writeHead(status, headers);
2486
+ res.end(JSON.stringify(route.response.body));
2487
+ this.log(`Matched route: ${method} ${route.path} -> ${status}`);
2488
+ return;
2489
+ }
2434
2490
  }
2435
2491
  res.writeHead(404, { "Content-Type": "application/json" });
2436
2492
  res.end(JSON.stringify({ error: "not_found", message: `No mock for ${method} ${url}` }));
@@ -2442,18 +2498,87 @@ var MockAPIServer = class {
2442
2498
  }
2443
2499
  findRoute(method, url) {
2444
2500
  const path = url.split("?")[0];
2445
- return this.routes.find((route) => {
2446
- if (route.method !== method) return false;
2447
- if (route.path === path) return true;
2501
+ for (const route of this.routes) {
2502
+ if (route.method !== method) continue;
2503
+ if (route.path === path) {
2504
+ return { route, params: {} };
2505
+ }
2448
2506
  const routeParts = route.path.split("/");
2449
2507
  const urlParts = path.split("/");
2450
- if (routeParts.length !== urlParts.length) return false;
2451
- return routeParts.every((part, i) => {
2452
- if (part.startsWith(":")) return true;
2453
- return part === urlParts[i];
2454
- });
2508
+ if (routeParts.length !== urlParts.length) continue;
2509
+ const params = {};
2510
+ let match = true;
2511
+ for (let i = 0; i < routeParts.length; i++) {
2512
+ if (routeParts[i].startsWith(":")) {
2513
+ params[routeParts[i].slice(1)] = urlParts[i];
2514
+ } else if (routeParts[i] !== urlParts[i]) {
2515
+ match = false;
2516
+ break;
2517
+ }
2518
+ }
2519
+ if (match) {
2520
+ return { route, params };
2521
+ }
2522
+ }
2523
+ return void 0;
2524
+ }
2525
+ /**
2526
+ * Parse request body as JSON
2527
+ */
2528
+ async parseBody(req) {
2529
+ const maxBodyBytes = this.options.maxBodyBytes ?? 1 * 1024 * 1024;
2530
+ const bodyTimeoutMs = this.options.bodyTimeoutMs ?? 1e4;
2531
+ return new Promise((resolve, reject) => {
2532
+ let body = "";
2533
+ let bodyBytes = 0;
2534
+ const onData = (chunk) => {
2535
+ bodyBytes += chunk.length;
2536
+ if (bodyBytes > maxBodyBytes) {
2537
+ cleanup();
2538
+ req.destroy();
2539
+ reject(new Error(`Request body too large (>${maxBodyBytes} bytes)`));
2540
+ return;
2541
+ }
2542
+ body += chunk.toString();
2543
+ };
2544
+ const cleanup = () => {
2545
+ req.off("data", onData);
2546
+ req.off("end", onEnd);
2547
+ req.off("error", onError);
2548
+ clearTimeout(timeout);
2549
+ };
2550
+ const timeout = setTimeout(() => {
2551
+ cleanup();
2552
+ req.destroy();
2553
+ reject(new Error(`Request body read timed out after ${bodyTimeoutMs}ms`));
2554
+ }, bodyTimeoutMs);
2555
+ const onEnd = () => {
2556
+ cleanup();
2557
+ try {
2558
+ resolve(body ? JSON.parse(body) : void 0);
2559
+ } catch {
2560
+ resolve(body);
2561
+ }
2562
+ };
2563
+ const onError = (error) => {
2564
+ cleanup();
2565
+ reject(error);
2566
+ };
2567
+ req.on("data", onData);
2568
+ req.once("end", onEnd);
2569
+ req.once("error", onError);
2455
2570
  });
2456
2571
  }
2572
+ /**
2573
+ * Normalize headers to lowercase keys
2574
+ */
2575
+ normalizeHeaders(headers) {
2576
+ const normalized = {};
2577
+ for (const [key, value] of Object.entries(headers)) {
2578
+ normalized[key.toLowerCase()] = Array.isArray(value) ? value[0] : value;
2579
+ }
2580
+ return normalized;
2581
+ }
2457
2582
  log(message) {
2458
2583
  if (this.options.debug) {
2459
2584
  console.log(`[MockAPIServer] ${message}`);
@@ -3157,10 +3282,8 @@ function getPlatformMetaNamespace(platform) {
3157
3282
  switch (platform) {
3158
3283
  case "openai":
3159
3284
  return "openai";
3160
- case "ext-apps":
3161
- return "ui";
3162
3285
  default:
3163
- return "frontmcp";
3286
+ return "ui";
3164
3287
  }
3165
3288
  }
3166
3289
  function getPlatformMimeType(platform) {
@@ -3172,37 +3295,31 @@ function isOpenAIPlatform(platform) {
3172
3295
  function isExtAppsPlatform(platform) {
3173
3296
  return platform === "ext-apps";
3174
3297
  }
3175
- function isFrontmcpPlatform(platform) {
3176
- return platform !== "openai" && platform !== "ext-apps";
3298
+ function isUiPlatform(platform) {
3299
+ return platform !== "openai";
3177
3300
  }
3178
3301
  function getToolsListMetaPrefixes(platform) {
3179
3302
  switch (platform) {
3180
3303
  case "openai":
3181
3304
  return ["openai/"];
3182
- case "ext-apps":
3183
- return ["ui/"];
3184
3305
  default:
3185
- return ["frontmcp/", "ui/"];
3306
+ return ["ui/"];
3186
3307
  }
3187
3308
  }
3188
3309
  function getToolCallMetaPrefixes(platform) {
3189
3310
  switch (platform) {
3190
3311
  case "openai":
3191
3312
  return ["openai/"];
3192
- case "ext-apps":
3193
- return ["ui/"];
3194
3313
  default:
3195
- return ["frontmcp/", "ui/"];
3314
+ return ["ui/"];
3196
3315
  }
3197
3316
  }
3198
3317
  function getForbiddenMetaPrefixes(platform) {
3199
3318
  switch (platform) {
3200
3319
  case "openai":
3201
3320
  return ["ui/", "frontmcp/"];
3202
- case "ext-apps":
3203
- return ["openai/", "frontmcp/"];
3204
3321
  default:
3205
- return ["openai/"];
3322
+ return ["openai/", "frontmcp/"];
3206
3323
  }
3207
3324
  }
3208
3325
 
@@ -3483,11 +3600,8 @@ var toHavePlatformMimeType = function(received, platform) {
3483
3600
  case "openai":
3484
3601
  mimeTypeKey = "openai/mimeType";
3485
3602
  break;
3486
- case "ext-apps":
3487
- mimeTypeKey = "ui/mimeType";
3488
- break;
3489
3603
  default:
3490
- mimeTypeKey = "frontmcp/mimeType";
3604
+ mimeTypeKey = "ui/mimeType";
3491
3605
  }
3492
3606
  const actualMimeType = meta[mimeTypeKey];
3493
3607
  const pass = actualMimeType === expectedMimeType;
@@ -3509,11 +3623,8 @@ var toHavePlatformHtml = function(received, platform) {
3509
3623
  case "openai":
3510
3624
  htmlKey = "openai/html";
3511
3625
  break;
3512
- case "ext-apps":
3513
- htmlKey = "ui/html";
3514
- break;
3515
3626
  default:
3516
- htmlKey = "frontmcp/html";
3627
+ htmlKey = "ui/html";
3517
3628
  }
3518
3629
  const html = meta[htmlKey];
3519
3630
  const pass = typeof html === "string" && html.length > 0;
@@ -4436,12 +4547,12 @@ var UIAssertions = {
4436
4547
  UIAssertions.assertPlatformMeta(result, "ext-apps");
4437
4548
  },
4438
4549
  /**
4439
- * Assert tool result has correct meta keys for FrontMCP platforms (Claude, Cursor, etc.).
4440
- * Verifies frontmcp/* + ui/* keys are present and openai/* keys are absent.
4550
+ * Assert tool result has correct meta keys for ui/* platforms (Claude, Cursor, etc.).
4551
+ * Verifies ui/* keys are present and openai/*, frontmcp/* keys are absent.
4441
4552
  * @param result - The tool result wrapper
4442
- * @throws Error if meta keys don't match FrontMCP expectations
4553
+ * @throws Error if meta keys don't match ui/* expectations
4443
4554
  */
4444
- assertFrontmcpMeta(result) {
4555
+ assertUiMeta(result) {
4445
4556
  UIAssertions.assertPlatformMeta(result, "claude");
4446
4557
  },
4447
4558
  /**
@@ -4507,11 +4618,8 @@ var UIAssertions = {
4507
4618
  case "openai":
4508
4619
  mimeTypeKey = "openai/mimeType";
4509
4620
  break;
4510
- case "ext-apps":
4511
- mimeTypeKey = "ui/mimeType";
4512
- break;
4513
4621
  default:
4514
- mimeTypeKey = "frontmcp/mimeType";
4622
+ mimeTypeKey = "ui/mimeType";
4515
4623
  }
4516
4624
  const actualMimeType = meta[mimeTypeKey];
4517
4625
  if (actualMimeType !== expectedMimeType) {
@@ -4537,11 +4645,8 @@ var UIAssertions = {
4537
4645
  case "openai":
4538
4646
  htmlKey = "openai/html";
4539
4647
  break;
4540
- case "ext-apps":
4541
- htmlKey = "ui/html";
4542
- break;
4543
4648
  default:
4544
- htmlKey = "frontmcp/html";
4649
+ htmlKey = "ui/html";
4545
4650
  }
4546
4651
  const html = meta[htmlKey];
4547
4652
  if (typeof html !== "string" || html.length === 0) {
@@ -4690,18 +4795,10 @@ var EXPECTED_OPENAI_TOOLS_LIST_META_KEYS = [
4690
4795
  var EXPECTED_OPENAI_TOOL_CALL_META_KEYS = ["openai/html", "openai/mimeType", "openai/type"];
4691
4796
  var EXPECTED_EXTAPPS_TOOLS_LIST_META_KEYS = ["ui/resourceUri", "ui/mimeType", "ui/cdn", "ui/type"];
4692
4797
  var EXPECTED_EXTAPPS_TOOL_CALL_META_KEYS = ["ui/html", "ui/mimeType", "ui/type"];
4693
- var EXPECTED_FRONTMCP_TOOLS_LIST_META_KEYS = [
4694
- "frontmcp/outputTemplate",
4695
- "frontmcp/resultCanProduceWidget",
4696
- "ui/cdn",
4697
- "ui/type"
4698
- ];
4699
- var EXPECTED_FRONTMCP_TOOL_CALL_META_KEYS = [
4700
- "frontmcp/html",
4701
- "frontmcp/mimeType",
4702
- "ui/html",
4703
- "ui/mimeType"
4704
- ];
4798
+ var EXPECTED_GENERIC_TOOLS_LIST_META_KEYS = ["ui/resourceUri", "ui/mimeType", "ui/cdn", "ui/type"];
4799
+ var EXPECTED_GENERIC_TOOL_CALL_META_KEYS = ["ui/html", "ui/mimeType", "ui/type"];
4800
+ var EXPECTED_FRONTMCP_TOOLS_LIST_META_KEYS = EXPECTED_GENERIC_TOOLS_LIST_META_KEYS;
4801
+ var EXPECTED_FRONTMCP_TOOL_CALL_META_KEYS = EXPECTED_GENERIC_TOOL_CALL_META_KEYS;
4705
4802
  export {
4706
4803
  AssertionError,
4707
4804
  AuthHeaders,
@@ -4758,9 +4855,9 @@ export {
4758
4855
  interceptors,
4759
4856
  isError,
4760
4857
  isExtAppsPlatform,
4761
- isFrontmcpPlatform,
4762
4858
  isOpenAIPlatform,
4763
4859
  isSuccessful,
4860
+ isUiPlatform,
4764
4861
  mcpMatchers,
4765
4862
  mockResponse,
4766
4863
  test,