@cosmicdrift/kumiko-framework 0.389.0 → 0.390.1

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 (617) 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/driver-value-preparation.js +23 -2
  98. package/dist/db/eagerload.d.ts +2 -1
  99. package/dist/db/entity-field-encryption.d.ts +1 -1
  100. package/dist/db/entity-table-meta.d.ts +1 -1
  101. package/dist/db/event-store-executor-context.d.ts +3 -1
  102. package/dist/db/event-store-executor-context.js +4 -3
  103. package/dist/db/event-store-executor-read-filter.d.ts +1 -1
  104. package/dist/db/event-store-executor-read-rows.d.ts +2 -1
  105. package/dist/db/event-store-executor-read-search.d.ts +2 -1
  106. package/dist/db/event-store-executor-read-sort.d.ts +2 -1
  107. package/dist/db/event-store-executor-read.js +2 -2
  108. package/dist/db/event-store-executor-write-atomic.js +8 -7
  109. package/dist/db/event-store-executor-write-steps.d.ts +3 -2
  110. package/dist/db/event-store-executor-write.js +7 -4
  111. package/dist/db/event-store-executor.d.ts +1 -1
  112. package/dist/db/executor-managed-tables.d.ts +7 -1
  113. package/dist/db/executor-managed-tables.js +11 -2
  114. package/dist/db/index.d.ts +29 -28
  115. package/dist/db/index.js +22 -20
  116. package/dist/db/known-table-names.d.ts +6 -0
  117. package/dist/db/known-table-names.js +21 -0
  118. package/dist/db/list-aggregate-labels.d.ts +1 -1
  119. package/dist/db/located-timestamp.d.ts +1 -1
  120. package/dist/db/located-timestamp.js +0 -5
  121. package/dist/db/migrate-generator.d.ts +17 -1
  122. package/dist/db/migrate-generator.js +50 -20
  123. package/dist/db/migrate-primary-key.d.ts +12 -0
  124. package/dist/db/migrate-primary-key.js +45 -0
  125. package/dist/db/migrate-rls-diff.d.ts +20 -0
  126. package/dist/db/migrate-rls-diff.js +61 -0
  127. package/dist/db/migrate-runner.js +4 -0
  128. package/dist/db/money.d.ts +1 -1
  129. package/dist/db/money.js +1 -1
  130. package/dist/db/parent-ref-clause.d.ts +2 -1
  131. package/dist/db/pg-error.d.ts +2 -0
  132. package/dist/db/pg-error.js +11 -0
  133. package/dist/db/queries/ddl.d.ts +3 -0
  134. package/dist/db/queries/ddl.js +34 -1
  135. package/dist/db/queries/event-store.js +4 -2
  136. package/dist/db/queries/event-tenants.d.ts +2 -0
  137. package/dist/db/queries/event-tenants.js +17 -0
  138. package/dist/db/queries/rebuild-rls-guard.d.ts +2 -0
  139. package/dist/db/queries/rebuild-rls-guard.js +29 -0
  140. package/dist/db/queries/rls-boot-catalog.d.ts +16 -0
  141. package/dist/db/queries/rls-boot-catalog.js +39 -0
  142. package/dist/db/queries/rls-catalog.d.ts +6 -0
  143. package/dist/db/queries/rls-catalog.js +82 -0
  144. package/dist/db/queries/rls-scope.d.ts +3 -0
  145. package/dist/db/queries/rls-scope.js +17 -0
  146. package/dist/db/queries/rls-shape.d.ts +10 -0
  147. package/dist/db/queries/rls-shape.js +42 -0
  148. package/dist/db/queries/session-advisory-lock.d.ts +2 -0
  149. package/dist/db/queries/session-advisory-lock.js +23 -0
  150. package/dist/db/queries/shadow-swap.d.ts +1 -2
  151. package/dist/db/queries/shadow-swap.js +9 -25
  152. package/dist/db/queries/test-stack.d.ts +4 -1
  153. package/dist/db/queries/test-stack.js +84 -2
  154. package/dist/db/query.js +11 -7
  155. package/dist/db/reference-data.d.ts +1 -1
  156. package/dist/db/reference-data.js +6 -1
  157. package/dist/db/render-ddl.d.ts +6 -2
  158. package/dist/db/render-ddl.js +7 -7
  159. package/dist/db/render-rls-ddl.d.ts +35 -0
  160. package/dist/db/render-rls-ddl.js +127 -0
  161. package/dist/db/replay-migration-sql.d.ts +3 -1
  162. package/dist/db/replay-migration-sql.js +22 -5
  163. package/dist/db/replay-rls.d.ts +25 -0
  164. package/dist/db/replay-rls.js +156 -0
  165. package/dist/db/row-level-security-boot-check.d.ts +6 -0
  166. package/dist/db/row-level-security-boot-check.js +86 -0
  167. package/dist/db/row-level-security-connection.d.ts +3 -0
  168. package/dist/db/row-level-security-connection.js +213 -0
  169. package/dist/db/row-level-security-scope.d.ts +33 -0
  170. package/dist/db/row-level-security-scope.js +127 -0
  171. package/dist/db/scope-tenant-db-to-tenant.d.ts +3 -0
  172. package/dist/db/scope-tenant-db-to-tenant.js +14 -0
  173. package/dist/db/sql-identifier.d.ts +1 -0
  174. package/dist/db/sql-identifier.js +3 -0
  175. package/dist/db/table-builder.d.ts +2 -1
  176. package/dist/db/table-builder.js +1 -1
  177. package/dist/db/table-info.js +1 -1
  178. package/dist/db/table-push.d.ts +11 -2
  179. package/dist/db/table-push.js +15 -2
  180. package/dist/db/tenant-db-runner.d.ts +3 -1
  181. package/dist/db/tenant-db-runner.js +4 -3
  182. package/dist/db/tenant-db-scoped-rebind.d.ts +10 -0
  183. package/dist/db/tenant-db-scoped-rebind.js +33 -0
  184. package/dist/db/tenant-db-statement-runner.d.ts +13 -0
  185. package/dist/db/tenant-db-statement-runner.js +48 -0
  186. package/dist/db/tenant-db.d.ts +17 -12
  187. package/dist/db/tenant-db.js +49 -120
  188. package/dist/db/tenant-id-filter.d.ts +3 -0
  189. package/dist/db/tenant-id-filter.js +30 -0
  190. package/dist/db/transaction-serialization.d.ts +6 -0
  191. package/dist/db/transaction-serialization.js +60 -0
  192. package/dist/derivatives/delete-stored-file.js +1 -1
  193. package/dist/derivatives/index.d.ts +2 -5
  194. package/dist/derivatives/index.js +2 -3
  195. package/dist/engine/access.d.ts +2 -1
  196. package/dist/engine/access.js +1 -1
  197. package/dist/engine/boot-validator/entity-handler.d.ts +2 -1
  198. package/dist/engine/boot-validator/entity-handler.js +1 -1
  199. package/dist/engine/boot-validator/entity-list-aggregate-options.d.ts +1 -1
  200. package/dist/engine/boot-validator/list-table-aggregate-options.d.ts +1 -1
  201. package/dist/engine/boot-validator/list-table-aggregate-query.d.ts +2 -1
  202. package/dist/engine/boot-validator/nav.d.ts +3 -1
  203. package/dist/engine/boot-validator/nav.js +1 -1
  204. package/dist/engine/boot-validator/ownership.d.ts +2 -1
  205. package/dist/engine/boot-validator/parent-ref.d.ts +2 -1
  206. package/dist/engine/boot-validator/projection-list-screens.d.ts +2 -1
  207. package/dist/engine/boot-validator/query-refs.d.ts +2 -1
  208. package/dist/engine/boot-validator/screens-forms.d.ts +2 -1
  209. package/dist/engine/boot-validator/screens-kind-shared.d.ts +3 -1
  210. package/dist/engine/boot-validator/screens.d.ts +2 -1
  211. package/dist/engine/boot-validator/workspaces.d.ts +3 -1
  212. package/dist/engine/bridge-stub.d.ts +5 -2
  213. package/dist/engine/bridge-stub.js +39 -24
  214. package/dist/engine/config-helpers.d.ts +2 -2
  215. package/dist/engine/config-helpers.js +0 -9
  216. package/dist/engine/constants.d.ts +0 -10
  217. package/dist/engine/constants.js +0 -8
  218. package/dist/engine/create-app.js +1 -1
  219. package/dist/engine/define-feature.d.ts +2 -1
  220. package/dist/engine/define-feature.js +1 -2
  221. package/dist/engine/define-handler.d.ts +1 -1
  222. package/dist/engine/define-step.d.ts +0 -1
  223. package/dist/engine/define-step.js +0 -3
  224. package/dist/engine/embedded-derived.d.ts +1 -1
  225. package/dist/engine/entity-handlers.d.ts +2 -1
  226. package/dist/engine/entity-handlers.js +7 -7
  227. package/dist/engine/entity-list-runtime-options.js +3 -1
  228. package/dist/engine/entity-list-searchability.d.ts +2 -1
  229. package/dist/engine/event-def.d.ts +2 -1
  230. package/dist/engine/event-helpers.d.ts +3 -1
  231. package/dist/engine/event-helpers.js +3 -3
  232. package/dist/engine/extension-names.d.ts +2 -8
  233. package/dist/engine/extension-names.js +2 -2
  234. package/dist/engine/extension-selector-plugins.d.ts +1 -1
  235. package/dist/engine/extensions/storage-provider.d.ts +1 -2
  236. package/dist/engine/extensions/user-data.d.ts +0 -8
  237. package/dist/engine/factories.d.ts +2 -1
  238. package/dist/engine/feature-builder-state.d.ts +8 -1
  239. package/dist/engine/feature-changelog.d.ts +1 -1
  240. package/dist/engine/feature-config-events-jobs.d.ts +4 -1
  241. package/dist/engine/feature-entity-handlers.d.ts +5 -1
  242. package/dist/engine/feature-manifest.js +1 -1
  243. package/dist/engine/feature-ui-extensions.d.ts +7 -1
  244. package/dist/engine/feature-ui-extensions.js +6 -4
  245. package/dist/engine/field-access.d.ts +2 -1
  246. package/dist/engine/handler-field-references.d.ts +0 -4
  247. package/dist/engine/index.d.ts +57 -54
  248. package/dist/engine/index.js +22 -27
  249. package/dist/engine/instruction-fields.d.ts +1 -1
  250. package/dist/engine/personal-data-fields.d.ts +1 -1
  251. package/dist/engine/qualified-name.d.ts +0 -1
  252. package/dist/engine/read-claim.d.ts +2 -1
  253. package/dist/engine/registry-facade.js +0 -3
  254. package/dist/engine/registry-ingest.d.ts +2 -1
  255. package/dist/engine/registry-ingest.js +1 -2
  256. package/dist/engine/registry-state.d.ts +12 -2
  257. package/dist/engine/registry-state.js +2 -3
  258. package/dist/engine/registry-validate.d.ts +3 -1
  259. package/dist/engine/registry-validate.js +7 -7
  260. package/dist/engine/run-in.d.ts +1 -1
  261. package/dist/engine/run-in.js +0 -1
  262. package/dist/engine/schema-builder.d.ts +1 -1
  263. package/dist/engine/schema-builder.js +1 -1
  264. package/dist/engine/screen-filter-ops.d.ts +2 -1
  265. package/dist/engine/screen-filter-ops.js +0 -5
  266. package/dist/engine/soft-delete-cleanup.d.ts +1 -1
  267. package/dist/engine/soft-delete-cleanup.js +4 -4
  268. package/dist/engine/state-machine.js +2 -1
  269. package/dist/engine/steps/_read-source.js +1 -1
  270. package/dist/engine/steps/aggregate-append-event.js +2 -2
  271. package/dist/engine/steps/call-feature.js +2 -2
  272. package/dist/engine/steps/mail-send.js +1 -1
  273. package/dist/engine/steps/retry.js +1 -1
  274. package/dist/engine/steps/wait-for-event.js +1 -1
  275. package/dist/engine/steps/wait.js +1 -1
  276. package/dist/engine/steps/webhook-send.js +1 -1
  277. package/dist/engine/template-variables.d.ts +2 -1
  278. package/dist/engine/transfer-adjacency.d.ts +1 -1
  279. package/dist/engine/types/index.d.ts +8 -31
  280. package/dist/engine/types/index.js +2 -10
  281. package/dist/engine/validation.d.ts +2 -1
  282. package/dist/entrypoint/index.d.ts +7 -35
  283. package/dist/entrypoint/index.js +7 -1
  284. package/dist/entrypoint/internals.d.ts +40 -0
  285. package/dist/entrypoint/internals.js +1 -0
  286. package/dist/entrypoint/row-level-security-mode-check.d.ts +3 -0
  287. package/dist/entrypoint/row-level-security-mode-check.js +19 -0
  288. package/dist/env/dry-run-internals.d.ts +10 -0
  289. package/dist/env/dry-run-internals.js +1 -0
  290. package/dist/env/dry-run.d.ts +1 -10
  291. package/dist/env/dry-run.js +2 -1
  292. package/dist/env/index.d.ts +1 -85
  293. package/dist/env/index.js +6 -50
  294. package/dist/env/internals.d.ts +87 -0
  295. package/dist/env/internals.js +53 -0
  296. package/dist/errors/classes.js +2 -2
  297. package/dist/errors/index.d.ts +5 -14
  298. package/dist/errors/index.js +4 -9
  299. package/dist/errors/member-resolution.js +1 -1
  300. package/dist/errors/reasons.d.ts +0 -1
  301. package/dist/errors/reasons.js +7 -7
  302. package/dist/errors/serialize.d.ts +0 -18
  303. package/dist/errors/serialize.js +0 -27
  304. package/dist/es-ops/index.d.ts +4 -4
  305. package/dist/es-ops/index.js +2 -2
  306. package/dist/es-ops/operations-schema.d.ts +1 -1
  307. package/dist/es-ops/types.d.ts +4 -5
  308. package/dist/event-store/admin-api-internals.d.ts +14 -0
  309. package/dist/event-store/admin-api-internals.js +1 -0
  310. package/dist/event-store/admin-api.d.ts +1 -14
  311. package/dist/event-store/admin-api.js +11 -6
  312. package/dist/event-store/archive.js +4 -2
  313. package/dist/event-store/errors.js +2 -2
  314. package/dist/event-store/event-store.js +41 -34
  315. package/dist/event-store/events-schema.js +4 -1
  316. package/dist/event-store/index.d.ts +11 -13
  317. package/dist/event-store/index.js +7 -9
  318. package/dist/event-store/rebuild-dead-letter.js +4 -2
  319. package/dist/event-store/snapshot.js +4 -3
  320. package/dist/event-store/stream-scope.d.ts +2 -0
  321. package/dist/event-store/stream-scope.js +6 -0
  322. package/dist/event-store/upcaster-dead-letter.js +4 -2
  323. package/dist/event-store/upcaster.d.ts +2 -1
  324. package/dist/files/action-form-upload.d.ts +2 -1
  325. package/dist/files/action-form-upload.js +1 -1
  326. package/dist/files/assert-file-refs-belong-to-tenant.d.ts +2 -1
  327. package/dist/files/assert-file-refs-belong-to-tenant.js +1 -1
  328. package/dist/files/bind-pending-file-refs.d.ts +2 -1
  329. package/dist/files/bind-pending-file-refs.js +2 -1
  330. package/dist/files/bind-referenced-files.write.js +1 -1
  331. package/dist/files/create-file-ref-from-bytes.d.ts +6 -3
  332. package/dist/files/create-file-ref-from-bytes.js +3 -3
  333. package/dist/files/create-file-ref.d.ts +3 -2
  334. package/dist/files/create-file-ref.js +2 -2
  335. package/dist/files/dispose-removed-file-refs.d.ts +2 -1
  336. package/dist/files/dispose-removed-file-refs.js +1 -1
  337. package/dist/files/feature.js +2 -2
  338. package/dist/files/file-handle.js +1 -1
  339. package/dist/files/file-routes.d.ts +1 -1
  340. package/dist/files/file-routes.js +12 -2
  341. package/dist/files/index.d.ts +11 -13
  342. package/dist/files/index.js +5 -7
  343. package/dist/files/load-save-file-refs.d.ts +2 -1
  344. package/dist/files/load-save-file-refs.js +1 -1
  345. package/dist/files/provider-resolver.d.ts +5 -4
  346. package/dist/files/provider-resolver.js +4 -4
  347. package/dist/files/storage-tracking.js +4 -2
  348. package/dist/files/sweep-orphaned-uploads.d.ts +1 -1
  349. package/dist/files/sweep-orphaned-uploads.js +1 -1
  350. package/dist/i18n/index.d.ts +2 -8
  351. package/dist/i18n/index.js +1 -1
  352. package/dist/i18n/internals.d.ts +7 -0
  353. package/dist/i18n/internals.js +1 -0
  354. package/dist/i18n/required-surface-keys.d.ts +4 -1
  355. package/dist/internal/row-level-security.d.ts +3 -0
  356. package/dist/internal/row-level-security.js +3 -0
  357. package/dist/internal/stack-support.d.ts +1 -1
  358. package/dist/internal/stack-support.js +1 -1
  359. package/dist/internal/testing.d.ts +1 -0
  360. package/dist/internal/testing.js +9 -5
  361. package/dist/jobs/index.d.ts +1 -1
  362. package/dist/jobs/job-append-event.d.ts +12 -0
  363. package/dist/jobs/job-append-event.js +30 -0
  364. package/dist/jobs/job-runner-context.d.ts +2 -2
  365. package/dist/jobs/job-runner-context.js +46 -16
  366. package/dist/jobs/job-runner-execution.d.ts +1 -1
  367. package/dist/jobs/job-runner-execution.js +6 -4
  368. package/dist/jobs/job-runner-gates.d.ts +1 -1
  369. package/dist/jobs/job-runner-gates.js +0 -1
  370. package/dist/jobs/job-runner-helpers.d.ts +11 -4
  371. package/dist/jobs/job-runner-helpers.js +10 -1
  372. package/dist/jobs/job-runner-scope.d.ts +5 -2
  373. package/dist/jobs/job-runner-types.d.ts +2 -1
  374. package/dist/jobs/job-runner.js +19 -6
  375. package/dist/jobs/max-per-tenant.d.ts +1 -1
  376. package/dist/logging/index.d.ts +1 -2
  377. package/dist/logging/index.js +1 -1
  378. package/dist/logging/pino-logger.js +1 -1
  379. package/dist/logging/utils.d.ts +1 -0
  380. package/dist/logging/utils.js +6 -0
  381. package/dist/migrations/index.d.ts +3 -3
  382. package/dist/migrations/index.js +3 -3
  383. package/dist/migrations/pending-rebuilds.d.ts +1 -1
  384. package/dist/migrations/pending-rebuilds.js +1 -1
  385. package/dist/migrations/pii-event-backfill.js +4 -1
  386. package/dist/observability/escape-hatch-report.d.ts +2 -1
  387. package/dist/observability/index.d.ts +7 -15
  388. package/dist/observability/index.js +4 -12
  389. package/dist/observability/metric-validator.js +1 -1
  390. package/dist/observability/metrics-handle.d.ts +0 -1
  391. package/dist/observability/metrics-handle.js +2 -15
  392. package/dist/observability/recording-tracer.d.ts +1 -2
  393. package/dist/observability/recording-tracer.js +0 -6
  394. package/dist/observability/sensitive-filter.d.ts +0 -2
  395. package/dist/observability/sensitive-filter.js +0 -29
  396. package/dist/pipeline/active-membership.d.ts +2 -1
  397. package/dist/pipeline/active-membership.js +6 -2
  398. package/dist/pipeline/append-event-core.d.ts +2 -1
  399. package/dist/pipeline/append-event-core.js +2 -2
  400. package/dist/pipeline/attach-outside-transaction.d.ts +3 -0
  401. package/dist/pipeline/attach-outside-transaction.js +13 -0
  402. package/dist/pipeline/auth-claims-resolver.d.ts +2 -1
  403. package/dist/pipeline/cascade-handler.d.ts +2 -1
  404. package/dist/pipeline/cascade-handler.js +3 -2
  405. package/dist/pipeline/config-accessor-factory.d.ts +1 -1
  406. package/dist/pipeline/config-accessor-factory.js +1 -1
  407. package/dist/pipeline/context-services.d.ts +56 -0
  408. package/dist/pipeline/context-services.js +73 -0
  409. package/dist/pipeline/dispatch-batch.d.ts +2 -1
  410. package/dist/pipeline/dispatch-batch.js +31 -18
  411. package/dist/pipeline/dispatch-query.js +5 -4
  412. package/dist/pipeline/dispatch-scope.d.ts +6 -0
  413. package/dist/pipeline/dispatch-scope.js +27 -0
  414. package/dist/pipeline/dispatch-shared.d.ts +13 -9
  415. package/dist/pipeline/dispatch-shared.js +75 -198
  416. package/dist/pipeline/dispatch-stream.js +8 -4
  417. package/dist/pipeline/dispatch-write.d.ts +2 -1
  418. package/dist/pipeline/dispatch-write.js +10 -8
  419. package/dist/pipeline/dispatcher-utils.d.ts +3 -1
  420. package/dist/pipeline/dispatcher-utils.js +8 -2
  421. package/dist/pipeline/dispatcher.d.ts +3 -2
  422. package/dist/pipeline/dispatcher.js +4 -3
  423. package/dist/pipeline/event-consumer-state.d.ts +0 -1
  424. package/dist/pipeline/event-dispatcher-delivery.d.ts +1 -1
  425. package/dist/pipeline/event-dispatcher-delivery.js +4 -2
  426. package/dist/pipeline/event-dispatcher.d.ts +2 -2
  427. package/dist/pipeline/event-dispatcher.js +7 -3
  428. package/dist/pipeline/event-retention.js +59 -56
  429. package/dist/pipeline/handler-access-error.js +2 -1
  430. package/dist/pipeline/handler-context-auth.d.ts +5 -6
  431. package/dist/pipeline/handler-context-auth.js +7 -4
  432. package/dist/pipeline/handler-context-config.d.ts +2 -5
  433. package/dist/pipeline/handler-context-config.js +2 -2
  434. package/dist/pipeline/handler-context-db.d.ts +32 -7
  435. package/dist/pipeline/handler-context-db.js +26 -17
  436. package/dist/pipeline/handler-context-dispatch.d.ts +13 -7
  437. package/dist/pipeline/handler-context-dispatch.js +9 -8
  438. package/dist/pipeline/handler-context-events.d.ts +22 -36
  439. package/dist/pipeline/handler-context-events.js +36 -31
  440. package/dist/pipeline/handler-context-member-resolution.d.ts +2 -0
  441. package/dist/pipeline/handler-context-member-resolution.js +110 -0
  442. package/dist/pipeline/handler-context-notify.d.ts +3 -2
  443. package/dist/pipeline/handler-context-notify.js +1 -1
  444. package/dist/pipeline/handler-context-observability.d.ts +2 -4
  445. package/dist/pipeline/handler-context-observability.js +7 -5
  446. package/dist/pipeline/handler-context-phase-denials.d.ts +11 -0
  447. package/dist/pipeline/handler-context-phase-denials.js +98 -0
  448. package/dist/pipeline/handler-context-scope.d.ts +7 -10
  449. package/dist/pipeline/handler-context-scope.js +18 -20
  450. package/dist/pipeline/index.d.ts +9 -21
  451. package/dist/pipeline/index.js +5 -7
  452. package/dist/pipeline/irreversible-operation-gate.d.ts +1 -1
  453. package/dist/pipeline/irreversible-operation-gate.js +2 -2
  454. package/dist/pipeline/lifecycle-pipeline.d.ts +8 -7
  455. package/dist/pipeline/lifecycle-pipeline.js +9 -15
  456. package/dist/pipeline/member-read-only-transaction.js +11 -3
  457. package/dist/pipeline/member-reader.d.ts +1 -1
  458. package/dist/pipeline/member-reader.js +2 -2
  459. package/dist/pipeline/msp-rebuild.js +5 -3
  460. package/dist/pipeline/multi-stream-apply-context.js +3 -2
  461. package/dist/pipeline/notify-scope.d.ts +2 -1
  462. package/dist/pipeline/pre-handler-gates.d.ts +2 -1
  463. package/dist/pipeline/pre-transaction-reservations.d.ts +3 -3
  464. package/dist/pipeline/pre-transaction-reservations.js +9 -7
  465. package/dist/pipeline/projection-rebuild.js +12 -5
  466. package/dist/pipeline/projection-state.d.ts +0 -6
  467. package/dist/pipeline/projection-state.js +0 -5
  468. package/dist/pipeline/projections-runner.d.ts +2 -1
  469. package/dist/pipeline/projections-runner.js +10 -6
  470. package/dist/pipeline/system-hooks.d.ts +3 -1
  471. package/dist/pipeline/system-hooks.js +6 -4
  472. package/dist/pipeline/system-identity-switch.d.ts +4 -2
  473. package/dist/pipeline/system-identity-switch.js +51 -36
  474. package/dist/pipeline/typed-append-event.d.ts +2 -0
  475. package/dist/pipeline/typed-append-event.js +4 -0
  476. package/dist/pipeline/write-origin.js +2 -2
  477. package/dist/pipeline/write-result-masking.d.ts +1 -1
  478. package/dist/random/index.d.ts +1 -2
  479. package/dist/random/index.js +1 -2
  480. package/dist/rate-limit/bucket.d.ts +2 -1
  481. package/dist/rate-limit/middleware.js +2 -1
  482. package/dist/redis/index.d.ts +3 -4
  483. package/dist/redis/index.js +2 -2
  484. package/dist/schema-cli/apply-command.js +5 -2
  485. package/dist/schema-cli/baseline-command.js +7 -2
  486. package/dist/schema-cli/generate-command.js +7 -9
  487. package/dist/schema-cli/shared.d.ts +12 -2
  488. package/dist/schema-cli/shared.js +24 -2
  489. package/dist/schema-cli/status-command.js +8 -2
  490. package/dist/schema-cli/validate-command.js +48 -4
  491. package/dist/schema-cli.d.ts +0 -1
  492. package/dist/search/configure-tenant-index.d.ts +1 -3
  493. package/dist/search/configure-tenant-index.js +0 -4
  494. package/dist/search/index.d.ts +1 -4
  495. package/dist/search/index.js +0 -2
  496. package/dist/search/meilisearch-adapter-internals.d.ts +8 -0
  497. package/dist/search/meilisearch-adapter-internals.js +9 -0
  498. package/dist/search/meilisearch-adapter.d.ts +1 -8
  499. package/dist/search/meilisearch-adapter.js +6 -7
  500. package/dist/search/meilisearch-peer.d.ts +2 -0
  501. package/dist/search/meilisearch-peer.js +5 -0
  502. package/dist/search/reindex-entity.js +93 -87
  503. package/dist/secrets/index.d.ts +3 -4
  504. package/dist/secrets/index.js +2 -3
  505. package/dist/seeding/index.d.ts +2 -2
  506. package/dist/seeding/index.js +1 -2
  507. package/dist/time/index.d.ts +2 -2
  508. package/dist/time/index.js +1 -1
  509. package/dist/time/tz-context.d.ts +0 -5
  510. package/dist/time/tz-context.js +0 -9
  511. package/dist/ui-types/index.d.ts +8 -11
  512. package/dist/ui-types/index.js +3 -3
  513. package/dist/upgrade-changelog.d.ts +3 -2
  514. package/dist/upgrade-changelog.js +12 -8
  515. package/dist/upgrade-cli-internals.d.ts +8 -0
  516. package/dist/upgrade-cli-internals.js +63 -0
  517. package/dist/upgrade-cli.d.ts +2 -9
  518. package/dist/upgrade-cli.js +28 -70
  519. package/dist/utils/import-optional-peer.d.ts +6 -0
  520. package/dist/utils/import-optional-peer.js +19 -0
  521. package/dist/utils/index.d.ts +1 -4
  522. package/dist/utils/index.js +1 -4
  523. package/package.json +23 -19
  524. package/src/changes.json +236 -0
  525. package/dist/crypto/request-kms-cache.d.ts +0 -8
  526. package/dist/crypto/request-kms-cache.js +0 -21
  527. package/dist/engine/codemod/index.d.ts +0 -2
  528. package/dist/engine/codemod/index.js +0 -1
  529. package/dist/engine/codemod/pipeline-codemod.d.ts +0 -50
  530. package/dist/engine/codemod/pipeline-codemod.js +0 -536
  531. package/dist/engine/feature-ast/entity-field-types.d.ts +0 -13
  532. package/dist/engine/feature-ast/entity-field-types.js +0 -35
  533. package/dist/engine/feature-ast/extractors/ai-steps.d.ts +0 -6
  534. package/dist/engine/feature-ast/extractors/ai-steps.js +0 -254
  535. package/dist/engine/feature-ast/extractors/events.d.ts +0 -5
  536. package/dist/engine/feature-ast/extractors/events.js +0 -275
  537. package/dist/engine/feature-ast/extractors/handlers.d.ts +0 -24
  538. package/dist/engine/feature-ast/extractors/handlers.js +0 -358
  539. package/dist/engine/feature-ast/extractors/hooks.d.ts +0 -24
  540. package/dist/engine/feature-ast/extractors/hooks.js +0 -248
  541. package/dist/engine/feature-ast/extractors/index.d.ts +0 -14
  542. package/dist/engine/feature-ast/extractors/index.js +0 -13
  543. package/dist/engine/feature-ast/extractors/jobs-routes.d.ts +0 -7
  544. package/dist/engine/feature-ast/extractors/jobs-routes.js +0 -145
  545. package/dist/engine/feature-ast/extractors/projections-screens.d.ts +0 -10
  546. package/dist/engine/feature-ast/extractors/projections-screens.js +0 -195
  547. package/dist/engine/feature-ast/extractors/resolve-import.d.ts +0 -21
  548. package/dist/engine/feature-ast/extractors/resolve-import.js +0 -180
  549. package/dist/engine/feature-ast/extractors/round1.d.ts +0 -11
  550. package/dist/engine/feature-ast/extractors/round1.js +0 -87
  551. package/dist/engine/feature-ast/extractors/round2.d.ts +0 -7
  552. package/dist/engine/feature-ast/extractors/round2.js +0 -191
  553. package/dist/engine/feature-ast/extractors/round3.d.ts +0 -23
  554. package/dist/engine/feature-ast/extractors/round3.js +0 -292
  555. package/dist/engine/feature-ast/extractors/round5.d.ts +0 -9
  556. package/dist/engine/feature-ast/extractors/round5.js +0 -68
  557. package/dist/engine/feature-ast/extractors/round6.d.ts +0 -4
  558. package/dist/engine/feature-ast/extractors/round6.js +0 -17
  559. package/dist/engine/feature-ast/extractors/shared.d.ts +0 -94
  560. package/dist/engine/feature-ast/extractors/shared.js +0 -343
  561. package/dist/engine/feature-ast/index.d.ts +0 -16
  562. package/dist/engine/feature-ast/index.js +0 -10
  563. package/dist/engine/feature-ast/parse.d.ts +0 -31
  564. package/dist/engine/feature-ast/parse.js +0 -485
  565. package/dist/engine/feature-ast/patch.d.ts +0 -212
  566. package/dist/engine/feature-ast/patch.js +0 -611
  567. package/dist/engine/feature-ast/patcher.d.ts +0 -217
  568. package/dist/engine/feature-ast/patcher.js +0 -281
  569. package/dist/engine/feature-ast/pattern-change-schema.d.ts +0 -1238
  570. package/dist/engine/feature-ast/pattern-change-schema.js +0 -1072
  571. package/dist/engine/feature-ast/pattern-id-matchers.d.ts +0 -7
  572. package/dist/engine/feature-ast/pattern-id-matchers.js +0 -211
  573. package/dist/engine/feature-ast/pattern-id-schema.d.ts +0 -251
  574. package/dist/engine/feature-ast/pattern-id-schema.js +0 -166
  575. package/dist/engine/feature-ast/patterns.d.ts +0 -322
  576. package/dist/engine/feature-ast/patterns.js +0 -107
  577. package/dist/engine/feature-ast/render.d.ts +0 -47
  578. package/dist/engine/feature-ast/render.js +0 -666
  579. package/dist/engine/feature-ast/source-location.d.ts +0 -17
  580. package/dist/engine/feature-ast/source-location.js +0 -27
  581. package/dist/engine/pattern-library/index.d.ts +0 -2
  582. package/dist/engine/pattern-library/index.js +0 -3
  583. package/dist/engine/pattern-library/library.d.ts +0 -14
  584. package/dist/engine/pattern-library/library.js +0 -94
  585. package/dist/engine/pattern-library/mixed-schemas.d.ts +0 -16
  586. package/dist/engine/pattern-library/mixed-schemas.js +0 -559
  587. package/dist/engine/pattern-library/opaque-schemas.d.ts +0 -7
  588. package/dist/engine/pattern-library/opaque-schemas.js +0 -115
  589. package/dist/engine/pattern-library/shared-fields.d.ts +0 -122
  590. package/dist/engine/pattern-library/shared-fields.js +0 -88
  591. package/dist/engine/pattern-library/static-schemas.d.ts +0 -21
  592. package/dist/engine/pattern-library/static-schemas.js +0 -487
  593. package/dist/engine/pattern-library/types.d.ts +0 -158
  594. package/dist/engine/pattern-library/types.js +0 -36
  595. package/dist/engine/resolve-config-or-param.d.ts +0 -18
  596. package/dist/engine/resolve-config-or-param.js +0 -76
  597. package/src/scripts/codemod/README.md +0 -187
  598. package/src/scripts/codemod/codemod-support.ts +0 -334
  599. package/src/scripts/codemod/collect-source-files.ts +0 -48
  600. package/src/scripts/codemod/crypto-shredding-testing-move.ts +0 -119
  601. package/src/scripts/codemod/db-factory.ts +0 -810
  602. package/src/scripts/codemod/feature-factory.ts +0 -429
  603. package/src/scripts/codemod/feature-layout.ts +0 -424
  604. package/src/scripts/codemod/import-extensions.ts +0 -118
  605. package/src/scripts/codemod/migrate-cross-tenant.ts +0 -328
  606. package/src/scripts/codemod/migrate-db-raw.ts +0 -401
  607. package/src/scripts/codemod/migrate-open-to-all.ts +0 -235
  608. package/src/scripts/codemod/object-form.ts +0 -746
  609. package/src/scripts/codemod/package-merge.ts +0 -299
  610. package/src/scripts/codemod/pii-personal-migration.ts +0 -816
  611. package/src/scripts/codemod/remove-engine-payload-casts.ts +0 -318
  612. package/src/scripts/codemod/s3-imports.ts +0 -236
  613. package/src/scripts/codemod/tenant-db-options.ts +0 -454
  614. package/src/scripts/codemod/testing-injection.ts +0 -215
  615. package/src/scripts/codemod/testing-move-targets.ts +0 -161
  616. package/src/scripts/codemod/testing-move.ts +0 -542
  617. 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
- }