@rudderstack/integrations-lib 0.2.57 → 0.2.58

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 (61) hide show
  1. package/build/index.d.ts +1 -0
  2. package/build/index.d.ts.map +1 -1
  3. package/build/index.js +2 -1
  4. package/build/mock_utils/index.d.ts +2 -0
  5. package/build/mock_utils/index.d.ts.map +1 -0
  6. package/build/mock_utils/index.js +9 -0
  7. package/build/network/clients/axios_client.d.ts +6 -5
  8. package/build/network/clients/axios_client.d.ts.map +1 -1
  9. package/build/network/clients/axios_client.js +75 -40
  10. package/build/network/clients/types.d.ts +93 -5
  11. package/build/network/clients/types.d.ts.map +1 -1
  12. package/build/network/clients/types.js +1 -1
  13. package/build/network/factory.d.ts +12 -2
  14. package/build/network/factory.d.ts.map +1 -1
  15. package/build/network/factory.js +24 -1
  16. package/build/sdks/common/base-sdk.d.ts +64 -0
  17. package/build/sdks/common/base-sdk.d.ts.map +1 -0
  18. package/build/sdks/common/base-sdk.js +182 -0
  19. package/build/sdks/common/index.d.ts +3 -0
  20. package/build/sdks/common/index.d.ts.map +1 -0
  21. package/build/sdks/common/index.js +7 -0
  22. package/build/sdks/common/types.d.ts +13 -0
  23. package/build/sdks/common/types.d.ts.map +1 -0
  24. package/build/sdks/common/types.js +3 -0
  25. package/build/sdks/criteoAudience/criteoAudience.d.ts +11 -39
  26. package/build/sdks/criteoAudience/criteoAudience.d.ts.map +1 -1
  27. package/build/sdks/criteoAudience/criteoAudience.js +33 -69
  28. package/build/sdks/criteoAudience/types.d.ts +3 -0
  29. package/build/sdks/criteoAudience/types.d.ts.map +1 -1
  30. package/build/sdks/criteoAudience/types.js +1 -1
  31. package/build/sdks/customerio_audience/index.d.ts +11 -15
  32. package/build/sdks/customerio_audience/index.d.ts.map +1 -1
  33. package/build/sdks/customerio_audience/index.js +23 -34
  34. package/build/sdks/customerio_audience/type.d.ts +3 -0
  35. package/build/sdks/customerio_audience/type.d.ts.map +1 -1
  36. package/build/sdks/customerio_audience/type.js +1 -1
  37. package/build/sdks/googleAdsRestAPI/googleAds.d.ts +16 -17
  38. package/build/sdks/googleAdsRestAPI/googleAds.d.ts.map +1 -1
  39. package/build/sdks/googleAdsRestAPI/googleAds.js +44 -37
  40. package/build/sdks/googleAdsRestAPI/types.d.ts +3 -0
  41. package/build/sdks/googleAdsRestAPI/types.d.ts.map +1 -1
  42. package/build/sdks/googleAdsRestAPI/types.js +1 -1
  43. package/build/sdks/index.d.ts +1 -0
  44. package/build/sdks/index.d.ts.map +1 -1
  45. package/build/sdks/index.js +5 -1
  46. package/build/sdks/sfmc/index.d.ts +1 -1
  47. package/build/sdks/sfmc/index.d.ts.map +1 -1
  48. package/build/sdks/sfmc/index.js +4 -3
  49. package/build/sdks/zoho/types.d.ts +3 -0
  50. package/build/sdks/zoho/types.d.ts.map +1 -1
  51. package/build/sdks/zoho/types.js +1 -1
  52. package/build/sdks/zoho/zoho.d.ts +13 -17
  53. package/build/sdks/zoho/zoho.d.ts.map +1 -1
  54. package/build/sdks/zoho/zoho.js +44 -51
  55. package/mock/index.d.ts +1 -1
  56. package/mock/index.d.ts.map +1 -1
  57. package/mock/index.js +6 -15
  58. package/package.json +1 -1
  59. package/mock/axios_client_mock_util.d.ts +0 -3
  60. package/mock/axios_client_mock_util.d.ts.map +0 -1
  61. package/mock/axios_client_mock_util.js +0 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-sdk.d.ts","sourceRoot":"","sources":["../../../src/sdks/common/base-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EAGV,QAAQ,EACT,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,YAAY,EAAE,aAAa,EAAE,CAAC;AAG9B;;;;GAIG;AACH,8BAAsB,OAAO,CAAC,WAAW,EAAE,OAAO,SAAS,aAAa,GAAG,aAAa;IACtF,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;IAElC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;IAEjC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;gBAEf,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO;IAQrD,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAM9C,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAG5D,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM9C,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;IAK5D,SAAS,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAExC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;cACa,cAAc,CAAC,CAAC,EAC9B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,EACnD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAmB1B;;;OAGG;IACH,SAAS,CAAC,sCAAsC,CAAC,CAAC,EAChD,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,EACnD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,QAAQ,EACnB,UAAU,SAAI,GACb,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1B;;OAEG;YACW,8BAA8B;IA+E5C;;;OAGG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIhF;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIhG;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAI/F;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAInF;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,CAAC,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAG3B"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSDK = void 0;
