@tenuo/mcp 0.2.5-beta.0 → 0.3.1-beta.0

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/README.md CHANGED
@@ -63,6 +63,10 @@ failure returns the constant "Replay store unavailable"; pass
63
63
  `onNonceStoreError` for the original cause. Unknown option keys, including
64
64
  mixed typos like `{ allow, nonceStroe }`, throw at register time.
65
65
 
66
+ A minimal runnable version of the above, with an in-memory v2 client and
67
+ server, one allowed call, and one denied call, lives in
68
+ [`examples/v2`](examples/v2/README.md). From `tenuo-ts`: `pnpm example:mcp:v2`.
69
+
66
70
  There is no FastMCP adapter and no v1 adapter package. For
67
71
  `@modelcontextprotocol/sdk` v1, copy the recipe in
68
72
  `packages/core/examples/mcp/host.ts`.
package/dist/guard.d.ts CHANGED
@@ -64,4 +64,3 @@ export declare function guardTools(tenuo: Tenuo, server: Pick<McpServer, "regist
64
64
  register(name: string, config: GuardToolConfig<undefined>, handler: GuardedToolHandler<undefined>): RegisteredTool;
65
65
  register<TSchema extends StandardSchemaWithJSON>(name: string, config: GuardToolConfig<TSchema>, handler: GuardedToolHandler<TSchema>): RegisteredTool;
66
66
  };
