@aotter/mantle 0.2.0-alpha.6 → 0.2.0-alpha.8

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 (946) hide show
  1. package/README.md +157 -45
  2. package/dist/auth/adapter.d.ts +32 -0
  3. package/dist/auth/adapter.js +285 -0
  4. package/dist/auth/admin.d.ts +3 -0
  5. package/dist/auth/admin.js +21 -0
  6. package/dist/auth/caller.d.ts +86 -0
  7. package/dist/auth/caller.js +155 -0
  8. package/dist/auth/hardening.d.ts +24 -0
  9. package/dist/auth/hardening.js +40 -0
  10. package/dist/auth/identity.d.ts +121 -0
  11. package/dist/auth/identity.js +203 -0
  12. package/dist/auth/oauth.d.ts +63 -0
  13. package/dist/auth/oauth.js +217 -0
  14. package/dist/auth/resource-seeds.js +10 -0
  15. package/dist/auth/routes.d.ts +32 -0
  16. package/dist/auth/routes.js +225 -0
  17. package/dist/build/compiler.d.ts +712 -0
  18. package/dist/build/compiler.js +6896 -0
  19. package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +30 -47
  20. package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
  21. package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +37 -6
  22. package/dist/build/spec/domain/model/UserFields.d.ts +20 -0
  23. package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +4 -1
  24. package/dist/{spec → build/spec}/kernel/diagnostic.d.ts +1 -30
  25. package/dist/bun/assets.d.ts +2 -0
  26. package/dist/bun/assets.js +24 -0
  27. package/dist/domain/adminOrder.js +24 -0
  28. package/dist/domain/columns.js +55 -0
  29. package/dist/domain/describe/chunk-ZVXBGP7Y.js +424 -0
  30. package/dist/domain/describe/index.d.ts +58 -0
  31. package/dist/domain/describe/index.js +115 -0
  32. package/dist/domain/describe/target-hash.d.ts +8 -0
  33. package/dist/domain/describe/target-hash.js +12 -0
  34. package/dist/domain/describe/targets.d.ts +40 -0
  35. package/dist/domain/entry.js +33 -0
  36. package/dist/domain/generated-tools.js +19 -0
  37. package/dist/domain/generation.d.ts +16 -0
  38. package/dist/domain/generation.js +1 -0
  39. package/dist/domain/input.js +17 -0
  40. package/dist/domain/model.js +1 -0
  41. package/dist/domain/paging.js +230 -0
  42. package/dist/domain/recipes.js +19 -0
  43. package/dist/domain/userReferences.js +5 -0
  44. package/dist/domain/wireScalars.js +47 -0
  45. package/dist/infrastructure/adminEntries.js +153 -0
  46. package/dist/infrastructure/adminPaging.js +72 -0
  47. package/dist/infrastructure/artifacts.js +71 -0
  48. package/dist/infrastructure/authSchema.js +83 -0
  49. package/dist/infrastructure/bundle.js +174 -0
  50. package/dist/infrastructure/cli.js +97 -0
  51. package/dist/infrastructure/generate.d.ts +12 -0
  52. package/dist/infrastructure/generate.js +174 -0
  53. package/dist/infrastructure/generateAuth.d.ts +8 -0
  54. package/dist/infrastructure/generateAuth.js +23 -0
  55. package/dist/infrastructure/inputs.js +41 -0
  56. package/dist/infrastructure/wrangler.js +94 -0
  57. package/dist/kernel/authorization.d.ts +4 -0
  58. package/dist/kernel/authorization.js +16 -0
  59. package/dist/kernel/binds.d.ts +51 -0
  60. package/dist/kernel/binds.js +45 -0
  61. package/dist/kernel/caller-identity.d.ts +24 -0
  62. package/dist/kernel/caller-identity.js +22 -0
  63. package/dist/kernel/contract-error.d.ts +12 -0
  64. package/dist/kernel/contract-error.js +14 -0
  65. package/dist/kernel/contracts.d.ts +139 -0
  66. package/dist/kernel/contracts.js +92 -0
  67. package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
  68. package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +1 -6
  69. package/dist/kernel/dialect/common.d.ts +39 -0
  70. package/dist/kernel/dialect/common.js +6 -0
  71. package/dist/kernel/dialect/postgres.d.ts +16 -0
  72. package/dist/kernel/dialect/postgres.js +18 -0
  73. package/dist/kernel/dialect/sqlite.d.ts +20 -0
  74. package/dist/kernel/dialect/sqlite.js +34 -0
  75. package/dist/kernel/drain.d.ts +5 -0
  76. package/dist/kernel/drain.js +35 -0
  77. package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
  78. package/dist/kernel/driver/bun-sqlite.js +77 -0
  79. package/dist/kernel/driver/d1.d.ts +24 -0
  80. package/dist/kernel/driver/d1.js +22 -0
  81. package/dist/kernel/driver/postgres.d.ts +25 -0
  82. package/dist/kernel/driver/postgres.js +98 -0
  83. package/dist/kernel/driver/transaction-context.d.ts +10 -0
  84. package/dist/kernel/driver/transaction-context.js +29 -0
  85. package/dist/kernel/email.d.ts +28 -0
  86. package/dist/{auth/emailTemplates.js → kernel/email.js} +13 -2
  87. package/dist/kernel/host-access.d.ts +10 -0
  88. package/dist/kernel/host-access.js +65 -0
  89. package/dist/kernel/host-caller.d.ts +39 -0
  90. package/dist/kernel/host-caller.js +56 -0
  91. package/dist/kernel/json-body.d.ts +4 -0
  92. package/dist/kernel/json-body.js +44 -0
  93. package/dist/kernel/mcp-apps.d.ts +69 -0
  94. package/dist/kernel/mcp-apps.js +40 -0
  95. package/dist/kernel/mcp-call.d.ts +5 -0
  96. package/dist/kernel/mcp-call.js +25 -0
  97. package/dist/kernel/mcp-handler.js +371 -0
  98. package/dist/kernel/mcp.d.ts +106 -0
  99. package/dist/kernel/mcp.js +49 -0
  100. package/dist/kernel/media.d.ts +27 -0
  101. package/dist/kernel/media.js +216 -0
  102. package/dist/kernel/paging.d.ts +55 -0
  103. package/dist/kernel/paging.js +95 -0
  104. package/dist/kernel/publishing.d.ts +4 -0
  105. package/dist/kernel/publishing.js +16 -0
  106. package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
  107. package/dist/kernel/r2-media.js +78 -0
  108. package/dist/kernel/rest-dispatch.js +38 -0
  109. package/dist/kernel/rest-router.js +64 -0
  110. package/dist/kernel/rest.d.ts +58 -0
  111. package/dist/kernel/rest.js +41 -0
  112. package/dist/kernel/scalars.d.ts +6 -0
  113. package/dist/kernel/scalars.js +43 -0
  114. package/dist/kernel/search.js +5 -0
  115. package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
  116. package/dist/kernel/site-types.js +1 -0
  117. package/dist/kernel/site.d.ts +39 -0
  118. package/dist/kernel/site.js +32 -0
  119. package/dist/kernel/store.d.ts +165 -0
  120. package/dist/kernel/store.js +257 -0
  121. package/dist/kernel/surface.d.ts +10 -0
  122. package/dist/kernel/surface.js +19 -0
  123. package/dist/kernel/sweep.d.ts +17 -0
  124. package/dist/kernel/sweep.js +27 -0
  125. package/dist/kernel/translations.d.ts +1 -0
  126. package/dist/kernel/translations.js +13 -0
  127. package/dist/kernel/user-caller.d.ts +31 -0
  128. package/dist/kernel/user-caller.js +67 -0
  129. package/dist/kernel/user-field-name.js +3 -0
  130. package/dist/kernel/user-fields.d.ts +34 -0
  131. package/dist/kernel/user-fields.js +71 -0
  132. package/dist/kernel/validation.d.ts +15 -0
  133. package/dist/kernel/validation.js +54 -0
  134. package/dist/kernel/web-gateway.js +68 -0
  135. package/dist/kernel/web-head.js +15 -0
  136. package/dist/kernel/web-response.js +8 -0
  137. package/dist/kernel/web.d.ts +77 -0
  138. package/dist/kernel/web.js +158 -0
  139. package/dist/kernel/where.js +27 -0
  140. package/dist/testing/index.d.ts +1 -37
  141. package/dist/testing/index.js +1 -43
  142. package/dist/usecase/adminBindings.js +141 -0
  143. package/dist/usecase/adminClient.js +87 -0
  144. package/dist/usecase/adminDescriptors.js +107 -0
  145. package/dist/usecase/generate.js +165 -0
  146. package/dist/usecase/handlers.js +21 -0
  147. package/dist/usecase/mcp-media.js +17 -0
  148. package/dist/usecase/mcp.js +100 -0
  149. package/dist/usecase/paging.js +71 -0
  150. package/dist/usecase/publishing.js +63 -0
  151. package/dist/usecase/refusals.js +27 -0
  152. package/dist/usecase/rest.js +54 -0
  153. package/dist/usecase/search.js +7 -0
  154. package/dist/usecase/site.js +40 -0
  155. package/dist/usecase/stores.js +62 -0
  156. package/dist/usecase/tool-version.js +9 -0
  157. package/dist/usecase/translations.js +78 -0
  158. package/dist/usecase/ttl.js +20 -0
  159. package/dist/usecase/validation.js +233 -0
  160. package/dist/usecase/web.js +23 -0
  161. package/docs/examples/README.md +31 -16
  162. package/docs/examples/app-shell/README.md +86 -0
  163. package/docs/examples/app-shell/package.json +42 -0
  164. package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
  165. package/docs/examples/app-shell/smoke-kit.mjs +154 -0
  166. package/docs/examples/app-shell/src/auth.ts +57 -0
  167. package/docs/examples/app-shell/src/handlers.ts +5 -0
  168. package/docs/examples/app-shell/src/index.ts +4 -0
  169. package/docs/examples/app-shell/src/routes.ts +13 -0
  170. package/docs/examples/app-shell/src/schedule.ts +8 -0
  171. package/docs/examples/app-shell/src/service.ts +70 -0
  172. package/docs/examples/app-shell/src/sign-in.ts +41 -0
  173. package/docs/examples/app-shell/src/signup.ts +8 -0
  174. package/docs/examples/{reference-service → app-shell}/tsconfig.json +6 -2
  175. package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
  176. package/docs/examples/app-shell/wrangler.jsonc +62 -0
  177. package/docs/examples/club-events/README.md +60 -0
  178. package/docs/examples/club-events/manifests/club-events.yaml +225 -0
  179. package/docs/examples/club-events/smoke.mjs +121 -0
  180. package/docs/examples/club-events/src/handlers.ts +25 -0
  181. package/docs/examples/club-events/src/signup.ts +9 -0
  182. package/docs/examples/generated-web/README.md +78 -0
  183. package/docs/examples/generated-web/posts.yaml +38 -0
  184. package/docs/examples/generated-web/seed.sql +6 -0
  185. package/docs/examples/generated-web/src/worker.ts +43 -0
  186. package/docs/examples/generated-web/tsconfig.json +8 -0
  187. package/docs/examples/generated-web/wrangler.jsonc +8 -0
  188. package/docs/examples/purchasing/.dev.vars.example +6 -0
  189. package/docs/examples/purchasing/README.md +90 -0
  190. package/docs/examples/purchasing/manifests/purchasing.yaml +341 -0
  191. package/docs/examples/purchasing/seed.sql +4 -0
  192. package/docs/examples/purchasing/smoke.mjs +177 -0
  193. package/docs/examples/purchasing/src/admin.tsx +13 -0
  194. package/docs/examples/purchasing/src/handlers.ts +33 -0
  195. package/docs/examples/purchasing/src/notify.ts +29 -0
  196. package/docs/examples/purchasing/src/requests-page.ts +57 -0
  197. package/docs/examples/purchasing/src/routes.ts +53 -0
  198. package/docs/examples/purchasing/src/schedule.ts +31 -0
  199. package/docs/examples/purchasing/src/signup.ts +5 -0
  200. package/docs/examples/purchasing/src/supplier.ts +32 -0
  201. package/docs/examples/purchasing/wrangler.jsonc +69 -0
  202. package/docs/examples/recipes/README.md +58 -0
  203. package/docs/examples/recipes/manifests/recipes.yaml +75 -0
  204. package/docs/examples/recipes/smoke.mjs +102 -0
  205. package/docs/examples/recipes/src/media.ts +13 -0
  206. package/docs/examples/recipes/src/pages.ts +99 -0
  207. package/docs/examples/recipes/src/routes.ts +71 -0
  208. package/docs/examples/recipes/src/site-config.ts +12 -0
  209. package/docs/examples/recipes/wrangler.jsonc +74 -0
  210. package/docs/handbook/cloudflare/authentication.md +164 -214
  211. package/docs/handbook/cloudflare/chatgpt-sites.md +4 -113
  212. package/docs/handbook/cloudflare/deploy-and-operate.md +38 -103
  213. package/docs/handbook/cloudflare/media-r2.md +62 -133
  214. package/docs/handbook/cloudflare/service-entry.md +210 -119
  215. package/docs/handbook/concepts/authorization.md +10 -123
  216. package/docs/handbook/concepts/four-atoms.md +9 -92
  217. package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
  218. package/docs/handbook/concepts/mcp-and-agents.md +24 -136
  219. package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
  220. package/docs/handbook/concepts/runtime-and-adapters.md +15 -224
  221. package/docs/handbook/concepts/views.md +10 -109
  222. package/docs/handbook/examples/hub.md +2 -18
  223. package/docs/handbook/guides/adapter-guide.md +11 -0
  224. package/docs/handbook/guides/admin-ui.md +111 -164
  225. package/docs/handbook/guides/agent-setup.md +32 -27
  226. package/docs/handbook/guides/email.md +86 -0
  227. package/docs/handbook/guides/mcp-apps.md +483 -0
  228. package/docs/handbook/guides/native-admin.md +543 -0
  229. package/docs/handbook/guides/native-execution.md +132 -0
  230. package/docs/handbook/guides/oauth.md +161 -0
  231. package/docs/handbook/guides/postgres-adapters.md +56 -0
  232. package/docs/handbook/guides/public-pages.md +53 -0
  233. package/docs/handbook/guides/size-and-startup.md +9 -0
  234. package/docs/handbook/guides/typed-queries.md +39 -102
  235. package/docs/handbook/navigation.json +160 -31
  236. package/docs/handbook/reference/admin-descriptors.md +53 -0
  237. package/docs/handbook/reference/authorization.md +44 -52
  238. package/docs/handbook/reference/describe.md +56 -0
  239. package/docs/handbook/reference/diagnostics.md +15 -79
  240. package/docs/handbook/reference/features.md +45 -53
  241. package/docs/handbook/reference/manifest.md +6 -69
  242. package/docs/handbook/reference/procedure.md +11 -116
  243. package/docs/handbook/reference/schema.md +85 -185
  244. package/docs/handbook/reference/site-config.md +5 -65
  245. package/docs/handbook/reference/surface.md +389 -97
  246. package/docs/handbook/reference/trigger.md +54 -90
  247. package/docs/handbook/reference/view.md +32 -160
  248. package/docs/handbook/releases/index.md +120 -13
  249. package/docs/handbook/start/overview.md +9 -56
  250. package/docs/handbook/start/project-and-cli.md +40 -149
  251. package/docs/handbook/start/quickstart-worker.md +38 -116
  252. package/docs/skills/develop/SKILL.md +35 -123
  253. package/docs/skills/develop/mcp-app.md +37 -77
  254. package/docs/skills/integrate/SKILL.md +42 -84
  255. package/docs/skills/media-gc/SKILL.md +21 -8
  256. package/docs/skills/provision/SKILL.md +28 -91
  257. package/docs/skills/update/SKILL.md +19 -43
  258. package/docs/source/scripts/postgres-adapter.ts +101 -0
  259. package/docs/upgrade-0.1-to-0.2.md +25 -9
  260. package/package.json +97 -112
  261. package/skills/.keep +0 -0
  262. package/skills/README.md +67 -0
  263. package/skills/mantle/SKILL.md +135 -0
  264. package/skills/mantle/references/local-testing.md +15 -0
  265. package/skills/mantle/references/web.md +41 -0
  266. package/skills/mantle/references/website.md +49 -0
  267. package/dist/admin/consent.d.ts +0 -17
  268. package/dist/admin/consent.d.ts.map +0 -1
  269. package/dist/admin/consent.js +0 -17
  270. package/dist/admin/consent.js.map +0 -1
  271. package/dist/admin/createAdminSurface.d.ts +0 -25
  272. package/dist/admin/createAdminSurface.d.ts.map +0 -1
  273. package/dist/admin/createAdminSurface.js +0 -635
  274. package/dist/admin/createAdminSurface.js.map +0 -1
  275. package/dist/admin/design.d.ts +0 -7
  276. package/dist/admin/design.d.ts.map +0 -1
  277. package/dist/admin/design.js +0 -18
  278. package/dist/admin/design.js.map +0 -1
  279. package/dist/admin/developerConsole.d.ts +0 -267
  280. package/dist/admin/developerConsole.d.ts.map +0 -1
  281. package/dist/admin/developerConsole.js +0 -136
  282. package/dist/admin/developerConsole.js.map +0 -1
  283. package/dist/admin/extensions.d.ts +0 -290
  284. package/dist/admin/extensions.d.ts.map +0 -1
  285. package/dist/admin/extensions.js +0 -532
  286. package/dist/admin/extensions.js.map +0 -1
  287. package/dist/admin/identity.d.ts +0 -62
  288. package/dist/admin/identity.d.ts.map +0 -1
  289. package/dist/admin/identity.js +0 -7
  290. package/dist/admin/identity.js.map +0 -1
  291. package/dist/admin/index.d.ts +0 -7
  292. package/dist/admin/index.d.ts.map +0 -1
  293. package/dist/admin/index.js +0 -7
  294. package/dist/admin/index.js.map +0 -1
  295. package/dist/admin/procedureFlow.d.ts +0 -38
  296. package/dist/admin/procedureFlow.d.ts.map +0 -1
  297. package/dist/admin/procedureFlow.js +0 -188
  298. package/dist/admin/procedureFlow.js.map +0 -1
  299. package/dist/auth/ConsoleEmailSender.d.ts +0 -15
  300. package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
  301. package/dist/auth/ConsoleEmailSender.js +0 -19
  302. package/dist/auth/ConsoleEmailSender.js.map +0 -1
  303. package/dist/auth/appleClientSecret.d.ts +0 -75
  304. package/dist/auth/appleClientSecret.d.ts.map +0 -1
  305. package/dist/auth/appleClientSecret.js +0 -116
  306. package/dist/auth/appleClientSecret.js.map +0 -1
  307. package/dist/auth/buildAuth.d.ts +0 -4568
  308. package/dist/auth/buildAuth.d.ts.map +0 -1
  309. package/dist/auth/buildAuth.js +0 -312
  310. package/dist/auth/buildAuth.js.map +0 -1
  311. package/dist/auth/callerResolver.d.ts +0 -52
  312. package/dist/auth/callerResolver.d.ts.map +0 -1
  313. package/dist/auth/callerResolver.js +0 -52
  314. package/dist/auth/callerResolver.js.map +0 -1
  315. package/dist/auth/createAuthRoutes.d.ts +0 -22
  316. package/dist/auth/createAuthRoutes.d.ts.map +0 -1
  317. package/dist/auth/createAuthRoutes.js +0 -129
  318. package/dist/auth/createAuthRoutes.js.map +0 -1
  319. package/dist/auth/createMantleAuth.d.ts +0 -3
  320. package/dist/auth/createMantleAuth.d.ts.map +0 -1
  321. package/dist/auth/createMantleAuth.js +0 -504
  322. package/dist/auth/createMantleAuth.js.map +0 -1
  323. package/dist/auth/db.d.ts +0 -18
  324. package/dist/auth/db.d.ts.map +0 -1
  325. package/dist/auth/db.js +0 -27
  326. package/dist/auth/db.js.map +0 -1
  327. package/dist/auth/emailTemplates.d.ts +0 -7
  328. package/dist/auth/emailTemplates.d.ts.map +0 -1
  329. package/dist/auth/emailTemplates.js.map +0 -1
  330. package/dist/auth/index.d.ts +0 -9
  331. package/dist/auth/index.d.ts.map +0 -1
  332. package/dist/auth/index.js +0 -7
  333. package/dist/auth/index.js.map +0 -1
  334. package/dist/auth/methods.d.ts +0 -717
  335. package/dist/auth/methods.d.ts.map +0 -1
  336. package/dist/auth/methods.js +0 -321
  337. package/dist/auth/methods.js.map +0 -1
  338. package/dist/auth/oauthTokens.d.ts +0 -24
  339. package/dist/auth/oauthTokens.d.ts.map +0 -1
  340. package/dist/auth/oauthTokens.js +0 -146
  341. package/dist/auth/oauthTokens.js.map +0 -1
  342. package/dist/auth/setupIncomplete.d.ts +0 -16
  343. package/dist/auth/setupIncomplete.d.ts.map +0 -1
  344. package/dist/auth/setupIncomplete.js +0 -50
  345. package/dist/auth/setupIncomplete.js.map +0 -1
  346. package/dist/auth/types.d.ts +0 -440
  347. package/dist/auth/types.d.ts.map +0 -1
  348. package/dist/auth/types.js +0 -10
  349. package/dist/auth/types.js.map +0 -1
  350. package/dist/bun/index.d.ts +0 -21
  351. package/dist/bun/index.d.ts.map +0 -1
  352. package/dist/bun/index.js +0 -46
  353. package/dist/bun/index.js.map +0 -1
  354. package/dist/cli/emitModule.d.ts +0 -7
  355. package/dist/cli/emitModule.d.ts.map +0 -1
  356. package/dist/cli/emitModule.js +0 -127
  357. package/dist/cli/emitModule.js.map +0 -1
  358. package/dist/cli/generate.d.ts +0 -8
  359. package/dist/cli/generate.d.ts.map +0 -1
  360. package/dist/cli/generate.js +0 -391
  361. package/dist/cli/generate.js.map +0 -1
  362. package/dist/cli/main.d.ts +0 -3
  363. package/dist/cli/main.d.ts.map +0 -1
  364. package/dist/cli/main.js +0 -21
  365. package/dist/cli/main.js.map +0 -1
  366. package/dist/cli/preset.d.ts +0 -18
  367. package/dist/cli/preset.d.ts.map +0 -1
  368. package/dist/cli/preset.js +0 -405
  369. package/dist/cli/preset.js.map +0 -1
  370. package/dist/cloudflare/index.d.ts +0 -25
  371. package/dist/cloudflare/index.d.ts.map +0 -1
  372. package/dist/cloudflare/index.js +0 -16
  373. package/dist/cloudflare/index.js.map +0 -1
  374. package/dist/cloudflare/r2Media.d.ts.map +0 -1
  375. package/dist/cloudflare/r2Media.js +0 -69
  376. package/dist/cloudflare/r2Media.js.map +0 -1
  377. package/dist/core/caller.d.ts +0 -35
  378. package/dist/core/caller.d.ts.map +0 -1
  379. package/dist/core/caller.js +0 -3
  380. package/dist/core/caller.js.map +0 -1
  381. package/dist/core/createMantle.d.ts +0 -22
  382. package/dist/core/createMantle.d.ts.map +0 -1
  383. package/dist/core/createMantle.js +0 -117
  384. package/dist/core/createMantle.js.map +0 -1
  385. package/dist/core/dialect.d.ts +0 -53
  386. package/dist/core/dialect.d.ts.map +0 -1
  387. package/dist/core/dialect.js +0 -7
  388. package/dist/core/dialect.js.map +0 -1
  389. package/dist/core/driver.d.ts +0 -24
  390. package/dist/core/driver.d.ts.map +0 -1
  391. package/dist/core/driver.js +0 -2
  392. package/dist/core/driver.js.map +0 -1
  393. package/dist/core/email.d.ts +0 -17
  394. package/dist/core/email.d.ts.map +0 -1
  395. package/dist/core/email.js +0 -2
  396. package/dist/core/email.js.map +0 -1
  397. package/dist/core/index.d.ts +0 -16
  398. package/dist/core/index.d.ts.map +0 -1
  399. package/dist/core/index.js +0 -16
  400. package/dist/core/index.js.map +0 -1
  401. package/dist/core/invocation.d.ts +0 -66
  402. package/dist/core/invocation.d.ts.map +0 -1
  403. package/dist/core/invocation.js +0 -3
  404. package/dist/core/invocation.js.map +0 -1
  405. package/dist/core/observation.d.ts +0 -3
  406. package/dist/core/observation.d.ts.map +0 -1
  407. package/dist/core/observation.js +0 -10
  408. package/dist/core/observation.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/sessionUser.d.ts +0 -14
  426. package/dist/core/sessionUser.d.ts.map +0 -1
  427. package/dist/core/sessionUser.js +0 -4
  428. package/dist/core/sessionUser.js.map +0 -1
  429. package/dist/core/site.d.ts.map +0 -1
  430. package/dist/core/site.js +0 -2
  431. package/dist/core/site.js.map +0 -1
  432. package/dist/core/siteConfig.d.ts +0 -5
  433. package/dist/core/siteConfig.d.ts.map +0 -1
  434. package/dist/core/siteConfig.js +0 -24
  435. package/dist/core/siteConfig.js.map +0 -1
  436. package/dist/core/sql/allowlist.d.ts +0 -67
  437. package/dist/core/sql/allowlist.d.ts.map +0 -1
  438. package/dist/core/sql/allowlist.js +0 -737
  439. package/dist/core/sql/allowlist.js.map +0 -1
  440. package/dist/core/sql/ast.d.ts +0 -24
  441. package/dist/core/sql/ast.d.ts.map +0 -1
  442. package/dist/core/sql/ast.js +0 -32
  443. package/dist/core/sql/ast.js.map +0 -1
  444. package/dist/core/sql/compile.d.ts +0 -50
  445. package/dist/core/sql/compile.d.ts.map +0 -1
  446. package/dist/core/sql/compile.js +0 -48
  447. package/dist/core/sql/compile.js.map +0 -1
  448. package/dist/core/sql/policy.d.ts +0 -123
  449. package/dist/core/sql/policy.d.ts.map +0 -1
  450. package/dist/core/sql/policy.js +0 -398
  451. package/dist/core/sql/policy.js.map +0 -1
  452. package/dist/core/sql/positions.d.ts +0 -30
  453. package/dist/core/sql/positions.d.ts.map +0 -1
  454. package/dist/core/sql/positions.js +0 -22
  455. package/dist/core/sql/positions.js.map +0 -1
  456. package/dist/core/sql/run.d.ts +0 -68
  457. package/dist/core/sql/run.d.ts.map +0 -1
  458. package/dist/core/sql/run.js +0 -384
  459. package/dist/core/sql/run.js.map +0 -1
  460. package/dist/core/store/createStore.d.ts +0 -49
  461. package/dist/core/store/createStore.d.ts.map +0 -1
  462. package/dist/core/store/createStore.js +0 -227
  463. package/dist/core/store/createStore.js.map +0 -1
  464. package/dist/core/store/cursor.d.ts +0 -4
  465. package/dist/core/store/cursor.d.ts.map +0 -1
  466. package/dist/core/store/cursor.js +0 -22
  467. package/dist/core/store/cursor.js.map +0 -1
  468. package/dist/core/store/json.d.ts +0 -80
  469. package/dist/core/store/json.d.ts.map +0 -1
  470. package/dist/core/store/json.js +0 -342
  471. package/dist/core/store/json.js.map +0 -1
  472. package/dist/core/store.d.ts +0 -160
  473. package/dist/core/store.d.ts.map +0 -1
  474. package/dist/core/store.js +0 -2
  475. package/dist/core/store.js.map +0 -1
  476. package/dist/core/wire.d.ts +0 -20
  477. package/dist/core/wire.d.ts.map +0 -1
  478. package/dist/core/wire.js +0 -84
  479. package/dist/core/wire.js.map +0 -1
  480. package/dist/core/withCaller.d.ts +0 -24
  481. package/dist/core/withCaller.d.ts.map +0 -1
  482. package/dist/core/withCaller.js +0 -35
  483. package/dist/core/withCaller.js.map +0 -1
  484. package/dist/d1/adapter.d.ts +0 -12
  485. package/dist/d1/adapter.d.ts.map +0 -1
  486. package/dist/d1/adapter.js +0 -23
  487. package/dist/d1/adapter.js.map +0 -1
  488. package/dist/d1/codec.d.ts +0 -14
  489. package/dist/d1/codec.d.ts.map +0 -1
  490. package/dist/d1/codec.js +0 -136
  491. package/dist/d1/codec.js.map +0 -1
  492. package/dist/d1/compile/index.d.ts +0 -9
  493. package/dist/d1/compile/index.d.ts.map +0 -1
  494. package/dist/d1/compile/index.js +0 -9
  495. package/dist/d1/compile/index.js.map +0 -1
  496. package/dist/d1/dialect.d.ts +0 -4
  497. package/dist/d1/dialect.d.ts.map +0 -1
  498. package/dist/d1/dialect.js +0 -13
  499. package/dist/d1/dialect.js.map +0 -1
  500. package/dist/d1/executor.d.ts +0 -15
  501. package/dist/d1/executor.d.ts.map +0 -1
  502. package/dist/d1/executor.js +0 -96
  503. package/dist/d1/executor.js.map +0 -1
  504. package/dist/d1/index.d.ts +0 -6
  505. package/dist/d1/index.d.ts.map +0 -1
  506. package/dist/d1/index.js +0 -6
  507. package/dist/d1/index.js.map +0 -1
  508. package/dist/d1/lower.d.ts +0 -8
  509. package/dist/d1/lower.d.ts.map +0 -1
  510. package/dist/d1/lower.js +0 -167
  511. package/dist/d1/lower.js.map +0 -1
  512. package/dist/d1/media.d.ts +0 -5
  513. package/dist/d1/media.d.ts.map +0 -1
  514. package/dist/d1/media.js +0 -157
  515. package/dist/d1/media.js.map +0 -1
  516. package/dist/d1/migrations.d.ts +0 -12
  517. package/dist/d1/migrations.d.ts.map +0 -1
  518. package/dist/d1/migrations.js +0 -111
  519. package/dist/d1/migrations.js.map +0 -1
  520. package/dist/d1/print.d.ts +0 -28
  521. package/dist/d1/print.d.ts.map +0 -1
  522. package/dist/d1/print.js +0 -54
  523. package/dist/d1/print.js.map +0 -1
  524. package/dist/d1/site.d.ts +0 -17
  525. package/dist/d1/site.d.ts.map +0 -1
  526. package/dist/d1/site.js +0 -63
  527. package/dist/d1/site.js.map +0 -1
  528. package/dist/d1/storage.d.ts +0 -34
  529. package/dist/d1/storage.d.ts.map +0 -1
  530. package/dist/d1/storage.js +0 -288
  531. package/dist/d1/storage.js.map +0 -1
  532. package/dist/d1/tz.d.ts +0 -21
  533. package/dist/d1/tz.d.ts.map +0 -1
  534. package/dist/d1/tz.js +0 -54
  535. package/dist/d1/tz.js.map +0 -1
  536. package/dist/d1/validator.d.ts +0 -10
  537. package/dist/d1/validator.d.ts.map +0 -1
  538. package/dist/d1/validator.js +0 -33
  539. package/dist/d1/validator.js.map +0 -1
  540. package/dist/mcp/apps.d.ts +0 -43
  541. package/dist/mcp/apps.d.ts.map +0 -1
  542. package/dist/mcp/apps.js +0 -57
  543. package/dist/mcp/apps.js.map +0 -1
  544. package/dist/mcp/catalog.d.ts +0 -55
  545. package/dist/mcp/catalog.d.ts.map +0 -1
  546. package/dist/mcp/catalog.js +0 -81
  547. package/dist/mcp/catalog.js.map +0 -1
  548. package/dist/mcp/createMcpSurface.d.ts +0 -60
  549. package/dist/mcp/createMcpSurface.d.ts.map +0 -1
  550. package/dist/mcp/createMcpSurface.js +0 -182
  551. package/dist/mcp/createMcpSurface.js.map +0 -1
  552. package/dist/mcp/index.d.ts +0 -4
  553. package/dist/mcp/index.d.ts.map +0 -1
  554. package/dist/mcp/index.js +0 -4
  555. package/dist/mcp/index.js.map +0 -1
  556. package/dist/mcp/media.d.ts +0 -9
  557. package/dist/mcp/media.d.ts.map +0 -1
  558. package/dist/mcp/media.js +0 -33
  559. package/dist/mcp/media.js.map +0 -1
  560. package/dist/postgres/adapter.d.ts +0 -23
  561. package/dist/postgres/adapter.d.ts.map +0 -1
  562. package/dist/postgres/adapter.js +0 -50
  563. package/dist/postgres/adapter.js.map +0 -1
  564. package/dist/postgres/codec.d.ts +0 -13
  565. package/dist/postgres/codec.d.ts.map +0 -1
  566. package/dist/postgres/codec.js +0 -110
  567. package/dist/postgres/codec.js.map +0 -1
  568. package/dist/postgres/compile/index.d.ts +0 -9
  569. package/dist/postgres/compile/index.d.ts.map +0 -1
  570. package/dist/postgres/compile/index.js +0 -9
  571. package/dist/postgres/compile/index.js.map +0 -1
  572. package/dist/postgres/driver.d.ts +0 -109
  573. package/dist/postgres/driver.d.ts.map +0 -1
  574. package/dist/postgres/driver.js +0 -186
  575. package/dist/postgres/driver.js.map +0 -1
  576. package/dist/postgres/executor.d.ts +0 -28
  577. package/dist/postgres/executor.d.ts.map +0 -1
  578. package/dist/postgres/executor.js +0 -96
  579. package/dist/postgres/executor.js.map +0 -1
  580. package/dist/postgres/index.d.ts +0 -8
  581. package/dist/postgres/index.d.ts.map +0 -1
  582. package/dist/postgres/index.js +0 -8
  583. package/dist/postgres/index.js.map +0 -1
  584. package/dist/postgres/lower.d.ts +0 -6
  585. package/dist/postgres/lower.d.ts.map +0 -1
  586. package/dist/postgres/lower.js +0 -152
  587. package/dist/postgres/lower.js.map +0 -1
  588. package/dist/postgres/print.d.ts +0 -11
  589. package/dist/postgres/print.d.ts.map +0 -1
  590. package/dist/postgres/print.js +0 -108
  591. package/dist/postgres/print.js.map +0 -1
  592. package/dist/postgres/session.d.ts +0 -9
  593. package/dist/postgres/session.d.ts.map +0 -1
  594. package/dist/postgres/session.js +0 -111
  595. package/dist/postgres/session.js.map +0 -1
  596. package/dist/postgres/storage.d.ts +0 -32
  597. package/dist/postgres/storage.d.ts.map +0 -1
  598. package/dist/postgres/storage.js +0 -283
  599. package/dist/postgres/storage.js.map +0 -1
  600. package/dist/postgres/validator.d.ts +0 -13
  601. package/dist/postgres/validator.d.ts.map +0 -1
  602. package/dist/postgres/validator.js +0 -53
  603. package/dist/postgres/validator.js.map +0 -1
  604. package/dist/spec/domain/index.d.ts +0 -3
  605. package/dist/spec/domain/index.d.ts.map +0 -1
  606. package/dist/spec/domain/index.js +0 -3
  607. package/dist/spec/domain/index.js.map +0 -1
  608. package/dist/spec/domain/model/ContentState.d.ts +0 -8
  609. package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
  610. package/dist/spec/domain/model/ContentState.js +0 -7
  611. package/dist/spec/domain/model/ContentState.js.map +0 -1
  612. package/dist/spec/domain/model/Entry.d.ts +0 -29
  613. package/dist/spec/domain/model/Entry.d.ts.map +0 -1
  614. package/dist/spec/domain/model/Entry.js +0 -16
  615. package/dist/spec/domain/model/Entry.js.map +0 -1
  616. package/dist/spec/domain/model/Locale.d.ts +0 -30
  617. package/dist/spec/domain/model/Locale.d.ts.map +0 -1
  618. package/dist/spec/domain/model/Locale.js +0 -33
  619. package/dist/spec/domain/model/Locale.js.map +0 -1
  620. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
  621. package/dist/spec/domain/model/ManifestGrammar.js +0 -153
  622. package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
  623. package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
  624. package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
  625. package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
  626. package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
  627. package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
  628. package/dist/spec/domain/model/RuntimePlan.js +0 -4
  629. package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
  630. package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
  631. package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
  632. package/dist/spec/domain/model/SiteConfig.js +0 -13
  633. package/dist/spec/domain/model/SiteConfig.js.map +0 -1
  634. package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
  635. package/dist/spec/domain/model/SqlIr.js +0 -95
  636. package/dist/spec/domain/model/SqlIr.js.map +0 -1
  637. package/dist/spec/domain/model/index.d.ts +0 -14
  638. package/dist/spec/domain/model/index.d.ts.map +0 -1
  639. package/dist/spec/domain/model/index.js +0 -14
  640. package/dist/spec/domain/model/index.js.map +0 -1
  641. package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
  642. package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
  643. package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
  644. package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
  645. package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
  646. package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
  647. package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
  648. package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
  649. package/dist/spec/domain/service/EntryDataValidator.js +0 -88
  650. package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
  651. package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
  652. package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
  653. package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
  654. package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
  655. package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
  656. package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
  657. package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
  658. package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
  659. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
  660. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
  661. package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
  662. package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
  663. package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
  664. package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
  665. package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
  666. package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
  667. package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
  668. package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
  669. package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
  670. package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
  671. package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
  672. package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
  673. package/dist/spec/domain/service/ManifestLinker.js +0 -92
  674. package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
  675. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
  676. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
  677. package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
  678. package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
  679. package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
  680. package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
  681. package/dist/spec/domain/service/ManifestParser.js +0 -203
  682. package/dist/spec/domain/service/ManifestParser.js.map +0 -1
  683. package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
  684. package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
  685. package/dist/spec/domain/service/ManifestPartition.js +0 -19
  686. package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
  687. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
  688. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
  689. package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
  690. package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
  691. package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
  692. package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
  693. package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
  694. package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
  695. package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
  696. package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
  697. package/dist/spec/domain/service/McpToolNaming.js +0 -50
  698. package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
  699. package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
  700. package/dist/spec/domain/service/PlanFingerprint.js +0 -14
  701. package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
  702. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
  703. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
  704. package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
  705. package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
  706. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -44
  707. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
  708. package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -333
  709. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
  710. package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
  711. package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
  712. package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
  713. package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
  714. package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
  715. package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
  716. package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
  717. package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
  718. package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
  719. package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
  720. package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
  721. package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
  722. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
  723. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
  724. package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
  725. package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
  726. package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
  727. package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
  728. package/dist/spec/domain/service/SqlClassify.js +0 -42
  729. package/dist/spec/domain/service/SqlClassify.js.map +0 -1
  730. package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
  731. package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
  732. package/dist/spec/domain/service/SqlRefusal.js +0 -20
  733. package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
  734. package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
  735. package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
  736. package/dist/spec/domain/service/SqlTypes.js +0 -110
  737. package/dist/spec/domain/service/SqlTypes.js.map +0 -1
  738. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
  739. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
  740. package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
  741. package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
  742. package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
  743. package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
  744. package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
  745. package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
  746. package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
  747. package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
  748. package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
  749. package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
  750. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
  751. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
  752. package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
  753. package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
  754. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
  755. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
  756. package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -58
  757. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
  758. package/dist/spec/domain/service/index.d.ts +0 -24
  759. package/dist/spec/domain/service/index.d.ts.map +0 -1
  760. package/dist/spec/domain/service/index.js +0 -24
  761. package/dist/spec/domain/service/index.js.map +0 -1
  762. package/dist/spec/index.d.ts +0 -10
  763. package/dist/spec/index.d.ts.map +0 -1
  764. package/dist/spec/index.js +0 -12
  765. package/dist/spec/index.js.map +0 -1
  766. package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
  767. package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
  768. package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
  769. package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
  770. package/dist/spec/infrastructure/index.d.ts +0 -2
  771. package/dist/spec/infrastructure/index.d.ts.map +0 -1
  772. package/dist/spec/infrastructure/index.js +0 -2
  773. package/dist/spec/infrastructure/index.js.map +0 -1
  774. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
  775. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
  776. package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
  777. package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
  778. package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
  779. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
  780. package/dist/spec/infrastructure/sql/compilePlan.js +0 -287
  781. package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
  782. package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
  783. package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
  784. package/dist/spec/infrastructure/sql/compileSql.js +0 -92
  785. package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
  786. package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
  787. package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
  788. package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
  789. package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
  790. package/dist/spec/infrastructure/sql/index.d.ts +0 -4
  791. package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
  792. package/dist/spec/infrastructure/sql/index.js +0 -4
  793. package/dist/spec/infrastructure/sql/index.js.map +0 -1
  794. package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
  795. package/dist/spec/kernel/diagnostic.js +0 -301
  796. package/dist/spec/kernel/diagnostic.js.map +0 -1
  797. package/dist/spec/kernel/index.d.ts +0 -8
  798. package/dist/spec/kernel/index.d.ts.map +0 -1
  799. package/dist/spec/kernel/index.js +0 -8
  800. package/dist/spec/kernel/index.js.map +0 -1
  801. package/dist/spec/usecase/EmitTypes.d.ts +0 -22
  802. package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
  803. package/dist/spec/usecase/EmitTypes.js +0 -182
  804. package/dist/spec/usecase/EmitTypes.js.map +0 -1
  805. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
  806. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
  807. package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
  808. package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
  809. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
  810. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
  811. package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
  812. package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
  813. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
  814. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
  815. package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
  816. package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
  817. package/dist/spec/usecase/dto/index.d.ts +0 -3
  818. package/dist/spec/usecase/dto/index.d.ts.map +0 -1
  819. package/dist/spec/usecase/dto/index.js +0 -3
  820. package/dist/spec/usecase/dto/index.js.map +0 -1
  821. package/dist/spec/usecase/index.d.ts +0 -10
  822. package/dist/spec/usecase/index.d.ts.map +0 -1
  823. package/dist/spec/usecase/index.js +0 -10
  824. package/dist/spec/usecase/index.js.map +0 -1
  825. package/dist/testing/cases/before-hook.d.ts +0 -4
  826. package/dist/testing/cases/before-hook.d.ts.map +0 -1
  827. package/dist/testing/cases/before-hook.js +0 -71
  828. package/dist/testing/cases/before-hook.js.map +0 -1
  829. package/dist/testing/cases/corpus.d.ts +0 -14
  830. package/dist/testing/cases/corpus.d.ts.map +0 -1
  831. package/dist/testing/cases/corpus.js +0 -93
  832. package/dist/testing/cases/corpus.js.map +0 -1
  833. package/dist/testing/cases/policy.d.ts +0 -87
  834. package/dist/testing/cases/policy.d.ts.map +0 -1
  835. package/dist/testing/cases/policy.js +0 -143
  836. package/dist/testing/cases/policy.js.map +0 -1
  837. package/dist/testing/cases/printer.d.ts +0 -4
  838. package/dist/testing/cases/printer.d.ts.map +0 -1
  839. package/dist/testing/cases/printer.js +0 -34
  840. package/dist/testing/cases/printer.js.map +0 -1
  841. package/dist/testing/cases/report-view.d.ts +0 -5
  842. package/dist/testing/cases/report-view.d.ts.map +0 -1
  843. package/dist/testing/cases/report-view.js +0 -51
  844. package/dist/testing/cases/report-view.js.map +0 -1
  845. package/dist/testing/cases/requisition.d.ts +0 -4
  846. package/dist/testing/cases/requisition.d.ts.map +0 -1
  847. package/dist/testing/cases/requisition.js +0 -38
  848. package/dist/testing/cases/requisition.js.map +0 -1
  849. package/dist/testing/cases/search-places.d.ts +0 -4
  850. package/dist/testing/cases/search-places.d.ts.map +0 -1
  851. package/dist/testing/cases/search-places.js +0 -60
  852. package/dist/testing/cases/search-places.js.map +0 -1
  853. package/dist/testing/cases/stock.d.ts +0 -4
  854. package/dist/testing/cases/stock.d.ts.map +0 -1
  855. package/dist/testing/cases/stock.js +0 -35
  856. package/dist/testing/cases/stock.js.map +0 -1
  857. package/dist/testing/cases/store.d.ts +0 -4
  858. package/dist/testing/cases/store.d.ts.map +0 -1
  859. package/dist/testing/cases/store.js +0 -100
  860. package/dist/testing/cases/store.js.map +0 -1
  861. package/dist/testing/harness.d.ts +0 -94
  862. package/dist/testing/harness.d.ts.map +0 -1
  863. package/dist/testing/harness.js +0 -168
  864. package/dist/testing/harness.js.map +0 -1
  865. package/dist/testing/index.d.ts.map +0 -1
  866. package/dist/testing/index.js.map +0 -1
  867. package/dist/testing/report.d.ts +0 -15
  868. package/dist/testing/report.d.ts.map +0 -1
  869. package/dist/testing/report.js +0 -22
  870. package/dist/testing/report.js.map +0 -1
  871. package/dist/web/createRestSurface.d.ts +0 -7
  872. package/dist/web/createRestSurface.d.ts.map +0 -1
  873. package/dist/web/createRestSurface.js +0 -41
  874. package/dist/web/createRestSurface.js.map +0 -1
  875. package/dist/web/index.d.ts +0 -2
  876. package/dist/web/index.d.ts.map +0 -1
  877. package/dist/web/index.js +0 -2
  878. package/dist/web/index.js.map +0 -1
  879. package/docs/adr/0001-four-atom-manifest-model.md +0 -440
  880. package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
  881. package/docs/adr/0007-ai-as-primary-author.md +0 -473
  882. package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
  883. package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
  884. package/docs/adr/0010-locale-and-translates.md +0 -453
  885. package/docs/adr/0011-adapter-port-spec.md +0 -281
  886. package/docs/adr/0012-views-as-public-rest.md +0 -161
  887. package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
  888. package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -939
  889. package/docs/adr/0016-site-semantic-layer.md +0 -70
  890. package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
  891. package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
  892. package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
  893. package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
  894. package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
  895. package/docs/adr/0022-caller-observed-version-occ.md +0 -212
  896. package/docs/adr/0023-port-failure-contract.md +0 -69
  897. package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
  898. package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
  899. package/docs/adr/0026-progressive-generate.md +0 -36
  900. package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
  901. package/docs/adr/0028-schema-ttl-expiry.md +0 -33
  902. package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
  903. package/docs/adr/0030-store.md +0 -40
  904. package/docs/adr/0031-host-cloud-core-contract.md +0 -102
  905. package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -384
  906. package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
  907. package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
  908. package/docs/adr/0035-sql-dialects.md +0 -154
  909. package/docs/adr/0036-host-and-dialect.md +0 -65
  910. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -125
  911. package/docs/adr/0038-bun-native-host.md +0 -63
  912. package/docs/adr/0039-postgresql-is-native.md +0 -130
  913. package/docs/adr/README.md +0 -98
  914. package/docs/adr/adr-lite-1376-admin-extensions.md +0 -330
  915. package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
  916. package/docs/adr/adr-lite-808-route-readiness.md +0 -47
  917. package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
  918. package/docs/adr/adr-lite-812-native-parity.md +0 -150
  919. package/docs/adr/adr-lite-823-home-statistics.md +0 -64
  920. package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
  921. package/docs/adr/adr-lite-845-frontend-client.md +0 -38
  922. package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
  923. package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
  924. package/docs/examples/commerce-inventory.md +0 -498
  925. package/docs/examples/commerce.md +0 -254
  926. package/docs/examples/guarded-api.md +0 -238
  927. package/docs/examples/intake-hooks.md +0 -237
  928. package/docs/examples/intake.md +0 -127
  929. package/docs/examples/legal-documents.md +0 -218
  930. package/docs/examples/procurement.md +0 -226
  931. package/docs/examples/publication.md +0 -211
  932. package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
  933. package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
  934. package/docs/examples/reference-service/README.md +0 -33
  935. package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
  936. package/docs/examples/reference-service/manifests/orders.yaml +0 -120
  937. package/docs/examples/reference-service/mantle.config.json +0 -1
  938. package/docs/examples/reference-service/package.json +0 -27
  939. package/docs/examples/reference-service/smoke.mjs +0 -160
  940. package/docs/examples/reference-service/src/handlers.ts +0 -36
  941. package/docs/examples/reference-service/src/index.ts +0 -33
  942. package/docs/examples/reference-service/src/service.ts +0 -78
  943. package/docs/examples/reference-service/wrangler.jsonc +0 -26
  944. package/docs/examples/reservation.md +0 -142
  945. package/docs/handbook/guides/admin-extensions.md +0 -191
  946. /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
