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

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 (930) hide show
  1. package/README.md +180 -45
  2. package/dist/auth/adapter.d.ts +32 -0
  3. package/dist/auth/adapter.js +288 -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 +226 -0
  17. package/dist/build/compiler.d.ts +721 -0
  18. package/dist/build/compiler.js +7029 -0
  19. package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +30 -43
  20. package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
  21. package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +39 -6
  22. package/dist/build/spec/domain/model/UserFields.d.ts +21 -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 +57 -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 +24 -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 +188 -0
  50. package/dist/infrastructure/cli.js +118 -0
  51. package/dist/infrastructure/generate.d.ts +12 -0
  52. package/dist/infrastructure/generate.js +189 -0
  53. package/dist/infrastructure/generateAuth.d.ts +8 -0
  54. package/dist/infrastructure/generateAuth.js +74 -0
  55. package/dist/infrastructure/help.js +60 -0
  56. package/dist/infrastructure/init.js +54 -0
  57. package/dist/infrastructure/inputs.js +41 -0
  58. package/dist/infrastructure/mounts.js +25 -0
  59. package/dist/infrastructure/wrangler.js +109 -0
  60. package/dist/kernel/authorization.d.ts +4 -0
  61. package/dist/kernel/authorization.js +16 -0
  62. package/dist/kernel/binds.d.ts +60 -0
  63. package/dist/kernel/binds.js +49 -0
  64. package/dist/kernel/caller-identity.d.ts +24 -0
  65. package/dist/kernel/caller-identity.js +22 -0
  66. package/dist/kernel/contract-error.d.ts +12 -0
  67. package/dist/kernel/contract-error.js +14 -0
  68. package/dist/kernel/contracts.d.ts +143 -0
  69. package/dist/kernel/contracts.js +97 -0
  70. package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
  71. package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +1 -6
  72. package/dist/kernel/dialect/common.d.ts +38 -0
  73. package/dist/kernel/dialect/common.js +6 -0
  74. package/dist/kernel/dialect/postgres.d.ts +16 -0
  75. package/dist/kernel/dialect/postgres.js +18 -0
  76. package/dist/kernel/dialect/sqlite.d.ts +20 -0
  77. package/dist/kernel/dialect/sqlite.js +34 -0
  78. package/dist/kernel/drain.d.ts +5 -0
  79. package/dist/kernel/drain.js +35 -0
  80. package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
  81. package/dist/kernel/driver/bun-sqlite.js +77 -0
  82. package/dist/kernel/driver/d1.d.ts +24 -0
  83. package/dist/kernel/driver/d1.js +22 -0
  84. package/dist/kernel/driver/postgres.d.ts +25 -0
  85. package/dist/kernel/driver/postgres.js +99 -0
  86. package/dist/kernel/driver/transaction-context.d.ts +10 -0
  87. package/dist/kernel/driver/transaction-context.js +29 -0
  88. package/dist/kernel/email.d.ts +28 -0
  89. package/dist/{auth/emailTemplates.js → kernel/email.js} +13 -2
  90. package/dist/kernel/host-access.d.ts +10 -0
  91. package/dist/kernel/host-access.js +65 -0
  92. package/dist/kernel/host-caller.d.ts +39 -0
  93. package/dist/kernel/host-caller.js +56 -0
  94. package/dist/kernel/json-body.d.ts +4 -0
  95. package/dist/kernel/json-body.js +44 -0
  96. package/dist/kernel/mcp-apps.d.ts +69 -0
  97. package/dist/kernel/mcp-apps.js +40 -0
  98. package/dist/kernel/mcp-call.d.ts +5 -0
  99. package/dist/kernel/mcp-call.js +25 -0
  100. package/dist/kernel/mcp-handler.js +371 -0
  101. package/dist/kernel/mcp.d.ts +110 -0
  102. package/dist/kernel/mcp.js +50 -0
  103. package/dist/kernel/media.d.ts +27 -0
  104. package/dist/kernel/media.js +216 -0
  105. package/dist/kernel/paging.d.ts +55 -0
  106. package/dist/kernel/paging.js +95 -0
  107. package/dist/kernel/publishing.d.ts +4 -0
  108. package/dist/kernel/publishing.js +16 -0
  109. package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
  110. package/dist/kernel/r2-media.js +78 -0
  111. package/dist/kernel/rest-dispatch.js +38 -0
  112. package/dist/kernel/rest-router.js +64 -0
  113. package/dist/kernel/rest.d.ts +58 -0
  114. package/dist/kernel/rest.js +41 -0
  115. package/dist/kernel/scalars.d.ts +6 -0
  116. package/dist/kernel/scalars.js +44 -0
  117. package/dist/kernel/search.js +5 -0
  118. package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
  119. package/dist/kernel/site-types.js +1 -0
  120. package/dist/kernel/site.d.ts +39 -0
  121. package/dist/kernel/site.js +32 -0
  122. package/dist/kernel/store.d.ts +175 -0
  123. package/dist/kernel/store.js +269 -0
  124. package/dist/kernel/surface.d.ts +10 -0
  125. package/dist/kernel/surface.js +19 -0
  126. package/dist/kernel/sweep.d.ts +17 -0
  127. package/dist/kernel/sweep.js +27 -0
  128. package/dist/kernel/translations.d.ts +1 -0
  129. package/dist/kernel/translations.js +13 -0
  130. package/dist/kernel/user-caller.d.ts +31 -0
  131. package/dist/kernel/user-caller.js +67 -0
  132. package/dist/kernel/user-field-name.js +3 -0
  133. package/dist/kernel/user-fields.d.ts +35 -0
  134. package/dist/kernel/user-fields.js +81 -0
  135. package/dist/kernel/validation.d.ts +15 -0
  136. package/dist/kernel/validation.js +54 -0
  137. package/dist/kernel/web-gateway.js +68 -0
  138. package/dist/kernel/web-head.js +15 -0
  139. package/dist/kernel/web-index.js +40 -0
  140. package/dist/kernel/web-response.js +8 -0
  141. package/dist/kernel/web.d.ts +77 -0
  142. package/dist/kernel/web.js +124 -0
  143. package/dist/kernel/where.js +27 -0
  144. package/dist/testing/index.d.ts +1 -37
  145. package/dist/testing/index.js +1 -43
  146. package/dist/usecase/adminBindings.js +143 -0
  147. package/dist/usecase/adminClient.js +87 -0
  148. package/dist/usecase/adminDescriptors.js +107 -0
  149. package/dist/usecase/generate.js +166 -0
  150. package/dist/usecase/handlers.js +21 -0
  151. package/dist/usecase/mcp-media.js +17 -0
  152. package/dist/usecase/mcp.js +100 -0
  153. package/dist/usecase/paging.js +71 -0
  154. package/dist/usecase/publishing.js +63 -0
  155. package/dist/usecase/refusals.js +27 -0
  156. package/dist/usecase/rest.js +54 -0
  157. package/dist/usecase/search.js +7 -0
  158. package/dist/usecase/site.js +39 -0
  159. package/dist/usecase/stores.js +64 -0
  160. package/dist/usecase/tool-version.js +9 -0
  161. package/dist/usecase/translations.js +78 -0
  162. package/dist/usecase/ttl.js +20 -0
  163. package/dist/usecase/validation.js +241 -0
  164. package/dist/usecase/web.js +23 -0
  165. package/docs/examples/README.md +39 -16
  166. package/docs/examples/app-shell/README.md +121 -0
  167. package/docs/examples/app-shell/accept.mjs +91 -0
  168. package/docs/examples/app-shell/gitignore +7 -0
  169. package/docs/examples/app-shell/package.json +43 -0
  170. package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
  171. package/docs/examples/app-shell/smoke-kit.mjs +168 -0
  172. package/docs/examples/app-shell/src/auth.ts +58 -0
  173. package/docs/examples/app-shell/src/handlers.ts +5 -0
  174. package/docs/examples/app-shell/src/index.ts +4 -0
  175. package/docs/examples/app-shell/src/routes.ts +14 -0
  176. package/docs/examples/app-shell/src/schedule.ts +8 -0
  177. package/docs/examples/app-shell/src/service.ts +70 -0
  178. package/docs/examples/app-shell/src/sign-in.ts +41 -0
  179. package/docs/examples/app-shell/src/signup.ts +8 -0
  180. package/docs/examples/{reference-service → app-shell}/tsconfig.json +6 -2
  181. package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
  182. package/docs/examples/app-shell/wrangler.jsonc +62 -0
  183. package/docs/examples/club-events/README.md +65 -0
  184. package/docs/examples/club-events/manifests/club-events.yaml +247 -0
  185. package/docs/examples/club-events/smoke.mjs +127 -0
  186. package/docs/examples/club-events/src/handlers.ts +25 -0
  187. package/docs/examples/club-events/src/signup.ts +9 -0
  188. package/docs/examples/generated-web/README.md +78 -0
  189. package/docs/examples/generated-web/posts.yaml +38 -0
  190. package/docs/examples/generated-web/seed.sql +6 -0
  191. package/docs/examples/generated-web/src/worker.ts +43 -0
  192. package/docs/examples/generated-web/tsconfig.json +8 -0
  193. package/docs/examples/generated-web/wrangler.jsonc +8 -0
  194. package/docs/examples/purchasing/.dev.vars.example +6 -0
  195. package/docs/examples/purchasing/README.md +99 -0
  196. package/docs/examples/purchasing/manifests/purchasing.yaml +374 -0
  197. package/docs/examples/purchasing/seed.sql +4 -0
  198. package/docs/examples/purchasing/smoke.mjs +191 -0
  199. package/docs/examples/purchasing/src/admin.tsx +13 -0
  200. package/docs/examples/purchasing/src/handlers.ts +33 -0
  201. package/docs/examples/purchasing/src/notify.ts +29 -0
  202. package/docs/examples/purchasing/src/requests-page.ts +57 -0
  203. package/docs/examples/purchasing/src/routes.ts +53 -0
  204. package/docs/examples/purchasing/src/schedule.ts +31 -0
  205. package/docs/examples/purchasing/src/signup.ts +5 -0
  206. package/docs/examples/purchasing/src/supplier.ts +32 -0
  207. package/docs/examples/purchasing/wrangler.jsonc +69 -0
  208. package/docs/examples/recipes/README.md +60 -0
  209. package/docs/examples/recipes/manifests/recipes.yaml +75 -0
  210. package/docs/examples/recipes/smoke.mjs +102 -0
  211. package/docs/examples/recipes/src/media.ts +13 -0
  212. package/docs/examples/recipes/src/pages.ts +99 -0
  213. package/docs/examples/recipes/src/routes.ts +71 -0
  214. package/docs/examples/recipes/src/site-config.ts +12 -0
  215. package/docs/examples/recipes/wrangler.jsonc +74 -0
  216. package/docs/handbook/cloudflare/authentication.md +186 -108
  217. package/docs/handbook/cloudflare/chatgpt-sites.md +5 -112
  218. package/docs/handbook/cloudflare/deploy-and-operate.md +59 -87
  219. package/docs/handbook/cloudflare/media-r2.md +61 -82
  220. package/docs/handbook/cloudflare/service-entry.md +220 -119
  221. package/docs/handbook/concepts/authorization.md +10 -117
  222. package/docs/handbook/concepts/four-atoms.md +9 -92
  223. package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
  224. package/docs/handbook/concepts/mcp-and-agents.md +24 -116
  225. package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
  226. package/docs/handbook/concepts/runtime-and-adapters.md +15 -183
  227. package/docs/handbook/concepts/views.md +10 -109
  228. package/docs/handbook/examples/hub.md +2 -18
  229. package/docs/handbook/guides/adapter-guide.md +11 -0
  230. package/docs/handbook/guides/admin-ui.md +113 -136
  231. package/docs/handbook/guides/agent-setup.md +32 -27
  232. package/docs/handbook/guides/agent-workflow-acceptance.md +232 -0
  233. package/docs/handbook/guides/email.md +86 -0
  234. package/docs/handbook/guides/local-testing.md +40 -0
  235. package/docs/handbook/guides/mcp-apps.md +560 -0
  236. package/docs/handbook/guides/native-admin.md +566 -0
  237. package/docs/handbook/guides/native-execution.md +133 -0
  238. package/docs/handbook/guides/oauth.md +219 -0
  239. package/docs/handbook/guides/postgres-adapters.md +56 -0
  240. package/docs/handbook/guides/public-pages.md +87 -0
  241. package/docs/handbook/guides/size-and-startup.md +9 -0
  242. package/docs/handbook/guides/sql-patterns.md +266 -0
  243. package/docs/handbook/guides/typed-queries.md +210 -100
  244. package/docs/handbook/navigation.json +176 -30
  245. package/docs/handbook/reference/admin-descriptors.md +53 -0
  246. package/docs/handbook/reference/authorization.md +44 -52
  247. package/docs/handbook/reference/describe.md +56 -0
  248. package/docs/handbook/reference/diagnostics.md +19 -77
  249. package/docs/handbook/reference/features.md +45 -53
  250. package/docs/handbook/reference/manifest.md +6 -69
  251. package/docs/handbook/reference/procedure.md +11 -115
  252. package/docs/handbook/reference/schema.md +81 -172
  253. package/docs/handbook/reference/site-config.md +5 -65
  254. package/docs/handbook/reference/sql.md +64 -0
  255. package/docs/handbook/reference/surface.md +396 -93
  256. package/docs/handbook/reference/trigger.md +62 -89
  257. package/docs/handbook/reference/view.md +40 -158
  258. package/docs/handbook/releases/index.md +198 -12
  259. package/docs/handbook/start/agents.md +45 -0
  260. package/docs/handbook/start/overview.md +9 -56
  261. package/docs/handbook/start/project-and-cli.md +51 -131
  262. package/docs/handbook/start/quickstart-worker.md +38 -115
  263. package/docs/skills/develop/SKILL.md +77 -121
  264. package/docs/skills/integrate/SKILL.md +37 -84
  265. package/docs/skills/media-gc/SKILL.md +21 -8
  266. package/docs/skills/provision/SKILL.md +31 -87
  267. package/docs/skills/update/SKILL.md +20 -34
  268. package/docs/source/scripts/postgres-adapter.ts +101 -0
  269. package/docs/upgrade-0.1-to-0.2.md +26 -10
  270. package/package.json +120 -112
  271. package/skills/README.md +67 -0
  272. package/skills/mantle/SKILL.md +76 -0
  273. package/dist/admin/consent.d.ts +0 -17
  274. package/dist/admin/consent.d.ts.map +0 -1
  275. package/dist/admin/consent.js +0 -17
  276. package/dist/admin/consent.js.map +0 -1
  277. package/dist/admin/createAdminSurface.d.ts +0 -22
  278. package/dist/admin/createAdminSurface.d.ts.map +0 -1
  279. package/dist/admin/createAdminSurface.js +0 -589
  280. package/dist/admin/createAdminSurface.js.map +0 -1
  281. package/dist/admin/developerConsole.d.ts +0 -264
  282. package/dist/admin/developerConsole.d.ts.map +0 -1
  283. package/dist/admin/developerConsole.js +0 -136
  284. package/dist/admin/developerConsole.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 -4
  290. package/dist/admin/index.d.ts.map +0 -1
  291. package/dist/admin/index.js +0 -4
  292. package/dist/admin/index.js.map +0 -1
  293. package/dist/admin/procedureFlow.d.ts +0 -25
  294. package/dist/admin/procedureFlow.d.ts.map +0 -1
  295. package/dist/admin/procedureFlow.js +0 -154
  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 -4565
  306. package/dist/auth/buildAuth.d.ts.map +0 -1
  307. package/dist/auth/buildAuth.js +0 -307
  308. package/dist/auth/buildAuth.js.map +0 -1
  309. package/dist/auth/callerResolver.d.ts +0 -48
  310. package/dist/auth/callerResolver.d.ts.map +0 -1
  311. package/dist/auth/callerResolver.js +0 -49
  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 +0 -128
  316. package/dist/auth/createAuthRoutes.js.map +0 -1
  317. package/dist/auth/createMantleAuth.d.ts +0 -3
  318. package/dist/auth/createMantleAuth.d.ts.map +0 -1
  319. package/dist/auth/createMantleAuth.js +0 -483
  320. package/dist/auth/createMantleAuth.js.map +0 -1
  321. package/dist/auth/db.d.ts +0 -17
  322. package/dist/auth/db.d.ts.map +0 -1
  323. package/dist/auth/db.js +0 -24
  324. package/dist/auth/db.js.map +0 -1
  325. package/dist/auth/emailTemplates.d.ts +0 -7
  326. package/dist/auth/emailTemplates.d.ts.map +0 -1
  327. package/dist/auth/emailTemplates.js.map +0 -1
  328. package/dist/auth/index.d.ts +0 -9
  329. package/dist/auth/index.d.ts.map +0 -1
  330. package/dist/auth/index.js +0 -7
  331. package/dist/auth/index.js.map +0 -1
  332. package/dist/auth/methods.d.ts +0 -717
  333. package/dist/auth/methods.d.ts.map +0 -1
  334. package/dist/auth/methods.js +0 -321
  335. package/dist/auth/methods.js.map +0 -1
  336. package/dist/auth/oauthTokens.d.ts +0 -24
  337. package/dist/auth/oauthTokens.d.ts.map +0 -1
  338. package/dist/auth/oauthTokens.js +0 -146
  339. package/dist/auth/oauthTokens.js.map +0 -1
  340. package/dist/auth/setupIncomplete.d.ts +0 -16
  341. package/dist/auth/setupIncomplete.d.ts.map +0 -1
  342. package/dist/auth/setupIncomplete.js +0 -50
  343. package/dist/auth/setupIncomplete.js.map +0 -1
  344. package/dist/auth/types.d.ts +0 -440
  345. package/dist/auth/types.d.ts.map +0 -1
  346. package/dist/auth/types.js +0 -10
  347. package/dist/auth/types.js.map +0 -1
  348. package/dist/bun/index.d.ts +0 -65
  349. package/dist/bun/index.d.ts.map +0 -1
  350. package/dist/bun/index.js +0 -130
  351. package/dist/bun/index.js.map +0 -1
  352. package/dist/cli/emitModule.d.ts +0 -7
  353. package/dist/cli/emitModule.d.ts.map +0 -1
  354. package/dist/cli/emitModule.js +0 -127
  355. package/dist/cli/emitModule.js.map +0 -1
  356. package/dist/cli/generate.d.ts +0 -8
  357. package/dist/cli/generate.d.ts.map +0 -1
  358. package/dist/cli/generate.js +0 -355
  359. package/dist/cli/generate.js.map +0 -1
  360. package/dist/cli/main.d.ts +0 -3
  361. package/dist/cli/main.d.ts.map +0 -1
  362. package/dist/cli/main.js +0 -21
  363. package/dist/cli/main.js.map +0 -1
  364. package/dist/cli/preset.d.ts +0 -18
  365. package/dist/cli/preset.d.ts.map +0 -1
  366. package/dist/cli/preset.js +0 -352
  367. package/dist/cli/preset.js.map +0 -1
  368. package/dist/cloudflare/index.d.ts +0 -21
  369. package/dist/cloudflare/index.d.ts.map +0 -1
  370. package/dist/cloudflare/index.js +0 -14
  371. package/dist/cloudflare/index.js.map +0 -1
  372. package/dist/cloudflare/r2Media.d.ts.map +0 -1
  373. package/dist/cloudflare/r2Media.js +0 -69
  374. package/dist/cloudflare/r2Media.js.map +0 -1
  375. package/dist/core/caller.d.ts +0 -35
  376. package/dist/core/caller.d.ts.map +0 -1
  377. package/dist/core/caller.js +0 -3
  378. package/dist/core/caller.js.map +0 -1
  379. package/dist/core/createMantle.d.ts +0 -22
  380. package/dist/core/createMantle.d.ts.map +0 -1
  381. package/dist/core/createMantle.js +0 -117
  382. package/dist/core/createMantle.js.map +0 -1
  383. package/dist/core/dialect.d.ts +0 -41
  384. package/dist/core/dialect.d.ts.map +0 -1
  385. package/dist/core/dialect.js +0 -7
  386. package/dist/core/dialect.js.map +0 -1
  387. package/dist/core/driver.d.ts +0 -17
  388. package/dist/core/driver.d.ts.map +0 -1
  389. package/dist/core/driver.js +0 -2
  390. package/dist/core/driver.js.map +0 -1
  391. package/dist/core/email.d.ts +0 -17
  392. package/dist/core/email.d.ts.map +0 -1
  393. package/dist/core/email.js +0 -2
  394. package/dist/core/email.js.map +0 -1
  395. package/dist/core/index.d.ts +0 -16
  396. package/dist/core/index.d.ts.map +0 -1
  397. package/dist/core/index.js +0 -16
  398. package/dist/core/index.js.map +0 -1
  399. package/dist/core/invocation.d.ts +0 -66
  400. package/dist/core/invocation.d.ts.map +0 -1
  401. package/dist/core/invocation.js +0 -3
  402. package/dist/core/invocation.js.map +0 -1
  403. package/dist/core/runtime/auth.d.ts +0 -9
  404. package/dist/core/runtime/auth.d.ts.map +0 -1
  405. package/dist/core/runtime/auth.js +0 -39
  406. package/dist/core/runtime/auth.js.map +0 -1
  407. package/dist/core/runtime/createRuntime.d.ts +0 -23
  408. package/dist/core/runtime/createRuntime.d.ts.map +0 -1
  409. package/dist/core/runtime/createRuntime.js +0 -214
  410. package/dist/core/runtime/createRuntime.js.map +0 -1
  411. package/dist/core/runtime/verifyPlan.d.ts +0 -34
  412. package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
  413. package/dist/core/runtime/verifyPlan.js +0 -301
  414. package/dist/core/runtime/verifyPlan.js.map +0 -1
  415. package/dist/core/service.d.ts +0 -45
  416. package/dist/core/service.d.ts.map +0 -1
  417. package/dist/core/service.js +0 -2
  418. package/dist/core/service.js.map +0 -1
  419. package/dist/core/site.d.ts.map +0 -1
  420. package/dist/core/site.js +0 -2
  421. package/dist/core/site.js.map +0 -1
  422. package/dist/core/siteConfig.d.ts +0 -5
  423. package/dist/core/siteConfig.d.ts.map +0 -1
  424. package/dist/core/siteConfig.js +0 -24
  425. package/dist/core/siteConfig.js.map +0 -1
  426. package/dist/core/sql/allowlist.d.ts +0 -65
  427. package/dist/core/sql/allowlist.d.ts.map +0 -1
  428. package/dist/core/sql/allowlist.js +0 -705
  429. package/dist/core/sql/allowlist.js.map +0 -1
  430. package/dist/core/sql/ast.d.ts +0 -24
  431. package/dist/core/sql/ast.d.ts.map +0 -1
  432. package/dist/core/sql/ast.js +0 -32
  433. package/dist/core/sql/ast.js.map +0 -1
  434. package/dist/core/sql/compile.d.ts +0 -50
  435. package/dist/core/sql/compile.d.ts.map +0 -1
  436. package/dist/core/sql/compile.js +0 -48
  437. package/dist/core/sql/compile.js.map +0 -1
  438. package/dist/core/sql/policy.d.ts +0 -121
  439. package/dist/core/sql/policy.d.ts.map +0 -1
  440. package/dist/core/sql/policy.js +0 -379
  441. package/dist/core/sql/policy.js.map +0 -1
  442. package/dist/core/sql/positions.d.ts +0 -30
  443. package/dist/core/sql/positions.d.ts.map +0 -1
  444. package/dist/core/sql/positions.js +0 -22
  445. package/dist/core/sql/positions.js.map +0 -1
  446. package/dist/core/sql/run.d.ts +0 -76
  447. package/dist/core/sql/run.d.ts.map +0 -1
  448. package/dist/core/sql/run.js +0 -267
  449. package/dist/core/sql/run.js.map +0 -1
  450. package/dist/core/store/createStore.d.ts +0 -49
  451. package/dist/core/store/createStore.d.ts.map +0 -1
  452. package/dist/core/store/createStore.js +0 -227
  453. package/dist/core/store/createStore.js.map +0 -1
  454. package/dist/core/store/cursor.d.ts +0 -4
  455. package/dist/core/store/cursor.d.ts.map +0 -1
  456. package/dist/core/store/cursor.js +0 -22
  457. package/dist/core/store/cursor.js.map +0 -1
  458. package/dist/core/store/json.d.ts +0 -80
  459. package/dist/core/store/json.d.ts.map +0 -1
  460. package/dist/core/store/json.js +0 -342
  461. package/dist/core/store/json.js.map +0 -1
  462. package/dist/core/store.d.ts +0 -160
  463. package/dist/core/store.d.ts.map +0 -1
  464. package/dist/core/store.js +0 -2
  465. package/dist/core/store.js.map +0 -1
  466. package/dist/core/wire.d.ts +0 -20
  467. package/dist/core/wire.d.ts.map +0 -1
  468. package/dist/core/wire.js +0 -84
  469. package/dist/core/wire.js.map +0 -1
  470. package/dist/core/withCaller.d.ts +0 -16
  471. package/dist/core/withCaller.d.ts.map +0 -1
  472. package/dist/core/withCaller.js +0 -29
  473. package/dist/core/withCaller.js.map +0 -1
  474. package/dist/d1/adapter.d.ts +0 -12
  475. package/dist/d1/adapter.d.ts.map +0 -1
  476. package/dist/d1/adapter.js +0 -23
  477. package/dist/d1/adapter.js.map +0 -1
  478. package/dist/d1/codec.d.ts +0 -14
  479. package/dist/d1/codec.d.ts.map +0 -1
  480. package/dist/d1/codec.js +0 -136
  481. package/dist/d1/codec.js.map +0 -1
  482. package/dist/d1/compile/index.d.ts +0 -9
  483. package/dist/d1/compile/index.d.ts.map +0 -1
  484. package/dist/d1/compile/index.js +0 -9
  485. package/dist/d1/compile/index.js.map +0 -1
  486. package/dist/d1/dialect.d.ts +0 -4
  487. package/dist/d1/dialect.d.ts.map +0 -1
  488. package/dist/d1/dialect.js +0 -13
  489. package/dist/d1/dialect.js.map +0 -1
  490. package/dist/d1/executor.d.ts +0 -13
  491. package/dist/d1/executor.d.ts.map +0 -1
  492. package/dist/d1/executor.js +0 -91
  493. package/dist/d1/executor.js.map +0 -1
  494. package/dist/d1/index.d.ts +0 -6
  495. package/dist/d1/index.d.ts.map +0 -1
  496. package/dist/d1/index.js +0 -6
  497. package/dist/d1/index.js.map +0 -1
  498. package/dist/d1/lower.d.ts +0 -8
  499. package/dist/d1/lower.d.ts.map +0 -1
  500. package/dist/d1/lower.js +0 -167
  501. package/dist/d1/lower.js.map +0 -1
  502. package/dist/d1/media.d.ts +0 -5
  503. package/dist/d1/media.d.ts.map +0 -1
  504. package/dist/d1/media.js +0 -157
  505. package/dist/d1/media.js.map +0 -1
  506. package/dist/d1/migrations.d.ts +0 -12
  507. package/dist/d1/migrations.d.ts.map +0 -1
  508. package/dist/d1/migrations.js +0 -111
  509. package/dist/d1/migrations.js.map +0 -1
  510. package/dist/d1/print.d.ts +0 -28
  511. package/dist/d1/print.d.ts.map +0 -1
  512. package/dist/d1/print.js +0 -54
  513. package/dist/d1/print.js.map +0 -1
  514. package/dist/d1/site.d.ts +0 -17
  515. package/dist/d1/site.d.ts.map +0 -1
  516. package/dist/d1/site.js +0 -63
  517. package/dist/d1/site.js.map +0 -1
  518. package/dist/d1/storage.d.ts +0 -34
  519. package/dist/d1/storage.d.ts.map +0 -1
  520. package/dist/d1/storage.js +0 -288
  521. package/dist/d1/storage.js.map +0 -1
  522. package/dist/d1/tz.d.ts +0 -21
  523. package/dist/d1/tz.d.ts.map +0 -1
  524. package/dist/d1/tz.js +0 -54
  525. package/dist/d1/tz.js.map +0 -1
  526. package/dist/d1/validator.d.ts +0 -10
  527. package/dist/d1/validator.d.ts.map +0 -1
  528. package/dist/d1/validator.js +0 -33
  529. package/dist/d1/validator.js.map +0 -1
  530. package/dist/mcp/apps.d.ts +0 -43
  531. package/dist/mcp/apps.d.ts.map +0 -1
  532. package/dist/mcp/apps.js +0 -57
  533. package/dist/mcp/apps.js.map +0 -1
  534. package/dist/mcp/catalog.d.ts +0 -55
  535. package/dist/mcp/catalog.d.ts.map +0 -1
  536. package/dist/mcp/catalog.js +0 -81
  537. package/dist/mcp/catalog.js.map +0 -1
  538. package/dist/mcp/createMcpSurface.d.ts +0 -34
  539. package/dist/mcp/createMcpSurface.d.ts.map +0 -1
  540. package/dist/mcp/createMcpSurface.js +0 -150
  541. package/dist/mcp/createMcpSurface.js.map +0 -1
  542. package/dist/mcp/index.d.ts +0 -4
  543. package/dist/mcp/index.d.ts.map +0 -1
  544. package/dist/mcp/index.js +0 -4
  545. package/dist/mcp/index.js.map +0 -1
  546. package/dist/postgres/adapter.d.ts +0 -20
  547. package/dist/postgres/adapter.d.ts.map +0 -1
  548. package/dist/postgres/adapter.js +0 -44
  549. package/dist/postgres/adapter.js.map +0 -1
  550. package/dist/postgres/codec.d.ts +0 -13
  551. package/dist/postgres/codec.d.ts.map +0 -1
  552. package/dist/postgres/codec.js +0 -110
  553. package/dist/postgres/codec.js.map +0 -1
  554. package/dist/postgres/compile/index.d.ts +0 -9
  555. package/dist/postgres/compile/index.d.ts.map +0 -1
  556. package/dist/postgres/compile/index.js +0 -9
  557. package/dist/postgres/compile/index.js.map +0 -1
  558. package/dist/postgres/driver.d.ts +0 -92
  559. package/dist/postgres/driver.d.ts.map +0 -1
  560. package/dist/postgres/driver.js +0 -110
  561. package/dist/postgres/driver.js.map +0 -1
  562. package/dist/postgres/executor.d.ts +0 -20
  563. package/dist/postgres/executor.d.ts.map +0 -1
  564. package/dist/postgres/executor.js +0 -69
  565. package/dist/postgres/executor.js.map +0 -1
  566. package/dist/postgres/index.d.ts +0 -7
  567. package/dist/postgres/index.d.ts.map +0 -1
  568. package/dist/postgres/index.js +0 -7
  569. package/dist/postgres/index.js.map +0 -1
  570. package/dist/postgres/lower.d.ts +0 -6
  571. package/dist/postgres/lower.d.ts.map +0 -1
  572. package/dist/postgres/lower.js +0 -157
  573. package/dist/postgres/lower.js.map +0 -1
  574. package/dist/postgres/print.d.ts +0 -11
  575. package/dist/postgres/print.d.ts.map +0 -1
  576. package/dist/postgres/print.js +0 -121
  577. package/dist/postgres/print.js.map +0 -1
  578. package/dist/postgres/storage.d.ts +0 -19
  579. package/dist/postgres/storage.d.ts.map +0 -1
  580. package/dist/postgres/storage.js +0 -201
  581. package/dist/postgres/storage.js.map +0 -1
  582. package/dist/postgres/textRows.d.ts +0 -10
  583. package/dist/postgres/textRows.d.ts.map +0 -1
  584. package/dist/postgres/textRows.js +0 -44
  585. package/dist/postgres/textRows.js.map +0 -1
  586. package/dist/postgres/validator.d.ts +0 -12
  587. package/dist/postgres/validator.d.ts.map +0 -1
  588. package/dist/postgres/validator.js +0 -46
  589. package/dist/postgres/validator.js.map +0 -1
  590. package/dist/spec/domain/index.d.ts +0 -3
  591. package/dist/spec/domain/index.d.ts.map +0 -1
  592. package/dist/spec/domain/index.js +0 -3
  593. package/dist/spec/domain/index.js.map +0 -1
  594. package/dist/spec/domain/model/ContentState.d.ts +0 -8
  595. package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
  596. package/dist/spec/domain/model/ContentState.js +0 -7
  597. package/dist/spec/domain/model/ContentState.js.map +0 -1
  598. package/dist/spec/domain/model/Entry.d.ts +0 -29
  599. package/dist/spec/domain/model/Entry.d.ts.map +0 -1
  600. package/dist/spec/domain/model/Entry.js +0 -16
  601. package/dist/spec/domain/model/Entry.js.map +0 -1
  602. package/dist/spec/domain/model/Locale.d.ts +0 -30
  603. package/dist/spec/domain/model/Locale.d.ts.map +0 -1
  604. package/dist/spec/domain/model/Locale.js +0 -33
  605. package/dist/spec/domain/model/Locale.js.map +0 -1
  606. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
  607. package/dist/spec/domain/model/ManifestGrammar.js +0 -149
  608. package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
  609. package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
  610. package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
  611. package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
  612. package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
  613. package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
  614. package/dist/spec/domain/model/RuntimePlan.js +0 -4
  615. package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
  616. package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
  617. package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
  618. package/dist/spec/domain/model/SiteConfig.js +0 -13
  619. package/dist/spec/domain/model/SiteConfig.js.map +0 -1
  620. package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
  621. package/dist/spec/domain/model/SqlIr.js +0 -95
  622. package/dist/spec/domain/model/SqlIr.js.map +0 -1
  623. package/dist/spec/domain/model/index.d.ts +0 -14
  624. package/dist/spec/domain/model/index.d.ts.map +0 -1
  625. package/dist/spec/domain/model/index.js +0 -14
  626. package/dist/spec/domain/model/index.js.map +0 -1
  627. package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
  628. package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
  629. package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
  630. package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
  631. package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
  632. package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
  633. package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
  634. package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
  635. package/dist/spec/domain/service/EntryDataValidator.js +0 -88
  636. package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
  637. package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
  638. package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
  639. package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
  640. package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
  641. package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
  642. package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
  643. package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
  644. package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
  645. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
  646. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
  647. package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
  648. package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
  649. package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
  650. package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
  651. package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
  652. package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
  653. package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
  654. package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
  655. package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
  656. package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
  657. package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
  658. package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
  659. package/dist/spec/domain/service/ManifestLinker.js +0 -92
  660. package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
  661. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
  662. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
  663. package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
  664. package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
  665. package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
  666. package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
  667. package/dist/spec/domain/service/ManifestParser.js +0 -203
  668. package/dist/spec/domain/service/ManifestParser.js.map +0 -1
  669. package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
  670. package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
  671. package/dist/spec/domain/service/ManifestPartition.js +0 -19
  672. package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
  673. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
  674. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
  675. package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
  676. package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
  677. package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
  678. package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
  679. package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
  680. package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
  681. package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
  682. package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
  683. package/dist/spec/domain/service/McpToolNaming.js +0 -50
  684. package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
  685. package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
  686. package/dist/spec/domain/service/PlanFingerprint.js +0 -14
  687. package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
  688. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
  689. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
  690. package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
  691. package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
  692. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
  693. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
  694. package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
  695. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
  696. package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
  697. package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
  698. package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
  699. package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
  700. package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
  701. package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
  702. package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
  703. package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
  704. package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
  705. package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
  706. package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
  707. package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
  708. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
  709. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
  710. package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
  711. package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
  712. package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
  713. package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
  714. package/dist/spec/domain/service/SqlClassify.js +0 -42
  715. package/dist/spec/domain/service/SqlClassify.js.map +0 -1
  716. package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
  717. package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
  718. package/dist/spec/domain/service/SqlRefusal.js +0 -20
  719. package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
  720. package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
  721. package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
  722. package/dist/spec/domain/service/SqlTypes.js +0 -110
  723. package/dist/spec/domain/service/SqlTypes.js.map +0 -1
  724. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
  725. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
  726. package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
  727. package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
  728. package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
  729. package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
  730. package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
  731. package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
  732. package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
  733. package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
  734. package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
  735. package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
  736. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
  737. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
  738. package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
  739. package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
  740. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
  741. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
  742. package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
  743. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
  744. package/dist/spec/domain/service/index.d.ts +0 -24
  745. package/dist/spec/domain/service/index.d.ts.map +0 -1
  746. package/dist/spec/domain/service/index.js +0 -24
  747. package/dist/spec/domain/service/index.js.map +0 -1
  748. package/dist/spec/index.d.ts +0 -10
  749. package/dist/spec/index.d.ts.map +0 -1
  750. package/dist/spec/index.js +0 -12
  751. package/dist/spec/index.js.map +0 -1
  752. package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
  753. package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
  754. package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
  755. package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
  756. package/dist/spec/infrastructure/index.d.ts +0 -2
  757. package/dist/spec/infrastructure/index.d.ts.map +0 -1
  758. package/dist/spec/infrastructure/index.js +0 -2
  759. package/dist/spec/infrastructure/index.js.map +0 -1
  760. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
  761. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
  762. package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
  763. package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
  764. package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
  765. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
  766. package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
  767. package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
  768. package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
  769. package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
  770. package/dist/spec/infrastructure/sql/compileSql.js +0 -92
  771. package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
  772. package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
  773. package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
  774. package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
  775. package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
  776. package/dist/spec/infrastructure/sql/index.d.ts +0 -4
  777. package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
  778. package/dist/spec/infrastructure/sql/index.js +0 -4
  779. package/dist/spec/infrastructure/sql/index.js.map +0 -1
  780. package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
  781. package/dist/spec/kernel/diagnostic.js +0 -296
  782. package/dist/spec/kernel/diagnostic.js.map +0 -1
  783. package/dist/spec/kernel/index.d.ts +0 -8
  784. package/dist/spec/kernel/index.d.ts.map +0 -1
  785. package/dist/spec/kernel/index.js +0 -8
  786. package/dist/spec/kernel/index.js.map +0 -1
  787. package/dist/spec/usecase/EmitTypes.d.ts +0 -22
  788. package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
  789. package/dist/spec/usecase/EmitTypes.js +0 -182
  790. package/dist/spec/usecase/EmitTypes.js.map +0 -1
  791. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
  792. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
  793. package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
  794. package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
  795. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
  796. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
  797. package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
  798. package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
  799. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
  800. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
  801. package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
  802. package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
  803. package/dist/spec/usecase/dto/index.d.ts +0 -3
  804. package/dist/spec/usecase/dto/index.d.ts.map +0 -1
  805. package/dist/spec/usecase/dto/index.js +0 -3
  806. package/dist/spec/usecase/dto/index.js.map +0 -1
  807. package/dist/spec/usecase/index.d.ts +0 -10
  808. package/dist/spec/usecase/index.d.ts.map +0 -1
  809. package/dist/spec/usecase/index.js +0 -10
  810. package/dist/spec/usecase/index.js.map +0 -1
  811. package/dist/testing/cases/before-hook.d.ts +0 -4
  812. package/dist/testing/cases/before-hook.d.ts.map +0 -1
  813. package/dist/testing/cases/before-hook.js +0 -71
  814. package/dist/testing/cases/before-hook.js.map +0 -1
  815. package/dist/testing/cases/corpus.d.ts +0 -12
  816. package/dist/testing/cases/corpus.d.ts.map +0 -1
  817. package/dist/testing/cases/corpus.js +0 -91
  818. package/dist/testing/cases/corpus.js.map +0 -1
  819. package/dist/testing/cases/policy.d.ts +0 -74
  820. package/dist/testing/cases/policy.d.ts.map +0 -1
  821. package/dist/testing/cases/policy.js +0 -142
  822. package/dist/testing/cases/policy.js.map +0 -1
  823. package/dist/testing/cases/printer.d.ts +0 -4
  824. package/dist/testing/cases/printer.d.ts.map +0 -1
  825. package/dist/testing/cases/printer.js +0 -32
  826. package/dist/testing/cases/printer.js.map +0 -1
  827. package/dist/testing/cases/report-view.d.ts +0 -5
  828. package/dist/testing/cases/report-view.d.ts.map +0 -1
  829. package/dist/testing/cases/report-view.js +0 -33
  830. package/dist/testing/cases/report-view.js.map +0 -1
  831. package/dist/testing/cases/requisition.d.ts +0 -4
  832. package/dist/testing/cases/requisition.d.ts.map +0 -1
  833. package/dist/testing/cases/requisition.js +0 -38
  834. package/dist/testing/cases/requisition.js.map +0 -1
  835. package/dist/testing/cases/search-places.d.ts +0 -4
  836. package/dist/testing/cases/search-places.d.ts.map +0 -1
  837. package/dist/testing/cases/search-places.js +0 -60
  838. package/dist/testing/cases/search-places.js.map +0 -1
  839. package/dist/testing/cases/stock.d.ts +0 -4
  840. package/dist/testing/cases/stock.d.ts.map +0 -1
  841. package/dist/testing/cases/stock.js +0 -35
  842. package/dist/testing/cases/stock.js.map +0 -1
  843. package/dist/testing/cases/store.d.ts +0 -4
  844. package/dist/testing/cases/store.d.ts.map +0 -1
  845. package/dist/testing/cases/store.js +0 -100
  846. package/dist/testing/cases/store.js.map +0 -1
  847. package/dist/testing/harness.d.ts +0 -94
  848. package/dist/testing/harness.d.ts.map +0 -1
  849. package/dist/testing/harness.js +0 -168
  850. package/dist/testing/harness.js.map +0 -1
  851. package/dist/testing/index.d.ts.map +0 -1
  852. package/dist/testing/index.js.map +0 -1
  853. package/dist/testing/report.d.ts +0 -15
  854. package/dist/testing/report.d.ts.map +0 -1
  855. package/dist/testing/report.js +0 -22
  856. package/dist/testing/report.js.map +0 -1
  857. package/dist/web/createRestSurface.d.ts +0 -7
  858. package/dist/web/createRestSurface.d.ts.map +0 -1
  859. package/dist/web/createRestSurface.js +0 -39
  860. package/dist/web/createRestSurface.js.map +0 -1
  861. package/dist/web/index.d.ts +0 -2
  862. package/dist/web/index.d.ts.map +0 -1
  863. package/dist/web/index.js +0 -2
  864. package/dist/web/index.js.map +0 -1
  865. package/docs/adr/0001-four-atom-manifest-model.md +0 -440
  866. package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
  867. package/docs/adr/0007-ai-as-primary-author.md +0 -473
  868. package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
  869. package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
  870. package/docs/adr/0010-locale-and-translates.md +0 -453
  871. package/docs/adr/0011-adapter-port-spec.md +0 -281
  872. package/docs/adr/0012-views-as-public-rest.md +0 -161
  873. package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
  874. package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -919
  875. package/docs/adr/0016-site-semantic-layer.md +0 -70
  876. package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
  877. package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
  878. package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
  879. package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
  880. package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
  881. package/docs/adr/0022-caller-observed-version-occ.md +0 -212
  882. package/docs/adr/0023-port-failure-contract.md +0 -69
  883. package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
  884. package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
  885. package/docs/adr/0026-progressive-generate.md +0 -36
  886. package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
  887. package/docs/adr/0028-schema-ttl-expiry.md +0 -33
  888. package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
  889. package/docs/adr/0030-store.md +0 -40
  890. package/docs/adr/0031-host-cloud-core-contract.md +0 -25
  891. package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -361
  892. package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
  893. package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
  894. package/docs/adr/0035-sql-dialects.md +0 -154
  895. package/docs/adr/0036-host-and-dialect.md +0 -65
  896. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -124
  897. package/docs/adr/0038-bun-native-host.md +0 -63
  898. package/docs/adr/README.md +0 -96
  899. package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
  900. package/docs/adr/adr-lite-808-route-readiness.md +0 -47
  901. package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
  902. package/docs/adr/adr-lite-812-native-parity.md +0 -150
  903. package/docs/adr/adr-lite-823-home-statistics.md +0 -64
  904. package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
  905. package/docs/adr/adr-lite-845-frontend-client.md +0 -38
  906. package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
  907. package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
  908. package/docs/examples/commerce-inventory.md +0 -481
  909. package/docs/examples/commerce.md +0 -254
  910. package/docs/examples/guarded-api.md +0 -238
  911. package/docs/examples/intake-hooks.md +0 -237
  912. package/docs/examples/intake.md +0 -127
  913. package/docs/examples/legal-documents.md +0 -218
  914. package/docs/examples/procurement.md +0 -215
  915. package/docs/examples/publication.md +0 -211
  916. package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
  917. package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
  918. package/docs/examples/reference-service/README.md +0 -33
  919. package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
  920. package/docs/examples/reference-service/manifests/orders.yaml +0 -120
  921. package/docs/examples/reference-service/mantle.config.json +0 -1
  922. package/docs/examples/reference-service/package.json +0 -27
  923. package/docs/examples/reference-service/smoke.mjs +0 -156
  924. package/docs/examples/reference-service/src/handlers.ts +0 -36
  925. package/docs/examples/reference-service/src/index.ts +0 -33
  926. package/docs/examples/reference-service/src/service.ts +0 -78
  927. package/docs/examples/reference-service/wrangler.jsonc +0 -26
  928. package/docs/examples/reservation.md +0 -142
  929. package/docs/skills/develop/mcp-app.md +0 -79
  930. /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
