@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
|
@@ -1,138 +1,202 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
# Application-owned service composition
|
|
2
|
+
|
|
3
|
+
Read the exact installed SDK/Admin versions. The [Native Admin guide](../guides/native-admin.md)
|
|
4
|
+
is the authority for generated collection bindings and retained console behavior.
|
|
5
|
+
|
|
6
|
+
The app owns `fetch`, native database handles, pools, auth options and deployment.
|
|
7
|
+
Select generated modules by importing them; omitted modules stay out of the bundle.
|
|
8
|
+
Keep application routing source outside
|
|
9
|
+
the generated directory. The [auth template](authentication.md), [surface contracts](../reference/surface.md)
|
|
10
|
+
and [media wiring](media-r2.md) describe the selected capabilities.
|
|
11
|
+
|
|
12
|
+
Mount auth (including discovery), consent, Admin, MCP and REST in that order,
|
|
13
|
+
matching 0.2. `authRoutes` owns both auth and consent paths. Supply one lazy,
|
|
14
|
+
request-local resolver to those surfaces, memoizing read-only and fresh authority
|
|
15
|
+
separately so a cached read cannot authorize a write. All cookie-session mutations
|
|
16
|
+
use the shared origin check. A custom identity
|
|
17
|
+
supplies the same verified `Caller`; absent directory/role facets remain absent.
|
|
18
|
+
Never construct a system Caller from credentials or request input.
|
|
19
|
+
|
|
20
|
+
Generate `Env` from the Wrangler config; do not hand-write it. Declare secrets
|
|
21
|
+
under `secrets.required`, run `pnpm exec wrangler types --include-runtime=false`,
|
|
22
|
+
add `worker-configuration.d.ts` to `tsconfig.json` and commit it.
|
|
23
|
+
`@cloudflare/workers-types` still supplies runtime types. Rerun after every binding
|
|
24
|
+
change; `wrangler types --include-runtime=false --check` fails on drift.
|
|
25
|
+
Once `secrets.required` is set, `wrangler dev` loads only those keys from
|
|
26
|
+
`.dev.vars`/`.env`, so declare every secret the app reads.
|
|
5
27
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
28
|
+
```ts
|
|
29
|
+
// src/worker.ts — application-owned; choose imports for the features you use.
|
|
30
|
+
import { authLoader, resolveCaller } from '@aotter/mantle/auth';
|
|
31
|
+
import { authRoutes } from '@aotter/mantle/auth/routes';
|
|
32
|
+
import { withAuthTasks } from '@aotter/mantle/auth/hardening';
|
|
33
|
+
import { checkOrigin, surfaceFailure, type Caller } from '@aotter/mantle/contracts';
|
|
34
|
+
import { admin } from '@aotter/mantle-admin/server';
|
|
35
|
+
import { entries } from '@aotter/mantle-admin/server/entries';
|
|
36
|
+
import { adminBindings } from '../generated/admin-bindings.js';
|
|
37
|
+
import { adminAssets } from './admin-assets.js'; // app-owned SPA shell, assets and CSP
|
|
38
|
+
import { mcp } from '../generated/mcp.js';
|
|
39
|
+
import { rest } from '../generated/rest.js';
|
|
40
|
+
import { handlers } from './handlers.js'; // omit when there are no ref Procedures
|
|
41
|
+
|
|
42
|
+
// Env comes from worker-configuration.d.ts: declare DB, ASSETS, the email provider binding
|
|
43
|
+
// and the ORIGIN, AUTH_SECRET and ADMIN_EMAIL secrets in Wrangler.
|
|
44
|
+
let auth: import('@aotter/mantle/auth').AuthLoader<ReturnType<typeof import('./auth.js').createAuth>> | undefined;
|
|
45
|
+
export default {
|
|
46
|
+
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
|
|
47
|
+
return withAuthTasks(ctx.waitUntil.bind(ctx), async () => {
|
|
48
|
+
auth ??= authLoader(() => import('./auth.js').then(m => m.createAuth(env)));
|
|
49
|
+
const headers = new Headers(); // retain Better Auth's sliding-session cookies
|
|
50
|
+
let authority: Promise<Caller> | undefined, readAuthority: Promise<Caller> | undefined;
|
|
51
|
+
const resolve = (readOnly: boolean) => resolveCaller(request, auth!, {
|
|
52
|
+
readOnly,
|
|
53
|
+
audience: [`${env.ORIGIN}/mcp`, `${env.ORIGIN}/mcp/admin`],
|
|
54
|
+
responseHeaders: headers,
|
|
55
|
+
}).then(value => { checkOrigin(request, value); return value; });
|
|
56
|
+
const caller = (_request?: Request, _env?: Env, classification = { readOnly: false }) =>
|
|
57
|
+
classification.readOnly ? readAuthority ??= resolve(true) : authority ??= resolve(false);
|
|
58
|
+
const options = { db: (env: Env) => env.DB, caller, handlers };
|
|
59
|
+
const bindings = adminBindings({ handlers }); // use adminBindings() without ref Procedures
|
|
60
|
+
const routes = [
|
|
61
|
+
authRoutes(auth, { methods: [{ kind: 'email-otp' }], resolver: caller }),
|
|
62
|
+
admin(bindings.metadata, bindings.views, bindings.operations, {
|
|
63
|
+
...options, routes: entries(bindings.schemas, bindings.adapter),
|
|
64
|
+
}),
|
|
65
|
+
mcp(options),
|
|
66
|
+
rest(options),
|
|
67
|
+
];
|
|
68
|
+
try {
|
|
69
|
+
for (const route of routes) {
|
|
70
|
+
const response = await route(request, env);
|
|
71
|
+
if (!response) continue;
|
|
72
|
+
if (!headers.getSetCookie().length) return response;
|
|
73
|
+
const result = new Response(response.body, response);
|
|
74
|
+
for (const cookie of headers.getSetCookie()) result.headers.append('set-cookie', cookie);
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
const asset = await adminAssets(request, env);
|
|
78
|
+
if (asset) return asset;
|
|
79
|
+
// Your public frontend/web.ts routes can use an anonymous Caller without
|
|
80
|
+
// loading auth; their generated SQL still controls publication visibility.
|
|
81
|
+
return new Response('Not found', { status: 404, headers: { 'cache-control': 'no-store' } });
|
|
82
|
+
} catch (error) { return surfaceFailure(error); }
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
```
|
|
16
87
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
88
|
+
Remove imports and array entries for omitted surfaces. `mcp.ts` exists only when
|
|
89
|
+
the manifest has an MCP surface, and requires the documented optional MCP peer.
|
|
90
|
+
Pass the same handlers to each selected surface that exposes ref Procedures.
|
|
91
|
+
Bind site/media/identity and extension capabilities through the selected Admin/MCP
|
|
92
|
+
options; do not expose native auth administrative routes without `authRoutes` or
|
|
93
|
+
`guardAuthAdminRequest`. `withAuthTasks` retains background callbacks on the
|
|
94
|
+
current request's context; `authHardening` configures the background handler.
|
|
95
|
+
Select `--admin` to emit `admin-bindings.ts`. Admin's API is a separate
|
|
96
|
+
`@aotter/mantle-admin` package; the SDK never imports it. The API handles only
|
|
97
|
+
`/admin/api`. The app-owned asset route serves the built shell for `/admin` and
|
|
98
|
+
client routes, including `/admin/sign-in`, and preserves missing asset 404s.
|
|
99
|
+
Allow its built import map through the exact CSP hash documented by the installed
|
|
100
|
+
Admin package. Collection statistics use the generated shared `statisticsView`:
|
|
101
|
+
its collection parameter selects only a generated table and visibility policy.
|
|
102
|
+
|
|
103
|
+
## Workers assets and secrets
|
|
104
|
+
|
|
105
|
+
`mantle generate cloudflare-d1 generated manifests/*.yaml --auth src/auth.ts --admin`
|
|
106
|
+
updates the split-build Wrangler keys. Configure the rest explicitly; JSONC
|
|
107
|
+
comments and unrelated settings survive regeneration:
|
|
20
108
|
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const staffMcp = guard(createMcpSurface(runtime, { basePath: "/mcp/staff", surface: "staff", apps: { resources: [planApp(runtime.plan, { surface: "staff", html: mantleAppHtml })] }, resourceMetadata }), { resourceMetadata });
|
|
31
|
-
const rest = guard(createRestSurface(runtime, { basePath: "/api" }));
|
|
32
|
-
return async (request, waitUntil) => {
|
|
33
|
-
const owned = await authRoutes(request, { waitUntil });
|
|
34
|
-
if (owned) return owned;
|
|
35
|
-
if (under("/admin")) return admin(request);
|
|
36
|
-
if (under("/mcp/staff")) return staffMcp(request);
|
|
37
|
-
if (under("/mcp")) return mcp(request);
|
|
38
|
-
return rest(request);
|
|
39
|
-
};
|
|
109
|
+
```jsonc
|
|
110
|
+
{
|
|
111
|
+
"assets": {
|
|
112
|
+
"directory": "node_modules/@aotter/mantle-admin/dist/admin",
|
|
113
|
+
"binding": "ASSETS",
|
|
114
|
+
"run_worker_first": true,
|
|
115
|
+
"html_handling": "none"
|
|
116
|
+
},
|
|
117
|
+
"d1_databases": [{ "binding": "DB", "database_name": "your-database", "database_id": "your-id" }]
|
|
40
118
|
}
|
|
119
|
+
```
|
|
41
120
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
121
|
+
`run_worker_first` lets the application supply shell/security/cache headers;
|
|
122
|
+
`none` keeps `index.html` available by name. Admin assets are not a public database
|
|
123
|
+
API. PostgreSQL uses application-owned Hyperdrive/postgres.js wiring,
|
|
124
|
+
with Hyperdrive query caching disabled for authority and mutation visibility.
|
|
125
|
+
|
|
126
|
+
Commit `.dev.vars.example` containing variable names and placeholders only:
|
|
46
127
|
|
|
47
|
-
|
|
128
|
+
```dotenv
|
|
129
|
+
ORIGIN=http://localhost:8787
|
|
130
|
+
ADMIN_EMAIL=you@example.test
|
|
131
|
+
AUTH_SECRET=replace-with-a-random-secret
|
|
48
132
|
```
|
|
49
133
|
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
134
|
+
Copy it to ignored `.dev.vars`; use deployment secrets for production. Configure
|
|
135
|
+
an app-owned [`EmailSender`](../guides/email.md#application-wiring) and call its
|
|
136
|
+
`send({ to, subject, text, html?, locale, category? })` from Better Auth's email
|
|
137
|
+
callbacks. Adapt the auth template's `MAIL.otp`/`MAIL.link` callbacks to this
|
|
138
|
+
sender; it is an object, not a `.dev.vars` value. The auth
|
|
139
|
+
module wires `ADMIN_EMAIL` to the bootstrap helper, which requires verified email.
|
|
140
|
+
`PUBLIC_ORIGIN` can be your application variable instead of `ORIGIN`; map it
|
|
141
|
+
explicitly when constructing auth and keep the trusted origin consistent.
|
|
142
|
+
|
|
143
|
+
## Scheduling and Bun
|
|
54
144
|
|
|
55
|
-
|
|
145
|
+
Scheduling remains app-owned; schedule/lifecycle Triggers are refused. Import
|
|
146
|
+
only the desired generated `sweepExpired` entry in `scheduled()`, pass a system
|
|
147
|
+
Caller with a reason, and choose an application-owned page budget for each
|
|
148
|
+
invocation; see the [TTL contract](../guides/native-execution.md#ttl-maintenance). Configure `triggers.crons` yourself;
|
|
149
|
+
`toCloudflareCron` converts POSIX schedules without adding a dispatcher. Keep
|
|
150
|
+
larger sweeps' cursors for a later invocation instead of scanning without a bound.
|
|
56
151
|
|
|
57
|
-
|
|
152
|
+
On Bun, reuse a process-owned `Database` or `SQL` pool and call the same generated
|
|
153
|
+
surfaces from `Bun.serve({fetch})`. The optional host reader is independent of
|
|
154
|
+
the query target:
|
|
58
155
|
|
|
59
156
|
```ts
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
…
|
|
68
|
-
};
|
|
157
|
+
import { bunAdminAssets } from '@aotter/mantle/bun/assets';
|
|
158
|
+
const assets = bunAdminAssets('node_modules/@aotter/mantle-admin/dist/admin');
|
|
159
|
+
const bindings = adminBindings({ handlers });
|
|
160
|
+
const serveAdmin = admin(bindings.metadata, bindings.views, bindings.operations, {
|
|
161
|
+
db: () => db, caller, handlers, routes: entries(bindings.schemas, bindings.adapter),
|
|
162
|
+
});
|
|
163
|
+
// Call assets(path) from your separate shell/static route.
|
|
69
164
|
```
|
|
70
165
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
166
|
+
The reader returns a native `Response` or `null`, rejects traversal/control
|
|
167
|
+
characters and escaping symlinks; the app owns shell, CSP and cache headers.
|
|
168
|
+
Use ignored `.env` on Bun. Run cron work with your native scheduler; neither
|
|
169
|
+
imports nor ordinary requests execute DDL, migrations or cron work. OAuth resource
|
|
170
|
+
rows are inserted on first OAuth use from runtime configuration, with no deploy
|
|
171
|
+
step; auth initialization and cookie/bearer/MCP/REST requests do no resource work.
|
|
77
172
|
|
|
78
|
-
|
|
79
|
-
`withCaller(resolver, (request, caller) => …)` gives you the caller, the 401
|
|
80
|
-
for a bad credential, and the cross-origin check.
|
|
81
|
-
- Reach data through `runtime.store.as(caller)` or
|
|
82
|
-
`runtime.invokeProcedure({ procedure, input, caller, cause: { kind: "internal", id } })`;
|
|
83
|
-
`runtime.store` alone is unscoped, for trusted code only.
|
|
84
|
-
- Server-rendered pages, a SPA's assets, a signed webhook: all are routes
|
|
85
|
-
here. Mantle renders no public pages in 0.2.0.
|
|
173
|
+
## Commit generated output and verify it in CI
|
|
86
174
|
|
|
87
|
-
|
|
175
|
+
Commit every file written by `mantle generate`: TypeScript, `schema.sql`, optional
|
|
176
|
+
seed SQL and Wrangler edits. Never hand-edit generated output. Every emitted
|
|
177
|
+
TypeScript/SQL file carries the ownership header. Add the line printed by
|
|
178
|
+
generation to `.gitattributes`, for example:
|
|
88
179
|
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
fetch: (request, env) => mantle.fetch(request, env, ctx),
|
|
92
|
-
async scheduled(controller, env) { … mantle.invokeSchedule(cron, controller.scheduledTime, env, ctx) … },
|
|
93
|
-
} satisfies ExportedHandler<Env>;
|
|
180
|
+
```gitattributes
|
|
181
|
+
generated/** linguist-generated=true
|
|
94
182
|
```
|
|
95
183
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
shares it, runs them all, and reports every failure together. A cron no
|
|
101
|
-
Trigger maps to throws.
|
|
102
|
-
- There is no `queue` handler: no Mantle path produces queue messages. Add
|
|
103
|
-
your own `queue` beside `fetch` if your service uses one.
|
|
104
|
-
|
|
105
|
-
## Bindings
|
|
184
|
+
Resolve generated merge conflicts by merging authored manifests/options first,
|
|
185
|
+
then regenerating with the same options. Review the SQL/policy diff and write
|
|
186
|
+
explicit migrations before deployment. Keep `dist/` (the `mantle bundle` output)
|
|
187
|
+
untracked. Deployment uses committed generated source; it does not regenerate.
|
|
106
188
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
```jsonc
|
|
113
|
-
"assets": { "directory": "node_modules/@aotter/mantle-ui/dist/admin", "binding": "ASSETS", "run_worker_first": true, "html_handling": "none" }
|
|
189
|
+
```sh
|
|
190
|
+
# CI, with the project's exact installed SDK and peer versions:
|
|
191
|
+
pnpm exec mantle generate cloudflare-d1 generated manifests/*.yaml --auth src/auth.ts --admin --check
|
|
192
|
+
pnpm exec tsc --noEmit
|
|
193
|
+
pnpm exec mantle bundle src/worker.ts dist
|
|
114
194
|
```
|
|
115
195
|
|
|
116
|
-
`
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|---|---|---|
|
|
124
|
-
| Media | `r2_buckets: [{ binding: "MEDIA", bucket_name: … }]` | [Media uploads with R2](./media-r2.md) |
|
|
125
|
-
| A secret | `wrangler secret put NAME` (`.dev.vars` locally) | `env.NAME` |
|
|
126
|
-
| A plain var | `vars: { NAME: "…" }` | `env.NAME` |
|
|
127
|
-
| Email | `send_email: [{ name: "EMAIL" }]` | your `EmailSender` for sign-in, or a handler's `ctx.env.EMAIL` |
|
|
128
|
-
| KV, Queues, Durable Objects | their usual keys | your own code; Mantle reads none of them |
|
|
129
|
-
|
|
130
|
-
Handlers receive the same `env` as `ctx.env`. Mantle-owned rows are reached
|
|
131
|
-
only through Store; never write a Schema's table with `env.DB` directly. Your
|
|
132
|
-
own tables in the same database are yours.
|
|
133
|
-
|
|
134
|
-
## When the preset changes
|
|
135
|
-
|
|
136
|
-
The preset is never rewritten. After an SDK upgrade, compare your files with
|
|
137
|
-
a fresh preset: generate into an empty directory with the same manifests and
|
|
138
|
-
`mantle.config.json`, and diff `src/service.ts` and `src/index.ts`.
|
|
196
|
+
`--check` regenerates in memory, lists missing/changed/obsolete SDK-owned files
|
|
197
|
+
and stale Wrangler build settings, exits nonzero, and writes nothing. Unmarked
|
|
198
|
+
application files are preserved. TOML generation prints manual edits, so an
|
|
199
|
+
exact Wrangler `--check` requires JSON/JSONC. Use all the same `--site`, `--auth`,
|
|
200
|
+
`--admin` and `--admin-extensions` options as normal generation. The check needs no database,
|
|
201
|
+
network access, credentials or deployment. Imported configuration modules must
|
|
202
|
+
remain pure: exporting `authOptions(env)` avoids constructing Better Auth at build time.
|
|
@@ -1,132 +1,19 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: The Caller, the one CallerResolver at the service entry, requires predicates, guards, Schema scope and auth.uid(), and how staff roles fit.
|
|
3
|
-
---
|
|
4
1
|
# Authorization
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
request, and Mantle enforces the manifests against that answer.
|
|
3
|
+
The app verifies credentials and supplies a `Caller` from `@aotter/mantle/contracts`:
|
|
8
4
|
|
|
9
|
-
|
|
5
|
+
- Anonymous: `{ kind: 'anonymous' }`.
|
|
6
|
+
- User: `kind`, stable opaque `subject`, optional `issuer`, `role: string | null`, `admin?: boolean`, `scopes`, `credential`, `credentialId` and `clientId`. Credentials are session, OAuth, API key or personal token; never put raw credentials in the Caller.
|
|
7
|
+
- System: `{ kind: 'system', reason }`, constructed only by trusted application code for maintenance. Request data cannot grant system authority.
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
type Caller =
|
|
13
|
-
| { kind: "anonymous" }
|
|
14
|
-
| { kind: "user"; subject: string; issuer?: string; role: "owner" | "editor" | "contributor" | null;
|
|
15
|
-
scopes: readonly string[]; credential: "session" | "oauth" | "api-key" | "personal-token";
|
|
16
|
-
credentialId: string | null; clientId: string | null }
|
|
17
|
-
| { kind: "system"; reason: string };
|
|
18
|
-
```
|
|
9
|
+
Resolve once per request. Invalid presented credentials must fail; do not downgrade them to anonymous. Use `checkOrigin(request, caller)` for cookie-session mutations; generated boundaries enforce it too. Keep response cookie headers from `resolveCaller` so sessions can slide.
|
|
19
10
|
|
|
20
|
-
|
|
21
|
-
every issuer, never an email. `auth.uid()`, a scope field and `author_id`
|
|
22
|
-
store it. A resolver over several identity providers namespaces it
|
|
23
|
-
(`chatgpt:<sub>`, `account:<id>`).
|
|
24
|
-
- `role` is a staff role or `null`. Admin's vocabulary is `owner`, `editor`,
|
|
25
|
-
`contributor`; a resolver maps its own roles onto it, or leaves `null` and
|
|
26
|
-
uses scopes and guards.
|
|
27
|
-
- The `system` caller comes only from host code (`systemCaller(reason)`):
|
|
28
|
-
schedules, maintenance, a verified webhook. No request can produce one.
|
|
11
|
+
## Operations and rows
|
|
29
12
|
|
|
30
|
-
|
|
13
|
+
View/Procedure `requires.auth.all` gates invocation. `ctx.user` / `ctx.auth` require a user; `ctx.admin` requires the admin layer; `ctx.auth.scope` checks a scope. Which admin role may call which target is application code, decided before the call. [Requirements](../reference/authorization.md) lists the vocabulary. Store collections do not check these operation gates: authorize before using Store.
|
|
31
14
|
|
|
32
|
-
|
|
33
|
-
type CallerResolver = (request: Request) =>
|
|
34
|
-
Promise<{ caller: Caller } | { invalid: true; challenge?: string; status?: 401 | 403 }>;
|
|
35
|
-
```
|
|
15
|
+
The compiler adds row policy to every Schema relation, including joins and nested SQL. Scope limits a user to their subject or to their [user field](../reference/authorization.md#user-fields) values and gives anonymous callers no scoped rows. System calls bypass scope. TTL hides expired rows. Public Views see only published rows on publishing Schemas; caller reads expose drafts only to admin/system. Translations also retain parent visibility.
|
|
36
16
|
|
|
37
|
-
|
|
38
|
-
`withCaller(resolver, surface)`:
|
|
17
|
+
Field `scope` hides rows even from admin callers; use View/Procedure [`restrict`](../reference/view.md#restrict) to limit member access while Admin collection reads see all rows allowed by the Schema's scope.
|
|
39
18
|
|
|
40
|
-
-
|
|
41
|
-
surface runs. It is never treated as anonymous; only "no credential" is.
|
|
42
|
-
- A cookie session may not mutate across origins: a non-GET request with a
|
|
43
|
-
session needs a same-origin `Origin` or `Sec-Fetch-Site`, or it is 403.
|
|
44
|
-
- Identity `mantle` resolves Better Auth sessions and OAuth bearer tokens;
|
|
45
|
-
identity `custom` is your `src/identity.ts`; identity `none` passes
|
|
46
|
-
`{ kind: "anonymous" }`. See [Authentication](../cloudflare/authentication.md).
|
|
47
|
-
|
|
48
|
-
## `requires`
|
|
49
|
-
|
|
50
|
-
Views and Procedures take the same block:
|
|
51
|
-
|
|
52
|
-
```yaml
|
|
53
|
-
requires:
|
|
54
|
-
auth:
|
|
55
|
-
all:
|
|
56
|
-
- ctx.user
|
|
57
|
-
- { ctx.staff: [owner, editor] }
|
|
58
|
-
- { ctx.auth.scope: "exports:read" }
|
|
59
|
-
guard: { procedure: require-active-plan }
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
| Predicate | Holds when |
|
|
63
|
-
|---|---|
|
|
64
|
-
| `ctx.user` | the caller is a `user` |
|
|
65
|
-
| `ctx.auth` | the caller is a `user` (any verified credential) |
|
|
66
|
-
| `{ ctx.staff: [roles] }` | the caller's `role` is one of them |
|
|
67
|
-
| `{ ctx.auth.scope: "<scope>" }` | the caller's `scopes` include it; repeat for several |
|
|
68
|
-
|
|
69
|
-
Every predicate in `all` must hold. A system or anonymous caller satisfies
|
|
70
|
-
none. A failure is 401 `UNAUTHENTICATED` for an anonymous caller and 403
|
|
71
|
-
`AUTH_DENIED` for a signed-in one. The optional guard is a `ref` Procedure
|
|
72
|
-
that runs next and may reject with any code, for example
|
|
73
|
-
`ENTITLEMENT_REQUIRED` (402).
|
|
74
|
-
|
|
75
|
-
`requires` is checked on every path: REST, MCP, Admin operations,
|
|
76
|
-
`ctx.invoke` and `runtime.invokeProcedure`. Listing a tool is not permission
|
|
77
|
-
to call it.
|
|
78
|
-
|
|
79
|
-
## Rows: scope and `auth.uid()`
|
|
80
|
-
|
|
81
|
-
`requires` decides whether a caller may run a View or Procedure. Which
|
|
82
|
-
**rows** it reaches is decided in the data:
|
|
83
|
-
|
|
84
|
-
**Scope** hides rows from everyone but their owner:
|
|
85
|
-
|
|
86
|
-
```yaml
|
|
87
|
-
kind: Schema
|
|
88
|
-
metadata: { name: orders }
|
|
89
|
-
spec:
|
|
90
|
-
scope: { owner: auth.uid() }
|
|
91
|
-
indexes: [[owner]]
|
|
92
|
-
schema:
|
|
93
|
-
required: [owner, …]
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
- The scope field is a required string, the first column of an index, and the
|
|
97
|
-
first column of every `uniqueIndexes` entry.
|
|
98
|
-
- Every read and write of a user caller is limited to rows whose `owner` is its
|
|
99
|
-
subject key; an anonymous caller reaches none. Store fills `owner` on insert,
|
|
100
|
-
and no write may set it, so a row can never move to another owner.
|
|
101
|
-
- Staff are user callers too: scope hides other users' rows from them as
|
|
102
|
-
well. Use scope only for rows that no one but the owner may ever see.
|
|
103
|
-
- `runtime.store` and the system caller are not scoped.
|
|
104
|
-
|
|
105
|
-
**`auth.uid()` in SQL** covers the rest. When staff must see every row but a
|
|
106
|
-
member sees only their own, store the writer and filter on it:
|
|
107
|
-
|
|
108
|
-
```sql
|
|
109
|
-
INSERT INTO requisitions (requestedBy, item) VALUES (auth.uid(), input.item);
|
|
110
|
-
SELECT … FROM requisitions WHERE requestedBy = auth.uid();
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
The writer comes from the caller, never from an input. See
|
|
114
|
-
[Procurement approvals](../../examples/procurement.md).
|
|
115
|
-
|
|
116
|
-
## Admin
|
|
117
|
-
|
|
118
|
-
Admin's gate admits any staff role, and each Admin route names the least role
|
|
119
|
-
it needs. Admin reads and writes through `runtime.store.as(caller)`, so scope
|
|
120
|
-
applies to generic entry routes. A View or Procedure's `requires` applies when
|
|
121
|
-
that atom runs, including Admin reports and operations; it does not restrict
|
|
122
|
-
generic entry reads or writes. Root Schema `readOnly: true` blocks generic
|
|
123
|
-
writes, while reads still follow Admin's role gate and Schema scope.
|
|
124
|
-
For an unscoped table shared by members and reviewers, an owner-filtered View
|
|
125
|
-
does not hide its rows from contributors using generic Admin routes. Compose
|
|
126
|
-
a stricter Admin surface in the application when the product requires it. See
|
|
127
|
-
[Customize Admin](../guides/admin-ui.md).
|
|
128
|
-
|
|
129
|
-
## Further reading
|
|
130
|
-
|
|
131
|
-
- [Authorization reference](../reference/authorization.md)
|
|
132
|
-
- [Guarded API access](../../examples/guarded-api.md)
|
|
19
|
+
The app owns custom identity and roles. Better Auth’s admin plugin `adminRoles` (default `["admin"]`) classifies comma-separated `user.role` values. `resolveCaller` carries this layer as `admin`; `isAdmin(caller)` and `hasAdminRole(caller, name)` consult it. Application-owned resolvers mint the original Caller with `userCaller` from `@aotter/mantle/user-fields`, using only a verified user and the identity provider’s adminRoles. Setting `admin: true` on a plain object grants no privilege. Member role names alone do not grant privilege. Optional [Better Auth](../cloudflare/authentication.md) helpers use fresh primary authority by default. Admin additionally requires an admin cookie session. UI visibility never replaces a server authorization check.
|
|
@@ -1,97 +1,14 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: The four manifest atoms of Mantle 0.2.0 (Schema, View, Procedure, Trigger), what each compiles to, and how they reference each other.
|
|
3
|
-
---
|
|
4
1
|
# The four atoms
|
|
5
2
|
|
|
6
|
-
|
|
3
|
+
The manifest grammar is closed: Schema, View, Procedure and Trigger.
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
| Atom | Declares | Native output |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| Schema | Fields, indexes, scope, TTL, lifecycle and Admin presentation | Initial DDL and typed Store collection |
|
|
8
|
+
| View | One SQL SELECT with input, authorization and surface | Typed query; optional paging and exposure |
|
|
9
|
+
| Procedure | SQL statements or a ref handler contract | Typed operation with declared authorization |
|
|
10
|
+
| Trigger | HTTP or MCP exposure of a Procedure | Selected route/tool binding |
|
|
14
11
|
|
|
15
|
-
|
|
16
|
-
|---|---|---|---|
|
|
17
|
-
| **Schema** | rows: a JSON Schema of fields, indexes, `checks`, scope, TTL, lifecycle | one table (`STRICT` on SQLite) with native columns and one column per scalar field | none |
|
|
18
|
-
| **View** | a read: one SQL `SELECT`, its `input`, `surface` and `requires` | validated SQL IR in the plan | none |
|
|
19
|
-
| **Procedure** | a write: `input`, `output`, `requires` and a handler, either SQL statements or a `ref` | IR for `sql`, a name for `ref` | only `ref` |
|
|
20
|
-
| **Trigger** | when a Procedure runs: an HTTP route, an MCP tool, a lifecycle hook or a schedule | a binding in the plan | none |
|
|
12
|
+
Generation rejects lifecycle and schedule Triggers, although they exist in the v2 grammar. Application code owns scheduling and side effects. Unknown manifest keys fail validation; a new runtime capability does not open the grammar.
|
|
21
13
|
|
|
22
|
-
|
|
23
|
-
holds write statements only. Custom code exists only behind a Procedure's
|
|
24
|
-
`ref`.
|
|
25
|
-
|
|
26
|
-
## How they reference each other
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
Trigger ──target──▶ Procedure ──SQL writes / ctx.store──▶ Schema
|
|
30
|
-
▲ │ ▲
|
|
31
|
-
requires.guard│ └─ctx.invoke──▶ Procedure │
|
|
32
|
-
│ │
|
|
33
|
-
View ────────────SQL SELECT (joins, subqueries)──────────────┘
|
|
34
|
-
Trigger(lifecycle) ◀── a write to its Schema
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
- A View's or Procedure's SQL names Schemas by `metadata.name`; a name that is
|
|
38
|
-
not a plain identifier is quoted (`"support-tickets"`).
|
|
39
|
-
- A Trigger targets one Procedure. A lifecycle Trigger also names the Schema
|
|
40
|
-
it watches.
|
|
41
|
-
- `requires.guard` names a `ref` Procedure that runs before the target.
|
|
42
|
-
- `x-mantle-ref` on a field points at another Schema's `id` or unique field;
|
|
43
|
-
Admin uses it to relate rows and bind operations.
|
|
44
|
-
|
|
45
|
-
`mantle generate` links every reference and refuses a dangling one, a
|
|
46
|
-
duplicate name, or two names that differ only in case.
|
|
47
|
-
|
|
48
|
-
## Native columns
|
|
49
|
-
|
|
50
|
-
Every Schema table carries native columns that Store fills and no write may
|
|
51
|
-
set:
|
|
52
|
-
|
|
53
|
-
| SQL name | Store JSON name | Meaning |
|
|
54
|
-
|---|---|---|
|
|
55
|
-
| `id` | `id` | text id, generated unless a `ref` handler passes `ctx.store.id()` |
|
|
56
|
-
| `status` | `status` | `draft`, `published` or `archived`; on a `publishing` Schema only (an `operational` one has no `status` column) |
|
|
57
|
-
| `version` | `version` | starts at 1, bumps on every write; the optimistic lock |
|
|
58
|
-
| `created_at`, `updated_at` | `createdAt`, `updatedAt` | timestamps |
|
|
59
|
-
| `author_id` | `authorId` | the subject key of the caller that created the row |
|
|
60
|
-
|
|
61
|
-
SQL spells them snake_case; the JSON of `ctx.store` keeps camelCase. A Schema
|
|
62
|
-
field may not reuse these names.
|
|
63
|
-
|
|
64
|
-
## Values in SQL
|
|
65
|
-
|
|
66
|
-
| Reference | Is |
|
|
67
|
-
|---|---|
|
|
68
|
-
| `input.<name>` | a declared `input` property |
|
|
69
|
-
| `auth.uid()` | the caller's subject key (`NULL` for an anonymous caller) |
|
|
70
|
-
| `auth.role()` | the caller's staff role, or `NULL` |
|
|
71
|
-
| `now()` | the invocation time |
|
|
72
|
-
| `mantle.search(t, q)`, `mantle.search_rank(t)`, `mantle.near(...)`, `mantle.distance(...)` | full-text search and geo functions |
|
|
73
|
-
|
|
74
|
-
A SQL literal is a literal. There are no `$`-prefixed references and no
|
|
75
|
-
positional `$1`.
|
|
76
|
-
|
|
77
|
-
## What the runtime adds
|
|
78
|
-
|
|
79
|
-
Every Schema reference in every statement, joins and subqueries included, is
|
|
80
|
-
rewritten before it runs:
|
|
81
|
-
|
|
82
|
-
- **Scope**: on a Schema with `scope`, a user caller sees and writes only the
|
|
83
|
-
rows whose scope field is its own subject key.
|
|
84
|
-
- **TTL**: expired rows are invisible.
|
|
85
|
-
- **Published-only**: a public View reading a `publishing` Schema sees
|
|
86
|
-
published rows only.
|
|
87
|
-
- **Locks**: `WHERE id = … AND version = input.…` pins one row; writing none is
|
|
88
|
-
`CONFLICT`.
|
|
89
|
-
|
|
90
|
-
Authors write the business query; they never repeat these rules. See
|
|
91
|
-
[Authorization](./authorization.md) and [Lifecycle and locales](./lifecycle-and-locales.md).
|
|
92
|
-
|
|
93
|
-
## Further reading
|
|
94
|
-
|
|
95
|
-
- [Reads: Views, REST and MCP](./views.md)
|
|
96
|
-
- [Writes: Procedures, Triggers and hooks](./procedures-and-triggers.md)
|
|
97
|
-
- [Feature table](../reference/features.md)
|
|
14
|
+
SQL is authored in PostgreSQL syntax and rendered for exactly postgres or sqlite. Generation applies row policy; the app supplies its own native handle and verified Caller. See [manifest reference](../reference/manifest.md) and [supported declarations](../reference/features.md).
|