4
+ const factory_1 = require("../../network/factory");
5
+ // Note: StatTags is exported from src/network/index.ts to avoid duplicate exports
6
+ /**
7
+ * Abstract base class for all SDKs
8
+ * Provides common functionality including HTTP client management, request execution,
9
+ * retry logic, and enhanced features when configured
10
+ */
11
+ class BaseSDK {
12
+ constructor(authObject, config) {
13
+ this.validateAuthObject(authObject);
14
+ this.authObject = authObject;
15
+ this.config = config;
16
+ this.httpClient = this.initializeHttpClient();
17
+ }
18
+ // eslint-disable-next-line class-methods-use-this
19
+ validateAuthObject(_authObject) {
20
+ // Default implementation does nothing - override if validation is needed
21
+ // Most SDKs will want to override this to validate required fields
22
+ }
23
+ // eslint-disable-next-line class-methods-use-this
24
+ getHeaders() {
25
+ // Default implementation returns empty headers - override to add headers
26
+ return {};
27
+ }
28
+ // eslint-disable-next-line class-methods-use-this
29
+ shouldRetryOnError(_response) {
30
+ // Default implementation does not retry - override if retry logic is needed
31
+ return false;
32
+ }
33
+ /**
34
+ * Initialize HTTP client based on configuration
35
+ * Uses enhanced client with metrics/logging if config provided, otherwise basic client
36
+ * No baseURL is set - SDKs will use buildRequestUrl() to construct full URLs
37
+ */
38
+ initializeHttpClient() {
39
+ // If enhanced config provided, use HTTP client with metrics/logging
40
+ if (this.config?.httpClient) {
41
+ const { logger, statsClient, defaultStatTags } = this.config.httpClient;
42
+ if (logger !== undefined || statsClient !== undefined) {
43
+ // Use enhanced HTTP client with metrics and logging
44
+ return factory_1.HttpClientFactory.getHttpClientWithMetrics(factory_1.ClientNames.Axios, logger, statsClient, defaultStatTags);
45
+ }
46
+ }
47
+ // Fallback to basic HTTP client (backward compatibility)
48
+ return factory_1.HttpClientFactory.getHttpClient(factory_1.ClientNames.Axios);
49
+ }
50
+ /**
51
+ * Execute HTTP request - single attempt, no retry logic
52
+ */
53
+ async executeRequest(method, endpoint, data, statTags) {
54
+ try {
55
+ const headers = this.getHeaders();
56
+ const requestConfig = {
57
+ headers,
58
+ };
59
+ const fullUrl = this.buildRequestUrl(endpoint);
60
+ return await this.makeHttpRequest(method, fullUrl, data, requestConfig, statTags);
61
+ }
62
+ catch (error) {
63
+ return {
64
+ type: 'client-error',
65
+ statusCode: 0,
66
+ message: error instanceof Error ? error.message : 'Unknown error',
67
+ responseBody: error,
68
+ };
69
+ }
70
+ }
71
+ /**
72
+ * Execute HTTP request with configurable token refresh attempts
73
+ * For SDKs that need more control over retry behavior
74
+ */
75
+ executeRequestWithTokenRefreshAttempts(method, endpoint, data, statTags, maxRetries = 1) {
76
+ return this.executeRequestWithRetryAttempt(method, endpoint, maxRetries, 0, data, statTags);
77
+ }
78
+ /**
79
+ * Internal recursive method for retry attempts
80
+ */
81
+ async executeRequestWithRetryAttempt(method, endpoint, maxRetries, currentAttempt, data, statTags) {
82
+ try {
83
+ const headers = this.getHeaders();
84
+ const requestConfig = {
85
+ headers,
86
+ };
87
+ const fullUrl = this.buildRequestUrl(endpoint);
88
+ const response = await this.makeHttpRequest(method, fullUrl, data, requestConfig, statTags);
89
+ // If successful or not retryable, return response
90
+ if (response.type === 'success' || !this.shouldRetryOnError(response)) {
91
+ return response;
92
+ }
93
+ // If refreshToken is not implemented, return the response
94
+ if (!this.refreshToken) {
95
+ return response;
96
+ }
97
+ // If this is the last attempt, return the response
98
+ if (currentAttempt >= maxRetries) {
99
+ return response;
100
+ }
101
+ // Refresh token and retry
102
+ await this.refreshToken();
103
+ return await this.executeRequestWithRetryAttempt(method, endpoint, maxRetries, currentAttempt + 1, data, statTags);
104
+ }
105
+ catch (error) {
106
+ const errorResponse = {
107
+ type: 'client-error',
108
+ statusCode: 0,
109
+ message: error instanceof Error ? error.message : 'Unknown error',
110
+ responseBody: error,
111
+ };
112
+ // If refreshToken is not implemented, return the response
113
+ if (!this.refreshToken) {
114
+ return errorResponse;
115
+ }
116
+ // If this is the last attempt, return error
117
+ if (currentAttempt >= maxRetries) {
118
+ return errorResponse;
119
+ }
120
+ // Refresh token and retry
121
+ await this.refreshToken();
122
+ return await this.executeRequestWithRetryAttempt(method, endpoint, maxRetries, currentAttempt + 1, data, statTags);
123
+ }
124
+ }
125
+ /**
126
+ * Make HTTP request based on method - eliminates code duplication
127
+ * Passes statTags to HTTP client for metrics and logging
128
+ */
129
+ makeHttpRequest(method, url, data, requestConfig, statTags) {
130
+ // Add statTags to request config for HTTP client
131
+ const configWithStatTags = {
132
+ ...requestConfig,
133
+ statTags,
134
+ };
135
+ switch (method) {
136
+ case 'get':
137
+ return this.httpClient.get(url, configWithStatTags);
138
+ case 'post':
139
+ return this.httpClient.post(url, data, configWithStatTags);
140
+ case 'put':
141
+ return this.httpClient.put(url, data, configWithStatTags);
142
+ case 'delete':
143
+ return this.httpClient.delete(url, configWithStatTags);
144
+ case 'patch':
145
+ return this.httpClient.patch(url, data, configWithStatTags);
146
+ default:
147
+ throw new Error(`Unsupported HTTP method: ${method}`);
148
+ }
149
+ }
150
+ /**
151
+ * Convenience method for GET requests
152
+ */
153
+ get(endpoint, statTags) {
154
+ return this.executeRequest('get', endpoint, undefined, statTags);
155
+ }
156
+ /**
157
+ * Convenience method for POST requests
158
+ */
159
+ post(endpoint, data, statTags) {
160
+ return this.executeRequest('post', endpoint, data, statTags);
161
+ }
162
+ /**
163
+ * Convenience method for PUT requests
164
+ */
165
+ put(endpoint, data, statTags) {
166
+ return this.executeRequest('put', endpoint, data, statTags);
167
+ }
168
+ /**
169
+ * Convenience method for DELETE requests
170
+ */
171
+ delete(endpoint, statTags) {
172
+ return this.executeRequest('delete', endpoint, undefined, statTags);
173
+ }
174
+ /**
175
+ * Convenience method for PATCH requests
176
+ */
177
+ patch(endpoint, data, statTags) {
178
+ return this.executeRequest('patch', endpoint, data, statTags);
179
+ }
180
+ }
181
+ exports.BaseSDK = BaseSDK;
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZGsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jb21tb24vYmFzZS1zZGsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsbURBQXVFO0FBS3ZFLGtGQUFrRjtBQUVsRjs7OztHQUlHO0FBQ0gsTUFBc0IsT0FBTztJQU8zQixZQUFZLFVBQXVCLEVBQUUsTUFBZ0I7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxrQkFBa0IsQ0FBQyxXQUFvQjtRQUNyQyx5RUFBeUU7UUFDekUsbUVBQW1FO0lBQ3JFLENBQUM7SUFLRCxrREFBa0Q7SUFDeEMsVUFBVTtRQUNsQix5RUFBeUU7UUFDekUsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsa0RBQWtEO0lBQ2xELGtCQUFrQixDQUFDLFNBQStCO1FBQ2hELDRFQUE0RTtRQUM1RSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFJRDs7OztPQUlHO0lBQ0ssb0JBQW9CO1FBQzFCLG9FQUFvRTtRQUNwRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDNUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFFeEUsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDdEQsb0RBQW9EO2dCQUNwRCxPQUFPLDJCQUFpQixDQUFDLHdCQUF3QixDQUMvQyxxQkFBVyxDQUFDLEtBQUssRUFD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Q0FBQyxjQUFjLENBQUksT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBaFFELDBCQWdRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwaVJlc3BvbnNlLFxuICBIdHRwQ2xpZW50LFxuICBJSHR0cExvZ2dlcixcbiAgSUh0dHBTdGF0c0NsaWVudCxcbiAgU3RhdFRhZ3MsXG59IGZyb20gJy4uLy4uL25ldHdvcmsvY2xpZW50cy90eXBlcyc7XG5pbXBvcnQgeyBDbGllbnROYW1lcywgSHR0cENsaWVudEZhY3RvcnkgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2ZhY3RvcnknO1xuaW1wb3J0IHsgQmFzZVNES0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBSZS1leHBvcnQgdHlwZXMgZm9yIGNvbnZlbmllbmNlXG5leHBvcnQgdHlwZSB7IEJhc2VTREtDb25maWcgfTtcbi8vIE5vdGU6IFN0YXRUYWdzIGlzIGV4cG9ydGVkIGZyb20gc3JjL25ldHdvcmsvaW5kZXgudHMgdG8gYXZvaWQgZHVwbGljYXRlIGV4cG9ydHNcblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbGwgU0RLc1xuICogUHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgaW5jbHVkaW5nIEhUVFAgY2xpZW50IG1hbmFnZW1lbnQsIHJlcXVlc3QgZXhlY3V0aW9uLFxuICogcmV0cnkgbG9naWMsIGFuZCBlbmhhbmNlZCBmZWF0dXJlcyB3aGVuIGNvbmZpZ3VyZWRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTREs8VEF1dGhPYmplY3QsIFRDb25maWcgZXh0ZW5kcyBCYXNlU0RLQ29uZmlnID0gQmFzZVNES0NvbmZpZz4ge1xuICBwcm90ZWN0ZWQgYXV0aE9iamVjdDogVEF1dGhPYmplY3Q7XG5cbiAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZz86IFRDb25maWc7XG5cbiAgY29uc3RydWN0b3IoYXV0aE9iamVjdDogVEF1dGhPYmplY3QsIGNvbmZpZz86IFRDb25maWcpIHtcbiAgICB0aGlzLnZhbGlkYXRlQXV0aE9iamVjdChhdXRoT2JqZWN0KTtcbiAgICB0aGlzLmF1dGhPYmplY3QgPSBhdXRoT2JqZWN0O1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuaHR0cENsaWVudCA9IHRoaXMuaW5pdGlhbGl6ZUh0dHBDbGllbnQoKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIHZhbGlkYXRlQXV0aE9iamVjdChfYXV0aE9iamVjdDogdW5rbm93bik6IHZvaWQge1xuICAgIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lcyBub3RoaW5nIC0gb3ZlcnJpZGUgaWYgdmFsaWRhdGlvbiBpcyBuZWVkZWRcbiAgICAvLyBNb3N0IFNES3Mgd2lsbCB3YW50IHRvIG92ZXJyaWRlIHRoaXMgdG8gdmFsaWRhdGUgcmVxdWlyZWQgZmllbGRzXG4gIH1cblxuICAvLyBBYnN0cmFjdCBtZXRob2QgZm9yIGJ1aWxkaW5nIHJlcXVlc3QgVVJMcyAtIGVhY2ggU0RLIGltcGxlbWVudHMgaXRzIG93biBVUkwgY29uc3RydWN0aW9uIGxvZ2ljXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBidWlsZFJlcXVlc3RVcmwoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICBwcm90ZWN0ZWQgZ2V0SGVhZGVycygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgZW1wdHkgaGVhZGVycyAtIG92ZXJyaWRlIHRvIGFkZCBoZWFkZXJzXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgc2hvdWxkUmV0cnlPbkVycm9yKF9yZXNwb25zZTogQXBpUmVzcG9uc2U8dW5rbm93bj4pOiBib29sZWFuIHtcbiAgICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHJldHJ5IC0gb3ZlcnJpZGUgaWYgcmV0cnkgbG9naWMgaXMgbmVlZGVkXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZnJlc2hUb2tlbj8oKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBIVFRQIGNsaWVudCBiYXNlZCBvbiBjb25maWd1cmF0aW9uXG4gICAqIFVzZXMgZW5oYW5jZWQgY2xpZW50IHdpdGggbWV0cmljcy9sb2dnaW5nIGlmIGNvbmZpZyBwcm92aWRlZCwgb3RoZXJ3aXNlIGJhc2ljIGNsaWVudFxuICAgKiBObyBiYXNlVVJMIGlzIHNldCAtIFNES3Mgd2lsbCB1c2UgYnVpbGRSZXF1ZXN0VXJsKCkgdG8gY29uc3RydWN0IGZ1bGwgVVJMc1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplSHR0cENsaWVudCgpOiBIdHRwQ2xpZW50IHtcbiAgICAvLyBJZiBlbmhhbmNlZCBjb25maWcgcHJvdmlkZWQsIHVzZSBIVFRQIGNsaWVudCB3aXRoIG1ldHJpY3MvbG9nZ2luZ1xuICAgIGlmICh0aGlzLmNvbmZpZz8uaHR0cENsaWVudCkge1xuICAgICAgY29uc3QgeyBsb2dnZXIsIHN0YXRzQ2xpZW50LCBkZWZhdWx0U3RhdFRhZ3MgfSA9IHRoaXMuY29uZmlnLmh0dHBDbGllbnQ7XG5cbiAgICAgIGlmIChsb2dnZXIgIT09IHVuZGVmaW5lZCB8fCBzdGF0c0NsaWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIFVzZSBlbmhhbmNlZCBIVFRQIGNsaWVudCB3aXRoIG1ldHJpY3MgYW5kIGxvZ2dpbmdcbiAgICAgICAgcmV0dXJuIEh0dHBDbGllbnRGYWN0b3J5LmdldEh0dHBDbGllbnRXaXRoTWV0cmljcyhcbiAgICAgICAgICBDbGllbnROYW1lcy5BeGlvcyxcbiAgICAgICAgICBsb2dnZXIgYXMgSUh0dHBMb2dnZXIsXG4gICAgICAgICAgc3RhdHNDbGllbnQgYXMgSUh0dHBTdGF0c0NsaWVudCxcbiAgICAgICAgICBkZWZhdWx0U3RhdFRhZ3MsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgdG8gYmFzaWMgSFRUUCBjbGllbnQgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXG4gICAgcmV0dXJuIEh0dHBDbGllbnRGYWN0b3J5LmdldEh0dHBDbGllbnQoQ2xpZW50TmFtZXMuQXhpb3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgSFRUUCByZXF1ZXN0IC0gc2luZ2xlIGF0dGVtcHQsIG5vIHJldHJ5IGxvZ2ljXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgZXhlY3V0ZVJlcXVlc3Q8VD4oXG4gICAgbWV0aG9kOiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScgfCAncGF0Y2gnLFxuICAgIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgZGF0YT86IHVua25vd24sXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgICBjb25zdCByZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZ1bGxVcmwgPSB0aGlzLmJ1aWxkUmVxdWVzdFVybChlbmRwb2ludCk7XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLm1ha2VIdHRwUmVxdWVzdDxUPihtZXRob2QsIGZ1bGxVcmwsIGRhdGEsIHJlcXVlc3RDb25maWcsIHN0YXRUYWdzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2NsaWVudC1lcnJvcicsXG4gICAgICAgIHN0YXR1c0NvZGU6IDAsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICByZXNwb25zZUJvZHk6IGVycm9yLFxuICAgICAgfSBhcyBBcGlSZXNwb25zZTxUPjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBIVFRQIHJlcXVlc3Qgd2l0aCBjb25maWd1cmFibGUgdG9rZW4gcmVmcmVzaCBhdHRlbXB0c1xuICAgKiBGb3IgU0RLcyB0aGF0IG5lZWQgbW9yZSBjb250cm9sIG92ZXIgcmV0cnkgYmVoYXZpb3JcbiAgICovXG4gIHByb3RlY3RlZCBleGVjdXRlUmVxdWVzdFdpdGhUb2tlblJlZnJlc2hBdHRlbXB0czxUPihcbiAgICBtZXRob2Q6ICdnZXQnIHwgJ3Bvc3QnIHwgJ3B1dCcgfCAnZGVsZXRlJyB8ICdwYXRjaCcsXG4gICAgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBkYXRhPzogdW5rbm93bixcbiAgICBzdGF0VGFncz86IFN0YXRUYWdzLFxuICAgIG1heFJldHJpZXMgPSAxLFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJlcXVlc3RXaXRoUmV0cnlBdHRlbXB0PFQ+KG1ldGhvZCwgZW5kcG9pbnQsIG1heFJldHJpZXMsIDAsIGRhdGEsIHN0YXRUYWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCByZWN1cnNpdmUgbWV0aG9kIGZvciByZXRyeSBhdHRlbXB0c1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBleGVjdXRlUmVxdWVzdFdpdGhSZXRyeUF0dGVtcHQ8VD4oXG4gICAgbWV0aG9kOiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScgfCAncGF0Y2gnLFxuICAgIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgbWF4UmV0cmllczogbnVtYmVyLFxuICAgIGN1cnJlbnRBdHRlbXB0OiBudW1iZXIsXG4gICAgZGF0YT86IHVua25vd24sXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgICBjb25zdCByZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZ1bGxVcmwgPSB0aGlzLmJ1aWxkUmVxdWVzdFVybChlbmRwb2ludCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5tYWtlSHR0cFJlcXVlc3Q8VD4oXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgZnVsbFVybCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgcmVxdWVzdENvbmZpZyxcbiAgICAgICAgc3RhdFRhZ3MsXG4gICAgICApO1xuXG4gICAgICAvLyBJZiBzdWNjZXNzZnVsIG9yIG5vdCByZXRyeWFibGUsIHJldHVybiByZXNwb25zZVxuICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09ICdzdWNjZXNzJyB8fCAhdGhpcy5zaG91bGRSZXRyeU9uRXJyb3IocmVzcG9uc2UpKSB7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgcmVmcmVzaFRva2VuIGlzIG5vdCBpbXBsZW1lbnRlZCwgcmV0dXJuIHRoZSByZXNwb25zZVxuICAgICAgaWYgKCF0aGlzLnJlZnJlc2hUb2tlbikge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGxhc3QgYXR0ZW1wdCwgcmV0dXJuIHRoZSByZXNwb25zZVxuICAgICAgaWYgKGN1cnJlbnRBdHRlbXB0ID49IG1heFJldHJpZXMpIHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfVxuXG4gICAgICAvLyBSZWZyZXNoIHRva2VuIGFuZCByZXRyeVxuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0V2l0aFJldHJ5QXR0ZW1wdDxUPihcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgbWF4UmV0cmllcyxcbiAgICAgICAgY3VycmVudEF0dGVtcHQgKyAxLFxuICAgICAgICBkYXRhLFxuICAgICAgICBzdGF0VGFncyxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGVycm9yUmVzcG9uc2U6IEFwaVJlc3BvbnNlPFQ+ID0ge1xuICAgICAgICB0eXBlOiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgc3RhdHVzQ29kZTogMCxcbiAgICAgICAgbWVzc2FnZTogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicsXG4gICAgICAgIHJlc3BvbnNlQm9keTogZXJyb3IsXG4gICAgICB9IGFzIEFwaVJlc3BvbnNlPFQ+O1xuXG4gICAgICAvLyBJZiByZWZyZXNoVG9rZW4gaXMgbm90IGltcGxlbWVudGVkLCByZXR1cm4gdGhlIHJlc3BvbnNlXG4gICAgICBpZiAoIXRoaXMucmVmcmVzaFRva2VuKSB7XG4gICAgICAgIHJldHVybiBlcnJvclJlc3BvbnNlO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGlzIGlzIHRoZSBsYXN0IGF0dGVtcHQsIHJldHVybiBlcnJvclxuICAgICAgaWYgKGN1cnJlbnRBdHRlbXB0ID49IG1heFJldHJpZXMpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yUmVzcG9uc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlZnJlc2ggdG9rZW4gYW5kIHJldHJ5XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3RXaXRoUmV0cnlBdHRlbXB0PFQ+KFxuICAgICAgICBtZXRob2QsXG4gICAgICAgIGVuZHBvaW50LFxuICAgICAgICBtYXhSZXRyaWVzLFxuICAgICAgICBjdXJyZW50QXR0ZW1wdCArIDEsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHN0YXRUYWdzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBIVFRQIHJlcXVlc3QgYmFzZWQgb24gbWV0aG9kIC0gZWxpbWluYXRlcyBjb2RlIGR1cGxpY2F0aW9uXG4gICAqIFBhc3NlcyBzdGF0VGFncyB0byBIVFRQIGNsaWVudCBmb3IgbWV0cmljcyBhbmQgbG9nZ2luZ1xuICAgKi9cbiAgcHJpdmF0ZSBtYWtlSHR0cFJlcXVlc3Q8VD4oXG4gICAgbWV0aG9kOiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScgfCAncGF0Y2gnLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE6IHVua25vd24sXG4gICAgcmVxdWVzdENvbmZpZzogeyBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH0sXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIC8vIEFkZCBzdGF0VGFncyB0byByZXF1ZXN0IGNvbmZpZyBmb3IgSFRUUCBjbGllbnRcbiAgICBjb25zdCBjb25maWdXaXRoU3RhdFRhZ3MgPSB7XG4gICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxuICAgICAgc3RhdFRhZ3MsXG4gICAgfTtcblxuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPih1cmwsIGNvbmZpZ1dpdGhTdGF0VGFncyk7XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFQ+KHVybCwgZGF0YSwgY29uZmlnV2l0aFN0YXRUYWdzKTtcbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PFQ+KHVybCwgZGF0YSwgY29uZmlnV2l0aFN0YXRUYWdzKTtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlPFQ+KHVybCwgY29uZmlnV2l0aFN0YXRUYWdzKTtcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaDxUPih1cmwsIGRhdGEsIGNvbmZpZ1dpdGhTdGF0VGFncyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEhUVFAgbWV0aG9kOiAke21ldGhvZH1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBHRVQgcmVxdWVzdHNcbiAgICovXG4gIHByb3RlY3RlZCBnZXQ8VD4oZW5kcG9pbnQ6IHN0cmluZywgc3RhdFRhZ3M/OiBTdGF0VGFncyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxUPignZ2V0JywgZW5kcG9pbnQsIHVuZGVmaW5lZCwgc3RhdFRhZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgUE9TVCByZXF1ZXN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIHBvc3Q8VD4oZW5kcG9pbnQ6IHN0cmluZywgZGF0YTogdW5rbm93biwgc3RhdFRhZ3M/OiBTdGF0VGFncyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxUPigncG9zdCcsIGVuZHBvaW50LCBkYXRhLCBzdGF0VGFncyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBQVVQgcmVxdWVzdHNcbiAgICovXG4gIHByb3RlY3RlZCBwdXQ8VD4oZW5kcG9pbnQ6IHN0cmluZywgZGF0YTogdW5rbm93biwgc3RhdFRhZ3M/OiBTdGF0VGFncyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxUPigncHV0JywgZW5kcG9pbnQsIGRhdGEsIHN0YXRUYWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIERFTEVURSByZXF1ZXN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIGRlbGV0ZTxUPihlbmRwb2ludDogc3RyaW5nLCBzdGF0VGFncz86IFN0YXRUYWdzKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVSZXF1ZXN0PFQ+KCdkZWxldGUnLCBlbmRwb2ludCwgdW5kZWZpbmVkLCBzdGF0VGFncyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBQQVRDSCByZXF1ZXN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIHBhdGNoPFQ+KFxuICAgIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgZGF0YTogdW5rbm93bixcbiAgICBzdGF0VGFncz86IFN0YXRUYWdzLFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJlcXVlc3Q8VD4oJ3BhdGNoJywgZW5kcG9pbnQsIGRhdGEsIHN0YXRUYWdzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export { BaseSDK } from './base-sdk';
2
+ export type { BaseSDKConfig } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdks/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSDK = void 0;
4
+ var base_sdk_1 = require("./base-sdk");
5
+ Object.defineProperty(exports, "BaseSDK", { enumerable: true, get: function () { return base_sdk_1.BaseSDK; } });
6
+ // Note: StatTags is exported from src/network/index.ts to avoid duplicate exports
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXFDO0FBQTVCLG1HQUFBLE9BQU8sT0FBQTtBQUVoQixrRkFBa0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCYXNlU0RLIH0gZnJvbSAnLi9iYXNlLXNkayc7XG5leHBvcnQgdHlwZSB7IEJhc2VTREtDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbi8vIE5vdGU6IFN0YXRUYWdzIGlzIGV4cG9ydGVkIGZyb20gc3JjL25ldHdvcmsvaW5kZXgudHMgdG8gYXZvaWQgZHVwbGljYXRlIGV4cG9ydHNcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { HttpClientConfig } from '../../network/clients/types';
2
+ /**
3
+ * Base SDK Configuration interface
4
+ * Extends HTTP client config to provide enhanced features for SDKs
5
+ */
6
+ export interface BaseSDKConfig {
7
+ /**
8
+ * HTTP client configuration for enhanced features
9
+ * When provided, enables logging, metrics, and other enhanced capabilities
10
+ */
11
+ httpClient?: HttpClientConfig;
12
+ }
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdks/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jb21tb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnRDb25maWcgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2NsaWVudHMvdHlwZXMnO1xuXG4vKipcbiAqIEJhc2UgU0RLIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlXG4gKiBFeHRlbmRzIEhUVFAgY2xpZW50IGNvbmZpZyB0byBwcm92aWRlIGVuaGFuY2VkIGZlYXR1cmVzIGZvciBTREtzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVNES0NvbmZpZyB7XG4gIC8qKlxuICAgKiBIVFRQIGNsaWVudCBjb25maWd1cmF0aW9uIGZvciBlbmhhbmNlZCBmZWF0dXJlc1xuICAgKiBXaGVuIHByb3ZpZGVkLCBlbmFibGVzIGxvZ2dpbmcsIG1ldHJpY3MsIGFuZCBvdGhlciBlbmhhbmNlZCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIGh0dHBDbGllbnQ/OiBIdHRwQ2xpZW50Q29uZmlnO1xufVxuIl19
@@ -1,51 +1,23 @@
1
- import { AuthObject, AudienceSegmentBody, AudienceSegmentData } from './types';
1
+ import { ApiResponse, StatTags } from '../../network/clients/types';
2
+ import { BaseSDK } from '../common/base-sdk';
3
+ import { AuthObject, AudienceSegmentBody, AudienceSegmentData, CriteoConfig } from './types';
2
4
  /**
3
5
  * CriteoAudience SDK for managing audience segments in Criteo
4
6
  * @class
5
7
  */
