@endora-commerce/mod-price-lists 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 (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/dist/admin/components/ApplicationRuleBuilder.d.ts +24 -0
  4. package/dist/admin/components/ApplicationRuleBuilder.d.ts.map +1 -0
  5. package/dist/admin/components/ApplicationRuleBuilder.js +249 -0
  6. package/dist/admin/components/ApplicationRuleBuilder.js.map +1 -0
  7. package/dist/admin/components/BracketGrid.d.ts +29 -0
  8. package/dist/admin/components/BracketGrid.d.ts.map +1 -0
  9. package/dist/admin/components/BracketGrid.js +252 -0
  10. package/dist/admin/components/BracketGrid.js.map +1 -0
  11. package/dist/admin/components/DisplayModeOverrideRow.d.ts +46 -0
  12. package/dist/admin/components/DisplayModeOverrideRow.d.ts.map +1 -0
  13. package/dist/admin/components/DisplayModeOverrideRow.js +109 -0
  14. package/dist/admin/components/DisplayModeOverrideRow.js.map +1 -0
  15. package/dist/admin/components/LinkedPriceListsPanel.d.ts +55 -0
  16. package/dist/admin/components/LinkedPriceListsPanel.d.ts.map +1 -0
  17. package/dist/admin/components/LinkedPriceListsPanel.js +131 -0
  18. package/dist/admin/components/LinkedPriceListsPanel.js.map +1 -0
  19. package/dist/admin/index.d.ts +34 -0
  20. package/dist/admin/index.d.ts.map +1 -0
  21. package/dist/admin/index.js +119 -0
  22. package/dist/admin/index.js.map +1 -0
  23. package/dist/admin/pages/DisplayModeOverridesPage.d.ts +25 -0
  24. package/dist/admin/pages/DisplayModeOverridesPage.d.ts.map +1 -0
  25. package/dist/admin/pages/DisplayModeOverridesPage.js +266 -0
  26. package/dist/admin/pages/DisplayModeOverridesPage.js.map +1 -0
  27. package/dist/admin/pages/PriceListDetailPage.d.ts +23 -0
  28. package/dist/admin/pages/PriceListDetailPage.d.ts.map +1 -0
  29. package/dist/admin/pages/PriceListDetailPage.js +421 -0
  30. package/dist/admin/pages/PriceListDetailPage.js.map +1 -0
  31. package/dist/admin/pages/PriceListsPage.d.ts +17 -0
  32. package/dist/admin/pages/PriceListsPage.d.ts.map +1 -0
  33. package/dist/admin/pages/PriceListsPage.js +198 -0
  34. package/dist/admin/pages/PriceListsPage.js.map +1 -0
  35. package/dist/admin/zones/CategoryDisplayMode.d.ts +27 -0
  36. package/dist/admin/zones/CategoryDisplayMode.d.ts.map +1 -0
  37. package/dist/admin/zones/CategoryDisplayMode.js +11 -0
  38. package/dist/admin/zones/CategoryDisplayMode.js.map +1 -0
  39. package/dist/admin/zones/OrganizationDisplayMode.d.ts +36 -0
  40. package/dist/admin/zones/OrganizationDisplayMode.d.ts.map +1 -0
  41. package/dist/admin/zones/OrganizationDisplayMode.js +12 -0
  42. package/dist/admin/zones/OrganizationDisplayMode.js.map +1 -0
  43. package/dist/admin/zones/ProductLinkedPriceLists.d.ts +16 -0
  44. package/dist/admin/zones/ProductLinkedPriceLists.d.ts.map +1 -0
  45. package/dist/admin/zones/ProductLinkedPriceLists.js +7 -0
  46. package/dist/admin/zones/ProductLinkedPriceLists.js.map +1 -0
  47. package/dist/backend/entities/price-display-mode-override.entity.d.ts +23 -0
  48. package/dist/backend/entities/price-display-mode-override.entity.d.ts.map +1 -0
  49. package/dist/backend/entities/price-display-mode-override.entity.js +58 -0
  50. package/dist/backend/entities/price-display-mode-override.entity.js.map +1 -0
  51. package/dist/backend/entities/price-list-price-bracket.entity.d.ts +26 -0
  52. package/dist/backend/entities/price-list-price-bracket.entity.d.ts.map +1 -0
  53. package/dist/backend/entities/price-list-price-bracket.entity.js +73 -0
  54. package/dist/backend/entities/price-list-price-bracket.entity.js.map +1 -0
  55. package/dist/backend/entities/price-list-product.entity.d.ts +15 -0
  56. package/dist/backend/entities/price-list-product.entity.d.ts.map +1 -0
  57. package/dist/backend/entities/price-list-product.entity.js +43 -0
  58. package/dist/backend/entities/price-list-product.entity.js.map +1 -0
  59. package/dist/backend/entities/price-list.entity.d.ts +34 -0
  60. package/dist/backend/entities/price-list.entity.d.ts.map +1 -0
  61. package/dist/backend/entities/price-list.entity.js +115 -0
  62. package/dist/backend/entities/price-list.entity.js.map +1 -0
  63. package/dist/backend/index.d.ts +125 -0
  64. package/dist/backend/index.d.ts.map +1 -0
  65. package/dist/backend/index.js +179 -0
  66. package/dist/backend/index.js.map +1 -0
  67. package/dist/backend/plugin.d.ts +68 -0
  68. package/dist/backend/plugin.d.ts.map +1 -0
  69. package/dist/backend/plugin.js +88 -0
  70. package/dist/backend/plugin.js.map +1 -0
  71. package/dist/backend/routes.d.ts +40 -0
  72. package/dist/backend/routes.d.ts.map +1 -0
  73. package/dist/backend/routes.js +447 -0
  74. package/dist/backend/routes.js.map +1 -0
  75. package/dist/backend/routes.storefront.d.ts +47 -0
  76. package/dist/backend/routes.storefront.d.ts.map +1 -0
  77. package/dist/backend/routes.storefront.js +131 -0
  78. package/dist/backend/routes.storefront.js.map +1 -0
  79. package/dist/backend/services/application-rule-evaluator.d.ts +25 -0
  80. package/dist/backend/services/application-rule-evaluator.d.ts.map +1 -0
  81. package/dist/backend/services/application-rule-evaluator.js +2 -0
  82. package/dist/backend/services/application-rule-evaluator.js.map +1 -0
  83. package/dist/backend/services/audit-references.d.ts +11 -0
  84. package/dist/backend/services/audit-references.d.ts.map +1 -0
  85. package/dist/backend/services/audit-references.js +23 -0
  86. package/dist/backend/services/audit-references.js.map +1 -0
  87. package/dist/backend/services/default-price-list-migration.d.ts +70 -0
  88. package/dist/backend/services/default-price-list-migration.d.ts.map +1 -0
  89. package/dist/backend/services/default-price-list-migration.js +177 -0
  90. package/dist/backend/services/default-price-list-migration.js.map +1 -0
  91. package/dist/backend/services/display-mode-resolver.d.ts +78 -0
  92. package/dist/backend/services/display-mode-resolver.d.ts.map +1 -0
  93. package/dist/backend/services/display-mode-resolver.js +71 -0
  94. package/dist/backend/services/display-mode-resolver.js.map +1 -0
  95. package/dist/backend/services/listing-price-chain.d.ts +26 -0
  96. package/dist/backend/services/listing-price-chain.d.ts.map +1 -0
  97. package/dist/backend/services/listing-price-chain.js +55 -0
  98. package/dist/backend/services/listing-price-chain.js.map +1 -0
  99. package/dist/backend/services/price-bracket-resolver.d.ts +24 -0
  100. package/dist/backend/services/price-bracket-resolver.d.ts.map +1 -0
  101. package/dist/backend/services/price-bracket-resolver.js +16 -0
  102. package/dist/backend/services/price-bracket-resolver.js.map +1 -0
  103. package/dist/backend/services/price-list-candidate-vector.d.ts +116 -0
  104. package/dist/backend/services/price-list-candidate-vector.d.ts.map +1 -0
  105. package/dist/backend/services/price-list-candidate-vector.js +133 -0
  106. package/dist/backend/services/price-list-candidate-vector.js.map +1 -0
  107. package/dist/backend/services/price-list-currency-reference.d.ts +12 -0
  108. package/dist/backend/services/price-list-currency-reference.d.ts.map +1 -0
  109. package/dist/backend/services/price-list-currency-reference.js +24 -0
  110. package/dist/backend/services/price-list-currency-reference.js.map +1 -0
  111. package/dist/backend/services/price-list-read-port.d.ts +29 -0
  112. package/dist/backend/services/price-list-read-port.d.ts.map +1 -0
  113. package/dist/backend/services/price-list-read-port.js +64 -0
  114. package/dist/backend/services/price-list-read-port.js.map +1 -0
  115. package/dist/backend/services/price-list-resolver.d.ts +26 -0
  116. package/dist/backend/services/price-list-resolver.d.ts.map +1 -0
  117. package/dist/backend/services/price-list-resolver.js +37 -0
  118. package/dist/backend/services/price-list-resolver.js.map +1 -0
  119. package/dist/backend/services/price-list-service.d.ts +431 -0
  120. package/dist/backend/services/price-list-service.d.ts.map +1 -0
  121. package/dist/backend/services/price-list-service.js +1238 -0
  122. package/dist/backend/services/price-list-service.js.map +1 -0
  123. package/dist/backend/services/price-list-status-worker.d.ts +28 -0
  124. package/dist/backend/services/price-list-status-worker.d.ts.map +1 -0
  125. package/dist/backend/services/price-list-status-worker.js +38 -0
  126. package/dist/backend/services/price-list-status-worker.js.map +1 -0
  127. package/dist/backend/services/pricing-cache.d.ts +53 -0
  128. package/dist/backend/services/pricing-cache.d.ts.map +1 -0
  129. package/dist/backend/services/pricing-cache.js +88 -0
  130. package/dist/backend/services/pricing-cache.js.map +1 -0
  131. package/dist/backend/services/pricing-service.d.ts +304 -0
  132. package/dist/backend/services/pricing-service.d.ts.map +1 -0
  133. package/dist/backend/services/pricing-service.interface.d.ts +151 -0
  134. package/dist/backend/services/pricing-service.interface.d.ts.map +1 -0
  135. package/dist/backend/services/pricing-service.interface.js +10 -0
  136. package/dist/backend/services/pricing-service.interface.js.map +1 -0
  137. package/dist/backend/services/pricing-service.js +803 -0
  138. package/dist/backend/services/pricing-service.js.map +1 -0
  139. package/dist/backend/services/unit-price-ordering.d.ts +121 -0
  140. package/dist/backend/services/unit-price-ordering.d.ts.map +1 -0
  141. package/dist/backend/services/unit-price-ordering.js +164 -0
  142. package/dist/backend/services/unit-price-ordering.js.map +1 -0
  143. package/dist/manifest.d.ts +218 -0
  144. package/dist/manifest.d.ts.map +1 -0
  145. package/dist/manifest.js +228 -0
  146. package/dist/manifest.js.map +1 -0
  147. package/dist/migrations/20260426T075235_price_lists_pricing_init.d.ts +24 -0
  148. package/dist/migrations/20260426T075235_price_lists_pricing_init.d.ts.map +1 -0
  149. package/dist/migrations/20260426T075235_price_lists_pricing_init.js +89 -0
  150. package/dist/migrations/20260426T075235_price_lists_pricing_init.js.map +1 -0
  151. package/dist/migrations/20260504T125655_price_lists_engine.d.ts +6 -0
  152. package/dist/migrations/20260504T125655_price_lists_engine.d.ts.map +1 -0
  153. package/dist/migrations/20260504T125655_price_lists_engine.js +319 -0
  154. package/dist/migrations/20260504T125655_price_lists_engine.js.map +1 -0
  155. package/dist/migrations/20260817T055457_price_lists_single_system_price_list.d.ts +15 -0
  156. package/dist/migrations/20260817T055457_price_lists_single_system_price_list.d.ts.map +1 -0
  157. package/dist/migrations/20260817T055457_price_lists_single_system_price_list.js +58 -0
  158. package/dist/migrations/20260817T055457_price_lists_single_system_price_list.js.map +1 -0
  159. package/dist/migrations/20260821T135907_price_lists_unit_price_amount_index.d.ts +40 -0
  160. package/dist/migrations/20260821T135907_price_lists_unit_price_amount_index.d.ts.map +1 -0
  161. package/dist/migrations/20260821T135907_price_lists_unit_price_amount_index.js +46 -0
  162. package/dist/migrations/20260821T135907_price_lists_unit_price_amount_index.js.map +1 -0
  163. package/dist/migrations/index.d.ts +30 -0
  164. package/dist/migrations/index.d.ts.map +1 -0
  165. package/dist/migrations/index.js +35 -0
  166. package/dist/migrations/index.js.map +1 -0
  167. package/docs/price_lists.md +278 -0
  168. package/i18n/en.json +14 -0
  169. package/i18n/pl.json +14 -0
  170. package/package.json +99 -0
  171. package/tailwind.css +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-list-service.js","sourceRoot":"","sources":["../../../src/backend/services/price-list-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { EntityManager } from '@mikro-orm/postgresql';
2
+ /**
3
+ * Status worker (feature 011 / FR-009, SC-006, research §R4 + §R13).
4
+ *
5
+ * Sweeps every 5 min on the existing BullMQ-class queue and:
6
+ * - Promotes `scheduled → active` when `starts_at <= now()`.
7
+ * - Expires `active → expired` when `ends_at < now()`.
8
+ *
9
+ * Idempotent under jitter: each transition bumps `modifiedAt` exactly once
10
+ * because the candidate set is filtered to "still in old state" before each
11
+ * pass. Public `sweep()` is a plain async method so tests can drive it
12
+ * directly without Redis/BullMQ.
13
+ *
14
+ * Implementation note: uses MikroORM's EM API (find + mutate + flush) so
15
+ * the worker participates in the caller's transaction during integration
16
+ * tests; production path runs outside any test transaction so the same
17
+ * code commits normally on the next worker tick.
18
+ */
19
+ export interface SweepResult {
20
+ scheduledToActive: number;
21
+ activeToExpired: number;
22
+ }
23
+ export declare class PriceListStatusWorker {
24
+ private readonly emFactory;
25
+ constructor(emFactory: () => EntityManager);
26
+ sweep(now?: Date): Promise<SweepResult>;
27
+ }
28
+ //# sourceMappingURL=price-list-status-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-list-status-worker.d.ts","sourceRoot":"","sources":["../../../src/backend/services/price-list-status-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM,aAAa;IAErD,KAAK,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;CAkC1D"}
@@ -0,0 +1,38 @@
1
+ import { PriceList } from '../entities/price-list.entity.js';
2
+ export class PriceListStatusWorker {
3
+ emFactory;
4
+ constructor(emFactory) {
5
+ this.emFactory = emFactory;
6
+ }
7
+ async sweep(now = new Date()) {
8
+ // command-coverage-ignore: automatic date-driven status transitions
9
+ // (scheduled→active / active→expired) by the background sweeper — a system
10
+ // operation on a schedule, not an admin action; the manual admin transitions
11
+ // (activate/draftify) are audited via their Commands.
12
+ const em = this.emFactory();
13
+ const toActivate = await em.find(PriceList, {
14
+ status: 'scheduled',
15
+ startsAt: { $lte: now, $ne: null },
16
+ });
17
+ const toExpire = await em.find(PriceList, {
18
+ status: 'active',
19
+ endsAt: { $lt: now, $ne: null },
20
+ });
21
+ for (const row of toActivate) {
22
+ row.status = 'active';
23
+ row.modifiedAt = now;
24
+ }
25
+ for (const row of toExpire) {
26
+ row.status = 'expired';
27
+ row.modifiedAt = now;
28
+ }
29
+ if (toActivate.length > 0 || toExpire.length > 0) {
30
+ await em.flush();
31
+ }
32
+ return {
33
+ scheduledToActive: toActivate.length,
34
+ activeToExpired: toExpire.length,
35
+ };
36
+ }
37
+ }
38
+ //# sourceMappingURL=price-list-status-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-list-status-worker.js","sourceRoot":"","sources":["../../../src/backend/services/price-list-status-worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAwB7D,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,SAA8B;QAA9B,cAAS,GAAT,SAAS,CAAqB;IAAG,CAAC;IAE/D,KAAK,CAAC,KAAK,CAAC,MAAY,IAAI,IAAI,EAAE;QAChC,oEAAoE;QACpE,2EAA2E;QAC3E,6EAA6E;QAC7E,sDAAsD;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE5B,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;SACnC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;YACxC,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;SAChC,CAAC,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACtB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QACvB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;YACvB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QACvB,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QAED,OAAO;YACL,iBAAiB,EAAE,UAAU,CAAC,MAAM;YACpC,eAAe,EAAE,QAAQ,CAAC,MAAM;SACjC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * In-memory LRU cache around the pricing resolver (T064).
3
+ *
4
+ * Keyed on the tuple documented in
5
+ * `contracts/pricing-resolution.contract.md` § Caching:
6
+ * (productId, variantId?, quantity, currency, salesChannelId, organizationId?, customerGroupId?)
7
+ *
8
+ * TTL is the resolver's contractual upper bound (60 s) — the
9
+ * storefront's existing 60-s revalidate window is the system of
10
+ * record, so anything older is dropped on read regardless of LRU
11
+ * position. Capacity bounds memory growth on busy storefronts; the
12
+ * Map's insertion-order iteration gives O(1) LRU eviction without
13
+ * pulling a new runtime dependency.
14
+ *
15
+ * Invalidation: every write path on `PriceListService` calls
16
+ * `invalidateAll()`. Coarse but correct — the resolver fans across
17
+ * every active list, so any list mutation in principle affects every
18
+ * tuple, and the cache is rebuilt within seconds of a quiet period.
19
+ * Finer-grained invalidation can land later if profiling shows it
20
+ * matters.
21
+ *
22
+ * Tests opt out by passing `{ ttlMs: 0 }` so each call goes through.
23
+ */
24
+ export interface PricingCacheKey {
25
+ productId: string;
26
+ variantId: string | null;
27
+ quantity: number;
28
+ currencyCode: string;
29
+ salesChannelId: string;
30
+ organizationId: string | null;
31
+ customerGroupId: string | null;
32
+ }
33
+ export declare const DEFAULT_PRICING_CACHE_TTL_MS = 60000;
34
+ export declare class PricingCache<T> {
35
+ private readonly ttlMs;
36
+ private readonly capacity;
37
+ private readonly entries;
38
+ private hitCount;
39
+ private missCount;
40
+ constructor(options?: {
41
+ ttlMs?: number;
42
+ capacity?: number;
43
+ });
44
+ get(key: PricingCacheKey): T | undefined;
45
+ set(key: PricingCacheKey, value: T): void;
46
+ invalidateAll(): void;
47
+ stats(): {
48
+ size: number;
49
+ hits: number;
50
+ misses: number;
51
+ };
52
+ }
53
+ //# sourceMappingURL=pricing-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing-cache.d.ts","sourceRoot":"","sources":["../../../src/backend/services/pricing-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAOD,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAGnD,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;gBAEV,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;IAK/D,GAAG,CAAC,GAAG,EAAE,eAAe,GAAG,CAAC,GAAG,SAAS;IAoBxC,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAYzC,aAAa,IAAI,IAAI;IAIrB,KAAK,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAGxD"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * In-memory LRU cache around the pricing resolver (T064).
3
+ *
4
+ * Keyed on the tuple documented in
5
+ * `contracts/pricing-resolution.contract.md` § Caching:
6
+ * (productId, variantId?, quantity, currency, salesChannelId, organizationId?, customerGroupId?)
7
+ *
8
+ * TTL is the resolver's contractual upper bound (60 s) — the
9
+ * storefront's existing 60-s revalidate window is the system of
10
+ * record, so anything older is dropped on read regardless of LRU
11
+ * position. Capacity bounds memory growth on busy storefronts; the
12
+ * Map's insertion-order iteration gives O(1) LRU eviction without
13
+ * pulling a new runtime dependency.
14
+ *
15
+ * Invalidation: every write path on `PriceListService` calls
16
+ * `invalidateAll()`. Coarse but correct — the resolver fans across
17
+ * every active list, so any list mutation in principle affects every
18
+ * tuple, and the cache is rebuilt within seconds of a quiet period.
19
+ * Finer-grained invalidation can land later if profiling shows it
20
+ * matters.
21
+ *
22
+ * Tests opt out by passing `{ ttlMs: 0 }` so each call goes through.
23
+ */
24
+ export const DEFAULT_PRICING_CACHE_TTL_MS = 60_000;
25
+ const DEFAULT_CAPACITY = 5_000;
26
+ export class PricingCache {
27
+ ttlMs;
28
+ capacity;
29
+ entries = new Map();
30
+ hitCount = 0;
31
+ missCount = 0;
32
+ constructor(options = {}) {
33
+ this.ttlMs = options.ttlMs ?? DEFAULT_PRICING_CACHE_TTL_MS;
34
+ this.capacity = options.capacity ?? DEFAULT_CAPACITY;
35
+ }
36
+ get(key) {
37
+ if (this.ttlMs <= 0)
38
+ return undefined;
39
+ const k = serializeKey(key);
40
+ const entry = this.entries.get(k);
41
+ if (!entry) {
42
+ this.missCount += 1;
43
+ return undefined;
44
+ }
45
+ if (entry.expiresAt < Date.now()) {
46
+ this.entries.delete(k);
47
+ this.missCount += 1;
48
+ return undefined;
49
+ }
50
+ // Refresh LRU position by reinserting.
51
+ this.entries.delete(k);
52
+ this.entries.set(k, entry);
53
+ this.hitCount += 1;
54
+ return entry.value;
55
+ }
56
+ set(key, value) {
57
+ if (this.ttlMs <= 0)
58
+ return;
59
+ const k = serializeKey(key);
60
+ if (this.entries.has(k))
61
+ this.entries.delete(k);
62
+ else if (this.entries.size >= this.capacity) {
63
+ // Evict oldest insertion (Map iterates in insertion order).
64
+ const oldest = this.entries.keys().next().value;
65
+ if (oldest !== undefined)
66
+ this.entries.delete(oldest);
67
+ }
68
+ this.entries.set(k, { value, expiresAt: Date.now() + this.ttlMs });
69
+ }
70
+ invalidateAll() {
71
+ this.entries.clear();
72
+ }
73
+ stats() {
74
+ return { size: this.entries.size, hits: this.hitCount, misses: this.missCount };
75
+ }
76
+ }
77
+ function serializeKey(key) {
78
+ return [
79
+ key.productId,
80
+ key.variantId ?? '',
81
+ key.quantity,
82
+ key.currencyCode,
83
+ key.salesChannelId,
84
+ key.organizationId ?? '',
85
+ key.customerGroupId ?? '',
86
+ ].join('|');
87
+ }
88
+ //# sourceMappingURL=pricing-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing-cache.js","sourceRoot":"","sources":["../../../src/backend/services/pricing-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,304 @@
1
+ import type { EntityManager } from '@mikro-orm/postgresql';
2
+ import type { DisplayMode, ListingPrice, ListingPriceOrderChunk, ListingPriceOrderQuery, ListingPriceViewerContext } from '@endora-commerce/contracts';
3
+ import { type PriceBracketRow } from './price-bracket-resolver.js';
4
+ import type { PriceListTargetReads } from './price-list-service.js';
5
+ import type { ListingPricesInput, PricedProductRef, PricingEngineResult, PricingLineResult, PricingOrganizationRef, PricingServiceContract } from './pricing-service.interface.js';
6
+ /**
7
+ * The engine's answer, as a charged line (FR-034): Sale when present, Base
8
+ * otherwise, `null` when nothing on any matching list prices the product.
9
+ *
10
+ * Extracted from `resolveLinePrice` so the batched listing path applies exactly
11
+ * the same rule to the engine results it assembles — the sale-wins step is one
12
+ * of the places a second implementation could have quietly disagreed.
13
+ */
14
+ export declare function lineFromEngine(out: PricingEngineResult): PricingLineResult | null;
15
+ export declare class PricingService implements PricingServiceContract {
16
+ #private;
17
+ private readonly emFactory;
18
+ private readonly cache?;
19
+ /**
20
+ * Feature 056 — resolves the acting org's inheritance chain (nearest-first,
21
+ * `[orgId, ...ancestorIds]`) so a descendant inherits an ancestor's org-named
22
+ * price list. When absent, the chain is `[orgId]` (flat behavior, byte-for-byte).
23
+ */
24
+ private readonly resolveOrgChain?;
25
+ /**
26
+ * Feature 075 Phase C — forwarded verbatim to the `PriceListService` this
27
+ * engine builds for the display-mode chain, whose category step reaches
28
+ * `catalog` over its read port. Absent, that step refuses rather than
29
+ * treating every category as unknown.
30
+ */
31
+ private readonly targetReads?;
32
+ constructor(emFactory: () => EntityManager, cache?: import("./pricing-cache.js").PricingCache<{
33
+ base: {
34
+ listId: string;
35
+ listName: string;
36
+ bracket: PriceBracketRow | null;
37
+ };
38
+ sale: {
39
+ listId: string;
40
+ listName: string;
41
+ bracket: PriceBracketRow;
42
+ } | null;
43
+ displayMode: DisplayMode;
44
+ currencyCode: string;
45
+ }> | undefined,
46
+ /**
47
+ * Feature 056 — resolves the acting org's inheritance chain (nearest-first,
48
+ * `[orgId, ...ancestorIds]`) so a descendant inherits an ancestor's org-named
49
+ * price list. When absent, the chain is `[orgId]` (flat behavior, byte-for-byte).
50
+ */
51
+ resolveOrgChain?: ((orgId: string) => Promise<readonly string[]>) | undefined,
52
+ /**
53
+ * Feature 075 Phase C — forwarded verbatim to the `PriceListService` this
54
+ * engine builds for the display-mode chain, whose category step reaches
55
+ * `catalog` over its read port. Absent, that step refuses rather than
56
+ * treating every category as unknown.
57
+ */
58
+ targetReads?: PriceListTargetReads | undefined);
59
+ /**
60
+ * New resolver pipeline composing the three pure helpers:
61
+ * - evaluateApplicationRule (US4)
62
+ * - pickPriorityChain (US5)
63
+ * - resolvePriceBracket (US3)
64
+ *
65
+ * Returns Base + (optional) Sale resolutions on the given context.
66
+ *
67
+ * Bracket-gap fall-through (FR-031): when the picked list has no
68
+ * bracket for the requested (product, currency, qty), the resolver
69
+ * advances to the next-priority list in the same partition and
70
+ * repeats. Default is the terminal fallback for the Base partition;
71
+ * the Sale partition simply yields null when nothing matches with a
72
+ * usable bracket.
73
+ *
74
+ * Display mode resolution is stubbed at this layer until US7 wires
75
+ * the override chain. The default mode `gross_only` is returned so
76
+ * the response shape is complete.
77
+ */
78
+ resolveEngine(input: {
79
+ product: PricedProductRef;
80
+ variantId?: string | null;
81
+ context: {
82
+ quantity: number;
83
+ organization?: PricingOrganizationRef | null;
84
+ /**
85
+ * Feature 040 — a customer's DIRECT customer-group membership, which
86
+ * overrides the Organization's group when set (R6). Callers that know the
87
+ * acting customer resolve it as `customer.customerGroupId`; when omitted,
88
+ * the Organization's group is used (unchanged behavior).
89
+ */
90
+ customerGroupId?: string | null;
91
+ /**
92
+ * The request's resolved sales channel. Only `id` (rule dimension +
93
+ * cache key) and `defaultCurrency` (currency fallback) are read, so any
94
+ * resolved-channel shape satisfies this — a full `SalesChannel` entity,
95
+ * or the request-scoped `CachedChannel` (feature 053 / FR-002).
96
+ */
97
+ salesChannel: {
98
+ id: string;
99
+ defaultCurrency: string;
100
+ };
101
+ currencyCode?: string;
102
+ };
103
+ }): Promise<{
104
+ base: {
105
+ listId: string;
106
+ listName: string;
107
+ bracket: PriceBracketRow | null;
108
+ };
109
+ sale: {
110
+ listId: string;
111
+ listName: string;
112
+ bracket: PriceBracketRow;
113
+ } | null;
114
+ displayMode: DisplayMode;
115
+ currencyCode: string;
116
+ }>;
117
+ /**
118
+ * Convenience wrapper for cart/checkout/order callers (US6 / FR-034).
119
+ *
120
+ * Returns the line's effective unit price as a `{ amount, currency }`
121
+ * pair plus the source price-list ID and a flag indicating whether the
122
+ * Sale partition won. Callers persist the amount on the cart line and
123
+ * the source list ID for audit; if the response is `null`, the product
124
+ * has no bracket on any matching list and the caller should refuse the
125
+ * line (or, in the storefront's case, route to the Quote Request flow).
126
+ *
127
+ * Always charges the Sale price when present (FR-034). Falls back to
128
+ * the Base price; both come from `resolveEngine`.
129
+ */
130
+ resolveLinePrice(input: {
131
+ product: PricedProductRef;
132
+ variantId?: string | null;
133
+ context: {
134
+ quantity: number;
135
+ organization?: PricingOrganizationRef | null;
136
+ /** Feature 040 — customer's direct group overrides the org's (R6). */
137
+ customerGroupId?: string | null;
138
+ /**
139
+ * The request's resolved sales channel. Only `id` (rule dimension +
140
+ * cache key) and `defaultCurrency` (currency fallback) are read, so any
141
+ * resolved-channel shape satisfies this — a full `SalesChannel` entity,
142
+ * or the request-scoped `CachedChannel` (feature 053 / FR-002).
143
+ */
144
+ salesChannel: {
145
+ id: string;
146
+ defaultCurrency: string;
147
+ };
148
+ currencyCode?: string;
149
+ };
150
+ }): Promise<{
151
+ amount: string;
152
+ currency: string;
153
+ priceListId: string;
154
+ isSale: boolean;
155
+ bracketStartQuantity: number;
156
+ displayMode: DisplayMode;
157
+ } | null>;
158
+ /**
159
+ * Issue #132 — the price a catalogue listing may render, per product.
160
+ *
161
+ * The chain is `listingPriceFrom`; this method feeds it, so the listing paths
162
+ * make one call and get an answer whose type states which step of the chain
163
+ * produced it. Every requested product gets an entry.
164
+ *
165
+ * ## Why this is a batch and not a loop
166
+ *
167
+ * It used to be a loop over `resolveLinePrice`, which is **7 queries per
168
+ * product, sequentially**: a 50-item catalogue page — the platform's default
169
+ * page size and its busiest storefront read — cost 350 round trips and 315 ms
170
+ * of resolution on a warm local Postgres. Six of those seven asked a question
171
+ * whose answer does not vary across the page (the active price lists, the
172
+ * settings pair, the organization's override) or asked it one id at a time
173
+ * (the category memberships, the brackets, the product-scope overrides).
174
+ *
175
+ * So the set is resolved once and applied per product: the memberships in one
176
+ * `in (…)`, the active lists once, the organization's inheritance chain once,
177
+ * the brackets in **priority waves** (one query per fall-through level the
178
+ * page actually needs, not per product), and the display-mode chain through
179
+ * `resolveDisplayModes`, reusing the memberships already read.
180
+ *
181
+ * ## What is *not* batched, and why
182
+ *
183
+ * The application-rule evaluation and the priority walk stay per product, and
184
+ * they have to: `evaluateApplicationRule` reads the product's own category
185
+ * memberships, so a category rule matches some cards on a page and not
186
+ * others, and the winning list therefore differs per product. Both are pure
187
+ * in-memory functions over rows already loaded — the same
188
+ * `evaluateApplicationRule` / `pickPriorityChain` / `resolvePriceBracket`
189
+ * helpers `resolveEngine` composes — so the per-product part costs no I/O.
190
+ *
191
+ * The bracket wave is what keeps that honest. A single `in (…)` over every
192
+ * matched list would fetch brackets for lists most cards never reach; asking
193
+ * one wave at a time fetches exactly the (list, product) pairs the per-product
194
+ * walk would have asked for, in one query per level instead of one per card.
195
+ *
196
+ * ## Identity with the per-product path
197
+ *
198
+ * `resolveEngine` and `resolveLinePrice` are untouched: cart, checkout and the
199
+ * admin resolved-price probe take the same path they always did, and
200
+ * `test/integration/price_lists/listing-prices-batch.test.ts` asserts, product
201
+ * by product over a fixture with a bracket gap, a sale partition, a category
202
+ * rule and both unpriced arms, that this method answers exactly what looping
203
+ * that path answers. The LRU is keyed and populated identically, so a page
204
+ * whose products are already cached still issues no query at all.
205
+ */
206
+ resolveListingPrices(input: ListingPricesInput): Promise<Map<string, ListingPrice>>;
207
+ /**
208
+ * The catalogue in resolved-unit-price order, for one viewer, one chunk at a
209
+ * time — {@link ListingPriceOrderPort}.
210
+ *
211
+ * ## Identity with the card, which is the whole point
212
+ *
213
+ * The rows this answers are the rows `resolveListingPrices` would answer for
214
+ * the same viewer, sorted. Not "approximately": the candidates come from
215
+ * {@link buildCandidateVector}, which produces its order by running
216
+ * `pickPriorityChain` to exhaustion, and the sale partition leads the base one
217
+ * because `lineFromEngine` charges the sale price whenever the sale partition
218
+ * resolves anything. `test/integration/price_lists/unit-price-ordering.test.ts`
219
+ * asserts it product by product against the batch, the way
220
+ * `listing-prices-batch.test.ts` asserts the batch against the per-product
221
+ * path.
222
+ *
223
+ * ## What it does not know
224
+ *
225
+ * Visibility, channel membership, product status, archival, categories the
226
+ * *buyer* filtered by. Those are `catalog`'s facts about `catalog`'s rows, and
227
+ * a chunk from here may name products the viewer must never see — the caller
228
+ * intersects before anything reaches a page, a cursor or a count.
229
+ *
230
+ * ## Two statements, whatever the page size
231
+ *
232
+ * One probe of the leading stream, which fixes the watermark, and one merge of
233
+ * the rest. A single-candidate viewer costs one. The leading stream's rows are
234
+ * reused rather than re-read.
235
+ */
236
+ orderByUnitPrice(input: ListingPriceOrderQuery): Promise<ListingPriceOrderChunk>;
237
+ /**
238
+ * Which of `productIds` the viewer's candidate lists price at quantity 1.
239
+ *
240
+ * `catalog` composes the unpriced tail out of the complement, so this is a set
241
+ * membership answer and deliberately not a price: it says nothing about which
242
+ * list won or what it charges.
243
+ */
244
+ pricedProductIds(input: {
245
+ context: ListingPriceViewerContext;
246
+ productIds: readonly string[];
247
+ }): Promise<ReadonlySet<string>>;
248
+ /**
249
+ * The display mode a *page* resolves to for this viewer — feature 086 /
250
+ * FR-016. See `PriceListService.resolvePageDisplayMode` for why the
251
+ * per-product and per-category steps are absent.
252
+ */
253
+ pageDisplayMode(input: {
254
+ context: ListingPriceViewerContext;
255
+ }): Promise<DisplayMode>;
256
+ /**
257
+ * Issue #132 — the lowest-quantity bracket amount on one named price list.
258
+ *
259
+ * `product_feeds` used to run this `select` itself, which put another
260
+ * module's table in its SQL and let a feed publish prices while this module
261
+ * was refusing to serve them. The read is the same; owning it here is what
262
+ * makes the port gate apply.
263
+ */
264
+ namedListPrices(input: {
265
+ priceListId: string;
266
+ currencyCode: string;
267
+ productIds: readonly string[];
268
+ }): Promise<Map<string, string>>;
269
+ /**
270
+ * Feature 062 — distinct bracket start quantities (ascending) across every
271
+ * ACTIVE list for a (product, currency). Consumers probe `resolveLinePrice`
272
+ * at each quantity to derive the acting org's effective tier ladder; a
273
+ * quantity contributed by a non-matching list simply resolves to the same
274
+ * amount as its predecessor and is de-duplicated by the caller — no
275
+ * cross-org data leaks through this read.
276
+ */
277
+ listBracketMinQuantities(productId: string, currencyCode: string): Promise<number[]>;
278
+ /**
279
+ * Walks the priority chain until a list yields a bracket for the
280
+ * requested (product, currency, quantity). Excluded candidates are
281
+ * ones that already failed the bracket lookup. Returns the first
282
+ * list+bracket pair, or {list: null, bracket: null} if every match
283
+ * has no usable bracket.
284
+ */
285
+ /**
286
+ * `pickAndResolveBracket` for a whole page, in **priority waves**.
287
+ *
288
+ * Each wave picks the top-priority remaining list per product — the same
289
+ * `pickPriorityChain` call the single-product walk makes — and reads the
290
+ * brackets for that wave's (list, product) pairs in one query. A product
291
+ * whose picked list has no usable bracket drops that list and enters the next
292
+ * wave, exactly as FR-031's fall-through does; a product with no candidate
293
+ * left answers `{ list: null, bracket: null }`, exactly as the single walk's
294
+ * exhausted `remaining` does.
295
+ *
296
+ * The number of queries is therefore the number of fall-through levels the
297
+ * page actually needs — one, normally — instead of one per product, and the
298
+ * rows fetched are the ones the per-product walk would have fetched rather
299
+ * than every matched list's brackets.
300
+ */
301
+ private pickAndResolveBracketsForSet;
302
+ private pickAndResolveBracket;
303
+ }
304
+ //# sourceMappingURL=pricing-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing-service.d.ts","sourceRoot":"","sources":["../../../src/backend/services/pricing-service.ts"],"names":[],"mappings":"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"}