@endora-commerce/platform 0.100.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 (657) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -0
  3. package/dist/cli/dispatch.d.ts +146 -0
  4. package/dist/cli/dispatch.d.ts.map +1 -0
  5. package/dist/cli/dispatch.js +259 -0
  6. package/dist/cli/dispatch.js.map +1 -0
  7. package/dist/cli/index.d.ts +58 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +58 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/cli/module-commands.d.ts +118 -0
  12. package/dist/cli/module-commands.d.ts.map +1 -0
  13. package/dist/cli/module-commands.js +120 -0
  14. package/dist/cli/module-commands.js.map +1 -0
  15. package/dist/commands/actor.d.ts +19 -0
  16. package/dist/commands/actor.d.ts.map +1 -0
  17. package/dist/commands/actor.js +45 -0
  18. package/dist/commands/actor.js.map +1 -0
  19. package/dist/commands/audit-from-context.d.ts +24 -0
  20. package/dist/commands/audit-from-context.d.ts.map +1 -0
  21. package/dist/commands/audit-from-context.js +28 -0
  22. package/dist/commands/audit-from-context.js.map +1 -0
  23. package/dist/commands/command-bus.d.ts +40 -0
  24. package/dist/commands/command-bus.d.ts.map +1 -0
  25. package/dist/commands/command-bus.js +46 -0
  26. package/dist/commands/command-bus.js.map +1 -0
  27. package/dist/commands/command.d.ts +76 -0
  28. package/dist/commands/command.d.ts.map +1 -0
  29. package/dist/commands/command.js +2 -0
  30. package/dist/commands/command.js.map +1 -0
  31. package/dist/commands/index.d.ts +65 -0
  32. package/dist/commands/index.d.ts.map +1 -0
  33. package/dist/commands/index.js +57 -0
  34. package/dist/commands/index.js.map +1 -0
  35. package/dist/commands/reversible.d.ts +66 -0
  36. package/dist/commands/reversible.d.ts.map +1 -0
  37. package/dist/commands/reversible.js +41 -0
  38. package/dist/commands/reversible.js.map +1 -0
  39. package/dist/composition/compose-app.d.ts +305 -0
  40. package/dist/composition/compose-app.d.ts.map +1 -0
  41. package/dist/composition/compose-app.js +939 -0
  42. package/dist/composition/compose-app.js.map +1 -0
  43. package/dist/composition/index.d.ts +92 -0
  44. package/dist/composition/index.d.ts.map +1 -0
  45. package/dist/composition/index.js +175 -0
  46. package/dist/composition/index.js.map +1 -0
  47. package/dist/composition/newsletter-token-secret.d.ts +19 -0
  48. package/dist/composition/newsletter-token-secret.d.ts.map +1 -0
  49. package/dist/composition/newsletter-token-secret.js +24 -0
  50. package/dist/composition/newsletter-token-secret.js.map +1 -0
  51. package/dist/composition/process-runs-workers.d.ts +17 -0
  52. package/dist/composition/process-runs-workers.d.ts.map +1 -0
  53. package/dist/composition/process-runs-workers.js +19 -0
  54. package/dist/composition/process-runs-workers.js.map +1 -0
  55. package/dist/db/baseline-migration-inventory.d.ts +15 -0
  56. package/dist/db/baseline-migration-inventory.d.ts.map +1 -0
  57. package/dist/db/baseline-migration-inventory.js +115 -0
  58. package/dist/db/baseline-migration-inventory.js.map +1 -0
  59. package/dist/db/configured-entities.d.ts +74 -0
  60. package/dist/db/configured-entities.d.ts.map +1 -0
  61. package/dist/db/configured-entities.js +20 -0
  62. package/dist/db/configured-entities.js.map +1 -0
  63. package/dist/db/configured-migrations.d.ts +199 -0
  64. package/dist/db/configured-migrations.d.ts.map +1 -0
  65. package/dist/db/configured-migrations.js +181 -0
  66. package/dist/db/configured-migrations.js.map +1 -0
  67. package/dist/db/index.d.ts +54 -0
  68. package/dist/db/index.d.ts.map +1 -0
  69. package/dist/db/index.js +54 -0
  70. package/dist/db/index.js.map +1 -0
  71. package/dist/db/migrate.d.ts +21 -0
  72. package/dist/db/migrate.d.ts.map +1 -0
  73. package/dist/db/migrate.js +48 -0
  74. package/dist/db/migrate.js.map +1 -0
  75. package/dist/db/migration-order.d.ts +159 -0
  76. package/dist/db/migration-order.d.ts.map +1 -0
  77. package/dist/db/migration-order.js +273 -0
  78. package/dist/db/migration-order.js.map +1 -0
  79. package/dist/db/mikro-orm.config.d.ts +51 -0
  80. package/dist/db/mikro-orm.config.d.ts.map +1 -0
  81. package/dist/db/mikro-orm.config.js +64 -0
  82. package/dist/db/mikro-orm.config.js.map +1 -0
  83. package/dist/db/orm.d.ts +40 -0
  84. package/dist/db/orm.d.ts.map +1 -0
  85. package/dist/db/orm.js +25 -0
  86. package/dist/db/orm.js.map +1 -0
  87. package/dist/db/platform-schema.d.ts +102 -0
  88. package/dist/db/platform-schema.d.ts.map +1 -0
  89. package/dist/db/platform-schema.js +79 -0
  90. package/dist/db/platform-schema.js.map +1 -0
  91. package/dist/db/pluralizing-naming-strategy.d.ts +16 -0
  92. package/dist/db/pluralizing-naming-strategy.d.ts.map +1 -0
  93. package/dist/db/pluralizing-naming-strategy.js +66 -0
  94. package/dist/db/pluralizing-naming-strategy.js.map +1 -0
  95. package/dist/demo/guard.d.ts +101 -0
  96. package/dist/demo/guard.d.ts.map +1 -0
  97. package/dist/demo/guard.js +168 -0
  98. package/dist/demo/guard.js.map +1 -0
  99. package/dist/demo/host-command.d.ts +133 -0
  100. package/dist/demo/host-command.d.ts.map +1 -0
  101. package/dist/demo/host-command.js +113 -0
  102. package/dist/demo/host-command.js.map +1 -0
  103. package/dist/demo/index.d.ts +82 -0
  104. package/dist/demo/index.d.ts.map +1 -0
  105. package/dist/demo/index.js +82 -0
  106. package/dist/demo/index.js.map +1 -0
  107. package/dist/demo/packages.d.ts +67 -0
  108. package/dist/demo/packages.d.ts.map +1 -0
  109. package/dist/demo/packages.js +132 -0
  110. package/dist/demo/packages.js.map +1 -0
  111. package/dist/demo/plan.d.ts +111 -0
  112. package/dist/demo/plan.d.ts.map +1 -0
  113. package/dist/demo/plan.js +74 -0
  114. package/dist/demo/plan.js.map +1 -0
  115. package/dist/demo/report.d.ts +17 -0
  116. package/dist/demo/report.d.ts.map +1 -0
  117. package/dist/demo/report.js +85 -0
  118. package/dist/demo/report.js.map +1 -0
  119. package/dist/demo/runner.d.ts +207 -0
  120. package/dist/demo/runner.d.ts.map +1 -0
  121. package/dist/demo/runner.js +169 -0
  122. package/dist/demo/runner.js.map +1 -0
  123. package/dist/demo/scope.d.ts +44 -0
  124. package/dist/demo/scope.d.ts.map +1 -0
  125. package/dist/demo/scope.js +44 -0
  126. package/dist/demo/scope.js.map +1 -0
  127. package/dist/env/index.d.ts +68 -0
  128. package/dist/env/index.d.ts.map +1 -0
  129. package/dist/env/index.js +427 -0
  130. package/dist/env/index.js.map +1 -0
  131. package/dist/events/bus.d.ts +29 -0
  132. package/dist/events/bus.d.ts.map +1 -0
  133. package/dist/events/bus.js +67 -0
  134. package/dist/events/bus.js.map +1 -0
  135. package/dist/events/index.d.ts +19 -0
  136. package/dist/events/index.d.ts.map +1 -0
  137. package/dist/events/index.js +19 -0
  138. package/dist/events/index.js.map +1 -0
  139. package/dist/http/cursor.d.ts +10 -0
  140. package/dist/http/cursor.d.ts.map +1 -0
  141. package/dist/http/cursor.js +20 -0
  142. package/dist/http/cursor.js.map +1 -0
  143. package/dist/http/error-envelope.d.ts +127 -0
  144. package/dist/http/error-envelope.d.ts.map +1 -0
  145. package/dist/http/error-envelope.js +402 -0
  146. package/dist/http/error-envelope.js.map +1 -0
  147. package/dist/http/health.d.ts +88 -0
  148. package/dist/http/health.d.ts.map +1 -0
  149. package/dist/http/health.js +77 -0
  150. package/dist/http/health.js.map +1 -0
  151. package/dist/http/index.d.ts +50 -0
  152. package/dist/http/index.d.ts.map +1 -0
  153. package/dist/http/index.js +50 -0
  154. package/dist/http/index.js.map +1 -0
  155. package/dist/http/interceptors/dispatch.d.ts +14 -0
  156. package/dist/http/interceptors/dispatch.d.ts.map +1 -0
  157. package/dist/http/interceptors/dispatch.js +113 -0
  158. package/dist/http/interceptors/dispatch.js.map +1 -0
  159. package/dist/http/interceptors/index.d.ts +6 -0
  160. package/dist/http/interceptors/index.d.ts.map +1 -0
  161. package/dist/http/interceptors/index.js +5 -0
  162. package/dist/http/interceptors/index.js.map +1 -0
  163. package/dist/http/interceptors/registry.d.ts +44 -0
  164. package/dist/http/interceptors/registry.d.ts.map +1 -0
  165. package/dist/http/interceptors/registry.js +123 -0
  166. package/dist/http/interceptors/registry.js.map +1 -0
  167. package/dist/http/interceptors/route-table.d.ts +33 -0
  168. package/dist/http/interceptors/route-table.d.ts.map +1 -0
  169. package/dist/http/interceptors/route-table.js +39 -0
  170. package/dist/http/interceptors/route-table.js.map +1 -0
  171. package/dist/http/interceptors/types.d.ts +101 -0
  172. package/dist/http/interceptors/types.d.ts.map +1 -0
  173. package/dist/http/interceptors/types.js +2 -0
  174. package/dist/http/interceptors/types.js.map +1 -0
  175. package/dist/http/interceptors/validation.d.ts +22 -0
  176. package/dist/http/interceptors/validation.d.ts.map +1 -0
  177. package/dist/http/interceptors/validation.js +39 -0
  178. package/dist/http/interceptors/validation.js.map +1 -0
  179. package/dist/http/logger.d.ts +9 -0
  180. package/dist/http/logger.d.ts.map +1 -0
  181. package/dist/http/logger.js +25 -0
  182. package/dist/http/logger.js.map +1 -0
  183. package/dist/http/openapi.d.ts +21 -0
  184. package/dist/http/openapi.d.ts.map +1 -0
  185. package/dist/http/openapi.js +114 -0
  186. package/dist/http/openapi.js.map +1 -0
  187. package/dist/http/product-audience.d.ts +78 -0
  188. package/dist/http/product-audience.d.ts.map +1 -0
  189. package/dist/http/product-audience.js +92 -0
  190. package/dist/http/product-audience.js.map +1 -0
  191. package/dist/http/request-actor.d.ts +82 -0
  192. package/dist/http/request-actor.d.ts.map +1 -0
  193. package/dist/http/request-actor.js +2 -0
  194. package/dist/http/request-actor.js.map +1 -0
  195. package/dist/http/server.d.ts +60 -0
  196. package/dist/http/server.d.ts.map +1 -0
  197. package/dist/http/server.js +117 -0
  198. package/dist/http/server.js.map +1 -0
  199. package/dist/http/storefront-revalidator.d.ts +29 -0
  200. package/dist/http/storefront-revalidator.d.ts.map +1 -0
  201. package/dist/http/storefront-revalidator.js +34 -0
  202. package/dist/http/storefront-revalidator.js.map +1 -0
  203. package/dist/http/test-actor-carrier.d.ts +28 -0
  204. package/dist/http/test-actor-carrier.d.ts.map +1 -0
  205. package/dist/http/test-actor-carrier.js +10 -0
  206. package/dist/http/test-actor-carrier.js.map +1 -0
  207. package/dist/http/trusted-proxy.d.ts +48 -0
  208. package/dist/http/trusted-proxy.d.ts.map +1 -0
  209. package/dist/http/trusted-proxy.js +136 -0
  210. package/dist/http/trusted-proxy.js.map +1 -0
  211. package/dist/kernel/audit/audit-log-entry.entity.d.ts +33 -0
  212. package/dist/kernel/audit/audit-log-entry.entity.d.ts.map +1 -0
  213. package/dist/kernel/audit/audit-log-entry.entity.js +102 -0
  214. package/dist/kernel/audit/audit-log-entry.entity.js.map +1 -0
  215. package/dist/kernel/audit/audit-log-service.d.ts +63 -0
  216. package/dist/kernel/audit/audit-log-service.d.ts.map +1 -0
  217. package/dist/kernel/audit/audit-log-service.js +107 -0
  218. package/dist/kernel/audit/audit-log-service.js.map +1 -0
  219. package/dist/kernel/cache/in-process-cache-registry.d.ts +93 -0
  220. package/dist/kernel/cache/in-process-cache-registry.d.ts.map +1 -0
  221. package/dist/kernel/cache/in-process-cache-registry.js +78 -0
  222. package/dist/kernel/cache/in-process-cache-registry.js.map +1 -0
  223. package/dist/kernel/cache/shared-drop-marks.d.ts +39 -0
  224. package/dist/kernel/cache/shared-drop-marks.d.ts.map +1 -0
  225. package/dist/kernel/cache/shared-drop-marks.js +68 -0
  226. package/dist/kernel/cache/shared-drop-marks.js.map +1 -0
  227. package/dist/kernel/compose.d.ts +234 -0
  228. package/dist/kernel/compose.d.ts.map +1 -0
  229. package/dist/kernel/compose.js +279 -0
  230. package/dist/kernel/compose.js.map +1 -0
  231. package/dist/kernel/container.d.ts +95 -0
  232. package/dist/kernel/container.d.ts.map +1 -0
  233. package/dist/kernel/container.js +90 -0
  234. package/dist/kernel/container.js.map +1 -0
  235. package/dist/kernel/contribution-sinks.d.ts +106 -0
  236. package/dist/kernel/contribution-sinks.d.ts.map +1 -0
  237. package/dist/kernel/contribution-sinks.js +153 -0
  238. package/dist/kernel/contribution-sinks.js.map +1 -0
  239. package/dist/kernel/crypto/password-hasher.d.ts +3 -0
  240. package/dist/kernel/crypto/password-hasher.d.ts.map +1 -0
  241. package/dist/kernel/crypto/password-hasher.js +44 -0
  242. package/dist/kernel/crypto/password-hasher.js.map +1 -0
  243. package/dist/kernel/i18n/error-envelope-options.d.ts +56 -0
  244. package/dist/kernel/i18n/error-envelope-options.d.ts.map +1 -0
  245. package/dist/kernel/i18n/error-envelope-options.js +46 -0
  246. package/dist/kernel/i18n/error-envelope-options.js.map +1 -0
  247. package/dist/kernel/i18n/error-translation.d.ts +144 -0
  248. package/dist/kernel/i18n/error-translation.d.ts.map +1 -0
  249. package/dist/kernel/i18n/error-translation.js +84 -0
  250. package/dist/kernel/i18n/error-translation.js.map +1 -0
  251. package/dist/kernel/i18n/request-language.d.ts +80 -0
  252. package/dist/kernel/i18n/request-language.d.ts.map +1 -0
  253. package/dist/kernel/i18n/request-language.js +168 -0
  254. package/dist/kernel/i18n/request-language.js.map +1 -0
  255. package/dist/kernel/index.d.ts +142 -0
  256. package/dist/kernel/index.d.ts.map +1 -0
  257. package/dist/kernel/index.js +160 -0
  258. package/dist/kernel/index.js.map +1 -0
  259. package/dist/kernel/lazy-port.d.ts +59 -0
  260. package/dist/kernel/lazy-port.d.ts.map +1 -0
  261. package/dist/kernel/lazy-port.js +78 -0
  262. package/dist/kernel/lazy-port.js.map +1 -0
  263. package/dist/kernel/lifecycle/activation-resolver.d.ts +63 -0
  264. package/dist/kernel/lifecycle/activation-resolver.d.ts.map +1 -0
  265. package/dist/kernel/lifecycle/activation-resolver.js +70 -0
  266. package/dist/kernel/lifecycle/activation-resolver.js.map +1 -0
  267. package/dist/kernel/lifecycle/capability-registry.d.ts +145 -0
  268. package/dist/kernel/lifecycle/capability-registry.d.ts.map +1 -0
  269. package/dist/kernel/lifecycle/capability-registry.js +170 -0
  270. package/dist/kernel/lifecycle/capability-registry.js.map +1 -0
  271. package/dist/kernel/lifecycle/effective-state.d.ts +126 -0
  272. package/dist/kernel/lifecycle/effective-state.d.ts.map +1 -0
  273. package/dist/kernel/lifecycle/effective-state.js +111 -0
  274. package/dist/kernel/lifecycle/effective-state.js.map +1 -0
  275. package/dist/kernel/lifecycle/module-registration.entity.d.ts +57 -0
  276. package/dist/kernel/lifecycle/module-registration.entity.d.ts.map +1 -0
  277. package/dist/kernel/lifecycle/module-registration.entity.js +111 -0
  278. package/dist/kernel/lifecycle/module-registration.entity.js.map +1 -0
  279. package/dist/kernel/lifecycle/plugin-helpers.d.ts +165 -0
  280. package/dist/kernel/lifecycle/plugin-helpers.d.ts.map +1 -0
  281. package/dist/kernel/lifecycle/plugin-helpers.js +395 -0
  282. package/dist/kernel/lifecycle/plugin-helpers.js.map +1 -0
  283. package/dist/kernel/lifecycle/registry-cache.d.ts +318 -0
  284. package/dist/kernel/lifecycle/registry-cache.d.ts.map +1 -0
  285. package/dist/kernel/lifecycle/registry-cache.js +509 -0
  286. package/dist/kernel/lifecycle/registry-cache.js.map +1 -0
  287. package/dist/kernel/lifecycle/required-modules.d.ts +137 -0
  288. package/dist/kernel/lifecycle/required-modules.d.ts.map +1 -0
  289. package/dist/kernel/lifecycle/required-modules.js +80 -0
  290. package/dist/kernel/lifecycle/required-modules.js.map +1 -0
  291. package/dist/kernel/lifecycle/unique-module-ids.d.ts +58 -0
  292. package/dist/kernel/lifecycle/unique-module-ids.d.ts.map +1 -0
  293. package/dist/kernel/lifecycle/unique-module-ids.js +82 -0
  294. package/dist/kernel/lifecycle/unique-module-ids.js.map +1 -0
  295. package/dist/kernel/logging.d.ts +116 -0
  296. package/dist/kernel/logging.d.ts.map +1 -0
  297. package/dist/kernel/logging.js +71 -0
  298. package/dist/kernel/logging.js.map +1 -0
  299. package/dist/kernel/module-context.d.ts +563 -0
  300. package/dist/kernel/module-context.d.ts.map +1 -0
  301. package/dist/kernel/module-context.js +670 -0
  302. package/dist/kernel/module-context.js.map +1 -0
  303. package/dist/kernel/ports/audit.d.ts +115 -0
  304. package/dist/kernel/ports/audit.d.ts.map +1 -0
  305. package/dist/kernel/ports/audit.js +2 -0
  306. package/dist/kernel/ports/audit.js.map +1 -0
  307. package/dist/kernel/ports/organizations.d.ts +56 -0
  308. package/dist/kernel/ports/organizations.d.ts.map +1 -0
  309. package/dist/kernel/ports/organizations.js +2 -0
  310. package/dist/kernel/ports/organizations.js.map +1 -0
  311. package/dist/kernel/ports/provide.d.ts +14 -0
  312. package/dist/kernel/ports/provide.d.ts.map +1 -0
  313. package/dist/kernel/ports/provide.js +50 -0
  314. package/dist/kernel/ports/provide.js.map +1 -0
  315. package/dist/kernel/ports/require-admin.d.ts +61 -0
  316. package/dist/kernel/ports/require-admin.d.ts.map +1 -0
  317. package/dist/kernel/ports/require-admin.js +2 -0
  318. package/dist/kernel/ports/require-admin.js.map +1 -0
  319. package/dist/kernel/ports/require-customer.d.ts +17 -0
  320. package/dist/kernel/ports/require-customer.d.ts.map +1 -0
  321. package/dist/kernel/ports/require-customer.js +2 -0
  322. package/dist/kernel/ports/require-customer.js.map +1 -0
  323. package/dist/kernel/ports/sales-channel.d.ts +84 -0
  324. package/dist/kernel/ports/sales-channel.d.ts.map +1 -0
  325. package/dist/kernel/ports/sales-channel.js +2 -0
  326. package/dist/kernel/ports/sales-channel.js.map +1 -0
  327. package/dist/kernel/ports/settings.d.ts +59 -0
  328. package/dist/kernel/ports/settings.d.ts.map +1 -0
  329. package/dist/kernel/ports/settings.js +2 -0
  330. package/dist/kernel/ports/settings.js.map +1 -0
  331. package/dist/kernel/public-api-base-url.d.ts +98 -0
  332. package/dist/kernel/public-api-base-url.d.ts.map +1 -0
  333. package/dist/kernel/public-api-base-url.js +144 -0
  334. package/dist/kernel/public-api-base-url.js.map +1 -0
  335. package/dist/kernel/request-scope-hook.d.ts +63 -0
  336. package/dist/kernel/request-scope-hook.d.ts.map +1 -0
  337. package/dist/kernel/request-scope-hook.js +67 -0
  338. package/dist/kernel/request-scope-hook.js.map +1 -0
  339. package/dist/kernel/sales-channels/channel-bridge-registry.d.ts +109 -0
  340. package/dist/kernel/sales-channels/channel-bridge-registry.d.ts.map +1 -0
  341. package/dist/kernel/sales-channels/channel-bridge-registry.js +75 -0
  342. package/dist/kernel/sales-channels/channel-bridge-registry.js.map +1 -0
  343. package/dist/kernel/sales-channels/compose.d.ts +69 -0
  344. package/dist/kernel/sales-channels/compose.d.ts.map +1 -0
  345. package/dist/kernel/sales-channels/compose.js +43 -0
  346. package/dist/kernel/sales-channels/compose.js.map +1 -0
  347. package/dist/kernel/sales-channels/default-channel-reconciler.d.ts +66 -0
  348. package/dist/kernel/sales-channels/default-channel-reconciler.d.ts.map +1 -0
  349. package/dist/kernel/sales-channels/default-channel-reconciler.js +91 -0
  350. package/dist/kernel/sales-channels/default-channel-reconciler.js.map +1 -0
  351. package/dist/kernel/sales-channels/no-system-default-channel.error.d.ts +28 -0
  352. package/dist/kernel/sales-channels/no-system-default-channel.error.d.ts.map +1 -0
  353. package/dist/kernel/sales-channels/no-system-default-channel.error.js +33 -0
  354. package/dist/kernel/sales-channels/no-system-default-channel.error.js.map +1 -0
  355. package/dist/kernel/sales-channels/request-channel-assortment.d.ts +72 -0
  356. package/dist/kernel/sales-channels/request-channel-assortment.d.ts.map +1 -0
  357. package/dist/kernel/sales-channels/request-channel-assortment.js +83 -0
  358. package/dist/kernel/sales-channels/request-channel-assortment.js.map +1 -0
  359. package/dist/kernel/sales-channels/sales-channel-membership.service.d.ts +157 -0
  360. package/dist/kernel/sales-channels/sales-channel-membership.service.d.ts.map +1 -0
  361. package/dist/kernel/sales-channels/sales-channel-membership.service.js +302 -0
  362. package/dist/kernel/sales-channels/sales-channel-membership.service.js.map +1 -0
  363. package/dist/kernel/sales-channels/sales-channel-resolver.middleware.d.ts +76 -0
  364. package/dist/kernel/sales-channels/sales-channel-resolver.middleware.d.ts.map +1 -0
  365. package/dist/kernel/sales-channels/sales-channel-resolver.middleware.js +184 -0
  366. package/dist/kernel/sales-channels/sales-channel-resolver.middleware.js.map +1 -0
  367. package/dist/kernel/sales-channels/sales-channel-resolver.service.d.ts +82 -0
  368. package/dist/kernel/sales-channels/sales-channel-resolver.service.d.ts.map +1 -0
  369. package/dist/kernel/sales-channels/sales-channel-resolver.service.js +126 -0
  370. package/dist/kernel/sales-channels/sales-channel-resolver.service.js.map +1 -0
  371. package/dist/kernel/sales-channels/sales-channel.entity.d.ts +50 -0
  372. package/dist/kernel/sales-channels/sales-channel.entity.d.ts.map +1 -0
  373. package/dist/kernel/sales-channels/sales-channel.entity.js +132 -0
  374. package/dist/kernel/sales-channels/sales-channel.entity.js.map +1 -0
  375. package/dist/kernel/sales-channels/sales-channels-cache.d.ts +170 -0
  376. package/dist/kernel/sales-channels/sales-channels-cache.d.ts.map +1 -0
  377. package/dist/kernel/sales-channels/sales-channels-cache.js +243 -0
  378. package/dist/kernel/sales-channels/sales-channels-cache.js.map +1 -0
  379. package/dist/kernel/scope.d.ts +153 -0
  380. package/dist/kernel/scope.d.ts.map +1 -0
  381. package/dist/kernel/scope.js +172 -0
  382. package/dist/kernel/scope.js.map +1 -0
  383. package/dist/kernel/settings/compose.d.ts +49 -0
  384. package/dist/kernel/settings/compose.d.ts.map +1 -0
  385. package/dist/kernel/settings/compose.js +21 -0
  386. package/dist/kernel/settings/compose.js.map +1 -0
  387. package/dist/kernel/settings/manifest-reconciler.d.ts +78 -0
  388. package/dist/kernel/settings/manifest-reconciler.d.ts.map +1 -0
  389. package/dist/kernel/settings/manifest-reconciler.js +343 -0
  390. package/dist/kernel/settings/manifest-reconciler.js.map +1 -0
  391. package/dist/kernel/settings/secret-value-codec.d.ts +52 -0
  392. package/dist/kernel/settings/secret-value-codec.d.ts.map +1 -0
  393. package/dist/kernel/settings/secret-value-codec.js +102 -0
  394. package/dist/kernel/settings/secret-value-codec.js.map +1 -0
  395. package/dist/kernel/settings/setting-group.entity.d.ts +25 -0
  396. package/dist/kernel/settings/setting-group.entity.d.ts.map +1 -0
  397. package/dist/kernel/settings/setting-group.entity.js +79 -0
  398. package/dist/kernel/settings/setting-group.entity.js.map +1 -0
  399. package/dist/kernel/settings/setting-value.entity.d.ts +23 -0
  400. package/dist/kernel/settings/setting-value.entity.d.ts.map +1 -0
  401. package/dist/kernel/settings/setting-value.entity.js +66 -0
  402. package/dist/kernel/settings/setting-value.entity.js.map +1 -0
  403. package/dist/kernel/settings/setting.entity.d.ts +56 -0
  404. package/dist/kernel/settings/setting.entity.d.ts.map +1 -0
  405. package/dist/kernel/settings/setting.entity.js +147 -0
  406. package/dist/kernel/settings/setting.entity.js.map +1 -0
  407. package/dist/kernel/settings/settings-cache.d.ts +158 -0
  408. package/dist/kernel/settings/settings-cache.d.ts.map +1 -0
  409. package/dist/kernel/settings/settings-cache.js +253 -0
  410. package/dist/kernel/settings/settings-cache.js.map +1 -0
  411. package/dist/kernel/settings/settings.service.d.ts +142 -0
  412. package/dist/kernel/settings/settings.service.d.ts.map +1 -0
  413. package/dist/kernel/settings/settings.service.js +294 -0
  414. package/dist/kernel/settings/settings.service.js.map +1 -0
  415. package/dist/lifecycle/backend.d.ts +51 -0
  416. package/dist/lifecycle/backend.d.ts.map +1 -0
  417. package/dist/lifecycle/backend.js +40 -0
  418. package/dist/lifecycle/backend.js.map +1 -0
  419. package/dist/lifecycle/commands/activation.commands.d.ts +97 -0
  420. package/dist/lifecycle/commands/activation.commands.d.ts.map +1 -0
  421. package/dist/lifecycle/commands/activation.commands.js +142 -0
  422. package/dist/lifecycle/commands/activation.commands.js.map +1 -0
  423. package/dist/lifecycle/commands/disable.d.ts +3 -0
  424. package/dist/lifecycle/commands/disable.d.ts.map +1 -0
  425. package/dist/lifecycle/commands/disable.js +126 -0
  426. package/dist/lifecycle/commands/disable.js.map +1 -0
  427. package/dist/lifecycle/commands/enable.d.ts +3 -0
  428. package/dist/lifecycle/commands/enable.d.ts.map +1 -0
  429. package/dist/lifecycle/commands/enable.js +102 -0
  430. package/dist/lifecycle/commands/enable.js.map +1 -0
  431. package/dist/lifecycle/commands/install.d.ts +3 -0
  432. package/dist/lifecycle/commands/install.d.ts.map +1 -0
  433. package/dist/lifecycle/commands/install.js +263 -0
  434. package/dist/lifecycle/commands/install.js.map +1 -0
  435. package/dist/lifecycle/commands/operator-entry.d.ts +104 -0
  436. package/dist/lifecycle/commands/operator-entry.d.ts.map +1 -0
  437. package/dist/lifecycle/commands/operator-entry.js +127 -0
  438. package/dist/lifecycle/commands/operator-entry.js.map +1 -0
  439. package/dist/lifecycle/commands/operator-runtime.d.ts +147 -0
  440. package/dist/lifecycle/commands/operator-runtime.d.ts.map +1 -0
  441. package/dist/lifecycle/commands/operator-runtime.js +40 -0
  442. package/dist/lifecycle/commands/operator-runtime.js.map +1 -0
  443. package/dist/lifecycle/commands/status.d.ts +3 -0
  444. package/dist/lifecycle/commands/status.d.ts.map +1 -0
  445. package/dist/lifecycle/commands/status.js +108 -0
  446. package/dist/lifecycle/commands/status.js.map +1 -0
  447. package/dist/lifecycle/commands/uninstall.d.ts +3 -0
  448. package/dist/lifecycle/commands/uninstall.d.ts.map +1 -0
  449. package/dist/lifecycle/commands/uninstall.js +223 -0
  450. package/dist/lifecycle/commands/uninstall.js.map +1 -0
  451. package/dist/lifecycle/divergence-declaration.d.ts +74 -0
  452. package/dist/lifecycle/divergence-declaration.d.ts.map +1 -0
  453. package/dist/lifecycle/divergence-declaration.js +92 -0
  454. package/dist/lifecycle/divergence-declaration.js.map +1 -0
  455. package/dist/lifecycle/i18n/en.json +4 -0
  456. package/dist/lifecycle/i18n/pl.json +4 -0
  457. package/dist/lifecycle/index.d.ts +110 -0
  458. package/dist/lifecycle/index.d.ts.map +1 -0
  459. package/dist/lifecycle/index.js +189 -0
  460. package/dist/lifecycle/index.js.map +1 -0
  461. package/dist/lifecycle/manifest-registry.d.ts +244 -0
  462. package/dist/lifecycle/manifest-registry.d.ts.map +1 -0
  463. package/dist/lifecycle/manifest-registry.js +223 -0
  464. package/dist/lifecycle/manifest-registry.js.map +1 -0
  465. package/dist/lifecycle/manifest.d.ts +166 -0
  466. package/dist/lifecycle/manifest.d.ts.map +1 -0
  467. package/dist/lifecycle/manifest.js +121 -0
  468. package/dist/lifecycle/manifest.js.map +1 -0
  469. package/dist/lifecycle/plugin.d.ts +56 -0
  470. package/dist/lifecycle/plugin.d.ts.map +1 -0
  471. package/dist/lifecycle/plugin.js +59 -0
  472. package/dist/lifecycle/plugin.js.map +1 -0
  473. package/dist/lifecycle/resident.d.ts +16 -0
  474. package/dist/lifecycle/resident.d.ts.map +1 -0
  475. package/dist/lifecycle/resident.js +59 -0
  476. package/dist/lifecycle/resident.js.map +1 -0
  477. package/dist/lifecycle/routes.admin.d.ts +57 -0
  478. package/dist/lifecycle/routes.admin.d.ts.map +1 -0
  479. package/dist/lifecycle/routes.admin.js +162 -0
  480. package/dist/lifecycle/routes.admin.js.map +1 -0
  481. package/dist/lifecycle/routes.storefront.d.ts +26 -0
  482. package/dist/lifecycle/routes.storefront.d.ts.map +1 -0
  483. package/dist/lifecycle/routes.storefront.js +36 -0
  484. package/dist/lifecycle/routes.storefront.js.map +1 -0
  485. package/dist/lifecycle/services/deactivation-ledger.d.ts +216 -0
  486. package/dist/lifecycle/services/deactivation-ledger.d.ts.map +1 -0
  487. package/dist/lifecycle/services/deactivation-ledger.js +171 -0
  488. package/dist/lifecycle/services/deactivation-ledger.js.map +1 -0
  489. package/dist/lifecycle/services/dep-graph.d.ts +119 -0
  490. package/dist/lifecycle/services/dep-graph.d.ts.map +1 -0
  491. package/dist/lifecycle/services/dep-graph.js +334 -0
  492. package/dist/lifecycle/services/dep-graph.js.map +1 -0
  493. package/dist/lifecycle/services/gating-graph.d.ts +164 -0
  494. package/dist/lifecycle/services/gating-graph.d.ts.map +1 -0
  495. package/dist/lifecycle/services/gating-graph.js +203 -0
  496. package/dist/lifecycle/services/gating-graph.js.map +1 -0
  497. package/dist/lifecycle/services/lock.d.ts +27 -0
  498. package/dist/lifecycle/services/lock.d.ts.map +1 -0
  499. package/dist/lifecycle/services/lock.js +82 -0
  500. package/dist/lifecycle/services/lock.js.map +1 -0
  501. package/dist/lifecycle/services/manifest-loader.d.ts +125 -0
  502. package/dist/lifecycle/services/manifest-loader.d.ts.map +1 -0
  503. package/dist/lifecycle/services/manifest-loader.js +210 -0
  504. package/dist/lifecycle/services/manifest-loader.js.map +1 -0
  505. package/dist/lifecycle/services/migration-ownership.d.ts +36 -0
  506. package/dist/lifecycle/services/migration-ownership.d.ts.map +1 -0
  507. package/dist/lifecycle/services/migration-ownership.js +15 -0
  508. package/dist/lifecycle/services/migration-ownership.js.map +1 -0
  509. package/dist/lifecycle/services/module-id-claims.d.ts +38 -0
  510. package/dist/lifecycle/services/module-id-claims.d.ts.map +1 -0
  511. package/dist/lifecycle/services/module-id-claims.js +123 -0
  512. package/dist/lifecycle/services/module-id-claims.js.map +1 -0
  513. package/dist/lifecycle/services/module-origin.d.ts +55 -0
  514. package/dist/lifecycle/services/module-origin.d.ts.map +1 -0
  515. package/dist/lifecycle/services/module-origin.js +47 -0
  516. package/dist/lifecycle/services/module-origin.js.map +1 -0
  517. package/dist/lifecycle/services/orchestrator.d.ts +235 -0
  518. package/dist/lifecycle/services/orchestrator.d.ts.map +1 -0
  519. package/dist/lifecycle/services/orchestrator.js +954 -0
  520. package/dist/lifecycle/services/orchestrator.js.map +1 -0
  521. package/dist/lifecycle/services/presence-load.d.ts +281 -0
  522. package/dist/lifecycle/services/presence-load.d.ts.map +1 -0
  523. package/dist/lifecycle/services/presence-load.js +437 -0
  524. package/dist/lifecycle/services/presence-load.js.map +1 -0
  525. package/dist/lifecycle/services/static-registry.d.ts +47 -0
  526. package/dist/lifecycle/services/static-registry.d.ts.map +1 -0
  527. package/dist/lifecycle/services/static-registry.js +41 -0
  528. package/dist/lifecycle/services/static-registry.js.map +1 -0
  529. package/dist/migrations/20260424T165847_core_foundation_init.d.ts +25 -0
  530. package/dist/migrations/20260424T165847_core_foundation_init.d.ts.map +1 -0
  531. package/dist/migrations/20260424T165847_core_foundation_init.js +238 -0
  532. package/dist/migrations/20260424T165847_core_foundation_init.js.map +1 -0
  533. package/dist/migrations/20260425T050720_core_commerce_init.d.ts +19 -0
  534. package/dist/migrations/20260425T050720_core_commerce_init.d.ts.map +1 -0
  535. package/dist/migrations/20260425T050720_core_commerce_init.js +200 -0
  536. package/dist/migrations/20260425T050720_core_commerce_init.js.map +1 -0
  537. package/dist/migrations/20260430T101450_core_settings_init.d.ts +25 -0
  538. package/dist/migrations/20260430T101450_core_settings_init.d.ts.map +1 -0
  539. package/dist/migrations/20260430T101450_core_settings_init.js +113 -0
  540. package/dist/migrations/20260430T101450_core_settings_init.js.map +1 -0
  541. package/dist/migrations/20260430T170044_core_sales_channels_promote.d.ts +67 -0
  542. package/dist/migrations/20260430T170044_core_sales_channels_promote.d.ts.map +1 -0
  543. package/dist/migrations/20260430T170044_core_sales_channels_promote.js +101 -0
  544. package/dist/migrations/20260430T170044_core_sales_channels_promote.js.map +1 -0
  545. package/dist/migrations/20260506T200657_core_module_lifecycle_init.d.ts +21 -0
  546. package/dist/migrations/20260506T200657_core_module_lifecycle_init.d.ts.map +1 -0
  547. package/dist/migrations/20260506T200657_core_module_lifecycle_init.js +41 -0
  548. package/dist/migrations/20260506T200657_core_module_lifecycle_init.js.map +1 -0
  549. package/dist/migrations/20260514T111329_core_settings_global_value.d.ts +30 -0
  550. package/dist/migrations/20260514T111329_core_settings_global_value.d.ts.map +1 -0
  551. package/dist/migrations/20260514T111329_core_settings_global_value.js +34 -0
  552. package/dist/migrations/20260514T111329_core_settings_global_value.js.map +1 -0
  553. package/dist/migrations/20260611T140411_core_settings_secret_value_type.d.ts +26 -0
  554. package/dist/migrations/20260611T140411_core_settings_secret_value_type.d.ts.map +1 -0
  555. package/dist/migrations/20260611T140411_core_settings_secret_value_type.js +63 -0
  556. package/dist/migrations/20260611T140411_core_settings_secret_value_type.js.map +1 -0
  557. package/dist/migrations/20260611T140419_core_settings_enum_options.d.ts +19 -0
  558. package/dist/migrations/20260611T140419_core_settings_enum_options.d.ts.map +1 -0
  559. package/dist/migrations/20260611T140419_core_settings_enum_options.js +23 -0
  560. package/dist/migrations/20260611T140419_core_settings_enum_options.js.map +1 -0
  561. package/dist/migrations/20260629T090100_core_settings_hidden_flag.d.ts +20 -0
  562. package/dist/migrations/20260629T090100_core_settings_hidden_flag.d.ts.map +1 -0
  563. package/dist/migrations/20260629T090100_core_settings_hidden_flag.js +24 -0
  564. package/dist/migrations/20260629T090100_core_settings_hidden_flag.js.map +1 -0
  565. package/dist/migrations/20260717T134752_core_tenant_scope_indexes.d.ts +27 -0
  566. package/dist/migrations/20260717T134752_core_tenant_scope_indexes.d.ts.map +1 -0
  567. package/dist/migrations/20260717T134752_core_tenant_scope_indexes.js +32 -0
  568. package/dist/migrations/20260717T134752_core_tenant_scope_indexes.js.map +1 -0
  569. package/dist/migrations/20260721T011510_core_settings_credential_ref_value_type.d.ts +24 -0
  570. package/dist/migrations/20260721T011510_core_settings_credential_ref_value_type.d.ts.map +1 -0
  571. package/dist/migrations/20260721T011510_core_settings_credential_ref_value_type.js +57 -0
  572. package/dist/migrations/20260721T011510_core_settings_credential_ref_value_type.js.map +1 -0
  573. package/dist/migrations/20260816T203339_core_retire_core_activation_settings.d.ts +39 -0
  574. package/dist/migrations/20260816T203339_core_retire_core_activation_settings.d.ts.map +1 -0
  575. package/dist/migrations/20260816T203339_core_retire_core_activation_settings.js +59 -0
  576. package/dist/migrations/20260816T203339_core_retire_core_activation_settings.js.map +1 -0
  577. package/dist/migrations/20260919T101500_core_module_registrations_boot_converged.d.ts +34 -0
  578. package/dist/migrations/20260919T101500_core_module_registrations_boot_converged.d.ts.map +1 -0
  579. package/dist/migrations/20260919T101500_core_module_registrations_boot_converged.js +38 -0
  580. package/dist/migrations/20260919T101500_core_module_registrations_boot_converged.js.map +1 -0
  581. package/dist/migrations/baseline-migrations.generated.d.ts +2 -0
  582. package/dist/migrations/baseline-migrations.generated.d.ts.map +1 -0
  583. package/dist/migrations/baseline-migrations.generated.js +136 -0
  584. package/dist/migrations/baseline-migrations.generated.js.map +1 -0
  585. package/dist/migrations/index.d.ts +62 -0
  586. package/dist/migrations/index.d.ts.map +1 -0
  587. package/dist/migrations/index.js +75 -0
  588. package/dist/migrations/index.js.map +1 -0
  589. package/dist/overlay/deployment-roots.d.ts +37 -0
  590. package/dist/overlay/deployment-roots.d.ts.map +1 -0
  591. package/dist/overlay/deployment-roots.js +90 -0
  592. package/dist/overlay/deployment-roots.js.map +1 -0
  593. package/dist/overlay/index.d.ts +62 -0
  594. package/dist/overlay/index.d.ts.map +1 -0
  595. package/dist/overlay/index.js +62 -0
  596. package/dist/overlay/index.js.map +1 -0
  597. package/dist/overlay/overlay-runtime.d.ts +173 -0
  598. package/dist/overlay/overlay-runtime.d.ts.map +1 -0
  599. package/dist/overlay/overlay-runtime.js +281 -0
  600. package/dist/overlay/overlay-runtime.js.map +1 -0
  601. package/dist/overlay/resolve-overlay.d.ts +41 -0
  602. package/dist/overlay/resolve-overlay.d.ts.map +1 -0
  603. package/dist/overlay/resolve-overlay.js +72 -0
  604. package/dist/overlay/resolve-overlay.js.map +1 -0
  605. package/dist/packages/index.d.ts +57 -0
  606. package/dist/packages/index.d.ts.map +1 -0
  607. package/dist/packages/index.js +57 -0
  608. package/dist/packages/index.js.map +1 -0
  609. package/dist/packages/installed-packages.d.ts +79 -0
  610. package/dist/packages/installed-packages.d.ts.map +1 -0
  611. package/dist/packages/installed-packages.js +312 -0
  612. package/dist/packages/installed-packages.js.map +1 -0
  613. package/dist/packages/package-entity-lookup.d.ts +120 -0
  614. package/dist/packages/package-entity-lookup.d.ts.map +1 -0
  615. package/dist/packages/package-entity-lookup.js +17 -0
  616. package/dist/packages/package-entity-lookup.js.map +1 -0
  617. package/dist/packages/package-runtime.d.ts +177 -0
  618. package/dist/packages/package-runtime.d.ts.map +1 -0
  619. package/dist/packages/package-runtime.js +386 -0
  620. package/dist/packages/package-runtime.js.map +1 -0
  621. package/dist/tenancy/derived-scope.d.ts +43 -0
  622. package/dist/tenancy/derived-scope.d.ts.map +1 -0
  623. package/dist/tenancy/derived-scope.js +76 -0
  624. package/dist/tenancy/derived-scope.js.map +1 -0
  625. package/dist/tenancy/escape-hatch.d.ts +30 -0
  626. package/dist/tenancy/escape-hatch.d.ts.map +1 -0
  627. package/dist/tenancy/escape-hatch.js +50 -0
  628. package/dist/tenancy/escape-hatch.js.map +1 -0
  629. package/dist/tenancy/filters.d.ts +87 -0
  630. package/dist/tenancy/filters.d.ts.map +1 -0
  631. package/dist/tenancy/filters.js +126 -0
  632. package/dist/tenancy/filters.js.map +1 -0
  633. package/dist/tenancy/index.d.ts +63 -0
  634. package/dist/tenancy/index.d.ts.map +1 -0
  635. package/dist/tenancy/index.js +61 -0
  636. package/dist/tenancy/index.js.map +1 -0
  637. package/dist/tenancy/org-scoped.decorator.d.ts +150 -0
  638. package/dist/tenancy/org-scoped.decorator.d.ts.map +1 -0
  639. package/dist/tenancy/org-scoped.decorator.js +339 -0
  640. package/dist/tenancy/org-scoped.decorator.js.map +1 -0
  641. package/dist/tenancy/org-write-guard.d.ts +106 -0
  642. package/dist/tenancy/org-write-guard.d.ts.map +1 -0
  643. package/dist/tenancy/org-write-guard.js +141 -0
  644. package/dist/tenancy/org-write-guard.js.map +1 -0
  645. package/dist/tenancy/resolve-tenant-context.d.ts +91 -0
  646. package/dist/tenancy/resolve-tenant-context.d.ts.map +1 -0
  647. package/dist/tenancy/resolve-tenant-context.js +85 -0
  648. package/dist/tenancy/resolve-tenant-context.js.map +1 -0
  649. package/dist/tenancy/scoped-em.d.ts +10 -0
  650. package/dist/tenancy/scoped-em.d.ts.map +1 -0
  651. package/dist/tenancy/scoped-em.js +11 -0
  652. package/dist/tenancy/scoped-em.js.map +1 -0
  653. package/dist/tenancy/tenant-context.d.ts +154 -0
  654. package/dist/tenancy/tenant-context.d.ts.map +1 -0
  655. package/dist/tenancy/tenant-context.js +109 -0
  656. package/dist/tenancy/tenant-context.js.map +1 -0
  657. package/package.json +123 -0
