@lucern/contracts 0.3.0-alpha.16 → 0.3.0-alpha.2
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/CHANGELOG.md +0 -7
- package/dist/api-enums.contract.d.ts +3 -5
- package/dist/api-enums.contract.js +12 -14
- package/dist/api-enums.contract.js.map +1 -1
- package/dist/auth-context.contract.js +1 -13
- package/dist/auth-context.contract.js.map +1 -1
- package/dist/auth-session.contract.js +1 -13
- package/dist/auth-session.contract.js.map +1 -1
- package/dist/auth.contract.d.ts +1 -1
- package/dist/auth.contract.js +1 -13
- package/dist/auth.contract.js.map +1 -1
- package/dist/context-pack.contract.d.ts +3 -5
- package/dist/context-pack.contract.js.map +1 -1
- package/dist/{defineTable-t1wr5wgn.d.ts → defineTable-CBQ03FXl.d.ts} +1 -1
- package/dist/{dsl-DVPthQGY.d.ts → dsl-BgpoVOVQ.d.ts} +2 -2
- package/dist/dsl.d.ts +2 -2
- package/dist/dsl.js +4 -1
- package/dist/dsl.js.map +1 -1
- package/dist/function-registry/beliefs.d.ts +51 -64
- package/dist/function-registry/beliefs.js +55 -815
- package/dist/function-registry/beliefs.js.map +1 -1
- package/dist/function-registry/coding.d.ts +6 -15
- package/dist/function-registry/coding.js +41 -864
- package/dist/function-registry/coding.js.map +1 -1
- package/dist/function-registry/context.d.ts +16 -22
- package/dist/function-registry/context.js +44 -803
- package/dist/function-registry/context.js.map +1 -1
- package/dist/function-registry/contracts.d.ts +3 -9
- package/dist/function-registry/contracts.js +37 -768
- package/dist/function-registry/contracts.js.map +1 -1
- package/dist/function-registry/coordination.d.ts +9 -21
- package/dist/function-registry/coordination.js +37 -768
- package/dist/function-registry/coordination.js.map +1 -1
- package/dist/function-registry/edges.d.ts +2 -167
- package/dist/function-registry/edges.js +69 -976
- package/dist/function-registry/edges.js.map +1 -1
- package/dist/function-registry/evidence.d.ts +41 -52
- package/dist/function-registry/evidence.js +60 -824
- package/dist/function-registry/evidence.js.map +1 -1
- package/dist/function-registry/graph.d.ts +66 -162
- package/dist/function-registry/graph.js +44 -884
- package/dist/function-registry/graph.js.map +1 -1
- package/dist/function-registry/helpers.d.ts +4 -7
- package/dist/function-registry/helpers.js +38 -769
- package/dist/function-registry/helpers.js.map +1 -1
- package/dist/function-registry/identity.d.ts +16 -62
- package/dist/function-registry/identity.js +43 -791
- package/dist/function-registry/identity.js.map +1 -1
- package/dist/function-registry/index.d.ts +3 -5
- package/dist/function-registry/index.js +41 -775
- package/dist/function-registry/index.js.map +1 -1
- package/dist/function-registry/judgments.d.ts +11 -16
- package/dist/function-registry/judgments.js +40 -780
- package/dist/function-registry/judgments.js.map +1 -1
- package/dist/function-registry/legacy.d.ts +1 -5
- package/dist/function-registry/legacy.js +37 -768
- package/dist/function-registry/legacy.js.map +1 -1
- package/dist/function-registry/lenses.d.ts +21 -28
- package/dist/function-registry/lenses.js +40 -791
- package/dist/function-registry/lenses.js.map +1 -1
- package/dist/function-registry/manifest.d.ts +6 -6
- package/dist/function-registry/manifest.js +2 -19
- package/dist/function-registry/manifest.js.map +1 -1
- package/dist/function-registry/ontologies.d.ts +56 -70
- package/dist/function-registry/ontologies.js +43 -786
- package/dist/function-registry/ontologies.js.map +1 -1
- package/dist/function-registry/pipeline.d.ts +16 -22
- package/dist/function-registry/pipeline.js +40 -777
- package/dist/function-registry/pipeline.js.map +1 -1
- package/dist/function-registry/questions.d.ts +61 -76
- package/dist/function-registry/questions.js +50 -867
- package/dist/function-registry/questions.js.map +1 -1
- package/dist/function-registry/tasks.d.ts +21 -28
- package/dist/function-registry/tasks.js +46 -843
- package/dist/function-registry/tasks.js.map +1 -1
- package/dist/function-registry/topics.d.ts +26 -114
- package/dist/function-registry/topics.js +41 -850
- package/dist/function-registry/topics.js.map +1 -1
- package/dist/function-registry/types.d.ts +3 -7
- package/dist/function-registry/worktrees.d.ts +51 -104
- package/dist/function-registry/worktrees.js +49 -907
- package/dist/function-registry/worktrees.js.map +1 -1
- package/dist/gateway.contract.d.ts +0 -5
- package/dist/gateway.contract.js.map +1 -1
- package/dist/generated/convexSchemas.d.ts +3 -3
- package/dist/generated/convexSchemas.js +18 -39
- package/dist/generated/convexSchemas.js.map +1 -1
- package/dist/generated/schema-manifest.json +98 -1244
- package/dist/generated/tableOwnership.d.ts +28 -49
- package/dist/generated/tableOwnership.js +26 -68
- package/dist/generated/tableOwnership.js.map +1 -1
- package/dist/generated/tier-expectations.json +9 -66
- package/dist/graph-types/index.d.ts +1 -5
- package/dist/graph-types/index.js +4 -15
- package/dist/graph-types/index.js.map +1 -1
- package/dist/index-CV-0_VWJ.d.ts +25 -0
- package/dist/index.d.ts +414 -30
- package/dist/index.js +339 -34916
- package/dist/index.js.map +1 -1
- package/dist/lens-filter.contract.js +3 -4
- package/dist/lens-filter.contract.js.map +1 -1
- package/dist/lens-workflow.contract.js +3 -4
- package/dist/lens-workflow.contract.js.map +1 -1
- package/dist/schema-helpers/enumValidation.js +5 -2
- package/dist/schema-helpers/enumValidation.js.map +1 -1
- package/dist/schema-helpers/spine/nodes/decision.js +1 -2
- package/dist/schema-helpers/spine/nodes/decision.js.map +1 -1
- package/dist/schema-helpers/spine/tables/epistemicNodes.js +27 -27
- package/dist/schema-helpers/spine/tables/epistemicNodes.js.map +1 -1
- package/dist/schemas/component-table-manifest.d.ts +6 -6
- package/dist/schemas/component-table-manifest.js +2 -2
- package/dist/schemas/component-table-manifest.js.map +1 -1
- package/dist/schemas/enums.d.ts +2 -5
- package/dist/schemas/enums.js +2 -5
- package/dist/schemas/enums.js.map +1 -1
- package/dist/schemas/index.d.ts +3 -3
- package/dist/schemas/index.js +139 -1165
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/manifest.d.ts +932 -3042
- package/dist/schemas/manifest.js +137 -1163
- package/dist/schemas/manifest.js.map +1 -1
- package/dist/schemas/sl-opinion.d.ts +4 -4
- package/dist/schemas/tables/{controlPlane → identity}/agent.d.ts +1 -1
- package/dist/schemas/tables/{controlPlane → identity}/agent.js +3 -3
- package/dist/schemas/tables/identity/agent.js.map +1 -0
- package/dist/schemas/tables/{controlPlane → identity}/epistemic.d.ts +1 -1
- package/dist/schemas/tables/{controlPlane → identity}/epistemic.js +3 -3
- package/dist/schemas/tables/identity/epistemic.js.map +1 -0
- package/dist/schemas/tables/{controlPlane → identity}/model.d.ts +1 -1
- package/dist/schemas/tables/{controlPlane → identity}/model.js +6 -6
- package/dist/schemas/tables/identity/model.js.map +1 -0
- package/dist/schemas/tables/{controlPlane → identity}/platform.d.ts +11 -11
- package/dist/schemas/tables/{controlPlane → identity}/platform.js +18 -18
- package/dist/schemas/tables/identity/platform.js.map +1 -0
- package/dist/schemas/tables/{controlPlane → identity}/project.d.ts +1 -1
- package/dist/schemas/tables/{controlPlane → identity}/project.js +3 -3
- package/dist/schemas/tables/identity/project.js.map +1 -0
- package/dist/schemas/tables/{controlPlane → identity}/user.d.ts +1 -1
- package/dist/schemas/tables/{controlPlane → identity}/user.js +3 -3
- package/dist/schemas/tables/identity/user.js.map +1 -0
- package/dist/schemas/tables/kernel/config.d.ts +1 -1
- package/dist/schemas/tables/kernel/config.js.map +1 -1
- package/dist/schemas/tables/kernel/coordination.d.ts +1 -1
- package/dist/schemas/tables/kernel/coordination.js.map +1 -1
- package/dist/schemas/tables/kernel/decision.d.ts +1 -1
- package/dist/schemas/tables/kernel/decision.js.map +1 -1
- package/dist/schemas/tables/kernel/embedding.d.ts +1 -1
- package/dist/schemas/tables/kernel/embedding.js.map +1 -1
- package/dist/schemas/tables/kernel/epistemic.d.ts +7 -7
- package/dist/schemas/tables/kernel/epistemic.js.map +1 -1
- package/dist/schemas/tables/kernel/idempotency.d.ts +1 -1
- package/dist/schemas/tables/kernel/idempotency.js.map +1 -1
- package/dist/schemas/tables/kernel/infra.d.ts +5 -5
- package/dist/schemas/tables/kernel/infra.js.map +1 -1
- package/dist/schemas/tables/kernel/intelligence.d.ts +11 -11
- package/dist/schemas/tables/kernel/intelligence.js.map +1 -1
- package/dist/schemas/tables/kernel/lens.d.ts +5 -5
- package/dist/schemas/tables/kernel/lens.js.map +1 -1
- package/dist/schemas/tables/kernel/ontology.d.ts +1 -1
- package/dist/schemas/tables/kernel/ontology.js.map +1 -1
- package/dist/schemas/tables/kernel/platform.d.ts +13 -13
- package/dist/schemas/tables/kernel/platform.js.map +1 -1
- package/dist/schemas/tables/kernel/spine.d.ts +4 -5
- package/dist/schemas/tables/kernel/spine.js +2 -6
- package/dist/schemas/tables/kernel/spine.js.map +1 -1
- package/dist/schemas/tables/kernel/task.d.ts +43 -43
- package/dist/schemas/tables/kernel/task.js.map +1 -1
- package/dist/schemas/tables/kernel/topic.d.ts +1 -1
- package/dist/schemas/tables/kernel/topic.js +1 -5
- package/dist/schemas/tables/kernel/topic.js.map +1 -1
- package/dist/schemas/tables/kernel/workflow.d.ts +1 -1
- package/dist/schemas/tables/kernel/workflow.js.map +1 -1
- package/dist/schemas/tables/kernel/worktree.d.ts +55 -55
- package/dist/schemas/tables/kernel/worktree.js.map +1 -1
- package/dist/schemas/tables/mc/identity.d.ts +4 -44
- package/dist/schemas/tables/mc/identity.js +1 -66
- package/dist/schemas/tables/mc/identity.js.map +1 -1
- package/dist/schemas/tables/mc/methodology.d.ts +1 -1
- package/dist/schemas/tables/mc/methodology.js.map +1 -1
- package/dist/schemas/tables/mc/pack.d.ts +21 -21
- package/dist/schemas/tables/mc/pack.js.map +1 -1
- package/dist/schemas/tables/mc/policy.d.ts +2 -2
- package/dist/schemas/tables/mc/policy.js +1 -1
- package/dist/schemas/tables/mc/policy.js.map +1 -1
- package/dist/schemas/tables/mc/registry.d.ts +5 -5
- package/dist/schemas/tables/mc/registry.js.map +1 -1
- package/dist/schemas/tables/mc/runtime.d.ts +3 -109
- package/dist/schemas/tables/mc/runtime.js +104 -330
- package/dist/schemas/tables/mc/runtime.js.map +1 -1
- package/dist/schemas/tables/mc/tenant.d.ts +2 -4
- package/dist/schemas/tables/mc/tenant.js +1 -3
- package/dist/schemas/tables/mc/tenant.js.map +1 -1
- package/dist/schemas/tables/mc/workspace.d.ts +5 -28
- package/dist/schemas/tables/mc/workspace.js +2 -36
- package/dist/schemas/tables/mc/workspace.js.map +1 -1
- package/dist/sdk-methods.contract.d.ts +2 -2
- package/dist/{sdk-tools.contract-CKmSsrZ2.d.ts → sdk-tools.contract-S4ia0TTo.d.ts} +2 -2
- package/dist/sdk-tools.contract.d.ts +2 -2
- package/dist/sdk-tools.contract.js +25 -717
- package/dist/sdk-tools.contract.js.map +1 -1
- package/dist/{tool-contracts-C_xvM9q2.d.ts → tool-contracts-C92-9ueT.d.ts} +2 -38
- package/dist/tool-contracts.d.ts +1 -1
- package/dist/tool-contracts.js +26 -718
- package/dist/tool-contracts.js.map +1 -1
- package/package.json +1 -30
- package/dist/component-boundary.contract.d.ts +0 -14
- package/dist/component-boundary.contract.js +0 -175
- package/dist/component-boundary.contract.js.map +0 -1
- package/dist/component-host-boundary.contract.d.ts +0 -46
- package/dist/component-host-boundary.contract.js +0 -60
- package/dist/component-host-boundary.contract.js.map +0 -1
- package/dist/edge-policy-manifest-Dw5IhT1L.d.ts +0 -133
- package/dist/function-registry/nodes.d.ts +0 -412
- package/dist/function-registry/nodes.js +0 -5354
- package/dist/function-registry/nodes.js.map +0 -1
- package/dist/function-registry-input-audit.d.ts +0 -13
- package/dist/function-registry-input-audit.js +0 -166
- package/dist/function-registry-input-audit.js.map +0 -1
- package/dist/generated/infisicalRuntimeEnv.d.ts +0 -70
- package/dist/generated/infisicalRuntimeEnv.js +0 -27051
- package/dist/generated/infisicalRuntimeEnv.js.map +0 -1
- package/dist/generated/lucernGatewayEnv.d.ts +0 -17
- package/dist/generated/lucernGatewayEnv.js +0 -38
- package/dist/generated/lucernGatewayEnv.js.map +0 -1
- package/dist/generated/lucernWebPublicEnv.d.ts +0 -26
- package/dist/generated/lucernWebPublicEnv.js +0 -32
- package/dist/generated/lucernWebPublicEnv.js.map +0 -1
- package/dist/generated/lucernWebServerEnv.d.ts +0 -33
- package/dist/generated/lucernWebServerEnv.js +0 -51
- package/dist/generated/lucernWebServerEnv.js.map +0 -1
- package/dist/graph-intelligence.contract.d.ts +0 -506
- package/dist/graph-intelligence.contract.js +0 -595
- package/dist/graph-intelligence.contract.js.map +0 -1
- package/dist/index-CM1Pl_vI.d.ts +0 -28
- package/dist/infisical-runtime.contract.d.ts +0 -1851
- package/dist/infisical-runtime.contract.js +0 -3189
- package/dist/infisical-runtime.contract.js.map +0 -1
- package/dist/manifests/edge-policy-manifest.d.ts +0 -2
- package/dist/manifests/edge-policy-manifest.data.d.ts +0 -13
- package/dist/manifests/edge-policy-manifest.data.js +0 -26
- package/dist/manifests/edge-policy-manifest.data.js.map +0 -1
- package/dist/manifests/edge-policy-manifest.js +0 -92
- package/dist/manifests/edge-policy-manifest.js.map +0 -1
- package/dist/manifests/infisical-runtime-manifest.d.ts +0 -1754
- package/dist/manifests/infisical-runtime-manifest.js +0 -3044
- package/dist/manifests/infisical-runtime-manifest.js.map +0 -1
- package/dist/manifests/invariant-manifest.d.ts +0 -65
- package/dist/manifests/invariant-manifest.js +0 -18
- package/dist/manifests/invariant-manifest.js.map +0 -1
- package/dist/manifests/invariants/ast-utils.d.ts +0 -14
- package/dist/manifests/invariants/ast-utils.js +0 -54
- package/dist/manifests/invariants/ast-utils.js.map +0 -1
- package/dist/manifests/invariants/index.d.ts +0 -15
- package/dist/manifests/invariants/index.js +0 -183
- package/dist/manifests/invariants/index.js.map +0 -1
- package/dist/manifests/invariants/inv-1-beliefs-append-only.d.ts +0 -12
- package/dist/manifests/invariants/inv-1-beliefs-append-only.js +0 -94
- package/dist/manifests/invariants/inv-1-beliefs-append-only.js.map +0 -1
- package/dist/manifests/invariants/inv-14-no-silent-transitions.d.ts +0 -12
- package/dist/manifests/invariants/inv-14-no-silent-transitions.js +0 -99
- package/dist/manifests/invariants/inv-14-no-silent-transitions.js.map +0 -1
- package/dist/manifests/invariants/manifest-1-projections-declare-audit.d.ts +0 -12
- package/dist/manifests/invariants/manifest-1-projections-declare-audit.js +0 -42
- package/dist/manifests/invariants/manifest-1-projections-declare-audit.js.map +0 -1
- package/dist/manifests/tenant-client-manifest.d.ts +0 -327
- package/dist/manifests/tenant-client-manifest.js +0 -449
- package/dist/manifests/tenant-client-manifest.js.map +0 -1
- package/dist/mcp-gateway-boundary.contract.d.ts +0 -201
- package/dist/mcp-gateway-boundary.contract.js +0 -45
- package/dist/mcp-gateway-boundary.contract.js.map +0 -1
- package/dist/permit-principal-projection.contract.d.ts +0 -74
- package/dist/permit-principal-projection.contract.js +0 -160
- package/dist/permit-principal-projection.contract.js.map +0 -1
- package/dist/projections/check-convex-args-shape.d.ts +0 -3
- package/dist/projections/check-convex-args-shape.js +0 -403
- package/dist/projections/check-convex-args-shape.js.map +0 -1
- package/dist/projections/create-evidence.projection.d.ts +0 -176
- package/dist/projections/create-evidence.projection.js +0 -130
- package/dist/projections/create-evidence.projection.js.map +0 -1
- package/dist/projections/index.d.ts +0 -102
- package/dist/projections/index.js +0 -352
- package/dist/projections/index.js.map +0 -1
- package/dist/projections/list-beliefs.projection.d.ts +0 -36
- package/dist/projections/list-beliefs.projection.js +0 -54
- package/dist/projections/list-beliefs.projection.js.map +0 -1
- package/dist/projections/list-tasks.projection.d.ts +0 -44
- package/dist/projections/list-tasks.projection.js +0 -57
- package/dist/projections/list-tasks.projection.js.map +0 -1
- package/dist/projections/modulate-confidence.projection.d.ts +0 -219
- package/dist/projections/modulate-confidence.projection.js +0 -148
- package/dist/projections/modulate-confidence.projection.js.map +0 -1
- package/dist/projections/projection-dsl.d.ts +0 -11
- package/dist/projections/projection-dsl.js +0 -8
- package/dist/projections/projection-dsl.js.map +0 -1
- package/dist/proof-attestation.json +0 -45
- package/dist/schemas/tables/controlPlane/accessControl.d.ts +0 -260
- package/dist/schemas/tables/controlPlane/accessControl.js +0 -658
- package/dist/schemas/tables/controlPlane/accessControl.js.map +0 -1
- package/dist/schemas/tables/controlPlane/agent.js.map +0 -1
- package/dist/schemas/tables/controlPlane/epistemic.js.map +0 -1
- package/dist/schemas/tables/controlPlane/model.js.map +0 -1
- package/dist/schemas/tables/controlPlane/platform.js.map +0 -1
- package/dist/schemas/tables/controlPlane/project.js.map +0 -1
- package/dist/schemas/tables/controlPlane/user.js.map +0 -1
- package/dist/schemas/tables/kernel/events.d.ts +0 -21
- package/dist/schemas/tables/kernel/events.js +0 -43
- package/dist/schemas/tables/kernel/events.js.map +0 -1
- package/dist/tenant-bootstrap-seed.contract.d.ts +0 -1289
- package/dist/tenant-bootstrap-seed.contract.js +0 -764
- package/dist/tenant-bootstrap-seed.contract.js.map +0 -1
- package/dist/tenant-bootstrap-seed.defaults.d.ts +0 -16
- package/dist/tenant-bootstrap-seed.defaults.js +0 -321
- package/dist/tenant-bootstrap-seed.defaults.js.map +0 -1
- package/dist/tenant-client.contract.d.ts +0 -354
- package/dist/tenant-client.contract.js +0 -505
- package/dist/tenant-client.contract.js.map +0 -1
package/dist/dsl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/dsl/defineFunction.ts","../src/dsl/defineTable.ts","../src/dsl/errors.ts","../src/dsl/idOf.ts","../src/dsl/adapters/zod-to-cli.ts","../src/dsl/adapters/zod-to-convex.ts","../src/dsl/adapters/zod-to-jsonschema.ts"],"names":["getObjectShape","ZodFirstPartyTypeKind","unsupported","unwrapOptionalLike","convertLazy","convertSchema"],"mappings":"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","file":"dsl.js","sourcesContent":["import { z, type ZodObject, type ZodRawShape } from \"zod\";\n\nexport type FunctionEffect = \"read\" | \"write\" | \"admin\";\n\nexport type FunctionContract<\n A extends ZodRawShape = ZodRawShape,\n R extends z.ZodTypeAny = z.ZodTypeAny,\n> = {\n name: string;\n args: ZodObject<A>;\n returns: R;\n effects: readonly FunctionEffect[];\n idempotent?: boolean;\n invariants?: readonly string[];\n};\n\nexport function defineFunction<\n A extends ZodRawShape,\n R extends z.ZodTypeAny,\n>(spec: FunctionContract<A, R>): FunctionContract<A, R> {\n return spec;\n}\n","import type { ZodObject, ZodRawShape } from \"zod\";\n\nexport type TableComponent = \"mc\" | \"kernel\" | \"control-plane\" | \"developer-pack\";\n\nexport type TableIndex =\n | {\n kind: \"index\";\n name: string;\n columns: readonly string[];\n }\n | {\n kind: \"search\";\n name: string;\n searchField: string;\n filterFields?: readonly string[];\n }\n | {\n kind: \"vector\";\n name: string;\n vectorField: string;\n dimensions: number;\n filterFields?: readonly string[];\n };\n\nexport type TableDeprecation = {\n since: string;\n reason: string;\n replacement?: string;\n};\n\nexport type TableContract<S extends ZodRawShape = ZodRawShape> = {\n name: string;\n component: TableComponent;\n category: string;\n shape: ZodObject<S>;\n indices: readonly TableIndex[];\n deprecated?: TableDeprecation;\n invariants?: readonly string[];\n};\n\nexport function defineTable<S extends ZodRawShape>(\n spec: TableContract<S>\n): TableContract<S> {\n return spec;\n}\n","export type AdapterKind = \"convex\" | \"jsonschema\" | \"cli\";\n\nexport type AdapterPurpose = \"table\" | \"function_args\" | \"function_returns\";\n\nexport type AdapterContext = {\n adapter: AdapterKind;\n purpose?: AdapterPurpose;\n location?: string;\n path?: readonly string[];\n};\n\nfunction formatPath(path?: readonly string[]) {\n if (!path || path.length === 0) {\n return \"\";\n }\n\n return path.join(\".\");\n}\n\nfunction formatLocation(context: AdapterContext) {\n const segments: string[] = [context.adapter];\n if (context.purpose) {\n segments.push(context.purpose);\n }\n if (context.location) {\n segments.push(context.location);\n }\n const formattedPath = formatPath(context.path);\n if (formattedPath) {\n segments.push(formattedPath);\n }\n return segments.join(\" :: \");\n}\n\nexport class SchemaAdapterError extends Error {\n readonly context: AdapterContext;\n\n constructor(message: string, context: AdapterContext) {\n super(`${message} [${formatLocation(context)}]`);\n this.name = \"SchemaAdapterError\";\n this.context = context;\n }\n}\n\nexport function schemaAdapterError(\n message: string,\n context: AdapterContext\n): SchemaAdapterError {\n return new SchemaAdapterError(message, context);\n}\n","import { z } from \"zod\";\n\nexport const CONVEX_ID_TABLE = Symbol.for(\"lucern.contracts.convexIdTable\");\n\nexport type ConvexIdSchema<T extends string> = z.ZodBranded<\n z.ZodString,\n `Id<${T}>`\n> & {\n readonly [CONVEX_ID_TABLE]: T;\n};\n\nexport function idOf<T extends string>(table: T): ConvexIdSchema<T> {\n const schema = z.string().brand<`Id<${T}>`>();\n Object.defineProperty(schema, CONVEX_ID_TABLE, {\n configurable: false,\n enumerable: false,\n value: table,\n writable: false,\n });\n return schema as ConvexIdSchema<T>;\n}\n\nexport function getConvexIdTable(schema: z.ZodTypeAny): string | undefined {\n return (schema as Partial<Record<typeof CONVEX_ID_TABLE, string>>)[\n CONVEX_ID_TABLE\n ];\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport { schemaAdapterError } from \"../errors.js\";\n\nexport type CliOptionKind = \"string\" | \"number\" | \"bigint\" | \"boolean\" | \"json\";\n\nexport type CliOptionSpec = {\n name: string;\n kind: CliOptionKind;\n required: boolean;\n variadic?: boolean;\n nullable?: boolean;\n choices?: readonly (string | number | boolean)[];\n defaultValue?: unknown;\n description?: string;\n};\n\nexport type CliCommandSpec = {\n options: readonly CliOptionSpec[];\n};\n\nexport type ZodToCliOptions = {\n location?: string;\n};\n\ntype FieldState = {\n schema: ZodTypeAny;\n required: boolean;\n nullable: boolean;\n defaultValue?: unknown;\n};\n\ntype ConversionState = {\n location?: string;\n seenLazySchemas: WeakSet<object>;\n};\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"cli\",\n location: state.location,\n path,\n });\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapField(\n schema: ZodTypeAny,\n path: readonly string[]\n): FieldState {\n let current = schema;\n let required = true;\n let nullable = false;\n let defaultValue: unknown;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n required = false;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n defaultValue = current._def.defaultValue();\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodNullable:\n nullable = true;\n current = current._def.innerType;\n continue;\n default:\n return {\n schema: current,\n required,\n nullable,\n defaultValue,\n };\n }\n }\n}\n\nfunction primitiveOption(\n name: string,\n kind: CliOptionKind,\n field: FieldState,\n choices?: readonly (string | number | boolean)[]\n): CliOptionSpec {\n return {\n name,\n kind,\n required: field.required,\n nullable: field.nullable || undefined,\n defaultValue: field.defaultValue,\n choices,\n description: field.schema.description,\n };\n}\n\nfunction optionFromSchema(\n name: string,\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): CliOptionSpec {\n const field = unwrapField(schema, path);\n\n switch (field.schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return primitiveOption(name, \"string\", field);\n case ZodFirstPartyTypeKind.ZodNumber:\n return primitiveOption(name, \"number\", field);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return primitiveOption(name, \"bigint\", field);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return primitiveOption(name, \"boolean\", field);\n case ZodFirstPartyTypeKind.ZodEnum:\n return primitiveOption(name, \"string\", field, field.schema._def.values);\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = [...new Set(Object.values(field.schema._def.values))].filter(\n (value): value is string | number | boolean =>\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n return primitiveOption(\n name,\n values.every((value) => typeof value === \"number\") ? \"number\" : \"string\",\n field,\n values\n );\n }\n case ZodFirstPartyTypeKind.ZodLiteral:\n return primitiveOption(name, \"string\", field, [field.schema._def.value]);\n case ZodFirstPartyTypeKind.ZodArray: {\n const item = unwrapField(field.schema._def.type, [...path, \"[]\"]);\n switch (item.schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { ...primitiveOption(name, \"string\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { ...primitiveOption(name, \"number\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { ...primitiveOption(name, \"bigint\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { ...primitiveOption(name, \"boolean\", field), variadic: true };\n default:\n return {\n ...primitiveOption(name, \"json\", field),\n variadic: false,\n };\n }\n }\n case ZodFirstPartyTypeKind.ZodLazy: {\n const lazySchema = field.schema as z.ZodLazy<ZodTypeAny>;\n if (state.seenLazySchemas.has(lazySchema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the CLI adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(lazySchema);\n try {\n return optionFromSchema(name, lazySchema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(lazySchema);\n }\n }\n case ZodFirstPartyTypeKind.ZodBranded:\n return primitiveOption(name, \"string\", field);\n case ZodFirstPartyTypeKind.ZodObject:\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n case ZodFirstPartyTypeKind.ZodRecord:\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return primitiveOption(name, \"json\", field);\n default:\n unsupported(\n `Unsupported Zod schema kind ${field.schema._def.typeName}`,\n state,\n path\n );\n }\n}\n\nexport function zodToCli(\n schema: z.ZodObject<z.ZodRawShape>,\n options: ZodToCliOptions = {}\n): CliCommandSpec {\n if (schema._def.typeName !== ZodFirstPartyTypeKind.ZodObject) {\n throw schemaAdapterError(\"CLI generation requires a Zod object schema\", {\n adapter: \"cli\",\n location: options.location,\n path: [],\n });\n }\n\n const state: ConversionState = {\n location: options.location,\n seenLazySchemas: new WeakSet<object>(),\n };\n const optionsList = Object.entries(getObjectShape(schema))\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => optionFromSchema(name, value, state, [name]));\n\n return {\n options: optionsList,\n };\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport type { TableIndex } from \"../defineTable.js\";\nimport {\n SchemaAdapterError,\n schemaAdapterError,\n type AdapterPurpose,\n} from \"../errors.js\";\nimport { getConvexIdTable } from \"../idOf.js\";\n\nexport type ConvexDefault = {\n path: readonly string[];\n value: unknown;\n};\n\nexport type ZodToConvexOptions = {\n purpose?: AdapterPurpose;\n location?: string;\n};\n\nexport type ZodToConvexResult = {\n source: string;\n defaults: readonly ConvexDefault[];\n};\n\ntype ConversionState = {\n location?: string;\n purpose: AdapterPurpose;\n seenLazySchemas: WeakSet<object>;\n};\n\ntype ConvertedSchema = {\n source: string;\n defaults: ConvexDefault[];\n};\n\nfunction encodeLiteral(value: string | number | bigint | boolean | null) {\n if (typeof value === \"bigint\") {\n return `${value}n`;\n }\n return JSON.stringify(value);\n}\n\nfunction sortEntries<T>(entries: readonly [string, T][]) {\n return [...entries].sort(([left], [right]) => left.localeCompare(right));\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapOptionalLike(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): {\n schema: ZodTypeAny;\n isOptional: boolean;\n defaults: ConvexDefault[];\n} {\n const defaults: ConvexDefault[] = [];\n let current = schema;\n let isOptional = false;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n isOptional = true;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault: {\n if (state.purpose === \"table\") {\n throw schemaAdapterError(\n \"Zod defaults are not allowed in table contracts\",\n {\n adapter: \"convex\",\n purpose: state.purpose,\n location: state.location,\n path,\n }\n );\n }\n isOptional = true;\n defaults.push({\n path,\n value: current._def.defaultValue(),\n });\n current = current._def.innerType;\n continue;\n }\n default:\n return {\n schema: current,\n isOptional,\n defaults,\n };\n }\n }\n}\n\nfunction convertSchema(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const { schema: unwrapped, isOptional, defaults } = unwrapOptionalLike(\n schema,\n state,\n path\n );\n const converted = convertSchemaInner(unwrapped, state, path);\n return {\n source: isOptional ? `v.optional(${converted.source})` : converted.source,\n defaults: [...defaults, ...converted.defaults],\n };\n}\n\nfunction enumToUnion(values: readonly (string | number)[]) {\n if (values.length === 0) {\n return \"v.never()\";\n }\n if (values.length === 1) {\n return `v.literal(${encodeLiteral(values[0])})`;\n }\n return `v.union(${values\n .map((value) => `v.literal(${encodeLiteral(value)})`)\n .join(\", \")})`;\n}\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"convex\",\n purpose: state.purpose,\n location: state.location,\n path,\n });\n}\n\nfunction convertLazy(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const lazySchema = schema as z.ZodLazy<ZodTypeAny>;\n if (state.seenLazySchemas.has(lazySchema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the Convex adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(lazySchema);\n try {\n return convertSchema(lazySchema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(lazySchema);\n }\n}\n\nfunction convertSchemaInner(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const idTable = getConvexIdTable(schema);\n if (idTable) {\n return {\n source: `v.id(${JSON.stringify(idTable)})`,\n defaults: [],\n };\n }\n\n switch (schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { source: \"v.string()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { source: \"v.number()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { source: \"v.int64()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { source: \"v.boolean()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodNull:\n return { source: \"v.null()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return { source: \"v.any()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodLiteral: {\n return {\n source: `v.literal(${encodeLiteral(schema._def.value)})`,\n defaults: [],\n };\n }\n case ZodFirstPartyTypeKind.ZodEnum:\n return {\n source: enumToUnion(schema._def.values),\n defaults: [],\n };\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = Object.values(schema._def.values).filter(\n (value): value is string | number =>\n typeof value === \"string\" || typeof value === \"number\"\n );\n return {\n source: enumToUnion([...new Set(values)]),\n defaults: [],\n };\n }\n case ZodFirstPartyTypeKind.ZodNullable: {\n const inner = convertSchema(schema._def.innerType, state, path);\n return {\n source: `v.nullable(${inner.source})`,\n defaults: inner.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodArray: {\n const inner = convertSchema(schema._def.type, state, [...path, \"[]\"]);\n return {\n source: `v.array(${inner.source})`,\n defaults: inner.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodObject: {\n const objectSchema = schema as z.ZodObject<z.ZodRawShape>;\n if (\n objectSchema._def.catchall &&\n objectSchema._def.catchall._def.typeName !== ZodFirstPartyTypeKind.ZodNever\n ) {\n unsupported(\n \"Zod objects with catchall/passthrough fields cannot be lowered to Convex validators\",\n state,\n path\n );\n }\n const fields = sortEntries(Object.entries(getObjectShape(objectSchema)));\n const convertedFields = fields.map(([key, value]) => [\n key,\n convertSchema(value, state, [...path, key]),\n ] as const);\n return {\n source: `v.object({ ${convertedFields\n .map(([key, converted]) => `${JSON.stringify(key)}: ${converted.source}`)\n .join(\", \")} })`,\n defaults: convertedFields.flatMap(([, converted]) => converted.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodUnion: {\n const members = schema._def.options.map((option: ZodTypeAny, index: number) =>\n convertSchema(option, state, [...path, String(index)])\n );\n return {\n source: `v.union(${members\n .map((member: ConvertedSchema) => member.source)\n .join(\", \")})`,\n defaults: members.flatMap((member: ConvertedSchema) => member.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {\n const discriminatedUnion = schema as z.ZodDiscriminatedUnion<\n string,\n [z.ZodObject<z.ZodRawShape>, ...z.ZodObject<z.ZodRawShape>[]]\n >;\n const options =\n discriminatedUnion.options instanceof Map\n ? [...discriminatedUnion.options.values()]\n : [...discriminatedUnion.options];\n const members = options.map((option, index) =>\n convertSchema(option, state, [...path, String(index)])\n );\n return {\n source: `v.union(${members\n .map((member: ConvertedSchema) => member.source)\n .join(\", \")})`,\n defaults: members.flatMap((member: ConvertedSchema) => member.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodRecord: {\n const keyType = schema._def.keyType;\n if (\n keyType &&\n keyType._def.typeName !== ZodFirstPartyTypeKind.ZodString\n ) {\n unsupported(\n \"Only string-keyed z.record schemas can be lowered to Convex validators\",\n state,\n path\n );\n }\n const value = convertSchema(schema._def.valueType, state, [...path, \"{}\"]);\n return {\n source: `v.record(v.string(), ${value.source})`,\n defaults: value.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodLazy:\n return convertLazy(schema, state, path);\n case ZodFirstPartyTypeKind.ZodBranded: {\n return convertSchema(schema._def.type, state, path);\n }\n case ZodFirstPartyTypeKind.ZodEffects: {\n return convertSchema(schema._def.schema, state, path);\n }\n default:\n unsupported(`Unsupported Zod schema kind ${schema._def.typeName}`, state, path);\n }\n}\n\nexport function zodToConvex(\n schema: ZodTypeAny,\n options: ZodToConvexOptions = {}\n): ZodToConvexResult {\n const state: ConversionState = {\n location: options.location,\n purpose: options.purpose ?? \"function_returns\",\n seenLazySchemas: new WeakSet<object>(),\n };\n const converted = convertSchema(schema, state, []);\n return {\n source: converted.source,\n defaults: converted.defaults,\n };\n}\n\nexport function tableIndexToConvexSource(index: TableIndex): string {\n switch (index.kind) {\n case \"index\":\n return `.index(${JSON.stringify(index.name)}, [${index.columns\n .map((column) => JSON.stringify(column))\n .join(\", \")}])`;\n case \"search\":\n return `.searchIndex(${JSON.stringify(index.name)}, { searchField: ${JSON.stringify(\n index.searchField\n )}${index.filterFields?.length ? `, filterFields: [${index.filterFields\n .map((field) => JSON.stringify(field))\n .join(\", \")}]` : \"\"} })`;\n case \"vector\":\n return `.vectorIndex(${JSON.stringify(index.name)}, { vectorField: ${JSON.stringify(\n index.vectorField\n )}, dimensions: ${index.dimensions}${\n index.filterFields?.length\n ? `, filterFields: [${index.filterFields\n .map((field) => JSON.stringify(field))\n .join(\", \")}]`\n : \"\"\n } })`;\n default: {\n const exhaustive: never = index;\n throw new SchemaAdapterError(\n `Unsupported table index kind ${(exhaustive as { kind?: string }).kind ?? \"unknown\"}`,\n { adapter: \"convex\" }\n );\n }\n }\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport { schemaAdapterError } from \"../errors.js\";\nimport { getConvexIdTable } from \"../idOf.js\";\n\nexport type JsonSchema =\n | boolean\n | {\n $schema?: string;\n type?: string | readonly string[];\n properties?: Record<string, JsonSchema>;\n required?: readonly string[];\n additionalProperties?: boolean | JsonSchema;\n items?: JsonSchema;\n enum?: readonly (string | number | boolean)[];\n const?: string | number | boolean | null;\n anyOf?: readonly JsonSchema[];\n oneOf?: readonly JsonSchema[];\n default?: unknown;\n format?: string;\n description?: string;\n [key: string]: unknown;\n };\n\nexport type ZodToJsonSchemaOptions = {\n location?: string;\n};\n\ntype JsonField = {\n schema: JsonSchema;\n required: boolean;\n};\n\ntype ConversionState = {\n location?: string;\n seenLazySchemas: WeakSet<object>;\n};\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"jsonschema\",\n location: state.location,\n path,\n });\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapOptionalLike(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): {\n schema: ZodTypeAny;\n required: boolean;\n defaultValue?: unknown;\n} {\n let current = schema;\n let required = true;\n let defaultValue: unknown;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n required = false;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n defaultValue = current._def.defaultValue();\n current = current._def.innerType;\n continue;\n default:\n return {\n schema: current,\n required,\n defaultValue,\n };\n }\n }\n}\n\nfunction convertLazy(\n schema: z.ZodLazy<ZodTypeAny>,\n state: ConversionState,\n path: readonly string[]\n): JsonSchema {\n if (state.seenLazySchemas.has(schema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the JSON Schema adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(schema);\n try {\n return convertSchema(schema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(schema);\n }\n}\n\nfunction literalType(value: unknown) {\n switch (typeof value) {\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isInteger(value) ? \"integer\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"bigint\":\n return \"integer\";\n default:\n return value === null ? \"null\" : undefined;\n }\n}\n\nfunction convertField(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): JsonField {\n const { schema: unwrapped, required, defaultValue } = unwrapOptionalLike(\n schema,\n state,\n path\n );\n const field = convertSchema(unwrapped, state, path);\n if (typeof field === \"boolean\") {\n return {\n schema: field,\n required,\n };\n }\n return {\n schema:\n defaultValue === undefined ? field : { ...field, default: defaultValue },\n required,\n };\n}\n\nfunction convertSchema(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): JsonSchema {\n const idTable = getConvexIdTable(schema);\n if (idTable) {\n return {\n type: \"string\",\n \"x-convex-id-table\": idTable,\n };\n }\n\n switch (schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { type: \"string\" };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { type: \"number\" };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { type: \"integer\", format: \"int64\" };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { type: \"boolean\" };\n case ZodFirstPartyTypeKind.ZodNull:\n return { type: \"null\" };\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return {};\n case ZodFirstPartyTypeKind.ZodLiteral:\n return {\n const: schema._def.value,\n type: literalType(schema._def.value),\n };\n case ZodFirstPartyTypeKind.ZodEnum:\n return {\n type: \"string\",\n enum: schema._def.values,\n };\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = [...new Set(Object.values(schema._def.values))].filter(\n (value): value is string | number | boolean =>\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n return {\n type: values.every((value) => typeof value === \"number\")\n ? \"number\"\n : \"string\",\n enum: values,\n };\n }\n case ZodFirstPartyTypeKind.ZodNullable: {\n const inner = convertSchema(schema._def.innerType, state, path);\n return {\n anyOf: [inner, { type: \"null\" }],\n };\n }\n case ZodFirstPartyTypeKind.ZodArray:\n return {\n type: \"array\",\n items: convertSchema(schema._def.type, state, [...path, \"[]\"]),\n };\n case ZodFirstPartyTypeKind.ZodObject: {\n const objectSchema = schema as z.ZodObject<z.ZodRawShape>;\n if (\n objectSchema._def.catchall &&\n objectSchema._def.catchall._def.typeName !== ZodFirstPartyTypeKind.ZodNever\n ) {\n unsupported(\n \"Zod objects with catchall/passthrough fields cannot be lowered to JSON Schema\",\n state,\n path\n );\n }\n const entries = Object.entries(getObjectShape(objectSchema)).sort(([a], [b]) =>\n a.localeCompare(b)\n );\n const converted = entries.map(([key, value]) => [\n key,\n convertField(value, state, [...path, key]),\n ] as const);\n const required = converted\n .filter(([, field]) => field.required)\n .map(([key]) => key);\n return {\n type: \"object\",\n properties: Object.fromEntries(\n converted.map(([key, field]) => [key, field.schema])\n ),\n additionalProperties: false,\n ...(required.length > 0 ? { required } : {}),\n };\n }\n case ZodFirstPartyTypeKind.ZodUnion:\n return {\n anyOf: schema._def.options.map((option: ZodTypeAny, index: number) =>\n convertSchema(option, state, [...path, String(index)])\n ),\n };\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {\n const discriminatedUnion = schema as z.ZodDiscriminatedUnion<\n string,\n [z.ZodObject<z.ZodRawShape>, ...z.ZodObject<z.ZodRawShape>[]]\n >;\n const options =\n discriminatedUnion.options instanceof Map\n ? [...discriminatedUnion.options.values()]\n : [...discriminatedUnion.options];\n return {\n oneOf: options.map((option, index) =>\n convertSchema(option, state, [...path, String(index)])\n ),\n };\n }\n case ZodFirstPartyTypeKind.ZodRecord: {\n const keyType = schema._def.keyType;\n if (\n keyType &&\n keyType._def.typeName !== ZodFirstPartyTypeKind.ZodString\n ) {\n unsupported(\n \"Only string-keyed z.record schemas can be lowered to JSON Schema\",\n state,\n path\n );\n }\n return {\n type: \"object\",\n additionalProperties: convertSchema(\n schema._def.valueType,\n state,\n [...path, \"{}\"]\n ),\n };\n }\n case ZodFirstPartyTypeKind.ZodLazy:\n return convertLazy(schema as z.ZodLazy<ZodTypeAny>, state, path);\n case ZodFirstPartyTypeKind.ZodBranded:\n return convertSchema(schema._def.type, state, path);\n default:\n unsupported(\n `Unsupported Zod schema kind ${schema._def.typeName}`,\n state,\n path\n );\n }\n}\n\nexport function zodToJsonSchema(\n schema: ZodTypeAny,\n options: ZodToJsonSchemaOptions = {}\n): JsonSchema {\n const converted = convertSchema(schema, {\n location: options.location,\n seenLazySchemas: new WeakSet<object>(),\n }, []);\n if (typeof converted === \"boolean\") {\n return converted;\n }\n return {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n ...converted,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/dsl/defineFunction.ts","../src/dsl/defineTable.ts","../src/dsl/errors.ts","../src/dsl/idOf.ts","../src/dsl/adapters/zod-to-cli.ts","../src/dsl/adapters/zod-to-convex.ts","../src/dsl/adapters/zod-to-jsonschema.ts"],"names":["getObjectShape","ZodFirstPartyTypeKind","unsupported","unwrapOptionalLike","convertLazy","convertSchema"],"mappings":"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","file":"dsl.js","sourcesContent":["import { z, type ZodObject, type ZodRawShape } from \"zod\";\n\nexport type FunctionEffect = \"read\" | \"write\" | \"admin\";\n\nexport type FunctionContract<\n A extends ZodRawShape = ZodRawShape,\n R extends z.ZodTypeAny = z.ZodTypeAny,\n> = {\n name: string;\n args: ZodObject<A>;\n returns: R;\n effects: readonly FunctionEffect[];\n idempotent?: boolean;\n invariants?: readonly string[];\n};\n\nexport function defineFunction<\n A extends ZodRawShape,\n R extends z.ZodTypeAny,\n>(spec: FunctionContract<A, R>): FunctionContract<A, R> {\n return spec;\n}\n","import type { ZodObject, ZodRawShape } from \"zod\";\n\nexport type TableComponent = \"mc\" | \"kernel\" | \"identity\" | \"developer-pack\";\n\nexport type TableIndex =\n | {\n kind: \"index\";\n name: string;\n columns: readonly string[];\n }\n | {\n kind: \"search\";\n name: string;\n searchField: string;\n filterFields?: readonly string[];\n }\n | {\n kind: \"vector\";\n name: string;\n vectorField: string;\n dimensions: number;\n filterFields?: readonly string[];\n };\n\nexport type TableDeprecation = {\n since: string;\n reason: string;\n replacement?: string;\n};\n\nexport type TableContract<S extends ZodRawShape = ZodRawShape> = {\n name: string;\n component: TableComponent;\n category: string;\n shape: ZodObject<S>;\n indices: readonly TableIndex[];\n deprecated?: TableDeprecation;\n invariants?: readonly string[];\n};\n\nexport function defineTable<S extends ZodRawShape>(\n spec: TableContract<S>\n): TableContract<S> {\n return spec;\n}\n","export type AdapterKind = \"convex\" | \"jsonschema\" | \"cli\";\n\nexport type AdapterPurpose = \"table\" | \"function_args\" | \"function_returns\";\n\nexport type AdapterContext = {\n adapter: AdapterKind;\n purpose?: AdapterPurpose;\n location?: string;\n path?: readonly string[];\n};\n\nfunction formatPath(path?: readonly string[]) {\n if (!path || path.length === 0) {\n return \"\";\n }\n\n return path.join(\".\");\n}\n\nfunction formatLocation(context: AdapterContext) {\n const segments: string[] = [context.adapter];\n if (context.purpose) {\n segments.push(context.purpose);\n }\n if (context.location) {\n segments.push(context.location);\n }\n const formattedPath = formatPath(context.path);\n if (formattedPath) {\n segments.push(formattedPath);\n }\n return segments.join(\" :: \");\n}\n\nexport class SchemaAdapterError extends Error {\n readonly context: AdapterContext;\n\n constructor(message: string, context: AdapterContext) {\n super(`${message} [${formatLocation(context)}]`);\n this.name = \"SchemaAdapterError\";\n this.context = context;\n }\n}\n\nexport function schemaAdapterError(\n message: string,\n context: AdapterContext\n): SchemaAdapterError {\n return new SchemaAdapterError(message, context);\n}\n","import { z } from \"zod\";\n\nexport const CONVEX_ID_TABLE = Symbol.for(\"lucern.contracts.convexIdTable\");\n\nexport type ConvexIdSchema<T extends string> = z.ZodBranded<\n z.ZodString,\n `Id<${T}>`\n> & {\n readonly [CONVEX_ID_TABLE]: T;\n};\n\nexport function idOf<T extends string>(table: T): ConvexIdSchema<T> {\n const schema = z.string().brand<`Id<${T}>`>();\n Object.defineProperty(schema, CONVEX_ID_TABLE, {\n configurable: false,\n enumerable: false,\n value: table,\n writable: false,\n });\n return schema as ConvexIdSchema<T>;\n}\n\nexport function getConvexIdTable(schema: z.ZodTypeAny): string | undefined {\n return (schema as Partial<Record<typeof CONVEX_ID_TABLE, string>>)[\n CONVEX_ID_TABLE\n ];\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport { schemaAdapterError } from \"../errors.js\";\n\nexport type CliOptionKind = \"string\" | \"number\" | \"bigint\" | \"boolean\" | \"json\";\n\nexport type CliOptionSpec = {\n name: string;\n kind: CliOptionKind;\n required: boolean;\n variadic?: boolean;\n nullable?: boolean;\n choices?: readonly (string | number | boolean)[];\n defaultValue?: unknown;\n description?: string;\n};\n\nexport type CliCommandSpec = {\n options: readonly CliOptionSpec[];\n};\n\nexport type ZodToCliOptions = {\n location?: string;\n};\n\ntype FieldState = {\n schema: ZodTypeAny;\n required: boolean;\n nullable: boolean;\n defaultValue?: unknown;\n};\n\ntype ConversionState = {\n location?: string;\n seenLazySchemas: WeakSet<object>;\n};\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"cli\",\n location: state.location,\n path,\n });\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapField(\n schema: ZodTypeAny,\n path: readonly string[]\n): FieldState {\n let current = schema;\n let required = true;\n let nullable = false;\n let defaultValue: unknown;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n required = false;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n defaultValue = current._def.defaultValue();\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodNullable:\n nullable = true;\n current = current._def.innerType;\n continue;\n default:\n return {\n schema: current,\n required,\n nullable,\n defaultValue,\n };\n }\n }\n}\n\nfunction primitiveOption(\n name: string,\n kind: CliOptionKind,\n field: FieldState,\n choices?: readonly (string | number | boolean)[]\n): CliOptionSpec {\n return {\n name,\n kind,\n required: field.required,\n nullable: field.nullable || undefined,\n defaultValue: field.defaultValue,\n choices,\n description: field.schema.description,\n };\n}\n\nfunction optionFromSchema(\n name: string,\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): CliOptionSpec {\n const field = unwrapField(schema, path);\n\n switch (field.schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return primitiveOption(name, \"string\", field);\n case ZodFirstPartyTypeKind.ZodNumber:\n return primitiveOption(name, \"number\", field);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return primitiveOption(name, \"bigint\", field);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return primitiveOption(name, \"boolean\", field);\n case ZodFirstPartyTypeKind.ZodEnum:\n return primitiveOption(name, \"string\", field, field.schema._def.values);\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = [...new Set(Object.values(field.schema._def.values))].filter(\n (value): value is string | number | boolean =>\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n return primitiveOption(\n name,\n values.every((value) => typeof value === \"number\") ? \"number\" : \"string\",\n field,\n values\n );\n }\n case ZodFirstPartyTypeKind.ZodLiteral:\n return primitiveOption(name, \"string\", field, [field.schema._def.value]);\n case ZodFirstPartyTypeKind.ZodArray: {\n const item = unwrapField(field.schema._def.type, [...path, \"[]\"]);\n switch (item.schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { ...primitiveOption(name, \"string\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { ...primitiveOption(name, \"number\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { ...primitiveOption(name, \"bigint\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { ...primitiveOption(name, \"boolean\", field), variadic: true };\n default:\n return {\n ...primitiveOption(name, \"json\", field),\n variadic: false,\n };\n }\n }\n case ZodFirstPartyTypeKind.ZodLazy: {\n const lazySchema = field.schema as z.ZodLazy<ZodTypeAny>;\n if (state.seenLazySchemas.has(lazySchema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the CLI adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(lazySchema);\n try {\n return optionFromSchema(name, lazySchema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(lazySchema);\n }\n }\n case ZodFirstPartyTypeKind.ZodBranded:\n return primitiveOption(name, \"string\", field);\n case ZodFirstPartyTypeKind.ZodObject:\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n case ZodFirstPartyTypeKind.ZodRecord:\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return primitiveOption(name, \"json\", field);\n default:\n unsupported(\n `Unsupported Zod schema kind ${field.schema._def.typeName}`,\n state,\n path\n );\n }\n}\n\nexport function zodToCli(\n schema: z.ZodObject<z.ZodRawShape>,\n options: ZodToCliOptions = {}\n): CliCommandSpec {\n if (schema._def.typeName !== ZodFirstPartyTypeKind.ZodObject) {\n throw schemaAdapterError(\"CLI generation requires a Zod object schema\", {\n adapter: \"cli\",\n location: options.location,\n path: [],\n });\n }\n\n const state: ConversionState = {\n location: options.location,\n seenLazySchemas: new WeakSet<object>(),\n };\n const optionsList = Object.entries(getObjectShape(schema))\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => optionFromSchema(name, value, state, [name]));\n\n return {\n options: optionsList,\n };\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport type { TableIndex } from \"../defineTable.js\";\nimport {\n SchemaAdapterError,\n schemaAdapterError,\n type AdapterPurpose,\n} from \"../errors.js\";\nimport { getConvexIdTable } from \"../idOf.js\";\n\nexport type ConvexDefault = {\n path: readonly string[];\n value: unknown;\n};\n\nexport type ZodToConvexOptions = {\n purpose?: AdapterPurpose;\n location?: string;\n};\n\nexport type ZodToConvexResult = {\n source: string;\n defaults: readonly ConvexDefault[];\n};\n\ntype ConversionState = {\n location?: string;\n purpose: AdapterPurpose;\n seenLazySchemas: WeakSet<object>;\n};\n\ntype ConvertedSchema = {\n source: string;\n defaults: ConvexDefault[];\n};\n\nfunction encodeLiteral(value: string | number | bigint | boolean | null) {\n if (typeof value === \"bigint\") {\n return `${value}n`;\n }\n return JSON.stringify(value);\n}\n\nfunction quoteKey(value: string) {\n return JSON.stringify(value);\n}\n\nfunction sortEntries<T>(entries: readonly [string, T][]) {\n return [...entries].sort(([left], [right]) => left.localeCompare(right));\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapOptionalLike(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): {\n schema: ZodTypeAny;\n isOptional: boolean;\n defaults: ConvexDefault[];\n} {\n const defaults: ConvexDefault[] = [];\n let current = schema;\n let isOptional = false;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n isOptional = true;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault: {\n if (state.purpose === \"table\") {\n throw schemaAdapterError(\n \"Zod defaults are not allowed in table contracts\",\n {\n adapter: \"convex\",\n purpose: state.purpose,\n location: state.location,\n path,\n }\n );\n }\n isOptional = true;\n defaults.push({\n path,\n value: current._def.defaultValue(),\n });\n current = current._def.innerType;\n continue;\n }\n default:\n return {\n schema: current,\n isOptional,\n defaults,\n };\n }\n }\n}\n\nfunction convertSchema(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const { schema: unwrapped, isOptional, defaults } = unwrapOptionalLike(\n schema,\n state,\n path\n );\n const converted = convertSchemaInner(unwrapped, state, path);\n return {\n source: isOptional ? `v.optional(${converted.source})` : converted.source,\n defaults: [...defaults, ...converted.defaults],\n };\n}\n\nfunction enumToUnion(values: readonly (string | number)[]) {\n if (values.length === 0) {\n return \"v.never()\";\n }\n if (values.length === 1) {\n return `v.literal(${encodeLiteral(values[0])})`;\n }\n return `v.union(${values\n .map((value) => `v.literal(${encodeLiteral(value)})`)\n .join(\", \")})`;\n}\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"convex\",\n purpose: state.purpose,\n location: state.location,\n path,\n });\n}\n\nfunction convertLazy(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const lazySchema = schema as z.ZodLazy<ZodTypeAny>;\n if (state.seenLazySchemas.has(lazySchema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the Convex adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(lazySchema);\n try {\n return convertSchema(lazySchema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(lazySchema);\n }\n}\n\nfunction convertSchemaInner(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const idTable = getConvexIdTable(schema);\n if (idTable) {\n return {\n source: `v.id(${JSON.stringify(idTable)})`,\n defaults: [],\n };\n }\n\n switch (schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { source: \"v.string()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { source: \"v.number()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { source: \"v.int64()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { source: \"v.boolean()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodNull:\n return { source: \"v.null()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return { source: \"v.any()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodLiteral: {\n return {\n source: `v.literal(${encodeLiteral(schema._def.value)})`,\n defaults: [],\n };\n }\n case ZodFirstPartyTypeKind.ZodEnum:\n return {\n source: enumToUnion(schema._def.values),\n defaults: [],\n };\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = Object.values(schema._def.values).filter(\n (value): value is string | number =>\n typeof value === \"string\" || typeof value === \"number\"\n );\n return {\n source: enumToUnion([...new Set(values)]),\n defaults: [],\n };\n }\n case ZodFirstPartyTypeKind.ZodNullable: {\n const inner = convertSchema(schema._def.innerType, state, path);\n return {\n source: `v.nullable(${inner.source})`,\n defaults: inner.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodArray: {\n const inner = convertSchema(schema._def.type, state, [...path, \"[]\"]);\n return {\n source: `v.array(${inner.source})`,\n defaults: inner.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodObject: {\n const objectSchema = schema as z.ZodObject<z.ZodRawShape>;\n if (\n objectSchema._def.catchall &&\n objectSchema._def.catchall._def.typeName !== ZodFirstPartyTypeKind.ZodNever\n ) {\n unsupported(\n \"Zod objects with catchall/passthrough fields cannot be lowered to Convex validators\",\n state,\n path\n );\n }\n const fields = sortEntries(Object.entries(getObjectShape(objectSchema)));\n const convertedFields = fields.map(([key, value]) => [\n key,\n convertSchema(value, state, [...path, key]),\n ] as const);\n return {\n source: `v.object({ ${convertedFields\n .map(([key, converted]) => `${quoteKey(key)}: ${converted.source}`)\n .join(\", \")} })`,\n defaults: convertedFields.flatMap(([, converted]) => converted.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodUnion: {\n const members = schema._def.options.map((option: ZodTypeAny, index: number) =>\n convertSchema(option, state, [...path, String(index)])\n );\n return {\n source: `v.union(${members\n .map((member: ConvertedSchema) => member.source)\n .join(\", \")})`,\n defaults: members.flatMap((member: ConvertedSchema) => member.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {\n const discriminatedUnion = schema as z.ZodDiscriminatedUnion<\n string,\n [z.ZodObject<z.ZodRawShape>, ...z.ZodObject<z.ZodRawShape>[]]\n >;\n const options =\n discriminatedUnion.options instanceof Map\n ? [...discriminatedUnion.options.values()]\n : [...discriminatedUnion.options];\n const members = options.map((option, index) =>\n convertSchema(option, state, [...path, String(index)])\n );\n return {\n source: `v.union(${members\n .map((member: ConvertedSchema) => member.source)\n .join(\", \")})`,\n defaults: members.flatMap((member: ConvertedSchema) => member.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodRecord: {\n const keyType = schema._def.keyType;\n if (\n keyType &&\n keyType._def.typeName !== ZodFirstPartyTypeKind.ZodString\n ) {\n unsupported(\n \"Only string-keyed z.record schemas can be lowered to Convex validators\",\n state,\n path\n );\n }\n const value = convertSchema(schema._def.valueType, state, [...path, \"{}\"]);\n return {\n source: `v.record(v.string(), ${value.source})`,\n defaults: value.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodLazy:\n return convertLazy(schema, state, path);\n case ZodFirstPartyTypeKind.ZodBranded: {\n return convertSchema(schema._def.type, state, path);\n }\n case ZodFirstPartyTypeKind.ZodEffects: {\n return convertSchema(schema._def.schema, state, path);\n }\n default:\n unsupported(`Unsupported Zod schema kind ${schema._def.typeName}`, state, path);\n }\n}\n\nexport function zodToConvex(\n schema: ZodTypeAny,\n options: ZodToConvexOptions = {}\n): ZodToConvexResult {\n const state: ConversionState = {\n location: options.location,\n purpose: options.purpose ?? \"function_returns\",\n seenLazySchemas: new WeakSet<object>(),\n };\n const converted = convertSchema(schema, state, []);\n return {\n source: converted.source,\n defaults: converted.defaults,\n };\n}\n\nexport function tableIndexToConvexSource(index: TableIndex): string {\n switch (index.kind) {\n case \"index\":\n return `.index(${JSON.stringify(index.name)}, [${index.columns\n .map((column) => JSON.stringify(column))\n .join(\", \")}])`;\n case \"search\":\n return `.searchIndex(${JSON.stringify(index.name)}, { searchField: ${JSON.stringify(\n index.searchField\n )}${index.filterFields?.length ? `, filterFields: [${index.filterFields\n .map((field) => JSON.stringify(field))\n .join(\", \")}]` : \"\"} })`;\n case \"vector\":\n return `.vectorIndex(${JSON.stringify(index.name)}, { vectorField: ${JSON.stringify(\n index.vectorField\n )}, dimensions: ${index.dimensions}${\n index.filterFields?.length\n ? `, filterFields: [${index.filterFields\n .map((field) => JSON.stringify(field))\n .join(\", \")}]`\n : \"\"\n } })`;\n default: {\n const exhaustive: never = index;\n throw new SchemaAdapterError(\n `Unsupported table index kind ${(exhaustive as { kind?: string }).kind ?? \"unknown\"}`,\n { adapter: \"convex\" }\n );\n }\n }\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport { schemaAdapterError } from \"../errors.js\";\nimport { getConvexIdTable } from \"../idOf.js\";\n\nexport type JsonSchema =\n | boolean\n | {\n $schema?: string;\n type?: string | readonly string[];\n properties?: Record<string, JsonSchema>;\n required?: readonly string[];\n additionalProperties?: boolean | JsonSchema;\n items?: JsonSchema;\n enum?: readonly (string | number | boolean)[];\n const?: string | number | boolean | null;\n anyOf?: readonly JsonSchema[];\n oneOf?: readonly JsonSchema[];\n default?: unknown;\n format?: string;\n description?: string;\n [key: string]: unknown;\n };\n\nexport type ZodToJsonSchemaOptions = {\n location?: string;\n};\n\ntype JsonField = {\n schema: JsonSchema;\n required: boolean;\n};\n\ntype ConversionState = {\n location?: string;\n seenLazySchemas: WeakSet<object>;\n};\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"jsonschema\",\n location: state.location,\n path,\n });\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapOptionalLike(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): {\n schema: ZodTypeAny;\n required: boolean;\n defaultValue?: unknown;\n} {\n let current = schema;\n let required = true;\n let defaultValue: unknown;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n required = false;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n defaultValue = current._def.defaultValue();\n current = current._def.innerType;\n continue;\n default:\n return {\n schema: current,\n required,\n defaultValue,\n };\n }\n }\n}\n\nfunction convertLazy(\n schema: z.ZodLazy<ZodTypeAny>,\n state: ConversionState,\n path: readonly string[]\n): JsonSchema {\n if (state.seenLazySchemas.has(schema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the JSON Schema adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(schema);\n try {\n return convertSchema(schema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(schema);\n }\n}\n\nfunction literalType(value: unknown) {\n switch (typeof value) {\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isInteger(value) ? \"integer\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"bigint\":\n return \"integer\";\n default:\n return value === null ? \"null\" : undefined;\n }\n}\n\nfunction convertField(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): JsonField {\n const { schema: unwrapped, required, defaultValue } = unwrapOptionalLike(\n schema,\n state,\n path\n );\n const field = convertSchema(unwrapped, state, path);\n if (typeof field === \"boolean\") {\n return {\n schema: field,\n required,\n };\n }\n return {\n schema:\n defaultValue === undefined ? field : { ...field, default: defaultValue },\n required,\n };\n}\n\nfunction convertSchema(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): JsonSchema {\n const idTable = getConvexIdTable(schema);\n if (idTable) {\n return {\n type: \"string\",\n \"x-convex-id-table\": idTable,\n };\n }\n\n switch (schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { type: \"string\" };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { type: \"number\" };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { type: \"integer\", format: \"int64\" };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { type: \"boolean\" };\n case ZodFirstPartyTypeKind.ZodNull:\n return { type: \"null\" };\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return {};\n case ZodFirstPartyTypeKind.ZodLiteral:\n return {\n const: schema._def.value,\n type: literalType(schema._def.value),\n };\n case ZodFirstPartyTypeKind.ZodEnum:\n return {\n type: \"string\",\n enum: schema._def.values,\n };\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = [...new Set(Object.values(schema._def.values))].filter(\n (value): value is string | number | boolean =>\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n return {\n type: values.every((value) => typeof value === \"number\")\n ? \"number\"\n : \"string\",\n enum: values,\n };\n }\n case ZodFirstPartyTypeKind.ZodNullable: {\n const inner = convertSchema(schema._def.innerType, state, path);\n return {\n anyOf: [inner, { type: \"null\" }],\n };\n }\n case ZodFirstPartyTypeKind.ZodArray:\n return {\n type: \"array\",\n items: convertSchema(schema._def.type, state, [...path, \"[]\"]),\n };\n case ZodFirstPartyTypeKind.ZodObject: {\n const objectSchema = schema as z.ZodObject<z.ZodRawShape>;\n if (\n objectSchema._def.catchall &&\n objectSchema._def.catchall._def.typeName !== ZodFirstPartyTypeKind.ZodNever\n ) {\n unsupported(\n \"Zod objects with catchall/passthrough fields cannot be lowered to JSON Schema\",\n state,\n path\n );\n }\n const entries = Object.entries(getObjectShape(objectSchema)).sort(([a], [b]) =>\n a.localeCompare(b)\n );\n const converted = entries.map(([key, value]) => [\n key,\n convertField(value, state, [...path, key]),\n ] as const);\n const required = converted\n .filter(([, field]) => field.required)\n .map(([key]) => key);\n return {\n type: \"object\",\n properties: Object.fromEntries(\n converted.map(([key, field]) => [key, field.schema])\n ),\n additionalProperties: false,\n ...(required.length > 0 ? { required } : {}),\n };\n }\n case ZodFirstPartyTypeKind.ZodUnion:\n return {\n anyOf: schema._def.options.map((option: ZodTypeAny, index: number) =>\n convertSchema(option, state, [...path, String(index)])\n ),\n };\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {\n const discriminatedUnion = schema as z.ZodDiscriminatedUnion<\n string,\n [z.ZodObject<z.ZodRawShape>, ...z.ZodObject<z.ZodRawShape>[]]\n >;\n const options =\n discriminatedUnion.options instanceof Map\n ? [...discriminatedUnion.options.values()]\n : [...discriminatedUnion.options];\n return {\n oneOf: options.map((option, index) =>\n convertSchema(option, state, [...path, String(index)])\n ),\n };\n }\n case ZodFirstPartyTypeKind.ZodRecord: {\n const keyType = schema._def.keyType;\n if (\n keyType &&\n keyType._def.typeName !== ZodFirstPartyTypeKind.ZodString\n ) {\n unsupported(\n \"Only string-keyed z.record schemas can be lowered to JSON Schema\",\n state,\n path\n );\n }\n return {\n type: \"object\",\n additionalProperties: convertSchema(\n schema._def.valueType,\n state,\n [...path, \"{}\"]\n ),\n };\n }\n case ZodFirstPartyTypeKind.ZodLazy:\n return convertLazy(schema as z.ZodLazy<ZodTypeAny>, state, path);\n case ZodFirstPartyTypeKind.ZodBranded:\n return convertSchema(schema._def.type, state, path);\n default:\n unsupported(\n `Unsupported Zod schema kind ${schema._def.typeName}`,\n state,\n path\n );\n }\n}\n\nexport function zodToJsonSchema(\n schema: ZodTypeAny,\n options: ZodToJsonSchemaOptions = {}\n): JsonSchema {\n const converted = convertSchema(schema, {\n location: options.location,\n seenLazySchemas: new WeakSet<object>(),\n }, []);\n if (typeof converted === \"boolean\") {\n return converted;\n }\n return {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n ...converted,\n };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as zod from 'zod';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* MCP Tool Contract Definitions
|
|
@@ -83,9 +83,6 @@ type FunctionConvexTarget = {
|
|
|
83
83
|
inputProjection?: ContractInputProjection;
|
|
84
84
|
outputProjection?: ContractOutputProjection;
|
|
85
85
|
};
|
|
86
|
-
type FunctionGatewayTarget = {
|
|
87
|
-
handler: "identity.whoami" | "beliefs.list" | "evidence.list" | "questions.list" | "tasks.create" | "tasks.list" | "tasks.update" | "tasks.complete";
|
|
88
|
-
};
|
|
89
86
|
|
|
90
87
|
declare const beliefsContracts: readonly [{
|
|
91
88
|
name: string;
|
|
@@ -115,14 +112,13 @@ declare const beliefsContracts: readonly [{
|
|
|
115
112
|
};
|
|
116
113
|
auth: {
|
|
117
114
|
scopes: string[];
|
|
118
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
115
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
119
116
|
};
|
|
120
117
|
convex: FunctionConvexTarget | undefined;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
output: z.ZodTypeAny;
|
|
118
|
+
args: zod.ZodTypeAny;
|
|
119
|
+
returns: zod.ZodTypeAny;
|
|
120
|
+
input: zod.ZodTypeAny;
|
|
121
|
+
output: zod.ZodTypeAny;
|
|
126
122
|
openapi: {
|
|
127
123
|
summary: string;
|
|
128
124
|
tags: string[];
|
|
@@ -155,14 +151,13 @@ declare const beliefsContracts: readonly [{
|
|
|
155
151
|
};
|
|
156
152
|
auth: {
|
|
157
153
|
scopes: string[];
|
|
158
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
154
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
159
155
|
};
|
|
160
156
|
convex: FunctionConvexTarget | undefined;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
output: z.ZodTypeAny;
|
|
157
|
+
args: zod.ZodTypeAny;
|
|
158
|
+
returns: zod.ZodTypeAny;
|
|
159
|
+
input: zod.ZodTypeAny;
|
|
160
|
+
output: zod.ZodTypeAny;
|
|
166
161
|
openapi: {
|
|
167
162
|
summary: string;
|
|
168
163
|
tags: string[];
|
|
@@ -195,14 +190,13 @@ declare const beliefsContracts: readonly [{
|
|
|
195
190
|
};
|
|
196
191
|
auth: {
|
|
197
192
|
scopes: string[];
|
|
198
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
193
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
199
194
|
};
|
|
200
195
|
convex: FunctionConvexTarget | undefined;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
output: z.ZodTypeAny;
|
|
196
|
+
args: zod.ZodTypeAny;
|
|
197
|
+
returns: zod.ZodTypeAny;
|
|
198
|
+
input: zod.ZodTypeAny;
|
|
199
|
+
output: zod.ZodTypeAny;
|
|
206
200
|
openapi: {
|
|
207
201
|
summary: string;
|
|
208
202
|
tags: string[];
|
|
@@ -235,14 +229,13 @@ declare const beliefsContracts: readonly [{
|
|
|
235
229
|
};
|
|
236
230
|
auth: {
|
|
237
231
|
scopes: string[];
|
|
238
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
232
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
239
233
|
};
|
|
240
234
|
convex: FunctionConvexTarget | undefined;
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
output: z.ZodTypeAny;
|
|
235
|
+
args: zod.ZodTypeAny;
|
|
236
|
+
returns: zod.ZodTypeAny;
|
|
237
|
+
input: zod.ZodTypeAny;
|
|
238
|
+
output: zod.ZodTypeAny;
|
|
246
239
|
openapi: {
|
|
247
240
|
summary: string;
|
|
248
241
|
tags: string[];
|
|
@@ -275,14 +268,13 @@ declare const beliefsContracts: readonly [{
|
|
|
275
268
|
};
|
|
276
269
|
auth: {
|
|
277
270
|
scopes: string[];
|
|
278
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
271
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
279
272
|
};
|
|
280
273
|
convex: FunctionConvexTarget | undefined;
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
output: z.ZodTypeAny;
|
|
274
|
+
args: zod.ZodTypeAny;
|
|
275
|
+
returns: zod.ZodTypeAny;
|
|
276
|
+
input: zod.ZodTypeAny;
|
|
277
|
+
output: zod.ZodTypeAny;
|
|
286
278
|
openapi: {
|
|
287
279
|
summary: string;
|
|
288
280
|
tags: string[];
|
|
@@ -315,14 +307,13 @@ declare const beliefsContracts: readonly [{
|
|
|
315
307
|
};
|
|
316
308
|
auth: {
|
|
317
309
|
scopes: string[];
|
|
318
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
310
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
319
311
|
};
|
|
320
312
|
convex: FunctionConvexTarget | undefined;
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
output: z.ZodTypeAny;
|
|
313
|
+
args: zod.ZodTypeAny;
|
|
314
|
+
returns: zod.ZodTypeAny;
|
|
315
|
+
input: zod.ZodTypeAny;
|
|
316
|
+
output: zod.ZodTypeAny;
|
|
326
317
|
openapi: {
|
|
327
318
|
summary: string;
|
|
328
319
|
tags: string[];
|
|
@@ -355,14 +346,13 @@ declare const beliefsContracts: readonly [{
|
|
|
355
346
|
};
|
|
356
347
|
auth: {
|
|
357
348
|
scopes: string[];
|
|
358
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
349
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
359
350
|
};
|
|
360
351
|
convex: FunctionConvexTarget | undefined;
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
output: z.ZodTypeAny;
|
|
352
|
+
args: zod.ZodTypeAny;
|
|
353
|
+
returns: zod.ZodTypeAny;
|
|
354
|
+
input: zod.ZodTypeAny;
|
|
355
|
+
output: zod.ZodTypeAny;
|
|
366
356
|
openapi: {
|
|
367
357
|
summary: string;
|
|
368
358
|
tags: string[];
|
|
@@ -395,14 +385,13 @@ declare const beliefsContracts: readonly [{
|
|
|
395
385
|
};
|
|
396
386
|
auth: {
|
|
397
387
|
scopes: string[];
|
|
398
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
388
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
399
389
|
};
|
|
400
390
|
convex: FunctionConvexTarget | undefined;
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
output: z.ZodTypeAny;
|
|
391
|
+
args: zod.ZodTypeAny;
|
|
392
|
+
returns: zod.ZodTypeAny;
|
|
393
|
+
input: zod.ZodTypeAny;
|
|
394
|
+
output: zod.ZodTypeAny;
|
|
406
395
|
openapi: {
|
|
407
396
|
summary: string;
|
|
408
397
|
tags: string[];
|
|
@@ -435,14 +424,13 @@ declare const beliefsContracts: readonly [{
|
|
|
435
424
|
};
|
|
436
425
|
auth: {
|
|
437
426
|
scopes: string[];
|
|
438
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
427
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
439
428
|
};
|
|
440
429
|
convex: FunctionConvexTarget | undefined;
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
output: z.ZodTypeAny;
|
|
430
|
+
args: zod.ZodTypeAny;
|
|
431
|
+
returns: zod.ZodTypeAny;
|
|
432
|
+
input: zod.ZodTypeAny;
|
|
433
|
+
output: zod.ZodTypeAny;
|
|
446
434
|
openapi: {
|
|
447
435
|
summary: string;
|
|
448
436
|
tags: string[];
|
|
@@ -475,14 +463,13 @@ declare const beliefsContracts: readonly [{
|
|
|
475
463
|
};
|
|
476
464
|
auth: {
|
|
477
465
|
scopes: string[];
|
|
478
|
-
allowedPrincipalTypes: ("user" | "service" | "agent"
|
|
466
|
+
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
479
467
|
};
|
|
480
468
|
convex: FunctionConvexTarget | undefined;
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
output: z.ZodTypeAny;
|
|
469
|
+
args: zod.ZodTypeAny;
|
|
470
|
+
returns: zod.ZodTypeAny;
|
|
471
|
+
input: zod.ZodTypeAny;
|
|
472
|
+
output: zod.ZodTypeAny;
|
|
486
473
|
openapi: {
|
|
487
474
|
summary: string;
|
|
488
475
|
tags: string[];
|