@rudderstack/integrations-lib 0.2.36 → 0.2.38
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/sdks/criteoAudience/config.d.ts +3 -0
- package/build/sdks/criteoAudience/config.d.ts.map +1 -0
- package/build/sdks/criteoAudience/config.js +6 -0
- package/build/sdks/criteoAudience/criteoAudience.d.ts +51 -0
- package/build/sdks/criteoAudience/criteoAudience.d.ts.map +1 -0
- package/build/sdks/criteoAudience/criteoAudience.js +112 -0
- package/build/sdks/criteoAudience/index.d.ts +4 -0
- package/build/sdks/criteoAudience/index.d.ts.map +1 -0
- package/build/sdks/criteoAudience/index.js +9 -0
- package/build/sdks/criteoAudience/types.d.ts +45 -0
- package/build/sdks/criteoAudience/types.d.ts.map +1 -0
- package/build/sdks/criteoAudience/types.js +3 -0
- package/build/sdks/index.d.ts +1 -0
- package/build/sdks/index.d.ts.map +1 -1
- package/build/sdks/index.js +3 -2
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/sdks/criteoAudience/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,QAAQ,mCAA0C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BASE_URL = exports.API_VERSION = void 0;
|
|
4
|
+
exports.API_VERSION = '2025-04';
|
|
5
|
+
exports.BASE_URL = `https://api.criteo.com/${exports.API_VERSION}`;
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nka3MvY3JpdGVvQXVkaWVuY2UvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsV0FBVyxHQUFHLFNBQVMsQ0FBQztBQUV4QixRQUFBLFFBQVEsR0FBRywwQkFBMEIsbUJBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFQSV9WRVJTSU9OID0gJzIwMjUtMDQnO1xuXG5leHBvcnQgY29uc3QgQkFTRV9VUkwgPSBgaHR0cHM6Ly9hcGkuY3JpdGVvLmNvbS8ke0FQSV9WRVJTSU9OfWA7XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { AuthObject, AudienceSegmentBody, AudienceSegmentData } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* CriteoAudience SDK for managing audience segments in Criteo
|
|
4
|
+
* @class
|
|
5
|
+
*/
|
|
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;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a new audience segment in Criteo
|
|
45
|
+
* @param {AudienceSegmentBody} audienceSegmentBody - Audience segment data
|
|
46
|
+
* @returns {Promise<AudienceSegmentData>} Created audience segment data
|
|
47
|
+
* @throws {Error} If audience segment creation fails
|
|
48
|
+
*/
|
|
49
|
+
createAudienceSegment(audienceSegmentBody: AudienceSegmentBody): Promise<AudienceSegmentData>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=criteoAudience.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const factory_1 = require("../../network/factory");
|
|
4
|
+
const config_1 = require("./config");
|
|
5
|
+
/**
|
|
6
|
+
* CriteoAudience SDK for managing audience segments in Criteo
|
|
7
|
+
* @class
|
|
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) {
|
|
29
|
+
if (!authObject) {
|
|
30
|
+
throw new Error('authObject is required.');
|
|
31
|
+
}
|
|
32
|
+
const { accessToken, refreshAccessTokenFunc } = authObject;
|
|
33
|
+
if (!accessToken) {
|
|
34
|
+
throw new Error('Criteo Audience accessToken is required.');
|
|
35
|
+
}
|
|
36
|
+
if (!refreshAccessTokenFunc) {
|
|
37
|
+
throw new Error('Criteo Audience a refresh access token function is required.');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Refreshes the access token using the provided refresh function
|
|
42
|
+
* @throws {Error} If token refresh fails
|
|
43
|
+
* @private
|
|
44
|
+
*/
|
|
45
|
+
async refreshToken() {
|
|
46
|
+
try {
|
|
47
|
+
const accessToken = await this.authObject.refreshAccessTokenFunc();
|
|
48
|
+
this.authObject.accessToken = accessToken;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
throw new Error(`Unable to refresh token, with error: ${error}`);
|
|
52
|
+
}
|
|
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
|
+
/**
|
|
92
|
+
* Creates a new audience segment in Criteo
|
|
93
|
+
* @param {AudienceSegmentBody} audienceSegmentBody - Audience segment data
|
|
94
|
+
* @returns {Promise<AudienceSegmentData>} Created audience segment data
|
|
95
|
+
* @throws {Error} If audience segment creation fails
|
|
96
|
+
*/
|
|
97
|
+
async createAudienceSegment(audienceSegmentBody) {
|
|
98
|
+
const createAudienceSegmentResponse = await this.executePostRequest(`/marketing-solutions/audience-segments/create`, audienceSegmentBody);
|
|
99
|
+
if (createAudienceSegmentResponse.type === 'success') {
|
|
100
|
+
const { data } = createAudienceSegmentResponse.responseBody;
|
|
101
|
+
if (data && data.length > 0) {
|
|
102
|
+
return data[0];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const errorMessage = createAudienceSegmentResponse.type === 'client-error'
|
|
106
|
+
? createAudienceSegmentResponse.message
|
|
107
|
+
: JSON.stringify(createAudienceSegmentResponse.responseBody);
|
|
108
|
+
throw new Error(`Failed to create audience segment, with error: ${errorMessage}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.default = CriteoAudience;
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVvQXVkaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jcml0ZW9BdWRpZW5jZS9jcml0ZW9BdWRpZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1EQUF1RTtBQUV2RSxxQ0FBb0M7QUFRcEM7OztHQUdHO0FBQ0gsTUFBcUIsY0FBYztJQUtqQzs7OztPQUlHO0lBQ0gsWUFBWSxVQUFzQjtRQUNoQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRywyQkFBaUIsQ0FBQyxhQUFhLENBQUMscUJBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDbkUsT0FBTyxFQUFFLGlCQUFRO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFzQjtRQUN0RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxNQUFNLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxLQUFLLENBQUMsWUFBWTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDNUMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFNBQVM7UUFDZixPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFO2dCQUN0RCxNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQixjQUFjLEVBQUUsa0JBQWtCO2FBQ25DO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssS0FBSyxDQUFDLGtCQUFrQixDQUFJLEdBQVcsRUFBRSxJQUFZO1FBQzNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1RSxRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixLQUFLLG1CQUFtQjtnQkFDdEIsSUFDRSxRQUFRLENBQUMsVUFBVSxLQUFLLEdBQUc7b0JBQzNCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDZCQUE2Qjt3QkFDckUsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDZCQUE2QixDQUFDLEVBQ3pFLENBQUM7b0JBQ0QsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFDRCxPQUFPLFFBQVEsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQixDQUNoQyxtQkFBd0M7UUFFeEMsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FDakUsK0NBQStDLEVBQy9DLG1CQUFtQixDQUNwQixDQUFDO1FBQ0YsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLDZCQUE2QixDQUFDLFlBQVksQ0FBQztZQUM1RCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUNoQiw2QkFBNkIsQ0FBQyxJQUFJLEtBQUssY0FBYztZQUNuRCxDQUFDLENBQUMsNkJBQTZCLENBQUMsT0FBTztZQUN2QyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqRSxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7Q0FDRjtBQXZIRCxpQ0F1SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50RmFjdG9yeSwgQ2xpZW50TmFtZXMgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2ZhY3RvcnknO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgUmVxdWVzdENvbmZpZywgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2NsaWVudHMvdHlwZXMnO1xuaW1wb3J0IHsgQkFTRV9VUkwgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBBdXRoT2JqZWN0LFxuICBBdWRpZW5jZVNlZ21lbnRCb2R5LFxuICBBdWRpZW5jZVNlZ21lbnRSZXNwb25zZSxcbiAgQXVkaWVuY2VTZWdtZW50RGF0YSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ3JpdGVvQXVkaWVuY2UgU0RLIGZvciBtYW5hZ2luZyBhdWRpZW5jZSBzZWdtZW50cyBpbiBDcml0ZW9cbiAqIEBjbGFzc1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcml0ZW9BdWRpZW5jZSB7XG4gIHByaXZhdGUgYXV0aE9iamVjdDogQXV0aE9iamVjdDtcblxuICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ3JpdGVvQXVkaWVuY2VcbiAgICogQHBhcmFtIHtBdXRoT2JqZWN0fSBhdXRoT2JqZWN0IC0gQXV0aGVudGljYXRpb24gb2JqZWN0IGNvbnRhaW5pbmcgYWNjZXNzIHRva2VuIGFuZCByZWZyZXNoIGZ1bmN0aW9uXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBhdXRoT2JqZWN0IGlzIGludmFsaWQgb3IgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhdXRoT2JqZWN0OiBBdXRoT2JqZWN0KSB7XG4gICAgQ3JpdGVvQXVkaWVuY2UudmFsaWRhdGVBdXRoT2JqZWN0KGF1dGhPYmplY3QpO1xuICAgIHRoaXMuYXV0aE9iamVjdCA9IGF1dGhPYmplY3Q7XG4gICAgdGhpcy5odHRwQ2xpZW50ID0gSHR0cENsaWVudEZhY3RvcnkuZ2V0SHR0cENsaWVudChDbGllbnROYW1lcy5BeGlvcywge1xuICAgICAgYmFzZVVSTDogQkFTRV9VUkwsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBhdXRoZW50aWNhdGlvbiBvYmplY3RcbiAgICogQHBhcmFtIHtBdXRoT2JqZWN0fSBhdXRoT2JqZWN0IC0gQXV0aGVudGljYXRpb24gb2JqZWN0IHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBhdXRoT2JqZWN0IGlzIGludmFsaWQgb3IgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0aWVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCkge1xuICAgIGlmICghYXV0aE9iamVjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhdXRoT2JqZWN0IGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuLCByZWZyZXNoQWNjZXNzVG9rZW5GdW5jIH0gPSBhdXRoT2JqZWN0O1xuICAgIGlmICghYWNjZXNzVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3JpdGVvIEF1ZGllbmNlIGFjY2Vzc1Rva2VuIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoIXJlZnJlc2hBY2Nlc3NUb2tlbkZ1bmMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3JpdGVvIEF1ZGllbmNlIGEgcmVmcmVzaCBhY2Nlc3MgdG9rZW4gZnVuY3Rpb24gaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgYWNjZXNzIHRva2VuIHVzaW5nIHRoZSBwcm92aWRlZCByZWZyZXNoIGZ1bmN0aW9uXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0b2tlbiByZWZyZXNoIGZhaWxzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlZnJlc2hUb2tlbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhPYmplY3QucmVmcmVzaEFjY2Vzc1Rva2VuRnVuYygpO1xuICAgICAgdGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VuID0gYWNjZXNzVG9rZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHJlZnJlc2ggdG9rZW4sIHdpdGggZXJyb3I6ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJlcXVlc3QgaGVhZGVycyB3aXRoIGF1dGhlbnRpY2F0aW9uXG4gICAqIEByZXR1cm5zIHtSZXF1ZXN0Q29uZmlnfSBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gd2l0aCBoZWFkZXJzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldEhlYWRlcigpOiBSZXF1ZXN0Q29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBhdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VufWAsXG4gICAgICAgIGFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgUE9TVCByZXF1ZXN0IHdpdGggdG9rZW4gcmVmcmVzaCBoYW5kbGluZ1xuICAgKiBAdGVtcGxhdGUgVCAtIFJlc3BvbnNlIHR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIEFQSSBlbmRwb2ludCBVUkxcbiAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBSZXF1ZXN0IHBheWxvYWRcbiAgICogQHJldHVybnMge1Byb21pc2U8QXBpUmVzcG9uc2U8VD4+fSBBUEkgcmVzcG9uc2VcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZVBvc3RSZXF1ZXN0PFQ+KHVybDogc3RyaW5nLCBkYXRhOiBvYmplY3QpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmh0dHBDbGllbnQucG9zdDxUPih1cmwsIGRhdGEsIHRoaXMuZ2V0SGVhZGVyKCkpO1xuICAgIHN3aXRjaCAocmVzcG9uc2UudHlwZSkge1xuICAgICAgY2FzZSAnYXBwbGljYXRpb24tZXJyb3InOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gNDAxICYmXG4gICAgICAgICAgKHJlc3BvbnNlLnJlc3BvbnNlQm9keS5lcnJvcnNbMF0uY29kZSA9PT0gJ2F1dGhvcml6YXRpb24tdG9rZW4taW52YWxpZCcgfHxcbiAgICAgICAgICAgIHJlc3BvbnNlLnJlc3BvbnNlQm9keS5lcnJvcnNbMF0uY29kZSA9PT0gJ2F1dGhvcml6YXRpb24tdG9rZW4tZXhwaXJlZCcpXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFQ+KHVybCwgZGF0YSwgdGhpcy5nZXRIZWFkZXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGF1ZGllbmNlIHNlZ21lbnQgaW4gQ3JpdGVvXG4gICAqIEBwYXJhbSB7QXVkaWVuY2VTZWdtZW50Qm9keX0gYXVkaWVuY2VTZWdtZW50Qm9keSAtIEF1ZGllbmNlIHNlZ21lbnQgZGF0YVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBdWRpZW5jZVNlZ21lbnREYXRhPn0gQ3JlYXRlZCBhdWRpZW5jZSBzZWdtZW50IGRhdGFcbiAgICogQHRocm93cyB7RXJyb3J9IElmIGF1ZGllbmNlIHNlZ21lbnQgY3JlYXRpb24gZmFpbHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVBdWRpZW5jZVNlZ21lbnQoXG4gICAgYXVkaWVuY2VTZWdtZW50Qm9keTogQXVkaWVuY2VTZWdtZW50Qm9keSxcbiAgKTogUHJvbWlzZTxBdWRpZW5jZVNlZ21lbnREYXRhPiB7XG4gICAgY29uc3QgY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmV4ZWN1dGVQb3N0UmVxdWVzdDxBdWRpZW5jZVNlZ21lbnRSZXNwb25zZT4oXG4gICAgICBgL21hcmtldGluZy1zb2x1dGlvbnMvYXVkaWVuY2Utc2VnbWVudHMvY3JlYXRlYCxcbiAgICAgIGF1ZGllbmNlU2VnbWVudEJvZHksXG4gICAgKTtcbiAgICBpZiAoY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UudHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGNyZWF0ZUF1ZGllbmNlU2VnbWVudFJlc3BvbnNlLnJlc3BvbnNlQm9keTtcbiAgICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gZGF0YVswXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UudHlwZSA9PT0gJ2NsaWVudC1lcnJvcidcbiAgICAgICAgPyBjcmVhdGVBdWRpZW5jZVNlZ21lbnRSZXNwb25zZS5tZXNzYWdlXG4gICAgICAgIDogSlNPTi5zdHJpbmdpZnkoY3JlYXRlQXVkaWVuY2VTZWdtZW50UmVzcG9uc2UucmVzcG9uc2VCb2R5KTtcblxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBhdWRpZW5jZSBzZWdtZW50LCB3aXRoIGVycm9yOiAke2Vycm9yTWVzc2FnZX1gKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdks/criteoAudience/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CriteoAudience = void 0;
|
|
7
|
+
const criteoAudience_1 = __importDefault(require("./criteoAudience"));
|
|
8
|
+
exports.CriteoAudience = criteoAudience_1.default;
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jcml0ZW9BdWRpZW5jZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzRUFBOEM7QUFJckMseUJBSkYsd0JBQWMsQ0FJRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDcml0ZW9BdWRpZW5jZSBmcm9tICcuL2NyaXRlb0F1ZGllbmNlJztcblxuaW1wb3J0IHsgQXV0aE9iamVjdCwgQXVkaWVuY2VTZWdtZW50Qm9keSwgQXVkaWVuY2VTZWdtZW50RGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgeyBDcml0ZW9BdWRpZW5jZSwgQXV0aE9iamVjdCwgQXVkaWVuY2VTZWdtZW50Qm9keSwgQXVkaWVuY2VTZWdtZW50RGF0YSB9O1xuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export interface AuthObject {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
refreshAccessTokenFunc: () => Promise<string>;
|
|
4
|
+
}
|
|
5
|
+
export interface AudienceSegmentBody {
|
|
6
|
+
data: {
|
|
7
|
+
attributes: {
|
|
8
|
+
advertiserId: string;
|
|
9
|
+
name: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
contactList: object;
|
|
12
|
+
};
|
|
13
|
+
type: 'AudienceSegment';
|
|
14
|
+
}[];
|
|
15
|
+
}
|
|
16
|
+
export interface AudienceSegmentData {
|
|
17
|
+
id: string;
|
|
18
|
+
type: 'AudienceSegment';
|
|
19
|
+
attributes: {
|
|
20
|
+
name: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
type: 'ContactList';
|
|
23
|
+
createdAt?: string;
|
|
24
|
+
updatedAt?: string;
|
|
25
|
+
advertiserId?: string;
|
|
26
|
+
contactList?: {
|
|
27
|
+
isReadOnly?: boolean;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface AudienceSegmentError {
|
|
32
|
+
traceId?: string;
|
|
33
|
+
traceIdentifier?: string;
|
|
34
|
+
type?: string;
|
|
35
|
+
code?: string;
|
|
36
|
+
instance?: string;
|
|
37
|
+
title?: string;
|
|
38
|
+
detail?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface AudienceSegmentResponse {
|
|
41
|
+
data?: AudienceSegmentData[];
|
|
42
|
+
warnings?: unknown;
|
|
43
|
+
errors?: AudienceSegmentError[];
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jcml0ZW9BdWRpZW5jZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBdXRoT2JqZWN0IHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaEFjY2Vzc1Rva2VuRnVuYzogKCkgPT4gUHJvbWlzZTxzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGllbmNlU2VnbWVudEJvZHkge1xuICBkYXRhOiB7XG4gICAgYXR0cmlidXRlczoge1xuICAgICAgYWR2ZXJ0aXNlcklkOiBzdHJpbmc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIGNvbnRhY3RMaXN0OiBvYmplY3Q7XG4gICAgfTtcbiAgICB0eXBlOiAnQXVkaWVuY2VTZWdtZW50JztcbiAgfVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGllbmNlU2VnbWVudERhdGEge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiAnQXVkaWVuY2VTZWdtZW50JztcbiAgYXR0cmlidXRlczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB0eXBlOiAnQ29udGFjdExpc3QnO1xuICAgIGNyZWF0ZWRBdD86IHN0cmluZztcbiAgICB1cGRhdGVkQXQ/OiBzdHJpbmc7XG4gICAgYWR2ZXJ0aXNlcklkPzogc3RyaW5nO1xuICAgIGNvbnRhY3RMaXN0Pzoge1xuICAgICAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdWRpZW5jZVNlZ21lbnRFcnJvciB7XG4gIHRyYWNlSWQ/OiBzdHJpbmc7XG4gIHRyYWNlSWRlbnRpZmllcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbiAgaW5zdGFuY2U/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXRhaWw/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEF1ZGllbmNlU2VnbWVudFJlc3BvbnNlIHtcbiAgZGF0YT86IEF1ZGllbmNlU2VnbWVudERhdGFbXTtcbiAgd2FybmluZ3M/OiB1bmtub3duO1xuICBlcnJvcnM/OiBBdWRpZW5jZVNlZ21lbnRFcnJvcltdO1xufVxuIl19
|
package/build/sdks/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export { default as SFMC } from './sfmc';
|
|
|
2
2
|
export { default as CustomerIOSegment } from './customerio_audience';
|
|
3
3
|
export * as ZOHO_SDK from './zoho';
|
|
4
4
|
export * as GoogleAdsSDK from './googleAdsRestAPI';
|
|
5
|
+
export * as CriteoAudience from './criteoAudience';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC"}
|
package/build/sdks/index.js
CHANGED
|
@@ -36,11 +36,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.GoogleAdsSDK = exports.ZOHO_SDK = exports.CustomerIOSegment = exports.SFMC = void 0;
|
|
39
|
+
exports.CriteoAudience = exports.GoogleAdsSDK = exports.ZOHO_SDK = exports.CustomerIOSegment = exports.SFMC = void 0;
|
|
40
40
|
var sfmc_1 = require("./sfmc");
|
|
41
41
|
Object.defineProperty(exports, "SFMC", { enumerable: true, get: function () { return __importDefault(sfmc_1).default; } });
|
|
42
42
|
var customerio_audience_1 = require("./customerio_audience");
|
|
43
43
|
Object.defineProperty(exports, "CustomerIOSegment", { enumerable: true, get: function () { return __importDefault(customerio_audience_1).default; } });
|
|
44
44
|
exports.ZOHO_SDK = __importStar(require("./zoho"));
|
|
45
45
|
exports.GoogleAdsSDK = __importStar(require("./googleAdsRestAPI"));
|
|
46
|
-
|
|
46
|
+
exports.CriteoAudience = __importStar(require("./criteoAudience"));
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2Rrcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBeUM7QUFBaEMsNkdBQUEsT0FBTyxPQUFRO0FBQ3hCLDZEQUFxRTtBQUE1RCx5SUFBQSxPQUFPLE9BQXFCO0FBQ3JDLG1EQUFtQztBQUNuQyxtRUFBbUQ7QUFDbkQsbUVBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBTRk1DIH0gZnJvbSAnLi9zZm1jJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3VzdG9tZXJJT1NlZ21lbnQgfSBmcm9tICcuL2N1c3RvbWVyaW9fYXVkaWVuY2UnO1xuZXhwb3J0ICogYXMgWk9IT19TREsgZnJvbSAnLi96b2hvJztcbmV4cG9ydCAqIGFzIEdvb2dsZUFkc1NESyBmcm9tICcuL2dvb2dsZUFkc1Jlc3RBUEknO1xuZXhwb3J0ICogYXMgQ3JpdGVvQXVkaWVuY2UgZnJvbSAnLi9jcml0ZW9BdWRpZW5jZSc7XG4iXX0=
|