@rudderstack/integrations-lib 0.2.58 → 0.2.60
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/network/clients/axios_client.d.ts +7 -8
- package/build/network/clients/axios_client.d.ts.map +1 -1
- package/build/network/clients/axios_client.js +60 -23
- package/build/network/clients/types.d.ts +13 -5
- package/build/network/clients/types.d.ts.map +1 -1
- package/build/network/clients/types.js +1 -1
- package/build/sdks/criteoAudience/criteoAudience.d.ts.map +1 -1
- package/build/sdks/criteoAudience/criteoAudience.js +6 -2
- package/build/sdks/customerio_audience/index.d.ts.map +1 -1
- package/build/sdks/customerio_audience/index.js +11 -3
- package/build/sdks/googleAdsRestAPI/googleAds.d.ts.map +1 -1
- package/build/sdks/googleAdsRestAPI/googleAds.js +46 -10
- package/build/sdks/zoho/zoho.d.ts.map +1 -1
- package/build/sdks/zoho/zoho.js +11 -3
- package/build/utils/index.d.ts +1 -0
- package/build/utils/index.d.ts.map +1 -1
- package/build/utils/index.js +2 -1
- package/build/utils/sanitizer.d.ts +152 -0
- package/build/utils/sanitizer.d.ts.map +1 -0
- package/build/utils/sanitizer.js +208 -0
- package/package.json +4 -1
|
@@ -70,7 +70,11 @@ class GoogleAds extends base_sdk_1.BaseSDK {
|
|
|
70
70
|
const data = {
|
|
71
71
|
query: queryString,
|
|
72
72
|
};
|
|
73
|
-
const
|
|
73
|
+
const customStatTags = {
|
|
74
|
+
...statTags,
|
|
75
|
+
endpointPath: `/<customerId>/googleAds:search`,
|
|
76
|
+
};
|
|
77
|
+
const searchStreamResponse = await this.post(`/${this.authObject.customerId}/googleAds:searchStream`, data, customStatTags);
|
|
74
78
|
if (searchStreamResponse.type === 'success') {
|
|
75
79
|
const conversionAction = (0, lodash_1.get)(searchStreamResponse.responseBody[0], 'results.0.conversionAction.resourceName');
|
|
76
80
|
return conversionAction ?? null;
|
|
@@ -82,7 +86,11 @@ class GoogleAds extends base_sdk_1.BaseSDK {
|
|
|
82
86
|
const data = {
|
|
83
87
|
query: queryString,
|
|
84
88
|
};
|
|
85
|
-
const
|
|
89
|
+
const customStatTags = {
|
|
90
|
+
...statTags,
|
|
91
|
+
endpointPath: `/<customerId>/googleAds:search`,
|
|
92
|
+
};
|
|
93
|
+
const searchStreamResponse = await this.post(`/${this.authObject.customerId}/googleAds:searchStream`, data, customStatTags);
|
|
86
94
|
if (searchStreamResponse.type === 'success') {
|
|
87
95
|
const customVariables = (0, lodash_1.get)(searchStreamResponse.responseBody[0], 'results');
|
|
88
96
|
return customVariables;
|
|
@@ -90,33 +98,61 @@ class GoogleAds extends base_sdk_1.BaseSDK {
|
|
|
90
98
|
return searchStreamResponse;
|
|
91
99
|
}
|
|
92
100
|
async addConversionAdjustMent(conversionAdjustMentData, statTags) {
|
|
93
|
-
const
|
|
101
|
+
const customStatTags = {
|
|
102
|
+
...statTags,
|
|
103
|
+
endpointPath: `/<customerId>:uploadConversionAdjustments`,
|
|
104
|
+
};
|
|
105
|
+
const conversionAdjustMentResponse = await this.post(`/${this.authObject.customerId}:uploadConversionAdjustments`, conversionAdjustMentData, customStatTags);
|
|
94
106
|
return conversionAdjustMentResponse;
|
|
95
107
|
}
|
|
96
108
|
async createOfflineUserDataJob(data, statTags) {
|
|
97
|
-
const
|
|
109
|
+
const customStatTags = {
|
|
110
|
+
...statTags,
|
|
111
|
+
endpointPath: `/<customerId>/offlineUserDataJobs:create`,
|
|
112
|
+
};
|
|
113
|
+
const conversionAdjustMentResponse = await this.post(`/${this.authObject.customerId}/offlineUserDataJobs:create`, data, customStatTags);
|
|
98
114
|
return conversionAdjustMentResponse;
|
|
99
115
|
}
|
|
100
116
|
async addUserToOfflineUserDataJob(jobId, offlineUserData, statTags) {
|
|
101
|
-
const
|
|
117
|
+
const customStatTags = {
|
|
118
|
+
...statTags,
|
|
119
|
+
endpointPath: `/<customerId>/offlineUserDataJobs/<jobId>:addOperations`,
|
|
120
|
+
};
|
|
121
|
+
const addUserToJobResponse = await this.post(`/${this.authObject.customerId}/offlineUserDataJobs/${jobId}:addOperations`, offlineUserData, customStatTags);
|
|
102
122
|
return addUserToJobResponse;
|
|
103
123
|
}
|
|
104
124
|
async addConversionsToOfflineUserDataJob(jobId, offlineUserData, statTags) {
|
|
105
|
-
const
|
|
125
|
+
const customStatTags = {
|
|
126
|
+
...statTags,
|
|
127
|
+
endpointPath: `/<customerId>/offlineUserDataJobs/<jobId>:addOperations`,
|
|
128
|
+
};
|
|
129
|
+
const addUserToJobResponse = await this.post(`/${this.authObject.customerId}/offlineUserDataJobs/${jobId}:addOperations`, offlineUserData, customStatTags);
|
|
106
130
|
return addUserToJobResponse;
|
|
107
131
|
}
|
|
108
132
|
async runOfflineUserDataJob(jobId, statTags) {
|
|
109
|
-
const
|
|
133
|
+
const customStatTags = {
|
|
134
|
+
...statTags,
|
|
135
|
+
endpointPath: `/<customerId>/offlineUserDataJobs/<jobId>:run`,
|
|
136
|
+
};
|
|
137
|
+
const conversionAdjustMentResponse = await this.post(`/${this.authObject.customerId}/offlineUserDataJobs/${jobId}:run`, {}, customStatTags);
|
|
110
138
|
return conversionAdjustMentResponse;
|
|
111
139
|
}
|
|
112
140
|
async uploadClickConversion(uploadClickConversionData, statTags) {
|
|
113
|
-
const
|
|
141
|
+
const customStatTags = {
|
|
142
|
+
...statTags,
|
|
143
|
+
endpointPath: `/<customerId>:uploadClickConversions`,
|
|
144
|
+
};
|
|
145
|
+
const uploadClickConversionResponse = await this.post(`/${this.authObject.customerId}:uploadClickConversions`, uploadClickConversionData, customStatTags);
|
|
114
146
|
return uploadClickConversionResponse;
|
|
115
147
|
}
|
|
116
148
|
async uploadCallConversion(uploadCallConversionData, statTags) {
|
|
117
|
-
const
|
|
149
|
+
const customStatTags = {
|
|
150
|
+
...statTags,
|
|
151
|
+
endpointPath: `/<customerId>:uploadCallConversions`,
|
|
152
|
+
};
|
|
153
|
+
const uploadCallConversionResponse = await this.post(`/${this.authObject.customerId}:uploadCallConversions`, uploadCallConversionData, customStatTags);
|
|
118
154
|
return uploadCallConversionResponse;
|
|
119
155
|
}
|
|
120
156
|
}
|
|
121
157
|
exports.default = GoogleAds;
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlQWRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nka3MvZ29vZ2xlQWRzUmVzdEFQSS9nb29nbGVBZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBNkI7QUFDN0IscURBQXVDO0FBRXZDLGlEQUE2QztBQUM3QyxxQ0FBdUM7QUFvQnZDLE1BQXFCLFNBQVUsU0FBUSxrQkFBb0M7SUFDekUsa0RBQWtEO0lBQ2xELGtCQUFrQixDQUFDLFVBQXNCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxrREFBa0Q7SUFDeEMsZUFBZSxDQUFDLFFBQWdCO1FBQ3hDLGdDQUFnQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDM0UsT0FBTyxvQ0FBb0Msb0JBQVcsYUFBYSxhQUFhLEVBQUUsQ0FBQztJQUNyRixDQUFDO0lBRVMsVUFBVTtRQUNsQixPQUFPO1lBQ0wsYUFBYSxFQUFFLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDdEQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxj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QUVuQixNQUFNLG9CQUFvQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsd0JBQXdCLEtBQUssZ0JBQWdCLEVBQzNFLGVBQWUsRUFDZixRQUFRLENBQ1QsQ0FBQztRQUNGLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxxQkFBcUIsQ0FDaEMsS0FBYSxFQUNiLFFBQW1CO1FBRW5CLE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUNsRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSx3QkFBd0IsS0FBSyxNQUFNLEVBQ2pFLEVBQUUsRUFDRixRQUFRLENBQ1QsQ0FBQztRQUNGLE9BQU8sNEJBQTRCLENBQUM7SUFDdEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxxQkFBcUIsQ0FDaEMseUJBQThDLEVBQzlDLFFBQW1CO1FBRW5CLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSx5QkFBeUIsRUFDdkQseUJBQXlCLEVBQ3pCLFFBQVEsQ0FDVCxDQUFDO1FBRUYsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUMvQix3QkFBNEMsRUFDNUMsUUFBbUI7UUFFbkIsTUFBTSw0QkFBNEIsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLHdCQUF3QixFQUN0RCx3QkFBd0IsRUFDeEIsUUFBUSxDQUNULENBQUM7UUFFRixPQUFPLDRCQUE0QixDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQXJLRCw0QkFxS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgU3FsU3RyaW5nIGZyb20gJ3NxbHN0cmluZyc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgU3RhdFRhZ3MgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2NsaWVudHMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZVNESyB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLXNkayc7XG5pbXBvcnQgeyBBUElfVkVSU0lPTiB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gIEF1dGhPYmplY3QsXG4gIENhbGxDb252ZXJzaW9uRGF0YSxcbiAgQ2FsbENvbnZlcnNpb25SZXNwb25zZSxcbiAgQ2xpY2tDb252ZXJzaW9uRGF0YSxcbiAgQ2xpY2tDb252ZXJzaW9uUmVzcG9uc2UsXG4gIENvbnZlcnNpb25BY3Rpb25SZXNwb25zZSxcbiAgQ29udmVyc2lvbkFkanVzdG1lbnREYXRhLFxuICBDb252ZXJzaW9uQWRqdXN0bWVudFJlc3BvbnNlLFxuICBDcmVhdGVPZmZsaW5lVXNlckRhdGFKb2JEYXRhLFxuICBDcmVhdGVPZmZsaW5lVXNlckRhdGFKb2JSZXNwb3NlLFxuICBDdXN0b21WYXJpYWJsZVJlc3VsdHMsXG4gIEdvb2dsZUFkc0NvbmZpZyxcbiAgT2ZmbGluZVVzZXJEYXRhSm9iQWRkRGF0YSxcbiAgT2ZmbGluZVVzZXJEYXRhSm9iQWRkRGF0YVJlc3BvbnNlLFxuICBSdW5PZmZsaW5lVXNlckRhdGFKb2JSZXNwb25zZSxcbiAgU2VhcmNoU3RyZWFtUmVzcG9uc2UsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHb29nbGVBZHMgZXh0ZW5kcyBCYXNlU0RLPEF1dGhPYmplY3QsIEdvb2dsZUFkc0NvbmZpZz4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCk6IHZvaWQge1xuICAgIGlmICghYXV0aE9iamVjdC5hY2Nlc3NUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdHb29nbGUgQWRzIGFjY2Vzc1Rva2VuIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghYXV0aE9iamVjdC5jdXN0b21lcklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dvb2dsZSBBZHMgY3VzdG9tZXJJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIWF1dGhPYmplY3QuZGV2ZWxvcGVyVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignR29vZ2xlIEFkcyBkZXZlbG9wZXJUb2tlbiBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIHByb3RlY3RlZCBidWlsZFJlcXVlc3RVcmwoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gRW5zdXJlIGVuZHBvaW50IHN0YXJ0cyB3aXRoIC9cbiAgICBjb25zdCBjbGVhbkVuZHBvaW50ID0gZW5kcG9pbnQuc3RhcnRzV2l0aCgnLycpID8gZW5kcG9pbnQgOiBgLyR7ZW5kcG9pbnR9YDtcbiAgICByZXR1cm4gYGh0dHBzOi8vZ29vZ2xlYWRzLmdvb2dsZWFwaXMuY29tLyR7QVBJX1ZFUlNJT059L2N1c3RvbWVycyR7Y2xlYW5FbmRwb2ludH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhlYWRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmF1dGhPYmplY3QuYWNjZXNzVG9rZW59YCxcbiAgICAgICdkZXZlbG9wZXItdG9rZW4nOiB0aGlzLmF1dGhPYmplY3QuZGV2ZWxvcGVyVG9rZW4sXG4gICAgICAnbG9naW4tY3VzdG9tZXItaWQnOiB0aGlzLmF1dGhPYmplY3QubG9naW5DdXN0b21lcklkXG4gICAgICAgID8gdGhpcy5hdXRoT2JqZWN0LmxvZ2luQ3VzdG9tZXJJZFxuICAgICAgICA6IHRoaXMuYXV0aE9iamVjdC5jdXN0b21lcklkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29udmVyc2lvbkFjdGlvbklkKFxuICAgIGNvbnZlcnNpb25OYW1lOiBzdHJpbmcsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBBcGlSZXNwb25zZTxBcnJheTxTZWFyY2hTdHJlYW1SZXNwb25zZTxDb252ZXJzaW9uQWN0aW9uUmVzcG9uc2U+Pj4+IHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IFNxbFN0cmluZy5mb3JtYXQoXG4gICAgICAnU0VMRUNUIGNvbnZlcnNpb25fYWN0aW9uLmlkIEZST00gY29udmVyc2lvbl9hY3Rpb24gV0hFUkUgY29udmVyc2lvbl9hY3Rpb24ubmFtZSA9ID8nLFxuICAgICAgW2NvbnZlcnNpb25OYW1lXSxcbiAgICApO1xuICAgIGNvbnN0IGRhdGE6IHsgcXVlcnk6IHN0cmluZyB9ID0ge1xuICAgICAgcXVlcnk6IHF1ZXJ5U3RyaW5nLFxuICAgIH07XG5cbiAgICBjb25zdCBzZWFyY2hTdHJlYW1SZXNwb25zZSA9IGF3YWl0IHRoaXMucG9zdDxcbiAgICAgIEFycmF5PFNlYXJjaFN0cmVhbVJlc3BvbnNlPENvbnZlcnNpb25BY3Rpb25SZXNwb25zZT4+XG4gICAgPihgLyR7dGhpcy5hdXRoT2JqZWN0LmN1c3RvbWVySWR9L2dvb2dsZUFkczpzZWFyY2hTdHJlYW1gLCBkYXRhLCBzdGF0VGFncyk7XG4gICAgaWYgKHNlYXJjaFN0cmVhbVJlc3BvbnNlLnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgY29uc3QgY29udmVyc2lvbkFjdGlvbiA9IGdldChcbiAgICAgICAgc2VhcmNoU3RyZWFtUmVzcG9uc2UucmVzcG9uc2VCb2R5WzBdLFxuICAgICAgICAncmVzdWx0cy4wLmNvbnZlcnNpb25BY3Rpb24ucmVzb3VyY2VOYW1lJyxcbiAgICAgICk7XG4gICAgICByZXR1cm4gY29udmVyc2lvbkFjdGlvbiA/PyBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gc2VhcmNoU3RyZWFtUmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q3VzdG9tVmFyaWFibGUoXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxcbiAgICBDdXN0b21WYXJpYWJsZVJlc3VsdHNbXSB8IEFwaVJlc3BvbnNlPEFycmF5PFNlYXJjaFN0cmVhbVJlc3BvbnNlPEN1c3RvbVZhcmlhYmxlUmVzdWx0cz4+PlxuICA+IHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IFNxbFN0cmluZy5mb3JtYXQoXG4gICAgICAnU0VMRUNUIGNvbnZlcnNpb25fY3VzdG9tX3ZhcmlhYmxlLm5hbWUgRlJPTSBjb252ZXJzaW9uX2N1c3RvbV92YXJpYWJsZScsXG4gICAgKTtcbiAgICBjb25zdCBkYXRhOiB7IHF1ZXJ5OiBzdHJpbmcgfSA9IHtcbiAgICAgIHF1ZXJ5OiBxdWVyeVN0cmluZyxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VhcmNoU3RyZWFtUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnBvc3Q8XG4gICAgICBBcnJheTxTZWFyY2hTdHJlYW1SZXNwb25zZTxDdXN0b21WYXJpYWJsZVJlc3VsdHM+PlxuICAgID4oYC8ke3RoaXMuYXV0aE9iamVjdC5jdXN0b21lcklkfS9nb29nbGVBZHM6c2VhcmNoU3RyZWFtYCwgZGF0YSwgc3RhdFRhZ3MpO1xuICAgIGlmIChzZWFyY2hTdHJlYW1SZXNwb25zZS50eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICAgIGNvbnN0IGN1c3RvbVZhcmlhYmxlcyA9IGdldChzZWFyY2hTdHJlYW1SZXNwb25zZS5yZXNwb25zZUJvZHlbMF0sICdyZXN1bHRzJyk7XG4gICAgICByZXR1cm4gY3VzdG9tVmFyaWFibGVzO1xuICAgIH1cbiAgICByZXR1cm4gc2VhcmNoU3RyZWFtUmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkQ29udmVyc2lvbkFkanVzdE1lbnQoXG4gICAgY29udmVyc2lvbkFkanVzdE1lbnREYXRhOiBDb252ZXJzaW9uQWRqdXN0bWVudERhdGEsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxDb252ZXJzaW9uQWRqdXN0bWVudFJlc3BvbnNlPj4ge1xuICAgIGNvbnN0IGNvbnZlcnNpb25BZGp1c3RNZW50UmVzcG9uc2UgPSBhd2FpdCB0aGlzLnBvc3Q8Q29udmVyc2lvbkFkanVzdG1lbnRSZXNwb25zZT4oXG4gICAgICBgLyR7dGhpcy5hdXRoT2JqZWN0LmN1c3RvbWVySWR9OnVwbG9hZENvbnZlcnNpb25BZGp1c3RtZW50c2AsXG4gICAgICBjb252ZXJzaW9uQWRqdXN0TWVudERhdGEsXG4gICAgICBzdGF0VGFncyxcbiAgICApO1xuICAgIHJldHVybiBjb252ZXJzaW9uQWRqdXN0TWVudFJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZU9mZmxpbmVVc2VyRGF0YUpvYihcbiAgICBkYXRhOiBDcmVhdGVPZmZsaW5lVXNlckRhdGFKb2JEYXRhLFxuICAgIHN0YXRUYWdzPzogU3RhdFRhZ3MsXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8Q3JlYXRlT2ZmbGluZVVzZXJEYXRhSm9iUmVzcG9zZT4+IHtcbiAgICBjb25zdCBjb252ZXJzaW9uQWRqdXN0TWVudFJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb3N0PENyZWF0ZU9mZmxpbmVVc2VyRGF0YUpvYlJlc3Bvc2U+KFxuICAgICAgYC8ke3RoaXMuYXV0aE9iamVjdC5jdXN0b21lcklkfS9vZmZsaW5lVXNlckRhdGFKb2JzOmNyZWF0ZWAsXG4gICAgICBkYXRhLFxuICAgICAgc3RhdFRhZ3MsXG4gICAgKTtcbiAgICByZXR1cm4gY29udmVyc2lvbkFkanVzdE1lbnRSZXNwb25zZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRVc2VyVG9PZmZsaW5lVXNlckRhdGFKb2IoXG4gICAgam9iSWQ6IHN0cmluZyxcbiAgICBvZmZsaW5lVXNlckRhdGE6IE9mZmxpbmVVc2VyRGF0YUpvYkFkZERhdGEsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKSB7XG4gICAgY29uc3QgYWRkVXNlclRvSm9iUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnBvc3Q8T2ZmbGluZVVzZXJEYXRhSm9iQWRkRGF0YVJlc3BvbnNlPihcbiAgICAgIGAvJHt0aGlzLmF1dGhPYmplY3QuY3VzdG9tZXJJZH0vb2ZmbGluZVVzZXJEYXRhSm9icy8ke2pvYklkfTphZGRPcGVyYXRpb25zYCxcbiAgICAgIG9mZmxpbmVVc2VyRGF0YSxcbiAgICAgIHN0YXRUYWdzLFxuICAgICk7XG4gICAgcmV0dXJuIGFkZFVzZXJUb0pvYlJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZENvbnZlcnNpb25zVG9PZmZsaW5lVXNlckRhdGFKb2IoXG4gICAgam9iSWQ6IHN0cmluZyxcbiAgICBvZmZsaW5lVXNlckRhdGE6IE9mZmxpbmVVc2VyRGF0YUpvYkFkZERhdGEsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKSB7XG4gICAgY29uc3QgYWRkVXNlclRvSm9iUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnBvc3Q8T2ZmbGluZVVzZXJEYXRhSm9iQWRkRGF0YVJlc3BvbnNlPihcbiAgICAgIGAvJHt0aGlzLmF1dGhPYmplY3QuY3VzdG9tZXJJZH0vb2ZmbGluZVVzZXJEYXRhSm9icy8ke2pvYklkfTphZGRPcGVyYXRpb25zYCxcbiAgICAgIG9mZmxpbmVVc2VyRGF0YSxcbiAgICAgIHN0YXRUYWdzLFxuICAgICk7XG4gICAgcmV0dXJuIGFkZFVzZXJUb0pvYlJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJ1bk9mZmxpbmVVc2VyRGF0YUpvYihcbiAgICBqb2JJZDogc3RyaW5nLFxuICAgIHN0YXRUYWdzPzogU3RhdFRhZ3MsXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8UnVuT2ZmbGluZVVzZXJEYXRhSm9iUmVzcG9uc2U+PiB7XG4gICAgY29uc3QgY29udmVyc2lvbkFkanVzdE1lbnRSZXNwb25zZSA9IGF3YWl0IHRoaXMucG9zdDxSdW5PZmZsaW5lVXNlckRhdGFKb2JSZXNwb25zZT4oXG4gICAgICBgLyR7dGhpcy5hdXRoT2JqZWN0LmN1c3RvbWVySWR9L29mZmxpbmVVc2VyRGF0YUpvYnMvJHtqb2JJZH06cnVuYCxcbiAgICAgIHt9LFxuICAgICAgc3RhdFRhZ3MsXG4gICAgKTtcbiAgICByZXR1cm4gY29udmVyc2lvbkFkanVzdE1lbnRSZXNwb25zZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGxvYWRDbGlja0NvbnZlcnNpb24oXG4gICAgdXBsb2FkQ2xpY2tDb252ZXJzaW9uRGF0YTogQ2xpY2tDb252ZXJzaW9uRGF0YSxcbiAgICBzdGF0VGFncz86IFN0YXRUYWdzLFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPENsaWNrQ29udmVyc2lvblJlc3BvbnNlPj4ge1xuICAgIGNvbnN0IHVwbG9hZENsaWNrQ29udmVyc2lvblJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb3N0PENsaWNrQ29udmVyc2lvblJlc3BvbnNlPihcbiAgICAgIGAvJHt0aGlzLmF1dGhPYmplY3QuY3VzdG9tZXJJZH06dXBsb2FkQ2xpY2tDb252ZXJzaW9uc2AsXG4gICAgICB1cGxvYWRDbGlja0NvbnZlcnNpb25EYXRhLFxuICAgICAgc3RhdFRhZ3MsXG4gICAgKTtcblxuICAgIHJldHVybiB1cGxvYWRDbGlja0NvbnZlcnNpb25SZXNwb25zZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGxvYWRDYWxsQ29udmVyc2lvbihcbiAgICB1cGxvYWRDYWxsQ29udmVyc2lvbkRhdGE6IENhbGxDb252ZXJzaW9uRGF0YSxcbiAgICBzdGF0VGFncz86IFN0YXRUYWdzLFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPENhbGxDb252ZXJzaW9uUmVzcG9uc2U+PiB7XG4gICAgY29uc3QgdXBsb2FkQ2FsbENvbnZlcnNpb25SZXNwb25zZSA9IGF3YWl0IHRoaXMucG9zdDxDYWxsQ29udmVyc2lvblJlc3BvbnNlPihcbiAgICAgIGAvJHt0aGlzLmF1dGhPYmplY3QuY3VzdG9tZXJJZH06dXBsb2FkQ2FsbENvbnZlcnNpb25zYCxcbiAgICAgIHVwbG9hZENhbGxDb252ZXJzaW9uRGF0YSxcbiAgICAgIHN0YXRUYWdzLFxuICAgICk7XG5cbiAgICByZXR1cm4gdXBsb2FkQ2FsbENvbnZlcnNpb25SZXNwb25zZTtcbiAgfVxufVxuIl19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlQWRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nka3MvZ29vZ2xlQWRzUmVzdEFQSS9nb29nbGVBZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBNkI7QUFDN0IscURBQXVDO0FBRXZDLGlEQUE2QztBQUM3QyxxQ0FBdUM7QUFvQnZDLE1BQXFCLFNBQVUsU0FBUSxrQkFBb0M7SUFDekUsa0RBQWtEO0lBQ2xELGtCQUFrQixDQUFDLFVBQXNCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxrREFBa0Q7SUFDeEMsZUFBZSxDQUFDLFFBQWdCO1FBQ3hDLGdDQUFnQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDM0UsT0FBTyxvQ0FBb0Msb0JBQVcsYUFBYSxhQUFhLEVBQUUsQ0FBQztJQUNyRixDQUFDO0lBRVMsVUFBVTtRQUNsQixPQUFPO1lBQ0wsYUFBYSxFQUFFLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDdEQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxj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LE1BQU0sY0FBYyxHQUFhO1lBQy9CLEdBQUcsUUFBUTtZQUNYLFlBQVksRUFBRSxzQ0FBc0M7U0FDckQsQ0FBQztRQUNGLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSx5QkFBeUIsRUFDdkQseUJBQXlCLEVBQ3pCLGNBQWMsQ0FDZixDQUFDO1FBRUYsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUMvQix3QkFBNEMsRUFDNUMsUUFBbUI7UUFFbkIsTUFBTSxjQUFjLEdBQWE7WUFDL0IsR0FBRyxRQUFRO1lBQ1gsWUFBWSxFQUFFLHFDQUFxQztTQUNwRCxDQUFDO1FBQ0YsTUFBTSw0QkFBNEIsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLHdCQUF3QixFQUN0RCx3QkFBd0IsRUFDeEIsY0FBYyxDQUNmLENBQUM7UUFFRixPQUFPLDRCQUE0QixDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQXpNRCw0QkF5TUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgU3FsU3RyaW5nIGZyb20gJ3NxbHN0cmluZyc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgU3RhdFRhZ3MgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2NsaWVudHMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZVNESyB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLXNkayc7XG5pbXBvcnQgeyBBUElfVkVSU0lPTiB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gIEF1dGhPYmplY3QsXG4gIENhbGxDb252ZXJzaW9uRGF0YSxcbiAgQ2FsbENvbnZlcnNpb25SZXNwb25zZSxcbiAgQ2xpY2tDb252ZXJzaW9uRGF0YSxcbiAgQ2xpY2tDb252ZXJzaW9uUmVzcG9uc2UsXG4gIENvbnZlcnNpb25BY3Rpb25SZXNwb25zZSxcbiAgQ29udmVyc2lvbkFkanVzdG1lbnREYXRhLFxuICBDb252ZXJzaW9uQWRqdXN0bWVudFJlc3BvbnNlLFxuICBDcmVhdGVPZmZsaW5lVXNlckRhdGFKb2JEYXRhLFxuICBDcmVhdGVPZmZsaW5lVXNlckRhdGFKb2JSZXNwb3NlLFxuICBDdXN0b21WYXJpYWJsZVJlc3VsdHMsXG4gIEdvb2dsZUFkc0NvbmZpZyxcbiAgT2ZmbGluZVVzZXJEYXRhSm9iQWRkRGF0YSxcbiAgT2ZmbGluZVVzZXJEYXRhSm9iQWRkRGF0YVJlc3BvbnNlLFxuICBSdW5PZmZsaW5lVXNlckRhdGFKb2JSZXNwb25zZSxcbiAgU2VhcmNoU3RyZWFtUmVzcG9uc2UsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHb29nbGVBZHMgZXh0ZW5kcyBCYXNlU0RLPEF1dGhPYmplY3QsIEdvb2dsZUFkc0NvbmZpZz4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCk6IHZvaWQge1xuICAgIGlmICghYXV0aE9iamVjdC5hY2Nlc3NUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdHb29nbGUgQWRzIGFjY2Vzc1Rva2VuIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghYXV0aE9iamVjdC5jdXN0b21lcklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dvb2dsZSBBZHMgY3VzdG9tZXJJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIWF1dGhPYmplY3QuZGV2ZWxvcGVyVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignR29vZ2xlIEFkcyBkZXZlbG9wZXJUb2tlbiBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIHByb3RlY3RlZCBidWlsZFJlcXVlc3RVcmwoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gRW5zdXJlIGVuZHBvaW50IHN0YXJ0cyB3aXRoIC9cbiAgICBjb25zdCBjbGVhbkVuZHBvaW50ID0gZW5kcG9pbnQuc3RhcnRzV2l0aCgnLycpID8gZW5kcG9pbnQgOiBgLyR7ZW5kcG9pbnR9YDtcbiAgICByZXR1cm4gYGh0dHBzOi8vZ29vZ2xlYWRzLmdvb2dsZWFwaXMuY29tLyR7QVBJX1ZFUlNJT059L2N1c3RvbWVycyR7Y2xlYW5FbmRwb2ludH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhlYWRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmF1dGhPYmplY3QuYWNjZXNzVG9rZW59YCxcbiAgICAgICdkZXZlbG9wZXItdG9rZW4nOiB0aGlzLmF1dGhPYmplY3QuZGV2ZWxvcGVyVG9rZW4sXG4gICAgICAnbG9naW4tY3VzdG9tZXItaWQnOiB0aGlzLmF1dGhPYmplY3QubG9naW5DdXN0b21lcklkXG4gICAgICAgID8gdGhpcy5hdXRoT2JqZWN0LmxvZ2luQ3VzdG9tZXJJZFxuICAgICAgICA6IHRoaXMuYXV0aE9iamVjdC5jdXN0b21lcklkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29udmVyc2lvbkFjdGlvbklkKFxuICAgIGNvbnZlcnNpb25OYW1lOiBzdHJpbmcsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBBcGlSZXNwb25zZTxBcnJheTxTZWFyY2hTdHJlYW1SZXNwb25zZTxDb252ZXJzaW9uQWN0aW9uUmVzcG9uc2U+Pj4+IHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IFNxbFN0cmluZy5mb3JtYXQoXG4gICAgICAnU0VMRUNUIGNvbnZlcnNpb25fYWN0aW9uLmlkIEZST00gY29udmVyc2lvbl9hY3Rpb24gV0hFUkUgY29udmVyc2lvbl9hY3Rpb24ubmFtZSA9ID8nLFxuICAgICAgW2NvbnZlcnNpb25OYW1lXSxcbiAgICApO1xuICAgIGNvbnN0IGRhdGE6IHsgcXVlcnk6IHN0cmluZyB9ID0ge1xuICAgICAgcXVlcnk6IHF1ZXJ5U3RyaW5nLFxuICAgIH07XG5cbiAgICBjb25zdCBjdXN0b21TdGF0VGFnczogU3RhdFRhZ3MgPSB7XG4gICAgICAuLi5zdGF0VGFncyxcbiAgICAgIGVuZHBvaW50UGF0aDogYC88Y3VzdG9tZXJJZD4vZ29vZ2xlQWRzOnNlYXJjaGAsXG4gICAgfTtcbiAgICBjb25zdCBzZWFyY2hTdHJlYW1SZXNwb25zZSA9IGF3YWl0IHRoaXMucG9zdDxcbiAgICAgIEFycmF5PFNlYXJjaFN0cmVhbVJlc3BvbnNlPENvbnZlcnNpb25BY3Rpb25SZXNwb25zZT4+XG4gICAgPihgLyR7dGhpcy5hdXRoT2JqZWN0LmN1c3RvbWVySWR9L2dvb2dsZUFkczpzZWFyY2hTdHJlYW1gLCBkYXRhLCBjdXN0b21TdGF0VGFncyk7XG4gICAgaWYgKHNlYXJjaFN0cmVhbVJlc3BvbnNlLnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgY29uc3QgY29udmVyc2lvbkFjdGlvbiA9IGdldChcbiAgICAgICAgc2VhcmNoU3RyZWFtUmVzcG9uc2UucmVzcG9uc2VCb2R5WzBdLFxuICAgICAgICAncmVzdWx0cy4wLmNvbnZlcnNpb25BY3Rpb24ucmVzb3VyY2VOYW1lJyxcbiAgICAgICk7XG4gICAgICByZXR1cm4gY29udmVyc2lvbkFjdGlvbiA/PyBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gc2VhcmNoU3RyZWFtUmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q3VzdG9tVmFyaWFibGUoXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxcbiAgICBDdXN0b21WYXJpYWJsZVJlc3VsdHNbXSB8IEFwaVJlc3BvbnNlPEFycmF5PFNlYXJjaFN0cmVhbVJlc3BvbnNlPEN1c3RvbVZhcmlhYmxlUmVzdWx0cz4+PlxuICA+IHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IFNxbFN0cmluZy5mb3JtYXQoXG4gICAgICAnU0VMRUNUIGNvbnZlcnNpb25fY3VzdG9tX3ZhcmlhYmxlLm5hbWUgRlJPTSBjb252ZXJzaW9uX2N1c3RvbV92YXJpYWJsZScsXG4gICAgKTtcbiAgICBjb25zdCBkYXRhOiB7IHF1ZXJ5OiBzdHJpbmcgfSA9IHtcbiAgICAgIHF1ZXJ5OiBxdWVyeVN0cmluZyxcbiAgICB9O1xuXG4gICAgY29uc3QgY3VzdG9tU3RhdFRhZ3M6IFN0YXRUYWdzID0ge1xuICAgICAgLi4uc3RhdFRhZ3MsXG4gICAgICBlbmRwb2ludFBhdGg6IGAvPGN1c3RvbWVySWQ+L2dvb2dsZUFkczpzZWFyY2hgLFxuICAgIH07XG4gICAgY29uc3Qgc2VhcmNoU3RyZWFtUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnBvc3Q8XG4gICAgICBBcnJheTxTZWFyY2hTdHJlYW1SZXNwb25zZTxDdXN0b21WYXJpYWJsZVJlc3VsdHM+PlxuICAgID4oYC8ke3RoaXMuYXV0aE9iamVjdC5jdXN0b21lcklkfS9nb29nbGVBZHM6c2VhcmNoU3RyZWFtYCwgZGF0YSwgY3VzdG9tU3RhdFRhZ3MpO1xuICAgIGlmIChzZWFyY2hTdHJlYW1SZXNwb25zZS50eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICAgIGNvbnN0IGN1c3RvbVZhcmlhYmxlcyA9IGdldChzZWFyY2hTdHJlYW1SZXNwb25zZS5yZXNwb25zZUJvZHlbMF0sICdyZXN1bHRzJyk7XG4gICAgICByZXR1cm4gY3VzdG9tVmFyaWFibGVzO1xuICAgIH1cbiAgICByZXR1cm4gc2VhcmNoU3RyZWFtUmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkQ29udmVyc2lvbkFkanVzdE1lbnQoXG4gICAgY29udmVyc2lvbkFkanVzdE1lbnREYXRhOiBDb252ZXJzaW9uQWRqdXN0bWVudERhdGEsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxDb252ZXJzaW9uQWRqdXN0bWVudFJlc3BvbnNlPj4ge1xuICAgIGNvbnN0IGN1c3RvbVN0YXRUYWdzOiBTdGF0VGFncyA9IHtcbiAgICAgIC4uLnN0YXRUYWdzLFxuICAgICAgZW5kcG9pbnRQYXRoOiBgLzxjdXN0b21lcklkPjp1cGxvYWRDb252ZXJzaW9uQWRqdXN0bWVudHNgLFxuICAgIH07XG4gICAgY29uc3QgY29udmVyc2lvbkFkanVzdE1lbnRSZXNwb25zZSA9IGF3YWl0IHRoaXMucG9zdDxDb252ZXJzaW9uQWRqdXN0bWVudFJlc3BvbnNlPihcbiAgICAgIGAvJHt0aGlzLmF1dGhPYmplY3QuY3VzdG9tZXJJZH06dXBsb2FkQ29udmVyc2lvbkFkanVzdG1lbnRzYCxcbiAgICAgIGNvbnZlcnNpb25BZGp1c3RNZW50RGF0YSxcbiAgICAgIGN1c3RvbVN0YXRUYWdzLFxuICAgICk7XG4gICAgcmV0dXJuIGNvbnZlcnNpb25BZGp1c3RNZW50UmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlT2ZmbGluZVVzZXJEYXRhSm9iKFxuICAgIGRhdGE6IENyZWF0ZU9mZmxpbmVVc2VyRGF0YUpvYkRhdGEsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxDcmVhdGVPZmZsaW5lVXNlckRhdGFKb2JSZXNwb3NlPj4ge1xuICAgIGNvbnN0IGN1c3RvbVN0YXRUYWdzOiBTdGF0VGFncyA9IHtcbiAgICAgIC4uLnN0YXRUYWdzLFxuICAgICAgZW5kcG9pbnRQYXRoOiBgLzxjdXN0b21lcklkPi9vZmZsaW5lVXNlckRhdGFKb2JzOmNyZWF0ZWAsXG4gICAgfTtcbiAgICBjb25zdCBjb252ZXJzaW9uQWRqdXN0TWVudFJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb3N0PENyZWF0ZU9mZmxpbmVVc2VyRGF0YUpvYlJlc3Bvc2U+KFxuICAgICAgYC8ke3RoaXMuYXV0aE9iamVjdC5jdXN0b21lcklkfS9vZmZsaW5lVXNlckRhdGFKb2JzOmNyZWF0ZWAsXG4gICAgICBkYXRhLFxuICAgICAgY3VzdG9tU3RhdFRhZ3MsXG4gICAgKTtcbiAgICByZXR1cm4gY29udmVyc2lvbkFkanVzdE1lbnRSZXNwb25zZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRVc2VyVG9PZmZsaW5lVXNlckRhdGFKb2IoXG4gICAgam9iSWQ6IHN0cmluZyxcbiAgICBvZmZsaW5lVXNlckRhdGE6IE9mZmxpbmVVc2VyRGF0YUpvYkFkZERhdGEsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKSB7XG4gICAgY29uc3QgY3VzdG9tU3RhdFRhZ3M6IFN0YXRUYWdzID0ge1xuICAgICAgLi4uc3RhdFRhZ3MsXG4gICAgICBlbmRwb2ludFBhdGg6IGAvPGN1c3RvbWVySWQ+L29mZmxpbmVVc2VyRGF0YUpvYnMvPGpvYklkPjphZGRPcGVyYXRpb25zYCxcbiAgICB9O1xuICAgIGNvbnN0IGFkZFVzZXJUb0pvYlJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb3N0PE9mZmxpbmVVc2VyRGF0YUpvYkFkZERhdGFSZXNwb25zZT4oXG4gICAgICBgLyR7dGhpcy5hdXRoT2JqZWN0LmN1c3RvbWVySWR9L29mZmxpbmVVc2VyRGF0YUpvYnMvJHtqb2JJZH06YWRkT3BlcmF0aW9uc2AsXG4gICAgICBvZmZsaW5lVXNlckRhdGEsXG4gICAgICBjdXN0b21TdGF0VGFncyxcbiAgICApO1xuICAgIHJldHVybiBhZGRVc2VyVG9Kb2JSZXNwb25zZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRDb252ZXJzaW9uc1RvT2ZmbGluZVVzZXJEYXRhSm9iKFxuICAgIGpvYklkOiBzdHJpbmcsXG4gICAgb2ZmbGluZVVzZXJEYXRhOiBPZmZsaW5lVXNlckRhdGFKb2JBZGREYXRhLFxuICAgIHN0YXRUYWdzPzogU3RhdFRhZ3MsXG4gICkge1xuICAgIGNvbnN0IGN1c3RvbVN0YXRUYWdzOiBTdGF0VGFncyA9IHtcbiAgICAgIC4uLnN0YXRUYWdzLFxuICAgICAgZW5kcG9pbnRQYXRoOiBgLzxjdXN0b21lcklkPi9vZmZsaW5lVXNlckRhdGFKb2JzLzxqb2JJZD46YWRkT3BlcmF0aW9uc2AsXG4gICAgfTtcbiAgICBjb25zdCBhZGRVc2VyVG9Kb2JSZXNwb25zZSA9IGF3YWl0IHRoaXMucG9zdDxPZmZsaW5lVXNlckRhdGFKb2JBZGREYXRhUmVzcG9uc2U+KFxuICAgICAgYC8ke3RoaXMuYXV0aE9iamVjdC5jdXN0b21lcklkfS9vZmZsaW5lVXNlckRhdGFKb2JzLyR7am9iSWR9OmFkZE9wZXJhdGlvbnNgLFxuICAgICAgb2ZmbGluZVVzZXJEYXRhLFxuICAgICAgY3VzdG9tU3RhdFRhZ3MsXG4gICAgKTtcbiAgICByZXR1cm4gYWRkVXNlclRvSm9iUmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcnVuT2ZmbGluZVVzZXJEYXRhSm9iKFxuICAgIGpvYklkOiBzdHJpbmcsXG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncyxcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxSdW5PZmZsaW5lVXNlckRhdGFKb2JSZXNwb25zZT4+IHtcbiAgICBjb25zdCBjdXN0b21TdGF0VGFnczogU3RhdFRhZ3MgPSB7XG4gICAgICAuLi5zdGF0VGFncyxcbiAgICAgIGVuZHBvaW50UGF0aDogYC88Y3VzdG9tZXJJZD4vb2ZmbGluZVVzZXJEYXRhSm9icy88am9iSWQ+OnJ1bmAsXG4gICAgfTtcbiAgICBjb25zdCBjb252ZXJzaW9uQWRqdXN0TWVudFJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb3N0PFJ1bk9mZmxpbmVVc2VyRGF0YUpvYlJlc3BvbnNlPihcbiAgICAgIGAvJHt0aGlzLmF1dGhPYmplY3QuY3VzdG9tZXJJZH0vb2ZmbGluZVVzZXJEYXRhSm9icy8ke2pvYklkfTpydW5gLFxuICAgICAge30sXG4gICAgICBjdXN0b21TdGF0VGFncyxcbiAgICApO1xuICAgIHJldHVybiBjb252ZXJzaW9uQWRqdXN0TWVudFJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwbG9hZENsaWNrQ29udmVyc2lvbihcbiAgICB1cGxvYWRDbGlja0NvbnZlcnNpb25EYXRhOiBDbGlja0NvbnZlcnNpb25EYXRhLFxuICAgIHN0YXRUYWdzPzogU3RhdFRhZ3MsXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8Q2xpY2tDb252ZXJzaW9uUmVzcG9uc2U+PiB7XG4gICAgY29uc3QgY3VzdG9tU3RhdFRhZ3M6IFN0YXRUYWdzID0ge1xuICAgICAgLi4uc3RhdFRhZ3MsXG4gICAgICBlbmRwb2ludFBhdGg6IGAvPGN1c3RvbWVySWQ+OnVwbG9hZENsaWNrQ29udmVyc2lvbnNgLFxuICAgIH07XG4gICAgY29uc3QgdXBsb2FkQ2xpY2tDb252ZXJzaW9uUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnBvc3Q8Q2xpY2tDb252ZXJzaW9uUmVzcG9uc2U+KFxuICAgICAgYC8ke3RoaXMuYXV0aE9iamVjdC5jdXN0b21lcklkfTp1cGxvYWRDbGlja0NvbnZlcnNpb25zYCxcbiAgICAgIHVwbG9hZENsaWNrQ29udmVyc2lvbkRhdGEsXG4gICAgICBjdXN0b21TdGF0VGFncyxcbiAgICApO1xuXG4gICAgcmV0dXJuIHVwbG9hZENsaWNrQ29udmVyc2lvblJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwbG9hZENhbGxDb252ZXJzaW9uKFxuICAgIHVwbG9hZENhbGxDb252ZXJzaW9uRGF0YTogQ2FsbENvbnZlcnNpb25EYXRhLFxuICAgIHN0YXRUYWdzPzogU3RhdFRhZ3MsXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8Q2FsbENvbnZlcnNpb25SZXNwb25zZT4+IHtcbiAgICBjb25zdCBjdXN0b21TdGF0VGFnczogU3RhdFRhZ3MgPSB7XG4gICAgICAuLi5zdGF0VGFncyxcbiAgICAgIGVuZHBvaW50UGF0aDogYC88Y3VzdG9tZXJJZD46dXBsb2FkQ2FsbENvbnZlcnNpb25zYCxcbiAgICB9O1xuICAgIGNvbnN0IHVwbG9hZENhbGxDb252ZXJzaW9uUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnBvc3Q8Q2FsbENvbnZlcnNpb25SZXNwb25zZT4oXG4gICAgICBgLyR7dGhpcy5hdXRoT2JqZWN0LmN1c3RvbWVySWR9OnVwbG9hZENhbGxDb252ZXJzaW9uc2AsXG4gICAgICB1cGxvYWRDYWxsQ29udmVyc2lvbkRhdGEsXG4gICAgICBjdXN0b21TdGF0VGFncyxcbiAgICApO1xuXG4gICAgcmV0dXJuIHVwbG9hZENhbGxDb252ZXJzaW9uUmVzcG9uc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoho.d.ts","sourceRoot":"","sources":["../../../src/sdks/zoho/zoho.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,EACL,MAAM,EAMN,UAAU,EAEV,UAAU,EACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;IAE/D,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAgBhD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMnD,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO9C,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;cAU3C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,kBAAkB,CAAC,EAC9B,UAAU,EACV,kBAA0B,EAC1B,QAAQ,GACT,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"zoho.d.ts","sourceRoot":"","sources":["../../../src/sdks/zoho/zoho.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,EACL,MAAM,EAMN,UAAU,EAEV,UAAU,EACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;IAE/D,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAgBhD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMnD,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO9C,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;cAU3C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,kBAAkB,CAAC,EAC9B,UAAU,EACV,kBAA0B,EAC1B,QAAQ,GACT,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC,CAAC;IA0BhC,YAAY,CAAC,EACxB,UAAkB,EAClB,QAAQ,GACT,GAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;WAmCtC,kCAAkC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;WAWhE,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;WAO5D,gBAAgB,CAAC,EAC7B,UAAiB,EACjB,UAAU,GACX,EAAE;QACD,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,MAAM;CAOX"}
|
package/build/sdks/zoho/zoho.js
CHANGED
|
@@ -48,7 +48,11 @@ class ZOHO extends base_sdk_1.BaseSDK {
|
|
|
48
48
|
}
|
|
49
49
|
async fetchDynamicFields({ moduleName, systemRequiredOnly = false, statTags, }) {
|
|
50
50
|
const fieldsApiPath = `/crm/v6/settings/fields?module=${moduleName}`;
|
|
51
|
-
const
|
|
51
|
+
const customStatTags = {
|
|
52
|
+
...statTags,
|
|
53
|
+
endpointPath: `/crm/v6/settings/fields?module=${moduleName}`,
|
|
54
|
+
};
|
|
55
|
+
const res = await this.executeRequestWithTokenRefreshAttempts('get', fieldsApiPath, undefined, customStatTags);
|
|
52
56
|
if (!systemRequiredOnly || res.type === 'application-error' || res.type === 'client-error') {
|
|
53
57
|
return res;
|
|
54
58
|
}
|
|
@@ -64,7 +68,11 @@ class ZOHO extends base_sdk_1.BaseSDK {
|
|
|
64
68
|
}
|
|
65
69
|
async fetchModules({ upsertOnly = false, statTags, } = {}) {
|
|
66
70
|
const objsPath = '/crm/v6/settings/modules';
|
|
67
|
-
const
|
|
71
|
+
const customStatTags = {
|
|
72
|
+
...statTags,
|
|
73
|
+
endpointPath: `/crm/v6/settings/modules`,
|
|
74
|
+
};
|
|
75
|
+
const res = await this.executeRequestWithTokenRefreshAttempts('get', objsPath, undefined, customStatTags);
|
|
68
76
|
if (!upsertOnly || res.type === 'application-error' || res.type === 'client-error') {
|
|
69
77
|
return res;
|
|
70
78
|
}
|
|
@@ -110,4 +118,4 @@ class ZOHO extends base_sdk_1.BaseSDK {
|
|
|
110
118
|
}
|
|
111
119
|
}
|
|
112
120
|
exports.default = ZOHO;
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9oby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL3pvaG8vem9oby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQWFpQjtBQUVqQixpREFBNkM7QUFFN0MsTUFBcUIsSUFBSyxTQUFRLGtCQUErQjtJQUMvRCxrREFBa0Q7SUFDbEQsa0JBQWtCLENBQUMsVUFBc0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDdEUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO0lBRVMsZUFBZSxDQUFDLFFBQWdCO1FBQ3hDLGdDQUFnQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDM0UsT0FBTyxHQUFHLHNDQUE4QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDekYsQ0FBQztJQUVTLFVBQVU7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxtQkFBbUIsSUFBSSxDQUFD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Q1osT0FBTyxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQzthQUN6RDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsd0VBQXdFO0lBQ3hFLDZGQUE2RjtJQUN0RixNQUFNLENBQUMsa0NBQWtDLENBQUMsVUFBa0I7UUFDakUsTUFBTSx5QkFBeUIsR0FBRyx5Q0FBaUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRixJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELHNHQUFzRztRQUN0RyxPQUFPLENBQUMsOERBQXNELENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLHdEQUF3RDtJQUNqRCxNQUFNLENBQUMsOEJBQThCLENBQUMsVUFBa0I7UUFDN0QsSUFBSSxDQUFDLHFDQUE2QixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDL0MsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyxxQ0FBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQzdCLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFVBQVUsR0FJWDtRQUNDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLHNDQUE4QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNELE9BQU8sR0FBRyxPQUFPLEdBQUcsSUFBQSxxQkFBYSxFQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBcEpELHVCQW9KQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEF1dGhPYmplY3QsXG4gIERBVEFfQ0VOVFJFX0JBU0VfRU5EUE9JTlRTX01BUCxcbiAgRmllbGQsXG4gIE1vZHVsZSxcbiAgTU9EVUxFX1dJU0VfRFVQTElDQVRFX0NIRUNLX0ZJRUxELFxuICBDVVNUT01fR0VORVJBVEVEX1RZUEUsXG4gIFNZU1RFTV9ERUZJTkVEX0RVUExJQ0FURV9DSEVDS19GSUVMRF9GT1JfQ1VTVE9NX01PRFVMRSxcbiAgVVBTRVJUX01PRFVMRVMsXG4gIE1PRFVMRV9NQU5EQVRPUllfRklFTERfQ09ORklHLFxuICBSZWdpb25LZXlzLFxuICBnZXRSZWNvcmRQYXRoLFxuICBab2hvQ29uZmlnLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlLCBTdGF0VGFncyB9IGZyb20gJy4uLy4uL25ldHdvcmsvY2xpZW50cy90eXBlcyc7XG5pbXBvcnQgeyBCYXNlU0RLIH0gZnJvbSAnLi4vY29tbW9uL2Jhc2Utc2RrJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgWk9ITyBleHRlbmRzIEJhc2VTREs8QXV0aE9iamVjdCwgWm9ob0NvbmZpZz4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCk6IHZvaWQge1xuICAgIGlmICghYXV0aE9iamVjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhdXRoT2JqZWN0IGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuLCBkYXRhQ2VudGVyLCByZWZyZXNoQWNjZXNUb2tlbkZ1bmMgfSA9IGF1dGhPYmplY3Q7XG4gICAgaWYgKCFhY2Nlc3NUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdaT0hPIGFjY2Vzc1Rva2VuIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoIWRhdGFDZW50ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWk9ITyBkYXRhQ2VudGVyIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoIXJlZnJlc2hBY2Nlc1Rva2VuRnVuYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdaT0hPIGEgcmVmcmVzaCBhY2Nlc3MgdG9rZW4gZnVuY3Rpb24gaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkUmVxdWVzdFVybChlbmRwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBFbnN1cmUgZW5kcG9pbnQgc3RhcnRzIHdpdGggL1xuICAgIGNvbnN0IGNsZWFuRW5kcG9pbnQgPSBlbmRwb2ludC5zdGFydHNXaXRoKCcvJykgPyBlbmRwb2ludCA6IGAvJHtlbmRwb2ludH1gO1xuICAgIHJldHVybiBgJHtEQVRBX0NFTlRSRV9CQVNFX0VORFBPSU5UU19NQVBbdGhpcy5hdXRoT2JqZWN0LmRhdGFDZW50ZXJdfSR7Y2xlYW5FbmRwb2ludH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhlYWRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEF1dGhvcml6YXRpb246IGBab2hvLW9hdXRodG9rZW4gJHt0aGlzLmF1dGhPYmplY3QuYWNjZXNzVG9rZW59YCxcbiAgICB9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgc2hvdWxkUmV0cnlPbkVycm9yKHJlc3BvbnNlOiBBcGlSZXNwb25zZTx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgIC8vIFJldHJ5IG9uIDQwMSAodW5hdXRob3JpemVkKSBlcnJvcnMgZm9yIHRva2VuIHJlZnJlc2hcbiAgICByZXR1cm4gKFxuICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gNDAxICYmXG4gICAgICByZXNwb25zZS50eXBlID09PSAnYXBwbGljYXRpb24tZXJyb3InICYmXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgKHJlc3BvbnNlIGFzIGFueSkucmVzcG9uc2VCb2R5Py5jb2RlID09PSAnSU5WQUxJRF9UT0tFTidcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhPYmplY3QucmVmcmVzaEFjY2VzVG9rZW5GdW5jKCk7XG4gICAgICB0aGlzLmF1dGhPYmplY3QuYWNjZXNzVG9rZW4gPSBhY2Nlc3NUb2tlbjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcmVmcmVzaCB0b2tlbiwgd2l0aCBlcnJvcjogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmV0Y2hEeW5hbWljRmllbGRzKHtcbiAgICBtb2R1bGVOYW1lLFxuICAgIHN5c3RlbVJlcXVpcmVkT25seSA9IGZhbHNlLFxuICAgIHN0YXRUYWdzLFxuICB9OiB7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICAgIHN5c3RlbVJlcXVpcmVkT25seT86IGJvb2xlYW47XG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncztcbiAgfSk6IFByb21pc2U8QXBpUmVzcG9uc2U8eyBmaWVsZHM6IEZpZWxkW10gfT4+IHtcbiAgICBjb25zdCBmaWVsZHNBcGlQYXRoID0gYC9jcm0vdjYvc2V0dGluZ3MvZmllbGRzP21vZHVsZT0ke21vZHVsZU5hbWV9YDtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0V2l0aFRva2VuUmVmcmVzaEF0dGVtcHRzPHsgZmllbGRzOiBGaWVsZFtdIH0+KFxuICAgICAgJ2dldCcsXG4gICAgICBmaWVsZHNBcGlQYXRoLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgc3RhdFRhZ3MsXG4gICAgKTtcbiAgICBpZiAoIXN5c3RlbVJlcXVpcmVkT25seSB8fCByZXMudHlwZSA9PT0gJ2FwcGxpY2F0aW9uLWVycm9yJyB8fCByZXMudHlwZSA9PT0gJ2NsaWVudC1lcnJvcicpIHtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGNvbnN0IHsgZmllbGRzIH0gPSByZXMucmVzcG9uc2VCb2R5O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3Qgc3lzdGVtRmllbGRzID0gZmllbGRzLmZpbHRlcigoeyBzeXN0ZW1fbWFuZGF0b3J5IH06IGFueSkgPT4gc3lzdGVtX21hbmRhdG9yeSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlcyxcbiAgICAgIHJlc3BvbnNlQm9keToge1xuICAgICAgICBmaWVsZHM6IFsuLi5zeXN0ZW1GaWVsZHNdLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoTW9kdWxlcyh7XG4gICAgdXBzZXJ0T25seSA9IGZhbHNlLFxuICAgIHN0YXRUYWdzLFxuICB9OiB7XG4gICAgdXBzZXJ0T25seT86IGJvb2xlYW47XG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncztcbiAgfSA9IHt9KTogUHJvbWlzZTxBcGlSZXNwb25zZTx7IG1vZHVsZXM6IE1vZHVsZVtdIH0+PiB7XG4gICAgY29uc3Qgb2Jqc1BhdGggPSAnL2NybS92Ni9zZXR0aW5ncy9tb2R1bGVzJztcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0V2l0aFRva2VuUmVmcmVzaEF0dGVtcHRzPHsgbW9kdWxlczogTW9kdWxlW10gfT4oXG4gICAgICAnZ2V0JyxcbiAgICAgIG9ianNQYXRoLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgc3RhdFRhZ3MsXG4gICAgKTtcbiAgICBpZiAoIXVwc2VydE9ubHkgfHwgcmVzLnR5cGUgPT09ICdhcHBsaWNhdGlvbi1lcnJvcicgfHwgcmVzLnR5cGUgPT09ICdjbGllbnQtZXJyb3InKSB7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBjb25zdCB7IG1vZHVsZXMgfSA9IHJlcy5yZXNwb25zZUJvZHk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBmaWx0ZXJlZE1vZHVsZXMgPSBtb2R1bGVzLmZpbHRlcigoeyBhcGlfbmFtZSB9OiBhbnkpID0+XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgVVBTRVJUX01PRFVMRVMuc29tZSgobW9kdWxlOiBhbnkpID0+IG1vZHVsZSA9PT0gYXBpX25hbWUpLFxuICAgICk7XG4gICAgY29uc3QgY3VzdG9tR2VuZXJhdGVkTW9kdWxlcyA9IG1vZHVsZXMuZmlsdGVyKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIChtb2R1bGU6IGFueSkgPT4gbW9kdWxlLmdlbmVyYXRlZF90eXBlID09PSBDVVNUT01fR0VORVJBVEVEX1RZUEUsXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzLFxuICAgICAgcmVzcG9uc2VCb2R5OiB7XG4gICAgICAgIG1vZHVsZXM6IFsuLi5maWx0ZXJlZE1vZHVsZXMsIC4uLmN1c3RvbUdlbmVyYXRlZE1vZHVsZXNdLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRmV0Y2hlcyB0aGUgbW9kdWxlIHdpc2UgZHVwbGljYXRlIGNoZWNrIGZpZWxkIGZvciBhIGdpdmVuIG1vZHVsZSBuYW1lXG4gIC8vIElmIHRoZSBtb2R1bGUgaXMgbm90IGN1c3RvbSBnZW5lcmF0ZWQsIGl0IHJldHVybnMgdGhlIHN5c3RlbSBkZWZpbmVkIGR1cGxpY2F0ZSBjaGVjayBmaWVsZFxuICBwdWJsaWMgc3RhdGljIGZldGNoTW9kdWxlV2lzZUR1cGxpY2F0ZUNoZWNrRmllbGQobW9kdWxlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG1vZHVsZUNoZWNrRHVwbGljYXRlRmllbGQgPSBNT0RVTEVfV0lTRV9EVVBMSUNBVEVfQ0hFQ0tfRklFTERbbW9kdWxlTmFtZV07XG4gICAgaWYgKG1vZHVsZUNoZWNrRHVwbGljYXRlRmllbGQpIHtcbiAgICAgIHJldHVybiBbbW9kdWxlQ2hlY2tEdXBsaWNhdGVGaWVsZF07XG4gICAgfVxuICAgIC8vIFdlIGFzc3VtZSB0aGF0IHRoZSBtb2R1bGUgaXMgY3VzdG9tIGdlbmVyYXRlZCBpZiB0aGUgbW9kdWxlIHdpc2UgZHVwbGljYXRlIGNoZWNrIGZpZWxkIGlzIG5vdCBmb3VuZFxuICAgIHJldHVybiBbU1lTVEVNX0RFRklORURfRFVQTElDQVRFX0NIRUNLX0ZJRUxEX0ZPUl9DVVNUT01fTU9EVUxFXTtcbiAgfVxuXG4gIC8vIEZldGNoZXMgdGhlIG1vZHVsZSB3aXNlIG1hbmRhdG9yeSBmaWVsZHMgZm9yIGEgZ2l2ZW4gbW9kdWxlIG5hbWVcbiAgLy8gSWYgdGhlIG1vZHVsZSBpcyBub3QgZm91bmQsIGl0IHJldHVybnMgYW4gZW1wdHkgYXJyYXlcbiAgcHVibGljIHN0YXRpYyBmZXRjaE1vZHVsZVdpc2VNYW5kYXRvcnlGaWVsZHMobW9kdWxlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmICghTU9EVUxFX01BTkRBVE9SWV9GSUVMRF9DT05GSUdbbW9kdWxlTmFtZV0pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIE1PRFVMRV9NQU5EQVRPUllfRklFTERfQ09ORklHW21vZHVsZU5hbWVdO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRCYXNlUmVjb3JkVXJsKHtcbiAgICBkYXRhQ2VudGVyID0gJ1VTJyxcbiAgICBtb2R1bGVOYW1lLFxuICB9OiB7XG4gICAgZGF0YUNlbnRlcj86IFJlZ2lvbktleXM7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICB9KTogc3RyaW5nIHtcbiAgICBpZiAoIW1vZHVsZU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbW9kdWxlTmFtZSBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gICAgY29uc3QgYmFzZVVSbCA9IERBVEFfQ0VOVFJFX0JBU0VfRU5EUE9JTlRTX01BUFtkYXRhQ2VudGVyXTtcbiAgICByZXR1cm4gYCR7YmFzZVVSbH0ke2dldFJlY29yZFBhdGgobW9kdWxlTmFtZSl9YDtcbiAgfVxufVxuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9oby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL3pvaG8vem9oby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQWFpQjtBQUVqQixpREFBNkM7QUFFN0MsTUFBcUIsSUFBSyxTQUFRLGtCQUErQjtJQUMvRCxrREFBa0Q7SUFDbEQsa0JBQWtCLENBQUMsVUFBc0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDdEUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO0lBRVMsZUFBZSxDQUFDLFFBQWdCO1FBQ3hDLGdDQUFnQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDM0UsT0FBTyxHQUFHLHNDQUE4QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDekYsQ0FBQztJQUVTLFVBQVU7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxtQkFBbUIsSUFBSSxDQUFD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QUFDO0lBQ2xELENBQUM7Q0FDRjtBQTVKRCx1QkE0SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdXRoT2JqZWN0LFxuICBEQVRBX0NFTlRSRV9CQVNFX0VORFBPSU5UU19NQVAsXG4gIEZpZWxkLFxuICBNb2R1bGUsXG4gIE1PRFVMRV9XSVNFX0RVUExJQ0FURV9DSEVDS19GSUVMRCxcbiAgQ1VTVE9NX0dFTkVSQVRFRF9UWVBFLFxuICBTWVNURU1fREVGSU5FRF9EVVBMSUNBVEVfQ0hFQ0tfRklFTERfRk9SX0NVU1RPTV9NT0RVTEUsXG4gIFVQU0VSVF9NT0RVTEVTLFxuICBNT0RVTEVfTUFOREFUT1JZX0ZJRUxEX0NPTkZJRyxcbiAgUmVnaW9uS2V5cyxcbiAgZ2V0UmVjb3JkUGF0aCxcbiAgWm9ob0NvbmZpZyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgU3RhdFRhZ3MgfSBmcm9tICcuLi8uLi9uZXR3b3JrL2NsaWVudHMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZVNESyB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLXNkayc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFpPSE8gZXh0ZW5kcyBCYXNlU0RLPEF1dGhPYmplY3QsIFpvaG9Db25maWc+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgdmFsaWRhdGVBdXRoT2JqZWN0KGF1dGhPYmplY3Q6IEF1dGhPYmplY3QpOiB2b2lkIHtcbiAgICBpZiAoIWF1dGhPYmplY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXV0aE9iamVjdCBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gICAgY29uc3QgeyBhY2Nlc3NUb2tlbiwgZGF0YUNlbnRlciwgcmVmcmVzaEFjY2VzVG9rZW5GdW5jIH0gPSBhdXRoT2JqZWN0O1xuICAgIGlmICghYWNjZXNzVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWk9ITyBhY2Nlc3NUb2tlbiBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gICAgaWYgKCFkYXRhQ2VudGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1pPSE8gZGF0YUNlbnRlciBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gICAgaWYgKCFyZWZyZXNoQWNjZXNUb2tlbkZ1bmMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWk9ITyBhIHJlZnJlc2ggYWNjZXNzIHRva2VuIGZ1bmN0aW9uIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJlcXVlc3RVcmwoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gRW5zdXJlIGVuZHBvaW50IHN0YXJ0cyB3aXRoIC9cbiAgICBjb25zdCBjbGVhbkVuZHBvaW50ID0gZW5kcG9pbnQuc3RhcnRzV2l0aCgnLycpID8gZW5kcG9pbnQgOiBgLyR7ZW5kcG9pbnR9YDtcbiAgICByZXR1cm4gYCR7REFUQV9DRU5UUkVfQkFTRV9FTkRQT0lOVFNfTUFQW3RoaXMuYXV0aE9iamVjdC5kYXRhQ2VudGVyXX0ke2NsZWFuRW5kcG9pbnR9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRIZWFkZXJzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB7XG4gICAgICBBdXRob3JpemF0aW9uOiBgWm9oby1vYXV0aHRva2VuICR7dGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VufWAsXG4gICAgfTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIHNob3VsZFJldHJ5T25FcnJvcihyZXNwb25zZTogQXBpUmVzcG9uc2U8dW5rbm93bj4pOiBib29sZWFuIHtcbiAgICAvLyBSZXRyeSBvbiA0MDEgKHVuYXV0aG9yaXplZCkgZXJyb3JzIGZvciB0b2tlbiByZWZyZXNoXG4gICAgcmV0dXJuIChcbiAgICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPT09IDQwMSAmJlxuICAgICAgcmVzcG9uc2UudHlwZSA9PT0gJ2FwcGxpY2F0aW9uLWVycm9yJyAmJlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIChyZXNwb25zZSBhcyBhbnkpLnJlc3BvbnNlQm9keT8uY29kZSA9PT0gJ0lOVkFMSURfVE9LRU4nXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5hdXRoT2JqZWN0LnJlZnJlc2hBY2Nlc1Rva2VuRnVuYygpO1xuICAgICAgdGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VuID0gYWNjZXNzVG9rZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHJlZnJlc2ggdG9rZW4sIHdpdGggZXJyb3I6ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoRHluYW1pY0ZpZWxkcyh7XG4gICAgbW9kdWxlTmFtZSxcbiAgICBzeXN0ZW1SZXF1aXJlZE9ubHkgPSBmYWxzZSxcbiAgICBzdGF0VGFncyxcbiAgfToge1xuICAgIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgICBzeXN0ZW1SZXF1aXJlZE9ubHk/OiBib29sZWFuO1xuICAgIHN0YXRUYWdzPzogU3RhdFRhZ3M7XG4gIH0pOiBQcm9taXNlPEFwaVJlc3BvbnNlPHsgZmllbGRzOiBGaWVsZFtdIH0+PiB7XG4gICAgY29uc3QgZmllbGRzQXBpUGF0aCA9IGAvY3JtL3Y2L3NldHRpbmdzL2ZpZWxkcz9tb2R1bGU9JHttb2R1bGVOYW1lfWA7XG4gICAgY29uc3QgY3VzdG9tU3RhdFRhZ3M6IFN0YXRUYWdzID0ge1xuICAgICAgLi4uc3RhdFRhZ3MsXG4gICAgICBlbmRwb2ludFBhdGg6IGAvY3JtL3Y2L3NldHRpbmdzL2ZpZWxkcz9tb2R1bGU9JHttb2R1bGVOYW1lfWAsXG4gICAgfTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0V2l0aFRva2VuUmVmcmVzaEF0dGVtcHRzPHsgZmllbGRzOiBGaWVsZFtdIH0+KFxuICAgICAgJ2dldCcsXG4gICAgICBmaWVsZHNBcGlQYXRoLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY3VzdG9tU3RhdFRhZ3MsXG4gICAgKTtcbiAgICBpZiAoIXN5c3RlbVJlcXVpcmVkT25seSB8fCByZXMudHlwZSA9PT0gJ2FwcGxpY2F0aW9uLWVycm9yJyB8fCByZXMudHlwZSA9PT0gJ2NsaWVudC1lcnJvcicpIHtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGNvbnN0IHsgZmllbGRzIH0gPSByZXMucmVzcG9uc2VCb2R5O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3Qgc3lzdGVtRmllbGRzID0gZmllbGRzLmZpbHRlcigoeyBzeXN0ZW1fbWFuZGF0b3J5IH06IGFueSkgPT4gc3lzdGVtX21hbmRhdG9yeSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlcyxcbiAgICAgIHJlc3BvbnNlQm9keToge1xuICAgICAgICBmaWVsZHM6IFsuLi5zeXN0ZW1GaWVsZHNdLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoTW9kdWxlcyh7XG4gICAgdXBzZXJ0T25seSA9IGZhbHNlLFxuICAgIHN0YXRUYWdzLFxuICB9OiB7XG4gICAgdXBzZXJ0T25seT86IGJvb2xlYW47XG4gICAgc3RhdFRhZ3M/OiBTdGF0VGFncztcbiAgfSA9IHt9KTogUHJvbWlzZTxBcGlSZXNwb25zZTx7IG1vZHVsZXM6IE1vZHVsZVtdIH0+PiB7XG4gICAgY29uc3Qgb2Jqc1BhdGggPSAnL2NybS92Ni9zZXR0aW5ncy9tb2R1bGVzJztcbiAgICBjb25zdCBjdXN0b21TdGF0VGFnczogU3RhdFRhZ3MgPSB7XG4gICAgICAuLi5zdGF0VGFncyxcbiAgICAgIGVuZHBvaW50UGF0aDogYC9jcm0vdjYvc2V0dGluZ3MvbW9kdWxlc2AsXG4gICAgfTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0V2l0aFRva2VuUmVmcmVzaEF0dGVtcHRzPHsgbW9kdWxlczogTW9kdWxlW10gfT4oXG4gICAgICAnZ2V0JyxcbiAgICAgIG9ianNQYXRoLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY3VzdG9tU3RhdFRhZ3MsXG4gICAgKTtcbiAgICBpZiAoIXVwc2VydE9ubHkgfHwgcmVzLnR5cGUgPT09ICdhcHBsaWNhdGlvbi1lcnJvcicgfHwgcmVzLnR5cGUgPT09ICdjbGllbnQtZXJyb3InKSB7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBjb25zdCB7IG1vZHVsZXMgfSA9IHJlcy5yZXNwb25zZUJvZHk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBmaWx0ZXJlZE1vZHVsZXMgPSBtb2R1bGVzLmZpbHRlcigoeyBhcGlfbmFtZSB9OiBhbnkpID0+XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgVVBTRVJUX01PRFVMRVMuc29tZSgobW9kdWxlOiBhbnkpID0+IG1vZHVsZSA9PT0gYXBpX25hbWUpLFxuICAgICk7XG4gICAgY29uc3QgY3VzdG9tR2VuZXJhdGVkTW9kdWxlcyA9IG1vZHVsZXMuZmlsdGVyKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIChtb2R1bGU6IGFueSkgPT4gbW9kdWxlLmdlbmVyYXRlZF90eXBlID09PSBDVVNUT01fR0VORVJBVEVEX1RZUEUsXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzLFxuICAgICAgcmVzcG9uc2VCb2R5OiB7XG4gICAgICAgIG1vZHVsZXM6IFsuLi5maWx0ZXJlZE1vZHVsZXMsIC4uLmN1c3RvbUdlbmVyYXRlZE1vZHVsZXNdLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRmV0Y2hlcyB0aGUgbW9kdWxlIHdpc2UgZHVwbGljYXRlIGNoZWNrIGZpZWxkIGZvciBhIGdpdmVuIG1vZHVsZSBuYW1lXG4gIC8vIElmIHRoZSBtb2R1bGUgaXMgbm90IGN1c3RvbSBnZW5lcmF0ZWQsIGl0IHJldHVybnMgdGhlIHN5c3RlbSBkZWZpbmVkIGR1cGxpY2F0ZSBjaGVjayBmaWVsZFxuICBwdWJsaWMgc3RhdGljIGZldGNoTW9kdWxlV2lzZUR1cGxpY2F0ZUNoZWNrRmllbGQobW9kdWxlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG1vZHVsZUNoZWNrRHVwbGljYXRlRmllbGQgPSBNT0RVTEVfV0lTRV9EVVBMSUNBVEVfQ0hFQ0tfRklFTERbbW9kdWxlTmFtZV07XG4gICAgaWYgKG1vZHVsZUNoZWNrRHVwbGljYXRlRmllbGQpIHtcbiAgICAgIHJldHVybiBbbW9kdWxlQ2hlY2tEdXBsaWNhdGVGaWVsZF07XG4gICAgfVxuICAgIC8vIFdlIGFzc3VtZSB0aGF0IHRoZSBtb2R1bGUgaXMgY3VzdG9tIGdlbmVyYXRlZCBpZiB0aGUgbW9kdWxlIHdpc2UgZHVwbGljYXRlIGNoZWNrIGZpZWxkIGlzIG5vdCBmb3VuZFxuICAgIHJldHVybiBbU1lTVEVNX0RFRklORURfRFVQTElDQVRFX0NIRUNLX0ZJRUxEX0ZPUl9DVVNUT01fTU9EVUxFXTtcbiAgfVxuXG4gIC8vIEZldGNoZXMgdGhlIG1vZHVsZSB3aXNlIG1hbmRhdG9yeSBmaWVsZHMgZm9yIGEgZ2l2ZW4gbW9kdWxlIG5hbWVcbiAgLy8gSWYgdGhlIG1vZHVsZSBpcyBub3QgZm91bmQsIGl0IHJldHVybnMgYW4gZW1wdHkgYXJyYXlcbiAgcHVibGljIHN0YXRpYyBmZXRjaE1vZHVsZVdpc2VNYW5kYXRvcnlGaWVsZHMobW9kdWxlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmICghTU9EVUxFX01BTkRBVE9SWV9GSUVMRF9DT05GSUdbbW9kdWxlTmFtZV0pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIE1PRFVMRV9NQU5EQVRPUllfRklFTERfQ09ORklHW21vZHVsZU5hbWVdO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRCYXNlUmVjb3JkVXJsKHtcbiAgICBkYXRhQ2VudGVyID0gJ1VTJyxcbiAgICBtb2R1bGVOYW1lLFxuICB9OiB7XG4gICAgZGF0YUNlbnRlcj86IFJlZ2lvbktleXM7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICB9KTogc3RyaW5nIHtcbiAgICBpZiAoIW1vZHVsZU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbW9kdWxlTmFtZSBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gICAgY29uc3QgYmFzZVVSbCA9IERBVEFfQ0VOVFJFX0JBU0VfRU5EUE9JTlRTX01BUFtkYXRhQ2VudGVyXTtcbiAgICByZXR1cm4gYCR7YmFzZVVSbH0ke2dldFJlY29yZFBhdGgobW9kdWxlTmFtZSl9YDtcbiAgfVxufVxuIl19
|
package/build/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC"}
|
package/build/utils/index.js
CHANGED
|
@@ -18,6 +18,7 @@ __exportStar(require("./batch-processing"), exports);
|
|
|
18
18
|
__exportStar(require("./json-schema-generator"), exports);
|
|
19
19
|
__exportStar(require("./misc"), exports);
|
|
20
20
|
__exportStar(require("./request"), exports);
|
|
21
|
+
__exportStar(require("./sanitizer"), exports);
|
|
21
22
|
__exportStar(require("./tests"), exports);
|
|
22
23
|
__exportStar(require("./zod"), exports);
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtQztBQUNuQywwREFBd0M7QUFDeEMseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQiw4Q0FBNEI7QUFDNUIsMENBQXdCO0FBQ3hCLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmF0Y2gtcHJvY2Vzc2luZyc7XG5leHBvcnQgKiBmcm9tICcuL2pzb24tc2NoZW1hLWdlbmVyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL21pc2MnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc2FuaXRpemVyJztcbmV4cG9ydCAqIGZyb20gJy4vdGVzdHMnO1xuZXhwb3J0ICogZnJvbSAnLi96b2QnO1xuIl19
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response Sanitization Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides comprehensive sanitization for API responses to prevent XSS attacks
|
|
5
|
+
* and other security vulnerabilities.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* - HTML entity escaping (always enabled, uses validator library)
|
|
9
|
+
* - Control character removal (configurable)
|
|
10
|
+
* - String length truncation (configurable)
|
|
11
|
+
* - Deep object traversal (configurable depth)
|
|
12
|
+
* - Type preservation (numbers, booleans, null remain unchanged)
|
|
13
|
+
* - Non-destructive (returns new objects without mutating originals)
|
|
14
|
+
*
|
|
15
|
+
* @packageDocumentation
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Regular expression to match dangerous control characters
|
|
19
|
+
*
|
|
20
|
+
* Matches ASCII control characters (0x00-0x1F and 0x7F) EXCEPT:
|
|
21
|
+
* - \x09 (tab)
|
|
22
|
+
* - \x0A (newline)
|
|
23
|
+
* - \x0D (carriage return)
|
|
24
|
+
*
|
|
25
|
+
* Range breakdown:
|
|
26
|
+
* - \x00-\x08: NULL to BACKSPACE
|
|
27
|
+
* - \x0B: Vertical Tab (skips \x09 tab and \x0A newline)
|
|
28
|
+
* - \x0C: Form Feed (skips \x0D carriage return)
|
|
29
|
+
* - \x0E-\x1F: Shift Out to Unit Separator
|
|
30
|
+
* - \x7F: DELETE
|
|
31
|
+
*
|
|
32
|
+
* These characters can cause issues in logs, APIs, and downstream systems.
|
|
33
|
+
*/
|
|
34
|
+
export declare const CONTROL_CHARS_REGEX: RegExp;
|
|
35
|
+
/**
|
|
36
|
+
* Configuration for response sanitization
|
|
37
|
+
*
|
|
38
|
+
* This configuration controls how the sanitization utility processes data:
|
|
39
|
+
* - HTML escaping is ALWAYS enabled (cannot be disabled for security)
|
|
40
|
+
* - Control character removal is configurable
|
|
41
|
+
* - String length limits are configurable
|
|
42
|
+
* - Object depth limits are configurable
|
|
43
|
+
*/
|
|
44
|
+
export interface SanitizationConfig {
|
|
45
|
+
/**
|
|
46
|
+
* Remove dangerous control characters (0x00-0x1F, 0x7F)
|
|
47
|
+
* Preserves safe formatting characters: \n (newline), \r (carriage return), \t (tab)
|
|
48
|
+
* @default true
|
|
49
|
+
*/
|
|
50
|
+
removeControlChars: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Maximum string length before truncation (in characters)
|
|
53
|
+
* Prevents DOS attacks by limiting string size
|
|
54
|
+
* Set to 0 to disable truncation
|
|
55
|
+
* @default 10240
|
|
56
|
+
*/
|
|
57
|
+
maxStringLength: number;
|
|
58
|
+
/**
|
|
59
|
+
* Maximum object depth to traverse
|
|
60
|
+
* Prevents stack overflow from deeply nested objects
|
|
61
|
+
* Objects deeper than this will be replaced with '[Max depth exceeded]'
|
|
62
|
+
* @default 50
|
|
63
|
+
*/
|
|
64
|
+
maxDepth: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Default sanitization configuration
|
|
68
|
+
* Suitable for general-purpose API responses
|
|
69
|
+
*
|
|
70
|
+
* For specific use cases, create custom configs:
|
|
71
|
+
* - Processor responses: { maxStringLength: 50000, maxDepth: 50, removeControlChars: true }
|
|
72
|
+
* - Delivery responses: { maxStringLength: 20000, maxDepth: 30, removeControlChars: true }
|
|
73
|
+
*/
|
|
74
|
+
export declare const DEFAULT_SANITIZATION_CONFIG: SanitizationConfig;
|
|
75
|
+
/**
|
|
76
|
+
* Deep sanitize an object, array, or primitive value
|
|
77
|
+
*
|
|
78
|
+
* This function recursively processes data structures:
|
|
79
|
+
* - Arrays: Sanitizes each element
|
|
80
|
+
* - Objects: Sanitizes both keys and values
|
|
81
|
+
* - Strings: Applies HTML escaping and other string sanitization
|
|
82
|
+
* - Primitives: Returns as-is (numbers, booleans, null, undefined)
|
|
83
|
+
*
|
|
84
|
+
* @param data - The data to sanitize (any type)
|
|
85
|
+
* @param config - Sanitization configuration (defaults to DEFAULT_SANITIZATION_CONFIG)
|
|
86
|
+
* @param depth - Current recursion depth (internal use, starts at 0)
|
|
87
|
+
* @returns Sanitized copy of the data
|
|
88
|
+
*
|
|
89
|
+
* @example Sanitize an object
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const data = {
|
|
92
|
+
* user: '<script>xss</script>',
|
|
93
|
+
* count: 42,
|
|
94
|
+
* active: true
|
|
95
|
+
* };
|
|
96
|
+
* const clean = sanitize(data);
|
|
97
|
+
* // Returns: { user: '<script>xss</script>', count: 42, active: true }
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @example Sanitize an array
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const data = ['<b>item1</b>', '<i>item2</i>'];
|
|
103
|
+
* const clean = sanitize(data);
|
|
104
|
+
* // Returns: ['<b>item1</b>', '<i>item2</i>']
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export declare function sanitize<T>(data: T, config?: SanitizationConfig, depth?: number): T;
|
|
108
|
+
/**
|
|
109
|
+
* Sanitize any response data to prevent XSS attacks and security vulnerabilities
|
|
110
|
+
*
|
|
111
|
+
* This is a convenience function that merges custom config with defaults.
|
|
112
|
+
* For direct control, use the `sanitize` function directly.
|
|
113
|
+
*
|
|
114
|
+
* This function:
|
|
115
|
+
* - Escapes HTML entities in all strings (ALWAYS, cannot be disabled)
|
|
116
|
+
* - Removes dangerous control characters (configurable)
|
|
117
|
+
* - Truncates overly long strings (configurable)
|
|
118
|
+
* - Handles nested objects/arrays recursively
|
|
119
|
+
* - Preserves data types (numbers, booleans, null)
|
|
120
|
+
*
|
|
121
|
+
* @param data - The data to sanitize (objects, arrays, primitives)
|
|
122
|
+
* @param config - Optional partial configuration (merged with defaults)
|
|
123
|
+
* @returns Sanitized copy of the data with same type
|
|
124
|
+
*
|
|
125
|
+
* @example Basic usage with defaults
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const unsafe = { message: '<script>alert("xss")</script>' };
|
|
128
|
+
* const safe = sanitizeResponse(unsafe);
|
|
129
|
+
* // Result: { message: '<script>alert("xss")</script>' }
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* @example Custom configuration for large payloads
|
|
133
|
+
* ```typescript
|
|
134
|
+
* const response = sanitizeResponse(processorData, {
|
|
135
|
+
* maxStringLength: 50000,
|
|
136
|
+
* maxDepth: 50,
|
|
137
|
+
* removeControlChars: true
|
|
138
|
+
* });
|
|
139
|
+
* ```
|
|
140
|
+
*
|
|
141
|
+
* @example In a Koa controller
|
|
142
|
+
* ```typescript
|
|
143
|
+
* export class Controller {
|
|
144
|
+
* async transform(ctx: Context) {
|
|
145
|
+
* const result = await transformData(ctx.request.body);
|
|
146
|
+
* ctx.body = sanitizeResponse(result);
|
|
147
|
+
* }
|
|
148
|
+
* }
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export declare function sanitizeResponse<T>(data: T, config?: Partial<SanitizationConfig>): T;
|
|
152
|
+
//# sourceMappingURL=sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizer.d.ts","sourceRoot":"","sources":["../../src/utils/sanitizer.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,mBAAmB,QAAsC,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAIzC,CAAC;AA2CF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,CAAC,EACP,MAAM,GAAE,kBAAgD,EACxD,KAAK,GAAE,MAAU,GAChB,CAAC,CAyCH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAKpF"}
|