@aotter/mantle 0.2.0-alpha.5 → 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 +28 -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 -103
- 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 -183
- package/docs/handbook/concepts/views.md +10 -109
- package/docs/handbook/examples/hub.md +2 -18
- package/docs/handbook/guides/adapter-guide.md +11 -0
- package/docs/handbook/guides/admin-extensions.md +20 -0
- package/docs/handbook/guides/admin-ui.md +5 -163
- 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 -30
- 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 -78
- package/docs/handbook/reference/features.md +45 -53
- package/docs/handbook/reference/manifest.md +6 -69
- package/docs/handbook/reference/procedure.md +9 -117
- package/docs/handbook/reference/schema.md +65 -172
- package/docs/handbook/reference/site-config.md +5 -65
- package/docs/handbook/reference/surface.md +279 -93
- package/docs/handbook/reference/trigger.md +24 -93
- package/docs/handbook/reference/view.md +32 -158
- package/docs/handbook/releases/index.md +124 -15
- package/docs/handbook/start/overview.md +9 -56
- package/docs/handbook/start/project-and-cli.md +40 -141
- package/docs/handbook/start/quickstart-worker.md +38 -116
- package/docs/skills/develop/SKILL.md +34 -117
- 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 -88
- package/docs/skills/update/SKILL.md +19 -40
- package/docs/source/scripts/postgres-adapter.ts +101 -0
- package/docs/upgrade-0.1-to-0.2.md +26 -10
- package/package.json +97 -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 -22
- package/dist/admin/createAdminSurface.d.ts.map +0 -1
- package/dist/admin/createAdminSurface.js +0 -592
- 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/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 -6
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -6
- 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 -4566
- package/dist/auth/buildAuth.d.ts.map +0 -1
- package/dist/auth/buildAuth.js +0 -311
- package/dist/auth/buildAuth.js.map +0 -1
- package/dist/auth/callerResolver.d.ts +0 -48
- package/dist/auth/callerResolver.d.ts.map +0 -1
- package/dist/auth/callerResolver.js +0 -49
- package/dist/auth/callerResolver.js.map +0 -1
- package/dist/auth/createAuthRoutes.d.ts +0 -22
- package/dist/auth/createAuthRoutes.d.ts.map +0 -1
- package/dist/auth/createAuthRoutes.js.map +0 -1
- package/dist/auth/createMantleAuth.d.ts +0 -3
- package/dist/auth/createMantleAuth.d.ts.map +0 -1
- package/dist/auth/createMantleAuth.js +0 -503
- package/dist/auth/createMantleAuth.js.map +0 -1
- package/dist/auth/db.d.ts +0 -17
- package/dist/auth/db.d.ts.map +0 -1
- package/dist/auth/db.js +0 -24
- package/dist/auth/db.js.map +0 -1
- package/dist/auth/emailTemplates.d.ts +0 -7
- package/dist/auth/emailTemplates.d.ts.map +0 -1
- package/dist/auth/emailTemplates.js.map +0 -1
- package/dist/auth/index.d.ts +0 -9
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -7
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/methods.d.ts +0 -717
- package/dist/auth/methods.d.ts.map +0 -1
- package/dist/auth/methods.js +0 -321
- package/dist/auth/methods.js.map +0 -1
- package/dist/auth/oauthTokens.d.ts +0 -24
- package/dist/auth/oauthTokens.d.ts.map +0 -1
- package/dist/auth/oauthTokens.js +0 -146
- package/dist/auth/oauthTokens.js.map +0 -1
- package/dist/auth/setupIncomplete.d.ts +0 -16
- package/dist/auth/setupIncomplete.d.ts.map +0 -1
- package/dist/auth/setupIncomplete.js +0 -50
- package/dist/auth/setupIncomplete.js.map +0 -1
- package/dist/auth/types.d.ts +0 -440
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -10
- package/dist/auth/types.js.map +0 -1
- package/dist/bun/index.d.ts +0 -65
- package/dist/bun/index.d.ts.map +0 -1
- package/dist/bun/index.js +0 -130
- package/dist/bun/index.js.map +0 -1
- package/dist/cli/emitModule.d.ts +0 -7
- package/dist/cli/emitModule.d.ts.map +0 -1
- package/dist/cli/emitModule.js +0 -127
- package/dist/cli/emitModule.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -8
- package/dist/cli/generate.d.ts.map +0 -1
- package/dist/cli/generate.js +0 -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 -353
- package/dist/cli/preset.js.map +0 -1
- package/dist/cloudflare/index.d.ts +0 -21
- package/dist/cloudflare/index.d.ts.map +0 -1
- package/dist/cloudflare/index.js +0 -14
- package/dist/cloudflare/index.js.map +0 -1
- package/dist/cloudflare/r2Media.d.ts.map +0 -1
- package/dist/cloudflare/r2Media.js +0 -69
- package/dist/cloudflare/r2Media.js.map +0 -1
- package/dist/core/caller.d.ts +0 -35
- package/dist/core/caller.d.ts.map +0 -1
- package/dist/core/caller.js +0 -3
- package/dist/core/caller.js.map +0 -1
- package/dist/core/createMantle.d.ts +0 -22
- package/dist/core/createMantle.d.ts.map +0 -1
- package/dist/core/createMantle.js +0 -117
- package/dist/core/createMantle.js.map +0 -1
- package/dist/core/dialect.d.ts +0 -41
- package/dist/core/dialect.d.ts.map +0 -1
- package/dist/core/dialect.js +0 -7
- package/dist/core/dialect.js.map +0 -1
- package/dist/core/driver.d.ts +0 -17
- package/dist/core/driver.d.ts.map +0 -1
- package/dist/core/driver.js +0 -2
- package/dist/core/driver.js.map +0 -1
- package/dist/core/email.d.ts +0 -17
- package/dist/core/email.d.ts.map +0 -1
- package/dist/core/email.js +0 -2
- package/dist/core/email.js.map +0 -1
- package/dist/core/index.d.ts +0 -16
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -16
- package/dist/core/index.js.map +0 -1
- package/dist/core/invocation.d.ts +0 -66
- package/dist/core/invocation.d.ts.map +0 -1
- package/dist/core/invocation.js +0 -3
- package/dist/core/invocation.js.map +0 -1
- package/dist/core/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/site.d.ts.map +0 -1
- package/dist/core/site.js +0 -2
- package/dist/core/site.js.map +0 -1
- package/dist/core/siteConfig.d.ts +0 -5
- package/dist/core/siteConfig.d.ts.map +0 -1
- package/dist/core/siteConfig.js +0 -24
- package/dist/core/siteConfig.js.map +0 -1
- package/dist/core/sql/allowlist.d.ts +0 -65
- package/dist/core/sql/allowlist.d.ts.map +0 -1
- package/dist/core/sql/allowlist.js +0 -705
- package/dist/core/sql/allowlist.js.map +0 -1
- package/dist/core/sql/ast.d.ts +0 -24
- package/dist/core/sql/ast.d.ts.map +0 -1
- package/dist/core/sql/ast.js +0 -32
- package/dist/core/sql/ast.js.map +0 -1
- package/dist/core/sql/compile.d.ts +0 -50
- package/dist/core/sql/compile.d.ts.map +0 -1
- package/dist/core/sql/compile.js +0 -48
- package/dist/core/sql/compile.js.map +0 -1
- package/dist/core/sql/policy.d.ts +0 -121
- package/dist/core/sql/policy.d.ts.map +0 -1
- package/dist/core/sql/policy.js +0 -379
- package/dist/core/sql/policy.js.map +0 -1
- package/dist/core/sql/positions.d.ts +0 -30
- package/dist/core/sql/positions.d.ts.map +0 -1
- package/dist/core/sql/positions.js +0 -22
- package/dist/core/sql/positions.js.map +0 -1
- package/dist/core/sql/run.d.ts +0 -76
- package/dist/core/sql/run.d.ts.map +0 -1
- package/dist/core/sql/run.js +0 -267
- package/dist/core/sql/run.js.map +0 -1
- package/dist/core/store/createStore.d.ts +0 -49
- package/dist/core/store/createStore.d.ts.map +0 -1
- package/dist/core/store/createStore.js +0 -227
- package/dist/core/store/createStore.js.map +0 -1
- package/dist/core/store/cursor.d.ts +0 -4
- package/dist/core/store/cursor.d.ts.map +0 -1
- package/dist/core/store/cursor.js +0 -22
- package/dist/core/store/cursor.js.map +0 -1
- package/dist/core/store/json.d.ts +0 -80
- package/dist/core/store/json.d.ts.map +0 -1
- package/dist/core/store/json.js +0 -342
- package/dist/core/store/json.js.map +0 -1
- package/dist/core/store.d.ts +0 -160
- package/dist/core/store.d.ts.map +0 -1
- package/dist/core/store.js +0 -2
- package/dist/core/store.js.map +0 -1
- package/dist/core/wire.d.ts +0 -20
- package/dist/core/wire.d.ts.map +0 -1
- package/dist/core/wire.js +0 -84
- package/dist/core/wire.js.map +0 -1
- package/dist/core/withCaller.d.ts +0 -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 -13
- package/dist/d1/executor.d.ts.map +0 -1
- package/dist/d1/executor.js +0 -91
- package/dist/d1/executor.js.map +0 -1
- package/dist/d1/index.d.ts +0 -6
- package/dist/d1/index.d.ts.map +0 -1
- package/dist/d1/index.js +0 -6
- package/dist/d1/index.js.map +0 -1
- package/dist/d1/lower.d.ts +0 -8
- package/dist/d1/lower.d.ts.map +0 -1
- package/dist/d1/lower.js +0 -167
- package/dist/d1/lower.js.map +0 -1
- package/dist/d1/media.d.ts +0 -5
- package/dist/d1/media.d.ts.map +0 -1
- package/dist/d1/media.js +0 -157
- package/dist/d1/media.js.map +0 -1
- package/dist/d1/migrations.d.ts +0 -12
- package/dist/d1/migrations.d.ts.map +0 -1
- package/dist/d1/migrations.js +0 -111
- package/dist/d1/migrations.js.map +0 -1
- package/dist/d1/print.d.ts +0 -28
- package/dist/d1/print.d.ts.map +0 -1
- package/dist/d1/print.js +0 -54
- package/dist/d1/print.js.map +0 -1
- package/dist/d1/site.d.ts +0 -17
- package/dist/d1/site.d.ts.map +0 -1
- package/dist/d1/site.js +0 -63
- package/dist/d1/site.js.map +0 -1
- package/dist/d1/storage.d.ts +0 -34
- package/dist/d1/storage.d.ts.map +0 -1
- package/dist/d1/storage.js +0 -288
- package/dist/d1/storage.js.map +0 -1
- package/dist/d1/tz.d.ts +0 -21
- package/dist/d1/tz.d.ts.map +0 -1
- package/dist/d1/tz.js +0 -54
- package/dist/d1/tz.js.map +0 -1
- package/dist/d1/validator.d.ts +0 -10
- package/dist/d1/validator.d.ts.map +0 -1
- package/dist/d1/validator.js +0 -33
- package/dist/d1/validator.js.map +0 -1
- package/dist/mcp/apps.d.ts +0 -43
- package/dist/mcp/apps.d.ts.map +0 -1
- package/dist/mcp/apps.js +0 -57
- package/dist/mcp/apps.js.map +0 -1
- package/dist/mcp/catalog.d.ts +0 -55
- package/dist/mcp/catalog.d.ts.map +0 -1
- package/dist/mcp/catalog.js +0 -81
- package/dist/mcp/catalog.js.map +0 -1
- package/dist/mcp/createMcpSurface.d.ts +0 -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 -20
- package/dist/postgres/adapter.d.ts.map +0 -1
- package/dist/postgres/adapter.js +0 -44
- package/dist/postgres/adapter.js.map +0 -1
- package/dist/postgres/codec.d.ts +0 -13
- package/dist/postgres/codec.d.ts.map +0 -1
- package/dist/postgres/codec.js +0 -110
- package/dist/postgres/codec.js.map +0 -1
- package/dist/postgres/compile/index.d.ts +0 -9
- package/dist/postgres/compile/index.d.ts.map +0 -1
- package/dist/postgres/compile/index.js +0 -9
- package/dist/postgres/compile/index.js.map +0 -1
- package/dist/postgres/driver.d.ts +0 -92
- package/dist/postgres/driver.d.ts.map +0 -1
- package/dist/postgres/driver.js +0 -110
- package/dist/postgres/driver.js.map +0 -1
- package/dist/postgres/executor.d.ts +0 -20
- package/dist/postgres/executor.d.ts.map +0 -1
- package/dist/postgres/executor.js +0 -69
- package/dist/postgres/executor.js.map +0 -1
- package/dist/postgres/index.d.ts +0 -7
- package/dist/postgres/index.d.ts.map +0 -1
- package/dist/postgres/index.js +0 -7
- package/dist/postgres/index.js.map +0 -1
- package/dist/postgres/lower.d.ts +0 -6
- package/dist/postgres/lower.d.ts.map +0 -1
- package/dist/postgres/lower.js +0 -157
- package/dist/postgres/lower.js.map +0 -1
- package/dist/postgres/print.d.ts +0 -11
- package/dist/postgres/print.d.ts.map +0 -1
- package/dist/postgres/print.js +0 -121
- package/dist/postgres/print.js.map +0 -1
- package/dist/postgres/storage.d.ts +0 -19
- package/dist/postgres/storage.d.ts.map +0 -1
- package/dist/postgres/storage.js +0 -201
- package/dist/postgres/storage.js.map +0 -1
- package/dist/postgres/textRows.d.ts +0 -10
- package/dist/postgres/textRows.d.ts.map +0 -1
- package/dist/postgres/textRows.js +0 -44
- package/dist/postgres/textRows.js.map +0 -1
- package/dist/postgres/validator.d.ts +0 -12
- package/dist/postgres/validator.d.ts.map +0 -1
- package/dist/postgres/validator.js +0 -46
- package/dist/postgres/validator.js.map +0 -1
- package/dist/spec/domain/index.d.ts +0 -3
- package/dist/spec/domain/index.d.ts.map +0 -1
- package/dist/spec/domain/index.js +0 -3
- package/dist/spec/domain/index.js.map +0 -1
- package/dist/spec/domain/model/ContentState.d.ts +0 -8
- package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
- package/dist/spec/domain/model/ContentState.js +0 -7
- package/dist/spec/domain/model/ContentState.js.map +0 -1
- package/dist/spec/domain/model/Entry.d.ts +0 -29
- package/dist/spec/domain/model/Entry.d.ts.map +0 -1
- package/dist/spec/domain/model/Entry.js +0 -16
- package/dist/spec/domain/model/Entry.js.map +0 -1
- package/dist/spec/domain/model/Locale.d.ts +0 -30
- package/dist/spec/domain/model/Locale.d.ts.map +0 -1
- package/dist/spec/domain/model/Locale.js +0 -33
- package/dist/spec/domain/model/Locale.js.map +0 -1
- package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
- package/dist/spec/domain/model/ManifestGrammar.js +0 -149
- package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
- package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
- package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
- package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
- package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
- package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
- package/dist/spec/domain/model/RuntimePlan.js +0 -4
- package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
- package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
- package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
- package/dist/spec/domain/model/SiteConfig.js +0 -13
- package/dist/spec/domain/model/SiteConfig.js.map +0 -1
- package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
- package/dist/spec/domain/model/SqlIr.js +0 -95
- package/dist/spec/domain/model/SqlIr.js.map +0 -1
- package/dist/spec/domain/model/index.d.ts +0 -14
- package/dist/spec/domain/model/index.d.ts.map +0 -1
- package/dist/spec/domain/model/index.js +0 -14
- package/dist/spec/domain/model/index.js.map +0 -1
- package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
- package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
- package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
- package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
- package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/EntryDataValidator.js +0 -88
- package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
- package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
- package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
- package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
- package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
- package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
- package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
- package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
- package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
- package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
- package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestLinker.js +0 -92
- package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
- package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
- package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestParser.js +0 -203
- package/dist/spec/domain/service/ManifestParser.js.map +0 -1
- package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
- package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestPartition.js +0 -19
- package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
- package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
- package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
- package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
- package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
- package/dist/spec/domain/service/McpToolNaming.js +0 -50
- package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
- package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
- package/dist/spec/domain/service/PlanFingerprint.js +0 -14
- package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
- package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
- package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
- package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
- package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
- package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
- package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
- package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlClassify.js +0 -42
- package/dist/spec/domain/service/SqlClassify.js.map +0 -1
- package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
- package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlRefusal.js +0 -20
- package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
- package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
- package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlTypes.js +0 -110
- package/dist/spec/domain/service/SqlTypes.js.map +0 -1
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
- package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
- package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
- package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
- package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
- package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
- package/dist/spec/domain/service/index.d.ts +0 -24
- package/dist/spec/domain/service/index.d.ts.map +0 -1
- package/dist/spec/domain/service/index.js +0 -24
- package/dist/spec/domain/service/index.js.map +0 -1
- package/dist/spec/index.d.ts +0 -10
- package/dist/spec/index.d.ts.map +0 -1
- package/dist/spec/index.js +0 -12
- package/dist/spec/index.js.map +0 -1
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
- package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
- package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
- package/dist/spec/infrastructure/index.d.ts +0 -2
- package/dist/spec/infrastructure/index.d.ts.map +0 -1
- package/dist/spec/infrastructure/index.js +0 -2
- package/dist/spec/infrastructure/index.js.map +0 -1
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
- package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
- package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
- package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
- package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
- package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
- package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/compileSql.js +0 -92
- package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
- package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
- package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
- package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
- package/dist/spec/infrastructure/sql/index.d.ts +0 -4
- package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/index.js +0 -4
- package/dist/spec/infrastructure/sql/index.js.map +0 -1
- package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
- package/dist/spec/kernel/diagnostic.js +0 -296
- package/dist/spec/kernel/diagnostic.js.map +0 -1
- package/dist/spec/kernel/index.d.ts +0 -8
- package/dist/spec/kernel/index.d.ts.map +0 -1
- package/dist/spec/kernel/index.js +0 -8
- package/dist/spec/kernel/index.js.map +0 -1
- package/dist/spec/usecase/EmitTypes.d.ts +0 -22
- package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
- package/dist/spec/usecase/EmitTypes.js +0 -182
- package/dist/spec/usecase/EmitTypes.js.map +0 -1
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
- package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
- package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
- package/dist/spec/usecase/dto/index.d.ts +0 -3
- package/dist/spec/usecase/dto/index.d.ts.map +0 -1
- package/dist/spec/usecase/dto/index.js +0 -3
- package/dist/spec/usecase/dto/index.js.map +0 -1
- package/dist/spec/usecase/index.d.ts +0 -10
- package/dist/spec/usecase/index.d.ts.map +0 -1
- package/dist/spec/usecase/index.js +0 -10
- package/dist/spec/usecase/index.js.map +0 -1
- package/dist/testing/cases/before-hook.d.ts +0 -4
- package/dist/testing/cases/before-hook.d.ts.map +0 -1
- package/dist/testing/cases/before-hook.js +0 -71
- package/dist/testing/cases/before-hook.js.map +0 -1
- package/dist/testing/cases/corpus.d.ts +0 -12
- package/dist/testing/cases/corpus.d.ts.map +0 -1
- package/dist/testing/cases/corpus.js +0 -91
- package/dist/testing/cases/corpus.js.map +0 -1
- package/dist/testing/cases/policy.d.ts +0 -74
- package/dist/testing/cases/policy.d.ts.map +0 -1
- package/dist/testing/cases/policy.js +0 -142
- package/dist/testing/cases/policy.js.map +0 -1
- package/dist/testing/cases/printer.d.ts +0 -4
- package/dist/testing/cases/printer.d.ts.map +0 -1
- package/dist/testing/cases/printer.js +0 -32
- package/dist/testing/cases/printer.js.map +0 -1
- package/dist/testing/cases/report-view.d.ts +0 -5
- package/dist/testing/cases/report-view.d.ts.map +0 -1
- package/dist/testing/cases/report-view.js +0 -33
- package/dist/testing/cases/report-view.js.map +0 -1
- package/dist/testing/cases/requisition.d.ts +0 -4
- package/dist/testing/cases/requisition.d.ts.map +0 -1
- package/dist/testing/cases/requisition.js +0 -38
- package/dist/testing/cases/requisition.js.map +0 -1
- package/dist/testing/cases/search-places.d.ts +0 -4
- package/dist/testing/cases/search-places.d.ts.map +0 -1
- package/dist/testing/cases/search-places.js +0 -60
- package/dist/testing/cases/search-places.js.map +0 -1
- package/dist/testing/cases/stock.d.ts +0 -4
- package/dist/testing/cases/stock.d.ts.map +0 -1
- package/dist/testing/cases/stock.js +0 -35
- package/dist/testing/cases/stock.js.map +0 -1
- package/dist/testing/cases/store.d.ts +0 -4
- package/dist/testing/cases/store.d.ts.map +0 -1
- package/dist/testing/cases/store.js +0 -100
- package/dist/testing/cases/store.js.map +0 -1
- package/dist/testing/harness.d.ts +0 -94
- package/dist/testing/harness.d.ts.map +0 -1
- package/dist/testing/harness.js +0 -168
- package/dist/testing/harness.js.map +0 -1
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js.map +0 -1
- package/dist/testing/report.d.ts +0 -15
- package/dist/testing/report.d.ts.map +0 -1
- package/dist/testing/report.js +0 -22
- package/dist/testing/report.js.map +0 -1
- package/dist/web/createRestSurface.d.ts +0 -7
- package/dist/web/createRestSurface.d.ts.map +0 -1
- package/dist/web/createRestSurface.js +0 -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 -124
- package/docs/adr/0038-bun-native-host.md +0 -63
- package/docs/adr/README.md +0 -96
- package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
- package/docs/adr/adr-lite-808-route-readiness.md +0 -47
- package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
- package/docs/adr/adr-lite-812-native-parity.md +0 -150
- package/docs/adr/adr-lite-823-home-statistics.md +0 -64
- package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
- package/docs/adr/adr-lite-845-frontend-client.md +0 -38
- package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
- package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
- package/docs/examples/commerce-inventory.md +0 -481
- package/docs/examples/commerce.md +0 -254
- package/docs/examples/guarded-api.md +0 -238
- package/docs/examples/intake-hooks.md +0 -237
- package/docs/examples/intake.md +0 -127
- package/docs/examples/legal-documents.md +0 -218
- package/docs/examples/procurement.md +0 -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
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# OAuth provider and consent
|
|
2
|
+
|
|
3
|
+
Auth remains app-owned. Install the existing optional Better Auth peers and
|
|
4
|
+
create your `betterAuth()` instance with `jwt({ disableSettingJwtHeader: true })`
|
|
5
|
+
and `oauthProvider` (or the provider's MCP preset). Append `oauthGrantExtension`
|
|
6
|
+
**first** in its `extensions`. The helper comes from
|
|
7
|
+
`@aotter/mantle/auth/oauth` and binds issued access tokens to the current consent
|
|
8
|
+
ID and Better Auth’s consent reference without changing `referenceId`.
|
|
9
|
+
Configure
|
|
10
|
+
`consentPage: "/oauth/consent"`, loginPage,
|
|
11
|
+
resources, allowed/default client registration scopes, and public/native DCR
|
|
12
|
+
explicitly. For MCP clients use the SDK's `mcp` preset, `allowPublicClientPrelogin:
|
|
13
|
+
true`, and a `90d` registration client-secret expiration. The application selects
|
|
14
|
+
plugins and options; Mantle does not wrap Better Auth or run runtime DDL.
|
|
15
|
+
|
|
16
|
+
With Mantle's native adapters, `oauthProvider.resources` comes from runtime
|
|
17
|
+
configuration, including environment-derived identifiers. `schema.sql` contains
|
|
18
|
+
auth DDL only. On the first OAuth lookup of a configured resource (authorization,
|
|
19
|
+
token issuance, registration defaults or audience checks), the adapter validates
|
|
20
|
+
and inserts the missing row with insert-if-absent semantics. Concurrent requests
|
|
21
|
+
are safe; subsequent lookups preserve persisted policy edits. No resource deploy
|
|
22
|
+
step is required, and `resourceSeedMode` does not overwrite existing rows.
|
|
23
|
+
To retire a resource, set its persisted `disabled` policy (or configure it disabled
|
|
24
|
+
before its first lookup). Removing configuration does not disable an existing row.
|
|
25
|
+
Do not delete a configured resource row: a later lookup in a new adapter instance
|
|
26
|
+
can recreate it from configuration. On
|
|
27
|
+
`/oauth2/authorize` an invalid configured identifier surfaces as the provider's
|
|
28
|
+
`invalid_target` redirect rather than HTTP 500.
|
|
29
|
+
|
|
30
|
+
Auth initialization, cookie/bearer resolution and normal MCP/REST requests perform
|
|
31
|
+
no resource SELECT or INSERT. The adapter suppresses the provider's eager and
|
|
32
|
+
bulk lazy seeding. Invalid configured identifiers produce HTTP 500 with
|
|
33
|
+
`AUTH_CONFIGURATION_ERROR` and no write; unconfigured identifiers keep the
|
|
34
|
+
provider's normal rejection. Validation follows upstream's identifier validator
|
|
35
|
+
(or absolute URI without a fragment by default); unsupported signing algorithms
|
|
36
|
+
are dropped before insertion.
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { authRoutes } from "@aotter/mantle/auth/routes";
|
|
40
|
+
import { authLoader } from "@aotter/mantle/auth";
|
|
41
|
+
const auth = authLoader(() => import("./auth.js").then(m => m.auth));
|
|
42
|
+
const routes = authRoutes(auth, {
|
|
43
|
+
methods: [{ kind: "email-otp" }],
|
|
44
|
+
connectedAppsPage: "/admin/connected-apps", // optional; otherwise plain HTML
|
|
45
|
+
});
|
|
46
|
+
// In fetch: await routes(request) ?? otherRoutes(request).
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`GET /api/auth/methods` exposes only the supplied method descriptions and does
|
|
50
|
+
not load auth. `basePath` must match Better Auth if changed. Better Auth owns all
|
|
51
|
+
`/api/auth/*` endpoints and RFC 8414/9728 well-known discovery routes. Mount those
|
|
52
|
+
well-known paths at the origin, before a catch-all or proxy; retain the external
|
|
53
|
+
issuer/resource URL and trusted forwarding rules. The SDK handler receives them
|
|
54
|
+
unchanged. A POST registration whose redirect URIs are all HTTP localhost,
|
|
55
|
+
127.0.0.1 or [::1] becomes `application_type: "native"` when omitted; explicit
|
|
56
|
+
types and mixed/external callbacks stay under the SDK's validation.
|
|
57
|
+
|
|
58
|
+
`/oauth/consent` and `/oauth/consents` serve escaped, script-free English or zh-TW
|
|
59
|
+
HTML. Their `/data` routes serve the 0.2 UI JSON shapes. Consent approval and
|
|
60
|
+
`POST /oauth/consents/revoke` require a live cookie session and same-origin
|
|
61
|
+
mutation; bearer credentials cannot grant or disconnect apps. Consent completion
|
|
62
|
+
uses only the provider-validated signed query and redirect. All responses are
|
|
63
|
+
private/no-store. Connected-app redirects must be same-origin paths.
|
|
64
|
+
|
|
65
|
+
`resolveCaller(request, loader, { audience, scopes })` verifies token signature,
|
|
66
|
+
issuer, audience and request-bound DPoP through Better Auth, including a durable
|
|
67
|
+
single-use proof reservation. It then checks the live consent and session and
|
|
68
|
+
loads the current database user.
|
|
69
|
+
All of sub, azp, sid, mantle_consent_id and the consent reference must match;
|
|
70
|
+
the consent must cover the resource and every token scope, and the session must
|
|
71
|
+
still be alive. `scopes` adds a resource-specific scope floor (403 when missing).
|
|
72
|
+
Unbound legacy tokens fail closed. Disconnect deletes the grant first, revokes
|
|
73
|
+
its access/refresh tokens. Tokens issued without an active consent fail closed.
|
|
74
|
+
First-party `skip_consent` tokens instead require a live, enabled client with
|
|
75
|
+
`skipConsent` and allowed scopes, plus a live user session. Already-issued
|
|
76
|
+
JWTs fail on the next call, and reconsenting cannot revive the old JWT lineage.
|
|
77
|
+
Database failures remain server errors, rather than silently authenticating.
|
|
78
|
+
|
|
79
|
+
For app-owned API keys/personal tokens, supply `resolveCredential(request)` in
|
|
80
|
+
`resolveCaller` options. It runs before OAuth/cookies; return a verified user
|
|
81
|
+
Caller or null when absent, and throw when presented but invalid. The same scope
|
|
82
|
+
floor applies. Any non-Bearer/DPoP Authorization header (including Basic from a staging
|
|
83
|
+
gateway), unless handled by the app-owned credential hook, is UNAUTHENTICATED
|
|
84
|
+
and never falls back to a cookie. The application owns credential verification;
|
|
85
|
+
Mantle loads live roles, bans and declared stored fields.
|
|
86
|
+
|
|
87
|
+
For the 0.2 legacy-DCR cleanup policy, call `pruneLegacyOAuthClients(auth)` from
|
|
88
|
+
an application-owned hourly scheduled job. It deletes only ownerless,
|
|
89
|
+
non-CIMD/non-reference clients older than 90 days; it runs no boot-time work.
|
|
90
|
+
|
|
91
|
+
When configuring session secondary storage, set `verification.storeInDatabase: true` and `session.storeSessionInDatabase: true`: live grants and durable DPoP single-use reservations must use the database, never a non-atomic session KV cache.
|
|
92
|
+
|
|
93
|
+
Auth routing also guards Better Auth’s raw `/api/auth/admin/*` endpoints (including percent-encoded admin paths): only a fresh primary-database `admin` cookie session may enter, and mutations require same origin. A stale admin snapshot in session KV cannot bypass demotion, ban or session deletion. App-owned auth mounts can reuse `guardAuthAdminRequest` from `@aotter/mantle/auth/admin` with a resolver that reads current authority.
|
|
94
|
+
|
|
95
|
+
Use primary database sessions without session secondaryStorage as the simple
|
|
96
|
+
safe configuration. If optional session caching is enabled, use the
|
|
97
|
+
**authority-bound** secondary-storage adapter from the identity/auth template
|
|
98
|
+
(`@aotter/mantle/auth/hardening`, #1499): every snapshot must be checked against the primary session and current
|
|
99
|
+
user before the SDK can read it, including raw SDK endpoints and session lists.
|
|
100
|
+
Arbitrary session KV snapshots are outside this secure configuration: middleware
|
|
101
|
+
may trust stale roles or refresh an expired primary session from a snapshot.
|
|
102
|
+
Merely setting storeSessionInDatabase true does not fix those SDK endpoints.
|
|
103
|
+
Mantle's caller and raw-admin guard validate primary authority before refreshing,
|
|
104
|
+
but do not make arbitrary SDK session caching safe. Keep verification
|
|
105
|
+
consumption and DPoP single-use reservations in the database.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Application-owned PostgreSQL adapters
|
|
2
|
+
|
|
3
|
+
Bun.SQL and postgres.js satisfy `Postgres` from `@aotter/mantle/contracts` directly. Other drivers need `unsafe(text, values)` returning a row array with `.count`, and `begin(options, fn)` pinning one connection until the callback resolves and COMMIT succeeds. Preserve native SQLSTATE/severity evidence; generated writes classify uncertain commits.
|
|
4
|
+
|
|
5
|
+
This node-postgres adapter accepts an app-owned `pg.Pool` through its structural shape:
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import type { Postgres } from '@aotter/mantle/contracts';
|
|
9
|
+
|
|
10
|
+
type Connection = {
|
|
11
|
+
query(text: string, values?: any[]): Promise<{ rows: any[]; rowCount: number | null }>;
|
|
12
|
+
};
|
|
13
|
+
// Pass a node-postgres Pool; its connections and lifetime stay app-owned.
|
|
14
|
+
export function nodePostgres(pool: Connection & {
|
|
15
|
+
connect(): Promise<Connection & { release(discard?: boolean): void }>;
|
|
16
|
+
}): Postgres {
|
|
17
|
+
const unsafe = (connection: Connection): Postgres['unsafe'] => async (text, values) => {
|
|
18
|
+
const result = await connection.query(text, values);
|
|
19
|
+
return Object.assign(result.rows, { count: result.rowCount });
|
|
20
|
+
};
|
|
21
|
+
return {
|
|
22
|
+
unsafe: unsafe(pool),
|
|
23
|
+
async begin(options, fn) {
|
|
24
|
+
if (!/^isolation level (serializable|repeatable read|read committed|read uncommitted)$/.test(options))
|
|
25
|
+
throw new Error('Unsupported transaction options');
|
|
26
|
+
const client = await pool.connect();
|
|
27
|
+
let discard = false;
|
|
28
|
+
try {
|
|
29
|
+
await client.query(`BEGIN ${options}`);
|
|
30
|
+
const tx: Postgres = {
|
|
31
|
+
unsafe: unsafe(client),
|
|
32
|
+
begin: async () => { throw new Error('Nested transactions are unsupported'); },
|
|
33
|
+
};
|
|
34
|
+
let value;
|
|
35
|
+
try { value = await fn(tx); }
|
|
36
|
+
catch (error) {
|
|
37
|
+
try { await client.query('ROLLBACK'); } catch { discard = true; }
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
await client.query('COMMIT');
|
|
41
|
+
return value;
|
|
42
|
+
} catch (error) { discard = true; throw error; }
|
|
43
|
+
finally { client.release(discard); }
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The pool stays application-owned. There is no automatic retry. A COMMIT connection failure remains an error with its original evidence; the SDK can report `OUTCOME_UNKNOWN`. Adapters without interactive transactions must reject in `begin` before invoking the callback. They cannot run multi-statement Procedures or multi-write batches by independent autocommit calls.
|
|
50
|
+
|
|
51
|
+
Test on disposable storage with the [adapter conformance corpus](../../source/scripts/postgres-adapter.ts), covering bound date-time/date/JSON text, SELECT and RETURNING timestamp microseconds,
|
|
52
|
+
row arrays/counts, safe and unsafe int8 precision (including int64 extrema), aliased
|
|
53
|
+
selected-page integer/version number-or-string outputs, native numeric text and
|
|
54
|
+
booleans, unique/OCC failures, commit/rollback, nested handles and uncertain outcomes. This is an application-owned adapter, not an additional supported driver. Mantle's supported PostgreSQL drivers are Bun.SQL and postgres.js.
|
|
55
|
+
|
|
56
|
+
The driver layer is open; [dialects remain postgres and sqlite only](../concepts/runtime-and-adapters.md#drivers-and-dialects).
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Public pages: SEO, AEO and languages
|
|
2
|
+
|
|
3
|
+
This page is the one list of what a public (anonymous, indexable) page emits. Skills, examples and other pages link
|
|
4
|
+
here instead of repeating it.
|
|
5
|
+
|
|
6
|
+
## Two ways to serve them
|
|
7
|
+
|
|
8
|
+
- **Generated `web()`**: list and detail pages straight from public Views, with `llms.txt`, sitemap, Markdown
|
|
9
|
+
alternates and canonical tags. Its contract and limits are in [surface contracts](../reference/surface.md#optional-web-output);
|
|
10
|
+
the smallest example is `docs/examples/generated-web`.
|
|
11
|
+
- **App-owned pages** in `src/routes.ts`, when the page needs its own layout, JSON-LD or languages. The reference
|
|
12
|
+
implementation is `docs/examples/recipes` (`src/pages.ts`, `src/routes.ts`; `smoke.mjs` checks every item below).
|
|
13
|
+
|
|
14
|
+
## Every public page
|
|
15
|
+
|
|
16
|
+
- Server-rendered HTML per URL with the content in the body. A client-only SPA shell or metadata set by script is not
|
|
17
|
+
enough for search or answer engines.
|
|
18
|
+
- `<html lang>`, `<title>`, `<meta name="description">`.
|
|
19
|
+
- `<link rel="canonical">` built from the configured origin (`PUBLIC_ORIGIN`), never from the request `Host`.
|
|
20
|
+
- Open Graph: `og:type`, `og:url` (the canonical), `og:title`, `og:description`, `og:site_name`, `og:locale`
|
|
21
|
+
(underscore form, `zh_TW`), and `og:image` when the content has an image.
|
|
22
|
+
- Unknown URLs answer 404; drafts and anything a visitor may not read are absent, even when the request carries an
|
|
23
|
+
admin session (read as an anonymous caller).
|
|
24
|
+
|
|
25
|
+
## Detail pages
|
|
26
|
+
|
|
27
|
+
- JSON-LD of the matching schema.org type (`Recipe`, `Article`, `Event`, `Product`, ...), built from the same row as
|
|
28
|
+
the visible content: `name`, `description`, `url`, `inLanguage`, `datePublished`, `dateModified`, and `image` when
|
|
29
|
+
there is one (some rich results require it). Escape `<` in the serialized JSON so stored text cannot close the
|
|
30
|
+
script element. Do not add facts the page does not show.
|
|
31
|
+
- A short answer block for answer engines: one question heading and a one-sentence answer from the row's data.
|
|
32
|
+
- A Markdown alternate at `<url>.md`, linked with `<link rel="alternate" type="text/markdown">`.
|
|
33
|
+
|
|
34
|
+
## More than one language
|
|
35
|
+
|
|
36
|
+
- One URL per language (`/{locale}/...`), with `hreflang` alternates for each language the page exists in, plus
|
|
37
|
+
`x-default`. A language that is not published for this item gets no alternate and its URL is a 404.
|
|
38
|
+
- `og:locale:alternate` for the other languages, and a visible language switcher with `hreflang` and `lang` on links.
|
|
39
|
+
- Per-language Markdown alternates; `llms.txt` lists each language's items.
|
|
40
|
+
|
|
41
|
+
## Site files
|
|
42
|
+
|
|
43
|
+
- `/sitemap.xml` with every public URL in every language, walking the complete cursor chain of the list View (the
|
|
44
|
+
recipes example reads one page of 100 per language and marks the paging as `AGENT:` work).
|
|
45
|
+
- `/robots.txt` with `Disallow: /admin/` and the sitemap URL.
|
|
46
|
+
- `/llms.txt` ([llmstxt.org](https://llmstxt.org)): a title, a one-line summary and a link to each item's Markdown
|
|
47
|
+
alternate.
|
|
48
|
+
|
|
49
|
+
## Check before you report done
|
|
50
|
+
|
|
51
|
+
Request the HTML without running JavaScript and check the items above; publish, edit and unpublish an item and check
|
|
52
|
+
that its page, Markdown, sitemap and `llms.txt` follow. The `mantle` skill's
|
|
53
|
+
`references/local-testing.md` covers running this against `wrangler dev`.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Size and startup
|
|
2
|
+
|
|
3
|
+
The SDK ships kernel, CLI, generator and private compiler together. Request modules do not import compiler code. Import only selected generated operations and bindings; direct operations can omit Store/Admin/auth entirely.
|
|
4
|
+
|
|
5
|
+
Workers use `mantle bundle` to emit split ESM. Keep Better Auth behind `authLoader(() => import(...))`; the startup graph guard rejects eager auth imports. The official MCP SDK and selected Admin operations load on matching requests. Generated module imports perform no SQL or kernel initialization; Store metadata initializes on first use without SQL.
|
|
6
|
+
|
|
7
|
+
Contributor checks use tracked fixtures to compare runtime/startup graphs against `size-budgets.json` and inspect the published allowlist in `check:package`. Package packed/unpacked bytes are reported separately from request startup and query costs. Do not infer latency from bundle bytes.
|
|
8
|
+
|
|
9
|
+
Cloudflare startup_time_ms needs an actual upload/deployment; offline dry runs do not measure it. Measure on the selected host and report first use and warm work separately. Applications own deployment authorization and resources.
|
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Choose Store for writes and simple lookups; declare internal Views for richer reads.
|
|
3
3
|
---
|
|
4
4
|
# Query from TypeScript
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
`
|
|
9
|
-
`
|
|
10
|
-
|
|
6
|
+
| Work | Data path |
|
|
7
|
+
| --- | --- |
|
|
8
|
+
| Writes | Store `insert` / `update` / `delete`, atomic `batch`, supported `transaction`, or declared Procedures |
|
|
9
|
+
| Id lookup or simple AND filter | Store `findById` / `find` / `first`, inside handlers or an existing application |
|
|
10
|
+
| Joins, aggregates, OR, reusable reads | Internal View: manifest SQL that is reviewable and typed |
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|---|---|---|
|
|
14
|
-
| `ctx.store` | inside a `ref` handler | bound to the invocation's caller. A guard or a before hook gets a read-only one |
|
|
15
|
-
| `runtime.store.as(caller)` | service code that has resolved a caller | that caller |
|
|
16
|
-
| `runtime.store` | trusted host code (imports, maintenance) | none: no caller scope. TTL still applies |
|
|
17
|
-
|
|
18
|
-
Each one applies TTL visibility, and published-only on public Views. Only
|
|
19
|
-
`runtime.store` skips caller scope, so never hand it a request's input
|
|
20
|
-
unchecked.
|
|
12
|
+
Never write raw SQL to Mantle collections: it bypasses scope, TTL, publishing and system-column rules. The Store applies row rules but does not check a View's or Procedure's `requires`; authorize your handler before using it.
|
|
21
13
|
|
|
22
14
|
## Declare an internal View
|
|
23
15
|
|
|
16
|
+
Save this as `manifests/tickets.yaml`:
|
|
17
|
+
|
|
24
18
|
```yaml
|
|
25
19
|
apiVersion: cms.mantle.aotter.net/v2
|
|
26
20
|
kind: Schema
|
|
@@ -49,107 +43,50 @@ spec:
|
|
|
49
43
|
properties:
|
|
50
44
|
ticketState: { type: string, enum: [open, closed] }
|
|
51
45
|
sql: |
|
|
52
|
-
SELECT id, subject, ticketState FROM tickets
|
|
46
|
+
SELECT id, subject, ticketState AS "ticketState" FROM tickets
|
|
53
47
|
WHERE ticketState = input.ticketState
|
|
54
|
-
ORDER BY
|
|
48
|
+
ORDER BY id ASC
|
|
55
49
|
```
|
|
56
50
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
for the caller the Store is bound to.
|
|
60
|
-
|
|
61
|
-
## Call it
|
|
51
|
+
Generate with `mantle generate cloudflare-d1 generated manifests/tickets.yaml`.
|
|
52
|
+
An internal View has no public REST route or MCP tool. Its generated function still applies declared authorization and compiled row policy.
|
|
62
53
|
|
|
63
54
|
```ts
|
|
64
|
-
import
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
};
|
|
55
|
+
import { store } from './generated/generated.js';
|
|
56
|
+
import ticketsByState from './generated/views/tickets-by-state.js';
|
|
57
|
+
import type { Caller } from '@aotter/mantle/contracts';
|
|
58
|
+
|
|
59
|
+
export async function readTickets(db: Parameters<typeof store>[0], caller: Caller) {
|
|
60
|
+
const tickets = store(db, caller).collection('tickets');
|
|
61
|
+
const first = await tickets.first({ where: { ticketstate: 'open' } });
|
|
62
|
+
const rows = await ticketsByState(db, caller, { ticketState: 'open' });
|
|
63
|
+
return { first, rows };
|
|
64
|
+
}
|
|
73
65
|
```
|
|
74
66
|
|
|
75
|
-
The
|
|
76
|
-
with `uiSchema.list.searchFields` or `filterFields` also takes `search` and
|
|
77
|
-
`filters` (`ctx.store.view(name, { search: "refund", filters: { ticketState: "open" } })`);
|
|
78
|
-
Store refuses a filter the View does not declare. An output that reads a
|
|
79
|
-
Schema field unchanged has that field's type, `created_at` and `updated_at`
|
|
80
|
-
are `string | null`, and an expression, or another native column such as `id`,
|
|
81
|
-
is `unknown`. Page with `limit` (default 50, at most 500) and the opaque
|
|
82
|
-
`cursor` from `nextCursor`.
|
|
67
|
+
The app supplies a verified Caller and its existing native handle. External input needs boundary validation. Store rows, filters and writes use storage names (`ticketstate`, `created_at`); View aliases use the SQL output names.
|
|
83
68
|
|
|
84
|
-
##
|
|
69
|
+
## Store reads and writes
|
|
85
70
|
|
|
86
|
-
|
|
87
|
-
Schema:
|
|
71
|
+
`find` returns `{ rows, cursor }` (null cursor on the last page), with limits 1–500 and opaque keyset cursors. `where` combines fields with AND; `orderBy` selects a generated indexed column with `id` ties. Most order columns must be NOT NULL; publishing `published_at` supports nulls. For a proved pageable internal View, import `paged/views/<encoded-name>.ts` and call `(db, caller, input, { limit?, cursor? })`. Other internal Views retain their bare row-array function.
|
|
88
72
|
|
|
89
|
-
|
|
90
|
-
const { rows } = await ctx.store.select({
|
|
91
|
-
from: "tickets",
|
|
92
|
-
columns: ["id", "subject"],
|
|
93
|
-
where: { ticketState: "open", subject: { like: "%refund%" } },
|
|
94
|
-
orderBy: { updatedAt: "desc" },
|
|
95
|
-
limit: 20,
|
|
96
|
-
});
|
|
97
|
-
```
|
|
73
|
+
Store keeps `find({ search: 'text' })`, `first({ search: 'text' })` and `count(where?)`. Search matches exact id or declared searchable fields under the same row policy.
|
|
98
74
|
|
|
99
|
-
|
|
100
|
-
`{ column: { eq, ne, gt, gte, lt, lte, like, in, notIn, isNull } }`, and
|
|
101
|
-
`and`, `or`, `not`. `in` takes a list or `{ select, from, where }`.
|
|
102
|
-
- `orderBy`: one column; `id` breaks ties. Default `{ updatedAt: "desc" }`.
|
|
103
|
-
- `search`: text matched against `searchableFields` (and `id`).
|
|
104
|
-
- Native columns are camelCase here (`createdAt`, `authorId`), while SQL spells
|
|
105
|
-
them snake_case (`created_at`).
|
|
75
|
+
`count` scans every matching row. For large tables or frequently shown totals, use an internal View with indexed predicates or avoid exact totals; a View's aggregate still scans the matching rows.
|
|
106
76
|
|
|
107
|
-
`
|
|
77
|
+
Store search, Admin list search and Views using `mantle.search` share the same dialect search. SQLite/D1 use FTS5 trigram for queries of 3 or more characters, and LIKE for shorter queries. PostgreSQL uses ILIKE over the declared fields, which scans by default. A View does not make PostgreSQL search faster. For large PostgreSQL tables, the application's agent adds trigram indexes in a migration; ILIKE then uses them with no code change:
|
|
108
78
|
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
{ insert: "ticket-events", values: { ticketId: id, kind: "closed" } },
|
|
113
|
-
]);
|
|
79
|
+
```sql
|
|
80
|
+
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
|
81
|
+
CREATE INDEX articles_title_trgm ON articles USING gin (title gin_trgm_ops);
|
|
114
82
|
```
|
|
115
83
|
|
|
116
|
-
|
|
117
|
-
`onConflict: "ignore" | { columns, update }`. A scoped Schema refuses a
|
|
118
|
-
client `id`, because a chosen id could collide with another owner's row and
|
|
119
|
-
reveal it: give such rows a field of your own that is unique with the scope
|
|
120
|
-
field (`uniqueIndexes: [[owner, clientKey]]`) when other rows of the same
|
|
121
|
-
write must point at them, or when a retry must find them.
|
|
122
|
-
- `update` with `set` and `where`; `delete` with `where`. A `where` that pins
|
|
123
|
-
`id` is a row op: it may carry `lock` (the version the caller saw), and
|
|
124
|
-
writing no row is `CONFLICT`.
|
|
125
|
-
- A result is `{ id, version }` for a row op and `{ affected }` for a set op.
|
|
126
|
-
- `set` and `values` never name the scope field or a native column (except
|
|
127
|
-
`status` on a `publishing` Schema, below); Store
|
|
128
|
-
fills them. A `null` leaves empty, or clears, a field the Schema does not
|
|
129
|
-
require (the generated `values` and `set` types accept it); for a required
|
|
130
|
-
field it is refused. On a `publishing` Schema, `set: { status }` is how a `ref`
|
|
131
|
-
handler publishes, unpublishes or archives.
|
|
132
|
-
|
|
133
|
-
Failures throw `DiagnosticError` with `INPUT_VALIDATION_FAILED` (including a
|
|
134
|
-
failed `check`), `CONFLICT` (`conflict.reason` is `lock`, `expect` or
|
|
135
|
-
`unique`, and `conflict.opIndex` names the operation; for `unique` it is
|
|
136
|
-
present when exactly one operation of the write targets the violated Schema,
|
|
137
|
-
since the engine names the table and not the statement), `RESOURCE_UNAVAILABLE`
|
|
138
|
-
or `OUTCOME_UNKNOWN`. Nothing is written on any failure. After
|
|
139
|
-
`OUTCOME_UNKNOWN`, retry with the same client ids and locks: a replayed insert
|
|
140
|
-
conflicts on its id, a replayed update on its lock.
|
|
141
|
-
|
|
142
|
-
## From service code
|
|
143
|
-
|
|
144
|
-
The service's `fetch` receives the runtime. Resolve the caller first, as the
|
|
145
|
-
generated `withCaller` does, and bind Store to it:
|
|
84
|
+
Index each searched field as needed and inspect EXPLAIN for the workload. Case folding follows the engine.
|
|
146
85
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
86
|
+
Writes are lazy and execute once when awaited. Insert/update return native rows; delete returns void. `update(id, set, { lock })` and `delete(id, { lock })` require the version the caller reviewed. A stale lock, excluded row or unique clash is `CONFLICT`. `batch` atomically executes unused Writes from one Store in input order; a step cannot use a prior result.
|
|
87
|
+
|
|
88
|
+
Interactive `transaction(async tx => …)` exists on bun:sqlite and PostgreSQL, with collections, Views and Procedures bound to the transaction. D1 supports batches only. PostgreSQL defaults to serializable, with an explicit isolation override; SQLite uses BEGIN IMMEDIATE. Use `tx` inside the callback, not the outer Store or handle. Nested transactions and `tx.batch` are refused; there is no automatic retry.
|
|
89
|
+
|
|
90
|
+
Ref handlers receive `{ caller, db, store }` bound to the same Caller and transaction. Implement the generated `Handlers` interface and pass it to `store(db, caller, { handlers })`. Direct Procedure modules expose SQL Procedures; ref Procedures are reached through the bound Store or selected surfaces.
|
|
152
91
|
|
|
153
|
-
|
|
154
|
-
`runtime.invokeProcedure({ procedure, input, caller, cause: { kind: "internal", id } })`.
|
|
155
|
-
Inside a handler, `ctx.invoke(name, input)` does the same and keeps the caller.
|
|
92
|
+
See [native execution](native-execution.md) for values and write outcomes and [migrations](../concepts/runtime-and-adapters.md#schema-installation-and-migrations) before changing a Schema.
|
|
@@ -4,66 +4,200 @@
|
|
|
4
4
|
{
|
|
5
5
|
"text": "Start here",
|
|
6
6
|
"items": [
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
{
|
|
8
|
+
"text": "Handbook overview",
|
|
9
|
+
"link": "/start/overview"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"text": "Quickstart: a service on Workers",
|
|
13
|
+
"link": "/start/quickstart-worker"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"text": "Project layout and CLI",
|
|
17
|
+
"link": "/start/project-and-cli"
|
|
18
|
+
}
|
|
10
19
|
]
|
|
11
20
|
},
|
|
12
21
|
{
|
|
13
22
|
"text": "Task guides",
|
|
14
23
|
"items": [
|
|
15
|
-
{
|
|
16
|
-
|
|
17
|
-
|
|
24
|
+
{
|
|
25
|
+
"text": "Agent installation and handoff",
|
|
26
|
+
"link": "/guides/agent-setup"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"text": "Query from TypeScript",
|
|
30
|
+
"link": "/guides/typed-queries"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"text": "Public pages: SEO, AEO and languages",
|
|
34
|
+
"link": "/guides/public-pages"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"text": "Native Admin",
|
|
38
|
+
"link": "/guides/native-admin"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"text": "Customize Admin",
|
|
42
|
+
"link": "/guides/admin-ui"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"text": "Extend Admin",
|
|
46
|
+
"link": "/guides/admin-extensions"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"text": "Another host or engine",
|
|
50
|
+
"link": "/guides/adapter-guide"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"text": "Native execution",
|
|
54
|
+
"link": "/guides/native-execution"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"text": "PostgreSQL adapters",
|
|
58
|
+
"link": "/guides/postgres-adapters"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"text": "OAuth and consent",
|
|
62
|
+
"link": "/guides/oauth"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"text": "Transactional email",
|
|
66
|
+
"link": "/guides/email"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"text": "MCP Apps",
|
|
70
|
+
"link": "/guides/mcp-apps"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"text": "Size and startup",
|
|
74
|
+
"link": "/guides/size-and-startup"
|
|
75
|
+
}
|
|
18
76
|
]
|
|
19
77
|
},
|
|
20
78
|
{
|
|
21
79
|
"text": "Concepts",
|
|
22
80
|
"items": [
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{
|
|
28
|
-
|
|
29
|
-
|
|
81
|
+
{
|
|
82
|
+
"text": "The four atoms",
|
|
83
|
+
"link": "/concepts/four-atoms"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"text": "Lifecycle and locales",
|
|
87
|
+
"link": "/concepts/lifecycle-and-locales"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"text": "Reads: Views, REST and MCP",
|
|
91
|
+
"link": "/concepts/views"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"text": "Writes: Procedures and Triggers",
|
|
95
|
+
"link": "/concepts/procedures-and-triggers"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"text": "Authorization",
|
|
99
|
+
"link": "/concepts/authorization"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"text": "MCP and agents",
|
|
103
|
+
"link": "/concepts/mcp-and-agents"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"text": "Runtime, Store and dialects",
|
|
107
|
+
"link": "/concepts/runtime-and-adapters"
|
|
108
|
+
}
|
|
30
109
|
]
|
|
31
110
|
},
|
|
32
111
|
{
|
|
33
112
|
"text": "Reference",
|
|
34
113
|
"items": [
|
|
35
|
-
{
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
|
|
114
|
+
{
|
|
115
|
+
"text": "Manifest feature table",
|
|
116
|
+
"link": "/reference/features"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"text": "Manifest envelope",
|
|
120
|
+
"link": "/reference/manifest"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"text": "Schema",
|
|
124
|
+
"link": "/reference/schema"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"text": "View",
|
|
128
|
+
"link": "/reference/view"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"text": "Procedure",
|
|
132
|
+
"link": "/reference/procedure"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"text": "Trigger",
|
|
136
|
+
"link": "/reference/trigger"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"text": "Authorization requirements",
|
|
140
|
+
"link": "/reference/authorization"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"text": "Site defaults and site_config",
|
|
144
|
+
"link": "/reference/site-config"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"text": "Diagnostic codes",
|
|
148
|
+
"link": "/reference/diagnostics"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"text": "HTTP, MCP, CLI and packages",
|
|
152
|
+
"link": "/reference/surface"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"text": "Generated Admin descriptors",
|
|
156
|
+
"link": "/reference/admin-descriptors"
|
|
157
|
+
}
|
|
45
158
|
]
|
|
46
159
|
},
|
|
47
160
|
{
|
|
48
161
|
"text": "Cloudflare",
|
|
49
162
|
"items": [
|
|
50
|
-
{
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{
|
|
163
|
+
{
|
|
164
|
+
"text": "The service and its entry",
|
|
165
|
+
"link": "/cloudflare/service-entry"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"text": "Authentication",
|
|
169
|
+
"link": "/cloudflare/authentication"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"text": "Media uploads with R2",
|
|
173
|
+
"link": "/cloudflare/media-r2"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"text": "Deploy and operate",
|
|
177
|
+
"link": "/cloudflare/deploy-and-operate"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"text": "Mantle on ChatGPT Sites",
|
|
181
|
+
"link": "/cloudflare/chatgpt-sites"
|
|
182
|
+
}
|
|
55
183
|
]
|
|
56
184
|
},
|
|
57
185
|
{
|
|
58
186
|
"text": "Examples",
|
|
59
187
|
"items": [
|
|
60
|
-
{
|
|
188
|
+
{
|
|
189
|
+
"text": "Examples",
|
|
190
|
+
"link": "/examples/hub"
|
|
191
|
+
}
|
|
61
192
|
]
|
|
62
193
|
},
|
|
63
194
|
{
|
|
64
195
|
"text": "Releases",
|
|
65
196
|
"items": [
|
|
66
|
-
{
|
|
197
|
+
{
|
|
198
|
+
"text": "Releases",
|
|
199
|
+
"link": "/releases/index"
|
|
200
|
+
}
|
|
67
201
|
]
|
|
68
202
|
}
|
|
69
203
|
]
|