@pvh-afl/core 1.1.27 → 1.1.29

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 (49) hide show
  1. package/dist/common/config-assert.d.ts +11 -0
  2. package/dist/common/config-assert.d.ts.map +1 -0
  3. package/dist/common/config-assert.js +20 -0
  4. package/dist/common/config-assert.js.map +1 -0
  5. package/dist/config/config.service.d.ts +48 -0
  6. package/dist/config/config.service.d.ts.map +1 -1
  7. package/dist/config/config.service.js +70 -0
  8. package/dist/config/config.service.js.map +1 -1
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/integrations/commerce/shopify-admin.service.d.ts.map +1 -1
  14. package/dist/integrations/commerce/shopify-admin.service.js +2 -24
  15. package/dist/integrations/commerce/shopify-admin.service.js.map +1 -1
  16. package/dist/integrations/commerce/shopify-customer.service.d.ts +15 -0
  17. package/dist/integrations/commerce/shopify-customer.service.d.ts.map +1 -1
  18. package/dist/integrations/commerce/shopify-customer.service.js +68 -0
  19. package/dist/integrations/commerce/shopify-customer.service.js.map +1 -1
  20. package/dist/integrations/commerce/shopify.service.d.ts.map +1 -1
  21. package/dist/integrations/commerce/shopify.service.js +15 -0
  22. package/dist/integrations/commerce/shopify.service.js.map +1 -1
  23. package/dist/integrations/loyalty/capillary-auth.service.d.ts.map +1 -1
  24. package/dist/integrations/loyalty/capillary-auth.service.js +7 -0
  25. package/dist/integrations/loyalty/capillary-auth.service.js.map +1 -1
  26. package/dist/integrations/loyalty/capillary-coupon.service.d.ts.map +1 -1
  27. package/dist/integrations/loyalty/capillary-coupon.service.js +7 -21
  28. package/dist/integrations/loyalty/capillary-coupon.service.js.map +1 -1
  29. package/dist/integrations/oms/omuni-auth.service.d.ts.map +1 -1
  30. package/dist/integrations/oms/omuni-auth.service.js +5 -0
  31. package/dist/integrations/oms/omuni-auth.service.js.map +1 -1
  32. package/dist/integrations/search/search.mapper.d.ts +1 -1
  33. package/dist/integrations/search/search.mapper.d.ts.map +1 -1
  34. package/dist/integrations/search/search.mapper.js +7 -1
  35. package/dist/integrations/search/search.mapper.js.map +1 -1
  36. package/dist/integrations/search/search.types.d.ts +14 -0
  37. package/dist/integrations/search/search.types.d.ts.map +1 -1
  38. package/dist/integrations/search/search.types.js.map +1 -1
  39. package/dist/integrations/search/wizzy.service.d.ts +12 -0
  40. package/dist/integrations/search/wizzy.service.d.ts.map +1 -1
  41. package/dist/integrations/search/wizzy.service.js +83 -31
  42. package/dist/integrations/search/wizzy.service.js.map +1 -1
  43. package/dist/integrations/search/wizzy.types.d.ts +52 -9
  44. package/dist/integrations/search/wizzy.types.d.ts.map +1 -1
  45. package/dist/queue/queue.service.d.ts +20 -1
  46. package/dist/queue/queue.service.d.ts.map +1 -1
  47. package/dist/queue/queue.service.js +59 -2
  48. package/dist/queue/queue.service.js.map +1 -1
  49. package/package.json +7 -3
@@ -7,7 +7,16 @@
7
7
  export interface WizzySwatchRequest {
8
8
  key: string;
9
9
  }
