@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,223 @@
1
+ import { z } from 'zod';
2
+ import { LifecycleError } from '../services/orchestrator.js';
3
+ import { buildStaticRegistry } from '../services/static-registry.js';
4
+ import { orchestratorFor } from './operator-runtime.js';
5
+ /**
6
+ * `module:uninstall <module-id> [--hard] [--force] [--json]` — the body
7
+ * (`specs/115-lifecycle-container-move/`, D115-1).
8
+ *
9
+ * Soft uninstall (default): unregisters the module's settings, marks the
10
+ * registry row as `uninstalled`, leaves DB tables / data intact.
11
+ * Hard uninstall (`--hard`): also reverts the module's migrations and
12
+ * deletes the registry row. `--hard` additionally requires `--force` — on every
13
+ * run, terminal or not (owner ruling **D-217**), because no caller supplies
14
+ * {@link OperatorRuntime.confirm} and absent means this run cannot ask
15
+ * (D115-7, R2.7).
16
+ *
17
+ * Exit codes (per `specs/018-module-lifecycle/contracts/cli-commands.md` §C-2),
18
+ * preserved byte-for-byte by the move (R2.3):
19
+ * - 0 success (or already uninstalled — no-op)
20
+ * - 64 misuse: bad argv, --hard without --force (D-217: every run)
21
+ * - 66 conflict: dependents still installed
22
+ * - 70 internal error during uninstall
23
+ * - 75 lock unavailable
24
+ * - 77 refused: the module declares itself non-deactivatable (D-69)
25
+ */
26
+ const UninstallArgsSchema = z.object({
27
+ id: z.string().regex(/^_?[a-z][a-z0-9_]*$/),
28
+ hard: z.boolean().default(false),
29
+ force: z.boolean().default(false),
30
+ json: z.boolean().default(false),
31
+ });
32
+ function parseArgv(argv) {
33
+ const positional = [];
34
+ let hard = false;
35
+ let force = false;
36
+ let json = false;
37
+ // Backward-compat aliases for the legacy modules:uninstall flags.
38
+ for (const arg of argv) {
39
+ if (arg === '--hard')
40
+ hard = true;
41
+ else if (arg === '--force')
42
+ force = true;
43
+ else if (arg === '--json')
44
+ json = true;
45
+ else if (arg === '--remove-settings') {
46
+ hard = true;
47
+ force = true;
48
+ }
49
+ else if (arg === '--preserve-settings') {
50
+ // soft default — no-op flag, kept for back-compat
51
+ }
52
+ else if (arg.startsWith('--'))
53
+ return { error: `unknown flag: ${arg}` };
54
+ else
55
+ positional.push(arg);
56
+ }
57
+ if (positional.length === 0)
58
+ return { error: 'missing module id' };
59
+ if (positional.length > 1) {
60
+ return { error: `extra positional args: ${positional.slice(1).join(' ')}` };
61
+ }
62
+ const result = UninstallArgsSchema.safeParse({
63
+ id: positional[0],
64
+ hard,
65
+ force,
66
+ json,
67
+ });
68
+ if (!result.success) {
69
+ return {
70
+ error: `invalid argument: ${result.error.issues.map((i) => i.message).join('; ')}`,
71
+ };
72
+ }
73
+ return result.data;
74
+ }
75
+ export async function runUninstallCommand(argv, rt) {
76
+ const parsed = parseArgv(argv);
77
+ if ('error' in parsed) {
78
+ rt.err(`usage: module:uninstall <module-id> [--hard] [--force] [--json]\n` +
79
+ `error: ${parsed.error}\n`);
80
+ return 64;
81
+ }
82
+ const args = parsed;
83
+ // Hard uninstall without --force requires a confirmation this run can
84
+ // obtain, and whether it can is the *caller's* answer rather than this file's
85
+ // (D115-7, R2.7). It used to be `!process.stdout.isTTY` here. That read is a
86
+ // decision taken from a process global, which defeats R2.4's two reasons —
87
+ // *testable without a process*, and *an instance may frame the output* —
88
+ // exactly as writing to one would: a body test has to mutate a global to
89
+ // reach this branch, and a deploy script, a systemd unit or an admin action
90
+ // has its destructive-write policy decided by whether *its own* stdout
91
+ // happens to be a terminal, which is a fact about the wrapper and not about
92
+ // the operator. It was also wrong on its own terms — it tested stdout alone,
93
+ // so `docker run -t`, a `script -qec` wrapper or any CI configuration that
94
+ // allocates a terminal for coloured output read as interactive and took the
95
+ // branch that **proceeds**, which is the mirror of the predicate
96
+ // `specs/117-instance-bring-up/contracts/input-resolution.md` R3.5 refuses.
97
+ //
98
+ // The exit code and the sentence stay here, on this side of the partition
99
+ // with the rest of the table (§1.1, R2.3); only the fact travels.
100
+ //
101
+ // **Absent means this run cannot ask**, and nothing supplies `confirm`, so the
102
+ // refusal is what every invocation meets — which is the whole of §C-2 step 6
103
+ // since owner ruling **D-217** (2026-09-07). That ruling struck the step's
104
+ // second half, *"or a tty prompt confirming "yes" verbatim"*, which had been
105
+ // contract since feature 018 and was never implemented in either tree: a
106
+ // promise that went unimplemented that long, in a destructive path, with
107
+ // nobody noticing, is evidence nobody needed it. `--hard` requires `--force`
108
+ // whether or not the run has a terminal, and nothing in the platform ever
109
+ // needs stdin.
110
+ //
111
+ // **The field stays** and this predicate keeps reading it, both by the
112
+ // ruling's own words. Supplying `confirm` from an entry point *without* also
113
+ // building the prompt is therefore the one way back to the data loss above —
114
+ // and it is the shape D115-7 anticipated, since it recorded the intent that
115
+ // the entry points would supply it on the R2.7 conjunction. It is pinned by
116
+ // `uninstall-hard-needs-force.integration.test.ts`, whose second case runs
117
+ // this entry point with every interactivity signal reading true; the first
118
+ // case spawns through a pipe and, measured, stays green under exactly that
119
+ // change.
120
+ if (args.hard && !args.force && !rt.confirm) {
121
+ rt.err(`[uninstall] --hard requires --force unless this run can ask for confirmation ` +
122
+ `(refusing to delete data without explicit confirmation).\n`);
123
+ return 64;
124
+ }
125
+ let registry;
126
+ try {
127
+ // The entries are the **instance-resolved** set (D-157.6a) — core, this
128
+ // deployment's overlay modules and every installed Endora module package —
129
+ // resolved by the entry point, which is where the collision refusal reaches
130
+ // an operator (R2.2). The runtime carries no container, so a command cannot
131
+ // compose the platform it operates on (D-157.2).
132
+ registry = buildStaticRegistry(rt.entries);
133
+ }
134
+ catch (err) {
135
+ const msg = err instanceof Error ? err.message : String(err);
136
+ rt.err(`[manifest] ${msg}\n`);
137
+ return 65;
138
+ }
139
+ // A platform command composes nothing (D-157.2), so the merged ownership a
140
+ // composition root builds is not available to it: it answers for the committed
141
+ // core registry and for nothing else, and a hard uninstall of a package module
142
+ // is refused from the terminal rather than reverting core's rows and leaving the
143
+ // package's behind. The map is read from the host's generated registry, which
144
+ // is why it arrives on the runtime rather than being reached for here.
145
+ const migrationOwnership = rt.migrationOwnership
146
+ ? await rt.migrationOwnership()
147
+ : undefined;
148
+ const orchestrator = await orchestratorFor(rt, registry, migrationOwnership ? { migrationOwnership } : {});
149
+ try {
150
+ const result = await orchestrator.uninstall(args.id, { hard: args.hard });
151
+ if (args.json) {
152
+ rt.out(JSON.stringify(result) + '\n');
153
+ }
154
+ else if (result.state === 'already-uninstalled') {
155
+ rt.out(`[uninstall] ${args.id} — already uninstalled (no-op)\n`);
156
+ }
157
+ else if (args.hard) {
158
+ rt.out(`[uninstall] ${args.id} --hard (DATA DELETED)\n` +
159
+ ` ✓ uninstall hook completed\n` +
160
+ ` ✓ settings removed: ${result.removedGroups} groups, ${result.removedSettings} settings\n` +
161
+ ` ✓ migrations reverted: ${result.revertedMigrations.length === 0 ? '(none matched filename pattern)' : result.revertedMigrations.join(', ')}\n` +
162
+ ` ✓ registry row deleted\n`);
163
+ }
164
+ else {
165
+ rt.out(`[uninstall] ${args.id} (soft, data preserved)\n` +
166
+ ` ✓ uninstall hook completed\n` +
167
+ ` ✓ settings unregistered: ${result.removedGroups} groups, ${result.removedSettings} settings (rows removed; tables intact)\n` +
168
+ ` ✓ registry updated: state=uninstalled\n` +
169
+ `re-installing re-uses the applied migrations, but not the configuration:\n` +
170
+ `the settings above are gone; a re-install recreates them from the manifest defaults.\n` +
171
+ `Use module:disable to pause a module without losing its configuration.\n`);
172
+ }
173
+ return 0;
174
+ }
175
+ catch (err) {
176
+ return mapError(err, args.json, rt);
177
+ }
178
+ }
179
+ function mapError(err, asJson, rt) {
180
+ if (err instanceof LifecycleError) {
181
+ if (asJson) {
182
+ rt.err(JSON.stringify({
183
+ error: err.kind,
184
+ message: err.message,
185
+ ...err.details,
186
+ }) + '\n');
187
+ }
188
+ else {
189
+ rt.err(`[uninstall] ${err.message}\n`);
190
+ if (err.kind === 'non-deactivatable') {
191
+ // Same hint the disable path prints, for the same reason: there is no
192
+ // `--force` to suggest. The consequence of removing one of these is a
193
+ // deployment that cannot authenticate the operator who would put it
194
+ // back — and after `--hard` the tables that recovery needs are gone.
195
+ rt.err(`hint: this module declares itself non-deactivatable in its manifest, which refuses ` +
196
+ `uninstall as well as disable. If that declaration is wrong, change the manifest — ` +
197
+ `there is no override flag.\n`);
198
+ }
199
+ }
200
+ switch (err.kind) {
201
+ case 'unknown-module':
202
+ case 'wrong-state':
203
+ return 64;
204
+ case 'manifest-cycle':
205
+ return 65;
206
+ case 'missing-deps':
207
+ case 'dependents-block':
208
+ return 66;
209
+ case 'install-failed':
210
+ case 'uninstall-failed':
211
+ return 70;
212
+ case 'lock-busy':
213
+ return 75;
214
+ case 'non-deactivatable':
215
+ // EX_NOPERM — the request was well-formed and is not permitted.
216
+ return 77;
217
+ }
218
+ }
219
+ const msg = err instanceof Error ? `${err.name}: ${err.message}` : String(err);
220
+ rt.err(`[internal] ${msg}\n`);
221
+ return 70;
222
+ }
223
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/lifecycle/commands/uninstall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * A deployment's divergence declaration — the **shape half**
3
+ * (`specs/115-lifecycle-container-move/`, D115-3;
4
+ * `contracts/operator-half.md` §4).
5
+ *
6
+ * What a deployment declares about how it means to differ from core. Its first
7
+ * content is the declared escape from D-101's boot refusal: a deployment may
8
+ * ship fewer modules than its manifests declare — that is the reduced
9
+ * deployment feature 071's packaging split exists to make possible — and what it
10
+ * may not do is arrive at that state silently. The owner's E1 ruling is that
11
+ * *"someone deliberately assembling a reduced deployment must declare that they
12
+ * know"*.
13
+ *
14
+ * The declaration is a **committed, reviewed, per-deployment file**, not a flag.
15
+ * D-69 refused a `--force` on the orchestrator's withdrawal guard on the ground
16
+ * that a flag is weighed once, at 2 a.m., by one person; the same reasoning
17
+ * points the same way here. A committed entry appears in the merge request that
18
+ * assembles the deployment, where somebody who is not mid-incident reads it.
19
+ *
20
+ * No file, or a declaration with nothing in it, means "this deployment differs
21
+ * from core in no way it has to declare" — the two states are deliberately the
22
+ * same answer, which is what makes the split below load-bearing rather than
23
+ * tidy.
24
+ *
25
+ * ## Why only two functions are here
26
+ *
27
+ * `divergence.ts` was one file with three things in it: this parser, a path
28
+ * derivation and a loader. The rule that splits them is `contracts/operator-half.md`
29
+ * §1's — *a file belongs to `@endora-commerce/platform` unless it names a path in
30
+ * the tree that installs the platform* — and these two name none. They are pure
31
+ * over {@link DeploymentDivergenceDeclarationSchema}: no disk, no environment,
32
+ * no deployment. `path` is a caller-supplied string that appears in a refusal
33
+ * and is never composed, resolved or read.
34
+ *
35
+ * **The other half may not follow them here, and that is measured rather than
36
+ * preferred.** The loader derives its root from its own `import.meta.url`, and
37
+ * that chain is correct for its location and for no other: it was one `dirname`
38
+ * too high once, so it composed `backend/apps/<d>/divergence.ts`, `existsSync`
39
+ * said no, and **every deployment read as declaring nothing** — D-101's declared
40
+ * escape had never worked, in production or under `tsx`, and nothing could see
41
+ * it because an absent file and an empty declaration are the same answer. Three
42
+ * `dirname`s from a file in this directory's neighbourhood give
43
+ * `packages/platform/src` or `packages/platform`, so a wholesale move reproduces
44
+ * that state exactly. The locator stays in the tree that owns `apps/`, and the
45
+ * platform receives the *value* — which is the seam it already had:
46
+ * `kernel/compose.ts` takes the declaration as a field of `ComposeModulesOptions`
47
+ * and has never called the loader.
48
+ *
49
+ * @see `backend/src/overlay/divergence-loader.ts` — the half that reads the disk.
50
+ */
51
+ import { type DeploymentDivergenceDeclaration } from '@endora-commerce/contracts';
52
+ /** A declaration that declares nothing — an absent file's answer, as data. */
53
+ export declare function emptyDivergenceDeclaration(): DeploymentDivergenceDeclaration;
54
+ /**
55
+ * A declaration is only a declaration if each entry carries its reason.
56
+ *
57
+ * Exported and pure so the shape rules have a proof that does not need a
58
+ * deployment on disk: a fixture enters here as the raw exported value, which is
59
+ * the top of this analysis rather than something the loader already computed.
60
+ *
61
+ * A field left out means *none of these*, which is the reading an absent file
62
+ * already gets; a field that is present and malformed is refused, naming the
63
+ * deployment's own file. An **array** is refused with the shape it should have
64
+ * had, because that is what every declaration in the tree looked like before
65
+ * D-205 and a client copying an older one deserves the sentence rather than
66
+ * `expected object, received array`.
67
+ *
68
+ * @param path the declaration's own location, as the caller wishes to name it
69
+ * to its reader. It is prose in a refusal and nothing else — this function
70
+ * neither composes it nor reads it, which is what lets the platform hold the
71
+ * shape rule while the tree that owns `apps/` holds the layout.
72
+ */
73
+ export declare function parseDivergenceDeclaration(value: unknown, path: string): DeploymentDivergenceDeclaration;
74
+ //# sourceMappingURL=divergence-declaration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divergence-declaration.d.ts","sourceRoot":"","sources":["../../src/lifecycle/divergence-declaration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,4BAA4B,CAAC;AAEpC,8EAA8E;AAC9E,wBAAgB,0BAA0B,IAAI,+BAA+B,CAE5E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACX,+BAA+B,CAoBjC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * A deployment's divergence declaration — the **shape half**
3
+ * (`specs/115-lifecycle-container-move/`, D115-3;
4
+ * `contracts/operator-half.md` §4).
5
+ *
6
+ * What a deployment declares about how it means to differ from core. Its first
7
+ * content is the declared escape from D-101's boot refusal: a deployment may
8
+ * ship fewer modules than its manifests declare — that is the reduced
9
+ * deployment feature 071's packaging split exists to make possible — and what it
10
+ * may not do is arrive at that state silently. The owner's E1 ruling is that
11
+ * *"someone deliberately assembling a reduced deployment must declare that they
12
+ * know"*.
13
+ *
14
+ * The declaration is a **committed, reviewed, per-deployment file**, not a flag.
15
+ * D-69 refused a `--force` on the orchestrator's withdrawal guard on the ground
16
+ * that a flag is weighed once, at 2 a.m., by one person; the same reasoning
17
+ * points the same way here. A committed entry appears in the merge request that
18
+ * assembles the deployment, where somebody who is not mid-incident reads it.
19
+ *
20
+ * No file, or a declaration with nothing in it, means "this deployment differs
21
+ * from core in no way it has to declare" — the two states are deliberately the
22
+ * same answer, which is what makes the split below load-bearing rather than
23
+ * tidy.
24
+ *
25
+ * ## Why only two functions are here
26
+ *
27
+ * `divergence.ts` was one file with three things in it: this parser, a path
28
+ * derivation and a loader. The rule that splits them is `contracts/operator-half.md`
29
+ * §1's — *a file belongs to `@endora-commerce/platform` unless it names a path in
30
+ * the tree that installs the platform* — and these two name none. They are pure
31
+ * over {@link DeploymentDivergenceDeclarationSchema}: no disk, no environment,
32
+ * no deployment. `path` is a caller-supplied string that appears in a refusal
33
+ * and is never composed, resolved or read.
34
+ *
35
+ * **The other half may not follow them here, and that is measured rather than
36
+ * preferred.** The loader derives its root from its own `import.meta.url`, and
37
+ * that chain is correct for its location and for no other: it was one `dirname`
38
+ * too high once, so it composed `backend/apps/<d>/divergence.ts`, `existsSync`
39
+ * said no, and **every deployment read as declaring nothing** — D-101's declared
40
+ * escape had never worked, in production or under `tsx`, and nothing could see
41
+ * it because an absent file and an empty declaration are the same answer. Three
42
+ * `dirname`s from a file in this directory's neighbourhood give
43
+ * `packages/platform/src` or `packages/platform`, so a wholesale move reproduces
44
+ * that state exactly. The locator stays in the tree that owns `apps/`, and the
45
+ * platform receives the *value* — which is the seam it already had:
46
+ * `kernel/compose.ts` takes the declaration as a field of `ComposeModulesOptions`
47
+ * and has never called the loader.
48
+ *
49
+ * @see `backend/src/overlay/divergence-loader.ts` — the half that reads the disk.
50
+ */
51
+ import { DeploymentDivergenceDeclarationSchema, } from '@endora-commerce/contracts';
52
+ /** A declaration that declares nothing — an absent file's answer, as data. */
53
+ export function emptyDivergenceDeclaration() {
54
+ return { omittedModules: [], decorationOrder: {}, reasons: {} };
55
+ }
56
+ /**
57
+ * A declaration is only a declaration if each entry carries its reason.
58
+ *
59
+ * Exported and pure so the shape rules have a proof that does not need a
60
+ * deployment on disk: a fixture enters here as the raw exported value, which is
61
+ * the top of this analysis rather than something the loader already computed.
62
+ *
63
+ * A field left out means *none of these*, which is the reading an absent file
64
+ * already gets; a field that is present and malformed is refused, naming the
65
+ * deployment's own file. An **array** is refused with the shape it should have
66
+ * had, because that is what every declaration in the tree looked like before
67
+ * D-205 and a client copying an older one deserves the sentence rather than
68
+ * `expected object, received array`.
69
+ *
70
+ * @param path the declaration's own location, as the caller wishes to name it
71
+ * to its reader. It is prose in a refusal and nothing else — this function
72
+ * neither composes it nor reads it, which is what lets the platform hold the
73
+ * shape rule while the tree that owns `apps/` holds the layout.
74
+ */
75
+ export function parseDivergenceDeclaration(value, path) {
76
+ if (Array.isArray(value)) {
77
+ throw new Error(`${path} must export \`divergence\` as an object — ` +
78
+ '{ omittedModules, decorationOrder, reasons }. It was an array, which is the shape ' +
79
+ 'the declaration had while it carried omissions and nothing else (D-205); the ' +
80
+ 'omissions move into `omittedModules` unchanged.');
81
+ }
82
+ const parsed = DeploymentDivergenceDeclarationSchema.safeParse(value);
83
+ if (!parsed.success) {
84
+ const detail = parsed.error.issues
85
+ .map((issue) => `${issue.path.join('.') || '(declaration)'}: ${issue.message}`)
86
+ .join('; ');
87
+ throw new Error(`${path} is not a declaration — ${detail}. An omission says which module this ` +
88
+ 'deployment does not ship and what it does instead; the sentence is the review.');
89
+ }
90
+ return parsed.data;
91
+ }
92
+ //# sourceMappingURL=divergence-declaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divergence-declaration.js","sourceRoot":"","sources":["../../src/lifecycle/divergence-declaration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EACL,qCAAqC,GAEtC,MAAM,4BAA4B,CAAC;AAEpC,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B;IACxC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAc,EACd,IAAY;IAEZ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,6CAA6C;YAClD,oFAAoF;YACpF,+EAA+E;YAC/E,iDAAiD,CACpD,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,qCAAqC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,eAAe,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aAC9E,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,2BAA2B,MAAM,uCAAuC;YAC7E,gFAAgF,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "actions.openPlatformModules.label": "Modules",
3
+ "actions.openPlatformModules.description": "What this deployment offers, and what your business has switched on"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "actions.openPlatformModules.label": "Moduły",
3
+ "actions.openPlatformModules.description": "Co udostępnia ta instalacja i co Twoja firma ma włączone"
4
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * `./lifecycle` — the platform's operator surface, and the third subpath that is
3
+ * **declared and not published** (`specs/115-lifecycle-container-move/`, D115-4;
4
+ * `contracts/operator-half.md` §5).
5
+ *
6
+ * ## Why it exists at all
7
+ *
8
+ * `_lifecycle` is one module whose sources sit in two artefacts. The manifest,
9
+ * the routes, the Commands, the orchestrator and eight services are in
10
+ * `packages/platform/src/lifecycle/`; the manifest registry, the divergence
11
+ * loader and the five `module:*` commands are still in the application. The
12
+ * application reaches the first half through twelve re-export shims, and each of
13
+ * those shims forwards to `../../../../packages/platform/dist/lifecycle/…` — a
14
+ * relative path into a sibling package's build output, which resolves in this
15
+ * checkout and in **no client instance**. `manifest-index.generated.ts` carries
16
+ * the same reach for `_lifecycle`'s manifest, which is the sharpest form of it:
17
+ * the artefact whose whole job is to register the modules a build ships cannot
18
+ * register `_lifecycle` anywhere but here.
19
+ *
20
+ * This barrel is the address those reaches are drained onto. It is one subpath
21
+ * for one surface, deliberately — a second, `./lifecycle/commands`, would be a
22
+ * second address for one thing, and a consumer that wants one symbol imports one
23
+ * symbol.
24
+ *
25
+ * ## The rule it carries: no module may name it, ever
26
+ *
27
+ * D-160.11 refused to make `_lifecycle` its own package on the ground that it
28
+ * would be *"a public API with one consumer forever"*. That is an argument
29
+ * against **publishing** a surface and not against giving it an address, which
30
+ * is the distinction this subpath is built on: it is declared by the `exports`
31
+ * map, so `node` and `tsc` resolve it for the host, its five entry points and
32
+ * the test kit, and it is carried by no *published* barrel, so
33
+ * `check:platform-surface` reports a module naming it as `host-internal-subpath`
34
+ * — with no change to that check, because `declaredSubpaths` is read off the
35
+ * manifest rather than written down.
36
+ *
37
+ * `PUBLISHED_SUBPATHS` therefore stays at five, and that is not an omission to
38
+ * be tidied later. `PlatformSurface.published` is keyed by target file with no
39
+ * subpath dimension, so a sixth entry there would publish
40
+ * `ModuleLifecycleOrchestrator` and `installGatingGraph` for a module's
41
+ * *relative* reach at those files too, and — the check reporting `violations=0`
42
+ * — would change nothing it prints. A blindness that arrives green.
43
+ *
44
+ * The rule the class encodes is one sentence: this surface **drives** the
45
+ * platform's own presence axis, so a module that could name it could install,
46
+ * uninstall, enable or disable its siblings. That is `./composition`'s reason
47
+ * with one noun changed.
48
+ *
49
+ * ## What is on it, and why exactly this
50
+ *
51
+ * Exactly the names a first-party source outside the platform imports through
52
+ * `@endora-commerce/platform/lifecycle`, and nothing else. It is a
53
+ * **consequence** rather than a ruling — unlike `./composition`, whose 27
54
+ * symbols D-160.14 names one by one — so writing the set down anywhere would be
55
+ * a derived fact copied into a second place (D-100).
56
+ * `test/unit/kernel/published-surface.test.ts` derives it from the consumers on
57
+ * every run and holds the two to each other in both directions: a name here
58
+ * that nobody imports is surface parked against a future need, and a name
59
+ * imported that is not here is a consumer that cannot compile.
60
+ *
61
+ * A symbol **graduates** to a public barrel in the merge request that first
62
+ * gives it a module-package production consumer, and leaves this one in the same
63
+ * merge request (§5, R5.5). Two homes would be two answers to "is this public
64
+ * API?". There is no such consumer today and none is anticipated.
65
+ *
66
+ * ## The population it was derived from until Phase 7, and why that ended
67
+ *
68
+ * The consumer rule could not be the rule while the application reached this
69
+ * surface through fifteen re-export shims: nothing outside the platform named
70
+ * the specifier, so the ratchet would have been green over nothing — issue
71
+ * #113's shape. What stood in its place was a *ledger*-derived rule. Each shim
72
+ * spells `export * from '<target>'`, so the application holds that file's whole
73
+ * namespace, and a reach could retire onto this barrel only if every name it
74
+ * yielded were here; the expected set was therefore a function of
75
+ * `RELATIVE_HOST_REACHES` and the fourteen files it named.
76
+ *
77
+ * Phase 3 gave the subpath its first consumers, Phase 5 and Phase 6 added the
78
+ * five command bodies and the two generated artefacts, and Phase 7 re-pointed
79
+ * the 112 reaches in `backend/test/**` and deleted the last nine shims. So the
80
+ * ledger derivation has no population left — no ledgered reach names a platform
81
+ * lifecycle file, and none will again, because the address exists — and 28
82
+ * names left with it: symbols that were here only because some shim's
83
+ * `export *` yielded them and that nobody had ever asked for by name.
84
+ * `routes.storefront.ts` and `commands/activation.commands.ts` were absent for
85
+ * that same reason all along.
86
+ */
87
+ export { type OperatorResources, type OperatorRuntime, } from './commands/operator-runtime.js';
88
+ export { runInstallCommand } from './commands/install.js';
89
+ export { runUninstallCommand } from './commands/uninstall.js';
90
+ export { runEnableCommand } from './commands/enable.js';
91
+ export { runDisableCommand } from './commands/disable.js';
92
+ export { runStatusCommand } from './commands/status.js';
93
+ export { runInstanceOperatorCommand } from './commands/operator-entry.js';
94
+ export { registerModule } from './backend.js';
95
+ export { manifest } from './manifest.js';
96
+ export { lifecycleModuleFromStaticEntries } from './plugin.js';
97
+ export { registerLifecycleAdminRoutes, } from './routes.admin.js';
98
+ export { LifecycleError, ModuleLifecycleOrchestrator, } from './services/orchestrator.js';
99
+ export { LOCK_KEY } from './services/lock.js';
100
+ export { ModuleDepGraph } from './services/dep-graph.js';
101
+ export { acknowledgedPortEdgesFrom, gatingGraph, installGatingGraph, ModuleGatingGraph, nonBindingPortEdgesFrom, provideDefaultGatingManifests, type NonBindingPortEdge, } from './services/gating-graph.js';
102
+ export { buildDeactivationLedger, deactivationConsequencesFor, type CrossModuleRead, type DeactivationLedger, type LedgerEntry, type UnassignedEdge, } from './services/deactivation-ledger.js';
103
+ export { discoverManifests, folderNameFromPath, ManifestLoadError, type LoadedLifecycleParticipant, type LoadedManifestRegistry, } from './services/manifest-loader.js';
104
+ export { deploymentShippedEntries, type ModuleIdClaimOrigin, } from './services/module-origin.js';
105
+ export { assertNoModuleIdCollisions, moduleIdCollisions, ModuleIdCollisionError, type ModuleIdClaim, type ModuleIdCollision, } from './services/module-id-claims.js';
106
+ export { coreManifestEntries, ManifestPathMissingError, resolveManifestEntries, type ManifestSources, type RegisteredManifestEntry, } from './manifest-registry.js';
107
+ export { buildStaticRegistry } from './services/static-registry.js';
108
+ export { emptyDivergenceDeclaration, parseDivergenceDeclaration, } from './divergence-declaration.js';
109
+ export { assertLockedModulesPresent, bootConvergenceWarnings, firstBootInsertPopulation, loadModulePresence, ReducedDeploymentError, type ShippedModuleEntry, } from './services/presence-load.js';
110
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAQH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAkBxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAmB1E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAS9C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,GAC5B,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACL,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAYpE,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,0BAA0B,EAK1B,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,kBAAkB,GACxB,MAAM,6BAA6B,CAAC"}