@rudderstack/integrations-lib 0.2.48 → 0.2.50
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/build/cluster/manager.d.ts.map +1 -1
- package/build/cluster/manager.js +9 -5
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/build/mock_utils/axios_client_mock_util.d.ts +5 -0
- package/build/mock_utils/axios_client_mock_util.d.ts.map +1 -0
- package/build/mock_utils/axios_client_mock_util.js +13 -0
- package/build/mock_utils/index.d.ts +2 -0
- package/build/mock_utils/index.d.ts.map +1 -0
- package/build/mock_utils/index.js +18 -0
- package/build/network/clients/axios_client.d.ts +6 -5
- package/build/network/clients/axios_client.d.ts.map +1 -1
- package/build/network/clients/axios_client.js +66 -40
- package/build/network/clients/types.d.ts +65 -5
- package/build/network/clients/types.d.ts.map +1 -1
- package/build/network/clients/types.js +1 -1
- package/build/network/factory.d.ts +12 -2
- package/build/network/factory.d.ts.map +1 -1
- package/build/network/factory.js +24 -1
- package/build/sdks/common/base-sdk.d.ts +64 -0
- package/build/sdks/common/base-sdk.d.ts.map +1 -0
- package/build/sdks/common/base-sdk.js +182 -0
- package/build/sdks/common/index.d.ts +3 -0
- package/build/sdks/common/index.d.ts.map +1 -0
- package/build/sdks/common/index.js +7 -0
- package/build/sdks/common/types.d.ts +13 -0
- package/build/sdks/common/types.d.ts.map +1 -0
- package/build/sdks/common/types.js +3 -0
- package/build/sdks/criteoAudience/criteoAudience.d.ts +11 -39
- package/build/sdks/criteoAudience/criteoAudience.d.ts.map +1 -1
- package/build/sdks/criteoAudience/criteoAudience.js +33 -69
- package/build/sdks/criteoAudience/types.d.ts +3 -0
- package/build/sdks/criteoAudience/types.d.ts.map +1 -1
- package/build/sdks/criteoAudience/types.js +1 -1
- package/build/sdks/customerio_audience/index.d.ts +11 -15
- package/build/sdks/customerio_audience/index.d.ts.map +1 -1
- package/build/sdks/customerio_audience/index.js +23 -34
- package/build/sdks/customerio_audience/type.d.ts +3 -0
- package/build/sdks/customerio_audience/type.d.ts.map +1 -1
- package/build/sdks/customerio_audience/type.js +1 -1
- package/build/sdks/googleAdsRestAPI/googleAds.d.ts +16 -17
- package/build/sdks/googleAdsRestAPI/googleAds.d.ts.map +1 -1
- package/build/sdks/googleAdsRestAPI/googleAds.js +44 -37
- package/build/sdks/googleAdsRestAPI/types.d.ts +3 -0
- package/build/sdks/googleAdsRestAPI/types.d.ts.map +1 -1
- package/build/sdks/googleAdsRestAPI/types.js +1 -1
- package/build/sdks/index.d.ts +1 -0
- package/build/sdks/index.d.ts.map +1 -1
- package/build/sdks/index.js +5 -1
- package/build/sdks/sfmc/index.d.ts +1 -1
- package/build/sdks/sfmc/index.d.ts.map +1 -1
- package/build/sdks/sfmc/index.js +4 -3
- package/build/sdks/zoho/types.d.ts +3 -0
- package/build/sdks/zoho/types.d.ts.map +1 -1
- package/build/sdks/zoho/types.js +1 -1
- package/build/sdks/zoho/zoho.d.ts +13 -17
- package/build/sdks/zoho/zoho.d.ts.map +1 -1
- package/build/sdks/zoho/zoho.js +44 -51
- package/mock/axios_client_mock_util.d.ts +2 -0
- package/mock/axios_client_mock_util.d.ts.map +1 -1
- package/mock/axios_client_mock_util.js +6 -3
- package/package.json +1 -1
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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.
|
|
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,
|
|
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,
|
|
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 {
|
|
3
|
-
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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,
|
|
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"}
|
|
@@ -1,39 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const utils_1 = require("./utils");
|
|
4
|
-
const
|
|
5
|
-
class CustomerIOSegment {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.authObject = authObject;
|
|
9
|
-
this.axiosClient = axiosClient;
|
|
10
|
-
}
|
|
11
|
-
static validateAuthObject(authObject) {
|
|
4
|
+
const base_sdk_1 = require("../common/base-sdk");
|
|
5
|
+
class CustomerIOSegment extends base_sdk_1.BaseSDK {
|
|
6
|
+
// eslint-disable-next-line class-methods-use-this
|
|
7
|
+
validateAuthObject(authObject) {
|
|
12
8
|
if (!authObject?.appApiKey || typeof authObject.appApiKey !== 'string') {
|
|
13
9
|
throw new Error('appApiKey is required and must be a string');
|
|
14
10
|
}
|
|
15
|
-
return authObject;
|
|
16
11
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
// eslint-disable-next-line class-methods-use-this
|
|
13
|
+
buildRequestUrl(endpoint) {
|
|
14
|
+
// Ensure endpoint starts with /
|
|
15
|
+
const cleanEndpoint = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;
|
|
16
|
+
return `${CustomerIOSegment.url}${cleanEndpoint}`;
|
|
17
|
+
}
|
|
18
|
+
getHeaders() {
|
|
19
|
+
return {
|
|
20
|
+
Accept: 'application/json',
|
|
21
|
+
Authorization: `Bearer ${this.authObject.appApiKey}`,
|
|
22
|
+
};
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* This method fetches the segments. If unable to fetch the segments, it returns a RestError.
|
|
26
26
|
* ref: https://docs.customer.io/api/app/#operation/listSegments
|
|
27
|
+
* @param statTags - Optional stat tags for metrics and logging
|
|
27
28
|
* @returns
|
|
28
29
|
*/
|
|
29
|
-
async getSegments() {
|
|
30
|
-
const
|
|
31
|
-
Accept: 'application/json',
|
|
32
|
-
Authorization: `Bearer ${this.getAppApiKey()}`,
|
|
33
|
-
};
|
|
34
|
-
const resp = await this.axiosClient.get(CustomerIOSegment.url, {
|
|
35
|
-
headers,
|
|
36
|
-
});
|
|
30
|
+
async getSegments(statTags) {
|
|
31
|
+
const resp = await this.get('/segments', statTags);
|
|
37
32
|
if (resp.type === 'success') {
|
|
38
33
|
return resp.responseBody;
|
|
39
34
|
}
|
|
@@ -43,23 +38,17 @@ class CustomerIOSegment {
|
|
|
43
38
|
* 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.
|
|
44
39
|
* ref: https://docs.customer.io/api/app/#operation/createManSegment
|
|
45
40
|
* @param body CreateSegment fields
|
|
41
|
+
* @param statTags - Optional stat tags for metrics and logging
|
|
46
42
|
* @returns
|
|
47
43
|
*/
|
|
48
|
-
async createSegment(body) {
|
|
49
|
-
const
|
|
50
|
-
'Content-Type': 'application/json',
|
|
51
|
-
Authorization: `Bearer ${this.getAppApiKey()}`,
|
|
52
|
-
};
|
|
53
|
-
const resp = await this.axiosClient.post(CustomerIOSegment.url, body, {
|
|
54
|
-
headers,
|
|
55
|
-
});
|
|
44
|
+
async createSegment(body, statTags) {
|
|
45
|
+
const resp = await this.post('/segments', body, statTags);
|
|
56
46
|
if (resp.type === 'success') {
|
|
57
47
|
return resp.responseBody;
|
|
58
48
|
}
|
|
59
49
|
throw new utils_1.RestError(resp.message, resp.statusCode);
|
|
60
50
|
}
|
|
61
51
|
}
|
|
62
|
-
CustomerIOSegment.url = 'https://api.customer.io/v1
|
|
63
|
-
CustomerIOSegment.DEFAULT_AXIOS_CLIENT = new axios_client_1.AxiosClient();
|
|
52
|
+
CustomerIOSegment.url = 'https://api.customer.io/v1';
|
|
64
53
|
exports.default = CustomerIOSegment;
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jdXN0b21lcmlvX2F1ZGllbmNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsbUNBQW9DO0FBRXBDLGlEQUE2QztBQUc3QyxNQUFxQixpQkFBa0IsU0FBUSxrQkFBcUM7SUFHbEYsa0RBQWtEO0lBQ2xELGtCQUFrQixDQUFDLFVBQXNCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxJQUFJLE9BQU8sVUFBVSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2RSxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRCxrREFBa0Q7SUFDeEMsZUFBZSxDQUFDLFFBQWdCO1FBQ3hDLGdDQUFnQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDM0UsT0FBTyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRVMsVUFBVTtRQUNsQixPQUFPO1lBQ0wsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixhQUFhLEVBQUUsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtTQUNyRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFtQjtRQUNuQyxNQUFNLElBQUksR0FBcUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUMzRCxXQUFXLEVBQ1gsUUFBUSxDQUNULENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNCLENBQUM7UUFDRCxNQUFNLElBQUksaUJBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FDakIsSUFBdUIsRUFDdkIsUUFBbUI7UUFFbkIsTUFBTSxJQUFJLEdBQXVDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FDOUQsV0FBVyxFQUNYLElBQUksRUFDSixRQUFRLENBQ1QsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0IsQ0FBQztRQUNELE1BQU0sSUFBSSxpQkFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O0FBNURlLHFCQUFHLEdBQVcsNEJBQTRCLENBQUM7a0JBRHhDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEF1dGhPYmplY3QsXG4gIENyZWF0ZVNlZ21lbnRCb2R5LFxuICBDcmVhdGVTZWdtZW50UmVzcG9uc2UsXG4gIEdldFNlZ21lbnRzUmVzcG9uc2UsXG4gIEN1c3RvbWVySU9Db25maWcsXG59IGZyb20gJy4vdHlwZSc7XG5pbXBvcnQgeyBSZXN0RXJyb3IgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbmV0d29yayc7XG5pbXBvcnQgeyBCYXNlU0RLIH0gZnJvbSAnLi4vY29tbW9uL2Jhc2Utc2RrJztcbmltcG9ydCB7IFN0YXRUYWdzIH0gZnJvbSAnLi4vLi4vbmV0d29yay9jbGllbnRzL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3VzdG9tZXJJT1NlZ21lbnQgZXh0ZW5kcyBCYXNlU0RLPEF1dGhPYmplY3QsIEN1c3RvbWVySU9Db25maWc+IHtcbiAgc3RhdGljIHJlYWRvbmx5IHVybDogc3RyaW5nID0gJ2h0dHBzOi8vYXBpLmN1c3RvbWVyLmlvL3YxJztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCk6IHZvaWQge1xuICAgIGlmICghYXV0aE9iamVjdD8uYXBwQXBpS2V5IHx8IHR5cGVvZiBhdXRoT2JqZWN0LmFwcEFwaUtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXBwQXBpS2V5IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgcHJvdGVjdGVkIGJ1aWxkUmVxdWVzdFVybChlbmRwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBFbnN1cmUgZW5kcG9pbnQgc3RhcnRzIHdpdGggL1xuICAgIGNvbnN0IGNsZWFuRW5kcG9pbnQgPSBlbmRwb2ludC5zdGFydHNXaXRoKCcvJykgPyBlbmRwb2ludCA6IGAvJHtlbmRwb2ludH1gO1xuICAgIHJldHVybiBgJHtDdXN0b21lcklPU2VnbWVudC51cmx9JHtjbGVhbkVuZHBvaW50fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SGVhZGVycygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5hdXRoT2JqZWN0LmFwcEFwaUtleX1gLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgZmV0Y2hlcyB0aGUgc2VnbWVudHMuIElmIHVuYWJsZSB0byBmZXRjaCB0aGUgc2VnbWVudHMsIGl0IHJldHVybnMgYSBSZXN0RXJyb3IuXG4gICAqIHJlZjogaHR0cHM6Ly9kb2NzLmN1c3RvbWVyLmlvL2FwaS9hcHAvI29wZXJhdGlvbi9saXN0U2VnbWVudHNcbiAgICogQHBhcmFtIHN0YXRUYWdzIC0gT3B0aW9uYWwgc3RhdCB0YWdzIGZvciBtZXRyaWNzIGFuZCBsb2dnaW5nXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhc3luYyBnZXRTZWdtZW50cyhzdGF0VGFncz86IFN0YXRUYWdzKTogUHJvbWlzZTxHZXRTZWdtZW50c1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVzcDogQXBpUmVzcG9uc2U8R2V0U2VnbWVudHNSZXNwb25zZT4gPSBhd2FpdCB0aGlzLmdldDxHZXRTZWdtZW50c1Jlc3BvbnNlPihcbiAgICAgICcvc2VnbWVudHMnLFxuICAgICAgc3RhdFRhZ3MsXG4gICAgKTtcbiAgICBpZiAocmVzcC50eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHJldHVybiByZXNwLnJlc3BvbnNlQm9keTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFJlc3RFcnJvcihyZXNwLm1lc3NhZ2UsIHJlc3Auc3RhdHVzQ29kZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgY3JlYXRlcyBhIG1hbnVhbCBzZWdtZW50LiBJdCByZXF1aXJlcyB0aGUgc2VnbWVudCBib2R5LiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIGNyZWF0ZWQgc2VnbWVudC4gSWYgdGhlIG1hbnVhbCBzZWdtZW50IGlzIG5vdCBjcmVhdGVkLCBpdCByZXR1cm5zIGEgUmVzdEVycm9yLlxuICAgKiByZWY6IGh0dHBzOi8vZG9jcy5jdXN0b21lci5pby9hcGkvYXBwLyNvcGVyYXRpb24vY3JlYXRlTWFuU2VnbWVudFxuICAgKiBAcGFyYW0gYm9keSBDcmVhdGVTZWdtZW50IGZpZWxkc1xuICAgKiBAcGFyYW0gc3RhdFRhZ3MgLSBPcHRpb25hbCBzdGF0IHRhZ3MgZm9yIG1ldHJpY3MgYW5kIGxvZ2dpbmdcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGNyZWF0ZVNlZ21lbnQoXG4gICAgYm9keTogQ3JlYXRlU2VnbWVudEJvZHksXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxDcmVhdGVTZWdtZW50UmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXNwOiBBcGlSZXNwb25zZTxDcmVhdGVTZWdtZW50UmVzcG9uc2U+ID0gYXdhaXQgdGhpcy5wb3N0PENyZWF0ZVNlZ21lbnRSZXNwb25zZT4oXG4gICAgICAnL3NlZ21lbnRzJyxcbiAgICAgIGJvZHksXG4gICAgICBzdGF0VGFncyxcbiAgICApO1xuICAgIGlmIChyZXNwLnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgcmV0dXJuIHJlc3AucmVzcG9uc2VCb2R5O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgUmVzdEVycm9yKHJlc3AubWVzc2FnZSwgcmVzcC5zdGF0dXNDb2RlKTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/sdks/customerio_audience/type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,MAAM,CAAC;YACX,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;SACxB;KACF,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/sdks/customerio_audience/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;CAEtD;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,MAAM,CAAC;YACX,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;SACxB;KACF,CAAC;CACH"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL2N1c3RvbWVyaW9fYXVkaWVuY2UvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVNES0NvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aE9iamVjdCB7XG4gIGFwcEFwaUtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVySU9Db25maWcgZXh0ZW5kcyBCYXNlU0RLQ29uZmlnIHtcbiAgLy8gQWRkIEN1c3RvbWVySU8tc3BlY2lmaWMgY29uZmlnIGlmIG5lZWRlZCBpbiB0aGUgZnV0dXJlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU2VnbWVudEJvZHkge1xuICBzZWdtZW50OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVNlZ21lbnRSZXNwb25zZSB7XG4gIHNlZ21lbnQ6IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIGRlZHVwbGljYXRlX2lkPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgc3RhdGU/OiBzdHJpbmc7XG4gICAgcHJvZ3Jlc3M/OiBudW1iZXIgfCBudWxsO1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgdGFncz86IHN0cmluZ1tdIHwgbnVsbDtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRTZWdtZW50c1Jlc3BvbnNlIHtcbiAgc2VnbWVudHM6IFtcbiAgICB7XG4gICAgICBpZDogbnVtYmVyO1xuICAgICAgZGVkdXBsaWNhdGVfaWQ/OiBzdHJpbmc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIHN0YXRlPzogc3RyaW5nO1xuICAgICAgcHJvZ3Jlc3M/OiBudW1iZXIgfCBudWxsO1xuICAgICAgdHlwZT86IHN0cmluZztcbiAgICAgIHRhZ3M/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgfSxcbiAgXTtcbn1cbiJdfQ==
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { ApiResponse } from '../../network/clients/types';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
uploadCallConversion(uploadCallConversionData: CallConversionData): Promise<ApiResponse<CallConversionResponse>>;
|
|
1
|
+
import { ApiResponse, StatTags } from '../../network/clients/types';
|
|
2
|
+
import { BaseSDK } from '../common/base-sdk';
|
|
3
|
+
import { AuthObject, CallConversionData, CallConversionResponse, ClickConversionData, ClickConversionResponse, ConversionActionResponse, ConversionAdjustmentData, ConversionAdjustmentResponse, CreateOfflineUserDataJobData, CreateOfflineUserDataJobRespose, CustomVariableResults, GoogleAdsConfig, OfflineUserDataJobAddData, OfflineUserDataJobAddDataResponse, RunOfflineUserDataJobResponse, SearchStreamResponse } from './types';
|
|
4
|
+
export default class GoogleAds extends BaseSDK<AuthObject, GoogleAdsConfig> {
|
|
5
|
+
validateAuthObject(authObject: AuthObject): void;
|
|
6
|
+
protected buildRequestUrl(endpoint: string): string;
|
|
7
|
+
protected getHeaders(): Record<string, string>;
|
|
8
|
+
getConversionActionId(conversionName: string, statTags?: StatTags): Promise<string | ApiResponse<Array<SearchStreamResponse<ConversionActionResponse>>>>;
|
|
9
|
+
getCustomVariable(statTags?: StatTags): Promise<CustomVariableResults[] | ApiResponse<Array<SearchStreamResponse<CustomVariableResults>>>>;
|
|
10
|
+
addConversionAdjustMent(conversionAdjustMentData: ConversionAdjustmentData, statTags?: StatTags): Promise<ApiResponse<ConversionAdjustmentResponse>>;
|
|
11
|
+
createOfflineUserDataJob(data: CreateOfflineUserDataJobData, statTags?: StatTags): Promise<ApiResponse<CreateOfflineUserDataJobRespose>>;
|
|
12
|
+
addUserToOfflineUserDataJob(jobId: string, offlineUserData: OfflineUserDataJobAddData, statTags?: StatTags): Promise<ApiResponse<OfflineUserDataJobAddDataResponse>>;
|
|
13
|
+
addConversionsToOfflineUserDataJob(jobId: string, offlineUserData: OfflineUserDataJobAddData, statTags?: StatTags): Promise<ApiResponse<OfflineUserDataJobAddDataResponse>>;
|
|
14
|
+
runOfflineUserDataJob(jobId: string, statTags?: StatTags): Promise<ApiResponse<RunOfflineUserDataJobResponse>>;
|
|
15
|
+
uploadClickConversion(uploadClickConversionData: ClickConversionData, statTags?: StatTags): Promise<ApiResponse<ClickConversionResponse>>;
|
|
16
|
+
uploadCallConversion(uploadCallConversionData: CallConversionData, statTags?: StatTags): Promise<ApiResponse<CallConversionResponse>>;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=googleAds.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"googleAds.d.ts","sourceRoot":"","sources":["../../../src/sdks/googleAdsRestAPI/googleAds.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"googleAds.d.ts","sourceRoot":"","sources":["../../../src/sdks/googleAdsRestAPI/googleAds.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,iCAAiC,EACjC,6BAA6B,EAC7B,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC;IAEzE,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;IAUjC,qBAAqB,CAChC,cAAc,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAsB1E,iBAAiB,CAC5B,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CACR,qBAAqB,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAC1F;IAkBY,uBAAuB,CAClC,wBAAwB,EAAE,wBAAwB,EAClD,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;IASxC,wBAAwB,CACnC,IAAI,EAAE,4BAA4B,EAClC,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAS3C,2BAA2B,CACtC,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,yBAAyB,EAC1C,QAAQ,CAAC,EAAE,QAAQ;IAUR,kCAAkC,CAC7C,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,yBAAyB,EAC1C,QAAQ,CAAC,EAAE,QAAQ;IAUR,qBAAqB,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IASzC,qBAAqB,CAChC,yBAAyB,EAAE,mBAAmB,EAC9C,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAUnC,oBAAoB,CAC/B,wBAAwB,EAAE,kBAAkB,EAC5C,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;CAShD"}
|