10
+ /**
11
+ * Wizzy analytics `type` value, sent inside the `filters` object on
12
+ * /products/filter. Wizzy attributes each request to an analytics bucket
13
+ * keyed by this value; omitting it defaults to DEFAULT (search-results),
14
+ * which mis-files collection traffic as search traffic.
15
+ */
16
+ export type WizzySearchType = 'DEFAULT' | 'CATEGORY_PAGE' | 'AUTOCOMPLETE_DEFAULT' | 'AUTOCOMPLETE_OPTION' | 'NO_RESULTS_FOUND';
10
17
  export interface WizzyFilterRequest {
18
+ /** Keyword query; enables full-text search on the filter endpoint. */
19
+ q?: string;
11
20
  categories?: string[];
12
21
  brands?: string[];
13
22
  genders?: string[];
@@ -24,6 +33,14 @@ export interface WizzyFilterRequest {
24
33
  sort?: WizzySortOption[];
25
34
  facets?: WizzyFacetRequest[];
26
35
  swatch?: WizzySwatchRequest[];
36
+ /** Analytics bucket for this request (nested in `filters`, not a sibling field). */
37
+ type?: WizzySearchType;
38
+ /**
39
+ * Key minted by /products/search that keeps paging/sort/facet requests
40
+ * consistent with page 1. Echoed back on every following /products/filter
41
+ * for the same search or collection. Absent on the first request.
42
+ */
43
+ searchedKey?: string;
27
44
  }
28
45
  export interface WizzyRangeFilter {
29
46
  gte?: number;
@@ -36,23 +53,30 @@ export interface WizzySortOption {
36
53
  export interface WizzyFacetRequest {
37
54
  key: string;
38
55
  }
56
+ /**
57
+ * Keyword-search request for POST /products/search.
58
+ *
59
+ * This endpoint is the ONLY call Wizzy counts as a search hit, and it mints
60
+ * the `searchedKey` every following /products/filter request needs. It serves
61
+ * only the first, unfiltered page: it does NOT accept `page`, `type`, or any
62
+ * filter values (categories/attributes/sellingPrice/genders/sizes/...). To
63
+ * apply filters or a page number, call this first to register the hit and get
64
+ * the key, then follow with /products/filter (WizzyFilterRequest).
65
+ */
39
66
  export interface WizzySearchRequest {
40
67
  q: string;
41
68
  productsCount?: number;
42
- page?: number;
43
69
  sort?: WizzySortOption[];
44
70
  facets?: WizzyFacetRequest[];
45
71
  swatch?: WizzySwatchRequest[];
46
- categories?: string[];
47
- brands?: string[];
48
- genders?: string[];
49
- colors?: string[];
50
- sizes?: string[];
51
- inStock?: boolean[];
52
- sellingPrice?: WizzyRangeFilter[];
53
72
  }
54
73
  export interface WizzyAutocompleteRequest {
55
74
  q: string;
75
+ /**
76
+ * When > 0, /autocomplete returns top products alongside suggestions,
77
+ * removing the need for a separate /products/search call per keystroke.
78
+ */
79
+ productsCount?: number;
56
80
  }
57
81
  export interface WizzyResponse<T> {
58
82
  payload: T;
@@ -60,12 +84,24 @@ export interface WizzyResponse<T> {
60
84
  statusCode: number;
61
85
  message: string;
62
86
  }
87
+ /**
88
+ * The `filters` object echoed back inside a products payload. Carries the
89
+ * `searchedKey` (also mirrored in the `wizzy-searchedKey` response header) plus
90
+ * the resolved request context (page, productsCount, q, type, ...).
91
+ */
92
+ export interface WizzyPayloadFilters {
93
+ searchedKey?: string;
94
+ [key: string]: unknown;
95
+ }
63
96
  export interface WizzyProductsPayload {
64
97
  result: WizzyProduct[];
65
98
  total: number;
66
99
  pages: number;
67
100
  hasExactMatch?: boolean;
68
- facets: WizzyFacet[];
101
+ facets?: WizzyFacet[];
102
+ /** Present on /products/search and /products/filter; source of searchedKey. */
103
+ filters?: WizzyPayloadFilters;
104
+ configs?: unknown;
69
105
  }
70
106
  export interface WizzySwatchValue {
71
107
  value: string;
@@ -154,6 +190,13 @@ export interface WizzyAutocompletePayload {
154
190
  brands: WizzyAutocompleteSuggestion[];
155
191
  others: WizzyAutocompleteSuggestion[];
156
192
  pages: WizzyAutocompleteSuggestion[];
193
+ /**
194
+ * TRAP: despite Wizzy's OpenAPI spec declaring this an array of Product, it
195
+ * is a full products payload object — the product array is at
196
+ * `products.result` (and its searchedKey at `products.filters.searchedKey`).
197
+ * Only populated when the request sends `productsCount > 0`.
198
+ */
199
+ products?: WizzyProductsPayload;
157
200
  }
158
201
  export interface WizzyAutocompleteSuggestion {
159
202
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"wizzy.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/search/wizzy.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wizzy.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/search/wizzy.types.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,28 @@ export declare class QueueService implements OnModuleInit, OnModuleDestroy {
12
12
  constructor(configService: ConfigService);
13
13
  onModuleInit(): void;
14
14
  onModuleDestroy(): Promise<void>;
15
- push<T = Record<string, unknown>>(payload: T, queueName?: string): Promise<string | null>;
15
+ push<T = Record<string, unknown>>(payload: T, queueName?: string, opts?: {
16
+ maxLength?: number;
17
+ ttlSeconds?: number;
18
+ }): Promise<string | null>;
16
19
  pop<T = Record<string, unknown>>(queueName?: string): Promise<QueueItem<T> | null>;
17
20
  length(queueName?: string): Promise<number>;
21
+ /**
22
+ * Atomically claim a one-time key for idempotency (webhook replay dedup, #5).
23
+ *
24
+ * Uses Redis `SET key 1 NX EX ttl`: the write happens only if the key does not
25
+ * already exist. Returns `true` if THIS call created it (first time — safe to
26
+ * process), `false` if it already existed (a duplicate/replay — skip).
27
+ *
28
+ * Fails open: if Redis is unavailable it returns `true` so webhook processing
29
+ * is never blocked by a missing cache (HMAC still guarantees authenticity).
30
+ */
31
+ claimOnce(key: string, ttlSeconds: number): Promise<boolean>;
32
+ /**
33
+ * Release a claim made by `claimOnce`, so a legitimate retry can reprocess
34
+ * after a processing failure (webhook replay dedup, #5).
35
+ */
36
+ release(key: string): Promise<void>;
18
37
  scanQueues(pattern: string): Promise<string[]>;
19
38
  }
20
39
  //# sourceMappingURL=queue.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.service.d.ts","sourceRoot":"","sources":["../../src/queue/queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,YAAa,YAAW,YAAY,EAAE,eAAe;IAIpD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAH1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAErB,aAAa,EAAE,aAAa;IAEzD,YAAY;IAoBN,eAAe;IAMf,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,CAAC,EACV,SAAS,SAAoB,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBnB,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,SAAS,SAAoB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAiBzB,MAAM,CAAC,SAAS,SAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IActD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA4BrD"}
1
+ {"version":3,"file":"queue.service.d.ts","sourceRoot":"","sources":["../../src/queue/queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,YAAa,YAAW,YAAY,EAAE,eAAe;IAIpD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAH1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAErB,aAAa,EAAE,aAAa;IAEzD,YAAY;IAoBN,eAAe;IAMf,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,CAAC,EACV,SAAS,SAAoB,EAC7B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsCnB,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,SAAS,SAAoB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAiBzB,MAAM,CAAC,SAAS,SAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAc5D;;;;;;;;;OASG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBlE;;;OAGG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA4BrD"}
@@ -35,7 +35,7 @@ let QueueService = class QueueService {
35
35
  await this.redis.quit();
36
36
  }
37
37
  }
38
- async push(payload, queueName = this.defaultQueue) {
38
+ async push(payload, queueName = this.defaultQueue, opts) {
39
39
  if (!this.redis) {
40
40
  logger_1.logger.warn('Queue not available, payload not queued');
41
41
  return null;
@@ -47,7 +47,18 @@ let QueueService = class QueueService {
47
47
  };
48
48
  try {
49
49
  await this.redis.lpush(queueName, JSON.stringify(item));
50
- logger_1.logger.info('Payload pushed to queue', { queueName, id: item.id, payload });
50
+ // Bound externally-influenced queues so a flood of pushes cannot grow
51
+ // Redis without limit (AFL-SEC-06). LPUSH prepends, so 0..maxLength-1 are
52
+ // the newest items; older overflow is trimmed. An optional TTL bounds an
53
+ // abandoned queue in time as well.
54
+ if (opts?.maxLength && opts.maxLength > 0) {
55
+ await this.redis.ltrim(queueName, 0, opts.maxLength - 1);
56
+ }
57
+ if (opts?.ttlSeconds && opts.ttlSeconds > 0) {
58
+ await this.redis.expire(queueName, opts.ttlSeconds);
59
+ }
60
+ // Do not log the payload: it may carry untrusted or PII-bearing data.
61
+ logger_1.logger.info('Payload pushed to queue', { queueName, id: item.id });
51
62
  return item.id;
52
63
  }
53
64
  catch (error) {
@@ -89,6 +100,52 @@ let QueueService = class QueueService {
89
100
  return 0;
90
101
  }
91
102
  }
103
+ /**
104
+ * Atomically claim a one-time key for idempotency (webhook replay dedup, #5).
105
+ *
106
+ * Uses Redis `SET key 1 NX EX ttl`: the write happens only if the key does not
107
+ * already exist. Returns `true` if THIS call created it (first time — safe to
108
+ * process), `false` if it already existed (a duplicate/replay — skip).
109
+ *
110
+ * Fails open: if Redis is unavailable it returns `true` so webhook processing
111
+ * is never blocked by a missing cache (HMAC still guarantees authenticity).
112
+ */
113
+ async claimOnce(key, ttlSeconds) {
114
+ if (!this.redis) {
115
+ logger_1.logger.warn('Idempotency store unavailable, processing without dedup', {
116
+ key,
117
+ });
118
+ return true;
119
+ }
120
+ try {
121
+ const result = await this.redis.set(key, '1', 'EX', ttlSeconds, 'NX');
122
+ return result === 'OK';
123
+ }
124
+ catch (error) {
125
+ logger_1.logger.error('Failed to claim idempotency key', {
126
+ key,
127
+ error: error instanceof Error ? error.message : 'Unknown',
128
+ });
129
+ return true; // fail open
130
+ }
131
+ }
132
+ /**
133
+ * Release a claim made by `claimOnce`, so a legitimate retry can reprocess
134
+ * after a processing failure (webhook replay dedup, #5).
135
+ */
136
+ async release(key) {
137
+ if (!this.redis)
138
+ return;
139
+ try {
140
+ await this.redis.del(key);
141
+ }
142
+ catch (error) {
143
+ logger_1.logger.error('Failed to release idempotency key', {
144
+ key,
145
+ error: error instanceof Error ? error.message : 'Unknown',
146
+ });
147
+ }
148
+ }
92
149
  async scanQueues(pattern) {
93
150
  if (!this.redis)
94
151
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"queue.service.js","sourceRoot":"","sources":["../../src/queue/queue.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.service.js","sourceRoot":"","sources":["../../src/queue/queue.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pvh-afl/core",
3
- "version": "1.1.27",
3
+ "version": "1.1.29",
4
4
  "description": "AFL Core - Shared services for multi-brand commerce platform",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,7 +21,9 @@
21
21
  "@nestjs/common": "^10.0.0",
22
22
  "@nestjs/core": "^10.0.0",
23
23
  "ioredis": "^5.0.0",
24
- "rxjs": "^7.0.0"
24
+ "rxjs": "^7.0.0",
25
+ "@nestjs/graphql": "^12.0.0",
26
+ "@nestjs/jwt": "^11.0.0"
25
27
  },
26
28
  "dependencies": {
27
29
  "@azure/storage-blob": "^12.33.0",
@@ -39,7 +41,9 @@
39
41
  "rimraf": "^5.0.0",
40
42
  "rxjs": "^7.8.1",
41
43
  "ts-jest": "^29.2.0",
42
- "typescript": "^5.6.0"
44
+ "typescript": "^5.6.0",
45
+ "@nestjs/graphql": "^12.2.0",
46
+ "@nestjs/jwt": "^11.0.2"
43
47
  },
44
48
  "repository": {
45
49
  "type": "git",