apcore-mcp 0.13.0 → 0.14.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.
Files changed (112) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +165 -19
  3. package/dist/acl-builder.d.ts +43 -0
  4. package/dist/acl-builder.d.ts.map +1 -0
  5. package/dist/acl-builder.js +115 -0
  6. package/dist/acl-builder.js.map +1 -0
  7. package/dist/adapters/annotations.d.ts.map +1 -1
  8. package/dist/adapters/annotations.js +23 -2
  9. package/dist/adapters/annotations.js.map +1 -1
  10. package/dist/adapters/errors.d.ts +17 -0
  11. package/dist/adapters/errors.d.ts.map +1 -1
  12. package/dist/adapters/errors.js +146 -2
  13. package/dist/adapters/errors.js.map +1 -1
  14. package/dist/adapters/id-normalizer.d.ts +40 -0
  15. package/dist/adapters/id-normalizer.d.ts.map +1 -0
  16. package/dist/adapters/id-normalizer.js +59 -0
  17. package/dist/adapters/id-normalizer.js.map +1 -0
  18. package/dist/adapters/index.d.ts +2 -2
  19. package/dist/adapters/index.d.ts.map +1 -1
  20. package/dist/adapters/index.js +2 -2
  21. package/dist/adapters/index.js.map +1 -1
  22. package/dist/adapters/{mcpErrorFormatter.d.ts → mcp-error-formatter.d.ts} +1 -1
  23. package/dist/adapters/mcp-error-formatter.d.ts.map +1 -0
  24. package/dist/adapters/{mcpErrorFormatter.js → mcp-error-formatter.js} +1 -1
  25. package/dist/adapters/mcp-error-formatter.js.map +1 -0
  26. package/dist/adapters/schema.d.ts +21 -4
  27. package/dist/adapters/schema.d.ts.map +1 -1
  28. package/dist/adapters/schema.js +147 -13
  29. package/dist/adapters/schema.js.map +1 -1
  30. package/dist/apcore-mcp.d.ts +24 -2
  31. package/dist/apcore-mcp.d.ts.map +1 -1
  32. package/dist/apcore-mcp.js +8 -0
  33. package/dist/apcore-mcp.js.map +1 -1
  34. package/dist/auth/hooks.d.ts +1 -1
  35. package/dist/auth/hooks.d.ts.map +1 -1
  36. package/dist/auth/hooks.js +10 -3
  37. package/dist/auth/hooks.js.map +1 -1
  38. package/dist/auth/jwt.d.ts +1 -2
  39. package/dist/auth/jwt.d.ts.map +1 -1
  40. package/dist/auth/jwt.js +18 -10
  41. package/dist/auth/jwt.js.map +1 -1
  42. package/dist/auth/types.d.ts +6 -3
  43. package/dist/auth/types.d.ts.map +1 -1
  44. package/dist/cli.d.ts.map +1 -1
  45. package/dist/cli.js +12 -1
  46. package/dist/cli.js.map +1 -1
  47. package/dist/config.d.ts.map +1 -1
  48. package/dist/config.js +6 -0
  49. package/dist/config.js.map +1 -1
  50. package/dist/converters/openai.d.ts +10 -0
  51. package/dist/converters/openai.d.ts.map +1 -1
  52. package/dist/converters/openai.js +100 -5
  53. package/dist/converters/openai.js.map +1 -1
  54. package/dist/explorer/index.d.ts +2 -0
  55. package/dist/explorer/index.d.ts.map +1 -0
  56. package/dist/explorer/index.js +2 -0
  57. package/dist/explorer/index.js.map +1 -0
  58. package/dist/index.d.ts +55 -5
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +319 -107
  61. package/dist/index.js.map +1 -1
  62. package/dist/inspector/index.d.ts +2 -0
  63. package/dist/inspector/index.d.ts.map +1 -0
  64. package/dist/inspector/index.js +2 -0
  65. package/dist/inspector/index.js.map +1 -0
  66. package/dist/middleware-builder.d.ts +41 -0
  67. package/dist/middleware-builder.d.ts.map +1 -0
  68. package/dist/middleware-builder.js +129 -0
  69. package/dist/middleware-builder.js.map +1 -0
  70. package/dist/server/async-task-bridge.d.ts +190 -0
  71. package/dist/server/async-task-bridge.d.ts.map +1 -0
  72. package/dist/server/async-task-bridge.js +393 -0
  73. package/dist/server/async-task-bridge.js.map +1 -0
  74. package/dist/server/context.d.ts +9 -2
  75. package/dist/server/context.d.ts.map +1 -1
  76. package/dist/server/context.js +14 -6
  77. package/dist/server/context.js.map +1 -1
  78. package/dist/server/factory.d.ts +25 -2
  79. package/dist/server/factory.d.ts.map +1 -1
  80. package/dist/server/factory.js +127 -7
  81. package/dist/server/factory.js.map +1 -1
  82. package/dist/server/listener.d.ts +3 -0
  83. package/dist/server/listener.d.ts.map +1 -1
  84. package/dist/server/listener.js +13 -2
  85. package/dist/server/listener.js.map +1 -1
  86. package/dist/server/observability.d.ts +51 -0
  87. package/dist/server/observability.d.ts.map +1 -0
  88. package/dist/server/observability.js +96 -0
  89. package/dist/server/observability.js.map +1 -0
  90. package/dist/server/router.d.ts +77 -0
  91. package/dist/server/router.d.ts.map +1 -1
  92. package/dist/server/router.js +224 -10
  93. package/dist/server/router.js.map +1 -1
  94. package/dist/server/trace-context.d.ts +40 -0
  95. package/dist/server/trace-context.d.ts.map +1 -0
  96. package/dist/server/trace-context.js +67 -0
  97. package/dist/server/trace-context.js.map +1 -0
  98. package/dist/server/transport.d.ts +39 -0
  99. package/dist/server/transport.d.ts.map +1 -1
  100. package/dist/server/transport.js +134 -4
  101. package/dist/server/transport.js.map +1 -1
  102. package/dist/types.d.ts +14 -5
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/types.js +8 -0
  105. package/dist/types.js.map +1 -1
  106. package/package.json +11 -5
  107. package/dist/adapters/idNormalizer.d.ts +0 -22
  108. package/dist/adapters/idNormalizer.d.ts.map +0 -1
  109. package/dist/adapters/idNormalizer.js +0 -30
  110. package/dist/adapters/idNormalizer.js.map +0 -1
  111. package/dist/adapters/mcpErrorFormatter.d.ts.map +0 -1
  112. package/dist/adapters/mcpErrorFormatter.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/adapters/annotations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/adapters/annotations.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,13 @@