@@ -1,111 +0,0 @@
1
- /**
2
- * A request is the unit of work (#1379). `requestScoped(connect)` gives one `PgConnect` to every PostgreSQL consumer of a
3
- * service (the Store, Better Auth's `pgPool`, auth's `pgDatabaseDriver`) and a `run` the host wraps each request in: inside
4
- * it, every operation reuses one client, opened by the first and ended when the request ends, as a Worker's socket must be.
5
- * Outside it (boot, a schedule, work that outlives its request) each operation opens its own client, as before.
6
- *
7
- * One operation holds the shared client from its `connect()` to its `end()` (a write from BEGIN to COMMIT), so two never
8
- * interleave inside each other's transaction. One that arrives while it is held opens a client of its own instead of waiting:
9
- * waiting would deadlock a caller that queries outside a transaction it holds open, and a request with no concurrency (the
10
- * common one) still uses a single connection.
11
- */
12
- import { AsyncLocalStorage } from "node:async_hooks";
13
- import { sqlState } from "./driver.js";
14
- // for a client that does not report the protocol's transaction state: what the SQL text says
15
- const BEGINS = /^\s*(BEGIN|START\s+TRANSACTION)\b/i;
16
- const ENDS = /^\s*(COMMIT|ROLLBACK|END|ABORT)\s*(;|$)/i;
17
- const close = (c) => void c?.then((x) => x.end()).catch(() => undefined);
18
- export function requestScoped(connect) {
19
- const als = new AsyncLocalStorage();
20
- const release = (scope, discard) => {
21
- if (discard || !scope.open) {
22
- void scope.detach?.then((off) => off(), () => undefined);
23
- scope.detach = undefined;
24
- close(scope.client);
25
- scope.client = undefined;
26
- }
27
- scope.busy = false;
28
- };
29
- /**
30
- * The shared client for one operation. Its `end()` hands it back; one left in a transaction, by the protocol's own report
31
- * when the driver gives it (node-postgres) or else by the SQL it ran, or with a broken socket, is closed.
32
- */
33
- const lease = (scope, client) => {
34
- let inTx = false;
35
- let broken = false;
36
- let released = false;
37
- const track = (text, p) => {
38
- if (BEGINS.test(text))
39
- inTx = true;
40
- // an answer to COMMIT or ROLLBACK, even an error, ends the transaction; an error with no SQLSTATE is the socket's
41
- p.then(() => { if (ENDS.test(text))
42
- inTx = false; }, (e) => { if (!sqlState(e))
43
- broken = true;
44
- else if (ENDS.test(text))
45
- inTx = false; });
46
- return p;
47
- };
48
- return {
49
- pipeline: client.pipeline,
50
- ...(client.execute ? { execute: (s) => track(s.text, client.execute(s)) } : {}),
51
- query: ((config, values) => track(typeof config === "string" ? config : config.text, client.query(config, values))),
52
- async end() {
53
- if (released)
54
- return;
55
- released = true;
56
- // ponytail: a transaction left open is closed with its client rather than rolled back here, which costs the request a
57
- // reconnect only on a path that already failed
58
- const status = client.getTransactionStatus?.();
59
- release(scope, broken || (status != null ? status !== "I" : inTx));
60
- },
61
- };
62
- };
63
- return {
64
- async connect() {
65
- const scope = als.getStore();
66
- if (!scope?.open || scope.busy)
67
- return connect();
68
- scope.busy = true;
69
- try {
70
- if (!scope.client) {
71
- let off = () => { };
72
- const shared = connect().then((c) => {
73
- // a socket that fails while the client sits idle between operations: the next one opens another, and node-postgres
74
- // does not throw the event for want of a listener
75
- const on = c;
76
- const onError = () => {
77
- if (scope.client === shared)
78
- scope.client = undefined;
79
- off();
80
- void c.end().catch(() => undefined);
81
- };
82
- on.on?.("error", onError);
83
- off = () => void on.off?.("error", onError);
84
- return c;
85
- });
86
- scope.detach = shared.then(() => () => off(), () => () => { }); // a failed connect leaves nothing to detach, and no rejection unhandled
87
- scope.client = shared;
88
- }
89
- return lease(scope, await scope.client);
90
- }
91
- catch (e) {
92
- scope.client = undefined;
93
- scope.busy = false;
94
- throw e;
95
- }
96
- },
97
- async run(fn) {
98
- const scope = { open: true, busy: false };
99
- try {
100
- return await als.run(scope, fn);
101
- }
102
- finally {
103
- scope.open = false;
104
- // not awaited: ending a client waits for the server to close the socket, which the response need not wait for
105
- if (!scope.busy)
106
- release(scope, true);
107
- }
108
- },
109
- };
110
- }
111
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/postgres/session.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import type { StorageSchema } from "../core/dialect.js";
2
- import { type PgConnect } from "./driver.js";
3
- export interface StorageChange {
4
- readonly schema: string;
5
- readonly code: "STORAGE_CHANGE_BLOCKED" | "STORAGE_TABLE_NOT_OWNED" | "STORAGE_UNDECLARED_COLUMN" | "STORAGE_UNDECLARED_INDEX";
6
- readonly message: string;
7
- }
8
- export interface StorageReport {
9
- readonly skipped: boolean;
10
- readonly blocked: readonly StorageChange[];
11
- readonly undeclared: readonly StorageChange[];
12
- }
13
- /** The SQLSTATE `_mantle_expect` raises; the executor reads it as CONFLICT. */
14
- export declare const EXPECT_STATE = "MX409";
15
- /** Constraint name -> "<schema>: <expression>", for the executor's CHECK message. */
16
- export declare function checkMessages(plan: Readonly<Record<string, StorageSchema>>): Map<string, string>;
17
- /**
18
- * Converge storage to the plan. Blocked differences are reported and applied to nothing; a matching fingerprint reads nothing else.
19
- *
20
- * Every isolate of a deploy boots at once, so the work is one transaction under the advisory lock, in READ COMMITTED: a waiter
21
- * wakes to a fresh snapshot, reads the fingerprint again, and finds the winner's work done (a SERIALIZABLE snapshot would predate
22
- * it). The DDL runs under `lock_timeout`: ALTER TABLE queues for ACCESS EXCLUSIVE and every read after it queues behind it, so
23
- * it gives up after `lockTimeoutMs`, rolls back, and tries again, rather than stalling live traffic behind a long query.
24
- */
25
- export declare function convergeStorage(connect: PgConnect, plan: Readonly<Record<string, StorageSchema>>, options: {
26
- fingerprint: string;
27
- booted?: string | null;
28
- lockTimeoutMs?: number;
29
- attempts?: number;
30
- cooldownMs?: number;
31
- }): Promise<StorageReport>;
32
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/postgres/storage.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAkC,KAAK,SAAS,EAAoB,MAAM,aAAa,CAAC;AAI/F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,0BAA0B,CAAC;IAC/H,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;AAQD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,UAAU,CAAC;AA4DpC,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEhG;AAgID;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CA+BzP"}
@@ -1,283 +0,0 @@
1
- /**
2
- * Storage convergence on PostgreSQL (ADR-0033, as D1 applies it): the database is the state, the plan is the target. Safe
3
- * differences are applied in one transaction; blocked ones are reported and never touched; undeclared ones are reported and
4
- * kept. Columns have native types; a Schema check is a CHECK constraint added NOT VALID, so it binds every later write and
5
- * leaves rows that predate it alone, as D1's trigger does.
6
- */
7
- import { checkShapeProblem, storageColumns } from "../spec/domain/index.js";
8
- import { query, sqlState } from "./driver.js";
9
- import { pgType } from "./codec.js";
10
- import { print, typed } from "./print.js";
11
- const q = (id) => `"${id.replace(/"/g, '""')}"`;
12
- /** PostgreSQL truncates a name past 63 bytes; a long one keeps a readable prefix and a hash, so it is still found by name. */
13
- const ident = (n) => (new TextEncoder().encode(n).length <= 63 ? n : `${n.slice(0, 50)}_${fnv(n)}`);
14
- /** FNV-1a, 32 bits, as hex: a stable suffix that needs no crypto module. */
15
- const fnv = (s) => [...s].reduce((h, c) => Math.imul(h ^ c.codePointAt(0), 16777619) >>> 0, 2166136261).toString(16).padStart(8, "0");
16
- /** The SQLSTATE `_mantle_expect` raises; the executor reads it as CONFLICT. */
17
- export const EXPECT_STATE = "MX409";
18
- /**
19
- * Mantle's one function. ADR-0039 removed the SQLite emulations that used to sit beside it (`_mantle_jget`, `_mantle_bool`,
20
- * `_mantle_json_each`); a database booted before keeps them, unreferenced and harmless, and no DROP is issued: an older release
21
- * still running during a rolling deploy calls them, and a dropped function would fail its queries.
22
- */
23
- const FUNCTIONS = [
24
- // a write's `expect`, checked where it ran: a different count fails the statement, and with it the transaction
25
- `CREATE OR REPLACE FUNCTION _mantle_expect(actual int8, expected int8) RETURNS bool LANGUAGE plpgsql VOLATILE AS $f$BEGIN
26
- IF actual <> expected THEN RAISE EXCEPTION USING ERRCODE = '${EXPECT_STATE}', MESSAGE = format('the write matched %s rows, not %s', actual, expected); END IF;
27
- RETURN true;
28
- END$f$`,
29
- ];
30
- const SYSTEM_DDL = [
31
- "CREATE TABLE IF NOT EXISTS _mantle_boot_state (key text PRIMARY KEY, value text NOT NULL)",
32
- "CREATE TABLE IF NOT EXISTS _mantle_schema_tables (name text PRIMARY KEY)",
33
- // the target an `expect` guard inserts into; its HAVING never lets a row through (executor.ts)
34
- "CREATE TABLE IF NOT EXISTS _mantle_assert (ok boolean)",
35
- ];
36
- /** One convergence at a time per database: the others wait, then find the work done. */
37
- const LOCK = { text: "SELECT pg_advisory_xact_lock(4471522036519061)::text AS locked" };
38
- /** Tables the platform creates itself (Better Auth, media, site config); a Schema may not take these names. */
39
- const RESERVED_TABLES = new Set([
40
- "entries", "_migrations", "d1_migrations", "site_config", "user", "session", "account", "verification", "jwks",
41
- "oauthclient", "oauthresource", "oauthclientresource", "oauthrefreshtoken", "oauthaccesstoken", "oauthconsent", "oauthclientassertion",
42
- "media_assets", "pending_media_uploads",
43
- ]);
44
- function columns(s) {
45
- return [
46
- ...(s.scope ? [{ name: s.scope, type: "text", native: true }] : []),
47
- ...(s.publishing ? [{ name: "status", type: "text", native: true }] : []),
48
- ...Object.entries(s.fields).filter(([f]) => f !== s.scope).flatMap(([f, ty]) => ty === "geo" ? [{ name: `${f}_lat`, type: "float8", native: false }, { name: `${f}_lng`, type: "float8", native: false }] : [{ name: f, type: pgType(ty), native: false }]),
49
- ];
50
- }
51
- function indexes(name, s) {
52
- return [
53
- ...(s.unique ?? []).map((u, i) => ({ name: `_mantle_uq_${name}_${i}`, unique: true, columns: s.scope && u[0] !== s.scope ? [s.scope, ...u] : [...u] })),
54
- ...(s.indexes ?? []).map((cols, i) => ({ name: `_mantle_ix_${name}_${i}`, unique: false, columns: [...cols] })),
55
- // Admin's default list order (updated_at descending, then the id tiebreak), served by a backward scan (ADR-0039 decision 2)
56
- // ponytail: every Schema pays this index on UPDATE; a write-hot table that is never listed could opt out once one is measured; a large existing table is better served by CREATE INDEX CONCURRENTLY (outside the convergence transaction) with the same name and columns, which is the upgrade path
57
- { name: `_mantle_ix_${name}_updated`, unique: false, columns: [...(s.scope ? [s.scope] : []), "updated_at", "id"] },
58
- ].map((i) => ({ ...i, name: ident(i.name), sql: `CREATE ${i.unique ? "UNIQUE " : ""}INDEX IF NOT EXISTS ${q(ident(i.name))} ON ${q(name)} (${i.columns.map(q).join(", ")})` }));
59
- }
60
- /** A check's expression as PostgreSQL prints it, over the row's own columns. */
61
- function checkText(expr, s) {
62
- const problem = checkShapeProblem(expr, storageColumns(s));
63
- if (problem)
64
- throw new Error(problem);
65
- return print(typed({ SelectStmt: { targetList: [{ ResTarget: { val: expr } }], limitOption: "LIMIT_OPTION_DEFAULT", op: "SETOP_NONE" } }, {})).replace(/^SELECT\s+/i, "");
66
- }
67
- /** Constraint name -> "<schema>: <expression>", for the executor's CHECK message. */
68
- export function checkMessages(plan) {
69
- return new Map(Object.entries(plan).flatMap(([name, s]) => (s.checks ?? []).map((c, i) => [ident(`_mantle_chk_${name}_${i}`), `${name}: ${checkText(c, s)}`])));
70
- }
71
- /**
72
- * Text compares and sorts by code point, whatever collation the database was created with.
73
- * ponytail: this began as D1 emulation (ADR-0039 keeps the tiebreak in the column's own collation, so indexes still serve it). Dropping it
74
- * only changes tables created from now on and leaves the earlier ones in "C", so one Schema family would sort text two ways by age
75
- * (and a database whose collation is en_US sorts ids and names by locale); the upgrade is a deliberate rebuild of text columns and
76
- * their indexes in one release, which needs the migration this PR avoids. Tracked as a follow-up issue.
77
- */
78
- const ddlType = (type) => (type === "text" ? 'text COLLATE "C"' : type);
79
- const createTable = (name, s) => `CREATE TABLE ${q(name)} (${[
80
- "_rid bigint GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY", `id ${ddlType("text")} NOT NULL UNIQUE`, "version int8 NOT NULL DEFAULT 1",
81
- "created_at timestamptz NOT NULL", "updated_at timestamptz NOT NULL DEFAULT now()", `author_id ${ddlType("text")}`,
82
- ...columns(s).map((c) => `${q(c.name)} ${ddlType(c.type)}${c.name === "status" ? " NOT NULL DEFAULT 'draft'" : c.native ? " NOT NULL" : ""}`),
83
- ].join(", ")})`;
84
- const tooLong = (n) => new TextEncoder().encode(n).length > 63;
85
- /** `information_schema`'s spelling of a column type, to compare with the plan's. */
86
- const spelled = (r) => r.udt_name === "numeric" && r.numeric_precision !== null ? `numeric(${r.numeric_precision}, ${r.numeric_scale})` : r.udt_name;
87
- /** One at a time: node-postgres deprecates a query issued while another is in flight (`Promise.all`), and pipelining is the driver's own business. */
88
- async function sequentially(items, f) {
89
- const out = [];
90
- for (const i of items)
91
- out.push(await f(i));
92
- return out;
93
- }
94
- /** The catalog reads and the plan's differences, over the client that holds the convergence lock. */
95
- async function diff(client, plan) {
96
- const statements = [];
97
- const blocked = [];
98
- const undeclared = [];
99
- const block = (schema, message, code = "STORAGE_CHANGE_BLOCKED") => blocked.push({ schema, code, message });
100
- const [tables, owned, cols, idx, chk] = (await sequentially([
101
- "SELECT table_name AS name FROM information_schema.tables WHERE table_schema = current_schema()",
102
- "SELECT name FROM _mantle_schema_tables",
103
- "SELECT table_name, column_name, udt_name, numeric_precision, numeric_scale FROM information_schema.columns WHERE table_schema = current_schema()",
104
- `SELECT t.relname AS tbl, i.relname AS name, ix.indisunique AS uniq, ix.indisprimary AS pk, ix.indpred IS NOT NULL AS partial,
105
- (SELECT string_agg(a.attname, ',' ORDER BY k.ord) FROM unnest(ix.indkey) WITH ORDINALITY k(attnum, ord) JOIN pg_attribute a ON a.attrelid = ix.indrelid AND a.attnum = k.attnum) AS cols
106
- FROM pg_index ix JOIN pg_class i ON i.oid = ix.indexrelid JOIN pg_class t ON t.oid = ix.indrelid WHERE t.relnamespace = current_schema()::regnamespace`,
107
- // the comment is the expression Mantle added the check from (CHECK_MARK): PostgreSQL prints a constraint in its own normal form, which is not the plan's
108
- "SELECT t.relname AS tbl, c.conname AS name, obj_description(c.oid, 'pg_constraint') AS comment FROM pg_constraint c JOIN pg_class t ON t.oid = c.conrelid WHERE c.contype = 'c' AND t.relnamespace = current_schema()::regnamespace",
109
- ], (text) => client.query({ text }))).map((o) => o.rows);
110
- const existing = new Set(tables.map((r) => String(r.name)));
111
- const ownedNames = new Set(owned.map((r) => String(r.name)));
112
- for (const [name, schema] of Object.entries(plan)) {
113
- const t = q(name);
114
- if (RESERVED_TABLES.has(name.toLowerCase()) || name.toLowerCase().startsWith("_mantle_")) {
115
- block(name, `table name ${name} is reserved for Mantle and Better Auth`, "STORAGE_TABLE_NOT_OWNED");
116
- continue;
117
- }
118
- if (existing.has(name) && !ownedNames.has(name)) {
119
- block(name, `table ${name} exists and Mantle did not create it, so it is not read or written`, "STORAGE_TABLE_NOT_OWNED");
120
- continue;
121
- }
122
- // PostgreSQL truncates a longer name, so the next boot would not find what this one created
123
- const long = [name, ...columns(schema).map((c) => c.name)].filter(tooLong);
124
- if (long.length) {
125
- block(name, `${long.join(", ")}: PostgreSQL names are at most 63 bytes; shorten the Schema or field name`);
126
- continue;
127
- }
128
- const want = indexes(name, schema);
129
- if (!existing.has(name)) {
130
- statements.push({ text: createTable(name, schema) }, { text: "INSERT INTO _mantle_schema_tables (name) VALUES ($1) ON CONFLICT DO NOTHING", values: [name] }, ...want.map((i) => ({ text: i.sql })));
131
- }
132
- else {
133
- const have = new Map(cols.filter((r) => r.table_name === name).map((r) => [String(r.column_name), spelled(r)]));
134
- const native = new Map([["_rid", "int8"], ["id", "text"], ["version", "int8"], ["created_at", "timestamptz"], ["updated_at", "timestamptz"], ["author_id", "text"]]);
135
- for (const [c, type] of native) {
136
- if (!have.has(c))
137
- block(name, `${name} lacks the native column ${c}; copy the data into a table Mantle creates`);
138
- else if (have.get(c) !== type)
139
- block(name, `${name}.${c} is ${have.get(c)}, Mantle needs ${type}`);
140
- }
141
- for (const c of columns(schema)) {
142
- const actual = have.get(c.name);
143
- if (actual === undefined) {
144
- if (c.native)
145
- block(name, `${name} lacks the native column ${c.name}; add it, or copy the data into a table Mantle creates`);
146
- else
147
- statements.push({ text: `ALTER TABLE ${t} ADD COLUMN ${q(c.name)} ${ddlType(c.type)}` });
148
- }
149
- else if (actual !== c.type)
150
- block(name, `${name}.${c.name} is ${actual}, the plan says ${c.type}; a column's type is never altered`);
151
- }
152
- const declared = new Set([...native.keys(), ...columns(schema).map((c) => c.name)]);
153
- for (const c of have.keys())
154
- if (!declared.has(c))
155
- undeclared.push({ schema: name, code: "STORAGE_UNDECLARED_COLUMN", message: `${name}.${c} is in the database and not in the plan; it is kept` });
156
- const actual = new Map(idx.filter((r) => r.tbl === name).map((r) => [String(r.name), r]));
157
- for (const i of want) {
158
- const a = actual.get(i.name);
159
- if (!a)
160
- statements.push({ text: i.sql });
161
- else if (a.uniq !== i.unique || a.partial || a.cols !== i.columns.join(","))
162
- block(name, `index ${i.name} exists with other columns, uniqueness or a WHERE; drop it and rerun`);
163
- }
164
- const wanted = new Set(want.map((i) => i.name));
165
- for (const [n, a] of actual) {
166
- if (wanted.has(n) || a.pk || (a.uniq && a.cols === "id"))
167
- continue;
168
- if (a.uniq)
169
- block(name, `undeclared unique index ${n} on ${a.cols} still constrains writes; drop it or declare it`);
170
- else
171
- undeclared.push({ schema: name, code: "STORAGE_UNDECLARED_INDEX", message: schema.scope && n === ident(`_mantle_scope_${name}`) ? `index ${n} is redundant: a declared index leads with ${schema.scope}; drop it by hand` : `index ${n} is in the database and not in the plan; it is kept` });
172
- }
173
- }
174
- // Mantle's checks follow the plan: one whose expression is unchanged is left alone (a DROP and ADD takes ACCESS EXCLUSIVE on a
175
- // table live traffic reads), the rest are dropped and added NOT VALID (a check binds writes, not old rows)
176
- // ponytail: checks are named by position, so inserting one mid-list rebuilds the later ones; naming by expression hash avoids it
177
- const wantChecks = new Map((schema.checks ?? []).map((c, i) => [ident(`_mantle_chk_${name}_${i}`), checkText(c, schema)]));
178
- const kept = new Set();
179
- for (const r of chk) {
180
- if (r.tbl !== name || !String(r.name).startsWith("_mantle_chk_"))
181
- continue;
182
- const text = wantChecks.get(String(r.name));
183
- if (text !== undefined && r.comment === CHECK_MARK + text)
184
- kept.add(String(r.name));
185
- else
186
- statements.push({ text: `ALTER TABLE ${t} DROP CONSTRAINT IF EXISTS ${q(String(r.name))}` });
187
- }
188
- for (const [n, text] of wantChecks) {
189
- if (kept.has(n))
190
- continue;
191
- statements.push({ text: `ALTER TABLE ${t} ADD CONSTRAINT ${q(n)} CHECK (${text}) NOT VALID` }, { text: `COMMENT ON CONSTRAINT ${q(n)} ON ${t} IS '${(CHECK_MARK + text).replace(/'/g, "''")}'` });
192
- }
193
- }
194
- return { statements, blocked, undeclared };
195
- }
196
- /** Bump whenever `indexes()` or `createTable()` output changes for an unchanged plan: the boot state includes it, so a booted database converges again. */
197
- const LAYOUT = "2";
198
- /** Prefixes the comment on a Mantle check: the expression it was added from, so the next boot can tell whether the plan changed it. */
199
- const CHECK_MARK = "mantle:";
200
- /** How long a boot that gave up on a lock fails fast. ponytail: per process and per `connect`; a shared record (a _mantle_boot_state row) would also quiet other isolates. */
201
- const COOL_DOWN_MS = 10_000;
202
- const COOL_DOWN = new WeakMap();
203
- const BOOTED = "SELECT value FROM _mantle_boot_state WHERE key = 'fingerprint'";
204
- /**
205
- * Converge storage to the plan. Blocked differences are reported and applied to nothing; a matching fingerprint reads nothing else.
206
- *
207
- * Every isolate of a deploy boots at once, so the work is one transaction under the advisory lock, in READ COMMITTED: a waiter
208
- * wakes to a fresh snapshot, reads the fingerprint again, and finds the winner's work done (a SERIALIZABLE snapshot would predate
209
- * it). The DDL runs under `lock_timeout`: ALTER TABLE queues for ACCESS EXCLUSIVE and every read after it queues behind it, so
210
- * it gives up after `lockTimeoutMs`, rolls back, and tries again, rather than stalling live traffic behind a long query.
211
- */
212
- export async function convergeStorage(connect, plan, options) {
213
- // the plan and Mantle's functions: a release that changes a function re-creates it on the next boot
214
- const state = `${options.fingerprint}|${fnv(FUNCTIONS.join("\n"))}|${LAYOUT}`;
215
- const booted = options.booted !== undefined ? options.booted : (await query(connect, { text: BOOTED }).catch(() => undefined))?.rows[0]?.value;
216
- if (booted === state)
217
- return { skipped: true, blocked: [], undeclared: [] };
218
- // a boot that gave up on a lock is not retried by every request of every isolate: for `cooldownMs` it fails fast with the same report
219
- const cool = COOL_DOWN.get(connect);
220
- if (cool && cool.state === state && cool.until > Date.now())
221
- return cool.report;
222
- const lockTimeout = Math.max(1, Math.floor(options.lockTimeoutMs ?? 1000));
223
- const attempts = options.attempts ?? 5;
224
- for (let attempt = 1;; attempt++) {
225
- const client = await connect();
226
- try {
227
- return await locked(client, plan, state, lockTimeout);
228
- }
229
- catch (e) {
230
- await client.query({ text: "ROLLBACK" }).catch(() => undefined);
231
- const code = sqlState(e);
232
- if (code === "55P03") {
233
- if (attempt < attempts) {
234
- await new Promise((r) => setTimeout(r, Math.random() * 100 * attempt));
235
- continue;
236
- }
237
- const why = e instanceof Error ? e.message : String(e);
238
- const report = { skipped: false, undeclared: [], blocked: [{ schema: "*", code: "STORAGE_CHANGE_BLOCKED", message: `storage could not be converged: a lock stayed held for ${attempts} tries of ${lockTimeout} ms (${why}); ${e.advisoryLock ? "another boot is still converging this database; boot again once it finishes" : "a long transaction or query is using a table the plan changes; end it, or boot again when traffic is lower"}. Nothing was applied (not retried for ${(options.cooldownMs ?? COOL_DOWN_MS) / 1000} s)` }] };
239
- COOL_DOWN.set(connect, { state, until: Date.now() + (options.cooldownMs ?? COOL_DOWN_MS), report });
240
- return report;
241
- }
242
- if (code === "23505") {
243
- const msg = e instanceof Error ? e.message : String(e);
244
- return { skipped: false, undeclared: [], blocked: [{ schema: "*", code: "STORAGE_CHANGE_BLOCKED", message: `a unique index cannot be created: existing rows break it (${msg}); dedupe the data, then rerun` }] };
245
- }
246
- throw e;
247
- }
248
- finally {
249
- await client.end().catch(() => undefined);
250
- }
251
- }
252
- }
253
- async function locked(client, plan, state, lockTimeoutMs) {
254
- const run = (s) => client.query({ text: s.text, ...(s.values ? { values: [...s.values] } : {}) });
255
- // convergence builds indexes on tables that may be large: no statement timeout. The lock wait below has none either: a waiter is behind the winner's work
256
- // lock_timeout comes first so the advisory wait is bounded too: a herd gives up together, not one isolate after another
257
- // ponytail: a winner building a large index outlasts that bound and the waiters report a blocked boot; a longer advisory wait than DDL wait is the upgrade once it is measured
258
- await client.query({ text: `BEGIN ISOLATION LEVEL READ COMMITTED; SET LOCAL statement_timeout = 0; SET LOCAL lock_timeout = ${lockTimeoutMs}` });
259
- // a lock timeout here is the advisory lock (another boot converging); the caller words its diagnostic by it
260
- await run(LOCK).catch((e) => { if (sqlState(e) === "55P03")
261
- Object.assign(e, { advisoryLock: true }); throw e; });
262
- for (const text of SYSTEM_DDL)
263
- await run({ text });
264
- // another isolate may have converged while this one waited for the lock: this read, after it, sees its commit
265
- if ((await run({ text: BOOTED })).rows[0]?.value === state) {
266
- await client.query({ text: "COMMIT" });
267
- return { skipped: true, blocked: [], undeclared: [] };
268
- }
269
- for (const text of FUNCTIONS)
270
- await run({ text });
271
- await run({ text: "INSERT INTO _mantle_boot_state (key, value) VALUES ('instance', $1) ON CONFLICT DO NOTHING", values: [crypto.randomUUID()] });
272
- const { statements, blocked, undeclared } = await diff(client, plan);
273
- if (blocked.length) {
274
- await client.query({ text: "COMMIT" });
275
- return { skipped: false, blocked, undeclared };
276
- }
277
- for (const s of statements)
278
- await run(s);
279
- await run({ text: "INSERT INTO _mantle_boot_state (key, value) VALUES ('fingerprint', $1) ON CONFLICT (key) DO UPDATE SET value = excluded.value", values: [state] });
280
- await client.query({ text: "COMMIT" });
281
- return { skipped: false, blocked: [], undeclared };
282
- }
283
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/postgres/storage.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * What the PostgreSQL dialect accepts: Mantle SQL's reference profile (ADR-0037 decision 1), less SQLite's own vocabulary,
3
- * which the base profile carries for D1 (ADR-0039): a construct that means something else here is refused with its position and
4
- * the PostgreSQL spelling to use. Pure JavaScript: the runtime imports it.
5
- */
6
- import type { SqlContext, SqlDiagnostic, SqlNode as N, SqlPlan } from "../spec/domain/model/SqlIr.js";
7
- /** The compile side: PostgreSQL's refusals first, so a SQLite spelling is answered with its PostgreSQL one, then the reference profile. */
8
- export declare function validateProgram(stmts: N[], ctx: SqlContext & {
9
- source?: string;
10
- }, locs?: (number | undefined)[]): void;
11
- /** The runtime's check of every program's IR. */
12
- export declare function validateIr(plan: SqlPlan, ctx: SqlContext): readonly SqlDiagnostic[];
13
- //# sourceMappingURL=validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/postgres/validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAkCtG,2IAA2I;AAC3I,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,GAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAO,GAAG,IAAI,CAG1H;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,aAAa,EAAE,CASnF"}
@@ -1,53 +0,0 @@
1
- import { SqlRefusal } from "../spec/domain/service/SqlRefusal.js";
2
- import { PROFILES, validateIr as referenceIr, validateProgram as referenceProgram } from "../core/sql/allowlist.js";
3
- /** SQLite's own functions, and the PostgreSQL spelling of each where there is one. */
4
- const REFUSED = {
5
- typeof: "typeof() is SQLite's; PostgreSQL has pg_typeof() with other names",
6
- hex: "hex() is SQLite's; PostgreSQL's encode() is not on the allowlist",
7
- json_each: "json_each() is SQLite's: use jsonb_array_elements_text(x) WITH ORDINALITY AS j(value, n) for an array, or jsonb_each_text(x) WITH ORDINALITY AS j(key, value, n) for an object, in FROM",
8
- json_extract: "json_extract() is SQLite's: use x ->> 'key', x ->> 0 or x #>> '{a,b}'",
9
- json_set: "json_set() is SQLite's: build the value with jsonb_build_object() or jsonb_build_array()", json_insert: "json_insert() is SQLite's: build the value with jsonb_build_object() or jsonb_build_array()", json_remove: "json_remove() is SQLite's: use x - 'key' to drop a key",
10
- };
11
- /** A `$` path as ->>'s key: SQLite reads it as a path, PostgreSQL as a key named `$.a`, silently NULL. */
12
- const DOLLAR_PATH = /^\$(?:[.[]|$)/;
13
- function refuse(stmts) {
14
- const walk = (v) => {
15
- if (Array.isArray(v))
16
- return v.forEach(walk);
17
- if (!v || typeof v !== "object")
18
- return;
19
- const a = v.A_Expr;
20
- const key = a?.rexpr?.A_Const?.sval?.sval;
21
- if (a?.kind === "AEXPR_OP" && ["->>", "->"].includes(a.name?.at(-1)?.String?.sval) && typeof key === "string" && DOLLAR_PATH.test(key))
22
- throw new SqlRefusal("SQL_UNSUPPORTED", `'${key}' is a SQLite JSON path: PostgreSQL reads it as a key named ${key}. Use x ->> 'key', x ->> 0 or x #>> '{a,b}'`, a.rexpr.A_Const.location ?? a.location);
23
- const f = v.FuncCall;
24
- if (f) {
25
- const name = f.funcname.map((x) => x.String?.sval).join(".").replace(/^pg_catalog\./, "");
26
- if (REFUSED[name])
27
- throw new SqlRefusal("SQL_FUNCTION", REFUSED[name], f.location);
28
- if (name === "json_array_length" && f.args?.length !== 1)
29
- throw new SqlRefusal("SQL_FUNCTION", "json_array_length() takes one argument on PostgreSQL", f.location);
30
- }
31
- Object.values(v).forEach(walk);
32
- };
33
- walk(stmts);
34
- }
35
- /** The compile side: PostgreSQL's refusals first, so a SQLite spelling is answered with its PostgreSQL one, then the reference profile. */
36
- export function validateProgram(stmts, ctx, locs = []) {
37
- refuse(stmts);
38
- referenceProgram(stmts, ctx, locs, PROFILES.reference);
39
- }
40
- /** The runtime's check of every program's IR. */
41
- export function validateIr(plan, ctx) {
42
- const d = referenceIr(plan, ctx, PROFILES.reference);
43
- if (d.length)
44
- return d;
45
- try {
46
- refuse(plan.stmts);
47
- return [];
48
- }
49
- catch (e) {
50
- return [{ code: e.code ?? "SQL_UNSUPPORTED", message: e.message }];
51
- }
52
- }
53
- //# sourceMappingURL=validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/postgres/validator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from "./model/index.js";
2
- export * from "./service/index.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spec/domain/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from "./model/index.js";
2
- export * from "./service/index.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spec/domain/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -1,8 +0,0 @@
1
- /** Persisted publishing state for content entries. */
2
- export declare const ContentState: {
3
- readonly Draft: "draft";
4
- readonly Published: "published";
5
- readonly Archived: "archived";
6
- };
7
- export type ContentState = (typeof ContentState)[keyof typeof ContentState];
8
- //# sourceMappingURL=ContentState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentState.d.ts","sourceRoot":"","sources":["../../../../src/spec/domain/model/ContentState.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- /** Persisted publishing state for content entries. */
2
- export const ContentState = {
3
- Draft: "draft",
4
- Published: "published",
5
- Archived: "archived",
6
- };
7
- //# sourceMappingURL=ContentState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentState.js","sourceRoot":"","sources":["../../../../src/spec/domain/model/ContentState.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;CACZ,CAAC"}