@pvh-afl/core 1.2.14 → 1.2.15

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 (33) hide show
  1. package/dist/common/circuit-breaker.d.ts +81 -0
  2. package/dist/common/circuit-breaker.d.ts.map +1 -0
  3. package/dist/common/circuit-breaker.js +163 -0
  4. package/dist/common/circuit-breaker.js.map +1 -0
  5. package/dist/common/index.d.ts +1 -0
  6. package/dist/common/index.d.ts.map +1 -1
  7. package/dist/common/index.js +1 -0
  8. package/dist/common/index.js.map +1 -1
  9. package/dist/integrations/commerce/commerce.types.d.ts +59 -0
  10. package/dist/integrations/commerce/commerce.types.d.ts.map +1 -1
  11. package/dist/integrations/commerce/shopify.service.d.ts +17 -1
  12. package/dist/integrations/commerce/shopify.service.d.ts.map +1 -1
  13. package/dist/integrations/commerce/shopify.service.js +202 -0
  14. package/dist/integrations/commerce/shopify.service.js.map +1 -1
  15. package/dist/integrations/integrations.module.d.ts.map +1 -1
  16. package/dist/integrations/integrations.module.js +3 -0
  17. package/dist/integrations/integrations.module.js.map +1 -1
  18. package/dist/integrations/search/index.d.ts +2 -0
  19. package/dist/integrations/search/index.d.ts.map +1 -1
  20. package/dist/integrations/search/index.js +2 -0
  21. package/dist/integrations/search/index.js.map +1 -1
  22. package/dist/integrations/search/search-fallback.service.d.ts +93 -0
  23. package/dist/integrations/search/search-fallback.service.d.ts.map +1 -0
  24. package/dist/integrations/search/search-fallback.service.js +339 -0
  25. package/dist/integrations/search/search-fallback.service.js.map +1 -0
  26. package/dist/integrations/search/search.types.d.ts +10 -0
  27. package/dist/integrations/search/search.types.d.ts.map +1 -1
  28. package/dist/integrations/search/search.types.js.map +1 -1
  29. package/dist/integrations/search/shopify-search.mapper.d.ts +31 -0
  30. package/dist/integrations/search/shopify-search.mapper.d.ts.map +1 -0
  31. package/dist/integrations/search/shopify-search.mapper.js +365 -0
  32. package/dist/integrations/search/shopify-search.mapper.js.map +1 -0
  33. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Circuit Breaker