4
4
  * Handles ModuleError instances with specific error codes, sanitizes
5
5
  * internal error details, formats schema validation errors with
6
6
  * field-level detail, and extracts AI guidance fields.
7
+ *
8
+ * Cross-language contract: apcore-js exposes concrete error classes
9
+ * (e.g. `TaskLimitExceededError`). We prefer `instanceof` dispatch when
10
+ * those classes are importable so structured fields flow through
11
+ * losslessly; we fall back to duck-typing (`error.code` inspection)
12
+ * when apcore-js is unavailable or the caller constructs a bare
13
+ * `ModuleError`.
7
14
  */
8
15
  import type { McpErrorResponse } from "../types.js";
9
16
  export declare class ErrorMapper {
@@ -14,6 +21,16 @@ export declare class ErrorMapper {
14
21
  * Applies sanitization and formatting rules based on the error code.
15
22
  */
16
23
  toMcpError(error: unknown): McpErrorResponse;
24
+ /**
25
+ * Preferred `instanceof` dispatch for concrete apcore-js error classes.
26
+ *
27
+ * When the cache hasn't been populated yet (first call before the lazy
28
+ * load settles), returns null and the caller falls back to duck-typing.
29
+ * Once the cache is warm, subsequent calls produce identical output
30
+ * whether the error was thrown as a concrete class or a duck-typed
31
+ * plain object — the duck-typed branch below handles the latter.
32
+ */
33
+ private _matchApcoreErrorInstance;
17
34
  /**
18
35
  * Extract AI guidance fields from error and attach non-undefined values to result.
19
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/adapters/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAgBpD,qBAAa,WAAW;IACtB;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAwK5C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;CA4B/B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/adapters/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAmDpD,qBAAa,WAAW;IACtB;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAgO5C;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAyDjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;CA4B/B"}
@@ -4,8 +4,43 @@
4
4
  * Handles ModuleError instances with specific error codes, sanitizes
5
5
  * internal error details, formats schema validation errors with
6
6
  * field-level detail, and extracts AI guidance fields.
7
+ *
8
+ * Cross-language contract: apcore-js exposes concrete error classes
9
+ * (e.g. `TaskLimitExceededError`). We prefer `instanceof` dispatch when
10
+ * those classes are importable so structured fields flow through
11
+ * losslessly; we fall back to duck-typing (`error.code` inspection)
12
+ * when apcore-js is unavailable or the caller constructs a bare
13
+ * `ModuleError`.
7
14
  */
8
15
  import { ErrorCodes } from "../types.js";
16
+ /**
17
+ * Lazy snapshot of apcore-js error classes used for `instanceof` dispatch.
18
+ * Populated on first use; falls back to duck-typing when apcore-js is
19
+ * unavailable. Cached across calls for perf.
20
+ */
21
+ let _apcoreErrorClasses = null;
22
+ async function _loadApcoreErrorClasses() {
23
+ if (_apcoreErrorClasses)
24
+ return _apcoreErrorClasses;
25
+ try {
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ const apcore = (await import("apcore-js"));
28
+ _apcoreErrorClasses = {
29
+ TaskLimitExceededError: apcore.TaskLimitExceededError,
30
+ VersionConstraintError: apcore.VersionConstraintError,
31
+ DependencyNotFoundError: apcore.DependencyNotFoundError,
32
+ DependencyVersionMismatchError: apcore.DependencyVersionMismatchError,
33
+ loaded: true,
34
+ };
35
+ }
36
+ catch {
37
+ _apcoreErrorClasses = { loaded: true };
38
+ }
39
+ return _apcoreErrorClasses;
40
+ }
41
+ // Kick off the load eagerly but don't await; toMcpError is sync and will
42
+ // observe the populated cache on subsequent invocations.
43
+ void _loadApcoreErrorClasses();
9
44
  /** Internal error codes that should be sanitized to a generic message. */
10
45
  const INTERNAL_ERROR_CODES = new Set([
11
46
  ErrorCodes.CALL_DEPTH_EXCEEDED,
@@ -36,6 +71,13 @@ export class ErrorMapper {
36
71
  retryable: true,
37
72
  };
38
73
  }
74
+ // Preferred: instanceof dispatch against apcore-js's concrete error
75
+ // classes so cross-language contracts stay tight. Falls back to the
76
+ // duck-typed code-based dispatch below when apcore-js was unavailable
77
+ // at load time.
78
+ const instanceMatch = this._matchApcoreErrorInstance(error);
79
+ if (instanceMatch)
80
+ return instanceMatch;
39
81
  // Duck-type check for ModuleError-like objects
40
82
  if (this._isModuleError(error)) {
41
83
  const code = error.code;
@@ -71,8 +113,9 @@ export class ErrorMapper {
71
113
  return result;
72
114
  }
73
115
  // Approval pending -> narrow details to approvalId only
74
- // NOTE: apcore-js may use camelCase (approvalId) or snake_case (approval_id).
75
- // Check both to stay compatible with either convention.
116
+ // Handles both camelCase (apcore-js) and snake_case (apcore-py/rs) field names.
117
+ // [D10-011] TypeScript intentionally handles both conventions; Python+Rust only
118
+ // handle snake_case and would silently emit `details: null` for camelCase errors.
76
119
  if (code === ErrorCodes.APPROVAL_PENDING) {
77
120
  const idKey = details && "approvalId" in details
78
121
  ? "approvalId"
@@ -161,6 +204,47 @@ export class ErrorMapper {
161
204
  this._attachAiGuidance(error, result);
162
205
  return result;
163
206
  }
207
+ // Dependency resolution errors (apcore 0.19) -> pass through with user-fixable hint
208
+ if (code === ErrorCodes.DEPENDENCY_NOT_FOUND ||
209
+ code === ErrorCodes.DEPENDENCY_VERSION_MISMATCH) {
210
+ const result = {
211
+ isError: true,
212
+ errorType: code,
213
+ message: error.message,
214
+ details,
215
+ userFixable: true,
216
+ };
217
+ this._attachAiGuidance(error, result);
218
+ return result;
219
+ }
220
+ // Task limit exceeded -> retryable
221
+ if (code === ErrorCodes.TASK_LIMIT_EXCEEDED) {
222
+ const result = {
223
+ isError: true,
224
+ errorType: code,
225
+ message: error.message,
226
+ details,
227
+ retryable: true,
228
+ };
229
+ this._attachAiGuidance(error, result);
230
+ return result;
231
+ }
232
+ // Binding / version-constraint validation errors (apcore 0.19) -> pass through
233
+ if (code === ErrorCodes.VERSION_CONSTRAINT_INVALID ||
234
+ code === ErrorCodes.BINDING_SCHEMA_INFERENCE_FAILED ||
235
+ code === ErrorCodes.BINDING_SCHEMA_MODE_CONFLICT ||
236
+ code === ErrorCodes.BINDING_STRICT_SCHEMA_INCOMPATIBLE ||
237
+ code === ErrorCodes.BINDING_POLICY_VIOLATION) {
238
+ const result = {
239
+ isError: true,
240
+ errorType: code,
241
+ message: error.message,
242
+ details,
243
+ userFixable: true,
244
+ };
245
+ this._attachAiGuidance(error, result);
246
+ return result;
247
+ }
164
248
  // Other known ModuleError codes -> pass through
165
249
  const result = {
166
250
  isError: true,
@@ -179,6 +263,66 @@ export class ErrorMapper {
179
263
  details: null,
180
264
  };
181
265
  }
266
+ /**
267
+ * Preferred `instanceof` dispatch for concrete apcore-js error classes.
268
+ *
269
+ * When the cache hasn't been populated yet (first call before the lazy
270
+ * load settles), returns null and the caller falls back to duck-typing.
271
+ * Once the cache is warm, subsequent calls produce identical output
272
+ * whether the error was thrown as a concrete class or a duck-typed
273
+ * plain object — the duck-typed branch below handles the latter.
274
+ */
275
+ _matchApcoreErrorInstance(error) {
276
+ if (!(error instanceof Error) || !_apcoreErrorClasses?.loaded)
277
+ return null;
278
+ const classes = _apcoreErrorClasses;
279
+ const asModErr = error;
280
+ if (classes.TaskLimitExceededError && error instanceof classes.TaskLimitExceededError) {
281
+ const result = {
282
+ isError: true,
283
+ errorType: ErrorCodes.TASK_LIMIT_EXCEEDED,
284
+ message: error.message,
285
+ details: asModErr.details ?? null,
286
+ retryable: true,
287
+ };
288
+ this._attachAiGuidance(error, result);
289
+ return result;
290
+ }
291
+ if (classes.DependencyNotFoundError && error instanceof classes.DependencyNotFoundError) {
292
+ const result = {
293
+ isError: true,
294
+ errorType: ErrorCodes.DEPENDENCY_NOT_FOUND,
295
+ message: error.message,
296
+ details: asModErr.details ?? null,
297
+ userFixable: true,
298
+ };
299
+ this._attachAiGuidance(error, result);
300
+ return result;
301
+ }
302
+ if (classes.DependencyVersionMismatchError && error instanceof classes.DependencyVersionMismatchError) {
303
+ const result = {
304
+ isError: true,
305
+ errorType: ErrorCodes.DEPENDENCY_VERSION_MISMATCH,
306
+ message: error.message,
307
+ details: asModErr.details ?? null,
308
+ userFixable: true,
309
+ };
310
+ this._attachAiGuidance(error, result);
311
+ return result;
312
+ }
313
+ if (classes.VersionConstraintError && error instanceof classes.VersionConstraintError) {
314
+ const result = {
315
+ isError: true,
316
+ errorType: ErrorCodes.VERSION_CONSTRAINT_INVALID,
317
+ message: error.message,
318
+ details: asModErr.details ?? null,
319
+ userFixable: true,
320
+ };
321
+ this._attachAiGuidance(error, result);
322
+ return result;
323
+ }
324
+ return null;
325
+ }
182
326
  /**
183
327
  * Extract AI guidance fields from error and attach non-undefined values to result.
184
328
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/adapters/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,0EAA0E;AAC1E,MAAM,oBAAoB,GAAgB,IAAI,GAAG,CAAC;IAChD,UAAU,CAAC,mBAAmB;IAC9B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,uBAAuB;CACnC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAU,CAAC;AAE9F,MAAM,OAAO,WAAW;IACtB;;;;;OAKG;IACH,UAAU,CAAC,KAAc;QACvB,6EAA6E;QAC7E,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,UAAU,CAAC,mBAAmB;gBACzC,OAAO,EAAE,yBAAyB;gBAClC,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAE9B,0CAA0C;YAC1C,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,yBAAyB;oBAClC,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,wCAAwC;YACxC,IAAI,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,UAAU,CAAC,UAAU;oBAChC,OAAO,EAAE,eAAe;oBACxB,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,gEAAgE;YAChE,IAAI,IAAI,KAAK,UAAU,CAAC,uBAAuB,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,UAAU,CAAC,uBAAuB;oBAC7C,OAAO;oBACP,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,wDAAwD;YACxD,8EAA8E;YAC9E,wDAAwD;YACxD,IAAI,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,OAAO,IAAI,YAAY,IAAI,OAAO;oBAC9C,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,OAAO,IAAI,aAAa,IAAI,OAAO;wBACnC,CAAC,CAAC,aAAa;wBACf,CAAC,CAAC,IAAI,CAAC;gBACX,MAAM,QAAQ,GAAG,KAAK;oBACpB,CAAC,CAAC,EAAE,UAAU,EAAE,OAAQ,CAAC,KAAK,CAAC,EAAE;oBACjC,CAAC,CAAC,IAAI,CAAC;gBACT,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,QAAQ;iBAClB,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,wCAAwC;YACxC,IAAI,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO;oBACP,SAAS,EAAE,IAAI;iBAChB,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,iDAAiD;YACjD,IAAI,IAAI,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,OAAO,CAAC,MAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5E,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO;iBACvC,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,4DAA4D;YAC5D,IAAI,IAAI,KAAK,UAAU,CAAC,uBAAuB,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,OAAO,EAAE,OAAO,IAAI,SAAS,CAAC;gBAC7C,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,4BAA4B,MAAM,CAAC,MAAM,CAAC,EAAE;oBACrD,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,gDAAgD;YAChD,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC;gBACxC,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,CAAC,EAAE;oBACpD,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,sCAAsC;YACtC,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,4BAA4B,KAAK,CAAC,OAAO,EAAE;oBACpD,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,4CAA4C;YAC5C,IAAI,IAAI,KAAK,UAAU,CAAC,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,yBAAyB,KAAK,CAAC,OAAO,EAAE;oBACjD,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,gDAAgD;YAChD,MAAM,MAAM,GAAqB;gBAC/B,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO;aACR,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,iDAAiD;QACjD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,UAAU,CAAC,cAAc;YACpC,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,KAA8B,EAC9B,MAAwB;QAExB,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAI,KAAiC,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzE,8DAA8D;gBAC7D,MAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAAc;QAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,yBAAyB;YAAE,OAAO,IAAI,CAAC;QACrE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,mBAAmB;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,cAAc,CACpB,KAAc;QAEd,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,OAAO,CACL,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;YAC/B,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;YAClC,SAAS,IAAI,GAAG,CACjB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,sBAAsB,CAC5B,OAAuC;QAEvC,MAAM,WAAW,GAAG,0BAA0B,CAAC;QAE/C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM;aACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,GAA8B,CAAC;gBAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;gBAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC;gBACvD,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,CAAC;YACD,OAAO,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,GAAG,WAAW,MAAM,WAAW,EAAE,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/adapters/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;GAIG;AACH,IAAI,mBAAmB,GAMZ,IAAI,CAAC;AAEhB,KAAK,UAAU,uBAAuB;IACpC,IAAI,mBAAmB;QAAE,OAAO,mBAAmB,CAAC;IACpD,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAQ,CAAC;QAClD,mBAAmB,GAAG;YACpB,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;YACvD,8BAA8B,EAAE,MAAM,CAAC,8BAA8B;YACrE,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,mBAAmB,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,yEAAyE;AACzE,yDAAyD;AACzD,KAAK,uBAAuB,EAAE,CAAC;AAE/B,0EAA0E;AAC1E,MAAM,oBAAoB,GAAgB,IAAI,GAAG,CAAC;IAChD,UAAU,CAAC,mBAAmB;IAC9B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,uBAAuB;CACnC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAU,CAAC;AAE9F,MAAM,OAAO,WAAW;IACtB;;;;;OAKG;IACH,UAAU,CAAC,KAAc;QACvB,6EAA6E;QAC7E,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,UAAU,CAAC,mBAAmB;gBACzC,OAAO,EAAE,yBAAyB;gBAClC,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,sEAAsE;QACtE,gBAAgB;QAChB,MAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,+CAA+C;QAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAE9B,0CAA0C;YAC1C,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,yBAAyB;oBAClC,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,wCAAwC;YACxC,IAAI,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,UAAU,CAAC,UAAU;oBAChC,OAAO,EAAE,eAAe;oBACxB,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,gEAAgE;YAChE,IAAI,IAAI,KAAK,UAAU,CAAC,uBAAuB,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,UAAU,CAAC,uBAAuB;oBAC7C,OAAO;oBACP,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,wDAAwD;YACxD,gFAAgF;YAChF,gFAAgF;YAChF,kFAAkF;YAClF,IAAI,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,OAAO,IAAI,YAAY,IAAI,OAAO;oBAC9C,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,OAAO,IAAI,aAAa,IAAI,OAAO;wBACnC,CAAC,CAAC,aAAa;wBACf,CAAC,CAAC,IAAI,CAAC;gBACX,MAAM,QAAQ,GAAG,KAAK;oBACpB,CAAC,CAAC,EAAE,UAAU,EAAE,OAAQ,CAAC,KAAK,CAAC,EAAE;oBACjC,CAAC,CAAC,IAAI,CAAC;gBACT,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,QAAQ;iBAClB,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,wCAAwC;YACxC,IAAI,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO;oBACP,SAAS,EAAE,IAAI;iBAChB,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,iDAAiD;YACjD,IAAI,IAAI,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,OAAO,CAAC,MAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5E,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO;iBACvC,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,4DAA4D;YAC5D,IAAI,IAAI,KAAK,UAAU,CAAC,uBAAuB,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,OAAO,EAAE,OAAO,IAAI,SAAS,CAAC;gBAC7C,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,4BAA4B,MAAM,CAAC,MAAM,CAAC,EAAE;oBACrD,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,gDAAgD;YAChD,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC;gBACxC,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,CAAC,EAAE;oBACpD,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,sCAAsC;YACtC,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,4BAA4B,KAAK,CAAC,OAAO,EAAE;oBACpD,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,4CAA4C;YAC5C,IAAI,IAAI,KAAK,UAAU,CAAC,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,yBAAyB,KAAK,CAAC,OAAO,EAAE;oBACjD,OAAO;iBACR,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,oFAAoF;YACpF,IACE,IAAI,KAAK,UAAU,CAAC,oBAAoB;gBACxC,IAAI,KAAK,UAAU,CAAC,2BAA2B,EAC/C,CAAC;gBACD,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO;oBACP,WAAW,EAAE,IAAI;iBAClB,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,mCAAmC;YACnC,IAAI,IAAI,KAAK,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO;oBACP,SAAS,EAAE,IAAI;iBAChB,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,+EAA+E;YAC/E,IACE,IAAI,KAAK,UAAU,CAAC,0BAA0B;gBAC9C,IAAI,KAAK,UAAU,CAAC,+BAA+B;gBACnD,IAAI,KAAK,UAAU,CAAC,4BAA4B;gBAChD,IAAI,KAAK,UAAU,CAAC,kCAAkC;gBACtD,IAAI,KAAK,UAAU,CAAC,wBAAwB,EAC5C,CAAC;gBACD,MAAM,MAAM,GAAqB;oBAC/B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO;oBACP,WAAW,EAAE,IAAI;iBAClB,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,gDAAgD;YAChD,MAAM,MAAM,GAAqB;gBAC/B,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO;aACR,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,iDAAiD;QACjD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,UAAU,CAAC,cAAc;YACpC,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,yBAAyB,CAAC,KAAc;QAC9C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QAC3E,MAAM,OAAO,GAAG,mBAAmB,CAAC;QAEpC,MAAM,QAAQ,GAAG,KAA4E,CAAC;QAE9F,IAAI,OAAO,CAAC,sBAAsB,IAAI,KAAK,YAAY,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACtF,MAAM,MAAM,GAAqB;gBAC/B,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,UAAU,CAAC,mBAAmB;gBACzC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI;gBACjC,SAAS,EAAE,IAAI;aAChB,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,KAA2C,EAAE,MAAM,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,OAAO,CAAC,uBAAuB,IAAI,KAAK,YAAY,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACxF,MAAM,MAAM,GAAqB;gBAC/B,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,UAAU,CAAC,oBAAoB;gBAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI;gBACjC,WAAW,EAAE,IAAI;aAClB,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,KAA2C,EAAE,MAAM,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,OAAO,CAAC,8BAA8B,IAAI,KAAK,YAAY,OAAO,CAAC,8BAA8B,EAAE,CAAC;YACtG,MAAM,MAAM,GAAqB;gBAC/B,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,UAAU,CAAC,2BAA2B;gBACjD,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI;gBACjC,WAAW,EAAE,IAAI;aAClB,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,KAA2C,EAAE,MAAM,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,OAAO,CAAC,sBAAsB,IAAI,KAAK,YAAY,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACtF,MAAM,MAAM,GAAqB;gBAC/B,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,UAAU,CAAC,0BAA0B;gBAChD,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI;gBACjC,WAAW,EAAE,IAAI;aAClB,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,KAA2C,EAAE,MAAM,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,KAA8B,EAC9B,MAAwB;QAExB,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAI,KAAiC,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzE,8DAA8D;gBAC7D,MAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAAc;QAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,yBAAyB;YAAE,OAAO,IAAI,CAAC;QACrE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,mBAAmB;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,cAAc,CACpB,KAAc;QAEd,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,OAAO,CACL,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;YAC/B,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;YAClC,SAAS,IAAI,GAAG,CACjB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,sBAAsB,CAC5B,OAAuC;QAEvC,MAAM,WAAW,GAAG,0BAA0B,CAAC;QAE/C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM;aACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,GAA8B,CAAC;gBAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;gBAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC;gBACvD,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,CAAC;YACD,OAAO,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,GAAG,WAAW,MAAM,WAAW,EAAE,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ModuleIDNormalizer - Converts between apcore module IDs and OpenAI tool names.
3
+ *
4
+ * apcore uses dot-separated module IDs (e.g. "myorg.tools.search").
5
+ *
6
+ * [MID-6] MCP tool names accept dots and hyphens (and dot-notation is the
7
+ * apcore convention), so this normalizer is intended ONLY for the OpenAI
8
+ * function-calling format, which restricts function names to `[a-zA-Z0-9_-]`.
9
+ * Pre-fix doc here claimed "MCP tool names use hyphens" — that is incorrect
10
+ * and contradicts the spec at `docs/features/openai-converter.md`. This
11
+ * normalizer must NOT be applied on the MCP path.
12
+ */
13
+ export declare class ModuleIDNormalizer {
14
+ /**
15
+ * Normalize an apcore module ID to an MCP-compatible tool name.
16
+ *
17
+ * Validates the module ID against MODULE_ID_PATTERN before converting.
18
+ * Replaces dots (`.`) with hyphens (`-`).
19
+ */
20
+ normalize(moduleId: string): string;
21
+ /**
22
+ * Denormalize an MCP tool name back to an apcore module ID.
23
+ *
24
+ * Replaces hyphens (`-`) with dots (`.`).
25
+ */
26
+ denormalize(toolName: string): string;
27
+ /**
28
+ * Bijection-guarded variant of denormalize. [MID-5]
29
+ *
30
+ * Returns the denormalized module ID if `toolName` is a valid pre-image of
31
+ * `normalize()` (i.e. it passes the normalized-name pattern validation).
32
+ * Returns `null` for inputs that could not have been produced by `normalize()`.
33
+ *
34
+ * Valid normalized names must match: `[a-z0-9]+(-[a-z0-9]+)*`
35
+ * - Lowercase alphanumeric segments separated by single hyphens.
36
+ * - No uppercase, no leading/trailing/consecutive hyphens, no empty string.
37
+ */
38
+ tryDenormalize(toolName: string): string | null;
39
+ }
40
+ //# sourceMappingURL=id-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-normalizer.d.ts","sourceRoot":"","sources":["../../src/adapters/id-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,qBAAa,kBAAkB;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IASnC;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAUhD"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * ModuleIDNormalizer - Converts between apcore module IDs and OpenAI tool names.
3
+ *
4
+ * apcore uses dot-separated module IDs (e.g. "myorg.tools.search").
5
+ *
6
+ * [MID-6] MCP tool names accept dots and hyphens (and dot-notation is the
7
+ * apcore convention), so this normalizer is intended ONLY for the OpenAI
8
+ * function-calling format, which restricts function names to `[a-zA-Z0-9_-]`.
9
+ * Pre-fix doc here claimed "MCP tool names use hyphens" — that is incorrect
10
+ * and contradicts the spec at `docs/features/openai-converter.md`. This
11
+ * normalizer must NOT be applied on the MCP path.
12
+ */
13
+ import { MODULE_ID_PATTERN } from "../types.js";
14
+ export class ModuleIDNormalizer {
15
+ /**
16
+ * Normalize an apcore module ID to an MCP-compatible tool name.
17
+ *
18
+ * Validates the module ID against MODULE_ID_PATTERN before converting.
19
+ * Replaces dots (`.`) with hyphens (`-`).
20
+ */
21
+ normalize(moduleId) {
22
+ if (!MODULE_ID_PATTERN.test(moduleId)) {
23
+ throw new Error(`Invalid module ID "${moduleId}": must match pattern ${MODULE_ID_PATTERN}`);
24
+ }
25
+ return moduleId.replaceAll(".", "-");
26
+ }
27
+ /**
28
+ * Denormalize an MCP tool name back to an apcore module ID.
29
+ *
30
+ * Replaces hyphens (`-`) with dots (`.`).
31
+ */
32
+ denormalize(toolName) {
33
+ return toolName.replaceAll("-", ".");
34
+ }
35
+ /**
36
+ * Bijection-guarded variant of denormalize. [MID-5]
37
+ *
38
+ * Returns the denormalized module ID if `toolName` is a valid pre-image of
39
+ * `normalize()` (i.e. it passes the normalized-name pattern validation).
40
+ * Returns `null` for inputs that could not have been produced by `normalize()`.
41
+ *
42
+ * Valid normalized names must match: `[a-z0-9]+(-[a-z0-9]+)*`
43
+ * - Lowercase alphanumeric segments separated by single hyphens.
44
+ * - No uppercase, no leading/trailing/consecutive hyphens, no empty string.
45
+ */
46
+ tryDenormalize(toolName) {
47
+ // Must be non-empty, all-lowercase, no consecutive/leading/trailing hyphens,
48
+ // only [a-z0-9-] characters.
49
+ if (!toolName || toolName.length === 0)
50
+ return null;
51
+ // Pattern: segments of [a-z][a-z0-9]* joined by single hyphens.
52
+ // Mirrors MODULE_ID_PATTERN where each segment starts with a lowercase letter.
53
+ const NORMALIZED_PATTERN = /^[a-z][a-z0-9]*(-[a-z][a-z0-9]*)*$/;
54
+ if (!NORMALIZED_PATTERN.test(toolName))
55
+ return null;
56
+ return this.denormalize(toolName);
57
+ }
58
+ }
59
+ //# sourceMappingURL=id-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-normalizer.js","sourceRoot":"","sources":["../../src/adapters/id-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,OAAO,kBAAkB;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,QAAgB;QACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,sBAAsB,QAAQ,yBAAyB,iBAAiB,EAAE,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,QAAgB;QAC1B,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;OAUG;IACH,cAAc,CAAC,QAAgB;QAC7B,6EAA6E;QAC7E,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,gEAAgE;QAChE,+EAA+E;QAC/E,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;QAChE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -4,8 +4,8 @@
4
4
  export { SchemaConverter } from "./schema.js";
5
5
  export { AnnotationMapper } from "./annotations.js";
6
6
  export { ErrorMapper } from "./errors.js";
7
- export { ModuleIDNormalizer } from "./idNormalizer.js";
7
+ export { ModuleIDNormalizer } from "./id-normalizer.js";
8
8
  export { ElicitationApprovalHandler } from "./approval.js";
9
9
  export type { ApprovalRequest, ApprovalResult } from "./approval.js";
10
- export { McpErrorFormatter, registerMcpFormatter } from "./mcpErrorFormatter.js";
10
+ export { McpErrorFormatter, registerMcpFormatter } from "./mcp-error-formatter.js";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -4,7 +4,7 @@
4
4
  export { SchemaConverter } from "./schema.js";
5
5
  export { AnnotationMapper } from "./annotations.js";
6
6
  export { ErrorMapper } from "./errors.js";
7
- export { ModuleIDNormalizer } from "./idNormalizer.js";
7
+ export { ModuleIDNormalizer } from "./id-normalizer.js";
8
8
  export { ElicitationApprovalHandler } from "./approval.js";
9
- export { McpErrorFormatter, registerMcpFormatter } from "./mcpErrorFormatter.js";
9
+ export { McpErrorFormatter, registerMcpFormatter } from "./mcp-error-formatter.js";
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -10,4 +10,4 @@ export declare class McpErrorFormatter implements ErrorFormatter {
10
10
  }
11
11
  /** Register the MCP error formatter. Safe to call multiple times. */
12
12
  export declare function registerMcpFormatter(): Promise<void>;
13
- //# sourceMappingURL=mcpErrorFormatter.d.ts.map
13
+ //# sourceMappingURL=mcp-error-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-error-formatter.d.ts","sourceRoot":"","sources":["../../src/adapters/mcp-error-formatter.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpE;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGpE;AAED,qEAAqE;AACrE,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAY1D"}
@@ -27,4 +27,4 @@ export async function registerMcpFormatter() {
27
27
  // ErrorFormatterRegistry not available in this apcore-js version
28
28
  }
29
29
  }
30
- //# sourceMappingURL=mcpErrorFormatter.js.map
30
+ //# sourceMappingURL=mcp-error-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-error-formatter.js","sourceRoot":"","sources":["../../src/adapters/mcp-error-formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACX,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEjD,MAAM,CAAC,KAAc,EAAE,QAAkB;QACvC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAuC,CAAC;IAClF,CAAC;CACF;AAED,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAI,MAAkC,CAAC,wBAAwB,CAEhE,CAAC;QACd,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,iBAAiB,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;AACH,CAAC"}
@@ -5,26 +5,43 @@
5
5
  * have the required `type: "object"` for MCP tool input/output schemas.
6
6
  */
7
7
  import type { JsonSchema, ModuleDescriptor } from "../types.js";
8
+ export interface ConvertSchemaOptions {
9
+ strict?: boolean;
10
+ }
8
11
  export declare class SchemaConverter {
9
12
  /**
10
13
  * Convert a module descriptor's inputSchema to an MCP-compatible schema.
11
14
  */
12
- convertInputSchema(descriptor: ModuleDescriptor): JsonSchema;
15
+ convertInputSchema(descriptor: ModuleDescriptor, options?: ConvertSchemaOptions): JsonSchema;
13
16
  /**
14
17
  * Convert a module descriptor's outputSchema to an MCP-compatible schema.
15
18
  */
16
- convertOutputSchema(descriptor: ModuleDescriptor): JsonSchema;
19
+ convertOutputSchema(descriptor: ModuleDescriptor, options?: ConvertSchemaOptions): JsonSchema;
17
20
  /**
18
21
  * Apply all schema transformations: deep copy, inline $ref, ensure object type.
19
22
  */
20
- _convertSchema(schema: JsonSchema): JsonSchema;
23
+ _convertSchema(schema: JsonSchema, options?: ConvertSchemaOptions): JsonSchema;
24
+ /**
25
+ * Recursively set `additionalProperties: false` on every object-shaped
26
+ * schema node that does not already specify `additionalProperties`.
27
+ *
28
+ * A node is treated as an object schema when ANY of:
29
+ * - `type === "object"`
30
+ * - `Array.isArray(type) && type.includes("object")`
31
+ * - `"properties" in node` AND the declared scalar `type` (if any) isn't
32
+ * a non-object scalar (string/number/integer/boolean/null)
33
+ *
34
+ * Recurses only into known subschema slots. Opaque value slots like
35
+ * `enum`, `const`, `examples`, `default` are left untouched.
36
+ */
37
+ _applyStrict(node: unknown): unknown;
21
38
  /**
22
39
  * Recursively inline `$ref` references using the provided $defs map.
23
40
  *
24
41
  * Handles dicts (objects), arrays, and primitive values.
25
42
  * Skips the `$defs` key itself during traversal.
26
43
  */
27
- _inlineRefs(node: unknown, defs: Record<string, JsonSchema>, activeRefs: Set<string>): unknown;
44
+ _inlineRefs(node: unknown, defs: Record<string, JsonSchema>, activeRefs: Set<string>, depth?: number): unknown;
28
45
  /**
29
46
  * Resolve a `$ref` path (e.g. `#/$defs/MyType`) against the $defs map.
30
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/adapters/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEhE,qBAAa,eAAe;IAC1B;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU;IAI5D;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU;IAI7D;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAe9C;;;;;OAKG;IACH,WAAW,CACT,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,OAAO;IA0CV;;;;;OAKG;IACH,WAAW,CACT,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAC/B,UAAU;IAoBb;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;CAclD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/adapters/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAUD,qBAAa,eAAe;IAC1B;;OAEG;IACH,kBAAkB,CAChB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,UAAU;IAIb;;OAEG;IACH,mBAAmB,CACjB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,UAAU;IAIb;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,UAAU;IAyB9E;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAkGpC;;;;;OAKG;IACH,WAAW,CACT,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,KAAK,GAAE,MAAU,GAChB,OAAO;IAsDV;;;;;OAKG;IACH,WAAW,CACT,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAC/B,UAAU;IAoBb;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;CAclD"}