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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (942) hide show
  1. package/README.md +152 -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 +154 -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 +31 -0
  13. package/dist/auth/oauth.js +124 -0
  14. package/dist/auth/resource-seeds.js +10 -0
  15. package/dist/auth/routes.d.ts +32 -0
  16. package/dist/auth/{createAuthRoutes.js → routes.js} +130 -35
  17. package/dist/build/compiler.d.ts +790 -0
  18. package/dist/build/compiler.js +6971 -0
  19. package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +24 -42
  20. package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
  21. package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +35 -6
  22. package/dist/build/spec/domain/model/UserFields.d.ts +20 -0
  23. package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +2 -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-ZIQVLA7X.js +363 -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 +17 -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 +204 -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 +84 -0
  50. package/dist/infrastructure/cli.js +101 -0
  51. package/dist/infrastructure/generate.d.ts +14 -0
  52. package/dist/infrastructure/generate.js +174 -0
  53. package/dist/infrastructure/generateAuth.d.ts +8 -0
  54. package/dist/infrastructure/generateAuth.js +17 -0
  55. package/dist/infrastructure/inputs.js +36 -0
  56. package/dist/infrastructure/wrangler.js +71 -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/driver/bun-sqlite.d.ts +19 -0
  76. package/dist/kernel/driver/bun-sqlite.js +77 -0
  77. package/dist/kernel/driver/d1.d.ts +24 -0
  78. package/dist/kernel/driver/d1.js +22 -0
  79. package/dist/kernel/driver/postgres.d.ts +25 -0
  80. package/dist/kernel/driver/postgres.js +95 -0
  81. package/dist/kernel/driver/transaction-context.d.ts +10 -0
  82. package/dist/kernel/driver/transaction-context.js +29 -0
  83. package/dist/kernel/email.d.ts +28 -0
  84. package/dist/{auth/emailTemplates.js → kernel/email.js} +13 -2
  85. package/dist/kernel/host-access.d.ts +10 -0
  86. package/dist/kernel/host-access.js +65 -0
  87. package/dist/kernel/host-caller.d.ts +38 -0
  88. package/dist/kernel/host-caller.js +55 -0
  89. package/dist/kernel/json-body.d.ts +4 -0
  90. package/dist/kernel/json-body.js +44 -0
  91. package/dist/kernel/mcp-apps.d.ts +49 -0
  92. package/dist/kernel/mcp-apps.js +40 -0
  93. package/dist/kernel/mcp-call.d.ts +5 -0
  94. package/dist/kernel/mcp-call.js +25 -0
  95. package/dist/kernel/mcp-handler.js +288 -0
  96. package/dist/kernel/mcp.d.ts +101 -0
  97. package/dist/kernel/mcp.js +25 -0
  98. package/dist/kernel/media.d.ts +27 -0
  99. package/dist/kernel/media.js +216 -0
  100. package/dist/kernel/paging.d.ts +55 -0
  101. package/dist/kernel/paging.js +95 -0
  102. package/dist/kernel/publishing.d.ts +4 -0
  103. package/dist/kernel/publishing.js +16 -0
  104. package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
  105. package/dist/kernel/r2-media.js +78 -0
  106. package/dist/kernel/rest-dispatch.js +38 -0
  107. package/dist/kernel/rest-router.js +63 -0
  108. package/dist/kernel/rest.d.ts +58 -0
  109. package/dist/kernel/rest.js +41 -0
  110. package/dist/kernel/scalars.d.ts +6 -0
  111. package/dist/kernel/scalars.js +43 -0
  112. package/dist/kernel/search.js +5 -0
  113. package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
  114. package/dist/kernel/site-types.js +1 -0
  115. package/dist/kernel/site.d.ts +41 -0
  116. package/dist/kernel/site.js +32 -0
  117. package/dist/kernel/store.d.ts +165 -0
  118. package/dist/kernel/store.js +257 -0
  119. package/dist/kernel/surface.d.ts +10 -0
  120. package/dist/kernel/surface.js +19 -0
  121. package/dist/kernel/sweep.d.ts +17 -0
  122. package/dist/kernel/sweep.js +27 -0
  123. package/dist/kernel/translations.d.ts +1 -0
  124. package/dist/kernel/translations.js +13 -0
  125. package/dist/kernel/user-caller.d.ts +31 -0
  126. package/dist/kernel/user-caller.js +67 -0
  127. package/dist/kernel/user-field-name.js +3 -0
  128. package/dist/kernel/user-fields.d.ts +34 -0
  129. package/dist/kernel/user-fields.js +71 -0
  130. package/dist/kernel/validation.d.ts +15 -0
  131. package/dist/kernel/validation.js +54 -0
  132. package/dist/kernel/web-gateway.js +68 -0
  133. package/dist/kernel/web-head.js +15 -0
  134. package/dist/kernel/web-response.js +8 -0
  135. package/dist/kernel/web.d.ts +75 -0
  136. package/dist/kernel/web.js +155 -0
  137. package/dist/kernel/where.js +27 -0
  138. package/dist/testing/index.d.ts +1 -37
  139. package/dist/testing/index.js +1 -43
  140. package/dist/usecase/adminBindings.js +142 -0
  141. package/dist/usecase/adminDescriptors.js +153 -0
  142. package/dist/usecase/generate.js +164 -0
  143. package/dist/usecase/handlers.js +21 -0
  144. package/dist/usecase/mcp-media.js +17 -0
  145. package/dist/usecase/mcp.js +96 -0
  146. package/dist/usecase/paging.js +72 -0
  147. package/dist/usecase/publishing.js +63 -0
  148. package/dist/usecase/refusals.js +27 -0
  149. package/dist/usecase/rest.js +54 -0
  150. package/dist/usecase/search.js +7 -0
  151. package/dist/usecase/site.js +40 -0
  152. package/dist/usecase/stores.js +62 -0
  153. package/dist/usecase/translations.js +78 -0
  154. package/dist/usecase/ttl.js +20 -0
  155. package/dist/usecase/validation.js +132 -0
  156. package/dist/usecase/web.js +22 -0
  157. package/docs/examples/README.md +31 -16
  158. package/docs/examples/app-shell/README.md +48 -0
  159. package/docs/examples/app-shell/package.json +34 -0
  160. package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
  161. package/docs/examples/app-shell/smoke-kit.mjs +100 -0
  162. package/docs/examples/app-shell/src/admin.ts +10 -0
  163. package/docs/examples/app-shell/src/auth.ts +55 -0
  164. package/docs/examples/app-shell/src/handlers.ts +5 -0
  165. package/docs/examples/app-shell/src/index.ts +4 -0
  166. package/docs/examples/app-shell/src/routes.ts +13 -0
  167. package/docs/examples/app-shell/src/schedule.ts +8 -0
  168. package/docs/examples/app-shell/src/service.ts +70 -0
  169. package/docs/examples/app-shell/src/sign-in.ts +41 -0
  170. package/docs/examples/app-shell/src/signup.ts +8 -0
  171. package/docs/examples/{reference-service → app-shell}/tsconfig.json +2 -1
  172. package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
  173. package/docs/examples/app-shell/wrangler.jsonc +61 -0
  174. package/docs/examples/club-events/README.md +60 -0
  175. package/docs/examples/club-events/manifests/club-events.yaml +225 -0
  176. package/docs/examples/club-events/smoke.mjs +121 -0
  177. package/docs/examples/club-events/src/handlers.ts +25 -0
  178. package/docs/examples/club-events/src/signup.ts +9 -0
  179. package/docs/examples/generated-web/README.md +74 -0
  180. package/docs/examples/generated-web/posts.yaml +38 -0
  181. package/docs/examples/generated-web/seed.sql +6 -0
  182. package/docs/examples/generated-web/src/worker.ts +43 -0
  183. package/docs/examples/generated-web/tsconfig.json +8 -0
  184. package/docs/examples/generated-web/wrangler.jsonc +7 -0
  185. package/docs/examples/purchasing/.dev.vars.example +6 -0
  186. package/docs/examples/purchasing/README.md +90 -0
  187. package/docs/examples/purchasing/manifests/purchasing.yaml +341 -0
  188. package/docs/examples/purchasing/seed.sql +4 -0
  189. package/docs/examples/purchasing/smoke.mjs +171 -0
  190. package/docs/examples/purchasing/src/admin.ts +12 -0
  191. package/docs/examples/purchasing/src/handlers.ts +33 -0
  192. package/docs/examples/purchasing/src/notify.ts +29 -0
  193. package/docs/examples/purchasing/src/requests-page.ts +57 -0
  194. package/docs/examples/purchasing/src/routes.ts +53 -0
  195. package/docs/examples/purchasing/src/schedule.ts +31 -0
  196. package/docs/examples/purchasing/src/signup.ts +5 -0
  197. package/docs/examples/purchasing/src/supplier.ts +32 -0
  198. package/docs/examples/purchasing/wrangler.jsonc +68 -0
  199. package/docs/examples/recipes/README.md +58 -0
  200. package/docs/examples/recipes/manifests/recipes.yaml +75 -0
  201. package/docs/examples/recipes/smoke.mjs +102 -0
  202. package/docs/examples/recipes/src/media.ts +13 -0
  203. package/docs/examples/recipes/src/pages.ts +99 -0
  204. package/docs/examples/recipes/src/routes.ts +71 -0
  205. package/docs/examples/recipes/src/site-config.ts +12 -0
  206. package/docs/examples/recipes/wrangler.jsonc +73 -0
  207. package/docs/handbook/cloudflare/authentication.md +142 -212
  208. package/docs/handbook/cloudflare/chatgpt-sites.md +4 -113
  209. package/docs/handbook/cloudflare/deploy-and-operate.md +20 -106
  210. package/docs/handbook/cloudflare/media-r2.md +62 -133
  211. package/docs/handbook/cloudflare/service-entry.md +180 -116
  212. package/docs/handbook/concepts/authorization.md +10 -123
  213. package/docs/handbook/concepts/four-atoms.md +9 -92
  214. package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
  215. package/docs/handbook/concepts/mcp-and-agents.md +10 -141
  216. package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
  217. package/docs/handbook/concepts/runtime-and-adapters.md +15 -224
  218. package/docs/handbook/concepts/views.md +10 -109
  219. package/docs/handbook/examples/hub.md +2 -18
  220. package/docs/handbook/guides/adapter-guide.md +11 -0
  221. package/docs/handbook/guides/admin-extensions.md +12 -183
  222. package/docs/handbook/guides/admin-ui.md +5 -164
  223. package/docs/handbook/guides/agent-setup.md +5 -18
  224. package/docs/handbook/guides/email.md +86 -0
  225. package/docs/handbook/guides/mcp-apps.md +44 -0
  226. package/docs/handbook/guides/native-admin.md +298 -0
  227. package/docs/handbook/guides/native-execution.md +132 -0
  228. package/docs/handbook/guides/oauth.md +105 -0
  229. package/docs/handbook/guides/postgres-adapters.md +56 -0
  230. package/docs/handbook/guides/public-pages.md +53 -0
  231. package/docs/handbook/guides/size-and-startup.md +9 -0
  232. package/docs/handbook/guides/typed-queries.md +39 -102
  233. package/docs/handbook/navigation.json +164 -31
  234. package/docs/handbook/reference/admin-descriptors.md +88 -0
  235. package/docs/handbook/reference/authorization.md +44 -52
  236. package/docs/handbook/reference/describe.md +56 -0
  237. package/docs/handbook/reference/diagnostics.md +15 -79
  238. package/docs/handbook/reference/features.md +45 -53
  239. package/docs/handbook/reference/manifest.md +6 -69
  240. package/docs/handbook/reference/procedure.md +9 -118
  241. package/docs/handbook/reference/schema.md +75 -185
  242. package/docs/handbook/reference/site-config.md +5 -65
  243. package/docs/handbook/reference/surface.md +279 -97
  244. package/docs/handbook/reference/trigger.md +24 -93
  245. package/docs/handbook/reference/view.md +32 -160
  246. package/docs/handbook/releases/index.md +48 -13
  247. package/docs/handbook/start/overview.md +9 -56
  248. package/docs/handbook/start/project-and-cli.md +40 -149
  249. package/docs/handbook/start/quickstart-worker.md +38 -116
  250. package/docs/skills/develop/SKILL.md +34 -123
  251. package/docs/skills/develop/mcp-app.md +37 -77
  252. package/docs/skills/integrate/SKILL.md +42 -84
  253. package/docs/skills/media-gc/SKILL.md +14 -3
  254. package/docs/skills/provision/SKILL.md +25 -91
  255. package/docs/skills/update/SKILL.md +19 -43
  256. package/docs/source/scripts/postgres-adapter.ts +101 -0
  257. package/docs/upgrade-0.1-to-0.2.md +25 -9
  258. package/package.json +96 -112
  259. package/skills/.keep +0 -0
  260. package/skills/README.md +72 -0
  261. package/skills/mantle/SKILL.md +135 -0
  262. package/skills/mantle/references/local-testing.md +11 -0
  263. package/skills/mantle/references/web.md +41 -0
  264. package/skills/mantle/references/website.md +47 -0
  265. package/dist/admin/consent.d.ts +0 -17
  266. package/dist/admin/consent.d.ts.map +0 -1
  267. package/dist/admin/consent.js +0 -17
  268. package/dist/admin/consent.js.map +0 -1
  269. package/dist/admin/createAdminSurface.d.ts +0 -25
  270. package/dist/admin/createAdminSurface.d.ts.map +0 -1
  271. package/dist/admin/createAdminSurface.js +0 -635
  272. package/dist/admin/createAdminSurface.js.map +0 -1
  273. package/dist/admin/design.d.ts +0 -7
  274. package/dist/admin/design.d.ts.map +0 -1
  275. package/dist/admin/design.js +0 -18
  276. package/dist/admin/design.js.map +0 -1
  277. package/dist/admin/developerConsole.d.ts +0 -267
  278. package/dist/admin/developerConsole.d.ts.map +0 -1
  279. package/dist/admin/developerConsole.js +0 -136
  280. package/dist/admin/developerConsole.js.map +0 -1
  281. package/dist/admin/extensions.d.ts +0 -290
  282. package/dist/admin/extensions.d.ts.map +0 -1
  283. package/dist/admin/extensions.js +0 -532
  284. package/dist/admin/extensions.js.map +0 -1
  285. package/dist/admin/identity.d.ts +0 -62
  286. package/dist/admin/identity.d.ts.map +0 -1
  287. package/dist/admin/identity.js +0 -7
  288. package/dist/admin/identity.js.map +0 -1
  289. package/dist/admin/index.d.ts +0 -7
  290. package/dist/admin/index.d.ts.map +0 -1
  291. package/dist/admin/index.js +0 -7
  292. package/dist/admin/index.js.map +0 -1
  293. package/dist/admin/procedureFlow.d.ts +0 -38
  294. package/dist/admin/procedureFlow.d.ts.map +0 -1
  295. package/dist/admin/procedureFlow.js +0 -188
  296. package/dist/admin/procedureFlow.js.map +0 -1
  297. package/dist/auth/ConsoleEmailSender.d.ts +0 -15
  298. package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
  299. package/dist/auth/ConsoleEmailSender.js +0 -19
  300. package/dist/auth/ConsoleEmailSender.js.map +0 -1
  301. package/dist/auth/appleClientSecret.d.ts +0 -75
  302. package/dist/auth/appleClientSecret.d.ts.map +0 -1
  303. package/dist/auth/appleClientSecret.js +0 -116
  304. package/dist/auth/appleClientSecret.js.map +0 -1
  305. package/dist/auth/buildAuth.d.ts +0 -4568
  306. package/dist/auth/buildAuth.d.ts.map +0 -1
  307. package/dist/auth/buildAuth.js +0 -312
  308. package/dist/auth/buildAuth.js.map +0 -1
  309. package/dist/auth/callerResolver.d.ts +0 -52
  310. package/dist/auth/callerResolver.d.ts.map +0 -1
  311. package/dist/auth/callerResolver.js +0 -52
  312. package/dist/auth/callerResolver.js.map +0 -1
  313. package/dist/auth/createAuthRoutes.d.ts +0 -22
  314. package/dist/auth/createAuthRoutes.d.ts.map +0 -1
  315. package/dist/auth/createAuthRoutes.js.map +0 -1
  316. package/dist/auth/createMantleAuth.d.ts +0 -3
  317. package/dist/auth/createMantleAuth.d.ts.map +0 -1
  318. package/dist/auth/createMantleAuth.js +0 -504
  319. package/dist/auth/createMantleAuth.js.map +0 -1
  320. package/dist/auth/db.d.ts +0 -18
  321. package/dist/auth/db.d.ts.map +0 -1
  322. package/dist/auth/db.js +0 -27
  323. package/dist/auth/db.js.map +0 -1
  324. package/dist/auth/emailTemplates.d.ts +0 -7
  325. package/dist/auth/emailTemplates.d.ts.map +0 -1
  326. package/dist/auth/emailTemplates.js.map +0 -1
  327. package/dist/auth/index.d.ts +0 -9
  328. package/dist/auth/index.d.ts.map +0 -1
  329. package/dist/auth/index.js +0 -7
  330. package/dist/auth/index.js.map +0 -1
  331. package/dist/auth/methods.d.ts +0 -717
  332. package/dist/auth/methods.d.ts.map +0 -1
  333. package/dist/auth/methods.js +0 -321
  334. package/dist/auth/methods.js.map +0 -1
  335. package/dist/auth/oauthTokens.d.ts +0 -24
  336. package/dist/auth/oauthTokens.d.ts.map +0 -1
  337. package/dist/auth/oauthTokens.js +0 -146
  338. package/dist/auth/oauthTokens.js.map +0 -1
  339. package/dist/auth/setupIncomplete.d.ts +0 -16
  340. package/dist/auth/setupIncomplete.d.ts.map +0 -1
  341. package/dist/auth/setupIncomplete.js +0 -50
  342. package/dist/auth/setupIncomplete.js.map +0 -1
  343. package/dist/auth/types.d.ts +0 -440
  344. package/dist/auth/types.d.ts.map +0 -1
  345. package/dist/auth/types.js +0 -10
  346. package/dist/auth/types.js.map +0 -1
  347. package/dist/bun/index.d.ts +0 -21
  348. package/dist/bun/index.d.ts.map +0 -1
  349. package/dist/bun/index.js +0 -46
  350. package/dist/bun/index.js.map +0 -1
  351. package/dist/cli/emitModule.d.ts +0 -7
  352. package/dist/cli/emitModule.d.ts.map +0 -1
  353. package/dist/cli/emitModule.js +0 -127
  354. package/dist/cli/emitModule.js.map +0 -1
  355. package/dist/cli/generate.d.ts +0 -8
  356. package/dist/cli/generate.d.ts.map +0 -1
  357. package/dist/cli/generate.js +0 -391
  358. package/dist/cli/generate.js.map +0 -1
  359. package/dist/cli/main.d.ts +0 -3
  360. package/dist/cli/main.d.ts.map +0 -1
  361. package/dist/cli/main.js +0 -21
  362. package/dist/cli/main.js.map +0 -1
  363. package/dist/cli/preset.d.ts +0 -18
  364. package/dist/cli/preset.d.ts.map +0 -1
  365. package/dist/cli/preset.js +0 -405
  366. package/dist/cli/preset.js.map +0 -1
  367. package/dist/cloudflare/index.d.ts +0 -25
  368. package/dist/cloudflare/index.d.ts.map +0 -1
  369. package/dist/cloudflare/index.js +0 -16
  370. package/dist/cloudflare/index.js.map +0 -1
  371. package/dist/cloudflare/r2Media.d.ts.map +0 -1
  372. package/dist/cloudflare/r2Media.js +0 -69
  373. package/dist/cloudflare/r2Media.js.map +0 -1
  374. package/dist/core/caller.d.ts +0 -35
  375. package/dist/core/caller.d.ts.map +0 -1
  376. package/dist/core/caller.js +0 -3
  377. package/dist/core/caller.js.map +0 -1
  378. package/dist/core/createMantle.d.ts +0 -22
  379. package/dist/core/createMantle.d.ts.map +0 -1
  380. package/dist/core/createMantle.js +0 -117
  381. package/dist/core/createMantle.js.map +0 -1
  382. package/dist/core/dialect.d.ts +0 -53
  383. package/dist/core/dialect.d.ts.map +0 -1
  384. package/dist/core/dialect.js +0 -7
  385. package/dist/core/dialect.js.map +0 -1
  386. package/dist/core/driver.d.ts +0 -24
  387. package/dist/core/driver.d.ts.map +0 -1
  388. package/dist/core/driver.js +0 -2
  389. package/dist/core/driver.js.map +0 -1
  390. package/dist/core/email.d.ts +0 -17
  391. package/dist/core/email.d.ts.map +0 -1
  392. package/dist/core/email.js +0 -2
  393. package/dist/core/email.js.map +0 -1
  394. package/dist/core/index.d.ts +0 -16
  395. package/dist/core/index.d.ts.map +0 -1
  396. package/dist/core/index.js +0 -16
  397. package/dist/core/index.js.map +0 -1
  398. package/dist/core/invocation.d.ts +0 -66
  399. package/dist/core/invocation.d.ts.map +0 -1
  400. package/dist/core/invocation.js +0 -3
  401. package/dist/core/invocation.js.map +0 -1
  402. package/dist/core/observation.d.ts +0 -3
  403. package/dist/core/observation.d.ts.map +0 -1
  404. package/dist/core/observation.js +0 -10
  405. package/dist/core/observation.js.map +0 -1
  406. package/dist/core/runtime/auth.d.ts +0 -9
  407. package/dist/core/runtime/auth.d.ts.map +0 -1
  408. package/dist/core/runtime/auth.js +0 -39
  409. package/dist/core/runtime/auth.js.map +0 -1
  410. package/dist/core/runtime/createRuntime.d.ts +0 -23
  411. package/dist/core/runtime/createRuntime.d.ts.map +0 -1
  412. package/dist/core/runtime/createRuntime.js +0 -214
  413. package/dist/core/runtime/createRuntime.js.map +0 -1
  414. package/dist/core/runtime/verifyPlan.d.ts +0 -34
  415. package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
  416. package/dist/core/runtime/verifyPlan.js +0 -301
  417. package/dist/core/runtime/verifyPlan.js.map +0 -1
  418. package/dist/core/service.d.ts +0 -45
  419. package/dist/core/service.d.ts.map +0 -1
  420. package/dist/core/service.js +0 -2
  421. package/dist/core/service.js.map +0 -1
  422. package/dist/core/sessionUser.d.ts +0 -14
  423. package/dist/core/sessionUser.d.ts.map +0 -1
  424. package/dist/core/sessionUser.js +0 -4
  425. package/dist/core/sessionUser.js.map +0 -1
  426. package/dist/core/site.d.ts.map +0 -1
  427. package/dist/core/site.js +0 -2
  428. package/dist/core/site.js.map +0 -1
  429. package/dist/core/siteConfig.d.ts +0 -5
  430. package/dist/core/siteConfig.d.ts.map +0 -1
  431. package/dist/core/siteConfig.js +0 -24
  432. package/dist/core/siteConfig.js.map +0 -1
  433. package/dist/core/sql/allowlist.d.ts +0 -67
  434. package/dist/core/sql/allowlist.d.ts.map +0 -1
  435. package/dist/core/sql/allowlist.js +0 -737
  436. package/dist/core/sql/allowlist.js.map +0 -1
  437. package/dist/core/sql/ast.d.ts +0 -24
  438. package/dist/core/sql/ast.d.ts.map +0 -1
  439. package/dist/core/sql/ast.js +0 -32
  440. package/dist/core/sql/ast.js.map +0 -1
  441. package/dist/core/sql/compile.d.ts +0 -50
  442. package/dist/core/sql/compile.d.ts.map +0 -1
  443. package/dist/core/sql/compile.js +0 -48
  444. package/dist/core/sql/compile.js.map +0 -1
  445. package/dist/core/sql/policy.d.ts +0 -123
  446. package/dist/core/sql/policy.d.ts.map +0 -1
  447. package/dist/core/sql/policy.js +0 -398
  448. package/dist/core/sql/policy.js.map +0 -1
  449. package/dist/core/sql/positions.d.ts +0 -30
  450. package/dist/core/sql/positions.d.ts.map +0 -1
  451. package/dist/core/sql/positions.js +0 -22
  452. package/dist/core/sql/positions.js.map +0 -1
  453. package/dist/core/sql/run.d.ts +0 -68
  454. package/dist/core/sql/run.d.ts.map +0 -1
  455. package/dist/core/sql/run.js +0 -384
  456. package/dist/core/sql/run.js.map +0 -1
  457. package/dist/core/store/createStore.d.ts +0 -49
  458. package/dist/core/store/createStore.d.ts.map +0 -1
  459. package/dist/core/store/createStore.js +0 -227
  460. package/dist/core/store/createStore.js.map +0 -1
  461. package/dist/core/store/cursor.d.ts +0 -4
  462. package/dist/core/store/cursor.d.ts.map +0 -1
  463. package/dist/core/store/cursor.js +0 -22
  464. package/dist/core/store/cursor.js.map +0 -1
  465. package/dist/core/store/json.d.ts +0 -80
  466. package/dist/core/store/json.d.ts.map +0 -1
  467. package/dist/core/store/json.js +0 -342
  468. package/dist/core/store/json.js.map +0 -1
  469. package/dist/core/store.d.ts +0 -160
  470. package/dist/core/store.d.ts.map +0 -1
  471. package/dist/core/store.js +0 -2
  472. package/dist/core/store.js.map +0 -1
  473. package/dist/core/wire.d.ts +0 -20
  474. package/dist/core/wire.d.ts.map +0 -1
  475. package/dist/core/wire.js +0 -84
  476. package/dist/core/wire.js.map +0 -1
  477. package/dist/core/withCaller.d.ts +0 -24
  478. package/dist/core/withCaller.d.ts.map +0 -1
  479. package/dist/core/withCaller.js +0 -35
  480. package/dist/core/withCaller.js.map +0 -1
  481. package/dist/d1/adapter.d.ts +0 -12
  482. package/dist/d1/adapter.d.ts.map +0 -1
  483. package/dist/d1/adapter.js +0 -23
  484. package/dist/d1/adapter.js.map +0 -1
  485. package/dist/d1/codec.d.ts +0 -14
  486. package/dist/d1/codec.d.ts.map +0 -1
  487. package/dist/d1/codec.js +0 -136
  488. package/dist/d1/codec.js.map +0 -1
  489. package/dist/d1/compile/index.d.ts +0 -9
  490. package/dist/d1/compile/index.d.ts.map +0 -1
  491. package/dist/d1/compile/index.js +0 -9
  492. package/dist/d1/compile/index.js.map +0 -1
  493. package/dist/d1/dialect.d.ts +0 -4
  494. package/dist/d1/dialect.d.ts.map +0 -1
  495. package/dist/d1/dialect.js +0 -13
  496. package/dist/d1/dialect.js.map +0 -1
  497. package/dist/d1/executor.d.ts +0 -15
  498. package/dist/d1/executor.d.ts.map +0 -1
  499. package/dist/d1/executor.js +0 -96
  500. package/dist/d1/executor.js.map +0 -1
  501. package/dist/d1/index.d.ts +0 -6
  502. package/dist/d1/index.d.ts.map +0 -1
  503. package/dist/d1/index.js +0 -6
  504. package/dist/d1/index.js.map +0 -1
  505. package/dist/d1/lower.d.ts +0 -8
  506. package/dist/d1/lower.d.ts.map +0 -1
  507. package/dist/d1/lower.js +0 -167
  508. package/dist/d1/lower.js.map +0 -1
  509. package/dist/d1/media.d.ts +0 -5
  510. package/dist/d1/media.d.ts.map +0 -1
  511. package/dist/d1/media.js +0 -157
  512. package/dist/d1/media.js.map +0 -1
  513. package/dist/d1/migrations.d.ts +0 -12
  514. package/dist/d1/migrations.d.ts.map +0 -1
  515. package/dist/d1/migrations.js +0 -111
  516. package/dist/d1/migrations.js.map +0 -1
  517. package/dist/d1/print.d.ts +0 -28
  518. package/dist/d1/print.d.ts.map +0 -1
  519. package/dist/d1/print.js +0 -54
  520. package/dist/d1/print.js.map +0 -1
  521. package/dist/d1/site.d.ts +0 -17
  522. package/dist/d1/site.d.ts.map +0 -1
  523. package/dist/d1/site.js +0 -63
  524. package/dist/d1/site.js.map +0 -1
  525. package/dist/d1/storage.d.ts +0 -34
  526. package/dist/d1/storage.d.ts.map +0 -1
  527. package/dist/d1/storage.js +0 -288
  528. package/dist/d1/storage.js.map +0 -1
  529. package/dist/d1/tz.d.ts +0 -21
  530. package/dist/d1/tz.d.ts.map +0 -1
  531. package/dist/d1/tz.js +0 -54
  532. package/dist/d1/tz.js.map +0 -1
  533. package/dist/d1/validator.d.ts +0 -10
  534. package/dist/d1/validator.d.ts.map +0 -1
  535. package/dist/d1/validator.js +0 -33
  536. package/dist/d1/validator.js.map +0 -1
  537. package/dist/mcp/apps.d.ts +0 -43
  538. package/dist/mcp/apps.d.ts.map +0 -1
  539. package/dist/mcp/apps.js +0 -57
  540. package/dist/mcp/apps.js.map +0 -1
  541. package/dist/mcp/catalog.d.ts +0 -55
  542. package/dist/mcp/catalog.d.ts.map +0 -1
  543. package/dist/mcp/catalog.js +0 -81
  544. package/dist/mcp/catalog.js.map +0 -1
  545. package/dist/mcp/createMcpSurface.d.ts +0 -60
  546. package/dist/mcp/createMcpSurface.d.ts.map +0 -1
  547. package/dist/mcp/createMcpSurface.js +0 -182
  548. package/dist/mcp/createMcpSurface.js.map +0 -1
  549. package/dist/mcp/index.d.ts +0 -4
  550. package/dist/mcp/index.d.ts.map +0 -1
  551. package/dist/mcp/index.js +0 -4
  552. package/dist/mcp/index.js.map +0 -1
  553. package/dist/mcp/media.d.ts +0 -9
  554. package/dist/mcp/media.d.ts.map +0 -1
  555. package/dist/mcp/media.js +0 -33
  556. package/dist/mcp/media.js.map +0 -1
  557. package/dist/postgres/adapter.d.ts +0 -23
  558. package/dist/postgres/adapter.d.ts.map +0 -1
  559. package/dist/postgres/adapter.js +0 -50
  560. package/dist/postgres/adapter.js.map +0 -1
  561. package/dist/postgres/codec.d.ts +0 -13
  562. package/dist/postgres/codec.d.ts.map +0 -1
  563. package/dist/postgres/codec.js +0 -110
  564. package/dist/postgres/codec.js.map +0 -1
  565. package/dist/postgres/compile/index.d.ts +0 -9
  566. package/dist/postgres/compile/index.d.ts.map +0 -1
  567. package/dist/postgres/compile/index.js +0 -9
  568. package/dist/postgres/compile/index.js.map +0 -1
  569. package/dist/postgres/driver.d.ts +0 -109
  570. package/dist/postgres/driver.d.ts.map +0 -1
  571. package/dist/postgres/driver.js +0 -186
  572. package/dist/postgres/driver.js.map +0 -1
  573. package/dist/postgres/executor.d.ts +0 -28
  574. package/dist/postgres/executor.d.ts.map +0 -1
  575. package/dist/postgres/executor.js +0 -96
  576. package/dist/postgres/executor.js.map +0 -1
  577. package/dist/postgres/index.d.ts +0 -8
  578. package/dist/postgres/index.d.ts.map +0 -1
  579. package/dist/postgres/index.js +0 -8
  580. package/dist/postgres/index.js.map +0 -1
  581. package/dist/postgres/lower.d.ts +0 -6
  582. package/dist/postgres/lower.d.ts.map +0 -1
  583. package/dist/postgres/lower.js +0 -152
  584. package/dist/postgres/lower.js.map +0 -1
  585. package/dist/postgres/print.d.ts +0 -11
  586. package/dist/postgres/print.d.ts.map +0 -1
  587. package/dist/postgres/print.js +0 -108
  588. package/dist/postgres/print.js.map +0 -1
  589. package/dist/postgres/session.d.ts +0 -9
  590. package/dist/postgres/session.d.ts.map +0 -1
  591. package/dist/postgres/session.js +0 -111
  592. package/dist/postgres/session.js.map +0 -1
  593. package/dist/postgres/storage.d.ts +0 -32
  594. package/dist/postgres/storage.d.ts.map +0 -1
  595. package/dist/postgres/storage.js +0 -283
  596. package/dist/postgres/storage.js.map +0 -1
  597. package/dist/postgres/validator.d.ts +0 -13
  598. package/dist/postgres/validator.d.ts.map +0 -1
  599. package/dist/postgres/validator.js +0 -53
  600. package/dist/postgres/validator.js.map +0 -1
  601. package/dist/spec/domain/index.d.ts +0 -3
  602. package/dist/spec/domain/index.d.ts.map +0 -1
  603. package/dist/spec/domain/index.js +0 -3
  604. package/dist/spec/domain/index.js.map +0 -1
  605. package/dist/spec/domain/model/ContentState.d.ts +0 -8
  606. package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
  607. package/dist/spec/domain/model/ContentState.js +0 -7
  608. package/dist/spec/domain/model/ContentState.js.map +0 -1
  609. package/dist/spec/domain/model/Entry.d.ts +0 -29
  610. package/dist/spec/domain/model/Entry.d.ts.map +0 -1
  611. package/dist/spec/domain/model/Entry.js +0 -16
  612. package/dist/spec/domain/model/Entry.js.map +0 -1
  613. package/dist/spec/domain/model/Locale.d.ts +0 -30
  614. package/dist/spec/domain/model/Locale.d.ts.map +0 -1
  615. package/dist/spec/domain/model/Locale.js +0 -33
  616. package/dist/spec/domain/model/Locale.js.map +0 -1
  617. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
  618. package/dist/spec/domain/model/ManifestGrammar.js +0 -153
  619. package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
  620. package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
  621. package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
  622. package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
  623. package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
  624. package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
  625. package/dist/spec/domain/model/RuntimePlan.js +0 -4
  626. package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
  627. package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
  628. package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
  629. package/dist/spec/domain/model/SiteConfig.js +0 -13
  630. package/dist/spec/domain/model/SiteConfig.js.map +0 -1
  631. package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
  632. package/dist/spec/domain/model/SqlIr.js +0 -95
  633. package/dist/spec/domain/model/SqlIr.js.map +0 -1
  634. package/dist/spec/domain/model/index.d.ts +0 -14
  635. package/dist/spec/domain/model/index.d.ts.map +0 -1
  636. package/dist/spec/domain/model/index.js +0 -14
  637. package/dist/spec/domain/model/index.js.map +0 -1
  638. package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
  639. package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
  640. package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
  641. package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
  642. package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
  643. package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
  644. package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
  645. package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
  646. package/dist/spec/domain/service/EntryDataValidator.js +0 -88
  647. package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
  648. package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
  649. package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
  650. package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
  651. package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
  652. package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
  653. package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
  654. package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
  655. package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
  656. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
  657. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
  658. package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
  659. package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
  660. package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
  661. package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
  662. package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
  663. package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
  664. package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
  665. package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
  666. package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
  667. package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
  668. package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
  669. package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
  670. package/dist/spec/domain/service/ManifestLinker.js +0 -92
  671. package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
  672. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
  673. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
  674. package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
  675. package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
  676. package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
  677. package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
  678. package/dist/spec/domain/service/ManifestParser.js +0 -203
  679. package/dist/spec/domain/service/ManifestParser.js.map +0 -1
  680. package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
  681. package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
  682. package/dist/spec/domain/service/ManifestPartition.js +0 -19
  683. package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
  684. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
  685. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
  686. package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
  687. package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
  688. package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
  689. package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
  690. package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
  691. package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
  692. package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
  693. package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
  694. package/dist/spec/domain/service/McpToolNaming.js +0 -50
  695. package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
  696. package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
  697. package/dist/spec/domain/service/PlanFingerprint.js +0 -14
  698. package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
  699. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
  700. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
  701. package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
  702. package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
  703. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -44
  704. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
  705. package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -333
  706. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
  707. package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
  708. package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
  709. package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
  710. package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
  711. package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
  712. package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
  713. package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
  714. package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
  715. package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
  716. package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
  717. package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
  718. package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
  719. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
  720. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
  721. package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
  722. package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
  723. package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
  724. package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
  725. package/dist/spec/domain/service/SqlClassify.js +0 -42
  726. package/dist/spec/domain/service/SqlClassify.js.map +0 -1
  727. package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
  728. package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
  729. package/dist/spec/domain/service/SqlRefusal.js +0 -20
  730. package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
  731. package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
  732. package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
  733. package/dist/spec/domain/service/SqlTypes.js +0 -110
  734. package/dist/spec/domain/service/SqlTypes.js.map +0 -1
  735. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
  736. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
  737. package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
  738. package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
  739. package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
  740. package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
  741. package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
  742. package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
  743. package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
  744. package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
  745. package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
  746. package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
  747. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
  748. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
  749. package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
  750. package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
  751. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
  752. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
  753. package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -58
  754. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
  755. package/dist/spec/domain/service/index.d.ts +0 -24
  756. package/dist/spec/domain/service/index.d.ts.map +0 -1
  757. package/dist/spec/domain/service/index.js +0 -24
  758. package/dist/spec/domain/service/index.js.map +0 -1
  759. package/dist/spec/index.d.ts +0 -10
  760. package/dist/spec/index.d.ts.map +0 -1
  761. package/dist/spec/index.js +0 -12
  762. package/dist/spec/index.js.map +0 -1
  763. package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
  764. package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
  765. package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
  766. package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
  767. package/dist/spec/infrastructure/index.d.ts +0 -2
  768. package/dist/spec/infrastructure/index.d.ts.map +0 -1
  769. package/dist/spec/infrastructure/index.js +0 -2
  770. package/dist/spec/infrastructure/index.js.map +0 -1
  771. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
  772. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
  773. package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
  774. package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
  775. package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
  776. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
  777. package/dist/spec/infrastructure/sql/compilePlan.js +0 -287
  778. package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
  779. package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
  780. package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
  781. package/dist/spec/infrastructure/sql/compileSql.js +0 -92
  782. package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
  783. package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
  784. package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
  785. package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
  786. package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
  787. package/dist/spec/infrastructure/sql/index.d.ts +0 -4
  788. package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
  789. package/dist/spec/infrastructure/sql/index.js +0 -4
  790. package/dist/spec/infrastructure/sql/index.js.map +0 -1
  791. package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
  792. package/dist/spec/kernel/diagnostic.js +0 -301
  793. package/dist/spec/kernel/diagnostic.js.map +0 -1
  794. package/dist/spec/kernel/index.d.ts +0 -8
  795. package/dist/spec/kernel/index.d.ts.map +0 -1
  796. package/dist/spec/kernel/index.js +0 -8
  797. package/dist/spec/kernel/index.js.map +0 -1
  798. package/dist/spec/usecase/EmitTypes.d.ts +0 -22
  799. package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
  800. package/dist/spec/usecase/EmitTypes.js +0 -182
  801. package/dist/spec/usecase/EmitTypes.js.map +0 -1
  802. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
  803. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
  804. package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
  805. package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
  806. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
  807. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
  808. package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
  809. package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
  810. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
  811. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
  812. package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
  813. package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
  814. package/dist/spec/usecase/dto/index.d.ts +0 -3
  815. package/dist/spec/usecase/dto/index.d.ts.map +0 -1
  816. package/dist/spec/usecase/dto/index.js +0 -3
  817. package/dist/spec/usecase/dto/index.js.map +0 -1
  818. package/dist/spec/usecase/index.d.ts +0 -10
  819. package/dist/spec/usecase/index.d.ts.map +0 -1
  820. package/dist/spec/usecase/index.js +0 -10
  821. package/dist/spec/usecase/index.js.map +0 -1
  822. package/dist/testing/cases/before-hook.d.ts +0 -4
  823. package/dist/testing/cases/before-hook.d.ts.map +0 -1
  824. package/dist/testing/cases/before-hook.js +0 -71
  825. package/dist/testing/cases/before-hook.js.map +0 -1
  826. package/dist/testing/cases/corpus.d.ts +0 -14
  827. package/dist/testing/cases/corpus.d.ts.map +0 -1
  828. package/dist/testing/cases/corpus.js +0 -93
  829. package/dist/testing/cases/corpus.js.map +0 -1
  830. package/dist/testing/cases/policy.d.ts +0 -87
  831. package/dist/testing/cases/policy.d.ts.map +0 -1
  832. package/dist/testing/cases/policy.js +0 -143
  833. package/dist/testing/cases/policy.js.map +0 -1
  834. package/dist/testing/cases/printer.d.ts +0 -4
  835. package/dist/testing/cases/printer.d.ts.map +0 -1
  836. package/dist/testing/cases/printer.js +0 -34
  837. package/dist/testing/cases/printer.js.map +0 -1
  838. package/dist/testing/cases/report-view.d.ts +0 -5
  839. package/dist/testing/cases/report-view.d.ts.map +0 -1
  840. package/dist/testing/cases/report-view.js +0 -51
  841. package/dist/testing/cases/report-view.js.map +0 -1
  842. package/dist/testing/cases/requisition.d.ts +0 -4
  843. package/dist/testing/cases/requisition.d.ts.map +0 -1
  844. package/dist/testing/cases/requisition.js +0 -38
  845. package/dist/testing/cases/requisition.js.map +0 -1
  846. package/dist/testing/cases/search-places.d.ts +0 -4
  847. package/dist/testing/cases/search-places.d.ts.map +0 -1
  848. package/dist/testing/cases/search-places.js +0 -60
  849. package/dist/testing/cases/search-places.js.map +0 -1
  850. package/dist/testing/cases/stock.d.ts +0 -4
  851. package/dist/testing/cases/stock.d.ts.map +0 -1
  852. package/dist/testing/cases/stock.js +0 -35
  853. package/dist/testing/cases/stock.js.map +0 -1
  854. package/dist/testing/cases/store.d.ts +0 -4
  855. package/dist/testing/cases/store.d.ts.map +0 -1
  856. package/dist/testing/cases/store.js +0 -100
  857. package/dist/testing/cases/store.js.map +0 -1
  858. package/dist/testing/harness.d.ts +0 -94
  859. package/dist/testing/harness.d.ts.map +0 -1
  860. package/dist/testing/harness.js +0 -168
  861. package/dist/testing/harness.js.map +0 -1
  862. package/dist/testing/index.d.ts.map +0 -1
  863. package/dist/testing/index.js.map +0 -1
  864. package/dist/testing/report.d.ts +0 -15
  865. package/dist/testing/report.d.ts.map +0 -1
  866. package/dist/testing/report.js +0 -22
  867. package/dist/testing/report.js.map +0 -1
  868. package/dist/web/createRestSurface.d.ts +0 -7
  869. package/dist/web/createRestSurface.d.ts.map +0 -1
  870. package/dist/web/createRestSurface.js +0 -41
  871. package/dist/web/createRestSurface.js.map +0 -1
  872. package/dist/web/index.d.ts +0 -2
  873. package/dist/web/index.d.ts.map +0 -1
  874. package/dist/web/index.js +0 -2
  875. package/dist/web/index.js.map +0 -1
  876. package/docs/adr/0001-four-atom-manifest-model.md +0 -440
  877. package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
  878. package/docs/adr/0007-ai-as-primary-author.md +0 -473
  879. package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
  880. package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
  881. package/docs/adr/0010-locale-and-translates.md +0 -453
  882. package/docs/adr/0011-adapter-port-spec.md +0 -281
  883. package/docs/adr/0012-views-as-public-rest.md +0 -161
  884. package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
  885. package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -939
  886. package/docs/adr/0016-site-semantic-layer.md +0 -70
  887. package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
  888. package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
  889. package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
  890. package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
  891. package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
  892. package/docs/adr/0022-caller-observed-version-occ.md +0 -212
  893. package/docs/adr/0023-port-failure-contract.md +0 -69
  894. package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
  895. package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
  896. package/docs/adr/0026-progressive-generate.md +0 -36
  897. package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
  898. package/docs/adr/0028-schema-ttl-expiry.md +0 -33
  899. package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
  900. package/docs/adr/0030-store.md +0 -40
  901. package/docs/adr/0031-host-cloud-core-contract.md +0 -102
  902. package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -384
  903. package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
  904. package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
  905. package/docs/adr/0035-sql-dialects.md +0 -154
  906. package/docs/adr/0036-host-and-dialect.md +0 -65
  907. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -125
  908. package/docs/adr/0038-bun-native-host.md +0 -63
  909. package/docs/adr/0039-postgresql-is-native.md +0 -130
  910. package/docs/adr/README.md +0 -98
  911. package/docs/adr/adr-lite-1376-admin-extensions.md +0 -330
  912. package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
  913. package/docs/adr/adr-lite-808-route-readiness.md +0 -47
  914. package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
  915. package/docs/adr/adr-lite-812-native-parity.md +0 -150
  916. package/docs/adr/adr-lite-823-home-statistics.md +0 -64
  917. package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
  918. package/docs/adr/adr-lite-845-frontend-client.md +0 -38
  919. package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
  920. package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
  921. package/docs/examples/commerce-inventory.md +0 -498
  922. package/docs/examples/commerce.md +0 -254
  923. package/docs/examples/guarded-api.md +0 -238
  924. package/docs/examples/intake-hooks.md +0 -237
  925. package/docs/examples/intake.md +0 -127
  926. package/docs/examples/legal-documents.md +0 -218
  927. package/docs/examples/procurement.md +0 -226
  928. package/docs/examples/publication.md +0 -211
  929. package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
  930. package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
  931. package/docs/examples/reference-service/README.md +0 -33
  932. package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
  933. package/docs/examples/reference-service/manifests/orders.yaml +0 -120
  934. package/docs/examples/reference-service/mantle.config.json +0 -1
  935. package/docs/examples/reference-service/package.json +0 -27
  936. package/docs/examples/reference-service/smoke.mjs +0 -160
  937. package/docs/examples/reference-service/src/handlers.ts +0 -36
  938. package/docs/examples/reference-service/src/index.ts +0 -33
  939. package/docs/examples/reference-service/src/service.ts +0 -78
  940. package/docs/examples/reference-service/wrangler.jsonc +0 -26
  941. package/docs/examples/reservation.md +0 -142
  942. /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