3
+ *
4
+ * Wraps a flaky upstream at the *call site* so a failing vendor is skipped
5
+ * instead of being waited on. Two states only; the "probe" that tests recovery
6
+ * is claimed with a timestamp, never a lock, so no code path can leave the
7
+ * breaker stuck (see SEARCH-FALLBACK-IMPLEMENTATION.md §7.9).
8
+ *
9
+ * Failure classification stays with the caller — this class only counts
10
+ * outcomes it is told about, which keeps it vendor-agnostic.
11
+ */
12
+ export type BreakerState = 'CLOSED' | 'OPEN';
13
+ export interface CircuitBreakerOptions {
14
+ /** Identifier used in logs and metrics, e.g. 'wizzy'. */
15
+ name: string;
16
+ /** Absolute failures inside windowMs that trip the breaker. */
17
+ failureThreshold: number;
18
+ /** Failure fraction (0-1) that trips the breaker once minimumCalls is met. */
19
+ failureRateThreshold: number;
20
+ /** Minimum recorded calls before the rate rule applies. */
21
+ minimumCalls: number;
22
+ /** Rolling window for failure counting. */
23
+ windowMs: number;
24
+ /** First cooldown after tripping. */
25
+ openMs: number;
26
+ /** Upper bound on the doubling cooldown. */
27
+ maxOpenMs: number;
28
+ /** Minimum gap between probes. Must exceed the upstream's own timeout. */
29
+ probeIntervalMs: number;
30
+ }
31
+ export declare const DEFAULT_BREAKER_OPTIONS: Omit<CircuitBreakerOptions, 'name'>;
32
+ export interface BreakerDecision {
33
+ allowed: boolean;
34
+ state: BreakerState;
35
+ reason: 'closed' | 'cooling-down' | 'probe-recent' | 'probe';
36
+ }
37
+ export declare class CircuitBreaker {
38
+ private readonly opts;
39
+ private readonly bucketMs;
40
+ private state;
41
+ private openedAt;
42
+ private lastProbeAt;
43
+ private consecutiveOpens;
44
+ private buckets;
45
+ constructor(options: Partial<CircuitBreakerOptions> & {
46
+ name: string;
47
+ });
48
+ get name(): string;
49
+ /**
50
+ * Decide whether the upstream may be called. In OPEN this also claims the
51
+ * probe window when one is due — claiming is a timestamp write, so there is
52
+ * nothing to release afterwards.
53
+ */
54
+ canAttempt(now?: number): BreakerDecision;
55
+ /** Upstream answered correctly. A success while OPEN closes the breaker. */
56
+ recordSuccess(now?: number): void;
57
+ /** Upstream is broken. May trip the breaker, or extend the cooldown. */
58
+ recordFailure(now?: number): void;
59
+ getState(): BreakerState;
60
+ getLastProbeAt(): number;
61
+ /** Snapshot for /health and logs. */
62
+ getSnapshot(now?: number): {
63
+ name: string;
64
+ state: BreakerState;
65
+ openedAt: number;
66
+ lastProbeAt: number;
67
+ consecutiveOpens: number;
68
+ cooldownMs: number;
69
+ msUntilNextProbe: number;
70
+ failures: number;
71
+ successes: number;
72
+ };
73
+ /** Cooldown doubles per consecutive open, capped at maxOpenMs. */
74
+ private currentOpenMs;
75
+ private shouldTrip;
76
+ /** Bucket for `now`, reset if the slot has rotated past its window. */
77
+ private bucketFor;
78
+ private windowTotals;
79
+ private resetWindow;
80
+ }
81
+ //# sourceMappingURL=circuit-breaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/common/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,uBAAuB,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAQvE,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,cAAc,GAAG,cAAc,GAAG,OAAO,CAAC;CAC9D;AAWD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAUtE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,UAAU,CAAC,GAAG,GAAE,MAAmB,GAAG,eAAe;IAiBrD,4EAA4E;IAC5E,aAAa,CAAC,GAAG,GAAE,MAAmB,GAAG,IAAI;IAW7C,wEAAwE;IACxE,aAAa,CAAC,GAAG,GAAE,MAAmB,GAAG,IAAI;IAkB7C,QAAQ,IAAI,YAAY;IAIxB,cAAc,IAAI,MAAM;IAIxB,qCAAqC;IACrC,WAAW,CAAC,GAAG,GAAE,MAAmB,GAAG;QACrC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,YAAY,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB;IAuBD,kEAAkE;IAClE,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAclB,uEAAuE;IACvE,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;CAOpB"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /**
3
+ * Circuit Breaker
4
+ *
5
+ * Wraps a flaky upstream at the *call site* so a failing vendor is skipped
6
+ * instead of being waited on. Two states only; the "probe" that tests recovery
7
+ * is claimed with a timestamp, never a lock, so no code path can leave the
8
+ * breaker stuck (see SEARCH-FALLBACK-IMPLEMENTATION.md §7.9).
9
+ *
10
+ * Failure classification stays with the caller — this class only counts
11
+ * outcomes it is told about, which keeps it vendor-agnostic.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.CircuitBreaker = exports.DEFAULT_BREAKER_OPTIONS = void 0;
15
+ exports.DEFAULT_BREAKER_OPTIONS = {
16
+ failureThreshold: 5,
17
+ failureRateThreshold: 0.5,
18
+ minimumCalls: 10,
19
+ windowMs: 30_000,
20
+ openMs: 60_000,
21
+ maxOpenMs: 300_000,
22
+ probeIntervalMs: 15_000,
23
+ };
24
+ /** Fixed ring of buckets so recording is O(1) and memory never grows. */
25
+ const BUCKET_COUNT = 6;
26
+ class CircuitBreaker {
27
+ opts;
28
+ bucketMs;
29
+ state = 'CLOSED';
30
+ openedAt = 0;
31
+ lastProbeAt = 0;
32
+ consecutiveOpens = 0;
33
+ buckets;
34
+ constructor(options) {
35
+ this.opts = { ...exports.DEFAULT_BREAKER_OPTIONS, ...options };
36
+ this.bucketMs = Math.max(1, Math.floor(this.opts.windowMs / BUCKET_COUNT));
37
+ this.buckets = Array.from({ length: BUCKET_COUNT }, () => ({
38
+ startedAt: 0,
39
+ successes: 0,
40
+ failures: 0,
41
+ }));
42
+ }
43
+ get name() {
44
+ return this.opts.name;
45
+ }
46
+ /**
47
+ * Decide whether the upstream may be called. In OPEN this also claims the
48
+ * probe window when one is due — claiming is a timestamp write, so there is
49
+ * nothing to release afterwards.
50
+ */
51
+ canAttempt(now = Date.now()) {
52
+ if (this.state === 'CLOSED') {
53
+ return { allowed: true, state: 'CLOSED', reason: 'closed' };
54
+ }
55
+ if (now - this.openedAt < this.currentOpenMs()) {
56
+ return { allowed: false, state: 'OPEN', reason: 'cooling-down' };
57
+ }
58
+ if (now - this.lastProbeAt < this.opts.probeIntervalMs) {
59
+ return { allowed: false, state: 'OPEN', reason: 'probe-recent' };
60
+ }
61
+ this.lastProbeAt = now;
62
+ return { allowed: true, state: 'OPEN', reason: 'probe' };
63
+ }
64
+ /** Upstream answered correctly. A success while OPEN closes the breaker. */
65
+ recordSuccess(now = Date.now()) {
66
+ this.bucketFor(now).successes++;
67
+ if (this.state === 'OPEN') {
68
+ this.state = 'CLOSED';
69
+ this.openedAt = 0;
70
+ this.consecutiveOpens = 0;
71
+ this.resetWindow();
72
+ }
73
+ }
74
+ /** Upstream is broken. May trip the breaker, or extend the cooldown. */
75
+ recordFailure(now = Date.now()) {
76
+ this.bucketFor(now).failures++;
77
+ if (this.state === 'OPEN') {
78
+ // A failed probe restarts the cooldown, one step longer.
79
+ this.openedAt = now;
80
+ this.consecutiveOpens = Math.min(this.consecutiveOpens + 1, 16);
81
+ return;
82
+ }
83
+ if (this.shouldTrip(now)) {
84
+ this.state = 'OPEN';
85
+ this.openedAt = now;
86
+ this.consecutiveOpens = 1;
87
+ this.resetWindow();
88
+ }
89
+ }
90
+ getState() {
91
+ return this.state;
92
+ }
93
+ getLastProbeAt() {
94
+ return this.lastProbeAt;
95
+ }
96
+ /** Snapshot for /health and logs. */
97
+ getSnapshot(now = Date.now()) {
98
+ const { successes, failures } = this.windowTotals(now);
99
+ const cooldownMs = this.state === 'OPEN' ? this.currentOpenMs() : 0;
100
+ const cooldownRemaining = this.state === 'OPEN' ? Math.max(0, this.openedAt + cooldownMs - now) : 0;
101
+ const probeRemaining = this.state === 'OPEN'
102
+ ? Math.max(0, this.lastProbeAt + this.opts.probeIntervalMs - now)
103
+ : 0;
104
+ return {
105
+ name: this.opts.name,
106
+ state: this.state,
107
+ openedAt: this.openedAt,
108
+ lastProbeAt: this.lastProbeAt,
109
+ consecutiveOpens: this.consecutiveOpens,
110
+ cooldownMs,
111
+ msUntilNextProbe: Math.max(cooldownRemaining, probeRemaining),
112
+ failures,
113
+ successes,
114
+ };
115
+ }
116
+ /** Cooldown doubles per consecutive open, capped at maxOpenMs. */
117
+ currentOpenMs() {
118
+ const factor = 2 ** Math.max(0, this.consecutiveOpens - 1);
119
+ return Math.min(this.opts.openMs * factor, this.opts.maxOpenMs);
120
+ }
121
+ shouldTrip(now) {
122
+ const { successes, failures } = this.windowTotals(now);
123
+ if (failures >= this.opts.failureThreshold) {
124
+ return true;
125
+ }
126
+ const total = successes + failures;
127
+ return (total >= this.opts.minimumCalls &&
128
+ failures / total > this.opts.failureRateThreshold);
129
+ }
130
+ /** Bucket for `now`, reset if the slot has rotated past its window. */
131
+ bucketFor(now) {
132
+ const index = Math.floor(now / this.bucketMs) % BUCKET_COUNT;
133
+ const startedAt = Math.floor(now / this.bucketMs) * this.bucketMs;
134
+ const bucket = this.buckets[index];
135
+ if (bucket.startedAt !== startedAt) {
136
+ bucket.startedAt = startedAt;
137
+ bucket.successes = 0;
138
+ bucket.failures = 0;
139
+ }
140
+ return bucket;
141
+ }
142
+ windowTotals(now) {
143
+ const cutoff = now - this.opts.windowMs;
144
+ let successes = 0;
145
+ let failures = 0;
146
+ for (const bucket of this.buckets) {
147
+ if (bucket.startedAt > cutoff) {
148
+ successes += bucket.successes;
149
+ failures += bucket.failures;
150
+ }
151
+ }
152
+ return { successes, failures };
153
+ }
154
+ resetWindow() {
155
+ for (const bucket of this.buckets) {
156
+ bucket.startedAt = 0;
157
+ bucket.successes = 0;
158
+ bucket.failures = 0;
159
+ }
160
+ }
161
+ }
162
+ exports.CircuitBreaker = CircuitBreaker;
163
+ //# sourceMappingURL=circuit-breaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/common/circuit-breaker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAuBU,QAAA,uBAAuB,GAAwC;IAC1E,gBAAgB,EAAE,CAAC;IACnB,oBAAoB,EAAE,GAAG;IACzB,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,OAAO;IAClB,eAAe,EAAE,MAAM;CACxB,CAAC;AAQF,yEAAyE;AACzE,MAAM,YAAY,GAAG,CAAC,CAAC;AAQvB,MAAa,cAAc;IACR,IAAI,CAAwB;IAC5B,QAAQ,CAAS;IAE1B,KAAK,GAAiB,QAAQ,CAAC;IAC/B,QAAQ,GAAG,CAAC,CAAC;IACb,WAAW,GAAG,CAAC,CAAC;IAChB,gBAAgB,GAAG,CAAC,CAAC;IACrB,OAAO,CAAW;IAE1B,YAAY,OAA0D;QACpE,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,+BAAuB,EAAE,GAAG,OAAO,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzD,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACjC,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QACnE,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3D,CAAC;IAED,4EAA4E;IAC5E,aAAa,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,aAAa,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE/B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,yDAAyD;YACzD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,qCAAqC;IACrC,WAAW,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QAWlC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,iBAAiB,GACrB,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,cAAc,GAClB,IAAI,CAAC,KAAK,KAAK,MAAM;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YACjE,CAAC,CAAC,CAAC,CAAC;QAER,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,UAAU;YACV,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC;YAC7D,QAAQ;YACR,SAAS;SACV,CAAC;IACJ,CAAC;IAED,kEAAkE;IAC1D,aAAa;QACnB,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IAEO,UAAU,CAAC,GAAW;QAC5B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAEvD,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;QACnC,OAAO,CACL,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY;YAC/B,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAClD,CAAC;IACJ,CAAC;IAED,uEAAuE;IAC/D,SAAS,CAAC,GAAW;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;gBAC9B,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;gBAC9B,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;IAEO,WAAW;QACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAhLD,wCAgLC"}
@@ -1,3 +1,4 @@
1
1
  export * from './logger';
