@contractspec/module.examples 1.44.0 → 1.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtins.js.map +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.js +3 -4
- package/dist/libs/contracts/dist/_virtual/rolldown_runtime.js +6 -0
- package/dist/libs/contracts/dist/_virtual/rolldown_runtime.js.map +1 -0
- package/dist/libs/contracts/dist/app-config/spec.js +1 -0
- package/dist/libs/contracts/dist/capabilities/capabilities.js +1 -0
- package/dist/libs/contracts/dist/capabilities/index.js +2 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js +89 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
- package/dist/libs/contracts/dist/client/index.js +5 -0
- package/dist/libs/contracts/dist/client/react/feature-render.js +3 -0
- package/dist/libs/contracts/dist/client/react/form-render.js +6 -0
- package/dist/libs/contracts/dist/client/react/index.js +4 -0
- package/dist/libs/contracts/dist/contract-registry/index.js +1 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js +61 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
- package/dist/libs/contracts/dist/data-views/index.js +1 -0
- package/dist/libs/contracts/dist/data-views/registry.js +1 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/index.js +27 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/libs/contracts/dist/docs/presentations.js +57 -0
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/libs/contracts/dist/docs/registry.js +45 -0
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +81 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +58 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-import.docblock.js +65 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-import.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +358 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +38 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +21 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +49 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +80 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +85 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +46 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +68 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +41 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +70 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +48 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +63 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +156 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +21 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +102 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/libs/contracts/dist/events.js +2 -0
- package/dist/libs/contracts/dist/examples/index.js +3 -0
- package/dist/libs/contracts/dist/examples/registry.js +145 -0
- package/dist/libs/contracts/dist/examples/registry.js.map +1 -0
- package/dist/libs/contracts/dist/examples/schema.js +102 -0
- package/dist/libs/contracts/dist/examples/schema.js.map +1 -0
- package/dist/libs/contracts/dist/examples/validation.js +1 -0
- package/dist/libs/contracts/dist/experiments/evaluator.js +1 -0
- package/dist/libs/contracts/dist/experiments/spec.js +1 -0
- package/dist/libs/contracts/dist/features/index.js +1 -0
- package/dist/libs/contracts/dist/features/registry.js +7 -0
- package/dist/libs/contracts/dist/features/registry.js.map +1 -0
- package/dist/libs/contracts/dist/forms/forms.js +2 -0
- package/dist/libs/contracts/dist/forms/index.js +1 -0
- package/dist/libs/contracts/dist/index.js +109 -0
- package/dist/libs/contracts/dist/index.js.map +1 -0
- package/dist/libs/contracts/dist/install.js +2 -0
- package/dist/libs/contracts/dist/integrations/index.js +19 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +230 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +161 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +3 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +212 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +243 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +14 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/operations.js +384 -0
- package/dist/libs/contracts/dist/integrations/operations.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +52 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +75 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +87 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +66 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/index.js +11 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +68 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +68 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js +116 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +73 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/registry.js +11 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +83 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +61 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/spec.js +1 -0
- package/dist/libs/contracts/dist/jsonschema.js +1 -0
- package/dist/libs/contracts/dist/knowledge/index.js +8 -0
- package/dist/libs/contracts/dist/knowledge/operations.js +313 -0
- package/dist/libs/contracts/dist/knowledge/operations.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +34 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +34 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +38 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/index.js +6 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +34 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +37 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +34 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spec.js +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js +21 -0
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
- package/dist/libs/contracts/dist/llm/index.js +2 -0
- package/dist/libs/contracts/dist/llm/prompts.js +1 -0
- package/dist/libs/contracts/dist/migrations.js +1 -0
- package/dist/libs/contracts/dist/model-registry.js +1 -0
- package/dist/libs/contracts/dist/onboarding-base.js +198 -0
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
- package/dist/libs/contracts/dist/openapi.js +2 -0
- package/dist/libs/contracts/dist/operations/index.js +2 -0
- package/dist/libs/contracts/dist/operations/operation.js +35 -0
- package/dist/libs/contracts/dist/operations/operation.js.map +1 -0
- package/dist/libs/contracts/dist/operations/registry.js +2 -0
- package/dist/libs/contracts/dist/ownership.js +22 -0
- package/dist/libs/contracts/dist/ownership.js.map +1 -0
- package/dist/libs/contracts/dist/policy/engine.js +1 -0
- package/dist/libs/contracts/dist/policy/index.js +2 -0
- package/dist/libs/contracts/dist/policy/registry.js +1 -0
- package/dist/libs/contracts/dist/presentations/index.js +2 -0
- package/dist/libs/contracts/dist/presentations/registry.js +1 -0
- package/dist/libs/contracts/dist/presentations/transform-engine.js +13 -0
- package/dist/libs/contracts/dist/presentations/transform-engine.js.map +1 -0
- package/dist/libs/contracts/dist/prompt.js +1 -0
- package/dist/libs/contracts/dist/promptRegistry.js +2 -0
- package/dist/libs/contracts/dist/regenerator/index.js +1 -0
- package/dist/libs/contracts/dist/regenerator/service.js +5 -0
- package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
- package/dist/libs/contracts/dist/registry-utils.js +71 -0
- package/dist/libs/contracts/dist/registry-utils.js.map +1 -0
- package/dist/libs/contracts/dist/registry.js +8 -0
- package/dist/libs/contracts/dist/registry.js.map +1 -0
- package/dist/libs/contracts/dist/resources.js +1 -0
- package/dist/libs/contracts/dist/schema-to-markdown.js +1 -0
- package/dist/libs/contracts/dist/server/contracts-adapter-input.js +1 -0
- package/dist/libs/contracts/dist/server/graphql-pothos.js +8 -0
- package/dist/libs/contracts/dist/server/index.js +8 -0
- package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +4 -0
- package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +2 -0
- package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +1 -0
- package/dist/libs/contracts/dist/server/mcp/registerResources.js +2 -0
- package/dist/libs/contracts/dist/server/mcp/registerTools.js +1 -0
- package/dist/libs/contracts/dist/server/provider-mcp.js +1 -0
- package/dist/libs/contracts/dist/server/rest-elysia.js +1 -0
- package/dist/libs/contracts/dist/server/rest-express.js +1 -0
- package/dist/libs/contracts/dist/server/rest-generic.js +1 -0
- package/dist/libs/contracts/dist/server/rest-next-app.js +1 -0
- package/dist/libs/contracts/dist/server/rest-next-pages.js +1 -0
- package/dist/libs/contracts/dist/telemetry/index.js +2 -0
- package/dist/libs/contracts/dist/telemetry/spec.js +2 -0
- package/dist/libs/contracts/dist/telemetry/tracker.js +1 -0
- package/dist/libs/contracts/dist/tests/index.js +2 -0
- package/dist/libs/contracts/dist/tests/runner.js +2 -0
- package/dist/libs/contracts/dist/tests/spec.js +1 -0
- package/dist/libs/contracts/dist/themes.js +1 -0
- package/dist/libs/contracts/dist/workflow/index.js +2 -0
- package/dist/libs/contracts/dist/workflow/overview.docblock.js +21 -0
- package/dist/libs/contracts/dist/workflow/overview.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/workflow/runner.js +1 -0
- package/dist/libs/contracts/dist/workflow/spec.js +1 -0
- package/dist/libs/contracts/dist/workspace-config/contractsrc-schema.js +263 -0
- package/dist/libs/contracts/dist/workspace-config/contractsrc-schema.js.map +1 -0
- package/dist/libs/contracts/dist/workspace-config/index.js +1 -0
- package/dist/libs/contracts/dist/workspace-config/workspace-config.docblock.js +45 -0
- package/dist/libs/contracts/dist/workspace-config/workspace-config.docblock.js.map +1 -0
- package/dist/libs/schema/dist/EnumType.js +2 -0
- package/dist/libs/schema/dist/FieldType.js +50 -0
- package/dist/libs/schema/dist/FieldType.js.map +1 -0
- package/dist/libs/schema/dist/GraphQLSchemaType.js +1 -0
- package/dist/libs/schema/dist/JsonSchemaType.js +1 -0
- package/dist/libs/schema/dist/ScalarTypeEnum.js +237 -0
- package/dist/libs/schema/dist/ScalarTypeEnum.js.map +1 -0
- package/dist/libs/schema/dist/SchemaModel.js +35 -0
- package/dist/libs/schema/dist/SchemaModel.js.map +1 -0
- package/dist/libs/schema/dist/ZodSchemaType.js +1 -0
- package/dist/libs/schema/dist/entity/defineEntity.js +1 -0
- package/dist/libs/schema/dist/entity/index.js +2 -0
- package/dist/libs/schema/dist/entity/types.js +1 -0
- package/dist/libs/schema/dist/index.js +9 -0
- package/dist/registry.d.ts +20 -6
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +24 -10
- package/dist/registry.js.map +1 -1
- package/package.json +45 -37
- package/dist/builtins.d.ts +0 -7
- package/dist/builtins.d.ts.map +0 -1
- package/dist/types.d.ts +0 -53
- package/dist/types.d.ts.map +0 -1
- package/dist/validate.d.ts +0 -19
- package/dist/validate.d.ts.map +0 -1
- package/dist/validate.js +0 -90
- package/dist/validate.js.map +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { registerDocBlocks } from "../docs/registry.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../libs/contracts/dist/workspace-config/workspace-config.docblock.js
|
|
4
|
+
const tech_workspace_config_DocBlocks = [{
|
|
5
|
+
id: "docs.tech.contracts.workspace-config",
|
|
6
|
+
title: "Workspace Configuration (.contractsrc)",
|
|
7
|
+
summary: "Configuration-as-code conventions for ContractSpec workspaces (`.contractsrc.json`).",
|
|
8
|
+
kind: "reference",
|
|
9
|
+
visibility: "public",
|
|
10
|
+
route: "/docs/tech/contracts/workspace-config",
|
|
11
|
+
tags: [
|
|
12
|
+
"tech",
|
|
13
|
+
"contracts",
|
|
14
|
+
"config"
|
|
15
|
+
],
|
|
16
|
+
body: `## Workspace Configuration (.contractsrc)
|
|
17
|
+
|
|
18
|
+
ContractSpec uses a hierarchical configuration system anchored by \`.contractsrc.json\` files. Configuration loader supports standard rc-file discovery (cosmiconfig).
|
|
19
|
+
|
|
20
|
+
### Schema Formats
|
|
21
|
+
|
|
22
|
+
The \`schemaFormat\` option controls the output format of schema generation commands (like \`contractspec openapi import\`).
|
|
23
|
+
|
|
24
|
+
Supported formats:
|
|
25
|
+
- \`contractspec\` (default): Generates standard \`defineSchemaModel\` code.
|
|
26
|
+
- \`zod\`: Generates raw Zod schemas using \`z.object({...})\`.
|
|
27
|
+
- \`json-schema\`: Generates JSON Schema definitions.
|
|
28
|
+
- \`graphql\`: Generates GraphQL SDL type definitions.
|
|
29
|
+
|
|
30
|
+
### Config Interface
|
|
31
|
+
|
|
32
|
+
\`\`\`ts
|
|
33
|
+
export interface ContractsrcConfig {
|
|
34
|
+
// ... existing fields ...
|
|
35
|
+
schemaFormat?: 'contractspec' | 'zod' | 'json-schema' | 'graphql';
|
|
36
|
+
}
|
|
37
|
+
\`\`\`
|
|
38
|
+
|
|
39
|
+
Defined in \`@contractspec/lib.contracts/workspace-config\`.
|
|
40
|
+
`
|
|
41
|
+
}];
|
|
42
|
+
registerDocBlocks(tech_workspace_config_DocBlocks);
|
|
43
|
+
|
|
44
|
+
//#endregion
|
|
45
|
+
//# sourceMappingURL=workspace-config.docblock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-config.docblock.js","names":[],"sources":["../../../../../../../libs/contracts/dist/workspace-config/workspace-config.docblock.js"],"sourcesContent":["import { registerDocBlocks } from \"../docs/registry.js\";\n\n//#region src/workspace-config/workspace-config.docblock.ts\nconst tech_workspace_config_DocBlocks = [{\n\tid: \"docs.tech.contracts.workspace-config\",\n\ttitle: \"Workspace Configuration (.contractsrc)\",\n\tsummary: \"Configuration-as-code conventions for ContractSpec workspaces (`.contractsrc.json`).\",\n\tkind: \"reference\",\n\tvisibility: \"public\",\n\troute: \"/docs/tech/contracts/workspace-config\",\n\ttags: [\n\t\t\"tech\",\n\t\t\"contracts\",\n\t\t\"config\"\n\t],\n\tbody: `## Workspace Configuration (.contractsrc)\n\nContractSpec uses a hierarchical configuration system anchored by \\`.contractsrc.json\\` files. Configuration loader supports standard rc-file discovery (cosmiconfig).\n\n### Schema Formats\n\nThe \\`schemaFormat\\` option controls the output format of schema generation commands (like \\`contractspec openapi import\\`).\n\nSupported formats:\n- \\`contractspec\\` (default): Generates standard \\`defineSchemaModel\\` code.\n- \\`zod\\`: Generates raw Zod schemas using \\`z.object({...})\\`.\n- \\`json-schema\\`: Generates JSON Schema definitions.\n- \\`graphql\\`: Generates GraphQL SDL type definitions.\n\n### Config Interface\n\n\\`\\`\\`ts\nexport interface ContractsrcConfig {\n // ... existing fields ...\n schemaFormat?: 'contractspec' | 'zod' | 'json-schema' | 'graphql';\n}\n\\`\\`\\`\n\nDefined in \\`@contractspec/lib.contracts/workspace-config\\`.\n`\n}];\nregisterDocBlocks(tech_workspace_config_DocBlocks);\n\n//#endregion\nexport { tech_workspace_config_DocBlocks };"],"mappings":";;;AAGA,MAAM,kCAAkC,CAAC;CACxC,IAAI;CACJ,OAAO;CACP,SAAS;CACT,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EACL;EACA;EACA;EACA;CACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;CAyBN,CAAC;AACF,kBAAkB,gCAAgC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import "zod";
|
|
2
|
+
import { GraphQLScalarType } from "graphql";
|
|
3
|
+
|
|
4
|
+
//#region ../../libs/schema/dist/FieldType.js
|
|
5
|
+
/**
|
|
6
|
+
* GraphQL scalar wrapper that carries zod and JSON Schema metadata.
|
|
7
|
+
*
|
|
8
|
+
* TInternal is the runtime representation; TExternal is the GraphQL output.
|
|
9
|
+
*/
|
|
10
|
+
var FieldType = class extends GraphQLScalarType {
|
|
11
|
+
zodSchema;
|
|
12
|
+
jsonSchemaDef;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
super(config);
|
|
15
|
+
this.zodSchema = config.zod;
|
|
16
|
+
this.jsonSchemaDef = config.jsonSchema;
|
|
17
|
+
}
|
|
18
|
+
/** Return the attached zod schema for validation. */
|
|
19
|
+
getZod() {
|
|
20
|
+
return this.zodSchema;
|
|
21
|
+
}
|
|
22
|
+
/** GraphQL scalar instance usable by Pothos or vanilla GraphQL. */
|
|
23
|
+
getPothos() {
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
/** Return the JSON Schema (evaluates factory if provided). */
|
|
27
|
+
getJson() {
|
|
28
|
+
return typeof this.jsonSchemaDef === "function" ? this.jsonSchemaDef() : this.jsonSchemaDef;
|
|
29
|
+
}
|
|
30
|
+
getJsonSchemaDef() {
|
|
31
|
+
return this.jsonSchemaDef;
|
|
32
|
+
}
|
|
33
|
+
getJsonSchema() {
|
|
34
|
+
const deepResolve = (v) => {
|
|
35
|
+
const value = typeof v === "function" ? v() : v;
|
|
36
|
+
if (Array.isArray(value)) return value.map((item) => deepResolve(item));
|
|
37
|
+
if (value && typeof value === "object") {
|
|
38
|
+
const obj = {};
|
|
39
|
+
for (const [k, val] of Object.entries(value)) obj[k] = deepResolve(val);
|
|
40
|
+
return obj;
|
|
41
|
+
}
|
|
42
|
+
return value;
|
|
43
|
+
};
|
|
44
|
+
return deepResolve(this.getJson());
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { FieldType };
|
|
50
|
+
//# sourceMappingURL=FieldType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldType.js","names":[],"sources":["../../../../../../libs/schema/dist/FieldType.js"],"sourcesContent":["import \"zod\";\nimport { GraphQLScalarType } from \"graphql\";\n\n//#region src/FieldType.ts\n/**\n* GraphQL scalar wrapper that carries zod and JSON Schema metadata.\n*\n* TInternal is the runtime representation; TExternal is the GraphQL output.\n*/\nvar FieldType = class extends GraphQLScalarType {\n\tzodSchema;\n\tjsonSchemaDef;\n\tconstructor(config) {\n\t\tsuper(config);\n\t\tthis.zodSchema = config.zod;\n\t\tthis.jsonSchemaDef = config.jsonSchema;\n\t}\n\t/** Return the attached zod schema for validation. */\n\tgetZod() {\n\t\treturn this.zodSchema;\n\t}\n\t/** GraphQL scalar instance usable by Pothos or vanilla GraphQL. */\n\tgetPothos() {\n\t\treturn this;\n\t}\n\t/** Return the JSON Schema (evaluates factory if provided). */\n\tgetJson() {\n\t\treturn typeof this.jsonSchemaDef === \"function\" ? this.jsonSchemaDef() : this.jsonSchemaDef;\n\t}\n\tgetJsonSchemaDef() {\n\t\treturn this.jsonSchemaDef;\n\t}\n\tgetJsonSchema() {\n\t\tconst deepResolve = (v) => {\n\t\t\tconst value = typeof v === \"function\" ? v() : v;\n\t\t\tif (Array.isArray(value)) return value.map((item) => deepResolve(item));\n\t\t\tif (value && typeof value === \"object\") {\n\t\t\t\tconst obj = {};\n\t\t\t\tfor (const [k, val] of Object.entries(value)) obj[k] = deepResolve(val);\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\t\treturn deepResolve(this.getJson());\n\t}\n};\n\n//#endregion\nexport { FieldType };\n//# sourceMappingURL=FieldType.js.map"],"mappings":";;;;;;;;;AASA,IAAI,YAAY,cAAc,kBAAkB;CAC/C;CACA;CACA,YAAY,QAAQ;AACnB,QAAM,OAAO;AACb,OAAK,YAAY,OAAO;AACxB,OAAK,gBAAgB,OAAO;;;CAG7B,SAAS;AACR,SAAO,KAAK;;;CAGb,YAAY;AACX,SAAO;;;CAGR,UAAU;AACT,SAAO,OAAO,KAAK,kBAAkB,aAAa,KAAK,eAAe,GAAG,KAAK;;CAE/E,mBAAmB;AAClB,SAAO,KAAK;;CAEb,gBAAgB;EACf,MAAM,eAAe,MAAM;GAC1B,MAAM,QAAQ,OAAO,MAAM,aAAa,GAAG,GAAG;AAC9C,OAAI,MAAM,QAAQ,MAAM,CAAE,QAAO,MAAM,KAAK,SAAS,YAAY,KAAK,CAAC;AACvE,OAAI,SAAS,OAAO,UAAU,UAAU;IACvC,MAAM,MAAM,EAAE;AACd,SAAK,MAAM,CAAC,GAAG,QAAQ,OAAO,QAAQ,MAAM,CAAE,KAAI,KAAK,YAAY,IAAI;AACvE,WAAO;;AAER,UAAO;;AAER,SAAO,YAAY,KAAK,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "zod";
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { FieldType } from "./FieldType.js";
|
|
2
|
+
import * as z$1$1 from "zod";
|
|
3
|
+
import { Kind } from "graphql";
|
|
4
|
+
|
|
5
|
+
//#region ../../libs/schema/dist/ScalarTypeEnum.js
|
|
6
|
+
const localeRegex = /^[A-Za-z]{2}(?:-[A-Za-z0-9]{2,8})*$/;
|
|
7
|
+
const timezoneRegex = /^(?:UTC|[A-Za-z_]+\/[A-Za-z_]+)$/;
|
|
8
|
+
const phoneRegex = /^[+]?\d[\d\s().-]{3,}$/;
|
|
9
|
+
const currencyRegex = /^[A-Z]{3}$/;
|
|
10
|
+
const countryRegex = /^[A-Z]{2}$/;
|
|
11
|
+
const latMin = -90;
|
|
12
|
+
const latMax = 90;
|
|
13
|
+
const lonMin = -180;
|
|
14
|
+
const lonMax = 180;
|
|
15
|
+
/**
|
|
16
|
+
* Factory functions for common scalar FieldTypes with zod/GraphQL/JSON Schema.
|
|
17
|
+
*/
|
|
18
|
+
const ScalarTypeEnum = {
|
|
19
|
+
String_unsecure: () => new FieldType({
|
|
20
|
+
name: "String_unsecure",
|
|
21
|
+
description: "Unvalidated string scalar",
|
|
22
|
+
zod: z$1$1.string(),
|
|
23
|
+
parseValue: (v) => z$1$1.string().parse(v),
|
|
24
|
+
serialize: (v) => String(v),
|
|
25
|
+
parseLiteral: (ast) => {
|
|
26
|
+
if (ast.kind !== Kind.STRING) throw new TypeError("Invalid literal");
|
|
27
|
+
return ast.value;
|
|
28
|
+
},
|
|
29
|
+
jsonSchema: { type: "string" }
|
|
30
|
+
}),
|
|
31
|
+
Int_unsecure: () => new FieldType({
|
|
32
|
+
name: "Int_unsecure",
|
|
33
|
+
description: "Unvalidated integer scalar",
|
|
34
|
+
zod: z$1$1.number().int(),
|
|
35
|
+
parseValue: (v) => {
|
|
36
|
+
const num = typeof v === "number" ? v : Number(v);
|
|
37
|
+
return z$1$1.number().int().parse(num);
|
|
38
|
+
},
|
|
39
|
+
serialize: (v) => Math.trunc(typeof v === "number" ? v : Number(v)),
|
|
40
|
+
parseLiteral: (ast) => {
|
|
41
|
+
if (ast.kind !== Kind.INT) throw new TypeError("Invalid literal");
|
|
42
|
+
return Number(ast.value);
|
|
43
|
+
},
|
|
44
|
+
jsonSchema: { type: "integer" }
|
|
45
|
+
}),
|
|
46
|
+
Float_unsecure: () => new FieldType({
|
|
47
|
+
name: "Float_unsecure",
|
|
48
|
+
description: "Unvalidated float scalar",
|
|
49
|
+
zod: z$1$1.number(),
|
|
50
|
+
parseValue: (v) => {
|
|
51
|
+
const num = typeof v === "number" ? v : Number(v);
|
|
52
|
+
return z$1$1.number().parse(num);
|
|
53
|
+
},
|
|
54
|
+
serialize: (v) => Number(v),
|
|
55
|
+
parseLiteral: (ast) => {
|
|
56
|
+
if (ast.kind !== Kind.FLOAT && ast.kind !== Kind.INT) throw new TypeError("Invalid literal");
|
|
57
|
+
return Number(ast.value);
|
|
58
|
+
},
|
|
59
|
+
jsonSchema: { type: "number" }
|
|
60
|
+
}),
|
|
61
|
+
Boolean: () => new FieldType({
|
|
62
|
+
name: "Boolean",
|
|
63
|
+
description: "Unvalidated boolean scalar",
|
|
64
|
+
zod: z$1$1.boolean(),
|
|
65
|
+
parseValue: (v) => z$1$1.coerce.boolean().parse(v),
|
|
66
|
+
serialize: (v) => Boolean(v),
|
|
67
|
+
parseLiteral: (ast) => {
|
|
68
|
+
if (ast.kind !== Kind.BOOLEAN) throw new TypeError("Invalid literal");
|
|
69
|
+
return ast.value;
|
|
70
|
+
},
|
|
71
|
+
jsonSchema: { type: "boolean" }
|
|
72
|
+
}),
|
|
73
|
+
ID: () => new FieldType({
|
|
74
|
+
name: "ID",
|
|
75
|
+
description: "Unvalidated id scalar",
|
|
76
|
+
zod: z$1$1.string(),
|
|
77
|
+
parseValue: (v) => z$1$1.string().parse(v),
|
|
78
|
+
serialize: (v) => String(v),
|
|
79
|
+
parseLiteral: (ast) => {
|
|
80
|
+
if (ast.kind !== Kind.STRING) throw new TypeError("Invalid literal");
|
|
81
|
+
return ast.value;
|
|
82
|
+
},
|
|
83
|
+
jsonSchema: { type: "string" }
|
|
84
|
+
}),
|
|
85
|
+
JSON: () => new FieldType({
|
|
86
|
+
name: "JSON",
|
|
87
|
+
zod: z$1$1.any(),
|
|
88
|
+
parseValue: (v) => v,
|
|
89
|
+
serialize: (v) => v,
|
|
90
|
+
jsonSchema: {}
|
|
91
|
+
}),
|
|
92
|
+
JSONObject: () => new FieldType({
|
|
93
|
+
name: "JSONObject",
|
|
94
|
+
zod: z$1$1.record(z$1$1.string(), z$1$1.any()),
|
|
95
|
+
parseValue: (v) => z$1$1.record(z$1$1.string(), z$1$1.any()).parse(v),
|
|
96
|
+
serialize: (v) => v ?? {},
|
|
97
|
+
jsonSchema: { type: "object" }
|
|
98
|
+
}),
|
|
99
|
+
Date: () => new FieldType({
|
|
100
|
+
name: "Date",
|
|
101
|
+
zod: z$1$1.date(),
|
|
102
|
+
parseValue: (v) => v instanceof Date ? v : new Date(String(v)),
|
|
103
|
+
serialize: (v) => v instanceof Date ? v.toISOString().split("T")[0] : String(v),
|
|
104
|
+
jsonSchema: {
|
|
105
|
+
type: "string",
|
|
106
|
+
format: "date"
|
|
107
|
+
}
|
|
108
|
+
}),
|
|
109
|
+
DateTime: () => new FieldType({
|
|
110
|
+
name: "DateTime",
|
|
111
|
+
zod: z$1$1.date(),
|
|
112
|
+
parseValue: (v) => v instanceof Date ? v : new Date(String(v)),
|
|
113
|
+
serialize: (v) => {
|
|
114
|
+
return v instanceof Date ? v.toISOString() : String(v);
|
|
115
|
+
},
|
|
116
|
+
jsonSchema: {
|
|
117
|
+
type: "string",
|
|
118
|
+
format: "date-time"
|
|
119
|
+
}
|
|
120
|
+
}),
|
|
121
|
+
Time: () => new FieldType({
|
|
122
|
+
name: "Time",
|
|
123
|
+
zod: z$1$1.string().regex(/^\d{2}:\d{2}(:\d{2})?$/),
|
|
124
|
+
parseValue: (v) => z$1$1.string().regex(/^\d{2}:\d{2}(:\d{2})?$/).parse(v),
|
|
125
|
+
serialize: (v) => String(v),
|
|
126
|
+
jsonSchema: {
|
|
127
|
+
type: "string",
|
|
128
|
+
pattern: "^\\d{2}:\\d{2}(:\\d{2})?$"
|
|
129
|
+
}
|
|
130
|
+
}),
|
|
131
|
+
EmailAddress: () => new FieldType({
|
|
132
|
+
name: "EmailAddress",
|
|
133
|
+
zod: z$1$1.string().email(),
|
|
134
|
+
parseValue: (v) => z$1$1.string().email().parse(v),
|
|
135
|
+
serialize: (v) => String(v),
|
|
136
|
+
jsonSchema: {
|
|
137
|
+
type: "string",
|
|
138
|
+
format: "email"
|
|
139
|
+
}
|
|
140
|
+
}),
|
|
141
|
+
URL: () => new FieldType({
|
|
142
|
+
name: "URL",
|
|
143
|
+
zod: z$1$1.string().url(),
|
|
144
|
+
parseValue: (v) => z$1$1.string().url().parse(v),
|
|
145
|
+
serialize: (v) => String(v),
|
|
146
|
+
jsonSchema: {
|
|
147
|
+
type: "string",
|
|
148
|
+
format: "uri"
|
|
149
|
+
}
|
|
150
|
+
}),
|
|
151
|
+
PhoneNumber: () => new FieldType({
|
|
152
|
+
name: "PhoneNumber",
|
|
153
|
+
zod: z$1$1.string().regex(phoneRegex),
|
|
154
|
+
parseValue: (v) => z$1$1.string().regex(phoneRegex).parse(v),
|
|
155
|
+
serialize: (v) => String(v),
|
|
156
|
+
jsonSchema: {
|
|
157
|
+
type: "string",
|
|
158
|
+
pattern: phoneRegex.source
|
|
159
|
+
}
|
|
160
|
+
}),
|
|
161
|
+
NonEmptyString: () => new FieldType({
|
|
162
|
+
name: "NonEmptyString",
|
|
163
|
+
zod: z$1$1.string().min(1),
|
|
164
|
+
parseValue: (v) => z$1$1.string().min(1).parse(v),
|
|
165
|
+
serialize: (v) => String(v),
|
|
166
|
+
jsonSchema: {
|
|
167
|
+
type: "string",
|
|
168
|
+
minLength: 1
|
|
169
|
+
}
|
|
170
|
+
}),
|
|
171
|
+
Locale: () => new FieldType({
|
|
172
|
+
name: "Locale",
|
|
173
|
+
zod: z$1$1.string().regex(localeRegex),
|
|
174
|
+
parseValue: (v) => z$1$1.string().regex(localeRegex).parse(v),
|
|
175
|
+
serialize: (v) => String(v),
|
|
176
|
+
jsonSchema: {
|
|
177
|
+
type: "string",
|
|
178
|
+
pattern: localeRegex.source
|
|
179
|
+
}
|
|
180
|
+
}),
|
|
181
|
+
TimeZone: () => new FieldType({
|
|
182
|
+
name: "TimeZone",
|
|
183
|
+
zod: z$1$1.string().regex(timezoneRegex),
|
|
184
|
+
parseValue: (v) => z$1$1.string().regex(timezoneRegex).parse(v),
|
|
185
|
+
serialize: (v) => String(v),
|
|
186
|
+
jsonSchema: {
|
|
187
|
+
type: "string",
|
|
188
|
+
pattern: timezoneRegex.source
|
|
189
|
+
}
|
|
190
|
+
}),
|
|
191
|
+
Latitude: () => new FieldType({
|
|
192
|
+
name: "Latitude",
|
|
193
|
+
zod: z$1$1.number().min(latMin).max(latMax),
|
|
194
|
+
parseValue: (v) => z$1$1.coerce.number().min(latMin).max(latMax).parse(v),
|
|
195
|
+
serialize: (v) => Number(v),
|
|
196
|
+
jsonSchema: {
|
|
197
|
+
type: "number",
|
|
198
|
+
minimum: latMin,
|
|
199
|
+
maximum: latMax
|
|
200
|
+
}
|
|
201
|
+
}),
|
|
202
|
+
Longitude: () => new FieldType({
|
|
203
|
+
name: "Longitude",
|
|
204
|
+
zod: z$1$1.number().min(lonMin).max(lonMax),
|
|
205
|
+
parseValue: (v) => z$1$1.coerce.number().min(lonMin).max(lonMax).parse(v),
|
|
206
|
+
serialize: (v) => Number(v),
|
|
207
|
+
jsonSchema: {
|
|
208
|
+
type: "number",
|
|
209
|
+
minimum: lonMin,
|
|
210
|
+
maximum: lonMax
|
|
211
|
+
}
|
|
212
|
+
}),
|
|
213
|
+
Currency: () => new FieldType({
|
|
214
|
+
name: "Currency",
|
|
215
|
+
zod: z$1$1.string().regex(currencyRegex),
|
|
216
|
+
parseValue: (v) => z$1$1.string().regex(currencyRegex).parse(v),
|
|
217
|
+
serialize: (v) => String(v),
|
|
218
|
+
jsonSchema: {
|
|
219
|
+
type: "string",
|
|
220
|
+
pattern: currencyRegex.source
|
|
221
|
+
}
|
|
222
|
+
}),
|
|
223
|
+
CountryCode: () => new FieldType({
|
|
224
|
+
name: "CountryCode",
|
|
225
|
+
zod: z$1$1.string().regex(countryRegex),
|
|
226
|
+
parseValue: (v) => z$1$1.string().regex(countryRegex).parse(v),
|
|
227
|
+
serialize: (v) => String(v),
|
|
228
|
+
jsonSchema: {
|
|
229
|
+
type: "string",
|
|
230
|
+
pattern: countryRegex.source
|
|
231
|
+
}
|
|
232
|
+
})
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
//#endregion
|
|
236
|
+
export { ScalarTypeEnum };
|
|
237
|
+
//# sourceMappingURL=ScalarTypeEnum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTypeEnum.js","names":["z$1"],"sources":["../../../../../../libs/schema/dist/ScalarTypeEnum.js"],"sourcesContent":["import { FieldType } from \"./FieldType.js\";\nimport * as z$1 from \"zod\";\nimport { Kind } from \"graphql\";\n\n//#region src/ScalarTypeEnum.ts\nconst localeRegex = /^[A-Za-z]{2}(?:-[A-Za-z0-9]{2,8})*$/;\nconst timezoneRegex = /^(?:UTC|[A-Za-z_]+\\/[A-Za-z_]+)$/;\nconst phoneRegex = /^[+]?\\d[\\d\\s().-]{3,}$/;\nconst currencyRegex = /^[A-Z]{3}$/;\nconst countryRegex = /^[A-Z]{2}$/;\nconst latMin = -90;\nconst latMax = 90;\nconst lonMin = -180;\nconst lonMax = 180;\n/**\n* Factory functions for common scalar FieldTypes with zod/GraphQL/JSON Schema.\n*/\nconst ScalarTypeEnum = {\n\tString_unsecure: () => new FieldType({\n\t\tname: \"String_unsecure\",\n\t\tdescription: \"Unvalidated string scalar\",\n\t\tzod: z$1.string(),\n\t\tparseValue: (v) => z$1.string().parse(v),\n\t\tserialize: (v) => String(v),\n\t\tparseLiteral: (ast) => {\n\t\t\tif (ast.kind !== Kind.STRING) throw new TypeError(\"Invalid literal\");\n\t\t\treturn ast.value;\n\t\t},\n\t\tjsonSchema: { type: \"string\" }\n\t}),\n\tInt_unsecure: () => new FieldType({\n\t\tname: \"Int_unsecure\",\n\t\tdescription: \"Unvalidated integer scalar\",\n\t\tzod: z$1.number().int(),\n\t\tparseValue: (v) => {\n\t\t\tconst num = typeof v === \"number\" ? v : Number(v);\n\t\t\treturn z$1.number().int().parse(num);\n\t\t},\n\t\tserialize: (v) => Math.trunc(typeof v === \"number\" ? v : Number(v)),\n\t\tparseLiteral: (ast) => {\n\t\t\tif (ast.kind !== Kind.INT) throw new TypeError(\"Invalid literal\");\n\t\t\treturn Number(ast.value);\n\t\t},\n\t\tjsonSchema: { type: \"integer\" }\n\t}),\n\tFloat_unsecure: () => new FieldType({\n\t\tname: \"Float_unsecure\",\n\t\tdescription: \"Unvalidated float scalar\",\n\t\tzod: z$1.number(),\n\t\tparseValue: (v) => {\n\t\t\tconst num = typeof v === \"number\" ? v : Number(v);\n\t\t\treturn z$1.number().parse(num);\n\t\t},\n\t\tserialize: (v) => Number(v),\n\t\tparseLiteral: (ast) => {\n\t\t\tif (ast.kind !== Kind.FLOAT && ast.kind !== Kind.INT) throw new TypeError(\"Invalid literal\");\n\t\t\treturn Number(ast.value);\n\t\t},\n\t\tjsonSchema: { type: \"number\" }\n\t}),\n\tBoolean: () => new FieldType({\n\t\tname: \"Boolean\",\n\t\tdescription: \"Unvalidated boolean scalar\",\n\t\tzod: z$1.boolean(),\n\t\tparseValue: (v) => z$1.coerce.boolean().parse(v),\n\t\tserialize: (v) => Boolean(v),\n\t\tparseLiteral: (ast) => {\n\t\t\tif (ast.kind !== Kind.BOOLEAN) throw new TypeError(\"Invalid literal\");\n\t\t\treturn ast.value;\n\t\t},\n\t\tjsonSchema: { type: \"boolean\" }\n\t}),\n\tID: () => new FieldType({\n\t\tname: \"ID\",\n\t\tdescription: \"Unvalidated id scalar\",\n\t\tzod: z$1.string(),\n\t\tparseValue: (v) => z$1.string().parse(v),\n\t\tserialize: (v) => String(v),\n\t\tparseLiteral: (ast) => {\n\t\t\tif (ast.kind !== Kind.STRING) throw new TypeError(\"Invalid literal\");\n\t\t\treturn ast.value;\n\t\t},\n\t\tjsonSchema: { type: \"string\" }\n\t}),\n\tJSON: () => new FieldType({\n\t\tname: \"JSON\",\n\t\tzod: z$1.any(),\n\t\tparseValue: (v) => v,\n\t\tserialize: (v) => v,\n\t\tjsonSchema: {}\n\t}),\n\tJSONObject: () => new FieldType({\n\t\tname: \"JSONObject\",\n\t\tzod: z$1.record(z$1.string(), z$1.any()),\n\t\tparseValue: (v) => z$1.record(z$1.string(), z$1.any()).parse(v),\n\t\tserialize: (v) => v ?? {},\n\t\tjsonSchema: { type: \"object\" }\n\t}),\n\tDate: () => new FieldType({\n\t\tname: \"Date\",\n\t\tzod: z$1.date(),\n\t\tparseValue: (v) => v instanceof Date ? v : new Date(String(v)),\n\t\tserialize: (v) => v instanceof Date ? v.toISOString().split(\"T\")[0] : String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tformat: \"date\"\n\t\t}\n\t}),\n\tDateTime: () => new FieldType({\n\t\tname: \"DateTime\",\n\t\tzod: z$1.date(),\n\t\tparseValue: (v) => v instanceof Date ? v : new Date(String(v)),\n\t\tserialize: (v) => {\n\t\t\treturn v instanceof Date ? v.toISOString() : String(v);\n\t\t},\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tformat: \"date-time\"\n\t\t}\n\t}),\n\tTime: () => new FieldType({\n\t\tname: \"Time\",\n\t\tzod: z$1.string().regex(/^\\d{2}:\\d{2}(:\\d{2})?$/),\n\t\tparseValue: (v) => z$1.string().regex(/^\\d{2}:\\d{2}(:\\d{2})?$/).parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tpattern: \"^\\\\d{2}:\\\\d{2}(:\\\\d{2})?$\"\n\t\t}\n\t}),\n\tEmailAddress: () => new FieldType({\n\t\tname: \"EmailAddress\",\n\t\tzod: z$1.string().email(),\n\t\tparseValue: (v) => z$1.string().email().parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tformat: \"email\"\n\t\t}\n\t}),\n\tURL: () => new FieldType({\n\t\tname: \"URL\",\n\t\tzod: z$1.string().url(),\n\t\tparseValue: (v) => z$1.string().url().parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tformat: \"uri\"\n\t\t}\n\t}),\n\tPhoneNumber: () => new FieldType({\n\t\tname: \"PhoneNumber\",\n\t\tzod: z$1.string().regex(phoneRegex),\n\t\tparseValue: (v) => z$1.string().regex(phoneRegex).parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tpattern: phoneRegex.source\n\t\t}\n\t}),\n\tNonEmptyString: () => new FieldType({\n\t\tname: \"NonEmptyString\",\n\t\tzod: z$1.string().min(1),\n\t\tparseValue: (v) => z$1.string().min(1).parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tminLength: 1\n\t\t}\n\t}),\n\tLocale: () => new FieldType({\n\t\tname: \"Locale\",\n\t\tzod: z$1.string().regex(localeRegex),\n\t\tparseValue: (v) => z$1.string().regex(localeRegex).parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tpattern: localeRegex.source\n\t\t}\n\t}),\n\tTimeZone: () => new FieldType({\n\t\tname: \"TimeZone\",\n\t\tzod: z$1.string().regex(timezoneRegex),\n\t\tparseValue: (v) => z$1.string().regex(timezoneRegex).parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tpattern: timezoneRegex.source\n\t\t}\n\t}),\n\tLatitude: () => new FieldType({\n\t\tname: \"Latitude\",\n\t\tzod: z$1.number().min(latMin).max(latMax),\n\t\tparseValue: (v) => z$1.coerce.number().min(latMin).max(latMax).parse(v),\n\t\tserialize: (v) => Number(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"number\",\n\t\t\tminimum: latMin,\n\t\t\tmaximum: latMax\n\t\t}\n\t}),\n\tLongitude: () => new FieldType({\n\t\tname: \"Longitude\",\n\t\tzod: z$1.number().min(lonMin).max(lonMax),\n\t\tparseValue: (v) => z$1.coerce.number().min(lonMin).max(lonMax).parse(v),\n\t\tserialize: (v) => Number(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"number\",\n\t\t\tminimum: lonMin,\n\t\t\tmaximum: lonMax\n\t\t}\n\t}),\n\tCurrency: () => new FieldType({\n\t\tname: \"Currency\",\n\t\tzod: z$1.string().regex(currencyRegex),\n\t\tparseValue: (v) => z$1.string().regex(currencyRegex).parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tpattern: currencyRegex.source\n\t\t}\n\t}),\n\tCountryCode: () => new FieldType({\n\t\tname: \"CountryCode\",\n\t\tzod: z$1.string().regex(countryRegex),\n\t\tparseValue: (v) => z$1.string().regex(countryRegex).parse(v),\n\t\tserialize: (v) => String(v),\n\t\tjsonSchema: {\n\t\t\ttype: \"string\",\n\t\t\tpattern: countryRegex.source\n\t\t}\n\t})\n};\n\n//#endregion\nexport { ScalarTypeEnum };\n//# sourceMappingURL=ScalarTypeEnum.js.map"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import "./EnumType.js";
|
|
2
|
+
import "./FieldType.js";
|
|
3
|
+
import * as z$1$1 from "zod";
|
|
4
|
+
|
|
5
|
+
//#region ../../libs/schema/dist/SchemaModel.js
|
|
6
|
+
/**
|
|
7
|
+
* Named object model built from FieldType/EnumType/SchemaModel fields.
|
|
8
|
+
* Provides zod and GraphQL input helpers, and supports arrays/optional fields.
|
|
9
|
+
*/
|
|
10
|
+
var SchemaModel = class {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Build a typed ZodObject from the model fields, preserving each field's
|
|
16
|
+
* Zod schema and optionality at the type level when possible.
|
|
17
|
+
*/
|
|
18
|
+
getZod() {
|
|
19
|
+
const shape = Object.entries(this.config.fields).reduce((acc, [key, def]) => {
|
|
20
|
+
const base = def.type.getZod();
|
|
21
|
+
const withArray = def.isArray ? z$1$1.array(base) : base;
|
|
22
|
+
acc[key] = def.isOptional ? withArray.optional() : withArray;
|
|
23
|
+
return acc;
|
|
24
|
+
}, {});
|
|
25
|
+
return z$1$1.object(shape);
|
|
26
|
+
}
|
|
27
|
+
/** Input object name for GraphQL builder adapters. */
|
|
28
|
+
getPothosInput() {
|
|
29
|
+
return this.config.name;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { SchemaModel };
|
|
35
|
+
//# sourceMappingURL=SchemaModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaModel.js","names":["z$1"],"sources":["../../../../../../libs/schema/dist/SchemaModel.js"],"sourcesContent":["import \"./EnumType.js\";\nimport \"./FieldType.js\";\nimport * as z$1 from \"zod\";\n\n//#region src/SchemaModel.ts\n/**\n* Named object model built from FieldType/EnumType/SchemaModel fields.\n* Provides zod and GraphQL input helpers, and supports arrays/optional fields.\n*/\nvar SchemaModel = class {\n\tconstructor(config) {\n\t\tthis.config = config;\n\t}\n\t/**\n\t* Build a typed ZodObject from the model fields, preserving each field's\n\t* Zod schema and optionality at the type level when possible.\n\t*/\n\tgetZod() {\n\t\tconst shape = Object.entries(this.config.fields).reduce((acc, [key, def]) => {\n\t\t\tconst base = def.type.getZod();\n\t\t\tconst withArray = def.isArray ? z$1.array(base) : base;\n\t\t\tacc[key] = def.isOptional ? withArray.optional() : withArray;\n\t\t\treturn acc;\n\t\t}, {});\n\t\treturn z$1.object(shape);\n\t}\n\t/** Input object name for GraphQL builder adapters. */\n\tgetPothosInput() {\n\t\treturn this.config.name;\n\t}\n};\n/**\n* Type guard to check if a value is a SchemaModel (not just any SchemaType).\n* Use this when you need to access SchemaModel-specific properties like `config`.\n*\n* @param model - The model to check\n* @returns True if the model is a SchemaModel instance\n*\n* @example\n* ```typescript\n* if (isSchemaModel(model)) {\n* // TypeScript knows model.config is available\n* console.log(model.config.name);\n* }\n* ```\n*/\nfunction isSchemaModel(model) {\n\treturn model !== null && model !== void 0 && \"config\" in model && typeof model.config === \"object\" && \"name\" in model.config;\n}\n/**\n* Helper to define a SchemaModel with type inference.\n* Equivalent to `new SchemaModel(config)` but with better ergonomics.\n*/\nconst defineSchemaModel = (config) => new SchemaModel(config);\n\n//#endregion\nexport { SchemaModel, defineSchemaModel, isSchemaModel };\n//# sourceMappingURL=SchemaModel.js.map"],"mappings":";;;;;;;;;AASA,IAAI,cAAc,MAAM;CACvB,YAAY,QAAQ;AACnB,OAAK,SAAS;;;;;;CAMf,SAAS;EACR,MAAM,QAAQ,OAAO,QAAQ,KAAK,OAAO,OAAO,CAAC,QAAQ,KAAK,CAAC,KAAK,SAAS;GAC5E,MAAM,OAAO,IAAI,KAAK,QAAQ;GAC9B,MAAM,YAAY,IAAI,UAAUA,MAAI,MAAM,KAAK,GAAG;AAClD,OAAI,OAAO,IAAI,aAAa,UAAU,UAAU,GAAG;AACnD,UAAO;KACL,EAAE,CAAC;AACN,SAAOA,MAAI,OAAO,MAAM;;;CAGzB,iBAAiB;AAChB,SAAO,KAAK,OAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "zod";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "zod";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "zod";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "./EnumType.js";
|
|
2
|
+
import { FieldType } from "./FieldType.js";
|
|
3
|
+
import "./GraphQLSchemaType.js";
|
|
4
|
+
import "./JsonSchemaType.js";
|
|
5
|
+
import { ScalarTypeEnum } from "./ScalarTypeEnum.js";
|
|
6
|
+
import { SchemaModel } from "./SchemaModel.js";
|
|
7
|
+
import "./ZodSchemaType.js";
|
|
8
|
+
import "./entity/defineEntity.js";
|
|
9
|
+
import "./entity/index.js";
|
package/dist/registry.d.ts
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EXAMPLE_REGISTRY } from "./builtins.js";
|
|
1
|
+
import { ExampleRegistry, ExampleSpec } from "@contractspec/lib.contracts";
|
|
3
2
|
|
|
4
3
|
//#region src/registry.d.ts
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Global registry containing all builtin ContractSpec examples.
|
|
7
|
+
* @deprecated Prefer using ExampleRegistry directly for custom registrations.
|
|
8
|
+
*/
|
|
9
|
+
declare const EXAMPLE_REGISTRY: readonly ExampleSpec[];
|
|
10
|
+
/**
|
|
11
|
+
* List all registered examples.
|
|
12
|
+
*/
|
|
13
|
+
declare function listExamples(): readonly ExampleSpec[];
|
|
14
|
+
/**
|
|
15
|
+
* Get an example by its key.
|
|
16
|
+
*/
|
|
17
|
+
declare function getExample(key: string): ExampleSpec | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Search examples by query (matches key, title, description, tags).
|
|
20
|
+
*/
|
|
21
|
+
declare function searchExamples(query: string): ExampleSpec[];
|
|
8
22
|
//#endregion
|
|
9
|
-
export { getExample, listExamples, searchExamples };
|
|
23
|
+
export { EXAMPLE_REGISTRY, ExampleRegistry, getExample, listExamples, searchExamples };
|
|
10
24
|
//# sourceMappingURL=registry.d.ts.map
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","names":[],"sources":["../src/registry.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","names":[],"sources":["../src/registry.ts"],"sourcesContent":[],"mappings":";;;;;AAmBA;AAKA;AAOA;AAOgB,cAnBH,gBAmBkC,EAAA,SAnBP,WAmBkB,EAAA;;;;iBAd1C,YAAA,CAAA,YAAyB;;;;iBAOzB,UAAA,eAAyB;;;;iBAOzB,cAAA,iBAA+B"}
|
package/dist/registry.js
CHANGED
|
@@ -1,20 +1,34 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ExampleRegistry } from "./libs/contracts/dist/examples/registry.js";
|
|
2
|
+
import "./libs/contracts/dist/index.js";
|
|
3
|
+
import { EXAMPLE_REGISTRY as EXAMPLE_REGISTRY$1 } from "./builtins.js";
|
|
2
4
|
|
|
3
5
|
//#region src/registry.ts
|
|
6
|
+
const globalRegistry = new ExampleRegistry();
|
|
7
|
+
for (const example of EXAMPLE_REGISTRY$1) globalRegistry.register(example);
|
|
8
|
+
/**
|
|
9
|
+
* Global registry containing all builtin ContractSpec examples.
|
|
10
|
+
* @deprecated Prefer using ExampleRegistry directly for custom registrations.
|
|
11
|
+
*/
|
|
12
|
+
const EXAMPLE_REGISTRY = globalRegistry.list();
|
|
13
|
+
/**
|
|
14
|
+
* List all registered examples.
|
|
15
|
+
*/
|
|
4
16
|
function listExamples() {
|
|
5
|
-
return
|
|
17
|
+
return globalRegistry.list();
|
|
6
18
|
}
|
|
7
|
-
|
|
8
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Get an example by its key.
|
|
21
|
+
*/
|
|
22
|
+
function getExample(key) {
|
|
23
|
+
return globalRegistry.get(key);
|
|
9
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Search examples by query (matches key, title, description, tags).
|
|
27
|
+
*/
|
|
10
28
|
function searchExamples(query) {
|
|
11
|
-
|
|
12
|
-
if (!q) return [...listExamples()];
|
|
13
|
-
return listExamples().filter((ex) => {
|
|
14
|
-
return `${ex.id} ${ex.title} ${ex.summary} ${ex.tags.join(" ")}`.toLowerCase().includes(q);
|
|
15
|
-
});
|
|
29
|
+
return globalRegistry.search(query);
|
|
16
30
|
}
|
|
17
31
|
|
|
18
32
|
//#endregion
|
|
19
|
-
export { getExample, listExamples, searchExamples };
|
|
33
|
+
export { EXAMPLE_REGISTRY, getExample, listExamples, searchExamples };
|
|
20
34
|
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","names":[],"sources":["../src/registry.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"registry.js","names":["BUILTIN_EXAMPLES","EXAMPLE_REGISTRY: readonly ExampleSpec[]"],"sources":["../src/registry.ts"],"sourcesContent":["import { ExampleRegistry } from '@contractspec/lib.contracts';\nimport type { ExampleSpec } from '@contractspec/lib.contracts';\nimport { EXAMPLE_REGISTRY as BUILTIN_EXAMPLES } from './builtins';\n\n// Export the ExampleRegistry class from contracts\nexport { ExampleRegistry } from '@contractspec/lib.contracts';\n\n// Create a global registry instance populated with builtins\nconst globalRegistry = new ExampleRegistry();\n\n// Register all builtin examples\nfor (const example of BUILTIN_EXAMPLES) {\n globalRegistry.register(example);\n}\n\n/**\n * Global registry containing all builtin ContractSpec examples.\n * @deprecated Prefer using ExampleRegistry directly for custom registrations.\n */\nexport const EXAMPLE_REGISTRY: readonly ExampleSpec[] = globalRegistry.list();\n\n/**\n * List all registered examples.\n */\nexport function listExamples(): readonly ExampleSpec[] {\n return globalRegistry.list();\n}\n\n/**\n * Get an example by its key.\n */\nexport function getExample(key: string): ExampleSpec | undefined {\n return globalRegistry.get(key);\n}\n\n/**\n * Search examples by query (matches key, title, description, tags).\n */\nexport function searchExamples(query: string): ExampleSpec[] {\n return globalRegistry.search(query);\n}\n"],"mappings":";;;;;AAQA,MAAM,iBAAiB,IAAI,iBAAiB;AAG5C,KAAK,MAAM,WAAWA,mBACpB,gBAAe,SAAS,QAAQ;;;;;AAOlC,MAAaC,mBAA2C,eAAe,MAAM;;;;AAK7E,SAAgB,eAAuC;AACrD,QAAO,eAAe,MAAM;;;;;AAM9B,SAAgB,WAAW,KAAsC;AAC/D,QAAO,eAAe,IAAI,IAAI;;;;;AAMhC,SAAgB,eAAe,OAA8B;AAC3D,QAAO,eAAe,OAAO,MAAM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/module.examples",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.45.0",
|
|
4
|
+
"description": "Example contract specifications collection",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"contractspec",
|
|
7
|
+
"examples",
|
|
8
|
+
"starter",
|
|
9
|
+
"templates",
|
|
10
|
+
"typescript"
|
|
11
|
+
],
|
|
4
12
|
"type": "module",
|
|
5
13
|
"main": "./dist/index.js",
|
|
6
14
|
"module": "./dist/index.js",
|
|
@@ -23,45 +31,45 @@
|
|
|
23
31
|
"test": "bun run"
|
|
24
32
|
},
|
|
25
33
|
"dependencies": {
|
|
26
|
-
"@contractspec/example.agent-console": "1.
|
|
27
|
-
"@contractspec/example.ai-support-bot": "1.
|
|
28
|
-
"@contractspec/example.analytics-dashboard": "1.
|
|
29
|
-
"@contractspec/example.content-generation": "1.
|
|
30
|
-
"@contractspec/example.crm-pipeline": "1.
|
|
31
|
-
"@contractspec/example.integration-hub": "1.
|
|
32
|
-
"@contractspec/example.integration-stripe": "1.
|
|
33
|
-
"@contractspec/example.kb-update-pipeline": "1.
|
|
34
|
-
"@contractspec/example.knowledge-canon": "1.
|
|
35
|
-
"@contractspec/example.learning-patterns": "1.
|
|
36
|
-
"@contractspec/example.learning-journey-ambient-coach": "1.
|
|
37
|
-
"@contractspec/example.learning-journey-crm-onboarding": "1.
|
|
38
|
-
"@contractspec/example.learning-journey-duo-drills": "1.
|
|
39
|
-
"@contractspec/example.learning-journey-platform-tour": "1.
|
|
40
|
-
"@contractspec/example.learning-journey-quest-challenges": "1.
|
|
41
|
-
"@contractspec/example.learning-journey-registry": "1.
|
|
42
|
-
"@contractspec/example.learning-journey-studio-onboarding": "1.
|
|
43
|
-
"@contractspec/example.learning-journey-ui-coaching": "1.
|
|
44
|
-
"@contractspec/example.learning-journey-ui-gamified": "1.
|
|
45
|
-
"@contractspec/example.learning-journey-ui-onboarding": "1.
|
|
46
|
-
"@contractspec/example.learning-journey-ui-shared": "1.
|
|
47
|
-
"@contractspec/example.lifecycle-cli": "1.
|
|
48
|
-
"@contractspec/example.lifecycle-dashboard": "1.
|
|
49
|
-
"@contractspec/example.locale-jurisdiction-gate": "1.
|
|
50
|
-
"@contractspec/example.marketplace": "1.
|
|
51
|
-
"@contractspec/example.openbanking-powens": "1.
|
|
52
|
-
"@contractspec/example.personalization": "1.
|
|
53
|
-
"@contractspec/example.policy-safe-knowledge-assistant": "1.
|
|
54
|
-
"@contractspec/example.saas-boilerplate": "1.
|
|
55
|
-
"@contractspec/example.service-business-os": "1.
|
|
56
|
-
"@contractspec/example.versioned-knowledge-base": "1.
|
|
57
|
-
"@contractspec/example.team-hub": "1.
|
|
58
|
-
"@contractspec/example.wealth-snapshot": "1.
|
|
59
|
-
"@contractspec/example.workflow-system": "1.
|
|
34
|
+
"@contractspec/example.agent-console": "1.45.0",
|
|
35
|
+
"@contractspec/example.ai-support-bot": "1.45.0",
|
|
36
|
+
"@contractspec/example.analytics-dashboard": "1.45.0",
|
|
37
|
+
"@contractspec/example.content-generation": "1.45.0",
|
|
38
|
+
"@contractspec/example.crm-pipeline": "1.45.0",
|
|
39
|
+
"@contractspec/example.integration-hub": "1.45.0",
|
|
40
|
+
"@contractspec/example.integration-stripe": "1.45.0",
|
|
41
|
+
"@contractspec/example.kb-update-pipeline": "1.45.0",
|
|
42
|
+
"@contractspec/example.knowledge-canon": "1.45.0",
|
|
43
|
+
"@contractspec/example.learning-patterns": "1.45.0",
|
|
44
|
+
"@contractspec/example.learning-journey-ambient-coach": "1.45.0",
|
|
45
|
+
"@contractspec/example.learning-journey-crm-onboarding": "1.45.0",
|
|
46
|
+
"@contractspec/example.learning-journey-duo-drills": "1.45.0",
|
|
47
|
+
"@contractspec/example.learning-journey-platform-tour": "1.45.0",
|
|
48
|
+
"@contractspec/example.learning-journey-quest-challenges": "1.45.0",
|
|
49
|
+
"@contractspec/example.learning-journey-registry": "1.45.0",
|
|
50
|
+
"@contractspec/example.learning-journey-studio-onboarding": "1.45.0",
|
|
51
|
+
"@contractspec/example.learning-journey-ui-coaching": "1.45.0",
|
|
52
|
+
"@contractspec/example.learning-journey-ui-gamified": "1.45.0",
|
|
53
|
+
"@contractspec/example.learning-journey-ui-onboarding": "1.45.0",
|
|
54
|
+
"@contractspec/example.learning-journey-ui-shared": "1.45.0",
|
|
55
|
+
"@contractspec/example.lifecycle-cli": "1.45.0",
|
|
56
|
+
"@contractspec/example.lifecycle-dashboard": "1.45.0",
|
|
57
|
+
"@contractspec/example.locale-jurisdiction-gate": "1.45.0",
|
|
58
|
+
"@contractspec/example.marketplace": "1.45.0",
|
|
59
|
+
"@contractspec/example.openbanking-powens": "1.45.0",
|
|
60
|
+
"@contractspec/example.personalization": "1.45.0",
|
|
61
|
+
"@contractspec/example.policy-safe-knowledge-assistant": "1.45.0",
|
|
62
|
+
"@contractspec/example.saas-boilerplate": "1.45.0",
|
|
63
|
+
"@contractspec/example.service-business-os": "1.45.0",
|
|
64
|
+
"@contractspec/example.versioned-knowledge-base": "1.45.0",
|
|
65
|
+
"@contractspec/example.team-hub": "1.45.0",
|
|
66
|
+
"@contractspec/example.wealth-snapshot": "1.45.0",
|
|
67
|
+
"@contractspec/example.workflow-system": "1.45.0",
|
|
60
68
|
"zod": "^4.1.13"
|
|
61
69
|
},
|
|
62
70
|
"devDependencies": {
|
|
63
|
-
"@contractspec/tool.tsdown": "1.
|
|
64
|
-
"@contractspec/tool.typescript": "1.
|
|
71
|
+
"@contractspec/tool.tsdown": "1.45.0",
|
|
72
|
+
"@contractspec/tool.typescript": "1.45.0",
|
|
65
73
|
"tsdown": "^0.18.3",
|
|
66
74
|
"typescript": "^5.9.3"
|
|
67
75
|
},
|