@sundaeswap/sprinkles 0.6.1 → 0.7.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 (153) hide show
  1. package/dist/cjs/Sprinkle/__tests__/action-integration.test.js +590 -0
  2. package/dist/cjs/Sprinkle/__tests__/action-integration.test.js.map +1 -0
  3. package/dist/cjs/Sprinkle/__tests__/action-registry.test.js +193 -0
  4. package/dist/cjs/Sprinkle/__tests__/action-registry.test.js.map +1 -0
  5. package/dist/cjs/Sprinkle/__tests__/action-runner.test.js +304 -0
  6. package/dist/cjs/Sprinkle/__tests__/action-runner.test.js.map +1 -0
  7. package/dist/cjs/Sprinkle/__tests__/builtin-actions.test.js +1110 -0
  8. package/dist/cjs/Sprinkle/__tests__/builtin-actions.test.js.map +1 -0
  9. package/dist/cjs/Sprinkle/__tests__/cli-adapter.test.js +722 -0
  10. package/dist/cjs/Sprinkle/__tests__/cli-adapter.test.js.map +1 -0
  11. package/dist/cjs/Sprinkle/__tests__/mcp-adapter.test.js +713 -0
  12. package/dist/cjs/Sprinkle/__tests__/mcp-adapter.test.js.map +1 -0
  13. package/dist/cjs/Sprinkle/__tests__/tui-helpers.test.js +334 -0
  14. package/dist/cjs/Sprinkle/__tests__/tui-helpers.test.js.map +1 -0
  15. package/dist/cjs/Sprinkle/__tests__/wallet-transaction-actions.test.js +749 -0
  16. package/dist/cjs/Sprinkle/__tests__/wallet-transaction-actions.test.js.map +1 -0
  17. package/dist/cjs/Sprinkle/actions/builtin/blaze-helper.js +61 -0
  18. package/dist/cjs/Sprinkle/actions/builtin/blaze-helper.js.map +1 -0
  19. package/dist/cjs/Sprinkle/actions/builtin/index.js +117 -0
  20. package/dist/cjs/Sprinkle/actions/builtin/index.js.map +1 -0
  21. package/dist/cjs/Sprinkle/actions/builtin/profile-actions.js +202 -0
  22. package/dist/cjs/Sprinkle/actions/builtin/profile-actions.js.map +1 -0
  23. package/dist/cjs/Sprinkle/actions/builtin/settings-actions.js +87 -0
  24. package/dist/cjs/Sprinkle/actions/builtin/settings-actions.js.map +1 -0
  25. package/dist/cjs/Sprinkle/actions/builtin/transaction-actions.js +345 -0
  26. package/dist/cjs/Sprinkle/actions/builtin/transaction-actions.js.map +1 -0
  27. package/dist/cjs/Sprinkle/actions/builtin/wallet-actions.js +212 -0
  28. package/dist/cjs/Sprinkle/actions/builtin/wallet-actions.js.map +1 -0
  29. package/dist/cjs/Sprinkle/actions/cli-adapter.js +372 -0
  30. package/dist/cjs/Sprinkle/actions/cli-adapter.js.map +1 -0
  31. package/dist/cjs/Sprinkle/actions/index.js +127 -0
  32. package/dist/cjs/Sprinkle/actions/index.js.map +1 -0
  33. package/dist/cjs/Sprinkle/actions/mcp-adapter.js +415 -0
  34. package/dist/cjs/Sprinkle/actions/mcp-adapter.js.map +1 -0
  35. package/dist/cjs/Sprinkle/actions/registry.js +92 -0
  36. package/dist/cjs/Sprinkle/actions/registry.js.map +1 -0
  37. package/dist/cjs/Sprinkle/actions/runner.js +190 -0
  38. package/dist/cjs/Sprinkle/actions/runner.js.map +1 -0
  39. package/dist/cjs/Sprinkle/actions/tui-helpers.js +96 -0
  40. package/dist/cjs/Sprinkle/actions/tui-helpers.js.map +1 -0
  41. package/dist/cjs/Sprinkle/actions/types.js +68 -0
  42. package/dist/cjs/Sprinkle/actions/types.js.map +1 -0
  43. package/dist/cjs/Sprinkle/index.js +412 -1
  44. package/dist/cjs/Sprinkle/index.js.map +1 -1
  45. package/dist/cjs/Sprinkle/prompts.js +12 -7
  46. package/dist/cjs/Sprinkle/prompts.js.map +1 -1
  47. package/dist/cjs/Sprinkle/type-guards.js +7 -1
  48. package/dist/cjs/Sprinkle/type-guards.js.map +1 -1
  49. package/dist/esm/Sprinkle/__tests__/action-integration.test.js +588 -0
  50. package/dist/esm/Sprinkle/__tests__/action-integration.test.js.map +1 -0
  51. package/dist/esm/Sprinkle/__tests__/action-registry.test.js +192 -0
  52. package/dist/esm/Sprinkle/__tests__/action-registry.test.js.map +1 -0
  53. package/dist/esm/Sprinkle/__tests__/action-runner.test.js +302 -0
  54. package/dist/esm/Sprinkle/__tests__/action-runner.test.js.map +1 -0
  55. package/dist/esm/Sprinkle/__tests__/builtin-actions.test.js +1107 -0
  56. package/dist/esm/Sprinkle/__tests__/builtin-actions.test.js.map +1 -0
  57. package/dist/esm/Sprinkle/__tests__/cli-adapter.test.js +720 -0
  58. package/dist/esm/Sprinkle/__tests__/cli-adapter.test.js.map +1 -0
  59. package/dist/esm/Sprinkle/__tests__/mcp-adapter.test.js +712 -0
  60. package/dist/esm/Sprinkle/__tests__/mcp-adapter.test.js.map +1 -0
  61. package/dist/esm/Sprinkle/__tests__/tui-helpers.test.js +332 -0
  62. package/dist/esm/Sprinkle/__tests__/tui-helpers.test.js.map +1 -0
  63. package/dist/esm/Sprinkle/__tests__/wallet-transaction-actions.test.js +747 -0
  64. package/dist/esm/Sprinkle/__tests__/wallet-transaction-actions.test.js.map +1 -0
  65. package/dist/esm/Sprinkle/actions/builtin/blaze-helper.js +55 -0
  66. package/dist/esm/Sprinkle/actions/builtin/blaze-helper.js.map +1 -0
  67. package/dist/esm/Sprinkle/actions/builtin/index.js +32 -0
  68. package/dist/esm/Sprinkle/actions/builtin/index.js.map +1 -0
  69. package/dist/esm/Sprinkle/actions/builtin/profile-actions.js +197 -0
  70. package/dist/esm/Sprinkle/actions/builtin/profile-actions.js.map +1 -0
  71. package/dist/esm/Sprinkle/actions/builtin/settings-actions.js +81 -0
  72. package/dist/esm/Sprinkle/actions/builtin/settings-actions.js.map +1 -0
  73. package/dist/esm/Sprinkle/actions/builtin/transaction-actions.js +340 -0
  74. package/dist/esm/Sprinkle/actions/builtin/transaction-actions.js.map +1 -0
  75. package/dist/esm/Sprinkle/actions/builtin/wallet-actions.js +207 -0
  76. package/dist/esm/Sprinkle/actions/builtin/wallet-actions.js.map +1 -0
  77. package/dist/esm/Sprinkle/actions/cli-adapter.js +361 -0
  78. package/dist/esm/Sprinkle/actions/cli-adapter.js.map +1 -0
  79. package/dist/esm/Sprinkle/actions/index.js +12 -0
  80. package/dist/esm/Sprinkle/actions/index.js.map +1 -0
  81. package/dist/esm/Sprinkle/actions/mcp-adapter.js +407 -0
  82. package/dist/esm/Sprinkle/actions/mcp-adapter.js.map +1 -0
  83. package/dist/esm/Sprinkle/actions/registry.js +85 -0
  84. package/dist/esm/Sprinkle/actions/registry.js.map +1 -0
  85. package/dist/esm/Sprinkle/actions/runner.js +182 -0
  86. package/dist/esm/Sprinkle/actions/runner.js.map +1 -0
  87. package/dist/esm/Sprinkle/actions/tui-helpers.js +91 -0
  88. package/dist/esm/Sprinkle/actions/tui-helpers.js.map +1 -0
  89. package/dist/esm/Sprinkle/actions/types.js +61 -0
  90. package/dist/esm/Sprinkle/actions/types.js.map +1 -0
  91. package/dist/esm/Sprinkle/index.js +260 -1
  92. package/dist/esm/Sprinkle/index.js.map +1 -1
  93. package/dist/esm/Sprinkle/prompts.js +12 -7
  94. package/dist/esm/Sprinkle/prompts.js.map +1 -1
  95. package/dist/esm/Sprinkle/type-guards.js +3 -0
  96. package/dist/esm/Sprinkle/type-guards.js.map +1 -1
  97. package/dist/types/Sprinkle/actions/builtin/blaze-helper.d.ts +39 -0
  98. package/dist/types/Sprinkle/actions/builtin/blaze-helper.d.ts.map +1 -0
  99. package/dist/types/Sprinkle/actions/builtin/index.d.ts +26 -0
  100. package/dist/types/Sprinkle/actions/builtin/index.d.ts.map +1 -0
  101. package/dist/types/Sprinkle/actions/builtin/profile-actions.d.ts +55 -0
  102. package/dist/types/Sprinkle/actions/builtin/profile-actions.d.ts.map +1 -0
  103. package/dist/types/Sprinkle/actions/builtin/settings-actions.d.ts +32 -0
  104. package/dist/types/Sprinkle/actions/builtin/settings-actions.d.ts.map +1 -0
  105. package/dist/types/Sprinkle/actions/builtin/transaction-actions.d.ts +70 -0
  106. package/dist/types/Sprinkle/actions/builtin/transaction-actions.d.ts.map +1 -0
  107. package/dist/types/Sprinkle/actions/builtin/wallet-actions.d.ts +50 -0
  108. package/dist/types/Sprinkle/actions/builtin/wallet-actions.d.ts.map +1 -0
  109. package/dist/types/Sprinkle/actions/cli-adapter.d.ts +104 -0
  110. package/dist/types/Sprinkle/actions/cli-adapter.d.ts.map +1 -0
  111. package/dist/types/Sprinkle/actions/index.d.ts +12 -0
  112. package/dist/types/Sprinkle/actions/index.d.ts.map +1 -0
  113. package/dist/types/Sprinkle/actions/mcp-adapter.d.ts +92 -0
  114. package/dist/types/Sprinkle/actions/mcp-adapter.d.ts.map +1 -0
  115. package/dist/types/Sprinkle/actions/registry.d.ts +42 -0
  116. package/dist/types/Sprinkle/actions/registry.d.ts.map +1 -0
  117. package/dist/types/Sprinkle/actions/runner.d.ts +45 -0
  118. package/dist/types/Sprinkle/actions/runner.d.ts.map +1 -0
  119. package/dist/types/Sprinkle/actions/tui-helpers.d.ts +53 -0
  120. package/dist/types/Sprinkle/actions/tui-helpers.d.ts.map +1 -0
  121. package/dist/types/Sprinkle/actions/types.d.ts +76 -0
  122. package/dist/types/Sprinkle/actions/types.d.ts.map +1 -0
  123. package/dist/types/Sprinkle/index.d.ts +81 -1
  124. package/dist/types/Sprinkle/index.d.ts.map +1 -1
  125. package/dist/types/Sprinkle/prompts.d.ts.map +1 -1
  126. package/dist/types/Sprinkle/type-guards.d.ts +4 -1
  127. package/dist/types/Sprinkle/type-guards.d.ts.map +1 -1
  128. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  129. package/package.json +9 -2
  130. package/src/Sprinkle/__tests__/action-integration.test.ts +558 -0
  131. package/src/Sprinkle/__tests__/action-registry.test.ts +187 -0
  132. package/src/Sprinkle/__tests__/action-runner.test.ts +324 -0
  133. package/src/Sprinkle/__tests__/builtin-actions.test.ts +1022 -0
  134. package/src/Sprinkle/__tests__/cli-adapter.test.ts +715 -0
  135. package/src/Sprinkle/__tests__/mcp-adapter.test.ts +718 -0
  136. package/src/Sprinkle/__tests__/tui-helpers.test.ts +325 -0
  137. package/src/Sprinkle/__tests__/wallet-transaction-actions.test.ts +695 -0
  138. package/src/Sprinkle/actions/builtin/blaze-helper.ts +89 -0
  139. package/src/Sprinkle/actions/builtin/index.ts +86 -0
  140. package/src/Sprinkle/actions/builtin/profile-actions.ts +229 -0
  141. package/src/Sprinkle/actions/builtin/settings-actions.ts +99 -0
  142. package/src/Sprinkle/actions/builtin/transaction-actions.ts +381 -0
  143. package/src/Sprinkle/actions/builtin/wallet-actions.ts +233 -0
  144. package/src/Sprinkle/actions/cli-adapter.ts +430 -0
  145. package/src/Sprinkle/actions/index.ts +32 -0
  146. package/src/Sprinkle/actions/mcp-adapter.ts +463 -0
  147. package/src/Sprinkle/actions/registry.ts +97 -0
  148. package/src/Sprinkle/actions/runner.ts +200 -0
  149. package/src/Sprinkle/actions/tui-helpers.ts +114 -0
  150. package/src/Sprinkle/actions/types.ts +91 -0
  151. package/src/Sprinkle/index.ts +351 -0
  152. package/src/Sprinkle/prompts.ts +118 -72
  153. package/src/Sprinkle/type-guards.ts +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-runner.test.js","names":["_bunTest","require","_typebox","_index","fakeContext","describe","echoAction","name","description","inputSchema","Type","Object","message","String","outputSchema","execute","input","test","result","executeAction","expect","success","toBe","data","toEqual","error","code","details","toBeDefined","Array","isArray","length","toBeGreaterThan","toHaveProperty","failAction","Error","myError","ActionError","hint","receivedInput","actionWithOptional","count","Optional","Number","receivedContext","ctxAction","ctx","sprinkle","settings","detectMode","actionName","parseCliArgs","args","key","toThrow","not","err","field","toBeUndefined"],"sources":["../../../../src/Sprinkle/__tests__/action-runner.test.ts"],"sourcesContent":["import { describe, expect, test } from \"bun:test\";\nimport { Type } from \"@sinclair/typebox\";\nimport {\n executeAction,\n detectMode,\n parseCliArgs,\n ActionError,\n} from \"../actions/index.js\";\nimport type { IActionContext } from \"../actions/index.js\";\n\n// Lightweight stub context – the runner only forwards it to action.execute\nconst fakeContext = {} as IActionContext<any>;\n\n// ---------------------------------------------------------------------------\n// executeAction\n// ---------------------------------------------------------------------------\n\ndescribe(\"executeAction\", () => {\n const echoAction = {\n name: \"echo\",\n description: \"Returns its input as output\",\n inputSchema: Type.Object({ message: Type.String() }),\n outputSchema: Type.Object({ message: Type.String() }),\n execute: async (input: { message: string }) => ({ message: input.message }),\n };\n\n test(\"returns success result with data on valid input\", async () => {\n const result = await executeAction(\n echoAction,\n { message: \"hello\" },\n fakeContext,\n );\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ message: \"hello\" });\n }\n });\n\n test(\"returns failure result on invalid input\", async () => {\n const result = await executeAction(echoAction, { message: 42 }, fakeContext);\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error.code).toBe(\"VALIDATION_ERROR\");\n expect(result.error.details).toBeDefined();\n }\n });\n\n test(\"returns failure result when required field is missing\", async () => {\n const result = await executeAction(echoAction, {}, fakeContext);\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error.code).toBe(\"VALIDATION_ERROR\");\n }\n });\n\n test(\"returns failure result when input is not an object\", async () => {\n const result = await executeAction(echoAction, \"not-an-object\", fakeContext);\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error.code).toBe(\"VALIDATION_ERROR\");\n }\n });\n\n test(\"validation error includes per-field details\", async () => {\n const result = await executeAction(\n echoAction,\n { message: 99 },\n fakeContext,\n );\n if (!result.success) {\n const details = result.error.details as Array<{\n path: string;\n message: string;\n }>;\n expect(Array.isArray(details)).toBe(true);\n expect(details.length).toBeGreaterThan(0);\n expect(details[0]).toHaveProperty(\"path\");\n expect(details[0]).toHaveProperty(\"message\");\n }\n });\n\n test(\"wraps plain Error thrown by execute into EXECUTION_ERROR\", async () => {\n const failAction = {\n ...echoAction,\n execute: async () => {\n throw new Error(\"something went wrong\");\n },\n };\n const result = await executeAction(\n failAction,\n { message: \"x\" },\n fakeContext,\n );\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error.code).toBe(\"EXECUTION_ERROR\");\n expect(result.error.message).toBe(\"something went wrong\");\n }\n });\n\n test(\"re-uses ActionError thrown by execute without re-wrapping\", async () => {\n const myError = new ActionError(\"custom error\", \"CUSTOM_CODE\", {\n hint: \"test\",\n });\n const failAction = {\n ...echoAction,\n execute: async () => {\n throw myError;\n },\n };\n const result = await executeAction(\n failAction,\n { message: \"x\" },\n fakeContext,\n );\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error).toBe(myError);\n expect(result.error.code).toBe(\"CUSTOM_CODE\");\n }\n });\n\n test(\"decodes valid input and passes it to execute\", async () => {\n let receivedInput: any;\n const actionWithOptional = {\n name: \"optional-test\",\n description: \"Tests optional fields\",\n inputSchema: Type.Object({\n name: Type.String(),\n count: Type.Optional(Type.Number()),\n }),\n outputSchema: Type.Object({}),\n execute: async (input: any) => {\n receivedInput = input;\n return {};\n },\n };\n const result = await executeAction(\n actionWithOptional,\n { name: \"alice\", count: 5 },\n fakeContext,\n );\n expect(result.success).toBe(true);\n expect(receivedInput.name).toBe(\"alice\");\n expect(receivedInput.count).toBe(5);\n });\n\n test(\"passes context to execute function\", async () => {\n let receivedContext: any;\n const ctxAction = {\n ...echoAction,\n execute: async (input: any, ctx: any) => {\n receivedContext = ctx;\n return { message: \"ok\" };\n },\n };\n const ctx = { sprinkle: \"stub\", settings: {} } as any;\n await executeAction(ctxAction, { message: \"test\" }, ctx);\n expect(receivedContext).toBe(ctx);\n });\n});\n\n// ---------------------------------------------------------------------------\n// detectMode\n// ---------------------------------------------------------------------------\n\ndescribe(\"detectMode\", () => {\n test(\"returns 'tui' for empty argv\", () => {\n expect(detectMode([])).toBe(\"tui\");\n });\n\n test(\"returns 'tui' for --interactive flag\", () => {\n expect(detectMode([\"--interactive\"])).toBe(\"tui\");\n });\n\n test(\"returns 'tui' for --interactive alongside other flags\", () => {\n expect(detectMode([\"--verbose\", \"--interactive\"])).toBe(\"tui\");\n });\n\n test(\"returns 'mcp' for --mcp flag\", () => {\n expect(detectMode([\"--mcp\"])).toBe(\"mcp\");\n });\n\n test(\"returns 'mcp' when --mcp appears with other flags\", () => {\n expect(detectMode([\"--verbose\", \"--mcp\"])).toBe(\"mcp\");\n });\n\n test(\"returns 'help' for --help flag only\", () => {\n expect(detectMode([\"--help\"])).toBe(\"help\");\n });\n\n test(\"returns 'help' for -h shorthand only\", () => {\n expect(detectMode([\"-h\"])).toBe(\"help\");\n });\n\n test(\"returns 'cli' when a positional arg is present\", () => {\n expect(detectMode([\"get-balance\"])).toBe(\"cli\");\n });\n\n test(\"returns 'cli' when positional arg is mixed with flags\", () => {\n expect(detectMode([\"--verbose\", \"send-tx\", \"--amount\", \"100\"])).toBe(\"cli\");\n });\n\n test(\"returns 'tui' for flag-only invocation that is not mcp/help/interactive\", () => {\n expect(detectMode([\"--verbose\", \"--debug\"])).toBe(\"tui\");\n });\n});\n\n// ---------------------------------------------------------------------------\n// parseCliArgs\n// ---------------------------------------------------------------------------\n\ndescribe(\"parseCliArgs\", () => {\n test(\"extracts action name from first positional arg\", () => {\n const { actionName } = parseCliArgs([\"get-balance\"]);\n expect(actionName).toBe(\"get-balance\");\n });\n\n test(\"returns empty args when no flags follow the action name\", () => {\n const { args } = parseCliArgs([\"get-balance\"]);\n expect(args).toEqual({});\n });\n\n test(\"parses --flag value pairs\", () => {\n const { args } = parseCliArgs([\"send\", \"--amount\", \"100\"]);\n expect(args[\"amount\"]).toBe(\"100\");\n });\n\n test(\"parses --flag=value syntax\", () => {\n const { args } = parseCliArgs([\"send\", \"--amount=100\"]);\n expect(args[\"amount\"]).toBe(\"100\");\n });\n\n test(\"parses --no-flag as boolean false\", () => {\n const { args } = parseCliArgs([\"send\", \"--no-confirm\"]);\n expect(args[\"confirm\"]).toBe(false);\n });\n\n test(\"treats lone --flag with no value as boolean true\", () => {\n const { args } = parseCliArgs([\"send\", \"--dry-run\"]);\n expect(args[\"dry-run\"]).toBe(true);\n });\n\n test(\"parses JSON object value\", () => {\n const { args } = parseCliArgs([\n \"send\",\n \"--input\",\n '{\"key\":\"value\",\"count\":3}',\n ]);\n expect(args[\"input\"]).toEqual({ key: \"value\", count: 3 });\n });\n\n test(\"parses JSON array value\", () => {\n const { args } = parseCliArgs([\"send\", \"--ids\", '[\"a\",\"b\",\"c\"]']);\n expect(args[\"ids\"]).toEqual([\"a\", \"b\", \"c\"]);\n });\n\n test(\"falls back to string when JSON parse fails\", () => {\n const { args } = parseCliArgs([\"send\", \"--data\", \"{bad json\"]);\n expect(args[\"data\"]).toBe(\"{bad json\");\n });\n\n test(\"parses multiple flags\", () => {\n const { args } = parseCliArgs([\n \"transfer\",\n \"--from\",\n \"addr1\",\n \"--to\",\n \"addr2\",\n \"--amount\",\n \"50\",\n ]);\n expect(args[\"from\"]).toBe(\"addr1\");\n expect(args[\"to\"]).toBe(\"addr2\");\n expect(args[\"amount\"]).toBe(\"50\");\n });\n\n test(\"throws when all args start with dashes (no positional)\", () => {\n expect(() => parseCliArgs([\"--verbose\", \"--debug\"])).toThrow(\n /No action name provided/,\n );\n });\n\n test(\"throws when argv is empty\", () => {\n expect(() => parseCliArgs([])).toThrow(/No action name provided/);\n });\n\n test(\"action name is not included in args\", () => {\n const { args } = parseCliArgs([\"my-action\", \"--key\", \"val\"]);\n expect(args).not.toHaveProperty(\"my-action\");\n });\n});\n\n// ---------------------------------------------------------------------------\n// ActionError\n// ---------------------------------------------------------------------------\n\ndescribe(\"ActionError\", () => {\n test(\"sets name to 'ActionError'\", () => {\n const err = new ActionError(\"oops\", \"CODE\");\n expect(err.name).toBe(\"ActionError\");\n });\n\n test(\"extends Error\", () => {\n const err = new ActionError(\"oops\", \"CODE\");\n expect(err instanceof Error).toBe(true);\n });\n\n test(\"stores code\", () => {\n const err = new ActionError(\"oops\", \"MY_CODE\");\n expect(err.code).toBe(\"MY_CODE\");\n });\n\n test(\"stores optional details\", () => {\n const details = { field: \"amount\" };\n const err = new ActionError(\"oops\", \"CODE\", details);\n expect(err.details).toBe(details);\n });\n\n test(\"details is undefined when not provided\", () => {\n const err = new ActionError(\"oops\", \"CODE\");\n expect(err.details).toBeUndefined();\n });\n});\n"],"mappings":"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","ignoreList":[]}