@aotter/mantle 0.2.0-alpha.1 → 0.2.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (936) hide show
  1. package/README.md +180 -45
  2. package/dist/auth/adapter.d.ts +32 -0
  3. package/dist/auth/adapter.js +261 -0
  4. package/dist/auth/admin.d.ts +3 -0
  5. package/dist/auth/admin.js +18 -0
  6. package/dist/auth/caller.d.ts +86 -0
  7. package/dist/auth/caller.js +128 -0
  8. package/dist/auth/{createAuthRoutes.js → consent.js} +26 -54
  9. package/dist/auth/hardening.d.ts +24 -0
  10. package/dist/auth/hardening.js +33 -0
  11. package/dist/auth/identity.d.ts +121 -0
  12. package/dist/auth/identity.js +192 -0
  13. package/dist/auth/oauth.d.ts +63 -0
  14. package/dist/auth/oauth.js +185 -0
  15. package/dist/auth/resource-seeds.js +8 -0
  16. package/dist/auth/route-http.js +33 -0
  17. package/dist/auth/routes.d.ts +32 -0
  18. package/dist/auth/routes.js +80 -0
  19. package/dist/build/compiler.d.ts +122 -0
  20. package/dist/build/compiler.js +3 -0
  21. package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +30 -43
  22. package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
  23. package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +39 -6
  24. package/dist/build/spec/domain/model/UserFields.d.ts +21 -0
  25. package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +4 -1
  26. package/dist/{spec → build/spec}/kernel/diagnostic.d.ts +1 -30
  27. package/dist/bun/assets.d.ts +2 -0
  28. package/dist/bun/assets.js +22 -0
  29. package/dist/domain/adminOrder.js +22 -0
  30. package/dist/domain/columns.js +42 -0
  31. package/dist/domain/describe/chunk-SGMRVDGE.js +1 -0
  32. package/dist/domain/describe/index.d.ts +58 -0
  33. package/dist/domain/describe/index.js +1 -0
  34. package/dist/domain/describe/target-hash.d.ts +8 -0
  35. package/dist/domain/describe/target-hash.js +1 -0
  36. package/dist/domain/describe/targets.d.ts +40 -0
  37. package/dist/domain/entry.js +19 -0
  38. package/dist/domain/generated-tools.js +18 -0
  39. package/dist/domain/generation.d.ts +16 -0
  40. package/dist/domain/generation.js +1 -0
  41. package/dist/domain/input.js +15 -0
  42. package/dist/domain/model.js +1 -0
  43. package/dist/domain/paging.js +213 -0
  44. package/dist/domain/recipes.js +22 -0
  45. package/dist/domain/userReferences.js +4 -0
  46. package/dist/domain/wireScalars.js +41 -0
  47. package/dist/infrastructure/adminEntries.js +156 -0
  48. package/dist/infrastructure/adminPaging.js +70 -0
  49. package/dist/infrastructure/artifacts.js +67 -0
  50. package/dist/infrastructure/authSchema.js +74 -0
  51. package/dist/infrastructure/bundle.js +159 -0
  52. package/dist/infrastructure/cli.js +111 -0
  53. package/dist/infrastructure/generate.d.ts +12 -0
  54. package/dist/infrastructure/generate.js +175 -0
  55. package/dist/infrastructure/generateAuth.d.ts +8 -0
  56. package/dist/infrastructure/generateAuth.js +66 -0
  57. package/dist/infrastructure/help.js +55 -0
  58. package/dist/infrastructure/init.js +50 -0
  59. package/dist/infrastructure/inputs.js +32 -0
  60. package/dist/infrastructure/mounts.js +22 -0
  61. package/dist/infrastructure/wrangler.js +103 -0
  62. package/dist/kernel/authorization.d.ts +4 -0
  63. package/dist/kernel/authorization.js +15 -0
  64. package/dist/kernel/binds.d.ts +60 -0
  65. package/dist/kernel/binds.js +39 -0
  66. package/dist/kernel/caller-identity.d.ts +21 -0
  67. package/dist/kernel/caller-identity.js +7 -0
  68. package/dist/kernel/caller-mode.d.ts +4 -0
  69. package/dist/kernel/caller-mode.js +14 -0
  70. package/dist/kernel/contract-error.d.ts +12 -0
  71. package/dist/kernel/contract-error.js +14 -0
  72. package/dist/kernel/contracts.d.ts +135 -0
  73. package/dist/kernel/contracts.js +56 -0
  74. package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
  75. package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +0 -9
  76. package/dist/kernel/dialect/common.d.ts +38 -0
  77. package/dist/kernel/dialect/common.js +3 -0
  78. package/dist/kernel/dialect/postgres.d.ts +16 -0
  79. package/dist/kernel/dialect/postgres.js +16 -0
  80. package/dist/kernel/dialect/sqlite.d.ts +20 -0
  81. package/dist/kernel/dialect/sqlite.js +29 -0
  82. package/dist/kernel/drain.d.ts +5 -0
  83. package/dist/kernel/drain.js +29 -0
  84. package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
  85. package/dist/kernel/driver/bun-sqlite.js +73 -0
  86. package/dist/kernel/driver/d1.d.ts +24 -0
  87. package/dist/kernel/driver/d1.js +21 -0
  88. package/dist/kernel/driver/postgres.d.ts +25 -0
  89. package/dist/kernel/driver/postgres.js +84 -0
  90. package/dist/kernel/driver/transaction-context.d.ts +10 -0
  91. package/dist/kernel/driver/transaction-context.js +28 -0
  92. package/dist/kernel/email.d.ts +28 -0
  93. package/dist/{auth/emailTemplates.js → kernel/email.js} +9 -2
  94. package/dist/kernel/host-access.d.ts +10 -0
  95. package/dist/kernel/host-access.js +64 -0
  96. package/dist/kernel/host-caller.d.ts +39 -0
  97. package/dist/kernel/host-caller.js +53 -0
  98. package/dist/kernel/json-body.d.ts +4 -0
  99. package/dist/kernel/json-body.js +42 -0
  100. package/dist/kernel/mcp-apps.d.ts +69 -0
  101. package/dist/kernel/mcp-apps.js +35 -0
  102. package/dist/kernel/mcp-call.d.ts +5 -0
  103. package/dist/kernel/mcp-call.js +24 -0
  104. package/dist/kernel/mcp-handler.js +347 -0
  105. package/dist/kernel/mcp.d.ts +110 -0
  106. package/dist/kernel/mcp.js +45 -0
  107. package/dist/kernel/media.d.ts +27 -0
  108. package/dist/kernel/media.js +198 -0
  109. package/dist/kernel/paging.d.ts +55 -0
  110. package/dist/kernel/paging.js +87 -0
  111. package/dist/kernel/publishing.d.ts +4 -0
  112. package/dist/kernel/publishing.js +15 -0
  113. package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
  114. package/dist/kernel/r2-media.js +71 -0
  115. package/dist/kernel/rest-dispatch.js +37 -0
  116. package/dist/kernel/rest-router.js +63 -0
  117. package/dist/kernel/rest.d.ts +58 -0
  118. package/dist/kernel/rest.js +38 -0
  119. package/dist/kernel/scalars.d.ts +6 -0
  120. package/dist/kernel/scalars.js +36 -0
  121. package/dist/kernel/search.js +4 -0
  122. package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
  123. package/dist/kernel/site-types.js +1 -0
  124. package/dist/kernel/site.d.ts +39 -0
  125. package/dist/kernel/site.js +30 -0
  126. package/dist/kernel/store.d.ts +175 -0
  127. package/dist/kernel/store.js +244 -0
  128. package/dist/kernel/surface-failure.d.ts +10 -0
  129. package/dist/kernel/surface-failure.js +29 -0
  130. package/dist/kernel/surface.d.ts +10 -0
  131. package/dist/kernel/surface.js +16 -0
  132. package/dist/kernel/sweep.d.ts +17 -0
  133. package/dist/kernel/sweep.js +26 -0
  134. package/dist/kernel/translations.d.ts +1 -0
  135. package/dist/kernel/translations.js +12 -0
  136. package/dist/kernel/user-caller.d.ts +31 -0
  137. package/dist/kernel/user-caller.js +61 -0
  138. package/dist/kernel/user-field-name.js +3 -0
  139. package/dist/kernel/user-fields.d.ts +35 -0
  140. package/dist/kernel/user-fields.js +71 -0
  141. package/dist/kernel/validation.d.ts +15 -0
  142. package/dist/kernel/validation.js +46 -0
  143. package/dist/kernel/web-gateway.js +66 -0
  144. package/dist/kernel/web-head.js +14 -0
  145. package/dist/kernel/web-index.js +39 -0
  146. package/dist/kernel/web-response.js +7 -0
  147. package/dist/kernel/web-serve.js +97 -0
  148. package/dist/kernel/web.d.ts +77 -0
  149. package/dist/kernel/web.js +43 -0
  150. package/dist/kernel/where.js +21 -0
  151. package/dist/testing/index.d.ts +1 -37
  152. package/dist/testing/index.js +1 -43
  153. package/dist/usecase/adminBindings.js +150 -0
  154. package/dist/usecase/adminClient.js +66 -0
  155. package/dist/usecase/adminDescriptors.js +100 -0
  156. package/dist/usecase/generate.js +160 -0
  157. package/dist/usecase/handlers.js +18 -0
  158. package/dist/usecase/mcp-media.js +16 -0
  159. package/dist/usecase/mcp.js +96 -0
  160. package/dist/usecase/paging.js +69 -0
  161. package/dist/usecase/publishing.js +59 -0
  162. package/dist/usecase/refusals.js +27 -0
  163. package/dist/usecase/rest.js +53 -0
  164. package/dist/usecase/search.js +7 -0
  165. package/dist/usecase/site.js +38 -0
  166. package/dist/usecase/stores.js +52 -0
  167. package/dist/usecase/tool-version.js +6 -0
  168. package/dist/usecase/translations.js +76 -0
  169. package/dist/usecase/ttl.js +20 -0
  170. package/dist/usecase/validation.js +221 -0
  171. package/dist/usecase/web.js +23 -0
  172. package/docs/examples/README.md +39 -16
  173. package/docs/examples/app-shell/README.md +121 -0
  174. package/docs/examples/app-shell/accept.mjs +91 -0
  175. package/docs/examples/app-shell/gitignore +7 -0
  176. package/docs/examples/app-shell/package.json +43 -0
  177. package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
  178. package/docs/examples/app-shell/smoke-kit.mjs +168 -0
  179. package/docs/examples/app-shell/src/auth.ts +58 -0
  180. package/docs/examples/app-shell/src/handlers.ts +5 -0
  181. package/docs/examples/app-shell/src/index.ts +4 -0
  182. package/docs/examples/app-shell/src/routes.ts +16 -0
  183. package/docs/examples/app-shell/src/schedule.ts +8 -0
  184. package/docs/examples/app-shell/src/service.ts +71 -0
  185. package/docs/examples/app-shell/src/sign-in.ts +41 -0
  186. package/docs/examples/app-shell/src/signup.ts +8 -0
  187. package/docs/examples/{reference-service → app-shell}/tsconfig.json +6 -2
  188. package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
  189. package/docs/examples/app-shell/wrangler.jsonc +62 -0
  190. package/docs/examples/club-events/README.md +65 -0
  191. package/docs/examples/club-events/manifests/club-events.yaml +247 -0
  192. package/docs/examples/club-events/smoke.mjs +127 -0
  193. package/docs/examples/club-events/src/handlers.ts +25 -0
  194. package/docs/examples/club-events/src/signup.ts +9 -0
  195. package/docs/examples/generated-web/README.md +78 -0
  196. package/docs/examples/generated-web/posts.yaml +38 -0
  197. package/docs/examples/generated-web/seed.sql +6 -0
  198. package/docs/examples/generated-web/src/worker.ts +43 -0
  199. package/docs/examples/generated-web/tsconfig.json +8 -0
  200. package/docs/examples/generated-web/wrangler.jsonc +8 -0
  201. package/docs/examples/purchasing/.dev.vars.example +6 -0
  202. package/docs/examples/purchasing/README.md +99 -0
  203. package/docs/examples/purchasing/manifests/purchasing.yaml +374 -0
  204. package/docs/examples/purchasing/seed.sql +4 -0
  205. package/docs/examples/purchasing/smoke.mjs +191 -0
  206. package/docs/examples/purchasing/src/admin.tsx +13 -0
  207. package/docs/examples/purchasing/src/handlers.ts +33 -0
  208. package/docs/examples/purchasing/src/notify.ts +29 -0
  209. package/docs/examples/purchasing/src/requests-page.ts +57 -0
  210. package/docs/examples/purchasing/src/routes.ts +53 -0
  211. package/docs/examples/purchasing/src/schedule.ts +31 -0
  212. package/docs/examples/purchasing/src/signup.ts +5 -0
  213. package/docs/examples/purchasing/src/supplier.ts +32 -0
  214. package/docs/examples/purchasing/wrangler.jsonc +69 -0
  215. package/docs/examples/recipes/README.md +60 -0
  216. package/docs/examples/recipes/manifests/recipes.yaml +75 -0
  217. package/docs/examples/recipes/smoke.mjs +102 -0
  218. package/docs/examples/recipes/src/media.ts +13 -0
  219. package/docs/examples/recipes/src/pages.ts +99 -0
  220. package/docs/examples/recipes/src/routes.ts +71 -0
  221. package/docs/examples/recipes/src/site-config.ts +12 -0
  222. package/docs/examples/recipes/wrangler.jsonc +74 -0
  223. package/docs/handbook/cloudflare/authentication.md +186 -108
  224. package/docs/handbook/cloudflare/chatgpt-sites.md +5 -112
  225. package/docs/handbook/cloudflare/deploy-and-operate.md +59 -87
  226. package/docs/handbook/cloudflare/media-r2.md +61 -82
  227. package/docs/handbook/cloudflare/service-entry.md +223 -119
  228. package/docs/handbook/concepts/authorization.md +10 -117
  229. package/docs/handbook/concepts/four-atoms.md +9 -92
  230. package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
  231. package/docs/handbook/concepts/mcp-and-agents.md +24 -116
  232. package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
  233. package/docs/handbook/concepts/runtime-and-adapters.md +15 -183
  234. package/docs/handbook/concepts/views.md +10 -109
  235. package/docs/handbook/examples/hub.md +2 -18
  236. package/docs/handbook/guides/adapter-guide.md +11 -0
  237. package/docs/handbook/guides/admin-ui.md +113 -136
  238. package/docs/handbook/guides/agent-setup.md +32 -27
  239. package/docs/handbook/guides/agent-workflow-acceptance.md +232 -0
  240. package/docs/handbook/guides/email.md +86 -0
  241. package/docs/handbook/guides/local-testing.md +40 -0
  242. package/docs/handbook/guides/mcp-apps.md +560 -0
  243. package/docs/handbook/guides/native-admin.md +566 -0
  244. package/docs/handbook/guides/native-execution.md +133 -0
  245. package/docs/handbook/guides/oauth.md +219 -0
  246. package/docs/handbook/guides/postgres-adapters.md +56 -0
  247. package/docs/handbook/guides/public-pages.md +93 -0
  248. package/docs/handbook/guides/size-and-startup.md +9 -0
  249. package/docs/handbook/guides/sql-patterns.md +266 -0
  250. package/docs/handbook/guides/typed-queries.md +210 -100
  251. package/docs/handbook/navigation.json +176 -30
  252. package/docs/handbook/reference/admin-descriptors.md +56 -0
  253. package/docs/handbook/reference/authorization.md +44 -52
  254. package/docs/handbook/reference/describe.md +56 -0
  255. package/docs/handbook/reference/diagnostics.md +19 -77
  256. package/docs/handbook/reference/features.md +45 -53
  257. package/docs/handbook/reference/manifest.md +6 -69
  258. package/docs/handbook/reference/procedure.md +11 -115
  259. package/docs/handbook/reference/schema.md +81 -172
  260. package/docs/handbook/reference/site-config.md +5 -65
  261. package/docs/handbook/reference/sql.md +64 -0
  262. package/docs/handbook/reference/surface.md +396 -93
  263. package/docs/handbook/reference/trigger.md +62 -89
  264. package/docs/handbook/reference/view.md +40 -158
  265. package/docs/handbook/releases/index.md +198 -12
  266. package/docs/handbook/start/agents.md +45 -0
  267. package/docs/handbook/start/overview.md +9 -56
  268. package/docs/handbook/start/project-and-cli.md +51 -131
  269. package/docs/handbook/start/quickstart-worker.md +38 -115
  270. package/docs/skills/develop/SKILL.md +77 -121
  271. package/docs/skills/integrate/SKILL.md +37 -84
  272. package/docs/skills/media-gc/SKILL.md +21 -8
  273. package/docs/skills/provision/SKILL.md +31 -87
  274. package/docs/skills/update/SKILL.md +20 -34
  275. package/docs/source/scripts/postgres-adapter.ts +101 -0
  276. package/docs/upgrade-0.1-to-0.2.md +26 -10
  277. package/package.json +120 -112
  278. package/skills/README.md +67 -0
  279. package/skills/mantle/SKILL.md +76 -0
  280. package/dist/admin/consent.d.ts +0 -17
  281. package/dist/admin/consent.d.ts.map +0 -1
  282. package/dist/admin/consent.js +0 -17
  283. package/dist/admin/consent.js.map +0 -1
  284. package/dist/admin/createAdminSurface.d.ts +0 -22
  285. package/dist/admin/createAdminSurface.d.ts.map +0 -1
  286. package/dist/admin/createAdminSurface.js +0 -589
  287. package/dist/admin/createAdminSurface.js.map +0 -1
  288. package/dist/admin/developerConsole.d.ts +0 -264
  289. package/dist/admin/developerConsole.d.ts.map +0 -1
  290. package/dist/admin/developerConsole.js +0 -136
  291. package/dist/admin/developerConsole.js.map +0 -1
  292. package/dist/admin/identity.d.ts +0 -62
  293. package/dist/admin/identity.d.ts.map +0 -1
  294. package/dist/admin/identity.js +0 -7
  295. package/dist/admin/identity.js.map +0 -1
  296. package/dist/admin/index.d.ts +0 -4
  297. package/dist/admin/index.d.ts.map +0 -1
  298. package/dist/admin/index.js +0 -4
  299. package/dist/admin/index.js.map +0 -1
  300. package/dist/admin/procedureFlow.d.ts +0 -25
  301. package/dist/admin/procedureFlow.d.ts.map +0 -1
  302. package/dist/admin/procedureFlow.js +0 -154
  303. package/dist/admin/procedureFlow.js.map +0 -1
  304. package/dist/auth/ConsoleEmailSender.d.ts +0 -15
  305. package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
  306. package/dist/auth/ConsoleEmailSender.js +0 -19
  307. package/dist/auth/ConsoleEmailSender.js.map +0 -1
  308. package/dist/auth/appleClientSecret.d.ts +0 -75
  309. package/dist/auth/appleClientSecret.d.ts.map +0 -1
  310. package/dist/auth/appleClientSecret.js +0 -116
  311. package/dist/auth/appleClientSecret.js.map +0 -1
  312. package/dist/auth/buildAuth.d.ts +0 -4565
  313. package/dist/auth/buildAuth.d.ts.map +0 -1
  314. package/dist/auth/buildAuth.js +0 -307
  315. package/dist/auth/buildAuth.js.map +0 -1
  316. package/dist/auth/callerResolver.d.ts +0 -48
  317. package/dist/auth/callerResolver.d.ts.map +0 -1
  318. package/dist/auth/callerResolver.js +0 -49
  319. package/dist/auth/callerResolver.js.map +0 -1
  320. package/dist/auth/createAuthRoutes.d.ts +0 -22
  321. package/dist/auth/createAuthRoutes.d.ts.map +0 -1
  322. package/dist/auth/createAuthRoutes.js.map +0 -1
  323. package/dist/auth/createMantleAuth.d.ts +0 -3
  324. package/dist/auth/createMantleAuth.d.ts.map +0 -1
  325. package/dist/auth/createMantleAuth.js +0 -483
  326. package/dist/auth/createMantleAuth.js.map +0 -1
  327. package/dist/auth/db.d.ts +0 -17
  328. package/dist/auth/db.d.ts.map +0 -1
  329. package/dist/auth/db.js +0 -24
  330. package/dist/auth/db.js.map +0 -1
  331. package/dist/auth/emailTemplates.d.ts +0 -7
  332. package/dist/auth/emailTemplates.d.ts.map +0 -1
  333. package/dist/auth/emailTemplates.js.map +0 -1
  334. package/dist/auth/index.d.ts +0 -9
  335. package/dist/auth/index.d.ts.map +0 -1
  336. package/dist/auth/index.js +0 -7
  337. package/dist/auth/index.js.map +0 -1
  338. package/dist/auth/methods.d.ts +0 -717
  339. package/dist/auth/methods.d.ts.map +0 -1
  340. package/dist/auth/methods.js +0 -321
  341. package/dist/auth/methods.js.map +0 -1
  342. package/dist/auth/oauthTokens.d.ts +0 -24
  343. package/dist/auth/oauthTokens.d.ts.map +0 -1
  344. package/dist/auth/oauthTokens.js +0 -146
  345. package/dist/auth/oauthTokens.js.map +0 -1
  346. package/dist/auth/setupIncomplete.d.ts +0 -16
  347. package/dist/auth/setupIncomplete.d.ts.map +0 -1
  348. package/dist/auth/setupIncomplete.js +0 -50
  349. package/dist/auth/setupIncomplete.js.map +0 -1
  350. package/dist/auth/types.d.ts +0 -440
  351. package/dist/auth/types.d.ts.map +0 -1
  352. package/dist/auth/types.js +0 -10
  353. package/dist/auth/types.js.map +0 -1
  354. package/dist/bun/index.d.ts +0 -65
  355. package/dist/bun/index.d.ts.map +0 -1
  356. package/dist/bun/index.js +0 -130
  357. package/dist/bun/index.js.map +0 -1
  358. package/dist/cli/emitModule.d.ts +0 -7
  359. package/dist/cli/emitModule.d.ts.map +0 -1
  360. package/dist/cli/emitModule.js +0 -127
  361. package/dist/cli/emitModule.js.map +0 -1
  362. package/dist/cli/generate.d.ts +0 -8
  363. package/dist/cli/generate.d.ts.map +0 -1
  364. package/dist/cli/generate.js +0 -355
  365. package/dist/cli/generate.js.map +0 -1
  366. package/dist/cli/main.d.ts +0 -3
  367. package/dist/cli/main.d.ts.map +0 -1
  368. package/dist/cli/main.js +0 -21
  369. package/dist/cli/main.js.map +0 -1
  370. package/dist/cli/preset.d.ts +0 -18
  371. package/dist/cli/preset.d.ts.map +0 -1
  372. package/dist/cli/preset.js +0 -352
  373. package/dist/cli/preset.js.map +0 -1
  374. package/dist/cloudflare/index.d.ts +0 -21
  375. package/dist/cloudflare/index.d.ts.map +0 -1
  376. package/dist/cloudflare/index.js +0 -14
  377. package/dist/cloudflare/index.js.map +0 -1
  378. package/dist/cloudflare/r2Media.d.ts.map +0 -1
  379. package/dist/cloudflare/r2Media.js +0 -69
  380. package/dist/cloudflare/r2Media.js.map +0 -1
  381. package/dist/core/caller.d.ts +0 -35
  382. package/dist/core/caller.d.ts.map +0 -1
  383. package/dist/core/caller.js +0 -3
  384. package/dist/core/caller.js.map +0 -1
  385. package/dist/core/createMantle.d.ts +0 -22
  386. package/dist/core/createMantle.d.ts.map +0 -1
  387. package/dist/core/createMantle.js +0 -117
  388. package/dist/core/createMantle.js.map +0 -1
  389. package/dist/core/dialect.d.ts +0 -41
  390. package/dist/core/dialect.d.ts.map +0 -1
  391. package/dist/core/dialect.js +0 -7
  392. package/dist/core/dialect.js.map +0 -1
  393. package/dist/core/driver.d.ts +0 -17
  394. package/dist/core/driver.d.ts.map +0 -1
  395. package/dist/core/driver.js +0 -2
  396. package/dist/core/driver.js.map +0 -1
  397. package/dist/core/email.d.ts +0 -17
  398. package/dist/core/email.d.ts.map +0 -1
  399. package/dist/core/email.js +0 -2
  400. package/dist/core/email.js.map +0 -1
  401. package/dist/core/index.d.ts +0 -16
  402. package/dist/core/index.d.ts.map +0 -1
  403. package/dist/core/index.js +0 -16
  404. package/dist/core/index.js.map +0 -1
  405. package/dist/core/invocation.d.ts +0 -66
  406. package/dist/core/invocation.d.ts.map +0 -1
  407. package/dist/core/invocation.js +0 -3
  408. package/dist/core/invocation.js.map +0 -1
  409. package/dist/core/runtime/auth.d.ts +0 -9
  410. package/dist/core/runtime/auth.d.ts.map +0 -1
  411. package/dist/core/runtime/auth.js +0 -39
  412. package/dist/core/runtime/auth.js.map +0 -1
  413. package/dist/core/runtime/createRuntime.d.ts +0 -23
  414. package/dist/core/runtime/createRuntime.d.ts.map +0 -1
  415. package/dist/core/runtime/createRuntime.js +0 -214
  416. package/dist/core/runtime/createRuntime.js.map +0 -1
  417. package/dist/core/runtime/verifyPlan.d.ts +0 -34
  418. package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
  419. package/dist/core/runtime/verifyPlan.js +0 -301
  420. package/dist/core/runtime/verifyPlan.js.map +0 -1
  421. package/dist/core/service.d.ts +0 -45
  422. package/dist/core/service.d.ts.map +0 -1
  423. package/dist/core/service.js +0 -2
  424. package/dist/core/service.js.map +0 -1
  425. package/dist/core/site.d.ts.map +0 -1
  426. package/dist/core/site.js +0 -2
  427. package/dist/core/site.js.map +0 -1
  428. package/dist/core/siteConfig.d.ts +0 -5
  429. package/dist/core/siteConfig.d.ts.map +0 -1
  430. package/dist/core/siteConfig.js +0 -24
  431. package/dist/core/siteConfig.js.map +0 -1
  432. package/dist/core/sql/allowlist.d.ts +0 -65
  433. package/dist/core/sql/allowlist.d.ts.map +0 -1
  434. package/dist/core/sql/allowlist.js +0 -705
  435. package/dist/core/sql/allowlist.js.map +0 -1
  436. package/dist/core/sql/ast.d.ts +0 -24
  437. package/dist/core/sql/ast.d.ts.map +0 -1
  438. package/dist/core/sql/ast.js +0 -32
  439. package/dist/core/sql/ast.js.map +0 -1
  440. package/dist/core/sql/compile.d.ts +0 -50
  441. package/dist/core/sql/compile.d.ts.map +0 -1
  442. package/dist/core/sql/compile.js +0 -48
  443. package/dist/core/sql/compile.js.map +0 -1
  444. package/dist/core/sql/policy.d.ts +0 -121
  445. package/dist/core/sql/policy.d.ts.map +0 -1
  446. package/dist/core/sql/policy.js +0 -379
  447. package/dist/core/sql/policy.js.map +0 -1
  448. package/dist/core/sql/positions.d.ts +0 -30
  449. package/dist/core/sql/positions.d.ts.map +0 -1
  450. package/dist/core/sql/positions.js +0 -22
  451. package/dist/core/sql/positions.js.map +0 -1
  452. package/dist/core/sql/run.d.ts +0 -76
  453. package/dist/core/sql/run.d.ts.map +0 -1
  454. package/dist/core/sql/run.js +0 -267
  455. package/dist/core/sql/run.js.map +0 -1
  456. package/dist/core/store/createStore.d.ts +0 -49
  457. package/dist/core/store/createStore.d.ts.map +0 -1
  458. package/dist/core/store/createStore.js +0 -227
  459. package/dist/core/store/createStore.js.map +0 -1
  460. package/dist/core/store/cursor.d.ts +0 -4
  461. package/dist/core/store/cursor.d.ts.map +0 -1
  462. package/dist/core/store/cursor.js +0 -22
  463. package/dist/core/store/cursor.js.map +0 -1
  464. package/dist/core/store/json.d.ts +0 -80
  465. package/dist/core/store/json.d.ts.map +0 -1
  466. package/dist/core/store/json.js +0 -342
  467. package/dist/core/store/json.js.map +0 -1
  468. package/dist/core/store.d.ts +0 -160
  469. package/dist/core/store.d.ts.map +0 -1
  470. package/dist/core/store.js +0 -2
  471. package/dist/core/store.js.map +0 -1
  472. package/dist/core/wire.d.ts +0 -20
  473. package/dist/core/wire.d.ts.map +0 -1
  474. package/dist/core/wire.js +0 -84
  475. package/dist/core/wire.js.map +0 -1
  476. package/dist/core/withCaller.d.ts +0 -16
  477. package/dist/core/withCaller.d.ts.map +0 -1
  478. package/dist/core/withCaller.js +0 -29
  479. package/dist/core/withCaller.js.map +0 -1
  480. package/dist/d1/adapter.d.ts +0 -12
  481. package/dist/d1/adapter.d.ts.map +0 -1
  482. package/dist/d1/adapter.js +0 -23
  483. package/dist/d1/adapter.js.map +0 -1
  484. package/dist/d1/codec.d.ts +0 -14
  485. package/dist/d1/codec.d.ts.map +0 -1
  486. package/dist/d1/codec.js +0 -136
  487. package/dist/d1/codec.js.map +0 -1
  488. package/dist/d1/compile/index.d.ts +0 -9
  489. package/dist/d1/compile/index.d.ts.map +0 -1
  490. package/dist/d1/compile/index.js +0 -9
  491. package/dist/d1/compile/index.js.map +0 -1
  492. package/dist/d1/dialect.d.ts +0 -4
  493. package/dist/d1/dialect.d.ts.map +0 -1
  494. package/dist/d1/dialect.js +0 -13
  495. package/dist/d1/dialect.js.map +0 -1
  496. package/dist/d1/executor.d.ts +0 -13
  497. package/dist/d1/executor.d.ts.map +0 -1
  498. package/dist/d1/executor.js +0 -91
  499. package/dist/d1/executor.js.map +0 -1
  500. package/dist/d1/index.d.ts +0 -6
  501. package/dist/d1/index.d.ts.map +0 -1
  502. package/dist/d1/index.js +0 -6
  503. package/dist/d1/index.js.map +0 -1
  504. package/dist/d1/lower.d.ts +0 -8
  505. package/dist/d1/lower.d.ts.map +0 -1
  506. package/dist/d1/lower.js +0 -167
  507. package/dist/d1/lower.js.map +0 -1
  508. package/dist/d1/media.d.ts +0 -5
  509. package/dist/d1/media.d.ts.map +0 -1
  510. package/dist/d1/media.js +0 -157
  511. package/dist/d1/media.js.map +0 -1
  512. package/dist/d1/migrations.d.ts +0 -12
  513. package/dist/d1/migrations.d.ts.map +0 -1
  514. package/dist/d1/migrations.js +0 -111
  515. package/dist/d1/migrations.js.map +0 -1
  516. package/dist/d1/print.d.ts +0 -28
  517. package/dist/d1/print.d.ts.map +0 -1
  518. package/dist/d1/print.js +0 -54
  519. package/dist/d1/print.js.map +0 -1
  520. package/dist/d1/site.d.ts +0 -17
  521. package/dist/d1/site.d.ts.map +0 -1
  522. package/dist/d1/site.js +0 -63
  523. package/dist/d1/site.js.map +0 -1
  524. package/dist/d1/storage.d.ts +0 -34
  525. package/dist/d1/storage.d.ts.map +0 -1
  526. package/dist/d1/storage.js +0 -288
  527. package/dist/d1/storage.js.map +0 -1
  528. package/dist/d1/tz.d.ts +0 -21
  529. package/dist/d1/tz.d.ts.map +0 -1
  530. package/dist/d1/tz.js +0 -54
  531. package/dist/d1/tz.js.map +0 -1
  532. package/dist/d1/validator.d.ts +0 -10
  533. package/dist/d1/validator.d.ts.map +0 -1
  534. package/dist/d1/validator.js +0 -33
  535. package/dist/d1/validator.js.map +0 -1
  536. package/dist/mcp/apps.d.ts +0 -43
  537. package/dist/mcp/apps.d.ts.map +0 -1
  538. package/dist/mcp/apps.js +0 -57
  539. package/dist/mcp/apps.js.map +0 -1
  540. package/dist/mcp/catalog.d.ts +0 -55
  541. package/dist/mcp/catalog.d.ts.map +0 -1
  542. package/dist/mcp/catalog.js +0 -81
  543. package/dist/mcp/catalog.js.map +0 -1
  544. package/dist/mcp/createMcpSurface.d.ts +0 -34
  545. package/dist/mcp/createMcpSurface.d.ts.map +0 -1
  546. package/dist/mcp/createMcpSurface.js +0 -150
  547. package/dist/mcp/createMcpSurface.js.map +0 -1
  548. package/dist/mcp/index.d.ts +0 -4
  549. package/dist/mcp/index.d.ts.map +0 -1
  550. package/dist/mcp/index.js +0 -4
  551. package/dist/mcp/index.js.map +0 -1
  552. package/dist/postgres/adapter.d.ts +0 -20
  553. package/dist/postgres/adapter.d.ts.map +0 -1
  554. package/dist/postgres/adapter.js +0 -44
  555. package/dist/postgres/adapter.js.map +0 -1
  556. package/dist/postgres/codec.d.ts +0 -13
  557. package/dist/postgres/codec.d.ts.map +0 -1
  558. package/dist/postgres/codec.js +0 -110
  559. package/dist/postgres/codec.js.map +0 -1
  560. package/dist/postgres/compile/index.d.ts +0 -9
  561. package/dist/postgres/compile/index.d.ts.map +0 -1
  562. package/dist/postgres/compile/index.js +0 -9
  563. package/dist/postgres/compile/index.js.map +0 -1
  564. package/dist/postgres/driver.d.ts +0 -92
  565. package/dist/postgres/driver.d.ts.map +0 -1
  566. package/dist/postgres/driver.js +0 -110
  567. package/dist/postgres/driver.js.map +0 -1
  568. package/dist/postgres/executor.d.ts +0 -20
  569. package/dist/postgres/executor.d.ts.map +0 -1
  570. package/dist/postgres/executor.js +0 -69
  571. package/dist/postgres/executor.js.map +0 -1
  572. package/dist/postgres/index.d.ts +0 -7
  573. package/dist/postgres/index.d.ts.map +0 -1
  574. package/dist/postgres/index.js +0 -7
  575. package/dist/postgres/index.js.map +0 -1
  576. package/dist/postgres/lower.d.ts +0 -6
  577. package/dist/postgres/lower.d.ts.map +0 -1
  578. package/dist/postgres/lower.js +0 -157
  579. package/dist/postgres/lower.js.map +0 -1
  580. package/dist/postgres/print.d.ts +0 -11
  581. package/dist/postgres/print.d.ts.map +0 -1
  582. package/dist/postgres/print.js +0 -121
  583. package/dist/postgres/print.js.map +0 -1
  584. package/dist/postgres/storage.d.ts +0 -19
  585. package/dist/postgres/storage.d.ts.map +0 -1
  586. package/dist/postgres/storage.js +0 -201
  587. package/dist/postgres/storage.js.map +0 -1
  588. package/dist/postgres/textRows.d.ts +0 -10
  589. package/dist/postgres/textRows.d.ts.map +0 -1
  590. package/dist/postgres/textRows.js +0 -44
  591. package/dist/postgres/textRows.js.map +0 -1
  592. package/dist/postgres/validator.d.ts +0 -12
  593. package/dist/postgres/validator.d.ts.map +0 -1
  594. package/dist/postgres/validator.js +0 -46
  595. package/dist/postgres/validator.js.map +0 -1
  596. package/dist/spec/domain/index.d.ts +0 -3
  597. package/dist/spec/domain/index.d.ts.map +0 -1
  598. package/dist/spec/domain/index.js +0 -3
  599. package/dist/spec/domain/index.js.map +0 -1
  600. package/dist/spec/domain/model/ContentState.d.ts +0 -8
  601. package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
  602. package/dist/spec/domain/model/ContentState.js +0 -7
  603. package/dist/spec/domain/model/ContentState.js.map +0 -1
  604. package/dist/spec/domain/model/Entry.d.ts +0 -29
  605. package/dist/spec/domain/model/Entry.d.ts.map +0 -1
  606. package/dist/spec/domain/model/Entry.js +0 -16
  607. package/dist/spec/domain/model/Entry.js.map +0 -1
  608. package/dist/spec/domain/model/Locale.d.ts +0 -30
  609. package/dist/spec/domain/model/Locale.d.ts.map +0 -1
  610. package/dist/spec/domain/model/Locale.js +0 -33
  611. package/dist/spec/domain/model/Locale.js.map +0 -1
  612. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
  613. package/dist/spec/domain/model/ManifestGrammar.js +0 -149
  614. package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
  615. package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
  616. package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
  617. package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
  618. package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
  619. package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
  620. package/dist/spec/domain/model/RuntimePlan.js +0 -4
  621. package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
  622. package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
  623. package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
  624. package/dist/spec/domain/model/SiteConfig.js +0 -13
  625. package/dist/spec/domain/model/SiteConfig.js.map +0 -1
  626. package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
  627. package/dist/spec/domain/model/SqlIr.js +0 -95
  628. package/dist/spec/domain/model/SqlIr.js.map +0 -1
  629. package/dist/spec/domain/model/index.d.ts +0 -14
  630. package/dist/spec/domain/model/index.d.ts.map +0 -1
  631. package/dist/spec/domain/model/index.js +0 -14
  632. package/dist/spec/domain/model/index.js.map +0 -1
  633. package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
  634. package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
  635. package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
  636. package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
  637. package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
  638. package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
  639. package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
  640. package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
  641. package/dist/spec/domain/service/EntryDataValidator.js +0 -88
  642. package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
  643. package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
  644. package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
  645. package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
  646. package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
  647. package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
  648. package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
  649. package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
  650. package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
  651. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
  652. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
  653. package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
  654. package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
  655. package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
  656. package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
  657. package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
  658. package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
  659. package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
  660. package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
  661. package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
  662. package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
  663. package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
  664. package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
  665. package/dist/spec/domain/service/ManifestLinker.js +0 -92
  666. package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
  667. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
  668. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
  669. package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
  670. package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
  671. package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
  672. package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
  673. package/dist/spec/domain/service/ManifestParser.js +0 -203
  674. package/dist/spec/domain/service/ManifestParser.js.map +0 -1
  675. package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
  676. package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
  677. package/dist/spec/domain/service/ManifestPartition.js +0 -19
  678. package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
  679. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
  680. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
  681. package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
  682. package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
  683. package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
  684. package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
  685. package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
  686. package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
  687. package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
  688. package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
  689. package/dist/spec/domain/service/McpToolNaming.js +0 -50
  690. package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
  691. package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
  692. package/dist/spec/domain/service/PlanFingerprint.js +0 -14
  693. package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
  694. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
  695. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
  696. package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
  697. package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
  698. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
  699. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
  700. package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
  701. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
  702. package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
  703. package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
  704. package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
  705. package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
  706. package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
  707. package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
  708. package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
  709. package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
  710. package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
  711. package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
  712. package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
  713. package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
  714. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
  715. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
  716. package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
  717. package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
  718. package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
  719. package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
  720. package/dist/spec/domain/service/SqlClassify.js +0 -42
  721. package/dist/spec/domain/service/SqlClassify.js.map +0 -1
  722. package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
  723. package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
  724. package/dist/spec/domain/service/SqlRefusal.js +0 -20
  725. package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
  726. package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
  727. package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
  728. package/dist/spec/domain/service/SqlTypes.js +0 -110
  729. package/dist/spec/domain/service/SqlTypes.js.map +0 -1
  730. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
  731. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
  732. package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
  733. package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
  734. package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
  735. package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
  736. package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
  737. package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
  738. package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
  739. package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
  740. package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
  741. package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
  742. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
  743. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
  744. package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
  745. package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
  746. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
  747. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
  748. package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
  749. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
  750. package/dist/spec/domain/service/index.d.ts +0 -24
  751. package/dist/spec/domain/service/index.d.ts.map +0 -1
  752. package/dist/spec/domain/service/index.js +0 -24
  753. package/dist/spec/domain/service/index.js.map +0 -1
  754. package/dist/spec/index.d.ts +0 -10
  755. package/dist/spec/index.d.ts.map +0 -1
  756. package/dist/spec/index.js +0 -12
  757. package/dist/spec/index.js.map +0 -1
  758. package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
  759. package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
  760. package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
  761. package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
  762. package/dist/spec/infrastructure/index.d.ts +0 -2
  763. package/dist/spec/infrastructure/index.d.ts.map +0 -1
  764. package/dist/spec/infrastructure/index.js +0 -2
  765. package/dist/spec/infrastructure/index.js.map +0 -1
  766. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
  767. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
  768. package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
  769. package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
  770. package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
  771. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
  772. package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
  773. package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
  774. package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
  775. package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
  776. package/dist/spec/infrastructure/sql/compileSql.js +0 -92
  777. package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
  778. package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
  779. package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
  780. package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
  781. package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
  782. package/dist/spec/infrastructure/sql/index.d.ts +0 -4
  783. package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
  784. package/dist/spec/infrastructure/sql/index.js +0 -4
  785. package/dist/spec/infrastructure/sql/index.js.map +0 -1
  786. package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
  787. package/dist/spec/kernel/diagnostic.js +0 -296
  788. package/dist/spec/kernel/diagnostic.js.map +0 -1
  789. package/dist/spec/kernel/index.d.ts +0 -8
  790. package/dist/spec/kernel/index.d.ts.map +0 -1
  791. package/dist/spec/kernel/index.js +0 -8
  792. package/dist/spec/kernel/index.js.map +0 -1
  793. package/dist/spec/usecase/EmitTypes.d.ts +0 -22
  794. package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
  795. package/dist/spec/usecase/EmitTypes.js +0 -182
  796. package/dist/spec/usecase/EmitTypes.js.map +0 -1
  797. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
  798. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
  799. package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
  800. package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
  801. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
  802. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
  803. package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
  804. package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
  805. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
  806. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
  807. package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
  808. package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
  809. package/dist/spec/usecase/dto/index.d.ts +0 -3
  810. package/dist/spec/usecase/dto/index.d.ts.map +0 -1
  811. package/dist/spec/usecase/dto/index.js +0 -3
  812. package/dist/spec/usecase/dto/index.js.map +0 -1
  813. package/dist/spec/usecase/index.d.ts +0 -10
  814. package/dist/spec/usecase/index.d.ts.map +0 -1
  815. package/dist/spec/usecase/index.js +0 -10
  816. package/dist/spec/usecase/index.js.map +0 -1
  817. package/dist/testing/cases/before-hook.d.ts +0 -4
  818. package/dist/testing/cases/before-hook.d.ts.map +0 -1
  819. package/dist/testing/cases/before-hook.js +0 -71
  820. package/dist/testing/cases/before-hook.js.map +0 -1
  821. package/dist/testing/cases/corpus.d.ts +0 -12
  822. package/dist/testing/cases/corpus.d.ts.map +0 -1
  823. package/dist/testing/cases/corpus.js +0 -91
  824. package/dist/testing/cases/corpus.js.map +0 -1
  825. package/dist/testing/cases/policy.d.ts +0 -74
  826. package/dist/testing/cases/policy.d.ts.map +0 -1
  827. package/dist/testing/cases/policy.js +0 -142
  828. package/dist/testing/cases/policy.js.map +0 -1
  829. package/dist/testing/cases/printer.d.ts +0 -4
  830. package/dist/testing/cases/printer.d.ts.map +0 -1
  831. package/dist/testing/cases/printer.js +0 -32
  832. package/dist/testing/cases/printer.js.map +0 -1
  833. package/dist/testing/cases/report-view.d.ts +0 -5
  834. package/dist/testing/cases/report-view.d.ts.map +0 -1
  835. package/dist/testing/cases/report-view.js +0 -33
  836. package/dist/testing/cases/report-view.js.map +0 -1
  837. package/dist/testing/cases/requisition.d.ts +0 -4
  838. package/dist/testing/cases/requisition.d.ts.map +0 -1
  839. package/dist/testing/cases/requisition.js +0 -38
  840. package/dist/testing/cases/requisition.js.map +0 -1
  841. package/dist/testing/cases/search-places.d.ts +0 -4
  842. package/dist/testing/cases/search-places.d.ts.map +0 -1
  843. package/dist/testing/cases/search-places.js +0 -60
  844. package/dist/testing/cases/search-places.js.map +0 -1
  845. package/dist/testing/cases/stock.d.ts +0 -4
  846. package/dist/testing/cases/stock.d.ts.map +0 -1
  847. package/dist/testing/cases/stock.js +0 -35
  848. package/dist/testing/cases/stock.js.map +0 -1
  849. package/dist/testing/cases/store.d.ts +0 -4
  850. package/dist/testing/cases/store.d.ts.map +0 -1
  851. package/dist/testing/cases/store.js +0 -100
  852. package/dist/testing/cases/store.js.map +0 -1
  853. package/dist/testing/harness.d.ts +0 -94
  854. package/dist/testing/harness.d.ts.map +0 -1
  855. package/dist/testing/harness.js +0 -168
  856. package/dist/testing/harness.js.map +0 -1
  857. package/dist/testing/index.d.ts.map +0 -1
  858. package/dist/testing/index.js.map +0 -1
  859. package/dist/testing/report.d.ts +0 -15
  860. package/dist/testing/report.d.ts.map +0 -1
  861. package/dist/testing/report.js +0 -22
  862. package/dist/testing/report.js.map +0 -1
  863. package/dist/web/createRestSurface.d.ts +0 -7
  864. package/dist/web/createRestSurface.d.ts.map +0 -1
  865. package/dist/web/createRestSurface.js +0 -39
  866. package/dist/web/createRestSurface.js.map +0 -1
  867. package/dist/web/index.d.ts +0 -2
  868. package/dist/web/index.d.ts.map +0 -1
  869. package/dist/web/index.js +0 -2
  870. package/dist/web/index.js.map +0 -1
  871. package/docs/adr/0001-four-atom-manifest-model.md +0 -440
  872. package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
  873. package/docs/adr/0007-ai-as-primary-author.md +0 -473
  874. package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
  875. package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
  876. package/docs/adr/0010-locale-and-translates.md +0 -453
  877. package/docs/adr/0011-adapter-port-spec.md +0 -281
  878. package/docs/adr/0012-views-as-public-rest.md +0 -161
  879. package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
  880. package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -919
  881. package/docs/adr/0016-site-semantic-layer.md +0 -70
  882. package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
  883. package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
  884. package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
  885. package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
  886. package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
  887. package/docs/adr/0022-caller-observed-version-occ.md +0 -212
  888. package/docs/adr/0023-port-failure-contract.md +0 -69
  889. package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
  890. package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
  891. package/docs/adr/0026-progressive-generate.md +0 -36
  892. package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
  893. package/docs/adr/0028-schema-ttl-expiry.md +0 -33
  894. package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
  895. package/docs/adr/0030-store.md +0 -40
  896. package/docs/adr/0031-host-cloud-core-contract.md +0 -25
  897. package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -361
  898. package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
  899. package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
  900. package/docs/adr/0035-sql-dialects.md +0 -154
  901. package/docs/adr/0036-host-and-dialect.md +0 -65
  902. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -124
  903. package/docs/adr/0038-bun-native-host.md +0 -63
  904. package/docs/adr/README.md +0 -96
  905. package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
  906. package/docs/adr/adr-lite-808-route-readiness.md +0 -47
  907. package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
  908. package/docs/adr/adr-lite-812-native-parity.md +0 -150
  909. package/docs/adr/adr-lite-823-home-statistics.md +0 -64
  910. package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
  911. package/docs/adr/adr-lite-845-frontend-client.md +0 -38
  912. package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
  913. package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
  914. package/docs/examples/commerce-inventory.md +0 -481
  915. package/docs/examples/commerce.md +0 -254
  916. package/docs/examples/guarded-api.md +0 -238
  917. package/docs/examples/intake-hooks.md +0 -237
  918. package/docs/examples/intake.md +0 -127
  919. package/docs/examples/legal-documents.md +0 -218
  920. package/docs/examples/procurement.md +0 -215
  921. package/docs/examples/publication.md +0 -211
  922. package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
  923. package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
  924. package/docs/examples/reference-service/README.md +0 -33
  925. package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
  926. package/docs/examples/reference-service/manifests/orders.yaml +0 -120
  927. package/docs/examples/reference-service/mantle.config.json +0 -1
  928. package/docs/examples/reference-service/package.json +0 -27
  929. package/docs/examples/reference-service/smoke.mjs +0 -156
  930. package/docs/examples/reference-service/src/handlers.ts +0 -36
  931. package/docs/examples/reference-service/src/index.ts +0 -33
  932. package/docs/examples/reference-service/src/service.ts +0 -78
  933. package/docs/examples/reference-service/wrangler.jsonc +0 -26
  934. package/docs/examples/reservation.md +0 -142
  935. package/docs/skills/develop/mcp-app.md +0 -79
  936. /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
