@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,312 @@
1
+ // Installed extension packages — the enumeration half (feature 080, T031).
2
+ //
3
+ // This answers one question: which `node_modules` directories does this
4
+ // platform read, and which of the packages in them claim to be Endora modules?
5
+ // Turning those claims into composer entries is `package-runtime.ts`'s job.
6
+ //
7
+ // ## What it can see
8
+ //
9
+ // - a package installed from a registry or from a tarball, in any layout that
10
+ // leaves the package inside the `node_modules` tree it was found under:
11
+ // npm/yarn's hoisted layout (a real directory), and pnpm's isolated layout
12
+ // (`node_modules/<name>` → `node_modules/.pnpm/<name>@<v>/node_modules/<name>`);
13
+ // - scoped and unscoped names alike, one level of `@scope/` deep, which is
14
+ // the whole of npm's namespace shape;
15
+ // - packages in **every** root {@link nodeModulesRootsFor} returns: the
16
+ // declared instance root first, then the `node_modules` chain above the
17
+ // running platform, which is Node's own resolution directory list.
18
+ //
19
+ // ## What it cannot see, deliberately
20
+ //
21
+ // - **a workspace member.** pnpm links one into `node_modules` from outside,
22
+ // so `<root>/node_modules/@endora-commerce/contracts` really is `packages/contracts`.
23
+ // Every such link is refused, and that is the point: this repository's own
24
+ // five `packages/*` must never be discovered as installed packages, and a
25
+ // module package that is a workspace member is a fact about *the tree* and
26
+ // belongs in the committed registry (D-149), not here. The predicate is
27
+ // where the link **lands** — the same property assertion A8 of D-110
28
+ // measures on the acceptance instance — and never "is there a symlink",
29
+ // which would refuse the only layout a real pnpm instance has;
30
+ // - **a `link:` or `file:` dependency onto a directory**, for the same reason
31
+ // and by the same rule. An author developing a module against a live
32
+ // instance has to `pnpm pack` and install the tarball, or point
33
+ // `ENDORA_INSTANCE_ROOT` at a directory whose `node_modules` holds a real
34
+ // install;
35
+ // - **anything nested inside another package's `node_modules`.** Only the top
36
+ // level of each root is enumerated. A transitive dependency that happens to
37
+ // carry an `endora` field is not something this instance installed;
38
+ // - **`.pnpm`, and any other dot-directory.** The store's contents are
39
+ // reached through the top-level link, so descending would find each package
40
+ // twice;
41
+ // - **a package that is installed but whose `package.json` cannot be read or
42
+ // parsed.** It is reported as `skipped`, never composed and never thrown
43
+ // at: one unreadable stranger must not stop a shop from booting.
44
+ //
45
+ // ## The containment test is over real paths on both sides, and that is load-bearing
46
+ //
47
+ // A workspace link is **relative** — `backend/node_modules/@endora-commerce/contracts ->
48
+ // ../../../packages/contracts` — so it re-roots with whatever directory it
49
+ // physically sits in. Issue #255 is that fact biting from the other side: a
50
+ // `node_modules` symlinked at another checkout's makes every `@endora-commerce/*` resolve
51
+ // into that checkout, while `pnpm ls` cheerfully reports the local path,
52
+ // because it answers from the manifest's `link:` declaration and never reads
53
+ // the symlink.
54
+ //
55
+ // So the predicate here `realpath`s the **root** as well as the candidate. What
56
+ // it asks is "did this package's install stay inside the directory the roots
57
+ // really are", never "does its path start with the string we were handed" — a
58
+ // prefix test over the declared path would accept a `node_modules` that is
59
+ // itself a link into somebody else's tree. Both wirings of the `@endora-commerce/*` case
60
+ // come out the same and correct: the link lands on `packages/<name>`, which is
61
+ // outside whichever `node_modules` it was reached through, so a workspace
62
+ // member is refused whether the instance's `node_modules` is its own, a copy,
63
+ // or a link at another checkout's.
64
+ //
65
+ // ## Cost
66
+ //
67
+ // One `readdir` per root, one `readdir` per `@scope`, one `lstat` + one
68
+ // `readFile` per candidate. `package-runtime.ts` memoises the result for the
69
+ // process, because an instance's `node_modules` does not change while the
70
+ // platform runs.
71
+ import { existsSync, readFileSync, readdirSync, realpathSync, statSync } from 'node:fs';
72
+ import { basename, dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
73
+ import { fileURLToPath } from 'node:url';
74
+ /**
75
+ * The environment variable naming the **instance** — the directory whose
76
+ * `node_modules` holds this platform's installed extension packages.
77
+ *
78
+ * Unset is the ordinary case and is not a degraded one: a deployed instance
79
+ * *is* the directory the platform runs from, so the chain above the running
80
+ * code already names it. The variable exists for the case where the two are not
81
+ * the same — a platform executed out of a checkout against an instance built
82
+ * somewhere else, which is exactly what D-110's acceptance criterion does.
83
+ */
84
+ export const INSTANCE_ROOT_ENV = 'ENDORA_INSTANCE_ROOT';
85
+ /** `true` when `child` is inside `parent` (and is not `parent` itself). */
86
+ function isUnder(child, parent) {
87
+ const rel = relative(parent, child);
88
+ return rel !== '' && !rel.startsWith(`..${sep}`) && rel !== '..' && !isAbsolute(rel);
89
+ }
90
+ /**
91
+ * Every `node_modules` directory this platform reads, nearest first.
92
+ *
93
+ * The declared instance root comes first, then the chain above the running
94
+ * platform — in an instance, `<instance>/node_modules/@endora-commerce/platform`
95
+ * upward to the instance root; in this checkout, the platform package's own and
96
+ * the repository's. The chain is Node's own module-resolution directory list,
97
+ * which is the honest answer to "where would an installed package be": wherever
98
+ * `import` would find it. Roots that do not exist are dropped, so an empty
99
+ * result means *nothing to read* rather than *nothing found*.
100
+ *
101
+ * **The chain is derived from this file's own location and therefore moved with
102
+ * it** (`specs/110-instance-repository/` T113). It read from
103
+ * `backend/src/packages/` until the relocation, so `backend/node_modules` was on
104
+ * it and the platform package's was not; it now reads from
105
+ * `@endora-commerce/platform`, which is where the platform actually runs from in
106
+ * an instance, and is the reading `ENDORA_INSTANCE_ROOT` exists to override. No
107
+ * discovery is lost in this checkout: every `@endora-commerce/*` entry under
108
+ * `backend/node_modules` is a workspace link and is refused as one a few
109
+ * hundred lines down, which is what `installed-packages.test.ts` asserts either
110
+ * side of the move.
111
+ */
112
+ export function nodeModulesRootsFor(env = process.env) {
113
+ const roots = [];
114
+ const push = (candidate) => {
115
+ if (!roots.includes(candidate))
116
+ roots.push(candidate);
117
+ };
118
+ const declared = env[INSTANCE_ROOT_ENV];
119
+ if (typeof declared === 'string' && declared.trim().length > 0) {
120
+ push(join(resolve(declared.trim()), 'node_modules'));
121
+ }
122
+ let directory = dirname(fileURLToPath(import.meta.url));
123
+ for (;;) {
124
+ if (basename(directory) !== 'node_modules')
125
+ push(join(directory, 'node_modules'));
126
+ const parent = dirname(directory);
127
+ if (parent === directory)
128
+ break;
129
+ directory = parent;
130
+ }
131
+ return roots.filter((root) => {
132
+ try {
133
+ return statSync(root).isDirectory();
134
+ }
135
+ catch {
136
+ return false;
137
+ }
138
+ });
139
+ }
140
+ /**
141
+ * Read one candidate directory and classify it.
142
+ *
143
+ * `null` means "not a candidate at all" — no `package.json`, or one with no
144
+ * `endora` field. That is the overwhelmingly common case in any `node_modules`
145
+ * and is deliberately silent: reporting every ordinary dependency as `skipped`
146
+ * would bury the three answers that matter.
147
+ */
148
+ function classify(directory, root) {
149
+ const manifestPath = join(directory, 'package.json');
150
+ if (!existsSync(manifestPath))
151
+ return null;
152
+ let parsed;
153
+ let raw;
154
+ try {
155
+ raw = readFileSync(manifestPath, 'utf8');
156
+ }
157
+ catch (error) {
158
+ return {
159
+ skipped: {
160
+ kind: 'unreadable',
161
+ at: manifestPath,
162
+ reason: error instanceof Error ? error.message : String(error),
163
+ },
164
+ };
165
+ }
166
+ try {
167
+ parsed = JSON.parse(raw);
168
+ }
169
+ catch (error) {
170
+ return {
171
+ skipped: {
172
+ kind: 'unreadable',
173
+ at: manifestPath,
174
+ reason: `package.json is not valid JSON: ${error instanceof Error ? error.message : String(error)}`,
175
+ },
176
+ };
177
+ }
178
+ const endora = parsed.endora;
179
+ if (endora === undefined || endora === null || typeof endora !== 'object')
180
+ return null;
181
+ const name = typeof parsed.name === 'string' ? parsed.name : basename(directory);
182
+ if (endora.type !== 'module') {
183
+ // A theme, a kit, a distribution meta-package. Reported rather than
184
+ // silent: it carries the field, so its author meant the platform to see it.
185
+ return { skipped: { kind: 'not-an-endora-module', name, at: manifestPath } };
186
+ }
187
+ if (typeof endora.id !== 'string' || endora.id.trim().length === 0) {
188
+ return {
189
+ skipped: {
190
+ kind: 'unreadable',
191
+ at: manifestPath,
192
+ reason: '`endora.type` is "module" but `endora.id` is missing or empty, so the package claims ' +
193
+ 'no module id. The id is the platform\'s identity for a module (D-142); the npm name ' +
194
+ 'is not, because an author may rename a package.',
195
+ },
196
+ };
197
+ }
198
+ // Where the install really landed. See the header: this is the whole of "a
199
+ // workspace member is not an installed package", and it is a property of the
200
+ // install rather than a claim the package makes about itself.
201
+ //
202
+ // `realpath` on **both** sides, unconditionally. Not "resolve the candidate
203
+ // if it happens to be a symlink and compare it to the path we were handed":
204
+ // a `node_modules` that is itself a link — a copied or aliased tree, issue
205
+ // #255's shape — would then refuse every real directory under it, and a
206
+ // declared root that is a link into another checkout would be trusted on its
207
+ // spelling.
208
+ let realPath;
209
+ let realRoot;
210
+ try {
211
+ realPath = realpathSync(directory);
212
+ realRoot = realpathSync(root);
213
+ }
214
+ catch (error) {
215
+ return {
216
+ skipped: {
217
+ kind: 'unreadable',
218
+ at: manifestPath,
219
+ reason: error instanceof Error ? error.message : String(error),
220
+ },
221
+ };
222
+ }
223
+ if (!isUnder(realPath, realRoot)) {
224
+ return { skipped: { kind: 'links-out-of-node-modules', name, at: directory, realPath } };
225
+ }
226
+ return {
227
+ package: {
228
+ id: endora.id.trim(),
229
+ name,
230
+ version: typeof parsed.version === 'string' ? parsed.version : '0.0.0',
231
+ directory,
232
+ manifestPath,
233
+ foundUnder: root,
234
+ },
235
+ };
236
+ }
237
+ /** Top-level candidate directories in one `node_modules`, `@scope/` expanded. */
238
+ function candidatesIn(root) {
239
+ const out = [];
240
+ let entries;
241
+ try {
242
+ entries = readdirSync(root);
243
+ }
244
+ catch {
245
+ return out;
246
+ }
247
+ for (const name of entries.sort()) {
248
+ // `.pnpm`, `.bin`, `.modules.yaml` — the store is reached through the
249
+ // top-level link, so descending finds every package a second time.
250
+ if (name.startsWith('.'))
251
+ continue;
252
+ const full = join(root, name);
253
+ if (!name.startsWith('@')) {
254
+ out.push(full);
255
+ continue;
256
+ }
257
+ let scoped;
258
+ try {
259
+ scoped = readdirSync(full);
260
+ }
261
+ catch {
262
+ continue;
263
+ }
264
+ for (const inner of scoped.sort()) {
265
+ if (inner.startsWith('.'))
266
+ continue;
267
+ out.push(join(full, inner));
268
+ }
269
+ }
270
+ return out;
271
+ }
272
+ /**
273
+ * Scan the given `node_modules` roots for installed Endora module packages.
274
+ *
275
+ * A package found in more than one root is taken from the nearest one — the
276
+ * same precedence Node's resolver applies, so what the platform composes is
277
+ * what an `import` of that name in the instance would load.
278
+ */
279
+ export function scanNodeModulesRoots(roots) {
280
+ const packages = new Map();
281
+ const skipped = [];
282
+ const rootsRead = [];
283
+ for (const root of roots) {
284
+ try {
285
+ if (!statSync(root).isDirectory())
286
+ continue;
287
+ }
288
+ catch {
289
+ continue;
290
+ }
291
+ rootsRead.push(root);
292
+ for (const directory of candidatesIn(root)) {
293
+ const verdict = classify(directory, root);
294
+ if (verdict === null)
295
+ continue;
296
+ if ('skipped' in verdict) {
297
+ skipped.push(verdict.skipped);
298
+ continue;
299
+ }
300
+ // Nearest root wins; a farther copy of the same npm package is shadowed
301
+ // exactly as it would be for an `import`.
302
+ if (!packages.has(verdict.package.name))
303
+ packages.set(verdict.package.name, verdict.package);
304
+ }
305
+ }
306
+ return {
307
+ packages: [...packages.values()].sort((a, b) => a.name.localeCompare(b.name)),
308
+ skipped,
309
+ rootsRead,
310
+ };
311
+ }
312
+ //# sourceMappingURL=installed-packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installed-packages.js","sourceRoot":"","sources":["../../src/packages/installed-packages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import type { EntityClass } from '@mikro-orm/core';
2
+ /**
3
+ * How a **host program** names one entity class out of a module package's
4
+ * published `entities` array, with the entity's own type (feature 080, T040b —
5
+ * criterion 7).
6
+ *
7
+ * ## The problem this exists for
8
+ *
9
+ * A module package publishes `export const entities = [...]` and **no entity
10
+ * class by name**, type-only exports included (D-168;
11
+ * `test/unit/packages/module-package-entity-surface.test.ts` is the arbiter, and
12
+ * `d169PortsFindings` shuts the `./ports` door on the same shape). That is the
13
+ * ruling's load-bearing half: `import { Megamenu } from
14
+ * '@endora-commerce/mod-megamenu/backend'` has to fail in a stranger's compiler,
15
+ * where none of this repository's checks run.
16
+ *
17
+ * A host program that has to **construct** one of those entities therefore picks
18
+ * it out of the array, and a `find` over a heterogeneous array returns the
19
+ * **union** of its constructors. Measured on `@endora-commerce/mod-returns`
20
+ * (eleven entities): `em.create(entityNamed(returnsEntities, 'ReturnReason'), …)`
21
+ * type-checks the payload against `RequiredEntityData<ReturnStatus>` — TypeScript
22
+ * collapses the union to one constituent and it is not the one asked for. The
23
+ * failure is silent whenever the two shapes happen to agree, which is the whole
24
+ * reason this is a mechanism and not a call-site fix.
25
+ *
26
+ * The union is precise only for a package publishing **one** entity, which is
27
+ * why `delivery_methods`, `payment_methods` and `taxes` went through the
28
+ * inferred form and `megamenu` could not.
29
+ *
30
+ * ## The mechanism
31
+ *
32
+ * Two halves, and the split is the whole content of this file:
33
+ *
34
+ * * the **runtime class** comes off the package's published `entities` array —
35
+ * the one array `entities-registry.generated.ts` hands the ORM, so there is
36
+ * exactly one of it in the process (D-160.6, D-160.6.1). Resolution is **by
37
+ * name and never by index**: a tuple index compiles for any ordering, so
38
+ * re-ordering the array in the package would silently re-point an insert at
39
+ * another table;
40
+ * * the **type** is supplied by the caller as `T`, from an `import type` of the
41
+ * entity's declaration inside the package's **built** artefact. It erases at
42
+ * compile time and constructs nothing, so no second copy exists and
43
+ * `check:singleton-identity` reads it for what it is (its `valueImportOrigins`
44
+ * skips a type-only import outright).
45
+ *
46
+ * ## Why the type import names `dist` and not `src`
47
+ *
48
+ * `backend/test/helpers/package-entities.ts` does the same split against the
49
+ * package's **source**, which is legal there and is refused here:
50
+ * `backend/tsconfig.build.json` sets `rootDir: ./src`, and a `.ts` outside it is
51
+ * **TS6059 even for an `import type`** — measured, because a type-only import
52
+ * still joins the program. A `.d.ts` does not: declaration files are exempt from
53
+ * the `rootDir` check, so the emitted declaration inside the package's own
54
+ * `dist` is the one spelling a file in this build may name. This file is in that
55
+ * build: `deploy/README.md` documents running the demo seed as
56
+ * `node dist/cli.js demo seed`, and D-165 makes the compiled tree the
57
+ * production path.
58
+ *
59
+ * That is not a workaround wearing a rule's clothes. The `.d.ts` inside `dist`
60
+ * is the declaration of the class the platform actually registered, which is the
61
+ * identity D-160.6 is about; the source spelling is the one that merely happens
62
+ * to be structurally identical.
63
+ *
64
+ * D-168 is untouched by either: the guarantee is about the **bare specifier** an
65
+ * installed consumer is limited to, and a package's `exports` map does not gate
66
+ * a filesystem path — the ruling's own delivery note says so. A stranger has no
67
+ * such path to write.
68
+ *
69
+ * ## What is checked, and where
70
+ *
71
+ * A name that is not in the array throws **here**, at module load, naming every
72
+ * class the array does declare. That is the one failure mode D-160.6 calls
73
+ * acceptable, precisely because it is loud.
74
+ *
75
+ * The remaining hazard is a call that asks for one entity's **type** while
76
+ * naming another's — both are members of the same package, so no constraint
77
+ * expressible on `T` can separate them (`EntityClass<T>` is
78
+ * `Function & { prototype: T }`, and `Function.prototype` is `any`, so the type
79
+ * argument is an assertion rather than a check). It is closed outside the type
80
+ * system, by `test/unit/packages/package-entity-lookup.test.ts`: it walks every
81
+ * host program that calls this, resolves each call's type argument back to its
82
+ * `import type`, and refuses a specifier whose original name is not the string
83
+ * literal beside it — and refuses one that is not the **emitted counterpart**,
84
+ * derived from the package's own `tsconfig.build.json`, of a file in that
85
+ * package declaring that class. So the `dist/…` path spelled at a call site is a
86
+ * checked copy of a derived fact rather than a written-down one (D-100).
87
+ */
88
+ /**
89
+ * What a published `entities` array holds.
90
+ *
91
+ * Deliberately a construct signature and not `unknown`: it refuses an argument
92
+ * that is not an array of classes at all — the shape a package that lost its
93
+ * array answers with, since the host reads a missing `entities` export as `[]`
94
+ * and reports nothing.
95
+ */
96
+ type PublishedEntityClass = abstract new (...args: never[]) => object;
97
+ /**
98
+ * The default `T`, whose whole job is to be unsatisfiable.
99
+ *
100
+ * Omitting the row type is the pre-repair shape and it has to be a compile
101
+ * error, not a quieter version of the same defect: with `T` free, it resolves to
102
+ * its own constraint and `em.create` then checks the payload against `object`,
103
+ * which accepts everything. That is *worse* than the union collapse this file
104
+ * exists for — the collapse at least errors when the two shapes disagree.
105
+ * So the default is a shape no entity has and no payload satisfies: the first
106
+ * `em.create` against it is TS2353 naming this interface, which is the
107
+ * instruction. It is a required, plainly-typed property on purpose — a `never`
108
+ * or a `unique symbol` key is filtered out of MikroORM's `RequiredEntityData`
109
+ * mapped type and accepts everything, measured both ways.
110
+ *
111
+ * The default is the *loud* half. The half a type cannot reach — a call that
112
+ * asks for one entity's row type while naming another's — belongs to
113
+ * `test/unit/packages/package-entity-lookup.test.ts`.
114
+ */
115
+ export interface EntityRowTypeIsRequired {
116
+ readonly entityNamedNeedsTheRowTypeOfTheClassItIsAskedFor: 'see src/packages/package-entity-lookup.ts';
117
+ }
118
+ export declare function entityNamed<T extends object = EntityRowTypeIsRequired>(published: readonly PublishedEntityClass[], name: string, source?: string): EntityClass<T>;
119
+ export {};
120
+ //# sourceMappingURL=package-entity-lookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-entity-lookup.d.ts","sourceRoot":"","sources":["../../src/packages/package-entity-lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAEH;;;;;;;GAOG;AACH,KAAK,oBAAoB,GAAG,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC;AAEtE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,gDAAgD,EAAE,2CAA2C,CAAC;CACxG;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,uBAAuB,EACpE,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,IAAI,EAAE,MAAM,EACZ,MAAM,SAAkD,GACvD,WAAW,CAAC,CAAC,CAAC,CAmBhB"}
@@ -0,0 +1,17 @@
1
+ export function entityNamed(published, name, source = "a module package's published `entities` array") {
2
+ // The `typeof` test is not redundant with the parameter type: the array comes
3
+ // out of a package, which at runtime may be an installed one this repository
4
+ // never compiled, so its members are whatever that package put there.
5
+ const found = published.find((candidate) => typeof candidate === 'function' && candidate.name === name);
6
+ if (found === undefined) {
7
+ const declared = published
8
+ .map((candidate) => (typeof candidate === 'function' ? candidate.name : String(candidate)))
9
+ .join(', ');
10
+ throw new Error(`[package-entities] ${source} publishes no entity class named '${name}' ` +
11
+ `(it declares: ${declared || '(empty)'}). Either the class was renamed, or it was ` +
12
+ `left out of the array — which the host answers by mapping it to no table, ` +
13
+ `silently. See D-168.`);
14
+ }
15
+ return found;
16
+ }
17
+ //# sourceMappingURL=package-entity-lookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-entity-lookup.js","sourceRoot":"","sources":["../../src/packages/package-entity-lookup.ts"],"names":[],"mappings":"AAyHA,MAAM,UAAU,WAAW,CACzB,SAA0C,EAC1C,IAAY,EACZ,MAAM,GAAG,+CAA+C;IAExD,8EAA8E;IAC9E,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAC1B,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,SAAS,KAAK,UAAU,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAC1E,CAAC;IACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,SAAS;aACvB,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;aAC1F,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,qCAAqC,IAAI,IAAI;YACvE,iBAAiB,QAAQ,IAAI,SAAS,6CAA6C;YACnF,4EAA4E;YAC5E,sBAAsB,CACzB,CAAC;IACJ,CAAC;IACD,OAAO,KAAkC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,177 @@
1
+ import type { MigrationObject } from '@mikro-orm/core';
2
+ import type { ModuleManifest, ModuleManifestExports } from '@endora-commerce/contracts';
3
+ import type { ModuleEntry } from '../kernel/compose.js';
4
+ import { type ModuleIdClaim } from '../lifecycle/services/module-id-claims.js';
5
+ /**
6
+ * One entry of a migration registry, as this reader produces them.
7
+ *
8
+ * **Declared here rather than imported**, for `manifest-registry.ts`'
9
+ * `DiscoveredManifestEntry` reason one directory over: the merge that turns
10
+ * these into an execution order is the host's
11
+ * (`backend/src/db/configured-migrations.ts`, moving under
12
+ * `specs/110-instance-repository/` T116), and the platform may not name a file
13
+ * in the tree that installs it (D-52/D-53). `tsc` is what holds the two shapes
14
+ * together — the host's `MigrationRegistryEntry` is structurally assignable to
15
+ * this one at the call site, so a field dropped on either side fails in the
16
+ * host's own type-check rather than at runtime.
17
+ *
18
+ * It is *not* a second answer to "what order do migrations run in": that is
19
+ * `migration-order.ts`' and the platform's `./migrations` subpath's, and this
20
+ * carries no ordering decision at all — only the three fields a reader of a
21
+ * package's `./migrations` export can fill in.
22
+ */
23
+ export interface MigrationRegistryEntry {
24
+ /** Owning module id — a package's `endora.id` (D-142). */
25
+ moduleId: string;
26
+ /** The migration class. `cls.name` IS the migration name persisted in the DB. */
27
+ cls: MigrationObject['class'];
28
+ /** Absent means `'core'`; a producer outside the committed registry sets `'external'`. */
29
+ origin?: 'core' | 'external';
30
+ }
31
+ /** An installed package's manifest plus where on disk it came from. */
32
+ export interface PackageModuleManifest {
33
+ id: string;
34
+ manifest: ModuleManifest;
35
+ /**
36
+ * The resolved `package.json`.
37
+ *
38
+ * `dirname(filePath)` is how the i18n reconciler and the lifecycle
39
+ * orchestrator locate a module's assets, so this has to be a path *inside*
40
+ * the package directory. For a core module the anchor is `manifest.ts`; for a
41
+ * package it is the `package.json` that claimed the id — a file that
42
+ * genuinely exists in the published artefact, which the compiled root export
43
+ * (`dist/manifest.js`, whose directory holds no `i18n/`) does not give.
44
+ */
45
+ filePath: string;
46
+ /** The npm package name, for diagnostics. Never the platform's identity. */
47
+ packageName: string;
48
+ installHook?: ModuleManifestExports['installHook'];
49
+ uninstallHook?: ModuleManifestExports['uninstallHook'];
50
+ /**
51
+ * This module's interest in every *other* module's install and hard
52
+ * uninstall — feature 080, T036a / D-159. Read here for the same reason the
53
+ * two hooks are: the export travels with the manifest, so an overlay module
54
+ * and an installed package declare one on exactly core's terms.
55
+ */
56
+ lifecycleParticipant?: ModuleManifestExports['lifecycleParticipant'];
57
+ /**
58
+ * The operator commands this module declares — feature 080, T042b / D-160.9.
59
+ *
60
+ * This is the origin the shape was designed for: a file under `node_modules`
61
+ * can name no specifier that resolves to the instance's
62
+ * `backend/src/composition.ts`, so a package's CLI can only ever be a
63
+ * declaration the host invokes. Read here on exactly core's terms.
64
+ */
65
+ cliCommands?: ModuleManifestExports['cliCommands'];
66
+ /**
67
+ * The module's recent-activity eligibility — feature 080, T042j / D-163.1.
68
+ *
69
+ * The declaration axis of D-163.1, and the reason it is a manifest export:
70
+ * the four host-owned action tables it replaced were closed lists of core
71
+ * module ids, so a package's audit row was silently absent from the dashboard
72
+ * card rather than refused. Read here on exactly core's terms.
73
+ */
74
+ recentActivity?: ModuleManifestExports['recentActivity'];
75
+ }
76
+ /**
77
+ * The module-id claims of every installed module package under `roots`.
78
+ *
79
+ * Exported so the *overlay* seams can be held to one collision rule over one
80
+ * claimed set (feature 103, FR-004) without a second enumeration of what is
81
+ * installed: the scan below is memoised per root list, so asking here costs a
82
+ * map lookup on a boot that has already asked.
83
+ */
84
+ export declare function installedPackageModuleIdClaims(roots: readonly string[]): ModuleIdClaim[];
85
+ /**
86
+ * The manifests of every installed module package, refusing an id two of them
87
+ * claim.
88
+ *
89
+ * A package with no `./backend` export still appears here: an admin- or
90
+ * storefront-only module has permissions, an activation control and i18n
91
+ * bundles, and dropping the manifest would take all three with it.
92
+ */
93
+ export declare function packageModuleManifestsUnder(roots: readonly string[]): Promise<PackageModuleManifest[]>;
94
+ /** {@link packageModuleManifestsUnder} over the roots this platform reads. */
95
+ export declare function discoverPackageModuleManifests(env?: NodeJS.ProcessEnv): Promise<PackageModuleManifest[]>;
96
+ /**
97
+ * The composer entries of every installed module package, against explicit
98
+ * roots.
99
+ *
100
+ * Exported so the loader can be driven over a fixture instance that enters at
101
+ * the top of the analysis — a `node_modules` tree on disk, enumerated,
102
+ * `exports`-resolved and imported by the same code the deployment path runs —
103
+ * rather than by handing the last function a pre-built entry (issue #130).
104
+ */
105
+ export declare function packageModuleEntriesUnder(roots: readonly string[]): Promise<ModuleEntry[]>;
106
+ /**
107
+ * Every installed module package this platform composes.
108
+ *
109
+ * Empty for an instance that installed none, which is every developer checkout
110
+ * and every test run — and empty is the whole story there: the composition is
111
+ * byte-for-byte what it was before this loader existed.
112
+ */
113
+ export declare function loadPackageModuleEntries(env?: NodeJS.ProcessEnv): Promise<ModuleEntry[]>;
114
+ /**
115
+ * An entity class as the ORM configuration takes it.
116
+ *
117
+ * Deliberately structural and deliberately weak: the host cannot type-check a
118
+ * stranger's class against `EntityClass<T>` without importing the stranger, and
119
+ * MikroORM validates it anyway — something that is not an entity fails metadata
120
+ * discovery loudly and by name.
121
+ */
122
+ export type EntityClassLike = new (...args: never[]) => object;
123
+ /** What one installed package contributes to the platform's schema. */
124
+ export interface PackageSchemaContribution {
125
+ /** The module id it claims (`endora.id`, D-142) — the migrations' `moduleId`. */
126
+ readonly id: string;
127
+ /** The npm package name. For humans, and for the template digest's path. */
128
+ readonly packageName: string;
129
+ readonly version: string;
130
+ /**
131
+ * The directory the `./migrations` subpath resolves into, or `null` when the
132
+ * package publishes no such subpath.
133
+ *
134
+ * The test harness digests the files under it (`test/template-identity.ts`,
135
+ * D-155.5): a package ships compiled `.js` with no `.ts` source to hash, so
136
+ * what it contributes to the migration-template identity as *content* is read
137
+ * from here rather than from any tree this repository owns.
138
+ */
139
+ readonly migrationsDirectory: string | null;
140
+ /** Registry entries, already tagged `origin: 'external'`. */
141
+ readonly migrations: readonly MigrationRegistryEntry[];
142
+ /** The entity classes its `./backend` export declares. */
143
+ readonly entities: readonly EntityClassLike[];
144
+ /**
145
+ * The module ids this package's manifest declares it depends on — the edges
146
+ * its migrations are ordered by (`specs/110-instance-repository/` T141).
147
+ *
148
+ * It is read here, beside the migrations, because `configuredMigrationsFrom`
149
+ * is the one reader and it had no other source: it fell back to `[]` for any
150
+ * id the **host's** committed manifest index did not carry, and the comment
151
+ * beside that fallback claimed these were "read from the manifest the package
152
+ * published" when nothing read them. In this repository the index carries
153
+ * every module package, so the fallback was unreachable and the claim was
154
+ * never tested; in an instance the index does not exist, so **every** module
155
+ * was a graph root and the per-module order (feature 081) degenerated to the
156
+ * order `orderMigrations` breaks ties in.
157
+ */
158
+ readonly dependencies: readonly string[];
159
+ }
160
+ /**
161
+ * Every installed package's schema contribution, against explicit roots.
162
+ *
163
+ * Exported so a test can drive it over a `node_modules` tree on disk — the same
164
+ * entry point the deployment path takes, enumerated, `exports`-resolved and
165
+ * imported by the same code — rather than by handing a downstream function a
166
+ * pre-built entry (issue #130).
167
+ */
168
+ export declare function packageSchemaContributionsUnder(roots: readonly string[]): Promise<PackageSchemaContribution[]>;
169
+ /**
170
+ * {@link packageSchemaContributionsUnder} over the roots this platform reads.
171
+ *
172
+ * Empty for an instance that installed no module package — every developer
173
+ * checkout and every test run — and empty means the ORM configuration is what
174
+ * it was before a package could ship schema at all.
175
+ */
176
+ export declare function discoverPackageSchema(env?: NodeJS.ProcessEnv): Promise<PackageSchemaContribution[]>;
177
+ //# sourceMappingURL=package-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-runtime.d.ts","sourceRoot":"","sources":["../../src/packages/package-runtime.ts"],"names":[],"mappings":"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"}