@aotter/mantle 0.2.0-alpha.6 → 0.2.0-alpha.7
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 +152 -45
- package/dist/auth/adapter.d.ts +32 -0
- package/dist/auth/adapter.js +285 -0
- package/dist/auth/admin.d.ts +3 -0
- package/dist/auth/admin.js +21 -0
- package/dist/auth/caller.d.ts +86 -0
- package/dist/auth/caller.js +154 -0
- package/dist/auth/hardening.d.ts +24 -0
- package/dist/auth/hardening.js +40 -0
- package/dist/auth/identity.d.ts +121 -0
- package/dist/auth/identity.js +203 -0
- package/dist/auth/oauth.d.ts +31 -0
- package/dist/auth/oauth.js +124 -0
- package/dist/auth/resource-seeds.js +10 -0
- package/dist/auth/routes.d.ts +32 -0
- package/dist/auth/{createAuthRoutes.js → routes.js} +130 -35
- package/dist/build/compiler.d.ts +790 -0
- package/dist/build/compiler.js +6971 -0
- package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +24 -42
- package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
- package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +35 -6
- package/dist/build/spec/domain/model/UserFields.d.ts +20 -0
- package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +2 -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 +24 -0
- package/dist/domain/adminOrder.js +24 -0
- package/dist/domain/columns.js +55 -0
- package/dist/domain/describe/chunk-ZIQVLA7X.js +363 -0
- package/dist/domain/describe/index.d.ts +58 -0
- package/dist/domain/describe/index.js +115 -0
- package/dist/domain/describe/target-hash.d.ts +8 -0
- package/dist/domain/describe/target-hash.js +12 -0
- package/dist/domain/describe/targets.d.ts +40 -0
- package/dist/domain/entry.js +33 -0
- package/dist/domain/generated-tools.js +17 -0
- package/dist/domain/generation.d.ts +16 -0
- package/dist/domain/generation.js +1 -0
- package/dist/domain/input.js +17 -0
- package/dist/domain/model.js +1 -0
- package/dist/domain/paging.js +204 -0
- package/dist/domain/recipes.js +19 -0
- package/dist/domain/userReferences.js +5 -0
- package/dist/domain/wireScalars.js +47 -0
- package/dist/infrastructure/adminEntries.js +153 -0
- package/dist/infrastructure/adminPaging.js +72 -0
- package/dist/infrastructure/artifacts.js +71 -0
- package/dist/infrastructure/authSchema.js +83 -0
- package/dist/infrastructure/bundle.js +84 -0
- package/dist/infrastructure/cli.js +101 -0
- package/dist/infrastructure/generate.d.ts +14 -0
- package/dist/infrastructure/generate.js +174 -0
- package/dist/infrastructure/generateAuth.d.ts +8 -0
- package/dist/infrastructure/generateAuth.js +17 -0
- package/dist/infrastructure/inputs.js +36 -0
- package/dist/infrastructure/wrangler.js +71 -0
- package/dist/kernel/authorization.d.ts +4 -0
- package/dist/kernel/authorization.js +16 -0
- package/dist/kernel/binds.d.ts +51 -0
- package/dist/kernel/binds.js +45 -0
- package/dist/kernel/caller-identity.d.ts +24 -0
- package/dist/kernel/caller-identity.js +22 -0
- package/dist/kernel/contract-error.d.ts +12 -0
- package/dist/kernel/contract-error.js +14 -0
- package/dist/kernel/contracts.d.ts +139 -0
- package/dist/kernel/contracts.js +92 -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} +1 -6
- package/dist/kernel/dialect/common.d.ts +39 -0
- package/dist/kernel/dialect/common.js +6 -0
- package/dist/kernel/dialect/postgres.d.ts +16 -0
- package/dist/kernel/dialect/postgres.js +18 -0
- package/dist/kernel/dialect/sqlite.d.ts +20 -0
- package/dist/kernel/dialect/sqlite.js +34 -0
- package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
- package/dist/kernel/driver/bun-sqlite.js +77 -0
- package/dist/kernel/driver/d1.d.ts +24 -0
- package/dist/kernel/driver/d1.js +22 -0
- package/dist/kernel/driver/postgres.d.ts +25 -0
- package/dist/kernel/driver/postgres.js +95 -0
- package/dist/kernel/driver/transaction-context.d.ts +10 -0
- package/dist/kernel/driver/transaction-context.js +29 -0
- package/dist/kernel/email.d.ts +28 -0
- package/dist/{auth/emailTemplates.js → kernel/email.js} +13 -2
- package/dist/kernel/host-access.d.ts +10 -0
- package/dist/kernel/host-access.js +65 -0
- package/dist/kernel/host-caller.d.ts +38 -0
- package/dist/kernel/host-caller.js +55 -0
- package/dist/kernel/json-body.d.ts +4 -0
- package/dist/kernel/json-body.js +44 -0
- package/dist/kernel/mcp-apps.d.ts +49 -0
- package/dist/kernel/mcp-apps.js +40 -0
- package/dist/kernel/mcp-call.d.ts +5 -0
- package/dist/kernel/mcp-call.js +25 -0
- package/dist/kernel/mcp-handler.js +288 -0
- package/dist/kernel/mcp.d.ts +101 -0
- package/dist/kernel/mcp.js +25 -0
- package/dist/kernel/media.d.ts +27 -0
- package/dist/kernel/media.js +216 -0
- package/dist/kernel/paging.d.ts +55 -0
- package/dist/kernel/paging.js +95 -0
- package/dist/kernel/publishing.d.ts +4 -0
- package/dist/kernel/publishing.js +16 -0
- package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
- package/dist/kernel/r2-media.js +78 -0
- package/dist/kernel/rest-dispatch.js +38 -0
- package/dist/kernel/rest-router.js +63 -0
- package/dist/kernel/rest.d.ts +58 -0
- package/dist/kernel/rest.js +41 -0
- package/dist/kernel/scalars.d.ts +6 -0
- package/dist/kernel/scalars.js +43 -0
- package/dist/kernel/search.js +5 -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 +41 -0
- package/dist/kernel/site.js +32 -0
- package/dist/kernel/store.d.ts +165 -0
- package/dist/kernel/store.js +257 -0
- package/dist/kernel/surface.d.ts +10 -0
- package/dist/kernel/surface.js +19 -0
- package/dist/kernel/sweep.d.ts +17 -0
- package/dist/kernel/sweep.js +27 -0
- package/dist/kernel/translations.d.ts +1 -0
- package/dist/kernel/translations.js +13 -0
- package/dist/kernel/user-caller.d.ts +31 -0
- package/dist/kernel/user-caller.js +67 -0
- package/dist/kernel/user-field-name.js +3 -0
- package/dist/kernel/user-fields.d.ts +34 -0
- package/dist/kernel/user-fields.js +71 -0
- package/dist/kernel/validation.d.ts +15 -0
- package/dist/kernel/validation.js +54 -0
- package/dist/kernel/web-gateway.js +68 -0
- package/dist/kernel/web-head.js +15 -0
- package/dist/kernel/web-response.js +8 -0
- package/dist/kernel/web.d.ts +75 -0
- package/dist/kernel/web.js +155 -0
- package/dist/kernel/where.js +27 -0
- package/dist/testing/index.d.ts +1 -37
- package/dist/testing/index.js +1 -43
- package/dist/usecase/adminBindings.js +142 -0
- package/dist/usecase/adminDescriptors.js +153 -0
- package/dist/usecase/generate.js +164 -0
- package/dist/usecase/handlers.js +21 -0
- package/dist/usecase/mcp-media.js +17 -0
- package/dist/usecase/mcp.js +96 -0
- package/dist/usecase/paging.js +72 -0
- package/dist/usecase/publishing.js +63 -0
- package/dist/usecase/refusals.js +27 -0
- package/dist/usecase/rest.js +54 -0
- package/dist/usecase/search.js +7 -0
- package/dist/usecase/site.js +40 -0
- package/dist/usecase/stores.js +62 -0
- package/dist/usecase/translations.js +78 -0
- package/dist/usecase/ttl.js +20 -0
- package/dist/usecase/validation.js +132 -0
- package/dist/usecase/web.js +22 -0
- package/docs/examples/README.md +31 -16
- package/docs/examples/app-shell/README.md +48 -0
- package/docs/examples/app-shell/package.json +34 -0
- package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
- package/docs/examples/app-shell/smoke-kit.mjs +100 -0
- package/docs/examples/app-shell/src/admin.ts +10 -0
- package/docs/examples/app-shell/src/auth.ts +55 -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 +13 -0
- package/docs/examples/app-shell/src/schedule.ts +8 -0
- package/docs/examples/app-shell/src/service.ts +70 -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 +2 -1
- package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
- package/docs/examples/app-shell/wrangler.jsonc +61 -0
- package/docs/examples/club-events/README.md +60 -0
- package/docs/examples/club-events/manifests/club-events.yaml +225 -0
- package/docs/examples/club-events/smoke.mjs +121 -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 +74 -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 +7 -0
- package/docs/examples/purchasing/.dev.vars.example +6 -0
- package/docs/examples/purchasing/README.md +90 -0
- package/docs/examples/purchasing/manifests/purchasing.yaml +341 -0
- package/docs/examples/purchasing/seed.sql +4 -0
- package/docs/examples/purchasing/smoke.mjs +171 -0
- package/docs/examples/purchasing/src/admin.ts +12 -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 +68 -0
- package/docs/examples/recipes/README.md +58 -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 +73 -0
- package/docs/handbook/cloudflare/authentication.md +142 -212
- package/docs/handbook/cloudflare/chatgpt-sites.md +4 -113
- package/docs/handbook/cloudflare/deploy-and-operate.md +20 -106
- package/docs/handbook/cloudflare/media-r2.md +62 -133
- package/docs/handbook/cloudflare/service-entry.md +180 -116
- package/docs/handbook/concepts/authorization.md +10 -123
- 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 +10 -141
- package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
- package/docs/handbook/concepts/runtime-and-adapters.md +15 -224
- 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-extensions.md +12 -183
- package/docs/handbook/guides/admin-ui.md +5 -164
- package/docs/handbook/guides/agent-setup.md +5 -18
- package/docs/handbook/guides/email.md +86 -0
- package/docs/handbook/guides/mcp-apps.md +44 -0
- package/docs/handbook/guides/native-admin.md +298 -0
- package/docs/handbook/guides/native-execution.md +132 -0
- package/docs/handbook/guides/oauth.md +105 -0
- package/docs/handbook/guides/postgres-adapters.md +56 -0
- package/docs/handbook/guides/public-pages.md +53 -0
- package/docs/handbook/guides/size-and-startup.md +9 -0
- package/docs/handbook/guides/typed-queries.md +39 -102
- package/docs/handbook/navigation.json +164 -31
- package/docs/handbook/reference/admin-descriptors.md +88 -0
- package/docs/handbook/reference/authorization.md +44 -52
- package/docs/handbook/reference/describe.md +56 -0
- package/docs/handbook/reference/diagnostics.md +15 -79
- package/docs/handbook/reference/features.md +45 -53
- package/docs/handbook/reference/manifest.md +6 -69
- package/docs/handbook/reference/procedure.md +9 -118
- package/docs/handbook/reference/schema.md +75 -185
- package/docs/handbook/reference/site-config.md +5 -65
- package/docs/handbook/reference/surface.md +279 -97
- package/docs/handbook/reference/trigger.md +24 -93
- package/docs/handbook/reference/view.md +32 -160
- package/docs/handbook/releases/index.md +48 -13
- package/docs/handbook/start/overview.md +9 -56
- package/docs/handbook/start/project-and-cli.md +40 -149
- package/docs/handbook/start/quickstart-worker.md +38 -116
- package/docs/skills/develop/SKILL.md +34 -123
- package/docs/skills/develop/mcp-app.md +37 -77
- package/docs/skills/integrate/SKILL.md +42 -84
- package/docs/skills/media-gc/SKILL.md +14 -3
- package/docs/skills/provision/SKILL.md +25 -91
- package/docs/skills/update/SKILL.md +19 -43
- package/docs/source/scripts/postgres-adapter.ts +101 -0
- package/docs/upgrade-0.1-to-0.2.md +25 -9
- package/package.json +96 -112
- package/skills/.keep +0 -0
- package/skills/README.md +72 -0
- package/skills/mantle/SKILL.md +135 -0
- package/skills/mantle/references/local-testing.md +11 -0
- package/skills/mantle/references/web.md +41 -0
- package/skills/mantle/references/website.md +47 -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 -25
- package/dist/admin/createAdminSurface.d.ts.map +0 -1
- package/dist/admin/createAdminSurface.js +0 -635
- package/dist/admin/createAdminSurface.js.map +0 -1
- package/dist/admin/design.d.ts +0 -7
- package/dist/admin/design.d.ts.map +0 -1
- package/dist/admin/design.js +0 -18
- package/dist/admin/design.js.map +0 -1
- package/dist/admin/developerConsole.d.ts +0 -267
- 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/extensions.d.ts +0 -290
- package/dist/admin/extensions.d.ts.map +0 -1
- package/dist/admin/extensions.js +0 -532
- package/dist/admin/extensions.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 -7
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -7
- package/dist/admin/index.js.map +0 -1
- package/dist/admin/procedureFlow.d.ts +0 -38
- package/dist/admin/procedureFlow.d.ts.map +0 -1
- package/dist/admin/procedureFlow.js +0 -188
- 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 -4568
- package/dist/auth/buildAuth.d.ts.map +0 -1
- package/dist/auth/buildAuth.js +0 -312
- package/dist/auth/buildAuth.js.map +0 -1
- package/dist/auth/callerResolver.d.ts +0 -52
- package/dist/auth/callerResolver.d.ts.map +0 -1
- package/dist/auth/callerResolver.js +0 -52
- 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 -504
- package/dist/auth/createMantleAuth.js.map +0 -1
- package/dist/auth/db.d.ts +0 -18
- package/dist/auth/db.d.ts.map +0 -1
- package/dist/auth/db.js +0 -27
- 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 -21
- package/dist/bun/index.d.ts.map +0 -1
- package/dist/bun/index.js +0 -46
- 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 -391
- 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 -405
- package/dist/cli/preset.js.map +0 -1
- package/dist/cloudflare/index.d.ts +0 -25
- package/dist/cloudflare/index.d.ts.map +0 -1
- package/dist/cloudflare/index.js +0 -16
- 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 -53
- 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 -24
- 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/observation.d.ts +0 -3
- package/dist/core/observation.d.ts.map +0 -1
- package/dist/core/observation.js +0 -10
- package/dist/core/observation.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/sessionUser.d.ts +0 -14
- package/dist/core/sessionUser.d.ts.map +0 -1
- package/dist/core/sessionUser.js +0 -4
- package/dist/core/sessionUser.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 -67
- package/dist/core/sql/allowlist.d.ts.map +0 -1
- package/dist/core/sql/allowlist.js +0 -737
- 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 -123
- package/dist/core/sql/policy.d.ts.map +0 -1
- package/dist/core/sql/policy.js +0 -398
- 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 -68
- package/dist/core/sql/run.d.ts.map +0 -1
- package/dist/core/sql/run.js +0 -384
- 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 -24
- package/dist/core/withCaller.d.ts.map +0 -1
- package/dist/core/withCaller.js +0 -35
- 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 -15
- package/dist/d1/executor.d.ts.map +0 -1
- package/dist/d1/executor.js +0 -96
- 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 -60
- package/dist/mcp/createMcpSurface.d.ts.map +0 -1
- package/dist/mcp/createMcpSurface.js +0 -182
- 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/mcp/media.d.ts +0 -9
- package/dist/mcp/media.d.ts.map +0 -1
- package/dist/mcp/media.js +0 -33
- package/dist/mcp/media.js.map +0 -1
- package/dist/postgres/adapter.d.ts +0 -23
- package/dist/postgres/adapter.d.ts.map +0 -1
- package/dist/postgres/adapter.js +0 -50
- 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 -109
- package/dist/postgres/driver.d.ts.map +0 -1
- package/dist/postgres/driver.js +0 -186
- package/dist/postgres/driver.js.map +0 -1
- package/dist/postgres/executor.d.ts +0 -28
- package/dist/postgres/executor.d.ts.map +0 -1
- package/dist/postgres/executor.js +0 -96
- package/dist/postgres/executor.js.map +0 -1
- package/dist/postgres/index.d.ts +0 -8
- package/dist/postgres/index.d.ts.map +0 -1
- package/dist/postgres/index.js +0 -8
- 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 -152
- 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 -108
- package/dist/postgres/print.js.map +0 -1
- package/dist/postgres/session.d.ts +0 -9
- package/dist/postgres/session.d.ts.map +0 -1
- package/dist/postgres/session.js +0 -111
- package/dist/postgres/session.js.map +0 -1
- package/dist/postgres/storage.d.ts +0 -32
- package/dist/postgres/storage.d.ts.map +0 -1
- package/dist/postgres/storage.js +0 -283
- package/dist/postgres/storage.js.map +0 -1
- package/dist/postgres/validator.d.ts +0 -13
- package/dist/postgres/validator.d.ts.map +0 -1
- package/dist/postgres/validator.js +0 -53
- 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 -153
- 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 -44
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -333
- 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 -58
- 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 -287
- 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 -301
- 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 -14
- package/dist/testing/cases/corpus.d.ts.map +0 -1
- package/dist/testing/cases/corpus.js +0 -93
- package/dist/testing/cases/corpus.js.map +0 -1
- package/dist/testing/cases/policy.d.ts +0 -87
- package/dist/testing/cases/policy.d.ts.map +0 -1
- package/dist/testing/cases/policy.js +0 -143
- 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 -34
- 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 -51
- 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 -41
- 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 -939
- 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 -102
- package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -384
- 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 -125
- package/docs/adr/0038-bun-native-host.md +0 -63
- package/docs/adr/0039-postgresql-is-native.md +0 -130
- package/docs/adr/README.md +0 -98
- package/docs/adr/adr-lite-1376-admin-extensions.md +0 -330
- 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 -498
- 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 -226
- 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 -160
- 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/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
package/dist/d1/print.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print.js","sourceRoot":"","sources":["../../src/d1/print.ts"],"names":[],"mappings":"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"}
|
package/dist/d1/site.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `site_config` over a SQLite-family driver, and the canonical migrations of Core's product tables. The DDL and the migration
|
|
3
|
-
* ids are 0.1.x's; ownership is proven by next's own `_mantle_migrations` ledger. Upgrading a 0.1.x database in place is a
|
|
4
|
-
* separate step, not built yet. A new id is never purely numeric (`0004-…`): 0.1.x ledgers already hold those.
|
|
5
|
-
*
|
|
6
|
-
* Operator fields (`brand`, `title`, `description`) are seeded once: the database wins once a row exists, so a later code
|
|
7
|
-
* edit never overwrites what the owner set in Admin. Deployment fields (`origin`, icons, `locales`, media purposes) have no
|
|
8
|
-
* edit path but code, so every boot syncs them, writing only what changed. A blank default is skipped (#441).
|
|
9
|
-
*/
|
|
10
|
-
import { type SiteDefaults } from "../spec/domain/index.js";
|
|
11
|
-
import type { DatabaseDriver } from "../core/driver.js";
|
|
12
|
-
import type { MantleSite } from "../core/site.js";
|
|
13
|
-
import { type Migration } from "./migrations.js";
|
|
14
|
-
export declare const CORE_MIGRATIONS: readonly Migration[];
|
|
15
|
-
/** Migrates the product tables, seeds and syncs the defaults, and returns the capability. Runs at every boot. */
|
|
16
|
-
export declare function prepareSite(driver: DatabaseDriver, defaults: SiteDefaults): Promise<MantleSite>;
|
|
17
|
-
//# sourceMappingURL=site.d.ts.map
|
package/dist/d1/site.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../src/d1/site.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAmD,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC7G,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEhE,eAAO,MAAM,eAAe,EAAE,SAAS,SAAS,EAa/C,CAAC;AAMF,iHAAiH;AACjH,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BrG"}
|
package/dist/d1/site.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `site_config` over a SQLite-family driver, and the canonical migrations of Core's product tables. The DDL and the migration
|
|
3
|
-
* ids are 0.1.x's; ownership is proven by next's own `_mantle_migrations` ledger. Upgrading a 0.1.x database in place is a
|
|
4
|
-
* separate step, not built yet. A new id is never purely numeric (`0004-…`): 0.1.x ledgers already hold those.
|
|
5
|
-
*
|
|
6
|
-
* Operator fields (`brand`, `title`, `description`) are seeded once: the database wins once a row exists, so a later code
|
|
7
|
-
* edit never overwrites what the owner set in Admin. Deployment fields (`origin`, icons, `locales`, media purposes) have no
|
|
8
|
-
* edit path but code, so every boot syncs them, writing only what changed. A blank default is skipped (#441).
|
|
9
|
-
*/
|
|
10
|
-
import { DEFAULT_SITE_ICONS, assertSiteDefaultsCanonical } from "../spec/domain/index.js";
|
|
11
|
-
import { siteConfigOf } from "../core/siteConfig.js";
|
|
12
|
-
import { mediaLibrary } from "./media.js";
|
|
13
|
-
import { runMigrations } from "./migrations.js";
|
|
14
|
-
export const CORE_MIGRATIONS = [
|
|
15
|
-
// 0.1.x's 0001-init also created Better Auth's tables; mantle-auth now migrates those itself
|
|
16
|
-
{ id: "0001-init", tables: ["site_config"], sql: "CREATE TABLE IF NOT EXISTS site_config (key TEXT PRIMARY KEY, value TEXT NOT NULL)" },
|
|
17
|
-
{
|
|
18
|
-
id: "0002-media-assets", tables: ["media_assets"],
|
|
19
|
-
sql: `CREATE TABLE IF NOT EXISTS media_assets (id TEXT PRIMARY KEY, created_at INTEGER NOT NULL, owner_id TEXT, alt TEXT, caption TEXT, variants TEXT NOT NULL, metadata TEXT);
|
|
20
|
-
CREATE INDEX IF NOT EXISTS media_assets_by_owner_created ON media_assets (owner_id, created_at DESC)`,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: "0003-pending-media-uploads", tables: ["pending_media_uploads"],
|
|
24
|
-
sql: `CREATE TABLE IF NOT EXISTS pending_media_uploads (id TEXT PRIMARY KEY, record TEXT NOT NULL, expires_at INTEGER NOT NULL);
|
|
25
|
-
CREATE INDEX IF NOT EXISTS pending_media_uploads_expires_at ON pending_media_uploads (expires_at)`,
|
|
26
|
-
},
|
|
27
|
-
];
|
|
28
|
-
const nonBlank = (v) => (v ? v : undefined);
|
|
29
|
-
const upsert = (key, value) => ({ sql: "INSERT INTO site_config (key, value) VALUES (?1, ?2) ON CONFLICT(key) DO UPDATE SET value = excluded.value", binds: [key, value] });
|
|
30
|
-
/** Migrates the product tables, seeds and syncs the defaults, and returns the capability. Runs at every boot. */
|
|
31
|
-
export async function prepareSite(driver, defaults) {
|
|
32
|
-
assertSiteDefaultsCanonical(defaults);
|
|
33
|
-
await runMigrations(driver, CORE_MIGRATIONS);
|
|
34
|
-
const [stored] = await driver.batch([{ sql: "SELECT key, value FROM site_config" }]);
|
|
35
|
-
const have = new Map(stored.rows.map((r) => [String(r.key), String(r.value)]));
|
|
36
|
-
const writes = [];
|
|
37
|
-
for (const [key, value] of [["brand", defaults.brand], ["title", defaults.title], ["description", defaults.description]])
|
|
38
|
-
if (value && !have.has(key))
|
|
39
|
-
writes.push({ sql: "INSERT INTO site_config (key, value) VALUES (?1, ?2) ON CONFLICT(key) DO NOTHING", binds: [key, value] });
|
|
40
|
-
const synced = [
|
|
41
|
-
["origin", nonBlank(defaults.origin)],
|
|
42
|
-
["faviconUrl", JSON.stringify(defaults.icons ?? DEFAULT_SITE_ICONS)],
|
|
43
|
-
["locales", defaults.locales?.length ? defaults.locales.join(",") : undefined],
|
|
44
|
-
["mediaPurposes", defaults.media?.purposes?.length ? JSON.stringify(defaults.media.purposes) : undefined],
|
|
45
|
-
];
|
|
46
|
-
for (const [key, value] of synced)
|
|
47
|
-
if (value !== undefined && have.get(key) !== value)
|
|
48
|
-
writes.push(upsert(key, value));
|
|
49
|
-
if (writes.length)
|
|
50
|
-
await driver.batch(writes);
|
|
51
|
-
const read = async () => siteConfigOf((await driver.batch([{ sql: "SELECT key, value FROM site_config" }]))[0].rows);
|
|
52
|
-
return {
|
|
53
|
-
read,
|
|
54
|
-
async updateSettings(values) {
|
|
55
|
-
const writes = ["brand", "title", "description"].flatMap((k) => (typeof values[k] === "string" ? [upsert(k, values[k])] : []));
|
|
56
|
-
if (writes.length)
|
|
57
|
-
await driver.batch(writes);
|
|
58
|
-
return read();
|
|
59
|
-
},
|
|
60
|
-
media: (storage) => mediaLibrary(driver, storage, async () => (await read()).media.purposes),
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=site.js.map
|
package/dist/d1/site.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"site.js","sourceRoot":"","sources":["../../src/d1/site.ts"],"names":[],"mappings":"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"}
|
package/dist/d1/storage.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { DatabaseDriver } from "../core/driver.js";
|
|
2
|
-
import type { StorageSchema } from "../core/dialect.js";
|
|
3
|
-
export type { StorageSchema };
|
|
4
|
-
export interface StorageChange {
|
|
5
|
-
readonly schema: string;
|
|
6
|
-
readonly code: "STORAGE_CHANGE_BLOCKED" | "STORAGE_TABLE_NOT_OWNED" | "STORAGE_UNDECLARED_COLUMN" | "STORAGE_UNDECLARED_INDEX";
|
|
7
|
-
readonly message: string;
|
|
8
|
-
}
|
|
9
|
-
export interface StorageReport {
|
|
10
|
-
/** Fingerprint matched: nothing but the fingerprint was read. */
|
|
11
|
-
readonly skipped: boolean;
|
|
12
|
-
readonly blocked: readonly StorageChange[];
|
|
13
|
-
readonly undeclared: readonly StorageChange[];
|
|
14
|
-
}
|
|
15
|
-
/** Converge storage to the plan. Blocked differences are reported and applied to nothing; a matching fingerprint reads nothing else. */
|
|
16
|
-
export declare function convergeStorage(driver: DatabaseDriver, plan: Readonly<Record<string, StorageSchema>>, options: {
|
|
17
|
-
fingerprint: string;
|
|
18
|
-
timeZone?: string;
|
|
19
|
-
}): Promise<StorageReport>;
|
|
20
|
-
/**
|
|
21
|
-
* What `convergeStorage` would apply to this database now, applying nothing (`mantle generate --check`, ADR-0033 decision 3).
|
|
22
|
-
* `skipped` when the database already booted this fingerprint, as boot would. The SQL replays: system DDL (only where Mantle
|
|
23
|
-
* never booted) is `IF NOT EXISTS`, `ADD COLUMN` comes from the current state, binds are inlined. The boot state and time
|
|
24
|
-
* zone rows are left to boot.
|
|
25
|
-
*/
|
|
26
|
-
export declare function planStorageChanges(driver: DatabaseDriver, plan: Readonly<Record<string, StorageSchema>>, options?: {
|
|
27
|
-
fingerprint?: string;
|
|
28
|
-
}): Promise<{
|
|
29
|
-
skipped: boolean;
|
|
30
|
-
sql: string[];
|
|
31
|
-
blocked: readonly StorageChange[];
|
|
32
|
-
undeclared: readonly StorageChange[];
|
|
33
|
-
}>;
|
|
34
|
-
//# sourceMappingURL=storage.d.ts.map
|
package/dist/d1/storage.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/d1/storage.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,0BAA0B,CAAC;IAC/H,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;AAyHD,wIAAwI;AACxI,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAC7C,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC,aAAa,CAAC,CA2BxB;AASD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAAC,CAU7Q"}
|
package/dist/d1/storage.js
DELETED
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Storage convergence (ADR-0033, amended by ADR-0034): the database is the state, the plan is the target.
|
|
3
|
-
* Safe differences are applied in one batch; blocked ones are reported and never touched; undeclared ones
|
|
4
|
-
* are reported and never dropped. STRICT tables, checks as triggers, and the FTS5 / R*Tree tables that back
|
|
5
|
-
* `search` and `format: geo` are Mantle's own and are rebuilt when their declaration changes.
|
|
6
|
-
*/
|
|
7
|
-
import { ftsTableName, geoTreeName, checkShapeProblem, storageColumns, parseNumeric, sideTableClashes } from "../spec/domain/index.js";
|
|
8
|
-
import { print } from "./print.js";
|
|
9
|
-
import { transitions, tzStatements } from "./tz.js";
|
|
10
|
-
const q = (id) => `"${id.replace(/"/g, '""')}"`;
|
|
11
|
-
const lit = (s) => `'${s.replace(/'/g, "''")}'`;
|
|
12
|
-
function colType(t) {
|
|
13
|
-
if (parseNumeric(t))
|
|
14
|
-
return "INTEGER";
|
|
15
|
-
switch (t) {
|
|
16
|
-
case "text":
|
|
17
|
-
case "json": return "TEXT";
|
|
18
|
-
case "integer":
|
|
19
|
-
case "bool":
|
|
20
|
-
case "timestamptz":
|
|
21
|
-
case "date": return "INTEGER";
|
|
22
|
-
case "real": return "REAL";
|
|
23
|
-
}
|
|
24
|
-
throw new Error(`no column type for ${t}`);
|
|
25
|
-
}
|
|
26
|
-
/** `stock >= 0` as IR -> `"new"."stock" >= 0`: the same printer as everything else. */
|
|
27
|
-
function checkText(expr, s) {
|
|
28
|
-
const problem = checkShapeProblem(expr, storageColumns(s));
|
|
29
|
-
if (problem)
|
|
30
|
-
throw new Error(problem);
|
|
31
|
-
const qualify = (v) => {
|
|
32
|
-
if (Array.isArray(v))
|
|
33
|
-
return v.map(qualify);
|
|
34
|
-
if (!v || typeof v !== "object")
|
|
35
|
-
return v;
|
|
36
|
-
if (v.ColumnRef?.fields?.length === 1)
|
|
37
|
-
return { ColumnRef: { fields: [{ String: { sval: "new" } }, v.ColumnRef.fields[0]] } };
|
|
38
|
-
return Object.fromEntries(Object.entries(v).map(([k, c]) => [k, qualify(c)]));
|
|
39
|
-
};
|
|
40
|
-
const select = { SelectStmt: { targetList: [{ ResTarget: { val: qualify(expr) } }], limitOption: "LIMIT_OPTION_DEFAULT", op: "SETOP_NONE" } };
|
|
41
|
-
return print(select).replace(/^SELECT\s+/i, "");
|
|
42
|
-
}
|
|
43
|
-
function desired(name, s) {
|
|
44
|
-
const t = q(name);
|
|
45
|
-
const columns = [
|
|
46
|
-
{ name: "_rid", type: "INTEGER", native: true },
|
|
47
|
-
{ name: "id", type: "TEXT", native: true },
|
|
48
|
-
{ name: "version", type: "INTEGER", native: true },
|
|
49
|
-
{ name: "created_at", type: "INTEGER", native: true },
|
|
50
|
-
{ name: "updated_at", type: "INTEGER", native: true },
|
|
51
|
-
{ name: "author_id", type: "TEXT", native: true },
|
|
52
|
-
...(s.scope ? [{ name: s.scope, type: "TEXT", native: true }] : []),
|
|
53
|
-
...(s.publishing ? [{ name: "status", type: "TEXT", native: true }] : []),
|
|
54
|
-
// the scope field is a declared property too, but it is the native column above
|
|
55
|
-
...Object.entries(s.fields).filter(([f]) => f !== s.scope).flatMap(([f, ty]) => ty === "geo" ? [{ name: `${f}_lat`, type: "REAL", native: false }, { name: `${f}_lng`, type: "REAL", native: false }] : [{ name: f, type: colType(ty), native: false }]),
|
|
56
|
-
];
|
|
57
|
-
const indexes = [
|
|
58
|
-
...(s.unique ?? []).map((u, i) => ({ name: `_mantle_uq_${name}_${i}`, unique: true, columns: s.scope && u[0] !== s.scope ? [s.scope, ...u] : [...u] })), // the grammar already starts a scoped unique index with the scope
|
|
59
|
-
...(s.indexes ?? []).map((cols, i) => ({ name: `_mantle_ix_${name}_${i}`, unique: false, columns: cols })),
|
|
60
|
-
].map((i) => ({ ...i, sql: `CREATE ${i.unique ? "UNIQUE " : ""}INDEX IF NOT EXISTS ${q(i.name)} ON ${t} (${i.columns.map(q).join(", ")})` }));
|
|
61
|
-
const triggers = [];
|
|
62
|
-
(s.checks ?? []).forEach((c, i) => {
|
|
63
|
-
const e = checkText(c, s);
|
|
64
|
-
for (const ev of ["INSERT", "UPDATE"])
|
|
65
|
-
triggers.push({ name: `_mantle_chk_${name}_${i}_${ev[0].toLowerCase()}`, sql: `CREATE TRIGGER ${q(`_mantle_chk_${name}_${i}_${ev[0].toLowerCase()}`)} BEFORE ${ev} ON ${t} WHEN NOT (${e}) BEGIN SELECT RAISE(ABORT, ${lit(`MANTLE_CHECK ${name}: ${e.replace(/\bnew\./g, "")}`)}); END` });
|
|
66
|
-
});
|
|
67
|
-
const virtuals = [];
|
|
68
|
-
if (s.search?.length) {
|
|
69
|
-
const fts = q(ftsTableName(name));
|
|
70
|
-
const f = s.search.map(q).join(", ");
|
|
71
|
-
const n = s.search.map((c) => `new.${q(c)}`).join(", ");
|
|
72
|
-
const o = s.search.map((c) => `old.${q(c)}`).join(", ");
|
|
73
|
-
virtuals.push({ name: ftsTableName(name), sql: `CREATE VIRTUAL TABLE ${fts} USING fts5(${f}, content=${lit(name)}, content_rowid='_rid', tokenize='trigram')`, rebuild: `INSERT INTO ${fts} (${fts}) VALUES ('rebuild')` });
|
|
74
|
-
triggers.push({ name: `_mantle_fts_${name}_i`, sql: `CREATE TRIGGER ${q(`_mantle_fts_${name}_i`)} AFTER INSERT ON ${t} BEGIN INSERT INTO ${fts} (rowid, ${f}) VALUES (new._rid, ${n}); END` }, { name: `_mantle_fts_${name}_d`, sql: `CREATE TRIGGER ${q(`_mantle_fts_${name}_d`)} AFTER DELETE ON ${t} BEGIN INSERT INTO ${fts} (${fts}, rowid, ${f}) VALUES ('delete', old._rid, ${o}); END` }, { name: `_mantle_fts_${name}_u`, sql: `CREATE TRIGGER ${q(`_mantle_fts_${name}_u`)} AFTER UPDATE OF ${f} ON ${t} BEGIN INSERT INTO ${fts} (${fts}, rowid, ${f}) VALUES ('delete', old._rid, ${o}); INSERT INTO ${fts} (rowid, ${f}) VALUES (new._rid, ${n}); END` });
|
|
75
|
-
}
|
|
76
|
-
// one R*Tree per geo field: near() reads the tree of the field it names
|
|
77
|
-
for (const [geo, ty] of Object.entries(s.fields)) {
|
|
78
|
-
if (ty !== "geo")
|
|
79
|
-
continue;
|
|
80
|
-
const tree = geoTreeName(name, geo);
|
|
81
|
-
const g = q(tree);
|
|
82
|
-
const la = q(`${geo}_lat`);
|
|
83
|
-
const ln = q(`${geo}_lng`);
|
|
84
|
-
virtuals.push({ name: tree, sql: `CREATE VIRTUAL TABLE ${g} USING rtree(id, minLat, maxLat, minLng, maxLng)`, rebuild: `INSERT INTO ${g} SELECT _rid, ${la}, ${la}, ${ln}, ${ln} FROM ${t} WHERE ${la} IS NOT NULL AND ${ln} IS NOT NULL` });
|
|
85
|
-
triggers.push({ name: `${tree}_i`, sql: `CREATE TRIGGER ${q(`${tree}_i`)} AFTER INSERT ON ${t} WHEN new.${la} IS NOT NULL AND new.${ln} IS NOT NULL BEGIN INSERT INTO ${g} VALUES (new._rid, new.${la}, new.${la}, new.${ln}, new.${ln}); END` }, { name: `${tree}_d`, sql: `CREATE TRIGGER ${q(`${tree}_d`)} AFTER DELETE ON ${t} BEGIN DELETE FROM ${g} WHERE id = old._rid; END` }, { name: `${tree}_u`, sql: `CREATE TRIGGER ${q(`${tree}_u`)} AFTER UPDATE OF ${la}, ${ln} ON ${t} BEGIN DELETE FROM ${g} WHERE id = old._rid; INSERT INTO ${g} SELECT new._rid, new.${la}, new.${la}, new.${ln}, new.${ln} WHERE new.${la} IS NOT NULL AND new.${ln} IS NOT NULL; END` });
|
|
86
|
-
}
|
|
87
|
-
return { table: name, columns, indexes, triggers, virtuals };
|
|
88
|
-
}
|
|
89
|
-
function createTable(d) {
|
|
90
|
-
const cols = d.columns.map((c) => {
|
|
91
|
-
if (c.name === "_rid")
|
|
92
|
-
return "_rid INTEGER PRIMARY KEY";
|
|
93
|
-
if (c.name === "id")
|
|
94
|
-
return "id TEXT NOT NULL UNIQUE";
|
|
95
|
-
if (c.name === "version")
|
|
96
|
-
return "version INTEGER NOT NULL DEFAULT 1";
|
|
97
|
-
if (c.name === "created_at")
|
|
98
|
-
return "created_at INTEGER NOT NULL";
|
|
99
|
-
if (c.name === "updated_at")
|
|
100
|
-
return "updated_at INTEGER NOT NULL DEFAULT 0";
|
|
101
|
-
if (c.name === "author_id")
|
|
102
|
-
return "author_id TEXT";
|
|
103
|
-
if (c.name === "status")
|
|
104
|
-
return "status TEXT NOT NULL DEFAULT 'draft'";
|
|
105
|
-
return `${q(c.name)} ${c.type}${c.native && c.type === "TEXT" ? " NOT NULL" : ""}`;
|
|
106
|
-
});
|
|
107
|
-
// `_rid` aliases rowid: FTS5's content_rowid and the R*Tree key on it, and an unaliased rowid may change on VACUUM
|
|
108
|
-
return `CREATE TABLE IF NOT EXISTS ${q(d.table)} (${cols.join(", ")}) STRICT`;
|
|
109
|
-
}
|
|
110
|
-
/** System tables every site has. `_mantle_assert` turns a wrong `changes()` into `CONFLICT op=k` and keeps no rows. */
|
|
111
|
-
const SYSTEM_DDL = [
|
|
112
|
-
"CREATE TABLE IF NOT EXISTS _mantle_assert (op INTEGER, ok INTEGER)",
|
|
113
|
-
"CREATE TRIGGER IF NOT EXISTS _mantle_assert_t BEFORE INSERT ON _mantle_assert BEGIN SELECT CASE WHEN new.ok IS NOT 1 THEN RAISE(ABORT, 'CONFLICT op=' || new.op) ELSE RAISE(IGNORE) END; END",
|
|
114
|
-
"CREATE TABLE IF NOT EXISTS _mantle_tz (from_us INTEGER PRIMARY KEY, offset_us INTEGER NOT NULL) STRICT",
|
|
115
|
-
"CREATE TABLE IF NOT EXISTS _mantle_boot_state (key TEXT PRIMARY KEY, value TEXT NOT NULL) STRICT",
|
|
116
|
-
"CREATE TABLE IF NOT EXISTS _mantle_schema_tables (name TEXT PRIMARY KEY) STRICT",
|
|
117
|
-
];
|
|
118
|
-
/** Converge storage to the plan. Blocked differences are reported and applied to nothing; a matching fingerprint reads nothing else. */
|
|
119
|
-
export async function convergeStorage(driver, plan, options) {
|
|
120
|
-
const timeZone = options.timeZone ?? "UTC";
|
|
121
|
-
const state = `${options.fingerprint}|${timeZone}`;
|
|
122
|
-
await driver.batch([...SYSTEM_DDL.map((sql) => ({ sql })), { sql: "INSERT OR IGNORE INTO _mantle_boot_state (key, value) VALUES ('instance', ?1)", binds: [crypto.randomUUID()] }]);
|
|
123
|
-
const [stored] = await driver.batch([{ sql: "SELECT key, value FROM _mantle_boot_state WHERE key IN ('fingerprint', 'timezone')" }]);
|
|
124
|
-
const booted = new Map(stored.rows.map((r) => [r.key, r.value]));
|
|
125
|
-
if (booted.get("fingerprint") === state)
|
|
126
|
-
return { skipped: true, blocked: [], undeclared: [] };
|
|
127
|
-
// the zone's transitions cost hundreds of milliseconds of CPU to compute: only a changed zone rewrites them, not every plan change
|
|
128
|
-
const tz = booted.get("timezone") === timeZone ? [] : [...tzStatements(transitions(timeZone)).map((sql) => ({ sql })), { sql: "INSERT OR REPLACE INTO _mantle_boot_state (key, value) VALUES ('timezone', ?1)", binds: [timeZone] }];
|
|
129
|
-
for (let attempt = 0;; attempt++) {
|
|
130
|
-
const { statements, blocked, undeclared, uniques } = await diff(driver, plan);
|
|
131
|
-
if (blocked.length)
|
|
132
|
-
return { skipped: false, blocked, undeclared };
|
|
133
|
-
statements.push(...tz);
|
|
134
|
-
statements.push({ sql: "INSERT OR REPLACE INTO _mantle_boot_state (key, value) VALUES ('fingerprint', ?1)", binds: [state] });
|
|
135
|
-
try {
|
|
136
|
-
await driver.batch(statements);
|
|
137
|
-
return { skipped: false, blocked: [], undeclared };
|
|
138
|
-
}
|
|
139
|
-
catch (e) {
|
|
140
|
-
const message = e instanceof Error ? e.message : String(e);
|
|
141
|
-
// a concurrent cold start applied the same ADD COLUMN: introspect again and let the diff decide
|
|
142
|
-
if (/duplicate column name|already exists/i.test(message) && attempt < 2)
|
|
143
|
-
continue;
|
|
144
|
-
if (/UNIQUE constraint failed/i.test(message) && uniques.length)
|
|
145
|
-
return { skipped: false, blocked: uniques.map((u) => ({ schema: u.schema, code: "STORAGE_CHANGE_BLOCKED", message: `unique index ${u.index} cannot be created: existing rows break it (${message}); dedupe the data, then rerun` })), undeclared };
|
|
146
|
-
throw e;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/** Tables the platform creates itself (Better Auth, media, site config); a Schema may not take these names. */
|
|
151
|
-
const RESERVED_TABLES = new Set([
|
|
152
|
-
"entries", "_migrations", "d1_migrations", "site_config", "user", "session", "account", "verification", "jwks",
|
|
153
|
-
"oauthclient", "oauthresource", "oauthclientresource", "oauthrefreshtoken", "oauthaccesstoken", "oauthconsent", "oauthclientassertion",
|
|
154
|
-
"media_assets", "pending_media_uploads",
|
|
155
|
-
]);
|
|
156
|
-
/**
|
|
157
|
-
* What `convergeStorage` would apply to this database now, applying nothing (`mantle generate --check`, ADR-0033 decision 3).
|
|
158
|
-
* `skipped` when the database already booted this fingerprint, as boot would. The SQL replays: system DDL (only where Mantle
|
|
159
|
-
* never booted) is `IF NOT EXISTS`, `ADD COLUMN` comes from the current state, binds are inlined. The boot state and time
|
|
160
|
-
* zone rows are left to boot.
|
|
161
|
-
*/
|
|
162
|
-
export async function planStorageChanges(driver, plan, options = {}) {
|
|
163
|
-
const [sys] = await driver.batch([{ sql: "SELECT name FROM sqlite_schema WHERE name IN ('_mantle_boot_state', '_mantle_schema_tables')" }]);
|
|
164
|
-
const have = new Set(sys.rows.map((r) => r.name));
|
|
165
|
-
if (options.fingerprint !== undefined && have.has("_mantle_boot_state")) {
|
|
166
|
-
const [b] = await driver.batch([{ sql: "SELECT value FROM _mantle_boot_state WHERE key = 'fingerprint'" }]);
|
|
167
|
-
if (String(b.rows[0]?.value ?? "").startsWith(`${options.fingerprint}|`))
|
|
168
|
-
return { skipped: true, sql: [], blocked: [], undeclared: [] };
|
|
169
|
-
}
|
|
170
|
-
const { statements, blocked, undeclared } = await diff(driver, plan);
|
|
171
|
-
const inline = (s) => (s.binds ? s.sql.replace(/\?(\d+)/g, (_, n) => lit(String(s.binds[Number(n) - 1]))) : s.sql);
|
|
172
|
-
return { skipped: false, sql: [...(have.has("_mantle_schema_tables") ? [] : SYSTEM_DDL), ...statements.map(inline)], blocked, undeclared };
|
|
173
|
-
}
|
|
174
|
-
async function diff(driver, plan) {
|
|
175
|
-
const statements = [];
|
|
176
|
-
const blocked = [];
|
|
177
|
-
const undeclared = [];
|
|
178
|
-
const uniques = [];
|
|
179
|
-
const block = (schema, message, code = "STORAGE_CHANGE_BLOCKED") => blocked.push({ schema, code, message });
|
|
180
|
-
const [objects] = await driver.batch([{ sql: "SELECT type, name, tbl_name, sql FROM sqlite_schema WHERE name NOT LIKE 'sqlite\\_%' ESCAPE '\\'" }]);
|
|
181
|
-
// SQLite identifiers are case-insensitive, so ownership and lookup are too.
|
|
182
|
-
const byName = new Map(objects.rows.map((r) => [String(r.name).toLowerCase(), r]));
|
|
183
|
-
// a dry run creates nothing, so on a database Mantle never booted the registry does not exist yet
|
|
184
|
-
const owned = !byName.has("_mantle_schema_tables") ? [] : (await driver.batch([{ sql: "SELECT name FROM _mantle_schema_tables" }]))[0].rows;
|
|
185
|
-
const ownedNames = new Set(owned.map((r) => String(r.name).toLowerCase()));
|
|
186
|
-
// a search or geo table is named for its Schema (and field): two declarations that would name one object are refused
|
|
187
|
-
for (const c of sideTableClashes(plan))
|
|
188
|
-
block(c.schema, c.message);
|
|
189
|
-
for (const [name, schema] of Object.entries(plan)) {
|
|
190
|
-
const d = desired(name, schema);
|
|
191
|
-
const t = q(name);
|
|
192
|
-
if (RESERVED_TABLES.has(name.toLowerCase()) || name.toLowerCase().startsWith("_mantle_")) {
|
|
193
|
-
block(name, `table name ${name} is reserved for Mantle and Better Auth`, "STORAGE_TABLE_NOT_OWNED");
|
|
194
|
-
continue;
|
|
195
|
-
}
|
|
196
|
-
const existing = byName.get(name.toLowerCase());
|
|
197
|
-
if (existing && !ownedNames.has(name.toLowerCase())) {
|
|
198
|
-
block(name, `table ${name} exists and Mantle did not create it, so it is not read or written`, "STORAGE_TABLE_NOT_OWNED");
|
|
199
|
-
continue;
|
|
200
|
-
}
|
|
201
|
-
if (!existing) {
|
|
202
|
-
statements.push({ sql: createTable(d) }, { sql: "INSERT OR IGNORE INTO _mantle_schema_tables (name) VALUES (?1)", binds: [name] }, ...d.indexes.map((i) => ({ sql: i.sql })));
|
|
203
|
-
if (d.indexes.some((i) => i.unique))
|
|
204
|
-
for (const i of d.indexes)
|
|
205
|
-
if (i.unique)
|
|
206
|
-
uniques.push({ schema: name, index: i.name });
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
const [info, idx] = await driver.batch([
|
|
210
|
-
{ sql: "SELECT name, type, pk FROM pragma_table_info(?1)", binds: [name] },
|
|
211
|
-
{ sql: "SELECT il.name AS name, il.\"unique\" AS uniq, il.origin AS origin, il.partial AS partial, ii.name AS col FROM pragma_index_list(?1) il, pragma_index_info(il.name) ii ORDER BY il.name, ii.seqno", binds: [name] },
|
|
212
|
-
]);
|
|
213
|
-
const have = new Map(info.rows.map((r) => [String(r.name), String(r.type).toUpperCase()]));
|
|
214
|
-
const pk = new Map(info.rows.map((r) => [String(r.name), Number(r.pk)]));
|
|
215
|
-
for (const c of d.columns) {
|
|
216
|
-
const actual = have.get(c.name);
|
|
217
|
-
if (actual === undefined) {
|
|
218
|
-
if (c.name === "_rid")
|
|
219
|
-
block(name, `${name} has no _rid, which must be the table's INTEGER PRIMARY KEY (the rowid alias FTS5 and the R*Tree key on) and cannot be added to a table; copy the data into a table Mantle creates`);
|
|
220
|
-
else if (c.native)
|
|
221
|
-
block(name, `${name} lacks the native column ${c.name}; add it, or copy the data into a table Mantle creates`);
|
|
222
|
-
else
|
|
223
|
-
statements.push({ sql: `ALTER TABLE ${t} ADD COLUMN ${q(c.name)} ${c.type}` });
|
|
224
|
-
}
|
|
225
|
-
else if (c.name === "_rid" && pk.get("_rid") !== 1)
|
|
226
|
-
block(name, `${name}._rid is not the table's INTEGER PRIMARY KEY, so it does not alias the rowid; copy the data into a table Mantle creates`);
|
|
227
|
-
else if (actual !== c.type && !(c.name === "_rid" && actual === "INTEGER"))
|
|
228
|
-
block(name, `${name}.${c.name} is ${actual}, the plan says ${c.type}; a column's type is never altered`);
|
|
229
|
-
}
|
|
230
|
-
const declared = new Set(d.columns.map((c) => c.name));
|
|
231
|
-
for (const c of have.keys())
|
|
232
|
-
if (!declared.has(c))
|
|
233
|
-
undeclared.push({ schema: name, code: "STORAGE_UNDECLARED_COLUMN", message: `${name}.${c} is in the database and not in the plan; it is kept` });
|
|
234
|
-
const actualIdx = new Map();
|
|
235
|
-
for (const r of idx.rows) {
|
|
236
|
-
const e = actualIdx.get(String(r.name)) ?? { unique: r.uniq === 1, cols: [], origin: String(r.origin), partial: r.partial === 1 };
|
|
237
|
-
e.cols.push(String(r.col));
|
|
238
|
-
actualIdx.set(String(r.name), e);
|
|
239
|
-
}
|
|
240
|
-
for (const i of d.indexes) {
|
|
241
|
-
const a = actualIdx.get(i.name);
|
|
242
|
-
if (!a) {
|
|
243
|
-
statements.push({ sql: i.sql });
|
|
244
|
-
if (i.unique)
|
|
245
|
-
uniques.push({ schema: name, index: i.name });
|
|
246
|
-
}
|
|
247
|
-
else if (a.unique !== i.unique || a.partial || a.cols.join() !== i.columns.join())
|
|
248
|
-
block(name, `index ${i.name} exists with other columns, uniqueness or a WHERE; drop it and rerun`);
|
|
249
|
-
}
|
|
250
|
-
const declaredIdx = new Set(d.indexes.map((i) => i.name));
|
|
251
|
-
for (const [n, a] of actualIdx) {
|
|
252
|
-
// a column UNIQUE is a constraint too, and it would leak across owners; only the `id` UNIQUE (ours) and primary keys pass
|
|
253
|
-
if (a.origin === "u" && a.unique && a.cols.join() !== "id")
|
|
254
|
-
block(name, `${name} has a UNIQUE constraint on ${a.cols.join(", ")} that Mantle did not declare; it still constrains writes`);
|
|
255
|
-
if (declaredIdx.has(n) || a.origin !== "c")
|
|
256
|
-
continue;
|
|
257
|
-
if (a.unique)
|
|
258
|
-
block(name, `undeclared unique index ${n} still constrains writes; drop it or declare it`);
|
|
259
|
-
else
|
|
260
|
-
undeclared.push({ schema: name, code: "STORAGE_UNDECLARED_INDEX", message: schema.scope && n === `_mantle_scope_${name}` ? `index ${n} is redundant: a declared index leads with ${schema.scope}; drop it by hand` : `index ${n} is in the database and not in the plan; it is kept` });
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
// Mantle's own triggers and search / geo tables: rebuilt when their declaration changes, dropped when it goes away
|
|
264
|
-
const wantTriggers = new Set(d.triggers.map((x) => x.name));
|
|
265
|
-
for (const r of byName.values())
|
|
266
|
-
if (r.type === "trigger" && r.tbl_name === name && String(r.name).startsWith("_mantle_") && !wantTriggers.has(String(r.name))) {
|
|
267
|
-
statements.push({ sql: `DROP TRIGGER IF EXISTS ${q(String(r.name))}` });
|
|
268
|
-
// the insert trigger of a search or geo table names it: a declaration that went away takes its table with it (a name
|
|
269
|
-
// alone is not evidence, an FTS5 or R*Tree shadow table of another Schema can look the same)
|
|
270
|
-
const tree = /^(_mantle_(?:fts|geo)_.+)_i$/.exec(String(r.name));
|
|
271
|
-
if (tree && byName.get(tree[1])?.sql?.toString().startsWith("CREATE VIRTUAL TABLE"))
|
|
272
|
-
statements.push({ sql: `DROP TABLE IF EXISTS ${q(tree[1])}` });
|
|
273
|
-
}
|
|
274
|
-
for (const v of d.virtuals) {
|
|
275
|
-
const cur = byName.get(v.name);
|
|
276
|
-
if (cur?.sql === v.sql)
|
|
277
|
-
continue;
|
|
278
|
-
// a virtual table's triggers reference it, so they are dropped and recreated with it
|
|
279
|
-
statements.push({ sql: `DROP TABLE IF EXISTS ${q(v.name)}` }, { sql: v.sql }, { sql: v.rebuild });
|
|
280
|
-
}
|
|
281
|
-
for (const tr of d.triggers) {
|
|
282
|
-
if (byName.get(tr.name)?.sql !== tr.sql)
|
|
283
|
-
statements.push({ sql: `DROP TRIGGER IF EXISTS ${q(tr.name)}` }, { sql: tr.sql });
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
return { statements, blocked, undeclared, uniques };
|
|
287
|
-
}
|
|
288
|
-
//# sourceMappingURL=storage.js.map
|
package/dist/d1/storage.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/d1/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/d1/tz.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export interface Local {
|
|
2
|
-
readonly y: number;
|
|
3
|
-
readonly mo: number;
|
|
4
|
-
readonly d: number;
|
|
5
|
-
readonly h: number;
|
|
6
|
-
readonly mi: number;
|
|
7
|
-
readonly s: number;
|
|
8
|
-
/** UTC offset in seconds. */
|
|
9
|
-
readonly off: number;
|
|
10
|
-
}
|
|
11
|
-
/** Wall-clock parts of an instant (whole seconds since the epoch) in a zone. */
|
|
12
|
-
export declare function localParts(timeZone: string, epochSec: number): Local;
|
|
13
|
-
export interface TzRow {
|
|
14
|
-
readonly from_us: number;
|
|
15
|
-
readonly offset_us: number;
|
|
16
|
-
}
|
|
17
|
-
/** Rows `{ from_us, offset_us }`: from `from_us` on, local = UTC + offset_us. The first row starts at the beginning of time. */
|
|
18
|
-
export declare function transitions(timeZone: string, fromYear?: number, toYear?: number): TzRow[];
|
|
19
|
-
/** Statements that replace `_mantle_tz`, chunked below D1's 100 KB limit (values are literals: D1 binds at most 100). */
|
|
20
|
-
export declare function tzStatements(rows: readonly TzRow[], chunk?: number): string[];
|
|
21
|
-
//# sourceMappingURL=tz.d.ts.map
|
package/dist/d1/tz.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz.d.ts","sourceRoot":"","sources":["../../src/d1/tz.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACzH,6BAA6B;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AACD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAOpE;AAGD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,gIAAgI;AAChI,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAO,EAAE,MAAM,SAAO,GAAG,KAAK,EAAE,CAuBrF;AAED,yHAAyH;AACzH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,SAAM,GAAG,MAAM,EAAE,CAK1E"}
|
package/dist/d1/tz.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `_mantle_tz`: the site time zone's UTC-offset transitions, generated with Intl.DateTimeFormat (whose tzdata
|
|
3
|
-
* ships with workerd and Node), so no time zone library is bundled (ADR-0034 decision 5).
|
|
4
|
-
*/
|
|
5
|
-
const US = 1_000_000;
|
|
6
|
-
const formatters = new Map();
|
|
7
|
-
/** Wall-clock parts of an instant (whole seconds since the epoch) in a zone. */
|
|
8
|
-
export function localParts(timeZone, epochSec) {
|
|
9
|
-
let f = formatters.get(timeZone);
|
|
10
|
-
if (!f)
|
|
11
|
-
formatters.set(timeZone, (f = new Intl.DateTimeFormat("en-US", { timeZone, hourCycle: "h23", year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric" })));
|
|
12
|
-
const p = {};
|
|
13
|
-
for (const { type, value } of f.formatToParts(new Date(epochSec * 1000)))
|
|
14
|
-
if (type !== "literal")
|
|
15
|
-
p[type] = +value;
|
|
16
|
-
const h = p.hour === 24 ? 0 : p.hour;
|
|
17
|
-
return { y: p.year, mo: p.month, d: p.day, h, mi: p.minute, s: p.second, off: Date.UTC(p.year, p.month - 1, p.day, h, p.minute, p.second) / 1000 - epochSec };
|
|
18
|
-
}
|
|
19
|
-
const offsetSeconds = (timeZone, epochSec) => localParts(timeZone, epochSec).off;
|
|
20
|
-
/** Rows `{ from_us, offset_us }`: from `from_us` on, local = UTC + offset_us. The first row starts at the beginning of time. */
|
|
21
|
-
export function transitions(timeZone, fromYear = 1900, toYear = 2200) {
|
|
22
|
-
const start = Date.UTC(fromYear, 0, 1) / 1000;
|
|
23
|
-
const end = Date.UTC(toYear, 0, 1) / 1000;
|
|
24
|
-
const step = 3 * 86400;
|
|
25
|
-
let prevT = start;
|
|
26
|
-
let prevO = offsetSeconds(timeZone, start);
|
|
27
|
-
const rows = [{ from_us: -Number.MAX_SAFE_INTEGER, offset_us: prevO * US }];
|
|
28
|
-
for (let t = start + step; t <= end; t += step) {
|
|
29
|
-
const o = offsetSeconds(timeZone, t);
|
|
30
|
-
if (o !== prevO) {
|
|
31
|
-
let lo = prevT;
|
|
32
|
-
let hi = t; // offset(lo) = prevO, offset(hi) = o: find the first second with the new offset
|
|
33
|
-
while (hi - lo > 1) {
|
|
34
|
-
const mid = Math.floor((lo + hi) / 2);
|
|
35
|
-
if (offsetSeconds(timeZone, mid) === prevO)
|
|
36
|
-
lo = mid;
|
|
37
|
-
else
|
|
38
|
-
hi = mid;
|
|
39
|
-
}
|
|
40
|
-
rows.push({ from_us: hi * US, offset_us: o * US });
|
|
41
|
-
prevO = o;
|
|
42
|
-
}
|
|
43
|
-
prevT = t;
|
|
44
|
-
}
|
|
45
|
-
return rows;
|
|
46
|
-
}
|
|
47
|
-
/** Statements that replace `_mantle_tz`, chunked below D1's 100 KB limit (values are literals: D1 binds at most 100). */
|
|
48
|
-
export function tzStatements(rows, chunk = 200) {
|
|
49
|
-
const out = ["DELETE FROM _mantle_tz"];
|
|
50
|
-
for (let i = 0; i < rows.length; i += chunk)
|
|
51
|
-
out.push(`INSERT INTO _mantle_tz (from_us, offset_us) VALUES ${rows.slice(i, i + chunk).map((r) => `(${r.from_us}, ${r.offset_us})`).join(", ")}`);
|
|
52
|
-
return out;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=tz.js.map
|
package/dist/d1/tz.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz.js","sourceRoot":"","sources":["../../src/d1/tz.ts"],"names":[],"mappings":"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"}
|
package/dist/d1/validator.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The D1 dialect's allowlist: Mantle SQL's base profile (ADR-0037 decision 1). A construct only the reference profile accepts
|
|
3
|
-
* is refused as needing the PostgreSQL dialect, so an author can tell an engine limit from a mistake.
|
|
4
|
-
*/
|
|
5
|
-
import { type SqlContext, type SqlDiagnostic, type SqlNode as N, type SqlPlan } from "../spec/domain/model/SqlIr.js";
|
|
6
|
-
export declare function validateProgram(stmts: N[], ctx: SqlContext & {
|
|
7
|
-
source?: string;
|
|
8
|
-
}, locs?: (number | undefined)[]): void;
|
|
9
|
-
export declare function validateIr(plan: SqlPlan, ctx: SqlContext): readonly SqlDiagnostic[];
|
|
10
|
-
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/d1/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,IAAI,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAWjI,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,GAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAO,GAAG,IAAI,CAO1H;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,aAAa,EAAE,CAGnF"}
|
package/dist/d1/validator.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The D1 dialect's allowlist: Mantle SQL's base profile (ADR-0037 decision 1). A construct only the reference profile accepts
|
|
3
|
-
* is refused as needing the PostgreSQL dialect, so an author can tell an engine limit from a mistake.
|
|
4
|
-
*/
|
|
5
|
-
import { PG_GRAMMAR } from "../spec/domain/model/SqlIr.js";
|
|
6
|
-
import { SqlRefusal } from "../spec/domain/service/SqlRefusal.js";
|
|
7
|
-
import { PROFILES, validateIr as check, validateProgram as accept } from "../core/sql/allowlist.js";
|
|
8
|
-
const POSTGRES_ONLY = "needs the PostgreSQL dialect; D1 runs Mantle SQL's base subset (ADR-0037)";
|
|
9
|
-
/** Would the reference profile accept what base refused? */
|
|
10
|
-
function postgresOnly(stmts, ctx) {
|
|
11
|
-
try {
|
|
12
|
-
accept(stmts, ctx, [], PROFILES.reference);
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export function validateProgram(stmts, ctx, locs = []) {
|
|
20
|
-
try {
|
|
21
|
-
accept(stmts, ctx, locs, PROFILES.base);
|
|
22
|
-
}
|
|
23
|
-
catch (e) {
|
|
24
|
-
if (e instanceof SqlRefusal && postgresOnly(stmts, ctx))
|
|
25
|
-
e.message = `${e.message}: ${POSTGRES_ONLY}`;
|
|
26
|
-
throw e;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
export function validateIr(plan, ctx) {
|
|
30
|
-
const d = check(plan, ctx, PROFILES.base);
|
|
31
|
-
return d.length && plan?.grammar === PG_GRAMMAR && Array.isArray(plan.stmts) && postgresOnly(plan.stmts, ctx) ? [{ ...d[0], message: `${d[0].message}: ${POSTGRES_ONLY}` }] : d;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=validator.js.map
|
package/dist/d1/validator.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/d1/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAwE,MAAM,+BAA+B,CAAC;AACjI,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,UAAU,IAAI,KAAK,EAAE,eAAe,IAAI,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEpG,MAAM,aAAa,GAAG,2EAA2E,CAAC;AAElG,4DAA4D;AAC5D,SAAS,YAAY,CAAC,KAAU,EAAE,GAAe;IAC/C,IAAI,CAAC;QAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAU,EAAE,GAAqC,EAAE,OAA+B,EAAE;IAClH,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,UAAU,IAAI,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;YAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QACtG,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAa,EAAE,GAAe;IACvD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,KAAK,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3L,CAAC"}
|