@@ -0,0 +1,58 @@
1
+ /** REST request handling for a generated route table: matching, body and parameter decoding, dispatch and errors. */
2
+ import type { Caller, Target, Authorize, Gateway, RequestContext, GatewayOptions } from "./contracts.js";
3
+ import { type Conversions } from "./surface.js";
4
+ type Paging = {
5
+ limit?: number;
6
+ cursor?: string;
7
+ };
8
+ /** Options of a generated `rest(...)`; it adds required `handlers` when the app declares ref Procedures. */
9
+ export interface Options<Env, Database> extends GatewayOptions {
10
+ authorize?: Authorize;
11
+ gateway?: Gateway;
12
+ fields?: import("./user-fields.js").UserFields;
13
+ db: (env: Env) => Database;
14
+ caller?: (request: Request, env: Env, authority: {
15
+ readonly readOnly: boolean;
16
+ }) => Caller | Promise<Caller>;
17
+ }
18
+ /**
19
+ * One generated route, matched in order: a public View (`query`, `page`) at `GET /api/views/<name>`, or an http
20
+ * Trigger whose JSON body merges with its `{name}` path parameters (typed as the input declares them). The
21
+ * generator prints `pattern` (encoded segments, optional trailing slash) and `keys`, so mounting runs no code.
22
+ */
23
+ export interface Route<Database, Handlers = never, Env = unknown> {
24
+ readonly method: string;
25
+ /** Describe route id; parameterized native routes supply their path template. */
26
+ readonly id?: string;
27
+ /** Compiler-proved read-only Procedure; ref handlers never qualify. */
28
+ readonly readOnly?: boolean;
29
+ readonly target?: Target;
30
+ /** Generated requires guard, used before application authorization. */
31
+ readonly check?: (caller: Caller) => void;
32
+ /** A selected native surface can preserve the Request and return its own Response. */
33
+ readonly handle?: (request: Request, env: Env, getDb: () => Database, caller: Caller, params: Record<string, string>, handlers: Handlers, input?: Record<string, unknown>) => Promise<unknown>;
34
+ /** Selected raw APIs may declare a different body limit; JSON routes default to one million bytes. */
35
+ readonly bodyLimit?: number;
36
+ /** The app owns raw stream consumption; only the declared Content-Length is checked. */
37
+ readonly rawBody?: boolean;
38
+ readonly pattern: RegExp;
39
+ readonly keys?: readonly string[];
40
+ readonly convert?: Conversions;
41
+ readonly query?: (params: URLSearchParams) => {
42
+ input: Record<string, unknown>;
43
+ } & Paging;
44
+ readonly page?: (db: Database, caller: Caller, input: never, paging: Paging) => Promise<unknown>;
45
+ readonly params?: Readonly<Record<string, "number" | "boolean">>;
46
+ readonly validate?: (raw: unknown) => Record<string, unknown>;
47
+ readonly run?: (db: Database, caller: Caller, input: never, handlers: Handlers) => Promise<unknown>;
48
+ }
49
+ export declare function body(request: Request, limit?: number): Promise<Record<string, unknown>>;
50
+ /** Generated REST routes retain the native View/Procedure dispatch. */
51
+ export declare function rest<Env, Database, Handlers = never>(routes: readonly Route<Database, Handlers, Env>[], options: Options<Env, Database> & {
52
+ handlers?: Handlers;
53
+ }): (request: Request, env: Env, ctx?: RequestContext) => Promise<Response | undefined>;
54
+ /** A selected surface's raw/JSON handlers; its branches are absent from ordinary REST bundles. */
55
+ export declare function nativeRest<Env, Database, Handlers = never>(routes: readonly Route<Database, Handlers, Env>[], options: Options<Env, Database> & {
56
+ handlers?: Handlers;
57
+ }): (request: Request, env: Env, ctx?: RequestContext) => Promise<Response | undefined>;
58
+ export {};
@@ -0,0 +1,38 @@
1
+ import { ContractError } from "./contract-error.js";
2
+ import { invalid } from "./surface.js";
3
+ const headers = { "cache-control": "private, no-store" };
4
+ const fail = message => invalid(message, "rest");
5
+ export async function body(request, limit = 1_000_000) {
6
+ if (Number(request.headers.get("content-length")) > limit)
7
+ fail(`Request body exceeds ${limit} bytes.`);
8
+ return (await import("./json-body.js")).body(request, limit, fail);
9
+ }
10
+ function router(routes, options, send) {
11
+ let handle;
12
+ return async (request, env, ctx) => {
13
+ handle ??= (await import("./rest-router.js")).router(routes, options, send);
14
+ return handle(request, env, ctx);
15
+ };
16
+ }
17
+ export function rest(routes, options) {
18
+ return router(routes, options, async (route, request, env, caller, params, access) => {
19
+ const { dispatch } = await import("./rest-dispatch.js");
20
+ return dispatch(route, request, () => options.db(env), caller, params, options, access);
21
+ });
22
+ }
23
+ export function nativeRest(routes, options) {
24
+ return router(routes, options, async (route, request, env, caller, params, access) => {
25
+ if (Number(request.headers.get("content-length")) > (route.bodyLimit ?? 1_000_000))
26
+ fail(`Request body exceeds ${route.bodyLimit ?? 1_000_000} bytes.`);
27
+ const input = route.rawBody || ["GET", "HEAD", "OPTIONS"].includes(request.method) ? undefined : await body(request, route.bodyLimit);
28
+ if (access?.dryRun)
29
+ throw new ContractError("DRY_RUN_UNSUPPORTED", "Opaque native route.", route.id, { status: 412 });
30
+ let initialized = false, db;
31
+ const getDb = () => { if (!initialized) {
32
+ db = options.db(env);
33
+ initialized = true;
34
+ } return db; };
35
+ const output = await route.handle(request, env, getDb, caller, params, options.handlers, input);
36
+ return output instanceof Response ? output : Response.json(output, { headers });
37
+ });
38
+ }
@@ -0,0 +1,6 @@
1
+ export declare function encodeTimestamptz(v: string | Date): number;
2
+ /** A date is the string a calendar shows; a Date instant has no single calendar day, so it is not accepted. */
3
+ export declare function encodeDate(v: string): number;
4
+ export declare function isoTimestamptz(v: string | Date): string;
5
+ /** The input itself: the pattern admits only the canonical form, and a day that does not exist was refused. */
6
+ export declare const isoDate: (v: string) => string;
@@ -0,0 +1,36 @@
1
+ import { ContractError } from "./contracts.js";
2
+ export function encodeTimestamptz(v) {
3
+ if (v instanceof Date) {
4
+ const micros = v.getTime() * 1000;
5
+ if (!Number.isSafeInteger(micros))
6
+ throw new ContractError("SQL_TYPE", "Invalid Date is not a timestamp");
7
+ return micros;
8
+ }
9
+ const m = /^(\d{4}-\d\d-\d\d)[T ]((?:[01]\d|2[0-3]):\d\d(?::\d\d)?)(?:\.(\d{1,6}))?(Z|[+-]\d\d(?::?\d\d)?)$/.exec(v.trim());
10
+ if (!m)
11
+ throw new ContractError("SQL_TYPE", `'${v}' is not a timestamp with an explicit offset`);
12
+ const [, day, time, fraction, offset] = m;
13
+ const zone = offset === "Z" ? "Z" : offset.length === 3 ? `${offset}:00` : offset.includes(":") ? offset : `${offset.slice(0, 3)}:${offset.slice(3)}`;
14
+ const secs = Date.parse(`${day}T${time.length === 5 ? time + ":00" : time}${zone}`);
15
+ encodeDate(day);
16
+ const micros = secs * 1000 + Number((fraction ?? "").padEnd(6, "0"));
17
+ if (Number.isNaN(secs) || !Number.isSafeInteger(micros))
18
+ throw new ContractError("SQL_TYPE", `'${v}' is not a valid timestamp`);
19
+ return micros;
20
+ }
21
+ export function encodeDate(v) {
22
+ const m = /^(\d{4})-(\d\d)-(\d\d)$/.exec(v);
23
+ if (!m)
24
+ throw new ContractError("SQL_TYPE", `'${v}' is not a date`);
25
+ const [, y, mo, d] = m;
26
+ const dt = new Date(0);
27
+ dt.setUTCFullYear(+y, +mo - 1, +d);
28
+ if (dt.getUTCDate() !== +d || dt.getUTCMonth() !== +mo - 1)
29
+ throw new ContractError("SQL_TYPE", `'${v}' is not a valid date`);
30
+ return dt.getTime() / 86_400_000;
31
+ }
32
+ export function isoTimestamptz(v) {
33
+ const us = encodeTimestamptz(v), ms = Math.floor(us / 1000);
34
+ return new Date(ms).toISOString().replace("Z", String(us - ms * 1000).padStart(3, "0") + "Z");
35
+ }
36
+ export const isoDate = (v) => (encodeDate(v), v);
@@ -0,0 +1,4 @@
1
+ export function searchLike(columns, query, operator) {
2
+ const pattern = `'%' || replace(replace(replace(${query}, '!', '!!'), '%', '!%'), '_', '!_') || '%'`;
3
+ return columns.map(column => `${column} ${operator} ${pattern} ESCAPE '!'`).join(' OR ');
4
+ }
@@ -1,16 +1,45 @@
1
- /**
2
- * Site config and media: the runtime's one optional capability over Core's product tables `site_config`, `media_assets` and
3
- * `pending_media_uploads` (ADR-0032 decision 11). A storage adapter given `site` defaults returns it; a runtime without it boots.
4
- */
5
- import type { SiteConfig } from "../spec/domain/index.js";
6
- /** What the Admin settings page edits. An omitted field is unchanged; an empty string clears it. */
1
+ /** Optional site/media DTOs; asset times keep the 0.2 millisecond wire shape. */
2
+ export interface SiteIcon {
3
+ readonly src: string;
4
+ readonly mimeType?: string;
5
+ readonly sizes?: readonly string[];
6
+ readonly theme?: "light" | "dark";
7
+ }
8
+ export interface MediaPurposePolicy {
9
+ readonly name: string;
10
+ readonly required: readonly string[];
11
+ readonly maxBytes: Readonly<Record<string, number>>;
12
+ }
13
+ export interface SiteDefaults {
14
+ readonly brand?: string;
15
+ readonly title?: string;
16
+ readonly description?: string;
17
+ readonly origin?: string;
18
+ readonly locales?: readonly string[];
19
+ readonly icons?: readonly SiteIcon[];
20
+ readonly media?: {
21
+ readonly purposes?: readonly MediaPurposePolicy[];
22
+ };
23
+ }
24
+ export interface SiteConfig {
25
+ readonly brand: string;
26
+ readonly title: string;
27
+ readonly description: string;
28
+ readonly origin: string;
29
+ readonly locales: readonly string[];
30
+ readonly canonicalLocale: string | null;
31
+ readonly icons: readonly SiteIcon[];
32
+ readonly media: {
33
+ readonly purposes: readonly MediaPurposePolicy[];
34
+ };
35
+ }
7
36
  export interface SiteSettings {
8
37
  readonly brand?: string;
9
38
  readonly title?: string;
10
39
  readonly description?: string;
11
40
  }