67
- //# sourceMappingURL=guard.d.ts.map
package/dist/guard.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AllowPolicy, NonceStore, Tenuo } from \"@tenuo/core\";\nimport { TenuoConfigurationError } from \"@tenuo/core\";\nimport type {\n CallToolResult,\n Icon,\n InputRequiredResult,\n McpServer,\n RegisteredTool,\n ServerContext,\n StandardSchemaWithJSON,\n ToolAnnotations,\n ToolCallback,\n} from \"@modelcontextprotocol/server\";\n\nexport type McpToolResult = CallToolResult | InputRequiredResult;\n\nexport type GuardToolOptions = {\n readonly allow?: AllowPolicy;\n readonly onReceipt?: (receipt: string) => void | Promise<void>;\n readonly nonceStore?: NonceStore;\n readonly onNonceStoreError?: (error: unknown) => void | Promise<void>;\n /**\n * Isolated. Called when the tool handler throws. The client only ever sees\n * \"Tool execution failed\".\n */\n readonly onHandlerError?: (error: unknown, ctx: GuardCallContext) => void | Promise<void>;\n};\n\n/**\n * Enough context for `requestMeta()` and isolated hooks.\n * Official `registerTool` still passes a full `ServerContext`.\n */\nexport type GuardCallContext = {\n readonly mcpReq?: { readonly _meta?: unknown };\n readonly _meta?: unknown;\n readonly extra?: { readonly _meta?: unknown };\n};\n\n/** Infer handler args from an official Standard Schema (Zod v4 included). */\nexport type InferToolArgs<TSchema> = TSchema extends StandardSchemaWithJSON\n ? StandardSchemaWithJSON.InferOutput<TSchema> extends Record<string, unknown>\n ? StandardSchemaWithJSON.InferOutput<TSchema>\n : Record<string, unknown>\n : Record<string, unknown>;\n\n/** Official `registerTool` config plus the host ceiling. `allow` is never advertised. */\nexport type GuardToolConfig<TSchema extends StandardSchemaWithJSON | undefined = undefined> = {\n readonly title?: string;\n readonly description?: string;\n readonly inputSchema?: TSchema;\n readonly outputSchema?: StandardSchemaWithJSON;\n readonly annotations?: ToolAnnotations;\n readonly icons?: Icon[];\n readonly _meta?: Readonly<Record<string, unknown>>;\n} & GuardToolOptions;\n\nexport type GuardedToolHandler<TSchema extends StandardSchemaWithJSON | undefined = undefined> =\n TSchema extends StandardSchemaWithJSON\n ? (\n args: StandardSchemaWithJSON.InferOutput<TSchema>,\n ctx: ServerContext,\n ) => McpToolResult | Promise<McpToolResult>\n : (ctx: ServerContext) => McpToolResult | Promise<McpToolResult>;\n\n/** Low-level `guardHandler` callback. Prefer `guardTools().register()` for schema inference. */\nexport type GuardHandlerCallback<TArgs extends Record<string, unknown> = Record<string, unknown>> = (\n args: TArgs,\n ctx: GuardCallContext,\n) => McpToolResult | Promise<McpToolResult>;\n\nconst APPLICATION_ERROR_TEXT = \"Tool execution failed\";\n\n/**\n * Inbound `tools/call` `_meta` from a v2 `ServerContext` (`ctx.mcpReq._meta`).\n * Also accepts the v1 `extra._meta` shape so a recipe handler can reuse this.\n */\nexport function requestMeta(ctx: unknown): unknown {\n if (ctx === null || typeof ctx !== \"object\") {\n return undefined;\n }\n const extra = ctx as {\n mcpReq?: { _meta?: unknown };\n _meta?: unknown;\n extra?: { _meta?: unknown };\n };\n return extra.mcpReq?._meta ?? extra._meta ?? extra.extra?._meta;\n}\n\n/**\n * Low-level `registerTool` wrapper. Infers args from the callback.\n * Schema-typed registration belongs on `guardTools().register()`.\n * Official no-schema tools invoke this as `(ctx)` only; that overload returns\n * `ToolCallback<undefined>` so `registerTool` accepts it without a cast.\n */\nexport function guardHandler(\n tenuo: Tenuo,\n name: string,\n handler: (ctx: GuardCallContext) => McpToolResult | Promise<McpToolResult>,\n): ToolCallback<undefined>;\nexport function guardHandler(\n tenuo: Tenuo,\n name: string,\n options: GuardToolOptions,\n handler: (ctx: GuardCallContext) => McpToolResult | Promise<McpToolResult>,\n): ToolCallback<undefined>;\nexport function guardHandler<TArgs extends Record<string, unknown>>(\n tenuo: Tenuo,\n name: string,\n handler: GuardHandlerCallback<TArgs>,\n): (args: TArgs, ctx?: GuardCallContext) => Promise<McpToolResult>;\nexport function guardHandler<TArgs extends Record<string, unknown>>(\n tenuo: Tenuo,\n name: string,\n options: GuardToolOptions,\n handler: GuardHandlerCallback<TArgs>,\n): (args: TArgs, ctx?: GuardCallContext) => Promise<McpToolResult>;\nexport function guardHandler<TArgs extends Record<string, unknown>>(\n tenuo: Tenuo,\n name: string,\n optionsOrHandler:\n | GuardToolOptions\n | GuardHandlerCallback<TArgs>\n | ((ctx: GuardCallContext) => McpToolResult | Promise<McpToolResult>),\n maybeHandler?:\n | GuardHandlerCallback<TArgs>\n | ((ctx: GuardCallContext) => McpToolResult | Promise<McpToolResult>),\n):\n | ToolCallback<undefined>\n | ((args: TArgs, ctx?: GuardCallContext) => Promise<McpToolResult>) {\n const options = isGuardOptions(optionsOrHandler) ? optionsOrHandler : undefined;\n const handler = isGuardOptions(optionsOrHandler) ? maybeHandler : optionsOrHandler;\n if (isTaskHandler(optionsOrHandler) || isTaskHandler(maybeHandler)) {\n throw new TenuoConfigurationError(\"@tenuo/mcp does not wrap task handlers\");\n }\n if (typeof handler !== \"function\") {\n throw new TenuoConfigurationError(\"guardHandler() requires a tool handler\");\n }\n return (async (argsOrCtx: unknown, maybeCtx?: unknown) => {\n const ctxOnly = isCtxOnlyCall(argsOrCtx, maybeCtx);\n const args = (ctxOnly ? {} : asRecord(argsOrCtx)) as TArgs;\n const ctx = (ctxOnly ? argsOrCtx : maybeCtx) as GuardCallContext;\n return runGuarded(tenuo, name, options, handler as GuardHandlerCallback, args, ctx, ctxOnly);\n }) as ToolCallback<undefined>;\n}\n\n/**\n * Register tools on an official `@modelcontextprotocol/server` v2 `McpServer`.\n * Client attach stays `tenuo.mcp.attach()` on `@tenuo/core`.\n * Tools without `inputSchema` are registered as `(ctx) => …`.\n */\nexport function guardTools(tenuo: Tenuo, server: Pick<McpServer, \"registerTool\">): {\n register(name: string, config: GuardToolConfig<undefined>, handler: GuardedToolHandler<undefined>): RegisteredTool;\n register<TSchema extends StandardSchemaWithJSON>(\n name: string,\n config: GuardToolConfig<TSchema>,\n handler: GuardedToolHandler<TSchema>,\n ): RegisteredTool;\n} {\n return {\n register(name: string, config: GuardToolConfig<StandardSchemaWithJSON | undefined>, handler: GuardedToolHandler<StandardSchemaWithJSON | undefined>) {\n assertRegisterConfig(config);\n const options = tenuoOptions(config);\n const official = advertisedConfig(config);\n if (config.inputSchema === undefined) {\n return server.registerTool(name, official, async (ctx: ServerContext) =>\n runGuarded(tenuo, name, options, handler, {}, ctx, true),\n );\n }\n return server.registerTool(\n name,\n { ...official, inputSchema: config.inputSchema },\n async (args: unknown, ctx: ServerContext) =>\n runGuarded(tenuo, name, options, handler, asRecord(args), ctx, false),\n );\n },\n };\n}\n\nasync function runGuarded(\n tenuo: Tenuo,\n name: string,\n options: GuardToolOptions | undefined,\n handler: GuardHandlerCallback | GuardedToolHandler<StandardSchemaWithJSON | undefined>,\n args: Record<string, unknown>,\n ctx: GuardCallContext,\n ctxOnly: boolean,\n): Promise<McpToolResult> {\n let authorized: Record<string, unknown>;\n try {\n authorized = await tenuo.mcp.verify(name, args, requestMeta(ctx), {\n ...(options?.allow !== undefined ? { allow: options.allow } : {}),\n ...(options?.onReceipt !== undefined ? { onReceipt: options.onReceipt } : {}),\n ...(options?.nonceStore !== undefined ? { nonceStore: options.nonceStore } : {}),\n ...(options?.onNonceStoreError !== undefined ? { onNonceStoreError: options.onNonceStoreError } : {}),\n });\n } catch (error) {\n return {\n isError: true,\n content: [{ type: \"text\", text: JSON.stringify(tenuo.mcp.jsonRpcError(error)) }],\n };\n }\n try {\n if (ctxOnly) {\n return await (handler as GuardedToolHandler<undefined>)(ctx as ServerContext);\n }\n return await (handler as GuardHandlerCallback)(authorized, ctx);\n } catch (error) {\n emitHandlerError(options?.onHandlerError, error, ctx);\n return {\n isError: true,\n content: [{ type: \"text\", text: APPLICATION_ERROR_TEXT }],\n };\n }\n}\n\nfunction emitHandlerError(\n hook: ((error: unknown, ctx: GuardCallContext) => void | Promise<void>) | undefined,\n error: unknown,\n ctx: GuardCallContext,\n): void {\n if (hook === undefined) {\n return;\n }\n try {\n const result = hook(error, ctx);\n if (result !== null && typeof result === \"object\" && \"then\" in result && typeof result.then === \"function\") {\n void Promise.resolve(result).catch(() => undefined);\n }\n } catch {\n // Isolated — must not change the public error.\n }\n}\n\nfunction isCtxOnlyCall(argsOrCtx: unknown, maybeCtx: unknown): boolean {\n return maybeCtx === undefined && isServerContext(argsOrCtx);\n}\n\nfunction isServerContext(value: unknown): boolean {\n return value !== null && typeof value === \"object\" && \"mcpReq\" in value;\n}\n\nconst GUARD_OPTION_KEYS = new Set([\n \"allow\",\n \"onReceipt\",\n \"nonceStore\",\n \"onNonceStoreError\",\n \"onHandlerError\",\n]);\nconst REGISTER_KEYS = new Set([\n \"title\",\n \"description\",\n \"inputSchema\",\n \"outputSchema\",\n \"annotations\",\n \"icons\",\n \"_meta\",\n \"allow\",\n \"onReceipt\",\n \"nonceStore\",\n \"onNonceStoreError\",\n \"onHandlerError\",\n]);\n\nfunction assertKnownKeys(value: object, known: ReadonlySet<string>, label: string): void {\n const unknown = Object.keys(value).filter((key) => !known.has(key));\n if (unknown[0] !== undefined) {\n throw new TenuoConfigurationError(\n `${label} has unknown key '${unknown[0]}'. Use ${[...known].join(\", \")}.`,\n );\n }\n}\n\nfunction assertRegisterConfig(config: object): void {\n assertKnownKeys(config, REGISTER_KEYS, \"guardTools().register() config\");\n}\n\nfunction tenuoOptions(config: GuardToolOptions): GuardToolOptions {\n return {\n ...(config.allow !== undefined ? { allow: config.allow } : {}),\n ...(config.onReceipt !== undefined ? { onReceipt: config.onReceipt } : {}),\n ...(config.nonceStore !== undefined ? { nonceStore: config.nonceStore } : {}),\n ...(config.onNonceStoreError !== undefined ? { onNonceStoreError: config.onNonceStoreError } : {}),\n ...(config.onHandlerError !== undefined ? { onHandlerError: config.onHandlerError } : {}),\n };\n}\n\nfunction advertisedConfig(config: GuardToolConfig<StandardSchemaWithJSON | undefined>): {\n title?: string;\n description?: string;\n outputSchema?: StandardSchemaWithJSON;\n annotations?: ToolAnnotations;\n icons?: Icon[];\n _meta?: Record<string, unknown>;\n} {\n return {\n ...(config.title !== undefined ? { title: config.title } : {}),\n ...(config.description !== undefined ? { description: config.description } : {}),\n ...(config.outputSchema !== undefined ? { outputSchema: config.outputSchema } : {}),\n ...(config.annotations !== undefined ? { annotations: config.annotations } : {}),\n ...(config.icons !== undefined ? { icons: config.icons } : {}),\n ...(config._meta !== undefined ? { _meta: { ...config._meta } } : {}),\n };\n}\n\nfunction isGuardOptions(value: unknown): value is GuardToolOptions {\n if (value === null || typeof value !== \"object\" || Array.isArray(value) || typeof value === \"function\") {\n return false;\n }\n const keys = Object.keys(value);\n assertKnownKeys(value, GUARD_OPTION_KEYS, \"guardHandler() options\");\n const record = value as {\n allow?: unknown;\n onReceipt?: unknown;\n nonceStore?: unknown;\n onNonceStoreError?: unknown;\n onHandlerError?: unknown;\n };\n const hasAllow = \"allow\" in record && record.allow !== null && typeof record.allow === \"object\";\n const hasReceipt = \"onReceipt\" in record && typeof record.onReceipt === \"function\";\n const hasNonce = \"nonceStore\" in record && record.nonceStore !== null && typeof record.nonceStore === \"object\";\n const hasStoreError = \"onNonceStoreError\" in record && typeof record.onNonceStoreError === \"function\";\n const hasHandlerError = \"onHandlerError\" in record && typeof record.onHandlerError === \"function\";\n return keys.length === 0 || hasAllow || hasReceipt || hasNonce || hasStoreError || hasHandlerError;\n}\n\nfunction isTaskHandler(value: unknown): boolean {\n return value !== null && typeof value === \"object\" && \"createTask\" in value;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n if (value !== null && typeof value === \"object\" && !Array.isArray(value)) {\n return { ...(value as Record<string, unknown>) };\n }\n return {};\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  export type { GuardCallContext, GuardHandlerCallback, GuardToolConfig, GuardToolOptions, GuardedToolHandler, InferToolArgs, McpToolResult, } from "./guard.ts";
2
2
  export { guardHandler, guardTools, requestMeta } from "./guard.ts";