2
2
  export * from './guards/tenant.guard';
3
+ export * from './circuit-breaker';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./logger"), exports);
5
5
  tslib_1.__exportStar(require("./guards/tenant.guard"), exports);
6
+ tslib_1.__exportStar(require("./circuit-breaker"), exports);
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,gEAAsC;AACtC,4DAAkC"}
@@ -371,6 +371,65 @@ export interface CommerceProductRecommendation {
371
371
  featuredImage: CommerceImage | null;
372
372
  priceRange: CommercePriceRange;
373
373
  }
374
+ export interface CommerceFilterValue {
375
+ id: string;
376
+ label: string;
377
+ count: number;
378
+ /** JSON-encoded ProductFilter input that reproduces this value. */
379
+ input: string;
380
+ }
381
+ export interface CommerceFilter {
382
+ id: string;
383
+ label: string;
384
+ type: 'LIST' | 'PRICE_RANGE' | 'BOOLEAN';
385
+ values: CommerceFilterValue[];
386
+ }
387
+ export interface CommerceProductSearchResult {
388
+ products: CommerceProduct[];
389
+ totalCount: number;
390
+ filters: CommerceFilter[];
391
+ }
392
+ export interface CommercePredictiveSearchResult {
393
+ products: CommerceProduct[];
394
+ queries: string[];
395
+ collections: Array<{
396
+ title: string;
397
+ handle: string;
398
+ }>;
399
+ pages: Array<{
400
+ title: string;
401
+ handle: string;
402
+ }>;
403
+ }
404
+ /** Shopify ProductFilter input — only the shapes the fallback builds. */
405
+ export interface CommerceProductFilterInput {
406
+ available?: boolean;
407
+ price?: {
408
+ min?: number;
409
+ max?: number;
410
+ };
411
+ productType?: string;
412
+ productVendor?: string;
413
+ variantOption?: {
414
+ name: string;
415
+ value: string;
416
+ };
417
+ }
418
+ export interface CommerceSearchParams {
419
+ query: string;
420
+ first?: number;
421
+ filters?: CommerceProductFilterInput[];
422
+ /** SearchSortKeys; descending is expressed with `reverse`, not a key. */
423
+ sortKey?: 'RELEVANCE' | 'PRICE';
424
+ reverse?: boolean;
425
+ }
426
+ export interface CommerceCollectionProductsParams {
427
+ handle: string;
428
+ first?: number;
429
+ filters?: CommerceProductFilterInput[];
430
+ sortKey?: 'BEST_SELLING' | 'COLLECTION_DEFAULT' | 'CREATED' | 'PRICE' | 'RELEVANCE' | 'TITLE';
431
+ reverse?: boolean;
432
+ }
374
433
  /**
375
434
  * Commerce Service Interface
376
435
  *
@@ -1 +1 @@
1
- {"version":3,"file":"commerce.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/commerce/commerce.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commerce.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/commerce/commerce.types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { BaseIntegrationService } from "../base-integration.service";
2
2
  import { IntegrationResponse } from "../integration.types";
3
- import { ICommerceService, CommerceProduct, CommerceCollection, CommerceCart, CommerceMenu, CommercePage, CommerceConnection, CommerceProductRecommendation, ProductsParams, CollectionsParams, CartLineInput, CartLineUpdateInput, CartBuyerIdentityInput, CartAttributeInput, CartCreateInput, CommerceCustomer, CommerceCustomerAccessToken } from "./commerce.types";
3
+ import { ICommerceService, CommerceProduct, CommerceCollection, CommerceCart, CommerceMenu, CommercePage, CommerceConnection, CommerceProductRecommendation, ProductsParams, CollectionsParams, CartLineInput, CartLineUpdateInput, CartBuyerIdentityInput, CartAttributeInput, CartCreateInput, CommerceCustomer, CommerceCustomerAccessToken, CommerceProductSearchResult, CommercePredictiveSearchResult, CommerceSearchParams, CommerceCollectionProductsParams } from "./commerce.types";
4
4
  /**
5
5
  * Shopify Commerce Service
6
6
  *
@@ -19,6 +19,22 @@ export declare class ShopifyCommerceService extends BaseIntegrationService imple
19
19
  getProductRecommendations(productId: string, count?: number): Promise<IntegrationResponse<CommerceProductRecommendation[]>>;
20
20
  getCollections(params?: CollectionsParams): Promise<IntegrationResponse<CommerceConnection<CommerceCollection>>>;
21
21
  getCollectionByHandle(handle: string, productsFirst?: number): Promise<IntegrationResponse<CommerceCollection | null>>;
22
+ /**
23
+ * Keyword search via the Storefront `search` query.
24
+ * The shopper's text is passed through untouched as a GraphQL variable.
25
+ */
26
+ searchProducts(params: CommerceSearchParams): Promise<IntegrationResponse<CommerceProductSearchResult>>;
27
+ /**
28
+ * Collection listing with Shopify-native filters, for the filter fallback.
29
+ * Returns null when the collection handle does not exist.
30
+ */
31
+ getCollectionProducts(params: CommerceCollectionProductsParams): Promise<IntegrationResponse<(CommerceProductSearchResult & {
32
+ title: string;
33
+ }) | null>>;
34
+ /**
35
+ * Type-ahead suggestions via `predictiveSearch`, for the autocomplete fallback.
36
+ */
37
+ predictiveSearch(query: string, limit?: number): Promise<IntegrationResponse<CommercePredictiveSearchResult>>;
22
38
  getMenu(handle: string): Promise<IntegrationResponse<CommerceMenu | null>>;
