@pvh-afl/graphql 1.2.41 → 1.2.43

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 +1 @@
1
- {"version":3,"file":"serviceability.module.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.module.ts"],"names":[],"mappings":"AAKA,qBAIa,oBAAoB;CAAG"}
1
+ {"version":3,"file":"serviceability.module.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.module.ts"],"names":[],"mappings":"AAKA,qBAMa,oBAAoB;CAAG"}
@@ -13,6 +13,8 @@ exports.ServiceabilityModule = ServiceabilityModule = tslib_1.__decorate([
13
13
  (0, common_1.Module)({
14
14
  imports: [core_1.IntegrationsModule],
15
15
  providers: [serviceability_resolver_1.ServiceabilityResolver, serviceability_service_1.ServiceabilityService],
16
+ // Exported so a brand repo can expose the same check over REST.
17
+ exports: [serviceability_service_1.ServiceabilityService],
16
18
  })
17
19
  ], ServiceabilityModule);
18
20
  //# sourceMappingURL=serviceability.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serviceability.module.js","sourceRoot":"","sources":["../../src/serviceability/serviceability.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,wCAAmD;AACnD,uEAAmE;AACnE,qEAAiE;AAM1D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oDAAoB;+BAApB,oBAAoB;IAJhC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,yBAAkB,CAAC;QAC7B,SAAS,EAAE,CAAC,gDAAsB,EAAE,8CAAqB,CAAC;KAC3D,CAAC;GACW,oBAAoB,CAAG"}
1
+ {"version":3,"file":"serviceability.module.js","sourceRoot":"","sources":["../../src/serviceability/serviceability.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,wCAAmD;AACnD,uEAAmE;AACnE,qEAAiE;AAQ1D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oDAAoB;+BAApB,oBAAoB;IANhC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,yBAAkB,CAAC;QAC7B,SAAS,EAAE,CAAC,gDAAsB,EAAE,8CAAqB,CAAC;QAC1D,gEAAgE;QAChE,OAAO,EAAE,CAAC,8CAAqB,CAAC;KACjC,CAAC;GACW,oBAAoB,CAAG"}
@@ -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.41",
3
+ "version": "1.2.43",
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.32",
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.32",
36
36
  "@types/jest": "^29.5.0",
37
37
  "graphql": "^16.9.0",
38
38
  "graphql-type-json": "^0.3.2",