@pvh-afl/core 1.2.0 → 1.2.2
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.
- package/dist/integrations/oms/omuni.types.d.ts +7 -0
- package/dist/integrations/oms/omuni.types.d.ts.map +1 -1
- package/dist/integrations/search/search.mapper.d.ts.map +1 -1
- package/dist/integrations/search/search.mapper.js +4 -2
- package/dist/integrations/search/search.mapper.js.map +1 -1
- package/dist/integrations/search/wizzy.service.d.ts +1 -0
- package/dist/integrations/search/wizzy.service.d.ts.map +1 -1
- package/dist/integrations/search/wizzy.service.js +26 -6
- package/dist/integrations/search/wizzy.service.js.map +1 -1
- package/dist/integrations/search/wizzy.types.d.ts +15 -0
- package/dist/integrations/search/wizzy.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/common/decorators/current-customer.decorator.d.ts +0 -7
- package/dist/common/decorators/current-customer.decorator.d.ts.map +0 -1
- package/dist/common/decorators/current-customer.decorator.js +0 -21
- package/dist/common/decorators/current-customer.decorator.js.map +0 -1
- package/dist/common/decorators/require-customer.decorator.d.ts +0 -25
- package/dist/common/decorators/require-customer.decorator.d.ts.map +0 -1
- package/dist/common/decorators/require-customer.decorator.js +0 -31
- package/dist/common/decorators/require-customer.decorator.js.map +0 -1
- package/dist/common/guards/customer-auth.guard.d.ts +0 -54
- package/dist/common/guards/customer-auth.guard.d.ts.map +0 -1
- package/dist/common/guards/customer-auth.guard.js +0 -142
- package/dist/common/guards/customer-auth.guard.js.map +0 -1
|
@@ -50,6 +50,13 @@ export interface OmuniServiceabilityResult {
|
|
|
50
50
|
skuId: string;
|
|
51
51
|
eoisSkuID?: string;
|
|
52
52
|
deliverymodes: OmuniDeliveryMode[];
|
|
53
|
+
/**
|
|
54
|
+
* Omuni-supplied reason when an item has no delivery modes, e.g.
|
|
55
|
+
* "Error: Inventory not sufficient. Available Inventory: 2" or
|
|
56
|
+
* "Error: Store properties not meeting cut off. Available Inventory: 2".
|
|
57
|
+
* Present on unserviceable items; absent when deliverymodes are returned.
|
|
58
|
+
*/
|
|
59
|
+
message?: string;
|
|
53
60
|
}
|
|
54
61
|
export interface OmuniServiceabilityResponse {
|
|
55
62
|
items: OmuniServiceabilityResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omuni.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/oms/omuni.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AAGH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,uBAAuB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,YAAY,EAAE,iBAAiB,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"omuni.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/oms/omuni.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.mapper.d.ts","sourceRoot":"","sources":["../../../src/integrations/search/search.mapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,aAAa,EAEb,wBAAwB,EAExB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,sBAAsB,EAOtB,kBAAkB,EAElB,oBAAoB,EAEpB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AA6IxB;;GAEG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,kBAA0C,GACjD,aAAa,
|
|
1
|
+
{"version":3,"file":"search.mapper.d.ts","sourceRoot":"","sources":["../../../src/integrations/search/search.mapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,aAAa,EAEb,wBAAwB,EAExB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,sBAAsB,EAOtB,kBAAkB,EAElB,oBAAoB,EAEpB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AA6IxB;;GAEG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,kBAA0C,GACjD,aAAa,CAsEf;AAmBD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAClD,WAAW,GAAE,MAAU,EACvB,oBAAoB,GAAE,MAAW,EACjC,MAAM,GAAE,kBAA0C,GACjD,sBAAsB,CAaxB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,YAAY,EAAE,EAC7B,MAAM,GAAE,kBAA0C,GACjD,aAAa,EAAE,CAEjB;AAgBD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,aAAa,CAAC,wBAAwB,CAAC,EACtD,MAAM,GAAE,kBAA0C,GACjD,oBAAoB,CAkCtB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,CAAC,oBAAoB,CAAC,GACjD,gBAAgB,CAIlB"}
|
|
@@ -129,10 +129,12 @@ function buildVariants(product, config) {
|
|
|
129
129
|
*/
|
|
130
130
|
function mapWizzyProduct(wizzyProduct, config = search_types_1.DEFAULT_MAPPER_CONFIG) {
|
|
131
131
|
const handle = extractHandle(wizzyProduct.url);
|
|
132
|
-
// Build price range using sellingPrice (current price) and price (original/compare at)
|
|
132
|
+
// Build price range using sellingPrice (current price) and price (original/compare at).
|
|
133
|
+
// Wizzy leaves `price` at 0 on unsynced products, so fall back to sellingPrice
|
|
134
|
+
// to avoid a bogus 0.00 max.
|
|
133
135
|
const priceRange = {
|
|
134
136
|
minVariantPrice: createMoney(wizzyProduct.sellingPrice, config.currencyCode),
|
|
135
|
-
maxVariantPrice: createMoney(wizzyProduct.price, config.currencyCode),
|
|
137
|
+
maxVariantPrice: createMoney(wizzyProduct.price || wizzyProduct.sellingPrice, config.currencyCode),
|
|
136
138
|
};
|
|
137
139
|
// Build images array
|
|
138
140
|
const images = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.mapper.js","sourceRoot":"","sources":["../../../src/integrations/search/search.mapper.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyKH,
|
|
1
|
+
{"version":3,"file":"search.mapper.js","sourceRoot":"","sources":["../../../src/integrations/search/search.mapper.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyKH,0CAyEC;AAsBD,4DAkBC;AAMD,4CAKC;AAoBD,oEAqCC;AAMD,4DAMC;AA/VD,iDAcwB;AAExB;;;GAGG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,2BAA2B;IAC3B,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,gDAAgD;IAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,GAAW,EACX,MAA0B,EAC1B,UAAyB,IAAI;IAE7B,OAAO;QACL,GAAG;QACH,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,iBAAiB;QAC/B,MAAM,EAAE,MAAM,CAAC,kBAAkB;KAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,YAAoB;IACvD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAqB;IACzC,MAAM,OAAO,GAA0B,EAAE,CAAC;IAE1C,eAAe;IACf,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,QAAQ;YACzB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,cAAc;IACd,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,OAAO;YACxB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CACpB,OAAqB,EACrB,MAA0B;IAE1B,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEvD,yDAAyD;IACzD,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO;YACL;gBACE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,UAAU;gBAC3B,KAAK,EAAE,SAAS;gBAChB,gBAAgB,EAAE,OAAO,CAAC,OAAO;gBACjC,iBAAiB,EAAE,IAAI,EAAE,sCAAsC;gBAC/D,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;gBACrD,cAAc,EACZ,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;gBACvE,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,OAAO,CAAC,SAAS;oBACtB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;oBACtD,CAAC,CAAC,IAAI;aACT;SACF,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,MAAM,WAAW,GACf,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1F,MAAM,UAAU,GACd,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvF,qDAAqD;IACrD,+CAA+C;IAC/C,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,eAAe,GAA2B,EAAE,CAAC;QAEnD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,+CAA+C;QAC/C,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,aAAa,IAAI,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvD,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjF,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YACrE,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;YAC1D,gBAAgB,EAAE,WAAW;YAC7B,iBAAiB,EAAE,IAAI;YACvB,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;YACrD,cAAc,EACZ,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;YACvE,eAAe;YACf,KAAK,EAAE,OAAO,CAAC,SAAS;gBACtB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC5E,CAAC,CAAC,IAAI;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,YAA0B,EAC1B,SAA6B,oCAAqB;IAElD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAE/C,wFAAwF;IACxF,+EAA+E;IAC/E,6BAA6B;IAC7B,MAAM,UAAU,GAAqB;QACnC,eAAe,EAAE,WAAW,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QAC5E,eAAe,EAAE,WAAW,CAC1B,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,YAAY,EAC/C,MAAM,CAAC,YAAY,CACpB;KACF,CAAC;IAEF,qBAAqB;IACrB,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACzC,8BAA8B;YAC9B,IAAI,MAAM,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS;QAC1C,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC;IAET,OAAO;QACL,wCAAwC;QACxC,EAAE,EAAE,SAAS,YAAY,CAAC,EAAE,EAAE;QAC9B,MAAM;QACN,KAAK,EAAE,YAAY,CAAC,IAAI;QACxB,WAAW,EAAE,EAAE,EAAE,wCAAwC;QACzD,eAAe,EAAE,EAAE,EAAE,wCAAwC;QAC7D,MAAM,EAAE,YAAY,CAAC,KAAK;QAC1B,WAAW,EAAE,EAAE,EAAE,wCAAwC;QACzD,IAAI,EAAE,EAAE,EAAE,wCAAwC;QAClD,aAAa;QACb,MAAM;QACN,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC;QACnC,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC;QAC7C,UAAU;QAEV,uCAAuC;QACvC,OAAO,EAAE,YAAY,CAAC,EAAE;QACxB,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,IAAI;QACnC,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,IAAI;QAC3C,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;QACnD,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,aAAa,EAAE,YAAY,CAAC,KAAK;QACjC,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,EAAE;QACzC,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;QACjC,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,EAAE,YAAY,CAAC,GAAG,IAAI,EAAE;QAC5B,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,EAAE;QACzC,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,QAAQ,EAAE,YAAY,CAAC,GAAG;QAC1B,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,IAAI;KACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,uBAAuB;IACvB,2BAA2B;IAC3B,cAAc;IACd,eAAe,EAAE,wBAAwB;CAC1C,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,YAAY,CAAC,MAAoB;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CACtC,aAAkD,EAClD,cAAsB,CAAC,EACvB,uBAA+B,EAAE,EACjC,SAA6B,oCAAqB;IAElD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IAEtC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/D,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,WAAW;QACxB,eAAe,EAAE,oBAAoB;QACrC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;QAC7C,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAC1C,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW;KAC1C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,aAA6B,EAC7B,SAA6B,oCAAqB;IAElD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,UAAuC,EACvC,IAAoC;IAEpC,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,4BAA4B,CAC1C,aAAsD,EACtD,SAA6B,oCAAqB;IAElD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IAEtC,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,yBAAyB,CAAC,CAAC,EAAE,UAAU,CAAC,CACzC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,yBAAyB,CAAC,CAAC,EAAE,OAAO,CAAC,CACtC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/C,yBAAyB,CAAC,CAAC,EAAE,OAAO,CAAC,CACtC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5C,yBAAyB,CAAC,CAAC,EAAE,MAAM,CAAC,CACrC,CAAC;IAEF,uEAAuE;IACvE,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;IAErE,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAC3B,CAAC;IAEF,OAAO;QACL,WAAW;QACX,UAAU;QACV,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW;KACpD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,aAAkD;IAElD,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizzy.service.d.ts","sourceRoot":"","sources":["../../../src/integrations/search/wizzy.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAoB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"wizzy.service.d.ts","sourceRoot":"","sources":["../../../src/integrations/search/wizzy.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAoB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAElB,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAEvB;;;;;GAKG;AACH,qBACa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAMxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAMjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAqBlC;IAIF,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAQnD;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IA2DpE;;;;;;;OAOG;IACG,cAAc,CAClB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAwBpE;;;;;;OAMG;IACG,YAAY,CAChB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAQxE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAClC,mBAAmB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CACzD;IAID;;OAEG;YACW,WAAW;IAyEzB;;OAEG;YACW,UAAU;IAgExB;;OAEG;IACH,OAAO,CAAC,cAAc;CAqBvB"}
|
|
@@ -25,6 +25,7 @@ let WizzyService = class WizzyService {
|
|
|
25
25
|
// filterProducts(); we log dropped keys so a legitimate-but-undeclared field
|
|
26
26
|
// surfaces in logs instead of failing silently (safety net).
|
|
27
27
|
ALLOWED_FILTER_KEYS = [
|
|
28
|
+
'q',
|
|
28
29
|
'categories',
|
|
29
30
|
'brands',
|
|
30
31
|
'genders',
|
|
@@ -36,12 +37,20 @@ let WizzyService = class WizzyService {
|
|
|
36
37
|
'price',
|
|
37
38
|
'discountPercentage',
|
|
38
39
|
'avgRatings',
|
|
40
|
+
'attributes',
|
|
39
41
|
'sort',
|
|
40
42
|
'facets',
|
|
41
43
|
'page',
|
|
42
44
|
'productsCount',
|
|
43
45
|
'swatch',
|
|
46
|
+
'type',
|
|
47
|
+
'searchedKey',
|
|
44
48
|
];
|
|
49
|
+
// Wizzy leaves its `price` field at 0; the real price lives in `sellingPrice`,
|
|
50
|
+
// so a `sort` by `price` is meaningless. Remap it to the populated field.
|
|
51
|
+
remapSort(sort) {
|
|
52
|
+
return sort?.map((s) => s.field === 'price' ? { ...s, field: 'sellingPrice' } : s);
|
|
53
|
+
}
|
|
45
54
|
/**
|
|
46
55
|
* Configure the service for a specific brand
|
|
47
56
|
*/
|
|
@@ -78,6 +87,8 @@ let WizzyService = class WizzyService {
|
|
|
78
87
|
// JSON.stringify, so this preserves the exact behaviour for real requests.
|
|
79
88
|
// page/productsCount are clamped to sane upper bounds (safety net).
|
|
80
89
|
const safeFilters = {
|
|
90
|
+
// Search-mode keyword — scopes filter/sort/paginate to the searched term.
|
|
91
|
+
q: filters.q,
|
|
81
92
|
categories: filters.categories,
|
|
82
93
|
brands: filters.brands,
|
|
83
94
|
genders: filters.genders,
|
|
@@ -89,7 +100,9 @@ let WizzyService = class WizzyService {
|
|
|
89
100
|
price: filters.price,
|
|
90
101
|
discountPercentage: filters.discountPercentage,
|
|
91
102
|
avgRatings: filters.avgRatings,
|
|
92
|
-
|
|
103
|
+
// Colour/product-type selections travel on this channel, not top-level.
|
|
104
|
+
attributes: filters.attributes,
|
|
105
|
+
sort: this.remapSort(filters.sort),
|
|
93
106
|
facets: filters.facets,
|
|
94
107
|
page: filters.page !== undefined
|
|
95
108
|
? Math.min(filters.page, this.MAX_PAGE)
|
|
@@ -97,8 +110,14 @@ let WizzyService = class WizzyService {
|
|
|
97
110
|
productsCount: filters.productsCount !== undefined
|
|
98
111
|
? Math.min(filters.productsCount, this.MAX_PRODUCTS_COUNT)
|
|
99
112
|
: undefined,
|
|
100
|
-
//
|
|
101
|
-
|
|
113
|
+
// Return every colourway per product for the card's colour dots. Keyed by
|
|
114
|
+
// the Wizzy colour attribute (`product_Basic Colour`); the legacy `colors`
|
|
115
|
+
// key returns nothing.
|
|
116
|
+
swatch: filters.swatch ?? [{ key: 'product_Basic Colour' }],
|
|
117
|
+
// Analytics attribution tag (DEFAULT / CATEGORY_PAGE / ...) and the
|
|
118
|
+
// search-session key echoed from /products/search.
|
|
119
|
+
type: filters.type,
|
|
120
|
+
searchedKey: filters.searchedKey,
|
|
102
121
|
};
|
|
103
122
|
return this.postRequest('/products/filter', {
|
|
104
123
|
filters: JSON.stringify(safeFilters),
|
|
@@ -121,13 +140,14 @@ let WizzyService = class WizzyService {
|
|
|
121
140
|
body.productsCount = String(Math.min(params.productsCount, this.MAX_PRODUCTS_COUNT));
|
|
122
141
|
}
|
|
123
142
|
if (params.sort) {
|
|
124
|
-
body.sort = JSON.stringify(params.sort);
|
|
143
|
+
body.sort = JSON.stringify(this.remapSort(params.sort));
|
|
125
144
|
}
|
|
126
145
|
if (params.facets) {
|
|
127
146
|
body.facets = JSON.stringify(params.facets);
|
|
128
147
|
}
|
|
129
|
-
//
|
|
130
|
-
|
|
148
|
+
// Return every colourway per product for the card's colour dots. Keyed by
|
|
149
|
+
// the Wizzy colour attribute (`product_Basic Colour`); `colors` returns none.
|
|
150
|
+
body.swatch = JSON.stringify(params.swatch ?? [{ key: 'product_Basic Colour' }]);
|
|
131
151
|
return this.postRequest('/products/search', body);
|
|
132
152
|
}
|
|
133
153
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizzy.service.js","sourceRoot":"","sources":["../../../src/integrations/search/wizzy.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,gDAA6C;
|
|
1
|
+
{"version":3,"file":"wizzy.service.js","sourceRoot":"","sources":["../../../src/integrations/search/wizzy.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,gDAA6C;AAc7C;;;;;GAKG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAY;IACf,MAAM,GAAuB,IAAI,CAAC;IAClC,KAAK,GAAW,EAAE,CAAC;IACV,cAAc,GAAG,KAAK,CAAC;IAExC,2EAA2E;IAC3E,mEAAmE;IACnE,6EAA6E;IAC7E,gFAAgF;IAC/D,kBAAkB,GAAG,GAAG,CAAC;IACzB,QAAQ,GAAG,IAAI,CAAC;IAEjC,0EAA0E;IAC1E,gEAAgE;IAChE,6EAA6E;IAC7E,6DAA6D;IAC5C,mBAAmB,GAAG;QACrC,GAAG;QACH,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,UAAU;QACV,SAAS;QACT,cAAc;QACd,OAAO;QACP,oBAAoB;QACpB,YAAY;QACZ,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,eAAe;QACf,QAAQ;QACR,MAAM;QACN,aAAa;KACd,CAAC;IAEF,+EAA+E;IAC/E,0EAA0E;IAClE,SAAS,CAAC,IAAwB;QACxC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAa,EAAE,MAAmB;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,OAA2B;QAE3B,4EAA4E;QAC5E,kEAAkE;QAClE,uEAAuE;QACvE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CACnD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CACjD,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,eAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;gBACrD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,oEAAoE;QACpE,MAAM,WAAW,GAAuB;YACtC,0EAA0E;YAC1E,CAAC,EAAE,OAAO,CAAC,CAAC;YACZ,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,wEAAwE;YACxE,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EACF,OAAO,CAAC,IAAI,KAAK,SAAS;gBACxB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACvC,CAAC,CAAC,SAAS;YACf,aAAa,EACX,OAAO,CAAC,aAAa,KAAK,SAAS;gBACjC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC;gBAC1D,CAAC,CAAC,SAAS;YACf,0EAA0E;YAC1E,2EAA2E;YAC3E,uBAAuB;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE,CAAC;YAC3D,oEAAoE;YACpE,mDAAmD;YACnD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;YAC1C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAClB,MAA0B;QAE1B,MAAM,IAAI,GAA2B;YACnC,CAAC,EAAE,MAAM,CAAC,CAAC;SACZ,CAAC;QAEF,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,yEAAyE;YACzE,IAAI,CAAC,aAAa,GAAG,MAAM,CACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CACxD,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,0EAA0E;QAC1E,8EAA8E;QAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAEjF,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAChB,MAAgC;QAEhC,MAAM,IAAI,GAA2B,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QAGvB,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,IAAY,EACZ,IAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,iCAAiC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAC5C,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,mCAAmC;YACnD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YACjC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAChC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAC1B,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAC3C,CAAC;YAEF,yBAAyB;YACzB,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAE5D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAC;YAEF,8EAA8E;YAC9E,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;iBAClD,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI;gBACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;oBAClE,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAI,IAAY;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,iCAAiC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAC5C,MAAM,OAAO,GAA2B;YACtC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YACjC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAChC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAC1B,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAC3C,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;iBAClD,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBACvC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI;gBACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;oBAClE,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,MAAc,EACd,IAAgE;QAEhE,MAAM,QAAQ,GAA2B;YACvC,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,gBAAgB;SACtB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;QAE7C,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,eAAe;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,QAAQ,UAAU,EAAE;YAC7C,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;CACF,CAAA;AApWY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CAoWxB"}
|
|
@@ -28,6 +28,13 @@ export interface WizzyFilterRequest {
|
|
|
28
28
|
price?: WizzyRangeFilter[];
|
|
29
29
|
discountPercentage?: WizzyRangeFilter[];
|
|
30
30
|
avgRatings?: WizzyRangeFilter[];
|
|
31
|
+
/**
|
|
32
|
+
* Selected attribute-facet values, keyed by Wizzy attribute id →
|
|
33
|
+
* chosen values, e.g. `{ "product_Basic Colour": ["Navy"],
|
|
34
|
+
* "product_product_type": ["Polo"] }`. This is the channel colour and
|
|
35
|
+
* product-type selections travel on (they are not top-level fields).
|
|
36
|
+
*/
|
|
37
|
+
attributes?: Record<string, string[]>;
|
|
31
38
|
page?: number;
|
|
32
39
|
productsCount?: number;
|
|
33
40
|
sort?: WizzySortOption[];
|
|
@@ -52,6 +59,14 @@ export interface WizzySortOption {
|
|
|
52
59
|
}
|
|
53
60
|
export interface WizzyFacetRequest {
|
|
54
61
|
key: string;
|
|
62
|
+
/**
|
|
63
|
+
* Predefined ranges for a numeric facet (e.g. sellingPrice). Wizzy echoes each
|
|
64
|
+
* back as a facet value keyed "from-to" (e.g. "0-2500"). Omit for list facets.
|
|
65
|
+
*/
|
|
66
|
+
buckets?: Array<{
|
|
67
|
+
from: number;
|
|
68
|
+
to: number;
|
|
69
|
+
}>;
|
|
55
70
|
}
|
|
56
71
|
/**
|
|
57
72
|
* Keyword-search request for POST /products/search.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizzy.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/search/wizzy.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,eAAe,GACf,sBAAsB,GACtB,qBAAqB,GACrB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACxC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,oFAAoF;IACpF,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"wizzy.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/search/wizzy.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Injects the authenticated customer resolved by {@link CustomerAuthGuard}
|
|
3
|
-
* (`req.customer`), or `undefined` when the request is unauthenticated and
|
|
4
|
-
* enforcement is disabled. Works in both GraphQL resolvers and REST controllers.
|
|
5
|
-
*/
|
|
6
|
-
export declare const CurrentCustomer: (...dataOrPipes: unknown[]) => ParameterDecorator;
|
|
7
|
-
//# sourceMappingURL=current-customer.decorator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"current-customer.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/current-customer.decorator.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,eAAe,mDAU3B,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CurrentCustomer = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
-
/**
|
|
7
|
-
* Injects the authenticated customer resolved by {@link CustomerAuthGuard}
|
|
8
|
-
* (`req.customer`), or `undefined` when the request is unauthenticated and
|
|
9
|
-
* enforcement is disabled. Works in both GraphQL resolvers and REST controllers.
|
|
10
|
-
*/
|
|
11
|
-
exports.CurrentCustomer = (0, common_1.createParamDecorator)((_data, context) => {
|
|
12
|
-
let req;
|
|
13
|
-
if (context.getType() === 'graphql') {
|
|
14
|
-
req = graphql_1.GqlExecutionContext.create(context).getContext()?.req;
|
|
15
|
-
}
|
|
16
|
-
else if (context.getType() === 'http') {
|
|
17
|
-
req = context.switchToHttp().getRequest();
|
|
18
|
-
}
|
|
19
|
-
return req?.customer;
|
|
20
|
-
});
|
|
21
|
-
//# sourceMappingURL=current-customer.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"current-customer.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/current-customer.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AACxE,6CAAsE;AAGtE;;;;GAIG;AACU,QAAA,eAAe,GAAG,IAAA,6BAAoB,EACjD,CAAC,KAAc,EAAE,OAAyB,EAAqC,EAAE;IAC/E,IAAI,GAAqD,CAAC;IAC1D,IAAI,OAAO,CAAC,OAAO,EAAkB,KAAK,SAAS,EAAE,CAAC;QACpD,GAAG,GAAG,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC;IAC9D,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;QACxC,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,EAAE,QAAQ,CAAC;AACvB,CAAC,CACF,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metadata key marking a resolver/route as requiring an authenticated customer.
|
|
3
|
-
*/
|
|
4
|
-
export declare const REQUIRE_CUSTOMER_KEY = "require_customer";
|
|
5
|
-
/**
|
|
6
|
-
* Metadata key marking a resolver/route as customer-aware but not customer-gated:
|
|
7
|
-
* the guard attaches `req.customer` when a valid token is present, but never blocks
|
|
8
|
-
* the request when it is absent (used for endpoints that also serve anonymous/guest
|
|
9
|
-
* traffic, e.g. wishlist by guest session).
|
|
10
|
-
*/
|
|
11
|
-
export declare const OPTIONAL_CUSTOMER_KEY = "optional_customer";
|
|
12
|
-
/**
|
|
13
|
-
* Marks a GraphQL resolver or REST route as customer-scoped. The globally
|
|
14
|
-
* registered {@link CustomerAuthGuard} validates the Shopify customerAccessToken
|
|
15
|
-
* and attaches `req.customer` for handlers carrying this marker; handlers without it
|
|
16
|
-
* (public catalog, webhooks, health) are passed through untouched.
|
|
17
|
-
*/
|
|
18
|
-
export declare const RequireCustomer: () => import("@nestjs/common").CustomDecorator<string>;
|
|
19
|
-
/**
|
|
20
|
-
* Marks a route as customer-aware but still reachable anonymously. The guard
|
|
21
|
-
* attaches `req.customer` when a valid token is supplied and otherwise lets the
|
|
22
|
-
* request through, leaving the handler to decide how to treat unauthenticated calls.
|
|
23
|
-
*/
|
|
24
|
-
export declare const OptionalCustomer: () => import("@nestjs/common").CustomDecorator<string>;
|
|
25
|
-
//# sourceMappingURL=require-customer.decorator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"require-customer.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/require-customer.decorator.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,wDAAgD,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,wDAAiD,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OptionalCustomer = exports.RequireCustomer = exports.OPTIONAL_CUSTOMER_KEY = exports.REQUIRE_CUSTOMER_KEY = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
/**
|
|
6
|
-
* Metadata key marking a resolver/route as requiring an authenticated customer.
|
|
7
|
-
*/
|
|
8
|
-
exports.REQUIRE_CUSTOMER_KEY = 'require_customer';
|
|
9
|
-
/**
|
|
10
|
-
* Metadata key marking a resolver/route as customer-aware but not customer-gated:
|
|
11
|
-
* the guard attaches `req.customer` when a valid token is present, but never blocks
|
|
12
|
-
* the request when it is absent (used for endpoints that also serve anonymous/guest
|
|
13
|
-
* traffic, e.g. wishlist by guest session).
|
|
14
|
-
*/
|
|
15
|
-
exports.OPTIONAL_CUSTOMER_KEY = 'optional_customer';
|
|
16
|
-
/**
|
|
17
|
-
* Marks a GraphQL resolver or REST route as customer-scoped. The globally
|
|
18
|
-
* registered {@link CustomerAuthGuard} validates the Shopify customerAccessToken
|
|
19
|
-
* and attaches `req.customer` for handlers carrying this marker; handlers without it
|
|
20
|
-
* (public catalog, webhooks, health) are passed through untouched.
|
|
21
|
-
*/
|
|
22
|
-
const RequireCustomer = () => (0, common_1.SetMetadata)(exports.REQUIRE_CUSTOMER_KEY, true);
|
|
23
|
-
exports.RequireCustomer = RequireCustomer;
|
|
24
|
-
/**
|
|
25
|
-
* Marks a route as customer-aware but still reachable anonymously. The guard
|
|
26
|
-
* attaches `req.customer` when a valid token is supplied and otherwise lets the
|
|
27
|
-
* request through, leaving the handler to decide how to treat unauthenticated calls.
|
|
28
|
-
*/
|
|
29
|
-
const OptionalCustomer = () => (0, common_1.SetMetadata)(exports.OPTIONAL_CUSTOMER_KEY, true);
|
|
30
|
-
exports.OptionalCustomer = OptionalCustomer;
|
|
31
|
-
//# sourceMappingURL=require-customer.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"require-customer.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/require-customer.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAE7C;;GAEG;AACU,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,mBAAmB,CAAC;AAEzD;;;;;GAKG;AACI,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,4BAAoB,EAAE,IAAI,CAAC,CAAC;AAAhE,QAAA,eAAe,mBAAiD;AAE7E;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,6BAAqB,EAAE,IAAI,CAAC,CAAC;AAAlE,QAAA,gBAAgB,oBAAkD"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
-
import { Reflector } from '@nestjs/core';
|
|
3
|
-
import { ConfigService } from '../../config/config.service';
|
|
4
|
-
import { IntegrationFactory } from '../../integrations/integration.factory';
|
|
5
|
-
/**
|
|
6
|
-
* Whether customer authentication is enforced for a brand. Enforcement is on when
|
|
7
|
-
* `CUSTOMER_AUTH_ENFORCE=true` (global) or the brand sets
|
|
8
|
-
* `features.customerAuthEnforce`. Shared so guards and brand controllers agree.
|
|
9
|
-
*/
|
|
10
|
-
export declare function isCustomerAuthEnforced(configService: ConfigService, brand?: string): boolean;
|
|
11
|
-
/**
|
|
12
|
-
* The authenticated customer resolved from a validated Shopify Storefront
|
|
13
|
-
* customerAccessToken. Attached to the request as `req.customer` by
|
|
14
|
-
* {@link CustomerAuthGuard} and read via the `@CurrentCustomer()` decorator.
|
|
15
|
-
*/
|
|
16
|
-
export interface AuthenticatedCustomer {
|
|
17
|
-
id: string;
|
|
18
|
-
phone: string | null;
|
|
19
|
-
email: string | null;
|
|
20
|
-
name: string | null;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* CustomerAuthGuard
|
|
24
|
-
*
|
|
25
|
-
* Authenticates the caller by validating a Shopify Storefront customerAccessToken
|
|
26
|
-
* (the same mechanism the customer API already uses via `getCustomer`). On success
|
|
27
|
-
* it attaches `req.customer = { id, phone, email }` so resolvers/controllers derive
|
|
28
|
-
* identity from the verified token instead of trusting a client-supplied
|
|
29
|
-
* `mobile`/`orderId`/`customerId` argument.
|
|
30
|
-
*
|
|
31
|
-
* Token sources (in order): `Authorization: Bearer <token>`, then the
|
|
32
|
-
* `X-Shopify-Customer-Access-Token` header.
|
|
33
|
-
*
|
|
34
|
-
* Registered once as a global `APP_GUARD`. It only acts on handlers marked with
|
|
35
|
-
* `@RequireCustomer()`; everything else (public catalog, webhooks, health) passes
|
|
36
|
-
* through untouched.
|
|
37
|
-
*
|
|
38
|
-
* Enforcement is per-brand (migration-friendly): when a brand sets
|
|
39
|
-
* `features.customerAuthEnforce` (or env `CUSTOMER_AUTH_ENFORCE=true`), a missing or
|
|
40
|
-
* invalid token is rejected with 401. Otherwise the guard attaches identity when a
|
|
41
|
-
* valid token is present but does NOT block unauthenticated calls — it only logs a
|
|
42
|
-
* warning — so brands that have not migrated their clients keep working. Resolvers
|
|
43
|
-
* fall back to their legacy identifier argument only while enforcement is off.
|
|
44
|
-
*/
|
|
45
|
-
export declare class CustomerAuthGuard implements CanActivate {
|
|
46
|
-
private readonly reflector;
|
|
47
|
-
private readonly configService;
|
|
48
|
-
private readonly integrationFactory;
|
|
49
|
-
constructor(reflector: Reflector, configService: ConfigService, integrationFactory: IntegrationFactory);
|
|
50
|
-
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
51
|
-
private extractToken;
|
|
52
|
-
private getRequest;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=customer-auth.guard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"customer-auth.guard.d.ts","sourceRoot":"","sources":["../../../src/common/guards/customer-auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAQ5E;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAQ5F;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAQD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAFlB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB;IAGnD,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8D9D,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,UAAU;CASnB"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CustomerAuthGuard = void 0;
|
|
4
|
-
exports.isCustomerAuthEnforced = isCustomerAuthEnforced;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const common_1 = require("@nestjs/common");
|
|
7
|
-
const core_1 = require("@nestjs/core");
|
|
8
|
-
const graphql_1 = require("@nestjs/graphql");
|
|
9
|
-
const config_service_1 = require("../../config/config.service");
|
|
10
|
-
const integration_factory_1 = require("../../integrations/integration.factory");
|
|
11
|
-
const require_customer_decorator_1 = require("../decorators/require-customer.decorator");
|
|
12
|
-
const logger_1 = require("../logger");
|
|
13
|
-
/**
|
|
14
|
-
* Whether customer authentication is enforced for a brand. Enforcement is on when
|
|
15
|
-
* `CUSTOMER_AUTH_ENFORCE=true` (global) or the brand sets
|
|
16
|
-
* `features.customerAuthEnforce`. Shared so guards and brand controllers agree.
|
|
17
|
-
*/
|
|
18
|
-
function isCustomerAuthEnforced(configService, brand) {
|
|
19
|
-
if (process.env.CUSTOMER_AUTH_ENFORCE === 'true') {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
if (!brand) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
return configService.getBrand(brand)?.features?.customerAuthEnforce === true;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* CustomerAuthGuard
|
|
29
|
-
*
|
|
30
|
-
* Authenticates the caller by validating a Shopify Storefront customerAccessToken
|
|
31
|
-
* (the same mechanism the customer API already uses via `getCustomer`). On success
|
|
32
|
-
* it attaches `req.customer = { id, phone, email }` so resolvers/controllers derive
|
|
33
|
-
* identity from the verified token instead of trusting a client-supplied
|
|
34
|
-
* `mobile`/`orderId`/`customerId` argument.
|
|
35
|
-
*
|
|
36
|
-
* Token sources (in order): `Authorization: Bearer <token>`, then the
|
|
37
|
-
* `X-Shopify-Customer-Access-Token` header.
|
|
38
|
-
*
|
|
39
|
-
* Registered once as a global `APP_GUARD`. It only acts on handlers marked with
|
|
40
|
-
* `@RequireCustomer()`; everything else (public catalog, webhooks, health) passes
|
|
41
|
-
* through untouched.
|
|
42
|
-
*
|
|
43
|
-
* Enforcement is per-brand (migration-friendly): when a brand sets
|
|
44
|
-
* `features.customerAuthEnforce` (or env `CUSTOMER_AUTH_ENFORCE=true`), a missing or
|
|
45
|
-
* invalid token is rejected with 401. Otherwise the guard attaches identity when a
|
|
46
|
-
* valid token is present but does NOT block unauthenticated calls — it only logs a
|
|
47
|
-
* warning — so brands that have not migrated their clients keep working. Resolvers
|
|
48
|
-
* fall back to their legacy identifier argument only while enforcement is off.
|
|
49
|
-
*/
|
|
50
|
-
let CustomerAuthGuard = class CustomerAuthGuard {
|
|
51
|
-
reflector;
|
|
52
|
-
configService;
|
|
53
|
-
integrationFactory;
|
|
54
|
-
constructor(reflector, configService, integrationFactory) {
|
|
55
|
-
this.reflector = reflector;
|
|
56
|
-
this.configService = configService;
|
|
57
|
-
this.integrationFactory = integrationFactory;
|
|
58
|
-
}
|
|
59
|
-
async canActivate(context) {
|
|
60
|
-
const required = this.reflector.getAllAndOverride(require_customer_decorator_1.REQUIRE_CUSTOMER_KEY, [
|
|
61
|
-
context.getHandler(),
|
|
62
|
-
context.getClass(),
|
|
63
|
-
]);
|
|
64
|
-
const optional = this.reflector.getAllAndOverride(require_customer_decorator_1.OPTIONAL_CUSTOMER_KEY, [
|
|
65
|
-
context.getHandler(),
|
|
66
|
-
context.getClass(),
|
|
67
|
-
]);
|
|
68
|
-
if (!required && !optional) {
|
|
69
|
-
// Endpoint is not customer-scoped (public catalog, webhooks, health).
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
const req = this.getRequest(context);
|
|
73
|
-
if (!req) {
|
|
74
|
-
// Non HTTP/GraphQL execution context — nothing to authenticate.
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
const brand = req.brand ?? this.configService.getActiveBrand() ?? undefined;
|
|
78
|
-
const enforced = isCustomerAuthEnforced(this.configService, brand);
|
|
79
|
-
const token = this.extractToken(req);
|
|
80
|
-
if (token && brand) {
|
|
81
|
-
const commerce = this.integrationFactory.get(brand, 'commerce');
|
|
82
|
-
const result = commerce ? await commerce.getCustomer(token) : null;
|
|
83
|
-
if (result?.success && result.data) {
|
|
84
|
-
req.customer = {
|
|
85
|
-
id: result.data.id,
|
|
86
|
-
phone: result.data.phone,
|
|
87
|
-
email: result.data.email,
|
|
88
|
-
name: result.data.displayName ?? null,
|
|
89
|
-
};
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
// A token was supplied but did not validate. Optional endpoints treat this as
|
|
93
|
-
// an anonymous request; required endpoints reject when enforcing.
|
|
94
|
-
if (required && enforced) {
|
|
95
|
-
throw new common_1.UnauthorizedException('Invalid or expired customer token');
|
|
96
|
-
}
|
|
97
|
-
logger_1.logger.warn('Customer token present but invalid; treating as unauthenticated', { brand });
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
// No usable token.
|
|
101
|
-
if (required && enforced) {
|
|
102
|
-
throw new common_1.UnauthorizedException('Customer authentication required');
|
|
103
|
-
}
|
|
104
|
-
if (required) {
|
|
105
|
-
logger_1.logger.warn('Customer-scoped endpoint accessed without authentication (enforcement disabled)', { brand });
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
extractToken(req) {
|
|
110
|
-
const headers = req.headers ?? {};
|
|
111
|
-
const authHeader = headers['authorization'];
|
|
112
|
-
const auth = Array.isArray(authHeader) ? authHeader[0] : authHeader;
|
|
113
|
-
if (auth && auth.startsWith('Bearer ')) {
|
|
114
|
-
const token = auth.slice(7).trim();
|
|
115
|
-
if (token)
|
|
116
|
-
return token;
|
|
117
|
-
}
|
|
118
|
-
const custHeader = headers['x-shopify-customer-access-token'];
|
|
119
|
-
const cust = Array.isArray(custHeader) ? custHeader[0] : custHeader;
|
|
120
|
-
if (cust && cust.trim()) {
|
|
121
|
-
return cust.trim();
|
|
122
|
-
}
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
125
|
-
getRequest(context) {
|
|
126
|
-
if (context.getType() === 'graphql') {
|
|
127
|
-
return graphql_1.GqlExecutionContext.create(context).getContext()?.req ?? null;
|
|
128
|
-
}
|
|
129
|
-
if (context.getType() === 'http') {
|
|
130
|
-
return context.switchToHttp().getRequest();
|
|
131
|
-
}
|
|
132
|
-
return null;
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
exports.CustomerAuthGuard = CustomerAuthGuard;
|
|
136
|
-
exports.CustomerAuthGuard = CustomerAuthGuard = tslib_1.__decorate([
|
|
137
|
-
(0, common_1.Injectable)(),
|
|
138
|
-
tslib_1.__metadata("design:paramtypes", [core_1.Reflector,
|
|
139
|
-
config_service_1.ConfigService,
|
|
140
|
-
integration_factory_1.IntegrationFactory])
|
|
141
|
-
], CustomerAuthGuard);
|
|
142
|
-
//# sourceMappingURL=customer-auth.guard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"customer-auth.guard.js","sourceRoot":"","sources":["../../../src/common/guards/customer-auth.guard.ts"],"names":[],"mappings":"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"}
|