@aotter/mantle 0.1.5-alpha.1 → 0.2.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -306
- package/dist/admin/consent.d.ts +17 -0
- package/dist/admin/consent.d.ts.map +1 -0
- package/dist/admin/consent.js +17 -0
- package/dist/admin/consent.js.map +1 -0
- package/dist/admin/createAdminSurface.d.ts +22 -0
- package/dist/admin/createAdminSurface.d.ts.map +1 -0
- package/dist/admin/createAdminSurface.js +592 -0
- package/dist/admin/createAdminSurface.js.map +1 -0
- package/dist/admin/developerConsole.d.ts +266 -0
- package/dist/admin/developerConsole.d.ts.map +1 -0
- package/dist/admin/developerConsole.js +136 -0
- package/dist/admin/developerConsole.js.map +1 -0
- package/dist/admin/identity.d.ts +62 -0
- package/dist/admin/identity.d.ts.map +1 -0
- package/dist/admin/identity.js +7 -0
- package/dist/admin/identity.js.map +1 -0
- package/dist/admin/index.d.ts +4 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +4 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/procedureFlow.d.ts +38 -0
- package/dist/admin/procedureFlow.d.ts.map +1 -0
- package/dist/admin/procedureFlow.js +188 -0
- package/dist/admin/procedureFlow.js.map +1 -0
- package/dist/auth/ConsoleEmailSender.d.ts +15 -0
- package/dist/auth/ConsoleEmailSender.d.ts.map +1 -0
- package/dist/auth/ConsoleEmailSender.js +19 -0
- package/dist/auth/ConsoleEmailSender.js.map +1 -0
- package/dist/auth/appleClientSecret.d.ts +75 -0
- package/dist/auth/appleClientSecret.d.ts.map +1 -0
- package/dist/auth/appleClientSecret.js +116 -0
- package/dist/auth/appleClientSecret.js.map +1 -0
- package/dist/auth/buildAuth.d.ts +4565 -0
- package/dist/auth/buildAuth.d.ts.map +1 -0
- package/dist/auth/buildAuth.js +307 -0
- package/dist/auth/buildAuth.js.map +1 -0
- package/dist/auth/callerResolver.d.ts +48 -0
- package/dist/auth/callerResolver.d.ts.map +1 -0
- package/dist/auth/callerResolver.js +49 -0
- package/dist/auth/callerResolver.js.map +1 -0
- package/dist/auth/createAuthRoutes.d.ts +22 -0
- package/dist/auth/createAuthRoutes.d.ts.map +1 -0
- package/dist/auth/createAuthRoutes.js +129 -0
- package/dist/auth/createAuthRoutes.js.map +1 -0
- package/dist/auth/createMantleAuth.d.ts +3 -0
- package/dist/auth/createMantleAuth.d.ts.map +1 -0
- package/dist/auth/createMantleAuth.js +508 -0
- package/dist/auth/createMantleAuth.js.map +1 -0
- package/dist/auth/db.d.ts +17 -0
- package/dist/auth/db.d.ts.map +1 -0
- package/dist/auth/db.js +24 -0
- package/dist/auth/db.js.map +1 -0
- package/dist/auth/emailTemplates.d.ts +7 -0
- package/dist/auth/emailTemplates.d.ts.map +1 -0
- package/dist/auth/emailTemplates.js +27 -0
- package/dist/auth/emailTemplates.js.map +1 -0
- package/dist/auth/index.d.ts +9 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +7 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/methods.d.ts +717 -0
- package/dist/auth/methods.d.ts.map +1 -0
- package/dist/auth/methods.js +321 -0
- package/dist/auth/methods.js.map +1 -0
- package/dist/auth/oauthTokens.d.ts +24 -0
- package/dist/auth/oauthTokens.d.ts.map +1 -0
- package/dist/auth/oauthTokens.js +146 -0
- package/dist/auth/oauthTokens.js.map +1 -0
- package/dist/auth/setupIncomplete.d.ts +16 -0
- package/dist/auth/setupIncomplete.d.ts.map +1 -0
- package/dist/auth/setupIncomplete.js +50 -0
- package/dist/auth/setupIncomplete.js.map +1 -0
- package/dist/auth/types.d.ts +440 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +10 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/bun/index.d.ts +65 -0
- package/dist/bun/index.d.ts.map +1 -0
- package/dist/bun/index.js +130 -0
- package/dist/bun/index.js.map +1 -0
- package/dist/cli/emitModule.d.ts +7 -0
- package/dist/cli/emitModule.d.ts.map +1 -0
- package/dist/cli/emitModule.js +127 -0
- package/dist/cli/emitModule.js.map +1 -0
- package/dist/cli/generate.d.ts +4 -16
- package/dist/cli/generate.d.ts.map +1 -1
- package/dist/cli/generate.js +318 -262
- package/dist/cli/generate.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +15 -71
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/preset.d.ts +18 -0
- package/dist/cli/preset.d.ts.map +1 -0
- package/dist/cli/preset.js +353 -0
- package/dist/cli/preset.js.map +1 -0
- package/dist/cloudflare/index.d.ts +21 -0
- package/dist/cloudflare/index.d.ts.map +1 -0
- package/dist/cloudflare/index.js +14 -0
- package/dist/cloudflare/index.js.map +1 -0
- package/dist/cloudflare/r2Media.d.ts +43 -0
- package/dist/cloudflare/r2Media.d.ts.map +1 -0
- package/dist/cloudflare/r2Media.js +69 -0
- package/dist/cloudflare/r2Media.js.map +1 -0
- package/dist/core/caller.d.ts +35 -0
- package/dist/core/caller.d.ts.map +1 -0
- package/dist/core/caller.js +3 -0
- package/dist/core/caller.js.map +1 -0
- package/dist/core/createMantle.d.ts +22 -0
- package/dist/core/createMantle.d.ts.map +1 -0
- package/dist/core/createMantle.js +117 -0
- package/dist/core/createMantle.js.map +1 -0
- package/dist/core/dialect.d.ts +41 -0
- package/dist/core/dialect.d.ts.map +1 -0
- package/dist/core/dialect.js +7 -0
- package/dist/core/dialect.js.map +1 -0
- package/dist/core/driver.d.ts +17 -0
- package/dist/core/driver.d.ts.map +1 -0
- package/dist/core/driver.js +2 -0
- package/dist/core/driver.js.map +1 -0
- package/dist/core/email.d.ts +17 -0
- package/dist/core/email.d.ts.map +1 -0
- package/dist/core/email.js +2 -0
- package/dist/core/email.js.map +1 -0
- package/dist/core/index.d.ts +16 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +16 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/invocation.d.ts +66 -0
- package/dist/core/invocation.d.ts.map +1 -0
- package/dist/core/invocation.js +3 -0
- package/dist/core/invocation.js.map +1 -0
- package/dist/core/runtime/auth.d.ts +9 -0
- package/dist/core/runtime/auth.d.ts.map +1 -0
- package/dist/core/runtime/auth.js +39 -0
- package/dist/core/runtime/auth.js.map +1 -0
- package/dist/core/runtime/createRuntime.d.ts +23 -0
- package/dist/core/runtime/createRuntime.d.ts.map +1 -0
- package/dist/core/runtime/createRuntime.js +214 -0
- package/dist/core/runtime/createRuntime.js.map +1 -0
- package/dist/core/runtime/verifyPlan.d.ts +34 -0
- package/dist/core/runtime/verifyPlan.d.ts.map +1 -0
- package/dist/core/runtime/verifyPlan.js +301 -0
- package/dist/core/runtime/verifyPlan.js.map +1 -0
- package/dist/core/service.d.ts +45 -0
- package/dist/core/service.d.ts.map +1 -0
- package/dist/core/service.js +2 -0
- package/dist/core/service.js.map +1 -0
- package/dist/core/site.d.ts +117 -0
- package/dist/core/site.d.ts.map +1 -0
- package/dist/core/site.js +2 -0
- package/dist/core/site.js.map +1 -0
- package/dist/core/siteConfig.d.ts +5 -0
- package/dist/core/siteConfig.d.ts.map +1 -0
- package/dist/core/siteConfig.js +24 -0
- package/dist/core/siteConfig.js.map +1 -0
- package/dist/core/sql/allowlist.d.ts +65 -0
- package/dist/core/sql/allowlist.d.ts.map +1 -0
- package/dist/core/sql/allowlist.js +705 -0
- package/dist/core/sql/allowlist.js.map +1 -0
- package/dist/core/sql/ast.d.ts +24 -0
- package/dist/core/sql/ast.d.ts.map +1 -0
- package/dist/core/sql/ast.js +32 -0
- package/dist/core/sql/ast.js.map +1 -0
- package/dist/core/sql/compile.d.ts +50 -0
- package/dist/core/sql/compile.d.ts.map +1 -0
- package/dist/core/sql/compile.js +48 -0
- package/dist/core/sql/compile.js.map +1 -0
- package/dist/core/sql/policy.d.ts +121 -0
- package/dist/core/sql/policy.d.ts.map +1 -0
- package/dist/core/sql/policy.js +379 -0
- package/dist/core/sql/policy.js.map +1 -0
- package/dist/core/sql/positions.d.ts +30 -0
- package/dist/core/sql/positions.d.ts.map +1 -0
- package/dist/core/sql/positions.js +22 -0
- package/dist/core/sql/positions.js.map +1 -0
- package/dist/core/sql/run.d.ts +76 -0
- package/dist/core/sql/run.d.ts.map +1 -0
- package/dist/core/sql/run.js +267 -0
- package/dist/core/sql/run.js.map +1 -0
- package/dist/core/store/createStore.d.ts +49 -0
- package/dist/core/store/createStore.d.ts.map +1 -0
- package/dist/core/store/createStore.js +227 -0
- package/dist/core/store/createStore.js.map +1 -0
- package/dist/core/store/cursor.d.ts +4 -0
- package/dist/core/store/cursor.d.ts.map +1 -0
- package/dist/core/store/cursor.js +22 -0
- package/dist/core/store/cursor.js.map +1 -0
- package/dist/core/store/json.d.ts +80 -0
- package/dist/core/store/json.d.ts.map +1 -0
- package/dist/core/store/json.js +342 -0
- package/dist/core/store/json.js.map +1 -0
- package/dist/core/store.d.ts +160 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +2 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/wire.d.ts +20 -0
- package/dist/core/wire.d.ts.map +1 -0
- package/dist/core/wire.js +84 -0
- package/dist/core/wire.js.map +1 -0
- package/dist/core/withCaller.d.ts +16 -0
- package/dist/core/withCaller.d.ts.map +1 -0
- package/dist/core/withCaller.js +29 -0
- package/dist/core/withCaller.js.map +1 -0
- package/dist/d1/adapter.d.ts +12 -0
- package/dist/d1/adapter.d.ts.map +1 -0
- package/dist/d1/adapter.js +23 -0
- package/dist/d1/adapter.js.map +1 -0
- package/dist/d1/codec.d.ts +14 -0
- package/dist/d1/codec.d.ts.map +1 -0
- package/dist/d1/codec.js +136 -0
- package/dist/d1/codec.js.map +1 -0
- package/dist/d1/compile/index.d.ts +9 -0
- package/dist/d1/compile/index.d.ts.map +1 -0
- package/dist/d1/compile/index.js +9 -0
- package/dist/d1/compile/index.js.map +1 -0
- package/dist/d1/dialect.d.ts +4 -0
- package/dist/d1/dialect.d.ts.map +1 -0
- package/dist/d1/dialect.js +13 -0
- package/dist/d1/dialect.js.map +1 -0
- package/dist/d1/executor.d.ts +13 -0
- package/dist/d1/executor.d.ts.map +1 -0
- package/dist/d1/executor.js +91 -0
- package/dist/d1/executor.js.map +1 -0
- package/dist/d1/index.d.ts +6 -0
- package/dist/d1/index.d.ts.map +1 -0
- package/dist/d1/index.js +6 -0
- package/dist/d1/index.js.map +1 -0
- package/dist/d1/lower.d.ts +8 -0
- package/dist/d1/lower.d.ts.map +1 -0
- package/dist/d1/lower.js +167 -0
- package/dist/d1/lower.js.map +1 -0
- package/dist/d1/media.d.ts +5 -0
- package/dist/d1/media.d.ts.map +1 -0
- package/dist/d1/media.js +157 -0
- package/dist/d1/media.js.map +1 -0
- package/dist/d1/migrations.d.ts +12 -0
- package/dist/d1/migrations.d.ts.map +1 -0
- package/dist/d1/migrations.js +111 -0
- package/dist/d1/migrations.js.map +1 -0
- package/dist/d1/print.d.ts +28 -0
- package/dist/d1/print.d.ts.map +1 -0
- package/dist/d1/print.js +54 -0
- package/dist/d1/print.js.map +1 -0
- package/dist/d1/site.d.ts +17 -0
- package/dist/d1/site.d.ts.map +1 -0
- package/dist/d1/site.js +63 -0
- package/dist/d1/site.js.map +1 -0
- package/dist/d1/storage.d.ts +34 -0
- package/dist/d1/storage.d.ts.map +1 -0
- package/dist/d1/storage.js +288 -0
- package/dist/d1/storage.js.map +1 -0
- package/dist/d1/tz.d.ts +21 -0
- package/dist/d1/tz.d.ts.map +1 -0
- package/dist/d1/tz.js +54 -0
- package/dist/d1/tz.js.map +1 -0
- package/dist/d1/validator.d.ts +10 -0
- package/dist/d1/validator.d.ts.map +1 -0
- package/dist/d1/validator.js +33 -0
- package/dist/d1/validator.js.map +1 -0
- package/dist/mcp/apps.d.ts +43 -0
- package/dist/mcp/apps.d.ts.map +1 -0
- package/dist/mcp/apps.js +57 -0
- package/dist/mcp/apps.js.map +1 -0
- package/dist/mcp/catalog.d.ts +55 -0
- package/dist/mcp/catalog.d.ts.map +1 -0
- package/dist/mcp/catalog.js +81 -0
- package/dist/mcp/catalog.js.map +1 -0
- package/dist/mcp/createMcpSurface.d.ts +34 -0
- package/dist/mcp/createMcpSurface.d.ts.map +1 -0
- package/dist/mcp/createMcpSurface.js +150 -0
- package/dist/mcp/createMcpSurface.js.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +4 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/postgres/adapter.d.ts +20 -0
- package/dist/postgres/adapter.d.ts.map +1 -0
- package/dist/postgres/adapter.js +44 -0
- package/dist/postgres/adapter.js.map +1 -0
- package/dist/postgres/codec.d.ts +13 -0
- package/dist/postgres/codec.d.ts.map +1 -0
- package/dist/postgres/codec.js +110 -0
- package/dist/postgres/codec.js.map +1 -0
- package/dist/postgres/compile/index.d.ts +9 -0
- package/dist/postgres/compile/index.d.ts.map +1 -0
- package/dist/postgres/compile/index.js +9 -0
- package/dist/postgres/compile/index.js.map +1 -0
- package/dist/postgres/driver.d.ts +92 -0
- package/dist/postgres/driver.d.ts.map +1 -0
- package/dist/postgres/driver.js +110 -0
- package/dist/postgres/driver.js.map +1 -0
- package/dist/postgres/executor.d.ts +20 -0
- package/dist/postgres/executor.d.ts.map +1 -0
- package/dist/postgres/executor.js +69 -0
- package/dist/postgres/executor.js.map +1 -0
- package/dist/postgres/index.d.ts +7 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +7 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/lower.d.ts +6 -0
- package/dist/postgres/lower.d.ts.map +1 -0
- package/dist/postgres/lower.js +157 -0
- package/dist/postgres/lower.js.map +1 -0
- package/dist/postgres/print.d.ts +11 -0
- package/dist/postgres/print.d.ts.map +1 -0
- package/dist/postgres/print.js +121 -0
- package/dist/postgres/print.js.map +1 -0
- package/dist/postgres/storage.d.ts +19 -0
- package/dist/postgres/storage.d.ts.map +1 -0
- package/dist/postgres/storage.js +201 -0
- package/dist/postgres/storage.js.map +1 -0
- package/dist/postgres/textRows.d.ts +10 -0
- package/dist/postgres/textRows.d.ts.map +1 -0
- package/dist/postgres/textRows.js +44 -0
- package/dist/postgres/textRows.js.map +1 -0
- package/dist/postgres/validator.d.ts +12 -0
- package/dist/postgres/validator.d.ts.map +1 -0
- package/dist/postgres/validator.js +46 -0
- package/dist/postgres/validator.js.map +1 -0
- package/dist/spec/domain/index.d.ts +3 -0
- package/dist/spec/domain/index.d.ts.map +1 -0
- package/dist/spec/domain/index.js +3 -0
- package/dist/spec/domain/index.js.map +1 -0
- package/dist/spec/domain/model/ContentState.d.ts +8 -0
- package/dist/spec/domain/model/ContentState.d.ts.map +1 -0
- package/dist/spec/domain/model/ContentState.js +7 -0
- package/dist/spec/domain/model/ContentState.js.map +1 -0
- package/dist/spec/domain/model/Entry.d.ts +29 -0
- package/dist/spec/domain/model/Entry.d.ts.map +1 -0
- package/dist/spec/domain/model/Entry.js +16 -0
- package/dist/spec/domain/model/Entry.js.map +1 -0
- package/dist/spec/domain/model/Locale.d.ts +30 -0
- package/dist/spec/domain/model/Locale.d.ts.map +1 -0
- package/dist/spec/domain/model/Locale.js +33 -0
- package/dist/spec/domain/model/Locale.js.map +1 -0
- package/dist/spec/domain/model/ManifestGrammar.d.ts +452 -0
- package/dist/spec/domain/model/ManifestGrammar.d.ts.map +1 -0
- package/dist/spec/domain/model/ManifestGrammar.js +149 -0
- package/dist/spec/domain/model/ManifestGrammar.js.map +1 -0
- package/dist/spec/domain/model/MediaMimeAccept.d.ts +55 -0
- package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +1 -0
- package/dist/spec/domain/model/MediaMimeAccept.js +90 -0
- package/dist/spec/domain/model/MediaMimeAccept.js.map +1 -0
- package/dist/spec/domain/model/RuntimePlan.d.ts +94 -0
- package/dist/spec/domain/model/RuntimePlan.d.ts.map +1 -0
- package/dist/spec/domain/model/RuntimePlan.js +4 -0
- package/dist/spec/domain/model/RuntimePlan.js.map +1 -0
- package/dist/spec/domain/model/SiteConfig.d.ts +173 -0
- package/dist/spec/domain/model/SiteConfig.d.ts.map +1 -0
- package/dist/spec/domain/model/SiteConfig.js +13 -0
- package/dist/spec/domain/model/SiteConfig.js.map +1 -0
- package/dist/spec/domain/model/SqlIr.d.ts +96 -0
- package/dist/spec/domain/model/SqlIr.d.ts.map +1 -0
- package/dist/spec/domain/model/SqlIr.js +95 -0
- package/dist/spec/domain/model/SqlIr.js.map +1 -0
- package/dist/spec/domain/model/index.d.ts +14 -0
- package/dist/spec/domain/model/index.d.ts.map +1 -0
- package/dist/spec/domain/model/index.js +14 -0
- package/dist/spec/domain/model/index.js.map +1 -0
- package/dist/spec/domain/service/CloudflareCron.d.ts +2 -0
- package/dist/spec/domain/service/CloudflareCron.d.ts.map +1 -0
- package/dist/spec/domain/service/CloudflareCron.js +63 -0
- package/dist/spec/domain/service/CloudflareCron.js.map +1 -0
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts +34 -0
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/CrossSchemaChecker.js +114 -0
- package/dist/spec/domain/service/CrossSchemaChecker.js.map +1 -0
- package/dist/spec/domain/service/EntryDataValidator.d.ts +56 -0
- package/dist/spec/domain/service/EntryDataValidator.d.ts.map +1 -0
- package/dist/spec/domain/service/EntryDataValidator.js +88 -0
- package/dist/spec/domain/service/EntryDataValidator.js.map +1 -0
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts +29 -0
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +1 -0
- package/dist/spec/domain/service/JsonSchemaToZod.js +156 -0
- package/dist/spec/domain/service/JsonSchemaToZod.js.map +1 -0
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts +75 -0
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +1 -0
- package/dist/spec/domain/service/LifecycleStateMachine.js +76 -0
- package/dist/spec/domain/service/LifecycleStateMachine.js.map +1 -0
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +29 -0
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +1 -0
- package/dist/spec/domain/service/LocaleCanonicalizer.js +96 -0
- package/dist/spec/domain/service/LocaleCanonicalizer.js.map +1 -0
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts +60 -0
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestFieldChecks.js +116 -0
- package/dist/spec/domain/service/ManifestFieldChecks.js.map +1 -0
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts +15 -0
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestGraphValidator.js +225 -0
- package/dist/spec/domain/service/ManifestGraphValidator.js.map +1 -0
- package/dist/spec/domain/service/ManifestLinker.d.ts +45 -0
- package/dist/spec/domain/service/ManifestLinker.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestLinker.js +92 -0
- package/dist/spec/domain/service/ManifestLinker.js.map +1 -0
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +16 -0
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js +76 -0
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +1 -0
- package/dist/spec/domain/service/ManifestParser.d.ts +49 -0
- package/dist/spec/domain/service/ManifestParser.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestParser.js +203 -0
- package/dist/spec/domain/service/ManifestParser.js.map +1 -0
- package/dist/spec/domain/service/ManifestPartition.d.ts +9 -0
- package/dist/spec/domain/service/ManifestPartition.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestPartition.js +19 -0
- package/dist/spec/domain/service/ManifestPartition.js.map +1 -0
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +33 -0
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestPathDiagnoser.js +43 -0
- package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +1 -0
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts +10 -0
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestSourceSpans.js +76 -0
- package/dist/spec/domain/service/ManifestSourceSpans.js.map +1 -0
- package/dist/spec/domain/service/McpToolNaming.d.ts +25 -0
- package/dist/spec/domain/service/McpToolNaming.d.ts.map +1 -0
- package/dist/spec/domain/service/McpToolNaming.js +50 -0
- package/dist/spec/domain/service/McpToolNaming.js.map +1 -0
- package/dist/spec/domain/service/PlanFingerprint.d.ts +4 -0
- package/dist/spec/domain/service/PlanFingerprint.d.ts.map +1 -0
- package/dist/spec/domain/service/PlanFingerprint.js +14 -0
- package/dist/spec/domain/service/PlanFingerprint.js.map +1 -0
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +4 -0
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js +211 -0
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +1 -0
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +42 -0
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/SchemaAdminUiChecker.js +289 -0
- package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +1 -0
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts +33 -0
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/SchemaIndexChecker.js +256 -0
- package/dist/spec/domain/service/SchemaIndexChecker.js.map +1 -0
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts +11 -0
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/SchemaSearchChecker.js +78 -0
- package/dist/spec/domain/service/SchemaSearchChecker.js.map +1 -0
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts +31 -0
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/SchemaSpecChecks.js +445 -0
- package/dist/spec/domain/service/SchemaSpecChecks.js.map +1 -0
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +39 -0
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +1 -0
- package/dist/spec/domain/service/SiteDefaultsValidator.js +194 -0
- package/dist/spec/domain/service/SiteDefaultsValidator.js.map +1 -0
- package/dist/spec/domain/service/SqlClassify.d.ts +19 -0
- package/dist/spec/domain/service/SqlClassify.d.ts.map +1 -0
- package/dist/spec/domain/service/SqlClassify.js +42 -0
- package/dist/spec/domain/service/SqlClassify.js.map +1 -0
- package/dist/spec/domain/service/SqlRefusal.d.ts +16 -0
- package/dist/spec/domain/service/SqlRefusal.d.ts.map +1 -0
- package/dist/spec/domain/service/SqlRefusal.js +20 -0
- package/dist/spec/domain/service/SqlRefusal.js.map +1 -0
- package/dist/spec/domain/service/SqlTypes.d.ts +40 -0
- package/dist/spec/domain/service/SqlTypes.d.ts.map +1 -0
- package/dist/spec/domain/service/SqlTypes.js +110 -0
- package/dist/spec/domain/service/SqlTypes.js.map +1 -0
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +3 -0
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +1 -0
- package/dist/spec/domain/service/StaffRoleHierarchy.js +19 -0
- package/dist/spec/domain/service/StaffRoleHierarchy.js.map +1 -0
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts +16 -0
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/TriggerGraphChecks.js +337 -0
- package/dist/spec/domain/service/TriggerGraphChecks.js.map +1 -0
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts +4 -0
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/TriggerSpecChecks.js +89 -0
- package/dist/spec/domain/service/TriggerSpecChecks.js.map +1 -0
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +11 -0
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +1 -0
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js +26 -0
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +1 -0
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +14 -0
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/ViewAdminUiChecker.js +53 -0
- package/dist/spec/domain/service/ViewAdminUiChecker.js.map +1 -0
- package/dist/spec/domain/service/index.d.ts +24 -0
- package/dist/spec/domain/service/index.d.ts.map +1 -0
- package/dist/spec/domain/service/index.js +24 -0
- package/dist/spec/domain/service/index.js.map +1 -0
- package/dist/spec/index.d.ts +10 -0
- package/dist/spec/index.d.ts.map +1 -0
- package/dist/spec/index.js +12 -0
- package/dist/spec/index.js.map +1 -0
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts +16 -0
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +1 -0
- package/dist/spec/infrastructure/cli/parseArgsError.js +34 -0
- package/dist/spec/infrastructure/cli/parseArgsError.js.map +1 -0
- package/dist/spec/infrastructure/index.d.ts +2 -0
- package/dist/spec/infrastructure/index.d.ts.map +1 -0
- package/dist/spec/infrastructure/index.js +2 -0
- package/dist/spec/infrastructure/index.js.map +1 -0
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +18 -0
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/PgQueryParser.js +17 -0
- package/dist/spec/infrastructure/sql/PgQueryParser.js.map +1 -0
- package/dist/spec/infrastructure/sql/compilePlan.d.ts +37 -0
- package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/compilePlan.js +282 -0
- package/dist/spec/infrastructure/sql/compilePlan.js.map +1 -0
- package/dist/spec/infrastructure/sql/compileSql.d.ts +35 -0
- package/dist/spec/infrastructure/sql/compileSql.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/compileSql.js +92 -0
- package/dist/spec/infrastructure/sql/compileSql.js.map +1 -0
- package/dist/spec/infrastructure/sql/frontEnd.d.ts +8 -0
- package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/frontEnd.js +100 -0
- package/dist/spec/infrastructure/sql/frontEnd.js.map +1 -0
- package/dist/spec/infrastructure/sql/index.d.ts +4 -0
- package/dist/spec/infrastructure/sql/index.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/index.js +4 -0
- package/dist/spec/infrastructure/sql/index.js.map +1 -0
- package/dist/spec/kernel/diagnostic.d.ts +137 -0
- package/dist/spec/kernel/diagnostic.d.ts.map +1 -0
- package/dist/spec/kernel/diagnostic.js +296 -0
- package/dist/spec/kernel/diagnostic.js.map +1 -0
- package/dist/spec/kernel/index.d.ts +8 -0
- package/dist/spec/kernel/index.d.ts.map +1 -0
- package/dist/spec/kernel/index.js +8 -0
- package/dist/spec/kernel/index.js.map +1 -0
- package/dist/spec/usecase/EmitTypes.d.ts +22 -0
- package/dist/spec/usecase/EmitTypes.d.ts.map +1 -0
- package/dist/spec/usecase/EmitTypes.js +182 -0
- package/dist/spec/usecase/EmitTypes.js.map +1 -0
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +8 -0
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +1 -0
- package/dist/spec/usecase/ValidateManifestsUseCase.js +101 -0
- package/dist/spec/usecase/ValidateManifestsUseCase.js.map +1 -0
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +27 -0
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +1 -0
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js +2 -0
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +1 -0
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +14 -0
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +1 -0
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js +2 -0
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +1 -0
- package/dist/spec/usecase/dto/index.d.ts +3 -0
- package/dist/spec/usecase/dto/index.d.ts.map +1 -0
- package/dist/spec/usecase/dto/index.js +3 -0
- package/dist/spec/usecase/dto/index.js.map +1 -0
- package/dist/spec/usecase/index.d.ts +10 -0
- package/dist/spec/usecase/index.d.ts.map +1 -0
- package/dist/spec/usecase/index.js +10 -0
- package/dist/spec/usecase/index.js.map +1 -0
- package/dist/testing/cases/before-hook.d.ts +4 -0
- package/dist/testing/cases/before-hook.d.ts.map +1 -0
- package/dist/testing/cases/before-hook.js +71 -0
- package/dist/testing/cases/before-hook.js.map +1 -0
- package/dist/testing/cases/corpus.d.ts +12 -0
- package/dist/testing/cases/corpus.d.ts.map +1 -0
- package/dist/testing/cases/corpus.js +91 -0
- package/dist/testing/cases/corpus.js.map +1 -0
- package/dist/testing/cases/policy.d.ts +74 -0
- package/dist/testing/cases/policy.d.ts.map +1 -0
- package/dist/testing/cases/policy.js +142 -0
- package/dist/testing/cases/policy.js.map +1 -0
- package/dist/testing/cases/printer.d.ts +4 -0
- package/dist/testing/cases/printer.d.ts.map +1 -0
- package/dist/testing/cases/printer.js +32 -0
- package/dist/testing/cases/printer.js.map +1 -0
- package/dist/testing/cases/report-view.d.ts +5 -0
- package/dist/testing/cases/report-view.d.ts.map +1 -0
- package/dist/testing/cases/report-view.js +33 -0
- package/dist/testing/cases/report-view.js.map +1 -0
- package/dist/testing/cases/requisition.d.ts +4 -0
- package/dist/testing/cases/requisition.d.ts.map +1 -0
- package/dist/testing/cases/requisition.js +38 -0
- package/dist/testing/cases/requisition.js.map +1 -0
- package/dist/testing/cases/search-places.d.ts +4 -0
- package/dist/testing/cases/search-places.d.ts.map +1 -0
- package/dist/testing/cases/search-places.js +60 -0
- package/dist/testing/cases/search-places.js.map +1 -0
- package/dist/testing/cases/stock.d.ts +4 -0
- package/dist/testing/cases/stock.d.ts.map +1 -0
- package/dist/testing/cases/stock.js +35 -0
- package/dist/testing/cases/stock.js.map +1 -0
- package/dist/testing/cases/store.d.ts +4 -0
- package/dist/testing/cases/store.d.ts.map +1 -0
- package/dist/testing/cases/store.js +100 -0
- package/dist/testing/cases/store.js.map +1 -0
- package/dist/testing/harness.d.ts +94 -0
- package/dist/testing/harness.d.ts.map +1 -0
- package/dist/testing/harness.js +168 -0
- package/dist/testing/harness.js.map +1 -0
- package/dist/testing/index.d.ts +37 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +43 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/report.d.ts +15 -0
- package/dist/testing/report.d.ts.map +1 -0
- package/dist/testing/report.js +22 -0
- package/dist/testing/report.js.map +1 -0
- package/dist/web/createRestSurface.d.ts +7 -0
- package/dist/web/createRestSurface.d.ts.map +1 -0
- package/dist/web/createRestSurface.js +39 -0
- package/dist/web/createRestSurface.js.map +1 -0
- package/dist/web/index.d.ts +2 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +2 -0
- package/dist/web/index.js.map +1 -0
- package/docs/adr/0008-structured-diagnostic-shape.md +2 -2
- package/docs/adr/0011-adapter-port-spec.md +2 -2
- package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +21 -2
- package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +5 -1
- package/docs/adr/0022-caller-observed-version-occ.md +1 -1
- package/docs/adr/0024-manifest-native-schema-tables.md +2 -2
- package/docs/adr/0027-scheduled-procedure-triggers.md +1 -1
- package/docs/adr/0028-schema-ttl-expiry.md +3 -3
- package/docs/adr/0029-mcp-apps-interaction-contracts.md +324 -0
- package/docs/adr/0030-store.md +40 -0
- package/docs/adr/0031-host-cloud-core-contract.md +25 -0
- package/docs/adr/0032-store-centric-core-and-service-contract.md +361 -0
- package/docs/adr/0033-storage-converges-to-the-plan.md +92 -0
- package/docs/adr/0034-store-is-authored-as-sql.md +192 -0
- package/docs/adr/0035-sql-dialects.md +154 -0
- package/docs/adr/0036-host-and-dialect.md +65 -0
- package/docs/adr/0037-postgresql-is-the-reference-dialect.md +124 -0
- package/docs/adr/0038-bun-native-host.md +63 -0
- package/docs/adr/README.md +23 -8
- package/docs/adr/adr-lite-861-admin-webmcp.md +6 -0
- package/docs/adr/adr-lite-909-admin-ui-kit.md +1 -1
- package/docs/examples/README.md +16 -18
- package/docs/examples/commerce-inventory.md +481 -0
- package/docs/examples/commerce.md +254 -0
- package/docs/examples/guarded-api.md +238 -0
- package/docs/examples/intake-hooks.md +237 -0
- package/docs/examples/intake.md +127 -0
- package/docs/examples/legal-documents.md +218 -0
- package/docs/examples/procurement.md +215 -0
- package/docs/examples/publication.md +211 -0
- package/docs/examples/reference-service/.dev.vars.example +4 -0
- package/docs/examples/reference-service/.mantle/generated/mantle.ts +174 -0
- package/docs/examples/reference-service/.mantle/generated/plan.json +1936 -0
- package/docs/examples/reference-service/README.md +33 -0
- package/docs/examples/reference-service/manifests/catalog.yaml +103 -0
- package/docs/examples/reference-service/manifests/orders.yaml +120 -0
- package/docs/examples/reference-service/mantle.config.json +1 -0
- package/docs/examples/reference-service/package.json +27 -0
- package/docs/examples/reference-service/smoke.mjs +156 -0
- package/docs/examples/reference-service/src/handlers.ts +36 -0
- package/docs/examples/reference-service/src/index.ts +33 -0
- package/docs/examples/reference-service/src/service.ts +78 -0
- package/docs/examples/{host-minimal-worker → reference-service}/tsconfig.json +7 -2
- package/docs/examples/reference-service/wrangler.jsonc +26 -0
- package/docs/examples/reservation.md +142 -0
- package/docs/handbook/cloudflare/authentication.md +119 -311
- package/docs/handbook/cloudflare/chatgpt-sites.md +104 -15
- package/docs/handbook/cloudflare/deploy-and-operate.md +77 -71
- package/docs/handbook/cloudflare/media-r2.md +64 -187
- package/docs/handbook/cloudflare/service-entry.md +138 -0
- package/docs/handbook/concepts/authorization.md +104 -94
- package/docs/handbook/concepts/four-atoms.md +68 -144
- package/docs/handbook/concepts/lifecycle-and-locales.md +62 -114
- package/docs/handbook/concepts/mcp-and-agents.md +112 -117
- package/docs/handbook/concepts/procedures-and-triggers.md +126 -181
- package/docs/handbook/concepts/runtime-and-adapters.md +177 -163
- package/docs/handbook/concepts/views.md +97 -173
- package/docs/handbook/examples/hub.md +17 -6
- package/docs/handbook/guides/admin-ui.md +101 -96
- package/docs/handbook/guides/agent-setup.md +56 -71
- package/docs/handbook/guides/typed-queries.md +105 -111
- package/docs/handbook/navigation.json +8 -33
- package/docs/handbook/reference/authorization.md +52 -271
- package/docs/handbook/reference/diagnostics.md +69 -178
- package/docs/handbook/reference/features.md +48 -50
- package/docs/handbook/reference/manifest.md +56 -116
- package/docs/handbook/reference/procedure.md +91 -279
- package/docs/handbook/reference/schema.md +154 -239
- package/docs/handbook/reference/site-config.md +58 -211
- package/docs/handbook/reference/surface.md +69 -181
- package/docs/handbook/reference/trigger.md +72 -181
- package/docs/handbook/reference/view.md +140 -241
- package/docs/handbook/releases/index.md +58 -77
- package/docs/handbook/start/overview.md +59 -51
- package/docs/handbook/start/project-and-cli.md +132 -105
- package/docs/handbook/start/quickstart-worker.md +102 -160
- package/docs/skills/develop/SKILL.md +114 -240
- package/docs/skills/develop/mcp-app.md +79 -0
- package/docs/skills/integrate/SKILL.md +83 -47
- package/docs/skills/media-gc/SKILL.md +21 -10
- package/docs/skills/provision/SKILL.md +68 -162
- package/docs/skills/update/SKILL.md +33 -34
- package/docs/upgrade-0.1-to-0.2.md +211 -0
- package/package.json +87 -106
- package/dist/admin-ui.d.ts +0 -2
- package/dist/admin-ui.d.ts.map +0 -1
- package/dist/admin-ui.js +0 -2
- package/dist/admin-ui.js.map +0 -1
- package/dist/admin.d.ts +0 -2
- package/dist/admin.d.ts.map +0 -1
- package/dist/admin.js +0 -2
- package/dist/admin.js.map +0 -1
- package/dist/auth.d.ts +0 -2
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -2
- package/dist/auth.js.map +0 -1
- package/dist/bun.d.ts +0 -2
- package/dist/bun.d.ts.map +0 -1
- package/dist/bun.js +0 -2
- package/dist/bun.js.map +0 -1
- package/dist/cli/generate-cloudflare.d.ts +0 -7
- package/dist/cli/generate-cloudflare.d.ts.map +0 -1
- package/dist/cli/generate-cloudflare.js +0 -123
- package/dist/cli/generate-cloudflare.js.map +0 -1
- package/dist/cli/generate-project.d.ts +0 -25
- package/dist/cli/generate-project.d.ts.map +0 -1
- package/dist/cli/generate-project.js +0 -282
- package/dist/cli/generate-project.js.map +0 -1
- package/dist/cli/generate-sites.d.ts +0 -8
- package/dist/cli/generate-sites.d.ts.map +0 -1
- package/dist/cli/generate-sites.js +0 -273
- package/dist/cli/generate-sites.js.map +0 -1
- package/dist/cli/harness.d.ts +0 -3
- package/dist/cli/harness.d.ts.map +0 -1
- package/dist/cli/harness.js +0 -214
- package/dist/cli/harness.js.map +0 -1
- package/dist/cli/skills.d.ts +0 -3
- package/dist/cli/skills.d.ts.map +0 -1
- package/dist/cli/skills.js +0 -128
- package/dist/cli/skills.js.map +0 -1
- package/dist/cloudflare.d.ts +0 -2
- package/dist/cloudflare.d.ts.map +0 -1
- package/dist/cloudflare.js +0 -2
- package/dist/cloudflare.js.map +0 -1
- package/dist/codegen/emitMantleModule.d.ts +0 -22
- package/dist/codegen/emitMantleModule.d.ts.map +0 -1
- package/dist/codegen/emitMantleModule.js +0 -291
- package/dist/codegen/emitMantleModule.js.map +0 -1
- package/dist/codegen.d.ts +0 -2
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -2
- package/dist/codegen.js.map +0 -1
- package/dist/runtime-testing.d.ts +0 -2
- package/dist/runtime-testing.d.ts.map +0 -1
- package/dist/runtime-testing.js +0 -2
- package/dist/runtime-testing.js.map +0 -1
- package/dist/runtime.d.ts +0 -2
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -2
- package/dist/runtime.js.map +0 -1
- package/dist/spec.d.ts +0 -2
- package/dist/spec.d.ts.map +0 -1
- package/dist/spec.js +0 -2
- package/dist/spec.js.map +0 -1
- package/dist/vercel-libsql.d.ts +0 -2
- package/dist/vercel-libsql.d.ts.map +0 -1
- package/dist/vercel-libsql.js +0 -2
- package/dist/vercel-libsql.js.map +0 -1
- package/dist/vercel.d.ts +0 -2
- package/dist/vercel.d.ts.map +0 -1
- package/dist/vercel.js +0 -2
- package/dist/vercel.js.map +0 -1
- package/dist/web.d.ts +0 -2
- package/dist/web.d.ts.map +0 -1
- package/dist/web.js +0 -2
- package/dist/web.js.map +0 -1
- package/docs/adapter-guide.md +0 -222
- package/docs/agent-prompts.md +0 -64
- package/docs/api-mcp-authorization.md +0 -5
- package/docs/assets/mantle-admin-developer.png +0 -0
- package/docs/assets/mantle-admin-operations.png +0 -0
- package/docs/assets/mantle-hero.jpg +0 -0
- package/docs/auth-hosting-model.md +0 -166
- package/docs/cloudflare-low-level-composition.md +0 -5
- package/docs/consumer-onboarding-audit.md +0 -65
- package/docs/deferred-lifecycle-queues.md +0 -5
- package/docs/design-atoms.md +0 -16
- package/docs/design-references/editorial-blog-2026-05-05.md +0 -218
- package/docs/direct-authoring.md +0 -5
- package/docs/examples/builtin-commerce.md +0 -269
- package/docs/examples/builtin-intake.md +0 -143
- package/docs/examples/builtin-legal-documents.md +0 -189
- package/docs/examples/builtin-procurement.md +0 -241
- package/docs/examples/builtin-publication.md +0 -241
- package/docs/examples/builtin-reservation.md +0 -149
- package/docs/examples/cf-primitives-commerce-inventory.md +0 -809
- package/docs/examples/cf-primitives-guarded-api.md +0 -429
- package/docs/examples/cf-primitives-intake-hooks.md +0 -319
- package/docs/examples/host-chatgpt-sites/.openai/hosting.json +0 -1
- package/docs/examples/host-chatgpt-sites/README.md +0 -70
- package/docs/examples/host-chatgpt-sites/drizzle/0000_sites_users.sql +0 -8
- package/docs/examples/host-chatgpt-sites/drizzle/0001_mantle.sql +0 -294
- package/docs/examples/host-chatgpt-sites/drizzle/0002_article_cover.sql +0 -5
- package/docs/examples/host-chatgpt-sites/drizzle/0003_store_instance_id.sql +0 -1
- package/docs/examples/host-chatgpt-sites/drizzle/0004_mantle.sql +0 -10
- package/docs/examples/host-chatgpt-sites/drizzle/0005_mantle.sql +0 -24
- package/docs/examples/host-chatgpt-sites/drizzle/meta/_journal.json +0 -1
- package/docs/examples/host-chatgpt-sites/drizzle/meta/mantle-state.json +0 -60
- package/docs/examples/host-chatgpt-sites/manifests/site.yaml +0 -27
- package/docs/examples/host-chatgpt-sites/package.json +0 -1
- package/docs/examples/host-chatgpt-sites/public/site.css +0 -1
- package/docs/examples/host-chatgpt-sites/scripts/build.mjs +0 -13
- package/docs/examples/host-chatgpt-sites/scripts/check.mjs +0 -101
- package/docs/examples/host-chatgpt-sites/scripts/migration.mjs +0 -43
- package/docs/examples/host-chatgpt-sites/src/chatgpt-auth.ts +0 -66
- package/docs/examples/host-chatgpt-sites/src/index.ts +0 -46
- package/docs/examples/host-chatgpt-sites/src/mcp.ts +0 -49
- package/docs/examples/host-chatgpt-sites/src/media.ts +0 -109
- package/docs/examples/host-chatgpt-sites/src/r2-lab.ts +0 -38
- package/docs/examples/host-chatgpt-sites/src/storage-fingerprint.json +0 -1
- package/docs/examples/host-chatgpt-sites/src/web.ts +0 -35
- package/docs/examples/host-chatgpt-sites/tsconfig.json +0 -1
- package/docs/examples/host-chatgpt-sites/wrangler.jsonc +0 -10
- package/docs/examples/host-local-admin-otp/.dev.vars.example +0 -3
- package/docs/examples/host-local-admin-otp/README.md +0 -80
- package/docs/examples/host-local-admin-otp/ensure-dev-vars.mjs +0 -5
- package/docs/examples/host-local-admin-otp/manifests/site.yaml +0 -25
- package/docs/examples/host-local-admin-otp/package.json +0 -29
- package/docs/examples/host-local-admin-otp/public/.gitkeep +0 -1
- package/docs/examples/host-local-admin-otp/smoke.mjs +0 -141
- package/docs/examples/host-local-admin-otp/src/index.ts +0 -54
- package/docs/examples/host-local-admin-otp/tsconfig.json +0 -17
- package/docs/examples/host-local-admin-otp/wrangler.jsonc +0 -23
- package/docs/examples/host-minimal-worker/README.md +0 -41
- package/docs/examples/host-minimal-worker/manifests/site.yaml +0 -25
- package/docs/examples/host-minimal-worker/package.json +0 -26
- package/docs/examples/host-minimal-worker/smoke.mjs +0 -23
- package/docs/examples/host-minimal-worker/src/index.ts +0 -4
- package/docs/examples/host-minimal-worker/wrangler.jsonc +0 -22
- package/docs/handbook/chatgpt-sites/equipment-checkout.md +0 -231
- package/docs/handbook/chatgpt-sites/generated-app.md +0 -84
- package/docs/handbook/chatgpt-sites/host-reference.md +0 -113
- package/docs/handbook/chatgpt-sites/index.md +0 -133
- package/docs/handbook/cloudflare/bindings.md +0 -291
- package/docs/handbook/cloudflare/conventional-worker.md +0 -166
- package/docs/handbook/cloudflare/deferred-hooks-queues.md +0 -170
- package/docs/handbook/cloudflare/low-level-composition.md +0 -169
- package/docs/handbook/cloudflare/public-web.md +0 -144
- package/docs/handbook/cloudflare/site-chrome.md +0 -75
- package/docs/handbook/examples/commerce-transaction.md +0 -11
- package/docs/handbook/examples/commerce.md +0 -11
- package/docs/handbook/examples/guarded-api.md +0 -10
- package/docs/handbook/examples/intake-form.md +0 -12
- package/docs/handbook/examples/intake-hooks.md +0 -11
- package/docs/handbook/examples/legal-documents.md +0 -10
- package/docs/handbook/examples/procurement-approvals.md +0 -10
- package/docs/handbook/examples/publication.md +0 -10
- package/docs/handbook/examples/reservation.md +0 -10
- package/docs/handbook/start/quickstart-admin.md +0 -52
- package/docs/labels.md +0 -71
- package/docs/media-uploads.md +0 -5
- package/docs/migration-0.1.2.md +0 -13
- package/docs/performance-harness.md +0 -228
- package/docs/release-process.md +0 -244
- package/docs/schema-indexes.md +0 -5
- package/docs/sealed-pipeline-ownership.md +0 -101
- package/docs/skills/plugin/SKILL.md +0 -132
- package/docs/skills/theme/SKILL.md +0 -77
- package/docs/spec-only-host-adoption.md +0 -157
- package/docs/transaction-patterns.md +0 -5
- package/skills/README.md +0 -127
- package/skills/develop/SKILL.md +0 -258
- package/skills/install/SKILL.md +0 -112
- package/skills/integrate/SKILL.md +0 -60
- package/skills/media-gc/SKILL.md +0 -85
- package/skills/plugin/SKILL.md +0 -132
- package/skills/provision/SKILL.md +0 -194
- package/skills/theme/SKILL.md +0 -77
- package/skills/update/SKILL.md +0 -51
- package/templates/chatgpt-sites/auth.ts +0 -66
- package/templates/chatgpt-sites/build.mjs +0 -14
- package/templates/chatgpt-sites/env.ts +0 -1
- package/templates/chatgpt-sites/mcp.ts +0 -48
- package/templates/chatgpt-sites/public-mcp.ts +0 -29
- package/templates/chatgpt-sites/smoke-local.mjs +0 -20
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { validateDiagnostic, } from "../kernel/diagnostic.js";
|
|
2
|
+
import { checkSiteLocales } from "../domain/service/CrossSchemaChecker.js";
|
|
3
|
+
import { linkManifestSet, } from "../domain/service/ManifestLinker.js";
|
|
4
|
+
/** Link one parser-owned value and apply optional authoring checks. */
|
|
5
|
+
export class ValidateManifestsUseCase {
|
|
6
|
+
execute(request) {
|
|
7
|
+
const linked = linkManifestSet(request.parsed);
|
|
8
|
+
const diagnostics = [...linked.diagnostics];
|
|
9
|
+
if (linked.ok && request.siteLocales !== undefined) {
|
|
10
|
+
diagnostics.push(...checkSiteLocales({
|
|
11
|
+
schemas: linked.value.schemas.map((schema) => schema.manifest),
|
|
12
|
+
phase: "validate",
|
|
13
|
+
siteLocales: request.siteLocales,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
if (linked.ok && request.mcpInput !== false) {
|
|
17
|
+
diagnostics.push(...checkMcpToolInputShapes(linked.value, request.mcpInput ?? {}));
|
|
18
|
+
}
|
|
19
|
+
const errorCount = diagnostics.filter((diagnostic) => diagnostic.severity === "error").length;
|
|
20
|
+
return {
|
|
21
|
+
diagnostics,
|
|
22
|
+
errorCount,
|
|
23
|
+
warningCount: diagnostics.length - errorCount,
|
|
24
|
+
...(linked.ok ? { linked: linked.value } : {}),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
static run(request) {
|
|
28
|
+
return new ValidateManifestsUseCase().execute(request);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A Procedure's HTTP input schema is reused verbatim as its MCP tool schema,
|
|
33
|
+
* so shapes that are fine for a typed client can strand a cold agent (#971).
|
|
34
|
+
* Advisory only, and only for Procedures reachable from an MCP Trigger.
|
|
35
|
+
*/
|
|
36
|
+
function checkMcpToolInputShapes(linked, options) {
|
|
37
|
+
const out = [];
|
|
38
|
+
const unionAmbiguity = options.unionAmbiguity ?? true;
|
|
39
|
+
const maxArrayItems = options.maxArrayItems === undefined ? 100 : options.maxArrayItems;
|
|
40
|
+
const exposed = new Set(linked.triggers
|
|
41
|
+
.filter((trigger) => trigger.manifest.spec.source.kind === "mcp")
|
|
42
|
+
.map((trigger) => trigger.manifest.spec.target.procedure));
|
|
43
|
+
for (const procedure of linked.procedures) {
|
|
44
|
+
const name = procedure.manifest.metadata.name;
|
|
45
|
+
if (!exposed.has(name))
|
|
46
|
+
continue;
|
|
47
|
+
const input = procedure.manifest.spec.input;
|
|
48
|
+
const diagnostic = (code, path, value, expected, message) => validateDiagnostic({
|
|
49
|
+
code,
|
|
50
|
+
severity: "warning",
|
|
51
|
+
path,
|
|
52
|
+
source: { ...procedure.source, path },
|
|
53
|
+
value,
|
|
54
|
+
expected,
|
|
55
|
+
message,
|
|
56
|
+
});
|
|
57
|
+
// The v0.1 grammar accepts `oneOf` only (`anyOf` is rejected at parse), so
|
|
58
|
+
// that is the one union keyword to inspect.
|
|
59
|
+
if (unionAmbiguity && Array.isArray(input.oneOf) && input.oneOf.length > 0) {
|
|
60
|
+
const advertised = new Set(input.required ?? []);
|
|
61
|
+
const hidden = new Set();
|
|
62
|
+
for (const branch of input.oneOf) {
|
|
63
|
+
for (const field of branch.required ?? [])
|
|
64
|
+
if (!advertised.has(field))
|
|
65
|
+
hidden.add(field);
|
|
66
|
+
}
|
|
67
|
+
const path = "/spec/input/oneOf";
|
|
68
|
+
const advertisedText = `[${[...advertised].sort().join(", ")}]`;
|
|
69
|
+
out.push(diagnostic("MCP_TOOL_INPUT_UNION_AMBIGUOUS", path, [...hidden].sort(), "one MCP tool per branch, or a top-level required set that is true for every branch", hidden.size
|
|
70
|
+
? `Procedure '${name}' is an MCP tool whose input is a top-level oneOf; its advertised required set ` +
|
|
71
|
+
`${advertisedText} hides [${[...hidden].sort().join(", ")}], which some branch needs, so a caller satisfying ` +
|
|
72
|
+
`the schema can still be rejected. MCP clients render oneOf poorly; prefer separate tools (e.g. create/update).`
|
|
73
|
+
: `Procedure '${name}' is an MCP tool whose input is a top-level oneOf. MCP clients render oneOf poorly and ` +
|
|
74
|
+
`cannot tell an agent which branch it is filling; prefer separate tools (e.g. create/update).`));
|
|
75
|
+
}
|
|
76
|
+
if (maxArrayItems !== null) {
|
|
77
|
+
for (const [field, property] of Object.entries(input.properties ?? {})) {
|
|
78
|
+
const schema = property;
|
|
79
|
+
const path = `/spec/input/properties/${field}`;
|
|
80
|
+
const types = new Set(Array.isArray(schema.type) ? schema.type : schema.type ? [schema.type] : []);
|
|
81
|
+
if (types.has("array")) {
|
|
82
|
+
const bound = typeof schema.maxItems === "number" ? schema.maxItems : undefined;
|
|
83
|
+
if (bound === undefined || bound > maxArrayItems) {
|
|
84
|
+
out.push(diagnostic("MCP_TOOL_INPUT_UNBOUNDED", path, bound ?? null, `maxItems <= ${maxArrayItems} on an MCP tool array input`, `Procedure '${name}' is an MCP tool with array input '${field}' ${bound === undefined ? "without maxItems" : `allowing ${bound} items`}; ` +
|
|
85
|
+
`an agent must serialise the whole array into one tools/call.`));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else if (types.has("object")
|
|
89
|
+
// Free-form means no declared shape at all: a typed map
|
|
90
|
+
// (`additionalProperties: { type: string }`) declares its values.
|
|
91
|
+
&& (schema.additionalProperties === undefined || schema.additionalProperties === true)
|
|
92
|
+
&& Object.keys(schema.properties ?? {}).length === 0) {
|
|
93
|
+
out.push(diagnostic("MCP_TOOL_INPUT_UNBOUNDED", path, null, "declared properties, or a narrower tool that does not take a free-form document", `Procedure '${name}' is an MCP tool with free-form object input '${field}' (no declared properties); ` +
|
|
94
|
+
`its size is unbounded and an agent gets no shape to fill.`));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=ValidateManifestsUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidateManifestsUseCase.js","sourceRoot":"","sources":["../../../src/spec/usecase/ValidateManifestsUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ParsedManifestSet } from "../../domain/service/ManifestParser.js";
|
|
2
|
+
/**
|
|
3
|
+
* Input to the manifest validation use case (Loop 1 of the SDK
|
|
4
|
+
* authoring contract — ADR-0007). Loose primitives stay out per the
|
|
5
|
+
* clean-arch DTO rule; everything the use case needs is named here.
|
|
6
|
+
*/
|
|
7
|
+
export interface ValidateManifestsRequest {
|
|
8
|
+
readonly parsed: ParsedManifestSet;
|
|
9
|
+
/** Optional site config locales for the locale-vs-Schema consistency
|
|
10
|
+
* check (ADR-0010). Validate-from-CLI flows leave this absent
|
|
11
|
+
* (CLI can't reach the runtime DB); boot always passes it. */
|
|
12
|
+
readonly siteLocales?: ReadonlyArray<string>;
|
|
13
|
+
/** Advisory checks on MCP-surfaced Procedure inputs (#971). Core ships
|
|
14
|
+
* the defaults; a downstream decides its own thresholds. `false`
|
|
15
|
+
* disables the whole group. */
|
|
16
|
+
readonly mcpInput?: false | McpInputCheckOptions;
|
|
17
|
+
}
|
|
18
|
+
export interface McpInputCheckOptions {
|
|
19
|
+
/** Warn on a top-level `oneOf` input; the message names any branch-only
|
|
20
|
+
* required fields hidden behind the advertised `required` (default `true`). */
|
|
21
|
+
readonly unionAmbiguity?: boolean;
|
|
22
|
+
/** Warn on array inputs whose `maxItems` exceeds this bound or is
|
|
23
|
+
* undeclared, and on free-form object inputs (default `100`;
|
|
24
|
+
* `null` disables the size check). */
|
|
25
|
+
readonly maxArrayItems?: number | null;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ValidateManifestsRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidateManifestsRequest.d.ts","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/ValidateManifestsRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC;;mEAE+D;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C;;oCAEgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,oBAAoB,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC;oFACgF;IAChF,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;2CAEuC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidateManifestsRequest.js","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/ValidateManifestsRequest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Diagnostic } from "../../kernel/diagnostic.js";
|
|
2
|
+
import type { LinkedManifestSet } from "../../domain/service/ManifestLinker.js";
|
|
3
|
+
/**
|
|
4
|
+
* Output of the manifest validation use case. `errorCount` and
|
|
5
|
+
* `warningCount` are pre-computed for adapters that need exit-code
|
|
6
|
+
* decisions or summary lines; `diagnostics` is the full list.
|
|
7
|
+
*/
|
|
8
|
+
export interface ValidateManifestsResponse {
|
|
9
|
+
readonly diagnostics: ReadonlyArray<Diagnostic>;
|
|
10
|
+
readonly errorCount: number;
|
|
11
|
+
readonly warningCount: number;
|
|
12
|
+
readonly linked?: LinkedManifestSet;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ValidateManifestsResponse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidateManifestsResponse.d.ts","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/ValidateManifestsResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidateManifestsResponse.js","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/ValidateManifestsResponse.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `usecase/` — application services orchestrating domain logic. Each
|
|
3
|
+
* use case accepts a request DTO, returns a response DTO. No
|
|
4
|
+
* infrastructure dependencies (no I/O, no DB, no FS) — those live in
|
|
5
|
+
* `infrastructure/`.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./dto/index.js";
|
|
8
|
+
export * from "./ValidateManifestsUseCase.js";
|
|
9
|
+
export * from "./EmitTypes.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spec/usecase/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `usecase/` — application services orchestrating domain logic. Each
|
|
3
|
+
* use case accepts a request DTO, returns a response DTO. No
|
|
4
|
+
* infrastructure dependencies (no I/O, no DB, no FS) — those live in
|
|
5
|
+
* `infrastructure/`.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./dto/index.js";
|
|
8
|
+
export * from "./ValidateManifestsUseCase.js";
|
|
9
|
+
export * from "./EmitTypes.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spec/usecase/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"before-hook.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/before-hook.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAyDlD"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { boot, caller, program, site } from '../harness.js';
|
|
2
|
+
import { isConflict, opIndexOf, isRefusal, runProcedure } from '../harness.js';
|
|
3
|
+
export async function run(r, engine) {
|
|
4
|
+
r.section('Case 4: before hooks');
|
|
5
|
+
const b = await boot(engine);
|
|
6
|
+
const seen = [];
|
|
7
|
+
let concurrent;
|
|
8
|
+
let veto = false;
|
|
9
|
+
const hooks = { before: { items: { update: async ({ row }) => {
|
|
10
|
+
seen.push(row);
|
|
11
|
+
if (veto)
|
|
12
|
+
throw new Error('hook says no');
|
|
13
|
+
await concurrent?.();
|
|
14
|
+
} } } };
|
|
15
|
+
const s = site(b, hooks);
|
|
16
|
+
const set = await program('procedure', 'UPDATE items SET stock = input.s WHERE id = input.id RETURNING id, stock, version', { id: 'text', s: 'int8' });
|
|
17
|
+
const fails = async (input) => { try {
|
|
18
|
+
await runProcedure(s, set, caller(input));
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
return e;
|
|
23
|
+
} };
|
|
24
|
+
const item = async (id) => (await b.d1.all('SELECT stock, version FROM items WHERE id = ?1', [id]))[0];
|
|
25
|
+
// the hook reads the one visible row, then the statement carries the version the hook saw: `version = <bind>`, bound to it
|
|
26
|
+
const versionBound = ({ ir, binds }) => {
|
|
27
|
+
const n = JSON.stringify(ir.UpdateStmt.whereClause).match(/"sval":"version"\}\}\]\}\},"rexpr":\{"ParamRef":\{"number":(\d+)\}/)?.[1];
|
|
28
|
+
return n === undefined ? undefined : binds[Number(n) - 1];
|
|
29
|
+
};
|
|
30
|
+
const ok = await runProcedure(s, set, caller({ id: 'a', s: 9 }));
|
|
31
|
+
r.check('no concurrent write: commits and bumps version; the hook saw the one row before the change; the statement carries the version it saw', JSON.stringify(ok.rows) === '[[{"id":"a","stock":9,"version":2}]]' && seen.length === 1 && seen[0].id === 'a' && seen[0].stock === 5 && seen[0].version === 1 && versionBound(ok.batch[0]) === 1, seen[0]);
|
|
32
|
+
// the row changes between the hook and the commit: CONFLICT, and the concurrent write survives
|
|
33
|
+
concurrent = async () => { await b.d1.exec(["UPDATE items SET stock = 99, version = version + 1 WHERE id = 'b'"]); };
|
|
34
|
+
const e1 = await fails({ id: 'b', s: 1 });
|
|
35
|
+
r.check('row changed between the hook and the commit: CONFLICT op=0, the concurrent write is not overwritten', isConflict(e1) && opIndexOf(e1) === 0 && JSON.stringify(await item('b')) === '{"stock":99,"version":2}', String(e1?.message));
|
|
36
|
+
concurrent = undefined;
|
|
37
|
+
// a hook that throws vetoes the write: fail closed
|
|
38
|
+
veto = true;
|
|
39
|
+
const e2 = await fails({ id: 'd', s: 1 });
|
|
40
|
+
r.check('a throwing hook stops the statement and nothing is written', e2?.message === 'hook says no' && (await item('d')).stock === 7, String(e2?.message));
|
|
41
|
+
veto = false;
|
|
42
|
+
// no visible row (another owner's, expired): CONFLICT without calling the hook
|
|
43
|
+
const calls = seen.length;
|
|
44
|
+
const e3 = await fails({ id: 'X_z1', s: 1 });
|
|
45
|
+
r.check("another owner's row: CONFLICT, and the hook was never called (it cannot probe for the row)", isConflict(e3) && seen.length === calls, String(e3?.message));
|
|
46
|
+
// a set op on a Schema with a before hook is refused at compile time
|
|
47
|
+
let refused;
|
|
48
|
+
try {
|
|
49
|
+
await runProcedure(s, await program('procedure', "UPDATE items SET stock = 0 WHERE cat = 'x'"), caller());
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
refused = e;
|
|
53
|
+
}
|
|
54
|
+
r.check('a set op on items (before update hook) is refused', isRefusal(refused, 'SQL_SHAPE') && /before hooks take row ops only/.test(refused.message), refused?.message);
|
|
55
|
+
// a Schema without a hook keeps its set ops; a before-update hook does not run for insert
|
|
56
|
+
const other = await runProcedure(s, await program('procedure', "UPDATE requisitions SET state = 'x' WHERE state = 'pending' RETURNING id"), caller());
|
|
57
|
+
const ins = await runProcedure(s, await program('procedure', "INSERT INTO items (name, cat, stock) VALUES ('n', 'x', 1) RETURNING name"), caller());
|
|
58
|
+
r.check('set ops stay legal where no before hook exists; the update hook does not run for insert', other.rows[0].length === 2 && seen.length === calls && ins.rows.length === 1);
|
|
59
|
+
// a before create hook reads the VALUES in a read of its own, so they may not depend on data that can change before the commit
|
|
60
|
+
const own = { ...s, hooks: { before: { orders: { insert: () => undefined } } } };
|
|
61
|
+
let subq;
|
|
62
|
+
try {
|
|
63
|
+
await runProcedure(own, await program('procedure', "INSERT INTO orders (item_id, qty) VALUES ('a', (SELECT stock FROM items WHERE id = 'a'))"), caller());
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
subq = e;
|
|
67
|
+
}
|
|
68
|
+
const plain = await runProcedure(own, await program('procedure', "INSERT INTO orders (item_id, qty) VALUES ('a', 1) RETURNING qty"), caller());
|
|
69
|
+
r.check('an insert with a before create hook may not read data in its VALUES, and constant values are fine', isRefusal(subq, 'SQL_SHAPE') && plain.rows[0].length === 1, subq?.message);
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=before-hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"before-hook.js","sourceRoot":"","sources":["../../../src/testing/cases/before-hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type Item = {
|
|
2
|
+
id: string;
|
|
3
|
+
kind: 'view' | 'procedure';
|
|
4
|
+
sql: string;
|
|
5
|
+
inputs?: Record<string, string>;
|
|
6
|
+
input?: Record<string, unknown>;
|
|
7
|
+
/** rows per statement */
|
|
8
|
+
expect: unknown[][];
|
|
9
|
+
};
|
|
10
|
+
export declare const corpus: Item[];
|
|
11
|
+
export declare const typedRows: Readonly<Record<string, unknown[][]>>;
|
|
12
|
+
//# sourceMappingURL=corpus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corpus.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/corpus.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,yBAAyB;IACzB,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;CACrB,CAAC;AAMF,eAAO,MAAM,MAAM,EAAE,IAAI,EA+ExB,CAAC;AAQF,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAQ3D,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// @ts-nocheck test code over loosely typed IR and rows
|
|
2
|
+
// The printer corpus (spike task 1). Every node type and enum value in the validate.ts allowlist appears
|
|
3
|
+
// in at least one item; each item runs on local D1 through the whole pipeline, and its rows are checked
|
|
4
|
+
// against the result PostgreSQL semantics give. Data: see src/fixtures.ts (owner o1 sees items a b c d).
|
|
5
|
+
import { NOW } from '../harness.js';
|
|
6
|
+
const us = (y, mo, d, h = 0) => Date.UTC(y, mo - 1, d, h) * 1000;
|
|
7
|
+
const v = (id, sql, expect, inputs, input) => ({ id, kind: 'view', sql, expect: [expect], inputs, input });
|
|
8
|
+
const w = (id, sql, expect, inputs, input) => ({ id, kind: 'procedure', sql, expect, inputs, input });
|
|
9
|
+
const ids = (...x) => x.map((id) => ({ id }));
|
|
10
|
+
export const corpus = [
|
|
11
|
+
// ---- expressions --------------------------------------------------------------------------------------
|
|
12
|
+
v('arith', "SELECT name, stock + 1 AS s, stock * 2 - 1 AS t, stock / 2 AS h, stock % 3 AS m, -stock AS neg, name || '!' AS shout FROM items WHERE id = 'a'", [{ name: 'apple', s: 6, t: 9, h: 2, m: 2, neg: -5, shout: 'apple!' }]),
|
|
13
|
+
// PostgreSQL: `*` binds tighter than `||`, `+` tighter than `||`; SQLite: `||` binds tighter than both
|
|
14
|
+
v('precedence-concat', "SELECT 2 * 3 || 4 AS a, 1 + 2 || 3 AS b, 'x' || 1 + 1 AS c, 10 - 2 - 3 AS d, 10 - (2 - 3) AS e, -(1 + 2) * 3 AS f, (2 + 3) * 4 AS g FROM items WHERE id = 'a'", [{ a: '64', b: '33', c: 'x2', d: 5, e: 11, f: -9, g: 20 }]),
|
|
15
|
+
v('precedence-bool', "SELECT id FROM items WHERE (stock > 4 AND NOT cat = 'y' OR stock < 3) AND NOT (stock = 7) ORDER BY id", ids('a', 'b')),
|
|
16
|
+
v('case', "SELECT id, CASE WHEN stock > 6 THEN 'hi' WHEN stock > 3 THEN 'mid' ELSE 'lo' END AS lvl, CASE cat WHEN 'x' THEN 1 ELSE 0 END AS isx, COALESCE(NULL, stock) AS cs, NULLIF(stock, 5) AS ns FROM items WHERE id IN ('a', 'c') ORDER BY id", [{ id: 'a', lvl: 'mid', isx: 1, cs: 5, ns: null }, { id: 'c', lvl: 'hi', isx: 0, cs: 9, ns: 9 }]),
|
|
17
|
+
v('literals', "SELECT 'it''s a \\ back\\slash' AS s, -7 AS n, 1.5 AS f, true AS t, false AS x, NULL AS z, 1772928000000000 AS big FROM items WHERE id = 'a'", [{ s: "it's a \\ back\\slash", n: -7, f: 1.5, t: 1, x: 0, z: null, big: 1772928000000000 }]),
|
|
18
|
+
v('quoting', 'SELECT id AS "Group", name AS "select", stock AS "Total Count" FROM items WHERE id = \'a\'', [{ Group: 'a', select: 'apple', 'Total Count': 5 }]),
|
|
19
|
+
// ---- conditions ----------------------------------------------------------------------------------------
|
|
20
|
+
v('between', 'SELECT id FROM items WHERE stock BETWEEN 5 AND 7 ORDER BY id', ids('a', 'd')),
|
|
21
|
+
v('not-between', 'SELECT id FROM items WHERE stock NOT BETWEEN 3 AND 8 ORDER BY id', ids('b', 'c')),
|
|
22
|
+
v('like', "SELECT id FROM items WHERE name LIKE 'a%' OR name LIKE '%y' ORDER BY id", ids('a', 'b', 'c')),
|
|
23
|
+
v('not-like', "SELECT id FROM items WHERE name NOT LIKE '%rr%' ORDER BY id", ids('a', 'd')),
|
|
24
|
+
v('like-escape', "SELECT id FROM items WHERE 'a%b' LIKE 'a!%b' ESCAPE '!' AND 'axb' NOT LIKE 'a!%b' ESCAPE '!' AND id = 'a'", ids('a')),
|
|
25
|
+
// a condition as an operand: the printers parenthesize it, or SQLite would group it left to right and PostgreSQL refuse it
|
|
26
|
+
v('condition-in', 'SELECT id FROM items WHERE (stock > 4) IN (true) ORDER BY id', ids('a', 'c', 'd')),
|
|
27
|
+
v('condition-between', 'SELECT id FROM items WHERE (stock > 4) BETWEEN false AND (stock < 8) ORDER BY id', ids('a', 'b', 'd')),
|
|
28
|
+
v('condition-compare', "SELECT id FROM items WHERE (name LIKE 'a%') = (stock > 4) ORDER BY id", ids('a', 'b')),
|
|
29
|
+
v('condition-in-subquery', "SELECT id FROM items WHERE (stock IN (SELECT stock FROM items WHERE id = 'a')) = (stock > 4) ORDER BY id", ids('a', 'b')),
|
|
30
|
+
v('null-tests', "SELECT id FROM items WHERE cat IS NOT DISTINCT FROM 'x' AND tags IS NOT NULL AND NOT (stock IS NULL) AND cat IS DISTINCT FROM 'q' ORDER BY id", ids('a', 'b', 'd')),
|
|
31
|
+
v('in-list', "SELECT id FROM items WHERE id IN ('a', 'b') AND stock NOT IN (2) ORDER BY id", ids('a')),
|
|
32
|
+
v('any-subquery', 'SELECT id FROM items WHERE id = ANY (SELECT item_id FROM orders) ORDER BY id', ids('a')),
|
|
33
|
+
v('in-subquery', 'SELECT id FROM items WHERE id IN (SELECT item_id FROM orders) ORDER BY id', ids('a')),
|
|
34
|
+
v('exists', 'SELECT id FROM items WHERE EXISTS (SELECT 1 FROM orders o WHERE o.item_id = items.id) ORDER BY id', ids('a')),
|
|
35
|
+
v('not-exists', 'SELECT id FROM items WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.item_id = items.id) ORDER BY id', ids('b', 'c', 'd')),
|
|
36
|
+
v('scalar-subquery', 'SELECT id, (SELECT count(*) FROM orders o WHERE o.item_id = i.id) AS n FROM items i ORDER BY id', [{ id: 'a', n: 2 }, { id: 'b', n: 0 }, { id: 'c', n: 0 }, { id: 'd', n: 0 }]),
|
|
37
|
+
v('input-param', 'SELECT id FROM items WHERE stock > input.min AND cat = input.cat ORDER BY id', ids('a', 'd'), { min: 'int8', cat: 'text' }, { min: 4, cat: 'x' }),
|
|
38
|
+
// ---- aggregates, windows, order, paging -------------------------------------------------------------------
|
|
39
|
+
v('aggregates', 'SELECT cat, count(*) AS n, count(DISTINCT stock) AS d, sum(stock) AS s, min(stock) AS lo, max(stock) AS hi, avg(stock) AS av, json_group_array(name) AS names, json_group_array(DISTINCT cat) AS cats, json_group_object(id, stock) AS obj FROM items GROUP BY cat HAVING count(*) > 0 ORDER BY cat', [{ cat: 'x', n: 3, d: 3, s: 14, lo: 2, hi: 7, av: 14 / 3, names: '["apple","berry","date"]', cats: '["x"]', obj: '{"a":5,"b":2,"d":7}' },
|
|
40
|
+
{ cat: 'y', n: 1, d: 1, s: 9, lo: 9, hi: 9, av: 9, names: '["cherry"]', cats: '["y"]', obj: '{"c":9}' }]),
|
|
41
|
+
v('windows', 'SELECT r.cat, r.name, r.rn, r.rk, r.run, r.cnt FROM (SELECT cat, name, row_number() OVER (PARTITION BY cat ORDER BY stock DESC) AS rn, rank() OVER (PARTITION BY cat ORDER BY stock DESC) AS rk, sum(stock) OVER (PARTITION BY cat ORDER BY stock DESC) AS run, count(*) OVER (PARTITION BY cat) AS cnt, id FROM items) r ORDER BY r.cat, r.rn', [{ cat: 'x', name: 'date', rn: 1, rk: 1, run: 7, cnt: 3 }, { cat: 'x', name: 'apple', rn: 2, rk: 2, run: 12, cnt: 3 }, { cat: 'x', name: 'berry', rn: 3, rk: 3, run: 14, cnt: 3 }, { cat: 'y', name: 'cherry', rn: 1, rk: 1, run: 9, cnt: 1 }]),
|
|
42
|
+
v('order-nulls', 'SELECT id FROM items ORDER BY note DESC NULLS LAST, id ASC LIMIT 3', ids('d', 'c', 'a')),
|
|
43
|
+
v('order-nulls-first', 'SELECT id FROM items ORDER BY note ASC NULLS FIRST, id DESC LIMIT 3', ids('b', 'a', 'c')),
|
|
44
|
+
// PostgreSQL semantics: peers rank alike and a running sum includes all peers. An appended id key would break both.
|
|
45
|
+
v('window-ties', 'SELECT r.id, r.rk, r.run FROM (SELECT id, rank() OVER (ORDER BY cat) AS rk, sum(stock) OVER (ORDER BY cat) AS run FROM items) r ORDER BY r.id', [{ id: 'a', rk: 1, run: 14 }, { id: 'b', rk: 1, run: 14 }, { id: 'c', rk: 4, run: 23 }, { id: 'd', rk: 1, run: 14 }]),
|
|
46
|
+
v('distinct', 'SELECT DISTINCT cat FROM items', [{ cat: 'x' }, { cat: 'y' }]),
|
|
47
|
+
v('limit-input', 'SELECT id FROM items ORDER BY id LIMIT input.n', ids('a', 'b'), { n: 'int8' }, { n: 2 }),
|
|
48
|
+
// ---- relations ---------------------------------------------------------------------------------------------
|
|
49
|
+
v('inner-join', 'SELECT i.id, o.id AS oid FROM items i JOIN orders o ON o.item_id = i.id ORDER BY i.id, o.id', [{ id: 'a', oid: 'oa' }, { id: 'a', oid: 'ob' }]),
|
|
50
|
+
v('left-join', 'SELECT i.id, o.id AS oid FROM items i LEFT JOIN orders o ON o.item_id = i.id WHERE i.stock < 8 ORDER BY i.id, o.id', [{ id: 'a', oid: 'oa' }, { id: 'a', oid: 'ob' }, { id: 'b', oid: null }, { id: 'd', oid: null }]),
|
|
51
|
+
v('self-join', 'SELECT a.id AS a, b.id AS b FROM items a JOIN items b ON a.cat = b.cat AND a.id < b.id ORDER BY a.id, b.id', [{ a: 'a', b: 'b' }, { a: 'a', b: 'd' }, { a: 'b', b: 'd' }]),
|
|
52
|
+
v('from-subquery', 'SELECT s.id, s.stock FROM (SELECT id, stock FROM items WHERE cat = \'x\') s WHERE s.stock > 4 ORDER BY s.id', [{ id: 'a', stock: 5 }, { id: 'd', stock: 7 }]),
|
|
53
|
+
v('json-each', 'SELECT i.id, j.value AS tag FROM items i, json_each(i.tags) j WHERE j.value = input.tag ORDER BY i.id', [{ id: 'a', tag: 'red' }, { id: 'c', tag: 'red' }, { id: 'd', tag: 'red' }], { tag: 'text' }, { tag: 'red' }),
|
|
54
|
+
v('json-exists', 'SELECT i.id, i.tags ->> \'$[0]\' AS first FROM items i WHERE EXISTS (SELECT 1 FROM json_each(i.tags) j WHERE j.value = \'big\') ORDER BY i.id', [{ id: 'a', first: 'red' }]),
|
|
55
|
+
// ---- functions -----------------------------------------------------------------------------------------------
|
|
56
|
+
v('scalar-functions', "SELECT lower('AbC') AS lo, upper('AbC') AS up, length('héllo') AS len, abs(-3) AS ab, round(2.567, 2) AS r, substr('abcdef', 2, 3) AS sub, replace('a-b', '-', '+') AS rep, trim(' x ') AS t, ltrim(' x') AS lt, rtrim('x ') AS rt, instr('abc', 'c') AS ins, typeof(1) AS ty, hex('A') AS hx FROM items WHERE id = 'a'", [{ lo: 'abc', up: 'ABC', len: 5, ab: 3, r: 2.57, sub: 'bcd', rep: 'a+b', t: 'x', lt: 'x', rt: 'x', ins: 3, ty: 'integer', hx: '41' }]),
|
|
57
|
+
v('json-functions', "SELECT json_extract(tags, '$[0]') AS e, json_array_length(tags) AS n, json_set(tags, '$[0]', 'z') AS s, json_insert(tags, '$[#]', 'w') AS i, json_remove(tags, '$[0]') AS r FROM items WHERE id = 'a'", [{ e: 'red', n: 2, s: '["z","big"]', i: '["red","big","w"]', r: '["big"]' }]),
|
|
58
|
+
v('casts', "SELECT CAST(stock AS text) AS t, round(stock) AS i, CAST(stock AS float8) AS f, CAST(stock AS bool) AS b, CAST('false' AS bool) AS bf, CAST('yes' AS bool) AS bt, stock::text || 'x' AS c FROM items WHERE id = 'a'", [{ t: '5', i: 5, f: 5, b: 1, bf: 0, bt: 1, c: '5x' }]),
|
|
59
|
+
v('literal-casts', "SELECT '2026-03-08 10:00:00+00'::timestamptz AS ts, date '2026-03-08' AS d, interval '36 hours' AS iv, interval '90 minutes' AS im, '12.34'::numeric(12, 2) AS n, CAST('2026-03-08T10:00:00.123456Z' AS timestamptz) AS us FROM items WHERE id = 'a'", [{ ts: us(2026, 3, 8, 10), d: Date.UTC(2026, 2, 8) / 86_400_000, iv: 129_600_000_000, im: 5_400_000_000, n: 1234, us: us(2026, 3, 8, 10) + 123456 }]),
|
|
60
|
+
v('mantle-refs', 'SELECT auth.uid() AS uid, auth.role() AS role, now() AS now, input.x AS x FROM items WHERE id = \'a\'', [{ uid: 'o1', role: 'staff', now: NOW, x: 3 }], { x: 'int8' }, { x: 3 }),
|
|
61
|
+
v('date-trunc', "SELECT date_trunc('hour', now()) AS h, date_trunc('day', now()) AS d, date_trunc('week', now()) AS w, date_trunc('month', now()) AS m, date_trunc('year', now()) AS y FROM items WHERE id = 'a'", [{ h: NOW, d: NOW, w: us(2026, 9, 28), m: us(2026, 9, 1), y: us(2026, 1, 1) }]), // site time zone UTC here; DST cases are in cases/types.ts
|
|
62
|
+
v('extract', "SELECT extract(year FROM now()) AS y, extract(month FROM now()) AS mo, extract(day FROM now()) AS d, extract(dow FROM now()) AS dow, extract(hour FROM now()) AS h FROM items WHERE id = 'a'", [{ y: 2026, mo: 9, d: 29, dow: new Date(NOW / 1000).getUTCDay(), h: 0 }]),
|
|
63
|
+
// ---- writes (the database is reset before each) -------------------------------------------------------------------
|
|
64
|
+
w('insert-values', "INSERT INTO settings (key, value) VALUES ('a', '1') RETURNING key, value", [[{ key: 'a', value: '1' }]]),
|
|
65
|
+
w('insert-string-escapes', "INSERT INTO settings (key, value) VALUES ('q', 'it''s a \\ back\\slash') RETURNING value", [[{ value: "it's a \\ back\\slash" }]]),
|
|
66
|
+
// params first appear out of numeric order here (?1, ?3, then ?2): `$n` would silently mis-bind on D1
|
|
67
|
+
w('insert-select-input', "INSERT INTO orders (item_id, qty) SELECT r.item_id, r.qty FROM requisitions r WHERE r.id = input.id RETURNING item_id, qty", [[{ item_id: 'a', qty: 2 }]], { id: 'text' }, { id: 'r1' }),
|
|
68
|
+
w('insert-select', "INSERT INTO orders (item_id, qty) SELECT id, stock FROM items WHERE cat = 'x' RETURNING item_id, qty", [[{ item_id: 'a', qty: 5 }, { item_id: 'b', qty: 2 }, { item_id: 'd', qty: 7 }]]),
|
|
69
|
+
w('insert-returning-star', "INSERT INTO requisitions (item_id, qty, state) VALUES ('a', 1, 'new') RETURNING *", [[{ item_id: 'a', qty: 1, state: 'new' }]]),
|
|
70
|
+
w('update-set', 'UPDATE items SET stock = stock + 1, name = upper(name) WHERE cat = \'x\' RETURNING id, name, stock', [[{ id: 'a', name: 'APPLE', stock: 6 }, { id: 'b', name: 'BERRY', stock: 3 }, { id: 'd', name: 'DATE', stock: 8 }]]),
|
|
71
|
+
w('update-row', "UPDATE items SET stock = input.s WHERE id = input.id RETURNING id, stock", [[{ id: 'a', stock: 9 }]], { id: 'text', s: 'int8' }, { id: 'a', s: 9 }),
|
|
72
|
+
w('delete', "DELETE FROM requisitions WHERE state = 'pending' RETURNING id", [[{ id: 'r1' }, { id: 'r2' }]]),
|
|
73
|
+
w('upsert-nothing', "INSERT INTO settings (key, value) VALUES ('theme', 'light') ON CONFLICT (key) DO NOTHING RETURNING key", [[]]),
|
|
74
|
+
w('upsert-update', "INSERT INTO settings (key, value) VALUES ('theme', 'light') ON CONFLICT (key) DO UPDATE SET value = excluded.value WHERE settings.value IS DISTINCT FROM excluded.value RETURNING key, value", [[{ key: 'theme', value: 'light' }]]),
|
|
75
|
+
];
|
|
76
|
+
/**
|
|
77
|
+
* The same results as the Store's wire values (ADR-0034 decision 5), for the items whose expectation above is D1's storage
|
|
78
|
+
* encoding of a computed output (ADR-0035, "computed outputs"). A dialect that decodes computed outputs by type (PostgreSQL
|
|
79
|
+
* does, by each column's type OID) gives these; an item passes with either.
|
|
80
|
+
*/
|
|
81
|
+
const iso = (y, mo, d, h = 0, us6 = '000000') => `${new Date(Date.UTC(y, mo - 1, d, h)).toISOString().slice(0, 19)}.${us6}Z`;
|
|
82
|
+
export const typedRows = {
|
|
83
|
+
literals: [[{ s: "it's a \\ back\\slash", n: -7, f: 1.5, t: true, x: false, z: null, big: 1772928000000000 }]],
|
|
84
|
+
aggregates: [[{ cat: 'x', n: 3, d: 3, s: 14, lo: 2, hi: 7, av: 14 / 3, names: ['apple', 'berry', 'date'], cats: ['x'], obj: { a: 5, b: 2, d: 7 } },
|
|
85
|
+
{ cat: 'y', n: 1, d: 1, s: 9, lo: 9, hi: 9, av: 9, names: ['cherry'], cats: ['y'], obj: { c: 9 } }]],
|
|
86
|
+
casts: [[{ t: '5', i: 5, f: 5, b: true, bf: false, bt: true, c: '5x' }]],
|
|
87
|
+
'literal-casts': [[{ ts: iso(2026, 3, 8, 10), d: '2026-03-08', iv: 129_600_000_000, im: 5_400_000_000, n: '12.34', us: iso(2026, 3, 8, 10, '123456') }]],
|
|
88
|
+
'mantle-refs': [[{ uid: 'o1', role: 'staff', now: iso(2026, 9, 29), x: 3 }]],
|
|
89
|
+
'date-trunc': [[{ h: iso(2026, 9, 29), d: iso(2026, 9, 29), w: iso(2026, 9, 28), m: iso(2026, 9, 1), y: iso(2026, 1, 1) }]],
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=corpus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corpus.js","sourceRoot":"","sources":["../../../src/testing/cases/corpus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { Report } from '../report.js';
|
|
2
|
+
import type { Engine } from '../harness.js';
|
|
3
|
+
import type { Mode } from '../../core/sql/policy.js';
|
|
4
|
+
type Step = {
|
|
5
|
+
kind: 'view' | 'procedure';
|
|
6
|
+
sql: string;
|
|
7
|
+
inputs?: Record<string, string>;
|
|
8
|
+
input?: Record<string, unknown>;
|
|
9
|
+
mode?: Mode;
|
|
10
|
+
/** what the caller is entitled to see: the exact rows of every statement, as JSON */
|
|
11
|
+
rows?: unknown[][];
|
|
12
|
+
/** or: the statement must fail with a CONFLICT (an invisible row is a missing row) */
|
|
13
|
+
conflict?: true;
|
|
14
|
+
};
|
|
15
|
+
export type Probe = {
|
|
16
|
+
steps: Step[];
|
|
17
|
+
};
|
|
18
|
+
/** One entry per RelationPosition. A missing or extra key does not typecheck. */
|
|
19
|
+
export declare const PROBES: {
|
|
20
|
+
from: {
|
|
21
|
+
steps: Step[];
|
|
22
|
+
};
|
|
23
|
+
'join.left': {
|
|
24
|
+
steps: Step[];
|
|
25
|
+
};
|
|
26
|
+
'join.right': {
|
|
27
|
+
steps: Step[];
|
|
28
|
+
};
|
|
29
|
+
'from-subquery': {
|
|
30
|
+
steps: Step[];
|
|
31
|
+
};
|
|
32
|
+
cte: {
|
|
33
|
+
steps: Step[];
|
|
34
|
+
};
|
|
35
|
+
'setop.left': {
|
|
36
|
+
steps: Step[];
|
|
37
|
+
};
|
|
38
|
+
'setop.right': {
|
|
39
|
+
steps: Step[];
|
|
40
|
+
};
|
|
41
|
+
sublink: {
|
|
42
|
+
steps: Step[];
|
|
43
|
+
};
|
|
44
|
+
json_each: {
|
|
45
|
+
steps: Step[];
|
|
46
|
+
};
|
|
47
|
+
window: {
|
|
48
|
+
steps: Step[];
|
|
49
|
+
};
|
|
50
|
+
'insert-target': {
|
|
51
|
+
steps: Step[];
|
|
52
|
+
};
|
|
53
|
+
'insert-select': {
|
|
54
|
+
steps: Step[];
|
|
55
|
+
};
|
|
56
|
+
'update-target': {
|
|
57
|
+
steps: Step[];
|
|
58
|
+
};
|
|
59
|
+
'delete-target': {
|
|
60
|
+
steps: Step[];
|
|
61
|
+
};
|
|
62
|
+
'conflict-update': {
|
|
63
|
+
steps: Step[];
|
|
64
|
+
};
|
|
65
|
+
search: {
|
|
66
|
+
steps: Step[];
|
|
67
|
+
};
|
|
68
|
+
near: {
|
|
69
|
+
steps: Step[];
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
export declare function run(r: Report, engine: Engine): Promise<void>;
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/policy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrD,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,qFAAqF;IACrF,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;IACnB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AAOtC,iFAAiF;AACjF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CwB,CAAC;AAS5C,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAiElD"}
|