@cosmicdrift/kumiko-framework 0.389.0 → 0.390.0

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 (616) hide show
  1. package/AGENTS.md +9 -4
  2. package/README.md +1 -1
  3. package/agents/examples/apex-surface-auth.md +2 -3
  4. package/agents/examples/api-worker-split.md +9 -2
  5. package/agents/examples/auth-claims.md +1 -1
  6. package/agents/examples/cross-feature-events.md +12 -12
  7. package/agents/examples/crypto-shredding-hr.md +2 -2
  8. package/agents/examples/encrypted-tenant-config.md +1 -1
  9. package/agents/examples/error-contract.md +12 -7
  10. package/agents/examples/event-sourcing.md +29 -29
  11. package/agents/examples/files-post-processing.md +10 -8
  12. package/agents/examples/inbound-mail-triage.md +1 -0
  13. package/agents/examples/lane-routing.md +2 -1
  14. package/agents/examples/legal-pages.md +2 -2
  15. package/agents/examples/lifecycle-hooks.md +3 -3
  16. package/agents/examples/managed-config.md +4 -4
  17. package/agents/examples/managed-pages.md +1 -1
  18. package/agents/examples/relations.md +19 -4
  19. package/agents/examples/search.md +4 -4
  20. package/agents/examples/secrets-demo.md +9 -6
  21. package/agents/examples/state-machine.md +2 -2
  22. package/agents/examples/tenant-settings.md +1 -1
  23. package/agents/examples/user-data-rights.md +3 -6
  24. package/agents/examples/workflow-engine.md +53 -47
  25. package/agents/examples.md +4 -4
  26. package/agents/features.md +1 -1
  27. package/dist/api/auth-middleware.js +1 -1
  28. package/dist/api/auth-routes-invite.js +2 -1
  29. package/dist/api/entity-read-access.d.ts +3 -1
  30. package/dist/api/export/export-columns.d.ts +3 -1
  31. package/dist/api/export/export-route.js +3 -2
  32. package/dist/api/export/export-screen.d.ts +2 -1
  33. package/dist/api/extra-route.d.ts +3 -1
  34. package/dist/api/index.d.ts +23 -27
  35. package/dist/api/index.js +13 -15
  36. package/dist/api/jwt.js +1 -1
  37. package/dist/api/observability-middleware.d.ts +1 -1
  38. package/dist/api/observability-middleware.js +2 -1
  39. package/dist/api/request-context-internals.d.ts +31 -0
  40. package/dist/api/request-context-internals.js +11 -0
  41. package/dist/api/request-context-scopes.d.ts +14 -0
  42. package/dist/api/request-context-scopes.js +69 -0
  43. package/dist/api/request-context.d.ts +1 -40
  44. package/dist/api/request-context.js +22 -51
  45. package/dist/api/request-id-middleware.d.ts +1 -1
  46. package/dist/api/route-registrars.d.ts +2 -1
  47. package/dist/api/route-registrars.js +1 -1
  48. package/dist/api/routes.js +7 -3
  49. package/dist/api/server-boot-checks.d.ts +1 -1
  50. package/dist/api/server-boot-checks.js +2 -2
  51. package/dist/api/server-event-dispatcher.d.ts +6 -1
  52. package/dist/api/server-event-dispatcher.js +3 -4
  53. package/dist/api/server-extra-routes.d.ts +1 -1
  54. package/dist/api/server-extra-routes.js +2 -1
  55. package/dist/api/server-middleware.js +3 -1
  56. package/dist/api/server-routes.d.ts +2 -1
  57. package/dist/api/server-wiring.js +6 -4
  58. package/dist/api/server.d.ts +2 -1
  59. package/dist/api/sse-route.d.ts +2 -1
  60. package/dist/api/tenant-scoped-secrets.d.ts +2 -0
  61. package/dist/api/tenant-scoped-secrets.js +13 -0
  62. package/dist/api/websocket-route.d.ts +1 -1
  63. package/dist/auth/index.d.ts +0 -1
  64. package/dist/auth/roles.d.ts +0 -5
  65. package/dist/compliance/duration-spec.d.ts +0 -1
  66. package/dist/compliance/duration-spec.js +0 -5
  67. package/dist/compliance/index.d.ts +4 -4
  68. package/dist/compliance/index.js +2 -2
  69. package/dist/compliance/profiles.d.ts +0 -15
  70. package/dist/compliance/profiles.js +0 -23
  71. package/dist/config/index.d.ts +10 -10
  72. package/dist/config/index.js +13 -1
  73. package/dist/config/internals.d.ts +9 -0
  74. package/dist/config/internals.js +1 -0
  75. package/dist/consumer-cli-internals.d.ts +4 -0
  76. package/dist/consumer-cli-internals.js +1 -0
  77. package/dist/consumer-cli.d.ts +1 -4
  78. package/dist/consumer-cli.js +5 -1
  79. package/dist/crypto/event-pii.js +1 -1
  80. package/dist/crypto/index.d.ts +8 -9
  81. package/dist/crypto/index.js +7 -8
  82. package/dist/crypto/pg-kms-adapter.js +6 -1
  83. package/dist/db/apply-entity-event.d.ts +1 -1
  84. package/dist/db/apply-entity-event.js +15 -47
  85. package/dist/db/blind-index-cleanup.js +91 -77
  86. package/dist/db/collect-table-metas.js +1 -1
  87. package/dist/db/compound-types.d.ts +1 -1
  88. package/dist/db/compound-types.js +0 -7
  89. package/dist/db/config-seed.d.ts +2 -1
  90. package/dist/db/config-seed.js +6 -1
  91. package/dist/db/connection.d.ts +3 -1
  92. package/dist/db/connection.js +15 -5
  93. package/dist/db/cross-tenant-reads.d.ts +1 -1
  94. package/dist/db/cross-tenant-reads.js +1 -1
  95. package/dist/db/dialect.d.ts +0 -5
  96. package/dist/db/dialect.js +0 -3
  97. package/dist/db/eagerload.d.ts +2 -1
  98. package/dist/db/entity-field-encryption.d.ts +1 -1
  99. package/dist/db/entity-table-meta.d.ts +1 -1
  100. package/dist/db/event-store-executor-context.d.ts +3 -1
  101. package/dist/db/event-store-executor-context.js +4 -3
  102. package/dist/db/event-store-executor-read-filter.d.ts +1 -1
  103. package/dist/db/event-store-executor-read-rows.d.ts +2 -1
  104. package/dist/db/event-store-executor-read-search.d.ts +2 -1
  105. package/dist/db/event-store-executor-read-sort.d.ts +2 -1
  106. package/dist/db/event-store-executor-read.js +2 -2
  107. package/dist/db/event-store-executor-write-atomic.js +8 -7
  108. package/dist/db/event-store-executor-write-steps.d.ts +3 -2
  109. package/dist/db/event-store-executor-write.js +7 -4
  110. package/dist/db/event-store-executor.d.ts +1 -1
  111. package/dist/db/executor-managed-tables.d.ts +7 -1
  112. package/dist/db/executor-managed-tables.js +11 -2
  113. package/dist/db/index.d.ts +29 -28
  114. package/dist/db/index.js +22 -20
  115. package/dist/db/known-table-names.d.ts +6 -0
  116. package/dist/db/known-table-names.js +21 -0
  117. package/dist/db/list-aggregate-labels.d.ts +1 -1
  118. package/dist/db/located-timestamp.d.ts +1 -1
  119. package/dist/db/located-timestamp.js +0 -5
  120. package/dist/db/migrate-generator.d.ts +17 -1
  121. package/dist/db/migrate-generator.js +50 -20
  122. package/dist/db/migrate-primary-key.d.ts +12 -0
  123. package/dist/db/migrate-primary-key.js +45 -0
  124. package/dist/db/migrate-rls-diff.d.ts +20 -0
  125. package/dist/db/migrate-rls-diff.js +61 -0
  126. package/dist/db/migrate-runner.js +4 -0
  127. package/dist/db/money.d.ts +1 -1
  128. package/dist/db/money.js +1 -1
  129. package/dist/db/parent-ref-clause.d.ts +2 -1
  130. package/dist/db/pg-error.d.ts +2 -0
  131. package/dist/db/pg-error.js +11 -0
  132. package/dist/db/queries/ddl.d.ts +3 -0
  133. package/dist/db/queries/ddl.js +34 -1
  134. package/dist/db/queries/event-store.js +4 -2
  135. package/dist/db/queries/event-tenants.d.ts +2 -0
  136. package/dist/db/queries/event-tenants.js +17 -0
  137. package/dist/db/queries/rebuild-rls-guard.d.ts +2 -0
  138. package/dist/db/queries/rebuild-rls-guard.js +29 -0
  139. package/dist/db/queries/rls-boot-catalog.d.ts +16 -0
  140. package/dist/db/queries/rls-boot-catalog.js +39 -0
  141. package/dist/db/queries/rls-catalog.d.ts +6 -0
  142. package/dist/db/queries/rls-catalog.js +82 -0
  143. package/dist/db/queries/rls-scope.d.ts +3 -0
  144. package/dist/db/queries/rls-scope.js +17 -0
  145. package/dist/db/queries/rls-shape.d.ts +10 -0
  146. package/dist/db/queries/rls-shape.js +42 -0
  147. package/dist/db/queries/session-advisory-lock.d.ts +2 -0
  148. package/dist/db/queries/session-advisory-lock.js +23 -0
  149. package/dist/db/queries/shadow-swap.d.ts +1 -2
  150. package/dist/db/queries/shadow-swap.js +9 -25
  151. package/dist/db/queries/test-stack.d.ts +4 -1
  152. package/dist/db/queries/test-stack.js +83 -2
  153. package/dist/db/query.js +11 -7
  154. package/dist/db/reference-data.d.ts +1 -1
  155. package/dist/db/reference-data.js +6 -1
  156. package/dist/db/render-ddl.d.ts +6 -2
  157. package/dist/db/render-ddl.js +7 -7
  158. package/dist/db/render-rls-ddl.d.ts +35 -0
  159. package/dist/db/render-rls-ddl.js +127 -0
  160. package/dist/db/replay-migration-sql.d.ts +3 -1
  161. package/dist/db/replay-migration-sql.js +22 -5
  162. package/dist/db/replay-rls.d.ts +25 -0
  163. package/dist/db/replay-rls.js +156 -0
  164. package/dist/db/row-level-security-boot-check.d.ts +5 -0
  165. package/dist/db/row-level-security-boot-check.js +85 -0
  166. package/dist/db/row-level-security-connection.d.ts +3 -0
  167. package/dist/db/row-level-security-connection.js +213 -0
  168. package/dist/db/row-level-security-scope.d.ts +33 -0
  169. package/dist/db/row-level-security-scope.js +127 -0
  170. package/dist/db/scope-tenant-db-to-tenant.d.ts +3 -0
  171. package/dist/db/scope-tenant-db-to-tenant.js +14 -0
  172. package/dist/db/sql-identifier.d.ts +1 -0
  173. package/dist/db/sql-identifier.js +3 -0
  174. package/dist/db/table-builder.d.ts +2 -1
  175. package/dist/db/table-builder.js +1 -1
  176. package/dist/db/table-info.js +1 -1
  177. package/dist/db/table-push.d.ts +11 -2
  178. package/dist/db/table-push.js +15 -2
  179. package/dist/db/tenant-db-runner.d.ts +3 -1
  180. package/dist/db/tenant-db-runner.js +4 -3
  181. package/dist/db/tenant-db-scoped-rebind.d.ts +10 -0
  182. package/dist/db/tenant-db-scoped-rebind.js +33 -0
  183. package/dist/db/tenant-db-statement-runner.d.ts +13 -0
  184. package/dist/db/tenant-db-statement-runner.js +48 -0
  185. package/dist/db/tenant-db.d.ts +17 -12
  186. package/dist/db/tenant-db.js +49 -120
  187. package/dist/db/tenant-id-filter.d.ts +3 -0
  188. package/dist/db/tenant-id-filter.js +30 -0
  189. package/dist/db/transaction-serialization.d.ts +6 -0
  190. package/dist/db/transaction-serialization.js +60 -0
  191. package/dist/derivatives/delete-stored-file.js +1 -1
  192. package/dist/derivatives/index.d.ts +2 -5
  193. package/dist/derivatives/index.js +2 -3
  194. package/dist/engine/access.d.ts +2 -1
  195. package/dist/engine/access.js +1 -1
  196. package/dist/engine/boot-validator/entity-handler.d.ts +2 -1
  197. package/dist/engine/boot-validator/entity-handler.js +1 -1
  198. package/dist/engine/boot-validator/entity-list-aggregate-options.d.ts +1 -1
  199. package/dist/engine/boot-validator/list-table-aggregate-options.d.ts +1 -1
  200. package/dist/engine/boot-validator/list-table-aggregate-query.d.ts +2 -1
  201. package/dist/engine/boot-validator/nav.d.ts +3 -1
  202. package/dist/engine/boot-validator/nav.js +1 -1
  203. package/dist/engine/boot-validator/ownership.d.ts +2 -1
  204. package/dist/engine/boot-validator/parent-ref.d.ts +2 -1
  205. package/dist/engine/boot-validator/projection-list-screens.d.ts +2 -1
  206. package/dist/engine/boot-validator/query-refs.d.ts +2 -1
  207. package/dist/engine/boot-validator/screens-forms.d.ts +2 -1
  208. package/dist/engine/boot-validator/screens-kind-shared.d.ts +3 -1
  209. package/dist/engine/boot-validator/screens.d.ts +2 -1
  210. package/dist/engine/boot-validator/workspaces.d.ts +3 -1
  211. package/dist/engine/bridge-stub.d.ts +5 -2
  212. package/dist/engine/bridge-stub.js +39 -24
  213. package/dist/engine/config-helpers.d.ts +2 -2
  214. package/dist/engine/config-helpers.js +0 -9
  215. package/dist/engine/constants.d.ts +0 -10
  216. package/dist/engine/constants.js +0 -8
  217. package/dist/engine/create-app.js +1 -1
  218. package/dist/engine/define-feature.d.ts +2 -1
  219. package/dist/engine/define-feature.js +1 -2
  220. package/dist/engine/define-handler.d.ts +1 -1
  221. package/dist/engine/define-step.d.ts +0 -1
  222. package/dist/engine/define-step.js +0 -3
  223. package/dist/engine/embedded-derived.d.ts +1 -1
  224. package/dist/engine/entity-handlers.d.ts +2 -1
  225. package/dist/engine/entity-handlers.js +7 -7
  226. package/dist/engine/entity-list-runtime-options.js +3 -1
  227. package/dist/engine/entity-list-searchability.d.ts +2 -1
  228. package/dist/engine/event-def.d.ts +2 -1
  229. package/dist/engine/event-helpers.d.ts +3 -1
  230. package/dist/engine/event-helpers.js +3 -3
  231. package/dist/engine/extension-names.d.ts +2 -8
  232. package/dist/engine/extension-names.js +2 -2
  233. package/dist/engine/extension-selector-plugins.d.ts +1 -1
  234. package/dist/engine/extensions/storage-provider.d.ts +1 -2
  235. package/dist/engine/extensions/user-data.d.ts +0 -8
  236. package/dist/engine/factories.d.ts +2 -1
  237. package/dist/engine/feature-builder-state.d.ts +8 -1
  238. package/dist/engine/feature-changelog.d.ts +1 -1
  239. package/dist/engine/feature-config-events-jobs.d.ts +4 -1
  240. package/dist/engine/feature-entity-handlers.d.ts +5 -1
  241. package/dist/engine/feature-manifest.js +1 -1
  242. package/dist/engine/feature-ui-extensions.d.ts +7 -1
  243. package/dist/engine/feature-ui-extensions.js +6 -4
  244. package/dist/engine/field-access.d.ts +2 -1
  245. package/dist/engine/handler-field-references.d.ts +0 -4
  246. package/dist/engine/index.d.ts +57 -54
  247. package/dist/engine/index.js +22 -27
  248. package/dist/engine/instruction-fields.d.ts +1 -1
  249. package/dist/engine/personal-data-fields.d.ts +1 -1
  250. package/dist/engine/qualified-name.d.ts +0 -1
  251. package/dist/engine/read-claim.d.ts +2 -1
  252. package/dist/engine/registry-facade.js +0 -3
  253. package/dist/engine/registry-ingest.d.ts +2 -1
  254. package/dist/engine/registry-ingest.js +1 -2
  255. package/dist/engine/registry-state.d.ts +12 -2
  256. package/dist/engine/registry-state.js +2 -3
  257. package/dist/engine/registry-validate.d.ts +3 -1
  258. package/dist/engine/registry-validate.js +7 -7
  259. package/dist/engine/run-in.d.ts +1 -1
  260. package/dist/engine/run-in.js +0 -1
  261. package/dist/engine/schema-builder.d.ts +1 -1
  262. package/dist/engine/schema-builder.js +1 -1
  263. package/dist/engine/screen-filter-ops.d.ts +2 -1
  264. package/dist/engine/screen-filter-ops.js +0 -5
  265. package/dist/engine/soft-delete-cleanup.d.ts +1 -1
  266. package/dist/engine/soft-delete-cleanup.js +4 -4
  267. package/dist/engine/state-machine.js +2 -1
  268. package/dist/engine/steps/_read-source.js +1 -1
  269. package/dist/engine/steps/aggregate-append-event.js +2 -2
  270. package/dist/engine/steps/call-feature.js +2 -2
  271. package/dist/engine/steps/mail-send.js +1 -1
  272. package/dist/engine/steps/retry.js +1 -1
  273. package/dist/engine/steps/wait-for-event.js +1 -1
  274. package/dist/engine/steps/wait.js +1 -1
  275. package/dist/engine/steps/webhook-send.js +1 -1
  276. package/dist/engine/template-variables.d.ts +2 -1
  277. package/dist/engine/transfer-adjacency.d.ts +1 -1
  278. package/dist/engine/types/index.d.ts +8 -31
  279. package/dist/engine/types/index.js +2 -10
  280. package/dist/engine/validation.d.ts +2 -1
  281. package/dist/entrypoint/index.d.ts +7 -35
  282. package/dist/entrypoint/index.js +7 -1
  283. package/dist/entrypoint/internals.d.ts +40 -0
  284. package/dist/entrypoint/internals.js +1 -0
  285. package/dist/entrypoint/row-level-security-mode-check.d.ts +3 -0
  286. package/dist/entrypoint/row-level-security-mode-check.js +19 -0
  287. package/dist/env/dry-run-internals.d.ts +10 -0
  288. package/dist/env/dry-run-internals.js +1 -0
  289. package/dist/env/dry-run.d.ts +1 -10
  290. package/dist/env/dry-run.js +2 -1
  291. package/dist/env/index.d.ts +1 -85
  292. package/dist/env/index.js +6 -50
  293. package/dist/env/internals.d.ts +87 -0
  294. package/dist/env/internals.js +53 -0
  295. package/dist/errors/classes.js +2 -2
  296. package/dist/errors/index.d.ts +5 -14
  297. package/dist/errors/index.js +4 -9
  298. package/dist/errors/member-resolution.js +1 -1
  299. package/dist/errors/reasons.d.ts +0 -1
  300. package/dist/errors/reasons.js +7 -7
  301. package/dist/errors/serialize.d.ts +0 -18
  302. package/dist/errors/serialize.js +0 -27
  303. package/dist/es-ops/index.d.ts +4 -4
  304. package/dist/es-ops/index.js +2 -2
  305. package/dist/es-ops/operations-schema.d.ts +1 -1
  306. package/dist/es-ops/types.d.ts +4 -5
  307. package/dist/event-store/admin-api-internals.d.ts +14 -0
  308. package/dist/event-store/admin-api-internals.js +1 -0
  309. package/dist/event-store/admin-api.d.ts +1 -14
  310. package/dist/event-store/admin-api.js +11 -6
  311. package/dist/event-store/archive.js +4 -2
  312. package/dist/event-store/errors.js +2 -2
  313. package/dist/event-store/event-store.js +41 -34
  314. package/dist/event-store/events-schema.js +4 -1
  315. package/dist/event-store/index.d.ts +11 -13
  316. package/dist/event-store/index.js +7 -9
  317. package/dist/event-store/rebuild-dead-letter.js +4 -2
  318. package/dist/event-store/snapshot.js +4 -3
  319. package/dist/event-store/stream-scope.d.ts +2 -0
  320. package/dist/event-store/stream-scope.js +6 -0
  321. package/dist/event-store/upcaster-dead-letter.js +4 -2
  322. package/dist/event-store/upcaster.d.ts +2 -1
  323. package/dist/files/action-form-upload.d.ts +2 -1
  324. package/dist/files/action-form-upload.js +1 -1
  325. package/dist/files/assert-file-refs-belong-to-tenant.d.ts +2 -1
  326. package/dist/files/assert-file-refs-belong-to-tenant.js +1 -1
  327. package/dist/files/bind-pending-file-refs.d.ts +2 -1
  328. package/dist/files/bind-pending-file-refs.js +2 -1
  329. package/dist/files/bind-referenced-files.write.js +1 -1
  330. package/dist/files/create-file-ref-from-bytes.d.ts +6 -3
  331. package/dist/files/create-file-ref-from-bytes.js +3 -3
  332. package/dist/files/create-file-ref.d.ts +3 -2
  333. package/dist/files/create-file-ref.js +2 -2
  334. package/dist/files/dispose-removed-file-refs.d.ts +2 -1
  335. package/dist/files/dispose-removed-file-refs.js +1 -1
  336. package/dist/files/feature.js +2 -2
  337. package/dist/files/file-handle.js +1 -1
  338. package/dist/files/file-routes.d.ts +1 -1
  339. package/dist/files/file-routes.js +12 -2
  340. package/dist/files/index.d.ts +11 -13
  341. package/dist/files/index.js +5 -7
  342. package/dist/files/load-save-file-refs.d.ts +2 -1
  343. package/dist/files/load-save-file-refs.js +1 -1
  344. package/dist/files/provider-resolver.d.ts +5 -4
  345. package/dist/files/provider-resolver.js +4 -4
  346. package/dist/files/storage-tracking.js +4 -2
  347. package/dist/files/sweep-orphaned-uploads.d.ts +1 -1
  348. package/dist/files/sweep-orphaned-uploads.js +1 -1
  349. package/dist/i18n/index.d.ts +2 -8
  350. package/dist/i18n/index.js +1 -1
  351. package/dist/i18n/internals.d.ts +7 -0
  352. package/dist/i18n/internals.js +1 -0
  353. package/dist/i18n/required-surface-keys.d.ts +4 -1
  354. package/dist/internal/row-level-security.d.ts +3 -0
  355. package/dist/internal/row-level-security.js +3 -0
  356. package/dist/internal/stack-support.d.ts +1 -1
  357. package/dist/internal/stack-support.js +1 -1
  358. package/dist/internal/testing.d.ts +1 -0
  359. package/dist/internal/testing.js +9 -5
  360. package/dist/jobs/index.d.ts +1 -1
  361. package/dist/jobs/job-append-event.d.ts +12 -0
  362. package/dist/jobs/job-append-event.js +30 -0
  363. package/dist/jobs/job-runner-context.d.ts +2 -2
  364. package/dist/jobs/job-runner-context.js +46 -16
  365. package/dist/jobs/job-runner-execution.d.ts +1 -1
  366. package/dist/jobs/job-runner-execution.js +6 -4
  367. package/dist/jobs/job-runner-gates.d.ts +1 -1
  368. package/dist/jobs/job-runner-gates.js +0 -1
  369. package/dist/jobs/job-runner-helpers.d.ts +11 -4
  370. package/dist/jobs/job-runner-helpers.js +10 -1
  371. package/dist/jobs/job-runner-scope.d.ts +5 -2
  372. package/dist/jobs/job-runner-types.d.ts +2 -1
  373. package/dist/jobs/job-runner.js +19 -6
  374. package/dist/jobs/max-per-tenant.d.ts +1 -1
  375. package/dist/logging/index.d.ts +1 -2
  376. package/dist/logging/index.js +1 -1
  377. package/dist/logging/pino-logger.js +1 -1
  378. package/dist/logging/utils.d.ts +1 -0
  379. package/dist/logging/utils.js +6 -0
  380. package/dist/migrations/index.d.ts +3 -3
  381. package/dist/migrations/index.js +3 -3
  382. package/dist/migrations/pending-rebuilds.d.ts +1 -1
  383. package/dist/migrations/pending-rebuilds.js +1 -1
  384. package/dist/migrations/pii-event-backfill.js +4 -1
  385. package/dist/observability/escape-hatch-report.d.ts +2 -1
  386. package/dist/observability/index.d.ts +7 -15
  387. package/dist/observability/index.js +4 -12
  388. package/dist/observability/metric-validator.js +1 -1
  389. package/dist/observability/metrics-handle.d.ts +0 -1
  390. package/dist/observability/metrics-handle.js +2 -15
  391. package/dist/observability/recording-tracer.d.ts +1 -2
  392. package/dist/observability/recording-tracer.js +0 -6
  393. package/dist/observability/sensitive-filter.d.ts +0 -2
  394. package/dist/observability/sensitive-filter.js +0 -29
  395. package/dist/pipeline/active-membership.d.ts +2 -1
  396. package/dist/pipeline/active-membership.js +6 -2
  397. package/dist/pipeline/append-event-core.d.ts +2 -1
  398. package/dist/pipeline/append-event-core.js +2 -2
  399. package/dist/pipeline/attach-outside-transaction.d.ts +3 -0
  400. package/dist/pipeline/attach-outside-transaction.js +13 -0
  401. package/dist/pipeline/auth-claims-resolver.d.ts +2 -1
  402. package/dist/pipeline/cascade-handler.d.ts +2 -1
  403. package/dist/pipeline/cascade-handler.js +3 -2
  404. package/dist/pipeline/config-accessor-factory.d.ts +1 -1
  405. package/dist/pipeline/config-accessor-factory.js +1 -1
  406. package/dist/pipeline/context-services.d.ts +56 -0
  407. package/dist/pipeline/context-services.js +73 -0
  408. package/dist/pipeline/dispatch-batch.d.ts +2 -1
  409. package/dist/pipeline/dispatch-batch.js +31 -18
  410. package/dist/pipeline/dispatch-query.js +5 -4
  411. package/dist/pipeline/dispatch-scope.d.ts +6 -0
  412. package/dist/pipeline/dispatch-scope.js +27 -0
  413. package/dist/pipeline/dispatch-shared.d.ts +13 -9
  414. package/dist/pipeline/dispatch-shared.js +75 -198
  415. package/dist/pipeline/dispatch-stream.js +8 -4
  416. package/dist/pipeline/dispatch-write.d.ts +2 -1
  417. package/dist/pipeline/dispatch-write.js +10 -8
  418. package/dist/pipeline/dispatcher-utils.d.ts +3 -1
  419. package/dist/pipeline/dispatcher-utils.js +8 -2
  420. package/dist/pipeline/dispatcher.d.ts +3 -2
  421. package/dist/pipeline/dispatcher.js +4 -3
  422. package/dist/pipeline/event-consumer-state.d.ts +0 -1
  423. package/dist/pipeline/event-dispatcher-delivery.d.ts +1 -1
  424. package/dist/pipeline/event-dispatcher-delivery.js +4 -2
  425. package/dist/pipeline/event-dispatcher.d.ts +2 -2
  426. package/dist/pipeline/event-dispatcher.js +7 -3
  427. package/dist/pipeline/event-retention.js +59 -56
  428. package/dist/pipeline/handler-access-error.js +2 -1
  429. package/dist/pipeline/handler-context-auth.d.ts +5 -6
  430. package/dist/pipeline/handler-context-auth.js +7 -4
  431. package/dist/pipeline/handler-context-config.d.ts +2 -5
  432. package/dist/pipeline/handler-context-config.js +2 -2
  433. package/dist/pipeline/handler-context-db.d.ts +32 -7
  434. package/dist/pipeline/handler-context-db.js +26 -17
  435. package/dist/pipeline/handler-context-dispatch.d.ts +13 -7
  436. package/dist/pipeline/handler-context-dispatch.js +9 -8
  437. package/dist/pipeline/handler-context-events.d.ts +22 -36
  438. package/dist/pipeline/handler-context-events.js +36 -31
  439. package/dist/pipeline/handler-context-member-resolution.d.ts +2 -0
  440. package/dist/pipeline/handler-context-member-resolution.js +110 -0
  441. package/dist/pipeline/handler-context-notify.d.ts +3 -2
  442. package/dist/pipeline/handler-context-notify.js +1 -1
  443. package/dist/pipeline/handler-context-observability.d.ts +2 -4
  444. package/dist/pipeline/handler-context-observability.js +7 -5
  445. package/dist/pipeline/handler-context-phase-denials.d.ts +11 -0
  446. package/dist/pipeline/handler-context-phase-denials.js +98 -0
  447. package/dist/pipeline/handler-context-scope.d.ts +7 -10
  448. package/dist/pipeline/handler-context-scope.js +18 -20
  449. package/dist/pipeline/index.d.ts +9 -21
  450. package/dist/pipeline/index.js +5 -7
  451. package/dist/pipeline/irreversible-operation-gate.d.ts +1 -1
  452. package/dist/pipeline/irreversible-operation-gate.js +2 -2
  453. package/dist/pipeline/lifecycle-pipeline.d.ts +8 -7
  454. package/dist/pipeline/lifecycle-pipeline.js +9 -15
  455. package/dist/pipeline/member-read-only-transaction.js +11 -3
  456. package/dist/pipeline/member-reader.d.ts +1 -1
  457. package/dist/pipeline/member-reader.js +2 -2
  458. package/dist/pipeline/msp-rebuild.js +5 -3
  459. package/dist/pipeline/multi-stream-apply-context.js +3 -2
  460. package/dist/pipeline/notify-scope.d.ts +2 -1
  461. package/dist/pipeline/pre-handler-gates.d.ts +2 -1
  462. package/dist/pipeline/pre-transaction-reservations.d.ts +3 -3
  463. package/dist/pipeline/pre-transaction-reservations.js +9 -7
  464. package/dist/pipeline/projection-rebuild.js +12 -5
  465. package/dist/pipeline/projection-state.d.ts +0 -6
  466. package/dist/pipeline/projection-state.js +0 -5
  467. package/dist/pipeline/projections-runner.d.ts +2 -1
  468. package/dist/pipeline/projections-runner.js +10 -6
  469. package/dist/pipeline/system-hooks.d.ts +3 -1
  470. package/dist/pipeline/system-hooks.js +6 -4
  471. package/dist/pipeline/system-identity-switch.d.ts +4 -2
  472. package/dist/pipeline/system-identity-switch.js +51 -36
  473. package/dist/pipeline/typed-append-event.d.ts +2 -0
  474. package/dist/pipeline/typed-append-event.js +4 -0
  475. package/dist/pipeline/write-origin.js +2 -2
  476. package/dist/pipeline/write-result-masking.d.ts +1 -1
  477. package/dist/random/index.d.ts +1 -2
  478. package/dist/random/index.js +1 -2
  479. package/dist/rate-limit/bucket.d.ts +2 -1
  480. package/dist/rate-limit/middleware.js +2 -1
  481. package/dist/redis/index.d.ts +3 -4
  482. package/dist/redis/index.js +2 -2
  483. package/dist/schema-cli/apply-command.js +5 -2
  484. package/dist/schema-cli/baseline-command.js +7 -2
  485. package/dist/schema-cli/generate-command.js +7 -9
  486. package/dist/schema-cli/shared.d.ts +4 -0
  487. package/dist/schema-cli/shared.js +21 -2
  488. package/dist/schema-cli/status-command.js +8 -2
  489. package/dist/schema-cli/validate-command.js +52 -4
  490. package/dist/schema-cli.d.ts +0 -1
  491. package/dist/search/configure-tenant-index.d.ts +1 -3
  492. package/dist/search/configure-tenant-index.js +0 -4
  493. package/dist/search/index.d.ts +1 -4
  494. package/dist/search/index.js +0 -2
  495. package/dist/search/meilisearch-adapter-internals.d.ts +8 -0
  496. package/dist/search/meilisearch-adapter-internals.js +9 -0
  497. package/dist/search/meilisearch-adapter.d.ts +1 -8
  498. package/dist/search/meilisearch-adapter.js +6 -7
  499. package/dist/search/meilisearch-peer.d.ts +2 -0
  500. package/dist/search/meilisearch-peer.js +5 -0
  501. package/dist/search/reindex-entity.js +93 -87
  502. package/dist/secrets/index.d.ts +3 -4
  503. package/dist/secrets/index.js +2 -3
  504. package/dist/seeding/index.d.ts +2 -2
  505. package/dist/seeding/index.js +1 -2
  506. package/dist/time/index.d.ts +2 -2
  507. package/dist/time/index.js +1 -1
  508. package/dist/time/tz-context.d.ts +0 -5
  509. package/dist/time/tz-context.js +0 -9
  510. package/dist/ui-types/index.d.ts +8 -11
  511. package/dist/ui-types/index.js +3 -3
  512. package/dist/upgrade-changelog.d.ts +3 -2
  513. package/dist/upgrade-changelog.js +12 -8
  514. package/dist/upgrade-cli-internals.d.ts +8 -0
  515. package/dist/upgrade-cli-internals.js +63 -0
  516. package/dist/upgrade-cli.d.ts +1 -9
  517. package/dist/upgrade-cli.js +10 -64
  518. package/dist/utils/import-optional-peer.d.ts +6 -0
  519. package/dist/utils/import-optional-peer.js +19 -0
  520. package/dist/utils/index.d.ts +1 -4
  521. package/dist/utils/index.js +1 -4
  522. package/package.json +22 -18
  523. package/src/changes.json +206 -0
  524. package/dist/crypto/request-kms-cache.d.ts +0 -8
  525. package/dist/crypto/request-kms-cache.js +0 -21
  526. package/dist/engine/codemod/index.d.ts +0 -2
  527. package/dist/engine/codemod/index.js +0 -1
  528. package/dist/engine/codemod/pipeline-codemod.d.ts +0 -50
  529. package/dist/engine/codemod/pipeline-codemod.js +0 -536
  530. package/dist/engine/feature-ast/entity-field-types.d.ts +0 -13
  531. package/dist/engine/feature-ast/entity-field-types.js +0 -35
  532. package/dist/engine/feature-ast/extractors/ai-steps.d.ts +0 -6
  533. package/dist/engine/feature-ast/extractors/ai-steps.js +0 -254
  534. package/dist/engine/feature-ast/extractors/events.d.ts +0 -5
  535. package/dist/engine/feature-ast/extractors/events.js +0 -275
  536. package/dist/engine/feature-ast/extractors/handlers.d.ts +0 -24
  537. package/dist/engine/feature-ast/extractors/handlers.js +0 -358
  538. package/dist/engine/feature-ast/extractors/hooks.d.ts +0 -24
  539. package/dist/engine/feature-ast/extractors/hooks.js +0 -248
  540. package/dist/engine/feature-ast/extractors/index.d.ts +0 -14
  541. package/dist/engine/feature-ast/extractors/index.js +0 -13
  542. package/dist/engine/feature-ast/extractors/jobs-routes.d.ts +0 -7
  543. package/dist/engine/feature-ast/extractors/jobs-routes.js +0 -145
  544. package/dist/engine/feature-ast/extractors/projections-screens.d.ts +0 -10
  545. package/dist/engine/feature-ast/extractors/projections-screens.js +0 -195
  546. package/dist/engine/feature-ast/extractors/resolve-import.d.ts +0 -21
  547. package/dist/engine/feature-ast/extractors/resolve-import.js +0 -180
  548. package/dist/engine/feature-ast/extractors/round1.d.ts +0 -11
  549. package/dist/engine/feature-ast/extractors/round1.js +0 -87
  550. package/dist/engine/feature-ast/extractors/round2.d.ts +0 -7
  551. package/dist/engine/feature-ast/extractors/round2.js +0 -191
  552. package/dist/engine/feature-ast/extractors/round3.d.ts +0 -23
  553. package/dist/engine/feature-ast/extractors/round3.js +0 -292
  554. package/dist/engine/feature-ast/extractors/round5.d.ts +0 -9
  555. package/dist/engine/feature-ast/extractors/round5.js +0 -68
  556. package/dist/engine/feature-ast/extractors/round6.d.ts +0 -4
  557. package/dist/engine/feature-ast/extractors/round6.js +0 -17
  558. package/dist/engine/feature-ast/extractors/shared.d.ts +0 -94
  559. package/dist/engine/feature-ast/extractors/shared.js +0 -343
  560. package/dist/engine/feature-ast/index.d.ts +0 -16
  561. package/dist/engine/feature-ast/index.js +0 -10
  562. package/dist/engine/feature-ast/parse.d.ts +0 -31
  563. package/dist/engine/feature-ast/parse.js +0 -485
  564. package/dist/engine/feature-ast/patch.d.ts +0 -212
  565. package/dist/engine/feature-ast/patch.js +0 -611
  566. package/dist/engine/feature-ast/patcher.d.ts +0 -217
  567. package/dist/engine/feature-ast/patcher.js +0 -281
  568. package/dist/engine/feature-ast/pattern-change-schema.d.ts +0 -1238
  569. package/dist/engine/feature-ast/pattern-change-schema.js +0 -1072
  570. package/dist/engine/feature-ast/pattern-id-matchers.d.ts +0 -7
  571. package/dist/engine/feature-ast/pattern-id-matchers.js +0 -211
  572. package/dist/engine/feature-ast/pattern-id-schema.d.ts +0 -251
  573. package/dist/engine/feature-ast/pattern-id-schema.js +0 -166
  574. package/dist/engine/feature-ast/patterns.d.ts +0 -322
  575. package/dist/engine/feature-ast/patterns.js +0 -107
  576. package/dist/engine/feature-ast/render.d.ts +0 -47
  577. package/dist/engine/feature-ast/render.js +0 -666
  578. package/dist/engine/feature-ast/source-location.d.ts +0 -17
  579. package/dist/engine/feature-ast/source-location.js +0 -27
  580. package/dist/engine/pattern-library/index.d.ts +0 -2
  581. package/dist/engine/pattern-library/index.js +0 -3
  582. package/dist/engine/pattern-library/library.d.ts +0 -14
  583. package/dist/engine/pattern-library/library.js +0 -94
  584. package/dist/engine/pattern-library/mixed-schemas.d.ts +0 -16
  585. package/dist/engine/pattern-library/mixed-schemas.js +0 -559
  586. package/dist/engine/pattern-library/opaque-schemas.d.ts +0 -7
  587. package/dist/engine/pattern-library/opaque-schemas.js +0 -115
  588. package/dist/engine/pattern-library/shared-fields.d.ts +0 -122
  589. package/dist/engine/pattern-library/shared-fields.js +0 -88
  590. package/dist/engine/pattern-library/static-schemas.d.ts +0 -21
  591. package/dist/engine/pattern-library/static-schemas.js +0 -487
  592. package/dist/engine/pattern-library/types.d.ts +0 -158
  593. package/dist/engine/pattern-library/types.js +0 -36
  594. package/dist/engine/resolve-config-or-param.d.ts +0 -18
  595. package/dist/engine/resolve-config-or-param.js +0 -76
  596. package/src/scripts/codemod/README.md +0 -187
  597. package/src/scripts/codemod/codemod-support.ts +0 -334
  598. package/src/scripts/codemod/collect-source-files.ts +0 -48
  599. package/src/scripts/codemod/crypto-shredding-testing-move.ts +0 -119
  600. package/src/scripts/codemod/db-factory.ts +0 -810
  601. package/src/scripts/codemod/feature-factory.ts +0 -429
  602. package/src/scripts/codemod/feature-layout.ts +0 -424
  603. package/src/scripts/codemod/import-extensions.ts +0 -118
  604. package/src/scripts/codemod/migrate-cross-tenant.ts +0 -328
  605. package/src/scripts/codemod/migrate-db-raw.ts +0 -401
  606. package/src/scripts/codemod/migrate-open-to-all.ts +0 -235
  607. package/src/scripts/codemod/object-form.ts +0 -746
  608. package/src/scripts/codemod/package-merge.ts +0 -299
  609. package/src/scripts/codemod/pii-personal-migration.ts +0 -816
  610. package/src/scripts/codemod/remove-engine-payload-casts.ts +0 -318
  611. package/src/scripts/codemod/s3-imports.ts +0 -236
  612. package/src/scripts/codemod/tenant-db-options.ts +0 -454
  613. package/src/scripts/codemod/testing-injection.ts +0 -215
  614. package/src/scripts/codemod/testing-move-targets.ts +0 -161
  615. package/src/scripts/codemod/testing-move.ts +0 -542
  616. package/src/scripts/codemod/unprocessable-error-details-reason.ts +0 -411
