@cosmicdrift/kumiko-framework 0.388.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 (711) hide show
  1. package/AGENTS.md +12 -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/golden-path.md +13 -1
  13. package/agents/examples/inbound-mail-triage.md +1 -0
  14. package/agents/examples/lane-routing.md +2 -1
  15. package/agents/examples/legal-pages.md +2 -2
  16. package/agents/examples/lifecycle-hooks.md +55 -2
  17. package/agents/examples/list-table-options.md +466 -0
  18. package/agents/examples/managed-config.md +4 -4
  19. package/agents/examples/managed-pages.md +1 -1
  20. package/agents/examples/pdf-audit-export.md +4 -2
  21. package/agents/examples/relations.md +19 -4
  22. package/agents/examples/search.md +4 -4
  23. package/agents/examples/secrets-demo.md +9 -6
  24. package/agents/examples/state-machine.md +5 -4
  25. package/agents/examples/tenant-isolation.md +73 -1
  26. package/agents/examples/tenant-settings.md +1 -1
  27. package/agents/examples/user-data-rights.md +3 -6
  28. package/agents/examples/workflow-engine.md +53 -47
  29. package/agents/examples.md +5 -4
  30. package/agents/features.md +1 -1
  31. package/agents/widgets.md +1 -0
  32. package/dist/api/api-constants.d.ts +1 -0
  33. package/dist/api/api-constants.js +2 -0
  34. package/dist/api/auth-middleware.js +1 -1
  35. package/dist/api/auth-routes-invite.js +2 -1
  36. package/dist/api/auth-routes-shared.d.ts +2 -0
  37. package/dist/api/auth-routes-shared.js +5 -0
  38. package/dist/api/client-error-route.js +2 -3
  39. package/dist/api/entity-read-access.d.ts +4 -1
  40. package/dist/api/entity-read-access.js +14 -0
  41. package/dist/api/export/export-cells-reference.d.ts +9 -0
  42. package/dist/api/export/export-cells-reference.js +21 -0
  43. package/dist/api/export/export-cells.d.ts +11 -0
  44. package/dist/api/export/export-cells.js +136 -0
  45. package/dist/api/export/export-ciphertext-guard.d.ts +2 -0
  46. package/dist/api/export/export-ciphertext-guard.js +27 -0
  47. package/dist/api/export/export-columns.d.ts +31 -0
  48. package/dist/api/export/export-columns.js +85 -0
  49. package/dist/api/export/export-errors.d.ts +4 -0
  50. package/dist/api/export/export-errors.js +14 -0
  51. package/dist/api/export/export-route.d.ts +4 -0
  52. package/dist/api/export/export-route.js +75 -0
  53. package/dist/api/export/export-rows.d.ts +13 -0
  54. package/dist/api/export/export-rows.js +62 -0
  55. package/dist/api/export/export-screen.d.ts +13 -0
  56. package/dist/api/export/export-screen.js +47 -0
  57. package/dist/api/export/export-xlsx-writer.d.ts +4 -0
  58. package/dist/api/export/export-xlsx-writer.js +21 -0
  59. package/dist/api/extra-route.d.ts +7 -1
  60. package/dist/api/index.d.ts +23 -27
  61. package/dist/api/index.js +13 -15
  62. package/dist/api/jwt.js +1 -1
  63. package/dist/api/observability-middleware.d.ts +1 -1
  64. package/dist/api/observability-middleware.js +2 -1
  65. package/dist/api/pii-leak-guard.d.ts +3 -0
  66. package/dist/api/pii-leak-guard.js +3 -2
  67. package/dist/api/request-context-internals.d.ts +31 -0
  68. package/dist/api/request-context-internals.js +11 -0
  69. package/dist/api/request-context-scopes.d.ts +14 -0
  70. package/dist/api/request-context-scopes.js +69 -0
  71. package/dist/api/request-context.d.ts +1 -40
  72. package/dist/api/request-context.js +22 -51
  73. package/dist/api/request-id-middleware.d.ts +1 -1
  74. package/dist/api/route-registrars.d.ts +2 -1
  75. package/dist/api/route-registrars.js +1 -1
  76. package/dist/api/routes.d.ts +16 -0
  77. package/dist/api/routes.js +9 -5
  78. package/dist/api/server-boot-checks.d.ts +1 -1
  79. package/dist/api/server-boot-checks.js +2 -2
  80. package/dist/api/server-event-dispatcher.d.ts +6 -1
  81. package/dist/api/server-event-dispatcher.js +3 -4
  82. package/dist/api/server-extra-routes.d.ts +1 -1
  83. package/dist/api/server-extra-routes.js +5 -1
  84. package/dist/api/server-middleware.js +3 -1
  85. package/dist/api/server-routes.d.ts +3 -2
  86. package/dist/api/server-routes.js +8 -2
  87. package/dist/api/server-wiring.js +8 -4
  88. package/dist/api/server.d.ts +2 -1
  89. package/dist/api/sse-route.d.ts +3 -1
  90. package/dist/api/sse-route.js +11 -1
  91. package/dist/api/tenant-scoped-secrets.d.ts +2 -0
  92. package/dist/api/tenant-scoped-secrets.js +13 -0
  93. package/dist/api/websocket-route.d.ts +1 -1
  94. package/dist/auth/index.d.ts +0 -1
  95. package/dist/auth/roles.d.ts +0 -5
  96. package/dist/compliance/duration-spec.d.ts +0 -1
  97. package/dist/compliance/duration-spec.js +0 -5
  98. package/dist/compliance/index.d.ts +4 -4
  99. package/dist/compliance/index.js +2 -2
  100. package/dist/compliance/profiles.d.ts +0 -15
  101. package/dist/compliance/profiles.js +0 -23
  102. package/dist/config/index.d.ts +11 -9
  103. package/dist/config/index.js +13 -1
  104. package/dist/config/internals.d.ts +9 -0
  105. package/dist/config/internals.js +1 -0
  106. package/dist/consumer-cli-internals.d.ts +4 -0
  107. package/dist/consumer-cli-internals.js +1 -0
  108. package/dist/consumer-cli.d.ts +1 -4
  109. package/dist/consumer-cli.js +5 -1
  110. package/dist/crypto/event-pii.js +1 -1
  111. package/dist/crypto/index.d.ts +8 -9
  112. package/dist/crypto/index.js +7 -8
  113. package/dist/crypto/pg-kms-adapter.d.ts +1 -0
  114. package/dist/crypto/pg-kms-adapter.js +17 -18
  115. package/dist/db/aggregate-sql.d.ts +2 -0
  116. package/dist/db/aggregate-sql.js +10 -0
  117. package/dist/db/apply-entity-event.d.ts +1 -1
  118. package/dist/db/apply-entity-event.js +15 -47
  119. package/dist/db/blind-index-cleanup.js +91 -77
  120. package/dist/db/closed-connection.js +12 -19
  121. package/dist/db/collect-table-metas.js +1 -1
  122. package/dist/db/compound-types.d.ts +1 -1
  123. package/dist/db/compound-types.js +0 -7
  124. package/dist/db/config-seed.d.ts +2 -1
  125. package/dist/db/config-seed.js +6 -1
  126. package/dist/db/connection.d.ts +7 -6
  127. package/dist/db/connection.js +43 -24
  128. package/dist/db/cross-tenant-reads.d.ts +1 -1
  129. package/dist/db/cross-tenant-reads.js +1 -1
  130. package/dist/db/dialect.d.ts +0 -5
  131. package/dist/db/dialect.js +0 -3
  132. package/dist/db/driver-row-coercion.js +4 -4
  133. package/dist/db/driver-value-preparation.js +6 -4
  134. package/dist/db/eagerload.d.ts +2 -1
  135. package/dist/db/entity-field-encryption.d.ts +1 -1
  136. package/dist/db/entity-table-meta.d.ts +1 -1
  137. package/dist/db/event-store-executor-context.d.ts +3 -1
  138. package/dist/db/event-store-executor-context.js +4 -3
  139. package/dist/db/event-store-executor-read-aggregate-currencies.d.ts +17 -0
  140. package/dist/db/event-store-executor-read-aggregate-currencies.js +40 -0
  141. package/dist/db/event-store-executor-read-aggregate.js +36 -5
  142. package/dist/db/event-store-executor-read-filter.d.ts +1 -1
  143. package/dist/db/event-store-executor-read-filter.js +6 -3
  144. package/dist/db/event-store-executor-read-rows.d.ts +2 -1
  145. package/dist/db/event-store-executor-read-search.d.ts +2 -1
  146. package/dist/db/event-store-executor-read-sort.d.ts +2 -1
  147. package/dist/db/event-store-executor-read.js +2 -2
  148. package/dist/db/event-store-executor-write-atomic.d.ts +4 -0
  149. package/dist/db/event-store-executor-write-atomic.js +42 -0
  150. package/dist/db/event-store-executor-write-steps.d.ts +3 -5
  151. package/dist/db/event-store-executor-write-steps.js +0 -5
  152. package/dist/db/event-store-executor-write.js +22 -19
  153. package/dist/db/event-store-executor.d.ts +1 -1
  154. package/dist/db/event-store-executor.js +2 -1
  155. package/dist/db/executor-managed-tables.d.ts +7 -1
  156. package/dist/db/executor-managed-tables.js +12 -3
  157. package/dist/db/index.d.ts +29 -28
  158. package/dist/db/index.js +22 -20
  159. package/dist/db/known-table-names.d.ts +6 -0
  160. package/dist/db/known-table-names.js +21 -0
  161. package/dist/db/list-aggregate-labels.d.ts +1 -1
  162. package/dist/db/located-timestamp.d.ts +1 -1
  163. package/dist/db/located-timestamp.js +0 -5
  164. package/dist/db/migrate-generator.d.ts +17 -1
  165. package/dist/db/migrate-generator.js +50 -20
  166. package/dist/db/migrate-primary-key.d.ts +12 -0
  167. package/dist/db/migrate-primary-key.js +45 -0
  168. package/dist/db/migrate-rls-diff.d.ts +20 -0
  169. package/dist/db/migrate-rls-diff.js +61 -0
  170. package/dist/db/migrate-runner.js +7 -3
  171. package/dist/db/money.d.ts +1 -1
  172. package/dist/db/money.js +1 -1
  173. package/dist/db/parent-ref-clause.d.ts +2 -1
  174. package/dist/db/pg-error.d.ts +2 -0
  175. package/dist/db/pg-error.js +37 -21
  176. package/dist/db/queries/backfill-pii.js +3 -6
  177. package/dist/db/queries/database-now.js +2 -1
  178. package/dist/db/queries/ddl.d.ts +3 -0
  179. package/dist/db/queries/ddl.js +34 -1
  180. package/dist/db/queries/event-store.js +4 -2
  181. package/dist/db/queries/event-tenants.d.ts +2 -0
  182. package/dist/db/queries/event-tenants.js +17 -0
  183. package/dist/db/queries/rebuild-rls-guard.d.ts +2 -0
  184. package/dist/db/queries/rebuild-rls-guard.js +29 -0
  185. package/dist/db/queries/rls-boot-catalog.d.ts +16 -0
  186. package/dist/db/queries/rls-boot-catalog.js +39 -0
  187. package/dist/db/queries/rls-catalog.d.ts +6 -0
  188. package/dist/db/queries/rls-catalog.js +82 -0
  189. package/dist/db/queries/rls-scope.d.ts +3 -0
  190. package/dist/db/queries/rls-scope.js +17 -0
  191. package/dist/db/queries/rls-shape.d.ts +10 -0
  192. package/dist/db/queries/rls-shape.js +42 -0
  193. package/dist/db/queries/session-advisory-lock.d.ts +2 -0
  194. package/dist/db/queries/session-advisory-lock.js +23 -0
  195. package/dist/db/queries/shadow-swap.d.ts +1 -2
  196. package/dist/db/queries/shadow-swap.js +11 -28
  197. package/dist/db/queries/test-stack.d.ts +4 -1
  198. package/dist/db/queries/test-stack.js +83 -2
  199. package/dist/db/query.d.ts +14 -0
  200. package/dist/db/query.js +77 -48
  201. package/dist/db/reference-data.d.ts +1 -1
  202. package/dist/db/reference-data.js +20 -3
  203. package/dist/db/render-ddl.d.ts +6 -2
  204. package/dist/db/render-ddl.js +7 -7
  205. package/dist/db/render-rls-ddl.d.ts +35 -0
  206. package/dist/db/render-rls-ddl.js +127 -0
  207. package/dist/db/replay-migration-sql.d.ts +3 -1
  208. package/dist/db/replay-migration-sql.js +22 -5
  209. package/dist/db/replay-rls.d.ts +25 -0
  210. package/dist/db/replay-rls.js +156 -0
  211. package/dist/db/row-level-security-boot-check.d.ts +5 -0
  212. package/dist/db/row-level-security-boot-check.js +85 -0
  213. package/dist/db/row-level-security-connection.d.ts +3 -0
  214. package/dist/db/row-level-security-connection.js +213 -0
  215. package/dist/db/row-level-security-scope.d.ts +33 -0
  216. package/dist/db/row-level-security-scope.js +127 -0
  217. package/dist/db/scope-tenant-db-to-tenant.d.ts +3 -0
  218. package/dist/db/scope-tenant-db-to-tenant.js +14 -0
  219. package/dist/db/sql-identifier.d.ts +1 -0
  220. package/dist/db/sql-identifier.js +3 -0
  221. package/dist/db/statement-timeout.js +2 -1
  222. package/dist/db/table-builder.d.ts +2 -1
  223. package/dist/db/table-builder.js +1 -1
  224. package/dist/db/table-info.js +1 -1
  225. package/dist/db/table-push.d.ts +11 -2
  226. package/dist/db/table-push.js +15 -2
  227. package/dist/db/tenant-db-runner.d.ts +3 -1
  228. package/dist/db/tenant-db-runner.js +4 -3
  229. package/dist/db/tenant-db-scoped-rebind.d.ts +10 -0
  230. package/dist/db/tenant-db-scoped-rebind.js +33 -0
  231. package/dist/db/tenant-db-statement-runner.d.ts +13 -0
  232. package/dist/db/tenant-db-statement-runner.js +48 -0
  233. package/dist/db/tenant-db-upsert.d.ts +5 -0
  234. package/dist/db/tenant-db-upsert.js +91 -0
  235. package/dist/db/tenant-db.d.ts +17 -12
  236. package/dist/db/tenant-db.js +60 -121
  237. package/dist/db/tenant-id-filter.d.ts +3 -0
  238. package/dist/db/tenant-id-filter.js +30 -0
  239. package/dist/db/transaction-serialization.d.ts +6 -0
  240. package/dist/db/transaction-serialization.js +60 -0
  241. package/dist/derivatives/delete-stored-file.js +1 -1
  242. package/dist/derivatives/index.d.ts +2 -5
  243. package/dist/derivatives/index.js +2 -3
  244. package/dist/engine/access.d.ts +2 -1
  245. package/dist/engine/access.js +1 -1
  246. package/dist/engine/boot-validator/bundled-lists-table.d.ts +2 -0
  247. package/dist/engine/boot-validator/bundled-lists-table.js +36 -0
  248. package/dist/engine/boot-validator/entity-handler.d.ts +2 -1
  249. package/dist/engine/boot-validator/entity-handler.js +1 -1
  250. package/dist/engine/boot-validator/entity-list-aggregate-options.d.ts +3 -0
  251. package/dist/engine/boot-validator/entity-list-aggregate-options.js +23 -0
  252. package/dist/engine/boot-validator/list-bulk-actions.d.ts +3 -0
  253. package/dist/engine/boot-validator/list-bulk-actions.js +49 -0
  254. package/dist/engine/boot-validator/list-column-layout.d.ts +8 -0
  255. package/dist/engine/boot-validator/list-column-layout.js +41 -0
  256. package/dist/engine/boot-validator/list-table-aggregate-options.d.ts +24 -0
  257. package/dist/engine/boot-validator/list-table-aggregate-options.js +145 -0
  258. package/dist/engine/boot-validator/list-table-aggregate-query.d.ts +11 -0
  259. package/dist/engine/boot-validator/list-table-aggregate-query.js +31 -0
  260. package/dist/engine/boot-validator/list-table-export-options.d.ts +1 -0
  261. package/dist/engine/boot-validator/list-table-export-options.js +27 -0
  262. package/dist/engine/boot-validator/list-table-options.d.ts +3 -0
  263. package/dist/engine/boot-validator/list-table-options.js +77 -0
  264. package/dist/engine/boot-validator/list-table-reject-unknown-keys.d.ts +1 -0
  265. package/dist/engine/boot-validator/list-table-reject-unknown-keys.js +7 -0
  266. package/dist/engine/boot-validator/nav.d.ts +3 -1
  267. package/dist/engine/boot-validator/nav.js +1 -1
  268. package/dist/engine/boot-validator/ownership.d.ts +2 -1
  269. package/dist/engine/boot-validator/parent-ref.d.ts +2 -1
  270. package/dist/engine/boot-validator/projection-list-screens.d.ts +2 -1
  271. package/dist/engine/boot-validator/projection-list-screens.js +3 -13
  272. package/dist/engine/boot-validator/query-refs.d.ts +2 -1
  273. package/dist/engine/boot-validator/related-list-table-rules.d.ts +4 -0
  274. package/dist/engine/boot-validator/related-list-table-rules.js +42 -0
  275. package/dist/engine/boot-validator/screens-forms.d.ts +2 -1
  276. package/dist/engine/boot-validator/screens-kind-entity-list.js +7 -0
  277. package/dist/engine/boot-validator/screens-kind-projection-list.js +4 -0
  278. package/dist/engine/boot-validator/screens-kind-shared.d.ts +3 -1
  279. package/dist/engine/boot-validator/screens-lists.js +12 -2
  280. package/dist/engine/boot-validator/screens.d.ts +2 -1
  281. package/dist/engine/boot-validator/workspaces.d.ts +3 -1
  282. package/dist/engine/bridge-stub.d.ts +5 -2
  283. package/dist/engine/bridge-stub.js +39 -24
  284. package/dist/engine/build-app-schema.d.ts +2 -1
  285. package/dist/engine/build-app-schema.js +9 -1
  286. package/dist/engine/build-config-feature-schema.js +6 -1
  287. package/dist/engine/config-helpers.d.ts +2 -2
  288. package/dist/engine/config-helpers.js +0 -9
  289. package/dist/engine/constants.d.ts +0 -10
  290. package/dist/engine/constants.js +0 -8
  291. package/dist/engine/create-app.js +1 -1
  292. package/dist/engine/define-feature.d.ts +2 -1
  293. package/dist/engine/define-feature.js +5 -2
  294. package/dist/engine/define-handler.d.ts +1 -1
  295. package/dist/engine/define-step.d.ts +0 -1
  296. package/dist/engine/define-step.js +0 -3
  297. package/dist/engine/embedded-derived.d.ts +1 -1
  298. package/dist/engine/entity-handlers.d.ts +2 -1
  299. package/dist/engine/entity-handlers.js +7 -7
  300. package/dist/engine/entity-list-runtime-options.js +3 -1
  301. package/dist/engine/entity-list-searchability.d.ts +2 -1
  302. package/dist/engine/event-def.d.ts +2 -1
  303. package/dist/engine/event-helpers.d.ts +3 -1
  304. package/dist/engine/event-helpers.js +3 -3
  305. package/dist/engine/extension-names.d.ts +2 -8
  306. package/dist/engine/extension-names.js +2 -2
  307. package/dist/engine/extension-selector-plugins.d.ts +1 -1
  308. package/dist/engine/extensions/storage-provider.d.ts +1 -2
  309. package/dist/engine/extensions/user-data.d.ts +0 -8
  310. package/dist/engine/factories.d.ts +2 -1
  311. package/dist/engine/feature-builder-state.d.ts +9 -1
  312. package/dist/engine/feature-builder-state.js +1 -0
  313. package/dist/engine/feature-changelog.d.ts +1 -1
  314. package/dist/engine/feature-config-events-jobs.d.ts +4 -1
  315. package/dist/engine/feature-entity-handlers.d.ts +5 -1
  316. package/dist/engine/feature-manifest.d.ts +1 -0
  317. package/dist/engine/feature-manifest.js +2 -1
  318. package/dist/engine/feature-ui-extensions.d.ts +7 -1
  319. package/dist/engine/feature-ui-extensions.js +6 -4
  320. package/dist/engine/field-access.d.ts +3 -1
  321. package/dist/engine/field-access.js +12 -0
  322. package/dist/engine/handler-field-references.d.ts +0 -4
  323. package/dist/engine/index.d.ts +58 -55
  324. package/dist/engine/index.js +23 -28
  325. package/dist/engine/instruction-fields.d.ts +1 -1
  326. package/dist/engine/personal-data-fields.d.ts +1 -1
  327. package/dist/engine/qualified-name.d.ts +0 -1
  328. package/dist/engine/read-claim.d.ts +2 -1
  329. package/dist/engine/registry-facade.js +0 -3
  330. package/dist/engine/registry-ingest.d.ts +2 -1
  331. package/dist/engine/registry-ingest.js +1 -2
  332. package/dist/engine/registry-state.d.ts +12 -2
  333. package/dist/engine/registry-state.js +2 -3
  334. package/dist/engine/registry-validate.d.ts +3 -1
  335. package/dist/engine/registry-validate.js +7 -7
  336. package/dist/engine/run-in.d.ts +1 -1
  337. package/dist/engine/run-in.js +0 -1
  338. package/dist/engine/schema-builder.d.ts +1 -1
  339. package/dist/engine/schema-builder.js +1 -1
  340. package/dist/engine/screen-filter-ops.d.ts +2 -1
  341. package/dist/engine/screen-filter-ops.js +2 -5
  342. package/dist/engine/soft-delete-cleanup.d.ts +1 -1
  343. package/dist/engine/soft-delete-cleanup.js +4 -4
  344. package/dist/engine/state-machine.js +2 -1
  345. package/dist/engine/steps/_read-source.js +1 -1
  346. package/dist/engine/steps/aggregate-append-event.js +2 -2
  347. package/dist/engine/steps/call-feature.js +2 -2
  348. package/dist/engine/steps/mail-send.js +1 -1
  349. package/dist/engine/steps/retry.js +1 -1
  350. package/dist/engine/steps/wait-for-event.js +1 -1
  351. package/dist/engine/steps/wait.js +1 -1
  352. package/dist/engine/steps/webhook-send.js +1 -1
  353. package/dist/engine/strip-disabled-features-from-app-schema.js +7 -3
  354. package/dist/engine/template-variables.d.ts +2 -1
  355. package/dist/engine/transfer-adjacency.d.ts +1 -1
  356. package/dist/engine/types/feature.d.ts +1 -0
  357. package/dist/engine/types/index.d.ts +8 -30
  358. package/dist/engine/types/index.js +2 -10
  359. package/dist/engine/types/screen.d.ts +1 -1
  360. package/dist/engine/types/screen.js +1 -1
  361. package/dist/engine/validation.d.ts +2 -1
  362. package/dist/entrypoint/index.d.ts +9 -35
  363. package/dist/entrypoint/index.js +10 -1
  364. package/dist/entrypoint/internals.d.ts +40 -0
  365. package/dist/entrypoint/internals.js +1 -0
  366. package/dist/entrypoint/row-level-security-mode-check.d.ts +3 -0
  367. package/dist/entrypoint/row-level-security-mode-check.js +19 -0
  368. package/dist/env/dry-run-internals.d.ts +10 -0
  369. package/dist/env/dry-run-internals.js +1 -0
  370. package/dist/env/dry-run.d.ts +1 -10
  371. package/dist/env/dry-run.js +2 -1
  372. package/dist/env/index.d.ts +1 -85
  373. package/dist/env/index.js +6 -50
  374. package/dist/env/internals.d.ts +87 -0
  375. package/dist/env/internals.js +53 -0
  376. package/dist/errors/classes.js +2 -2
  377. package/dist/errors/index.d.ts +5 -14
  378. package/dist/errors/index.js +4 -9
  379. package/dist/errors/member-resolution.js +1 -1
  380. package/dist/errors/reasons.d.ts +0 -1
  381. package/dist/errors/reasons.js +7 -7
  382. package/dist/errors/serialize.d.ts +0 -18
  383. package/dist/errors/serialize.js +0 -27
  384. package/dist/es-ops/index.d.ts +4 -4
  385. package/dist/es-ops/index.js +2 -2
  386. package/dist/es-ops/operations-schema.d.ts +1 -1
  387. package/dist/es-ops/types.d.ts +4 -5
  388. package/dist/event-store/admin-api-internals.d.ts +14 -0
  389. package/dist/event-store/admin-api-internals.js +1 -0
  390. package/dist/event-store/admin-api.d.ts +1 -14
  391. package/dist/event-store/admin-api.js +11 -6
  392. package/dist/event-store/archive.js +4 -2
  393. package/dist/event-store/errors.js +2 -2
  394. package/dist/event-store/event-store.d.ts +1 -0
  395. package/dist/event-store/event-store.js +42 -32
  396. package/dist/event-store/events-schema.js +4 -1
  397. package/dist/event-store/index.d.ts +11 -13
  398. package/dist/event-store/index.js +7 -9
  399. package/dist/event-store/provenance-append.js +1 -1
  400. package/dist/event-store/rebuild-dead-letter.js +4 -2
  401. package/dist/event-store/snapshot.js +4 -3
  402. package/dist/event-store/stream-scope.d.ts +2 -0
  403. package/dist/event-store/stream-scope.js +6 -0
  404. package/dist/event-store/upcaster-dead-letter.js +4 -2
  405. package/dist/event-store/upcaster.d.ts +2 -1
  406. package/dist/files/action-form-upload.d.ts +2 -1
  407. package/dist/files/action-form-upload.js +1 -1
  408. package/dist/files/assert-file-refs-belong-to-tenant.d.ts +2 -1
  409. package/dist/files/assert-file-refs-belong-to-tenant.js +1 -1
  410. package/dist/files/bind-pending-file-refs.d.ts +2 -1
  411. package/dist/files/bind-pending-file-refs.js +2 -1
  412. package/dist/files/bind-referenced-files.write.js +1 -1
  413. package/dist/files/create-file-ref-from-bytes.d.ts +6 -3
  414. package/dist/files/create-file-ref-from-bytes.js +6 -3
  415. package/dist/files/create-file-ref.d.ts +6 -2
  416. package/dist/files/create-file-ref.js +13 -4
  417. package/dist/files/dispose-removed-file-refs.d.ts +2 -1
  418. package/dist/files/dispose-removed-file-refs.js +1 -1
  419. package/dist/files/feature.js +2 -2
  420. package/dist/files/file-handle.js +1 -1
  421. package/dist/files/file-routes.d.ts +3 -1
  422. package/dist/files/file-routes.js +41 -4
  423. package/dist/files/index.d.ts +11 -13
  424. package/dist/files/index.js +5 -7
  425. package/dist/files/load-save-file-refs.d.ts +2 -1
  426. package/dist/files/load-save-file-refs.js +1 -1
  427. package/dist/files/provider-resolver.d.ts +6 -4
  428. package/dist/files/provider-resolver.js +5 -5
  429. package/dist/files/record-write-check.d.ts +6 -0
  430. package/dist/files/record-write-check.js +13 -0
  431. package/dist/files/storage-tracking.js +4 -2
  432. package/dist/files/sweep-orphaned-uploads.d.ts +1 -1
  433. package/dist/files/sweep-orphaned-uploads.js +1 -1
  434. package/dist/files/upload-ledger.d.ts +2 -2
  435. package/dist/files/upload-ledger.js +4 -4
  436. package/dist/i18n/index.d.ts +2 -8
  437. package/dist/i18n/index.js +1 -1
  438. package/dist/i18n/internals.d.ts +7 -0
  439. package/dist/i18n/internals.js +1 -0
  440. package/dist/i18n/required-surface-keys.d.ts +4 -1
  441. package/dist/i18n/required-surface-keys.js +7 -2
  442. package/dist/internal/row-level-security.d.ts +3 -0
  443. package/dist/internal/row-level-security.js +3 -0
  444. package/dist/internal/stack-support.d.ts +1 -1
  445. package/dist/internal/stack-support.js +1 -1
  446. package/dist/internal/testing.d.ts +1 -0
  447. package/dist/internal/testing.js +10 -6
  448. package/dist/jobs/index.d.ts +1 -1
  449. package/dist/jobs/job-append-event.d.ts +12 -0
  450. package/dist/jobs/job-append-event.js +30 -0
  451. package/dist/jobs/job-runner-context.d.ts +2 -2
  452. package/dist/jobs/job-runner-context.js +46 -16
  453. package/dist/jobs/job-runner-execution.d.ts +1 -1
  454. package/dist/jobs/job-runner-execution.js +6 -4
  455. package/dist/jobs/job-runner-gates.d.ts +1 -1
  456. package/dist/jobs/job-runner-gates.js +0 -1
  457. package/dist/jobs/job-runner-helpers.d.ts +11 -4
  458. package/dist/jobs/job-runner-helpers.js +10 -1
  459. package/dist/jobs/job-runner-scope.d.ts +5 -2
  460. package/dist/jobs/job-runner-scope.js +6 -6
  461. package/dist/jobs/job-runner-types.d.ts +2 -1
  462. package/dist/jobs/job-runner.js +22 -6
  463. package/dist/jobs/max-per-tenant.d.ts +1 -1
  464. package/dist/logging/index.d.ts +1 -2
  465. package/dist/logging/index.js +1 -1
  466. package/dist/logging/pino-logger.js +1 -1
  467. package/dist/logging/utils.d.ts +1 -0
  468. package/dist/logging/utils.js +6 -0
  469. package/dist/migrations/index.d.ts +3 -3
  470. package/dist/migrations/index.js +3 -3
  471. package/dist/migrations/pending-rebuilds.d.ts +1 -1
  472. package/dist/migrations/pending-rebuilds.js +1 -1
  473. package/dist/migrations/pii-event-backfill.js +4 -1
  474. package/dist/observability/escape-hatch-report.d.ts +2 -1
  475. package/dist/observability/escape-hatch-report.js +9 -2
  476. package/dist/observability/index.d.ts +7 -15
  477. package/dist/observability/index.js +4 -12
  478. package/dist/observability/metric-validator.js +1 -1
  479. package/dist/observability/metrics-handle.d.ts +0 -1
  480. package/dist/observability/metrics-handle.js +2 -15
  481. package/dist/observability/recording-tracer.d.ts +1 -2
  482. package/dist/observability/recording-tracer.js +0 -6
  483. package/dist/observability/sensitive-filter.d.ts +0 -2
  484. package/dist/observability/sensitive-filter.js +0 -29
  485. package/dist/pipeline/active-membership.d.ts +2 -1
  486. package/dist/pipeline/active-membership.js +6 -2
  487. package/dist/pipeline/after-rollback-sink.d.ts +6 -0
  488. package/dist/pipeline/after-rollback-sink.js +32 -0
  489. package/dist/pipeline/append-event-core.d.ts +2 -1
  490. package/dist/pipeline/append-event-core.js +2 -2
  491. package/dist/pipeline/attach-outside-transaction.d.ts +3 -0
  492. package/dist/pipeline/attach-outside-transaction.js +13 -0
  493. package/dist/pipeline/auth-claims-resolver.d.ts +2 -1
  494. package/dist/pipeline/cascade-handler.d.ts +2 -1
  495. package/dist/pipeline/cascade-handler.js +3 -2
  496. package/dist/pipeline/config-accessor-factory.d.ts +1 -1
  497. package/dist/pipeline/config-accessor-factory.js +1 -1
  498. package/dist/pipeline/context-services.d.ts +56 -0
  499. package/dist/pipeline/context-services.js +73 -0
  500. package/dist/pipeline/dispatch-batch.d.ts +2 -1
  501. package/dist/pipeline/dispatch-batch.js +39 -19
  502. package/dist/pipeline/dispatch-query.js +5 -4
  503. package/dist/pipeline/dispatch-scope.d.ts +6 -0
  504. package/dist/pipeline/dispatch-scope.js +27 -0
  505. package/dist/pipeline/dispatch-shared.d.ts +13 -9
  506. package/dist/pipeline/dispatch-shared.js +75 -194
  507. package/dist/pipeline/dispatch-stream.js +8 -4
  508. package/dist/pipeline/dispatch-write.d.ts +2 -1
  509. package/dist/pipeline/dispatch-write.js +10 -8
  510. package/dist/pipeline/dispatcher-utils.d.ts +3 -1
  511. package/dist/pipeline/dispatcher-utils.js +8 -2
  512. package/dist/pipeline/dispatcher.d.ts +3 -2
  513. package/dist/pipeline/dispatcher.js +4 -3
  514. package/dist/pipeline/event-consumer-state.d.ts +0 -1
  515. package/dist/pipeline/event-dispatcher-delivery.d.ts +1 -1
  516. package/dist/pipeline/event-dispatcher-delivery.js +7 -3
  517. package/dist/pipeline/event-dispatcher.d.ts +3 -2
  518. package/dist/pipeline/event-dispatcher.js +13 -12
  519. package/dist/pipeline/event-retention.js +59 -56
  520. package/dist/pipeline/handler-access-error.js +2 -1
  521. package/dist/pipeline/handler-context-auth.d.ts +5 -6
  522. package/dist/pipeline/handler-context-auth.js +7 -4
  523. package/dist/pipeline/handler-context-config.d.ts +2 -5
  524. package/dist/pipeline/handler-context-config.js +2 -2
  525. package/dist/pipeline/handler-context-db.d.ts +32 -7
  526. package/dist/pipeline/handler-context-db.js +26 -17
  527. package/dist/pipeline/handler-context-dispatch.d.ts +14 -6
  528. package/dist/pipeline/handler-context-dispatch.js +18 -5
  529. package/dist/pipeline/handler-context-events.d.ts +22 -38
  530. package/dist/pipeline/handler-context-events.js +42 -35
  531. package/dist/pipeline/handler-context-member-resolution.d.ts +2 -0
  532. package/dist/pipeline/handler-context-member-resolution.js +110 -0
  533. package/dist/pipeline/handler-context-notify.d.ts +3 -2
  534. package/dist/pipeline/handler-context-notify.js +1 -1
  535. package/dist/pipeline/handler-context-observability.d.ts +2 -4
  536. package/dist/pipeline/handler-context-observability.js +7 -5
  537. package/dist/pipeline/handler-context-phase-denials.d.ts +11 -0
  538. package/dist/pipeline/handler-context-phase-denials.js +98 -0
  539. package/dist/pipeline/handler-context-scope.d.ts +7 -10
  540. package/dist/pipeline/handler-context-scope.js +18 -20
  541. package/dist/pipeline/index.d.ts +9 -21
  542. package/dist/pipeline/index.js +5 -7
  543. package/dist/pipeline/irreversible-operation-gate.d.ts +1 -1
  544. package/dist/pipeline/irreversible-operation-gate.js +2 -2
  545. package/dist/pipeline/lifecycle-pipeline.d.ts +8 -7
  546. package/dist/pipeline/lifecycle-pipeline.js +9 -15
  547. package/dist/pipeline/member-read-only-transaction.js +11 -3
  548. package/dist/pipeline/member-reader.d.ts +1 -1
  549. package/dist/pipeline/member-reader.js +2 -2
  550. package/dist/pipeline/msp-rebuild.js +5 -3
  551. package/dist/pipeline/multi-stream-apply-context.js +3 -2
  552. package/dist/pipeline/notify-scope.d.ts +2 -1
  553. package/dist/pipeline/pre-handler-gates.d.ts +2 -1
  554. package/dist/pipeline/pre-transaction-reservations.d.ts +3 -3
  555. package/dist/pipeline/pre-transaction-reservations.js +9 -7
  556. package/dist/pipeline/projection-rebuild.js +12 -5
  557. package/dist/pipeline/projection-state.d.ts +0 -6
  558. package/dist/pipeline/projection-state.js +0 -5
  559. package/dist/pipeline/projections-runner.d.ts +2 -1
  560. package/dist/pipeline/projections-runner.js +10 -6
  561. package/dist/pipeline/system-hooks.d.ts +6 -2
  562. package/dist/pipeline/system-hooks.js +61 -10
  563. package/dist/pipeline/system-identity-switch.d.ts +4 -2
  564. package/dist/pipeline/system-identity-switch.js +51 -36
  565. package/dist/pipeline/typed-append-event.d.ts +2 -0
  566. package/dist/pipeline/typed-append-event.js +4 -0
  567. package/dist/pipeline/write-origin.js +2 -2
  568. package/dist/pipeline/write-result-masking.d.ts +1 -1
  569. package/dist/pipeline/write-result-masking.js +13 -10
  570. package/dist/random/index.d.ts +1 -2
  571. package/dist/random/index.js +1 -2
  572. package/dist/rate-limit/bucket.d.ts +2 -1
  573. package/dist/rate-limit/middleware.js +2 -1
  574. package/dist/redis/index.d.ts +3 -4
  575. package/dist/redis/index.js +2 -2
  576. package/dist/schema-cli/apply-command.js +5 -2
  577. package/dist/schema-cli/baseline-command.js +7 -2
  578. package/dist/schema-cli/generate-command.js +7 -9
  579. package/dist/schema-cli/shared.d.ts +4 -0
  580. package/dist/schema-cli/shared.js +21 -2
  581. package/dist/schema-cli/status-command.js +8 -2
  582. package/dist/schema-cli/validate-command.js +52 -4
  583. package/dist/schema-cli.d.ts +0 -1
  584. package/dist/search/configure-tenant-index.d.ts +1 -3
  585. package/dist/search/configure-tenant-index.js +0 -4
  586. package/dist/search/index.d.ts +1 -4
  587. package/dist/search/index.js +0 -2
  588. package/dist/search/meilisearch-adapter-internals.d.ts +8 -0
  589. package/dist/search/meilisearch-adapter-internals.js +9 -0
  590. package/dist/search/meilisearch-adapter.d.ts +1 -8
  591. package/dist/search/meilisearch-adapter.js +6 -7
  592. package/dist/search/meilisearch-peer.d.ts +2 -0
  593. package/dist/search/meilisearch-peer.js +5 -0
  594. package/dist/search/reindex-entity.js +107 -91
  595. package/dist/secrets/index.d.ts +3 -4
  596. package/dist/secrets/index.js +2 -3
  597. package/dist/seeding/index.d.ts +2 -2
  598. package/dist/seeding/index.js +1 -2
  599. package/dist/time/index.d.ts +2 -2
  600. package/dist/time/index.js +1 -1
  601. package/dist/time/tz-context.d.ts +0 -5
  602. package/dist/time/tz-context.js +0 -9
  603. package/dist/ui-types/index.d.ts +8 -11
  604. package/dist/ui-types/index.js +3 -3
  605. package/dist/upgrade-changelog.d.ts +3 -0
  606. package/dist/upgrade-changelog.js +18 -0
  607. package/dist/upgrade-cli-internals.d.ts +8 -0
  608. package/dist/upgrade-cli-internals.js +63 -0
  609. package/dist/upgrade-cli.d.ts +1 -18
  610. package/dist/upgrade-cli.js +29 -137
  611. package/dist/upgrade-marker-parse.d.ts +32 -0
  612. package/dist/upgrade-marker-parse.js +73 -0
  613. package/dist/utils/import-optional-peer.d.ts +6 -0
  614. package/dist/utils/import-optional-peer.js +19 -0
  615. package/dist/utils/index.d.ts +1 -4
  616. package/dist/utils/index.js +1 -4
  617. package/package.json +27 -20
  618. package/src/changes.json +451 -0
  619. package/dist/crypto/request-kms-cache.d.ts +0 -8
  620. package/dist/crypto/request-kms-cache.js +0 -21
  621. package/dist/engine/codemod/index.d.ts +0 -2
  622. package/dist/engine/codemod/index.js +0 -1
  623. package/dist/engine/codemod/pipeline-codemod.d.ts +0 -50
  624. package/dist/engine/codemod/pipeline-codemod.js +0 -536
  625. package/dist/engine/feature-ast/entity-field-types.d.ts +0 -13
  626. package/dist/engine/feature-ast/entity-field-types.js +0 -35
  627. package/dist/engine/feature-ast/extractors/ai-steps.d.ts +0 -6
  628. package/dist/engine/feature-ast/extractors/ai-steps.js +0 -254
  629. package/dist/engine/feature-ast/extractors/events.d.ts +0 -5
  630. package/dist/engine/feature-ast/extractors/events.js +0 -275
  631. package/dist/engine/feature-ast/extractors/handlers.d.ts +0 -24
  632. package/dist/engine/feature-ast/extractors/handlers.js +0 -358
  633. package/dist/engine/feature-ast/extractors/hooks.d.ts +0 -24
  634. package/dist/engine/feature-ast/extractors/hooks.js +0 -248
  635. package/dist/engine/feature-ast/extractors/index.d.ts +0 -14
  636. package/dist/engine/feature-ast/extractors/index.js +0 -13
  637. package/dist/engine/feature-ast/extractors/jobs-routes.d.ts +0 -7
  638. package/dist/engine/feature-ast/extractors/jobs-routes.js +0 -145
  639. package/dist/engine/feature-ast/extractors/projections-screens.d.ts +0 -10
  640. package/dist/engine/feature-ast/extractors/projections-screens.js +0 -195
  641. package/dist/engine/feature-ast/extractors/resolve-import.d.ts +0 -21
  642. package/dist/engine/feature-ast/extractors/resolve-import.js +0 -180
  643. package/dist/engine/feature-ast/extractors/round1.d.ts +0 -10
  644. package/dist/engine/feature-ast/extractors/round1.js +0 -81
  645. package/dist/engine/feature-ast/extractors/round2.d.ts +0 -7
  646. package/dist/engine/feature-ast/extractors/round2.js +0 -191
  647. package/dist/engine/feature-ast/extractors/round3.d.ts +0 -23
  648. package/dist/engine/feature-ast/extractors/round3.js +0 -292
  649. package/dist/engine/feature-ast/extractors/round5.d.ts +0 -9
  650. package/dist/engine/feature-ast/extractors/round5.js +0 -68
  651. package/dist/engine/feature-ast/extractors/round6.d.ts +0 -4
  652. package/dist/engine/feature-ast/extractors/round6.js +0 -17
  653. package/dist/engine/feature-ast/extractors/shared.d.ts +0 -94
  654. package/dist/engine/feature-ast/extractors/shared.js +0 -343
  655. package/dist/engine/feature-ast/index.d.ts +0 -16
  656. package/dist/engine/feature-ast/index.js +0 -10
  657. package/dist/engine/feature-ast/parse.d.ts +0 -31
  658. package/dist/engine/feature-ast/parse.js +0 -483
  659. package/dist/engine/feature-ast/patch.d.ts +0 -210
  660. package/dist/engine/feature-ast/patch.js +0 -610
  661. package/dist/engine/feature-ast/patcher.d.ts +0 -217
  662. package/dist/engine/feature-ast/patcher.js +0 -281
  663. package/dist/engine/feature-ast/pattern-change-schema.d.ts +0 -1476
  664. package/dist/engine/feature-ast/pattern-change-schema.js +0 -1226
  665. package/dist/engine/feature-ast/pattern-id-matchers.d.ts +0 -7
  666. package/dist/engine/feature-ast/pattern-id-matchers.js +0 -210
  667. package/dist/engine/feature-ast/patterns.d.ts +0 -318
  668. package/dist/engine/feature-ast/patterns.js +0 -106
  669. package/dist/engine/feature-ast/render.d.ts +0 -47
  670. package/dist/engine/feature-ast/render.js +0 -662
  671. package/dist/engine/feature-ast/source-location.d.ts +0 -17
  672. package/dist/engine/feature-ast/source-location.js +0 -27
  673. package/dist/engine/pattern-library/index.d.ts +0 -2
  674. package/dist/engine/pattern-library/index.js +0 -3
  675. package/dist/engine/pattern-library/library.d.ts +0 -14
  676. package/dist/engine/pattern-library/library.js +0 -93
  677. package/dist/engine/pattern-library/mixed-schemas.d.ts +0 -16
  678. package/dist/engine/pattern-library/mixed-schemas.js +0 -559
  679. package/dist/engine/pattern-library/opaque-schemas.d.ts +0 -7
  680. package/dist/engine/pattern-library/opaque-schemas.js +0 -115
  681. package/dist/engine/pattern-library/shared-fields.d.ts +0 -122
  682. package/dist/engine/pattern-library/shared-fields.js +0 -88
  683. package/dist/engine/pattern-library/static-schemas.d.ts +0 -20
  684. package/dist/engine/pattern-library/static-schemas.js +0 -478
  685. package/dist/engine/pattern-library/types.d.ts +0 -158
  686. package/dist/engine/pattern-library/types.js +0 -36
  687. package/dist/engine/provider-plugin-context.d.ts +0 -3
  688. package/dist/engine/provider-plugin-context.js +0 -28
  689. package/dist/engine/resolve-config-or-param.d.ts +0 -18
  690. package/dist/engine/resolve-config-or-param.js +0 -76
  691. package/src/scripts/codemod/README.md +0 -187
  692. package/src/scripts/codemod/codemod-support.ts +0 -334
  693. package/src/scripts/codemod/collect-source-files.ts +0 -48
  694. package/src/scripts/codemod/crypto-shredding-testing-move.ts +0 -119
  695. package/src/scripts/codemod/db-factory.ts +0 -810
  696. package/src/scripts/codemod/feature-factory.ts +0 -429
  697. package/src/scripts/codemod/feature-layout.ts +0 -424
  698. package/src/scripts/codemod/import-extensions.ts +0 -118
  699. package/src/scripts/codemod/migrate-cross-tenant.ts +0 -328
  700. package/src/scripts/codemod/migrate-db-raw.ts +0 -401
  701. package/src/scripts/codemod/migrate-open-to-all.ts +0 -235
  702. package/src/scripts/codemod/object-form.ts +0 -746
  703. package/src/scripts/codemod/package-merge.ts +0 -299
  704. package/src/scripts/codemod/pii-personal-migration.ts +0 -816
  705. package/src/scripts/codemod/remove-engine-payload-casts.ts +0 -318
  706. package/src/scripts/codemod/s3-imports.ts +0 -236
  707. package/src/scripts/codemod/tenant-db-options.ts +0 -454
  708. package/src/scripts/codemod/testing-injection.ts +0 -215
  709. package/src/scripts/codemod/testing-move-targets.ts +0 -161
  710. package/src/scripts/codemod/testing-move.ts +0 -542
  711. package/src/scripts/codemod/unprocessable-error-details-reason.ts +0 -411
