@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,281 @@
1
+ // Overlay resolution — runtime loader used by composition.
2
+ //
3
+ // The resolver (`resolve-overlay.ts`) decides WHICH core units a deployment
4
+ // overrides; this module dynamically imports the overlay implementations so
5
+ // composition can wire them. It runs ONCE at composeApp() startup. For a
6
+ // bare-core build (no DEPLOYMENT / no overlay dir) both loaders return empty and
7
+ // composition is byte-for-byte unchanged (FR-008).
8
+ //
9
+ // **This file derives no path of its own** (`specs/110-instance-repository/`
10
+ // T113/T114). It moved into `@endora-commerce/platform` and takes the overlay
11
+ // root, and the claims already made on a module id, as parameters — both are
12
+ // facts about the *application*, which in an instance is a member the CLI
13
+ // scaffolded and not a tree this package can see.
14
+ // `backend/src/overlay/overlay-runtime.ts` is the binding: it answers "the
15
+ // active deployment's root" from `overlay-roots.ts`' single `import.meta.url`
16
+ // derivation (D115-3) and "who already claims this id" from
17
+ // `packages/claimed-module-ids.ts` (R7.4), and keeps every name and signature
18
+ // its consumers already write.
19
+ //
20
+ // Runtime path mapping: overlay files are authored under `backend/src/apps/…`
21
+ // and compiled to `backend/dist/apps/…`. Which of the two this process reads
22
+ // needs no detection — the binding's root derivation answers `backend/dist`
23
+ // under a compiled run. What did not follow was the **file names**: this module spelled `manifest.ts`
24
+ // and `backend.ts` into `join(...)` and an `existsSync`, and a compiled tree
25
+ // spells both `.js`. `overlayModuleEntriesUnder` therefore skipped every
26
+ // overlay module in production — `if (!existsSync(...)) continue`, no error and
27
+ // no warning. Measured: the same binary with `DEPLOYMENT=example` logs
28
+ // `decoratedBy: 'example_overlay'` under `tsx` and produces zero overlay lines
29
+ // under `node dist/index.js` (feature 080, D-165 step C).
30
+ //
31
+ // So a unit is **resolved** rather than derived — see {@link resolveOverlayUnit}
32
+ // — and the path that comes back is the file that exists, which is what every
33
+ // consumer of `filePath` needs anyway.
34
+ import { existsSync } from 'node:fs';
35
+ import { join } from 'node:path';
36
+ import { pathToFileURL } from 'node:url';
37
+ import { assertNoModuleIdCollisions, } from '../lifecycle/services/module-id-claims.js';
38
+ import { listOverlayModuleDirs } from './resolve-overlay.js';
39
+ /**
40
+ * The two spellings one unit has: `<stem>.js` in a compiled tree, `<stem>.ts`
41
+ * under `tsx` and `vitest`. Compiled first, for the reason
42
+ * `manifest-locations.ts` gives about the same pair — the compiled tree is the
43
+ * one where picking up a stray source file would be wrong.
44
+ */
45
+ const UNIT_EXTENSIONS = ['.js', '.ts'];
46
+ /**
47
+ * The real path of the overlay unit `<dir>/<stem>`, or `null` when the module
48
+ * ships neither spelling.
49
+ *
50
+ * A **resolution**, never a derivation. The path this returns is a file that
51
+ * exists, so `existsSync` on it is redundant by construction and a caller
52
+ * cannot end up importing a name the build never emitted.
53
+ */
54
+ export function resolveOverlayUnit(dir, stem) {
55
+ for (const extension of UNIT_EXTENSIONS) {
56
+ const candidate = join(dir, `${stem}${extension}`);
57
+ if (existsSync(candidate))
58
+ return candidate;
59
+ }
60
+ return null;
61
+ }
62
+ /** The candidates {@link resolveOverlayUnit} tried, for a message that names them. */
63
+ function unitCandidates(dir, stem) {
64
+ return UNIT_EXTENSIONS.map((extension) => join(dir, `${stem}${extension}`)).join(' and ');
65
+ }
66
+ /** Convert an absolute path to an importable URL. */
67
+ function importUrlFor(absPath) {
68
+ return pathToFileURL(absPath).href;
69
+ }
70
+ /**
71
+ * The overlay module ids under one overlay modules root, **and the one place
72
+ * their claim on those ids is checked** (feature 103, FR-004).
73
+ *
74
+ * Both overlay seams go through here — `overlayModuleManifestsUnder`, which is
75
+ * what `resolvedManifestEntries()` reads, and `overlayModuleEntriesUnder`,
76
+ * which is what a composition root composes — so the two cannot answer
77
+ * differently, which is exactly what they used to do: one dropped a colliding
78
+ * manifest with a `continue` while the other composed the module, leaving it
79
+ * with no registry row, no permission-catalogue entry and its routes gated on
80
+ * the effective state of somebody else's module of the same id.
81
+ *
82
+ * The claimed set is derived from what this instance ships and what is
83
+ * installed in it, never written down — so a module that arrives, moves or
84
+ * leaves changes the answer in the same run. It arrives as
85
+ * {@link claimsOutsideTheOverlay}, a **parameter**: its core half comes off the
86
+ * generated manifest index, which is a fact about one tree (D-104, D-160.3), and
87
+ * R7.4 is that a relocated platform file receives such a thing rather than
88
+ * reaching for it. `backend/src/overlay/overlay-runtime.ts` is the binding that
89
+ * supplies it, and an instance writes the same one.
90
+ *
91
+ * This used to be `scanOverlay(root, indexCore(coreModulesRoot())).newModules`
92
+ * — a file-shadowing scan whose core index resolved `backend/src/modules`,
93
+ * which has held no module since F4. With the index empty **every** overlay
94
+ * directory came back as a new module claiming its id, unchecked (D-201).
95
+ */
96
+ export function overlayModuleIdsUnder(root, claimsOutsideTheOverlay) {
97
+ const ids = listOverlayModuleDirs(root);
98
+ assertNoModuleIdCollisions([
99
+ ...claimsOutsideTheOverlay,
100
+ ...ids.map((id) => ({
101
+ id,
102
+ origin: 'overlay',
103
+ // The directory, not a manifest that may not be there: an overlay module
104
+ // with no manifest is refused a few lines down, by a message that names
105
+ // both candidate spellings, and a claim built from a path that does not
106
+ // exist would pre-empt it with a worse one.
107
+ claimedBy: join(root, id),
108
+ })),
109
+ ]);
110
+ return ids;
111
+ }
112
+ /**
113
+ * Discover overlay MODULE manifests under one root WITHOUT composing them. Used
114
+ * early in composition to build the deployment-resolved registry the permission
115
+ * catalogue + lifecycle consume (FR-009, FR-012).
116
+ *
117
+ * The **root** is a parameter, not a derivation of this file's own path: which
118
+ * directory holds `apps/<deployment>/modules` is a fact about the application,
119
+ * derived once by `backend/src/overlay/overlay-roots.ts` from its own
120
+ * `import.meta.url` (D115-3), and the platform is not in that tree. The binding
121
+ * beside that derivation is what answers "the active deployment's" — see
122
+ * `backend/src/overlay/overlay-runtime.ts`.
123
+ *
124
+ * The fixture is therefore a directory on disk, scanned and imported by the code
125
+ * the deployment path runs, rather than a value handed to the last function in
126
+ * the chain (issue #130).
127
+ */
128
+ export async function overlayModuleManifestsUnder(root, ids) {
129
+ const out = [];
130
+ for (const id of ids) {
131
+ const moduleDir = join(root, id);
132
+ const manifestPath = resolveOverlayUnit(moduleDir, 'manifest');
133
+ if (manifestPath === null) {
134
+ // The scan already reported this directory as a module, so an absent
135
+ // manifest is not "a directory that ships nothing" — it is a module with
136
+ // no id and no version to compose it under. Refused here rather than left
137
+ // to `import()`, whose ERR_MODULE_NOT_FOUND names a `.ts` path that never
138
+ // existed in a compiled tree and sends the reader looking for the wrong
139
+ // file (D-165 step C).
140
+ throw new Error(`[overlay] the module directory ${moduleDir} carries no manifest — tried ` +
141
+ `${unitCandidates(moduleDir, 'manifest')}. An overlay module is discovered by its ` +
142
+ `directory and identified by its manifest; without one it has no id and no version.`);
143
+ }
144
+ const mod = (await import(importUrlFor(manifestPath)));
145
+ const manifest = mod['manifest'];
146
+ if (!manifest)
147
+ continue;
148
+ // `exactOptionalPropertyTypes`: an absent key is not `{ hook: undefined }`,
149
+ // and the lifecycle asks `entry.installHook !== undefined`.
150
+ const installHook = mod['installHook'];
151
+ const uninstallHook = mod['uninstallHook'];
152
+ const lifecycleParticipant = mod['lifecycleParticipant'];
153
+ const cliCommands = mod['cliCommands'];
154
+ const recentActivity = mod['recentActivity'];
155
+ out.push({
156
+ id,
157
+ manifest,
158
+ filePath: manifestPath,
159
+ ...(installHook ? { installHook } : {}),
160
+ ...(uninstallHook ? { uninstallHook } : {}),
161
+ ...(lifecycleParticipant ? { lifecycleParticipant } : {}),
162
+ ...(cliCommands ? { cliCommands } : {}),
163
+ ...(recentActivity ? { recentActivity } : {}),
164
+ });
165
+ }
166
+ return out;
167
+ }
168
+ /**
169
+ * One overlay root's converted modules, as composer entries (D-103/D-104).
170
+ *
171
+ * The root and the claims are parameters for the reason
172
+ * {@link overlayModuleManifestsUnder} gives: both are facts about the
173
+ * application, and `backend/src/overlay/overlay-runtime.ts` is the binding that
174
+ * answers "the active deployment's" over them.
175
+ *
176
+ * This is the **one** composition path for an overlay module: a root appends
177
+ * these to the core list and passes the single array to `composeModules`, so an
178
+ * overlay module receives an ordinary `ModuleContext` and reaches every seam a
179
+ * core module reaches — `ctx.routes` and its lifecycle gate, `ctx.worker`,
180
+ * `ctx.subscribe`, `ctx.interceptors`, `ctx.onBoot`, ports, and the decoration
181
+ * exemption. The path it replaces handed a frozen seven-field context to a
182
+ * `plugin.ts` factory and could gate nothing.
183
+ *
184
+ * **Discovered at runtime, not baked into a generated core artefact** (D-104).
185
+ * A deployment's manifests already resolve this way and for the stated reason:
186
+ * the answer depends on which deployment the *process* runs as, not on which
187
+ * tree a generator was run against. Registrations have the identical property
188
+ * and used to be given the opposite treatment, which made
189
+ * `composition.generated.ts` and `manifest-index.generated.ts` environment-
190
+ * dependent — an artefact that is always stale for a deployment is one nobody
191
+ * can use to detect a genuinely stale one (issue #120, applied to the family it
192
+ * was missed in).
193
+ *
194
+ * `overlay: true` is set **from the root the module was found under**, which is
195
+ * what `ModuleEntry.overlay`'s own contract requires: it exempts the module
196
+ * from the rule that a module may decorate only what it registered, so it may
197
+ * never be a claim a module makes about itself.
198
+ *
199
+ * Ordering is deterministic — the entries come back in id order and a root
200
+ * appends them after a frozen core list — and it decides nothing about
201
+ * decoration. It used to: this paragraph read "so a deployment's decoration
202
+ * always wraps a core registration that is already there", which was the
203
+ * composer's array position doing policy work. Since D-176 every
204
+ * `ctx.di.decorate` is queued during registration and drained once the last
205
+ * module has registered, so where a module sits in the array cannot grant or
206
+ * refuse a wrap; the ownership guard decides, alone.
207
+ *
208
+ * A module directory with no backend entry point **in either spelling** is
209
+ * skipped, not thrown at — a deployment may ship an overlay directory that only
210
+ * shadows core files. "Either spelling" is the whole of D-165 step C's repair
211
+ * here: this used to ask `existsSync('backend.ts')`, so a compiled deployment's
212
+ * every module took the skip and vanished with no error. A `backend.js`/`.ts`
213
+ * that exports no `registerModule` is a different thing and is refused:
214
+ * skipping it would compose nothing, and the first symptom would be a 404
215
+ * nobody connects to this file.
216
+ */
217
+ export async function overlayModuleEntriesUnder(root, claimsOutsideTheOverlay) {
218
+ return await overlayModuleEntriesForIds(root, overlayModuleIdsUnder(root, claimsOutsideTheOverlay));
219
+ }
220
+ /**
221
+ * {@link overlayModuleEntriesUnder} over an id set already derived.
222
+ *
223
+ * It exists so a caller that needs **both** seams — the entries it composes and
224
+ * the manifests the resolved registry is built from — asserts the id-collision
225
+ * claim set once, over one array, rather than twice over two derivations that
226
+ * `overlayModuleIdsUnder`'s own contract says must never be able to answer
227
+ * differently. {@link overlayModulesUnder} is that caller's shape; this stays
228
+ * private because an id set assembled anywhere but there has not been checked.
229
+ */
230
+ async function overlayModuleEntriesForIds(root, ids) {
231
+ const entries = [];
232
+ for (const id of ids) {
233
+ const moduleDir = join(root, id);
234
+ const backendPath = resolveOverlayUnit(moduleDir, 'backend');
235
+ if (backendPath === null)
236
+ continue;
237
+ const mod = (await import(importUrlFor(backendPath)));
238
+ const registerModule = mod['registerModule'];
239
+ if (typeof registerModule !== 'function') {
240
+ throw new Error(`[overlay] ${backendPath} exports no 'registerModule'. A module's backend.ts is its ` +
241
+ `entry point (see backend/src/apps/example/modules/example_overlay/backend.ts); ` +
242
+ `rename or remove the file if it is not one. It is not composed as written, and an ` +
243
+ `overlay module that composes nothing is a 404 with no error behind it.`);
244
+ }
245
+ const manifestPath = resolveOverlayUnit(moduleDir, 'manifest');
246
+ if (manifestPath === null) {
247
+ throw new Error(`[overlay] ${moduleDir} ships a composable backend entry point and no manifest — ` +
248
+ `tried ${unitCandidates(moduleDir, 'manifest')}. The module has no id and no ` +
249
+ `version to compose it under.`);
250
+ }
251
+ const manifestMod = (await import(importUrlFor(manifestPath)));
252
+ const manifest = manifestMod['manifest'];
253
+ if (!manifest) {
254
+ throw new Error(`[overlay] ${manifestPath} exports no lifecycle-shape manifest, so ` +
255
+ `the module has no id and no version to compose it under.`);
256
+ }
257
+ entries.push({
258
+ id,
259
+ version: manifest.version,
260
+ registerModule: registerModule,
261
+ // From the root, never from the module. See the note above.
262
+ overlay: true,
263
+ });
264
+ }
265
+ return entries;
266
+ }
267
+ export function overlayModulesUnder(root, claimsOutsideTheOverlay) {
268
+ let derived;
269
+ const ids = () => {
270
+ if (derived === undefined) {
271
+ derived = root === null ? [] : overlayModuleIdsUnder(root, claimsOutsideTheOverlay());
272
+ }
273
+ return derived;
274
+ };
275
+ return {
276
+ ids,
277
+ manifests: async () => (root === null ? [] : await overlayModuleManifestsUnder(root, ids())),
278
+ entries: async () => (root === null ? [] : await overlayModuleEntriesForIds(root, ids())),
279
+ };
280
+ }
281
+ //# sourceMappingURL=overlay-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-runtime.js","sourceRoot":"","sources":["../../src/overlay/overlay-runtime.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,iFAAiF;AACjF,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,kDAAkD;AAClD,2EAA2E;AAC3E,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAC9E,+BAA+B;AAC/B,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,sGAAsG;AACtG,6EAA6E;AAC7E,yEAAyE;AACzE,gFAAgF;AAChF,uEAAuE;AACvE,+EAA+E;AAC/E,0DAA0D;AAC1D,EAAE;AACF,iFAAiF;AACjF,8EAA8E;AAC9E,uCAAuC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EACL,0BAA0B,GAE3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,IAAY;IAC1D,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC;QACnD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sFAAsF;AACtF,SAAS,cAAc,CAAC,GAAW,EAAE,IAAY;IAC/C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5F,CAAC;AAED,qDAAqD;AACrD,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,uBAAiD;IAEjD,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,0BAA0B,CAAC;QACzB,GAAG,uBAAuB;QAC1B,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClB,EAAE;YACF,MAAM,EAAE,SAAkB;YAC1B,yEAAyE;YACzE,wEAAwE;YACxE,wEAAwE;YACxE,4CAA4C;YAC5C,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;SAC1B,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAY,EACZ,GAAsB;IAEtB,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,qEAAqE;YACrE,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;YAC1E,wEAAwE;YACxE,uBAAuB;YACvB,MAAM,IAAI,KAAK,CACb,kCAAkC,SAAS,+BAA+B;gBACxE,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,2CAA2C;gBACnF,oFAAoF,CACvF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAA4B,CAAC;QAClF,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAA+B,CAAC;QAC/D,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,4EAA4E;QAC5E,4DAA4D;QAC5D,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAqD,CAAC;QAC3F,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,CAE5B,CAAC;QACd,MAAM,oBAAoB,GAAG,GAAG,CAAC,sBAAsB,CAE1C,CAAC;QACd,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAqD,CAAC;QAC3F,MAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAE9B,CAAC;QACd,GAAG,CAAC,IAAI,CAAC;YACP,EAAE;YACF,QAAQ;YACR,QAAQ,EAAE,YAAY;YACtB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAY,EACZ,uBAAiD;IAEjD,OAAO,MAAM,0BAA0B,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC;AACtG,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,0BAA0B,CACvC,IAAY,EACZ,GAAsB;IAEtB,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,WAAW,KAAK,IAAI;YAAE,SAAS;QACnC,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAA4B,CAAC;QACjF,MAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,aAAa,WAAW,6DAA6D;gBACnF,iFAAiF;gBACjF,oFAAoF;gBACpF,wEAAwE,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,aAAa,SAAS,4DAA4D;gBAChF,SAAS,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,gCAAgC;gBAC9E,8BAA8B,CACjC,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAA4B,CAAC;QAC1F,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAA+B,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,2CAA2C;gBAClE,0DAA0D,CAC7D,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,EAAE;YACF,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,cAAc,EAAE,cAA+C;YAC/D,4DAA4D;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAwCD,MAAM,UAAU,mBAAmB,CACjC,IAAmB,EACnB,uBAAuD;IAEvD,IAAI,OAAsC,CAAC;IAC3C,MAAM,GAAG,GAAG,GAAsB,EAAE;QAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,OAAO;QACL,GAAG;QACH,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,2BAA2B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5F,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,0BAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;KAC1F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Result of resolving a deployment overlay.
3
+ *
4
+ * Declared here rather than in the application's `src/overlay/types.ts`, which
5
+ * stayed behind: that file is named **by relative path** from every deployment's
6
+ * generated divergence artefact and may not become a bare specifier, because a
7
+ * committed artefact under `src/apps/<deployment>/` whose import depends on the
8
+ * deployment's own dependency graph is the one artefact that stops being
9
+ * readable in a tree that has not installed the package. So the divergence
10
+ * shapes stay there and the *resolution* shape, which no artefact names, comes
11
+ * here with the function that produces it.
12
+ */
13
+ export interface OverlayResolution {
14
+ deployment: string | null;
15
+ newModules: string[];
16
+ }
17
+ /**
18
+ * Deterministic list of the module directories directly under an overlay root.
19
+ *
20
+ * Sorted, dot-prefixed entries skipped, non-directories skipped — the same
21
+ * listing `deploymentsOnDisk()` makes one level up, and both are sorted for the
22
+ * same reason: a committed artefact downstream is byte-compared.
23
+ */
24
+ export declare function listOverlayModuleDirs(root: string): string[];
25
+ /**
26
+ * Resolve one deployment: the module ids it adds. When `overlayRoot` is `null`
27
+ * (no deployment, or a deployment that ships no overlay directory) the result
28
+ * is core-only and empty, and the build behaves byte-for-byte like bare core
29
+ * (feature 057 FR-008, SC-006).
30
+ *
31
+ * It refuses nothing. An overlay module id already claimed by core, by a
32
+ * workspace module package, by an installed package or by another overlay
33
+ * module is refused at the seams that discover and compose — one rule, reached
34
+ * by both readers (feature 103, FR-004) — rather than here, where a build-time
35
+ * audit artefact is being rendered and no module is about to run.
36
+ */
37
+ export declare function resolveOverlay(params: {
38
+ overlayRoot: string | null;
39
+ deployment: string | null;
40
+ }): OverlayResolution;
41
+ //# sourceMappingURL=resolve-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-overlay.d.ts","sourceRoot":"","sources":["../../src/overlay/resolve-overlay.ts"],"names":[],"mappings":"AAiCA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAY5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,iBAAiB,CAIpB"}
@@ -0,0 +1,72 @@
1
+ // Overlay resolution — which modules a deployment adds.
2
+ //
3
+ // That is the whole of it since D-201 retired file shadowing (feature 103). An
4
+ // overlay module owns every file it ships, so there is nothing inside one of
5
+ // these directories for the platform to classify, and no core tree to classify
6
+ // it against: the resolution is a deterministic listing of the module
7
+ // directories under one root.
8
+ //
9
+ // **What used to be here, and why none of it is missed.** A core index, a unit
10
+ // taxonomy (`route` / `config` / `schema` / `other`), a shadowing rule, a
11
+ // conflict policy and three build-time refusals. `git log -S` over this
12
+ // directory's whole history finds exactly one loader for a shadowed file ever
13
+ // written — `loadOverlayServiceClasses`, for `service` — and feature 072
14
+ // deleted it deliberately, replacing it with `ctx.di.decorate`, because a
15
+ // replacement stops receiving core fixes the day it is written. `route` and
16
+ // `config` never had a loader at all: `resolution.overrides` had one consumer
17
+ // in the whole history of the tree, the override-manifest generator, which
18
+ // serialised it into an audit artefact. So a route override never changed what
19
+ // a running platform served, on any deployment, in any tree state.
20
+ //
21
+ // Since F4 the classification could not even run — its core root resolved
22
+ // `backend/src/modules`, which holds no module — so every overlay directory
23
+ // short-circuited to "a new module claiming this id" before a single file was
24
+ // looked at, and the three refusals the documentation promised were
25
+ // unreachable. A deployment could put a migration under an overlay directory
26
+ // and the guard written to refuse it said nothing.
27
+ //
28
+ // What a deployment overrides instead is in
29
+ // `docs/docs/architecture/overlay-pattern.md`.
30
+ import { existsSync, readdirSync, statSync } from 'node:fs';
31
+ import { join } from 'node:path';
32
+ /**
33
+ * Deterministic list of the module directories directly under an overlay root.
34
+ *
35
+ * Sorted, dot-prefixed entries skipped, non-directories skipped — the same
36
+ * listing `deploymentsOnDisk()` makes one level up, and both are sorted for the
37
+ * same reason: a committed artefact downstream is byte-compared.
38
+ */
39
+ export function listOverlayModuleDirs(root) {
40
+ if (!existsSync(root))
41
+ return [];
42
+ return readdirSync(root)
43
+ .filter((name) => !name.startsWith('.'))
44
+ .filter((name) => {
45
+ try {
46
+ return statSync(join(root, name)).isDirectory();
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ })
52
+ .sort();
53
+ }
54
+ /**
55
+ * Resolve one deployment: the module ids it adds. When `overlayRoot` is `null`
56
+ * (no deployment, or a deployment that ships no overlay directory) the result
57
+ * is core-only and empty, and the build behaves byte-for-byte like bare core
58
+ * (feature 057 FR-008, SC-006).
59
+ *
60
+ * It refuses nothing. An overlay module id already claimed by core, by a
61
+ * workspace module package, by an installed package or by another overlay
62
+ * module is refused at the seams that discover and compose — one rule, reached
63
+ * by both readers (feature 103, FR-004) — rather than here, where a build-time
64
+ * audit artefact is being rendered and no module is about to run.
65
+ */
66
+ export function resolveOverlay(params) {
67
+ const { overlayRoot, deployment } = params;
68
+ if (overlayRoot === null)
69
+ return { deployment: null, newModules: [] };
70
+ return { deployment, newModules: listOverlayModuleDirs(overlayRoot) };
71
+ }
72
+ //# sourceMappingURL=resolve-overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-overlay.js","sourceRoot":"","sources":["../../src/overlay/resolve-overlay.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,sEAAsE;AACtE,8BAA8B;AAC9B,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,wEAAwE;AACxE,8EAA8E;AAC9E,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,mEAAmE;AACnE,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,8EAA8E;AAC9E,oEAAoE;AACpE,6EAA6E;AAC7E,mDAAmD;AACnD,EAAE;AACF,4CAA4C;AAC5C,+CAA+C;AAE/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAmBjC;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC;SACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACvC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,MAG9B;IACC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC3C,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACtE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC;AACxE,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * `./packages` — installed extension-package discovery, and the platform's
3
+ * tenth subpath (`specs/110-instance-repository/` T113, FR-013).
4
+ *
5
+ * ## What is on it
6
+ *
7
+ * The answer to *"which Endora module packages did an operator install in this
8
+ * instance, and what do they compose to?"* — the `node_modules` scan, the
9
+ * classification that tells a tarball install from a workspace link, the
10
+ * manifest and `ModuleEntry` readers a composition root appends to its one
11
+ * `composeModules([...MODULES, ...overlay, ...packages], …)` call, the schema
12
+ * contribution the ORM configuration merges, and the entity lookup a host
13
+ * program uses to reach a class it may not import.
14
+ *
15
+ * It reads a package; it configures nothing. Merging what it finds into the
16
+ * execution order and into the ORM configuration is the host's
17
+ * (`backend/src/db/configured-migrations.ts`, `configured-entities.ts`), so the
18
+ * merge keeps exactly one implementation and this directory still knows nothing
19
+ * about a database.
20
+ *
21
+ * ## Why the platform carries it, and why an instance cannot
22
+ *
23
+ * This is *the* mechanism an instance depends on most (`research.md` §3.1): a
24
+ * client's whole tree is a composition of packages, and the code that finds them
25
+ * is not code a client may edit. It lived in `backend/src/packages/` while the
26
+ * application *was* the platform; an instance's application is a member the CLI
27
+ * scaffolds, and a scan it holds is a scan that diverges from ours the first
28
+ * time we correct it.
29
+ *
30
+ * ## Why no module may name it
31
+ *
32
+ * D-160.14's third state, for `./composition`'s own reason one surface over:
33
+ * this is the code that decides which packages are composed at all, so a module
34
+ * that could name it could enumerate — and eventually judge — its siblings. It
35
+ * is declared by the `exports` map and carried by no published barrel, so `node`
36
+ * and `tsc` resolve it for the host and the test kit, and
37
+ * `check:platform-surface` answers a module's reach into it with
38
+ * `host-internal-subpath`.
39
+ *
40
+ * ## What stays in the application, and why
41
+ *
42
+ * `backend/src/packages/claimed-module-ids.ts`. It reads the **generated**
43
+ * manifest index, which is a fact about one repository's tree (D-104, D-160.3),
44
+ * so R7.4 keeps it out of the package: a relocated platform file may not import
45
+ * a generated registry, it receives one. That file is a binding of eight lines
46
+ * over this directory's `installedPackageModuleIdClaims`, and an instance writes
47
+ * the same eight against its own index.
48
+ *
49
+ * The barrel names every symbol explicitly rather than re-exporting a directory:
50
+ * `check:platform-surface` exits 2 on an `export *`, because a wildcard makes
51
+ * the published set a property of whatever the files happen to declare rather
52
+ * than of a decision anybody took.
53
+ */
54
+ export { INSTANCE_ROOT_ENV, nodeModulesRootsFor, scanNodeModulesRoots, type InstalledPackage, type InstalledPackageScan, type SkippedPackage, } from './installed-packages.js';
55
+ export { discoverPackageModuleManifests, discoverPackageSchema, installedPackageModuleIdClaims, loadPackageModuleEntries, packageModuleEntriesUnder, packageModuleManifestsUnder, packageSchemaContributionsUnder, type EntityClassLike, type MigrationRegistryEntry, type PackageModuleManifest, type PackageSchemaContribution, } from './package-runtime.js';
56
+ export { entityNamed, type EntityRowTypeIsRequired, } from './package-entity-lookup.js';
57
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/packages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAC/B,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,WAAW,EACX,KAAK,uBAAuB,GAC7B,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * `./packages` — installed extension-package discovery, and the platform's
3
+ * tenth subpath (`specs/110-instance-repository/` T113, FR-013).
4
+ *
5
+ * ## What is on it
6
+ *
7
+ * The answer to *"which Endora module packages did an operator install in this
8
+ * instance, and what do they compose to?"* — the `node_modules` scan, the
9
+ * classification that tells a tarball install from a workspace link, the
10
+ * manifest and `ModuleEntry` readers a composition root appends to its one
11
+ * `composeModules([...MODULES, ...overlay, ...packages], …)` call, the schema
12
+ * contribution the ORM configuration merges, and the entity lookup a host
13
+ * program uses to reach a class it may not import.
14
+ *
15
+ * It reads a package; it configures nothing. Merging what it finds into the
16
+ * execution order and into the ORM configuration is the host's
17
+ * (`backend/src/db/configured-migrations.ts`, `configured-entities.ts`), so the
18
+ * merge keeps exactly one implementation and this directory still knows nothing
19
+ * about a database.
20
+ *
21
+ * ## Why the platform carries it, and why an instance cannot
22
+ *
23
+ * This is *the* mechanism an instance depends on most (`research.md` §3.1): a
24
+ * client's whole tree is a composition of packages, and the code that finds them
25
+ * is not code a client may edit. It lived in `backend/src/packages/` while the
26
+ * application *was* the platform; an instance's application is a member the CLI
27
+ * scaffolds, and a scan it holds is a scan that diverges from ours the first
28
+ * time we correct it.
29
+ *
30
+ * ## Why no module may name it
31
+ *
32
+ * D-160.14's third state, for `./composition`'s own reason one surface over:
33
+ * this is the code that decides which packages are composed at all, so a module
34
+ * that could name it could enumerate — and eventually judge — its siblings. It
35
+ * is declared by the `exports` map and carried by no published barrel, so `node`
36
+ * and `tsc` resolve it for the host and the test kit, and
37
+ * `check:platform-surface` answers a module's reach into it with
38
+ * `host-internal-subpath`.
39
+ *
40
+ * ## What stays in the application, and why
41
+ *
42
+ * `backend/src/packages/claimed-module-ids.ts`. It reads the **generated**
43
+ * manifest index, which is a fact about one repository's tree (D-104, D-160.3),
44
+ * so R7.4 keeps it out of the package: a relocated platform file may not import
45
+ * a generated registry, it receives one. That file is a binding of eight lines
46
+ * over this directory's `installedPackageModuleIdClaims`, and an instance writes
47
+ * the same eight against its own index.
48
+ *
49
+ * The barrel names every symbol explicitly rather than re-exporting a directory:
50
+ * `check:platform-surface` exits 2 on an `export *`, because a wildcard makes
51
+ * the published set a property of whatever the files happen to declare rather
52
+ * than of a decision anybody took.
53
+ */
54
+ export { INSTANCE_ROOT_ENV, nodeModulesRootsFor, scanNodeModulesRoots, } from './installed-packages.js';
55
+ export { discoverPackageModuleManifests, discoverPackageSchema, installedPackageModuleIdClaims, loadPackageModuleEntries, packageModuleEntriesUnder, packageModuleManifestsUnder, packageSchemaContributionsUnder, } from './package-runtime.js';
56
+ export { entityNamed, } from './package-entity-lookup.js';
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/packages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,GAKhC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,WAAW,GAEZ,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * The environment variable naming the **instance** — the directory whose
3
+ * `node_modules` holds this platform's installed extension packages.
4
+ *
5
+ * Unset is the ordinary case and is not a degraded one: a deployed instance
6
+ * *is* the directory the platform runs from, so the chain above the running
7
+ * code already names it. The variable exists for the case where the two are not
8
+ * the same — a platform executed out of a checkout against an instance built
9
+ * somewhere else, which is exactly what D-110's acceptance criterion does.
10
+ */
11
+ export declare const INSTANCE_ROOT_ENV = "ENDORA_INSTANCE_ROOT";
12
+ /** One installed package claiming to be an Endora module. */
13
+ export interface InstalledPackage {
14
+ /** The module id it claims — `endora.id` (D-142), never the folder name. */
15
+ readonly id: string;
16
+ /** The npm package name. Identity for humans; never identity for the platform. */
17
+ readonly name: string;
18
+ readonly version: string;
19
+ /** The package directory as installed, symlinks unfollowed. */
20
+ readonly directory: string;
21
+ /** `<directory>/package.json` — the file that claims {@link id}. */
22
+ readonly manifestPath: string;
23
+ /** The `node_modules` directory it was found under. */
24
+ readonly foundUnder: string;
25
+ }
26
+ /** A candidate that was read and not accepted, with the reason. */
27
+ export type SkippedPackage = {
28
+ readonly kind: 'links-out-of-node-modules';
29
+ readonly name: string;
30
+ readonly at: string;
31
+ readonly realPath: string;
32
+ } | {
33
+ readonly kind: 'not-an-endora-module';
34
+ readonly name: string;
35
+ readonly at: string;
36
+ } | {
37
+ readonly kind: 'unreadable';
38
+ readonly at: string;
39
+ readonly reason: string;
40
+ };
41
+ export interface InstalledPackageScan {
42
+ /** Accepted packages, ordered by npm name so composition is deterministic. */
43
+ readonly packages: readonly InstalledPackage[];
44
+ readonly skipped: readonly SkippedPackage[];
45
+ /** The roots that existed and were walked — never the roots that were asked for. */
46
+ readonly rootsRead: readonly string[];
47
+ }
48
+ /**
49
+ * Every `node_modules` directory this platform reads, nearest first.
50
+ *
51
+ * The declared instance root comes first, then the chain above the running
52
+ * platform — in an instance, `<instance>/node_modules/@endora-commerce/platform`
53
+ * upward to the instance root; in this checkout, the platform package's own and
54
+ * the repository's. The chain is Node's own module-resolution directory list,
55
+ * which is the honest answer to "where would an installed package be": wherever
56
+ * `import` would find it. Roots that do not exist are dropped, so an empty
57
+ * result means *nothing to read* rather than *nothing found*.
58
+ *
59
+ * **The chain is derived from this file's own location and therefore moved with
60
+ * it** (`specs/110-instance-repository/` T113). It read from
61
+ * `backend/src/packages/` until the relocation, so `backend/node_modules` was on
62
+ * it and the platform package's was not; it now reads from
63
+ * `@endora-commerce/platform`, which is where the platform actually runs from in
64
+ * an instance, and is the reading `ENDORA_INSTANCE_ROOT` exists to override. No
65
+ * discovery is lost in this checkout: every `@endora-commerce/*` entry under
66
+ * `backend/node_modules` is a workspace link and is refused as one a few
67
+ * hundred lines down, which is what `installed-packages.test.ts` asserts either
68
+ * side of the move.
69
+ */
70
+ export declare function nodeModulesRootsFor(env?: NodeJS.ProcessEnv): string[];
71
+ /**
72
+ * Scan the given `node_modules` roots for installed Endora module packages.
73
+ *
74
+ * A package found in more than one root is taken from the nearest one — the
75
+ * same precedence Node's resolver applies, so what the platform composes is
76
+ * what an `import` of that name in the instance would load.
77
+ */
78
+ export declare function scanNodeModulesRoots(roots: readonly string[]): InstalledPackageScan;
79
+ //# sourceMappingURL=installed-packages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installed-packages.d.ts","sourceRoot":"","sources":["../../src/packages/installed-packages.ts"],"names":[],"mappings":"AA2EA;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,mEAAmE;AACnE,MAAM,MAAM,cAAc,GACtB;IACE,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAQD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,EAAE,CA0BlF;AAwJD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,oBAAoB,CA8BnF"}