@@ -1,217 +0,0 @@
1
- import type { SourceFile } from "ts-morph";
2
- import type { LifecycleHookType } from "../constants.ts";
3
- import type { ConfigKeyDefinition, ConfigKeyType, JobDefinition, RunIn, TranslationKeys } from "../types/config.ts";
4
- import type { MetricOptions, SecretNamespaceOptions, SecretOptions } from "../types/feature.ts";
5
- import type { EntityDefinition } from "../types/fields.ts";
6
- import type { AccessRule, ClaimKeyType, EscapeHatchDeclaration, RateLimitOption } from "../types/handlers.ts";
7
- import type { HookPhase } from "../types/hooks.ts";
8
- import type { HttpRouteMethod } from "../types/http-route.ts";
9
- import type { NavDefinition } from "../types/nav.ts";
10
- import type { MspErrorMode } from "../types/projection.ts";
11
- import type { RelationDefinition } from "../types/relations.ts";
12
- import type { ScreenDefinition } from "../types/screen.ts";
13
- import type { WorkspaceDefinition } from "../types/workspace.ts";
14
- import { type PatternChange, type PatternId } from "./patch.ts";
15
- import type { FeaturePattern } from "./patterns.ts";
16
- import type { SourceLocation } from "./source-location.ts";
17
- export declare const SYNTHETIC_LOC: SourceLocation;
18
- export declare function rawLoc(raw: string): SourceLocation;
19
- export type AddEntityArgs = {
20
- readonly name: string;
21
- readonly definition: EntityDefinition;
22
- };
23
- export type AddRelationArgs = {
24
- readonly entity: string;
25
- readonly name: string;
26
- readonly definition: RelationDefinition;
27
- };
28
- export type AddWriteHandlerArgs = {
29
- readonly name: string;
30
- /** Source text of the Zod schema, e.g. `"z.object({ title: z.string() })"`. */
31
- readonly schemaSource: string;
32
- /** Source text of the handler closure, e.g. `"async (event, ctx) => { ... }"`. */
33
- readonly handlerSource: string;
34
- readonly access?: AccessRule;
35
- readonly rateLimit?: RateLimitOption;
36
- readonly unsafeSkipTransitionGuard?: boolean;
37
- readonly escapeHatch?: EscapeHatchDeclaration;
38
- };
39
- export type AddQueryHandlerArgs = {
40
- readonly name: string;
41
- readonly schemaSource: string;
42
- readonly handlerSource: string;
43
- readonly access?: AccessRule;
44
- readonly rateLimit?: RateLimitOption;
45
- readonly escapeHatch?: EscapeHatchDeclaration;
46
- };
47
- export type AddStreamHandlerArgs = {
48
- readonly name: string;
49
- readonly schemaSource: string;
50
- readonly handlerSource: string;
51
- readonly access?: AccessRule;
52
- readonly rateLimit?: RateLimitOption;
53
- readonly escapeHatch?: EscapeHatchDeclaration;
54
- };
55
- export type AddHookArgs = {
56
- readonly type: LifecycleHookType | "validation";
57
- readonly target: string | readonly string[] | {
58
- readonly allOf: string;
59
- };
60
- /** Source text of the closure, e.g. `"async (event, ctx) => { ... }"`. */
61
- readonly handlerSource: string;
62
- readonly phase?: HookPhase;
63
- readonly escapeHatch?: EscapeHatchDeclaration;
64
- };
65
- export type AddJobArgs = {
66
- readonly name: string;
67
- readonly options: Omit<JobDefinition, "name" | "handler">;
68
- readonly handlerSource: string;
69
- };
70
- export type AddNotificationArgs = {
71
- readonly name: string;
72
- readonly trigger?: {
73
- readonly on: string;
74
- };
75
- readonly recipientSource?: string;
76
- readonly dataSource?: string;
77
- readonly templates?: Readonly<Record<string, string>>;
78
- };
79
- export type AddHttpRouteArgs = {
80
- readonly method: HttpRouteMethod;
81
- readonly path: string;
82
- readonly handlerSource: string;
83
- readonly anonymous: boolean;
84
- };
85
- export type AddDefineEventArgs = {
86
- readonly name: string;
87
- readonly schemaSource: string;
88
- readonly piiFieldsSource: string;
89
- readonly version?: number;
90
- readonly migrations?: Readonly<Record<string, string>>;
91
- };
92
- export type AddProjectionArgs = {
93
- readonly name: string;
94
- readonly sourceEntity: string | readonly string[];
95
- /** Map of event-type → closure source for the apply handler. */
96
- readonly applySources: Readonly<Record<string, string>>;
97
- };
98
- export type AddMultiStreamProjectionArgs = {
99
- readonly name: string;
100
- readonly applySources: Readonly<Record<string, string>>;
101
- readonly errorMode?: MspErrorMode;
102
- readonly runIn?: RunIn;
103
- readonly delivery?: "shared" | "per-instance";
104
- };
105
- export type AddReferenceDataArgs = {
106
- readonly entity: string;
107
- readonly data: readonly Record<string, unknown>[];
108
- readonly upsertKey?: string;
109
- };
110
- export type AddMetricArgs = {
111
- readonly name: string;
112
- readonly options: MetricOptions;
113
- };
114
- export type AddSecretArgs = {
115
- readonly name: string;
116
- readonly options: SecretOptions;
117
- };
118
- export type AddSecretNamespaceArgs = {
119
- readonly name: string;
120
- readonly options: SecretNamespaceOptions;
121
- };
122
- export type AddClaimKeyArgs = {
123
- readonly name: string;
124
- readonly type: ClaimKeyType;
125
- };
126
- export type AddUseExtensionArgs = {
127
- readonly extension: string;
128
- readonly entity: string;
129
- readonly options?: Readonly<Record<string, unknown>>;
130
- };
131
- export type AddScreenArgs = {
132
- readonly definition: ScreenDefinition;
133
- /** Source spans for each closure-typed sub-property; keyed by JSON-path
134
- * inside the definition (e.g. `"rowActions.0.visible"`). Each entry's
135
- * raw is the closure source the renderer will splice in. */
136
- readonly opaqueSources?: Readonly<Record<string, string>>;
137
- };
138
- export type AddRequiresArgs = {
139
- readonly features: readonly string[];
140
- };
141
- export type AddOptionalRequiresArgs = {
142
- readonly features: readonly string[];
143
- };
144
- export type AddReadsConfigArgs = {
145
- readonly keys: readonly string[];
146
- };
147
- export type AddToggleableArgs = {
148
- readonly default: boolean;
149
- };
150
- export type AddDescribeArgs = {
151
- readonly text: string;
152
- };
153
- export type AddNavArgs = {
154
- readonly definition: NavDefinition;
155
- };
156
- export type AddWorkspaceArgs = {
157
- readonly definition: WorkspaceDefinition;
158
- };
159
- export type AddConfigArgs = {
160
- readonly keys: Readonly<Record<string, ConfigKeyDefinition<ConfigKeyType>>>;
161
- };
162
- export type AddTranslationsArgs = {
163
- readonly keys: TranslationKeys;
164
- };
165
- export type AddAuthClaimsArgs = {
166
- /** Source text of the claims handler closure. */
167
- readonly handlerSource: string;
168
- };
169
- export type FeaturePatcher = {
170
- readonly addRequires: (args: AddRequiresArgs) => void;
171
- readonly addOptionalRequires: (args: AddOptionalRequiresArgs) => void;
172
- readonly addReadsConfig: (args: AddReadsConfigArgs) => void;
173
- readonly addSystemScope: () => void;
174
- readonly addToggleable: (args: AddToggleableArgs) => void;
175
- readonly addDescribe: (args: AddDescribeArgs) => void;
176
- readonly addEntity: (args: AddEntityArgs) => void;
177
- readonly addRelation: (args: AddRelationArgs) => void;
178
- readonly addNav: (args: AddNavArgs) => void;
179
- readonly addWorkspace: (args: AddWorkspaceArgs) => void;
180
- readonly addConfig: (args: AddConfigArgs) => void;
181
- readonly addTranslations: (args: AddTranslationsArgs) => void;
182
- readonly addMetric: (args: AddMetricArgs) => void;
183
- readonly addSecret: (args: AddSecretArgs) => void;
184
- readonly addSecretNamespace: (args: AddSecretNamespaceArgs) => void;
185
- readonly addClaimKey: (args: AddClaimKeyArgs) => void;
186
- readonly addReferenceData: (args: AddReferenceDataArgs) => void;
187
- readonly addUseExtension: (args: AddUseExtensionArgs) => void;
188
- readonly addScreen: (args: AddScreenArgs) => void;
189
- readonly addWriteHandler: (args: AddWriteHandlerArgs) => void;
190
- readonly addQueryHandler: (args: AddQueryHandlerArgs) => void;
191
- readonly addStreamHandler: (args: AddStreamHandlerArgs) => void;
192
- readonly addHook: (args: AddHookArgs) => void;
193
- readonly addJob: (args: AddJobArgs) => void;
194
- readonly addNotification: (args: AddNotificationArgs) => void;
195
- readonly addAuthClaims: (args: AddAuthClaimsArgs) => void;
196
- readonly addHttpRoute: (args: AddHttpRouteArgs) => void;
197
- readonly addProjection: (args: AddProjectionArgs) => void;
198
- readonly addMultiStreamProjection: (args: AddMultiStreamProjectionArgs) => void;
199
- readonly addDefineEvent: (args: AddDefineEventArgs) => void;
200
- readonly replace: (id: PatternId, pattern: FeaturePattern) => void;
201
- readonly remove: (id: PatternId) => void;
202
- readonly apply: (changes: readonly PatternChange[]) => void;
203
- /**
204
- * Escape hatch — directly add a hand-built pattern. The typed `add{Kind}`
205
- * methods above cover every pattern in the catalogue and should be the
206
- * default path; this method exists for migration tools, AST-replay
207
- * scenarios, and the rare case where a future pattern-kind isn't yet
208
- * exposed via a typed method.
209
- */
210
- readonly addPattern: (pattern: FeaturePattern) => void;
211
- };
212
- /**
213
- * Build a patcher bound to the given source file. All methods mutate the
214
- * file in place; saving is the caller's responsibility (e.g. via
215
- * `sourceFile.saveSync()`).
216
- */
217
- export declare function createFeaturePatcher(sourceFile: SourceFile): FeaturePatcher;
@@ -1,281 +0,0 @@
1
- // FeaturePatcher — imperative typed wrapper around the generic apply API.
2
- // Each `add{Kind}` method takes the natural arguments for that pattern
3
- // (no SourceLocation gymnastics, no FeaturePattern hand-crafting) and
4
- // dispatches through the renderer + addPattern under the hood.
5
- //
6
- // **Why this layer exists:**
7
- // - **AI tool-use**: an LLM-with-tools picks methods by name. `addEntity`
8
- // with typed args is a 1-shot tool-call; building a FeaturePattern
9
- // literal in JSON would require teaching the model our internal
10
- // discriminated-union shape (kind + source + entityName + definition).
11
- // - **Designer forms**: form-submit handlers map directly to a single
12
- // `patcher.addX(formData)` call — no intermediary translation step.
13
- // - **Type narrowing**: each method's TypeScript signature locks the
14
- // fields the caller must provide; missing required props fail at
15
- // compile time, not at the parse step downstream.
16
- //
17
- // **What stays in the generic API:**
18
- // - `replace(id, pattern)` / `remove(id)` — symmetric across kinds; the
19
- // PatternId discriminator already names what to match.
20
- // - `apply(changes)` — bulk operations, friendlier when the AI emits a
21
- // change-list as a single JSON array.
22
- import { addPattern, applyChanges, removePattern, replacePattern, } from "./patch.js";
23
- // =============================================================================
24
- // Synthetic SourceLocation — for new patterns that don't have a real file
25
- // span yet. The renderer only reads `.raw` from body locations (handler/
26
- // schema/etc.), so for static patterns the synthetic value is a placeholder
27
- // that never reaches the output.
28
- // =============================================================================
29
- export const SYNTHETIC_LOC = {
30
- file: "<patcher>",
31
- start: { line: 1, column: 1 },
32
- end: { line: 1, column: 1 },
33
- raw: "",
34
- };
35
- export function rawLoc(raw) {
36
- return { ...SYNTHETIC_LOC, raw };
37
- }
38
- /**
39
- * Build a patcher bound to the given source file. All methods mutate the
40
- * file in place; saving is the caller's responsibility (e.g. via
41
- * `sourceFile.saveSync()`).
42
- */
43
- export function createFeaturePatcher(sourceFile) {
44
- function add(pattern) {
45
- addPattern(sourceFile, pattern);
46
- }
47
- return {
48
- addRequires({ features }) {
49
- add({
50
- kind: "requires",
51
- source: SYNTHETIC_LOC,
52
- featureNames: features,
53
- });
54
- },
55
- addOptionalRequires({ features }) {
56
- add({
57
- kind: "optionalRequires",
58
- source: SYNTHETIC_LOC,
59
- featureNames: features,
60
- });
61
- },
62
- addReadsConfig({ keys }) {
63
- add({
64
- kind: "readsConfig",
65
- source: SYNTHETIC_LOC,
66
- qualifiedKeys: keys,
67
- });
68
- },
69
- addSystemScope() {
70
- add({ kind: "systemScope", source: SYNTHETIC_LOC });
71
- },
72
- addToggleable({ default: defaultOn }) {
73
- add({ kind: "toggleable", source: SYNTHETIC_LOC, default: defaultOn });
74
- },
75
- addDescribe({ text }) {
76
- add({ kind: "describe", source: SYNTHETIC_LOC, text });
77
- },
78
- addEntity({ name, definition }) {
79
- add({
80
- kind: "entity",
81
- source: SYNTHETIC_LOC,
82
- entityName: name,
83
- definition,
84
- });
85
- },
86
- addRelation({ entity, name, definition }) {
87
- add({
88
- kind: "relation",
89
- source: SYNTHETIC_LOC,
90
- entityName: entity,
91
- relationName: name,
92
- definition,
93
- });
94
- },
95
- addNav({ definition }) {
96
- add({ kind: "nav", source: SYNTHETIC_LOC, definition });
97
- },
98
- addWorkspace({ definition }) {
99
- add({ kind: "workspace", source: SYNTHETIC_LOC, definition });
100
- },
101
- addConfig({ keys }) {
102
- add({ kind: "config", source: SYNTHETIC_LOC, keys });
103
- },
104
- addTranslations({ keys }) {
105
- add({ kind: "translations", source: SYNTHETIC_LOC, keys });
106
- },
107
- addMetric({ name, options }) {
108
- add({ kind: "metric", source: SYNTHETIC_LOC, shortName: name, options });
109
- },
110
- addSecret({ name, options }) {
111
- add({ kind: "secret", source: SYNTHETIC_LOC, shortName: name, options });
112
- },
113
- addSecretNamespace({ name, options }) {
114
- add({ kind: "secretNamespace", source: SYNTHETIC_LOC, shortName: name, options });
115
- },
116
- addClaimKey({ name, type }) {
117
- add({ kind: "claimKey", source: SYNTHETIC_LOC, shortName: name, claimType: type });
118
- },
119
- addReferenceData({ entity, data, upsertKey }) {
120
- add({
121
- kind: "referenceData",
122
- source: SYNTHETIC_LOC,
123
- entityName: entity,
124
- data,
125
- ...(upsertKey !== undefined && { upsertKey }),
126
- });
127
- },
128
- addUseExtension({ extension, entity, options }) {
129
- add({
130
- kind: "useExtension",
131
- source: SYNTHETIC_LOC,
132
- extensionName: extension,
133
- entityName: entity,
134
- ...(options !== undefined && { options }),
135
- });
136
- },
137
- addScreen({ definition, opaqueSources }) {
138
- const opaqueProps = opaqueSources
139
- ? Object.fromEntries(Object.entries(opaqueSources).map(([k, v]) => [k, rawLoc(v)]))
140
- : {};
141
- add({ kind: "screen", source: SYNTHETIC_LOC, definition, opaqueProps });
142
- },
143
- addWriteHandler({ name, schemaSource, handlerSource, access, rateLimit, unsafeSkipTransitionGuard, escapeHatch, }) {
144
- add({
145
- kind: "writeHandler",
146
- source: SYNTHETIC_LOC,
147
- handlerName: name,
148
- schemaSource: rawLoc(schemaSource),
149
- handlerBody: rawLoc(handlerSource),
150
- ...(access !== undefined && { access }),
151
- ...(rateLimit !== undefined && { rateLimit }),
152
- ...(unsafeSkipTransitionGuard === true && { unsafeSkipTransitionGuard: true }),
153
- ...(escapeHatch !== undefined && { escapeHatch }),
154
- });
155
- },
156
- addQueryHandler({ name, schemaSource, handlerSource, access, rateLimit, escapeHatch }) {
157
- add({
158
- kind: "queryHandler",
159
- source: SYNTHETIC_LOC,
160
- handlerName: name,
161
- schemaSource: rawLoc(schemaSource),
162
- handlerBody: rawLoc(handlerSource),
163
- ...(access !== undefined && { access }),
164
- ...(rateLimit !== undefined && { rateLimit }),
165
- ...(escapeHatch !== undefined && { escapeHatch }),
166
- });
167
- },
168
- addStreamHandler({ name, schemaSource, handlerSource, access, rateLimit, escapeHatch }) {
169
- add({
170
- kind: "streamHandler",
171
- source: SYNTHETIC_LOC,
172
- handlerName: name,
173
- schemaSource: rawLoc(schemaSource),
174
- handlerBody: rawLoc(handlerSource),
175
- ...(access !== undefined && { access }),
176
- ...(rateLimit !== undefined && { rateLimit }),
177
- ...(escapeHatch !== undefined && { escapeHatch }),
178
- });
179
- },
180
- addHook({ type, target, handlerSource, phase, escapeHatch }) {
181
- add({
182
- kind: "hook",
183
- source: SYNTHETIC_LOC,
184
- hookType: type,
185
- target,
186
- fnBody: rawLoc(handlerSource),
187
- ...(phase !== undefined && { phase }),
188
- ...(escapeHatch !== undefined && { escapeHatch }),
189
- });
190
- },
191
- addJob({ name, options, handlerSource }) {
192
- add({
193
- kind: "job",
194
- source: SYNTHETIC_LOC,
195
- jobName: name,
196
- options,
197
- handlerBody: rawLoc(handlerSource),
198
- });
199
- },
200
- addNotification({ name, trigger, recipientSource, dataSource, templates }) {
201
- const templateLocs = templates
202
- ? Object.fromEntries(Object.entries(templates).map(([k, v]) => [k, rawLoc(v)]))
203
- : undefined;
204
- add({
205
- kind: "notification",
206
- source: SYNTHETIC_LOC,
207
- notificationName: name,
208
- ...(trigger !== undefined && { trigger }),
209
- ...(recipientSource !== undefined && { recipientBody: rawLoc(recipientSource) }),
210
- ...(dataSource !== undefined && { dataBody: rawLoc(dataSource) }),
211
- ...(templateLocs !== undefined && { templates: templateLocs }),
212
- });
213
- },
214
- addAuthClaims({ handlerSource }) {
215
- add({
216
- kind: "authClaims",
217
- source: SYNTHETIC_LOC,
218
- fnBody: rawLoc(handlerSource),
219
- });
220
- },
221
- addHttpRoute({ method, path, handlerSource, anonymous }) {
222
- add({
223
- kind: "httpRoute",
224
- source: SYNTHETIC_LOC,
225
- method,
226
- path,
227
- handlerBody: rawLoc(handlerSource),
228
- anonymous,
229
- });
230
- },
231
- addProjection({ name, sourceEntity, applySources }) {
232
- const applyBodies = Object.fromEntries(Object.entries(applySources).map(([k, v]) => [k, rawLoc(v)]));
233
- add({
234
- kind: "projection",
235
- source: SYNTHETIC_LOC,
236
- name,
237
- sourceEntity,
238
- applyBodies,
239
- });
240
- },
241
- addMultiStreamProjection({ name, applySources, errorMode, runIn, delivery }) {
242
- const applyBodies = Object.fromEntries(Object.entries(applySources).map(([k, v]) => [k, rawLoc(v)]));
243
- add({
244
- kind: "multiStreamProjection",
245
- source: SYNTHETIC_LOC,
246
- name,
247
- applyBodies,
248
- ...(errorMode !== undefined && { errorMode }),
249
- ...(runIn !== undefined && { runIn }),
250
- ...(delivery !== undefined && { delivery }),
251
- });
252
- },
253
- addDefineEvent({ name, schemaSource, piiFieldsSource, version, migrations }) {
254
- const migrationLocs = migrations
255
- ? Object.fromEntries(Object.entries(migrations).map(([fromVersion, source]) => [
256
- fromVersion,
257
- rawLoc(source),
258
- ]))
259
- : undefined;
260
- add({
261
- kind: "defineEvent",
262
- source: SYNTHETIC_LOC,
263
- eventName: name,
264
- schemaSource: rawLoc(schemaSource),
265
- piiFields: rawLoc(piiFieldsSource),
266
- ...(version !== undefined && { version }),
267
- ...(migrationLocs !== undefined && { migrations: migrationLocs }),
268
- });
269
- },
270
- replace(id, pattern) {
271
- replacePattern(sourceFile, id, pattern);
272
- },
273
- remove(id) {
274
- removePattern(sourceFile, id);
275
- },
276
- apply(changes) {
277
- applyChanges(sourceFile, changes);
278
- },
279
- addPattern: add,
280
- };
281
- }