@@ -1,352 +0,0 @@
1
- /**
2
- * The host service preset (ADR-0032 decision 6 and amendment "the service preset", ADR-0036): application-owned files
3
- * `mantle generate` writes once and never again, for either built-in dialect. Nothing here is compared by `--check`.
4
- */
5
- import { existsSync } from "node:fs";
6
- import { mkdir, readFile, writeFile } from "node:fs/promises";
7
- import { basename, dirname, join } from "node:path";
8
- import { toCloudflareCron } from "../spec/domain/service/CloudflareCron.js";
9
- /** The generated module, as `src/*.ts` imports it (a constant, so check:boundaries does not read it as this folder's import). */
10
- const MODULE = "../.mantle/generated/mantle.js";
11
- const OWNED = "// Written once by `mantle generate`; this file is yours now.";
12
- const json = (v) => `${JSON.stringify(v, null, 2)}\n`;
13
- /** `__proto__: fn` in an object literal sets the prototype instead of a handler, so it is computed. */
14
- const key = (s) => (s === "__proto__" ? '["__proto__"]' : /^[A-Za-z_$][\w$]*$/.test(s) ? s : JSON.stringify(s));
15
- function service({ identity, features, dialect, host }) {
16
- const postgres = dialect === "postgres";
17
- const bun = host === "bun";
18
- const localOrigin = bun ? "http://127.0.0.1:3000" : "http://127.0.0.1:8787";
19
- const localEnv = bun ? ".env" : ".dev.vars";
20
- const mcp = features.includes("mcp");
21
- // the staff surface needs someone to be staff, so it comes with an identity
22
- const staffMcp = mcp && identity !== "none";
23
- const admin = features.includes("admin");
24
- const mantle = identity === "mantle";
25
- const withEnv = mantle || admin;
26
- const core = ["createMantle", ...(identity === "none" ? [] : ["withCaller"]), "type MantleRuntime", "type MantleService", "type Surface"];
27
- const auth = mantle ? ["ConsoleEmailSender", "createAuthRoutes", "createCallerResolver", "createMantleAuth", "createSetupIncompleteAuth", "type MantleAuth"] : [];
28
- const env = [...(bun ? [postgres ? " readonly SQL: SQL;" : " readonly DB: Database;"] : postgres ? [" /** PostgreSQL through Hyperdrive; `wrangler dev` connects to its localConnectionString. */", " readonly HYPERDRIVE: { readonly connectionString: string };"] : [" readonly DB: D1Database;"]), ...(admin ? [" /** The Admin SPA's files (`@aotter/mantle-ui/admin`), bound in wrangler.jsonc. */", bun ? " readonly ASSETS: (path: string) => Promise<Response | null>;" : " readonly ASSETS: Fetcher;"] : []), ...(mantle ? [" readonly BETTER_AUTH_SECRET?: string;", " readonly PUBLIC_ORIGIN?: string;", " readonly ADMIN_EMAIL?: string;"] : [])];
29
- const origin = mantle ? [` const origin = env.PUBLIC_ORIGIN?.replace(/\\/+$/, "") ?? "${localOrigin}";`, " const auth = createAuth(env, origin);"] : [];
30
- const caller = mantle
31
- ? [` const resolver = createCallerResolver(auth${mcp ? ", { jwtBearer: { audience: `${origin}/mcp`, scopes: [\"mcp\"] } }" : ""});`, " const authRoutes = createAuthRoutes(auth, { resolver });", " const guard = (surface: Surface, options?: { resourceMetadata?: string }) => withCaller(resolver, surface, options);"]
32
- : identity === "custom"
33
- ? [" const guard = (surface: Surface) => withCaller(resolveCaller, surface);"]
34
- : [" // no identity: every caller is anonymous", " const guard = (surface: Surface) => (request: Request) => surface(request, { kind: \"anonymous\" });"];
35
- const meta = mantle && mcp ? [" const resourceMetadata = `${origin}/.well-known/oauth-protected-resource/mcp`;"] : [];
36
- const adminOptions = [
37
- 'basePath: "/admin"',
38
- bun ? "assets: env.ASSETS" : "assets: (path) => adminAsset(env.ASSETS, path)",
39
- ...(mantle ? ["identity: { directory: auth, roles: auth, deleteUser: auth.deleteUser }"] : []),
40
- ...(mcp ? [`site: { mcpEndpoints: { public: "/mcp", staff: ${staffMcp ? '"/mcp/staff"' : "null"} } }`] : []),
41
- ];
42
- const surfaces = [
43
- ...(admin ? [` ${identity === "custom" ? "// no AdminIdentity: Admin hides the user facets until src/identity.ts can list and manage users\n " : ""}const admin = guard(createAdminSurface(runtime, { ${adminOptions.join(", ")} }));`] : []),
44
- ...(mcp ? [` const mcp = guard(createMcpSurface(runtime, { basePath: "/mcp", surface: "public"${meta.length ? ", resourceMetadata" : ""} })${meta.length ? ", { resourceMetadata }" : ""});`] : []),
45
- // the staff tools for an MCP client with a token: the same audience as /mcp, and the staff surface's own role gate
46
- ...(staffMcp ? [" // MCP Apps hosts render each staff View's rows, and the operations on one row, in the chat",
47
- ` const staffMcp = guard(createMcpSurface(runtime, { basePath: "/mcp/staff", surface: "staff", apps: { resources: [planApp(runtime.plan, { surface: "staff", html: mantleAppHtml })] }${meta.length ? ", resourceMetadata" : ""} })${meta.length ? ", { resourceMetadata }" : ""});`] : []),
48
- " // REST answers everything else: public Views under /api/views and the plan's HTTP Triggers",
49
- ' const rest = guard(createRestSurface(runtime, { basePath: "/api" }));',
50
- ];
51
- const route = [
52
- ` return async (request: Request${mantle ? ", waitUntil: (promise: Promise<unknown>) => void" : ""}): Promise<Response> => {`,
53
- " const { pathname } = new URL(request.url);",
54
- " const under = (base: string) => pathname === base || pathname.startsWith(`${base}/`);",
55
- ...(mantle ? [" // Better Auth's context is per isolate: the request that starts it waits for it, or the next one hangs on it; a failed start is mounted again",
56
- " await auth.ready?.catch((error) => {",
57
- " routes = undefined;",
58
- " throw error;",
59
- " });", " const owned = await authRoutes(request, { waitUntil });", " if (owned) return owned;"] : []),
60
- ...(admin ? [' if (under("/admin")) return admin(request);'] : []),
61
- ...(staffMcp ? [' if (under("/mcp/staff")) return staffMcp(request);'] : []),
62
- ...(mcp ? [' if (under("/mcp")) return mcp(request);'] : []),
63
- " return rest(request);",
64
- " };",
65
- ];
66
- return [
67
- `${OWNED} It composes the service (ADR-0032 decision 6).`,
68
- `import { ${core.join(", ")} } from "@aotter/mantle";`,
69
- ...(admin ? ['import { createAdminSurface } from "@aotter/mantle/admin";'] : []),
70
- ...(auth.length ? [`import { ${auth.join(", ")} } from "@aotter/mantle/auth";`] : []),
71
- ...(bun
72
- ? [postgres ? 'import type { SQL } from "bun";' : 'import type { Database } from "bun:sqlite";', `import { ${postgres ? 'bunPostgresStorage' : 'bunSqliteStorage'}${mantle ? (postgres ? ', bunDatabaseDriver, bunAuthDatabase' : ', bunSqliteDriver') : ''} } from "@aotter/mantle/bun";`]
73
- : postgres
74
- ? [`import { ${mantle ? "pgDatabaseDriver, pgPool, " : ""}postgresStorage, type PgClient, type PgConnect } from "@aotter/mantle/postgres";`, 'import pg from "pg";']
75
- : [`import { ${mantle ? "d1Driver, " : ""}d1Storage } from "@aotter/mantle/cloudflare";`]),
76
- ...(mcp ? [`import { createMcpSurface${staffMcp ? ", planApp" : ""} } from "@aotter/mantle/mcp";`] : []),
77
- ...(staffMcp ? ['import { mantleAppHtml } from "@aotter/mantle-ui/mcp-app";'] : []),
78
- 'import { createRestSurface } from "@aotter/mantle/web";',
79
- `import { plan } from "${MODULE}";`,
80
- 'import { handlers } from "./handlers.js";',
81
- ...(identity === "custom" ? ['import { resolveCaller } from "./identity.js";'] : []),
82
- "",
83
- "export interface Env {",
84
- ...env,
85
- "}",
86
- "",
87
- ...(postgres && !bun ? [
88
- "/** A client per operation: Hyperdrive keeps the pool, and a Worker's socket must not outlive its request. */",
89
- 'const connectTo = (env: Pick<Env, "HYPERDRIVE">): PgConnect => async () => {',
90
- " const client = new pg.Client({ connectionString: env.HYPERDRIVE.connectionString });",
91
- " await client.connect();",
92
- " return client as unknown as PgClient;",
93
- "};",
94
- "",
95
- ] : []),
96
- ...(mantle ? [
97
- "/** One-time codes printed to the log are for local development: a deployed service picks its own sign-in method and sender. */",
98
- "function createAuth(env: Env, origin: string): MantleAuth {",
99
- " // an unset PUBLIC_ORIGIN is not local: the fallback origin below is only for URLs, never for deciding to print codes",
100
- " const local = env.PUBLIC_ORIGIN !== undefined && /^http:\\/\\/(localhost|127\\.0\\.0\\.1|\\[::1\\])(:\\d+)?$/.test(origin);",
101
- " if (!local || !env.BETTER_AUTH_SECRET || !env.ADMIN_EMAIL)",
102
- ` return createSetupIncompleteAuth({ message: "Sign-in is not configured: copy ${localEnv}.example to ${localEnv} locally, or choose a sign-in method in src/service.ts." });`,
103
- " return createMantleAuth({",
104
- bun
105
- ? postgres ? ' database: bunAuthDatabase(env.SQL), driver: bunDatabaseDriver(env.SQL), baseURL: origin, secret: env.BETTER_AUTH_SECRET,' : " database: env.DB, driver: bunSqliteDriver(env.DB), baseURL: origin, secret: env.BETTER_AUTH_SECRET,"
106
- : postgres
107
- ? " database: pgPool(connectTo(env)), driver: pgDatabaseDriver(connectTo(env)), baseURL: origin, secret: env.BETTER_AUTH_SECRET,"
108
- : " database: env.DB, driver: d1Driver(env.DB), baseURL: origin, secret: env.BETTER_AUTH_SECRET,",
109
- ' methods: [{ kind: "email-otp", sender: new ConsoleEmailSender() }],',
110
- ' bootstrapOwner: { match: "email", value: env.ADMIN_EMAIL },',
111
- bun ? ' ipAddressHeaders: ["x-mantle-client-ip"],' : ' ipAddressHeaders: ["cf-connecting-ip"],',
112
- ...(mcp ? [' oauthProvider: { loginPage: "/admin/sign-in", consentPage: "/oauth/consent", scopes: ["mcp"], mcpResource: `${origin}/mcp` },'] : []),
113
- " });",
114
- "}",
115
- "",
116
- ] : []),
117
- ...(admin && !bun ? [
118
- "/** A file of the Admin SPA, or null when it has none by that path. */",
119
- "async function adminAsset(assets: Fetcher, path: string): Promise<Response | null> {",
120
- ' const response = await assets.fetch(new URL(path, "http://assets/"));',
121
- " return response.ok ? response : null;",
122
- "}",
123
- "",
124
- ] : []),
125
- `function mount(runtime: MantleRuntime${withEnv ? ", env: Env" : ""}) {`,
126
- ...origin, ...caller, ...meta, ...surfaces, ...route,
127
- "}",
128
- "",
129
- "let routes: ReturnType<typeof mount> | undefined;",
130
- "const service: MantleService<Env> = {",
131
- " handlers,",
132
- mantle
133
- ? " fetch: (request, env, { runtime, waitUntil }) => (routes ??= mount(runtime, env))(request, waitUntil),"
134
- : withEnv
135
- ? " fetch: (request, env, { runtime }) => (routes ??= mount(runtime, env))(request),"
136
- : " fetch: (request, _env, { runtime }) => (routes ??= mount(runtime))(request),",
137
- "};",
138
- "",
139
- `export const mantle = createMantle(service, { plan, storage: (env) => ${bun ? (postgres ? "bunPostgresStorage(env.SQL)" : "bunSqliteStorage(env.DB)") : postgres ? "postgresStorage({ connect: connectTo(env) })" : "d1Storage(env.DB)"}, schedules: ${bun ? "false" : "true"} });`,
140
- "",
141
- ].join("\n");
142
- }
143
- function handlers(plan) {
144
- const refs = [...new Set(Object.values(plan.procedures).flatMap((p) => ("ref" in p.handler ? [p.handler.ref] : [])))].sort();
145
- return [
146
- `${OWNED} \`MantleHandlers\` lists exactly the plan's handler refs.`,
147
- `import type { MantleHandlers } from "${MODULE}";`,
148
- "",
149
- `export const handlers: MantleHandlers = {${refs.length ? "" : "};"}`,
150
- ...(refs.length ? [...refs.map((r) => ` ${key(r)}: async () => {\n throw new Error(${JSON.stringify(`not implemented: ${r}`)});\n },`), "};"] : []),
151
- "",
152
- ].join("\n");
153
- }
154
- const IDENTITY = `${OWNED}
155
- import type { CallerResolver } from "@aotter/mantle";
156
-
157
- /**
158
- * Your service's users as Mantle callers (ADR-0032 decision 8). Read your session or token and return
159
- * \`{ caller: { kind: "user", subject, role, scopes, credential, credentialId, clientId } }\`; \`{ caller: { kind: "anonymous" } }\`
160
- * only when no credential was presented; \`{ invalid: true }\` when one was presented and failed.
161
- */
162
- export const resolveCaller: CallerResolver = async () => {
163
- // TODO(mantle): until this is implemented every request fails, and never runs as anonymous.
164
- throw new Error("src/identity.ts: resolveCaller is not implemented. Map your session or token to a Caller.");
165
- };
166
- `;
167
- const ENTRY = `${OWNED} The Cloudflare entry (ADR-0032 decision 6).
168
- import { waitUntil } from "cloudflare:workers";
169
- import { toCloudflareCron } from "@aotter/mantle/cloudflare";
170
- import { plan } from "${MODULE}";
171
- import { mantle, type Env } from "./service.js";
172
-
173
- // Cloudflare names a cron as wrangler.jsonc spells it; the plan's schedule Triggers are POSIX, and several spellings can share one
174
- const crons = new Map<string, string[]>();
175
- for (const t of Object.values(plan.triggers)) {
176
- if (t.source.kind !== "schedule" || t.source.enabled === false) continue;
177
- const cf = toCloudflareCron(t.source.cron);
178
- const posix = crons.get(cf) ?? [];
179
- if (!posix.includes(t.source.cron)) crons.set(cf, [...posix, t.source.cron]);
180
- }
181
- // not bound to one request, so a handler's ctx.waitUntil never lands on another request's finished context
182
- const ctx = { waitUntil };
183
-
184
- export default {
185
- fetch: (request, env) => mantle.fetch(request, env, ctx),
186
- async scheduled(controller, env) {
187
- const posix = crons.get(controller.cron);
188
- if (posix === undefined) throw new Error(\`No schedule Trigger runs on the Cloudflare cron '\${controller.cron}'\`);
189
- const errors: unknown[] = [];
190
- for (const cron of posix) {
191
- try {
192
- await mantle.invokeSchedule(cron, controller.scheduledTime, env, ctx);
193
- } catch (error) {
194
- errors.push(error);
195
- }
196
- }
197
- if (errors.length) throw new AggregateError(errors, \`\${errors.length} cron spelling(s) failed for '\${controller.cron}'\`);
198
- },
199
- } satisfies ExportedHandler<Env>;
200
- `;
201
- /** Where the Admin SPA's files are once `@aotter/mantle-ui` is installed. */
202
- const ADMIN_FILES = "node_modules/@aotter/mantle-ui/dist/admin";
203
- /** Where `wrangler dev` finds PostgreSQL; the deployed Worker uses the Hyperdrive config instead. */
204
- const LOCAL_PG = (name) => `postgres://postgres:postgres@127.0.0.1:5432/${name.replace(/-/g, "_")}`;
205
- function wrangler(root, plan, admin, dialect) {
206
- const name = basename(root).toLowerCase().replace(/[^a-z0-9-]/g, "-").replace(/^-+|-+$/g, "").slice(0, 63).replace(/-+$/, "") || "mantle-app";
207
- const crons = [...new Set(Object.values(plan.triggers).flatMap((t) => (t.source.kind === "schedule" && t.source.enabled !== false ? [toCloudflareCron(t.source.cron)] : [])))].sort();
208
- return json({
209
- $schema: "node_modules/wrangler/config-schema.json", name, main: "src/index.ts", compatibility_date: "2026-09-01", compatibility_flags: ["nodejs_compat"],
210
- ...(dialect === "postgres"
211
- // `wrangler hyperdrive create <name> --caching-disabled --connection-string=...` prints the id: Mantle reads in transactions,
212
- // which Hyperdrive never caches, but Better Auth's session reads are not, so caching stays off
213
- ? { hyperdrive: [{ binding: "HYPERDRIVE", id: "REPLACE_WITH_HYPERDRIVE_CONFIG_ID", localConnectionString: LOCAL_PG(name) }] }
214
- : { d1_databases: [{ binding: "DB", database_name: name }] }),
215
- // the Worker answers every request (Admin serves the shell with its own headers); `none` keeps index.html fetchable by name
216
- ...(admin ? { assets: { directory: ADMIN_FILES, binding: "ASSETS", run_worker_first: true, html_handling: "none" } } : {}),
217
- ...(crons.length ? { triggers: { crons } } : {}),
218
- });
219
- }
220
- const TSCONFIG = json({
221
- compilerOptions: {
222
- target: "ES2022", lib: ["ES2023"], module: "ESNext", moduleResolution: "Bundler", strict: true, noEmit: true, skipLibCheck: true, resolveJsonModule: true,
223
- // node: `nodejs_compat` serves the node: modules @aotter/mantle/auth imports
224
- types: ["@cloudflare/workers-types", "node"],
225
- },
226
- include: ["src/**/*.ts", ".mantle/generated/**/*.ts"],
227
- });
228
- const DEV_VARS = `# Copy to .dev.vars for local sign-in: one-time codes are printed to the wrangler log. Never deploy these values.
229
- PUBLIC_ORIGIN=http://127.0.0.1:8787
230
- ADMIN_EMAIL=you@example.com
231
- BETTER_AUTH_SECRET=replace-with-a-random-32-byte-secret
232
- `;
233
- /** The preset's files for this selection, by path. */
234
- export function presetFiles(root, selection, plan) {
235
- return [
236
- ["src/handlers.ts", handlers(plan)],
237
- ...(selection.identity === "custom" ? [["src/identity.ts", IDENTITY]] : []),
238
- ["src/index.ts", selection.host === "bun" ? bunEntry(selection) : ENTRY],
239
- ...(selection.host === "bun" ? [] : ["wrangler.jsonc", "wrangler.json", "wrangler.toml"].some((f) => existsSync(join(root, f))) ? [] : [["wrangler.jsonc", wrangler(root, plan, selection.features.includes("admin"), selection.dialect)]]),
240
- ["tsconfig.json", selection.host === "bun" ? TSCONFIG.replace('"@cloudflare/workers-types",', '"bun-types",').replace('"ES2023"', '"ES2023",\n "DOM"') : TSCONFIG],
241
- ...(selection.identity === "mantle" || selection.host === "bun" ? [[selection.host === "bun" ? ".env.example" : ".dev.vars.example", selection.host === "bun" ? bunEnv(selection) : DEV_VARS]] : []),
242
- [".gitignore", "node_modules/\n.wrangler/\n.dev.vars\n.env\n*.sqlite\n*.sqlite-shm\n*.sqlite-wal\n"],
243
- // last: its existence is what marks the preset as written, so a write that failed midway is completed by the rerun
244
- ["src/service.ts", service(selection)],
245
- ];
246
- }
247
- /**
248
- * Writes each preset file that does not exist, and none when `src/service.ts` does: the application then owns its composition.
249
- * Returns the paths written.
250
- */
251
- export async function writePreset(root, selection, plan) {
252
- if (existsSync(join(root, "src/service.ts")))
253
- return [];
254
- const written = [];
255
- for (const [path, text] of presetFiles(root, selection, plan)) {
256
- try {
257
- await mkdir(dirname(join(root, path)), { recursive: true });
258
- await writeFile(join(root, path), text, { flag: "wx" });
259
- written.push(path);
260
- }
261
- catch (err) {
262
- const code = err.code;
263
- if (code !== "EEXIST")
264
- throw new Error(`cannot write ${path} (${code ?? "error"})`);
265
- }
266
- }
267
- return written;
268
- }
269
- /** What the application-owned files may have drifted from: never written, only reported. */
270
- export async function presetWarnings(root, selection, selectionChanged, plan) {
271
- if (!existsSync(join(root, "src/service.ts")))
272
- return [];
273
- const out = [];
274
- if (selectionChanged)
275
- out.push(`the selection changed but src/service.ts already exists and is yours: update its composition to identity '${selection.identity}' and features ${selection.features.join(", ") || "none"}`);
276
- if (selection.host === "bun")
277
- return out;
278
- const wrangler = await readFile(join(root, "wrangler.jsonc"), "utf8").catch(() => undefined);
279
- if (wrangler !== undefined) {
280
- const declared = new Set([...(/"crons"\s*:\s*\[([^\]]*)\]/.exec(wrangler)?.[1] ?? "").matchAll(/"([^"]*)"/g)].map((m) => m[1]));
281
- const wanted = new Set(Object.values(plan.triggers).flatMap((t) => (t.source.kind === "schedule" && t.source.enabled !== false ? [toCloudflareCron(t.source.cron)] : [])));
282
- const missing = [...wanted].filter((c) => !declared.has(c));
283
- const extra = [...declared].filter((c) => !wanted.has(c));
284
- if (selection.dialect === "postgres" && !/"hyperdrive"\s*:/.test(wrangler))
285
- out.push('wrangler.jsonc has no hyperdrive binding, which src/service.ts reads PostgreSQL through: add "hyperdrive": [{ "binding": "HYPERDRIVE", "id": "<config id>", "localConnectionString": "postgres://..." }]');
286
- if (selection.dialect === "postgres" && wrangler.includes("REPLACE_WITH_HYPERDRIVE_CONFIG_ID"))
287
- out.push("wrangler.jsonc's Hyperdrive id is still the placeholder: create the config with `wrangler hyperdrive create <name> --caching-disabled --connection-string=...` before deploying");
288
- if (selection.features.includes("admin") && !/"binding"\s*:\s*"ASSETS"/.test(wrangler))
289
- out.push('wrangler.jsonc binds no ASSETS, which src/service.ts serves the Admin console from: add "assets": { "directory": "node_modules/@aotter/mantle-ui/dist/admin", "binding": "ASSETS", "run_worker_first": true, "html_handling": "none" }');
290
- if (missing.length || extra.length)
291
- out.push(`wrangler.jsonc triggers.crons does not match the plan's schedule Triggers${missing.length ? `; add ${missing.map((c) => `"${c}"`).join(", ")}` : ""}${extra.length ? `; nothing runs on ${extra.map((c) => `"${c}"`).join(", ")}` : ""}`);
292
- }
293
- return out;
294
- }
295
- function bunEntry(selection) {
296
- const pg = selection.dialect === 'postgres';
297
- const admin = selection.features.includes('admin');
298
- return `${OWNED} Bun owns the server, native database pool and background work.
299
- ${pg ? 'import { SQL } from "bun";' : 'import { Database } from "bun:sqlite";'}
300
- ${admin ? 'import { bunAdminAssets } from "@aotter/mantle/bun";\nimport { dirname } from "node:path";\nimport { fileURLToPath } from "node:url";\n' : ''}import { mantle, type Env } from "./service.js";
301
-
302
- ${pg ? 'if (!process.env.DATABASE_URL || !/^postgres(?:ql)?:\\/\\//.test(process.env.DATABASE_URL)) throw new Error("DATABASE_URL must be a PostgreSQL URL");\nconst sql = new SQL(process.env.DATABASE_URL, { bigint: true, prepare: false });' : 'const db = new Database(process.env.DATABASE_FILE ?? "mantle.sqlite", { create: true });'}
303
- const env: Env = {
304
- ${pg ? 'SQL: sql' : 'DB: db'},
305
- ${admin ? ' ASSETS: bunAdminAssets(dirname(fileURLToPath(import.meta.resolve("@aotter/mantle-ui/admin/index.html")))),\n' : ''}${selection.identity === 'mantle' ? ' PUBLIC_ORIGIN: process.env.PUBLIC_ORIGIN, BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET, ADMIN_EMAIL: process.env.ADMIN_EMAIL,\n' : ''}};
306
- // the client is the socket's address; behind a proxy you list in TRUSTED_PROXIES, the address it appended to X-Forwarded-For
307
- const proxies = new Set((process.env.TRUSTED_PROXIES ?? "").split(",").map((s) => s.trim()).filter(Boolean));
308
- const pending = new Set<Promise<unknown>>();
309
- const waitUntil = (promise: Promise<unknown>) => {
310
- const task = promise.catch(console.error).finally(() => pending.delete(task));
311
- pending.add(task);
312
- };
313
- const server = Bun.serve({
314
- hostname: process.env.HOST ?? "127.0.0.1", port: Number(process.env.PORT ?? 3000),
315
- // never Bun's development error page: it shows the exception, the stack and paths to any client
316
- development: false,
317
- error(error) {
318
- console.error(error);
319
- return Response.json({ error: { code: "INTERNAL_ERROR", message: "An internal error occurred." } }, { status: 500 });
320
- },
321
- fetch(request, server) {
322
- const headers = new Headers(request.headers);
323
- headers.delete("x-mantle-client-ip");
324
- const socket = server.requestIP(request)?.address?.replace(/^::ffff:/, "");
325
- const forwarded = socket && proxies.has(socket) ? request.headers.get("x-forwarded-for")?.split(",").at(-1)?.trim() : undefined;
326
- const ip = forwarded || socket;
327
- if (ip) headers.set("x-mantle-client-ip", ip);
328
- return mantle.fetch(new Request(request, { headers }), env, { waitUntil });
329
- },
330
- });
331
- let stopping = false;
332
- const stop = async () => {
333
- if (stopping) return;
334
- stopping = true;
335
- await server.stop();
336
- while (pending.size) await Promise.allSettled([...pending]);
337
- ${pg ? 'await sql.close({ timeout: 5 });' : 'db.close();'}
338
- };
339
- process.once("SIGINT", stop);
340
- process.once("SIGTERM", stop);
341
- console.log(\`Mantle: \${server.url}\`);
342
- `;
343
- }
344
- function bunEnv(selection) {
345
- return `# Copy to .env for local development. Never deploy these values.
346
- ${selection.dialect === 'postgres' ? 'DATABASE_URL=postgres://postgres:postgres@127.0.0.1:5432/mantle_app' : 'DATABASE_FILE=mantle.sqlite'}
347
- PORT=3000
348
- # Behind a reverse proxy, list its addresses so each client keeps its own sign-in rate limit, e.g. TRUSTED_PROXIES=127.0.0.1
349
- # TRUSTED_PROXIES=
350
- ${selection.identity === 'mantle' ? 'PUBLIC_ORIGIN=http://127.0.0.1:3000\nADMIN_EMAIL=you@example.com\nBETTER_AUTH_SECRET=replace-with-a-random-32-byte-secret\n' : ''}`;
351
- }
352
- //# sourceMappingURL=preset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preset.js","sourceRoot":"","sources":["../../src/cli/preset.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAU5E,iIAAiI;AACjI,MAAM,MAAM,GAAG,gCAAgC,CAAC;AAChD,MAAM,KAAK,GAAG,+DAA+D,CAAC;AAC9E,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/D,uGAAuG;AACvG,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAExH,SAAS,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAmB;IACrE,MAAM,QAAQ,GAAG,OAAO,KAAK,UAAU,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC;IAC3B,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,GAAG,IAAI,QAAQ,KAAK,MAAM,CAAC;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,QAAQ,KAAK,QAAQ,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,IAAI,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;IAC1I,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClK,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,+FAA+F,EAAE,+DAA+D,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sFAAsF,EAAE,GAAG,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yCAAyC,EAAE,oCAAoC,EAAE,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzoB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,gEAAgE,WAAW,IAAI,EAAE,yCAAyC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1J,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,CAAC,+CAA+C,GAAG,CAAC,CAAC,CAAC,mEAAmE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,4DAA4D,EAAE,wHAAwH,CAAC;QAC7T,CAAC,CAAC,QAAQ,KAAK,QAAQ;YACrB,CAAC,CAAC,CAAC,2EAA2E,CAAC;YAC/E,CAAC,CAAC,CAAC,6CAA6C,EAAE,wGAAwG,CAAC,CAAC;IAChK,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,kFAAkF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvH,MAAM,YAAY,GAAG;QACnB,oBAAoB;QACpB,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gDAAgD;QAC7E,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yEAAyE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kDAAkD,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7G,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,sGAAsG,CAAC,CAAC,CAAC,EAAE,qDAAqD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/O,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sFAAsF,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpM,mHAAmH;QACnH,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,+FAA+F;YAC7G,yLAAyL,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9R,+FAA+F;QAC/F,yEAAyE;KAC1E,CAAC;IACF,MAAM,KAAK,GAAG;QACZ,mCAAmC,MAAM,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,EAAE,2BAA2B;QAC9H,gDAAgD;QAChD,2FAA2F;QAC3F,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oJAAoJ;YAChK,0CAA0C;YAC1C,2BAA2B;YAC3B,oBAAoB;YACpB,SAAS,EAAE,6DAA6D,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,2BAA2B;QAC3B,MAAM;KACP,CAAC;IACF,OAAO;QACL,GAAG,KAAK,iDAAiD;QACzD,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B;QACtD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,GAAG;YACL,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,6CAA6C,EAAE,YAAY,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC;YAC3R,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,kFAAkF,EAAE,sBAAsB,CAAC;gBACpK,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,+CAA+C,CAAC,CAAC;QAC5F,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,yDAAyD;QACzD,yBAAyB,MAAM,IAAI;QACnC,2CAA2C;QAC3C,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,EAAE;QACF,wBAAwB;QACxB,GAAG,GAAG;QACN,GAAG;QACH,EAAE;QACF,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACrB,+GAA+G;YAC/G,8EAA8E;YAC9E,wFAAwF;YACxF,2BAA2B;YAC3B,yCAAyC;YACzC,IAAI;YACJ,EAAE;SACH,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACX,iIAAiI;YACjI,6DAA6D;YAC7D,yHAAyH;YACzH,+HAA+H;YAC/H,8DAA8D;YAC9D,oFAAoF,QAAQ,eAAe,QAAQ,8DAA8D;YACjL,6BAA6B;YAC7B,GAAG;gBACD,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,8HAA8H,CAAC,CAAC,CAAC,yGAAyG;gBACvP,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,kIAAkI;oBACpI,CAAC,CAAC,kGAAkG;YACtG,yEAAyE;YACzE,iEAAiE;YACjE,GAAG,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,6CAA6C;YACrG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mIAAmI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrJ,OAAO;YACP,GAAG;YACH,EAAE;SACH,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAClB,wEAAwE;YACxE,sFAAsF;YACtF,yEAAyE;YACzE,yCAAyC;YACzC,GAAG;YACH,EAAE;SACH,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,wCAAwC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK;QACxE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK;QACpD,GAAG;QACH,EAAE;QACF,mDAAmD;QACnD,uCAAuC;QACvC,aAAa;QACb,MAAM;YACJ,CAAC,CAAC,0GAA0G;YAC5G,CAAC,CAAC,OAAO;gBACP,CAAC,CAAC,oFAAoF;gBACtF,CAAC,CAAC,gFAAgF;QACtF,IAAI;QACJ,EAAE;QACF,yEAAyE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,mBAAmB,gBAAgB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM;QACpR,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,IAAiB;IACjC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7H,OAAO;QACL,GAAG,KAAK,4DAA4D;QACpE,wCAAwC,MAAM,IAAI;QAClD,EAAE;QACF,4CAA4C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;QACrE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,wCAAwC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxJ,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,QAAQ,GAAG,GAAG,KAAK;;;;;;;;;;;;CAYxB,CAAC;AAEF,MAAM,KAAK,GAAG,GAAG,KAAK;;;wBAGE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B7B,CAAC;AAEF,6EAA6E;AAC7E,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAEhE,qGAAqG;AACrG,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,+CAA+C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;AAE5G,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAiB,EAAE,KAAc,EAAE,OAAmC;IACpG,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC;IAC9I,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtL,OAAO,IAAI,CAAC;QACV,OAAO,EAAE,0CAA0C,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC,eAAe,CAAC;QACzJ,GAAG,CAAC,OAAO,KAAK,UAAU;YACxB,8HAA8H;YAC9H,+FAA+F;YAC/F,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,mCAAmC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC7H,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,4HAA4H;QAC5H,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1H,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,CAAC;IACpB,eAAe,EAAE;QACf,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI;QACzJ,6EAA6E;QAC7E,KAAK,EAAE,CAAC,2BAA2B,EAAE,MAAM,CAAC;KAC7C;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,2BAA2B,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG;;;;CAIhB,CAAC;AAEF,sDAAsD;AACtD,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,SAA0B,EAAE,IAAiB;IACrF,OAAO;QACL,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,GAAG,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAqB,CAAC,CAAC;QAC/P,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvK,GAAG,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,EAAE,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxN,CAAC,YAAY,EAAE,oFAAoF,CAAC;QACpG,mHAAmH;QACnH,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,SAA0B,EAAE,IAAiB;IAC3F,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACxD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,SAA0B,EAAE,gBAAyB,EAAE,IAAiB;IACzH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACzD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,gBAAgB;QAAE,GAAG,CAAC,IAAI,CAAC,6GAA6G,SAAS,CAAC,QAAQ,kBAAkB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IAC3N,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7F,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QACjI,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3K,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,0MAA0M,CAAC,CAAC;QACjS,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,iLAAiL,CAAC,CAAC;QAC5R,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,wOAAwO,CAAC,CAAC;QAC3U,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,4EAA4E,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1R,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,SAA0B;IAC1C,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,KAAK,UAAU,CAAC;IAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,GAAG,KAAK;EACf,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,wCAAwC;EAC5E,KAAK,CAAC,CAAC,CAAC,yIAAyI,CAAC,CAAC,CAAC,EAAE;;EAEtJ,EAAE,CAAC,CAAC,CAAC,yOAAyO,CAAC,CAAC,CAAC,0FAA0F;;IAEzU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;EAC5B,KAAK,CAAC,CAAC,CAAC,gHAAgH,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,yIAAyI,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgC9S,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,aAAa;;;;;CAK1D,CAAC;AACF,CAAC;AAED,SAAS,MAAM,CAAC,SAA0B;IACxC,OAAO;EACP,SAAS,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,6BAA6B;;;;EAIxI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,6HAA6H,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACzK,CAAC"}
@@ -1,21 +0,0 @@
1
- /** `@aotter/mantle/cloudflare`: the D1 driver. Structural types, so this needs no `@cloudflare/workers-types`. */
2
- import type { DatabaseDriver } from "../core/driver.js";
3
- import type { SiteDefaults } from "../spec/domain/index.js";
4
- interface D1PreparedStatement {
5
- bind(...values: unknown[]): D1PreparedStatement;
6
- }
7
- interface D1Database {
8
- prepare(sql: string): D1PreparedStatement;
9
- batch(statements: D1PreparedStatement[]): Promise<{
10
- results?: Record<string, unknown>[];
11
- }[]>;
12
- }
13
- export declare function d1Driver(db: D1Database): DatabaseDriver;
14
- /** D1 storage for `createMantle`: `storage: (env) => d1Storage(env.DB)`. */
15
- export declare const d1Storage: (db: D1Database, options?: {
16
- timeZone?: string;
17
- site?: SiteDefaults;
18
- }) => import("../core/service.js").MantleStorageAdapter;
19
- export { r2MediaStorage, type R2MediaStorageOptions } from "./r2Media.js";
20
- export { toCloudflareCron } from "../spec/domain/service/CloudflareCron.js";
21
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAClH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,UAAU,mBAAmB;IAAG,IAAI,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAA;CAAE;AACjF,UAAU,UAAU;IAClB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC1C,KAAK,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,EAAE,CAAC,CAAC;CAC9F;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,cAAc,CAOvD;AAED,4EAA4E;AAC5E,eAAO,MAAM,SAAS,GAAI,IAAI,UAAU,EAAE,UAAU;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,sDAAkE,CAAC;AACjK,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC"}
@@ -1,14 +0,0 @@
1
- import { sqliteStorage } from "../d1/index.js";
2
- export function d1Driver(db) {
3
- return {
4
- async batch(statements) {
5
- const out = await db.batch(statements.map((s) => db.prepare(s.sql).bind(...(s.binds ?? []))));
6
- return out.map((r) => ({ rows: r.results ?? [] }));
7
- },
8
- };
9
- }
10
- /** D1 storage for `createMantle`: `storage: (env) => d1Storage(env.DB)`. */
11
- export const d1Storage = (db, options) => sqliteStorage(d1Driver(db), { ...options, maxBindings: 100 });
12
- export { r2MediaStorage } from "./r2Media.js";
13
- export { toCloudflareCron } from "../spec/domain/service/CloudflareCron.js";
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS/C,MAAM,UAAU,QAAQ,CAAC,EAAc;IACrC,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,UAAU;YACpB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9F,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAc,EAAE,OAAoD,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;AACjK,OAAO,EAAE,cAAc,EAA8B,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"r2Media.d.ts","sourceRoot":"","sources":["../../src/cloudflare/r2Media.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,iBAAiB,CAAC;AAElE,UAAU,MAAM;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AACD,UAAU,QAAQ;IAChB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/E,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE;QAAE,YAAY,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrJ,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AACD,gDAAgD;AAChD,UAAU,QAAQ;IAChB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,OAAO,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/G;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAOD,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,qBAAqB,GAAG,YAAY,CAoD5G"}
@@ -1,69 +0,0 @@
1
- /**
2
- * `MediaStorage` on R2, public bucket only. The binding reads, copies and deletes objects; it cannot presign, so the PUT
3
- * URLs are SigV4 query-signed by the host's S3 client (`new AwsClient({ accessKeyId, secretAccessKey, region: "auto", service: "s3" })` from `aws4fetch`).
4
- * Reads bypass the Worker: `publicBase` is the bucket's custom domain or `pub-<hash>.r2.dev`.
5
- *
6
- * A presigned PUT binds neither the type nor the size, and it stays usable until it expires. So uploads land under `uploads/`,
7
- * commit checks each object through the binding and copies it to its public key, which no upload URL names, and a rejected
8
- * group is deleted by the use case (`deleteObject` on each upload key).
9
- */
10
- import { DiagnosticError, makeDiagnostic } from "../spec/kernel/index.js";
11
- const EXT = { "image/png": "png", "image/jpeg": "jpg", "image/webp": "webp", "image/avif": "avif", "image/gif": "gif" };
12
- const UPLOADS = "uploads/";
13
- const fail = (code, message, value) => new DiagnosticError(makeDiagnostic({ code, phase: "runtime", severity: "error", path: "media/r2", message, ...(value === undefined ? {} : { value }) }));
14
- export function r2MediaStorage({ bucket, signer, endpoint, publicBase }) {
15
- if (!publicBase)
16
- throw fail("MEDIA_NOT_CONFIGURED", "R2 media storage needs publicBase, the bucket's public URL");
17
- const base = publicBase.replace(/\/+$/, "");
18
- const s3 = endpoint.replace(/\/+$/, "");
19
- return {
20
- async createUpload({ uploadGroupId, purpose, variants, now, expiresAt }) {
21
- const ttl = Math.max(60, Math.floor((expiresAt - now) / 1000));
22
- return {
23
- capabilities: await Promise.all(variants.map(async (v) => {
24
- // server-made keys, one directory per asset so its variants list together
25
- const storageKey = `${UPLOADS}${purpose}/${uploadGroupId}/${v.role}.${EXT[v.mimeType] ?? "bin"}`;
26
- const target = new URL(`${s3}/${storageKey}`);
27
- target.searchParams.set("X-Amz-Expires", String(ttl));
28
- const { url } = await signer.sign(target.href, { method: "PUT", aws: { signQuery: true, service: "s3" } });
29
- return { mimeType: v.mimeType, role: v.role, method: "PUT", uploadUrl: url, storageKey, requiredHeaders: { "Content-Type": v.mimeType } };
30
- })),
31
- };
32
- },
33
- async commitUpload({ uploadGroupId, filename, variants, alt, caption, now }) {
34
- // every variant is checked before any is published, so a rejected group publishes nothing
35
- const heads = [];
36
- for (const spec of variants) {
37
- const o = await bucket.head(spec.storageKey);
38
- if (!o)
39
- throw fail("MEDIA_OBJECT_NOT_FOUND", `variant ${spec.role} of '${uploadGroupId}' was not uploaded`, uploadGroupId);
40
- const mime = o.httpMetadata?.contentType ?? "application/octet-stream";
41
- if (mime !== spec.mimeType)
42
- throw fail("MEDIA_MIME_REJECTED", `the stored ${spec.role} is ${mime}, not ${spec.mimeType}`, mime);
43
- if (o.size > spec.maxBytes)
44
- throw fail("MEDIA_VARIANT_SIZE_EXCEEDED", `the stored ${spec.role} is ${o.size} bytes, more than ${spec.maxBytes}`, o.size);
45
- heads.push(o);
46
- }
47
- const out = [];
48
- for (const [i, spec] of variants.entries()) {
49
- const key = spec.storageKey.slice(UPLOADS.length);
50
- const o = await bucket.get(spec.storageKey);
51
- // an upload URL may PUT again between the check and the copy: the copy must be what was checked
52
- if (!o || o.size !== heads[i].size || o.httpMetadata?.contentType !== spec.mimeType) {
53
- await o?.body.cancel().catch(() => undefined);
54
- await Promise.allSettled(out.map((v) => bucket.delete(v.storageKey)));
55
- throw fail("MEDIA_OBJECT_NOT_FOUND", `variant ${spec.role} of '${uploadGroupId}' changed during commit`, uploadGroupId);
56
- }
57
- await bucket.put(key, o.body, {
58
- httpMetadata: { contentType: spec.mimeType },
59
- customMetadata: { ...o.customMetadata, committedAt: String(now), role: spec.role, uploadGroupId, filename, ...(alt ? { alt } : {}), ...(caption ? { caption } : {}) },
60
- });
61
- await bucket.delete(spec.storageKey);
62
- out.push({ mimeType: spec.mimeType, publicUrl: `${base}/${key}`, storageKey: key, byteSize: o.size, role: spec.role });
63
- }
64
- return { id: uploadGroupId, variants: out, createdAt: now, metadata: { filename }, ...(alt !== undefined ? { alt } : {}), ...(caption !== undefined ? { caption } : {}) };
65
- },
66
- deleteObject: ({ storageKey }) => bucket.delete(storageKey),
67
- };
68
- }
69
- //# sourceMappingURL=r2Media.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"r2Media.js","sourceRoot":"","sources":["../../src/cloudflare/r2Media.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- /** Caller identity (ADR-0032 decision 8). Mantle never owns the user or the auth; a resolver produces the Caller. */
2
- import type { StaffRole } from "../spec/domain/index.js";
3
- export type CredentialKind = "session" | "oauth" | "api-key" | "personal-token";
4
- export type Caller = {
5
- readonly kind: "anonymous";
6
- } | {
7
- readonly kind: "user";
8
- /** Application subject key: opaque, stable, unique across issuers. Never an email. */
9
- readonly subject: string;
10
- /** Informational. */
11
- readonly issuer?: string;
12
- readonly role: StaffRole | null;
13
- readonly scopes: readonly string[];
14
- readonly credential: CredentialKind;
15
- /** Opaque record id or token JTI, never the raw credential. */
16
- readonly credentialId: string | null;
17
- readonly clientId: string | null;
18
- } | {
19
- readonly kind: "system";
20
- readonly reason: string;
21
- };
22
- /**
23
- * Resolves the Caller once per request, at the service's entry. `invalid` is answered 401 before any
24
- * surface runs and is never anonymous; only "no credential presented" is.
25
- */
26
- export type CallerResolver = (request: Request) => Promise<{
27
- readonly caller: Caller;
28
- } | {
29
- readonly invalid: true;
30
- readonly challenge?: string; /** 403 for a valid token that lacks a scope (RFC 6750 insufficient_scope); 401 otherwise. */
31
- readonly status?: 401 | 403;
32
- }>;
33
- /** Host code only; no wire produces one. Satisfies no `requires.auth` predicate, bypasses caller scope and nothing else. */
34
- export declare const systemCaller: (reason: string) => Caller;
35
- //# sourceMappingURL=caller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"caller.d.ts","sourceRoot":"","sources":["../../src/core/caller.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAEhF,MAAM,MAAM,MAAM,GACd;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qBAAqB;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,6FAA6F;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,CAAC,CAAC;AAE7Q,4HAA4H;AAC5H,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAAsC,CAAC"}
@@ -1,3 +0,0 @@
1
- /** Host code only; no wire produces one. Satisfies no `requires.auth` predicate, bypasses caller scope and nothing else. */
2
- export const systemCaller = (reason) => ({ kind: "system", reason });
3
- //# sourceMappingURL=caller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"caller.js","sourceRoot":"","sources":["../../src/core/caller.ts"],"names":[],"mappings":"AA4BA,4HAA4H;AAC5H,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { RuntimePlan } from "../spec/domain/index.js";
2
- import type { MantleService, MantleStorageAdapter } from "./service.js";
3
- interface WaitUntil {
4
- waitUntil(promise: Promise<unknown>): void;
5
- }
6
- export interface MantleOptions<Env> {
7
- /** The sealed plan the CLI compiled (`mantle generate` emits it beside `src/service.ts`). ADR-0032 decision 6 leaves it out of the signature. */
8
- readonly plan: RuntimePlan;
9
- readonly storage: (env: Env) => MantleStorageAdapter;
10
- /** Set when the entry wires schedules; boot fails for an enabled schedule Trigger without it. */
11
- readonly schedules?: boolean;
12
- /** Refuses to boot when the plan is not the one Cloud compiled. */
13
- readonly expectedFingerprint?: string;
14
- }
15
- export interface Mantle<Env> {
16
- fetch(request: Request, env: Env, ctx?: WaitUntil): Promise<Response>;
17
- invokeSchedule(cron: string, scheduledTime: number, env: Env, ctx?: WaitUntil): Promise<void>;
18
- runDeferredHook(message: unknown, env: Env, ctx?: WaitUntil): Promise<void>;
19
- }
20
- export declare function createMantle<Env>(service: MantleService<Env>, options: MantleOptions<Env>): Mantle<Env>;
21
- export {};
22
- //# sourceMappingURL=createMantle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createMantle.d.ts","sourceRoot":"","sources":["../../src/core/createMantle.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D,OAAO,KAAK,EAAiB,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEvF,UAAU,SAAS;IACjB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa,CAAC,GAAG;IAChC,iJAAiJ;IACjJ,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,oBAAoB,CAAC;IACrD,iGAAiG;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,MAAM,CAAC,GAAG;IACzB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AA6BD,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAqEvG"}