@@ -1,532 +0,0 @@
1
- /**
2
- * Admin extensions (ADR-lite 1376): a declaration that is plain data, server handlers that are code, and an optional
3
- * same-origin module with the renderers. Admin validates every declaration at construction, sends the caller the
4
- * contributions their role reaches, and checks the session and role again on every extension route.
5
- */
6
- import { DiagnosticError, makeDiagnostic } from "../spec/kernel/index.js";
7
- import { UI_EXTENSION_REF, isStaffRole, meetsRole } from "../spec/domain/index.js";
8
- import { json, readJsonObject, wireError } from "../core/wire.js";
9
- export const ADMIN_EXTENSION_TARGETS = {
10
- action: ["record/v1", "list.selection/v1", "list.toolbar/v1"],
11
- panel: ["record.sidebar/v1", "home/v1"],
12
- field: ["field.input/v1", "field.cell/v1"],
13
- };
14
- const P = "admin";
15
- const ID = /^[a-z][a-z0-9-]{0,62}$/;
16
- const MODULE = /^\/(?![/\\])[^\s?#]*$/;
17
- const INTEGRITY = /^sha(256|384|512)-[A-Za-z0-9+/]+={0,2}$/;
18
- const ROLE_ORDER = ["contributor", "editor", "owner"];
19
- const invalid = (code, path, message, value) => new DiagnosticError(makeDiagnostic({ code, phase: "boot", severity: "error", path, message, ...(value === undefined ? {} : { value }) }));
20
- const isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
21
- const isText = (v) => (typeof v === "string" && v.length > 0) || (isObject(v) && Object.keys(v).length > 0 && Object.values(v).every((x) => typeof x === "string" && x.length > 0));
22
- const keysWithin = (o, allowed) => Object.keys(o).find((k) => !allowed.includes(k));
23
- // ---------- the form subset (settings schemas and field options) ----------
24
- const FORM_TYPES = ["string", "number", "integer", "boolean"];
25
- const FORM_PROPERTY_KEYS = ["type", "title", "description", "default", "enum", "oneOf", "minimum", "maximum", "minLength", "maxLength"];
26
- /** Why `schema` is outside the form subset Admin renders and checks, or `null`. */
27
- export function formSchemaProblem(schema) {
28
- if (!isObject(schema) || schema["type"] !== "object" || !isObject(schema["properties"]))
29
- return "an object schema with properties";
30
- const extra = keysWithin(schema, ["type", "properties", "required", "title", "description", "additionalProperties"]);
31
- if (extra)
32
- return `no '${extra}' at the top level`;
33
- if (schema["additionalProperties"] !== undefined && schema["additionalProperties"] !== false)
34
- return "additionalProperties false or absent";
35
- const props = schema["properties"];
36
- const names = Object.keys(props);
37
- if (names.length === 0 || names.length > 64)
38
- return "1 to 64 properties";
39
- if (names.includes("__proto__"))
40
- return "no property named __proto__";
41
- const required = schema["required"];
42
- if (required !== undefined && (!Array.isArray(required) || required.some((r) => typeof r !== "string" || !names.includes(r))))
43
- return "required naming declared properties";
44
- for (const [name, p] of Object.entries(props)) {
45
- if (!isObject(p) || typeof p["type"] !== "string" || !FORM_TYPES.includes(p["type"]))
46
- return `property '${name}' typed string, number, integer or boolean`;
47
- const bad = keysWithin(p, FORM_PROPERTY_KEYS);
48
- if (bad)
49
- return `property '${name}' without '${bad}'`;
50
- if (p["title"] !== undefined && !isText(p["title"]))
51
- return `property '${name}' with a text title`;
52
- if (p["description"] !== undefined && !isText(p["description"]))
53
- return `property '${name}' with a text description`;
54
- if (p["enum"] !== undefined && (!Array.isArray(p["enum"]) || p["enum"].length === 0 || p["enum"].some((x) => !matchesType(p["type"], x))))
55
- return `property '${name}' with an enum of its type`;
56
- if (p["oneOf"] !== undefined && (!Array.isArray(p["oneOf"]) || p["oneOf"].length === 0 || p["oneOf"].some((o) => !isObject(o) || keysWithin(o, ["const", "title"]) || !matchesType(p["type"], o["const"]) || (o["title"] !== undefined && !isText(o["title"])))))
57
- return `property '${name}' with a oneOf of { const, title }`;
58
- for (const k of ["minimum", "maximum", "minLength", "maxLength"])
59
- if (p[k] !== undefined && (typeof p[k] !== "number" || !Number.isFinite(p[k])))
60
- return `property '${name}' with a numeric ${k}`;
61
- if (p["default"] !== undefined && checkValue(p, p["default"]) !== null)
62
- return `property '${name}' with a default it accepts`;
63
- }
64
- return null;
65
- }
66
- function matchesType(type, v) {
67
- if (type === "string")
68
- return typeof v === "string";
69
- if (type === "boolean")
70
- return typeof v === "boolean";
71
- if (type === "integer")
72
- return Number.isInteger(v);
73
- return typeof v === "number" && Number.isFinite(v);
74
- }
75
- function checkValue(p, v) {
76
- const type = p["type"];
77
- if (!matchesType(type, v))
78
- return type === "integer" ? "an integer" : `a ${type}`;
79
- if (Array.isArray(p["enum"]) && !p["enum"].includes(v))
80
- return "one of the listed values";
81
- if (Array.isArray(p["oneOf"]) && !p["oneOf"].some((o) => o["const"] === v))
82
- return "one of the listed values";
83
- if (typeof v === "number") {
84
- if (typeof p["minimum"] === "number" && v < p["minimum"])
85
- return `at least ${p["minimum"]}`;
86
- if (typeof p["maximum"] === "number" && v > p["maximum"])
87
- return `at most ${p["maximum"]}`;
88
- }
89
- if (typeof v === "string") {
90
- const length = [...v].length;
91
- if (typeof p["minLength"] === "number" && length < p["minLength"])
92
- return `at least ${p["minLength"]} characters`;
93
- if (typeof p["maxLength"] === "number" && length > p["maxLength"])
94
- return `at most ${p["maxLength"]} characters`;
95
- }
96
- return null;
97
- }
98
- /** Checks `value` against a form-subset `schema`: the errors by field, empty when it passes. */
99
- export function checkFormValue(schema, value) {
100
- if (!isObject(value))
101
- return { "": "an object" };
102
- const props = (schema.properties ?? {});
103
- // own properties only, and no prototype: `constructor` or `__proto__` is a field name like any other
104
- const errors = Object.create(null);
105
- const has = (name) => Object.hasOwn(value, name) && value[name] !== undefined;
106
- for (const k of Object.keys(value))
107
- if (!Object.hasOwn(props, k))
108
- errors[k] = "no such field";
109
- for (const name of schema.required ?? [])
110
- if (!has(name))
111
- errors[name] = "required";
112
- for (const [name, p] of Object.entries(props)) {
113
- // null is a value, and none of the form subset's types accepts it
114
- if (!has(name) || Object.hasOwn(errors, name))
115
- continue;
116
- const problem = checkValue(p, value[name]);
117
- if (problem)
118
- errors[name] = `expected ${problem}`;
119
- }
120
- return errors;
121
- }
122
- // ---------- declarations ----------
123
- function checkWhen(when, path) {
124
- if (when === undefined)
125
- return;
126
- if (!isObject(when) || keysWithin(when, ["schema", "field", "format"]) || Object.keys(when).length === 0)
127
- throw invalid("UI_EXTENSION_INVALID", path, "when has schema, field or format", when);
128
- for (const [k, v] of Object.entries(when)) {
129
- if (!Array.isArray(v) || v.length === 0 || v.length > 64 || v.some((x) => typeof x !== "string" || x.length === 0))
130
- throw invalid("UI_EXTENSION_INVALID", `${path}/${k}`, `when.${k} is a non-empty list of names`, v);
131
- }
132
- }
133
- const CONTRIBUTION_KEYS = {
134
- pages: ["id", "title", "role", "nav"],
135
- settings: ["id", "title", "role", "schema"],
136
- actions: ["id", "title", "role", "target", "presentation", "destructive", "when"],
137
- panels: ["id", "title", "role", "target", "when"],
138
- fields: ["id", "target", "role", "when", "optionsSchema"],
139
- };
140
- const KINDS = Object.keys(CONTRIBUTION_KEYS);
141
- /** Validates every declaration and their handlers; throws `UI_EXTENSION_INVALID` naming the first problem. */
142
- export function validateAdminExtensions(extensions) {
143
- if (!Array.isArray(extensions))
144
- throw invalid("UI_EXTENSION_INVALID", "admin-extensions", "extensions is a list");
145
- const seen = new Set();
146
- for (const ext of extensions) {
147
- const at = `admin-extension:${isObject(ext) && typeof ext["id"] === "string" ? ext["id"] : "?"}`;
148
- if (!isObject(ext))
149
- throw invalid("UI_EXTENSION_INVALID", at, "an extension is an object");
150
- const extra = keysWithin(ext, ["apiVersion", "id", "title", "module", "integrity", "source", "contributes", "handlers"]);
151
- if (extra)
152
- throw invalid("UI_EXTENSION_INVALID", `${at}/${extra}`, `unknown key '${extra}'`);
153
- if (ext["apiVersion"] !== 1)
154
- throw invalid("UI_EXTENSION_INVALID", `${at}/apiVersion`, "apiVersion 1", ext["apiVersion"]);
155
- if (typeof ext["id"] !== "string" || !ID.test(ext["id"]))
156
- throw invalid("UI_EXTENSION_INVALID", `${at}/id`, "a kebab-case id", ext["id"]);
157
- if (seen.has(ext["id"]))
158
- throw invalid("UI_EXTENSION_INVALID", `${at}/id`, `extension id '${ext["id"]}' is used twice`, ext["id"]);
159
- seen.add(ext["id"]);
160
- if (!isText(ext["title"]))
161
- throw invalid("UI_EXTENSION_INVALID", `${at}/title`, "a title");
162
- // same origin only: an absolute path, never a scheme-relative or external URL
163
- if (ext["module"] !== undefined && (typeof ext["module"] !== "string" || !MODULE.test(ext["module"])))
164
- throw invalid("UI_EXTENSION_INVALID", `${at}/module`, "a same-origin absolute path", ext["module"]);
165
- if (ext["source"] !== undefined && typeof ext["source"] !== "string" && typeof ext["source"] !== "function")
166
- throw invalid("UI_EXTENSION_INVALID", `${at}/source`, "source is the module's code or a function returning it");
167
- if (ext["source"] !== undefined && ext["module"] !== undefined)
168
- throw invalid("UI_EXTENSION_INVALID", `${at}/source`, "either module (served by the host) or source (served by Admin), not both");
169
- if (ext["integrity"] !== undefined && (typeof ext["integrity"] !== "string" || !INTEGRITY.test(ext["integrity"]) || ext["module"] === undefined))
170
- throw invalid("UI_EXTENSION_INVALID", `${at}/integrity`, "sha256-, sha384- or sha512- integrity for a module", ext["integrity"]);
171
- const contributes = ext["contributes"];
172
- if (!isObject(contributes))
173
- throw invalid("UI_EXTENSION_INVALID", `${at}/contributes`, "contributes is an object");
174
- const extraKind = keysWithin(contributes, KINDS);
175
- if (extraKind)
176
- throw invalid("UI_EXTENSION_INVALID", `${at}/contributes/${extraKind}`, `unknown contribution kind '${extraKind}'`);
177
- const ids = new Set();
178
- let count = 0;
179
- for (const kind of KINDS) {
180
- const list = contributes[kind];
181
- if (list === undefined)
182
- continue;
183
- if (!Array.isArray(list))
184
- throw invalid("UI_EXTENSION_INVALID", `${at}/contributes/${kind}`, `${kind} is a list`);
185
- for (const c of list) {
186
- const cat = `${at}/${kind}/${isObject(c) && typeof c["id"] === "string" ? c["id"] : "?"}`;
187
- if (!isObject(c))
188
- throw invalid("UI_EXTENSION_INVALID", cat, "a contribution is an object");
189
- const bad = keysWithin(c, CONTRIBUTION_KEYS[kind]);
190
- if (bad)
191
- throw invalid("UI_EXTENSION_INVALID", `${cat}/${bad}`, `unknown key '${bad}'`);
192
- if (typeof c["id"] !== "string" || !ID.test(c["id"]))
193
- throw invalid("UI_EXTENSION_INVALID", `${cat}/id`, "a kebab-case id", c["id"]);
194
- // one namespace per extension, so `<extension>/<contribution>` names exactly one
195
- if (ids.has(c["id"]))
196
- throw invalid("UI_EXTENSION_INVALID", `${cat}/id`, `contribution id '${c["id"]}' is used twice`, c["id"]);
197
- ids.add(c["id"]);
198
- count++;
199
- if (kind !== "fields" && !isText(c["title"]))
200
- throw invalid("UI_EXTENSION_INVALID", `${cat}/title`, "a title");
201
- if ((kind !== "fields" || c["role"] !== undefined) && (typeof c["role"] !== "string" || !isStaffRole(c["role"])))
202
- throw invalid("UI_EXTENSION_INVALID", `${cat}/role`, "a staff role", c["role"]);
203
- if (kind === "actions" || kind === "panels" || kind === "fields") {
204
- const targets = ADMIN_EXTENSION_TARGETS[kind === "actions" ? "action" : kind === "panels" ? "panel" : "field"];
205
- if (!targets.includes(c["target"]))
206
- throw invalid("UI_EXTENSION_INVALID", `${cat}/target`, `one of ${targets.join(", ")}`, c["target"]);
207
- checkWhen(c["when"], `${cat}/when`);
208
- }
209
- if (kind === "pages" && c["nav"] !== undefined) {
210
- const nav = c["nav"];
211
- if (!isObject(nav) || keysWithin(nav, ["group", "order"]) || (nav["group"] !== "more" && nav["group"] !== "settings") || (nav["order"] !== undefined && !Number.isInteger(nav["order"])))
212
- throw invalid("UI_EXTENSION_INVALID", `${cat}/nav`, "nav { group: more | settings, order? }", nav);
213
- }
214
- if (kind === "actions") {
215
- if (!["run", "confirm", "dialog"].includes(c["presentation"]))
216
- throw invalid("UI_EXTENSION_INVALID", `${cat}/presentation`, "run, confirm or dialog", c["presentation"]);
217
- if (c["destructive"] !== undefined && typeof c["destructive"] !== "boolean")
218
- throw invalid("UI_EXTENSION_INVALID", `${cat}/destructive`, "a boolean", c["destructive"]);
219
- }
220
- const formKey = kind === "settings" ? "schema" : kind === "fields" ? "optionsSchema" : null;
221
- if (formKey && (kind === "settings" || c[formKey] !== undefined)) {
222
- const problem = formSchemaProblem(c[formKey]);
223
- if (problem)
224
- throw invalid("UI_EXTENSION_INVALID", `${cat}/${formKey}`, `the form subset: ${problem}`);
225
- }
226
- const rendered = kind === "pages" || kind === "panels" || kind === "fields" || (kind === "actions" && c["presentation"] === "dialog");
227
- if (rendered && ext["module"] === undefined && ext["source"] === undefined)
228
- throw invalid("UI_EXTENSION_INVALID", `${at}/module`, `'${c["id"]}' renders, so the extension needs a module or a source`);
229
- }
230
- }
231
- if (count === 0)
232
- throw invalid("UI_EXTENSION_INVALID", `${at}/contributes`, "at least one contribution");
233
- checkHandlers(ext, at);
234
- }
235
- }
236
- function checkHandlers(ext, at) {
237
- const raw = ext.handlers ?? {};
238
- if (!isObject(raw) || keysWithin(raw, ["api", "settings", "actions"]))
239
- throw invalid("UI_EXTENSION_INVALID", `${at}/handlers`, "handlers has api, settings and actions");
240
- const h = raw;
241
- if (h.api !== undefined && typeof h.api !== "function")
242
- throw invalid("UI_EXTENSION_INVALID", `${at}/handlers/api`, "a function");
243
- const settings = ext.contributes.settings ?? [];
244
- for (const s of settings) {
245
- const handler = h.settings?.[s.id];
246
- if (typeof handler?.load !== "function" || typeof handler.save !== "function")
247
- throw invalid("UI_EXTENSION_INVALID", `${at}/handlers/settings/${s.id}`, `settings '${s.id}' needs load and save`);
248
- }
249
- for (const id of Object.keys(h.settings ?? {}))
250
- if (!settings.some((s) => s.id === id))
251
- throw invalid("UI_EXTENSION_INVALID", `${at}/handlers/settings/${id}`, `no settings contribution '${id}'`);
252
- const server = (ext.contributes.actions ?? []).filter((a) => a.presentation !== "dialog");
253
- for (const a of server)
254
- if (typeof h.actions?.[a.id]?.run !== "function")
255
- throw invalid("UI_EXTENSION_INVALID", `${at}/handlers/actions/${a.id}`, `action '${a.id}' needs run`);
256
- for (const id of Object.keys(h.actions ?? {}))
257
- if (!server.some((a) => a.id === id))
258
- throw invalid("UI_EXTENSION_INVALID", `${at}/handlers/actions/${id}`, `no run or confirm action '${id}'`);
259
- }
260
- // ---------- uiSchema references (§1b) ----------
261
- /** Every `<extension>/<contribution>` the plan's `uiSchema` names, with the target its key needs. */
262
- export function planUiExtensionRefs(plan) {
263
- const refs = [];
264
- const fields = (owner, ui) => {
265
- for (const [name, c] of Object.entries(isObject(ui?.["fields"]) ? ui["fields"] : {})) {
266
- if (isObject(c) && typeof c["widget"] === "string" && UI_EXTENSION_REF.test(c["widget"]))
267
- refs.push({ path: `${owner}/uiSchema/fields/${name}/widget`, ref: c["widget"], target: "field.input/v1", ...(c["options"] === undefined ? {} : { options: c["options"] }) });
268
- }
269
- };
270
- const cells = (owner, ui) => {
271
- const list = ui?.["list"];
272
- for (const [name, ref] of Object.entries(isObject(list) && isObject(list["cells"]) ? list["cells"] : {}))
273
- if (typeof ref === "string")
274
- refs.push({ path: `${owner}/uiSchema/list/cells/${name}`, ref, target: "field.cell/v1" });
275
- };
276
- for (const [name, s] of Object.entries(plan.schemas)) {
277
- const owner = `schema:${s.name ?? name}`;
278
- const ui = s.uiSchema;
279
- fields(owner, ui);
280
- cells(owner, ui);
281
- const panels = ui?.["panels"];
282
- if (Array.isArray(panels))
283
- for (const ref of panels)
284
- if (typeof ref === "string")
285
- refs.push({ path: `${owner}/uiSchema/panels`, ref, target: "record.sidebar/v1" });
286
- }
287
- for (const [name, p] of Object.entries(plan.procedures))
288
- fields(`procedure:${name}`, p.uiSchema);
289
- for (const [name, v] of Object.entries(plan.views))
290
- cells(`view:${name}`, v.uiSchema);
291
- return refs;
292
- }
293
- /** Checks that each contribution the plan names exists, has the target its key needs, and accepts its `options`. */
294
- export function checkPlanUiExtensions(plan, extensions) {
295
- for (const { path, ref, target, options } of planUiExtensionRefs(plan)) {
296
- const [, extId, cId] = UI_EXTENSION_REF.exec(ref);
297
- const ext = extensions.find((e) => e.id === extId);
298
- const c = ext ? [...(ext.contributes.fields ?? []), ...(ext.contributes.panels ?? [])].find((x) => x.id === cId) : undefined;
299
- if (!c)
300
- throw invalid("UI_EXTENSION_UNKNOWN", path, `no Admin extension contribution '${ref}'`, ref);
301
- if (c.target !== target)
302
- throw invalid("UI_EXTENSION_TARGET", path, `'${ref}' is a ${c.target} contribution; this key needs ${target}`, ref);
303
- if (options === undefined)
304
- continue;
305
- const schema = c.optionsSchema;
306
- if (!schema)
307
- throw invalid("UI_EXTENSION_OPTIONS", path, `'${ref}' takes no options`, options);
308
- const errors = checkFormValue(schema, options);
309
- const first = Object.entries(errors)[0];
310
- if (first)
311
- throw invalid("UI_EXTENSION_OPTIONS", `${path}/${first[0]}`, `options for '${ref}': ${first[0] || "options"} ${first[1]}`, options);
312
- }
313
- }
314
- // ---------- what a caller sees ----------
315
- const fieldRole = (f) => f.role ?? "contributor";
316
- /** The declarations (never handlers or integrity) of the contributions `role` reaches; extensions with none are left out. */
317
- export function adminExtensionsFor(extensions, role, basePath = "/admin") {
318
- return extensions.flatMap((e) => {
319
- const reach = (xs, roleOf) => (xs ?? []).filter((x) => meetsRole(role, roleOf(x)));
320
- const contributes = {
321
- pages: reach(e.contributes.pages, (x) => x.role),
322
- settings: reach(e.contributes.settings, (x) => x.role),
323
- actions: reach(e.contributes.actions, (x) => x.role),
324
- panels: reach(e.contributes.panels, (x) => x.role),
325
- fields: reach(e.contributes.fields, fieldRole),
326
- };
327
- if (Object.values(contributes).every((xs) => xs.length === 0))
328
- return [];
329
- const module = e.module ?? (e.source !== undefined ? extensionSourcePath(basePath, e.id) : undefined);
330
- return [{ id: e.id, title: e.title, ...(module ? { module } : {}), contributes }];
331
- });
332
- }
333
- export const extensionSourcePath = (basePath, id) => `${basePath}/extensions/${id}.js`;
334
- const sources = new WeakMap();
335
- /** The code Admin serves for a `source` extension and its sha384 integrity, read once. */
336
- export function extensionSource(e) {
337
- if (e.source === undefined)
338
- return null;
339
- let found = sources.get(e);
340
- if (!found) {
341
- found = (async () => {
342
- const code = typeof e.source === "function" ? await e.source() : e.source;
343
- if (typeof code !== "string" || code.length === 0)
344
- throw invalid("UI_EXTENSION_INVALID", `admin-extension:${e.id}/source`, "source returned no code");
345
- const digest = new Uint8Array(await crypto.subtle.digest("SHA-384", new TextEncoder().encode(code)));
346
- return { code, integrity: `sha384-${btoa(String.fromCharCode(...digest))}` };
347
- })();
348
- // a failed read may succeed later (a deploy, a transient store error): do not keep the failure
349
- found.catch(() => sources.delete(e));
350
- sources.set(e, found);
351
- }
352
- return found;
353
- }
354
- /** `{basePath}/extensions/{id}.js`: a `source` extension's module, for staff whose role reaches one of its contributions. */
355
- export async function adminExtensionModule(extensions, id, caller) {
356
- const ext = extensions.find((e) => e.id === id && e.source !== undefined);
357
- if (!ext)
358
- throw wireError("NOT_FOUND", "no such route", P);
359
- const role = apiRole(ext);
360
- if (!meetsRole(caller.role, role))
361
- throw denied(role);
362
- const { code } = await extensionSource(ext);
363
- return new Response(code, { headers: { "content-type": "text/javascript; charset=utf-8", "cache-control": "private, no-cache", "x-content-type-options": "nosniff" } });
364
- }
365
- /** The lowest role any of the extension's contributions needs: whoever sees one of them may call its API. */
366
- function apiRole(e) {
367
- const roles = [
368
- ...KINDS.filter((k) => k !== "fields").flatMap((k) => (e.contributes[k] ?? []).map((c) => c.role)),
369
- ...(e.contributes.fields ?? []).map(fieldRole),
370
- ];
371
- return ROLE_ORDER.find((r) => roles.includes(r)) ?? "owner";
372
- }
373
- const denied = (role) => wireError("AUTH_DENIED", `This needs the ${role} role.`, P);
374
- const noStore = (out) => {
375
- // like every Admin API answer, staff data is not cached unless the extension says otherwise
376
- if (out.headers.has("cache-control"))
377
- return out;
378
- const headers = new Headers(out.headers);
379
- headers.set("cache-control", "no-store");
380
- return new Response(out.body, { status: out.status, statusText: out.statusText, headers });
381
- };
382
- function readRef(v, path) {
383
- if (!isObject(v) || typeof v["schema"] !== "string" || typeof v["id"] !== "string" || !v["id"] || (v["version"] !== undefined && !Number.isInteger(v["version"])))
384
- throw wireError("INPUT_VALIDATION_FAILED", `${path} is { schema, id, version? }`, P);
385
- return { schema: v["schema"], id: v["id"], ...(v["version"] === undefined ? {} : { version: v["version"] }) };
386
- }
387
- /**
388
- * Answers `{basePath}/api/x/{extension}/...` after Admin's session checks: `settings/{id}` (GET loads, PATCH saves),
389
- * `actions/{id}` (POST runs) and `api/{path}` (the extension's own API). `null` when the path is not an extension's.
390
- */
391
- export async function adminExtensionRoute(extensions, request, rest, caller) {
392
- const m = /^([^/]+)\/(settings|actions|api)(?:\/(.*))?$/.exec(rest);
393
- const ext = m ? extensions.find((e) => e.id === m[1]) : undefined;
394
- if (!m || !ext)
395
- throw wireError("NOT_FOUND", "no such route", P);
396
- const [, , kind, tail = ""] = m;
397
- const NO_STORE = { "cache-control": "no-store" };
398
- if (kind === "api") {
399
- const role = apiRole(ext);
400
- if (!meetsRole(caller.role, role))
401
- throw denied(role);
402
- const out = ext.handlers?.api ? await ext.handlers.api(request, { caller, extension: ext.id, path: tail }) : null;
403
- if (!out)
404
- throw wireError("NOT_FOUND", "no such route", P);
405
- return noStore(out);
406
- }
407
- if (kind === "settings") {
408
- const s = ext.contributes.settings?.find((x) => x.id === tail);
409
- const handler = s && ext.handlers?.settings?.[s.id];
410
- if (!s || !handler)
411
- throw wireError("NOT_FOUND", "no such route", P);
412
- if (!meetsRole(caller.role, s.role))
413
- throw denied(s.role);
414
- if (request.method === "GET")
415
- return json({ value: (await handler.load(caller)) ?? null }, 200, NO_STORE);
416
- // PATCH, as Admin's own site settings: the body is the whole value, checked against the schema
417
- if (request.method !== "PATCH")
418
- throw wireError("METHOD_NOT_ALLOWED", "settings take GET or PATCH", P);
419
- const value = (await readJsonObject(request, P))["value"];
420
- const errors = checkFormValue(s.schema, value);
421
- if (Object.keys(errors).length > 0)
422
- return json({ error: { code: "INPUT_VALIDATION_FAILED", message: "The settings do not match their schema.", fields: errors } }, 400, NO_STORE);
423
- const saved = await handler.save(caller, value);
424
- return json({ value: saved ?? value }, 200, NO_STORE);
425
- }
426
- const a = ext.contributes.actions?.find((x) => x.id === tail && x.presentation !== "dialog");
427
- const handler = a && ext.handlers?.actions?.[a.id];
428
- if (!a || !handler)
429
- throw wireError("NOT_FOUND", "no such route", P);
430
- if (request.method !== "POST")
431
- throw wireError("METHOD_NOT_ALLOWED", "actions take POST", P);
432
- if (!meetsRole(caller.role, a.role))
433
- throw denied(a.role);
434
- const body = await readJsonObject(request, P);
435
- let input;
436
- if (a.target === "record/v1") {
437
- input = { record: readRef(body["record"], "record") };
438
- }
439
- else if (a.target === "list.selection/v1") {
440
- const sel = body["selection"];
441
- if (!isObject(sel) || typeof sel["schema"] !== "string" || !Array.isArray(sel["ids"]) || sel["ids"].length === 0 || sel["ids"].length > 1000 || sel["ids"].some((x) => typeof x !== "string" || !x))
442
- throw wireError("INPUT_VALIDATION_FAILED", "selection is { schema, ids } with 1 to 1000 ids", P);
443
- input = { selection: { schema: sel["schema"], ids: sel["ids"] } };
444
- }
445
- else {
446
- if (typeof body["schema"] !== "string")
447
- throw wireError("INPUT_VALIDATION_FAILED", "schema names the list", P);
448
- input = { schema: body["schema"] };
449
- }
450
- // `when` is checked here as well as in the console, so a crafted request cannot run an action somewhere it was not offered
451
- const schema = input.record?.schema ?? input.selection?.schema ?? input.schema;
452
- if (a.when?.schema && !a.when.schema.includes(schema))
453
- throw wireError("NOT_FOUND", "no such route", P);
454
- const result = await handler.run(caller, input);
455
- return json({ ok: true, result: result ?? null }, 200, NO_STORE);
456
- }
457
- const declaration = (e) => ({ id: e.id, title: e.title, module: e.module, integrity: e.integrity });
458
- /** What changed between two sets of declarations, for review screens. Handlers are code and are not compared. */
459
- export function diffAdminExtensions(previous, next) {
460
- const out = [];
461
- const same = (a, b) => JSON.stringify(a) === JSON.stringify(b);
462
- const changedKeys = (a, b) => [...new Set([...Object.keys(a), ...Object.keys(b)])].filter((k) => !same(a[k], b[k])).sort();
463
- const contributions = (e) => new Map(KINDS.flatMap((k) => (e.contributes[k] ?? []).map((c) => [c.id, { kind: k, ...c }])));
464
- for (const p of previous)
465
- if (!next.some((n) => n.id === p.id))
466
- out.push({ change: "removed", ref: p.id });
467
- for (const n of next) {
468
- const p = previous.find((x) => x.id === n.id);
469
- if (!p) {
470
- out.push({ change: "added", ref: n.id });
471
- for (const id of contributions(n).keys())
472
- out.push({ change: "added", ref: `${n.id}/${id}` });
473
- continue;
474
- }
475
- const keys = changedKeys(declaration(p), declaration(n));
476
- if (keys.length)
477
- out.push({ change: "changed", ref: n.id, keys });
478
- const before = contributions(p);
479
- const after = contributions(n);
480
- for (const [id] of before)
481
- if (!after.has(id))
482
- out.push({ change: "removed", ref: `${n.id}/${id}` });
483
- for (const [id, c] of after) {
484
- const b = before.get(id);
485
- if (!b)
486
- out.push({ change: "added", ref: `${n.id}/${id}` });
487
- else {
488
- const k = changedKeys(b, c);
489
- if (k.length)
490
- out.push({ change: "changed", ref: `${n.id}/${id}`, keys: k });
491
- }
492
- }
493
- }
494
- return out;
495
- }
496
- const text = { anyOf: [{ type: "string", minLength: 1 }, { type: "object", additionalProperties: { type: "string", minLength: 1 }, minProperties: 1 }] };
497
- const id = { type: "string", pattern: ID.source };
498
- const role = { enum: ["owner", "editor", "contributor"] };
499
- const names = { type: "array", items: { type: "string", minLength: 1 }, minItems: 1, maxItems: 64 };
500
- const when = { type: "object", additionalProperties: false, minProperties: 1, properties: { schema: names, field: names, format: names } };
501
- const form = { type: "object", description: "The form subset: an object schema whose properties are string, number, integer or boolean with title, description, default, enum, oneOf, minimum, maximum, minLength and maxLength." };
502
- const contribution = (props, required) => ({ type: "object", additionalProperties: false, required: ["id", ...required], properties: { id, ...props } });
503
- /** JSON Schema of one extension's declaration (handlers excluded), for tooling and agents. */
504
- export const ADMIN_EXTENSION_JSON_SCHEMA = {
505
- $schema: "https://json-schema.org/draft/2020-12/schema",
506
- title: "Mantle Admin extension declaration",
507
- type: "object",
508
- additionalProperties: false,
509
- required: ["apiVersion", "id", "title", "contributes"],
510
- properties: {
511
- apiVersion: { const: 1 },
512
- id,
513
- title: text,
514
- module: { type: "string", pattern: MODULE.source },
515
- integrity: { type: "string", pattern: INTEGRITY.source },
516
- // the module's code as a string; a function returning it is code, like the handlers, and is not described here
517
- source: { type: "string", minLength: 1 },
518
- contributes: {
519
- type: "object",
520
- additionalProperties: false,
521
- minProperties: 1,
522
- properties: {
523
- pages: { type: "array", items: contribution({ title: text, role, nav: { type: "object", additionalProperties: false, required: ["group"], properties: { group: { enum: ["more", "settings"] }, order: { type: "integer" } } } }, ["title", "role"]) },
524
- settings: { type: "array", items: contribution({ title: text, role, schema: form }, ["title", "role", "schema"]) },
525
- actions: { type: "array", items: contribution({ title: text, role, target: { enum: ADMIN_EXTENSION_TARGETS.action }, presentation: { enum: ["run", "confirm", "dialog"] }, destructive: { type: "boolean" }, when }, ["title", "role", "target", "presentation"]) },
526
- panels: { type: "array", items: contribution({ title: text, role, target: { enum: ADMIN_EXTENSION_TARGETS.panel }, when }, ["title", "role", "target"]) },
527
- fields: { type: "array", items: contribution({ target: { enum: ADMIN_EXTENSION_TARGETS.field }, role, when, optionsSchema: form }, ["target"]) },
528
- },
529
- },
530
- },
531
- };
532
- //# sourceMappingURL=extensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/admin/extensions.ts"],"names":[],"mappings":"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"}