23
39
  getPage(handle: string): Promise<IntegrationResponse<CommercePage | null>>;
24
40
  createCart(input?: CartCreateInput): Promise<IntegrationResponse<CommerceCart>>;
@@ -1 +1 @@
1
- {"version":3,"file":"shopify.service.d.ts","sourceRoot":"","sources":["../../../src/integrations/commerce/shopify.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shopify.service.d.ts","sourceRoot":"","sources":["../../../src/integrations/commerce/shopify.service.ts"],"names":[],"mappings":"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"}
@@ -123,6 +123,125 @@ const PRODUCTS_QUERY = `
123
123
  }
124
124
  }
125
125
  `;
126
+ // Lightweight product selection for search/collection fallback results. Kept
127
+ // separate from PRODUCTS_QUERY so the fallback stays cheap on query cost: no
128
+ // media, no size charts, no metafields the search grid does not render.
129
+ const SEARCH_PRODUCT_SELECTION = `
130
+ id
131
+ handle
132
+ title
133
+ description
134
+ descriptionHtml
135
+ vendor
136
+ productType
137
+ tags
138
+ featuredImage { url altText width height }
139
+ images(first: 10) {
140
+ edges { node { url altText width height } }
141
+ }
142
+ options { id name values }
143
+ variants(first: 100) {
144
+ edges {
145
+ node {
146
+ id
147
+ title
148
+ availableForSale
149
+ barcode
150
+ sku
151
+ price { amount currencyCode }
152
+ compareAtPrice { amount currencyCode }
153
+ selectedOptions { name value }
154
+ image { url altText width height }
155
+ }
156
+ }
157
+ }
158
+ priceRange {
159
+ minVariantPrice { amount currencyCode }
160
+ maxVariantPrice { amount currencyCode }
161
+ }`;
162
+ const FILTER_SELECTION = `
163
+ id
164
+ label
165
+ type
166
+ values { id label count input }`;
167
+ // Keyword search fallback. `$query` is a variable, so the shopper's text is
168
+ // transported as data and never parsed as query syntax.
169
+ const SEARCH_PRODUCTS_QUERY = `
170
+ query SearchProducts(
171
+ $query: String!
172
+ $first: Int!
173
+ $filters: [ProductFilter!]
174
+ $sortKey: SearchSortKeys
175
+ $reverse: Boolean
176
+ ) {
177
+ search(
178
+ query: $query
179
+ types: [PRODUCT]
180
+ first: $first
181
+ prefix: LAST
182
+ productFilters: $filters
183
+ sortKey: $sortKey
184
+ reverse: $reverse
185
+ unavailableProducts: LAST
186
+ ) {
187
+ totalCount
188
+ productFilters {${FILTER_SELECTION}
189
+ }
190
+ nodes {
191
+ ... on Product {${SEARCH_PRODUCT_SELECTION}
192
+ }
193
+ }
194
+ }
195
+ }
196
+ `;
197
+ // Collection listing fallback. Separate from COLLECTION_BY_HANDLE_QUERY, which
198
+ // selects only handles for the collection-title lookup.
199
+ const COLLECTION_PRODUCTS_QUERY = `
200
+ query CollectionProducts(
201
+ $handle: String!
202
+ $first: Int!
203
+ $filters: [ProductFilter!]
204
+ $sortKey: ProductCollectionSortKeys
205
+ $reverse: Boolean
206
+ ) {
207
+ collection(handle: $handle) {
208
+ id
209
+ handle
210
+ title
211
+ products(first: $first, filters: $filters, sortKey: $sortKey, reverse: $reverse) {
212
+ filters {${FILTER_SELECTION}
213
+ }
214
+ edges {
215
+ node {${SEARCH_PRODUCT_SELECTION}
216
+ }
217
+ }
218
+ }
219
+ # Ids only, purely to size the result set: the collection connection has
220
+ # no totalCount, and without it the page count would be computed from the
221
+ # fetched slice and under-paginate. Same request, so no extra round trip.
222
+ countWindow: products(first: 250, filters: $filters) {
223
+ edges { node { id } }
224
+ }
225
+ }
226
+ }
227
+ `;
228
+ // Autocomplete fallback.
229
+ const PREDICTIVE_SEARCH_QUERY = `
230
+ query PredictiveSearch($query: String!, $limit: Int!) {
231
+ predictiveSearch(
232
+ query: $query
233
+ limit: $limit
234
+ types: [PRODUCT, QUERY, COLLECTION, PAGE]
235
+ limitScope: EACH
236
+ ) {
237
+ queries { text }
238
+ collections { title handle }
239
+ pages { title handle }
240
+ products {${SEARCH_PRODUCT_SELECTION}
241
+ }
242
+ }
243
+ }
244
+ `;
126
245
  const PRODUCT_BY_ID_QUERY = `
127
246
  query ProductById($id: ID!) {
128
247
  product(id: $id) {
@@ -707,6 +826,89 @@ let ShopifyCommerceService = class ShopifyCommerceService extends base_integrati
707
826
  };
708
827
  return { success: true, data: collection };
709
828
  }
829
+ // Search / filter fallback (used when the search vendor is unavailable)
830
+ /**
831
+ * Keyword search via the Storefront `search` query.
832
+ * The shopper's text is passed through untouched as a GraphQL variable.
833
+ */
834
+ async searchProducts(params) {
835
+ const response = await this.graphqlQuery(SEARCH_PRODUCTS_QUERY, {
836
+ query: params.query,
837
+ first: params.first ?? 20,
838
+ filters: params.filters,
839
+ sortKey: params.sortKey ?? 'RELEVANCE',
840
+ reverse: params.reverse ?? false,
841
+ });
842
+ if (!response.success || !response.data) {
843
+ return { success: false, error: response.error };
844
+ }
845
+ const search = response.data.search;
846
+ return {
847
+ success: true,
848
+ data: {
849
+ // `nodes` is typed as SearchResultItem; non-product types are filtered
850
+ // out by the inline fragment and arrive as empty objects.
851
+ products: (search?.nodes ?? []).filter((node) => Boolean(node?.handle)),
852
+ totalCount: search?.totalCount ?? 0,
853
+ filters: search?.productFilters ?? [],
854
+ },
855
+ };
856
+ }
857
+ /**
858
+ * Collection listing with Shopify-native filters, for the filter fallback.
859
+ * Returns null when the collection handle does not exist.
860
+ */
861
+ async getCollectionProducts(params) {
862
+ const response = await this.graphqlQuery(COLLECTION_PRODUCTS_QUERY, {
863
+ handle: params.handle,
864
+ first: params.first ?? 20,
865
+ filters: params.filters,
866
+ sortKey: params.sortKey ?? 'COLLECTION_DEFAULT',
867
+ reverse: params.reverse ?? false,
868
+ });
869
+ if (!response.success || !response.data) {
870
+ return { success: false, error: response.error };
871
+ }
872
+ const collection = response.data.collection;
873
+ if (!collection) {
874
+ return { success: true, data: null };
875
+ }
876
+ const products = collection.products.edges.map((edge) => edge.node);
877
+ return {
878
+ success: true,
879
+ data: {
880
+ title: collection.title,
881
+ products,
882
+ // Real size of the filtered collection, counted in the same request.
883
+ // Saturates at the 250 window; beyond that pagination is capped anyway.
884
+ totalCount: collection.countWindow?.edges.length ?? products.length,
885
+ filters: collection.products.filters ?? [],
886
+ },
887
+ };
888
+ }
889
+ /**
890
+ * Type-ahead suggestions via `predictiveSearch`, for the autocomplete fallback.
891
+ */
892
+ async predictiveSearch(query, limit = 10) {
893
+ const response = await this.graphqlQuery(PREDICTIVE_SEARCH_QUERY, {
894
+ query,
895
+ // Shopify caps limit at 10.
896
+ limit: Math.min(Math.max(limit, 1), 10),
897
+ });
898
+ if (!response.success || !response.data) {
899
+ return { success: false, error: response.error };
900
+ }
901
+ const result = response.data.predictiveSearch;
902
+ return {
903
+ success: true,
904
+ data: {
905
+ products: result?.products ?? [],
906
+ queries: (result?.queries ?? []).map((q) => q.text),
907
+ collections: result?.collections ?? [],
908
+ pages: result?.pages ?? [],
909
+ },
910
+ };
911
+ }
710
912
  // CMS
711
913
  async getMenu(handle) {
712
914
  const response = await this.graphqlQuery(MENU_QUERY, { handle });