@pvh-afl/graphql 1.1.46 → 1.1.48

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,3 +1,4 @@
1
+ import { AuthUser } from '@pvh-afl/core';
1
2
  import { CustomerService } from './customer.service';
2
3
  import { Customer, CustomerLoginResult, CustomerUpdateInput } from './customer.types';
3
4
  interface GqlContext {
@@ -11,7 +12,7 @@ export declare class CustomerResolver {
11
12
  constructor(customerService: CustomerService);
12
13
  customer(ctx: GqlContext, customerAccessToken: string): Promise<Customer | null>;
13
14
  customerLogin(ctx: GqlContext, email: string, password: string): Promise<CustomerLoginResult>;
14
- customerUpdate(ctx: GqlContext, customerAccessToken: string, input: CustomerUpdateInput): Promise<Customer>;
15
+ customerUpdate(ctx: GqlContext, user: AuthUser, input: CustomerUpdateInput): Promise<Customer>;
15
16
  }
16
17
  export {};
17
18
  //# sourceMappingURL=customer.resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"customer.resolver.d.ts","sourceRoot":"","sources":["../../src/customer/customer.resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,UAAU,UAAU;IAClB,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBACa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAavD,QAAQ,CACD,GAAG,EAAE,UAAU,EAK1B,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAkBrB,aAAa,CACN,GAAG,EAAE,UAAU,EAE1B,KAAK,EAAE,MAAM,EAEb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAkBzB,cAAc,CACP,GAAG,EAAE,UAAU,EAK1B,mBAAmB,EAAE,MAAM,EAK3B,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,QAAQ,CAAC;CAIrB"}
1
+ {"version":3,"file":"customer.resolver.d.ts","sourceRoot":"","sources":["../../src/customer/customer.resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0C,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,UAAU,UAAU;IAClB,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBACa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAavD,QAAQ,CACD,GAAG,EAAE,UAAU,EAK1B,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAkBrB,aAAa,CACN,GAAG,EAAE,UAAU,EAE1B,KAAK,EAAE,MAAM,EAEb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAmBzB,cAAc,CACP,GAAG,EAAE,UAAU,EACX,IAAI,EAAE,QAAQ,EAK7B,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,QAAQ,CAAC;CAIrB"}
@@ -20,9 +20,9 @@ let CustomerResolver = class CustomerResolver {
20
20
  const brand = ctx.brand ?? ctx.req.brand;
21
21
  return this.customerService.login(brand, email, password);
22
22
  }
23
- async customerUpdate(ctx, customerAccessToken, input) {
23
+ async customerUpdate(ctx, user, input) {
24
24
  const brand = ctx.brand ?? ctx.req.brand;
25
- return this.customerService.updateProfile(brand, customerAccessToken, input);
25
+ return this.customerService.updateProfile(brand, user.customerId, input);
26
26
  }
27
27
  };
28
28
  exports.CustomerResolver = CustomerResolver;
@@ -72,27 +72,25 @@ tslib_1.__decorate([
72
72
  (0, graphql_1.Mutation)(() => customer_types_1.Customer, {
73
73
  description: `Update the logged-in customer's profile (firstName, lastName, gender, birthDate).
74
74
 
75
- The customer is identified by their Storefront customerAccessToken (from
76
- customerLogin) this proves account ownership. Only the fields provided in
77
- input are updated; omitted fields are left unchanged. firstName / lastName are
78
- written as native Shopify customer fields; gender / birthDate are written to the
79
- facts.gender / facts.birth_date customer metafields all via the Shopify Admin
80
- API in a single mutation.
75
+ Authentication: send the customer's first-party access token as an
76
+ \`Authorization: Bearer <jwt>\` header. The customer is identified from the
77
+ verified token (never from the request body), so a caller can only ever update
78
+ their own account. Only the fields provided in input are updated; omitted fields
79
+ are left unchanged. firstName / lastName are written as native Shopify customer
80
+ fields; gender / birthDate are written to the facts.gender / facts.birth_date
81
+ customer metafields — all via the Shopify Admin API in a single mutation.
81
82
 
82
83
  Returns the updated customer.`,
83
84
  }),
84
- (0, common_1.UseGuards)(core_1.TenantGuard),
85
+ (0, common_1.UseGuards)(core_1.TenantGuard, core_1.JwtAuthGuard),
85
86
  tslib_1.__param(0, (0, graphql_1.Context)()),
86
- tslib_1.__param(1, (0, graphql_1.Args)('customerAccessToken', {
87
- type: () => String,
88
- description: 'Storefront customer access token from customerLogin',
89
- })),
87
+ tslib_1.__param(1, (0, core_1.CurrentUser)()),
90
88
  tslib_1.__param(2, (0, graphql_1.Args)('input', {
91
89
  type: () => customer_types_1.CustomerUpdateInput,
92
90
  description: 'Profile fields to update',
93
91
  })),
94
92
  tslib_1.__metadata("design:type", Function),
95
- tslib_1.__metadata("design:paramtypes", [Object, String, customer_types_1.CustomerUpdateInput]),
93
+ tslib_1.__metadata("design:paramtypes", [Object, Object, customer_types_1.CustomerUpdateInput]),
96
94
  tslib_1.__metadata("design:returntype", Promise)
97
95
  ], CustomerResolver.prototype, "customerUpdate", null);
98
96
  exports.CustomerResolver = CustomerResolver = tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"customer.resolver.js","sourceRoot":"","sources":["../../src/customer/customer.resolver.ts"],"names":[],"mappings":";;;;AAAA,6CAA2E;AAC3E,2CAA2C;AAC3C,wCAA4C;AAC5C,yDAAqD;AACrD,qDAAsF;AAQ/E,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACE;IAA7B,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAa3D,AAAN,KAAK,CAAC,QAAQ,CACD,GAAe,EAK1B,mBAA2B;QAE3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACrE,CAAC;IAeK,AAAN,KAAK,CAAC,aAAa,CACN,GAAe,EAE1B,KAAa,EAEb,QAAgB;QAEhB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAeK,AAAN,KAAK,CAAC,cAAc,CACP,GAAe,EAK1B,mBAA2B,EAK3B,KAA0B;QAE1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;CACF,CAAA;AA/EY,4CAAgB;AAcrB;IAXL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,yBAAQ,EAAE;QACrB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE;;;;;;2DAM0C;KACxD,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,CAAC;IAEpB,mBAAA,IAAA,iBAAO,GAAE,CAAA;IACT,mBAAA,IAAA,cAAI,EAAC,qBAAqB,EAAE;QAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM;QAClB,WAAW,EAAE,qDAAqD;KACnE,CAAC,CAAA;;;;gDAKH;AAeK;IAbL,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,oCAAmB,EAAE;QACnC,WAAW,EAAE;;;;;;;;;6BASY;KAC1B,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,CAAC;IAEpB,mBAAA,IAAA,iBAAO,GAAE,CAAA;IACT,mBAAA,IAAA,cAAI,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAEpE,mBAAA,IAAA,cAAI,EAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAA;;;;qDAK5E;AAeK;IAbL,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,yBAAQ,EAAE;QACxB,WAAW,EAAE;;;;;;;;;8BASa;KAC3B,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,CAAC;IAEpB,mBAAA,IAAA,iBAAO,GAAE,CAAA;IACT,mBAAA,IAAA,cAAI,EAAC,qBAAqB,EAAE;QAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM;QAClB,WAAW,EAAE,qDAAqD;KACnE,CAAC,CAAA;IAED,mBAAA,IAAA,cAAI,EAAC,OAAO,EAAE;QACb,IAAI,EAAE,GAAG,EAAE,CAAC,oCAAmB;QAC/B,WAAW,EAAE,0BAA0B;KACxC,CAAC,CAAA;;6DACK,oCAAmB;;sDAI3B;2BA9EU,gBAAgB;IAD5B,IAAA,kBAAQ,GAAE;6CAEqC,kCAAe;GADlD,gBAAgB,CA+E5B"}
1
+ {"version":3,"file":"customer.resolver.js","sourceRoot":"","sources":["../../src/customer/customer.resolver.ts"],"names":[],"mappings":";;;;AAAA,6CAA2E;AAC3E,2CAA2C;AAC3C,wCAAiF;AACjF,yDAAqD;AACrD,qDAAsF;AAQ/E,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACE;IAA7B,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAa3D,AAAN,KAAK,CAAC,QAAQ,CACD,GAAe,EAK1B,mBAA2B;QAE3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACrE,CAAC;IAeK,AAAN,KAAK,CAAC,aAAa,CACN,GAAe,EAE1B,KAAa,EAEb,QAAgB;QAEhB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAgBK,AAAN,KAAK,CAAC,cAAc,CACP,GAAe,EACX,IAAc,EAK7B,KAA0B;QAE1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;CACF,CAAA;AA5EY,4CAAgB;AAcrB;IAXL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,yBAAQ,EAAE;QACrB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE;;;;;;2DAM0C;KACxD,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,CAAC;IAEpB,mBAAA,IAAA,iBAAO,GAAE,CAAA;IACT,mBAAA,IAAA,cAAI,EAAC,qBAAqB,EAAE;QAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM;QAClB,WAAW,EAAE,qDAAqD;KACnE,CAAC,CAAA;;;;gDAKH;AAeK;IAbL,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,oCAAmB,EAAE;QACnC,WAAW,EAAE;;;;;;;;;6BASY;KAC1B,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,CAAC;IAEpB,mBAAA,IAAA,iBAAO,GAAE,CAAA;IACT,mBAAA,IAAA,cAAI,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAEpE,mBAAA,IAAA,cAAI,EAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAA;;;;qDAK5E;AAgBK;IAdL,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,yBAAQ,EAAE;QACxB,WAAW,EAAE;;;;;;;;;;8BAUa;KAC3B,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,EAAE,mBAAY,CAAC;IAElC,mBAAA,IAAA,iBAAO,GAAE,CAAA;IACT,mBAAA,IAAA,kBAAW,GAAE,CAAA;IACb,mBAAA,IAAA,cAAI,EAAC,OAAO,EAAE;QACb,IAAI,EAAE,GAAG,EAAE,CAAC,oCAAmB;QAC/B,WAAW,EAAE,0BAA0B;KACxC,CAAC,CAAA;;6DACK,oCAAmB;;sDAI3B;2BA3EU,gBAAgB;IAD5B,IAAA,kBAAQ,GAAE;6CAEqC,kCAAe;GADlD,gBAAgB,CA4E5B"}
@@ -1,9 +1,10 @@
1
- import { IntegrationFactory, ShopifyAdminService } from '@pvh-afl/core';
1
+ import { IntegrationFactory, ShopifyAdminService, CapillaryCouponService } from '@pvh-afl/core';
2
2
  import { Customer, CustomerLoginResult, CustomerUpdateInput } from './customer.types';
3
3
  export declare class CustomerService {
4
4
  private readonly integrationFactory;
5
5
  private readonly adminService;
6
- constructor(integrationFactory: IntegrationFactory, adminService: ShopifyAdminService);
6
+ private readonly capillaryService;
7
+ constructor(integrationFactory: IntegrationFactory, adminService: ShopifyAdminService, capillaryService: CapillaryCouponService);
7
8
  private getCommerceService;
8
9
  /**
9
10
  * Map a raw metafield gender value onto the Gender enum. Returns undefined for
@@ -35,12 +36,15 @@ export declare class CustomerService {
35
36
  */
36
37
  getProfile(brand: string, customerAccessToken: string): Promise<Customer | null>;
37
38
  /**
38
- * Update the logged-in customer's profile "facts" (gender, birth_date).
39
+ * Update the logged-in customer's profile (firstName, lastName, gender,
40
+ * birth_date).
39
41
  *
40
- * The customer is identified by their Storefront access token: we resolve the
41
- * token to a customer (proving ownership) and then write the metafields via
42
- * the Admin API. Returns the updated customer.
42
+ * The customer is identified by the `customerId` from their verified
43
+ * first-party JWT (resolved by JwtAuthGuard, never from client input), so
44
+ * ownership is implicit: a caller can only ever update their own account and
45
+ * CustomerUpdateInput carries no customer id. We write native fields and the
46
+ * facts metafields via the Admin API, then re-read the persisted state.
43
47
  */
44
- updateProfile(brand: string, customerAccessToken: string, input: CustomerUpdateInput): Promise<Customer>;
48
+ updateProfile(brand: string, customerId: string, input: CustomerUpdateInput): Promise<Customer>;
45
49
  }
46
50
  //# sourceMappingURL=customer.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"customer.service.d.ts","sourceRoot":"","sources":["../../src/customer/customer.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAGlB,mBAAmB,EAGpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAE1B,qBACa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,mBAAmB;IAGpD,OAAO,CAAC,kBAAkB;IAQ1B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAOhB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAalB;;;;;;;;OAQG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAsC/B;;;;;;;OAOG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAkB3B;;;;;;OAMG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,EAC3B,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,QAAQ,CAAC;CAqCrB"}
1
+ {"version":3,"file":"customer.service.d.ts","sourceRoot":"","sources":["../../src/customer/customer.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAGlB,mBAAmB,EACnB,sBAAsB,EAGvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAE1B,qBACa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAFhB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,mBAAmB,EACjC,gBAAgB,EAAE,sBAAsB;IAG3D,OAAO,CAAC,kBAAkB;IAQ1B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAOhB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAalB;;;;;;;;OAQG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAyD/B;;;;;;;OAOG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAkB3B;;;;;;;;;OASG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,QAAQ,CAAC;CAgCrB"}
@@ -8,9 +8,11 @@ const customer_types_1 = require("./customer.types");
8
8
  let CustomerService = class CustomerService {
9
9
  integrationFactory;
10
10
  adminService;
11
- constructor(integrationFactory, adminService) {
11
+ capillaryService;
12
+ constructor(integrationFactory, adminService, capillaryService) {
12
13
  this.integrationFactory = integrationFactory;
13
14
  this.adminService = adminService;
15
+ this.capillaryService = capillaryService;
14
16
  }
15
17
  getCommerceService(brand) {
16
18
  const commerce = this.integrationFactory.get(brand, 'commerce');
@@ -75,11 +77,27 @@ let CustomerService = class CustomerService {
75
77
  // Fetch profile "facts" (gender, birth_date) via the Admin API. The
76
78
  // Storefront customer query does not expose these custom metafields.
77
79
  const facts = await this.adminService.getCustomerFacts(brand, customer.id);
80
+ // Check Capillary membership by the verified phone; a Capillary outage must
81
+ // not fail login, so treat any lookup error as "not registered".
82
+ let capillaryCustomer = null;
83
+ if (customer.phone) {
84
+ try {
85
+ capillaryCustomer = await this.capillaryService.getCapillaryCustomer(brand, customer.phone);
86
+ }
87
+ catch (error) {
88
+ core_1.logger.warn('Capillary membership check failed during login', {
89
+ brand,
90
+ error: error instanceof Error ? error.message : 'Unknown',
91
+ });
92
+ }
93
+ }
78
94
  core_1.logger.info('Customer logged in', { brand, customerId: customer.id });
79
95
  return {
80
96
  customerAccessToken: accessToken,
81
97
  expiresAt,
82
98
  customer: this.toCustomer(customer, facts),
99
+ registeredInCapillary: capillaryCustomer != null,
100
+ capillaryDetails: capillaryCustomer ?? undefined,
83
101
  };
84
102
  }
85
103
  /**
@@ -105,21 +123,17 @@ let CustomerService = class CustomerService {
105
123
  return this.toCustomer(customer, facts);
106
124
  }
107
125
  /**
108
- * Update the logged-in customer's profile "facts" (gender, birth_date).
126
+ * Update the logged-in customer's profile (firstName, lastName, gender,
127
+ * birth_date).
109
128
  *
110
- * The customer is identified by their Storefront access token: we resolve the
111
- * token to a customer (proving ownership) and then write the metafields via
112
- * the Admin API. Returns the updated customer.
129
+ * The customer is identified by the `customerId` from their verified
130
+ * first-party JWT (resolved by JwtAuthGuard, never from client input), so
131
+ * ownership is implicit: a caller can only ever update their own account and
132
+ * CustomerUpdateInput carries no customer id. We write native fields and the
133
+ * facts metafields via the Admin API, then re-read the persisted state.
113
134
  */
114
- async updateProfile(brand, customerAccessToken, input) {
115
- const commerce = this.getCommerceService(brand);
116
- // Resolve the token to a customer — this proves the caller owns the account.
117
- const customerResult = await commerce.getCustomer(customerAccessToken);
118
- if (!customerResult.success || !customerResult.data) {
119
- throw new Error(customerResult.error?.message ?? 'Invalid or expired customer access token');
120
- }
121
- const customer = customerResult.data;
122
- const updateResult = await this.adminService.updateCustomer(brand, customer.id, {
135
+ async updateProfile(brand, customerId, input) {
136
+ const updateResult = await this.adminService.updateCustomer(brand, customerId, {
123
137
  firstName: input.firstName,
124
138
  lastName: input.lastName,
125
139
  gender: input.gender,
@@ -128,15 +142,23 @@ let CustomerService = class CustomerService {
128
142
  if (!updateResult.success) {
129
143
  throw new Error(updateResult.error ?? 'Failed to update customer profile');
130
144
  }
131
- // Re-read the persisted state so the response is authoritative: names and
132
- // the Shopify-derived displayName from Storefront, facts from Admin. Falls
133
- // back to the pre-update customer if the refetch fails.
145
+ // Re-read the persisted state so the response is authoritative: native
146
+ // fields + Shopify-derived displayName and the facts metafields, both via
147
+ // the Admin API (there is no Storefront token in the JWT flow). Fall back to
148
+ // the submitted input if the profile refetch fails.
134
149
  const [refreshed, updatedFacts] = await Promise.all([
135
- commerce.getCustomer(customerAccessToken),
136
- this.adminService.getCustomerFacts(brand, customer.id),
150
+ this.adminService.getCustomer(brand, customerId),
151
+ this.adminService.getCustomerFacts(brand, customerId),
137
152
  ]);
138
- const fresh = refreshed.success && refreshed.data ? refreshed.data : customer;
139
- core_1.logger.info('Customer profile updated', { brand, customerId: customer.id });
153
+ const fresh = refreshed ?? {
154
+ id: customerId,
155
+ email: null,
156
+ firstName: input.firstName ?? null,
157
+ lastName: input.lastName ?? null,
158
+ phone: null,
159
+ displayName: [input.firstName, input.lastName].filter(Boolean).join(' '),
160
+ };
161
+ core_1.logger.info('Customer profile updated', { brand, customerId });
140
162
  return this.toCustomer(fresh, updatedFacts);
141
163
  }
142
164
  };
@@ -144,6 +166,7 @@ exports.CustomerService = CustomerService;
144
166
  exports.CustomerService = CustomerService = tslib_1.__decorate([
145
167
  (0, common_1.Injectable)(),
146
168
  tslib_1.__metadata("design:paramtypes", [core_1.IntegrationFactory,
147
- core_1.ShopifyAdminService])
169
+ core_1.ShopifyAdminService,
170
+ core_1.CapillaryCouponService])
148
171
  ], CustomerService);
149
172
  //# sourceMappingURL=customer.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"customer.service.js","sourceRoot":"","sources":["../../src/customer/customer.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"customer.service.js","sourceRoot":"","sources":["../../src/customer/customer.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,wCAQuB;AACvB,qDAK0B;AAGnB,IAAM,eAAe,GAArB,MAAM,eAAe;IAEP;IACA;IACA;IAHnB,YACmB,kBAAsC,EACtC,YAAiC,EACjC,gBAAwC;QAFxC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,iBAAY,GAAZ,YAAY,CAAqB;QACjC,qBAAgB,GAAhB,gBAAgB,CAAwB;IACxD,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,CAAC,kDAAkD,KAAK,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,QAAuC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,KAAc;QAC7B,IAAI,KAAK,KAAK,uBAAM,CAAC,IAAI,IAAI,KAAK,KAAK,uBAAM,CAAC,MAAM,EAAE,CAAC;YACrD,OAAO,KAAe,CAAC;QACzB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,QAA0B,EAAE,KAAoB;QACjE,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,SAAS;YAClC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,SAAS;YAC1C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;YACxC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,SAAS;YAClC,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACnC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,CACT,KAAa,EACb,KAAa,EACb,QAAgB;QAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEhD,2DAA2D;QAC3D,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC9C,aAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACnC,KAAK;gBACL,SAAS,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI;aACnC,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,IAAI,2BAA2B,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;QAEpD,6CAA6C;QAC7C,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,cAAc,CAAC,KAAK,EAAE,OAAO,IAAI,kCAAkC,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;QAErC,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,4EAA4E;QAC5E,iEAAiE;QACjE,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAC7B,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,iBAAiB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAClE,KAAK,EACL,QAAQ,CAAC,KAAK,CACf,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;oBAC5D,KAAK;oBACL,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;iBAC1D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,aAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtE,OAAO;YACL,mBAAmB,EAAE,WAAW;YAChC,SAAS;YACT,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC;YAC1C,qBAAqB,EAAE,iBAAiB,IAAI,IAAI;YAChD,gBAAgB,EAAE,iBAAiB,IAAI,SAAS;SACjD,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,KAAa,EACb,mBAA2B;QAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YACpD,aAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE;gBACnE,KAAK;gBACL,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI;aACtC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,UAAkB,EAClB,KAA0B;QAE1B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE;YAC7E,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,mCAAmC,CAAC,CAAC;QAC7E,CAAC;QAED,uEAAuE;QACvE,0EAA0E;QAC1E,6EAA6E;QAC7E,oDAAoD;QACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,KAAK,GAAqB,SAAS,IAAI;YAC3C,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YAChC,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACzE,CAAC;QAEF,aAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AA5LY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;6CAG4B,yBAAkB;QACxB,0BAAmB;QACf,6BAAsB;GAJhD,eAAe,CA4L3B"}
@@ -21,9 +21,20 @@ export declare class CustomerUpdateInput {
21
21
  gender?: Gender;
22
22
  birthDate?: string;
23
23
  }
24
+ export declare class CapillaryCustomer {
25
+ customerId?: string;
26
+ mobile: string;
27
+ firstName?: string;
28
+ lastName?: string;
29
+ email?: string;
30
+ gender?: string;
31
+ dob?: string;
32
+ }
24
33
  export declare class CustomerLoginResult {
25
34
  customerAccessToken: string;
26
35
  expiresAt: string;
27
36
  customer: Customer;
37
+ registeredInCapillary: boolean;
38
+ capillaryDetails?: CapillaryCustomer;
28
39
  }
29
40
  //# sourceMappingURL=customer.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"customer.types.d.ts","sourceRoot":"","sources":["../../src/customer/customer.types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,oBAAY,MAAM;IAChB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAWD,qBACa,QAAQ;IAEnB,EAAE,EAAG,MAAM,CAAC;IAGZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,EAAG,MAAM,CAAC;IAMrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,mBAAmB;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAIa,mBAAmB;IAK9B,mBAAmB,EAAG,MAAM,CAAC;IAG7B,SAAS,EAAG,MAAM,CAAC;IAGnB,QAAQ,EAAG,QAAQ,CAAC;CACrB"}
1
+ {"version":3,"file":"customer.types.d.ts","sourceRoot":"","sources":["../../src/customer/customer.types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,oBAAY,MAAM;IAChB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAWD,qBACa,QAAQ;IAEnB,EAAE,EAAG,MAAM,CAAC;IAGZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,EAAG,MAAM,CAAC;IAMrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,mBAAmB;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,iBAAiB;IAE5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,MAAM,EAAG,MAAM,CAAC;IAGhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAIa,mBAAmB;IAK9B,mBAAmB,EAAG,MAAM,CAAC;IAG7B,SAAS,EAAG,MAAM,CAAC;IAGnB,QAAQ,EAAG,QAAQ,CAAC;IAGpB,qBAAqB,EAAG,OAAO,CAAC;IAMhC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACtC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomerLoginResult = exports.CustomerUpdateInput = exports.Customer = exports.Gender = void 0;
3
+ exports.CustomerLoginResult = exports.CapillaryCustomer = exports.CustomerUpdateInput = exports.Customer = exports.Gender = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const graphql_1 = require("@nestjs/graphql");
6
6
  /**
@@ -100,10 +100,53 @@ tslib_1.__decorate([
100
100
  exports.CustomerUpdateInput = CustomerUpdateInput = tslib_1.__decorate([
101
101
  (0, graphql_1.InputType)({ description: 'Fields to update on a customer profile.' })
102
102
  ], CustomerUpdateInput);
103
+ let CapillaryCustomer = class CapillaryCustomer {
104
+ customerId;
105
+ mobile;
106
+ firstName;
107
+ lastName;
108
+ email;
109
+ gender;
110
+ dob;
111
+ };
112
+ exports.CapillaryCustomer = CapillaryCustomer;
113
+ tslib_1.__decorate([
114
+ (0, graphql_1.Field)({ nullable: true, description: 'Capillary internal customer id' }),
115
+ tslib_1.__metadata("design:type", String)
116
+ ], CapillaryCustomer.prototype, "customerId", void 0);
117
+ tslib_1.__decorate([
118
+ (0, graphql_1.Field)({ description: 'Registered mobile number' }),
119
+ tslib_1.__metadata("design:type", String)
120
+ ], CapillaryCustomer.prototype, "mobile", void 0);
121
+ tslib_1.__decorate([
122
+ (0, graphql_1.Field)({ nullable: true, description: 'First name' }),
123
+ tslib_1.__metadata("design:type", String)
124
+ ], CapillaryCustomer.prototype, "firstName", void 0);
125
+ tslib_1.__decorate([
126
+ (0, graphql_1.Field)({ nullable: true, description: 'Last name' }),
127
+ tslib_1.__metadata("design:type", String)
128
+ ], CapillaryCustomer.prototype, "lastName", void 0);
129
+ tslib_1.__decorate([
130
+ (0, graphql_1.Field)({ nullable: true, description: 'Email' }),
131
+ tslib_1.__metadata("design:type", String)
132
+ ], CapillaryCustomer.prototype, "email", void 0);
133
+ tslib_1.__decorate([
134
+ (0, graphql_1.Field)({ nullable: true, description: 'Gender' }),
135
+ tslib_1.__metadata("design:type", String)
136
+ ], CapillaryCustomer.prototype, "gender", void 0);
137
+ tslib_1.__decorate([
138
+ (0, graphql_1.Field)({ nullable: true, description: 'Date of birth as stored in Capillary' }),
139
+ tslib_1.__metadata("design:type", String)
140
+ ], CapillaryCustomer.prototype, "dob", void 0);
141
+ exports.CapillaryCustomer = CapillaryCustomer = tslib_1.__decorate([
142
+ (0, graphql_1.ObjectType)({ description: "A customer's basic profile from Capillary." })
143
+ ], CapillaryCustomer);
103
144
  let CustomerLoginResult = class CustomerLoginResult {
104
145
  customerAccessToken;
105
146
  expiresAt;
106
147
  customer;
148
+ registeredInCapillary;
149
+ capillaryDetails;
107
150
  };
108
151
  exports.CustomerLoginResult = CustomerLoginResult;
109
152
  tslib_1.__decorate([
@@ -120,6 +163,17 @@ tslib_1.__decorate([
120
163
  (0, graphql_1.Field)(() => Customer, { description: 'The authenticated customer.' }),
121
164
  tslib_1.__metadata("design:type", Customer)
122
165
  ], CustomerLoginResult.prototype, "customer", void 0);
166
+ tslib_1.__decorate([
167
+ (0, graphql_1.Field)({ description: 'Whether the customer is registered in Capillary' }),
168
+ tslib_1.__metadata("design:type", Boolean)
169
+ ], CustomerLoginResult.prototype, "registeredInCapillary", void 0);
170
+ tslib_1.__decorate([
171
+ (0, graphql_1.Field)(() => CapillaryCustomer, {
172
+ nullable: true,
173
+ description: "The customer's Capillary profile, when registered.",
174
+ }),
175
+ tslib_1.__metadata("design:type", CapillaryCustomer)
176
+ ], CustomerLoginResult.prototype, "capillaryDetails", void 0);
123
177
  exports.CustomerLoginResult = CustomerLoginResult = tslib_1.__decorate([
124
178
  (0, graphql_1.ObjectType)({
125
179
  description: 'Result of a customer login: a Storefront access token plus the customer.',
@@ -1 +1 @@
1
- {"version":3,"file":"customer.types.js","sourceRoot":"","sources":["../../src/customer/customer.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"customer.types.js","sourceRoot":"","sources":["../../src/customer/customer.types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { AuthUser } from '@pvh-afl/core';
2
2
  import { LoyaltyService } from './loyalty.service';
3
- import { CustomerCouponsInput, CustomerCouponsResult, ShopifyDiscountsByTagInput, ShopifyDiscountsByTagResult } from './loyalty.types';
3
+ import { CustomerCouponsInput, CustomerCouponsResult, ShopifyDiscountsByTagInput, ShopifyDiscountsByTagResult, THClubCustomerInput, THClubCustomerResult } from './loyalty.types';
4
4
  /**
5
5
  * Loyalty Resolver
6
6
  *
@@ -15,5 +15,8 @@ export declare class LoyaltyResolver {
15
15
  getShopifyDiscountsByTag(input: ShopifyDiscountsByTagInput, context: {
16
16
  brand: string;
17
17
  }): Promise<ShopifyDiscountsByTagResult>;
18
+ createOrUpdateTHClubCustomer(user: AuthUser, input: THClubCustomerInput, context: {
19
+ brand: string;
20
+ }): Promise<THClubCustomerResult>;
18
21
  }
19
22
  //# sourceMappingURL=loyalty.resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loyalty.resolver.d.ts","sourceRoot":"","sources":["../../src/loyalty/loyalty.resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EAKT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBACa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAUrD,kBAAkB,CACP,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,oBAAoB,EAC/B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,qBAAqB,CAAC;IAS3B,wBAAwB,CACb,KAAK,EAAE,0BAA0B,EACrC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,2BAA2B,CAAC;CAGxC"}
1
+ {"version":3,"file":"loyalty.resolver.d.ts","sourceRoot":"","sources":["../../src/loyalty/loyalty.resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EAKT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBACa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAUrD,kBAAkB,CACP,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,oBAAoB,EAC/B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,qBAAqB,CAAC;IAS3B,wBAAwB,CACb,KAAK,EAAE,0BAA0B,EACrC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,2BAA2B,CAAC;IAWjC,4BAA4B,CACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,mBAAmB,EAC9B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,oBAAoB,CAAC;CAIjC"}
@@ -24,6 +24,10 @@ let LoyaltyResolver = class LoyaltyResolver {
24
24
  async getShopifyDiscountsByTag(input, context) {
25
25
  return this.loyaltyService.getShopifyDiscountsByTag(context.brand, input);
26
26
  }
27
+ async createOrUpdateTHClubCustomer(user, input, context) {
28
+ (0, core_1.assertOwnsPhone)(user, input.mobile);
29
+ return this.loyaltyService.createOrUpdateTHClubCustomer(context.brand, input);
30
+ }
27
31
  };
28
32
  exports.LoyaltyResolver = LoyaltyResolver;
29
33
  tslib_1.__decorate([
@@ -53,6 +57,21 @@ tslib_1.__decorate([
53
57
  tslib_1.__metadata("design:paramtypes", [loyalty_types_1.ShopifyDiscountsByTagInput, Object]),
54
58
  tslib_1.__metadata("design:returntype", Promise)
55
59
  ], LoyaltyResolver.prototype, "getShopifyDiscountsByTag", null);
60
+ tslib_1.__decorate([
61
+ (0, graphql_1.Mutation)(() => loyalty_types_1.THClubCustomerResult, {
62
+ description: `Create or update the logged-in customer in TH Club (Capillary loyalty).
63
+
64
+ Requires authentication. The \`mobile\` in the input must be the caller's own —
65
+ a customer can only ever create or update their own TH Club profile.`,
66
+ }),
67
+ (0, common_1.UseGuards)(core_1.TenantGuard, core_1.JwtAuthGuard),
68
+ tslib_1.__param(0, (0, core_1.CurrentUser)()),
69
+ tslib_1.__param(1, (0, graphql_1.Args)('input')),
70
+ tslib_1.__param(2, (0, graphql_1.Context)()),
71
+ tslib_1.__metadata("design:type", Function),
72
+ tslib_1.__metadata("design:paramtypes", [Object, loyalty_types_1.THClubCustomerInput, Object]),
73
+ tslib_1.__metadata("design:returntype", Promise)
74
+ ], LoyaltyResolver.prototype, "createOrUpdateTHClubCustomer", null);
56
75
  exports.LoyaltyResolver = LoyaltyResolver = tslib_1.__decorate([
57
76
  (0, graphql_1.Resolver)(),
58
77
  tslib_1.__metadata("design:paramtypes", [loyalty_service_1.LoyaltyService])
@@ -1 +1 @@
1
- {"version":3,"file":"loyalty.resolver.js","sourceRoot":"","sources":["../../src/loyalty/loyalty.resolver.ts"],"names":[],"mappings":";;;;AAAA,6CAAiE;AACjE,2CAA2C;AAC3C,wCAMuB;AACvB,uDAAmD;AACnD,mDAKyB;AAEzB;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IACG;IAA7B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAUzD,AAAN,KAAK,CAAC,kBAAkB,CACP,IAAc,EACd,KAA2B,EAC/B,OAA0B;QAErC,IAAA,sBAAe,EAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAMK,AAAN,KAAK,CAAC,wBAAwB,CACb,KAAiC,EACrC,OAA0B;QAErC,OAAO,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;CACF,CAAA;AA9BY,0CAAe;AAWpB;IARL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,qCAAqB,EAAE;QAClC,WAAW,EAAE;;;;qDAIoC;KAClD,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,EAAE,mBAAY,CAAC;IAElC,mBAAA,IAAA,kBAAW,GAAE,CAAA;IACb,mBAAA,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;IACb,mBAAA,IAAA,iBAAO,GAAE,CAAA;;qDADY,oCAAoB;;yDAK3C;AAMK;IAJL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2CAA2B,EAAE;QACxC,WAAW,EAAE,6CAA6C;KAC3D,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,CAAC;IAEpB,mBAAA,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;IACb,mBAAA,IAAA,iBAAO,GAAE,CAAA;;6CADY,0CAA0B;;+DAIjD;0BA7BU,eAAe;IAD3B,IAAA,kBAAQ,GAAE;6CAEoC,gCAAc;GADhD,eAAe,CA8B3B"}
1
+ {"version":3,"file":"loyalty.resolver.js","sourceRoot":"","sources":["../../src/loyalty/loyalty.resolver.ts"],"names":[],"mappings":";;;;AAAA,6CAA2E;AAC3E,2CAA2C;AAC3C,wCAMuB;AACvB,uDAAmD;AACnD,mDAOyB;AAEzB;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IACG;IAA7B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAUzD,AAAN,KAAK,CAAC,kBAAkB,CACP,IAAc,EACd,KAA2B,EAC/B,OAA0B;QAErC,IAAA,sBAAe,EAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAMK,AAAN,KAAK,CAAC,wBAAwB,CACb,KAAiC,EACrC,OAA0B;QAErC,OAAO,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IASK,AAAN,KAAK,CAAC,4BAA4B,CACjB,IAAc,EACd,KAA0B,EAC9B,OAA0B;QAErC,IAAA,sBAAe,EAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;CACF,CAAA;AA9CY,0CAAe;AAWpB;IARL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,qCAAqB,EAAE;QAClC,WAAW,EAAE;;;;qDAIoC;KAClD,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,EAAE,mBAAY,CAAC;IAElC,mBAAA,IAAA,kBAAW,GAAE,CAAA;IACb,mBAAA,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;IACb,mBAAA,IAAA,iBAAO,GAAE,CAAA;;qDADY,oCAAoB;;yDAK3C;AAMK;IAJL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2CAA2B,EAAE;QACxC,WAAW,EAAE,6CAA6C;KAC3D,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,CAAC;IAEpB,mBAAA,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;IACb,mBAAA,IAAA,iBAAO,GAAE,CAAA;;6CADY,0CAA0B;;+DAIjD;AASK;IAPL,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,oCAAoB,EAAE;QACpC,WAAW,EAAE;;;qEAGoD;KAClE,CAAC;IACD,IAAA,kBAAS,EAAC,kBAAW,EAAE,mBAAY,CAAC;IAElC,mBAAA,IAAA,kBAAW,GAAE,CAAA;IACb,mBAAA,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;IACb,mBAAA,IAAA,iBAAO,GAAE,CAAA;;qDADY,mCAAmB;;mEAK1C;0BA7CU,eAAe;IAD3B,IAAA,kBAAQ,GAAE;6CAEoC,gCAAc;GADhD,eAAe,CA8C3B"}
@@ -1,5 +1,5 @@
1
1
  import { CapillaryCouponService, ShopifyAdminService } from '@pvh-afl/core';
2
- import { CustomerCouponsInput, CustomerCouponsResult, ShopifyDiscountsByTagInput, ShopifyDiscountsByTagResult } from './loyalty.types';
2
+ import { CustomerCouponsInput, CustomerCouponsResult, ShopifyDiscountsByTagInput, ShopifyDiscountsByTagResult, THClubCustomerInput, THClubCustomerResult } from './loyalty.types';
3
3
  /**
4
4
  * Loyalty Service
5
5
  *
@@ -10,6 +10,13 @@ export declare class LoyaltyService {
10
10
  private readonly shopifyAdminService;
11
11
  constructor(couponService: CapillaryCouponService, shopifyAdminService: ShopifyAdminService);
12
12
  getCustomerCoupons(brand: string, input: CustomerCouponsInput): Promise<CustomerCouponsResult>;
13
+ /**
14
+ * Create or update a TH Club (Capillary) customer. New mobile → register with
15
+ * all provided fields. Existing mobile → update the provided fields. Email is
16
+ * set on create, and on update only when Capillary has none (fill the gap);
17
+ * an existing email is never overwritten. Mobile is always the identifier.
18
+ */
19
+ createOrUpdateTHClubCustomer(brand: string, input: THClubCustomerInput): Promise<THClubCustomerResult>;
13
20
  getShopifyDiscountsByTag(brand: string, input: ShopifyDiscountsByTagInput): Promise<ShopifyDiscountsByTagResult>;
14
21
  }
15
22
  //# sourceMappingURL=loyalty.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loyalty.service.d.ts","sourceRoot":"","sources":["../../src/loyalty/loyalty.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAU,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,iBAAiB,CAAC;AAUzB;;;;GAIG;AACH,qBACa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBADnB,aAAa,EAAE,sBAAsB,EACrC,mBAAmB,EAAE,mBAAmB;IAGrD,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC;IAa3B,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,2BAA2B,CAAC;CAsDxC"}
1
+ {"version":3,"file":"loyalty.service.d.ts","sourceRoot":"","sources":["../../src/loyalty/loyalty.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAU,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAUzB;;;;GAIG;AACH,qBACa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBADnB,aAAa,EAAE,sBAAsB,EACrC,mBAAmB,EAAE,mBAAmB;IAGrD,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC;IAajC;;;;;OAKG;IACG,4BAA4B,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAwC1B,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,2BAA2B,CAAC;CAsDxC"}
@@ -30,6 +30,47 @@ let LoyaltyService = class LoyaltyService {
30
30
  });
31
31
  return this.couponService.getCustomerCoupons(brand, input.mobile, input.state);
32
32
  }
33
+ /**
34
+ * Create or update a TH Club (Capillary) customer. New mobile → register with
35
+ * all provided fields. Existing mobile → update the provided fields. Email is
36
+ * set on create, and on update only when Capillary has none (fill the gap);
37
+ * an existing email is never overwritten. Mobile is always the identifier.
38
+ */
39
+ async createOrUpdateTHClubCustomer(brand, input) {
40
+ // Read the existing profile (null = not registered). A lookup failure is not
41
+ // decisive — treat as new and attempt.
42
+ let existing = null;
43
+ try {
44
+ existing = await this.couponService.getCapillaryCustomer(brand, input.mobile);
45
+ }
46
+ catch (error) {
47
+ core_1.logger.warn('TH Club: lookup failed — treating as new', {
48
+ brand,
49
+ error: error instanceof Error ? error.message : 'Unknown',
50
+ });
51
+ }
52
+ const exists = existing != null;
53
+ const result = await this.couponService.addCustomer(brand, {
54
+ mobile: input.mobile,
55
+ // Set email on create, or on update only when Capillary has none —
56
+ // fill the gap, never overwrite an existing email.
57
+ email: existing?.email ? undefined : input.email,
58
+ firstName: input.firstName,
59
+ lastName: input.lastName,
60
+ gender: input.gender,
61
+ dob: input.dob,
62
+ });
63
+ return {
64
+ success: result.success,
65
+ created: !exists,
66
+ customerId: result.customerId != null ? String(result.customerId) : undefined,
67
+ message: result.success
68
+ ? exists
69
+ ? 'TH Club profile updated.'
70
+ : 'Registered in TH Club.'
71
+ : result.errorMessage ?? 'TH Club update failed.',
72
+ };
73
+ }
33
74
  async getShopifyDiscountsByTag(brand, input) {
34
75
  // Reject tags outside the allowlist before hitting the Shopify Admin API.
35
76
  if (!ALLOWED_DISCOUNT_TAGS.includes(input.tag)) {
@@ -1 +1 @@
1
- {"version":3,"file":"loyalty.service.js","sourceRoot":"","sources":["../../src/loyalty/loyalty.service.ts"],"names":[],"mappings":";;;;AAAA,2CAAiE;AACjE,wCAAoF;AAQpF;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,CAAC,aAAa,CAAC,CAAC;AAE9C;;;;GAIG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAc;IAEN;IACA;IAFnB,YACmB,aAAqC,EACrC,mBAAwC;QADxC,kBAAa,GAAb,aAAa,CAAwB;QACrC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACxD,CAAC;IAEJ,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,KAA2B;QAE3B,aAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvC,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAC1C,KAAK,EACL,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,KAAa,EACb,KAAiC;QAEjC,0EAA0E;QAC1E,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,aAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE;gBACvE,KAAK;gBACL,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC,CAAC;YACH,uEAAuE;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,MAAM,IAAI,4BAAmB,CAAC;gBAC5B,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,QAAQ,KAAK,CAAC,GAAG,mBAAmB;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,aAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;YAC/C,KAAK;YACL,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAChE,KAAK,EACL,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,KAAK,CACZ,CAAC;QAEF,MAAM,OAAO,GACX,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,0BAA0B,KAAK,CAAC,GAAG,GAAG;YACjE,CAAC,CAAC,gCAAgC,KAAK,CAAC,GAAG,GAAG,CAAC;QAEnD,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,sBAAsB,EAAE,CAAC,CAAC,sBAAsB;gBAChD,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACH,OAAO;SACR,CAAC;IACJ,CAAC;CACF,CAAA;AA/EY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;6CAGuB,6BAAsB;QAChB,0BAAmB;GAHhD,cAAc,CA+E1B"}
1
+ {"version":3,"file":"loyalty.service.js","sourceRoot":"","sources":["../../src/loyalty/loyalty.service.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@ export declare class ShopifyDiscountsByTagInput {
7
7
  tag: string;
8
8
  limit?: number;
9
9
  }
10
+ export declare class THClubCustomerInput {
11
+ mobile: string;
12
+ email?: string;
13
+ firstName?: string;
14
+ lastName?: string;
15
+ gender?: string;
16
+ dob?: string;
17
+ }
10
18
  /**
11
19
  * A single coupon issued to the customer
12
20
  */
@@ -30,6 +38,15 @@ export declare class CustomerCouponsResult {
30
38
  coupons: CustomerCoupon[];
31
39
  message: string;
32
40
  }
41
+ /**
42
+ * TH Club (Capillary) create-or-update result
43
+ */
44
+ export declare class THClubCustomerResult {
45
+ success: boolean;
46
+ created: boolean;
47
+ customerId?: string;
48
+ message: string;
49
+ }
33
50
  /**
34
51
  * Discount combination settings
35
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"loyalty.types.d.ts","sourceRoot":"","sources":["../../src/loyalty/loyalty.types.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAwB5C,qBACa,oBAAoB;IAE/B,MAAM,EAAG,MAAM,CAAC;IAKhB,KAAK,EAAG,WAAW,CAAC;CACrB;AAED,qBACa,0BAA0B;IAErC,GAAG,EAAG,MAAM,CAAC;IAOb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,qBACa,cAAc;IAEzB,IAAI,EAAG,MAAM,CAAC;IAGd,QAAQ,EAAG,MAAM,CAAC;IAGlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAG,MAAM,CAAC;IAGnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAG,MAAM,CAAC;IAGtB,aAAa,EAAG,MAAM,CAAC;IAMvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,EAAG,MAAM,CAAC;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBACa,qBAAqB;IAIhC,OAAO,EAAG,cAAc,EAAE,CAAC;IAM3B,OAAO,EAAG,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,qBACa,2BAA2B;IAEtC,cAAc,EAAG,OAAO,CAAC;IAGzB,gBAAgB,EAAG,OAAO,CAAC;IAG3B,iBAAiB,EAAG,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,qBACa,eAAe;IAE1B,IAAI,EAAG,MAAM,CAAC;IAGd,KAAK,EAAG,MAAM,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAG,MAAM,CAAC;IAGtB,aAAa,EAAG,MAAM,CAAC;IAMvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,EAAG,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAG,MAAM,CAAC;IAGpB,sBAAsB,EAAG,OAAO,CAAC;IAGjC,YAAY,EAAG,2BAA2B,CAAC;IAG3C,IAAI,EAAG,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,qBACa,2BAA2B;IAItC,SAAS,EAAG,eAAe,EAAE,CAAC;IAK9B,OAAO,EAAG,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"loyalty.types.d.ts","sourceRoot":"","sources":["../../src/loyalty/loyalty.types.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAwB5C,qBACa,oBAAoB;IAE/B,MAAM,EAAG,MAAM,CAAC;IAKhB,KAAK,EAAG,WAAW,CAAC;CACrB;AAED,qBACa,0BAA0B;IAErC,GAAG,EAAG,MAAM,CAAC;IAOb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBACa,mBAAmB;IAE9B,MAAM,EAAG,MAAM,CAAC;IAGhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD;;GAEG;AACH,qBACa,cAAc;IAEzB,IAAI,EAAG,MAAM,CAAC;IAGd,QAAQ,EAAG,MAAM,CAAC;IAGlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAG,MAAM,CAAC;IAGnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAG,MAAM,CAAC;IAGtB,aAAa,EAAG,MAAM,CAAC;IAMvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,EAAG,MAAM,CAAC;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBACa,qBAAqB;IAIhC,OAAO,EAAG,cAAc,EAAE,CAAC;IAM3B,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBACa,oBAAoB;IAE/B,OAAO,EAAG,OAAO,CAAC;IAGlB,OAAO,EAAG,OAAO,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,OAAO,EAAG,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,qBACa,2BAA2B;IAEtC,cAAc,EAAG,OAAO,CAAC;IAGzB,gBAAgB,EAAG,OAAO,CAAC;IAG3B,iBAAiB,EAAG,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,qBACa,eAAe;IAE1B,IAAI,EAAG,MAAM,CAAC;IAGd,KAAK,EAAG,MAAM,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAG,MAAM,CAAC;IAGtB,aAAa,EAAG,MAAM,CAAC;IAMvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,EAAG,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAG,MAAM,CAAC;IAGpB,sBAAsB,EAAG,OAAO,CAAC;IAGjC,YAAY,EAAG,2BAA2B,CAAC;IAG3C,IAAI,EAAG,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,qBACa,2BAA2B;IAItC,SAAS,EAAG,eAAe,EAAE,CAAC;IAK9B,OAAO,EAAG,MAAM,CAAC;CAClB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ShopifyDiscountsByTagResult = exports.ShopifyDiscount = exports.ShopifyDiscountCombinesWith = exports.CustomerCouponsResult = exports.CustomerCoupon = exports.ShopifyDiscountsByTagInput = exports.CustomerCouponsInput = void 0;
3
+ exports.ShopifyDiscountsByTagResult = exports.ShopifyDiscount = exports.ShopifyDiscountCombinesWith = exports.THClubCustomerResult = exports.CustomerCouponsResult = exports.CustomerCoupon = exports.THClubCustomerInput = exports.ShopifyDiscountsByTagInput = exports.CustomerCouponsInput = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const graphql_1 = require("@nestjs/graphql");
6
6
  const core_1 = require("@pvh-afl/core");
@@ -60,6 +60,42 @@ tslib_1.__decorate([
60
60
  exports.ShopifyDiscountsByTagInput = ShopifyDiscountsByTagInput = tslib_1.__decorate([
61
61
  (0, graphql_1.InputType)()
62
62
  ], ShopifyDiscountsByTagInput);
63
+ let THClubCustomerInput = class THClubCustomerInput {
64
+ mobile;
65
+ email;
66
+ firstName;
67
+ lastName;
68
+ gender;
69
+ dob;
70
+ };
71
+ exports.THClubCustomerInput = THClubCustomerInput;
72
+ tslib_1.__decorate([
73
+ (0, graphql_1.Field)({ description: "Customer mobile number — must be the caller's own" }),
74
+ tslib_1.__metadata("design:type", String)
75
+ ], THClubCustomerInput.prototype, "mobile", void 0);
76
+ tslib_1.__decorate([
77
+ (0, graphql_1.Field)({ nullable: true, description: 'Customer email (set on create; not changed on update)' }),
78
+ tslib_1.__metadata("design:type", String)
79
+ ], THClubCustomerInput.prototype, "email", void 0);
80
+ tslib_1.__decorate([
81
+ (0, graphql_1.Field)({ nullable: true, description: 'Customer first name' }),
82
+ tslib_1.__metadata("design:type", String)
83
+ ], THClubCustomerInput.prototype, "firstName", void 0);
84
+ tslib_1.__decorate([
85
+ (0, graphql_1.Field)({ nullable: true, description: 'Customer last name' }),
86
+ tslib_1.__metadata("design:type", String)
87
+ ], THClubCustomerInput.prototype, "lastName", void 0);
88
+ tslib_1.__decorate([
89
+ (0, graphql_1.Field)({ nullable: true, description: 'Customer gender' }),
90
+ tslib_1.__metadata("design:type", String)
91
+ ], THClubCustomerInput.prototype, "gender", void 0);
92
+ tslib_1.__decorate([
93
+ (0, graphql_1.Field)({ nullable: true, description: 'Date of birth (YYYY-MM-DD)' }),
94
+ tslib_1.__metadata("design:type", String)
95
+ ], THClubCustomerInput.prototype, "dob", void 0);
96
+ exports.THClubCustomerInput = THClubCustomerInput = tslib_1.__decorate([
97
+ (0, graphql_1.InputType)()
98
+ ], THClubCustomerInput);
63
99
  // ============================================================================
64
100
  // Output Types
65
101
  // ============================================================================
@@ -156,6 +192,35 @@ tslib_1.__decorate([
156
192
  exports.CustomerCouponsResult = CustomerCouponsResult = tslib_1.__decorate([
157
193
  (0, graphql_1.ObjectType)()
158
194
  ], CustomerCouponsResult);
195
+ /**
196
+ * TH Club (Capillary) create-or-update result
197
+ */
198
+ let THClubCustomerResult = class THClubCustomerResult {
199
+ success;
200
+ created;
201
+ customerId;
202
+ message;
203
+ };
204
+ exports.THClubCustomerResult = THClubCustomerResult;
205
+ tslib_1.__decorate([
206
+ (0, graphql_1.Field)({ description: 'Whether the create/update succeeded' }),
207
+ tslib_1.__metadata("design:type", Boolean)
208
+ ], THClubCustomerResult.prototype, "success", void 0);
209
+ tslib_1.__decorate([
210
+ (0, graphql_1.Field)({ description: 'True if a new customer was created, false if updated' }),
211
+ tslib_1.__metadata("design:type", Boolean)
212
+ ], THClubCustomerResult.prototype, "created", void 0);
213
+ tslib_1.__decorate([
214
+ (0, graphql_1.Field)({ nullable: true, description: 'Capillary customer id, when available' }),
215
+ tslib_1.__metadata("design:type", String)
216
+ ], THClubCustomerResult.prototype, "customerId", void 0);
217
+ tslib_1.__decorate([
218
+ (0, graphql_1.Field)({ description: 'Human-readable outcome' }),
219
+ tslib_1.__metadata("design:type", String)
220
+ ], THClubCustomerResult.prototype, "message", void 0);
221
+ exports.THClubCustomerResult = THClubCustomerResult = tslib_1.__decorate([
222
+ (0, graphql_1.ObjectType)()
223
+ ], THClubCustomerResult);
159
224
  // ============================================================================
160
225
  // Shopify Discounts By Tag Types
161
226
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"loyalty.types.js","sourceRoot":"","sources":["../../src/loyalty/loyalty.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loyalty.types.js","sourceRoot":"","sources":["../../src/loyalty/loyalty.types.ts"],"names":[],"mappings":";;;;AAAA,6CAOyB;AACzB,wCAA4C;AAE5C;;;;GAIG;AAEH,IAAA,0BAAgB,EAAC,kBAAW,EAAE;IAC5B,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,+CAA+C;IAC5D,SAAS,EAAE;QACT,MAAM,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE;QAC9D,UAAU,EAAE;YACV,WAAW,EACT,sEAAsE;SACzE;KACF;CACF,CAAC,CAAC;AAEH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAGxE,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE/B,MAAM,CAAU;IAKhB,KAAK,CAAe;CACrB,CAAA;AARY,oDAAoB;AAE/B;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;;oDAC3D;AAKhB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,kBAAW,EAAE;QACxB,WAAW,EAAE,2BAA2B;KACzC,CAAC;;mDACkB;+BAPT,oBAAoB;IADhC,IAAA,mBAAS,GAAE;GACC,oBAAoB,CAQhC;AAGM,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAErC,GAAG,CAAU;IAOb,KAAK,CAAU;CAChB,CAAA;AAVY,gEAA0B;AAErC;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;;uDAC9D;AAOb;IALC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,qCAAqC;KACnD,CAAC;;yDACa;qCATJ,0BAA0B;IADtC,IAAA,mBAAS,GAAE;GACC,0BAA0B,CAUtC;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE9B,MAAM,CAAU;IAGhB,KAAK,CAAU;IAGf,SAAS,CAAU;IAGnB,QAAQ,CAAU;IAGlB,MAAM,CAAU;IAGhB,GAAG,CAAU;CACd,CAAA;AAlBY,kDAAmB;AAE9B;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;;mDAC5D;AAGhB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uDAAuD,EAAE,CAAC;;kDACjF;AAGf;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;;sDAC3C;AAGnB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;;qDAC3C;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;;mDAC1C;AAGhB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;gDACxD;8BAjBF,mBAAmB;IAD/B,IAAA,mBAAS,GAAE;GACC,mBAAmB,CAkB/B;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;GAEG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAc;IAEzB,IAAI,CAAU;IAGd,QAAQ,CAAU;IAGlB,WAAW,CAAU;IAMrB,SAAS,CAAU;IAGnB,SAAS,CAAU;IAGnB,iBAAiB,CAAU;IAG3B,YAAY,CAAU;IAGtB,aAAa,CAAU;IAMvB,YAAY,CAAU;IAGtB,eAAe,CAAU;IAGzB,QAAQ,CAAU;CACnB,CAAA;AAvCY,wCAAc;AAEzB;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;;4CACxB;AAGd;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;gDAC9C;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;;mDACxC;AAMrB;IAJC,IAAA,eAAK,EAAC;QACL,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,6CAA6C;KAC3D,CAAC;;iDACiB;AAGnB;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;;iDACzC;AAGnB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;;yDAC3C;AAG3B;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;;oDACtD;AAGtB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,eAAK,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;;qDAC9C;AAMvB;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,eAAK,EAAE;QAClB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,yCAAyC;KACvD,CAAC;;oDACoB;AAGtB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;;uDACjD;AAGzB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;gDACnD;yBAtCP,cAAc;IAD1B,IAAA,oBAAU,GAAE;GACA,cAAc,CAuC1B;AAED;;GAEG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAIhC,OAAO,CAAoB;IAM3B,OAAO,CAAU;CAClB,CAAA;AAXY,sDAAqB;AAIhC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE;QAC7B,WAAW,EAAE,sCAAsC;KACpD,CAAC;;sDACyB;AAM3B;IAJC,IAAA,eAAK,EAAC;QACL,WAAW,EACT,iEAAiE;KACpE,CAAC;;sDACe;gCAVN,qBAAqB;IADjC,IAAA,oBAAU,GAAE;GACA,qBAAqB,CAWjC;AAED;;GAEG;AAEI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE/B,OAAO,CAAW;IAGlB,OAAO,CAAW;IAGlB,UAAU,CAAU;IAGpB,OAAO,CAAU;CAClB,CAAA;AAZY,oDAAoB;AAE/B;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;;qDAC5C;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;;qDAC7D;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;;wDAC5D;AAGpB;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;;qDAChC;+BAXN,oBAAoB;IADhC,IAAA,oBAAU,GAAE;GACA,oBAAoB,CAYhC;AAED,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E;;GAEG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEtC,cAAc,CAAW;IAGzB,gBAAgB,CAAW;IAG3B,iBAAiB,CAAW;CAC7B,CAAA;AATY,kEAA2B;AAEtC;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;;mEAClC;AAGzB;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;;qEAClC;AAG3B;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;;sEAClC;sCARjB,2BAA2B;IADvC,IAAA,oBAAU,GAAE;GACA,2BAA2B,CASvC;AAED;;GAEG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAE1B,IAAI,CAAU;IAGd,KAAK,CAAU;IAGf,WAAW,CAAU;IAGrB,YAAY,CAAU;IAGtB,aAAa,CAAU;IAMvB,YAAY,CAAU;IAMtB,aAAa,CAAU;IAGvB,QAAQ,CAAU;IAGlB,MAAM,CAAU;IAGhB,MAAM,CAAU;IAGhB,UAAU,CAAU;IAGpB,UAAU,CAAU;IAGpB,sBAAsB,CAAW;IAGjC,YAAY,CAA+B;IAG3C,IAAI,CAAY;CACjB,CAAA;AAnDY,0CAAe;AAE1B;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;;6CAC1B;AAGd;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;;8CAC1B;AAGf;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;;oDAC1C;AAGrB;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;;qDACtD;AAGtB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,eAAK,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;;sDAC9C;AAMvB;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,eAAK,EAAE;QAClB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,yCAAyC;KACvD,CAAC;;qDACoB;AAMtB;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,eAAK,EAAE;QAClB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,8BAA8B;KAC5C,CAAC;;sDACqB;AAGvB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;iDACnD;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;;+CACnD;AAGhB;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;;+CACvD;AAGhB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;;mDACnF;AAGpB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC;;mDAC7D;AAGpB;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;;+DACpC;AAGjC;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2BAA2B,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;sCAClF,2BAA2B;qDAAC;AAG3C;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;;6CAC7D;0BAlDL,eAAe;IAD3B,IAAA,oBAAU,GAAE;GACA,eAAe,CAmD3B;AAED;;GAEG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAItC,SAAS,CAAqB;IAK9B,OAAO,CAAU;CAClB,CAAA;AAVY,kEAA2B;AAItC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE;QAC9B,WAAW,EAAE,sCAAsC;KACpD,CAAC;;8DAC4B;AAK9B;IAHC,IAAA,eAAK,EAAC;QACL,WAAW,EAAE,gCAAgC;KAC9C,CAAC;;4DACe;sCATN,2BAA2B;IADvC,IAAA,oBAAU,GAAE;GACA,2BAA2B,CAUvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pvh-afl/graphql",
3
- "version": "1.1.46",
3
+ "version": "1.1.48",
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.1.26",
25
+ "@pvh-afl/core": "^1.1.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.1.26",
35
+ "@pvh-afl/core": "^1.1.32",
36
36
  "@types/jest": "^29.5.0",
37
37
  "graphql": "^16.9.0",
38
38
  "graphql-type-json": "^0.3.2",