@pvh-afl/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +97 -0
  2. package/dist/cache/cache.module.d.ts +3 -0
  3. package/dist/cache/cache.module.d.ts.map +1 -0
  4. package/dist/cache/cache.module.js +17 -0
  5. package/dist/cache/cache.module.js.map +1 -0
  6. package/dist/cache/cache.service.d.ts +38 -0
  7. package/dist/cache/cache.service.d.ts.map +1 -0
  8. package/dist/cache/cache.service.js +173 -0
  9. package/dist/cache/cache.service.js.map +1 -0
  10. package/dist/cache/index.d.ts +3 -0
  11. package/dist/cache/index.d.ts.map +1 -0
  12. package/dist/cache/index.js +6 -0
  13. package/dist/cache/index.js.map +1 -0
  14. package/dist/common/guards/tenant.guard.d.ts +8 -0
  15. package/dist/common/guards/tenant.guard.d.ts.map +1 -0
  16. package/dist/common/guards/tenant.guard.js +44 -0
  17. package/dist/common/guards/tenant.guard.js.map +1 -0
  18. package/dist/common/index.d.ts +3 -0
  19. package/dist/common/index.d.ts.map +1 -0
  20. package/dist/common/index.js +6 -0
  21. package/dist/common/index.js.map +1 -0
  22. package/dist/common/logger.d.ts +7 -0
  23. package/dist/common/logger.d.ts.map +1 -0
  24. package/dist/common/logger.js +28 -0
  25. package/dist/common/logger.js.map +1 -0
  26. package/dist/config/config.module.d.ts +3 -0
  27. package/dist/config/config.module.d.ts.map +1 -0
  28. package/dist/config/config.module.js +17 -0
  29. package/dist/config/config.module.js.map +1 -0
  30. package/dist/config/config.service.d.ts +55 -0
  31. package/dist/config/config.service.d.ts.map +1 -0
  32. package/dist/config/config.service.js +212 -0
  33. package/dist/config/config.service.js.map +1 -0
  34. package/dist/config/index.d.ts +3 -0
  35. package/dist/config/index.d.ts.map +1 -0
  36. package/dist/config/index.js +6 -0
  37. package/dist/config/index.js.map +1 -0
  38. package/dist/index.d.ts +12 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +21 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/integrations/base-integration.service.d.ts +59 -0
  43. package/dist/integrations/base-integration.service.d.ts.map +1 -0
  44. package/dist/integrations/base-integration.service.js +227 -0
  45. package/dist/integrations/base-integration.service.js.map +1 -0
  46. package/dist/integrations/commerce/commerce.types.d.ts +301 -0
  47. package/dist/integrations/commerce/commerce.types.d.ts.map +1 -0
  48. package/dist/integrations/commerce/commerce.types.js +9 -0
  49. package/dist/integrations/commerce/commerce.types.js.map +1 -0
  50. package/dist/integrations/commerce/index.d.ts +4 -0
  51. package/dist/integrations/commerce/index.d.ts.map +1 -0
  52. package/dist/integrations/commerce/index.js +7 -0
  53. package/dist/integrations/commerce/index.js.map +1 -0
  54. package/dist/integrations/commerce/shopify-admin.service.d.ts +35 -0
  55. package/dist/integrations/commerce/shopify-admin.service.d.ts.map +1 -0
  56. package/dist/integrations/commerce/shopify-admin.service.js +269 -0
  57. package/dist/integrations/commerce/shopify-admin.service.js.map +1 -0
  58. package/dist/integrations/commerce/shopify.service.d.ts +43 -0
  59. package/dist/integrations/commerce/shopify.service.d.ts.map +1 -0
  60. package/dist/integrations/commerce/shopify.service.js +735 -0
  61. package/dist/integrations/commerce/shopify.service.js.map +1 -0
  62. package/dist/integrations/index.d.ts +9 -0
  63. package/dist/integrations/index.d.ts.map +1 -0
  64. package/dist/integrations/index.js +18 -0
  65. package/dist/integrations/index.js.map +1 -0
  66. package/dist/integrations/integration.factory.d.ts +23 -0
  67. package/dist/integrations/integration.factory.d.ts.map +1 -0
  68. package/dist/integrations/integration.factory.js +119 -0
  69. package/dist/integrations/integration.factory.js.map +1 -0
  70. package/dist/integrations/integration.types.d.ts +80 -0
  71. package/dist/integrations/integration.types.d.ts.map +1 -0
  72. package/dist/integrations/integration.types.js +9 -0
  73. package/dist/integrations/integration.types.js.map +1 -0
  74. package/dist/integrations/integrations.module.d.ts +3 -0
  75. package/dist/integrations/integrations.module.d.ts.map +1 -0
  76. package/dist/integrations/integrations.module.js +46 -0
  77. package/dist/integrations/integrations.module.js.map +1 -0
  78. package/dist/integrations/loyalty/capillary-auth.service.d.ts +30 -0
  79. package/dist/integrations/loyalty/capillary-auth.service.d.ts.map +1 -0
  80. package/dist/integrations/loyalty/capillary-auth.service.js +112 -0
  81. package/dist/integrations/loyalty/capillary-auth.service.js.map +1 -0
  82. package/dist/integrations/loyalty/capillary-coupon.service.d.ts +24 -0
  83. package/dist/integrations/loyalty/capillary-coupon.service.d.ts.map +1 -0
  84. package/dist/integrations/loyalty/capillary-coupon.service.js +383 -0
  85. package/dist/integrations/loyalty/capillary-coupon.service.js.map +1 -0
  86. package/dist/integrations/loyalty/capillary.types.d.ts +218 -0
  87. package/dist/integrations/loyalty/capillary.types.d.ts.map +1 -0
  88. package/dist/integrations/loyalty/capillary.types.js +21 -0
  89. package/dist/integrations/loyalty/capillary.types.js.map +1 -0
  90. package/dist/integrations/loyalty/index.d.ts +4 -0
  91. package/dist/integrations/loyalty/index.d.ts.map +1 -0
  92. package/dist/integrations/loyalty/index.js +7 -0
  93. package/dist/integrations/loyalty/index.js.map +1 -0
  94. package/dist/integrations/oms/index.d.ts +4 -0
  95. package/dist/integrations/oms/index.d.ts.map +1 -0
  96. package/dist/integrations/oms/index.js +7 -0
  97. package/dist/integrations/oms/index.js.map +1 -0
  98. package/dist/integrations/oms/omuni-auth.service.d.ts +29 -0
  99. package/dist/integrations/oms/omuni-auth.service.d.ts.map +1 -0
  100. package/dist/integrations/oms/omuni-auth.service.js +164 -0
  101. package/dist/integrations/oms/omuni-auth.service.js.map +1 -0
  102. package/dist/integrations/oms/omuni.service.d.ts +17 -0
  103. package/dist/integrations/oms/omuni.service.d.ts.map +1 -0
  104. package/dist/integrations/oms/omuni.service.js +128 -0
  105. package/dist/integrations/oms/omuni.service.js.map +1 -0
  106. package/dist/integrations/oms/omuni.types.d.ts +65 -0
  107. package/dist/integrations/oms/omuni.types.d.ts.map +1 -0
  108. package/dist/integrations/oms/omuni.types.js +3 -0
  109. package/dist/integrations/oms/omuni.types.js.map +1 -0
  110. package/dist/integrations/shopify-theme/index.d.ts +3 -0
  111. package/dist/integrations/shopify-theme/index.d.ts.map +1 -0
  112. package/dist/integrations/shopify-theme/index.js +6 -0
  113. package/dist/integrations/shopify-theme/index.js.map +1 -0
  114. package/dist/integrations/shopify-theme/shopify-theme.module.d.ts +3 -0
  115. package/dist/integrations/shopify-theme/shopify-theme.module.d.ts.map +1 -0
  116. package/dist/integrations/shopify-theme/shopify-theme.module.js +16 -0
  117. package/dist/integrations/shopify-theme/shopify-theme.module.js.map +1 -0
  118. package/dist/integrations/shopify-theme/shopify-theme.service.d.ts +35 -0
  119. package/dist/integrations/shopify-theme/shopify-theme.service.d.ts.map +1 -0
  120. package/dist/integrations/shopify-theme/shopify-theme.service.js +155 -0
  121. package/dist/integrations/shopify-theme/shopify-theme.service.js.map +1 -0
  122. package/dist/queue/index.d.ts +3 -0
  123. package/dist/queue/index.d.ts.map +1 -0
  124. package/dist/queue/index.js +8 -0
  125. package/dist/queue/index.js.map +1 -0
  126. package/dist/queue/queue.module.d.ts +3 -0
  127. package/dist/queue/queue.module.d.ts.map +1 -0
  128. package/dist/queue/queue.module.js +17 -0
  129. package/dist/queue/queue.module.js.map +1 -0
  130. package/dist/queue/queue.service.d.ts +20 -0
  131. package/dist/queue/queue.service.d.ts.map +1 -0
  132. package/dist/queue/queue.service.js +119 -0
  133. package/dist/queue/queue.service.js.map +1 -0
  134. package/dist/theme/header-content.service.d.ts +142 -0
  135. package/dist/theme/header-content.service.d.ts.map +1 -0
  136. package/dist/theme/header-content.service.js +626 -0
  137. package/dist/theme/header-content.service.js.map +1 -0
  138. package/dist/theme/index.d.ts +5 -0
  139. package/dist/theme/index.d.ts.map +1 -0
  140. package/dist/theme/index.js +17 -0
  141. package/dist/theme/index.js.map +1 -0
  142. package/dist/theme/theme-content.interfaces.d.ts +79 -0
  143. package/dist/theme/theme-content.interfaces.d.ts.map +1 -0
  144. package/dist/theme/theme-content.interfaces.js +14 -0
  145. package/dist/theme/theme-content.interfaces.js.map +1 -0
  146. package/dist/theme/theme-content.service.d.ts +125 -0
  147. package/dist/theme/theme-content.service.d.ts.map +1 -0
  148. package/dist/theme/theme-content.service.js +738 -0
  149. package/dist/theme/theme-content.service.js.map +1 -0
  150. package/dist/theme/theme.module.d.ts +46 -0
  151. package/dist/theme/theme.module.d.ts.map +1 -0
  152. package/dist/theme/theme.module.js +76 -0
  153. package/dist/theme/theme.module.js.map +1 -0
  154. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shopify.service.js","sourceRoot":"","sources":["../../../src/integrations/commerce/shopify.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from './integration.types';