@@ -1,94 +0,0 @@
1
- import type { CallExpression, ObjectLiteralExpression } from "ts-morph";
2
- import { Node } from "ts-morph";
3
- import type { ParseError } from "../parse.ts";
4
- export type ExtractOutput<TPattern> = {
5
- readonly kind: "pattern";
6
- readonly pattern: TPattern;
7
- } | {
8
- readonly kind: "error";
9
- readonly error: ParseError;
10
- };
11
- export declare function ok<TPattern>(pattern: TPattern): ExtractOutput<TPattern>;
12
- export declare function fail(methodName: string, source: ParseError["source"], reason: string): {
13
- readonly kind: "error";
14
- readonly error: ParseError;
15
- };
16
- export declare function readStringLiteralArgs(call: CallExpression): readonly string[] | undefined;
17
- export declare function readBooleanProperty(objectLiteral: Node, propertyName: string): boolean | undefined;
18
- /**
19
- * Marks a value the parser could not resolve into a literal (an Identifier
20
- * reference, a call expression, ...) while preserving its exact source text.
21
- * `renderValue` re-emits `__raw` verbatim instead of re-serializing the
22
- * value, so round-tripping a reference like `eventEntity` never expands it
23
- * into an inlined object literal.
24
- */
25
- export type RawRefSentinel = {
26
- readonly __raw: string;
27
- };
28
- export declare function isRawRefSentinel(value: unknown): value is RawRefSentinel;
29
- export declare function containsRawRefSentinel(value: unknown): boolean;
30
- export type ReadDataLiteralOptions = {
31
- /**
32
- * Keep arrow/function-expression values as `__raw` sentinels instead of
33
- * failing the whole read. Only for pattern options that are code by
34
- * nature (useExtension); data-only definitions (entity, nav) must still
35
- * reject functions.
36
- */
37
- readonly functionValuesAsRaw?: boolean;
38
- };
39
- export declare function readDataLiteralNode(node: Node, readOptions?: ReadDataLiteralOptions): unknown;
40
- /**
41
- * A node's literal string value, or the raw-ref sentinel when it resolves to
42
- * an unresolvable identifier/factory-call/member-access (see
43
- * readDataLiteralNode). undefined for anything else (number, boolean, ...).
44
- */
45
- export declare function readStringOrRaw(node: Node): string | RawRefSentinel | undefined;
46
- /**
47
- * Like readStringLiteralArgs, but an argument that resolves to a raw-ref
48
- * sentinel is kept as that sentinel instead of failing the whole call. Used
49
- * where a value stands in for a single name/key and inlining its resolved
50
- * string would corrupt the render roundtrip (e.g. `r.requires(someFeature.name)`).
51
- */
52
- export declare function readStringOrRawArgs(call: CallExpression): readonly (string | RawRefSentinel)[] | undefined;
53
- export { isPlainObject } from "../../../utils/is-plain-object.ts";
54
- export declare function readPropertyKey(propAssign: import("ts-morph").PropertyAssignment): string;
55
- /**
56
- * Resolved name plus, when the source node was an identifier rather than
57
- * a string literal, the identifier's exact source text. Mirrors
58
- * `RawRefSentinel`'s round-trip contract: extractors that need to re-emit
59
- * the original reference (not its resolved value) keep `raw` alongside
60
- * `value`; extractors that only need the string keep using
61
- * `readNameLiteral`, which discards it.
62
- */
63
- export type NameLiteralRef = {
64
- readonly value: string;
65
- readonly raw?: string;
66
- };
67
- /**
68
- * Like `readNameLiteral`, but for callers that must preserve an
69
- * identifier-authored name across a render → parse round-trip.
70
- * `raw` is populated only when the node resolved via an identifier — a
71
- * string-literal node has nothing worth preserving beyond its value, and
72
- * setting `raw` for it too would make `JSON.stringify(value)` and
73
- * `node.getText()` diverge on quote style.
74
- */
75
- export declare function readNameLiteralRef(node: Node): NameLiteralRef | undefined;
76
- /**
77
- * A node's string value when it's a string literal, or when it's a bare
78
- * Identifier that resolves to one via a `const X = "..."` declaration
79
- * (same-file or imported) — the pattern used throughout the framework's
80
- * own bundled-features for registrar-call names (`EXT_TENANT_DATA`,
81
- * `TENANT_SECRET_READ_EVENT`, ...) instead of repeating string literals.
82
- * undefined for anything unresolvable (factory call, member access,
83
- * external/ambient identifier) — callers keep their existing ParseError
84
- * fallback, no crash. Discards the original identifier text; use
85
- * `readNameLiteralRef` when the caller must preserve it for rendering.
86
- */
87
- export declare function readNameLiteral(node: Node): string | undefined;
88
- export declare function readNameOrRef(node: Node): string | undefined;
89
- /** Resolve an inline object literal or a same-file `const` that initializes to one. */
90
- export declare function resolveSameFileObjectLiteral(node: Node): ObjectLiteralExpression | undefined;
91
- export declare function readObjectPropertyInitializer(obj: ObjectLiteralExpression, propertyName: string): import("ts-morph").Expression | undefined;
92
- export declare function findFunctionLiteral(node: Node): Node | undefined;
93
- export declare function readNameOrRefOrList(node: Node): string | readonly string[] | undefined;
94
- export declare function readVarargsOrArrayProp(call: CallExpression, arrayPropName: "features" | "keys"): readonly (string | RawRefSentinel)[] | undefined;
@@ -1,343 +0,0 @@
1
- import { Node, SyntaxKind } from "ts-morph";
2
- import { isPlainObject } from "../../../utils/is-plain-object.js";
3
- import { findImportBindingForLocalName, findScopedVariableDeclaration, resolveExportedVariable, resolveModuleFile, } from "./resolve-import.js";
4
- export function ok(pattern) {
5
- return { kind: "pattern", pattern };
6
- }
7
- export function fail(methodName, source, reason) {
8
- return { kind: "error", error: { methodName, source, reason } };
9
- }
10
- export function readStringLiteralArgs(call) {
11
- const out = [];
12
- for (const arg of call.getArguments()) {
13
- const literal = arg.asKind(SyntaxKind.StringLiteral);
14
- if (!literal)
15
- return undefined;
16
- out.push(literal.getLiteralValue());
17
- }
18
- return out;
19
- }
20
- export function readBooleanProperty(objectLiteral, propertyName) {
21
- const obj = objectLiteral.asKind(SyntaxKind.ObjectLiteralExpression);
22
- if (!obj)
23
- return undefined;
24
- const prop = obj.getProperty(propertyName);
25
- if (!prop)
26
- return undefined;
27
- const assignment = prop.asKind(SyntaxKind.PropertyAssignment);
28
- if (!assignment)
29
- return undefined;
30
- const initializer = assignment.getInitializer();
31
- if (!initializer)
32
- return undefined;
33
- const kind = initializer.getKind();
34
- if (kind === SyntaxKind.TrueKeyword)
35
- return true;
36
- if (kind === SyntaxKind.FalseKeyword)
37
- return false;
38
- return undefined;
39
- }
40
- export function isRawRefSentinel(value) {
41
- return (value !== null &&
42
- typeof value === "object" &&
43
- !Array.isArray(value) &&
44
- "__raw" in value &&
45
- typeof value.__raw === "string");
46
- }
47
- // Deep check over arrays/plain objects, the only container shapes
48
- // readDataLiteralNode produces.
49
- export function containsRawRefSentinel(value) {
50
- if (isRawRefSentinel(value))
51
- return true;
52
- if (Array.isArray(value))
53
- return value.some(containsRawRefSentinel);
54
- if (isPlainObject(value))
55
- return Object.values(value).some(containsRawRefSentinel);
56
- return false;
57
- }
58
- export function readDataLiteralNode(node, readOptions = {}) {
59
- const kind = node.getKind();
60
- switch (kind) {
61
- case SyntaxKind.StringLiteral:
62
- return node.asKindOrThrow(SyntaxKind.StringLiteral).getLiteralValue();
63
- case SyntaxKind.NoSubstitutionTemplateLiteral:
64
- return node.asKindOrThrow(SyntaxKind.NoSubstitutionTemplateLiteral).getLiteralValue();
65
- case SyntaxKind.NumericLiteral:
66
- return Number(node.asKindOrThrow(SyntaxKind.NumericLiteral).getText());
67
- case SyntaxKind.TrueKeyword:
68
- return true;
69
- case SyntaxKind.FalseKeyword:
70
- return false;
71
- case SyntaxKind.NullKeyword:
72
- return null;
73
- case SyntaxKind.PrefixUnaryExpression: {
74
- const expr = node.asKindOrThrow(SyntaxKind.PrefixUnaryExpression);
75
- if (expr.getOperatorToken() !== SyntaxKind.MinusToken)
76
- return undefined;
77
- const inner = readDataLiteralNode(expr.getOperand(), readOptions);
78
- if (typeof inner !== "number")
79
- return undefined;
80
- return -inner;
81
- }
82
- case SyntaxKind.ArrayLiteralExpression: {
83
- const arr = node.asKindOrThrow(SyntaxKind.ArrayLiteralExpression);
84
- const out = [];
85
- for (const el of arr.getElements()) {
86
- const value = readDataLiteralNode(el, readOptions);
87
- if (value === undefined)
88
- return undefined;
89
- out.push(value);
90
- }
91
- return out;
92
- }
93
- case SyntaxKind.ObjectLiteralExpression: {
94
- const obj = node.asKindOrThrow(SyntaxKind.ObjectLiteralExpression);
95
- const out = {};
96
- for (const prop of obj.getProperties()) {
97
- const propAssign = prop.asKind(SyntaxKind.PropertyAssignment);
98
- if (!propAssign)
99
- return undefined;
100
- const initializer = propAssign.getInitializer();
101
- if (!initializer)
102
- return undefined;
103
- const value = readDataLiteralNode(initializer, readOptions);
104
- if (value === undefined)
105
- return undefined;
106
- out[readPropertyKey(propAssign)] = value;
107
- }
108
- return out;
109
- }
110
- case SyntaxKind.AsExpression:
111
- return readDataLiteralNode(node.asKindOrThrow(SyntaxKind.AsExpression).getExpression(), readOptions);
112
- case SyntaxKind.SatisfiesExpression:
113
- return readDataLiteralNode(node.asKindOrThrow(SyntaxKind.SatisfiesExpression).getExpression(), readOptions);
114
- case SyntaxKind.ParenthesizedExpression:
115
- return readDataLiteralNode(node.asKindOrThrow(SyntaxKind.ParenthesizedExpression).getExpression(), readOptions);
116
- case SyntaxKind.Identifier:
117
- case SyntaxKind.CallExpression:
118
- case SyntaxKind.PropertyAccessExpression:
119
- // Unresolvable reference (const identifier, factory call, member access).
120
- // Keep the exact source text so renderValue can re-emit it verbatim —
121
- // resolving/inlining it would silently rewrite the source on the next
122
- // parse->render roundtrip (see readDataLiteralNode doc above).
123
- return { __raw: node.getText() };
124
- case SyntaxKind.ArrowFunction:
125
- case SyntaxKind.FunctionExpression:
126
- return readOptions.functionValuesAsRaw
127
- ? { __raw: node.getText() }
128
- : undefined;
129
- default:
130
- return undefined;
131
- }
132
- }
133
- /**
134
- * A node's literal string value, or the raw-ref sentinel when it resolves to
135
- * an unresolvable identifier/factory-call/member-access (see
136
- * readDataLiteralNode). undefined for anything else (number, boolean, ...).
137
- */
138
- export function readStringOrRaw(node) {
139
- const value = readDataLiteralNode(node);
140
- if (typeof value === "string")
141
- return value;
142
- if (isRawRefSentinel(value))
143
- return value;
144
- return undefined;
145
- }
146
- /**
147
- * Like readStringLiteralArgs, but an argument that resolves to a raw-ref
148
- * sentinel is kept as that sentinel instead of failing the whole call. Used
149
- * where a value stands in for a single name/key and inlining its resolved
150
- * string would corrupt the render roundtrip (e.g. `r.requires(someFeature.name)`).
151
- */
152
- export function readStringOrRawArgs(call) {
153
- const out = [];
154
- for (const arg of call.getArguments()) {
155
- const value = readStringOrRaw(arg);
156
- if (value === undefined)
157
- return undefined;
158
- out.push(value);
159
- }
160
- return out;
161
- }
162
- export { isPlainObject } from "../../../utils/is-plain-object.js";
163
- export function readPropertyKey(propAssign) {
164
- const nameNode = propAssign.getNameNode();
165
- const literal = nameNode.asKind(SyntaxKind.StringLiteral);
166
- if (literal)
167
- return literal.getLiteralValue();
168
- return propAssign.getName();
169
- }
170
- function unwrapLiteralInitializer(node) {
171
- const literal = node.asKind(SyntaxKind.StringLiteral) ?? node.asKind(SyntaxKind.NoSubstitutionTemplateLiteral);
172
- if (literal)
173
- return literal.getLiteralValue();
174
- const asExpr = node.asKind(SyntaxKind.AsExpression);
175
- if (asExpr)
176
- return unwrapLiteralInitializer(asExpr.getExpression());
177
- const satisfiesExpr = node.asKind(SyntaxKind.SatisfiesExpression);
178
- if (satisfiesExpr)
179
- return unwrapLiteralInitializer(satisfiesExpr.getExpression());
180
- const paren = node.asKind(SyntaxKind.ParenthesizedExpression);
181
- if (paren)
182
- return unwrapLiteralInitializer(paren.getExpression());
183
- return undefined;
184
- }
185
- // `export declare const NAME: "value"` in a .d.ts has no initializer, only a
186
- // string-literal type.
187
- function readDeclaredStringLiteralType(decl) {
188
- const typeNode = decl.getTypeNode();
189
- if (!typeNode || !Node.isLiteralTypeNode(typeNode))
190
- return undefined;
191
- const literal = typeNode.getLiteral();
192
- return Node.isStringLiteral(literal) ? literal.getLiteralValue() : undefined;
193
- }
194
- /**
195
- * Resolves a bare Identifier to the string value of its declaration's
196
- * initializer (`export const EXT_TENANT_DATA = "tenant-data" as const`),
197
- * following imports syntactically across files and packages against a
198
- * real-filesystem Project without ever building a TypeScript program (see
199
- * resolve-import.ts). Only descends into VariableDeclaration initializers; a
200
- * function/class/type definition or an unresolvable import yields undefined,
201
- * never a throw.
202
- */
203
- function resolveIdentifierToStringLiteral(identifier) {
204
- const id = identifier.asKind(SyntaxKind.Identifier);
205
- if (!id)
206
- return undefined;
207
- const name = id.getText();
208
- const scoped = findScopedVariableDeclaration(id, name);
209
- if (scoped) {
210
- const init = scoped.getInitializer();
211
- return init ? unwrapLiteralInitializer(init) : undefined;
212
- }
213
- const binding = findImportBindingForLocalName(id.getSourceFile(), name);
214
- if (!binding)
215
- return undefined;
216
- const targetFile = resolveModuleFile(id.getSourceFile(), binding.moduleSpecifier, {
217
- allowDeclarationFiles: true,
218
- });
219
- if (!targetFile)
220
- return undefined;
221
- const decl = resolveExportedVariable(targetFile, binding.importedName);
222
- if (!decl)
223
- return undefined;
224
- const init = decl.getInitializer();
225
- if (init)
226
- return unwrapLiteralInitializer(init);
227
- return readDeclaredStringLiteralType(decl);
228
- }
229
- /**
230
- * Like `readNameLiteral`, but for callers that must preserve an
231
- * identifier-authored name across a render → parse round-trip.
232
- * `raw` is populated only when the node resolved via an identifier — a
233
- * string-literal node has nothing worth preserving beyond its value, and
234
- * setting `raw` for it too would make `JSON.stringify(value)` and
235
- * `node.getText()` diverge on quote style.
236
- */
237
- export function readNameLiteralRef(node) {
238
- const literal = node.asKind(SyntaxKind.StringLiteral);
239
- if (literal)
240
- return { value: literal.getLiteralValue() };
241
- const resolved = resolveIdentifierToStringLiteral(node);
242
- if (resolved === undefined)
243
- return undefined;
244
- return { value: resolved, raw: node.getText() };
245
- }
246
- /**
247
- * A node's string value when it's a string literal, or when it's a bare
248
- * Identifier that resolves to one via a `const X = "..."` declaration
249
- * (same-file or imported) — the pattern used throughout the framework's
250
- * own bundled-features for registrar-call names (`EXT_TENANT_DATA`,
251
- * `TENANT_SECRET_READ_EVENT`, ...) instead of repeating string literals.
252
- * undefined for anything unresolvable (factory call, member access,
253
- * external/ambient identifier) — callers keep their existing ParseError
254
- * fallback, no crash. Discards the original identifier text; use
255
- * `readNameLiteralRef` when the caller must preserve it for rendering.
256
- */
257
- export function readNameLiteral(node) {
258
- return readNameLiteralRef(node)?.value;
259
- }
260
- export function readNameOrRef(node) {
261
- const literal = readNameLiteral(node);
262
- if (literal !== undefined)
263
- return literal;
264
- const obj = readDataLiteralNode(node);
265
- if (isPlainObject(obj) && typeof obj["name"] === "string")
266
- return obj["name"];
267
- return undefined;
268
- }
269
- /** Resolve an inline object literal or a same-file `const` that initializes to one. */
270
- export function resolveSameFileObjectLiteral(node) {
271
- const direct = node.asKind(SyntaxKind.ObjectLiteralExpression);
272
- if (direct)
273
- return direct;
274
- const identifier = node.asKind(SyntaxKind.Identifier);
275
- if (!identifier)
276
- return undefined;
277
- const varDecl = findScopedVariableDeclaration(identifier, identifier.getText());
278
- return varDecl?.getInitializer()?.asKind(SyntaxKind.ObjectLiteralExpression);
279
- }
280
- export function readObjectPropertyInitializer(obj, propertyName) {
281
- const prop = obj.getProperty(propertyName);
282
- if (!prop)
283
- return undefined;
284
- const assign = prop.asKind(SyntaxKind.PropertyAssignment);
285
- if (assign)
286
- return assign.getInitializer();
287
- const shorthand = prop.asKind(SyntaxKind.ShorthandPropertyAssignment);
288
- if (shorthand)
289
- return shorthand.getNameNode();
290
- return undefined;
291
- }
292
- export function findFunctionLiteral(node) {
293
- if (node.getKind() === SyntaxKind.ArrowFunction)
294
- return node;
295
- if (node.getKind() === SyntaxKind.FunctionExpression)
296
- return node;
297
- const paren = node.asKind(SyntaxKind.ParenthesizedExpression);
298
- if (paren)
299
- return findFunctionLiteral(paren.getExpression());
300
- return undefined;
301
- }
302
- export function readNameOrRefOrList(node) {
303
- const single = readNameOrRef(node);
304
- if (single)
305
- return single;
306
- const arr = node.asKind(SyntaxKind.ArrayLiteralExpression);
307
- if (!arr)
308
- return undefined;
309
- const out = [];
310
- for (const el of arr.getElements()) {
311
- const name = readNameOrRef(el);
312
- if (!name)
313
- return undefined;
314
- out.push(name);
315
- }
316
- return out;
317
- }
318
- export function readVarargsOrArrayProp(call, arrayPropName) {
319
- const args = call.getArguments();
320
- if (args.length === 1) {
321
- const obj = args[0]?.asKind(SyntaxKind.ObjectLiteralExpression);
322
- if (obj) {
323
- const propInit = obj
324
- .getProperty(arrayPropName)
325
- ?.asKind(SyntaxKind.PropertyAssignment)
326
- ?.getInitializer();
327
- if (propInit) {
328
- const arr = propInit.asKind(SyntaxKind.ArrayLiteralExpression);
329
- if (!arr)
330
- return undefined;
331
- const out = [];
332
- for (const el of arr.getElements()) {
333
- const value = readStringOrRaw(el);
334
- if (value === undefined)
335
- return undefined;
336
- out.push(value);
337
- }
338
- return out;
339
- }
340
- }
341
- }
342
- return readStringOrRawArgs(call);
343
- }
@@ -1,16 +0,0 @@
1
- export type { FormFieldLabel, FormFieldSpec, FormInputType, PatternCategory, PatternFormSchema, } from "../pattern-library/index.ts";
2
- export { getPatternSchema, groupByCategory, PATTERN_LIBRARY } from "../pattern-library/index.ts";
3
- export type { ParseError, ParseResult } from "./parse.ts";
4
- export { parseFeatureFile, parseSourceFile } from "./parse.ts";
5
- export type { HandlerHeaderUpdate, PatternChange, PatternId, QueryHandlerHeaderKey, StreamHandlerHeaderKey, WriteHandlerHeaderKey, } from "./patch.ts";
6
- export { addPattern, applyChanges, removePattern, replacePattern, SINGLETON_KINDS, updatePattern, } from "./patch.ts";
7
- export type { AddAuthClaimsArgs, AddClaimKeyArgs, AddConfigArgs, AddDefineEventArgs, AddEntityArgs, AddHookArgs, AddHttpRouteArgs, AddJobArgs, AddMetricArgs, AddMultiStreamProjectionArgs, AddNavArgs, AddNotificationArgs, AddOptionalRequiresArgs, AddProjectionArgs, AddQueryHandlerArgs, AddReadsConfigArgs, AddReferenceDataArgs, AddRelationArgs, AddRequiresArgs, AddScreenArgs, AddSecretArgs, AddStreamHandlerArgs, AddToggleableArgs, AddTranslationsArgs, AddUseExtensionArgs, AddWorkspaceArgs, AddWriteHandlerArgs, FeaturePatcher, } from "./patcher.ts";
8
- export { createFeaturePatcher } from "./patcher.ts";
9
- export type { PatternChangeIssue, PatternChangesParseResult } from "./pattern-change-schema.ts";
10
- export { parsePatternChanges } from "./pattern-change-schema.ts";
11
- export type { AuthClaimsPattern, ClaimKeyPattern, ConfigPattern, DefineEventPattern, Editability, EntityPattern, ExtendsRegistrarPattern, FeaturePattern, FeaturePatternKind, HookPattern, HttpRoutePattern, JobPattern, MetricPattern, MultiStreamProjectionPattern, NavPattern, NotificationPattern, OptionalRequiresPattern, ProjectionPattern, QueryHandlerPattern, ReadsConfigPattern, ReferenceDataPattern, RelationPattern, RequiresPattern, ScreenPattern, SecretNamespacePattern, SecretPattern, StreamHandlerPattern, SystemScopePattern, ToggleablePattern, TranslationsPattern, UnknownPattern, UseExtensionPattern, WorkspacePattern, WriteHandlerPattern, } from "./patterns.ts";
12
- export { getEditability } from "./patterns.ts";
13
- export type { RenderFeatureFileInput } from "./render.ts";
14
- export { FEATURE_FILE_VERSION, renderFeatureFile, renderPattern, renderValue, VERSION_HEADER, } from "./render.ts";
15
- export type { SourceLocation, SourcePosition } from "./source-location.ts";
16
- export { sourceLocationFromNode } from "./source-location.ts";
@@ -1,10 +0,0 @@
1
- // Public API of the feature-ast module. Consumers (Designer, AI patcher,
2
- // CLI) import exclusively from here.
3
- export { getPatternSchema, groupByCategory, PATTERN_LIBRARY } from "../pattern-library/index.js";
4
- export { parseFeatureFile, parseSourceFile } from "./parse.js";
5
- export { addPattern, applyChanges, removePattern, replacePattern, SINGLETON_KINDS, updatePattern, } from "./patch.js";
6
- export { createFeaturePatcher } from "./patcher.js";
7
- export { parsePatternChanges } from "./pattern-change-schema.js";
8
- export { getEditability } from "./patterns.js";
9
- export { FEATURE_FILE_VERSION, renderFeatureFile, renderPattern, renderValue, VERSION_HEADER, } from "./render.js";
10
- export { sourceLocationFromNode } from "./source-location.js";
@@ -1,31 +0,0 @@
1
- import type { SourceFile } from "ts-morph";
2
- import type { FeaturePattern } from "./patterns.ts";
3
- import { type SourceLocation } from "./source-location.ts";
4
- export type ParseError = {
5
- readonly methodName: string;
6
- readonly source: SourceLocation;
7
- readonly reason: string;
8
- };
9
- export type ParseResult = {
10
- readonly featureName: string | undefined;
11
- readonly patterns: readonly FeaturePattern[];
12
- readonly errors: readonly ParseError[];
13
- };
14
- /**
15
- * Parse the given feature file and return all recognised r.* calls
16
- * as a FeaturePattern list.
17
- *
18
- * Does NOT throw on TypeScript errors — the visitor works on the syntax
19
- * tree, not on the type checker. Files with type errors can still be
20
- * parsed structurally (Designer keeps showing them, AI can suggest fixes).
21
- *
22
- * Throws on filesystem / parse errors that ts-morph cannot recover from.
23
- */
24
- export declare function parseFeatureFile(filePath: string): ParseResult;
25
- /**
26
- * Same as parseFeatureFile, but for SourceFiles already loaded by the
27
- * caller. Useful for tests + the Designer (which keeps its own Project
28
- * instance and avoids re-IO per parse).
29
- */
30
- export declare function parseSourceFile(sourceFile: SourceFile): ParseResult;
31
- export declare function relativePosixPath(fromDirectory: string, filePath: string): string;