@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.
- package/README.md +97 -0
- package/dist/cache/cache.module.d.ts +3 -0
- package/dist/cache/cache.module.d.ts.map +1 -0
- package/dist/cache/cache.module.js +17 -0
- package/dist/cache/cache.module.js.map +1 -0
- package/dist/cache/cache.service.d.ts +38 -0
- package/dist/cache/cache.service.d.ts.map +1 -0
- package/dist/cache/cache.service.js +173 -0
- package/dist/cache/cache.service.js.map +1 -0
- package/dist/cache/index.d.ts +3 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/common/guards/tenant.guard.d.ts +8 -0
- package/dist/common/guards/tenant.guard.d.ts.map +1 -0
- package/dist/common/guards/tenant.guard.js +44 -0
- package/dist/common/guards/tenant.guard.js.map +1 -0
- package/dist/common/index.d.ts +3 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +6 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/logger.d.ts +7 -0
- package/dist/common/logger.d.ts.map +1 -0
- package/dist/common/logger.js +28 -0
- package/dist/common/logger.js.map +1 -0
- package/dist/config/config.module.d.ts +3 -0
- package/dist/config/config.module.d.ts.map +1 -0
- package/dist/config/config.module.js +17 -0
- package/dist/config/config.module.js.map +1 -0
- package/dist/config/config.service.d.ts +55 -0
- package/dist/config/config.service.d.ts.map +1 -0
- package/dist/config/config.service.js +212 -0
- package/dist/config/config.service.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/base-integration.service.d.ts +59 -0
- package/dist/integrations/base-integration.service.d.ts.map +1 -0
- package/dist/integrations/base-integration.service.js +227 -0
- package/dist/integrations/base-integration.service.js.map +1 -0
- package/dist/integrations/commerce/commerce.types.d.ts +301 -0
- package/dist/integrations/commerce/commerce.types.d.ts.map +1 -0
- package/dist/integrations/commerce/commerce.types.js +9 -0
- package/dist/integrations/commerce/commerce.types.js.map +1 -0
- package/dist/integrations/commerce/index.d.ts +4 -0
- package/dist/integrations/commerce/index.d.ts.map +1 -0
- package/dist/integrations/commerce/index.js +7 -0
- package/dist/integrations/commerce/index.js.map +1 -0
- package/dist/integrations/commerce/shopify-admin.service.d.ts +35 -0
- package/dist/integrations/commerce/shopify-admin.service.d.ts.map +1 -0
- package/dist/integrations/commerce/shopify-admin.service.js +269 -0
- package/dist/integrations/commerce/shopify-admin.service.js.map +1 -0
- package/dist/integrations/commerce/shopify.service.d.ts +43 -0
- package/dist/integrations/commerce/shopify.service.d.ts.map +1 -0
- package/dist/integrations/commerce/shopify.service.js +735 -0
- package/dist/integrations/commerce/shopify.service.js.map +1 -0
- package/dist/integrations/index.d.ts +9 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +18 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/integration.factory.d.ts +23 -0
- package/dist/integrations/integration.factory.d.ts.map +1 -0
- package/dist/integrations/integration.factory.js +119 -0
- package/dist/integrations/integration.factory.js.map +1 -0
- package/dist/integrations/integration.types.d.ts +80 -0
- package/dist/integrations/integration.types.d.ts.map +1 -0
- package/dist/integrations/integration.types.js +9 -0
- package/dist/integrations/integration.types.js.map +1 -0
- package/dist/integrations/integrations.module.d.ts +3 -0
- package/dist/integrations/integrations.module.d.ts.map +1 -0
- package/dist/integrations/integrations.module.js +46 -0
- package/dist/integrations/integrations.module.js.map +1 -0
- package/dist/integrations/loyalty/capillary-auth.service.d.ts +30 -0
- package/dist/integrations/loyalty/capillary-auth.service.d.ts.map +1 -0
- package/dist/integrations/loyalty/capillary-auth.service.js +112 -0
- package/dist/integrations/loyalty/capillary-auth.service.js.map +1 -0
- package/dist/integrations/loyalty/capillary-coupon.service.d.ts +24 -0
- package/dist/integrations/loyalty/capillary-coupon.service.d.ts.map +1 -0
- package/dist/integrations/loyalty/capillary-coupon.service.js +383 -0
- package/dist/integrations/loyalty/capillary-coupon.service.js.map +1 -0
- package/dist/integrations/loyalty/capillary.types.d.ts +218 -0
- package/dist/integrations/loyalty/capillary.types.d.ts.map +1 -0
- package/dist/integrations/loyalty/capillary.types.js +21 -0
- package/dist/integrations/loyalty/capillary.types.js.map +1 -0
- package/dist/integrations/loyalty/index.d.ts +4 -0
- package/dist/integrations/loyalty/index.d.ts.map +1 -0
- package/dist/integrations/loyalty/index.js +7 -0
- package/dist/integrations/loyalty/index.js.map +1 -0
- package/dist/integrations/oms/index.d.ts +4 -0
- package/dist/integrations/oms/index.d.ts.map +1 -0
- package/dist/integrations/oms/index.js +7 -0
- package/dist/integrations/oms/index.js.map +1 -0
- package/dist/integrations/oms/omuni-auth.service.d.ts +29 -0
- package/dist/integrations/oms/omuni-auth.service.d.ts.map +1 -0
- package/dist/integrations/oms/omuni-auth.service.js +164 -0
- package/dist/integrations/oms/omuni-auth.service.js.map +1 -0
- package/dist/integrations/oms/omuni.service.d.ts +17 -0
- package/dist/integrations/oms/omuni.service.d.ts.map +1 -0
- package/dist/integrations/oms/omuni.service.js +128 -0
- package/dist/integrations/oms/omuni.service.js.map +1 -0
- package/dist/integrations/oms/omuni.types.d.ts +65 -0
- package/dist/integrations/oms/omuni.types.d.ts.map +1 -0
- package/dist/integrations/oms/omuni.types.js +3 -0
- package/dist/integrations/oms/omuni.types.js.map +1 -0
- package/dist/integrations/shopify-theme/index.d.ts +3 -0
- package/dist/integrations/shopify-theme/index.d.ts.map +1 -0
- package/dist/integrations/shopify-theme/index.js +6 -0
- package/dist/integrations/shopify-theme/index.js.map +1 -0
- package/dist/integrations/shopify-theme/shopify-theme.module.d.ts +3 -0
- package/dist/integrations/shopify-theme/shopify-theme.module.d.ts.map +1 -0
- package/dist/integrations/shopify-theme/shopify-theme.module.js +16 -0
- package/dist/integrations/shopify-theme/shopify-theme.module.js.map +1 -0
- package/dist/integrations/shopify-theme/shopify-theme.service.d.ts +35 -0
- package/dist/integrations/shopify-theme/shopify-theme.service.d.ts.map +1 -0
- package/dist/integrations/shopify-theme/shopify-theme.service.js +155 -0
- package/dist/integrations/shopify-theme/shopify-theme.service.js.map +1 -0
- package/dist/queue/index.d.ts +3 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +8 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/queue.module.d.ts +3 -0
- package/dist/queue/queue.module.d.ts.map +1 -0
- package/dist/queue/queue.module.js +17 -0
- package/dist/queue/queue.module.js.map +1 -0
- package/dist/queue/queue.service.d.ts +20 -0
- package/dist/queue/queue.service.d.ts.map +1 -0
- package/dist/queue/queue.service.js +119 -0
- package/dist/queue/queue.service.js.map +1 -0
- package/dist/theme/header-content.service.d.ts +142 -0
- package/dist/theme/header-content.service.d.ts.map +1 -0
- package/dist/theme/header-content.service.js +626 -0
- package/dist/theme/header-content.service.js.map +1 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +17 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/theme-content.interfaces.d.ts +79 -0
- package/dist/theme/theme-content.interfaces.d.ts.map +1 -0
- package/dist/theme/theme-content.interfaces.js +14 -0
- package/dist/theme/theme-content.interfaces.js.map +1 -0
- package/dist/theme/theme-content.service.d.ts +125 -0
- package/dist/theme/theme-content.service.d.ts.map +1 -0
- package/dist/theme/theme-content.service.js +738 -0
- package/dist/theme/theme-content.service.js.map +1 -0
- package/dist/theme/theme.module.d.ts +46 -0
- package/dist/theme/theme.module.d.ts.map +1 -0
- package/dist/theme/theme.module.js +76 -0
- package/dist/theme/theme.module.js.map +1 -0
- 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 @@
|
|
|
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"}
|