@@ -0,0 +1,118 @@
1
+ /**
2
+ * The host's side of a module-declared CLI command (feature 080, T042b /
3
+ * D-160.9, D-157.8).
4
+ *
5
+ * ## What this file is, and what it is not
6
+ *
7
+ * It is the part of `src/cli.ts` that has no process in it: enumerate the
8
+ * commands the resolved manifest set declares, find the one the operator named,
9
+ * decide presence, build the module's context and invoke. `src/cli.ts` composes,
10
+ * opens the scope and turns the answer into an exit code; everything decidable
11
+ * without a database lives here so it can be driven from a test.
12
+ *
13
+ * It is **not** a second composition path. It receives `contextFor` from the
14
+ * composition the host already built, so a command resolves the module's own
15
+ * registrations — including any decoration a deployment applied over them,
16
+ * which is the second reason D-157.1 gives for composing at all and the one the
17
+ * hand-built scripts silently lost.
18
+ *
19
+ * ## Presence is decided here, once, and not per command
20
+ *
21
+ * Constitution XVII item 3 is explicit that a hand-placed presence check is the
22
+ * shape to avoid: *"a gate the registration applies cannot be forgotten in the
23
+ * one service somebody adds later, which a hand-placed call can and did."* A
24
+ * command has no route to gate, no worker to wrap and no port resolution to
25
+ * hang a transient gate on — it is exactly the case `requireModuleEnabled`
26
+ * exists for. So the **declaration** is the seam: the host knows which module
27
+ * declared the command it is about to run, and asks about that module, first,
28
+ * before it builds a context and outside every `try`. A module author writes no
29
+ * presence check and cannot forget one.
30
+ *
31
+ * That is D-157.5 applied at the one place that covers every command rather
32
+ * than at each command: *"A composing module command asks it for **its own**
33
+ * module id, after composition and outside every `try`. It never asks it for
34
+ * the **owner's** id: that answer is the port gate's, and asking it twice is
35
+ * how the two would come to disagree."* Both halves hold — the id asked about
36
+ * is always the declaring module's, and a port the body resolves is gated by
37
+ * its own owner's `providePort`.
38
+ */
39
+ import type { ModuleCliCommand, ModuleManifest } from '@endora-commerce/contracts';
40
+ import type { ModuleContext } from '../kernel/module-context.js';
41
+ /**
42
+ * The minimum of a manifest entry this file reads.
43
+ *
44
+ * Structural rather than `RegisteredManifestEntry`, because the three origins
45
+ * the platform resolves — core, this deployment's overlay and an installed
46
+ * package — reach here as one array and none of them is more this file's
47
+ * business than the others. That is D-157.8's *"one shape covers core, overlay
48
+ * and package"* expressed as a parameter type.
49
+ */
50
+ export interface CommandDeclaringEntry {
51
+ readonly manifest: Pick<ModuleManifest, 'id'>;
52
+ readonly cliCommands?: readonly ModuleCliCommand<never>[] | undefined;
53
+ }
54
+ /** One command, with the module that declared it. */
55
+ export interface DeclaredCommand {
56
+ readonly moduleId: string;
57
+ readonly name: string;
58
+ readonly summary: string;
59
+ readonly command: ModuleCliCommand<ModuleContext>;
60
+ }
61
+ /**
62
+ * The `--help` text, answered from the declaration alone.
63
+ *
64
+ * Separate from {@link runModuleCommand} because the host answers it **before
65
+ * it composes**: a tool has to be able to say what it does before it can do it,
66
+ * and for `audit_logs read` that is D-102's condition rather than a nicety —
67
+ * its credential is host access, not a working connection string.
68
+ */
69
+ export declare function helpFor(command: DeclaredCommand): string;
70
+ /** A declaration the host refuses to advertise, with the reason. */
71
+ export declare class InvalidCommandDeclarationError extends Error {
72
+ readonly moduleId: string;
73
+ constructor(moduleId: string, reason: string);
74
+ }
75
+ /** The operator named a module or a command that is not declared here. */
76
+ export declare class UnknownCommandError extends Error {
77
+ constructor(message: string);
78
+ }
79
+ /**
80
+ * Every command the resolved manifest set declares, module id then command
81
+ * name.
82
+ *
83
+ * Refuses rather than skips, in both directions a declaration can be wrong: a
84
+ * name the addressing grammar cannot express, and two commands of one module
85
+ * claiming one name. Skipping either would produce a command that `--list`
86
+ * does not print and the runner cannot find, which is the failure mode D-157.8
87
+ * rejected path-convention dispatch for — *"a resolution ladder whose failure
88
+ * mode is 'command silently not found'"*.
89
+ */
90
+ export declare function collectModuleCommands(entries: readonly CommandDeclaringEntry[]): DeclaredCommand[];
91
+ /** `--list` output: one line per command, aligned, for a human at a terminal. */
92
+ export declare function formatCommandList(commands: readonly DeclaredCommand[]): string;
93
+ /** The one command matching `<moduleId> <name>`. */
94
+ export declare function findModuleCommand(commands: readonly DeclaredCommand[], moduleId: string, name: string): DeclaredCommand;
95
+ export interface RunModuleCommandOptions {
96
+ /** The resolved manifest set this composition was built from. */
97
+ readonly entries: readonly CommandDeclaringEntry[];
98
+ readonly moduleId: string;
99
+ readonly name: string;
100
+ /** Everything after `<module id> <command name>` on the host's argv. */
101
+ readonly argv: readonly string[];
102
+ /** The composition's own context factory — `ComposeAppHandle.contextFor`. */
103
+ readonly contextFor: (moduleId: string) => ModuleContext;
104
+ readonly out: (line: string) => void;
105
+ readonly err: (line: string) => void;
106
+ }
107
+ /**
108
+ * Find, gate and invoke — the whole of what the host does with a command.
109
+ *
110
+ * Nothing here is wrapped in a `try`. A failing command throws to `src/cli.ts`,
111
+ * which reports it and exits non-zero, and that is the correct CLI behaviour
112
+ * for every failure a command can have, `ModuleDisabledError` included
113
+ * (D-157.3: *"a `.catch()` method on the entry promise is outside its
114
+ * population by construction, so a `ModuleDisabledError` reaching it is
115
+ * reported and exits non-zero"*).
116
+ */
117
+ export declare function runModuleCommand(options: RunModuleCommandOptions): Promise<number>;
118
+ //# sourceMappingURL=module-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-commands.d.ts","sourceRoot":"","sources":["../../src/cli/module-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,gBAAgB,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC;CACvE;AAED,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;CACnD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAExD;AAED,oEAAoE;AACpE,qBAAa,8BAA+B,SAAQ,KAAK;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAItD;AAED,0EAA0E;AAC1E,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,eAAe,EAAE,CAwCnB;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAU9E;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,eAAe,CAcjB;AAED,MAAM,WAAW,uBAAuB;IACtC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa,CAAC;IACzD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBxF"}
@@ -0,0 +1,120 @@
1
+ import { MODULE_CLI_COMMAND_NAME_RE } from '@endora-commerce/contracts';
2
+ import { requireModuleEnabled } from '../kernel/lifecycle/plugin-helpers.js';
3
+ /**
4
+ * The `--help` text, answered from the declaration alone.
5
+ *
6
+ * Separate from {@link runModuleCommand} because the host answers it **before
7
+ * it composes**: a tool has to be able to say what it does before it can do it,
8
+ * and for `audit_logs read` that is D-102's condition rather than a nicety —
9
+ * its credential is host access, not a working connection string.
10
+ */
11
+ export function helpFor(command) {
12
+ return command.command.help ?? `${command.moduleId} ${command.name} — ${command.summary}`;
13
+ }
14
+ /** A declaration the host refuses to advertise, with the reason. */
15
+ export class InvalidCommandDeclarationError extends Error {
16
+ moduleId;
17
+ constructor(moduleId, reason) {
18
+ super(`[cli] module '${moduleId}' declares an invalid command: ${reason}`);
19
+ this.moduleId = moduleId;
20
+ this.name = 'InvalidCommandDeclarationError';
21
+ }
22
+ }
23
+ /** The operator named a module or a command that is not declared here. */
24
+ export class UnknownCommandError extends Error {
25
+ constructor(message) {
26
+ super(message);
27
+ this.name = 'UnknownCommandError';
28
+ }
29
+ }
30
+ /**
31
+ * Every command the resolved manifest set declares, module id then command
32
+ * name.
33
+ *
34
+ * Refuses rather than skips, in both directions a declaration can be wrong: a
35
+ * name the addressing grammar cannot express, and two commands of one module
36
+ * claiming one name. Skipping either would produce a command that `--list`
37
+ * does not print and the runner cannot find, which is the failure mode D-157.8
38
+ * rejected path-convention dispatch for — *"a resolution ladder whose failure
39
+ * mode is 'command silently not found'"*.
40
+ */
41
+ export function collectModuleCommands(entries) {
42
+ const out = [];
43
+ for (const entry of entries) {
44
+ const declared = entry.cliCommands ?? [];
45
+ const seen = new Set();
46
+ for (const command of declared) {
47
+ const moduleId = entry.manifest.id;
48
+ if (!MODULE_CLI_COMMAND_NAME_RE.test(command.name)) {
49
+ throw new InvalidCommandDeclarationError(moduleId, `'${command.name}' is not a command name. A command is addressed as ` +
50
+ `'<module id> <command name>', so the name must be lowercase and ` +
51
+ `hyphen-separated (${String(MODULE_CLI_COMMAND_NAME_RE)}).`);
52
+ }
53
+ if (seen.has(command.name)) {
54
+ throw new InvalidCommandDeclarationError(moduleId, `two commands named '${command.name}'. Which one runs would depend on ` +
55
+ `declaration order.`);
56
+ }
57
+ seen.add(command.name);
58
+ out.push({
59
+ moduleId,
60
+ name: command.name,
61
+ summary: command.summary,
62
+ // The declaration is typed `ModuleCliCommand<never>` on the way in so
63
+ // any module's `ModuleCliCommand<ModuleContext>` is assignable without
64
+ // the entry types having to name a kernel type. The host supplies a
65
+ // real `ModuleContext`, which is what the body was written against.
66
+ command: command,
67
+ });
68
+ }
69
+ }
70
+ return out.sort((a, b) => a.moduleId === b.moduleId
71
+ ? a.name.localeCompare(b.name)
72
+ : a.moduleId.localeCompare(b.moduleId));
73
+ }
74
+ /** `--list` output: one line per command, aligned, for a human at a terminal. */
75
+ export function formatCommandList(commands) {
76
+ if (commands.length === 0) {
77
+ return 'No module declares a CLI command in this composition.\n';
78
+ }
79
+ const addresses = commands.map((c) => `${c.moduleId} ${c.name}`);
80
+ const width = Math.max(...addresses.map((a) => a.length));
81
+ const lines = commands.map((command, index) => ` ${addresses[index].padEnd(width)} ${command.summary}`);
82
+ return `${lines.join('\n')}\n`;
83
+ }
84
+ /** The one command matching `<moduleId> <name>`. */
85
+ export function findModuleCommand(commands, moduleId, name) {
86
+ const found = commands.find((c) => c.moduleId === moduleId && c.name === name);
87
+ if (found)
88
+ return found;
89
+ const ofModule = commands.filter((c) => c.moduleId === moduleId);
90
+ if (ofModule.length === 0) {
91
+ throw new UnknownCommandError(`[cli] no module '${moduleId}' declares a command in this composition. ` +
92
+ `Run with --list to see every command this instance offers.`);
93
+ }
94
+ throw new UnknownCommandError(`[cli] module '${moduleId}' declares no command '${name}'. It declares: ` +
95
+ `${ofModule.map((c) => c.name).join(', ')}.`);
96
+ }
97
+ /**
98
+ * Find, gate and invoke — the whole of what the host does with a command.
99
+ *
100
+ * Nothing here is wrapped in a `try`. A failing command throws to `src/cli.ts`,
101
+ * which reports it and exits non-zero, and that is the correct CLI behaviour
102
+ * for every failure a command can have, `ModuleDisabledError` included
103
+ * (D-157.3: *"a `.catch()` method on the entry promise is outside its
104
+ * population by construction, so a `ModuleDisabledError` reaching it is
105
+ * reported and exits non-zero"*).
106
+ */
107
+ export async function runModuleCommand(options) {
108
+ const declared = findModuleCommand(collectModuleCommands(options.entries), options.moduleId, options.name);
109
+ // Presence, before any work and before a context exists — see the file
110
+ // header. It is asked about the **declaring** module, never about an owner
111
+ // whose port the body resolves: that answer belongs to the owner's port gate.
112
+ requireModuleEnabled(declared.moduleId);
113
+ return declared.command.run({
114
+ ctx: options.contextFor(declared.moduleId),
115
+ argv: options.argv,
116
+ out: options.out,
117
+ err: options.err,
118
+ });
119
+ }
120
+ //# sourceMappingURL=module-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-commands.js","sourceRoot":"","sources":["../../src/cli/module-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type TenantContext } from '../tenancy/index.js';
2
+ import type { CommandActor } from './command.js';
3
+ /**
4
+ * Derive a {@link CommandActor} from the ambient TenantContext (feature 050).
5
+ *
6
+ * The actor is ALWAYS server-derived — a Command never accepts an actor from a
7
+ * request body (Constitution Principle XI/XIII). Mapping:
8
+ * - impersonation present → real admin id + impersonated customer id;
9
+ * - admin actor → admin id;
10
+ * - system actor → null admin id (worker/escape-hatch);
11
+ * - customer (no impersonation) → null admin id (a customer acting on their own).
12
+ *
13
+ * Fail-closed: with no ambient context this throws {@link MissingTenantContextError},
14
+ * so a Command can never run unscoped.
15
+ */
16
+ export declare function resolveCommandActor(): CommandActor;
17
+ /** Pure mapping, split out so it is trivially unit-testable without ALS. */
18
+ export declare function actorFromContext(ctx: TenantContext): CommandActor;
19
+ //# sourceMappingURL=actor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/commands/actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,CAMlD;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY,CAqBjE"}
@@ -0,0 +1,45 @@
1
+ import { getTenantContext, MissingTenantContextError } from '../tenancy/index.js';
2
+ /**
3
+ * Derive a {@link CommandActor} from the ambient TenantContext (feature 050).
4
+ *
5
+ * The actor is ALWAYS server-derived — a Command never accepts an actor from a
6
+ * request body (Constitution Principle XI/XIII). Mapping:
7
+ * - impersonation present → real admin id + impersonated customer id;
8
+ * - admin actor → admin id;
9
+ * - system actor → null admin id (worker/escape-hatch);
10
+ * - customer (no impersonation) → null admin id (a customer acting on their own).
11
+ *
12
+ * Fail-closed: with no ambient context this throws {@link MissingTenantContextError},
13
+ * so a Command can never run unscoped.
14
+ */
15
+ export function resolveCommandActor() {
16
+ const ctx = getTenantContext();
17
+ if (!ctx) {
18
+ throw new MissingTenantContextError('CommandBus.run requires an ambient TenantContext');
19
+ }
20
+ return actorFromContext(ctx);
21
+ }
22
+ /** Pure mapping, split out so it is trivially unit-testable without ALS. */
23
+ export function actorFromContext(ctx) {
24
+ if (ctx.impersonation) {
25
+ return {
26
+ actorAdminUserId: ctx.impersonation.realAdminUserId,
27
+ impersonatedCustomerAccountId: ctx.impersonation.impersonatedCustomerAccountId,
28
+ kind: ctx.actor.kind,
29
+ };
30
+ }
31
+ if (ctx.actor.kind === 'admin') {
32
+ return {
33
+ actorAdminUserId: ctx.actor.id ?? null,
34
+ impersonatedCustomerAccountId: null,
35
+ kind: 'admin',
36
+ };
37
+ }
38
+ // system or plain customer — no acting admin id.
39
+ return {
40
+ actorAdminUserId: null,
41
+ impersonatedCustomerAccountId: null,
42
+ kind: ctx.actor.kind,
43
+ };
44
+ }
45
+ //# sourceMappingURL=actor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/commands/actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAsB,MAAM,qBAAqB,CAAC;AAGtG;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,yBAAyB,CAAC,kDAAkD,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,GAAkB;IACjD,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO;YACL,gBAAgB,EAAE,GAAG,CAAC,aAAa,CAAC,eAAe;YACnD,6BAA6B,EAAE,GAAG,CAAC,aAAa,CAAC,6BAA6B;YAC9E,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;SACrB,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO;YACL,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI;YACtC,6BAA6B,EAAE,IAAI;YACnC,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IACD,iDAAiD;IACjD,OAAO;QACL,gBAAgB,EAAE,IAAI;QACtB,6BAA6B,EAAE,IAAI;QACnC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;KACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { EntityManager } from '@mikro-orm/postgresql';
2
+ import type { AuditPort } from '../kernel/ports/audit.js';
3
+ /** The mutation-shape half of an audit entry (actor is server-derived here). */
4
+ export interface AuditFromContextInput {
5
+ readonly action: string;
6
+ readonly objectType: string;
7
+ readonly objectId: string;
8
+ readonly stateBefore?: Record<string, unknown> | null;
9
+ readonly stateAfter?: Record<string, unknown> | null;
10
+ }
11
+ /**
12
+ * Record a co-transactional audit entry on `em`, deriving the actor from the
13
+ * ambient {@link getTenantContext} (feature 050) — never from a request body.
14
+ *
15
+ * This is the lightweight companion to {@link CommandBus.run}: where a write
16
+ * already runs inside its own `em.persistAndFlush(...)` (and therefore cannot be
17
+ * wrapped in the bus's own transaction without restructuring), a service calls
18
+ * this immediately before its flush so the audit row commits with the write. The
19
+ * actor is best-effort: with no ambient context (e.g. a system/worker path that
20
+ * did not open one) the entry records null actor ids rather than throwing, so a
21
+ * background write still audits. Callers that MUST have an actor use the bus.
22
+ */
23
+ export declare function recordAuditFromContext(auditLog: AuditPort, em: EntityManager, input: AuditFromContextInput): void;
24
+ //# sourceMappingURL=audit-from-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-from-context.d.ts","sourceRoot":"","sources":["../../src/commands/audit-from-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI1D,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAE,aAAa,EACjB,KAAK,EAAE,qBAAqB,GAC3B,IAAI,CAYN"}
@@ -0,0 +1,28 @@
1
+ import { actorFromContext } from './actor.js';
2
+ import { getTenantContext } from '../tenancy/index.js';
3
+ /**
4
+ * Record a co-transactional audit entry on `em`, deriving the actor from the
5
+ * ambient {@link getTenantContext} (feature 050) — never from a request body.
6
+ *
7
+ * This is the lightweight companion to {@link CommandBus.run}: where a write
8
+ * already runs inside its own `em.persistAndFlush(...)` (and therefore cannot be
9
+ * wrapped in the bus's own transaction without restructuring), a service calls
10
+ * this immediately before its flush so the audit row commits with the write. The
11
+ * actor is best-effort: with no ambient context (e.g. a system/worker path that
12
+ * did not open one) the entry records null actor ids rather than throwing, so a
13
+ * background write still audits. Callers that MUST have an actor use the bus.
14
+ */
15
+ export function recordAuditFromContext(auditLog, em, input) {
16
+ const ctx = getTenantContext();
17
+ const actor = ctx ? actorFromContext(ctx) : null;
18
+ auditLog.recordWithin(em, {
19
+ action: input.action,
20
+ objectType: input.objectType,
21
+ objectId: input.objectId,
22
+ actorAdminUserId: actor?.actorAdminUserId ?? null,
23
+ impersonatedCustomerAccountId: actor?.impersonatedCustomerAccountId ?? null,
24
+ stateBefore: input.stateBefore ?? null,
25
+ stateAfter: input.stateAfter ?? null,
26
+ });
27
+ }
28
+ //# sourceMappingURL=audit-from-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-from-context.js","sourceRoot":"","sources":["../../src/commands/audit-from-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAWvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAmB,EACnB,EAAiB,EACjB,KAA4B;IAE5B,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,IAAI,IAAI;QACjD,6BAA6B,EAAE,KAAK,EAAE,6BAA6B,IAAI,IAAI;QAC3E,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;QACtC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;KACrC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { MikroORM } from '@mikro-orm/postgresql';
2
+ import type { AuditPort } from '../kernel/ports/audit.js';
3
+ import type { EventBus } from '../events/bus.js';
4
+ import type { Command } from './command.js';
5
+ /**
6
+ * CommandBus (feature 054 — Constitution Principle XIII).
7
+ *
8
+ * The single, guaranteed audit-writing path for sensitive writes. `run`:
9
+ * 1. resolves the actor from the ambient TenantContext (fail-closed);
10
+ * 2. opens ONE `EventBus.run` scope so any emitted event is buffered;
11
+ * 3. forks the scoped EM and runs the whole command inside `em.transactional`;
12
+ * 4. captures before-state, performs the write, records exactly one audit entry
13
+ * on the same transactional em, and buffers the domain event;
14
+ * 5. on commit, the buffered event dispatches exactly once; on rollback, the
15
+ * audit row and the event are both gone (FR-003).
16
+ */
17
+ /** Optional per-request metadata (correlation id + client info) stamped onto audit rows. */
18
+ export interface CommandRequestMeta {
19
+ ipAddress?: string | null;
20
+ userAgent?: string | null;
21
+ requestId?: string | null;
22
+ }
23
+ export interface CommandBusOptions {
24
+ /**
25
+ * Resolves ambient request metadata (X-Request-Id, client IP/UA) for the audit
26
+ * row, when a Command runs inside an HTTP request. Returns `undefined` for
27
+ * worker/system runs. Kept injectable so the core layer imports no HTTP code.
28
+ */
29
+ getRequestMeta?: () => CommandRequestMeta | undefined;
30
+ }
31
+ export declare class CommandBus {
32
+ private readonly orm;
33
+ private readonly audit;
34
+ private readonly events;
35
+ private readonly options;
36
+ constructor(orm: MikroORM, audit: AuditPort, events: EventBus, options?: CommandBusOptions);
37
+ /** Execute a command: one scoped-fork transaction, exactly one audit row, ≤1 buffered event. */
38
+ run<TResult>(command: Command<TResult>): Promise<TResult>;
39
+ }
40
+ //# sourceMappingURL=command-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-bus.d.ts","sourceRoot":"","sources":["../../src/commands/command-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;;;;GAWG;AAEH,4FAA4F;AAC5F,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,kBAAkB,GAAG,SAAS,CAAC;CACvD;AAED,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,iBAAsB;IAGlD,gGAAgG;IAC1F,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAiChE"}
@@ -0,0 +1,46 @@
1
+ import { forkScopedEm } from '../tenancy/scoped-em.js';
2
+ import { resolveCommandActor } from './actor.js';
3
+ export class CommandBus {
4
+ orm;
5
+ audit;
6
+ events;
7
+ options;
8
+ constructor(orm, audit, events, options = {}) {
9
+ this.orm = orm;
10
+ this.audit = audit;
11
+ this.events = events;
12
+ this.options = options;
13
+ }
14
+ /** Execute a command: one scoped-fork transaction, exactly one audit row, ≤1 buffered event. */
15
+ async run(command) {
16
+ // Fail-closed: no ambient TenantContext ⇒ throws before any write (Principle XI).
17
+ const actor = resolveCommandActor();
18
+ const meta = this.options.getRequestMeta?.() ?? {};
19
+ return this.events.run(async () => {
20
+ const scoped = forkScopedEm(this.orm);
21
+ return scoped.transactional(async (em) => {
22
+ const captured = command.capture ? await command.capture({ em, actor }) : null;
23
+ const { result, before, after, skipAudit } = await command.run({ em, actor });
24
+ if (!skipAudit) {
25
+ this.audit.recordWithin(em, {
26
+ action: command.action,
27
+ objectType: command.objectType,
28
+ objectId: command.objectId,
29
+ actorAdminUserId: actor.actorAdminUserId,
30
+ impersonatedCustomerAccountId: actor.impersonatedCustomerAccountId,
31
+ stateBefore: before ?? captured ?? null,
32
+ stateAfter: after ?? null,
33
+ ipAddress: meta.ipAddress ?? null,
34
+ userAgent: meta.userAgent ?? null,
35
+ requestId: meta.requestId ?? null,
36
+ });
37
+ }
38
+ const evt = command.event?.(result);
39
+ if (evt)
40
+ this.events.emit(evt.eventName, evt.payload);
41
+ return result;
42
+ });
43
+ });
44
+ }
45
+ }
46
+ //# sourceMappingURL=command-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-bus.js","sourceRoot":"","sources":["../../src/commands/command-bus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAgCjD,MAAM,OAAO,UAAU;IAEF;IACA;IACA;IACA;IAJnB,YACmB,GAAa,EACb,KAAgB,EAChB,MAAgB,EAChB,UAA6B,EAAE;QAH/B,QAAG,GAAH,GAAG,CAAU;QACb,UAAK,GAAL,KAAK,CAAW;QAChB,WAAM,GAAN,MAAM,CAAU;QAChB,YAAO,GAAP,OAAO,CAAwB;IAC/C,CAAC;IAEJ,gGAAgG;IAChG,KAAK,CAAC,GAAG,CAAU,OAAyB;QAC1C,kFAAkF;QAClF,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;QAEnD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,MAAM,GAAkB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gBACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE9E,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE;wBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;wBACxC,6BAA6B,EAAE,KAAK,CAAC,6BAA6B;wBAClE,WAAW,EAAE,MAAM,IAAI,QAAQ,IAAI,IAAI;wBACvC,UAAU,EAAE,KAAK,IAAI,IAAI;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;wBACjC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;wBACjC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;qBAClC,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,GAAG;oBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEtD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,76 @@
1
+ import type { EntityManager } from '@mikro-orm/postgresql';
2
+ import type { EventBase } from '../events/bus.js';
3
+ /**
4
+ * Command Bus core types (feature 054 — Uniform Write Auditing & Undo,
5
+ * Constitution Principle XIII).
6
+ *
7
+ * A Command is the single, framework-level path for a sensitive write. Running
8
+ * it through the {@link CommandBus} captures the actor + before/after state,
9
+ * writes exactly one audit entry, and emits an optional domain event — all
10
+ * co-transactionally. Services in migrated modules therefore never call the
11
+ * audit writer by hand.
12
+ */
13
+ /** A JSON-serializable snapshot persisted into the audit `stateBefore`/`stateAfter` columns. */
14
+ export type AuditState = Record<string, unknown> | null;
15
+ /**
16
+ * The acting principal for a Command, derived server-side from the ambient
17
+ * TenantContext (never from a request body). Maps directly onto the audit
18
+ * `actorAdminUserId` / `impersonatedCustomerAccountId` columns.
19
+ */
20
+ export interface CommandActor {
21
+ /** The Admin User who acted. `null` for a system/worker actor (or a plain customer action). */
22
+ readonly actorAdminUserId: string | null;
23
+ /** The impersonated Customer Account, when an admin acted on a customer's behalf. */
24
+ readonly impersonatedCustomerAccountId: string | null;
25
+ /** The originating tenant-actor kind, for callers that need to branch on it. */
26
+ readonly kind: 'admin' | 'customer' | 'system' | 'api_key';
27
+ }
28
+ /** A domain event a Command emits on commit, in the shape the {@link EventBus} expects. */
29
+ export interface CommandEvent<P extends EventBase = EventBase> {
30
+ readonly eventName: string;
31
+ readonly payload: P;
32
+ }
33
+ /** Execution context handed to a Command: the transactional EM and the resolved actor. */
34
+ export interface CommandContext {
35
+ /** The transactional EntityManager. All of the Command's writes MUST run on this em. */
36
+ readonly em: EntityManager;
37
+ readonly actor: CommandActor;
38
+ }
39
+ /** What a Command's `run` returns: the caller-facing result plus the audit state. */
40
+ export interface CommandOutcome<TResult> {
41
+ /** Value returned to the caller of `CommandBus.run`. */
42
+ readonly result: TResult;
43
+ /**
44
+ * Snapshot recorded as the audit `stateBefore`. Overrides `capture()` when both
45
+ * are present — lets a command that computes before+after in one pass supply both.
46
+ */
47
+ readonly before?: AuditState;
48
+ /** Snapshot recorded as the audit `stateAfter`. Omit/`null` when there is nothing to record. */
49
+ readonly after?: AuditState;
50
+ /**
51
+ * When true, the bus commits the transaction and returns the result but writes
52
+ * NO audit entry — for a command whose `run` decided not to mutate (a no-op
53
+ * business outcome). Keeps "no write ⇒ no audit row" honest.
54
+ */
55
+ readonly skipAudit?: boolean;
56
+ }
57
+ /**
58
+ * A named sensitive write. `capture` reads pre-state (audit `stateBefore`),
59
+ * `run` performs the write and returns the result + after-state, and `event`
60
+ * optionally declares a domain event dispatched once on commit.
61
+ */
62
+ export interface Command<TResult = unknown> {
63
+ /** Stable dot-namespaced action, e.g. `product.update`, `credit_limit.adjust`. */
64
+ readonly action: string;
65
+ /** Polymorphic type of the affected object, e.g. `product`. */
66
+ readonly objectType: string;
67
+ /** Id of the affected object (or the operation id for a composite/bulk command). */
68
+ readonly objectId: string;
69
+ /** Optional pre-state capture, on the transactional em. Returns the audit `stateBefore`. */
70
+ capture?(ctx: CommandContext): Promise<AuditState>;
71
+ /** The domain write. MUST use `ctx.em`. Returns the caller result and the audit after-state. */
72
+ run(ctx: CommandContext): Promise<CommandOutcome<TResult>>;
73
+ /** Optional domain event, dispatched exactly once after commit (dropped on rollback). */
74
+ event?(result: TResult): CommandEvent | undefined;
75
+ }
76
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/commands/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;GASG;AAEH,gGAAgG;AAChG,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,+FAA+F;IAC/F,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,qFAAqF;IACrF,QAAQ,CAAC,6BAA6B,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC5D;AAED,2FAA2F;AAC3F,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;CACrB;AAED,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,qFAAqF;AACrF,MAAM,WAAW,cAAc,CAAC,OAAO;IACrC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,gGAAgG;IAChG,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO,CAAC,OAAO,GAAG,OAAO;IACxC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,4FAA4F;IAC5F,OAAO,CAAC,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEnD,gGAAgG;IAChG,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,yFAAyF;IACzF,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;CACnD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/commands/command.ts"],"names":[],"mappings":""}