6
- export default class CriteoAudience {
7
- private authObject;
8
- private httpClient;
9
- /**
10
- * Creates an instance of CriteoAudience
11
- * @param {AuthObject} authObject - Authentication object containing access token and refresh function
12
- * @throws {Error} If authObject is invalid or missing required properties
13
- */
14
- constructor(authObject: AuthObject);
15
- /**
16
- * Validates the authentication object
17
- * @param {AuthObject} authObject - Authentication object to validate
18
- * @throws {Error} If authObject is invalid or missing required properties
19
- * @private
20
- */
21
- private static validateAuthObject;
22
- /**
23
- * Refreshes the access token using the provided refresh function
24
- * @throws {Error} If token refresh fails
25
- * @private
26
- */
27
- private refreshToken;
28
- /**
29
- * Gets the request headers with authentication
30
- * @returns {RequestConfig} Request configuration with headers
31
- * @private
32
- */
33
- private getHeader;
34
- /**
35
- * Executes a POST request with token refresh handling
36
- * @template T - Response type
37
- * @param {string} url - API endpoint URL
38
- * @param {object} data - Request payload
39
- * @returns {Promise<ApiResponse<T>>} API response
40
- * @private
41
- */
42
- private executePostRequest;
8
+ export default class CriteoAudience extends BaseSDK<AuthObject, CriteoConfig> {
9
+ validateAuthObject(authObject: AuthObject): void;
10
+ protected buildRequestUrl(endpoint: string): string;
11
+ protected getHeaders(): Record<string, string>;
12
+ shouldRetryOnError(response: ApiResponse<unknown>): boolean;
13
+ protected refreshToken(): Promise<void>;
43
14
  /**
44
15
  * Creates a new audience segment in Criteo
45
16
  * @param {AudienceSegmentBody} audienceSegmentBody - Audience segment data
17
+ * @param {StatTags} statTags - Optional stat tags for metrics and logging
46
18
  * @returns {Promise<AudienceSegmentData>} Created audience segment data
47
19
  * @throws {Error} If audience segment creation fails
48
20
  */
49
- createAudienceSegment(audienceSegmentBody: AudienceSegmentBody): Promise<AudienceSegmentData>;
21
+ createAudienceSegment(audienceSegmentBody: AudienceSegmentBody, statTags?: StatTags): Promise<AudienceSegmentData>;
50
22
  }
51
23
  //# sourceMappingURL=criteoAudience.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"criteoAudience.d.ts","sourceRoot":"","sources":["../../../src/sdks/criteoAudience/criteoAudience.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,UAAU,CAAa;IAE/B;;;;OAIG;gBACS,UAAU,EAAE,UAAU;IAQlC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAajC;;;;OAIG;YACW,YAAY;IAS1B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;;OAOG;YACW,kBAAkB;IAkBhC;;;;;OAKG;IACU,qBAAqB,CAChC,mBAAmB,EAAE,mBAAmB,GACvC,OAAO,CAAC,mBAAmB,CAAC;CAmBhC"}
1
+ {"version":3,"file":"criteoAudience.d.ts","sourceRoot":"","sources":["../../../src/sdks/criteoAudience/criteoAudience.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EACL,UAAU,EACV,mBAAmB,EAEnB,mBAAmB,EACnB,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC;IAE3E,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAahD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMnD,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAS9C,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;cAY3C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7C;;;;;;OAMG;IACU,qBAAqB,CAChC,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,mBAAmB,CAAC;CAsBhC"}
@@ -1,47 +1,47 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const factory_1 = require("../../network/factory");
3
+ const base_sdk_1 = require("../common/base-sdk");
4
4
  const config_1 = require("./config");
5
5
  /**
6
6
  * CriteoAudience SDK for managing audience segments in Criteo
7
7
  * @class
8
8
  */
9
- class CriteoAudience {
10
- /**
11
- * Creates an instance of CriteoAudience
12
- * @param {AuthObject} authObject - Authentication object containing access token and refresh function
13
- * @throws {Error} If authObject is invalid or missing required properties
14
- */
15
- constructor(authObject) {
16
- CriteoAudience.validateAuthObject(authObject);
17
- this.authObject = authObject;
18
- this.httpClient = factory_1.HttpClientFactory.getHttpClient(factory_1.ClientNames.Axios, {
19
- baseURL: config_1.BASE_URL,
20
- });
21
- }
22
- /**
23
- * Validates the authentication object
24
- * @param {AuthObject} authObject - Authentication object to validate
25
- * @throws {Error} If authObject is invalid or missing required properties
26
- * @private
27
- */
28
- static validateAuthObject(authObject) {
9
+ class CriteoAudience extends base_sdk_1.BaseSDK {
10
+ // eslint-disable-next-line class-methods-use-this
11
+ validateAuthObject(authObject) {
29
12
  if (!authObject) {
30
13
  throw new Error('authObject is required.');
31
14
  }
32
- const { accessToken, refreshAccessTokenFunc } = authObject;
33
- if (!accessToken) {
15
+ if (!authObject.accessToken) {
34
16
  throw new Error('Criteo Audience accessToken is required.');
35
17
  }
36
- if (!refreshAccessTokenFunc) {
18
+ if (!authObject.refreshAccessTokenFunc) {
37
19
  throw new Error('Criteo Audience a refresh access token function is required.');
38
20
  }
39
21
  }
40
- /**
41
- * Refreshes the access token using the provided refresh function
42
- * @throws {Error} If token refresh fails
43
- * @private
44
- */
22
+ // eslint-disable-next-line class-methods-use-this
23
+ buildRequestUrl(endpoint) {
24
+ // Ensure endpoint starts with /
25
+ const cleanEndpoint = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;
26
+ return `${config_1.BASE_URL}${cleanEndpoint}`;
27
+ }
28
+ getHeaders() {
29
+ return {
30
+ authorization: `Bearer ${this.authObject.accessToken}`,
31
+ accept: 'application/json',
32
+ 'content-type': 'application/json',
33
+ };
34
+ }
35
+ // eslint-disable-next-line class-methods-use-this
36
+ shouldRetryOnError(response) {
37
+ // Retry on 401 (unauthorized) errors for token refresh
38
+ if (response.type === 'application-error') {
39
+ return (response.statusCode === 401 &&
40
+ (response.responseBody.errors[0].code === 'authorization-token-invalid' ||
41
+ response.responseBody.errors[0].code === 'authorization-token-expired'));
42
+ }
43
+ return false;
44
+ }
45
45
  async refreshToken() {
46
46
  try {
47
47
  const accessToken = await this.authObject.refreshAccessTokenFunc();
@@ -51,51 +51,15 @@ class CriteoAudience {
51
51
  throw new Error(`Unable to refresh token, with error: ${error}`);
52
52
  }
53
53
  }
54
- /**
55
- * Gets the request headers with authentication
56
- * @returns {RequestConfig} Request configuration with headers
57
- * @private
58
- */
59
- getHeader() {
60
- return {
61
- headers: {
62
- authorization: `Bearer ${this.authObject.accessToken}`,
63
- accept: 'application/json',
64
- 'content-type': 'application/json',
65
- },
66
- };
67
- }
68
- /**
69
- * Executes a POST request with token refresh handling
70
- * @template T - Response type
71
- * @param {string} url - API endpoint URL
72
- * @param {object} data - Request payload
73
- * @returns {Promise<ApiResponse<T>>} API response
74
- * @private
75
- */
76
- async executePostRequest(url, data) {
77
- const response = await this.httpClient.post(url, data, this.getHeader());
78
- switch (response.type) {
79
- case 'application-error':
80
- if (response.statusCode === 401 &&
81
- (response.responseBody.errors[0].code === 'authorization-token-invalid' ||
82
- response.responseBody.errors[0].code === 'authorization-token-expired')) {
83
- await this.refreshToken();
84
- return this.httpClient.post(url, data, this.getHeader());
85
- }
86
- return response;
87
- default:
88
- return response;
89
- }
90
- }
91
54
  /**
92
55
  * Creates a new audience segment in Criteo
93
56
  * @param {AudienceSegmentBody} audienceSegmentBody - Audience segment data
57
+ * @param {StatTags} statTags - Optional stat tags for metrics and logging
94
58
  * @returns {Promise<AudienceSegmentData>} Created audience segment data
95
59
  * @throws {Error} If audience segment creation fails
96
60
  */
97
- async createAudienceSegment(audienceSegmentBody) {
98
- const createAudienceSegmentResponse = await this.executePostRequest(`/marketing-solutions/audience-segments/create`, audienceSegmentBody);
61
+ async createAudienceSegment(audienceSegmentBody, statTags) {
62
+ const createAudienceSegmentResponse = await this.executeRequestWithTokenRefreshAttempts('post', `/marketing-solutions/audience-segments/create`, audienceSegmentBody, statTags);
99
63
  if (createAudienceSegmentResponse.type === 'success') {
100
64
  const { data } = createAudienceSegmentResponse.responseBody;
101
65
  if (data && data.length > 0) {
@@ -109,4 +73,4 @@ class CriteoAudience {
109
73
  }
110
74
  }
111
75
  exports.default = CriteoAudience;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVvQXVkaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jcml0ZW9BdWRpZW5jZS9jcml0ZW9BdWRpZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1EQUF1RTtBQUV2RSxxQ0FBb0M7QUFRcEM7OztHQUdHO0FBQ0gsTUFBcUIsY0FBYztJQUtqQzs7OztPQUlHO0lBQ0gsWUFBWSxVQUFzQjtRQUNoQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRywyQkFBaUIsQ0FBQyxhQUFhLENBQUMscUJBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDbkUsT0FBTyxFQUFFLGlCQUFRO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFzQjtRQUN0RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxNQUFNLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxLQUFLLENBQUMsWUFBWTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDNUMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFNBQVM7UUFDZixPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFO2dCQUN0RCxNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQixjQUFjLEVBQUUsa0JBQWtCO2FBQ25DO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssS0FBSyxDQUFDLGtCQUFrQixDQUFJLEdBQVcsRUFBRSxJQUFZO1FBQzNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1RSxRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixLQUFLLG1CQUFtQjtnQkFDdEIsSUFDRSxRQUFRLENBQUMsVUFBVSxLQUFLLEdBQUc7b0JBQzNCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDZCQUE2Qjt3QkFDckUsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDZCQUE2QixDQUFDLEVBQ3pFLENBQUM7b0JBQ0QsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFDRCxPQUFPLFFBQVEsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQixDQUNoQyxtQkFBd0M7UUFFeEMsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FDakUsK0NBQStDLEVBQy9DLG1CQUFtQixDQUNwQixDQUFDO1FBQ0YsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLDZCQUE2QixDQUFDLFlBQVksQ0FBQztZQUM1RCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUNoQiw2QkFBNkIsQ0FBQyxJQUFJLEtBQUssY0FBYztZQUNuRCxDQUFDLENBQUMsNkJBQTZCLENBQUMsT0FBTztZQUN2QyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqRSxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7Q0FDRjtBQXZIRCxpQ0F1SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50RmFjdG9yeSwgQ2xpZW50TmFtZXMgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2ZhY3RvcnknO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgUmVxdWVzdENvbmZpZywgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2NsaWVudHMvdHlwZXMnO1xuaW1wb3J0IHsgQkFTRV9VUkwgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBBdXRoT2JqZWN0LFxuICBBdWRpZW5jZVNlZ21lbnRCb2R5LFxuICBBdWRpZW5jZVNlZ21lbnRSZXNwb25zZSxcbiAgQXVkaWVuY2VTZWdtZW50RGF0YSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ3JpdGVvQXVkaWVuY2UgU0RLIGZvciBtYW5hZ2luZyBhdWRpZW5jZSBzZWdtZW50cyBpbiBDcml0ZW9cbiAqIEBjbGFzc1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcml0ZW9BdWRpZW5jZSB7XG4gIHByaXZhdGUgYXV0aE9iamVjdDogQXV0aE9iamVjdDtcblxuICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ3JpdGVvQXVkaWVuY2VcbiAgICogQHBhcmFtIHtBdXRoT2JqZWN0fSBhdXRoT2JqZWN0IC0gQXV0aGVudGljYXRpb24gb2JqZWN0IGNvbnRhaW5pbmcgYWNjZXNzIHRva2VuIGFuZCByZWZyZXNoIGZ1bmN0aW9uXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBhdXRoT2JqZWN0IGlzIGludmFsaWQgb3IgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhdXRoT2JqZWN0OiBBdXRoT2JqZWN0KSB7XG4gICAgQ3JpdGVvQXVkaWVuY2UudmFsaWRhdGVBdXRoT2JqZWN0KGF1dGhPYmplY3QpO1xuICAgIHRoaXMuYXV0aE9iamVjdCA9IGF1dGhPYmplY3Q7XG4gICAgdGhpcy5odHRwQ2xpZW50ID0gSHR0cENsaWVudEZhY3RvcnkuZ2V0SHR0cENsaWVudChDbGllbnROYW1lcy5BeGlvcywge1xuICAgICAgYmFzZVVSTDogQkFTRV9VUkwsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3RcbiAgICogQHBhcmFtIHtBdXRoT2JqZWN0fSBhdXRoT2JqZWN0IC0gQXV0aGVudGljYXRpb24gb2JqZWN0IHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBhdXRoT2JqZWN0IGlzIGludmFsaWQgb3IgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0aWVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCkge1xuICAgIGlmICghYXV0aE9iamVjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhdXRoT2JqZWN0IGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuLCByZWZyZXNoQWNjZXNzVG9rZW5GdW5jIH0gPSBhdXRoT2JqZWN0O1xuICAgIGlmICghYWNjZXNzVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3JpdGVvIEF1ZGllbmNlIGFjY2Vzc1Rva2VuIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoIXJlZnJlc2hBY2Nlc3NUb2tlbkZ1bmMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3JpdGVvIEF1ZGllbmNlIGEgcmVmcmVzaCBhY2Nlc3MgdG9rZW4gZnVuY3Rpb24gaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgYWNjZXNzIHRva2VuIHVzaW5nIHRoZSBwcm92aWRlZCByZWZyZXNoIGZ1bmN0aW9uXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0b2tlbiByZWZyZXNoIGZhaWxzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlZnJlc2hUb2tlbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhPYmplY3QucmVmcmVzaEFjY2Vzc1Rva2VuRnVuYygpO1xuICAgICAgdGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VuID0gYWNjZXNzVG9rZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHJlZnJlc2ggdG9rZW4sIHdpdGggZXJyb3I6ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJlcXVlc3QgaGVhZGVycyB3aXRoIGF1dGhlbnRpY2F0aW9uXG4gICAqIEByZXR1cm5zIHtSZXF1ZXN0Q29uZmlnfSBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gd2l0aCBoZWFkZXJzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldEhlYWRlcigpOiBSZXF1ZXN0Q29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBhdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VufWAsXG4gICAgICAgIGFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgUE9TVCByZXF1ZXN0IHdpdGggdG9rZW4gcmVmcmVzaCBoYW5kbGluZ1xuICAgKiBAdGVtcGxhdGUgVCAtIFJlc3BvbnNlIHR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIEFQSSBlbmRwb2ludCBVUkxcbiAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBSZXF1ZXN0IHBheWxvYWRcbiAgICogQHJldHVybnMge1Byb21pc2U8QXBpUmVzcG9uc2U8VD4+fSBBUEkgcmVzcG9uc2VcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZVBvc3RSZXF1ZXN0PFQ+KHVybDogc3RyaW5nLCBkYXRhOiBvYmplY3QpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmh0dHBDbGllbnQucG9zdDxUPih1cmwsIGRhdGEsIHRoaXMuZ2V0SGVhZGVyKCkpO1xuICAgIHN3aXRjaCAocmVzcG9uc2UudHlwZSkge1xuICAgICAgY2FzZSAnYXBwbGljYXRpb24tZXJyb3InOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gNDAxICYmXG4gICAgICAgICAgKHJlc3BvbnNlLnJlc3BvbnNlQm9keS5lcnJvcnNbMF0uY29kZSA9PT0gJ2F1dGhvcml6YXRpb24tdG9rZW4taW52YWxpZCcgfHxcbiAgICAgICAgICAgIHJlc3BvbnNlLnJlc3BvbnNlQm9keS5lcnJvcnNbMF0uY29kZSA9PT0gJ2F1dGhvcml6YXRpb24tdG9rZW4tZXhwaXJlZCcpXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFQ+KHVybCwgZGF0YSwgdGhpcy5nZXRIZWFkZXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGF1ZGllbmNlIHNlZ21lbnQgaW4gQ3JpdGVvXG4gICAqIEBwYXJhbSB7QXVkaWVuY2VTZWdtZW50Qm9keX0gYXVkaWVuY2VTZWdtZW50Qm9keSAtIEF1ZGllbmNlIHNlZ21lbnQgZGF0YVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBdWRpZW5jZVNlZ21lbnREYXRhPn0gQ3JlYXRlZCBhdWRpZW5jZSBzZWdtZW50IGRhdGFcbiAgICogQHRocm93cyB7RXJyb3J9IElmIGF1ZGllbmNlIHNlZ21lbnQgY3JlYXRpb24gZmFpbHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVBdWRpZW5jZVNlZ21lbnQoXG4gICAgYXVkaWVuY2VTZWdtZW50Qm9keTogQXVkaWVuY2VTZWdtZW50Qm9keSxcbiAgKTogUHJvbWlzZTxBdWRpZW5jZVNlZ21lbnREYXRhPiB7XG4gICAgY29uc3QgY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmV4ZWN1dGVQb3N0UmVxdWVzdDxBdWRpZW5jZVNlZ21lbnRSZXNwb25zZT4oXG4gICAgICBgL21hcmtldGluZy1zb2x1dGlvbnMvYXVkaWVuY2Utc2VnbWVudHMvY3JlYXRlYCxcbiAgICAgIGF1ZGllbmNlU2VnbWVudEJvZHksXG4gICAgKTtcbiAgICBpZiAoY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UudHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGNyZWF0ZUF1ZGllbmNlU2VnbWVudFJlc3BvbnNlLnJlc3BvbnNlQm9keTtcbiAgICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gZGF0YVswXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UudHlwZSA9PT0gJ2NsaWVudC1lcnJvcidcbiAgICAgICAgPyBjcmVhdGVBdWRpZW5jZVNlZ21lbnRSZXNwb25zZS5tZXNzYWdlXG4gICAgICAgIDogSlNPTi5zdHJpbmdpZnkoY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UucmVzcG9uc2VCb2R5KTtcblxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBhdWRpZW5jZSBzZWdtZW50LCB3aXRoIGVycm9yOiAke2Vycm9yTWVzc2FnZX1gKTtcbiAgfVxufVxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVvQXVkaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jcml0ZW9BdWRpZW5jZS9jcml0ZW9BdWRpZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGlEQUE2QztBQUM3QyxxQ0FBb0M7QUFTcEM7OztHQUdHO0FBQ0gsTUFBcUIsY0FBZSxTQUFRLGtCQUFpQztJQUMzRSxrREFBa0Q7SUFDbEQsa0JBQWtCLENBQUMsVUFBc0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7SUFFRCxrREFBa0Q7SUFDeEMsZUFBZSxDQUFDLFFBQWdCO1FBQ3hDLGdDQUFnQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDM0UsT0FBTyxHQUFHLGlCQUFRLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVTLFVBQVU7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxrQkFBa0I7WUFDMUIsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxrQkFBa0IsQ0FBQyxRQUE4QjtRQUMvQyx1REFBdUQ7UUFDdkQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7WUFDMUMsT0FBTyxDQUNMLFFBQVEsQ0FBQyxVQUFVLEtBQUssR0FBRztnQkFDM0IsQ0FBRSxRQUFRLENBQUMsWUFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDZCQUE2QjtvQkFDN0UsUUFBUSxDQUFDLFlBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyw2QkFBNkIsQ0FBQyxDQUNuRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVTLEtBQUssQ0FBQyxZQUFZO1FBQzFCLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUM1QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMscUJBQXFCLENBQ2hDLG1CQUF3QyxFQUN4QyxRQUFtQjtRQUVuQixNQUFNLDZCQUE2QixHQUNqQyxNQUFNLElBQUksQ0FBQyxzQ0FBc0MsQ0FDL0MsTUFBTSxFQUNOLCtDQUErQyxFQUMvQyxtQkFBbUIsRUFDbkIsUUFBUSxDQUNULENBQUM7UUFDSixJQUFJLDZCQUE2QixDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsNkJBQTZCLENBQUMsWUFBWSxDQUFDO1lBQzVELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQ2hCLDZCQUE2QixDQUFDLElBQUksS0FBSyxjQUFjO1lBQ25ELENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWpFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELFlBQVksRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztDQUNGO0FBbkZELGlDQW1GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaVJlc3BvbnNlLCBTdGF0VGFncyB9IGZyb20gJy4uLy4uL25ldHdvcmsvY2xpZW50cy90eXBlcyc7XG5pbXBvcnQgeyBCYXNlU0RLIH0gZnJvbSAnLi4vY29tbW9uL2Jhc2Utc2RrJztcbmltcG9ydCB7IEJBU0VfVVJMIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHtcbiAgQXV0aE9iamVjdCxcbiAgQXVkaWVuY2VTZWdtZW50Qm9keSxcbiAgQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UsXG4gIEF1ZGllbmNlU2VnbWVudERhdGEsXG4gIENyaXRlb0NvbmZpZyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ3JpdGVvQXVkaWVuY2UgU0RLIGZvciBtYW5hZ2luZyBhdWRpZW5jZSBzZWdtZW50cyBpbiBDcml0ZW9cbiAqIEBjbGFzc1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcml0ZW9BdWRpZW5jZSBleHRlbmRzIEJhc2VTREs8QXV0aE9iamVjdCwgQ3JpdGVvQ29uZmlnPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIHZhbGlkYXRlQXV0aE9iamVjdChhdXRoT2JqZWN0OiBBdXRoT2JqZWN0KTogdm9pZCB7XG4gICAgaWYgKCFhdXRoT2JqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGhPYmplY3QgaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICAgIGlmICghYXV0aE9iamVjdC5hY2Nlc3NUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDcml0ZW8gQXVkaWVuY2UgYWNjZXNzVG9rZW4gaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICAgIGlmICghYXV0aE9iamVjdC5yZWZyZXNoQWNjZXNzVG9rZW5GdW5jKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NyaXRlbyBBdWRpZW5jZSBhIHJlZnJlc2ggYWNjZXNzIHRva2VuIGZ1bmN0aW9uIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIHByb3RlY3RlZCBidWlsZFJlcXVlc3RVcmwoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gRW5zdXJlIGVuZHBvaW50IHN0YXJ0cyB3aXRoIC9cbiAgICBjb25zdCBjbGVhbkVuZHBvaW50ID0gZW5kcG9pbnQuc3RhcnRzV2l0aCgnLycpID8gZW5kcG9pbnQgOiBgLyR7ZW5kcG9pbnR9YDtcbiAgICByZXR1cm4gYCR7QkFTRV9VUkx9JHtjbGVhbkVuZHBvaW50fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SGVhZGVycygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aE9iamVjdC5hY2Nlc3NUb2tlbn1gLFxuICAgICAgYWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH07XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICBzaG91bGRSZXRyeU9uRXJyb3IocmVzcG9uc2U6IEFwaVJlc3BvbnNlPHVua25vd24+KTogYm9vbGVhbiB7XG4gICAgLy8gUmV0cnkgb24gNDAxICh1bmF1dGhvcml6ZWQpIGVycm9ycyBmb3IgdG9rZW4gcmVmcmVzaFxuICAgIGlmIChyZXNwb25zZS50eXBlID09PSAnYXBwbGljYXRpb24tZXJyb3InKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICByZXNwb25zZS5zdGF0dXNDb2RlID09PSA0MDEgJiZcbiAgICAgICAgKChyZXNwb25zZS5yZXNwb25zZUJvZHkgYXMgYW55KS5lcnJvcnNbMF0uY29kZSA9PT0gJ2F1dGhvcml6YXRpb24tdG9rZW4taW52YWxpZCcgfHxcbiAgICAgICAgICAocmVzcG9uc2UucmVzcG9uc2VCb2R5IGFzIGFueSkuZXJyb3JzWzBdLmNvZGUgPT09ICdhdXRob3JpemF0aW9uLXRva2VuLWV4cGlyZWQnKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhPYmplY3QucmVmcmVzaEFjY2Vzc1Rva2VuRnVuYygpO1xuICAgICAgdGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VuID0gYWNjZXNzVG9rZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHJlZnJlc2ggdG9rZW4sIHdpdGggZXJyb3I6ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgYXVkaWVuY2Ugc2VnbWVudCBpbiBDcml0ZW9cbiAgICogQHBhcmFtIHtBdWRpZW5jZVNlZ21lbnRCb2R5fSBhdWRpZW5jZVNlZ21lbnRCb2R5IC0gQXVkaWVuY2Ugc2VnbWVudCBkYXRhXG4gICAqIEBwYXJhbSB7U3RhdFRhZ3N9IHN0YXRUYWdzIC0gT3B0aW9uYWwgc3RhdCB0YWdzIGZvciBtZXRyaWNzIGFuZCBsb2dnaW5nXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEF1ZGllbmNlU2VnbWVudERhdGE+fSBDcmVhdGVkIGF1ZGllbmNlIHNlZ21lbnQgZGF0YVxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYXVkaWVuY2Ugc2VnbWVudCBjcmVhdGlvbiBmYWlsc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGNyZWF0ZUF1ZGllbmNlU2VnbWVudChcbiAgICBhdWRpZW5jZVNlZ21lbnRCb2R5OiBBdWRpZW5jZVNlZ21lbnRCb2R5LFxuICAgIHN0YXRUYWdzPzogU3RhdFRhZ3MsXG4gICk6IFByb21pc2U8QXVkaWVuY2VTZWdtZW50RGF0YT4ge1xuICAgIGNvbnN0IGNyZWF0ZUF1ZGllbmNlU2VnbWVudFJlc3BvbnNlID1cbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3RXaXRoVG9rZW5SZWZyZXNoQXR0ZW1wdHM8QXVkaWVuY2VTZWdtZW50UmVzcG9uc2U+KFxuICAgICAgICAncG9zdCcsXG4gICAgICAgIGAvbWFya2V0aW5nLXNvbHV0aW9ucy9hdWRpZW5jZS1zZWdtZW50cy9jcmVhdGVgLFxuICAgICAgICBhdWRpZW5jZVNlZ21lbnRCb2R5LFxuICAgICAgICBzdGF0VGFncyxcbiAgICAgICk7XG4gICAgaWYgKGNyZWF0ZUF1ZGllbmNlU2VnbWVudFJlc3BvbnNlLnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgY29uc3QgeyBkYXRhIH0gPSBjcmVhdGVBdWRpZW5jZVNlZ21lbnRSZXNwb25zZS5yZXNwb25zZUJvZHk7XG4gICAgICBpZiAoZGF0YSAmJiBkYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIGRhdGFbMF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID1cbiAgICAgIGNyZWF0ZUF1ZGllbmNlU2VnbWVudFJlc3BvbnNlLnR5cGUgPT09ICdjbGllbnQtZXJyb3InXG4gICAgICAgID8gY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UubWVzc2FnZVxuICAgICAgICA6IEpTT04uc3RyaW5naWZ5KGNyZWF0ZUF1ZGllbmNlU2VnbWVudFJlc3BvbnNlLnJlc3BvbnNlQm9keSk7XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgYXVkaWVuY2Ugc2VnbWVudCwgd2l0aCBlcnJvcjogJHtlcnJvck1lc3NhZ2V9YCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,10 @@
1
+ import { BaseSDKConfig } from '../common/types';
1
2
  export interface AuthObject {
2
3
  accessToken: string;
3
4
  refreshAccessTokenFunc: () => Promise<string>;
4
5
  }
6
+ export interface CriteoConfig extends BaseSDKConfig {
7
+ }
5
8
  export interface AudienceSegmentBody {
6
9
  data: {
7
10
  attributes: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdks/criteoAudience/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE;QACJ,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAC;YACrB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,IAAI,EAAE,iBAAiB,CAAC;KACzB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,aAAa,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE;YACZ,UAAU,CAAC,EAAE,OAAO,CAAC;SACtB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdks/criteoAudience/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;CAElD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE;QACJ,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAC;YACrB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,IAAI,EAAE,iBAAiB,CAAC;KACzB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,aAAa,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE;YACZ,UAAU,CAAC,EAAE,OAAO,CAAC;SACtB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACjC"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jcml0ZW9BdWRpZW5jZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBdXRoT2JqZWN0IHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaEFjY2Vzc1Rva2VuRnVuYzogKCkgPT4gUHJvbWlzZTxzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGllbmNlU2VnbWVudEJvZHkge1xuICBkYXRhOiB7XG4gICAgYXR0cmlidXRlczoge1xuICAgICAgYWR2ZXJ0aXNlcklkOiBzdHJpbmc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIGNvbnRhY3RMaXN0OiBvYmplY3Q7XG4gICAgfTtcbiAgICB0eXBlOiAnQXVkaWVuY2VTZWdtZW50JztcbiAgfVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGllbmNlU2VnbWVudERhdGEge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiAnQXVkaWVuY2VTZWdtZW50JztcbiAgYXR0cmlidXRlczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB0eXBlOiAnQ29udGFjdExpc3QnO1xuICAgIGNyZWF0ZWRBdD86IHN0cmluZztcbiAgICB1cGRhdGVkQXQ/OiBzdHJpbmc7XG4gICAgYWR2ZXJ0aXNlcklkPzogc3RyaW5nO1xuICAgIGNvbnRhY3RMaXN0Pzoge1xuICAgICAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdWRpZW5jZVNlZ21lbnRFcnJvciB7XG4gIHRyYWNlSWQ/OiBzdHJpbmc7XG4gIHRyYWNlSWRlbnRpZmllcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbiAgaW5zdGFuY2U/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXRhaWw/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEF1ZGllbmNlU2VnbWVudFJlc3BvbnNlIHtcbiAgZGF0YT86IEF1ZGllbmNlU2VnbWVudERhdGFbXTtcbiAgd2FybmluZ3M/OiB1bmtub3duO1xuICBlcnJvcnM/OiBBdWRpZW5jZVNlZ21lbnRFcnJvcltdO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jcml0ZW9BdWRpZW5jZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVNES0NvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aE9iamVjdCB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hBY2Nlc3NUb2tlbkZ1bmM6ICgpID0+IFByb21pc2U8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcml0ZW9Db25maWcgZXh0ZW5kcyBCYXNlU0RLQ29uZmlnIHtcbiAgLy8gQWRkIENyaXRlby1zcGVjaWZpYyBjb25maWcgaWYgbmVlZGVkIGluIHRoZSBmdXR1cmVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdWRpZW5jZVNlZ21lbnRCb2R5IHtcbiAgZGF0YToge1xuICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgIGFkdmVydGlzZXJJZDogc3RyaW5nO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgICBjb250YWN0TGlzdDogb2JqZWN0O1xuICAgIH07XG4gICAgdHlwZTogJ0F1ZGllbmNlU2VnbWVudCc7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdWRpZW5jZVNlZ21lbnREYXRhIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogJ0F1ZGllbmNlU2VnbWVudCc7XG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgdHlwZTogJ0NvbnRhY3RMaXN0JztcbiAgICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gICAgdXBkYXRlZEF0Pzogc3RyaW5nO1xuICAgIGFkdmVydGlzZXJJZD86IHN0cmluZztcbiAgICBjb250YWN0TGlzdD86IHtcbiAgICAgIGlzUmVhZE9ubHk/OiBib29sZWFuO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXVkaWVuY2VTZWdtZW50RXJyb3Ige1xuICB0cmFjZUlkPzogc3RyaW5nO1xuICB0cmFjZUlkZW50aWZpZXI/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIGluc3RhbmNlPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgZGV0YWlsPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBBdWRpZW5jZVNlZ21lbnRSZXNwb25zZSB7XG4gIGRhdGE/OiBBdWRpZW5jZVNlZ21lbnREYXRhW107XG4gIHdhcm5pbmdzPzogdW5rbm93bjtcbiAgZXJyb3JzPzogQXVkaWVuY2VTZWdtZW50RXJyb3JbXTtcbn1cbiJdfQ==
@@ -1,29 +1,25 @@
1
- import { AuthObject, CreateSegmentBody, CreateSegmentResponse, GetSegmentsResponse } from './type';
2
- import { AxiosClient } from '../../network/clients/axios_client';
3
- export default class CustomerIOSegment {
1
+ import { AuthObject, CreateSegmentBody, CreateSegmentResponse, GetSegmentsResponse, CustomerIOConfig } from './type';
2
+ import { BaseSDK } from '../common/base-sdk';
3
+ import { StatTags } from '../../network/clients/types';
4
+ export default class CustomerIOSegment extends BaseSDK<AuthObject, CustomerIOConfig> {
4
5
  static readonly url: string;
5
- private static readonly DEFAULT_AXIOS_CLIENT;
6
- private axiosClient;
7
- private authObject;
8
- constructor(authObject: AuthObject, axiosClient?: AxiosClient);
9
- private static validateAuthObject;
10
- /**
11
- * This function returns the app api key.
12
- * @returns
13
- */
14
- getAppApiKey(): string;
6
+ validateAuthObject(authObject: AuthObject): void;
7
+ protected buildRequestUrl(endpoint: string): string;
8
+ protected getHeaders(): Record<string, string>;
15
9
  /**
16
10
  * This method fetches the segments. If unable to fetch the segments, it returns a RestError.
17
11
  * ref: https://docs.customer.io/api/app/#operation/listSegments
12
+ * @param statTags - Optional stat tags for metrics and logging
18
13
  * @returns
19
14
  */
20
- getSegments(): Promise<GetSegmentsResponse>;
15
+ getSegments(statTags?: StatTags): Promise<GetSegmentsResponse>;
21
16
  /**
22
17
  * This method creates a manual segment. It requires the segment body. The method returns the created segment. If the manual segment is not created, it returns a RestError.
23
18
  * ref: https://docs.customer.io/api/app/#operation/createManSegment
24
19
  * @param body CreateSegment fields
20
+ * @param statTags - Optional stat tags for metrics and logging
25
21
  * @returns
26
22
  */
27
- createSegment(body: CreateSegmentBody): Promise<CreateSegmentResponse>;
23
+ createSegment(body: CreateSegmentBody, statTags?: StatTags): Promise<CreateSegmentResponse>;
28
24
  }
29
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdks/customerio_audience/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEnG,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAGjE,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAyC;IAEpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAEjE,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,EAAE,UAAU,EAAE,WAAW,cAAyC;IAMxF,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAOjC;;;OAGG;IACH,YAAY,IAAI,MAAM;IAItB;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAiBjD;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAiB7E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdks/customerio_audience/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAgC;IAG3D,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAOhD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMnD,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO9C;;;;;OAKG;IACG,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAWpE;;;;;;OAMG;IACG,aAAa,CACjB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,qBAAqB,CAAC;CAWlC"}