@pvh-afl/graphql 1.2.42 → 1.2.44

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.
@@ -1,5 +1,5 @@
1
- import { CacheService, ConfigService, IntegrationFactory } from '@pvh-afl/core';
2
- import { Product, ProductConnection } from './product.types';
1
+ import { CacheService, ConfigService, IntegrationFactory } from "@pvh-afl/core";
2
+ import { Product, ProductConnection } from "./product.types";
3
3
  export declare class ProductService {
4
4
  private readonly cache;
5
5
  private readonly configService;
@@ -1 +1 @@
1
- {"version":3,"file":"product.service.d.ts","sourceRoot":"","sources":["../../src/product/product.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,EAQnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,OAAO,EACP,iBAAiB,EAUlB,MAAM,iBAAiB,CAAC;AAmBzB,qBACa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAFlB,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB;IAGzD,OAAO,CAAC,kBAAkB;IAUpB,WAAW,CACf,KAAK,EAAE,MAAM,EACb,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9C,OAAO,CAAC,iBAAiB,CAAC;IA4BvB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA0BlE,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA0B1B;;;;;;;;;OASG;IACG,oBAAoB,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,OAAO,EAAE,CAAC;IA0CrB;;;;OAIG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,SAAI,GACR,OAAO,CAAC,MAAM,EAAE,CAAC;IAoCpB,OAAO,CAAC,aAAa;IAYrB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAyBzB,gFAAgF;IAChF,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,UAAU;IA6ClB,uDAAuD;IACvD,OAAO,CAAC,YAAY;IAcpB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAahB;;;OAGG;YACW,kBAAkB;IAiFhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IAyE9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAkCvB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CA2B5B"}
1
+ {"version":3,"file":"product.service.d.ts","sourceRoot":"","sources":["../../src/product/product.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,EASnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,OAAO,EACP,iBAAiB,EAUlB,MAAM,iBAAiB,CAAC;AAmBzB,qBACa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAFlB,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB;IAGzD,OAAO,CAAC,kBAAkB;IAUpB,WAAW,CACf,KAAK,EAAE,MAAM,EACb,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9C,OAAO,CAAC,iBAAiB,CAAC;IA4BvB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA0BlE,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA0B1B;;;;;;;;;OASG;IACG,oBAAoB,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,OAAO,EAAE,CAAC;IA0CrB;;;;OAIG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,SAAI,GACR,OAAO,CAAC,MAAM,EAAE,CAAC;IAoCpB,OAAO,CAAC,aAAa;IAYrB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB,gFAAgF;IAChF,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,UAAU;IA+ClB,uDAAuD;IACvD,OAAO,CAAC,YAAY;IAcpB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAqBhB;;;OAGG;YACW,kBAAkB;IAkGhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IAgF9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAkCvB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CA2B5B"}
@@ -22,7 +22,7 @@ let ProductService = class ProductService {
22
22
  this.integrationFactory = integrationFactory;
23
23
  }
24
24
  getCommerceService(brand) {
25
- const commerce = this.integrationFactory.get(brand, 'commerce');
25
+ const commerce = this.integrationFactory.get(brand, "commerce");
26
26
  if (!commerce) {
27
27
  throw new Error(`Commerce integration not configured for brand: ${brand}`);
28
28
  }
@@ -30,19 +30,19 @@ let ProductService = class ProductService {
30
30
  }
31
31
  async getProducts(brand, params = {}) {
32
32
  const first = params.first ?? 20;
33
- const cacheKey = `${brand}:products:${first}:${params.after ?? 'start'}`;
33
+ const cacheKey = `${brand}:products:${first}:${params.after ?? "start"}`;
34
34
  const { defaultTTL, staleTTL } = this.configService.getCacheTTL(brand);
35
35
  const products = await this.cache.getOrLoad(cacheKey, async () => {
36
36
  const commerce = this.getCommerceService(brand);
37
37
  const response = await commerce.getProducts(params);
38
38
  if (!response.success || !response.data) {
39
- throw new Error(response.error?.message ?? 'Failed to fetch products');
39
+ throw new Error(response.error?.message ?? "Failed to fetch products");
40
40
  }
41
41
  return this.mapConnection(response.data);
42
42
  }, defaultTTL, staleTTL);
43
43
  // The loader throws on failure, so a resolved value is always present.
44
44
  if (!products) {
45
- throw new Error('Failed to fetch products');
45
+ throw new Error("Failed to fetch products");
46
46
  }
47
47
  return products;
48
48
  }
@@ -53,7 +53,7 @@ let ProductService = class ProductService {
53
53
  const commerce = this.getCommerceService(brand);
54
54
  const response = await commerce.getProductById(id);
55
55
  if (!response.success) {
56
- throw new Error(response.error?.message ?? 'Failed to fetch product');
56
+ throw new Error(response.error?.message ?? "Failed to fetch product");
57
57
  }
58
58
  if (!response.data)
59
59
  return null;
@@ -72,7 +72,7 @@ let ProductService = class ProductService {
72
72
  const commerce = this.getCommerceService(brand);
73
73
  const response = await commerce.getProductByHandle(handle);
74
74
  if (!response.success) {
75
- throw new Error(response.error?.message ?? 'Failed to fetch product');
75
+ throw new Error(response.error?.message ?? "Failed to fetch product");
76
76
  }
77
77
  if (!response.data)
78
78
  return null;
@@ -98,22 +98,22 @@ let ProductService = class ProductService {
98
98
  // AFL-SEC-07: reject an over-large handle list up front, before any lookup.
99
99
  if (handles.length > MAX_PRODUCT_HANDLES) {
100
100
  throw new common_1.BadRequestException({
101
- code: 'TOO_MANY_HANDLES',
101
+ code: "TOO_MANY_HANDLES",
102
102
  message: `Too many product handles: ${handles.length} (max ${MAX_PRODUCT_HANDLES}).`,
103
103
  });
104
104
  }
105
105
  // Dedupe (within this request): fetch each distinct, non-empty handle once.
106
106
  const uniqueHandles = [
107
- ...new Set(handles.filter((handle) => typeof handle === 'string' && handle.length > 0)),
107
+ ...new Set(handles.filter((handle) => typeof handle === "string" && handle.length > 0)),
108
108
  ];
109
109
  const resultByHandle = new Map();
110
110
  await Promise.all(uniqueHandles.map((handle) => this.getProductByHandle(brand, handle)
111
111
  .then((product) => resultByHandle.set(handle, product))
112
112
  .catch((error) => {
113
- core_1.logger.error('Failed to fetch product by handle', {
113
+ core_1.logger.error("Failed to fetch product by handle", {
114
114
  brand,
115
115
  handle,
116
- error: error instanceof Error ? error.message : 'Unknown',
116
+ error: error instanceof Error ? error.message : "Unknown",
117
117
  });
118
118
  resultByHandle.set(handle, null);
119
119
  })));
@@ -136,7 +136,7 @@ let ProductService = class ProductService {
136
136
  const response = await commerce.getProductRecommendations(productId, count);
137
137
  if (!response.success) {
138
138
  // Preserve prior behaviour: log and return [] without caching.
139
- core_1.logger.error('Failed to fetch product recommendations', {
139
+ core_1.logger.error("Failed to fetch product recommendations", {
140
140
  brand,
141
141
  productId,
142
142
  error: response.error?.message,
@@ -144,7 +144,7 @@ let ProductService = class ProductService {
144
144
  return null;
145
145
  }
146
146
  const handles = (response.data || []).map((p) => p.handle);
147
- core_1.logger.info('Recommendations handles cached', {
147
+ core_1.logger.info("Recommendations handles cached", {
148
148
  brand,
149
149
  productId,
150
150
  count: handles.length,
@@ -168,11 +168,19 @@ let ProductService = class ProductService {
168
168
  */
169
169
  mapProductDetails(commerce) {
170
170
  const rows = [
171
- { key: 'fit', label: 'Fit', raw: commerce.fit?.value },
172
- { key: 'composition_care', label: 'Composition', raw: commerce.compositionCare?.value },
173
- { key: 'wash_care', label: 'Wash Care', raw: commerce.washCare?.value },
174
- { key: 'country_of_origin', label: 'Country of Origin', raw: commerce.countryOfOrigin?.value },
175
- { key: 'style_number', label: 'Style', raw: commerce.styleNumber?.value },
171
+ { key: "fit", label: "Fit", raw: commerce.fit?.value },
172
+ {
173
+ key: "composition_care",
174
+ label: "Composition",
175
+ raw: commerce.compositionCare?.value,
176
+ },
177
+ { key: "wash_care", label: "Wash Care", raw: commerce.washCare?.value },
178
+ {
179
+ key: "country_of_origin",
180
+ label: "Country of Origin",
181
+ raw: commerce.countryOfOrigin?.value,
182
+ },
183
+ { key: "style_number", label: "Style", raw: commerce.styleNumber?.value },
176
184
  ];
177
185
  return rows.map((row) => {
178
186
  const raw = row.raw?.trim();
@@ -181,8 +189,8 @@ let ProductService = class ProductService {
181
189
  label: row.label,
182
190
  // style_number is an identifier — never reshape it.
183
191
  value: !raw
184
- ? ''
185
- : row.key === 'style_number'
192
+ ? ""
193
+ : row.key === "style_number"
186
194
  ? raw
187
195
  : this.humanizeDetail(raw),
188
196
  };
@@ -190,7 +198,7 @@ let ProductService = class ProductService {
190
198
  }
191
199
  /** "hand-wash" -> "Hand wash", matching the storefront theme's presentation. */
192
200
  humanizeDetail(value) {
193
- const text = value.trim().replace(/[-_]+/g, ' ').replace(/\s+/g, ' ');
201
+ const text = value.trim().replace(/[-_]+/g, " ").replace(/\s+/g, " ");
194
202
  return text.charAt(0).toUpperCase() + text.slice(1);
195
203
  }
196
204
  mapProduct(commerce) {
@@ -258,11 +266,19 @@ let ProductService = class ProductService {
258
266
  const edges = commerce.media?.edges ?? [];
259
267
  const out = [];
260
268
  for (const { node } of edges) {
261
- if (node.mediaContentType === 'IMAGE' && node.image) {
262
- out.push({ type: product_types_1.MediaContentType.IMAGE, image: node.image, video: null });
269
+ if (node.mediaContentType === "IMAGE" && node.image) {
270
+ out.push({
271
+ type: product_types_1.MediaContentType.IMAGE,
272
+ image: node.image,
273
+ video: null,
274
+ });
263
275
  }
264
- else if (node.mediaContentType === 'VIDEO' && node.id) {
265
- out.push({ type: product_types_1.MediaContentType.VIDEO, image: null, video: this.mapVideoNode(node) });
276
+ else if (node.mediaContentType === "VIDEO" && node.id) {
277
+ out.push({
278
+ type: product_types_1.MediaContentType.VIDEO,
279
+ image: null,
280
+ video: this.mapVideoNode(node),
281
+ });
266
282
  }
267
283
  }
268
284
  return out;
@@ -273,9 +289,9 @@ let ProductService = class ProductService {
273
289
  */
274
290
  async fetchLiveInventory(brand, handle) {
275
291
  const storeDomain = this.configService.getShopifyStoreDomain(brand);
276
- const storefrontToken = this.configService.getShopifyStorefrontToken(brand);
292
+ const storefrontToken = this.configService.getShopifyStorefrontPrivateToken(brand);
277
293
  if (!storeDomain || !storefrontToken) {
278
- core_1.logger.warn('Missing Shopify Storefront configuration for inventory', {
294
+ core_1.logger.warn("Missing Shopify Storefront configuration for inventory", {
279
295
  brand,
280
296
  hasStoreDomain: !!storeDomain,
281
297
  hasStorefrontToken: !!storefrontToken,
@@ -298,16 +314,29 @@ let ProductService = class ProductService {
298
314
  `;
299
315
  try {
300
316
  const response = await fetch(`https://${storeDomain}/api/2024-01/graphql.json`, {
301
- method: 'POST',
317
+ method: "POST",
302
318
  headers: {
303
- 'Content-Type': 'application/json',
304
- 'X-Shopify-Storefront-Access-Token': storefrontToken,
319
+ "Content-Type": "application/json",
320
+ "Shopify-Storefront-Private-Token": storefrontToken,
321
+ // Attribute to the real buyer so Shopify does not treat this
322
+ // per-request live-inventory call as anonymous server traffic.
323
+ ...(0, core_1.buyerIpHeaders)(),
305
324
  },
306
325
  body: JSON.stringify({ query, variables: { handle } }),
307
326
  });
327
+ // Surface Storefront throttling (429) / security rejection (430), which
328
+ // are otherwise invisible because inventory failures are swallowed
329
+ // upstream (the item still returns, just without live inventory).
330
+ if (!response.ok) {
331
+ core_1.logger.warn("Shopify inventory query non-OK response", {
332
+ brand,
333
+ handle,
334
+ status: response.status,
335
+ });
336
+ }
308
337
  const result = (await response.json());
309
338
  if (result.errors?.length) {
310
- core_1.logger.error('Shopify inventory query errors', {
339
+ core_1.logger.error("Shopify inventory query errors", {
311
340
  brand,
312
341
  handle,
313
342
  errors: result.errors.map((e) => e.message),
@@ -321,10 +350,10 @@ let ProductService = class ProductService {
321
350
  }));
322
351
  }
323
352
  catch (error) {
324
- core_1.logger.error('Failed to fetch live inventory', {
353
+ core_1.logger.error("Failed to fetch live inventory", {
325
354
  brand,
326
355
  handle,
327
- error: error instanceof Error ? error.message : 'Unknown',
356
+ error: error instanceof Error ? error.message : "Unknown",
328
357
  });
329
358
  return [];
330
359
  }
@@ -365,11 +394,14 @@ let ProductService = class ProductService {
365
394
  const data = JSON.parse(json);
366
395
  // --- Rating summary (aggregate) ---
367
396
  let ratingSummary = null;
368
- const average = typeof data.average_rating === 'string'
397
+ const average = typeof data.average_rating === "string"
369
398
  ? parseFloat(data.average_rating)
370
399
  : data.average_rating;
371
400
  const count = data.number_of_reviews;
372
- if (average != null && !isNaN(average) && count != null && !isNaN(count)) {
401
+ if (average != null &&
402
+ !isNaN(average) &&
403
+ count != null &&
404
+ !isNaN(count)) {
373
405
  // Histogram indexed [1-star, 2-star, 3-star, 4-star, 5-star]
374
406
  const histogram = [0, 0, 0, 0, 0];
375
407
  for (const bucket of data.histogram ?? []) {
@@ -386,7 +418,9 @@ let ProductService = class ProductService {
386
418
  for (const entry of data.photo_gallery ?? []) {
387
419
  const reviewerName = entry?.reviewer_name ?? null;
388
420
  const ratingNum = Number(entry?.rating);
389
- const rating = !isNaN(ratingNum) && ratingNum >= 1 && ratingNum <= 5 ? ratingNum : null;
421
+ const rating = !isNaN(ratingNum) && ratingNum >= 1 && ratingNum <= 5
422
+ ? ratingNum
423
+ : null;
390
424
  for (const pic of entry?.pictures_urls ?? []) {
391
425
  if (!pic?.original)
392
426
  continue; // skip entries without a usable URL
@@ -403,8 +437,8 @@ let ProductService = class ProductService {
403
437
  return { ratingSummary, reviewPhotos };
404
438
  }
405
439
  catch (error) {
406
- core_1.logger.error('Failed to parse Judge.me review widget data', {
407
- error: error instanceof Error ? error.message : 'Unknown',
440
+ core_1.logger.error("Failed to parse Judge.me review widget data", {
441
+ error: error instanceof Error ? error.message : "Unknown",
408
442
  });
409
443
  return { ratingSummary: null, reviewPhotos: [] };
410
444
  }
@@ -436,10 +470,10 @@ let ProductService = class ProductService {
436
470
  return {
437
471
  id: node.id,
438
472
  handle: node.handle,
439
- title: byKey.get('title') ?? null,
440
- category: byKey.get('category') ?? null,
441
- gender: byKey.get('gender') ?? null,
442
- table: this.parseSizeChartTable(byKey.get('table')),
473
+ title: byKey.get("title") ?? null,
474
+ category: byKey.get("category") ?? null,
475
+ gender: byKey.get("gender") ?? null,
476
+ table: this.parseSizeChartTable(byKey.get("table")),
443
477
  };
444
478
  });
445
479
  }
@@ -461,7 +495,7 @@ let ProductService = class ProductService {
461
495
  const rows = Array.isArray(parsed.rows)
462
496
  ? parsed.rows.map((row) => Array.isArray(row) ? row.map((cell) => String(cell)) : [])
463
497
  : [];
464
- const note = typeof parsed.note === 'string' && parsed.note.length > 0
498
+ const note = typeof parsed.note === "string" && parsed.note.length > 0
465
499
  ? parsed.note
466
500
  : null;
467
501
  return { headers, rows, note };
@@ -1 +1 @@
1
- {"version":3,"file":"product.service.js","sourceRoot":"","sources":["../../src/product/product.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product.service.js","sourceRoot":"","sources":["../../src/product/product.service.ts"],"names":[],"mappings":";;;;AAAA,2CAAiE;AACjE,wCAYuB;AACvB,mDAYyB;AAEzB;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAYxB,IAAM,cAAc,GAApB,MAAM,cAAc;IAEN;IACA;IACA;IAHnB,YACmB,KAAmB,EACnB,aAA4B,EAC5B,kBAAsC;QAFtC,UAAK,GAAL,KAAK,CAAc;QACnB,kBAAa,GAAb,aAAa,CAAe;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAoB;IACtD,CAAC;IAEI,kBAAkB,CAAC,KAAa;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,kDAAkD,KAAK,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,QAAuC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAAa,EACb,SAA6C,EAAE;QAE/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,GAAG,KAAK,aAAa,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC;QACzE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CACzC,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,0BAA0B,CACtD,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,EACD,UAAU,EACV,QAAQ,CACT,CAAC;QAEF,uEAAuE;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,EAAU;QAC5C,MAAM,QAAQ,GAAG,GAAG,KAAK,YAAY,EAAE,EAAE,CAAC;QAC1C,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CACxC,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,EACD,UAAU,EACV,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,qEAAqE;QACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,MAAc;QAEd,MAAM,QAAQ,GAAG,GAAG,KAAK,mBAAmB,MAAM,EAAE,CAAC;QACrD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CACxC,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,EACD,UAAU,EACV,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,qEAAqE;QACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CACxB,KAAa,EACb,OAAiB;QAEjB,4EAA4E;QAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACzC,MAAM,IAAI,4BAAmB,CAAC;gBAC5B,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,6BAA6B,OAAO,CAAC,MAAM,SAAS,mBAAmB,IAAI;aACrF,CAAC,CAAC;QACL,CAAC;QAED,4EAA4E;QAC5E,MAAM,aAAa,GAAG;YACpB,GAAG,IAAI,GAAG,CACR,OAAO,CAAC,MAAM,CACZ,CAAC,MAAM,EAAoB,EAAE,CAC3B,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAClD,CACF;SACF,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QACzD,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;aACnC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aACtD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,aAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;gBAChD,KAAK;gBACL,MAAM;gBACN,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CACL,CACF,CAAC;QAEF,4EAA4E;QAC5E,oDAAoD;QACpD,OAAO,OAAO;aACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;aACnD,MAAM,CAAC,CAAC,OAAO,EAAsB,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,+BAA+B,CACnC,KAAa,EACb,SAAiB,EACjB,KAAK,GAAG,CAAC;QAET,MAAM,QAAQ,GAAG,GAAG,KAAK,oBAAoB,SAAS,IAAI,KAAK,EAAE,CAAC;QAClE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CACvC,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,yBAAyB,CACvD,SAAS,EACT,KAAK,CACN,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,+DAA+D;gBAC/D,aAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;oBACtD,KAAK;oBACL,SAAS;oBACT,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO;iBAC/B,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3D,aAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;gBAC5C,KAAK;gBACL,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,MAAM;aACtB,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC,EACD,UAAU,EACV,QAAQ,CACT,CAAC;QAEF,OAAO,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;IAC/B,CAAC;IAEO,aAAa,CACnB,UAA+C;QAE/C,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,QAAyB;QACjD,MAAM,IAAI,GAAwD;YAChE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;YACtD;gBACE,GAAG,EAAE,kBAAkB;gBACvB,KAAK,EAAE,aAAa;gBACpB,GAAG,EAAE,QAAQ,CAAC,eAAe,EAAE,KAAK;aACrC;YACD,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE;YACvE;gBACE,GAAG,EAAE,mBAAmB;gBACxB,KAAK,EAAE,mBAAmB;gBAC1B,GAAG,EAAE,QAAQ,CAAC,eAAe,EAAE,KAAK;aACrC;YACD,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE;SAC1E,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAE5B,OAAO;gBACL,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,oDAAoD;gBACpD,KAAK,EAAE,CAAC,GAAG;oBACT,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,cAAc;wBAC1B,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;aAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gFAAgF;IACxE,cAAc,CAAC,KAAa;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,UAAU,CAAC,QAAyB;QAC1C,yEAAyE;QACzE,oEAAoE;QACpE,wEAAwE;QACxE,oBAAoB;QACpB,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,sBAAsB,CACjE,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAClC,CAAC;QAEF,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,IAAI;YAC9C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI;YAC1C,MAAM,EAAE,IAAA,oBAAa,EAAC,QAAQ,CAAC,IAAI,CAAC;YACpC,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI;YAChD,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAChD,aAAa;YACb,YAAY;YACZ,sBAAsB,EAAE,IAAI,CAAC,qBAAqB,CAChD,QAAQ,CAAC,gBAAgB,CAC1B;YACD,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpD,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAChD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC9B,OAAO,EAAE,IAAA,6BAAsB,EAAC,QAAQ,CAAC,OAAO,CAAC;YACjD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,GAAG,CAAC,CAAC,IAAI;gBACT,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI;gBAC/B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;gBACvB,iBAAiB,EAAE,IAAI,EAAE,4CAA4C;aACtE,CAAC,CAAC;YACH,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,gEAAgE;YAChE,8DAA8D;YAC9D,kEAAkE;YAClE,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;SACxE,CAAC;IACJ,CAAC;IAED,uDAAuD;IAC/C,YAAY,CAAC,IAAuB;QAC1C,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAY;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;YACrB,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;aACzB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,QAAQ,CAAC,QAAyB;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAmB,EAAE,CAAC;QAC/B,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,gBAAgB,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,gCAAgB,CAAC,KAAK;oBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,gCAAgB,CAAC,KAAK;oBAC5B,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;iBAC/B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,KAAa,EACb,MAAc;QAEd,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,eAAe,GACnB,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;QAE7D,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,aAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;gBACpE,KAAK;gBACL,cAAc,EAAE,CAAC,CAAC,WAAW;gBAC7B,kBAAkB,EAAE,CAAC,CAAC,eAAe;aACtC,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG;;;;;;;;;;;;;KAab,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,WAAW,WAAW,2BAA2B,EACjD;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,kCAAkC,EAAE,eAAe;oBACnD,6DAA6D;oBAC7D,+DAA+D;oBAC/D,GAAG,IAAA,qBAAc,GAAE;iBACpB;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;aACvD,CACF,CAAC;YAEF,wEAAwE;YACxE,mEAAmE;YACnE,kEAAkE;YAClE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,aAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;oBACrD,KAAK;oBACL,MAAM;oBACN,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAWpC,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBAC1B,aAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;oBAC7C,KAAK;oBACL,MAAM;oBACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBAC5C,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;YACrE,OAAO,QAAQ,CAAC,GAAG,CACjB,CAAC,IAAgE,EAAE,EAAE,CAAC,CAAC;gBACrE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChB,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB;aAC/C,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gBAC7C,KAAK;gBACL,MAAM;gBACN,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,OAAgB,EAChB,SAA6B;QAE7B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,QAAQ,GAAqB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACpE,GAAG,OAAO;YACV,iBAAiB,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI;SACxD,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,GAAG,OAAO;YACV,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACK,sBAAsB,CAAC,IAA+B;QAI5D,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAc3B,CAAC;YAEF,qCAAqC;YACrC,IAAI,aAAa,GAAyB,IAAI,CAAC;YAC/C,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ;gBACrC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;gBACjC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAErC,IACE,OAAO,IAAI,IAAI;gBACf,CAAC,KAAK,CAAC,OAAO,CAAC;gBACf,KAAK,IAAI,IAAI;gBACb,CAAC,KAAK,CAAC,KAAK,CAAC,EACb,CAAC;gBACD,6DAA6D;gBAC7D,MAAM,SAAS,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;oBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACtC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oBAC5C,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;wBACpD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;oBACpC,CAAC;gBACH,CAAC;gBACD,aAAa,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAChD,CAAC;YAED,yDAAyD;YACzD,MAAM,YAAY,GAAkB,EAAE,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;gBAC7C,MAAM,YAAY,GAAG,KAAK,EAAE,aAAa,IAAI,IAAI,CAAC;gBAClD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACxC,MAAM,MAAM,GACV,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC;oBACnD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAI,CAAC;gBACX,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,aAAa,IAAI,EAAE,EAAE,CAAC;oBAC7C,IAAI,CAAC,GAAG,EAAE,QAAQ;wBAAE,SAAS,CAAC,oCAAoC;oBAClE,YAAY,CAAC,IAAI,CAAC;wBAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;wBACxB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;wBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;wBACtB,YAAY;wBACZ,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE;gBAC1D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAC3B,SAEQ;QAER,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CACrB,SAaa;QAEb,MAAM,KAAK,GAAG,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChE,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;gBACjC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI;gBACvC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;gBACnC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACpD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,IAAwB;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAI7B,CAAC;YACF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC3C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAC1D;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,GACR,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACvD,CAAC,CAAC,MAAM,CAAC,IAAI;gBACb,CAAC,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA7oBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;6CAGe,mBAAY;QACJ,oBAAa;QACR,yBAAkB;GAJ9C,cAAc,CA6oB1B"}
@@ -1,5 +1,5 @@
1
1
  import { IntegrationFactory } from '@pvh-afl/core';
2
- import { ServiceabilityCheckInput, ServiceabilityResult } from './serviceability.types';
2
+ import { ServiceabilityCheckInput, ServiceabilityResult, CartServiceabilityResult } from './serviceability.types';
3
3
  /**
4
4
  * Serviceability Service
5
5
  *
@@ -23,6 +23,39 @@ export declare class ServiceabilityService {
23
23
  * Always fetches fresh data from OMS (no caching).
24
24
  */
25
25
  checkServiceability(brand: string, input: ServiceabilityCheckInput): Promise<ServiceabilityResult[]>;
26
+ /**
27
+ * Cart-level serviceability: collapse the per-SKU results into one answer for
28
+ * the whole cart. Shared by any brand/transport that needs a single verdict
29
+ * rather than the per-item array (e.g. the GoKwik cart-serviceability route).
30
+ *
31
+ * All-or-nothing: the cart is serviceable only if every requested item is, and
32
+ * a payment method counts only if EVERY item supports it. The delivery date is
33
+ * the latest of each item's earliest option ("each item by its fastest option,
34
+ * the cart by its slowest item").
35
+ *
36
+ * Propagates the same OMS errors as {@link checkServiceability} — an unknown or
37
+ * deactivated SKU makes Omuni reject the whole request, which surfaces here as
38
+ * OMS_API_FAILURE rather than a serviceable:false verdict.
39
+ */
40
+ checkCartServiceability(brand: string, input: ServiceabilityCheckInput): Promise<CartServiceabilityResult>;
41
+ /**
42
+ * Aggregate per-SKU results into a cart-level verdict (see
43
+ * {@link checkCartServiceability} for the rules).
44
+ */
45
+ private aggregateCart;
46
+ /**
47
+ * Cart delivery date = latest (max) of each item's earliest (min) delivery date.
48
+ * Returns the original Omuni-formatted string, or undefined if no item carried a
49
+ * date.
50
+ */
51
+ private rollUpEdd;
52
+ /**
53
+ * Parse Omuni's "DD-MM-YYYY HH:mm:ss" store-local timestamp into a comparable
54
+ * epoch value. Every value in a response shares the same zone, so the offset
55
+ * cancels out for min/max comparison and a local Date is sufficient. Returns
56
+ * null for missing or unparseable input.
57
+ */
58
+ private parseOmuniDate;
26
59
  /**
27
60
  * Fetch serviceability data from OMS.
28
61
  */
@@ -1 +1 @@
1
- {"version":3,"file":"serviceability.service.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAKnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EAGrB,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,qBACa,qBAAqB;IAWpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAV/C;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAY;gBAEtB,kBAAkB,EAAE,kBAAkB;IAEnE;;;OAGG;IACG,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIlC;;OAEG;YACW,YAAY;IA8C1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAuDnB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;0DACsD;IACtD,OAAO,CAAC,gBAAgB;IAQxB;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;CAazC"}
1
+ {"version":3,"file":"serviceability.service.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAKnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EAGzB,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,qBACa,qBAAqB;IAWpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAV/C;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAY;gBAEtB,kBAAkB,EAAE,kBAAkB;IAEnE;;;OAGG;IACG,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIlC;;;;;;;;;;;;;OAaG;IACG,uBAAuB,CAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAyBjB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;YACW,YAAY;IA8C1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAuDnB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;0DACsD;IACtD,OAAO,CAAC,gBAAgB;IAQxB;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;CAazC"}
@@ -31,6 +31,85 @@ let ServiceabilityService = class ServiceabilityService {
31
31
  async checkServiceability(brand, input) {
32
32
  return this.fetchFromOms(brand, input);
33
33
  }
34
+ /**
35
+ * Cart-level serviceability: collapse the per-SKU results into one answer for
36
+ * the whole cart. Shared by any brand/transport that needs a single verdict
37
+ * rather than the per-item array (e.g. the GoKwik cart-serviceability route).
38
+ *
39
+ * All-or-nothing: the cart is serviceable only if every requested item is, and
40
+ * a payment method counts only if EVERY item supports it. The delivery date is
41
+ * the latest of each item's earliest option ("each item by its fastest option,
42
+ * the cart by its slowest item").
43
+ *
44
+ * Propagates the same OMS errors as {@link checkServiceability} — an unknown or
45
+ * deactivated SKU makes Omuni reject the whole request, which surfaces here as
46
+ * OMS_API_FAILURE rather than a serviceable:false verdict.
47
+ */
48
+ async checkCartServiceability(brand, input) {
49
+ const results = await this.fetchFromOms(brand, input);
50
+ return this.aggregateCart(input.items.length, results);
51
+ }
52
+ /**
53
+ * Aggregate per-SKU results into a cart-level verdict (see
54
+ * {@link checkCartServiceability} for the rules).
55
+ */
56
+ aggregateCart(requestedCount, results) {
57
+ const allServiceable = results.length === requestedCount &&
58
+ results.length > 0 &&
59
+ results.every((r) => r.serviceable);
60
+ if (!allServiceable) {
61
+ return { serviceable: false, codEnabled: false, prepaidEnabled: false };
62
+ }
63
+ return {
64
+ serviceable: true,
65
+ codEnabled: results.every((r) => r.paymentMethods?.codEnabled === true),
66
+ prepaidEnabled: results.every((r) => r.paymentMethods?.prepaidEnabled === true),
67
+ expectedDeliveryDate: this.rollUpEdd(results),
68
+ };
69
+ }
70
+ /**
71
+ * Cart delivery date = latest (max) of each item's earliest (min) delivery date.
72
+ * Returns the original Omuni-formatted string, or undefined if no item carried a
73
+ * date.
74
+ */
75
+ rollUpEdd(results) {
76
+ let cartEdd;
77
+ let cartEddTs = -Infinity;
78
+ for (const result of results) {
79
+ let itemEdd;
80
+ let itemEddTs = Infinity;
81
+ for (const option of result.deliveryOptions ?? []) {
82
+ const ts = this.parseOmuniDate(option.expectedDeliveryDate);
83
+ if (ts !== null && ts < itemEddTs) {
84
+ itemEddTs = ts;
85
+ itemEdd = option.expectedDeliveryDate;
86
+ }
87
+ }
88
+ if (itemEdd !== undefined && itemEddTs > cartEddTs) {
89
+ cartEddTs = itemEddTs;
90
+ cartEdd = itemEdd;
91
+ }
92
+ }
93
+ return cartEdd;
94
+ }
95
+ /**
96
+ * Parse Omuni's "DD-MM-YYYY HH:mm:ss" store-local timestamp into a comparable
97
+ * epoch value. Every value in a response shares the same zone, so the offset
98
+ * cancels out for min/max comparison and a local Date is sufficient. Returns
99
+ * null for missing or unparseable input.
100
+ */
101
+ parseOmuniDate(value) {
102
+ if (!value) {
103
+ return null;
104
+ }
105
+ const [datePart, timePart = '00:00:00'] = value.trim().split(/\s+/);
106
+ const [d, m, y] = datePart.split('-').map(Number);
107
+ const [hh, mm, ss] = timePart.split(':').map(Number);
108
+ if ([d, m, y, hh, mm, ss].some((n) => Number.isNaN(n))) {
109
+ return null;
110
+ }
111
+ return new Date(y, m - 1, d, hh, mm, ss).getTime();
112
+ }
34
113
  /**
35
114
  * Fetch serviceability data from OMS.
36
115
  */
@@ -1 +1 @@
1
- {"version":3,"file":"serviceability.service.js","sourceRoot":"","sources":["../../src/serviceability/serviceability.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serviceability.service.js","sourceRoot":"","sources":["../../src/serviceability/serviceability.service.ts"],"names":[],"mappings":"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"}
@@ -45,4 +45,29 @@ export declare class ServiceabilityResult {
45
45
  deliveryOptions?: DeliveryOption[];
46
46
  unavailableReason?: string;
47
47
  }
48
+ /**
49
+ * Cart-level serviceability answer, aggregated from the per-SKU
50
+ * {@link ServiceabilityResult} array.
51
+ *
52
+ * This is a transport- and partner-agnostic shape: a single yes/no for the whole
53
+ * cart plus the payment methods available for every item and one rolled-up
54
+ * delivery date. Brand REST adapters (e.g. the GoKwik cart-serviceability route)
55
+ * map this onto whatever field names the external caller expects. It is a plain
56
+ * DTO, not a GraphQL type — it is returned by the service, never exposed in the
57
+ * schema.
58
+ */
59
+ export interface CartServiceabilityResult {
60
+ /** True only when every requested item is serviceable at the location. */
61
+ serviceable: boolean;
62
+ /** True only when COD is available for EVERY item (all-or-nothing). */
63
+ codEnabled: boolean;
64
+ /** True only when prepaid is available for EVERY item (all-or-nothing). */
65
+ prepaidEnabled: boolean;
66
+ /**
67
+ * Cart delivery date: the latest of each item's earliest delivery date, in
68
+ * Omuni's "DD-MM-YYYY HH:mm:ss" store-local format. Undefined when the cart is
69
+ * unserviceable or no item carried a delivery date.
70
+ */
71
+ expectedDeliveryDate?: string;
72
+ }
48
73
  //# sourceMappingURL=serviceability.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serviceability.types.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAMH,qBACa,uBAAuB;IAElC,KAAK,EAAG,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,EAAG,MAAM,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,gBAAgB;IAE3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,wBAAwB;IAEnC,OAAO,EAAG,MAAM,CAAC;IAMjB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAM/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAKzB,KAAK,EAAG,uBAAuB,EAAE,CAAC;IAGlC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,qBACa,YAAY;IAEvB,QAAQ,EAAG,MAAM,CAAC;IAGlB,MAAM,EAAG,MAAM,CAAC;CACjB;AAED,qBACa,cAAc;IAEzB,YAAY,EAAG,MAAM,CAAC;IAGtB,WAAW,EAAG,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAG,YAAY,CAAC;IAG5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBACa,yBAAyB;IAEpC,cAAc,EAAG,OAAO,CAAC;IAGzB,UAAU,EAAG,OAAO,CAAC;CACtB;AAED,qBACa,oBAAoB;IAE/B,KAAK,EAAG,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAG,OAAO,CAAC;IAKtB,cAAc,EAAG,yBAAyB,CAAC;IAM3C,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAOnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"serviceability.types.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAMH,qBACa,uBAAuB;IAElC,KAAK,EAAG,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,EAAG,MAAM,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,gBAAgB;IAE3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,wBAAwB;IAEnC,OAAO,EAAG,MAAM,CAAC;IAMjB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAM/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAKzB,KAAK,EAAG,uBAAuB,EAAE,CAAC;IAGlC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,qBACa,YAAY;IAEvB,QAAQ,EAAG,MAAM,CAAC;IAGlB,MAAM,EAAG,MAAM,CAAC;CACjB;AAED,qBACa,cAAc;IAEzB,YAAY,EAAG,MAAM,CAAC;IAGtB,WAAW,EAAG,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAG,YAAY,CAAC;IAG5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBACa,yBAAyB;IAEpC,cAAc,EAAG,OAAO,CAAC;IAGzB,UAAU,EAAG,OAAO,CAAC;CACtB;AAED,qBACa,oBAAoB;IAE/B,KAAK,EAAG,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAG,OAAO,CAAC;IAKtB,cAAc,EAAG,yBAAyB,CAAC;IAM3C,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAOnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,WAAW,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pvh-afl/graphql",
3
- "version": "1.2.42",
3
+ "version": "1.2.44",
4
4
  "description": "AFL GraphQL - Shared GraphQL modules for multi-brand commerce platform",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,7 +22,7 @@
22
22
  "@nestjs/common": "^10.0.0",
23
23
  "@nestjs/core": "^10.0.0",
24
24
  "@nestjs/graphql": "^12.0.0",
25
- "@pvh-afl/core": "^1.2.31",
25
+ "@pvh-afl/core": "^1.2.33",
26
26
  "graphql": "^16.0.0"
27
27
  },
28
28
  "devDependencies": {
@@ -32,7 +32,7 @@
32
32
  "@nestjs/core": "^10.4.0",
33
33
  "@nestjs/graphql": "^12.2.0",
34
34
  "@nestjs/testing": "^10.4.0",
35
- "@pvh-afl/core": "^1.2.31",
35
+ "@pvh-afl/core": "^1.2.33",
36
36
  "@types/jest": "^29.5.0",
37
37
  "graphql": "^16.9.0",
38
38
  "graphql-type-json": "^0.3.2",