@contractspec/lib.testing 1.44.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 (208) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -0
  3. package/dist/adapters/jest-adapter.d.ts +13 -0
  4. package/dist/adapters/jest-adapter.d.ts.map +1 -0
  5. package/dist/adapters/jest-adapter.js +28 -0
  6. package/dist/adapters/jest-adapter.js.map +1 -0
  7. package/dist/adapters/vitest-adapter.d.ts +13 -0
  8. package/dist/adapters/vitest-adapter.d.ts.map +1 -0
  9. package/dist/adapters/vitest-adapter.js +27 -0
  10. package/dist/adapters/vitest-adapter.js.map +1 -0
  11. package/dist/contracts/src/app-config/lifecycle.d.ts +1 -0
  12. package/dist/contracts/src/app-config/runtime.d.ts +13 -0
  13. package/dist/contracts/src/app-config/spec.d.ts +8 -0
  14. package/dist/contracts/src/app-config/validation.d.ts +8 -0
  15. package/dist/contracts/src/capabilities/capabilities.d.ts +2 -0
  16. package/dist/contracts/src/capabilities/index.d.ts +2 -0
  17. package/dist/contracts/src/capabilities/openbanking.d.ts +1 -0
  18. package/dist/contracts/src/client/index.d.ts +1 -0
  19. package/dist/contracts/src/client/react/drivers/rn-reusables.d.ts +1 -0
  20. package/dist/contracts/src/client/react/drivers/shadcn.d.ts +1 -0
  21. package/dist/contracts/src/client/react/feature-render.d.ts +3 -0
  22. package/dist/contracts/src/client/react/form-render.d.ts +4 -0
  23. package/dist/contracts/src/client/react/index.d.ts +4 -0
  24. package/dist/contracts/src/contract-registry/index.d.ts +2 -0
  25. package/dist/contracts/src/contract-registry/schemas.d.ts +2 -0
  26. package/dist/contracts/src/contract-registry/types.d.ts +1 -0
  27. package/dist/contracts/src/data-views/index.d.ts +3 -0
  28. package/dist/contracts/src/data-views/registry.d.ts +2 -0
  29. package/dist/contracts/src/data-views/spec.d.ts +2 -0
  30. package/dist/contracts/src/data-views/types.d.ts +2 -0
  31. package/dist/contracts/src/docs/accessibility_wcag_compliance_specs.docblock.d.ts +1 -0
  32. package/dist/contracts/src/docs/index.d.ts +25 -0
  33. package/dist/contracts/src/docs/presentations.d.ts +2 -0
  34. package/dist/contracts/src/docs/registry.d.ts +10 -0
  35. package/dist/contracts/src/docs/registry.d.ts.map +1 -0
  36. package/dist/contracts/src/docs/tech/auth/better-auth-nextjs.docblock.d.ts +1 -0
  37. package/dist/contracts/src/docs/tech/contracts/openapi-export.docblock.d.ts +1 -0
  38. package/dist/contracts/src/docs/tech/contracts/openapi-import.docblock.d.ts +1 -0
  39. package/dist/contracts/src/docs/tech/lifecycle-stage-system.docblock.d.ts +1 -0
  40. package/dist/contracts/src/docs/tech/llm/llm-integration.docblock.d.ts +1 -0
  41. package/dist/contracts/src/docs/tech/mcp-endpoints.docblock.d.ts +1 -0
  42. package/dist/contracts/src/docs/tech/presentation-runtime.docblock.d.ts +1 -0
  43. package/dist/contracts/src/docs/tech/schema/README.docblock.d.ts +1 -0
  44. package/dist/contracts/src/docs/tech/studio/learning-events.docblock.d.ts +1 -0
  45. package/dist/contracts/src/docs/tech/studio/learning-journeys.docblock.d.ts +1 -0
  46. package/dist/contracts/src/docs/tech/studio/platform-admin-panel.docblock.d.ts +1 -0
  47. package/dist/contracts/src/docs/tech/studio/project-access-teams.docblock.d.ts +1 -0
  48. package/dist/contracts/src/docs/tech/studio/project-routing.docblock.d.ts +1 -0
  49. package/dist/contracts/src/docs/tech/studio/sandbox-unlogged.docblock.d.ts +1 -0
  50. package/dist/contracts/src/docs/tech/studio/team-invitations.docblock.d.ts +1 -0
  51. package/dist/contracts/src/docs/tech/studio/workspace-ops.docblock.d.ts +1 -0
  52. package/dist/contracts/src/docs/tech/studio/workspaces.docblock.d.ts +1 -0
  53. package/dist/contracts/src/docs/tech/telemetry-ingest.docblock.d.ts +1 -0
  54. package/dist/contracts/src/docs/tech/templates/runtime.docblock.d.ts +1 -0
  55. package/dist/contracts/src/docs/tech/vscode-extension.docblock.d.ts +1 -0
  56. package/dist/contracts/src/events.d.ts +25 -0
  57. package/dist/contracts/src/events.d.ts.map +1 -0
  58. package/dist/contracts/src/experiments/evaluator.d.ts +2 -0
  59. package/dist/contracts/src/experiments/spec-resolver.d.ts +4 -0
  60. package/dist/contracts/src/experiments/spec.d.ts +3 -0
  61. package/dist/contracts/src/features/index.d.ts +4 -0
  62. package/dist/contracts/src/features/install.d.ts +6 -0
  63. package/dist/contracts/src/features/registry.d.ts +2 -0
  64. package/dist/contracts/src/features/types.d.ts +5 -0
  65. package/dist/contracts/src/features/validation.d.ts +2 -0
  66. package/dist/contracts/src/forms/forms.d.ts +3 -0
  67. package/dist/contracts/src/forms/index.d.ts +1 -0
  68. package/dist/contracts/src/index.d.ts +47 -0
  69. package/dist/contracts/src/install.d.ts +7 -0
  70. package/dist/contracts/src/integrations/connection.d.ts +1 -0
  71. package/dist/contracts/src/integrations/index.d.ts +6 -0
  72. package/dist/contracts/src/integrations/openbanking/contracts/accounts.d.ts +4 -0
  73. package/dist/contracts/src/integrations/openbanking/contracts/balances.d.ts +4 -0
  74. package/dist/contracts/src/integrations/openbanking/contracts/index.d.ts +5 -0
  75. package/dist/contracts/src/integrations/openbanking/contracts/transactions.d.ts +4 -0
  76. package/dist/contracts/src/integrations/openbanking/guards.d.ts +1 -0
  77. package/dist/contracts/src/integrations/openbanking/models.d.ts +1 -0
  78. package/dist/contracts/src/integrations/openbanking/openbanking.feature.d.ts +1 -0
  79. package/dist/contracts/src/integrations/operations.d.ts +4 -0
  80. package/dist/contracts/src/integrations/providers/elevenlabs.d.ts +1 -0
  81. package/dist/contracts/src/integrations/providers/gcs-storage.d.ts +1 -0
  82. package/dist/contracts/src/integrations/providers/gmail.d.ts +1 -0
  83. package/dist/contracts/src/integrations/providers/google-calendar.d.ts +1 -0
  84. package/dist/contracts/src/integrations/providers/index.d.ts +11 -0
  85. package/dist/contracts/src/integrations/providers/mistral.d.ts +1 -0
  86. package/dist/contracts/src/integrations/providers/postmark.d.ts +1 -0
  87. package/dist/contracts/src/integrations/providers/powens.d.ts +1 -0
  88. package/dist/contracts/src/integrations/providers/qdrant.d.ts +1 -0
  89. package/dist/contracts/src/integrations/providers/registry.d.ts +1 -0
  90. package/dist/contracts/src/integrations/providers/stripe.d.ts +1 -0
  91. package/dist/contracts/src/integrations/providers/twilio-sms.d.ts +1 -0
  92. package/dist/contracts/src/integrations/spec.d.ts +2 -0
  93. package/dist/contracts/src/jsonschema.d.ts +4 -0
  94. package/dist/contracts/src/knowledge/index.d.ts +2 -0
  95. package/dist/contracts/src/knowledge/operations.d.ts +4 -0
  96. package/dist/contracts/src/knowledge/spaces/email-threads.d.ts +1 -0
  97. package/dist/contracts/src/knowledge/spaces/financial-docs.d.ts +1 -0
  98. package/dist/contracts/src/knowledge/spaces/financial-overview.d.ts +1 -0
  99. package/dist/contracts/src/knowledge/spaces/index.d.ts +6 -0
  100. package/dist/contracts/src/knowledge/spaces/product-canon.d.ts +1 -0
  101. package/dist/contracts/src/knowledge/spaces/support-faq.d.ts +1 -0
  102. package/dist/contracts/src/knowledge/spaces/uploaded-docs.d.ts +1 -0
  103. package/dist/contracts/src/knowledge/spec.d.ts +2 -0
  104. package/dist/contracts/src/llm/exporters.d.ts +7 -0
  105. package/dist/contracts/src/llm/index.d.ts +3 -0
  106. package/dist/contracts/src/llm/prompts.d.ts +2 -0
  107. package/dist/contracts/src/llm/types.d.ts +5 -0
  108. package/dist/contracts/src/migrations.d.ts +1 -0
  109. package/dist/contracts/src/model-registry.d.ts +1 -0
  110. package/dist/contracts/src/onboarding-base.d.ts +2 -0
  111. package/dist/contracts/src/openapi.d.ts +1 -0
  112. package/dist/contracts/src/operations/index.d.ts +2 -0
  113. package/dist/contracts/src/operations/operation.d.ts +170 -0
  114. package/dist/contracts/src/operations/operation.d.ts.map +1 -0
  115. package/dist/contracts/src/operations/registry.d.ts +6 -0
  116. package/dist/contracts/src/ownership.d.ts +61 -0
  117. package/dist/contracts/src/ownership.d.ts.map +1 -0
  118. package/dist/contracts/src/policy/engine.d.ts +3 -0
  119. package/dist/contracts/src/policy/index.d.ts +4 -0
  120. package/dist/contracts/src/policy/opa-adapter.d.ts +3 -0
  121. package/dist/contracts/src/policy/registry.d.ts +2 -0
  122. package/dist/contracts/src/policy/spec.d.ts +11 -0
  123. package/dist/contracts/src/policy/spec.d.ts.map +1 -0
  124. package/dist/contracts/src/presentations/index.d.ts +3 -0
  125. package/dist/contracts/src/presentations/presentations.d.ts +2 -0
  126. package/dist/contracts/src/presentations/registry.d.ts +2 -0
  127. package/dist/contracts/src/presentations/transform-engine.d.ts +2 -0
  128. package/dist/contracts/src/prompt.d.ts +1 -0
  129. package/dist/contracts/src/promptRegistry.d.ts +2 -0
  130. package/dist/contracts/src/regenerator/adapters.d.ts +1 -0
  131. package/dist/contracts/src/regenerator/executor.d.ts +1 -0
  132. package/dist/contracts/src/regenerator/index.d.ts +6 -0
  133. package/dist/contracts/src/regenerator/service.d.ts +2 -0
  134. package/dist/contracts/src/regenerator/sinks.d.ts +2 -0
  135. package/dist/contracts/src/regenerator/types.d.ts +3 -0
  136. package/dist/contracts/src/regenerator/utils.d.ts +1 -0
  137. package/dist/contracts/src/registry-utils.d.ts +1 -0
  138. package/dist/contracts/src/registry.d.ts +3 -0
  139. package/dist/contracts/src/resources.d.ts +19 -0
  140. package/dist/contracts/src/resources.d.ts.map +1 -0
  141. package/dist/contracts/src/schema-to-markdown.d.ts +1 -0
  142. package/dist/contracts/src/server/graphql-pothos.d.ts +7 -0
  143. package/dist/contracts/src/server/index.d.ts +7 -0
  144. package/dist/contracts/src/server/mcp/createMcpServer.d.ts +5 -0
  145. package/dist/contracts/src/server/mcp/mcpTypes.d.ts +2 -0
  146. package/dist/contracts/src/server/provider-mcp.d.ts +1 -0
  147. package/dist/contracts/src/server/rest-elysia.d.ts +3 -0
  148. package/dist/contracts/src/server/rest-express.d.ts +3 -0
  149. package/dist/contracts/src/server/rest-generic.d.ts +2 -0
  150. package/dist/contracts/src/server/rest-next-app.d.ts +3 -0
  151. package/dist/contracts/src/server/rest-next-pages.d.ts +3 -0
  152. package/dist/contracts/src/telemetry/anomaly.d.ts +2 -0
  153. package/dist/contracts/src/telemetry/index.d.ts +3 -0
  154. package/dist/contracts/src/telemetry/spec.d.ts +1 -0
  155. package/dist/contracts/src/telemetry/tracker.d.ts +2 -0
  156. package/dist/contracts/src/tests/index.d.ts +2 -0
  157. package/dist/contracts/src/tests/runner.d.ts +3 -0
  158. package/dist/contracts/src/tests/spec.d.ts +11 -0
  159. package/dist/contracts/src/tests/spec.d.ts.map +1 -0
  160. package/dist/contracts/src/themes.d.ts +1 -0
  161. package/dist/contracts/src/types.d.ts +5 -0
  162. package/dist/contracts/src/workflow/adapters/db-adapter.d.ts +1 -0
  163. package/dist/contracts/src/workflow/adapters/file-adapter.d.ts +1 -0
  164. package/dist/contracts/src/workflow/adapters/index.d.ts +3 -0
  165. package/dist/contracts/src/workflow/adapters/memory-store.d.ts +1 -0
  166. package/dist/contracts/src/workflow/index.d.ts +5 -0
  167. package/dist/contracts/src/workflow/overview.docblock.d.ts +1 -0
  168. package/dist/contracts/src/workflow/runner.d.ts +5 -0
  169. package/dist/contracts/src/workflow/spec.d.ts +5 -0
  170. package/dist/contracts/src/workflow/state.d.ts +1 -0
  171. package/dist/contracts/src/workflow/validation.d.ts +3 -0
  172. package/dist/contracts/src/workspace-config/contractsrc-schema.d.ts +1 -0
  173. package/dist/contracts/src/workspace-config/index.d.ts +1 -0
  174. package/dist/contracts/src/workspace-config/workspace-config.docblock.d.ts +1 -0
  175. package/dist/generator/assertion-builder.d.ts +12 -0
  176. package/dist/generator/assertion-builder.d.ts.map +1 -0
  177. package/dist/generator/assertion-builder.js +16 -0
  178. package/dist/generator/assertion-builder.js.map +1 -0
  179. package/dist/generator/golden-test-generator.d.ts +27 -0
  180. package/dist/generator/golden-test-generator.d.ts.map +1 -0
  181. package/dist/generator/golden-test-generator.js +87 -0
  182. package/dist/generator/golden-test-generator.js.map +1 -0
  183. package/dist/index.d.ts +7 -0
  184. package/dist/index.js +7 -0
  185. package/dist/recorder/traffic-recorder.d.ts +40 -0
  186. package/dist/recorder/traffic-recorder.d.ts.map +1 -0
  187. package/dist/recorder/traffic-recorder.js +60 -0
  188. package/dist/recorder/traffic-recorder.js.map +1 -0
  189. package/dist/schema/src/EnumType.d.ts +36 -0
  190. package/dist/schema/src/EnumType.d.ts.map +1 -0
  191. package/dist/schema/src/FieldType.d.ts +30 -0
  192. package/dist/schema/src/FieldType.d.ts.map +1 -0
  193. package/dist/schema/src/GraphQLSchemaType.d.ts +2 -0
  194. package/dist/schema/src/JsonSchemaType.d.ts +2 -0
  195. package/dist/schema/src/ScalarTypeEnum.d.ts +1 -0
  196. package/dist/schema/src/SchemaModel.d.ts +70 -0
  197. package/dist/schema/src/SchemaModel.d.ts.map +1 -0
  198. package/dist/schema/src/SchemaModelType.d.ts +38 -0
  199. package/dist/schema/src/SchemaModelType.d.ts.map +1 -0
  200. package/dist/schema/src/ZodSchemaType.d.ts +2 -0
  201. package/dist/schema/src/entity/defineEntity.d.ts +1 -0
  202. package/dist/schema/src/entity/generator.d.ts +1 -0
  203. package/dist/schema/src/entity/index.d.ts +3 -0
  204. package/dist/schema/src/entity/types.d.ts +1 -0
  205. package/dist/schema/src/index.d.ts +9 -0
  206. package/dist/types.d.ts +46 -0
  207. package/dist/types.d.ts.map +1 -0
  208. package/package.json +54 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Chaman Ventures, SASU
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # @contractspec/lib.testing
2
+
3
+ Website: https://contractspec.io/
4
+
5
+
6
+ **Safe regeneration verification** — Capture production traffic and generate golden tests automatically.
7
+
8
+ Golden-test utilities that record real requests/responses and generate runnable test suites. Prove that regenerated code behaves identically to the original.
9
+
10
+ - **TrafficRecorder** captures production requests/responses with sampling + sanitization.
11
+ - **GoldenTestGenerator** converts snapshots into runnable suites.
12
+ - **Adapters** output Vitest or Jest files and helper runners.
13
+
14
+ ### Usage
15
+
16
+ ```ts
17
+ import {
18
+ TrafficRecorder,
19
+ InMemoryTrafficStore,
20
+ } from '@contractspec/lib.testing/recorder';
21
+
22
+ const recorder = new TrafficRecorder({
23
+ store: new InMemoryTrafficStore(),
24
+ sampleRate: 0.01,
25
+ });
26
+
27
+ await recorder.record({
28
+ operation: { name: 'orders.create', version: 3 },
29
+ input: payload,
30
+ output,
31
+ success: true,
32
+ timestamp: new Date(),
33
+ });
34
+ ```
35
+
36
+ See `GoldenTestGenerator` for generating suites and CLI in `@contractspec/app.contracts-cli`.
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
@@ -0,0 +1,13 @@
1
+ import { GoldenTestCase } from "../types.js";
2
+
3
+ //#region src/adapters/jest-adapter.d.ts
4
+ interface JestAdapterOptions {
5
+ suiteName: string;
6
+ cases: GoldenTestCase[];
7
+ runnerImport: string;
8
+ runnerFunction: string;
9
+ }
10
+ declare function generateJestSuite(options: JestAdapterOptions): string;
11
+ //#endregion
12
+ export { JestAdapterOptions, generateJestSuite };
13
+ //# sourceMappingURL=jest-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest-adapter.d.ts","names":[],"sources":["../../src/adapters/jest-adapter.ts"],"sourcesContent":[],"mappings":";;;UAGiB,kBAAA;;EAAA,KAAA,EAER,cAF0B,EAAA;EAOnB,YAAA,EAAA,MAAiB;;;iBAAjB,iBAAA,UAA2B"}
@@ -0,0 +1,28 @@
1
+ import { serialize } from "../generator/assertion-builder.js";
2
+
3
+ //#region src/adapters/jest-adapter.ts
4
+ function generateJestSuite(options) {
5
+ const caseBlocks = options.cases.map((testCase) => {
6
+ const inputConst = serialize(testCase.input);
7
+ const metadataConst = serialize(testCase.metadata ?? {});
8
+ const successBlock = `const result = await ${options.runnerFunction}(input${testCase.id}, metadata${testCase.id});
9
+ expect(result).toEqual(${serialize(testCase.expectedOutput ?? null)});`;
10
+ const failureBlock = `await expect(${options.runnerFunction}(input${testCase.id}, metadata${testCase.id})).rejects.toMatchObject(${serialize(testCase.expectedError ?? { message: "expected failure" })});`;
11
+ return `
12
+ test('${testCase.name}', async () => {
13
+ const input${testCase.id} = ${inputConst};
14
+ const metadata${testCase.id} = ${metadataConst};
15
+ ${testCase.success ? successBlock : failureBlock}
16
+ });`;
17
+ }).join("\n");
18
+ return `
19
+ import { ${options.runnerFunction} } from '${options.runnerImport}';
20
+
21
+ describe('${options.suiteName}', () => {${caseBlocks}
22
+ });
23
+ `.trim();
24
+ }
25
+
26
+ //#endregion
27
+ export { generateJestSuite };
28
+ //# sourceMappingURL=jest-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest-adapter.js","names":[],"sources":["../../src/adapters/jest-adapter.ts"],"sourcesContent":["import type { GoldenTestCase } from '../types';\nimport { serialize } from '../generator/assertion-builder';\n\nexport interface JestAdapterOptions {\n suiteName: string;\n cases: GoldenTestCase[];\n runnerImport: string;\n runnerFunction: string;\n}\n\nexport function generateJestSuite(options: JestAdapterOptions) {\n const caseBlocks = options.cases\n .map((testCase) => {\n const inputConst = serialize(testCase.input);\n const metadataConst = serialize(testCase.metadata ?? {});\n const successBlock = `const result = await ${options.runnerFunction}(input${testCase.id}, metadata${testCase.id});\n expect(result).toEqual(${serialize(testCase.expectedOutput ?? null)});`;\n const failureBlock = `await expect(${options.runnerFunction}(input${testCase.id}, metadata${testCase.id})).rejects.toMatchObject(${serialize(\n testCase.expectedError ?? { message: 'expected failure' }\n )});`;\n\n return `\n test('${testCase.name}', async () => {\n const input${testCase.id} = ${inputConst};\n const metadata${testCase.id} = ${metadataConst};\n ${testCase.success ? successBlock : failureBlock}\n });`;\n })\n .join('\\n');\n\n return `\nimport { ${options.runnerFunction} } from '${options.runnerImport}';\n\ndescribe('${options.suiteName}', () => {${caseBlocks}\n});\n`.trim();\n}\n"],"mappings":";;;AAUA,SAAgB,kBAAkB,SAA6B;CAC7D,MAAM,aAAa,QAAQ,MACxB,KAAK,aAAa;EACjB,MAAM,aAAa,UAAU,SAAS,MAAM;EAC5C,MAAM,gBAAgB,UAAU,SAAS,YAAY,EAAE,CAAC;EACxD,MAAM,eAAe,wBAAwB,QAAQ,eAAe,QAAQ,SAAS,GAAG,YAAY,SAAS,GAAG;6BACzF,UAAU,SAAS,kBAAkB,KAAK,CAAC;EAClE,MAAM,eAAe,gBAAgB,QAAQ,eAAe,QAAQ,SAAS,GAAG,YAAY,SAAS,GAAG,2BAA2B,UACjI,SAAS,iBAAiB,EAAE,SAAS,oBAAoB,CAC1D,CAAC;AAEF,SAAO;UACH,SAAS,KAAK;iBACP,SAAS,GAAG,KAAK,WAAW;oBACzB,SAAS,GAAG,KAAK,cAAc;MAC7C,SAAS,UAAU,eAAe,aAAa;;GAE/C,CACD,KAAK,KAAK;AAEb,QAAO;WACE,QAAQ,eAAe,WAAW,QAAQ,aAAa;;YAEtD,QAAQ,UAAU,YAAY,WAAW;;EAEnD,MAAM"}
@@ -0,0 +1,13 @@
1
+ import { GoldenTestCase } from "../types.js";
2
+
3
+ //#region src/adapters/vitest-adapter.d.ts
4
+ interface VitestAdapterOptions {
5
+ suiteName: string;
6
+ cases: GoldenTestCase[];
7
+ runnerImport: string;
8
+ runnerFunction: string;
9
+ }
10
+ declare function generateVitestSuite(options: VitestAdapterOptions): string;
11
+ //#endregion
12
+ export { VitestAdapterOptions, generateVitestSuite };
13
+ //# sourceMappingURL=vitest-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-adapter.d.ts","names":[],"sources":["../../src/adapters/vitest-adapter.ts"],"sourcesContent":[],"mappings":";;;UAGiB,oBAAA;;EAAA,KAAA,EAER,cAFQ,EAAoB;EAOrB,YAAA,EAAA,MAAA;;;iBAAA,mBAAA,UAA6B"}
@@ -0,0 +1,27 @@
1
+ import { serialize } from "../generator/assertion-builder.js";
2
+
3
+ //#region src/adapters/vitest-adapter.ts
4
+ function generateVitestSuite(options) {
5
+ const caseBlocks = options.cases.map((testCase) => {
6
+ const inputConst = serialize(testCase.input);
7
+ const metadataConst = serialize(testCase.metadata ?? {});
8
+ const assertions = testCase.success ? [`const result = await ${options.runnerFunction}(input${testCase.id}, metadata${testCase.id});`, `expect(result).toEqual(${serialize(testCase.expectedOutput ?? null)});`] : [`await expect(${options.runnerFunction}(input${testCase.id}, metadata${testCase.id})).rejects.toMatchObject(${serialize(testCase.expectedError ?? { message: "expected failure" })});`];
9
+ return `
10
+ it('${testCase.name}', async () => {
11
+ const input${testCase.id} = ${inputConst};
12
+ const metadata${testCase.id} = ${metadataConst};
13
+ ${assertions.join("\n ")}
14
+ });`;
15
+ }).join("\n");
16
+ return `
17
+ import { describe, it, expect } from 'bun:test';
18
+ import { ${options.runnerFunction} } from '${options.runnerImport}';
19
+
20
+ describe('${options.suiteName}', () => {${caseBlocks}
21
+ });
22
+ `.trim();
23
+ }
24
+
25
+ //#endregion
26
+ export { generateVitestSuite };
27
+ //# sourceMappingURL=vitest-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-adapter.js","names":[],"sources":["../../src/adapters/vitest-adapter.ts"],"sourcesContent":["import type { GoldenTestCase } from '../types';\nimport { serialize } from '../generator/assertion-builder';\n\nexport interface VitestAdapterOptions {\n suiteName: string;\n cases: GoldenTestCase[];\n runnerImport: string;\n runnerFunction: string;\n}\n\nexport function generateVitestSuite(options: VitestAdapterOptions) {\n const caseBlocks = options.cases\n .map((testCase) => {\n const inputConst = serialize(testCase.input);\n const metadataConst = serialize(testCase.metadata ?? {});\n const assertions = testCase.success\n ? [\n `const result = await ${options.runnerFunction}(input${testCase.id}, metadata${testCase.id});`,\n `expect(result).toEqual(${serialize(testCase.expectedOutput ?? null)});`,\n ]\n : [\n `await expect(${options.runnerFunction}(input${testCase.id}, metadata${testCase.id})).rejects.toMatchObject(${serialize(testCase.expectedError ?? { message: 'expected failure' })});`,\n ];\n\n return `\n it('${testCase.name}', async () => {\n const input${testCase.id} = ${inputConst};\n const metadata${testCase.id} = ${metadataConst};\n ${assertions.join('\\n ')}\n });`;\n })\n .join('\\n');\n\n return `\nimport { describe, it, expect } from 'bun:test';\nimport { ${options.runnerFunction} } from '${options.runnerImport}';\n\ndescribe('${options.suiteName}', () => {${caseBlocks}\n});\n`.trim();\n}\n"],"mappings":";;;AAUA,SAAgB,oBAAoB,SAA+B;CACjE,MAAM,aAAa,QAAQ,MACxB,KAAK,aAAa;EACjB,MAAM,aAAa,UAAU,SAAS,MAAM;EAC5C,MAAM,gBAAgB,UAAU,SAAS,YAAY,EAAE,CAAC;EACxD,MAAM,aAAa,SAAS,UACxB,CACE,wBAAwB,QAAQ,eAAe,QAAQ,SAAS,GAAG,YAAY,SAAS,GAAG,KAC3F,0BAA0B,UAAU,SAAS,kBAAkB,KAAK,CAAC,IACtE,GACD,CACE,gBAAgB,QAAQ,eAAe,QAAQ,SAAS,GAAG,YAAY,SAAS,GAAG,2BAA2B,UAAU,SAAS,iBAAiB,EAAE,SAAS,oBAAoB,CAAC,CAAC,IACpL;AAEL,SAAO;QACL,SAAS,KAAK;iBACL,SAAS,GAAG,KAAK,WAAW;oBACzB,SAAS,GAAG,KAAK,cAAc;MAC7C,WAAW,KAAK,SAAS,CAAC;;GAE1B,CACD,KAAK,KAAK;AAEb,QAAO;;WAEE,QAAQ,eAAe,WAAW,QAAQ,aAAa;;YAEtD,QAAQ,UAAU,YAAY,WAAW;;EAEnD,MAAM"}
@@ -0,0 +1 @@
1
+ import "./spec.js";
@@ -0,0 +1,13 @@
1
+ import "../policy/spec.js";
2
+ import "../telemetry/spec.js";
3
+ import "../capabilities/index.js";
4
+ import "../experiments/spec.js";
5
+ import "../features/index.js";
6
+ import "../data-views/index.js";
7
+ import "../workflow/spec.js";
8
+ import "../policy/registry.js";
9
+ import "../themes.js";
10
+ import "../integrations/spec.js";
11
+ import "../integrations/connection.js";
12
+ import "../knowledge/spec.js";
13
+ import "./spec.js";
@@ -0,0 +1,8 @@
1
+ import "../ownership.js";
2
+ import "../policy/spec.js";
3
+ import "../capabilities/index.js";
4
+ import "../experiments/spec.js";
5
+ import "../features/index.js";
6
+ import "../themes.js";
7
+ import "../integrations/spec.js";
8
+ import "./lifecycle.js";
@@ -0,0 +1,8 @@
1
+ import "../capabilities/index.js";
2
+ import "../data-views/index.js";
3
+ import "../workflow/spec.js";
4
+ import "../integrations/spec.js";
5
+ import "../integrations/connection.js";
6
+ import "../knowledge/spec.js";
7
+ import "./spec.js";
8
+ import "./runtime.js";
@@ -0,0 +1,2 @@
1
+ import "../docs/registry.js";
2
+ import "../ownership.js";
@@ -0,0 +1,2 @@
1
+ import "./capabilities.js";
2
+ import "./openbanking.js";
@@ -0,0 +1 @@
1
+ import "./index.js";
@@ -0,0 +1 @@
1
+ import "./react/index.js";
@@ -0,0 +1 @@
1
+ import "../form-render.js";
@@ -0,0 +1 @@
1
+ import "../form-render.js";
@@ -0,0 +1,3 @@
1
+ import "../../presentations/index.js";
2
+ import "../../features/index.js";
3
+ import "react";
@@ -0,0 +1,4 @@
1
+ import "../../../../schema/src/index.js";
2
+ import "../../forms/index.js";
3
+ import "react";
4
+ import "react/jsx-runtime";
@@ -0,0 +1,4 @@
1
+ import "./feature-render.js";
2
+ import "./form-render.js";
3
+ import "./drivers/shadcn.js";
4
+ import "./drivers/rn-reusables.js";
@@ -0,0 +1,2 @@
1
+ import "./types.js";
2
+ import "./schemas.js";
@@ -0,0 +1,2 @@
1
+ import "./types.js";
2
+ import "zod";
@@ -0,0 +1 @@
1
+ import "../ownership.js";
@@ -0,0 +1,3 @@
1
+ import "./types.js";
2
+ import "./spec.js";
3
+ import "./registry.js";
@@ -0,0 +1,2 @@
1
+ import "../registry-utils.js";
2
+ import "./spec.js";
@@ -0,0 +1,2 @@
1
+ import "../experiments/spec.js";
2
+ import "./types.js";
@@ -0,0 +1,2 @@
1
+ import "../ownership.js";
2
+ import "../features/index.js";
@@ -0,0 +1,25 @@
1
+ import "./presentations.js";
2
+ import { DocId } from "./registry.js";
3
+ import "./accessibility_wcag_compliance_specs.docblock.js";
4
+ import "./tech/lifecycle-stage-system.docblock.js";
5
+ import "./tech/presentation-runtime.docblock.js";
6
+ import "./tech/auth/better-auth-nextjs.docblock.js";
7
+ import "./tech/schema/README.docblock.js";
8
+ import "./tech/templates/runtime.docblock.js";
9
+ import "../workflow/overview.docblock.js";
10
+ import "./tech/mcp-endpoints.docblock.js";
11
+ import "./tech/vscode-extension.docblock.js";
12
+ import "./tech/telemetry-ingest.docblock.js";
13
+ import "./tech/contracts/openapi-export.docblock.js";
14
+ import "./tech/contracts/openapi-import.docblock.js";
15
+ import "../workspace-config/workspace-config.docblock.js";
16
+ import "./tech/studio/workspaces.docblock.js";
17
+ import "./tech/studio/sandbox-unlogged.docblock.js";
18
+ import "./tech/studio/workspace-ops.docblock.js";
19
+ import "./tech/studio/project-routing.docblock.js";
20
+ import "./tech/studio/platform-admin-panel.docblock.js";
21
+ import "./tech/studio/learning-events.docblock.js";
22
+ import "./tech/studio/learning-journeys.docblock.js";
23
+ import "./tech/studio/project-access-teams.docblock.js";
24
+ import "./tech/studio/team-invitations.docblock.js";
25
+ import "./tech/llm/llm-integration.docblock.js";
@@ -0,0 +1,2 @@
1
+ import "../presentations/presentations.js";
2
+ import "../ownership.js";
@@ -0,0 +1,10 @@
1
+ import "../presentations/presentations.js";
2
+ import "./presentations.js";
3
+
4
+ //#region ../contracts/src/docs/registry.d.ts
5
+ type DocId = string & {
6
+ __docId: true;
7
+ };
8
+ //#endregion
9
+ export { DocId };
10
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","names":[],"sources":["../../../../../contracts/src/docs/registry.ts"],"sourcesContent":[],"mappings":";;;;KASY,KAAA;EAAA,OAAA,EAAK,IAAA"}
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../index.js";
@@ -0,0 +1 @@
1
+ import "../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../index.js";
@@ -0,0 +1 @@
1
+ import "../../index.js";
@@ -0,0 +1 @@
1
+ import "../index.js";
@@ -0,0 +1,25 @@
1
+ import { AnySchemaModel } from "../../schema/src/SchemaModel.js";
2
+ import "../../schema/src/index.js";
3
+ import { DocId } from "./docs/registry.js";
4
+ import { OwnerShipMeta } from "./ownership.js";
5
+ import "./registry.js";
6
+
7
+ //#region ../contracts/src/events.d.ts
8
+ interface EventSpecMeta extends Omit<OwnerShipMeta, 'docId'> {
9
+ /** Doc block(s) for this operation. */
10
+ docId?: DocId[];
11
+ }
12
+ /**
13
+ * Typed event specification. Declare once, validate payloads at publish time,
14
+ * and guard emissions via the contracts runtime.
15
+ */
16
+ interface EventSpec<T extends AnySchemaModel> {
17
+ meta: EventSpecMeta;
18
+ /** JSON-like paths to redact from logs/exports. */
19
+ pii?: string[];
20
+ /** Event payload schema from @contractspec/lib.schema. */
21
+ payload: T;
22
+ }
23
+ //#endregion
24
+ export { EventSpec, EventSpecMeta };
25
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","names":[],"sources":["../../../../contracts/src/events.ts"],"sourcesContent":[],"mappings":";;;;;;;UAKiB,aAAA,SAAsB,KAAK;;UAElC;AAFV;;;;;AASiB,UAAA,SAAS,CAAA,UAAW,cAAX,CAAA,CAAA;EAAW,IAAA,EAC7B,aAD6B;EAC7B;EAIG,GAAA,CAAA,EAAA,MAAA,EAAA;EAAC;WAAD"}
@@ -0,0 +1,2 @@
1
+ import "../policy/spec.js";
2
+ import "./spec.js";
@@ -0,0 +1,4 @@
1
+ import "../../../schema/src/index.js";
2
+ import "../resources.js";
3
+ import "../operations/index.js";
4
+ import "../types.js";
@@ -0,0 +1,3 @@
1
+ import "../ownership.js";
2
+ import "../policy/spec.js";
3
+ import "../telemetry/spec.js";
@@ -0,0 +1,4 @@
1
+ import "./types.js";
2
+ import "./registry.js";
3
+ import "./install.js";
4
+ import "./validation.js";
@@ -0,0 +1,6 @@
1
+ import "../presentations/presentations.js";
2
+ import "../capabilities/index.js";
3
+ import "../operations/registry.js";
4
+ import "./types.js";
5
+ import "./registry.js";
6
+ import "../presentations/index.js";
@@ -0,0 +1,2 @@
1
+ import "../registry-utils.js";
2
+ import "./types.js";
@@ -0,0 +1,5 @@
1
+ import "../presentations/presentations.js";
2
+ import "../ownership.js";
3
+ import "../capabilities/index.js";
4
+ import "../experiments/spec.js";
5
+ import "../operations/index.js";
@@ -0,0 +1,2 @@
1
+ import "../presentations/presentations.js";
2
+ import "./types.js";
@@ -0,0 +1,3 @@
1
+ import "../../../schema/src/index.js";
2
+ import "../ownership.js";
3
+ import "../registry-utils.js";
@@ -0,0 +1 @@
1
+ import "./forms.js";
@@ -0,0 +1,47 @@
1
+ import "../../schema/src/index.js";
2
+ import { DocId } from "./docs/registry.js";
3
+ import "./docs/index.js";
4
+ import { Owner, OwnerShipMeta, OwnersEnum, Stability, StabilityEnum, Tag, TagsEnum } from "./ownership.js";
5
+ import "./registry-utils.js";
6
+ import { PolicyRef } from "./policy/spec.js";
7
+ import "./telemetry/index.js";
8
+ import "./capabilities/index.js";
9
+ import "./experiments/spec.js";
10
+ import { ResourceRefDescriptor } from "./resources.js";
11
+ import { TestSpecRef } from "./tests/spec.js";
12
+ import { EmitDecl, EmitDeclInline, EmitDeclRef, ImplementationRef, ImplementationType, OpKind, OperationSpec, OperationSpecMeta, TelemetryTrigger } from "./operations/operation.js";
13
+ import "./install.js";
14
+ import "./operations/index.js";
15
+ import "./presentations/index.js";
16
+ import "./features/index.js";
17
+ import "./data-views/index.js";
18
+ import "./themes.js";
19
+ import "./app-config/spec.js";
20
+ import "./app-config/runtime.js";
21
+ import "./experiments/spec-resolver.js";
22
+ import "./types.js";
23
+ import { EventSpec, EventSpecMeta } from "./events.js";
24
+ import "./forms/index.js";
25
+ import "./client/index.js";
26
+ import "./prompt.js";
27
+ import "./promptRegistry.js";
28
+ import "./server/index.js";
29
+ import "./contract-registry/index.js";
30
+ import "./jsonschema.js";
31
+ import "./openapi.js";
32
+ import "./model-registry.js";
33
+ import "./onboarding-base.js";
34
+ import "./policy/index.js";
35
+ import "./migrations.js";
36
+ import "./tests/index.js";
37
+ import "./experiments/evaluator.js";
38
+ import "./integrations/index.js";
39
+ import "./knowledge/index.js";
40
+ import "./integrations/operations.js";
41
+ import "./knowledge/operations.js";
42
+ import "./regenerator/index.js";
43
+ import "./workspace-config/index.js";
44
+ import "./workflow/index.js";
45
+ import "./schema-to-markdown.js";
46
+ import "./llm/index.js";
47
+ import "./app-config/validation.js";
@@ -0,0 +1,7 @@
1
+ import "../../schema/src/index.js";
2
+ import "./resources.js";
3
+ import "./operations/registry.js";
4
+ import "./operations/index.js";
5
+ import "./types.js";
6
+ import "./events.js";
7
+ import "zod";
@@ -0,0 +1 @@
1
+ import "./spec.js";
@@ -0,0 +1,6 @@
1
+ import "./spec.js";
2
+ import "./connection.js";
3
+ import "./providers/index.js";
4
+ import "./openbanking/models.js";
5
+ import "./openbanking/contracts/index.js";
6
+ import "./openbanking/guards.js";
@@ -0,0 +1,4 @@
1
+ import "../../../../../schema/src/index.js";
2
+ import "../../../operations/registry.js";
3
+ import "../../../operations/index.js";
4
+ import "../../../index.js";
@@ -0,0 +1,4 @@
1
+ import "../../../../../schema/src/index.js";
2
+ import "../../../operations/registry.js";
3
+ import "../../../operations/index.js";
4
+ import "../../../index.js";
@@ -0,0 +1,5 @@
1
+ import "../../../operations/registry.js";
2
+ import "./accounts.js";
3
+ import "./transactions.js";
4
+ import "./balances.js";
5
+ import "../openbanking.feature.js";
@@ -0,0 +1,4 @@
1
+ import "../../../../../schema/src/index.js";
2
+ import "../../../operations/registry.js";
3
+ import "../../../operations/index.js";
4
+ import "../../../index.js";
@@ -0,0 +1 @@
1
+ import "../../app-config/runtime.js";
@@ -0,0 +1 @@
1
+ import "../../../../schema/src/index.js";
@@ -0,0 +1 @@
1
+ import "../../features/index.js";
@@ -0,0 +1,4 @@
1
+ import "../../../schema/src/index.js";
2
+ import "../operations/registry.js";
3
+ import "../operations/index.js";
4
+ import "../index.js";
@@ -0,0 +1 @@
1
+ import "../spec.js";
@@ -0,0 +1 @@
1
+ import "../spec.js";
@@ -0,0 +1 @@
1
+ import "../spec.js";
@@ -0,0 +1 @@
1
+ import "../spec.js";