@aotter/mantle 0.2.0-alpha.1 → 0.2.0-alpha.11
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/README.md +180 -45
- package/dist/auth/adapter.d.ts +32 -0
- package/dist/auth/adapter.js +261 -0
- package/dist/auth/admin.d.ts +3 -0
- package/dist/auth/admin.js +18 -0
- package/dist/auth/caller.d.ts +86 -0
- package/dist/auth/caller.js +128 -0
- package/dist/auth/{createAuthRoutes.js → consent.js} +26 -54
- package/dist/auth/hardening.d.ts +24 -0
- package/dist/auth/hardening.js +33 -0
- package/dist/auth/identity.d.ts +121 -0
- package/dist/auth/identity.js +192 -0
- package/dist/auth/oauth.d.ts +63 -0
- package/dist/auth/oauth.js +185 -0
- package/dist/auth/resource-seeds.js +8 -0
- package/dist/auth/route-http.js +33 -0
- package/dist/auth/routes.d.ts +32 -0
- package/dist/auth/routes.js +80 -0
- package/dist/build/compiler.d.ts +122 -0
- package/dist/build/compiler.js +3 -0
- package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +30 -43
- package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
- package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +39 -6
- package/dist/build/spec/domain/model/UserFields.d.ts +21 -0
- package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +4 -1
- package/dist/{spec → build/spec}/kernel/diagnostic.d.ts +1 -30
- package/dist/bun/assets.d.ts +2 -0
- package/dist/bun/assets.js +22 -0
- package/dist/domain/adminOrder.js +22 -0
- package/dist/domain/columns.js +42 -0
- package/dist/domain/describe/chunk-SGMRVDGE.js +1 -0
- package/dist/domain/describe/index.d.ts +58 -0
- package/dist/domain/describe/index.js +1 -0
- package/dist/domain/describe/target-hash.d.ts +8 -0
- package/dist/domain/describe/target-hash.js +1 -0
- package/dist/domain/describe/targets.d.ts +40 -0
- package/dist/domain/entry.js +19 -0
- package/dist/domain/generated-tools.js +18 -0
- package/dist/domain/generation.d.ts +16 -0
- package/dist/domain/generation.js +1 -0
- package/dist/domain/input.js +15 -0
- package/dist/domain/model.js +1 -0
- package/dist/domain/paging.js +213 -0
- package/dist/domain/recipes.js +22 -0
- package/dist/domain/userReferences.js +4 -0
- package/dist/domain/wireScalars.js +41 -0
- package/dist/infrastructure/adminEntries.js +156 -0
- package/dist/infrastructure/adminPaging.js +70 -0
- package/dist/infrastructure/artifacts.js +67 -0
- package/dist/infrastructure/authSchema.js +74 -0
- package/dist/infrastructure/bundle.js +159 -0
- package/dist/infrastructure/cli.js +111 -0
- package/dist/infrastructure/generate.d.ts +12 -0
- package/dist/infrastructure/generate.js +175 -0
- package/dist/infrastructure/generateAuth.d.ts +8 -0
- package/dist/infrastructure/generateAuth.js +66 -0
- package/dist/infrastructure/help.js +55 -0
- package/dist/infrastructure/init.js +50 -0
- package/dist/infrastructure/inputs.js +32 -0
- package/dist/infrastructure/mounts.js +22 -0
- package/dist/infrastructure/wrangler.js +103 -0
- package/dist/kernel/authorization.d.ts +4 -0
- package/dist/kernel/authorization.js +15 -0
- package/dist/kernel/binds.d.ts +60 -0
- package/dist/kernel/binds.js +39 -0
- package/dist/kernel/caller-identity.d.ts +21 -0
- package/dist/kernel/caller-identity.js +7 -0
- package/dist/kernel/caller-mode.d.ts +4 -0
- package/dist/kernel/caller-mode.js +14 -0
- package/dist/kernel/contract-error.d.ts +12 -0
- package/dist/kernel/contract-error.js +14 -0
- package/dist/kernel/contracts.d.ts +135 -0
- package/dist/kernel/contracts.js +56 -0
- package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
- package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +0 -9
- package/dist/kernel/dialect/common.d.ts +38 -0
- package/dist/kernel/dialect/common.js +3 -0
- package/dist/kernel/dialect/postgres.d.ts +16 -0
- package/dist/kernel/dialect/postgres.js +16 -0
- package/dist/kernel/dialect/sqlite.d.ts +20 -0
- package/dist/kernel/dialect/sqlite.js +29 -0
- package/dist/kernel/drain.d.ts +5 -0
- package/dist/kernel/drain.js +29 -0
- package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
- package/dist/kernel/driver/bun-sqlite.js +73 -0
- package/dist/kernel/driver/d1.d.ts +24 -0
- package/dist/kernel/driver/d1.js +21 -0
- package/dist/kernel/driver/postgres.d.ts +25 -0
- package/dist/kernel/driver/postgres.js +84 -0
- package/dist/kernel/driver/transaction-context.d.ts +10 -0
- package/dist/kernel/driver/transaction-context.js +28 -0
- package/dist/kernel/email.d.ts +28 -0
- package/dist/{auth/emailTemplates.js → kernel/email.js} +9 -2
- package/dist/kernel/host-access.d.ts +10 -0
- package/dist/kernel/host-access.js +64 -0
- package/dist/kernel/host-caller.d.ts +39 -0
- package/dist/kernel/host-caller.js +53 -0
- package/dist/kernel/json-body.d.ts +4 -0
- package/dist/kernel/json-body.js +42 -0
- package/dist/kernel/mcp-apps.d.ts +69 -0
- package/dist/kernel/mcp-apps.js +35 -0
- package/dist/kernel/mcp-call.d.ts +5 -0
- package/dist/kernel/mcp-call.js +24 -0
- package/dist/kernel/mcp-handler.js +347 -0
- package/dist/kernel/mcp.d.ts +110 -0
- package/dist/kernel/mcp.js +45 -0
- package/dist/kernel/media.d.ts +27 -0
- package/dist/kernel/media.js +198 -0
- package/dist/kernel/paging.d.ts +55 -0
- package/dist/kernel/paging.js +87 -0
- package/dist/kernel/publishing.d.ts +4 -0
- package/dist/kernel/publishing.js +15 -0
- package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
- package/dist/kernel/r2-media.js +71 -0
- package/dist/kernel/rest-dispatch.js +37 -0
- package/dist/kernel/rest-router.js +63 -0
- package/dist/kernel/rest.d.ts +58 -0
- package/dist/kernel/rest.js +38 -0
- package/dist/kernel/scalars.d.ts +6 -0
- package/dist/kernel/scalars.js +36 -0
- package/dist/kernel/search.js +4 -0
- package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
- package/dist/kernel/site-types.js +1 -0
- package/dist/kernel/site.d.ts +39 -0
- package/dist/kernel/site.js +30 -0
- package/dist/kernel/store.d.ts +175 -0
- package/dist/kernel/store.js +244 -0
- package/dist/kernel/surface-failure.d.ts +10 -0
- package/dist/kernel/surface-failure.js +29 -0
- package/dist/kernel/surface.d.ts +10 -0
- package/dist/kernel/surface.js +16 -0
- package/dist/kernel/sweep.d.ts +17 -0
- package/dist/kernel/sweep.js +26 -0
- package/dist/kernel/translations.d.ts +1 -0
- package/dist/kernel/translations.js +12 -0
- package/dist/kernel/user-caller.d.ts +31 -0
- package/dist/kernel/user-caller.js +61 -0
- package/dist/kernel/user-field-name.js +3 -0
- package/dist/kernel/user-fields.d.ts +35 -0
- package/dist/kernel/user-fields.js +71 -0
- package/dist/kernel/validation.d.ts +15 -0
- package/dist/kernel/validation.js +46 -0
- package/dist/kernel/web-gateway.js +66 -0
- package/dist/kernel/web-head.js +14 -0
- package/dist/kernel/web-index.js +39 -0
- package/dist/kernel/web-response.js +7 -0
- package/dist/kernel/web-serve.js +97 -0
- package/dist/kernel/web.d.ts +77 -0
- package/dist/kernel/web.js +43 -0
- package/dist/kernel/where.js +21 -0
- package/dist/testing/index.d.ts +1 -37
- package/dist/testing/index.js +1 -43
- package/dist/usecase/adminBindings.js +150 -0
- package/dist/usecase/adminClient.js +66 -0
- package/dist/usecase/adminDescriptors.js +100 -0
- package/dist/usecase/generate.js +160 -0
- package/dist/usecase/handlers.js +18 -0
- package/dist/usecase/mcp-media.js +16 -0
- package/dist/usecase/mcp.js +96 -0
- package/dist/usecase/paging.js +69 -0
- package/dist/usecase/publishing.js +59 -0
- package/dist/usecase/refusals.js +27 -0
- package/dist/usecase/rest.js +53 -0
- package/dist/usecase/search.js +7 -0
- package/dist/usecase/site.js +38 -0
- package/dist/usecase/stores.js +52 -0
- package/dist/usecase/tool-version.js +6 -0
- package/dist/usecase/translations.js +76 -0
- package/dist/usecase/ttl.js +20 -0
- package/dist/usecase/validation.js +221 -0
- package/dist/usecase/web.js +23 -0
- package/docs/examples/README.md +39 -16
- package/docs/examples/app-shell/README.md +121 -0
- package/docs/examples/app-shell/accept.mjs +91 -0
- package/docs/examples/app-shell/gitignore +7 -0
- package/docs/examples/app-shell/package.json +43 -0
- package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
- package/docs/examples/app-shell/smoke-kit.mjs +168 -0
- package/docs/examples/app-shell/src/auth.ts +58 -0
- package/docs/examples/app-shell/src/handlers.ts +5 -0
- package/docs/examples/app-shell/src/index.ts +4 -0
- package/docs/examples/app-shell/src/routes.ts +16 -0
- package/docs/examples/app-shell/src/schedule.ts +8 -0
- package/docs/examples/app-shell/src/service.ts +71 -0
- package/docs/examples/app-shell/src/sign-in.ts +41 -0
- package/docs/examples/app-shell/src/signup.ts +8 -0
- package/docs/examples/{reference-service → app-shell}/tsconfig.json +6 -2
- package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
- package/docs/examples/app-shell/wrangler.jsonc +62 -0
- package/docs/examples/club-events/README.md +65 -0
- package/docs/examples/club-events/manifests/club-events.yaml +247 -0
- package/docs/examples/club-events/smoke.mjs +127 -0
- package/docs/examples/club-events/src/handlers.ts +25 -0
- package/docs/examples/club-events/src/signup.ts +9 -0
- package/docs/examples/generated-web/README.md +78 -0
- package/docs/examples/generated-web/posts.yaml +38 -0
- package/docs/examples/generated-web/seed.sql +6 -0
- package/docs/examples/generated-web/src/worker.ts +43 -0
- package/docs/examples/generated-web/tsconfig.json +8 -0
- package/docs/examples/generated-web/wrangler.jsonc +8 -0
- package/docs/examples/purchasing/.dev.vars.example +6 -0
- package/docs/examples/purchasing/README.md +99 -0
- package/docs/examples/purchasing/manifests/purchasing.yaml +374 -0
- package/docs/examples/purchasing/seed.sql +4 -0
- package/docs/examples/purchasing/smoke.mjs +191 -0
- package/docs/examples/purchasing/src/admin.tsx +13 -0
- package/docs/examples/purchasing/src/handlers.ts +33 -0
- package/docs/examples/purchasing/src/notify.ts +29 -0
- package/docs/examples/purchasing/src/requests-page.ts +57 -0
- package/docs/examples/purchasing/src/routes.ts +53 -0
- package/docs/examples/purchasing/src/schedule.ts +31 -0
- package/docs/examples/purchasing/src/signup.ts +5 -0
- package/docs/examples/purchasing/src/supplier.ts +32 -0
- package/docs/examples/purchasing/wrangler.jsonc +69 -0
- package/docs/examples/recipes/README.md +60 -0
- package/docs/examples/recipes/manifests/recipes.yaml +75 -0
- package/docs/examples/recipes/smoke.mjs +102 -0
- package/docs/examples/recipes/src/media.ts +13 -0
- package/docs/examples/recipes/src/pages.ts +99 -0
- package/docs/examples/recipes/src/routes.ts +71 -0
- package/docs/examples/recipes/src/site-config.ts +12 -0
- package/docs/examples/recipes/wrangler.jsonc +74 -0
- package/docs/handbook/cloudflare/authentication.md +186 -108
- package/docs/handbook/cloudflare/chatgpt-sites.md +5 -112
- package/docs/handbook/cloudflare/deploy-and-operate.md +59 -87
- package/docs/handbook/cloudflare/media-r2.md +61 -82
- package/docs/handbook/cloudflare/service-entry.md +223 -119
- package/docs/handbook/concepts/authorization.md +10 -117
- package/docs/handbook/concepts/four-atoms.md +9 -92
- package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
- package/docs/handbook/concepts/mcp-and-agents.md +24 -116
- package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
- package/docs/handbook/concepts/runtime-and-adapters.md +15 -183
- package/docs/handbook/concepts/views.md +10 -109
- package/docs/handbook/examples/hub.md +2 -18
- package/docs/handbook/guides/adapter-guide.md +11 -0
- package/docs/handbook/guides/admin-ui.md +113 -136
- package/docs/handbook/guides/agent-setup.md +32 -27
- package/docs/handbook/guides/agent-workflow-acceptance.md +232 -0
- package/docs/handbook/guides/email.md +86 -0
- package/docs/handbook/guides/local-testing.md +40 -0
- package/docs/handbook/guides/mcp-apps.md +560 -0
- package/docs/handbook/guides/native-admin.md +566 -0
- package/docs/handbook/guides/native-execution.md +133 -0
- package/docs/handbook/guides/oauth.md +219 -0
- package/docs/handbook/guides/postgres-adapters.md +56 -0
- package/docs/handbook/guides/public-pages.md +93 -0
- package/docs/handbook/guides/size-and-startup.md +9 -0
- package/docs/handbook/guides/sql-patterns.md +266 -0
- package/docs/handbook/guides/typed-queries.md +210 -100
- package/docs/handbook/navigation.json +176 -30
- package/docs/handbook/reference/admin-descriptors.md +56 -0
- package/docs/handbook/reference/authorization.md +44 -52
- package/docs/handbook/reference/describe.md +56 -0
- package/docs/handbook/reference/diagnostics.md +19 -77
- package/docs/handbook/reference/features.md +45 -53
- package/docs/handbook/reference/manifest.md +6 -69
- package/docs/handbook/reference/procedure.md +11 -115
- package/docs/handbook/reference/schema.md +81 -172
- package/docs/handbook/reference/site-config.md +5 -65
- package/docs/handbook/reference/sql.md +64 -0
- package/docs/handbook/reference/surface.md +396 -93
- package/docs/handbook/reference/trigger.md +62 -89
- package/docs/handbook/reference/view.md +40 -158
- package/docs/handbook/releases/index.md +198 -12
- package/docs/handbook/start/agents.md +45 -0
- package/docs/handbook/start/overview.md +9 -56
- package/docs/handbook/start/project-and-cli.md +51 -131
- package/docs/handbook/start/quickstart-worker.md +38 -115
- package/docs/skills/develop/SKILL.md +77 -121
- package/docs/skills/integrate/SKILL.md +37 -84
- package/docs/skills/media-gc/SKILL.md +21 -8
- package/docs/skills/provision/SKILL.md +31 -87
- package/docs/skills/update/SKILL.md +20 -34
- package/docs/source/scripts/postgres-adapter.ts +101 -0
- package/docs/upgrade-0.1-to-0.2.md +26 -10
- package/package.json +120 -112
- package/skills/README.md +67 -0
- package/skills/mantle/SKILL.md +76 -0
- package/dist/admin/consent.d.ts +0 -17
- package/dist/admin/consent.d.ts.map +0 -1
- package/dist/admin/consent.js +0 -17
- package/dist/admin/consent.js.map +0 -1
- package/dist/admin/createAdminSurface.d.ts +0 -22
- package/dist/admin/createAdminSurface.d.ts.map +0 -1
- package/dist/admin/createAdminSurface.js +0 -589
- package/dist/admin/createAdminSurface.js.map +0 -1
- package/dist/admin/developerConsole.d.ts +0 -264
- package/dist/admin/developerConsole.d.ts.map +0 -1
- package/dist/admin/developerConsole.js +0 -136
- package/dist/admin/developerConsole.js.map +0 -1
- package/dist/admin/identity.d.ts +0 -62
- package/dist/admin/identity.d.ts.map +0 -1
- package/dist/admin/identity.js +0 -7
- package/dist/admin/identity.js.map +0 -1
- package/dist/admin/index.d.ts +0 -4
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -4
- package/dist/admin/index.js.map +0 -1
- package/dist/admin/procedureFlow.d.ts +0 -25
- package/dist/admin/procedureFlow.d.ts.map +0 -1
- package/dist/admin/procedureFlow.js +0 -154
- package/dist/admin/procedureFlow.js.map +0 -1
- package/dist/auth/ConsoleEmailSender.d.ts +0 -15
- package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
- package/dist/auth/ConsoleEmailSender.js +0 -19
- package/dist/auth/ConsoleEmailSender.js.map +0 -1
- package/dist/auth/appleClientSecret.d.ts +0 -75
- package/dist/auth/appleClientSecret.d.ts.map +0 -1
- package/dist/auth/appleClientSecret.js +0 -116
- package/dist/auth/appleClientSecret.js.map +0 -1
- package/dist/auth/buildAuth.d.ts +0 -4565
- package/dist/auth/buildAuth.d.ts.map +0 -1
- package/dist/auth/buildAuth.js +0 -307
- package/dist/auth/buildAuth.js.map +0 -1
- package/dist/auth/callerResolver.d.ts +0 -48
- package/dist/auth/callerResolver.d.ts.map +0 -1
- package/dist/auth/callerResolver.js +0 -49
- package/dist/auth/callerResolver.js.map +0 -1
- package/dist/auth/createAuthRoutes.d.ts +0 -22
- package/dist/auth/createAuthRoutes.d.ts.map +0 -1
- package/dist/auth/createAuthRoutes.js.map +0 -1
- package/dist/auth/createMantleAuth.d.ts +0 -3
- package/dist/auth/createMantleAuth.d.ts.map +0 -1
- package/dist/auth/createMantleAuth.js +0 -483
- package/dist/auth/createMantleAuth.js.map +0 -1
- package/dist/auth/db.d.ts +0 -17
- package/dist/auth/db.d.ts.map +0 -1
- package/dist/auth/db.js +0 -24
- package/dist/auth/db.js.map +0 -1
- package/dist/auth/emailTemplates.d.ts +0 -7
- package/dist/auth/emailTemplates.d.ts.map +0 -1
- package/dist/auth/emailTemplates.js.map +0 -1
- package/dist/auth/index.d.ts +0 -9
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -7
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/methods.d.ts +0 -717
- package/dist/auth/methods.d.ts.map +0 -1
- package/dist/auth/methods.js +0 -321
- package/dist/auth/methods.js.map +0 -1
- package/dist/auth/oauthTokens.d.ts +0 -24
- package/dist/auth/oauthTokens.d.ts.map +0 -1
- package/dist/auth/oauthTokens.js +0 -146
- package/dist/auth/oauthTokens.js.map +0 -1
- package/dist/auth/setupIncomplete.d.ts +0 -16
- package/dist/auth/setupIncomplete.d.ts.map +0 -1
- package/dist/auth/setupIncomplete.js +0 -50
- package/dist/auth/setupIncomplete.js.map +0 -1
- package/dist/auth/types.d.ts +0 -440
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -10
- package/dist/auth/types.js.map +0 -1
- package/dist/bun/index.d.ts +0 -65
- package/dist/bun/index.d.ts.map +0 -1
- package/dist/bun/index.js +0 -130
- package/dist/bun/index.js.map +0 -1
- package/dist/cli/emitModule.d.ts +0 -7
- package/dist/cli/emitModule.d.ts.map +0 -1
- package/dist/cli/emitModule.js +0 -127
- package/dist/cli/emitModule.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -8
- package/dist/cli/generate.d.ts.map +0 -1
- package/dist/cli/generate.js +0 -355
- package/dist/cli/generate.js.map +0 -1
- package/dist/cli/main.d.ts +0 -3
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -21
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/preset.d.ts +0 -18
- package/dist/cli/preset.d.ts.map +0 -1
- package/dist/cli/preset.js +0 -352
- package/dist/cli/preset.js.map +0 -1
- package/dist/cloudflare/index.d.ts +0 -21
- package/dist/cloudflare/index.d.ts.map +0 -1
- package/dist/cloudflare/index.js +0 -14
- package/dist/cloudflare/index.js.map +0 -1
- package/dist/cloudflare/r2Media.d.ts.map +0 -1
- package/dist/cloudflare/r2Media.js +0 -69
- package/dist/cloudflare/r2Media.js.map +0 -1
- package/dist/core/caller.d.ts +0 -35
- package/dist/core/caller.d.ts.map +0 -1
- package/dist/core/caller.js +0 -3
- package/dist/core/caller.js.map +0 -1
- package/dist/core/createMantle.d.ts +0 -22
- package/dist/core/createMantle.d.ts.map +0 -1
- package/dist/core/createMantle.js +0 -117
- package/dist/core/createMantle.js.map +0 -1
- package/dist/core/dialect.d.ts +0 -41
- package/dist/core/dialect.d.ts.map +0 -1
- package/dist/core/dialect.js +0 -7
- package/dist/core/dialect.js.map +0 -1
- package/dist/core/driver.d.ts +0 -17
- package/dist/core/driver.d.ts.map +0 -1
- package/dist/core/driver.js +0 -2
- package/dist/core/driver.js.map +0 -1
- package/dist/core/email.d.ts +0 -17
- package/dist/core/email.d.ts.map +0 -1
- package/dist/core/email.js +0 -2
- package/dist/core/email.js.map +0 -1
- package/dist/core/index.d.ts +0 -16
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -16
- package/dist/core/index.js.map +0 -1
- package/dist/core/invocation.d.ts +0 -66
- package/dist/core/invocation.d.ts.map +0 -1
- package/dist/core/invocation.js +0 -3
- package/dist/core/invocation.js.map +0 -1
- package/dist/core/runtime/auth.d.ts +0 -9
- package/dist/core/runtime/auth.d.ts.map +0 -1
- package/dist/core/runtime/auth.js +0 -39
- package/dist/core/runtime/auth.js.map +0 -1
- package/dist/core/runtime/createRuntime.d.ts +0 -23
- package/dist/core/runtime/createRuntime.d.ts.map +0 -1
- package/dist/core/runtime/createRuntime.js +0 -214
- package/dist/core/runtime/createRuntime.js.map +0 -1
- package/dist/core/runtime/verifyPlan.d.ts +0 -34
- package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
- package/dist/core/runtime/verifyPlan.js +0 -301
- package/dist/core/runtime/verifyPlan.js.map +0 -1
- package/dist/core/service.d.ts +0 -45
- package/dist/core/service.d.ts.map +0 -1
- package/dist/core/service.js +0 -2
- package/dist/core/service.js.map +0 -1
- package/dist/core/site.d.ts.map +0 -1
- package/dist/core/site.js +0 -2
- package/dist/core/site.js.map +0 -1
- package/dist/core/siteConfig.d.ts +0 -5
- package/dist/core/siteConfig.d.ts.map +0 -1
- package/dist/core/siteConfig.js +0 -24
- package/dist/core/siteConfig.js.map +0 -1
- package/dist/core/sql/allowlist.d.ts +0 -65
- package/dist/core/sql/allowlist.d.ts.map +0 -1
- package/dist/core/sql/allowlist.js +0 -705
- package/dist/core/sql/allowlist.js.map +0 -1
- package/dist/core/sql/ast.d.ts +0 -24
- package/dist/core/sql/ast.d.ts.map +0 -1
- package/dist/core/sql/ast.js +0 -32
- package/dist/core/sql/ast.js.map +0 -1
- package/dist/core/sql/compile.d.ts +0 -50
- package/dist/core/sql/compile.d.ts.map +0 -1
- package/dist/core/sql/compile.js +0 -48
- package/dist/core/sql/compile.js.map +0 -1
- package/dist/core/sql/policy.d.ts +0 -121
- package/dist/core/sql/policy.d.ts.map +0 -1
- package/dist/core/sql/policy.js +0 -379
- package/dist/core/sql/policy.js.map +0 -1
- package/dist/core/sql/positions.d.ts +0 -30
- package/dist/core/sql/positions.d.ts.map +0 -1
- package/dist/core/sql/positions.js +0 -22
- package/dist/core/sql/positions.js.map +0 -1
- package/dist/core/sql/run.d.ts +0 -76
- package/dist/core/sql/run.d.ts.map +0 -1
- package/dist/core/sql/run.js +0 -267
- package/dist/core/sql/run.js.map +0 -1
- package/dist/core/store/createStore.d.ts +0 -49
- package/dist/core/store/createStore.d.ts.map +0 -1
- package/dist/core/store/createStore.js +0 -227
- package/dist/core/store/createStore.js.map +0 -1
- package/dist/core/store/cursor.d.ts +0 -4
- package/dist/core/store/cursor.d.ts.map +0 -1
- package/dist/core/store/cursor.js +0 -22
- package/dist/core/store/cursor.js.map +0 -1
- package/dist/core/store/json.d.ts +0 -80
- package/dist/core/store/json.d.ts.map +0 -1
- package/dist/core/store/json.js +0 -342
- package/dist/core/store/json.js.map +0 -1
- package/dist/core/store.d.ts +0 -160
- package/dist/core/store.d.ts.map +0 -1
- package/dist/core/store.js +0 -2
- package/dist/core/store.js.map +0 -1
- package/dist/core/wire.d.ts +0 -20
- package/dist/core/wire.d.ts.map +0 -1
- package/dist/core/wire.js +0 -84
- package/dist/core/wire.js.map +0 -1
- package/dist/core/withCaller.d.ts +0 -16
- package/dist/core/withCaller.d.ts.map +0 -1
- package/dist/core/withCaller.js +0 -29
- package/dist/core/withCaller.js.map +0 -1
- package/dist/d1/adapter.d.ts +0 -12
- package/dist/d1/adapter.d.ts.map +0 -1
- package/dist/d1/adapter.js +0 -23
- package/dist/d1/adapter.js.map +0 -1
- package/dist/d1/codec.d.ts +0 -14
- package/dist/d1/codec.d.ts.map +0 -1
- package/dist/d1/codec.js +0 -136
- package/dist/d1/codec.js.map +0 -1
- package/dist/d1/compile/index.d.ts +0 -9
- package/dist/d1/compile/index.d.ts.map +0 -1
- package/dist/d1/compile/index.js +0 -9
- package/dist/d1/compile/index.js.map +0 -1
- package/dist/d1/dialect.d.ts +0 -4
- package/dist/d1/dialect.d.ts.map +0 -1
- package/dist/d1/dialect.js +0 -13
- package/dist/d1/dialect.js.map +0 -1
- package/dist/d1/executor.d.ts +0 -13
- package/dist/d1/executor.d.ts.map +0 -1
- package/dist/d1/executor.js +0 -91
- package/dist/d1/executor.js.map +0 -1
- package/dist/d1/index.d.ts +0 -6
- package/dist/d1/index.d.ts.map +0 -1
- package/dist/d1/index.js +0 -6
- package/dist/d1/index.js.map +0 -1
- package/dist/d1/lower.d.ts +0 -8
- package/dist/d1/lower.d.ts.map +0 -1
- package/dist/d1/lower.js +0 -167
- package/dist/d1/lower.js.map +0 -1
- package/dist/d1/media.d.ts +0 -5
- package/dist/d1/media.d.ts.map +0 -1
- package/dist/d1/media.js +0 -157
- package/dist/d1/media.js.map +0 -1
- package/dist/d1/migrations.d.ts +0 -12
- package/dist/d1/migrations.d.ts.map +0 -1
- package/dist/d1/migrations.js +0 -111
- package/dist/d1/migrations.js.map +0 -1
- package/dist/d1/print.d.ts +0 -28
- package/dist/d1/print.d.ts.map +0 -1
- package/dist/d1/print.js +0 -54
- package/dist/d1/print.js.map +0 -1
- package/dist/d1/site.d.ts +0 -17
- package/dist/d1/site.d.ts.map +0 -1
- package/dist/d1/site.js +0 -63
- package/dist/d1/site.js.map +0 -1
- package/dist/d1/storage.d.ts +0 -34
- package/dist/d1/storage.d.ts.map +0 -1
- package/dist/d1/storage.js +0 -288
- package/dist/d1/storage.js.map +0 -1
- package/dist/d1/tz.d.ts +0 -21
- package/dist/d1/tz.d.ts.map +0 -1
- package/dist/d1/tz.js +0 -54
- package/dist/d1/tz.js.map +0 -1
- package/dist/d1/validator.d.ts +0 -10
- package/dist/d1/validator.d.ts.map +0 -1
- package/dist/d1/validator.js +0 -33
- package/dist/d1/validator.js.map +0 -1
- package/dist/mcp/apps.d.ts +0 -43
- package/dist/mcp/apps.d.ts.map +0 -1
- package/dist/mcp/apps.js +0 -57
- package/dist/mcp/apps.js.map +0 -1
- package/dist/mcp/catalog.d.ts +0 -55
- package/dist/mcp/catalog.d.ts.map +0 -1
- package/dist/mcp/catalog.js +0 -81
- package/dist/mcp/catalog.js.map +0 -1
- package/dist/mcp/createMcpSurface.d.ts +0 -34
- package/dist/mcp/createMcpSurface.d.ts.map +0 -1
- package/dist/mcp/createMcpSurface.js +0 -150
- package/dist/mcp/createMcpSurface.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -4
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -4
- package/dist/mcp/index.js.map +0 -1
- package/dist/postgres/adapter.d.ts +0 -20
- package/dist/postgres/adapter.d.ts.map +0 -1
- package/dist/postgres/adapter.js +0 -44
- package/dist/postgres/adapter.js.map +0 -1
- package/dist/postgres/codec.d.ts +0 -13
- package/dist/postgres/codec.d.ts.map +0 -1
- package/dist/postgres/codec.js +0 -110
- package/dist/postgres/codec.js.map +0 -1
- package/dist/postgres/compile/index.d.ts +0 -9
- package/dist/postgres/compile/index.d.ts.map +0 -1
- package/dist/postgres/compile/index.js +0 -9
- package/dist/postgres/compile/index.js.map +0 -1
- package/dist/postgres/driver.d.ts +0 -92
- package/dist/postgres/driver.d.ts.map +0 -1
- package/dist/postgres/driver.js +0 -110
- package/dist/postgres/driver.js.map +0 -1
- package/dist/postgres/executor.d.ts +0 -20
- package/dist/postgres/executor.d.ts.map +0 -1
- package/dist/postgres/executor.js +0 -69
- package/dist/postgres/executor.js.map +0 -1
- package/dist/postgres/index.d.ts +0 -7
- package/dist/postgres/index.d.ts.map +0 -1
- package/dist/postgres/index.js +0 -7
- package/dist/postgres/index.js.map +0 -1
- package/dist/postgres/lower.d.ts +0 -6
- package/dist/postgres/lower.d.ts.map +0 -1
- package/dist/postgres/lower.js +0 -157
- package/dist/postgres/lower.js.map +0 -1
- package/dist/postgres/print.d.ts +0 -11
- package/dist/postgres/print.d.ts.map +0 -1
- package/dist/postgres/print.js +0 -121
- package/dist/postgres/print.js.map +0 -1
- package/dist/postgres/storage.d.ts +0 -19
- package/dist/postgres/storage.d.ts.map +0 -1
- package/dist/postgres/storage.js +0 -201
- package/dist/postgres/storage.js.map +0 -1
- package/dist/postgres/textRows.d.ts +0 -10
- package/dist/postgres/textRows.d.ts.map +0 -1
- package/dist/postgres/textRows.js +0 -44
- package/dist/postgres/textRows.js.map +0 -1
- package/dist/postgres/validator.d.ts +0 -12
- package/dist/postgres/validator.d.ts.map +0 -1
- package/dist/postgres/validator.js +0 -46
- package/dist/postgres/validator.js.map +0 -1
- package/dist/spec/domain/index.d.ts +0 -3
- package/dist/spec/domain/index.d.ts.map +0 -1
- package/dist/spec/domain/index.js +0 -3
- package/dist/spec/domain/index.js.map +0 -1
- package/dist/spec/domain/model/ContentState.d.ts +0 -8
- package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
- package/dist/spec/domain/model/ContentState.js +0 -7
- package/dist/spec/domain/model/ContentState.js.map +0 -1
- package/dist/spec/domain/model/Entry.d.ts +0 -29
- package/dist/spec/domain/model/Entry.d.ts.map +0 -1
- package/dist/spec/domain/model/Entry.js +0 -16
- package/dist/spec/domain/model/Entry.js.map +0 -1
- package/dist/spec/domain/model/Locale.d.ts +0 -30
- package/dist/spec/domain/model/Locale.d.ts.map +0 -1
- package/dist/spec/domain/model/Locale.js +0 -33
- package/dist/spec/domain/model/Locale.js.map +0 -1
- package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
- package/dist/spec/domain/model/ManifestGrammar.js +0 -149
- package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
- package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
- package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
- package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
- package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
- package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
- package/dist/spec/domain/model/RuntimePlan.js +0 -4
- package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
- package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
- package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
- package/dist/spec/domain/model/SiteConfig.js +0 -13
- package/dist/spec/domain/model/SiteConfig.js.map +0 -1
- package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
- package/dist/spec/domain/model/SqlIr.js +0 -95
- package/dist/spec/domain/model/SqlIr.js.map +0 -1
- package/dist/spec/domain/model/index.d.ts +0 -14
- package/dist/spec/domain/model/index.d.ts.map +0 -1
- package/dist/spec/domain/model/index.js +0 -14
- package/dist/spec/domain/model/index.js.map +0 -1
- package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
- package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
- package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
- package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
- package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/EntryDataValidator.js +0 -88
- package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
- package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
- package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
- package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
- package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
- package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
- package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
- package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
- package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
- package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
- package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestLinker.js +0 -92
- package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
- package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
- package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestParser.js +0 -203
- package/dist/spec/domain/service/ManifestParser.js.map +0 -1
- package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
- package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestPartition.js +0 -19
- package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
- package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
- package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
- package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
- package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
- package/dist/spec/domain/service/McpToolNaming.js +0 -50
- package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
- package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
- package/dist/spec/domain/service/PlanFingerprint.js +0 -14
- package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
- package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
- package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
- package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
- package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
- package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
- package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
- package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlClassify.js +0 -42
- package/dist/spec/domain/service/SqlClassify.js.map +0 -1
- package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
- package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlRefusal.js +0 -20
- package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
- package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
- package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlTypes.js +0 -110
- package/dist/spec/domain/service/SqlTypes.js.map +0 -1
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
- package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
- package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
- package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
- package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
- package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
- package/dist/spec/domain/service/index.d.ts +0 -24
- package/dist/spec/domain/service/index.d.ts.map +0 -1
- package/dist/spec/domain/service/index.js +0 -24
- package/dist/spec/domain/service/index.js.map +0 -1
- package/dist/spec/index.d.ts +0 -10
- package/dist/spec/index.d.ts.map +0 -1
- package/dist/spec/index.js +0 -12
- package/dist/spec/index.js.map +0 -1
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
- package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
- package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
- package/dist/spec/infrastructure/index.d.ts +0 -2
- package/dist/spec/infrastructure/index.d.ts.map +0 -1
- package/dist/spec/infrastructure/index.js +0 -2
- package/dist/spec/infrastructure/index.js.map +0 -1
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
- package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
- package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
- package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
- package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
- package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
- package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/compileSql.js +0 -92
- package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
- package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
- package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
- package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
- package/dist/spec/infrastructure/sql/index.d.ts +0 -4
- package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/index.js +0 -4
- package/dist/spec/infrastructure/sql/index.js.map +0 -1
- package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
- package/dist/spec/kernel/diagnostic.js +0 -296
- package/dist/spec/kernel/diagnostic.js.map +0 -1
- package/dist/spec/kernel/index.d.ts +0 -8
- package/dist/spec/kernel/index.d.ts.map +0 -1
- package/dist/spec/kernel/index.js +0 -8
- package/dist/spec/kernel/index.js.map +0 -1
- package/dist/spec/usecase/EmitTypes.d.ts +0 -22
- package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
- package/dist/spec/usecase/EmitTypes.js +0 -182
- package/dist/spec/usecase/EmitTypes.js.map +0 -1
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
- package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
- package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
- package/dist/spec/usecase/dto/index.d.ts +0 -3
- package/dist/spec/usecase/dto/index.d.ts.map +0 -1
- package/dist/spec/usecase/dto/index.js +0 -3
- package/dist/spec/usecase/dto/index.js.map +0 -1
- package/dist/spec/usecase/index.d.ts +0 -10
- package/dist/spec/usecase/index.d.ts.map +0 -1
- package/dist/spec/usecase/index.js +0 -10
- package/dist/spec/usecase/index.js.map +0 -1
- package/dist/testing/cases/before-hook.d.ts +0 -4
- package/dist/testing/cases/before-hook.d.ts.map +0 -1
- package/dist/testing/cases/before-hook.js +0 -71
- package/dist/testing/cases/before-hook.js.map +0 -1
- package/dist/testing/cases/corpus.d.ts +0 -12
- package/dist/testing/cases/corpus.d.ts.map +0 -1
- package/dist/testing/cases/corpus.js +0 -91
- package/dist/testing/cases/corpus.js.map +0 -1
- package/dist/testing/cases/policy.d.ts +0 -74
- package/dist/testing/cases/policy.d.ts.map +0 -1
- package/dist/testing/cases/policy.js +0 -142
- package/dist/testing/cases/policy.js.map +0 -1
- package/dist/testing/cases/printer.d.ts +0 -4
- package/dist/testing/cases/printer.d.ts.map +0 -1
- package/dist/testing/cases/printer.js +0 -32
- package/dist/testing/cases/printer.js.map +0 -1
- package/dist/testing/cases/report-view.d.ts +0 -5
- package/dist/testing/cases/report-view.d.ts.map +0 -1
- package/dist/testing/cases/report-view.js +0 -33
- package/dist/testing/cases/report-view.js.map +0 -1
- package/dist/testing/cases/requisition.d.ts +0 -4
- package/dist/testing/cases/requisition.d.ts.map +0 -1
- package/dist/testing/cases/requisition.js +0 -38
- package/dist/testing/cases/requisition.js.map +0 -1
- package/dist/testing/cases/search-places.d.ts +0 -4
- package/dist/testing/cases/search-places.d.ts.map +0 -1
- package/dist/testing/cases/search-places.js +0 -60
- package/dist/testing/cases/search-places.js.map +0 -1
- package/dist/testing/cases/stock.d.ts +0 -4
- package/dist/testing/cases/stock.d.ts.map +0 -1
- package/dist/testing/cases/stock.js +0 -35
- package/dist/testing/cases/stock.js.map +0 -1
- package/dist/testing/cases/store.d.ts +0 -4
- package/dist/testing/cases/store.d.ts.map +0 -1
- package/dist/testing/cases/store.js +0 -100
- package/dist/testing/cases/store.js.map +0 -1
- package/dist/testing/harness.d.ts +0 -94
- package/dist/testing/harness.d.ts.map +0 -1
- package/dist/testing/harness.js +0 -168
- package/dist/testing/harness.js.map +0 -1
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js.map +0 -1
- package/dist/testing/report.d.ts +0 -15
- package/dist/testing/report.d.ts.map +0 -1
- package/dist/testing/report.js +0 -22
- package/dist/testing/report.js.map +0 -1
- package/dist/web/createRestSurface.d.ts +0 -7
- package/dist/web/createRestSurface.d.ts.map +0 -1
- package/dist/web/createRestSurface.js +0 -39
- package/dist/web/createRestSurface.js.map +0 -1
- package/dist/web/index.d.ts +0 -2
- package/dist/web/index.d.ts.map +0 -1
- package/dist/web/index.js +0 -2
- package/dist/web/index.js.map +0 -1
- package/docs/adr/0001-four-atom-manifest-model.md +0 -440
- package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
- package/docs/adr/0007-ai-as-primary-author.md +0 -473
- package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
- package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
- package/docs/adr/0010-locale-and-translates.md +0 -453
- package/docs/adr/0011-adapter-port-spec.md +0 -281
- package/docs/adr/0012-views-as-public-rest.md +0 -161
- package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
- package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -919
- package/docs/adr/0016-site-semantic-layer.md +0 -70
- package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
- package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
- package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
- package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
- package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
- package/docs/adr/0022-caller-observed-version-occ.md +0 -212
- package/docs/adr/0023-port-failure-contract.md +0 -69
- package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
- package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
- package/docs/adr/0026-progressive-generate.md +0 -36
- package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
- package/docs/adr/0028-schema-ttl-expiry.md +0 -33
- package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
- package/docs/adr/0030-store.md +0 -40
- package/docs/adr/0031-host-cloud-core-contract.md +0 -25
- package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -361
- package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
- package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
- package/docs/adr/0035-sql-dialects.md +0 -154
- package/docs/adr/0036-host-and-dialect.md +0 -65
- package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -124
- package/docs/adr/0038-bun-native-host.md +0 -63
- package/docs/adr/README.md +0 -96
- package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
- package/docs/adr/adr-lite-808-route-readiness.md +0 -47
- package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
- package/docs/adr/adr-lite-812-native-parity.md +0 -150
- package/docs/adr/adr-lite-823-home-statistics.md +0 -64
- package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
- package/docs/adr/adr-lite-845-frontend-client.md +0 -38
- package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
- package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
- package/docs/examples/commerce-inventory.md +0 -481
- package/docs/examples/commerce.md +0 -254
- package/docs/examples/guarded-api.md +0 -238
- package/docs/examples/intake-hooks.md +0 -237
- package/docs/examples/intake.md +0 -127
- package/docs/examples/legal-documents.md +0 -218
- package/docs/examples/procurement.md +0 -215
- package/docs/examples/publication.md +0 -211
- package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
- package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
- package/docs/examples/reference-service/README.md +0 -33
- package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
- package/docs/examples/reference-service/manifests/orders.yaml +0 -120
- package/docs/examples/reference-service/mantle.config.json +0 -1
- package/docs/examples/reference-service/package.json +0 -27
- package/docs/examples/reference-service/smoke.mjs +0 -156
- package/docs/examples/reference-service/src/handlers.ts +0 -36
- package/docs/examples/reference-service/src/index.ts +0 -33
- package/docs/examples/reference-service/src/service.ts +0 -78
- package/docs/examples/reference-service/wrangler.jsonc +0 -26
- package/docs/examples/reservation.md +0 -142
- package/docs/skills/develop/mcp-app.md +0 -79
- /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
/**
|
|
3
|
-
* Thin boundary around Zod's official JSON Schema importer. Mantle keeps
|
|
4
|
-
* only its legacy `nullable` normalization, an input-depth guard and the
|
|
5
|
-
* length-before-pattern order here; JSON Schema semantics belong to Zod.
|
|
6
|
-
*/
|
|
7
|
-
export function jsonSchemaToZod(schema) {
|
|
8
|
-
let imported;
|
|
9
|
-
try {
|
|
10
|
-
imported = lengthBeforePattern(z.fromJSONSchema(normalizeNullable(schema)));
|
|
11
|
-
}
|
|
12
|
-
catch (error) {
|
|
13
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
14
|
-
imported = z.never({ error: `Invalid JSON Schema: ${message}` });
|
|
15
|
-
}
|
|
16
|
-
return jsonValueWithinLimits().pipe(imported);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* `schema.safeParse(value)`, where anything the validator throws other than a Zod issue (a stack overflow on a schema nobody
|
|
20
|
-
* checked) is a failed parse: a value the schema cannot check is not accepted, and the caller reports it as it reports any.
|
|
21
|
-
*/
|
|
22
|
-
export function safeParseJson(schema, value) {
|
|
23
|
-
try {
|
|
24
|
-
return schema.safeParse(value);
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
const message = `the schema cannot check this value: ${error instanceof Error ? error.message : String(error)}`;
|
|
28
|
-
return { success: false, error: new z.ZodError([{ code: "custom", path: [], message, input: value }]) };
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Zod checks a string's `maxLength` before its `pattern` but runs the pattern even when the length failed. The CLI bounds a
|
|
33
|
-
* pattern's backtracking only up to the declared maxLength (branches × maxLength^e), so a longer string must stop at the length check:
|
|
34
|
-
* every string schema's maxLength check aborts the checks after it.
|
|
35
|
-
*/
|
|
36
|
-
function lengthBeforePattern(root) {
|
|
37
|
-
const seen = new WeakSet();
|
|
38
|
-
const visit = (node) => {
|
|
39
|
-
if (!node || typeof node !== "object" || seen.has(node))
|
|
40
|
-
return;
|
|
41
|
-
seen.add(node);
|
|
42
|
-
const def = node._zod?.def;
|
|
43
|
-
if (!def) {
|
|
44
|
-
for (const child of Array.isArray(node) ? node : Object.values(node))
|
|
45
|
-
visit(child);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (def["type"] === "string") {
|
|
49
|
-
for (const check of (def["checks"] ?? [])) {
|
|
50
|
-
if (check._zod.def.check === "max_length")
|
|
51
|
-
check._zod.def.abort = true;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
for (const [key, child] of Object.entries(def)) {
|
|
55
|
-
if (key === "checks")
|
|
56
|
-
continue;
|
|
57
|
-
visit(key === "getter" && typeof child === "function" ? child() : child);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
visit(root);
|
|
61
|
-
return root;
|
|
62
|
-
}
|
|
63
|
-
function normalizeNullable(schema) {
|
|
64
|
-
const transform = (node) => {
|
|
65
|
-
const out = { ...node };
|
|
66
|
-
if (node.format === "url")
|
|
67
|
-
out["format"] = "uri";
|
|
68
|
-
if (node.properties) {
|
|
69
|
-
out["properties"] = Object.fromEntries(Object.entries(node.properties).map(([name, child]) => [name, transform(child)]));
|
|
70
|
-
}
|
|
71
|
-
if (node.$defs) {
|
|
72
|
-
out["$defs"] = Object.fromEntries(Object.entries(node.$defs).map(([name, child]) => [name, transform(child)]));
|
|
73
|
-
}
|
|
74
|
-
if (node.items)
|
|
75
|
-
out["items"] = transform(node.items);
|
|
76
|
-
if (typeof node.additionalProperties === "object") {
|
|
77
|
-
out["additionalProperties"] = transform(node.additionalProperties);
|
|
78
|
-
}
|
|
79
|
-
if (node.oneOf)
|
|
80
|
-
out["oneOf"] = node.oneOf.map(transform);
|
|
81
|
-
delete out["nullable"];
|
|
82
|
-
if (node.nullable === true) {
|
|
83
|
-
if (typeof node.type === "string")
|
|
84
|
-
out["type"] = [node.type, "null"];
|
|
85
|
-
else if (Array.isArray(node.type) && !node.type.includes("null")) {
|
|
86
|
-
out["type"] = [...node.type, "null"];
|
|
87
|
-
}
|
|
88
|
-
else if (node.type === undefined) {
|
|
89
|
-
const { $defs, ...base } = out;
|
|
90
|
-
const definitions = $defs;
|
|
91
|
-
return {
|
|
92
|
-
...(definitions ? { $defs: definitions } : {}),
|
|
93
|
-
oneOf: [base, { type: "null" }],
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return out;
|
|
98
|
-
};
|
|
99
|
-
return transform(schema);
|
|
100
|
-
}
|
|
101
|
-
function jsonValueWithinLimits() {
|
|
102
|
-
return z.unknown().superRefine((value, ctx) => {
|
|
103
|
-
const stack = [{ value, depth: 0 }];
|
|
104
|
-
const active = new WeakSet();
|
|
105
|
-
let nodes = 0;
|
|
106
|
-
while (stack.length > 0) {
|
|
107
|
-
const current = stack.pop();
|
|
108
|
-
if (current.value === null || typeof current.value !== "object")
|
|
109
|
-
continue;
|
|
110
|
-
if (current.exit) {
|
|
111
|
-
active.delete(current.value);
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if (active.has(current.value)) {
|
|
115
|
-
ctx.addIssue({ code: "custom", message: "value must not contain object cycles" });
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
active.add(current.value);
|
|
119
|
-
if (current.depth > 100 || ++nodes > 10_000) {
|
|
120
|
-
ctx.addIssue({ code: "custom", message: "value exceeds JSON Schema validation limits" });
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
stack.push({ ...current, exit: true });
|
|
124
|
-
for (const child of Array.isArray(current.value)
|
|
125
|
-
? current.value
|
|
126
|
-
: Object.values(current.value)) {
|
|
127
|
-
stack.push({ value: child, depth: current.depth + 1 });
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Convert a zod issue path (`PropertyKey[]`) to an RFC 6901 JSON
|
|
134
|
-
* Pointer string. Empty path → `""`; `["foo", 0, "bar"]` → `"/foo/0/bar"`;
|
|
135
|
-
* field names containing `/` or `~` are escaped per the spec
|
|
136
|
-
* (`~` → `~0`, `/` → `~1`).
|
|
137
|
-
*/
|
|
138
|
-
export function zodPathToJsonPointer(path) {
|
|
139
|
-
if (path.length === 0)
|
|
140
|
-
return "";
|
|
141
|
-
return ("/" +
|
|
142
|
-
path
|
|
143
|
-
.map((seg) => String(seg).replace(/~/g, "~0").replace(/\//g, "~1"))
|
|
144
|
-
.join("/"));
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Translate a zod `safeParse` failure to the (instancePath, message)
|
|
148
|
-
* shape the dispatcher's diagnostic emitter expects.
|
|
149
|
-
*/
|
|
150
|
-
export function firstZodIssueAsJsonPointer(err) {
|
|
151
|
-
const issue = err.issues[0];
|
|
152
|
-
if (!issue)
|
|
153
|
-
return { instancePath: "", message: "validation failed" };
|
|
154
|
-
return { instancePath: zodPathToJsonPointer(issue.path), message: issue.message };
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=JsonSchemaToZod.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"JsonSchemaToZod.js","sourceRoot":"","sources":["../../../../src/spec/domain/service/JsonSchemaToZod.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import type { ContentState } from "../model/ContentState.js";
|
|
2
|
-
import type { LifecycleMode } from "../model/ManifestGrammar.js";
|
|
3
|
-
/**
|
|
4
|
-
* Per-Schema lifecycle state machine. Each Schema declares
|
|
5
|
-
* `spec.lifecycle: 'publishing' | 'operational'` (default `'publishing'`);
|
|
6
|
-
* this module translates that into allowed state transitions.
|
|
7
|
-
*
|
|
8
|
-
* Pure functions — no env, no DB. Feeds the dispatcher's
|
|
9
|
-
* requestPublish branching and runtime state-transition validation.
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* Structural shape of a Schema manifest as far as the state machine
|
|
13
|
-
* cares — just `spec.lifecycle?`. The full `SchemaManifest` type
|
|
14
|
-
* lives in `domain/model/ManifestGrammar.ts` and conforms to this
|
|
15
|
-
* structurally, so callers can pass either one.
|
|
16
|
-
*/
|
|
17
|
-
export interface LifecycleSchemaLike {
|
|
18
|
-
readonly spec: {
|
|
19
|
-
readonly lifecycle?: LifecycleMode;
|
|
20
|
-
/** Present when publishing an entry requires a published parent (ADR-0010). */
|
|
21
|
-
readonly translates?: unknown;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export declare function resolveLifecycle(schema: LifecycleSchemaLike | undefined): LifecycleMode;
|
|
25
|
-
/** Publishing Schemas keep drafts, protect published entries and gate public reads. */
|
|
26
|
-
export declare function isPublishing(schema: LifecycleSchemaLike | undefined): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* One row mutation as the lifecycle sees it. `to` is an explicitly
|
|
29
|
-
* requested status (publish, unpublish, archive, restore); `data` says
|
|
30
|
-
* whether the mutation also changes field values.
|
|
31
|
-
*/
|
|
32
|
-
export type LifecycleWrite = {
|
|
33
|
-
readonly op: "insert";
|
|
34
|
-
} | {
|
|
35
|
-
readonly op: "update";
|
|
36
|
-
readonly from: ContentState;
|
|
37
|
-
readonly to?: ContentState;
|
|
38
|
-
readonly data: boolean;
|
|
39
|
-
} | {
|
|
40
|
-
readonly op: "delete";
|
|
41
|
-
readonly from: ContentState;
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* `validate` is how much of the Schema the resulting data must satisfy:
|
|
45
|
-
* drafts save incomplete (`partial`), live entries must be complete
|
|
46
|
-
* (`full`), and a pure status change that is not a publish checks nothing.
|
|
47
|
-
*/
|
|
48
|
-
export type LifecycleDecision = {
|
|
49
|
-
readonly allowed: true;
|
|
50
|
-
readonly status: ContentState;
|
|
51
|
-
readonly validate: "partial" | "full" | "none";
|
|
52
|
-
/** Publishing a translation requires its parent to be published first. */
|
|
53
|
-
readonly publishedParent: boolean;
|
|
54
|
-
} | {
|
|
55
|
-
readonly allowed: false;
|
|
56
|
-
readonly reason: "transition" | "not-editable" | "published-protected";
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* The single lifecycle rule set for every row write (ADR-0032 decision 1):
|
|
60
|
-
* initial status, editability, transitions and published protection.
|
|
61
|
-
* Pure; the caller performs the reads it asks for (`publishedParent`).
|
|
62
|
-
*/
|
|
63
|
-
export declare function decideLifecycleWrite(schema: LifecycleSchemaLike | undefined, write: LifecycleWrite): LifecycleDecision;
|
|
64
|
-
/**
|
|
65
|
-
* Allowed status transitions per lifecycle. Used by the MCP handler
|
|
66
|
-
* and admin endpoints to gate operations. Unknown transitions return
|
|
67
|
-
* `false` and the caller should reject with `CONFLICT`.
|
|
68
|
-
*
|
|
69
|
-
* Publishing lifecycle:
|
|
70
|
-
* draft → published, draft → archived
|
|
71
|
-
* published → archived, published → draft (unpublish-as-edit)
|
|
72
|
-
* archived → draft
|
|
73
|
-
*/
|
|
74
|
-
export declare function canTransition(schema: LifecycleSchemaLike | undefined, from: ContentState, to: ContentState): boolean;
|
|
75
|
-
//# sourceMappingURL=LifecycleStateMachine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LifecycleStateMachine.d.ts","sourceRoot":"","sources":["../../../../src/spec/domain/service/LifecycleStateMachine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;QACnC,+EAA+E;QAC/E,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;CACH;AAID,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,aAAa,CAEvF;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1G;IAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/C,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC,GACD;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,qBAAqB,CAAA;CAAE,CAAC;AAExG;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,KAAK,EAAE,cAAc,GACpB,iBAAiB,CA6BnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,YAAY,GACf,OAAO,CAGT"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
const DEFAULT_LIFECYCLE = "publishing";
|
|
2
|
-
export function resolveLifecycle(schema) {
|
|
3
|
-
return schema?.spec.lifecycle ?? DEFAULT_LIFECYCLE;
|
|
4
|
-
}
|
|
5
|
-
/** Publishing Schemas keep drafts, protect published entries and gate public reads. */
|
|
6
|
-
export function isPublishing(schema) {
|
|
7
|
-
return resolveLifecycle(schema) === "publishing";
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* The single lifecycle rule set for every row write (ADR-0032 decision 1):
|
|
11
|
-
* initial status, editability, transitions and published protection.
|
|
12
|
-
* Pure; the caller performs the reads it asks for (`publishedParent`).
|
|
13
|
-
*/
|
|
14
|
-
export function decideLifecycleWrite(schema, write) {
|
|
15
|
-
const publishing = isPublishing(schema);
|
|
16
|
-
if (write.op === "insert") {
|
|
17
|
-
// Operational records have no publish step; they are live the moment they exist.
|
|
18
|
-
return publishing
|
|
19
|
-
? { allowed: true, status: "draft", validate: "partial", publishedParent: false }
|
|
20
|
-
: { allowed: true, status: "published", validate: "full", publishedParent: false };
|
|
21
|
-
}
|
|
22
|
-
if (write.op === "delete") {
|
|
23
|
-
return publishing && write.from === "published"
|
|
24
|
-
? { allowed: false, reason: "published-protected" }
|
|
25
|
-
: { allowed: true, status: write.from, validate: "none", publishedParent: false };
|
|
26
|
-
}
|
|
27
|
-
// An explicit status must be a legal transition, even when it equals the current one.
|
|
28
|
-
if (write.to !== undefined && !canTransition(schema, write.from, write.to)) {
|
|
29
|
-
return { allowed: false, reason: "transition" };
|
|
30
|
-
}
|
|
31
|
-
// Only drafts are editable on publishing Schemas; operational records edit in place.
|
|
32
|
-
if (write.data && publishing && write.from !== "draft") {
|
|
33
|
-
return { allowed: false, reason: "not-editable" };
|
|
34
|
-
}
|
|
35
|
-
const status = write.to ?? write.from;
|
|
36
|
-
const publish = write.to === "published";
|
|
37
|
-
return {
|
|
38
|
-
allowed: true,
|
|
39
|
-
status,
|
|
40
|
-
validate: publish || (write.data && !publishing) ? "full" : write.data ? "partial" : "none",
|
|
41
|
-
publishedParent: publish && schema?.spec.translates !== undefined,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Allowed status transitions per lifecycle. Used by the MCP handler
|
|
46
|
-
* and admin endpoints to gate operations. Unknown transitions return
|
|
47
|
-
* `false` and the caller should reject with `CONFLICT`.
|
|
48
|
-
*
|
|
49
|
-
* Publishing lifecycle:
|
|
50
|
-
* draft → published, draft → archived
|
|
51
|
-
* published → archived, published → draft (unpublish-as-edit)
|
|
52
|
-
* archived → draft
|
|
53
|
-
*/
|
|
54
|
-
export function canTransition(schema, from, to) {
|
|
55
|
-
const allowed = transitionsFor(resolveLifecycle(schema));
|
|
56
|
-
return allowed[from]?.has(to) ?? false;
|
|
57
|
-
}
|
|
58
|
-
const PUBLISHING_TRANSITIONS = {
|
|
59
|
-
draft: new Set(["published", "archived"]),
|
|
60
|
-
published: new Set(["archived", "draft"]),
|
|
61
|
-
archived: new Set(["draft"]),
|
|
62
|
-
};
|
|
63
|
-
/** `lifecycle: operational` — orders, snapshots, audit
|
|
64
|
-
* rows). No content workflow: entries are live on creation, editable
|
|
65
|
-
* in place, and never publish/unpublish/archive. */
|
|
66
|
-
const OPERATIONAL_TRANSITIONS = {
|
|
67
|
-
draft: new Set(),
|
|
68
|
-
published: new Set(),
|
|
69
|
-
archived: new Set(),
|
|
70
|
-
};
|
|
71
|
-
function transitionsFor(mode) {
|
|
72
|
-
if (mode === "operational")
|
|
73
|
-
return OPERATIONAL_TRANSITIONS;
|
|
74
|
-
return PUBLISHING_TRANSITIONS;
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=LifecycleStateMachine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LifecycleStateMachine.js","sourceRoot":"","sources":["../../../../src/spec/domain/service/LifecycleStateMachine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Accepts `zh-TW`, `zh-tw`, `zh_TW`, `zhTW`, `ZH-tw`, `en` etc. Returns
|
|
3
|
-
* canonical BCP 47 form (`zh-TW`, `en`). Throws `InvalidLocaleError` for
|
|
4
|
-
* anything that doesn't shape up.
|
|
5
|
-
*/
|
|
6
|
-
export declare function toCanonicalLocale(input: string): string;
|
|
7
|
-
/** Canonical → URL form (always lowercase). */
|
|
8
|
-
export declare function toUrlLocale(canonical: string): string;
|
|
9
|
-
/**
|
|
10
|
-
* Best-effort canonicalization. Unlike `toCanonicalLocale`, never
|
|
11
|
-
* throws — returns the original input unchanged when it's malformed.
|
|
12
|
-
* Used for query-side comparisons where a malformed filter value
|
|
13
|
-
* should simply match nothing rather than error.
|
|
14
|
-
*/
|
|
15
|
-
export declare function safeCanonicalLocale(input: string): string;
|
|
16
|
-
/**
|
|
17
|
-
* Canonicalize an array of locale strings, separating valid from
|
|
18
|
-
* invalid in one pass. The caller decides whether to reject (write
|
|
19
|
-
* paths) or warn (read paths) on `invalid.length > 0`.
|
|
20
|
-
*
|
|
21
|
-
* Preserves input order in `valid`; canonicalizes each entry; dedupes
|
|
22
|
-
* the result so `["zh-tw", "zh-TW"]` collapses to `["zh-TW"]`.
|
|
23
|
-
*/
|
|
24
|
-
export declare function canonicalizeLocaleList(inputs: ReadonlyArray<string>): {
|
|
25
|
-
readonly valid: string[];
|
|
26
|
-
readonly invalid: string[];
|
|
27
|
-
};
|
|
28
|
-
export declare function containsScriptSubtagLocale(inputs: ReadonlyArray<string>): boolean;
|
|
29
|
-
//# sourceMappingURL=LocaleCanonicalizer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleCanonicalizer.d.ts","sourceRoot":"","sources":["../../../../src/spec/domain/service/LocaleCanonicalizer.ts"],"names":[],"mappings":"AAuBA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBvD;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAC5B;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAgB1D;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAC5B,OAAO,CAET"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { InvalidLocaleError } from "../model/Locale.js";
|
|
2
|
-
/**
|
|
3
|
-
* Mantle v0.1 locale canonicalization. This is a deliberately narrow
|
|
4
|
-
* subset of BCP 47, shared across the SDK: manifest parsing,
|
|
5
|
-
* `site_config.locales` writes, content-ops `data.locale` validation,
|
|
6
|
-
* public router URL segments, boot-time site-config check.
|
|
7
|
-
*
|
|
8
|
-
* 2- or 3-letter ISO 639 language (covers `en`, `ja`, plus 3-letter
|
|
9
|
-
* codes like `fil`, `haw`) + optional 2-letter ISO 3166 region. No
|
|
10
|
-
* script subtag (`zh-Hant`), no variants (`de-1996`). Extend the
|
|
11
|
-
* regexes below — they are the only place the restriction lives.
|
|
12
|
-
*
|
|
13
|
-
* Note: `URL_LOCALE` is stricter than `LANG` (2-letter only) because
|
|
14
|
-
* 3-letter languages don't appear in published URL paths today. If
|
|
15
|
-
* you accept a 3-letter site locale, audit URL_LOCALE consumers
|
|
16
|
-
* before flipping it.
|
|
17
|
-
*/
|
|
18
|
-
const LANG = /^[a-z]{2,3}$/;
|
|
19
|
-
const REGION = /^[a-z]{2}$/;
|
|
20
|
-
const SCRIPT_SUBTAG_SHAPE = /^[a-z]{2,3}[-_][a-z]{4}(?:[-_][a-z]{2})?$/i;
|
|
21
|
-
/**
|
|
22
|
-
* Accepts `zh-TW`, `zh-tw`, `zh_TW`, `zhTW`, `ZH-tw`, `en` etc. Returns
|
|
23
|
-
* canonical BCP 47 form (`zh-TW`, `en`). Throws `InvalidLocaleError` for
|
|
24
|
-
* anything that doesn't shape up.
|
|
25
|
-
*/
|
|
26
|
-
export function toCanonicalLocale(input) {
|
|
27
|
-
if (typeof input !== "string" || input.length === 0) {
|
|
28
|
-
throw new InvalidLocaleError(String(input));
|
|
29
|
-
}
|
|
30
|
-
// Split on `-` or `_`; if neither, allow `zhTW` style by inserting
|
|
31
|
-
// the boundary at position 2 (most common 2+2 form).
|
|
32
|
-
let parts = input.replace(/_/g, "-").split("-");
|
|
33
|
-
const head = parts[0];
|
|
34
|
-
if (head === undefined)
|
|
35
|
-
throw new InvalidLocaleError(input);
|
|
36
|
-
if (parts.length === 1 && head.length === 4) {
|
|
37
|
-
parts = [head.slice(0, 2), head.slice(2)];
|
|
38
|
-
}
|
|
39
|
-
const lang = parts[0].toLowerCase();
|
|
40
|
-
if (!LANG.test(lang))
|
|
41
|
-
throw new InvalidLocaleError(input);
|
|
42
|
-
if (parts.length === 1)
|
|
43
|
-
return lang;
|
|
44
|
-
const region = parts[1].toLowerCase();
|
|
45
|
-
if (!REGION.test(region))
|
|
46
|
-
throw new InvalidLocaleError(input);
|
|
47
|
-
return `${lang}-${region.toUpperCase()}`;
|
|
48
|
-
}
|
|
49
|
-
/** Canonical → URL form (always lowercase). */
|
|
50
|
-
export function toUrlLocale(canonical) {
|
|
51
|
-
return canonical.toLowerCase();
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Best-effort canonicalization. Unlike `toCanonicalLocale`, never
|
|
55
|
-
* throws — returns the original input unchanged when it's malformed.
|
|
56
|
-
* Used for query-side comparisons where a malformed filter value
|
|
57
|
-
* should simply match nothing rather than error.
|
|
58
|
-
*/
|
|
59
|
-
export function safeCanonicalLocale(input) {
|
|
60
|
-
try {
|
|
61
|
-
return toCanonicalLocale(input);
|
|
62
|
-
}
|
|
63
|
-
catch {
|
|
64
|
-
return input;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Canonicalize an array of locale strings, separating valid from
|
|
69
|
-
* invalid in one pass. The caller decides whether to reject (write
|
|
70
|
-
* paths) or warn (read paths) on `invalid.length > 0`.
|
|
71
|
-
*
|
|
72
|
-
* Preserves input order in `valid`; canonicalizes each entry; dedupes
|
|
73
|
-
* the result so `["zh-tw", "zh-TW"]` collapses to `["zh-TW"]`.
|
|
74
|
-
*/
|
|
75
|
-
export function canonicalizeLocaleList(inputs) {
|
|
76
|
-
const valid = [];
|
|
77
|
-
const invalid = [];
|
|
78
|
-
const seen = new Set();
|
|
79
|
-
for (const raw of inputs) {
|
|
80
|
-
try {
|
|
81
|
-
const canonical = toCanonicalLocale(raw);
|
|
82
|
-
if (!seen.has(canonical)) {
|
|
83
|
-
seen.add(canonical);
|
|
84
|
-
valid.push(canonical);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
invalid.push(raw);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return { valid, invalid };
|
|
92
|
-
}
|
|
93
|
-
export function containsScriptSubtagLocale(inputs) {
|
|
94
|
-
return inputs.some((raw) => SCRIPT_SUBTAG_SHAPE.test(raw));
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=LocaleCanonicalizer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleCanonicalizer.js","sourceRoot":"","sources":["../../../../src/spec/domain/service/LocaleCanonicalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/** Field checks every manifest kind shares: LocalizedText, unknown keys, the kind and enum sets, and the parse error. */
|
|
2
|
-
import type { Diagnostic, DiagnosticCode } from "../../kernel/diagnostic.js";
|
|
3
|
-
import { type HttpMethod, type LifecycleHook, type ManifestKind } from "../model/ManifestGrammar.js";
|
|
4
|
-
/**
|
|
5
|
-
* Shared shape validator for `LocalizedText` fields (`Schema.spec.title`
|
|
6
|
-
* / `.description`, `Procedure.spec.title` / `.description` — #430;
|
|
7
|
-
* `View.spec.title` — #443).
|
|
8
|
-
* Accepts:
|
|
9
|
-
* - a non-empty string, or
|
|
10
|
-
* - a plain object (not an array) with at least one own-enumerable
|
|
11
|
-
* key, where every key AND every value is a non-empty string.
|
|
12
|
-
* Rejects everything else — including an empty string, an empty
|
|
13
|
-
* object, an array (arrays are `typeof "object"` in JS so they need an
|
|
14
|
-
* explicit `Array.isArray` guard), and any non-string property value.
|
|
15
|
-
* When `required` is `false` and `value` is `undefined`, this is a
|
|
16
|
-
* silent no-op (the field is simply absent).
|
|
17
|
-
*/
|
|
18
|
-
export declare function validateLocalizedText(value: unknown, idx: number, pointer: string, fieldLabel: string, required: boolean): void;
|
|
19
|
-
/**
|
|
20
|
-
* Day-1 envelope-and-shape parser. The linker (`mantle generate`) does
|
|
21
|
-
* the cross-manifest checks (Trigger.target.procedure exists, View.from
|
|
22
|
-
* is a Schema, etc.) — see ADR-0007 and `docs/handbook/reference/manifest.md`.
|
|
23
|
-
*
|
|
24
|
-
* Diagnostics emitted here are intentionally narrow: bad envelope or
|
|
25
|
-
* structurally malformed shipped grammar.
|
|
26
|
-
*
|
|
27
|
-
* The canonical API withholds its value when any document fails. The legacy
|
|
28
|
-
* `{ manifests, diagnostics }` adapter below therefore returns no manifests
|
|
29
|
-
* on failure rather than exposing a partial graph.
|
|
30
|
-
*
|
|
31
|
-
* Each caller-owned source may contain multiple YAML documents separated by
|
|
32
|
-
* `---`; source identities and document indexes remain intact.
|
|
33
|
-
*/
|
|
34
|
-
/**
|
|
35
|
-
* Throwable carrier used by the envelope-shape validators below
|
|
36
|
-
* (`validateEnvelope`, kind-specific `validate*Spec`). Each throw
|
|
37
|
-
* carries a JSON Pointer + diagnostic code; the top-level
|
|
38
|
-
* The source parser catches the throw and converts it to a Diagnostic
|
|
39
|
-
* for the public `{ manifests, diagnostics }` return shape.
|
|
40
|
-
*/
|
|
41
|
-
export declare class ManifestParseError extends Error {
|
|
42
|
-
readonly docIndex?: number | undefined;
|
|
43
|
-
/** JSON Pointer into the manifest (e.g. `/spec/output`). */
|
|
44
|
-
readonly pointer?: string | undefined;
|
|
45
|
-
readonly code: DiagnosticCode;
|
|
46
|
-
readonly details?: Pick<Diagnostic, "value" | "expected" | "candidates" | "suggestion"> | undefined;
|
|
47
|
-
constructor(message: string, docIndex?: number | undefined,
|
|
48
|
-
/** JSON Pointer into the manifest (e.g. `/spec/output`). */
|
|
49
|
-
pointer?: string | undefined, code?: DiagnosticCode, details?: Pick<Diagnostic, "value" | "expected" | "candidates" | "suggestion"> | undefined);
|
|
50
|
-
}
|
|
51
|
-
export declare const KNOWN_KINDS: ReadonlySet<ManifestKind>;
|
|
52
|
-
export declare const V01_TRIGGER_SOURCE_KINDS: ReadonlySet<string>;
|
|
53
|
-
export declare const V01_HTTP_METHODS: ReadonlySet<HttpMethod>;
|
|
54
|
-
export declare const V01_LIFECYCLE_HOOKS: ReadonlySet<LifecycleHook>;
|
|
55
|
-
export declare const V01_MCP_TRIGGER_SURFACES: ReadonlySet<string>;
|
|
56
|
-
export declare const V01_VIEW_SURFACES: ReadonlySet<string>;
|
|
57
|
-
export declare const V01_LIFECYCLE_MODES: ReadonlySet<string>;
|
|
58
|
-
export declare function rejectUnknownKeys(value: Record<string, unknown>, allowed: readonly string[], idx: number, pointer: string): void;
|
|
59
|
-
export declare function escapeJsonPointerSegment(value: string): string;
|
|
60
|
-
//# sourceMappingURL=ManifestFieldChecks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestFieldChecks.d.ts","sourceRoot":"","sources":["../../../../src/spec/domain/service/ManifestFieldChecks.ts"],"names":[],"mappings":"AAAA,yHAAyH;AACzH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAwD,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3J;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAqDN;AAED;;;;;;;;;;;;;;GAcG;AAEH;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,QAAQ,CAAC,EAAE,MAAM;IACjC,4DAA4D;aAC5C,OAAO,CAAC,EAAE,MAAM;aAChB,IAAI,EAAE,cAAc;aACpB,OAAO,CAAC,EAAE,IAAI,CAC5B,UAAU,EACV,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,CACnD;gBARD,OAAO,EAAE,MAAM,EACC,QAAQ,CAAC,EAAE,MAAM,YAAA;IACjC,4DAA4D;IAC5C,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,IAAI,GAAE,cAA4C,EAClD,OAAO,CAAC,EAAE,IAAI,CAC5B,UAAU,EACV,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,CACnD,YAAA;CAKJ;AAED,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,YAAY,CAKhD,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAKvD,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAKnD,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,aAAa,CAA4B,CAAC;AACxF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAiC,CAAC;AAC3F,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAA0B,CAAC;AAC7E,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAA0C,CAAC;AAE/F,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,IAAI,CAUN;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9D"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { LIFECYCLE_HOOKS, MCP_TRIGGER_SURFACES, VIEW_SURFACES } from "../model/ManifestGrammar.js";
|
|
2
|
-
/**
|
|
3
|
-
* Shared shape validator for `LocalizedText` fields (`Schema.spec.title`
|
|
4
|
-
* / `.description`, `Procedure.spec.title` / `.description` — #430;
|
|
5
|
-
* `View.spec.title` — #443).
|
|
6
|
-
* Accepts:
|
|
7
|
-
* - a non-empty string, or
|
|
8
|
-
* - a plain object (not an array) with at least one own-enumerable
|
|
9
|
-
* key, where every key AND every value is a non-empty string.
|
|
10
|
-
* Rejects everything else — including an empty string, an empty
|
|
11
|
-
* object, an array (arrays are `typeof "object"` in JS so they need an
|
|
12
|
-
* explicit `Array.isArray` guard), and any non-string property value.
|
|
13
|
-
* When `required` is `false` and `value` is `undefined`, this is a
|
|
14
|
-
* silent no-op (the field is simply absent).
|
|
15
|
-
*/
|
|
16
|
-
export function validateLocalizedText(value, idx, pointer, fieldLabel, required) {
|
|
17
|
-
if (value === undefined) {
|
|
18
|
-
if (required) {
|
|
19
|
-
throw new ManifestParseError(`${fieldLabel} is required (non-empty string, or an object mapping locale → non-empty string)`, idx, pointer);
|
|
20
|
-
}
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
if (typeof value === "string") {
|
|
24
|
-
if (value.length === 0) {
|
|
25
|
-
throw new ManifestParseError(`${fieldLabel} must be a non-empty string when present (or an object mapping locale → non-empty string)`, idx, pointer);
|
|
26
|
-
}
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
30
|
-
const entries = Object.entries(value);
|
|
31
|
-
if (entries.length === 0) {
|
|
32
|
-
throw new ManifestParseError(`${fieldLabel} object form must have at least one locale → string entry; got {}`, idx, pointer);
|
|
33
|
-
}
|
|
34
|
-
for (const [key, entryValue] of entries) {
|
|
35
|
-
if (key.length === 0) {
|
|
36
|
-
throw new ManifestParseError(`${fieldLabel} object form keys must be non-empty locale codes; got an empty key`, idx, pointer);
|
|
37
|
-
}
|
|
38
|
-
if (typeof entryValue !== "string" || entryValue.length === 0) {
|
|
39
|
-
throw new ManifestParseError(`${fieldLabel} object form value for locale '${key}' must be a non-empty string; got ${JSON.stringify(entryValue)}`, idx, `${pointer}/${key}`);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
throw new ManifestParseError(`${fieldLabel} must be a non-empty string, or an object mapping locale → non-empty string; got ${JSON.stringify(value)}`, idx, pointer);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Day-1 envelope-and-shape parser. The linker (`mantle generate`) does
|
|
48
|
-
* the cross-manifest checks (Trigger.target.procedure exists, View.from
|
|
49
|
-
* is a Schema, etc.) — see ADR-0007 and `docs/handbook/reference/manifest.md`.
|
|
50
|
-
*
|
|
51
|
-
* Diagnostics emitted here are intentionally narrow: bad envelope or
|
|
52
|
-
* structurally malformed shipped grammar.
|
|
53
|
-
*
|
|
54
|
-
* The canonical API withholds its value when any document fails. The legacy
|
|
55
|
-
* `{ manifests, diagnostics }` adapter below therefore returns no manifests
|
|
56
|
-
* on failure rather than exposing a partial graph.
|
|
57
|
-
*
|
|
58
|
-
* Each caller-owned source may contain multiple YAML documents separated by
|
|
59
|
-
* `---`; source identities and document indexes remain intact.
|
|
60
|
-
*/
|
|
61
|
-
/**
|
|
62
|
-
* Throwable carrier used by the envelope-shape validators below
|
|
63
|
-
* (`validateEnvelope`, kind-specific `validate*Spec`). Each throw
|
|
64
|
-
* carries a JSON Pointer + diagnostic code; the top-level
|
|
65
|
-
* The source parser catches the throw and converts it to a Diagnostic
|
|
66
|
-
* for the public `{ manifests, diagnostics }` return shape.
|
|
67
|
-
*/
|
|
68
|
-
export class ManifestParseError extends Error {
|
|
69
|
-
docIndex;
|
|
70
|
-
pointer;
|
|
71
|
-
code;
|
|
72
|
-
details;
|
|
73
|
-
constructor(message, docIndex,
|
|
74
|
-
/** JSON Pointer into the manifest (e.g. `/spec/output`). */
|
|
75
|
-
pointer, code = "INVALID_MANIFEST_ENVELOPE", details) {
|
|
76
|
-
super(docIndex != null ? `[doc ${docIndex}] ${message}` : message);
|
|
77
|
-
this.docIndex = docIndex;
|
|
78
|
-
this.pointer = pointer;
|
|
79
|
-
this.code = code;
|
|
80
|
-
this.details = details;
|
|
81
|
-
this.name = "ManifestParseError";
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
export const KNOWN_KINDS = new Set([
|
|
85
|
-
"Schema",
|
|
86
|
-
"View",
|
|
87
|
-
"Procedure",
|
|
88
|
-
"Trigger",
|
|
89
|
-
]);
|
|
90
|
-
export const V01_TRIGGER_SOURCE_KINDS = new Set([
|
|
91
|
-
"http",
|
|
92
|
-
"lifecycle",
|
|
93
|
-
"mcp",
|
|
94
|
-
"schedule",
|
|
95
|
-
]);
|
|
96
|
-
export const V01_HTTP_METHODS = new Set([
|
|
97
|
-
"POST",
|
|
98
|
-
"PUT",
|
|
99
|
-
"PATCH",
|
|
100
|
-
"DELETE",
|
|
101
|
-
]);
|
|
102
|
-
export const V01_LIFECYCLE_HOOKS = new Set(LIFECYCLE_HOOKS);
|
|
103
|
-
export const V01_MCP_TRIGGER_SURFACES = new Set(MCP_TRIGGER_SURFACES);
|
|
104
|
-
export const V01_VIEW_SURFACES = new Set(VIEW_SURFACES);
|
|
105
|
-
export const V01_LIFECYCLE_MODES = new Set(["publishing", "operational"]);
|
|
106
|
-
export function rejectUnknownKeys(value, allowed, idx, pointer) {
|
|
107
|
-
const unknown = Object.keys(value).find((key) => !allowed.includes(key));
|
|
108
|
-
if (unknown !== undefined) {
|
|
109
|
-
const unknownPointer = pointer === "/" ? `/${unknown}` : `${pointer}/${unknown}`;
|
|
110
|
-
throw new ManifestParseError(`${unknownPointer.replaceAll("/", ".").slice(1)} is not supported`, idx, unknownPointer);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
export function escapeJsonPointerSegment(value) {
|
|
114
|
-
return value.replace(/~/g, "~0").replace(/\//g, "~1");
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=ManifestFieldChecks.js.map
|