mcp-use 1.0.0 → 1.0.2

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.
package/dist/index.cjs CHANGED
@@ -486,7 +486,6 @@ __export(index_exports, {
486
486
  MCPAgent: () => MCPAgent,
487
487
  MCPClient: () => MCPClient,
488
488
  MCPSession: () => MCPSession,
489
- McpServer: () => McpServer,
490
489
  OAuthHelper: () => OAuthHelper,
491
490
  ObservabilityManager: () => ObservabilityManager,
492
491
  ReleaseMCPServerConnectionTool: () => ReleaseMCPServerConnectionTool,
@@ -2686,8 +2685,36 @@ var MCPAgent = class {
2686
2685
  `;
2687
2686
  }
2688
2687
  try {
2689
- const structuredResult = await structuredLlm.invoke(formatPrompt);
2688
+ logger.info(`\u{1F504} Structured output attempt ${attempt} - using streaming approach`);
2689
+ const stream = await structuredLlm.stream(formatPrompt);
2690
+ let structuredResult = null;
2691
+ let chunkCount = 0;
2692
+ for await (const chunk of stream) {
2693
+ chunkCount++;
2694
+ if (typeof chunk === "string") {
2695
+ try {
2696
+ structuredResult = JSON.parse(chunk);
2697
+ } catch (e) {
2698
+ logger.warn(`\u{1F504} Failed to parse string chunk as JSON: ${chunk}`);
2699
+ }
2700
+ } else if (chunk && typeof chunk === "object") {
2701
+ structuredResult = chunk;
2702
+ } else {
2703
+ try {
2704
+ structuredResult = JSON.parse(String(chunk));
2705
+ } catch (e) {
2706
+ logger.warn(`\u{1F504} Failed to parse chunk as JSON: ${chunk}`);
2707
+ }
2708
+ }
2709
+ await new Promise((resolve) => setTimeout(resolve, 0));
2710
+ if (chunkCount % 10 === 0) {
2711
+ logger.info(`\u{1F504} Structured output streaming: ${chunkCount} chunks`);
2712
+ }
2713
+ }
2690
2714
  logger.info(`\u{1F504} Structured result attempt ${attempt}: ${JSON.stringify(structuredResult, null, 2)}`);
2715
+ if (!structuredResult) {
2716
+ throw new Error("No structured result received from stream");
2717
+ }
2691
2718
  const validatedResult = this._validateStructuredResult(structuredResult, outputSchema);
2692
2719
  logger.info(`\u2705 Structured output successful on attempt ${attempt}`);
2693
2720
  return validatedResult;
@@ -3188,13 +3215,52 @@ var BaseConnector = class {
3188
3215
  logger.debug(`Tool '${name}' returned`, res);
3189
3216
  return res;
3190
3217
  }
3191
- /** List resources from the server. */
3192
- async listResources(options) {
3218
+ /**
3219
+ * List resources from the server with optional pagination
3220
+ *
3221
+ * @param cursor - Optional cursor for pagination
3222
+ * @param options - Request options
3223
+ * @returns Resource list with optional nextCursor for pagination
3224
+ */
3225
+ async listResources(cursor, options) {
3226
+ if (!this.client) {
3227
+ throw new Error("MCP client is not connected");
3228
+ }
3229
+ logger.debug("Listing resources", cursor ? `with cursor: ${cursor}` : "");
3230
+ return await this.client.listResources({ cursor }, options);
3231
+ }
3232
+ /**
3233
+ * List all resources from the server, automatically handling pagination
3234
+ *
3235
+ * @param options - Request options
3236
+ * @returns Complete list of all resources
3237
+ */
3238
+ async listAllResources(options) {
3239
+ if (!this.client) {
3240
+ throw new Error("MCP client is not connected");
3241
+ }
3242
+ logger.debug("Listing all resources (with auto-pagination)");
3243
+ const allResources = [];
3244
+ let cursor = void 0;
3245
+ do {
3246
+ const result = await this.client.listResources({ cursor }, options);
3247
+ allResources.push(...result.resources || []);
3248
+ cursor = result.nextCursor;
3249
+ } while (cursor);
3250
+ return { resources: allResources };
3251
+ }
3252
+ /**
3253
+ * List resource templates from the server
3254
+ *
3255
+ * @param options - Request options
3256
+ * @returns List of available resource templates
3257
+ */
3258
+ async listResourceTemplates(options) {
3193
3259
  if (!this.client) {
3194
3260
  throw new Error("MCP client is not connected");
3195
3261
  }
3196
- logger.debug("Listing resources");
3197
- return await this.client.listResources(void 0, options);
3262
+ logger.debug("Listing resource templates");
3263
+ return await this.client.listResourceTemplates(void 0, options);
3198
3264
  }
3199
3265
  /** Read a resource by URI. */
3200
3266
  async readResource(uri, options) {
@@ -3205,6 +3271,32 @@ var BaseConnector = class {
3205
3271
  const res = await this.client.readResource({ uri }, options);
3206
3272
  return { content: res.content, mimeType: res.mimeType };
3207
3273
  }
3274
+ /**
3275
+ * Subscribe to resource updates
3276
+ *
3277
+ * @param uri - URI of the resource to subscribe to
3278
+ * @param options - Request options
3279
+ */
3280
+ async subscribeToResource(uri, options) {
3281
+ if (!this.client) {
3282
+ throw new Error("MCP client is not connected");
3283
+ }
3284
+ logger.debug(`Subscribing to resource: ${uri}`);
3285
+ return await this.client.subscribeResource({ uri }, options);
3286
+ }
3287
+ /**
3288
+ * Unsubscribe from resource updates
3289
+ *
3290
+ * @param uri - URI of the resource to unsubscribe from
3291
+ * @param options - Request options
3292
+ */
3293
+ async unsubscribeFromResource(uri, options) {
3294
+ if (!this.client) {
3295
+ throw new Error("MCP client is not connected");
3296
+ }
3297
+ logger.debug(`Unsubscribing from resource: ${uri}`);
3298
+ return await this.client.unsubscribeResource({ uri }, options);
3299
+ }
3208
3300
  async listPrompts() {
3209
3301
  if (!this.client) {
3210
3302
  throw new Error("MCP client is not connected");
@@ -3301,12 +3393,16 @@ var HttpConnector = class extends BaseConnector {
3301
3393
  }
3302
3394
  logger.debug(`Connecting to MCP implementation via HTTP: ${baseUrl}`);
3303
3395
  try {
3304
- logger.debug("Attempting streamable HTTP transport...");
3396
+ logger.info("\u{1F504} Attempting streamable HTTP transport...");
3305
3397
  await this.connectWithStreamableHttp(baseUrl);
3398
+ logger.info("\u2705 Successfully connected via streamable HTTP");
3306
3399
  } catch (err) {
3307
3400
  let fallbackReason = "Unknown error";
3308
3401
  if (err instanceof import_streamableHttp2.StreamableHTTPError) {
3309
- if (err.code === 404 || err.code === 405) {
3402
+ if (err.code === 400 && err.message.includes("Missing session ID")) {
3403
+ fallbackReason = "Server requires session ID (FastMCP compatibility) - using SSE transport";
3404
+ logger.warn(`\u26A0\uFE0F ${fallbackReason}`);
3405
+ } else if (err.code === 404 || err.code === 405) {
3310
3406
  fallbackReason = `Server returned ${err.code} - server likely doesn't support streamable HTTP`;
3311
3407
  logger.debug(fallbackReason);
3312
3408
  } else {
@@ -3315,7 +3411,11 @@ var HttpConnector = class extends BaseConnector {
3315
3411
  }
3316
3412
  } else if (err instanceof Error) {
3317
3413
  const errorStr = err.toString();
3318
- if (errorStr.includes("405 Method Not Allowed") || errorStr.includes("404 Not Found")) {
3414
+ const errorMsg = err.message || "";
3415
+ if (errorStr.includes("Missing session ID") || errorStr.includes("Bad Request: Missing session ID") || errorMsg.includes("FastMCP session ID error")) {
3416
+ fallbackReason = "Server requires session ID (FastMCP compatibility) - using SSE transport";
3417
+ logger.warn(`\u26A0\uFE0F ${fallbackReason}`);
3418
+ } else if (errorStr.includes("405 Method Not Allowed") || errorStr.includes("404 Not Found")) {
3319
3419
  fallbackReason = "Server doesn't support streamable HTTP (405/404)";
3320
3420
  logger.debug(fallbackReason);
3321
3421
  } else {
@@ -3323,7 +3423,7 @@ var HttpConnector = class extends BaseConnector {
3323
3423
  logger.debug(fallbackReason);
3324
3424
  }
3325
3425
  }
3326
- logger.debug("Falling back to SSE transport...");
3426
+ logger.info("\u{1F504} Falling back to SSE transport...");
3327
3427
  try {
3328
3428
  await this.connectWithSse(baseUrl);
3329
3429
  } catch (sseErr) {
@@ -3354,7 +3454,19 @@ var HttpConnector = class extends BaseConnector {
3354
3454
  );
3355
3455
  const transport = await this.connectionManager.start();
3356
3456
  this.client = new import_client.Client(this.clientInfo, this.opts.clientOptions);
3357
- await this.client.connect(transport);
3457
+ try {
3458
+ await this.client.connect(transport);
3459
+ } catch (connectErr) {
3460
+ if (connectErr instanceof Error) {
3461
+ const errMsg = connectErr.message || connectErr.toString();
3462
+ if (errMsg.includes("Missing session ID") || errMsg.includes("Bad Request: Missing session ID")) {
3463
+ const wrappedError = new Error(`FastMCP session ID error: ${errMsg}`);
3464
+ wrappedError.cause = connectErr;
3465
+ throw wrappedError;
3466
+ }
3467
+ }
3468
+ throw connectErr;
3469
+ }
3358
3470
  this.connected = true;
3359
3471
  this.transportType = "streamable-http";
3360
3472
  logger.debug(`Successfully connected to MCP implementation via streamable HTTP: ${baseUrl}`);
@@ -3678,14 +3790,26 @@ var WebSocketConnector = class extends BaseConnector {
3678
3790
  logger.debug("Received unsolicited message", data);
3679
3791
  }
3680
3792
  }, "onMessage");
3681
- socket.addEventListener ? socket.addEventListener("message", onMessage) : socket.on("message", onMessage);
3793
+ if (socket.addEventListener) {
3794
+ socket.addEventListener("message", onMessage);
3795
+ } else {
3796
+ socket.on("message", onMessage);
3797
+ }
3682
3798
  return new Promise((resolve) => {
3683
3799
  const onClose = /* @__PURE__ */ __name(() => {
3684
- socket.removeEventListener ? socket.removeEventListener("message", onMessage) : socket.off("message", onMessage);
3800
+ if (socket.removeEventListener) {
3801
+ socket.removeEventListener("message", onMessage);
3802
+ } else {
3803
+ socket.off("message", onMessage);
3804
+ }
3685
3805
  this.rejectAll(new Error("WebSocket closed"));
3686
3806
  resolve();
3687
3807
  }, "onClose");
3688
- socket.addEventListener ? socket.addEventListener("close", onClose) : socket.on("close", onClose);
3808
+ if (socket.addEventListener) {
3809
+ socket.addEventListener("close", onClose);
3810
+ } else {
3811
+ socket.on("close", onClose);
3812
+ }
3689
3813
  });
3690
3814
  }
3691
3815
  rejectAll(err) {
@@ -3941,6 +4065,7 @@ var McpServer = class {
3941
4065
  version: config2.version
3942
4066
  });
3943
4067
  this.app = (0, import_express.default)();
4068
+ this.app.use(import_express.default.json());
3944
4069
  this.app.use((req, res, next) => {
3945
4070
  res.header("Access-Control-Allow-Origin", "*");
3946
4071
  res.header("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
@@ -3969,7 +4094,10 @@ var McpServer = class {
3969
4094
  * @param resourceDefinition - Configuration object containing resource metadata and handler function
3970
4095
  * @param resourceDefinition.name - Unique identifier for the resource
3971
4096
  * @param resourceDefinition.uri - URI pattern for accessing the resource
3972
- * @param resourceDefinition.resource - Resource metadata (mime type, description, etc.)
4097
+ * @param resourceDefinition.title - Optional human-readable title for the resource
4098
+ * @param resourceDefinition.description - Optional description of the resource
4099
+ * @param resourceDefinition.mimeType - MIME type of the resource content
4100
+ * @param resourceDefinition.annotations - Optional annotations (audience, priority, lastModified)
3973
4101
  * @param resourceDefinition.fn - Async function that returns the resource content
3974
4102
  * @returns The server instance for method chaining
3975
4103
  *
@@ -3978,8 +4106,20 @@ var McpServer = class {
3978
4106
  * server.resource({
3979
4107
  * name: 'config',
3980
4108
  * uri: 'config://app-settings',
3981
- * resource: { mimeType: 'application/json' },
3982
- * fn: async () => ({ theme: 'dark', language: 'en' })
4109
+ * title: 'Application Settings',
4110
+ * mimeType: 'application/json',
4111
+ * description: 'Current application configuration',
4112
+ * annotations: {
4113
+ * audience: ['user'],
4114
+ * priority: 0.8
4115
+ * },
4116
+ * fn: async () => ({
4117
+ * contents: [{
4118
+ * uri: 'config://app-settings',
4119
+ * mimeType: 'application/json',
4120
+ * text: JSON.stringify({ theme: 'dark', language: 'en' })
4121
+ * }]
4122
+ * })
3983
4123
  * })
3984
4124
  * ```
3985
4125
  */
@@ -3987,7 +4127,13 @@ var McpServer = class {
3987
4127
  this.server.resource(
3988
4128
  resourceDefinition.name,
3989
4129
  resourceDefinition.uri,
3990
- resourceDefinition.resource,
4130
+ {
4131
+ name: resourceDefinition.name,
4132
+ title: resourceDefinition.title,
4133
+ description: resourceDefinition.description,
4134
+ mimeType: resourceDefinition.mimeType,
4135
+ annotations: resourceDefinition.annotations
4136
+ },
3991
4137
  async () => {
3992
4138
  return await resourceDefinition.fn();
3993
4139
  }
@@ -3996,18 +4142,76 @@ var McpServer = class {
3996
4142
  }
3997
4143
  /**
3998
4144
  * Define a dynamic resource template with parameters
4145
+ *
4146
+ * Registers a parameterized resource template with the MCP server. Templates use URI
4147
+ * patterns with placeholders that can be filled in at request time, allowing dynamic
4148
+ * resource generation based on parameters.
4149
+ *
4150
+ * @param resourceTemplateDefinition - Configuration object for the resource template
4151
+ * @param resourceTemplateDefinition.name - Unique identifier for the template
4152
+ * @param resourceTemplateDefinition.resourceTemplate - ResourceTemplate object with uriTemplate and metadata
4153
+ * @param resourceTemplateDefinition.fn - Async function that generates resource content from URI and params
4154
+ * @returns The server instance for method chaining
4155
+ *
4156
+ * @example
4157
+ * ```typescript
4158
+ * server.resourceTemplate({
4159
+ * name: 'user-profile',
4160
+ * resourceTemplate: {
4161
+ * uriTemplate: 'user://{userId}/profile',
4162
+ * name: 'User Profile',
4163
+ * mimeType: 'application/json'
4164
+ * },
4165
+ * fn: async (uri, params) => ({
4166
+ * contents: [{
4167
+ * uri: uri.toString(),
4168
+ * mimeType: 'application/json',
4169
+ * text: JSON.stringify({ userId: params.userId, name: 'John Doe' })
4170
+ * }]
4171
+ * })
4172
+ * })
4173
+ * ```
3999
4174
  */
4000
- // TODO implement, for some freaky reason this give errors
4001
- // resourceTemplate(resourceTemplateDefinition: ResourceTemplateDefinition): this {
4002
- // this.server.resource(
4003
- // resourceTemplateDefinition.name,
4004
- // resourceTemplateDefinition.resourceTemplate,
4005
- // async (uri, params) => {
4006
- // return await resourceTemplateDefinition.fn(uri, params)
4007
- // },
4008
- // )
4009
- // return this
4010
- // }
4175
+ resourceTemplate(resourceTemplateDefinition) {
4176
+ const template = new import_mcp.ResourceTemplate(
4177
+ resourceTemplateDefinition.resourceTemplate.uriTemplate,
4178
+ {
4179
+ list: void 0,
4180
+ // Optional: callback to list all matching resources
4181
+ complete: void 0
4182
+ // Optional: callback for auto-completion
4183
+ }
4184
+ );
4185
+ const metadata = {};
4186
+ if (resourceTemplateDefinition.resourceTemplate.name) {
4187
+ metadata.name = resourceTemplateDefinition.resourceTemplate.name;
4188
+ }
4189
+ if (resourceTemplateDefinition.title) {
4190
+ metadata.title = resourceTemplateDefinition.title;
4191
+ }
4192
+ if (resourceTemplateDefinition.description || resourceTemplateDefinition.resourceTemplate.description) {
4193
+ metadata.description = resourceTemplateDefinition.description || resourceTemplateDefinition.resourceTemplate.description;
4194
+ }
4195
+ if (resourceTemplateDefinition.resourceTemplate.mimeType) {
4196
+ metadata.mimeType = resourceTemplateDefinition.resourceTemplate.mimeType;
4197
+ }
4198
+ if (resourceTemplateDefinition.annotations) {
4199
+ metadata.annotations = resourceTemplateDefinition.annotations;
4200
+ }
4201
+ this.server.resource(
4202
+ resourceTemplateDefinition.name,
4203
+ template,
4204
+ metadata,
4205
+ async (uri) => {
4206
+ const params = this.parseTemplateUri(
4207
+ resourceTemplateDefinition.resourceTemplate.uriTemplate,
4208
+ uri.toString()
4209
+ );
4210
+ return await resourceTemplateDefinition.fn(uri, params);
4211
+ }
4212
+ );
4213
+ return this;
4214
+ }
4011
4215
  /**
4012
4216
  * Define a tool that can be called by clients
4013
4217
  *
@@ -4389,6 +4593,39 @@ var McpServer = class {
4389
4593
  const matches = uriTemplate.match(/\{([^}]+)\}/g);
4390
4594
  return matches ? matches.map((match) => match.slice(1, -1)) : [];
4391
4595
  }
4596
+ /**
4597
+ * Parse parameter values from a URI based on a template
4598
+ *
4599
+ * Extracts parameter values from an actual URI by matching it against a URI template.
4600
+ * The template contains placeholders like {param} which are extracted as key-value pairs.
4601
+ *
4602
+ * @param template - URI template with placeholders (e.g., "user://{userId}/posts/{postId}")
4603
+ * @param uri - Actual URI to parse (e.g., "user://123/posts/456")
4604
+ * @returns Object mapping parameter names to their values
4605
+ *
4606
+ * @example
4607
+ * ```typescript
4608
+ * const params = this.parseTemplateUri("user://{userId}/posts/{postId}", "user://123/posts/456")
4609
+ * // Returns: { userId: "123", postId: "456" }
4610
+ * ```
4611
+ */
4612
+ parseTemplateUri(template, uri) {
4613
+ const params = {};
4614
+ let regexPattern = template.replace(/[.*+?^$()[\]\\|]/g, "\\$&");
4615
+ const paramNames = [];
4616
+ regexPattern = regexPattern.replace(/\\\{([^}]+)\\\}/g, (_, paramName) => {
4617
+ paramNames.push(paramName);
4618
+ return "([^/]+)";
4619
+ });
4620
+ const regex = new RegExp(`^${regexPattern}$`);
4621
+ const match = uri.match(regex);
4622
+ if (match) {
4623
+ paramNames.forEach((paramName, index) => {
4624
+ params[paramName] = match[index + 1];
4625
+ });
4626
+ }
4627
+ return params;
4628
+ }
4392
4629
  };
4393
4630
  function createMCPServer(name, config2 = {}) {
4394
4631
  const instance = new McpServer({
@@ -4781,7 +5018,7 @@ var BrowserOAuthClientProvider = class {
4781
5018
  this.serverUrl = serverUrl;
4782
5019
  this.storageKeyPrefix = options.storageKeyPrefix || "mcp:auth";
4783
5020
  this.serverUrlHash = this.hashString(serverUrl);
4784
- this.clientName = options.clientName || "MCP Browser Client";
5021
+ this.clientName = options.clientName || "mcp-use";
4785
5022
  this.clientUri = options.clientUri || (typeof window !== "undefined" ? window.location.origin : "");
4786
5023
  this.callbackUrl = (0, import_strict_url_sanitise.sanitizeUrl)(
4787
5024
  options.callbackUrl || (typeof window !== "undefined" ? new URL("/oauth/callback", window.location.origin).toString() : "/oauth/callback")
@@ -5202,7 +5439,7 @@ function useMcp(options) {
5202
5439
  }
5203
5440
  if (!clientRef.current) {
5204
5441
  clientRef.current = new import_client3.Client(
5205
- { name: clientConfig.name || "use-mcp-react-client", version: clientConfig.version || "0.1.0" },
5442
+ { name: clientConfig.name || "mcp-use", version: clientConfig.version || "0.1.0" },
5206
5443
  { capabilities: {} }
5207
5444
  );
5208
5445
  addLog("debug", "MCP Client initialized in connect.");
@@ -5738,7 +5975,6 @@ var import_messages3 = require("@langchain/core/messages");
5738
5975
  MCPAgent,
5739
5976
  MCPClient,
5740
5977
  MCPSession,
5741
- McpServer,
5742
5978
  OAuthHelper,
5743
5979
  ObservabilityManager,
5744
5980
  ReleaseMCPServerConnectionTool,
package/dist/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export * from './src/agents/utils/index.js';
13
13
  export { ServerManager } from './src/managers/server_manager.js';
14
14
  export * from './src/managers/tools/index.js';
15
15
  export { type ObservabilityConfig, ObservabilityManager } from './src/observability/index.js';
16
- export { createMCPServer, McpServer } from './src/server/index.js';
16
+ export { createMCPServer } from './src/server/index.js';
17
17
  export type { InputDefinition, PromptDefinition, PromptHandler, ResourceDefinition, ResourceHandler, ServerConfig, ToolDefinition, ToolHandler, } from './src/server/types.js';
18
18
  export { setTelemetrySource, Telemetry } from './src/telemetry/index.js';
19
19
  export { OAuthHelper, LINEAR_OAUTH_CONFIG, createOAuthMCPConfig } from './src/oauth-helper.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAEvE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAEhE,cAAc,+BAA+B,CAAA;AAG7C,OAAO,EAAE,KAAK,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAG7F,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAElE,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGxE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC9F,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGrH,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACpF,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,cAAc,sBAAsB,CAAA;AAGpC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAG3G,YAAY,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAErE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAEvE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAEhE,cAAc,+BAA+B,CAAA;AAG7C,OAAO,EAAE,KAAK,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAG7F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGxE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC9F,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGrH,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACpF,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,cAAc,sBAAsB,CAAA;AAGpC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAG3G,YAAY,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAErE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA"}