12
41
  export interface MantleSite {
13
- /** Stored values over the defaults: operator fields were seeded once, deployment fields synced at boot. */
42
+ /** Stored operator values over generated defaults; deployment fields are code constants. */
14
43
  read(): Promise<SiteConfig>;
15
44
  updateSettings(values: SiteSettings): Promise<SiteConfig>;
16
45
  /** The media library over this site's tables, its objects in `storage`. */
@@ -60,7 +89,8 @@ export interface MediaStorage {
60
89
  }>;
61
90
  /**
62
91
  * Checks every uploaded object's type and size (`MEDIA_OBJECT_NOT_FOUND`, `MEDIA_MIME_REJECTED`, `MEDIA_VARIANT_SIZE_EXCEEDED`), all or
63
- * nothing, and publishes it under a key no upload URL reaches. On a rejection the caller deletes the upload keys.
92
+ * nothing, and publishes it under attempt-owned keys no upload URL reaches. Concurrent attempts must never overwrite
93
+ * or remove each other's copies. On a rejection the caller deletes the upload keys.
64
94
  */
65
95
  commitUpload(args: {
66
96
  readonly uploadGroupId: string;
@@ -114,4 +144,3 @@ export interface MediaLibrary {
114
144
  readonly variantsRemoved: number;
115
145
  }>;
116
146
  }
117
- //# sourceMappingURL=site.d.ts.map
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ /** Optional site capability. Construction does no database work; deployment facts come from generated constants. */
2
+ import { type Caller } from "./contracts.js";
3
+ import { type MediaDatabase } from "./media.js";
4
+ import type { Dialect } from "./dialect/common.js";
5
+ import type { MantleSite, SiteDefaults, SiteConfig, MediaPurposePolicy } from "./site-types.js";
6
+ export type { MantleSite, SiteDefaults, SiteConfig, MediaStorage, MediaAsset, MediaLibrary, MediaPurposePolicy } from "./site-types.js";
7
+ export declare function createSite(db: MediaDatabase, d: Pick<Dialect, "param" | "escapeLike" | "likeEscape" | "like">, caller: Caller, defaults: SiteDefaults, policies: readonly MediaPurposePolicy[]): MantleSite;
8
+ /** 0.2 /admin/api/site projection; the app supplies its selected capabilities. */
9
+ export declare function siteInfo(config: SiteConfig, options: {
10
+ origin: string;
11
+ media?: boolean;
12
+ invitationEmail?: boolean;
13
+ mcpEndpoints?: {
14
+ public?: string | null;
15
+ admin?: string | null;
16
+ };
17
+ siteSettings?: boolean;
18
+ }): {
19
+ publicUrl: string;
20
+ mcpEndpoints: {
21
+ public: string | null;
22
+ admin: string | null;
23
+ };
24
+ capabilities: {
25
+ siteSettings: boolean;
26
+ media: boolean;
27
+ invitationEmail: boolean;
28
+ statistics: boolean;
29
+ };
30
+ brand: string;
31
+ title: string;
32
+ description: string;
33
+ locales: readonly string[];
34
+ canonicalLocale: string | null;
35
+ icons: readonly import("./site-types.js").SiteIcon[];
36
+ media: {
37
+ readonly purposes: readonly MediaPurposePolicy[];
38
+ };
39
+ };
@@ -0,0 +1,30 @@
1
+ import { isAdmin, deny } from "./contracts.js";
2
+ import { invalid } from "./surface.js";
3
+ import { mediaLibrary } from "./media.js";
4
+ const icons = [{ src: "/admin/favicon.png", mimeType: "image/png", sizes: ["64x64"] }, { src: "/admin/favicon.svg", mimeType: "image/svg+xml", sizes: ["any"] }];
5
+ export function createSite(db, d, caller, defaults, policies) {
6
+ const admin = () => deny(caller, isAdmin(caller), "site");
7
+ const read = async () => {
8
+ const stored = Object.fromEntries((await db.read("SELECT key, value FROM site_config", [])).map(row => [String(row.key), String(row.value)]));
9
+ const locales = defaults.locales ?? [];
10
+ return { brand: stored.brand || defaults.brand || "AotterMantle", title: stored.title ?? defaults.title ?? "CMS", description: stored.description ?? defaults.description ?? "", origin: defaults.origin ?? "", locales, canonicalLocale: locales[0] ?? null, icons: defaults.icons ?? icons, media: { purposes: defaults.media?.purposes ?? [] } };
11
+ };
12
+ return { read, async updateSettings(values) {
13
+ admin();
14
+ if (!values || typeof values !== "object" || Array.isArray(values))
15
+ invalid("Site settings must be an object.", "site/settings");
16
+ const steps = ["brand", "title", "description"].flatMap(key => values[key] === undefined ? [] : [{ sql: `INSERT INTO site_config (key,value) VALUES (${d.param(1)},${d.param(2)}) ON CONFLICT(key) DO UPDATE SET value=excluded.value`, binds: [key, values[key]] }]);
17
+ for (const key of ["brand", "title", "description"])
18
+ if (values[key] !== undefined && (typeof values[key] !== "string" || values[key].length > { brand: 80, title: 200, description: 1000 }[key]))
19
+ invalid(`Invalid site setting ${key}`, "site/settings");
20
+ if (steps.length)
21
+ await db.write(steps);
22
+ return read();
23
+ }, media(storage) { admin(); return mediaLibrary(db, d, storage, policies); } };
24
+ }
25
+ export function siteInfo(config, options) {
26
+ const { origin, ...stored } = config;
27
+ const publicUrl = URL.canParse(origin) ? origin : options.origin;
28
+ const at = (path) => path ? new URL(path, publicUrl).href : null;
29
+ return { ...stored, publicUrl, mcpEndpoints: { public: at(options.mcpEndpoints?.public), admin: at(options.mcpEndpoints?.admin) }, capabilities: { siteSettings: options.siteSettings ?? true, media: !!options.media, invitationEmail: !!options.invitationEmail, statistics: false } };
30
+ }
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Generic Store over Core's rowPolicy/writePolicy rules and per-Schema Facts (scope, TTL, publishing, dates).
3
+ * Generated types own storage column names, values, filters and writable columns; the dialect quotes names and binds values.
4
+ * Runtime refuses unsafe limits, system/scope writes, undefined values. It applies row rules, not requires.
5
+ */
6
+ import { type Bound, type Recipe } from "./binds.js";
7
+ import { type Caller, type Row } from "./contracts.js";
8
+ import type { Dialect } from "./dialect/common.js";
9
+ import { decodeCursor, encodeCursor } from "./paging.js";
10
+ export { decodeCursor, encodeCursor };
11
+ /** `eq`: `column = value`; `ttl`: `column IS NULL OR column > value` (Core's `RowTerm`). */
12
+ export type Term = readonly [column: string, op: "eq" | "ttl", value: Recipe] | readonly [column: string, op: "admin", value: Recipe, published: string] | readonly [column: string, op: "parent", value: Recipe, parent: ParentPolicy] | readonly [column: string, op: "in", value: Extract<Recipe, {
13
+ k: 'user';
14
+ }>];
15
+ export interface ParentPolicy {
16
+ readonly table: string;
17
+ readonly terms: readonly Term[];
18
+ readonly scope?: readonly [parent: string, child: string];
19
+ readonly admin?: true;
20
+ }
21
+ /** Core's row rules for a Schema with the placeholder columns `SCOPE` and `TTL`; `expand` puts a Schema's own in. */
22
+ export interface Rules {
23
+ readonly caller: readonly Term[];
24
+ readonly trusted: readonly Term[];
25
+ /** An insert's columns the policy fills; `newId` is `newId` below. */
26
+ readonly fills: readonly (readonly [column: string, value: Recipe | "newId"])[];
27
+ /** An update's sets beyond the author's columns; `bump` is `column + 1`. */
28
+ readonly sets: readonly (readonly [column: string, value: Recipe | "bump"])[];
29
+ readonly lock: Term;
30
+ /** Core's new entry id as the dialect prints it (an SQL expression). */
31
+ readonly newId: string;
32
+ }
33
+ /** What a Schema adds to the rules. The table is the collection's name. */
34
+ export interface Fact {
35
+ readonly u?: readonly Extract<Term, readonly [string, 'in', ...unknown[]]>[];
36
+ /** The scope column. */
37
+ readonly s?: string;
38
+ /** The TTL column and its seconds. */
39
+ readonly ttl?: readonly [column: string, seconds: number];
40
+ /** Opt-in publishing lifecycle. */
41
+ readonly pub?: 1;
42
+ /** Declared date-time and date columns (`created_at` and `updated_at` are always date-times). */
43
+ readonly ts?: readonly string[];
44
+ readonly d?: readonly string[];
45
+ /** Declared searchable text fields; omitted collections search id only. */
46
+ readonly search?: readonly string[];
47
+ /** `x-mantle-ref` columns to a scoped Schema (Core's `refChecks`): a caller's write names a row it sees, in the child's partition. */
48
+ readonly ref?: readonly {
49
+ readonly column: string;
50
+ readonly table: string;
51
+ readonly field: string;
52
+ readonly same: readonly (readonly [parent: string, child: string])[];
53
+ readonly terms: readonly Term[];
54
+ }[];
55
+ /** Generated parent policy and inherited read-only columns; no authored schema is interpreted. */
56
+ readonly parent?: {
57
+ readonly on: string;
58
+ readonly scope?: readonly [parent: string, child: string];
59
+ readonly visible: Term;
60
+ readonly table: string;
61
+ readonly caller: readonly Term[];
62
+ readonly trusted: readonly Term[];
63
+ readonly fields: readonly string[];
64
+ readonly ts: readonly string[];
65
+ readonly d: readonly string[];
66
+ };
67
+ }
68
+ export declare const SCOPE = "$scope", TTL = "$ttl";
69
+ /** A Schema's rules: the shared ones with its scope and TTL put in, and a term dropped where it has none. The generator proves this equals Core's for every Schema. */
70
+ export declare function expand(r: Rules, f: Fact): {
71
+ caller: Term[];
72
+ trusted: Term[];
73
+ fills: (readonly [column: string, value: Recipe | "newId"])[];
74
+ sets: (readonly [column: string, value: Recipe | "bump"])[];
75
+ lock: Term;
76
+ };
77
+ export declare function renderTerm(d: Pick<Dialect, "ident" | 'anyOf'>, t: Term, prefix: string, placeholder: string | ((recipe: Recipe) => string)): string;
78
+ export interface Driver<H> {
79
+ read(db: H, sql: string, binds: unknown[]): unknown[] | PromiseLike<unknown[]>;
80
+ procedure(db: H, steps: readonly Bound[], path: string): Promise<Row[][]>;
81
+ transaction?<R>(db: H, fn: (tx: H) => Promise<R>, options?: TransactionOptions): Promise<R>;
82
+ }
83
+ /** What the generator knows of a collection: its row, its filterable columns, its writable columns, which of those an insert must give, and the NOT NULL indexed columns `orderBy` may name. */
84
+ export interface Table {
85
+ readonly row: object;
86
+ readonly fields: object;
87
+ readonly set: object;
88
+ readonly required: string;
89
+ readonly order: string;
90
+ readonly insert?: object;
91
+ }
92
+ type RowOf<T extends Table> = Readonly<T["row"]>;
93
+ type InsertFields<T extends Table> = T extends {
94
+ readonly insert: object;
95
+ } ? T['insert'] : T['set'];
96
+ type Insert<T extends Table> = Readonly<Pick<InsertFields<T>, Extract<T["required"], keyof InsertFields<T>>> & Partial<InsertFields<T>>>;
97
+ export type Operators<T> = {
98
+ readonly eq?: T | null;
99
+ readonly ne?: T | null;
100
+ readonly gt?: T;
101
+ readonly gte?: T;
102
+ readonly lt?: T;
103
+ readonly lte?: T;
104
+ readonly in?: readonly T[];
105
+ readonly notIn?: readonly T[];
106
+ readonly like?: string;
107
+ readonly isNull?: boolean;
108
+ };
109
+ /** Conditions are ANDed; a bare value is `eq` (null is IS NULL). */
110
+ export type Where<F> = {
111
+ readonly [K in keyof F]?: F[K] | null | Operators<F[K]>;
112
+ };
113
+ export interface Page<R> {
114
+ readonly rows: R[]; /** Pass back as `cursor` for the next page; null on the last. */
115
+ readonly cursor: string | null;
116
+ }
117
+ export interface Query<F, O extends string> {
118
+ readonly where?: Where<F>;
119
+ readonly search?: string;
120
+ readonly orderBy?: O;
121
+ readonly order?: "asc" | "desc";
122
+ readonly limit?: number;
123
+ readonly cursor?: string;
124
+ }
125
+ export interface Collection<T extends Table> {
126
+ findById(id: string): Promise<RowOf<T> | null>;
127
+ find(query?: Query<T["fields"], T["order"]>): Promise<Page<RowOf<T>>>;
128
+ first(query?: Omit<Query<T["fields"], T["order"]>, "limit" | "cursor">): Promise<RowOf<T> | null>;
129
+ count(where?: Where<T["fields"]>): Promise<number>;
130
+ /** The new row: the writable columns, with scope, author, clock and id filled by the row rules. An anonymous caller cannot insert into a scoped Schema. */
131
+ insert(values: Insert<T>): Write<RowOf<T>>;
132
+ /** Writes only the columns given. `lock` is the version the caller read; a different one (or a row the caller cannot see) is CONFLICT, and so is a unique-index clash. Returns the new row. */
133
+ update(id: string, set: Readonly<Partial<T["set"]>>, options: {
134
+ readonly lock: number | string;
135
+ }): Write<RowOf<T>>;
136
+ /** CONFLICT when the version differs or the caller cannot see the row. */
137
+ delete(id: string, options: {
138
+ readonly lock: number | string;
139
+ }): Write<void>;
140
+ }
141
+ /** Lazy, single-execution write: await it (or `.then`/`.catch`/`.finally`, which run it) or submit it once to its Store's batch. */
142
+ export interface Write<T> extends PromiseLike<T> {
143
+ catch<R = never>(onrejected?: ((reason: any) => R | PromiseLike<R>) | null): Promise<T | R>;
144
+ finally(onfinally?: (() => void) | null): Promise<T>;
145
+ }
146
+ export interface TransactionOptions {
147
+ readonly isolation?: "serializable" | "repeatable read" | "read committed" | "read uncommitted";
148
+ }
149
+ export interface Store<T extends Record<string, Table>> {
150
+ collection<K extends keyof T & string>(name: K): Collection<T[K]>;
151
+ batch<const W extends readonly Write<unknown>[]>(writes: W): Promise<{
152
+ -readonly [K in keyof W]: Awaited<W[K]>;
153
+ }>;
154
+ }
155
+ type Operations<H> = Record<string, Record<string, (db: H, caller: Caller, input: any, context: any) => Promise<any>>>;
156
+ type BoundOperations<O> = {
157
+ [K in keyof O]: {
158
+ [N in keyof O[K]]: O[K][N] extends (db: any, caller: Caller, input: infer I, ...args: any[]) => infer R ? (input: I) => R : never;
159
+ };
160
+ };
161
+ type Tx<T extends Record<string, Table>, O> = Pick<Store<T>, "collection"> & BoundOperations<O>;
162
+ type Interactive<T extends Record<string, Table>, O> = {
163
+ transaction<R>(fn: (tx: Tx<T, O>) => Promise<R>, options?: TransactionOptions): Promise<R>;
164
+ };
165
+ /**
166
+ * A ref handler's `ctx.transaction` on drivers with interactive transactions: it opens one on the handler's Store, or
167
+ * joins the one that Store already runs in (a handler called through `tx.procedures`), so the handler need not know.
168
+ */
169
+ export declare function handlerTransaction(store: object, db: unknown): <R>(fn: (ctx: {
170
+ store: any;
171
+ db: any;
172
+ }) => Promise<R>) => Promise<R>;
173
+ export declare function createStore<H, T extends Record<string, Table>, D extends Driver<H> = Driver<H>, O extends Operations<H> = {}, C extends object = never>(d: Dialect, drv: D, rules: Rules, facts: {
174
+ readonly [K in keyof T]: Fact;
175
+ }, operations?: O): (db: H, caller: Caller, ...options: [C] extends [never] ? [] : [options: C]) => Store<T> & BoundOperations<O> & (D extends Required<Pick<Driver<H>, "transaction">> ? Interactive<T, O> : {});