3
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC","sourcesContent":["export type {\n GuardCallContext,\n GuardHandlerCallback,\n GuardToolConfig,\n GuardToolOptions,\n GuardedToolHandler,\n InferToolArgs,\n McpToolResult,\n} from \"./guard.ts\";\nexport { guardHandler, guardTools, requestMeta } from \"./guard.ts\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tenuo/mcp",
3
- "version": "0.2.5-beta.0",
3
+ "version": "0.3.1-beta.0",
4
4
  "description": "Optional adapter: guard @modelcontextprotocol/server v2 tools with @tenuo/core.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Tenuo Contributors",
@@ -51,7 +51,7 @@
51
51
  },
52
52
  "peerDependencies": {
53
53
  "@modelcontextprotocol/server": "^2.0.0",
54
- "@tenuo/core": ">=0.2.5-beta.0 <0.2.6"
54
+ "@tenuo/core": ">=0.3.1-beta.0 <0.3.2"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@modelcontextprotocol/client": "2.0.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,KAAK,EACV,cAAc,EACd,IAAI,EACJ,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,YAAY,EACb,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3F,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/C,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,aAAa,CAAC,OAAO,IAAI,OAAO,SAAS,sBAAsB,GACvE,sBAAsB,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzE,sBAAsB,CAAC,WAAW,CAAC,OAAO,CAAC,GAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,yFAAyF;AACzF,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,sBAAsB,GAAG,SAAS,GAAG,SAAS,IAAI;IAC5F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD,GAAG,gBAAgB,CAAC;AAErB,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,sBAAsB,GAAG,SAAS,GAAG,SAAS,IAC3F,OAAO,SAAS,sBAAsB,GAClC,CACE,IAAI,EAAE,sBAAsB,CAAC,WAAW,CAAC,OAAO,CAAC,EACjD,GAAG,EAAE,aAAa,KACf,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GAC3C,CAAC,GAAG,EAAE,aAAa,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAErE,gGAAgG;AAChG,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAClG,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,gBAAgB,KAClB,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAI5C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAUjD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GACzE,YAAY,CAAC,SAAS,CAAC,CAAC;AAC3B,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GACzE,YAAY,CAAC,SAAS,CAAC,CAAC;AAC3B,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,GACnC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AACnE,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,GACnC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AA8BnE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,GAAG;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC;IACnH,QAAQ,CAAC,OAAO,SAAS,sBAAsB,EAC7C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACnC,cAAc,CAAC;CACnB,CAmBA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}