2
+ export * from './base-integration.service';
3
+ export * from './commerce';
4
+ export * from './oms';
5
+ export * from './loyalty';
6
+ export * from './shopify-theme';
7
+ export * from './integration.factory';
8
+ export * from './integrations.module';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,YAAY,CAAC;AAG3B,cAAc,OAAO,CAAC;AAGtB,cAAc,WAAW,CAAC;AAG1B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // Integration types and base services
5
+ tslib_1.__exportStar(require("./integration.types"), exports);
6
+ tslib_1.__exportStar(require("./base-integration.service"), exports);
7
+ // Commerce integrations (Shopify)
8
+ tslib_1.__exportStar(require("./commerce"), exports);
9
+ // OMS integrations (Omuni)
10
+ tslib_1.__exportStar(require("./oms"), exports);
11
+ // Loyalty integrations (Capillary)
12
+ tslib_1.__exportStar(require("./loyalty"), exports);
13
+ // Theme integration
14
+ tslib_1.__exportStar(require("./shopify-theme"), exports);
15
+ // Integration factory and module
16
+ tslib_1.__exportStar(require("./integration.factory"), exports);
17
+ tslib_1.__exportStar(require("./integrations.module"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,8DAAoC;AACpC,qEAA2C;AAE3C,kCAAkC;AAClC,qDAA2B;AAE3B,2BAA2B;AAC3B,gDAAsB;AAEtB,mCAAmC;AACnC,oDAA0B;AAE1B,oBAAoB;AACpB,0DAAgC;AAEhC,iCAAiC;AACjC,gEAAsC;AACtC,gEAAsC"}
@@ -0,0 +1,23 @@
1
+ import { ConfigService } from '../config/config.service';
2
+ import { BaseIntegrationService } from './base-integration.service';
3
+ import { IntegrationType } from './integration.types';
4
+ import { ShopifyCommerceService } from './commerce/shopify.service';
5
+ import { OmuniService } from './oms/omuni.service';
6
+ /**
7
+ * Integration Factory
8
+ *
9
+ * Creates and configures integration services for each brand.
10
+ */
11
+ export declare class IntegrationFactory {
12
+ private readonly configService;
13
+ private readonly shopifyCommerceService;
14
+ private readonly omuniService;
15
+ private instances;
16
+ constructor(configService: ConfigService, shopifyCommerceService: ShopifyCommerceService, omuniService: OmuniService);
17
+ get<T extends BaseIntegrationService>(brand: string, type: IntegrationType): T | null;
18
+ isAvailable(brand: string, type: IntegrationType): boolean;
19
+ getAvailable(brand: string): IntegrationType[];
20
+ private getIntegrationConfig;
21
+ private createService;
22
+ }
23
+ //# sourceMappingURL=integration.factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.factory.d.ts","sourceRoot":"","sources":["../../src/integrations/integration.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAe,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAA0B,MAAM,qBAAqB,CAAC;AAI9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;GAIG;AACH,qBACa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAL/B,OAAO,CAAC,SAAS,CAAwE;gBAGtE,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,YAAY;IAG7C,GAAG,CAAC,CAAC,SAAS,sBAAsB,EAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,GACpB,CAAC,GAAG,IAAI;IAiDX,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO;IAQ1D,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE;IAoB9C,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,aAAa;CAqBtB"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntegrationFactory = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const config_service_1 = require("../config/config.service");
7
+ const logger_1 = require("../common/logger");
8
+ // Import concrete integration services
9
+ const shopify_service_1 = require("./commerce/shopify.service");
10
+ const omuni_service_1 = require("./oms/omuni.service");
11
+ /**
12
+ * Integration Factory
13
+ *
14
+ * Creates and configures integration services for each brand.
15
+ */
16
+ let IntegrationFactory = class IntegrationFactory {
17
+ configService;
18
+ shopifyCommerceService;
19
+ omuniService;
20
+ instances = new Map();
21
+ constructor(configService, shopifyCommerceService, omuniService) {
22
+ this.configService = configService;
23
+ this.shopifyCommerceService = shopifyCommerceService;
24
+ this.omuniService = omuniService;
25
+ }
26
+ get(brand, type) {
27
+ const brandInstances = this.instances.get(brand);
28
+ if (brandInstances?.has(type)) {
29
+ return brandInstances.get(type);
30
+ }
31
+ const brandConfig = this.configService.getBrand(brand);
32
+ if (!brandConfig) {
33
+ logger_1.logger.warn('Brand not found for integration', { brand, type });
34
+ return null;
35
+ }
36
+ const integrationConfig = this.getIntegrationConfig(brandConfig, type);
37
+ if (!integrationConfig) {
38
+ return null;
39
+ }
40
+ const service = this.createService(type, integrationConfig.provider);
41
+ if (!service) {
42
+ logger_1.logger.warn('No service implementation for provider', {
43
+ brand,
44
+ type,
45
+ provider: integrationConfig.provider,
46
+ });
47
+ return null;
48
+ }
49
+ const headers = {
50
+ ...(integrationConfig.headers ?? {}),
51
+ };
52
+ if (integrationConfig.provider === 'shopify' && !headers['X-Shopify-Storefront-Access-Token']) {
53
+ headers['X-Shopify-Storefront-Access-Token'] = integrationConfig.apiKey;
54
+ }
55
+ service.configure(brand, {
56
+ baseUrl: integrationConfig.baseUrl,
57
+ apiKey: integrationConfig.apiKey,
58
+ headers,
59
+ ...integrationConfig.options,
60
+ });
61
+ if (!this.instances.has(brand)) {
62
+ this.instances.set(brand, new Map());
63
+ }
64
+ this.instances.get(brand).set(type, service);
65
+ return service;
66
+ }
67
+ isAvailable(brand, type) {
68
+ const brandConfig = this.configService.getBrand(brand);
69
+ if (!brandConfig)
70
+ return false;
71
+ const integrationConfig = this.getIntegrationConfig(brandConfig, type);
72
+ return integrationConfig !== null;
73
+ }
74
+ getAvailable(brand) {
75
+ const brandConfig = this.configService.getBrand(brand);
76
+ if (!brandConfig)
77
+ return [];
78
+ const types = [
79
+ 'commerce',
80
+ 'loyalty',
81
+ 'reviews',
82
+ 'wishlist',
83
+ 'engagement',
84
+ 'oms',
85
+ 'checkout',
86
+ 'payments',
87
+ 'search',
88
+ 'analytics',
89
+ ];
90
+ return types.filter((type) => this.isAvailable(brand, type));
91
+ }
92
+ getIntegrationConfig(brandConfig, type) {
93
+ return brandConfig.integrations?.[type] ?? null;
94
+ }
95
+ createService(type, provider) {
96
+ const serviceMap = {
97
+ commerce: {
98
+ shopify: this.shopifyCommerceService,
99
+ },
100
+ oms: {
101
+ omuni: this.omuniService,
102
+ },
103
+ };
104
+ const service = serviceMap[type]?.[provider];
105
+ if (!service) {
106
+ logger_1.logger.info('Integration service not yet implemented', { type, provider });
107
+ return null;
108
+ }
109
+ return service;
110
+ }
111
+ };
112
+ exports.IntegrationFactory = IntegrationFactory;
113
+ exports.IntegrationFactory = IntegrationFactory = tslib_1.__decorate([
114
+ (0, common_1.Injectable)(),
115
+ tslib_1.__metadata("design:paramtypes", [config_service_1.ConfigService,
116
+ shopify_service_1.ShopifyCommerceService,
117
+ omuni_service_1.OmuniService])
118
+ ], IntegrationFactory);
119
+ //# sourceMappingURL=integration.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.factory.js","sourceRoot":"","sources":["../../src/integrations/integration.factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Third-Party Integration Types
3
+ *
4
+ * This file defines the common types and interfaces for third-party integrations.
5
+ * Each integration (loyalty, reviews, wishlist, etc.) should extend these base types.
6
+ */
7
+ export interface IntegrationConfig {
8
+ /** Base URL for the integration API */
9
+ baseUrl: string;
10
+ /** API key or token for authentication */
11
+ apiKey: string;
12
+ /** Optional additional headers */
13
+ headers?: Record<string, string>;
14
+ /** Request timeout in milliseconds (default: 10000) */
15
+ timeout?: number;
16
+ /** Whether to enable request retries (default: true) */
17
+ retryEnabled?: boolean;
18
+ /** Maximum number of retries (default: 3) */
19
+ maxRetries?: number;
20
+ }
21
+ export interface IntegrationResponse<T> {
22
+ success: boolean;
23
+ data?: T;
24
+ error?: IntegrationError;
25
+ }
26
+ export interface IntegrationError {
27
+ code: string;
28
+ message: string;
29
+ details?: unknown;
30
+ }
31
+ export interface RetryOptions {
32
+ maxRetries: number;
33
+ baseDelayMs: number;
34
+ maxDelayMs: number;
35
+ }
36
+ /**
37
+ * Health check result for an integration
38
+ */
39
+ export interface IntegrationHealth {
40
+ name: string;
41
+ healthy: boolean;
42
+ latencyMs?: number;
43
+ error?: string;
44
+ }
45
+ /**
46
+ * Supported integration types
47
+ * Add new integration types here as you implement them
48
+ */
49
+ export type IntegrationType = 'commerce' | 'loyalty' | 'reviews' | 'wishlist' | 'engagement' | 'oms' | 'checkout' | 'payments' | 'search' | 'analytics';
50
+ /**
51
+ * Brand-specific integration configuration
52
+ * Add to your brand JSON config files
53
+ *
54
+ * Example in brands/tommy.json:
55
+ * {
56
+ * "slug": "tommy",
57
+ * "shopify": { ... },
58
+ * "integrations": {
59
+ * "loyalty": {
60
+ * "provider": "capillary",
61
+ * "baseUrl": "env:CAPILLARY_API_URL",
62
+ * "apiKey": "env:TOMMY_CAPILLARY_API_KEY"
63
+ * },
64
+ * "reviews": {
65
+ * "provider": "judgeme",
66
+ * "baseUrl": "https://judge.me/api/v1",
67
+ * "apiKey": "env:TOMMY_JUDGEME_API_KEY"
68
+ * }
69
+ * }
70
+ * }
71
+ */
72
+ export interface BrandIntegrationConfig {
73
+ provider: string;
74
+ baseUrl: string;
75
+ apiKey: string;
76
+ /** Custom headers for the integration (e.g., Shopify Storefront token header) */
77
+ headers?: Record<string, string>;
78
+ options?: Record<string, unknown>;
79
+ }
80
+ //# sourceMappingURL=integration.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.types.d.ts","sourceRoot":"","sources":["../../src/integrations/integration.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,SAAS,GACT,SAAS,GACT,UAAU,GACV,YAAY,GACZ,KAAK,GACL,UAAU,GACV,UAAU,GACV,QAAQ,GACR,WAAW,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Third-Party Integration Types
4
+ *
5
+ * This file defines the common types and interfaces for third-party integrations.
6
+ * Each integration (loyalty, reviews, wishlist, etc.) should extend these base types.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=integration.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.types.js","sourceRoot":"","sources":["../../src/integrations/integration.types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,3 @@
1
+ export declare class IntegrationsModule {
2
+ }
3
+ //# sourceMappingURL=integrations.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.module.d.ts","sourceRoot":"","sources":["../../src/integrations/integrations.module.ts"],"names":[],"mappings":"AAeA,qBAwBa,kBAAkB;CAAG"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntegrationsModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const integration_factory_1 = require("./integration.factory");
7
+ const base_integration_service_1 = require("./base-integration.service");
8
+ // Import integration services
9
+ const shopify_service_1 = require("./commerce/shopify.service");
10
+ const shopify_admin_service_1 = require("./commerce/shopify-admin.service");
11
+ const omuni_auth_service_1 = require("./oms/omuni-auth.service");
12
+ const omuni_service_1 = require("./oms/omuni.service");
13
+ // Capillary Loyalty
14
+ const capillary_auth_service_1 = require("./loyalty/capillary-auth.service");
15
+ const capillary_coupon_service_1 = require("./loyalty/capillary-coupon.service");
16
+ // CacheModule and ConfigModule are @Global() so no import needed
17
+ let IntegrationsModule = class IntegrationsModule {
18
+ };
19
+ exports.IntegrationsModule = IntegrationsModule;
20
+ exports.IntegrationsModule = IntegrationsModule = tslib_1.__decorate([
21
+ (0, common_1.Module)({
22
+ providers: [
23
+ integration_factory_1.IntegrationFactory,
24
+ base_integration_service_1.BaseIntegrationService,
25
+ // Commerce
26
+ shopify_service_1.ShopifyCommerceService,
27
+ shopify_admin_service_1.ShopifyAdminService,
28
+ // OMS
29
+ omuni_auth_service_1.OmuniAuthService,
30
+ omuni_service_1.OmuniService,
31
+ // Loyalty
32
+ capillary_auth_service_1.CapillaryAuthService,
33
+ capillary_coupon_service_1.CapillaryCouponService,
34
+ ],
35
+ exports: [
36
+ integration_factory_1.IntegrationFactory,
37
+ // Export specific services if needed by other modules directly:
38
+ shopify_service_1.ShopifyCommerceService,
39
+ shopify_admin_service_1.ShopifyAdminService,
40
+ omuni_service_1.OmuniService,
41
+ capillary_auth_service_1.CapillaryAuthService,
42
+ capillary_coupon_service_1.CapillaryCouponService,
43
+ ],
44
+ })
45
+ ], IntegrationsModule);
46
+ //# sourceMappingURL=integrations.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.module.js","sourceRoot":"","sources":["../../src/integrations/integrations.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,+DAA2D;AAC3D,yEAAoE;AAEpE,8BAA8B;AAC9B,gEAAoE;AACpE,4EAAuE;AACvE,iEAA4D;AAC5D,uDAAmD;AACnD,oBAAoB;AACpB,6EAAwE;AACxE,iFAA4E;AAE5E,iEAAiE;AA0B1D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,gDAAkB;6BAAlB,kBAAkB;IAxB9B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,wCAAkB;YAClB,iDAAsB;YACtB,WAAW;YACX,wCAAsB;YACtB,2CAAmB;YACnB,MAAM;YACN,qCAAgB;YAChB,4BAAY;YACZ,UAAU;YACV,6CAAoB;YACpB,iDAAsB;SACvB;QACD,OAAO,EAAE;YACP,wCAAkB;YAClB,gEAAgE;YAChE,wCAAsB;YACtB,2CAAmB;YACnB,4BAAY;YACZ,6CAAoB;YACpB,iDAAsB;SACvB;KACF,CAAC;GACW,kBAAkB,CAAG"}
@@ -0,0 +1,30 @@
1
+ import { CacheService } from '../../cache/cache.service';
2
+ import { ConfigService } from '../../config/config.service';
3
+ /**
4
+ * Capillary Authentication Service
5
+ *
6
+ * Handles OAuth token management with Redis caching.
7
+ */
8
+ export declare class CapillaryAuthService {
9
+ private readonly cacheService;
10
+ private readonly configService;
11
+ private tokenLocks;
12
+ private readonly TOKEN_TTL;
13
+ private readonly TOKEN_STALE_TTL;
14
+ constructor(cacheService: CacheService, configService: ConfigService);
15
+ getValidAccessToken(brand: string): Promise<string>;
16
+ private acquireTokenWithLock;
17
+ private refreshInBackground;
18
+ private generateToken;
19
+ getCapillaryConfig(brand: string): CapillaryConfig;
20
+ private getTokenKey;
21
+ }
22
+ export interface CapillaryConfig {
23
+ baseUrl: string;
24
+ accessKey: string;
25
+ accessSecret: string;
26
+ ecomStoreId: string;
27
+ tillId: string;
28
+ returnPolicyDays: number;
29
+ }
30
+ //# sourceMappingURL=capillary-auth.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capillary-auth.service.d.ts","sourceRoot":"","sources":["../../../src/integrations/loyalty/capillary-auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D;;;;GAIG;AACH,qBACa,oBAAoB;IAO7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAPhC,OAAO,CAAC,UAAU,CAAsC;IAExD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;gBAGrB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa;IAGzC,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAgB3C,oBAAoB;IAgBlC,OAAO,CAAC,mBAAmB;YAab,aAAa;IAsC3B,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAoBlD,OAAO,CAAC,WAAW;CAGpB;AAYD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CapillaryAuthService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const cache_service_1 = require("../../cache/cache.service");
7
+ const config_service_1 = require("../../config/config.service");
8
+ const logger_1 = require("../../common/logger");
9
+ /**
10
+ * Capillary Authentication Service
11
+ *
12
+ * Handles OAuth token management with Redis caching.
13
+ */
14
+ let CapillaryAuthService = class CapillaryAuthService {
15
+ cacheService;
16
+ configService;
17
+ tokenLocks = new Map();
18
+ TOKEN_TTL = 3000; // 50 minutes
19
+ TOKEN_STALE_TTL = 2700; // 45 minutes
20
+ constructor(cacheService, configService) {
21
+ this.cacheService = cacheService;
22
+ this.configService = configService;
23
+ }
24
+ async getValidAccessToken(brand) {
25
+ const cacheKey = this.getTokenKey(brand);
26
+ const cached = await this.cacheService.get(cacheKey);
27
+ if (cached && !cached.isStale) {
28
+ return cached.data;
29
+ }
30
+ if (cached?.isStale) {
31
+ this.refreshInBackground(brand);
32
+ return cached.data;
33
+ }
34
+ return this.acquireTokenWithLock(brand);
35
+ }
36
+ async acquireTokenWithLock(brand) {
37
+ const existingLock = this.tokenLocks.get(brand);
38
+ if (existingLock) {
39
+ return existingLock;
40
+ }
41
+ const refreshPromise = this.generateToken(brand);
42
+ this.tokenLocks.set(brand, refreshPromise);
43
+ try {
44
+ return await refreshPromise;
45
+ }
46
+ finally {
47
+ this.tokenLocks.delete(brand);
48
+ }
49
+ }
50
+ refreshInBackground(brand) {
51
+ if (this.tokenLocks.has(brand)) {
52
+ return;
53
+ }
54
+ this.acquireTokenWithLock(brand).catch((error) => {
55
+ logger_1.logger.error('Capillary background token refresh failed', {
56
+ brand,
57
+ error: error instanceof Error ? error.message : 'Unknown',
58
+ });
59
+ });
60
+ }
61
+ async generateToken(brand) {
62
+ const config = this.getCapillaryConfig(brand);
63
+ const url = `${config.baseUrl}/v3/oauth/token/generate`;
64
+ logger_1.logger.info('Generating Capillary OAuth token', { brand });
65
+ const response = await fetch(url, {
66
+ method: 'POST',
67
+ headers: { 'Content-Type': 'application/json' },
68
+ body: JSON.stringify({
69
+ key: config.accessKey,
70
+ secret: config.accessSecret,
71
+ }),
72
+ });
73
+ if (!response.ok) {
74
+ const error = await response.text();
75
+ throw new Error(`Capillary token generation failed: ${error}`);
76
+ }
77
+ const responseData = (await response.json());
78
+ const accessToken = responseData.data?.accessToken;
79
+ if (!accessToken) {
80
+ throw new Error('Capillary token generation failed: No access token in response');
81
+ }
82
+ await this.cacheService.set(this.getTokenKey(brand), accessToken, this.TOKEN_TTL, this.TOKEN_STALE_TTL);
83
+ logger_1.logger.info('Capillary token generated successfully', { brand });
84
+ return accessToken;
85
+ }
86
+ getCapillaryConfig(brand) {
87
+ const brandConfig = this.configService.getBrand(brand);
88
+ const loyaltyConfig = brandConfig?.integrations?.loyalty;
89
+ if (!loyaltyConfig || loyaltyConfig.provider !== 'capillary') {
90
+ throw new Error(`Capillary loyalty not configured for brand: ${brand}`);
91
+ }
92
+ const options = loyaltyConfig.options ?? {};
93
+ return {
94
+ baseUrl: loyaltyConfig.baseUrl,
95
+ accessKey: options.accessKey,
96
+ accessSecret: options.accessSecret,
97
+ ecomStoreId: options.ecomStoreId,
98
+ tillId: options.tillId,
99
+ returnPolicyDays: options.returnPolicyDays ?? 10,
100
+ };
101
+ }
102
+ getTokenKey(brand) {
103
+ return `${brand}:capillary:access_token`;
104
+ }
105
+ };
106
+ exports.CapillaryAuthService = CapillaryAuthService;
107
+ exports.CapillaryAuthService = CapillaryAuthService = tslib_1.__decorate([
108
+ (0, common_1.Injectable)(),
109
+ tslib_1.__metadata("design:paramtypes", [cache_service_1.CacheService,
110
+ config_service_1.ConfigService])
111
+ ], CapillaryAuthService);
112
+ //# sourceMappingURL=capillary-auth.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capillary-auth.service.js","sourceRoot":"","sources":["../../../src/integrations/loyalty/capillary-auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { CapillaryAuthService } from './capillary-auth.service';
2
+ import { CouponValidationResult, TransactionRequest, TransactionResponse, CouponReactivateResponse, CouponRevokeResponse, TransactionCoupon } from './capillary.types';
3
+ /**
4
+ * Capillary Coupon Service
5
+ *
6
+ * Handles coupon operations with Capillary APIs.
7
+ */
8
+ export declare class CapillaryCouponService {
9
+ private readonly authService;
10
+ private readonly COUPON_PREFIX;
11
+ private readonly API_TIMEOUT;
12
+ constructor(authService: CapillaryAuthService);
13
+ isCapillaryCoupon(code: string): boolean;
14
+ extractCapillaryCode(shopifyCode: string): string | null;
15
+ validateCoupon(brand: string, couponCode: string, mobile: string): Promise<CouponValidationResult>;
16
+ createTransaction(brand: string, request: TransactionRequest): Promise<TransactionResponse>;
17
+ getCouponsByTransaction(brand: string, mobile: string, transactionNumber: string): Promise<TransactionCoupon[]>;
18
+ reactivateCoupons(brand: string, redemptionIds: number[]): Promise<CouponReactivateResponse>;
19
+ revokeCoupons(brand: string, couponSeriesId: number, couponCodes: string[]): Promise<CouponRevokeResponse>;
20
+ private parseValidationResponse;
21
+ private getHeaders;
22
+ private fetchWithTimeout;
23
+ }
24
+ //# sourceMappingURL=capillary-coupon.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capillary-coupon.service.d.ts","sourceRoot":"","sources":["../../../src/integrations/loyalty/capillary-coupon.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EAIlB,MAAM,mBAAmB,CAAC;AAE3B;;;;GAIG;AACH,qBACa,sBAAsB;IAIrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAHxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAEP,WAAW,EAAE,oBAAoB;IAE9D,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAelD,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,sBAAsB,CAAC;IAkD5B,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC;IAgGzB,uBAAuB,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA8CzB,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,wBAAwB,CAAC;IAwD9B,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,oBAAoB,CAAC;IAyDhC,OAAO,CAAC,uBAAuB;IAoE/B,OAAO,CAAC,UAAU;YASJ,gBAAgB;CAmB/B"}