@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,184 @@
1
+ import { ERROR_CODES } from '@endora-commerce/contracts';
2
+ import { HttpError } from '../../http/error-envelope.js';
3
+ import { getCurrentPlatformScope } from '../scope.js';
4
+ /**
5
+ * The bound api-key actor behind a request, or `null` (feature 062).
6
+ *
7
+ * This read went through a private `ApiKeyActorSlice` interface until T118b —
8
+ * *"kept structural so the middleware does not import the auth module's
9
+ * internals"*, which was D-52/D-53 stated in the middleware's own words. The
10
+ * shape is `@endora-commerce/contracts`' now and the augmentation is the
11
+ * platform's, so there is nothing left to restate.
12
+ *
13
+ * The **widening** is this site's own and stays: the middleware is an
14
+ * `onRequest` hook and a composition that mounts no auth plugin decorates
15
+ * nothing, so an absent actor is `null` — an unbound key, which is the
16
+ * unpinned path and what a request with no key already got.
17
+ */
18
+ function boundApiKeyActor(request) {
19
+ const actor = request.actor;
20
+ if (actor?.kind !== 'api_key')
21
+ return null;
22
+ return actor.salesChannelId ? actor : null;
23
+ }
24
+ const HEADER_NAME = 'x-sales-channel';
25
+ const ECHO_HEADER = 'x-sales-channel';
26
+ const ADMIN_PATH_PREFIX = '/api/v1/admin/';
27
+ const API_PATH_PREFIX = '/api/v1/';
28
+ const HEALTH_PATH = '/api/v1/_health';
29
+ function shouldResolve(path) {
30
+ if (!path.startsWith(API_PATH_PREFIX))
31
+ return false;
32
+ if (path === HEALTH_PATH || path.startsWith(`${HEALTH_PATH}/`))
33
+ return false;
34
+ return true;
35
+ }
36
+ function isAdminPath(path) {
37
+ return path.startsWith(ADMIN_PATH_PREFIX);
38
+ }
39
+ export async function registerSalesChannelResolverMiddleware(app, options) {
40
+ const { resolver } = options;
41
+ const strictAdmin = options.strictAdmin ?? false;
42
+ app.addHook('onRequest', async (request, reply) => {
43
+ const url = request.url ?? '';
44
+ // Strip query string for path-prefix matching.
45
+ const path = url.split('?', 1)[0];
46
+ if (!shouldResolve(path))
47
+ return;
48
+ const headerValue = request.headers[HEADER_NAME];
49
+ const headerCode = Array.isArray(headerValue) ? headerValue[0] : headerValue;
50
+ const queryCode = !isAdminPath(path)
51
+ ? readChannelCodeFromQuery(request.query)
52
+ : undefined;
53
+ const adminPath = isAdminPath(path);
54
+ const explicit = headerCode ?? queryCode;
55
+ // Step 0 (feature 062) — a bound api key derives its channel from the
56
+ // binding, fail closed: an explicit signal naming a different channel is
57
+ // a 403, an unknown/inactive bound channel refuses, never a fallback.
58
+ const boundActor = boundApiKeyActor(request);
59
+ if (boundActor) {
60
+ const bound = await resolver.getById(boundActor.salesChannelId);
61
+ if (bound === null) {
62
+ throw resolverErrorToHttp('unknown_sales_channel', boundActor.salesChannelId);
63
+ }
64
+ if (explicit && explicit.trim() !== '' && explicit !== bound.code) {
65
+ if (options.auditLogService) {
66
+ await options.auditLogService.record({
67
+ action: 'api_key.channel_mismatch',
68
+ objectType: 'api_key',
69
+ objectId: boundActor.apiKeyId,
70
+ stateBefore: null,
71
+ stateAfter: {
72
+ requestedChannel: explicit,
73
+ boundChannelId: bound.id,
74
+ boundChannelCode: bound.code,
75
+ },
76
+ });
77
+ }
78
+ throw new HttpError(403, ERROR_CODES.API_KEY_CHANNEL_MISMATCH, 'API key is bound to a different sales channel.');
79
+ }
80
+ if (!bound.active) {
81
+ throw resolverErrorToHttp('inactive_sales_channel', bound.code);
82
+ }
83
+ setResolvedChannel(bound);
84
+ reply.header(ECHO_HEADER, bound.code);
85
+ return;
86
+ }
87
+ // Steps 1 + 2 — explicit signals always win, and an unknown / inactive
88
+ // signal always refuses (no silent fallback per FR-014).
89
+ if (explicit && explicit.trim() !== '') {
90
+ const result = await resolver.resolveActive(explicit);
91
+ if (!result.ok) {
92
+ throw resolverErrorToHttp(result.error, result.code);
93
+ }
94
+ setResolvedChannel(result.channel);
95
+ reply.header(ECHO_HEADER, result.channel.code);
96
+ return;
97
+ }
98
+ // Step 3 — host map.
99
+ const hostHeader = request.headers.host;
100
+ const hostBased = resolver.resolveHost(Array.isArray(hostHeader) ? hostHeader[0] : hostHeader);
101
+ if (hostBased) {
102
+ const result = await resolver.resolveActive(hostBased);
103
+ if (!result.ok) {
104
+ // If host map points at an unknown / inactive channel, refuse
105
+ // explicitly — this is operator misconfiguration, not a missing
106
+ // signal.
107
+ throw resolverErrorToHttp(result.error, result.code);
108
+ }
109
+ setResolvedChannel(result.channel);
110
+ reply.header(ECHO_HEADER, result.channel.code);
111
+ return;
112
+ }
113
+ // Step 4 — fallback. Storefront / integration always; admin only when
114
+ // `strictAdmin` is off (the default during the initial Phase 2 rollout —
115
+ // FR-014's strict refusal is enabled in T046's contract tests).
116
+ if (adminPath && strictAdmin) {
117
+ throw new HttpError(400, ERROR_CODES.MISSING_SALES_CHANNEL_CONTEXT, 'Admin requests must specify the sales channel via X-Sales-Channel header.');
118
+ }
119
+ // D-48 — the check that used to live here moved into the owner. A missing
120
+ // default is a platform fault, not a request one, and it now has a single
121
+ // spelling (`NoSystemDefaultChannel`, also a 500 `INTERNAL`) thrown by the
122
+ // resolver rather than one re-invented at each of the seventeen sites that
123
+ // asked. Not caught here on purpose: propagating is the whole point.
124
+ const fallback = await resolver.getSystemDefault();
125
+ setResolvedChannel(fallback);
126
+ reply.header(ECHO_HEADER, fallback.code);
127
+ });
128
+ }
129
+ function readChannelCodeFromQuery(query) {
130
+ if (typeof query !== 'object' || query === null)
131
+ return undefined;
132
+ const v = query['salesChannel'];
133
+ if (typeof v !== 'string')
134
+ return undefined;
135
+ return v;
136
+ }
137
+ function resolverErrorToHttp(kind, code) {
138
+ if (kind === 'unknown_sales_channel') {
139
+ return new HttpError(400, ERROR_CODES.UNKNOWN_SALES_CHANNEL, `Sales channel "${code}" is not registered.`);
140
+ }
141
+ return new HttpError(400, ERROR_CODES.INACTIVE_SALES_CHANNEL, `Sales channel "${code}" is not currently active.`);
142
+ }
143
+ /**
144
+ * Record the resolved channel on the current request scope (feature 072, T028).
145
+ *
146
+ * The scope is opened by the tenant hook, which runs *before* this one, so the
147
+ * slot is filled rather than passed in at construction — see `PlatformScope.setChannel`.
148
+ * No scope means the resolver was mounted without the request-scope hook, which
149
+ * is a composition error, not a request error: fail loudly here rather than let
150
+ * every downstream handler see "no channel".
151
+ */
152
+ function setResolvedChannel(channel) {
153
+ const scope = getCurrentPlatformScope();
154
+ if (!scope) {
155
+ throw new HttpError(500, ERROR_CODES.INTERNAL, 'No request scope is open; the sales-channel resolver is mounted without the request-scope hook.');
156
+ }
157
+ scope.setChannel(channel);
158
+ }
159
+ /**
160
+ * The resolved channel for the current execution, or `null` when the resolver
161
+ * did not run on this path (`/api/v1/_health`, non-API routes) or there is no
162
+ * request scope at all.
163
+ *
164
+ * Takes no argument on purpose: the channel lives on the scope now, so a caller
165
+ * deep in a service no longer has to be threaded a `FastifyRequest` to read it.
166
+ */
167
+ export function currentSalesChannel() {
168
+ return getCurrentPlatformScope()?.channel ?? null;
169
+ }
170
+ /**
171
+ * Helper used by route handlers downstream. Throws if not resolved.
172
+ *
173
+ * The `request` parameter is retained so the 49 existing call sites keep
174
+ * compiling unchanged; it is no longer read. New code calls
175
+ * `getResolvedChannel()` or `currentSalesChannel()`.
176
+ */
177
+ export function getResolvedChannel(_request) {
178
+ const channel = currentSalesChannel();
179
+ if (!channel) {
180
+ throw new HttpError(500, ERROR_CODES.INTERNAL, 'Sales channel was not resolved; resolver middleware did not run on this path.');
181
+ }
182
+ return channel;
183
+ }
184
+ //# sourceMappingURL=sales-channel-resolver.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales-channel-resolver.middleware.js","sourceRoot":"","sources":["../../../src/kernel/sales-channels/sales-channel-resolver.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAgC,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AA4DtD;;;;;;;;;;;;;GAaG;AACH,SAAS,gBAAgB,CAAC,OAAuB;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAA0B,CAAC;IACjD,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,MAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC1D,GAAoB,EACpB,OAA0C;IAE1C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;IAEjD,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;QAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAC9B,+CAA+C;QAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QAEjC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAE7E,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;YAClC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,KAAK,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,UAAU,IAAI,SAAS,CAAC;QAEzC,sEAAsE;QACtE,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAe,CAAC,CAAC;YACjE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,mBAAmB,CAAC,uBAAuB,EAAE,UAAU,CAAC,cAAe,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClE,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;oBAC5B,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;wBACnC,MAAM,EAAE,0BAA0B;wBAClC,UAAU,EAAE,SAAS;wBACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;wBAC7B,WAAW,EAAE,IAAI;wBACjB,UAAU,EAAE;4BACV,gBAAgB,EAAE,QAAQ;4BAC1B,cAAc,EAAE,KAAK,CAAC,EAAE;4BACxB,gBAAgB,EAAE,KAAK,CAAC,IAAI;yBAC7B;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,wBAAwB,EACpC,gDAAgD,CACjD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,mBAAmB,CAAC,wBAAwB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC;YACD,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,yDAAyD;QACzD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;YACD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CACpC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CACvD,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,8DAA8D;gBAC9D,gEAAgE;gBAChE,UAAU;gBACV,MAAM,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;YACD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,yEAAyE;QACzE,gEAAgE;QAChE,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,6BAA6B,EACzC,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACnD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,GAAI,KAAiC,CAAC,cAAc,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAwD,EACxD,IAAY;IAEZ,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACrC,OAAO,IAAI,SAAS,CAClB,GAAG,EACH,WAAW,CAAC,qBAAqB,EACjC,kBAAkB,IAAI,sBAAsB,CAC7C,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,SAAS,CAClB,GAAG,EACH,WAAW,CAAC,sBAAsB,EAClC,kBAAkB,IAAI,4BAA4B,CACnD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,OAAsB;IAChD,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,QAAQ,EACpB,iGAAiG,CAClG,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,uBAAuB,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAyB;IAC1D,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,QAAQ,EACpB,+EAA+E,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { EntityManager } from '@mikro-orm/postgresql';
2
+ import type { SalesChannelsCache } from './sales-channels-cache.js';
3
+ import { type CachedChannel } from './sales-channels-cache.js';
4
+ /**
5
+ * SalesChannelResolverService — feature 005 / T014.
6
+ *
7
+ * Lookup helper used by the resolver Fastify middleware (T015) and by
8
+ * any other consumer that needs to map a code to a channel. Reads
9
+ * exclusively from {@link SalesChannelsCache}; on a miss, hits Postgres
10
+ * once and primes the cache (positive or "not found" sentinel).
11
+ *
12
+ * Also owns:
13
+ * - the host-based mapping parsed from `SALES_CHANNEL_HOST_MAP`
14
+ * - the system-default channel lookup (used as the storefront /
15
+ * integration fallback per FR-013)
16
+ */
17
+ export interface ResolverError {
18
+ kind: 'unknown_sales_channel' | 'inactive_sales_channel';
19
+ code: string;
20
+ }
21
+ export declare class SalesChannelResolverService {
22
+ private readonly emFactory;
23
+ private readonly cache;
24
+ private readonly hostMap;
25
+ constructor(emFactory: () => EntityManager, cache: SalesChannelsCache);
26
+ /** Every channel, ordered by code. */
27
+ listAll(): Promise<CachedChannel[]>;
28
+ /** Lookup by code; returns null when the code is unknown. */
29
+ getByCode(code: string): Promise<CachedChannel | null>;
30
+ /**
31
+ * Feature 062 — lookup by id (bound api keys pin their channel by id, not
32
+ * code). Primes the code-keyed cache on hit so subsequent explicit-signal
33
+ * resolutions of the same channel are warm. Returns null when unknown.
34
+ */
35
+ getById(id: string): Promise<CachedChannel | null>;
36
+ /**
37
+ * Resolve a code to an *active* channel. Returns one of:
38
+ * - { ok: true, channel }
39
+ * - { ok: false, error: 'unknown_sales_channel' }
40
+ * - { ok: false, error: 'inactive_sales_channel' }
41
+ *
42
+ * Used by the middleware after it has picked a code from the request.
43
+ */
44
+ resolveActive(code: string): Promise<{
45
+ ok: true;
46
+ channel: CachedChannel;
47
+ } | {
48
+ ok: false;
49
+ error: ResolverError['kind'];
50
+ code: string;
51
+ }>;
52
+ /**
53
+ * The system-default channel; the storefront / integration fallback, and the
54
+ * answer to "which channel, when nobody said".
55
+ *
56
+ * **Never `null`** (feature 072, D-48). Exactly one row holds the flag on any
57
+ * booted deployment: the boot reconciler inserts or promotes one on every
58
+ * serving path, a partial unique index forbids a second, and the CRUD service
59
+ * refuses every delete, deactivate and `active:false` that would take it
60
+ * away. The nullable signature this replaces described an unreachable state,
61
+ * and a branch that cannot be taken but is typed as if it can is a branch
62
+ * every author must invent a value for — four of them did, spelling it
63
+ * `'default'`, the nil UUID, a `randomUUID()` and a silent switch to the
64
+ * platform-wide settings tier.
65
+ *
66
+ * @throws NoSystemDefaultChannel when the registry has no flagged row, which
67
+ * means composition has not run the reconciler yet.
68
+ */
69
+ getSystemDefault(): Promise<CachedChannel>;
70
+ /** Look up a channel code from the host header using the env-configured map. */
71
+ resolveHost(host: string | undefined): string | null;
72
+ }
73
+ /**
74
+ * Parse `SALES_CHANNEL_HOST_MAP`. Format:
75
+ *
76
+ * "host=channelCode,host=channelCode"
77
+ *
78
+ * Whitespace and trailing commas are tolerated; empty input → empty map.
79
+ * Hosts are lowercased; unparseable entries are silently skipped.
80
+ */
81
+ export declare function parseHostMap(raw: string): Map<string, string>;
82
+ //# sourceMappingURL=sales-channel-resolver.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales-channel-resolver.service.d.ts","sourceRoot":"","sources":["../../../src/kernel/sales-channels/sales-channel-resolver.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,KAAK,EACV,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,uBAAuB,GAAG,wBAAwB,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,2BAA2B;IAIpC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAG3B,SAAS,EAAE,MAAM,aAAa,EAC9B,KAAK,EAAE,kBAAkB;IAK5C,sCAAsC;IAChC,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAMzC,6DAA6D;IACvD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAe5D;;;;OAIG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IASxD;;;;;;;OAOG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,GACX,OAAO,CACN;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,GACpC;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAC5D;IAOD;;;;;;;;;;;;;;;;OAgBG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAUhD,gFAAgF;IAChF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;CAMrD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAa7D"}
@@ -0,0 +1,126 @@
1
+ import { NoSystemDefaultChannel } from './no-system-default-channel.error.js';
2
+ import { SalesChannel } from './sales-channel.entity.js';
3
+ import { toCachedChannel, } from './sales-channels-cache.js';
4
+ export class SalesChannelResolverService {
5
+ emFactory;
6
+ cache;
7
+ hostMap;
8
+ constructor(emFactory, cache) {
9
+ this.emFactory = emFactory;
10
+ this.cache = cache;
11
+ this.hostMap = parseHostMap(process.env['SALES_CHANNEL_HOST_MAP'] ?? '');
12
+ }
13
+ /** Every channel, ordered by code. */
14
+ async listAll() {
15
+ const em = this.emFactory();
16
+ const rows = await em.find(SalesChannel, {}, { orderBy: { code: 'ASC' } });
17
+ return rows.map((row) => toCachedChannel(row));
18
+ }
19
+ /** Lookup by code; returns null when the code is unknown. */
20
+ async getByCode(code) {
21
+ const cached = await this.cache.get(code);
22
+ if (cached.hit)
23
+ return cached.value;
24
+ const em = this.emFactory();
25
+ const channel = await em.findOne(SalesChannel, { code });
26
+ if (channel === null) {
27
+ await this.cache.setNotFound(code);
28
+ return null;
29
+ }
30
+ const view = toCachedChannel(channel);
31
+ await this.cache.set(code, view);
32
+ return view;
33
+ }
34
+ /**
35
+ * Feature 062 — lookup by id (bound api keys pin their channel by id, not
36
+ * code). Primes the code-keyed cache on hit so subsequent explicit-signal
37
+ * resolutions of the same channel are warm. Returns null when unknown.
38
+ */
39
+ async getById(id) {
40
+ const em = this.emFactory();
41
+ const channel = await em.findOne(SalesChannel, { id });
42
+ if (channel === null)
43
+ return null;
44
+ const view = toCachedChannel(channel);
45
+ await this.cache.set(view.code, view);
46
+ return view;
47
+ }
48
+ /**
49
+ * Resolve a code to an *active* channel. Returns one of:
50
+ * - { ok: true, channel }
51
+ * - { ok: false, error: 'unknown_sales_channel' }
52
+ * - { ok: false, error: 'inactive_sales_channel' }
53
+ *
54
+ * Used by the middleware after it has picked a code from the request.
55
+ */
56
+ async resolveActive(code) {
57
+ const channel = await this.getByCode(code);
58
+ if (channel === null)
59
+ return { ok: false, error: 'unknown_sales_channel', code };
60
+ if (!channel.active)
61
+ return { ok: false, error: 'inactive_sales_channel', code };
62
+ return { ok: true, channel };
63
+ }
64
+ /**
65
+ * The system-default channel; the storefront / integration fallback, and the
66
+ * answer to "which channel, when nobody said".
67
+ *
68
+ * **Never `null`** (feature 072, D-48). Exactly one row holds the flag on any
69
+ * booted deployment: the boot reconciler inserts or promotes one on every
70
+ * serving path, a partial unique index forbids a second, and the CRUD service
71
+ * refuses every delete, deactivate and `active:false` that would take it
72
+ * away. The nullable signature this replaces described an unreachable state,
73
+ * and a branch that cannot be taken but is typed as if it can is a branch
74
+ * every author must invent a value for — four of them did, spelling it
75
+ * `'default'`, the nil UUID, a `randomUUID()` and a silent switch to the
76
+ * platform-wide settings tier.
77
+ *
78
+ * @throws NoSystemDefaultChannel when the registry has no flagged row, which
79
+ * means composition has not run the reconciler yet.
80
+ */
81
+ async getSystemDefault() {
82
+ const em = this.emFactory();
83
+ const channel = await em.findOne(SalesChannel, { systemDefault: true });
84
+ if (channel === null)
85
+ throw new NoSystemDefaultChannel();
86
+ const view = toCachedChannel(channel);
87
+ // Make the system-default channel cheap to find on the next call too.
88
+ await this.cache.set(view.code, view);
89
+ return view;
90
+ }
91
+ /** Look up a channel code from the host header using the env-configured map. */
92
+ resolveHost(host) {
93
+ if (!host)
94
+ return null;
95
+ // Normalise — ioredis-style hosts may carry `:port`.
96
+ const bare = host.split(':')[0].toLowerCase();
97
+ return this.hostMap.get(bare) ?? null;
98
+ }
99
+ }
100
+ /**
101
+ * Parse `SALES_CHANNEL_HOST_MAP`. Format:
102
+ *
103
+ * "host=channelCode,host=channelCode"
104
+ *
105
+ * Whitespace and trailing commas are tolerated; empty input → empty map.
106
+ * Hosts are lowercased; unparseable entries are silently skipped.
107
+ */
108
+ export function parseHostMap(raw) {
109
+ const map = new Map();
110
+ if (!raw.trim())
111
+ return map;
112
+ for (const entry of raw.split(',')) {
113
+ const trimmed = entry.trim();
114
+ if (trimmed === '')
115
+ continue;
116
+ const eq = trimmed.indexOf('=');
117
+ if (eq <= 0 || eq === trimmed.length - 1)
118
+ continue;
119
+ const host = trimmed.slice(0, eq).trim().toLowerCase();
120
+ const code = trimmed.slice(eq + 1).trim();
121
+ if (host && code)
122
+ map.set(host, code);
123
+ }
124
+ return map;
125
+ }
126
+ //# sourceMappingURL=sales-channel-resolver.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales-channel-resolver.service.js","sourceRoot":"","sources":["../../../src/kernel/sales-channels/sales-channel-resolver.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EACL,eAAe,GAEhB,MAAM,2BAA2B,CAAC;AAqBnC,MAAM,OAAO,2BAA2B;IAInB;IACA;IAJF,OAAO,CAAsB;IAE9C,YACmB,SAA8B,EAC9B,KAAyB;QADzB,cAAS,GAAT,SAAS,CAAqB;QAC9B,UAAK,GAAL,KAAK,CAAoB;QAE1C,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,GAAG;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;QAEpC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CACjB,IAAY;QAKZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;QACjF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,sBAAsB,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACtC,sEAAsE;QACtE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IAChF,WAAW,CAAC,IAAwB;QAClC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,EAAE;YAAE,SAAS;QAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,IAAI,IAAI,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { OptionalProps } from '@mikro-orm/core';
2
+ /**
3
+ * Sales Channel — feature 005.
4
+ *
5
+ * The platform-wide stable handle through which every other module scopes
6
+ * its data (FR-013/FR-015). One row carries `systemDefault = true`
7
+ * (enforced by a partial unique index — feature 005, migration 025); the
8
+ * boot-time reconciler is the single source of truth for that flag
9
+ * (research.md R-4).
10
+ *
11
+ * Legacy fields preserved for one release cycle (research.md R-12):
12
+ * - `isPublic` — anonymous-price visibility for the storefront. Will
13
+ * be folded into the new `active` flag's downstream effects later.
14
+ * - `status` — superseded by the boolean `active`. Keeping both for
15
+ * reversibility of migration 025; consumers should read `active`.
16
+ *
17
+ * Optimistic concurrency for identity edits (FR-005) is enforced by the
18
+ * `version` column. The service layer bumps `version` on every mutation
19
+ * and `PATCH` handlers gate on `If-Match: W/"<id>:<version>"` — same
20
+ * pattern as `quote_requests` and the settings module.
21
+ *
22
+ * Bridge tables (sales_channel_<entity>) are declared by their owning
23
+ * modules as separate entity classes; this class does not declare any
24
+ * MikroORM relation properties for them so that adding / removing
25
+ * bridges in later features stays a per-module concern.
26
+ */
27
+ export declare class SalesChannel {
28
+ [OptionalProps]?: 'id' | 'createdAt' | 'updatedAt' | 'isPublic' | 'status' | 'logoAssetId' | 'themeCode' | 'languages' | 'currencies' | 'active' | 'systemDefault' | 'version';
29
+ id: string;
30
+ code: string;
31
+ name: Record<string, string>;
32
+ logoAssetId?: string | null;
33
+ themeCode?: string | null;
34
+ /** Ordered array of language codes; `defaultLanguage` MUST be one of these. */
35
+ languages: string[];
36
+ defaultLanguage: string;
37
+ /** Ordered array of ISO-4217 currency codes; `defaultCurrency` MUST be one of these. */
38
+ currencies: string[];
39
+ defaultCurrency: string;
40
+ active: boolean;
41
+ /** True for exactly one row platform-wide (partial unique index in migration 025). */
42
+ systemDefault: boolean;
43
+ /** Optimistic-concurrency guard for identity edits (FR-005); service-layer bump. */
44
+ version: number;
45
+ isPublic: boolean;
46
+ status: 'active' | 'inactive';
47
+ createdAt: Date;
48
+ updatedAt: Date;
49
+ }
50
+ //# sourceMappingURL=sales-channel.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales-channel.entity.d.ts","sourceRoot":"","sources":["../../../src/kernel/sales-channels/sales-channel.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAgC,MAAM,iBAAiB,CAAC;AAItF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAEa,YAAY;IACvB,CAAC,aAAa,CAAC,CAAC,EACZ,IAAI,GACJ,WAAW,GACX,WAAW,GACX,UAAU,GACV,QAAQ,GACR,aAAa,GACb,WAAW,GACX,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,eAAe,GACf,SAAS,CAAC;IAGd,EAAE,EAAE,MAAM,CAAgB;IAI1B,IAAI,EAAG,MAAM,CAAC;IAGd,IAAI,EAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGnC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC,+EAA+E;IAE/E,SAAS,EAAE,MAAM,EAAE,CAAM;IAGzB,eAAe,EAAG,MAAM,CAAC;IAEzB,wFAAwF;IAExF,UAAU,EAAE,MAAM,EAAE,CAAM;IAG1B,eAAe,EAAG,MAAM,CAAC;IAGzB,MAAM,EAAE,OAAO,CAAQ;IAEvB,sFAAsF;IAEtF,aAAa,EAAE,OAAO,CAAS;IAE/B,oFAAoF;IAEpF,OAAO,EAAE,MAAM,CAAK;IAKpB,QAAQ,EAAE,OAAO,CAAS;IAG1B,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAY;IAGzC,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B"}
@@ -0,0 +1,132 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, OptionalProps, PrimaryKey, Property, Unique } from '@mikro-orm/core';
11
+ import { GlobalEntity } from '../../tenancy/org-scoped.decorator.js';
12
+ import { randomUUID } from 'crypto';
13
+ /**
14
+ * Sales Channel — feature 005.
15
+ *
16
+ * The platform-wide stable handle through which every other module scopes
17
+ * its data (FR-013/FR-015). One row carries `systemDefault = true`
18
+ * (enforced by a partial unique index — feature 005, migration 025); the
19
+ * boot-time reconciler is the single source of truth for that flag
20
+ * (research.md R-4).
21
+ *
22
+ * Legacy fields preserved for one release cycle (research.md R-12):
23
+ * - `isPublic` — anonymous-price visibility for the storefront. Will
24
+ * be folded into the new `active` flag's downstream effects later.
25
+ * - `status` — superseded by the boolean `active`. Keeping both for
26
+ * reversibility of migration 025; consumers should read `active`.
27
+ *
28
+ * Optimistic concurrency for identity edits (FR-005) is enforced by the
29
+ * `version` column. The service layer bumps `version` on every mutation
30
+ * and `PATCH` handlers gate on `If-Match: W/"<id>:<version>"` — same
31
+ * pattern as `quote_requests` and the settings module.
32
+ *
33
+ * Bridge tables (sales_channel_<entity>) are declared by their owning
34
+ * modules as separate entity classes; this class does not declare any
35
+ * MikroORM relation properties for them so that adding / removing
36
+ * bridges in later features stays a per-module concern.
37
+ */
38
+ let SalesChannel = class SalesChannel {
39
+ [OptionalProps];
40
+ id = randomUUID();
41
+ code;
42
+ name;
43
+ logoAssetId = null;
44
+ themeCode = null;
45
+ /** Ordered array of language codes; `defaultLanguage` MUST be one of these. */
46
+ languages = [];
47
+ defaultLanguage;
48
+ /** Ordered array of ISO-4217 currency codes; `defaultCurrency` MUST be one of these. */
49
+ currencies = [];
50
+ defaultCurrency;
51
+ active = true;
52
+ /** True for exactly one row platform-wide (partial unique index in migration 025). */
53
+ systemDefault = false;
54
+ /** Optimistic-concurrency guard for identity edits (FR-005); service-layer bump. */
55
+ version = 1;
56
+ // -- Legacy columns (preserved for one release per research.md R-12) ------
57
+ isPublic = false;
58
+ status = 'active';
59
+ createdAt = new Date();
60
+ updatedAt = new Date();
61
+ };
62
+ __decorate([
63
+ PrimaryKey({ type: 'uuid' }),
64
+ __metadata("design:type", String)
65
+ ], SalesChannel.prototype, "id", void 0);
66
+ __decorate([
67
+ Property({ type: 'string', length: 32 }),
68
+ Unique(),
69
+ __metadata("design:type", String)
70
+ ], SalesChannel.prototype, "code", void 0);
71
+ __decorate([
72
+ Property({ type: 'json' }),
73
+ __metadata("design:type", Object)
74
+ ], SalesChannel.prototype, "name", void 0);
75
+ __decorate([
76
+ Property({ type: 'uuid', nullable: true }),
77
+ __metadata("design:type", Object)
78
+ ], SalesChannel.prototype, "logoAssetId", void 0);
79
+ __decorate([
80
+ Property({ type: 'string', length: 64, nullable: true }),
81
+ __metadata("design:type", Object)
82
+ ], SalesChannel.prototype, "themeCode", void 0);
83
+ __decorate([
84
+ Property({ type: 'json' }),
85
+ __metadata("design:type", Array)
86
+ ], SalesChannel.prototype, "languages", void 0);
87
+ __decorate([
88
+ Property({ type: 'string', length: 10 }),
89
+ __metadata("design:type", String)
90
+ ], SalesChannel.prototype, "defaultLanguage", void 0);
91
+ __decorate([
92
+ Property({ type: 'json' }),
93
+ __metadata("design:type", Array)
94
+ ], SalesChannel.prototype, "currencies", void 0);
95
+ __decorate([
96
+ Property({ type: 'string', length: 3 }),
97
+ __metadata("design:type", String)
98
+ ], SalesChannel.prototype, "defaultCurrency", void 0);
99
+ __decorate([
100
+ Property({ type: 'boolean' }),
101
+ __metadata("design:type", Boolean)
102
+ ], SalesChannel.prototype, "active", void 0);
103
+ __decorate([
104
+ Property({ type: 'boolean' }),
105
+ __metadata("design:type", Boolean)
106
+ ], SalesChannel.prototype, "systemDefault", void 0);
107
+ __decorate([
108
+ Property({ type: 'integer' }),
109
+ __metadata("design:type", Number)
110
+ ], SalesChannel.prototype, "version", void 0);
111
+ __decorate([
112
+ Property({ type: 'boolean' }),
113
+ __metadata("design:type", Boolean)
114
+ ], SalesChannel.prototype, "isPublic", void 0);
115
+ __decorate([
116
+ Property({ type: 'string', length: 16 }),
117
+ __metadata("design:type", String)
118
+ ], SalesChannel.prototype, "status", void 0);
119
+ __decorate([
120
+ Property({ type: 'datetime', onCreate: () => new Date() }),
121
+ __metadata("design:type", Date)
122
+ ], SalesChannel.prototype, "createdAt", void 0);
123
+ __decorate([
124
+ Property({ type: 'datetime', onUpdate: () => new Date() }),
125
+ __metadata("design:type", Date)
126
+ ], SalesChannel.prototype, "updatedAt", void 0);
127
+ SalesChannel = __decorate([
128
+ GlobalEntity(),
129
+ Entity({ tableName: 'sales_channels' })
130
+ ], SalesChannel);
131
+ export { SalesChannel };
132
+ //# sourceMappingURL=sales-channel.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales-channel.entity.js","sourceRoot":"","sources":["../../../src/kernel/sales-channels/sales-channel.entity.ts"],"names":[],"mappings":"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"}