@rudderstack/integrations-lib 0.1.3 → 0.1.4
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/constants.d.ts +3 -0
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +5 -2
- package/build/utils/sem.d.ts +21 -1
- package/build/utils/sem.d.ts.map +1 -1
- package/build/utils/sem.js +52 -1
- package/package.json +1 -1
- package/build/network/clients/axiosClient.test.d.ts +0 -2
- package/build/network/clients/axiosClient.test.d.ts.map +0 -1
- package/build/network/clients/axiosClient.test.js +0 -231
package/build/constants.d.ts
CHANGED
|
@@ -93,4 +93,7 @@ export declare const GENERIC_MAPPING_CONFIG: {
|
|
|
93
93
|
zipcode: string[];
|
|
94
94
|
sessionId: string[];
|
|
95
95
|
};
|
|
96
|
+
export declare const MappedToDestinationKey = "context.mappedToDestination";
|
|
97
|
+
export declare const GENERIC_TRUE_VALUES: string[];
|
|
98
|
+
export declare const GENERIC_FALSE_VALUES: string[];
|
|
96
99
|
//# sourceMappingURL=constants.d.ts.map
|
package/build/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDlC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHlC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDlC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AAEpE,eAAO,MAAM,mBAAmB,UAA0C,CAAC;AAC3E,eAAO,MAAM,oBAAoB,UAA6C,CAAC"}
|
package/build/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GENERIC_MAPPING_CONFIG = exports.NETWORK_STATUS_ERR_MAP = void 0;
|
|
3
|
+
exports.GENERIC_FALSE_VALUES = exports.GENERIC_TRUE_VALUES = exports.MappedToDestinationKey = exports.GENERIC_MAPPING_CONFIG = exports.NETWORK_STATUS_ERR_MAP = void 0;
|
|
4
4
|
exports.NETWORK_STATUS_ERR_MAP = {
|
|
5
5
|
EACCES: {
|
|
6
6
|
status: 400,
|
|
@@ -177,4 +177,7 @@ exports.GENERIC_MAPPING_CONFIG = {
|
|
|
177
177
|
],
|
|
178
178
|
sessionId: ['session_id', 'context.sessionId'],
|
|
179
179
|
};
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDLE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLCtCQUErQjtLQUN6QztJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHdDQUF3QztLQUNsRDtJQUNELFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHNDQUFzQztLQUNoRDtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLDBDQUEwQztLQUNwRDtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHlCQUF5QjtLQUNuQztJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLDRCQUE0QjtLQUN0QztJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLDJDQUEyQztLQUNyRDtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHVDQUF1QztLQUNqRDtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLDhCQUE4QjtLQUN4QztJQUNELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHFDQUFxQztLQUMvQztJQUNELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLGtDQUFrQztLQUM1QztJQUNELEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLG9DQUFvQztLQUM5QztJQUNELEtBQUss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O0lBRUQsS0FBSyxFQUFFLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDO0lBQy9DLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDO0lBQ3JELE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQztJQUNsRCxJQUFJLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw2QkFBNkIsQ0FBQztJQUU1RCxNQUFNLEVBQUU7UUFDTixlQUFlO1FBQ2YsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsbUJBQW1CO1FBQ25CLDJCQUEyQjtLQUM1QjtJQUNELE9BQU8sRUFBRTtRQUNQLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsMkJBQTJCO1FBQzNCLDRCQUE0QjtRQUM1QiwyQkFBMkI7UUFDM0Isb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4Qix5QkFBeUI7UUFDekIsd0JBQXdCO1FBQ3hCLDJCQUEyQjtRQUMzQiw0QkFBNEI7UUFDNUIsMkJBQTJCO1FBQzNCLDRCQUE0QjtRQUM1QixnQ0FBZ0M7UUFDaEMsaUNBQWlDO1FBQ2pDLGdDQUFnQztRQUNoQyxtQ0FBbUM7UUFDbkMsb0NBQW9DO1FBQ3BDLG1DQUFtQztLQUNwQztJQUNELFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztDQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE5FVFdPUktfU1RBVFVTX0VSUl9NQVAgPSB7XG4gIEVBQ0NFUzoge1xuICAgIHN0YXR1czogNDAwLFxuICAgIG1lc3NhZ2U6ICdbRUFDQ0VTXSA6OiBQZXJtaXNzaW9uIGRlbmllZCcsXG4gIH0sXG4gIEVBRERSSU5VU0U6IHtcbiAgICBzdGF0dXM6IDQwMCxcbiAgICBtZXNzYWdlOiAnW0VBRERSSU5VU0VdIDo6IEFkZHJlc3MgYWxyZWFkeSBpbiB1c2UnLFxuICB9LFxuICBFQ09OTlJFRlVTRUQ6IHtcbiAgICBzdGF0dXM6IDUwMCxcbiAgICBtZXNzYWdlOiAnW0VDT05OUkVGVVNFRF0gOjogQ29ubmVjdGlvbiByZWZ1c2VkJyxcbiAgfSxcbiAgRUNPTk5SRVNFVDoge1xuICAgIHN0YXR1czogNTAwLFxuICAgIG1lc3NhZ2U6ICdbRUNPTk5SRVNFVF0gOjogQ29ubmVjdGlvbiByZXNldCBieSBwZWVyJyxcbiAgfSxcbiAgRUVYSVNUOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFRVhJU1RdIDo6IEZpbGUgZXhpc3RzJyxcbiAgfSxcbiAgRUlTRElSOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFRVhJU1RdIDo6IElzIGEgZGlyZWN0b3J5JyxcbiAgfSxcbiAgRU1GSUxFOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFTUZJTEVdIDo6IFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtJyxcbiAgfSxcbiAgRU5PRU5UOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFTk9FTlRdIDo6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnknLFxuICB9LFxuICBFTk9URElSOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFTk9URElSXSA6OiBOb3QgYSBkaXJlY3RvcnknLFxuICB9LFxuICBFTk9URU1QVFk6IHtcbiAgICBzdGF0dXM6IDQwMCxcbiAgICBtZXNzYWdlOiAnW0VOT1RFTVBUWV0gOjogRGlyZWN0b3J5IG5vdCBlbXB0eSknLFxuICB9LFxuICBFTk9URk9VTkQ6IHtcbiAgICBzdGF0dXM6IDQwMCxcbiAgICBtZXNzYWdlOiAnW0VOT1RGT1VORF0gOjogRE5TIGxvb2t1cCBmYWlsZWQnLFxuICB9LFxuICBFUEVSTToge1xuICAgIHN0YXR1czogNDAwLFxuICAgIG1lc3NhZ2U6ICdbRVBFUk1dIDo6IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkJyxcbiAgfSxcbiAgRVBJUEU6IHtcbiAgICBzdGF0dXM6IDQwMCxcbiAgICBtZXNzYWdlOiAnW0VQSVBFXSA6OiBCcm9rZW4gcGlwZScsXG4gIH0sXG4gIEVUSU1FRE9VVDoge1xuICAgIHN0YXR1czogNTAwLFxuICAgIG1lc3NhZ2U6ICdbRVRJTUVET1VUXSA6OiBPcGVyYXRpb24gdGltZWQgb3V0JyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBHRU5FUklDX01BUFBJTkdfQ09ORklHID0ge1xuICBhZGRyZXNzOiBbJ3RyYWl0cy5hZGRyZXNzJywgJ2NvbnRleHQudHJhaXRzLmFkZHJlc3MnXSxcbiAgY3JlYXRlZEF0OiBbJ3RyYWl0cy5jcmVhdGVkQXQnLCAnY29udGV4dC50cmFpdHMuY3JlYXRlZEF0JywgJ3RpbWVzdGFtcCcsICdvcmlnaW5hbFRpbWVzdGFtcCddLFxuICBjcmVhdGVkQXRPbmx5OiBbJ3RyYWl0cy5jcmVhdGVkQXQnLCAnY29udGV4dC50cmFpdHMuY3JlYXRlZEF0J10sXG4gIGVtYWlsOiBbJ3RyYWl0cy5lbWFpbCcsICdjb250ZXh0LnRyYWl0cy5lbWFpbCcsICdwcm9wZXJ0aWVzLmVtYWlsJywgJ2NvbnRleHQuZXh0ZXJuYWxJZC4wLmlkJ10sXG4gIGVtYWlsT25seTogWyd0cmFpdHMuZW1haWwnLCAnY29udGV4dC50cmFpdHMuZW1haWwnLCAncHJvcGVydGllcy5lbWFpbCddLFxuICB0aW1lc3RhbXA6IFsndGltZXN0YW1wJywgJ29yaWdpbmFsVGltZXN0YW1wJ10sXG4gIGhpc3RvcmljYWxUaW1lc3RhbXA6IFsndGltZXN0YW1wJywgJ29yaWdpbmFsVGltZXN0YW1wJ10sXG4gIHRyYWl0czogWyd0cmFpdHMnLCAnY29udGV4dC50cmFpdHMnXSxcbiAgZ3JvdXBJZDogWydncm91cElkJywgJ3RyYWl0cy5ncm91cElkJ10sXG4gIGdyb3VwVHJhaXRzOiBbJ3RyYWl0cycsICdjb250ZXh0LnRyYWl0cyddLFxuICB1c2VySWQ6IFtcbiAgICAndXNlcklkJyxcbiAgICAndHJhaXRzLnVzZXJJZCcsXG4gICAgJ3RyYWl0cy5pZCcsXG4gICAgJ2NvbnRleHQudHJhaXRzLnVzZXJJZCcsXG4gICAgJ2NvbnRleHQudHJhaXRzLmlkJyxcbiAgICAnYW5vbnltb3VzSWQnLFxuICBdLFxuICB1c2VySWRPbmx5OiBbXG4gICAgJ3VzZXJJZCcsXG4gICAgJ3RyYWl0cy51c2VySWQnLFxuICAgICd0cmFpdHMuaWQnLFxuICAgICdjb250ZXh0LnRyYWl0cy51c2VySWQnLFxuICAgICdjb250ZXh0LnRyYWl0cy5pZCcsXG4gIF0sXG4gIG5hbWU6IFsndHJhaXRzLm5hbWUnLCAnY29udGV4dC50cmFpdHMubmFtZSddLFxuICB0aXRsZTogWyd0cmFpdHMudGl0bGUnLCAnY29udGV4dC50cmFpdHMudGl0bGUnXSxcbiAgZmlyc3ROYW1lOiBbXG4gICAgJ3RyYWl0cy5maXJzdE5hbWUnLFxuICAgICd0cmFpdHMuZmlyc3RuYW1lJyxcbiAgICAndHJhaXRzLmZpcnN0X25hbWUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5maXJzdE5hbWUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5maXJzdG5hbWUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5maXJzdF9uYW1lJyxcbiAgXSxcbiAgbGFzdE5hbWU6IFtcbiAgICAndHJhaXRzLmxhc3ROYW1lJyxcbiAgICAndHJhaXRzLmxhc3RuYW1lJyxcbiAgICAndHJhaXRzLmxhc3RfbmFtZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLmxhc3ROYW1lJyxcbiAgICAnY29udGV4dC50cmFpdHMubGFzdG5hbWUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5sYXN0X25hbWUnLFxuICBdLFxuICBtaWRkbGVOYW1lOiBbXG4gICAgJ3RyYWl0cy5taWRkbGVOYW1lJyxcbiAgICAndHJhaXRzLm1pZGRsZU5hbWUnLFxuICAgICd0cmFpdHMubWlkZGxlX25hbWUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5taWRkbGVOYW1lJyxcbiAgICAnY29udGV4dC50cmFpdHMubWlkZGxlTmFtZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLm1pZGRsZV9uYW1lJyxcbiAgXSxcbiAgZ2VuZGVyOiBbJ3RyYWl0cy5nZW5kZXInLCAnY29udGV4dC50cmFpdHMuZ2VuZGVyJ10sXG4gIHBob25lOiBbJ3RyYWl0cy5waG9uZScsICdjb250ZXh0LnRyYWl0cy5waG9uZScsICdwcm9wZXJ0aWVzLnBob25lJ10sXG4gIHBhZ2VUaXRsZTogWydjb250ZXh0LnBhZ2UudGl0bGUnLCAncHJvcGVydGllcy50aXRsZSddLFxuICBwYWdlVXJsOiBbJ2NvbnRleHQucGFnZS51cmwnLCAncHJvcGVydGllcy51cmwnXSxcbiAgcGFnZVBhdGg6IFsnY29udGV4dC5wYWdlLnBhdGgnLCAncHJvcGVydGllcy5wYXRoJ10sXG4gIHdlYnNpdGU6IFsndHJhaXRzLndlYnNpdGUnLCAnY29udGV4dC50cmFpdHMud2Vic2l0ZScsICdwcm9wZXJ0aWVzLndlYnNpdGUnXSxcbiAgR0FwYWdlVXJsOiBbJ3Byb3BlcnRpZXMudXJsJywgJ2NvbnRleHQucGFnZS51cmwnXSxcbiAgR0FwYWdlUmVmOiBbJ3Byb3BlcnRpZXMucmVmZXJyZXInLCAnY29udGV4dC5wYWdlLnJlZmVycmVyJ10sXG4gIEdBcGFnZVRpdGxlOiBbJ3Byb3BlcnRpZXMudGl0bGUnLCAnY29udGV4dC5wYWdlLnRpdGxlJ10sXG4gIEdBcGFnZVNlYXJjaDogWydwcm9wZXJ0aWVzLnNlYXJjaCcsICdjb250ZXh0LnBhZ2Uuc2VhcmNoJ10sXG4gIGJpcnRoZGF5OiBbXG4gICAgJ3RyYWl0cy5iaXJ0aGRheScsXG4gICAgJ2NvbnRleHQudHJhaXRzLmJpcnRoZGF5JyxcbiAgICAndHJhaXRzLmRhdGVPZkJpcnRoJyxcbiAgICAnY29udGV4dC50cmFpdHMuZGF0ZU9mQmlydGgnLFxuICAgICd0cmFpdHMuZGF0ZW9mYmlydGgnLFxuICAgICdjb250ZXh0LmRhdGVvZmJpcnRoJyxcbiAgICAndHJhaXRzLmRvYicsXG4gICAgJ2NvbnRleHQudHJhaXRzLmRvYicsXG4gICAgJ3RyYWl0cy5ET0InLFxuICAgICdjb250ZXh0LnRyYWl0cy5ET0InLFxuICBdLFxuXG4gIHN0YXRlOiBbJ3RyYWl0cy5zdGF0ZScsICdjb250ZXh0LnRyYWl0cy5zdGF0ZSddLFxuICBjb3VudHJ5OiBbJ3RyYWl0cy5jb3VudHJ5JywgJ2NvbnRleHQudHJhaXRzLmNvdW50cnknXSxcbiAgcmVnaW9uOiBbJ3RyYWl0cy5yZWdpb24nLCAnY29udGV4dC50cmFpdHMucmVnaW9uJ10sXG4gIGNpdHk6IFsndHJhaXRzLmFkZHJlc3MuY2l0eScsICdjb250ZXh0LnRyYWl0cy5hZGRyZXNzLmNpdHknXSxcblxuICBhdmF0YXI6IFtcbiAgICAndHJhaXRzLmF2YXRhcicsXG4gICAgJ2NvbnRleHQudHJhaXRzLmF2YXRhcicsXG4gICAgJ3RyYWl0cy5hdmF0YXJVUkwnLFxuICAgICdjb250ZXh0LnRyYWl0cy5hdmF0YXJVUkwnLFxuICAgICd0cmFpdHMuYXZhdGFyX1VSTCcsXG4gICAgJ2NvbnRleHQudHJhaXRzLmF2YXRhcl9VUkwnLFxuICBdLFxuICB6aXBjb2RlOiBbXG4gICAgJ3RyYWl0cy56aXAnLFxuICAgICd0cmFpdHMuemlwY29kZScsXG4gICAgJ3RyYWl0cy56aXBfY29kZScsXG4gICAgJ3RyYWl0cy56aXBDb2RlJyxcbiAgICAndHJhaXRzLnBvc3RhbGNvZGUnLFxuICAgICd0cmFpdHMucG9zdGFsX2NvZGUnLFxuICAgICd0cmFpdHMucG9zdGFsQ29kZScsXG4gICAgJ3RyYWl0cy5hZGRyZXNzLnppcGNvZGUnLFxuICAgICd0cmFpdHMuYWRkcmVzcy56aXBfY29kZScsXG4gICAgJ3RyYWl0cy5hZGRyZXNzLnppcCcsXG4gICAgJ3RyYWl0cy5hZGRyZXNzLnppcENvZGUnLFxuICAgICd0cmFpdHMuYWRkcmVzcy5wb3N0YWxjb2RlJyxcbiAgICAndHJhaXRzLmFkZHJlc3MucG9zdGFsX2NvZGUnLFxuICAgICd0cmFpdHMuYWRkcmVzcy5wb3N0YWxDb2RlJyxcbiAgICAnY29udGV4dC50cmFpdHMuemlwJyxcbiAgICAnY29udGV4dC50cmFpdHMuemlwY29kZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLnppcF9jb2RlJyxcbiAgICAnY29udGV4dC50cmFpdHMuemlwQ29kZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLnBvc3RhbGNvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5wb3N0YWxfY29kZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLnBvc3RhbENvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5hZGRyZXNzLnppcCcsXG4gICAgJ2NvbnRleHQudHJhaXRzLmFkZHJlc3MuemlwY29kZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLmFkZHJlc3MuemlwX2NvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5hZGRyZXNzLnppcENvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5hZGRyZXNzLnBvc3RhbGNvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5hZGRyZXNzLnBvc3RhbF9jb2RlJyxcbiAgICAnY29udGV4dC50cmFpdHMuYWRkcmVzcy5wb3N0YWxDb2RlJyxcbiAgXSxcbiAgc2Vzc2lvbklkOiBbJ3Nlc3Npb25faWQnLCAnY29udGV4dC5zZXNzaW9uSWQnXSxcbn07XG4iXX0=
|
|
180
|
+
exports.MappedToDestinationKey = 'context.mappedToDestination';
|
|
181
|
+
exports.GENERIC_TRUE_VALUES = ['true', 'True', 'TRUE', 't', 'T', '1'];
|
|
182
|
+
exports.GENERIC_FALSE_VALUES = ['false', 'False', 'FALSE', 'f', 'F', '0'];
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDLE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLCtCQUErQjtLQUN6QztJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHdDQUF3QztLQUNsRDtJQUNELFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHNDQUFzQztLQUNoRDtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLDBDQUEwQztLQUNwRDtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHlCQUF5QjtLQUNuQztJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLDRCQUE0QjtLQUN0QztJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLDJDQUEyQztLQUNyRDtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHVDQUF1QztLQUNqRDtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLDhCQUE4QjtLQUN4QztJQUNELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHFDQUFxQztLQUMvQztJQUNELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLGtDQUFrQztLQUM1QztJQUNELEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLG9DQUFvQztLQUM5QztJQUNELEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLHdCQUF3QjtLQUNsQztJQUNELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLG9DQUFvQztLQUM5QztDQUNGLENBQUM7QUFFVyxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDO0lBQ3JELFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztJQUM3RixhQUFhLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSwwQkFBMEIsQ0FBQztJQUMvRCxLQUFLLEVBQUUsQ0FBQyxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLENBQUM7SUFDOUYsU0FBUyxFQUFFLENBQUMsY0FBYyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDO0lBQ3ZFLFNBQVMsRUFBRSxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztJQUM3QyxtQkFBbUIsRUFBRSxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztJQUN2RCxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUM7SUFDcEMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDO0lBQ3RDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQztJQUN6QyxNQUFNLEVBQUU7UUFDTixRQUFRO1FBQ1IsZUFBZTtRQUNmLFdBQVc7UUFDWCx1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLGFBQWE7S0FDZDtJQUNELFVBQVUsRUFBRTtRQUNWLFFBQVE7UUFDUixlQUFlO1FBQ2YsV0FBVztRQUNYLHVCQUF1QjtRQUN2QixtQkFBbUI7S0FDcEI7SUFDRCxJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUM7SUFDNUMsS0FBSyxFQUFFLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDO0lBQy9DLFNBQVMsRUFBRTtRQUNULGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsMkJBQTJCO0tBQzVCO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIseUJBQXlCO1FBQ3pCLHlCQUF5QjtRQUN6QiwwQkFBMEI7S0FDM0I7SUFDRCxVQUFVLEVBQUU7UUFDVixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLDRCQUE0QjtLQUM3QjtJQUNELE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQztJQUNsRCxLQUFLLEVBQUUsQ0FBQyxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLENBQUM7SUFDbkUsU0FBUyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUM7SUFDckQsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUM7SUFDL0MsUUFBUSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUM7SUFDbEQsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLENBQUM7SUFDM0UsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUM7SUFDakQsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLENBQUM7SUFDM0QsV0FBVyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUM7SUFDdkQsWUFBWSxFQUFFLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLENBQUM7SUFDMUQsUUFBUSxFQUFFO1FBQ1IsaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixvQkFBb0I7UUFDcEIsNEJBQTRCO1FBQzVCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixZQUFZO1FBQ1osb0JBQW9CO0tBQ3JCO0lBRUQsS0FBSyxFQUFFLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDO0lBQy9DLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDO0lBQ3JELE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQztJQUNsRCxJQUFJLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw2QkFBNkIsQ0FBQztJQUU1RCxNQUFNLEVBQUU7UUFDTixlQUFlO1FBQ2YsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsbUJBQW1CO1FBQ25CLDJCQUEyQjtLQUM1QjtJQUNELE9BQU8sRUFBRTtRQUNQLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsMkJBQTJCO1FBQzNCLDRCQUE0QjtRQUM1QiwyQkFBMkI7UUFDM0Isb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4Qix5QkFBeUI7UUFDekIsd0JBQXdCO1FBQ3hCLDJCQUEyQjtRQUMzQiw0QkFBNEI7UUFDNUIsMkJBQTJCO1FBQzNCLDRCQUE0QjtRQUM1QixnQ0FBZ0M7UUFDaEMsaUNBQWlDO1FBQ2pDLGdDQUFnQztRQUNoQyxtQ0FBbUM7UUFDbkMsb0NBQW9DO1FBQ3BDLG1DQUFtQztLQUNwQztJQUNELFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztDQUMvQyxDQUFDO0FBRVcsUUFBQSxzQkFBc0IsR0FBRyw2QkFBNkIsQ0FBQztBQUV2RCxRQUFBLG1CQUFtQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM5RCxRQUFBLG9CQUFvQixHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBORVRXT1JLX1NUQVRVU19FUlJfTUFQID0ge1xuICBFQUNDRVM6IHtcbiAgICBzdGF0dXM6IDQwMCxcbiAgICBtZXNzYWdlOiAnW0VBQ0NFU10gOjogUGVybWlzc2lvbiBkZW5pZWQnLFxuICB9LFxuICBFQUREUklOVVNFOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFQUREUklOVVNFXSA6OiBBZGRyZXNzIGFscmVhZHkgaW4gdXNlJyxcbiAgfSxcbiAgRUNPTk5SRUZVU0VEOiB7XG4gICAgc3RhdHVzOiA1MDAsXG4gICAgbWVzc2FnZTogJ1tFQ09OTlJFRlVTRURdIDo6IENvbm5lY3Rpb24gcmVmdXNlZCcsXG4gIH0sXG4gIEVDT05OUkVTRVQ6IHtcbiAgICBzdGF0dXM6IDUwMCxcbiAgICBtZXNzYWdlOiAnW0VDT05OUkVTRVRdIDo6IENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcicsXG4gIH0sXG4gIEVFWElTVDoge1xuICAgIHN0YXR1czogNDAwLFxuICAgIG1lc3NhZ2U6ICdbRUVYSVNUXSA6OiBGaWxlIGV4aXN0cycsXG4gIH0sXG4gIEVJU0RJUjoge1xuICAgIHN0YXR1czogNDAwLFxuICAgIG1lc3NhZ2U6ICdbRUVYSVNUXSA6OiBJcyBhIGRpcmVjdG9yeScsXG4gIH0sXG4gIEVNRklMRToge1xuICAgIHN0YXR1czogNDAwLFxuICAgIG1lc3NhZ2U6ICdbRU1GSUxFXSA6OiBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbScsXG4gIH0sXG4gIEVOT0VOVDoge1xuICAgIHN0YXR1czogNDAwLFxuICAgIG1lc3NhZ2U6ICdbRU5PRU5UXSA6OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5JyxcbiAgfSxcbiAgRU5PVERJUjoge1xuICAgIHN0YXR1czogNDAwLFxuICAgIG1lc3NhZ2U6ICdbRU5PVERJUl0gOjogTm90IGEgZGlyZWN0b3J5JyxcbiAgfSxcbiAgRU5PVEVNUFRZOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFTk9URU1QVFldIDo6IERpcmVjdG9yeSBub3QgZW1wdHkpJyxcbiAgfSxcbiAgRU5PVEZPVU5EOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFTk9URk9VTkRdIDo6IEROUyBsb29rdXAgZmFpbGVkJyxcbiAgfSxcbiAgRVBFUk06IHtcbiAgICBzdGF0dXM6IDQwMCxcbiAgICBtZXNzYWdlOiAnW0VQRVJNXSA6OiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCcsXG4gIH0sXG4gIEVQSVBFOiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgbWVzc2FnZTogJ1tFUElQRV0gOjogQnJva2VuIHBpcGUnLFxuICB9LFxuICBFVElNRURPVVQ6IHtcbiAgICBzdGF0dXM6IDUwMCxcbiAgICBtZXNzYWdlOiAnW0VUSU1FRE9VVF0gOjogT3BlcmF0aW9uIHRpbWVkIG91dCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgR0VORVJJQ19NQVBQSU5HX0NPTkZJRyA9IHtcbiAgYWRkcmVzczogWyd0cmFpdHMuYWRkcmVzcycsICdjb250ZXh0LnRyYWl0cy5hZGRyZXNzJ10sXG4gIGNyZWF0ZWRBdDogWyd0cmFpdHMuY3JlYXRlZEF0JywgJ2NvbnRleHQudHJhaXRzLmNyZWF0ZWRBdCcsICd0aW1lc3RhbXAnLCAnb3JpZ2luYWxUaW1lc3RhbXAnXSxcbiAgY3JlYXRlZEF0T25seTogWyd0cmFpdHMuY3JlYXRlZEF0JywgJ2NvbnRleHQudHJhaXRzLmNyZWF0ZWRBdCddLFxuICBlbWFpbDogWyd0cmFpdHMuZW1haWwnLCAnY29udGV4dC50cmFpdHMuZW1haWwnLCAncHJvcGVydGllcy5lbWFpbCcsICdjb250ZXh0LmV4dGVybmFsSWQuMC5pZCddLFxuICBlbWFpbE9ubHk6IFsndHJhaXRzLmVtYWlsJywgJ2NvbnRleHQudHJhaXRzLmVtYWlsJywgJ3Byb3BlcnRpZXMuZW1haWwnXSxcbiAgdGltZXN0YW1wOiBbJ3RpbWVzdGFtcCcsICdvcmlnaW5hbFRpbWVzdGFtcCddLFxuICBoaXN0b3JpY2FsVGltZXN0YW1wOiBbJ3RpbWVzdGFtcCcsICdvcmlnaW5hbFRpbWVzdGFtcCddLFxuICB0cmFpdHM6IFsndHJhaXRzJywgJ2NvbnRleHQudHJhaXRzJ10sXG4gIGdyb3VwSWQ6IFsnZ3JvdXBJZCcsICd0cmFpdHMuZ3JvdXBJZCddLFxuICBncm91cFRyYWl0czogWyd0cmFpdHMnLCAnY29udGV4dC50cmFpdHMnXSxcbiAgdXNlcklkOiBbXG4gICAgJ3VzZXJJZCcsXG4gICAgJ3RyYWl0cy51c2VySWQnLFxuICAgICd0cmFpdHMuaWQnLFxuICAgICdjb250ZXh0LnRyYWl0cy51c2VySWQnLFxuICAgICdjb250ZXh0LnRyYWl0cy5pZCcsXG4gICAgJ2Fub255bW91c0lkJyxcbiAgXSxcbiAgdXNlcklkT25seTogW1xuICAgICd1c2VySWQnLFxuICAgICd0cmFpdHMudXNlcklkJyxcbiAgICAndHJhaXRzLmlkJyxcbiAgICAnY29udGV4dC50cmFpdHMudXNlcklkJyxcbiAgICAnY29udGV4dC50cmFpdHMuaWQnLFxuICBdLFxuICBuYW1lOiBbJ3RyYWl0cy5uYW1lJywgJ2NvbnRleHQudHJhaXRzLm5hbWUnXSxcbiAgdGl0bGU6IFsndHJhaXRzLnRpdGxlJywgJ2NvbnRleHQudHJhaXRzLnRpdGxlJ10sXG4gIGZpcnN0TmFtZTogW1xuICAgICd0cmFpdHMuZmlyc3ROYW1lJyxcbiAgICAndHJhaXRzLmZpcnN0bmFtZScsXG4gICAgJ3RyYWl0cy5maXJzdF9uYW1lJyxcbiAgICAnY29udGV4dC50cmFpdHMuZmlyc3ROYW1lJyxcbiAgICAnY29udGV4dC50cmFpdHMuZmlyc3RuYW1lJyxcbiAgICAnY29udGV4dC50cmFpdHMuZmlyc3RfbmFtZScsXG4gIF0sXG4gIGxhc3ROYW1lOiBbXG4gICAgJ3RyYWl0cy5sYXN0TmFtZScsXG4gICAgJ3RyYWl0cy5sYXN0bmFtZScsXG4gICAgJ3RyYWl0cy5sYXN0X25hbWUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5sYXN0TmFtZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLmxhc3RuYW1lJyxcbiAgICAnY29udGV4dC50cmFpdHMubGFzdF9uYW1lJyxcbiAgXSxcbiAgbWlkZGxlTmFtZTogW1xuICAgICd0cmFpdHMubWlkZGxlTmFtZScsXG4gICAgJ3RyYWl0cy5taWRkbGVOYW1lJyxcbiAgICAndHJhaXRzLm1pZGRsZV9uYW1lJyxcbiAgICAnY29udGV4dC50cmFpdHMubWlkZGxlTmFtZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLm1pZGRsZU5hbWUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5taWRkbGVfbmFtZScsXG4gIF0sXG4gIGdlbmRlcjogWyd0cmFpdHMuZ2VuZGVyJywgJ2NvbnRleHQudHJhaXRzLmdlbmRlciddLFxuICBwaG9uZTogWyd0cmFpdHMucGhvbmUnLCAnY29udGV4dC50cmFpdHMucGhvbmUnLCAncHJvcGVydGllcy5waG9uZSddLFxuICBwYWdlVGl0bGU6IFsnY29udGV4dC5wYWdlLnRpdGxlJywgJ3Byb3BlcnRpZXMudGl0bGUnXSxcbiAgcGFnZVVybDogWydjb250ZXh0LnBhZ2UudXJsJywgJ3Byb3BlcnRpZXMudXJsJ10sXG4gIHBhZ2VQYXRoOiBbJ2NvbnRleHQucGFnZS5wYXRoJywgJ3Byb3BlcnRpZXMucGF0aCddLFxuICB3ZWJzaXRlOiBbJ3RyYWl0cy53ZWJzaXRlJywgJ2NvbnRleHQudHJhaXRzLndlYnNpdGUnLCAncHJvcGVydGllcy53ZWJzaXRlJ10sXG4gIEdBcGFnZVVybDogWydwcm9wZXJ0aWVzLnVybCcsICdjb250ZXh0LnBhZ2UudXJsJ10sXG4gIEdBcGFnZVJlZjogWydwcm9wZXJ0aWVzLnJlZmVycmVyJywgJ2NvbnRleHQucGFnZS5yZWZlcnJlciddLFxuICBHQXBhZ2VUaXRsZTogWydwcm9wZXJ0aWVzLnRpdGxlJywgJ2NvbnRleHQucGFnZS50aXRsZSddLFxuICBHQXBhZ2VTZWFyY2g6IFsncHJvcGVydGllcy5zZWFyY2gnLCAnY29udGV4dC5wYWdlLnNlYXJjaCddLFxuICBiaXJ0aGRheTogW1xuICAgICd0cmFpdHMuYmlydGhkYXknLFxuICAgICdjb250ZXh0LnRyYWl0cy5iaXJ0aGRheScsXG4gICAgJ3RyYWl0cy5kYXRlT2ZCaXJ0aCcsXG4gICAgJ2NvbnRleHQudHJhaXRzLmRhdGVPZkJpcnRoJyxcbiAgICAndHJhaXRzLmRhdGVvZmJpcnRoJyxcbiAgICAnY29udGV4dC5kYXRlb2ZiaXJ0aCcsXG4gICAgJ3RyYWl0cy5kb2InLFxuICAgICdjb250ZXh0LnRyYWl0cy5kb2InLFxuICAgICd0cmFpdHMuRE9CJyxcbiAgICAnY29udGV4dC50cmFpdHMuRE9CJyxcbiAgXSxcblxuICBzdGF0ZTogWyd0cmFpdHMuc3RhdGUnLCAnY29udGV4dC50cmFpdHMuc3RhdGUnXSxcbiAgY291bnRyeTogWyd0cmFpdHMuY291bnRyeScsICdjb250ZXh0LnRyYWl0cy5jb3VudHJ5J10sXG4gIHJlZ2lvbjogWyd0cmFpdHMucmVnaW9uJywgJ2NvbnRleHQudHJhaXRzLnJlZ2lvbiddLFxuICBjaXR5OiBbJ3RyYWl0cy5hZGRyZXNzLmNpdHknLCAnY29udGV4dC50cmFpdHMuYWRkcmVzcy5jaXR5J10sXG5cbiAgYXZhdGFyOiBbXG4gICAgJ3RyYWl0cy5hdmF0YXInLFxuICAgICdjb250ZXh0LnRyYWl0cy5hdmF0YXInLFxuICAgICd0cmFpdHMuYXZhdGFyVVJMJyxcbiAgICAnY29udGV4dC50cmFpdHMuYXZhdGFyVVJMJyxcbiAgICAndHJhaXRzLmF2YXRhcl9VUkwnLFxuICAgICdjb250ZXh0LnRyYWl0cy5hdmF0YXJfVVJMJyxcbiAgXSxcbiAgemlwY29kZTogW1xuICAgICd0cmFpdHMuemlwJyxcbiAgICAndHJhaXRzLnppcGNvZGUnLFxuICAgICd0cmFpdHMuemlwX2NvZGUnLFxuICAgICd0cmFpdHMuemlwQ29kZScsXG4gICAgJ3RyYWl0cy5wb3N0YWxjb2RlJyxcbiAgICAndHJhaXRzLnBvc3RhbF9jb2RlJyxcbiAgICAndHJhaXRzLnBvc3RhbENvZGUnLFxuICAgICd0cmFpdHMuYWRkcmVzcy56aXBjb2RlJyxcbiAgICAndHJhaXRzLmFkZHJlc3MuemlwX2NvZGUnLFxuICAgICd0cmFpdHMuYWRkcmVzcy56aXAnLFxuICAgICd0cmFpdHMuYWRkcmVzcy56aXBDb2RlJyxcbiAgICAndHJhaXRzLmFkZHJlc3MucG9zdGFsY29kZScsXG4gICAgJ3RyYWl0cy5hZGRyZXNzLnBvc3RhbF9jb2RlJyxcbiAgICAndHJhaXRzLmFkZHJlc3MucG9zdGFsQ29kZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLnppcCcsXG4gICAgJ2NvbnRleHQudHJhaXRzLnppcGNvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy56aXBfY29kZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLnppcENvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5wb3N0YWxjb2RlJyxcbiAgICAnY29udGV4dC50cmFpdHMucG9zdGFsX2NvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5wb3N0YWxDb2RlJyxcbiAgICAnY29udGV4dC50cmFpdHMuYWRkcmVzcy56aXAnLFxuICAgICdjb250ZXh0LnRyYWl0cy5hZGRyZXNzLnppcGNvZGUnLFxuICAgICdjb250ZXh0LnRyYWl0cy5hZGRyZXNzLnppcF9jb2RlJyxcbiAgICAnY29udGV4dC50cmFpdHMuYWRkcmVzcy56aXBDb2RlJyxcbiAgICAnY29udGV4dC50cmFpdHMuYWRkcmVzcy5wb3N0YWxjb2RlJyxcbiAgICAnY29udGV4dC50cmFpdHMuYWRkcmVzcy5wb3N0YWxfY29kZScsXG4gICAgJ2NvbnRleHQudHJhaXRzLmFkZHJlc3MucG9zdGFsQ29kZScsXG4gIF0sXG4gIHNlc3Npb25JZDogWydzZXNzaW9uX2lkJywgJ2NvbnRleHQuc2Vzc2lvbklkJ10sXG59O1xuXG5leHBvcnQgY29uc3QgTWFwcGVkVG9EZXN0aW5hdGlvbktleSA9ICdjb250ZXh0Lm1hcHBlZFRvRGVzdGluYXRpb24nO1xuXG5leHBvcnQgY29uc3QgR0VORVJJQ19UUlVFX1ZBTFVFUyA9IFsndHJ1ZScsICdUcnVlJywgJ1RSVUUnLCAndCcsICdUJywgJzEnXTtcbmV4cG9ydCBjb25zdCBHRU5FUklDX0ZBTFNFX1ZBTFVFUyA9IFsnZmFsc2UnLCAnRmFsc2UnLCAnRkFMU0UnLCAnZicsICdGJywgJzAnXTsiXX0=
|
package/build/utils/sem.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RudderStackEvent } from '../types';
|
|
1
|
+
import { ExternalId, RudderStackEvent } from '../types';
|
|
2
2
|
export declare class SemanticUtil {
|
|
3
3
|
/**
|
|
4
4
|
* Retrieves the `integrations` object for a specific destination in a given `RudderStackEvent` message.
|
|
@@ -25,5 +25,25 @@ export declare class SemanticUtil {
|
|
|
25
25
|
* @returns {unknown} - The destination-specific external ID, or null if not found.
|
|
26
26
|
*/
|
|
27
27
|
static getDestinationExternalID(message: RudderStackEvent, type: string): unknown;
|
|
28
|
+
/**
|
|
29
|
+
* Retrieves destination-specific external ID information from a given RudderStackEvent message.
|
|
30
|
+
*
|
|
31
|
+
* @param message - The message object containing the external ID.
|
|
32
|
+
* @param destinationName - The name of the destination for which to retrieve the external ID information.
|
|
33
|
+
* @returns An object containing the destination-specific external ID, the object type, and the identifier type.
|
|
34
|
+
*/
|
|
35
|
+
static getDestinationExternalIDInfoForRetl(message: RudderStackEvent, destinationName: string): {
|
|
36
|
+
destinationExternalId: unknown | null;
|
|
37
|
+
objectType: string | null;
|
|
38
|
+
identifierType: string | null;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Retrieves a destination-specific external ID object from a given RudderStackEvent message.
|
|
42
|
+
*
|
|
43
|
+
* @param message - The message object containing the external ID.
|
|
44
|
+
* @param destinationName - The name of the destination for which to retrieve the external ID object.
|
|
45
|
+
* @returns The destination-specific external ID object if found, or undefined if not found.
|
|
46
|
+
*/
|
|
47
|
+
static getDestinationExternalIDObjectForRetl(message: RudderStackEvent, destinationName: string): ExternalId | undefined;
|
|
28
48
|
}
|
|
29
49
|
//# sourceMappingURL=sem.d.ts.map
|
package/build/utils/sem.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sem.d.ts","sourceRoot":"","sources":["../../src/utils/sem.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"sem.d.ts","sourceRoot":"","sources":["../../src/utils/sem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAwIrE,qBAAa,YAAY;IACvB;;;;;OAKG;WACW,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,GAAE,MAAW;IAoBjF;;;;;;;;;;;;;;;;OAgBG;WACW,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAaxF;;;;;;OAMG;WACW,mCAAmC,CAC/C,OAAO,EAAE,gBAAgB,EACzB,eAAe,EAAE,MAAM,GACtB;QACD,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;QACtC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B;IAuBD;;;;;;OAMG;WACW,qCAAqC,CACjD,OAAO,EAAE,gBAAgB,EACzB,eAAe,EAAE,MAAM,GACtB,UAAU,GAAG,SAAS;CAkB1B"}
|
package/build/utils/sem.js
CHANGED
|
@@ -191,6 +191,57 @@ class SemanticUtil {
|
|
|
191
191
|
}
|
|
192
192
|
return externalIdObj.id;
|
|
193
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Retrieves destination-specific external ID information from a given RudderStackEvent message.
|
|
196
|
+
*
|
|
197
|
+
* @param message - The message object containing the external ID.
|
|
198
|
+
* @param destinationName - The name of the destination for which to retrieve the external ID information.
|
|
199
|
+
* @returns An object containing the destination-specific external ID, the object type, and the identifier type.
|
|
200
|
+
*/
|
|
201
|
+
static getDestinationExternalIDInfoForRetl(message, destinationName) {
|
|
202
|
+
let externalIdArray = [];
|
|
203
|
+
let destinationExternalId = null;
|
|
204
|
+
let identifierType = null;
|
|
205
|
+
let objectType = null;
|
|
206
|
+
if (message.context?.externalId) {
|
|
207
|
+
externalIdArray = message.context.externalId;
|
|
208
|
+
}
|
|
209
|
+
if (Array.isArray(externalIdArray)) {
|
|
210
|
+
externalIdArray.forEach((extIdObj) => {
|
|
211
|
+
const { type, id } = extIdObj;
|
|
212
|
+
if (type.includes(`${destinationName}-`)) {
|
|
213
|
+
destinationExternalId = id ?? null;
|
|
214
|
+
objectType = type.replace(`${destinationName}-`, '') ?? null;
|
|
215
|
+
identifierType = extIdObj.identifierType ?? null;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
return { destinationExternalId, objectType, identifierType };
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Retrieves a destination-specific external ID object from a given RudderStackEvent message.
|
|
223
|
+
*
|
|
224
|
+
* @param message - The message object containing the external ID.
|
|
225
|
+
* @param destinationName - The name of the destination for which to retrieve the external ID object.
|
|
226
|
+
* @returns The destination-specific external ID object if found, or undefined if not found.
|
|
227
|
+
*/
|
|
228
|
+
static getDestinationExternalIDObjectForRetl(message, destinationName) {
|
|
229
|
+
const { externalId } = message.context || {};
|
|
230
|
+
const externalIdArray = externalId ?? [];
|
|
231
|
+
let obj;
|
|
232
|
+
if (externalIdArray.length > 0) {
|
|
233
|
+
// some stops the execution when the element is found
|
|
234
|
+
externalIdArray.some((extIdObj) => {
|
|
235
|
+
const { type } = extIdObj;
|
|
236
|
+
if (type.includes(`${destinationName}-`)) {
|
|
237
|
+
obj = extIdObj;
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
return false;
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
return obj;
|
|
244
|
+
}
|
|
194
245
|
}
|
|
195
246
|
exports.SemanticUtil = SemanticUtil;
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxtQ0FBaUM7QUFDakMsMERBQTRCO0FBRTVCLE1BQU0sMkJBQTJCLEdBQWdDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFVBQVU7UUFDVixVQUFVO1FBQ1YsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixVQUFVO1FBQ1YsZ0JBQWdCO0tBQ2pCO0lBQ0QsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDMUMsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDOUMsY0FBYyxFQUFFO1FBQ2QsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixlQUFlO0tBQ2hCO0lBQ0QsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkYsYUFBYSxFQUFFO1FBQ2IsZUFBZTtRQUNmLGVBQWU7UUFDZixlQUFlO1FBQ2YsZUFBZTtRQUNmLGNBQWM7UUFDZCxjQUFjO0tBQ2Y7SUFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDckQsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDbEQsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDdEMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JELEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2xDLGVBQWUsRUFBRSxDQUFDLGlC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QUFBLG1CQUFHLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixhQUFhLEVBQUUsQ0FBQyxDQUFDO2lCQUN0RDtnQkFDRCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVULElBQUksT0FBTyxFQUFFO2dCQUNYLE9BQU8sT0FBTyxDQUFDO2FBQ2hCO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNJLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxPQUF5QixFQUFFLElBQVk7UUFDNUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUM1QixNQUFNLGVBQWUsR0FBRyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLGFBQXFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xDLGFBQWEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQXhERCxvQ0F3REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeHRlcm5hbElkLCBSdWRkZXJTdGFja0V2ZW50IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgZ2V0IGZyb20gJ2dldC12YWx1ZSc7XG5cbmNvbnN0IElOVEVHUkFUSU9OX0NBTk9OSUNBTF9OQU1FUzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge1xuICBmYl9waXhlbDogW1xuICAgICdmYl9waXhlbCcsXG4gICAgJ2ZiIHBpeGVsJyxcbiAgICAnRmFjZWJvb2tQaXhlbCcsXG4gICAgJ0ZhY2Vib29rIFBpeGVsJyxcbiAgICAnRkIgUGl4ZWwnLFxuICAgICdGYWNlYm9va19QaXhlbCcsXG4gIF0sXG4gIG9tZXRyaWE6IFsnT21ldHJpYScsICdvbWV0cmlhJywgJ09NRVRSSUEnXSxcbiAgc2VuZGdyaWQ6IFsnc2VuZGdyaWQnLCAnU2VuZGdyaWQnLCAnU0VOREdSSUQnXSxcbiAgZGNtX2Zsb29kbGlnaHQ6IFtcbiAgICAnZGNtIGZsb29kbGlnaHQnLFxuICAgICdkY21fZmxvb2RsaWdodCcsXG4gICAgJ0RDTSBGbG9vZGxpZ2h0JyxcbiAgICAnRENNX0Zsb29kbGlnaHQnLFxuICAgICdEQ01GbG9vZGxpZ2h0JyxcbiAgICAnZGNtZmxvb2RsaWdodCcsXG4gIF0sXG4gIG5ld19yZWxpYzogWyduZXcgcmVsaWMnLCAnbmV3X3JlbGljJywgJ05ldyBSZWxpYycsICdOZXdfUmVsaWMnLCAnTmV3UmVsaWMnLCAnbmV3cmVsaWMnXSxcbiAgYXR0ZW50aXZlX3RhZzogW1xuICAgICdhdHRlbnRpdmUgdGFnJyxcbiAgICAnYXR0ZW50aXZlX3RhZycsXG4gICAgJ0F0dGVudGl2ZSBUYWcnLFxuICAgICdBdHRlbnRpdmVfVGFnJyxcbiAgICAnQXR0ZW50aXZlVGFnJyxcbiAgICAnYXR0ZW50aXZldGFnJyxcbiAgXSxcbiAgd2ViaG9vazogWyd3ZWJob29rJywgJ1dlYmhvb2snLCAnV2ViSG9vaycsICdXRUJIT09LJ10sXG4gIG1haWxjaGltcDogWydtYWlsY2hpbXAnLCAnTWFpbENoaW1wJywgJ01BSUxDSElNUCddLFxuICBtYXV0aWM6IFsnTUFVVElDJywgJ21hdXRpYycsICdNYXV0aWMnXSxcbiAgbWFpbGpldDogWydNQUlMSkVUJywgJ01haWxKZXQnLCAnbWFpbGpldCcsICdNYWlsamV0J10sXG4gIGthZmthOiBbJ0tBRktBJywgJ2thZmthJywgJ0thZmthJ10sXG4gIGF6dXJlX2V2ZW50X2h1YjogWydBWlVSRV9FVkVOVF9IVUInLCAnYXp1cmVfZXZlbnRfaHViJywgJ0F6dXJlRXZlbnRIdWInXSxcbiAgY29uZmx1ZW50X2Nsb3VkOiBbJ0NPTkZMVUVOVF9DTE9VRCcsICdjb25mbHVlbnRfY2xvdWQnLCAnQ29uZmx1ZW50Q2xvdWQnXSxcbiAgdmVybzogWyd2ZXJvJywgJ1Zlcm8nLCAnVkVSTyddLFxuICBwaW50ZXJlc3Q6IFsncGludGVyZXN0JywgJ1BpbnRlcmVzdCcsICdQSU5URVJFU1QnLCAncGludGVyZXN0Q29udmVyc2lvbiddLFxuICByb2NrZXJib3g6IFsncm9ja2VyYm94JywgJ1JPQ0tFUkJPWCcsICdSb2NrZXJib3gnLCAnUm9ja2VyQm94JywgJ3JvY2tlckJveCddLFxuICBjYW5ueTogWydjYW5ueScsICdDYW5ueScsICdDQU5OWSddLFxuICBvbmVfc2lnbmFsOiBbJ29uZSBzaWduYWwnLCAnb25lX3NpZ25hbCcsICdPbmUgU2lnbmFsJywgJ09uZV9TaWduYWwnLCAnT25lU2lnbmFsJywgJ29uZXNpZ25hbCddLFxuICB3b290cmljOiBbJ3dvb3RyaWMnLCAnV29vdHJpYycsICdXT09UUklDJ10sXG4gIGNsaWNrdXA6IFsnQ2xpY2tVcCcsICdjbGlja3VwJywgJ0NMSUNLVVAnLCAnY2xpY2tVcCcsICdDbGlja3VwJ10sXG4gIHphcGllcjogWyd6YXBpZXInLCAnWmFwaWVyJywgJ1pBUElFUiddLFxuICBzaHluZXQ6IFsnc2h5bmV0JywgJ1NIWU5FVCcsICdzaHlOZXQnLCAnU2h5TmV0J10sXG4gIHdvb3ByYTogWydXT09QUkEnLCAnV29vcHJhJywgJ3dvb3ByYSddLFxuICBtb25kYXk6IFsnbW9uZGF5JywgJ01PTkRBWScsICdtb25EYXknLCAnTW9uRGF5J10sXG4gIG1haWxtb2RvOiBbXG4gICAgJ21haWwgbW9kbycsXG4gICAgJ21haWxfbW9kbycsXG4gICAgJ01haWwgTW9kbycsXG4gICAgJ01haWxfTW9kbycsXG4gICAgJ01haWxNb2RvJyxcbiAgICAnbWFpbG1vZG8nLFxuICAgICdNQUlMTU9ETycsXG4gICAgJ21haWxNb2RvJyxcbiAgXSxcbiAgdXNlcjogWyd1c2VyJywgJ1VTRVInLCAnVXNlcicsICdVc2VyLmNvbScsICd1c2VyLmNvbScsICdVU0VSLmNvbSddLFxuICBlbmdhZ2U6IFsnZW5nYWdlJywgJ0VuZ2FnZScsICdFTkdBR0UnXSxcbiAganVuZTogWydqdW5lJywgJ0pVTkUnLCAnSnVuZSddLFxuICBmYWN0b3JzYWk6IFsnRkFDVE9SU0FJJywgJ2ZhY3RvcnNBSScsICdGYWN0b3JzQWknLCAnZmFjdG9yc0FpJ10sXG4gIHNuYXBjaGF0X2N1c3RvbV9hdWRpZW5jZTogW1xuICAgICdzbmFwY2hhdCBjdXN0b20gYXVkaWVuY2UnLFxuICAgICdzbmFwIGNoYXQgY3VzdG9tIGF1ZGllbmNlJyxcbiAgICAnc25hcGNoYXRfY3VzdG9tX2F1ZGllbmNlJyxcbiAgICAnc25hcGNoYXRDdXN0b21BdWRpZW5jZScsXG4gICAgJ1NuYXBjaGF0IEN1c3RvbSBBdWRpZW5jZScsXG4gICAgJ3NuYXBjaGF0Y3VzdG9tYXVkaWVuY2UnLFxuICAgICdTTkFQQ0hBVCBDVVNUT00gQVVESUVOQ0UnLFxuICAgICdTTkFQQ0hBVF9DVVNUT01fQVVESUVOQ0UnLFxuICAgICdTTkFQQ0hBVENVU1RPTUFVRElFTkNFJyxcbiAgXSxcbiAgQ0FNUEFJR05fTUFOQUdFUjogW1xuICAgICdjYW1wYWlnbiBtYW5hZ2VyJyxcbiAgICAnY2FtcGFpbiBNYW5hZ2VyJyxcbiAgICAnQ0FNUEFJR04gTUFOQUdFUicsXG4gICAgJ2NhbXBhaWduTWFuYWdlcicsXG4gICAgJ2NhbXBhaWduX21hbmFnZXInLFxuICAgICdDQU1QQUlHTl9NQU5BR0VSJyxcbiAgXSxcbiAgZ2FpbnNpZ2h0X3B4OiBbXG4gICAgJ0dBSU5TSUdIVF9QWCcsXG4gICAgJ0dBSU5TSUdIVFBYJyxcbiAgICAnZ2FpbnNpZ2h0UHgnLFxuICAgICdHYWluc2lnaHQgUFgnLFxuICAgICdnYWluc2lnaHQgcHgnLFxuICAgICdHYWluc2lnaHQgUHgnLFxuICBdLFxuICBhd2luOiBbJ2F3aW4nLCAnQXdpbicsICdBV0lOJ10sXG4gIHNlbmRpbmJsdWU6IFsnc2VuZGluYmx1ZScsICdTRU5ESU5CTFVFJywgJ1NlbmRpbmJsdWUnLCAnU2VuZGluQmx1ZSddLFxuICBnYTQ6IFsnR0E0JywgJ2dhNCcsICdHYTQnLCAnR29vZ2xlIEFuYWx5dGljcyA0JywgJ2dvb2dsZUFuYWx5dGljczQnXSxcbiAgcGlwZWRyZWFtOiBbJ1BpcGVkcmVhbScsICdQaXBlRHJlYW0nLCAncGlwZWRyZWFtJywgJ1BJUEVEUkVBTSddLFxuICBwYWdlcmR1dHk6IFsncGFnZXJkdXR5JywgJ1BBR0VSRFVUWScsICdQYWdlckR1dHknLCAnUGFnZXJkdXR5JywgJ3BhZ2VyRHV0eSddLFxuICBhZG9iZV9hbmFseXRpY3M6IFtcbiAgICAnYWRvYmVfYW5hbHl0aWNzJyxcbiAgICAnQURPQkVfQU5BTFlUSUNTJyxcbiAgICAnYWRvYmUgYW5hbHl0aWNzJyxcbiAgICAnYWRvYmVBbmFseXRpY3MnLFxuICAgICdBZG9iZSBBbmFseXRpY3MnLFxuICAgICdhZG9iZWFuYWx5dGljcycsXG4gICAgJ0FET0JFIEFOQUxZVElDUycsXG4gICAgJ0FET0JFQU5BTFlUSUNTJyxcbiAgXSxcbiAgY3JpdGVvX2F1ZGllbmNlOiBbXG4gICAgJ2NyaXRlbyBhdWRpZW5jZScsXG4gICAgJ2NyaXRlb0F1ZGllbmNlJyxcbiAgICAnQ3JpdGVvIEF1ZGllbmNlJyxcbiAgICAnY3JpdGVvYXVkaWVuY2UnLFxuICAgICdDUklURU8gQVVESUVOQ0UnLFxuICAgICdDUklURU9fQVVESUVOQ0UnLFxuICAgICdDUklURU9BVURJRU5DRScsXG4gIF0sXG4gIG9wdGltaXplbHlfZnVsbHN0YWNrOiBbXG4gICAgJ09wdGltaXplbHkgRnVsbHN0YWNrJyxcbiAgICAnT1BUSU1JWkVMWSBGVUxMU1RBQ0snLFxuICAgICdvcHRpbWl6ZWx5IGZ1bGxzdGFjaycsXG4gICAgJ09wdGltaXplbHlGdWxsc3RhY2snLFxuICAgICdPcHRpbWl6ZWx5X0Z1bGxzdGFjaycsXG4gICAgJ29wdGltaXplbHlfZnVsbHN0YWNrJyxcbiAgXSxcbiAgdml0YWxseTogWyd2aXRhbGx5JywgJ1ZpdGFsbHknLCAnVklUQUxMWSddLFxuICBjb3VyaWVyOiBbJ0NvdXJpZXInLCAnY291cmllcicsICdDT1VSSUVSJ10sXG4gIFRXSVRURVJfQURTOiBbXG4gICAgJ3R3aXR0ZXIgYWRzJyxcbiAgICAndHdpdHRlciBNYW5hZ2VyJyxcbiAgICAnVFdJVFRFUiBBRFMnLFxuICAgICd0d2l0dGVyQURTJyxcbiAgICAndHdpdHRlcl9hZHMnLFxuICAgICdUV0lUVEVSX0FEUycsXG4gIF0sXG4gIEJSQVpFOiBbJ0JSQVpFJywgJ0JyYXplJywgJ2JyYXplJ10sXG59O1xuXG5leHBvcnQgY2xhc3MgU2VtYW50aWNVdGlsIHtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYGludGVncmF0aW9uc2Agb2JqZWN0IGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGluIGEgZ2l2ZW4gYFJ1ZGRlclN0YWNrRXZlbnRgIG1lc3NhZ2UuXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIFJ1ZGRlclN0YWNrRXZlbnQgbWVzc2FnZSBvYmplY3QuXG4gICAqIEBwYXJhbSBpbnRnTmFtZSAtIFRoZSBkZXN0aW5hdGlvbiBuYW1lLlxuICAgKiBAcmV0dXJucyBUaGUgYGludGVncmF0aW9uc2Agb2JqZWN0IGZvciB0aGUgc3BlY2lmaWVkIGRlc3RpbmF0aW9uLCBvciBudWxsIGlmIG5vdCBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2U6IFJ1ZGRlclN0YWNrRXZlbnQsIGludGdOYW1lOiBzdHJpbmcgPSAnJykge1xuICAgIGlmICghaXNFbXB0eShpbnRnTmFtZSkpIHtcbiAgICAgIGNvbnN0IGludGdDYW5vbmljYWxOYW1lcyA9IElOVEVHUkFUSU9OX0NBTk9OSUNBTF9OQU1FU1tpbnRnTmFtZV07XG4gICAgICBpZiAoIWludGdDYW5vbmljYWxOYW1lcykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGludGdPYmogPSBpbnRnQ2Fub25pY2FsTmFtZXMucmVkdWNlKChhY2MsIGNhbm9uaWNhbE5hbWUpID0+IHtcbiAgICAgICAgaWYgKGdldChtZXNzYWdlLCBgaW50ZWdyYXRpb25zLiR7Y2Fub25pY2FsTmFtZX1gKSkge1xuICAgICAgICAgIHJldHVybiBnZXQobWVzc2FnZSwgYGludGVncmF0aW9ucy4ke2Nhbm9uaWNhbE5hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIG51bGwpO1xuXG4gICAgICBpZiAoaW50Z09iaikge1xuICAgICAgICByZXR1cm4gaW50Z09iajtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgZnJvbSBhIGdpdmVuICptZXNzYWdlIG9iamVjdC5cbiAgICoge1xuICAgKiAgICBcImNvbnRleHRcIjoge1xuICAgKiAgICAgIFwiZXh0ZXJuYWxJZFwiOiBbXG4gICAqICAgICAgICB7XG4gICAqICAgICAgICAgIFwidHlwZVwiOiBcImt1c3RvbWVySWRcIixcbiAgICogICAgICAgICAgXCJpZFwiOiBcIjEyMzQ1Njc4XCJcbiAgICogICAgICAgIH1cbiAgICogICAgICBdXG4gICAqICAgIH1cbiAgICogfVxuICAgKlxuICAgKiBAcGFyYW0ge1J1ZGRlclN0YWNrRXZlbnR9IG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyB0aGUgZXh0ZXJuYWwgSUQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIC0gVGhlIHR5cGUgb2YgdGhlIGV4dGVybmFsIElEIHRvIHJldHJpZXZlLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn0gLSBUaGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQsIG9yIG51bGwgaWYgbm90IGZvdW5kLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZTogUnVkZGVyU3RhY2tFdmVudCwgdHlwZTogc3RyaW5nKTogdW5rbm93biB7XG4gICAgY29uc3QgeyBjb250ZXh0IH0gPSBtZXNzYWdlO1xuICAgIGNvbnN0IGV4dGVybmFsSWRBcnJheSA9IGNvbnRleHQ/LmV4dGVybmFsSWQgPz8gW107XG4gICAgbGV0IGV4dGVybmFsSWRPYmo6IEV4dGVybmFsSWQgfCB1bmRlZmluZWQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXh0ZXJuYWxJZEFycmF5KSkge1xuICAgICAgZXh0ZXJuYWxJZE9iaiA9IGV4dGVybmFsSWRBcnJheS5maW5kKChleHRJZE9iaikgPT4gZXh0SWRPYmo/LnR5cGUgPT09IHR5cGUpO1xuICAgIH1cbiAgICBpZiAoIWV4dGVybmFsSWRPYmopIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gZXh0ZXJuYWxJZE9iai5pZDtcbiAgfVxufVxuIl19
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxtQ0FBaUM7QUFDakMsMERBQTRCO0FBRTVCLE1BQU0sMkJBQTJCLEdBQWdDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFVBQVU7UUFDVixVQUFVO1FBQ1YsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixVQUFVO1FBQ1YsZ0JBQWdCO0tBQ2pCO0lBQ0QsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDMUMsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDOUMsY0FBYyxFQUFFO1FBQ2QsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixlQUFlO0tBQ2hCO0lBQ0QsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkYsYUFBYSxFQUFFO1FBQ2IsZUFBZTtRQUNmLGVBQWU7UUFDZixlQUFlO1FBQ2YsZUFBZTtRQUNmLGNBQWM7UUFDZCxjQUFjO0tBQ2Y7SUFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDckQsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDbEQsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDdEMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JELEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2xDLGVBQWUsRUFBRSxDQUFDLGlC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Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUExSEQsb0NBMEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdGluYXRpb24sIEV4dGVybmFsSWQsIFJ1ZGRlclN0YWNrRXZlbnQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBnZXQgZnJvbSAnZ2V0LXZhbHVlJztcblxuY29uc3QgSU5URUdSQVRJT05fQ0FOT05JQ0FMX05BTUVTOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7XG4gIGZiX3BpeGVsOiBbXG4gICAgJ2ZiX3BpeGVsJyxcbiAgICAnZmIgcGl4ZWwnLFxuICAgICdGYWNlYm9va1BpeGVsJyxcbiAgICAnRmFjZWJvb2sgUGl4ZWwnLFxuICAgICdGQiBQaXhlbCcsXG4gICAgJ0ZhY2Vib29rX1BpeGVsJyxcbiAgXSxcbiAgb21ldHJpYTogWydPbWV0cmlhJywgJ29tZXRyaWEnLCAnT01FVFJJQSddLFxuICBzZW5kZ3JpZDogWydzZW5kZ3JpZCcsICdTZW5kZ3JpZCcsICdTRU5ER1JJRCddLFxuICBkY21fZmxvb2RsaWdodDogW1xuICAgICdkY20gZmxvb2RsaWdodCcsXG4gICAgJ2RjbV9mbG9vZGxpZ2h0JyxcbiAgICAnRENNIEZsb29kbGlnaHQnLFxuICAgICdEQ01fRmxvb2RsaWdodCcsXG4gICAgJ0RDTUZsb29kbGlnaHQnLFxuICAgICdkY21mbG9vZGxpZ2h0JyxcbiAgXSxcbiAgbmV3X3JlbGljOiBbJ25ldyByZWxpYycsICduZXdfcmVsaWMnLCAnTmV3IFJlbGljJywgJ05ld19SZWxpYycsICdOZXdSZWxpYycsICduZXdyZWxpYyddLFxuICBhdHRlbnRpdmVfdGFnOiBbXG4gICAgJ2F0dGVudGl2ZSB0YWcnLFxuICAgICdhdHRlbnRpdmVfdGFnJyxcbiAgICAnQXR0ZW50aXZlIFRhZycsXG4gICAgJ0F0dGVudGl2ZV9UYWcnLFxuICAgICdBdHRlbnRpdmVUYWcnLFxuICAgICdhdHRlbnRpdmV0YWcnLFxuICBdLFxuICB3ZWJob29rOiBbJ3dlYmhvb2snLCAnV2ViaG9vaycsICdXZWJIb29rJywgJ1dFQkhPT0snXSxcbiAgbWFpbGNoaW1wOiBbJ21haWxjaGltcCcsICdNYWlsQ2hpbXAnLCAnTUFJTENISU1QJ10sXG4gIG1hdXRpYzogWydNQVVUSUMnLCAnbWF1dGljJywgJ01hdXRpYyddLFxuICBtYWlsamV0OiBbJ01BSUxKRVQnLCAnTWFpbEpldCcsICdtYWlsamV0JywgJ01haWxqZXQnXSxcbiAga2Fma2E6IFsnS0FGS0EnLCAna2Fma2EnLCAnS2Fma2EnXSxcbiAgYXp1cmVfZXZlbnRfaHViOiBbJ0FaVVJFX0VWRU5UX0hVQicsICdhenVyZV9ldmVudF9odWInLCAnQXp1cmVFdmVudEh1YiddLFxuICBjb25mbHVlbnRfY2xvdWQ6IFsnQ09ORkxVRU5UX0NMT1VEJywgJ2NvbmZsdWVudF9jbG91ZCcsICdDb25mbHVlbnRDbG91ZCddLFxuICB2ZXJvOiBbJ3Zlcm8nLCAnVmVybycsICdWRVJPJ10sXG4gIHBpbnRlcmVzdDogWydwaW50ZXJlc3QnLCAnUGludGVyZXN0JywgJ1BJTlRFUkVTVCcsICdwaW50ZXJlc3RDb252ZXJzaW9uJ10sXG4gIHJvY2tlcmJveDogWydyb2NrZXJib3gnLCAnUk9DS0VSQk9YJywgJ1JvY2tlcmJveCcsICdSb2NrZXJCb3gnLCAncm9ja2VyQm94J10sXG4gIGNhbm55OiBbJ2Nhbm55JywgJ0Nhbm55JywgJ0NBTk5ZJ10sXG4gIG9uZV9zaWduYWw6IFsnb25lIHNpZ25hbCcsICdvbmVfc2lnbmFsJywgJ09uZSBTaWduYWwnLCAnT25lX1NpZ25hbCcsICdPbmVTaWduYWwnLCAnb25lc2lnbmFsJ10sXG4gIHdvb3RyaWM6IFsnd29vdHJpYycsICdXb290cmljJywgJ1dPT1RSSUMnXSxcbiAgY2xpY2t1cDogWydDbGlja1VwJywgJ2NsaWNrdXAnLCAnQ0xJQ0tVUCcsICdjbGlja1VwJywgJ0NsaWNrdXAnXSxcbiAgemFwaWVyOiBbJ3phcGllcicsICdaYXBpZXInLCAnWkFQSUVSJ10sXG4gIHNoeW5ldDogWydzaHluZXQnLCAnU0hZTkVUJywgJ3NoeU5ldCcsICdTaHlOZXQnXSxcbiAgd29vcHJhOiBbJ1dPT1BSQScsICdXb29wcmEnLCAnd29vcHJhJ10sXG4gIG1vbmRheTogWydtb25kYXknLCAnTU9OREFZJywgJ21vbkRheScsICdNb25EYXknXSxcbiAgbWFpbG1vZG86IFtcbiAgICAnbWFpbCBtb2RvJyxcbiAgICAnbWFpbF9tb2RvJyxcbiAgICAnTWFpbCBNb2RvJyxcbiAgICAnTWFpbF9Nb2RvJyxcbiAgICAnTWFpbE1vZG8nLFxuICAgICdtYWlsbW9kbycsXG4gICAgJ01BSUxNT0RPJyxcbiAgICAnbWFpbE1vZG8nLFxuICBdLFxuICB1c2VyOiBbJ3VzZXInLCAnVVNFUicsICdVc2VyJywgJ1VzZXIuY29tJywgJ3VzZXIuY29tJywgJ1VTRVIuY29tJ10sXG4gIGVuZ2FnZTogWydlbmdhZ2UnLCAnRW5nYWdlJywgJ0VOR0FHRSddLFxuICBqdW5lOiBbJ2p1bmUnLCAnSlVORScsICdKdW5lJ10sXG4gIGZhY3RvcnNhaTogWydGQUNUT1JTQUknLCAnZmFjdG9yc0FJJywgJ0ZhY3RvcnNBaScsICdmYWN0b3JzQWknXSxcbiAgc25hcGNoYXRfY3VzdG9tX2F1ZGllbmNlOiBbXG4gICAgJ3NuYXBjaGF0IGN1c3RvbSBhdWRpZW5jZScsXG4gICAgJ3NuYXAgY2hhdCBjdXN0b20gYXVkaWVuY2UnLFxuICAgICdzbmFwY2hhdF9jdXN0b21fYXVkaWVuY2UnLFxuICAgICdzbmFwY2hhdEN1c3RvbUF1ZGllbmNlJyxcbiAgICAnU25hcGNoYXQgQ3VzdG9tIEF1ZGllbmNlJyxcbiAgICAnc25hcGNoYXRjdXN0b21hdWRpZW5jZScsXG4gICAgJ1NOQVBDSEFUIENVU1RPTSBBVURJRU5DRScsXG4gICAgJ1NOQVBDSEFUX0NVU1RPTV9BVURJRU5DRScsXG4gICAgJ1NOQVBDSEFUQ1VTVE9NQVVESUVOQ0UnLFxuICBdLFxuICBDQU1QQUlHTl9NQU5BR0VSOiBbXG4gICAgJ2NhbXBhaWduIG1hbmFnZXInLFxuICAgICdjYW1wYWluIE1hbmFnZXInLFxuICAgICdDQU1QQUlHTiBNQU5BR0VSJyxcbiAgICAnY2FtcGFpZ25NYW5hZ2VyJyxcbiAgICAnY2FtcGFpZ25fbWFuYWdlcicsXG4gICAgJ0NBTVBBSUdOX01BTkFHRVInLFxuICBdLFxuICBnYWluc2lnaHRfcHg6IFtcbiAgICAnR0FJTlNJR0hUX1BYJyxcbiAgICAnR0FJTlNJR0hUUFgnLFxuICAgICdnYWluc2lnaHRQeCcsXG4gICAgJ0dhaW5zaWdodCBQWCcsXG4gICAgJ2dhaW5zaWdodCBweCcsXG4gICAgJ0dhaW5zaWdodCBQeCcsXG4gIF0sXG4gIGF3aW46IFsnYXdpbicsICdBd2luJywgJ0FXSU4nXSxcbiAgc2VuZGluYmx1ZTogWydzZW5kaW5ibHVlJywgJ1NFTkRJTkJMVUUnLCAnU2VuZGluYmx1ZScsICdTZW5kaW5CbHVlJ10sXG4gIGdhNDogWydHQTQnLCAnZ2E0JywgJ0dhNCcsICdHb29nbGUgQW5hbHl0aWNzIDQnLCAnZ29vZ2xlQW5hbHl0aWNzNCddLFxuICBwaXBlZHJlYW06IFsnUGlwZWRyZWFtJywgJ1BpcGVEcmVhbScsICdwaXBlZHJlYW0nLCAnUElQRURSRUFNJ10sXG4gIHBhZ2VyZHV0eTogWydwYWdlcmR1dHknLCAnUEFHRVJEVVRZJywgJ1BhZ2VyRHV0eScsICdQYWdlcmR1dHknLCAncGFnZXJEdXR5J10sXG4gIGFkb2JlX2FuYWx5dGljczogW1xuICAgICdhZG9iZV9hbmFseXRpY3MnLFxuICAgICdBRE9CRV9BTkFMWVRJQ1MnLFxuICAgICdhZG9iZSBhbmFseXRpY3MnLFxuICAgICdhZG9iZUFuYWx5dGljcycsXG4gICAgJ0Fkb2JlIEFuYWx5dGljcycsXG4gICAgJ2Fkb2JlYW5hbHl0aWNzJyxcbiAgICAnQURPQkUgQU5BTFlUSUNTJyxcbiAgICAnQURPQkVBTkFMWVRJQ1MnLFxuICBdLFxuICBjcml0ZW9fYXVkaWVuY2U6IFtcbiAgICAnY3JpdGVvIGF1ZGllbmNlJyxcbiAgICAnY3JpdGVvQXVkaWVuY2UnLFxuICAgICdDcml0ZW8gQXVkaWVuY2UnLFxuICAgICdjcml0ZW9hdWRpZW5jZScsXG4gICAgJ0NSSVRFTyBBVURJRU5DRScsXG4gICAgJ0NSSVRFT19BVURJRU5DRScsXG4gICAgJ0NSSVRFT0FVRElFTkNFJyxcbiAgXSxcbiAgb3B0aW1pemVseV9mdWxsc3RhY2s6IFtcbiAgICAnT3B0aW1pemVseSBGdWxsc3RhY2snLFxuICAgICdPUFRJTUlaRUxZIEZVTExTVEFDSycsXG4gICAgJ29wdGltaXplbHkgZnVsbHN0YWNrJyxcbiAgICAnT3B0aW1pemVseUZ1bGxzdGFjaycsXG4gICAgJ09wdGltaXplbHlfRnVsbHN0YWNrJyxcbiAgICAnb3B0aW1pemVseV9mdWxsc3RhY2snLFxuICBdLFxuICB2aXRhbGx5OiBbJ3ZpdGFsbHknLCAnVml0YWxseScsICdWSVRBTExZJ10sXG4gIGNvdXJpZXI6IFsnQ291cmllcicsICdjb3VyaWVyJywgJ0NPVVJJRVInXSxcbiAgVFdJVFRFUl9BRFM6IFtcbiAgICAndHdpdHRlciBhZHMnLFxuICAgICd0d2l0dGVyIE1hbmFnZXInLFxuICAgICdUV0lUVEVSIEFEUycsXG4gICAgJ3R3aXR0ZXJBRFMnLFxuICAgICd0d2l0dGVyX2FkcycsXG4gICAgJ1RXSVRURVJfQURTJyxcbiAgXSxcbiAgQlJBWkU6IFsnQlJBWkUnLCAnQnJhemUnLCAnYnJhemUnXSxcbn07XG5cbmV4cG9ydCBjbGFzcyBTZW1hbnRpY1V0aWwge1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBgaW50ZWdyYXRpb25zYCBvYmplY3QgZm9yIGEgc3BlY2lmaWMgZGVzdGluYXRpb24gaW4gYSBnaXZlbiBgUnVkZGVyU3RhY2tFdmVudGAgbWVzc2FnZS5cbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgUnVkZGVyU3RhY2tFdmVudCBtZXNzYWdlIG9iamVjdC5cbiAgICogQHBhcmFtIGludGdOYW1lIC0gVGhlIGRlc3RpbmF0aW9uIG5hbWUuXG4gICAqIEByZXR1cm5zIFRoZSBgaW50ZWdyYXRpb25zYCBvYmplY3QgZm9yIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb24sIG9yIG51bGwgaWYgbm90IGZvdW5kLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRJbnRlZ3JhdGlvbnNPYmoobWVzc2FnZTogUnVkZGVyU3RhY2tFdmVudCwgaW50Z05hbWU6IHN0cmluZyA9ICcnKSB7XG4gICAgaWYgKCFpc0VtcHR5KGludGdOYW1lKSkge1xuICAgICAgY29uc3QgaW50Z0Nhbm9uaWNhbE5hbWVzID0gSU5URUdSQVRJT05fQ0FOT05JQ0FMX05BTUVTW2ludGdOYW1lXTtcbiAgICAgIGlmICghaW50Z0Nhbm9uaWNhbE5hbWVzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3QgaW50Z09iaiA9IGludGdDYW5vbmljYWxOYW1lcy5yZWR1Y2UoKGFjYywgY2Fub25pY2FsTmFtZSkgPT4ge1xuICAgICAgICBpZiAoZ2V0KG1lc3NhZ2UsIGBpbnRlZ3JhdGlvbnMuJHtjYW5vbmljYWxOYW1lfWApKSB7XG4gICAgICAgICAgcmV0dXJuIGdldChtZXNzYWdlLCBgaW50ZWdyYXRpb25zLiR7Y2Fub25pY2FsTmFtZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgbnVsbCk7XG5cbiAgICAgIGlmIChpbnRnT2JqKSB7XG4gICAgICAgIHJldHVybiBpbnRnT2JqO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBkZXN0aW5hdGlvbi1zcGVjaWZpYyBleHRlcm5hbCBJRCBmcm9tIGEgZ2l2ZW4gKm1lc3NhZ2Ugb2JqZWN0LlxuICAgKiB7XG4gICAqICAgIFwiY29udGV4dFwiOiB7XG4gICAqICAgICAgXCJleHRlcm5hbElkXCI6IFtcbiAgICogICAgICAgIHtcbiAgICogICAgICAgICAgXCJ0eXBlXCI6IFwia3VzdG9tZXJJZFwiLFxuICAgKiAgICAgICAgICBcImlkXCI6IFwiMTIzNDU2NzhcIlxuICAgKiAgICAgICAgfVxuICAgKiAgICAgIF1cbiAgICogICAgfVxuICAgKiB9XG4gICAqXG4gICAqIEBwYXJhbSB7UnVkZGVyU3RhY2tFdmVudH0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIG9iamVjdCBjb250YWluaW5nIHRoZSBleHRlcm5hbCBJRC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgLSBUaGUgdHlwZSBvZiB0aGUgZXh0ZXJuYWwgSUQgdG8gcmV0cmlldmUuXG4gICAqIEByZXR1cm5zIHt1bmtub3dufSAtIFRoZSBkZXN0aW5hdGlvbi1zcGVjaWZpYyBleHRlcm5hbCBJRCwgb3IgbnVsbCBpZiBub3QgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldERlc3RpbmF0aW9uRXh0ZXJuYWxJRChtZXNzYWdlOiBSdWRkZXJTdGFja0V2ZW50LCB0eXBlOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgICBjb25zdCB7IGNvbnRleHQgfSA9IG1lc3NhZ2U7XG4gICAgY29uc3QgZXh0ZXJuYWxJZEFycmF5ID0gY29udGV4dD8uZXh0ZXJuYWxJZCA/PyBbXTtcbiAgICBsZXQgZXh0ZXJuYWxJZE9iajogRXh0ZXJuYWxJZCB8IHVuZGVmaW5lZDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShleHRlcm5hbElkQXJyYXkpKSB7XG4gICAgICBleHRlcm5hbElkT2JqID0gZXh0ZXJuYWxJZEFycmF5LmZpbmQoKGV4dElkT2JqKSA9PiBleHRJZE9iaj8udHlwZSA9PT0gdHlwZSk7XG4gICAgfVxuICAgIGlmICghZXh0ZXJuYWxJZE9iaikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBleHRlcm5hbElkT2JqLmlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBleHRlcm5hbCBJRCBpbmZvcm1hdGlvbiBmcm9tIGEgZ2l2ZW4gUnVkZGVyU3RhY2tFdmVudCBtZXNzYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIG9iamVjdCBjb250YWluaW5nIHRoZSBleHRlcm5hbCBJRC5cbiAgICogQHBhcmFtIGRlc3RpbmF0aW9uTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBkZXN0aW5hdGlvbiBmb3Igd2hpY2ggdG8gcmV0cmlldmUgdGhlIGV4dGVybmFsIElEIGluZm9ybWF0aW9uLlxuICAgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQsIHRoZSBvYmplY3QgdHlwZSwgYW5kIHRoZSBpZGVudGlmaWVyIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldERlc3RpbmF0aW9uRXh0ZXJuYWxJREluZm9Gb3JSZXRsKFxuICAgIG1lc3NhZ2U6IFJ1ZGRlclN0YWNrRXZlbnQsXG4gICAgZGVzdGluYXRpb25OYW1lOiBzdHJpbmcsXG4gICk6IHtcbiAgICBkZXN0aW5hdGlvbkV4dGVybmFsSWQ6IHVua25vd24gfCBudWxsO1xuICAgIG9iamVjdFR5cGU6IHN0cmluZyB8IG51bGw7XG4gICAgaWRlbnRpZmllclR5cGU6IHN0cmluZyB8IG51bGw7XG4gIH0ge1xuICAgIGxldCBleHRlcm5hbElkQXJyYXk6IEV4dGVybmFsSWRbXSA9IFtdO1xuICAgIGxldCBkZXN0aW5hdGlvbkV4dGVybmFsSWQ6IHVua25vd24gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaWRlbnRpZmllclR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIGxldCBvYmplY3RUeXBlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIGlmIChtZXNzYWdlLmNvbnRleHQ/LmV4dGVybmFsSWQpIHtcbiAgICAgIGV4dGVybmFsSWRBcnJheSA9IG1lc3NhZ2UuY29udGV4dC5leHRlcm5hbElkO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGV4dGVybmFsSWRBcnJheSkpIHtcbiAgICAgIGV4dGVybmFsSWRBcnJheS5mb3JFYWNoKChleHRJZE9iaikgPT4ge1xuICAgICAgICBjb25zdCB7IHR5cGUsIGlkIH0gPSBleHRJZE9iajtcbiAgICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoYCR7ZGVzdGluYXRpb25OYW1lfS1gKSkge1xuICAgICAgICAgIGRlc3RpbmF0aW9uRXh0ZXJuYWxJZCA9IGlkID8/IG51bGw7XG4gICAgICAgICAgb2JqZWN0VHlwZSA9IHR5cGUucmVwbGFjZShgJHtkZXN0aW5hdGlvbk5hbWV9LWAsICcnKSA/PyBudWxsO1xuICAgICAgICAgIGlkZW50aWZpZXJUeXBlID0gZXh0SWRPYmouaWRlbnRpZmllclR5cGUgPz8gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7IGRlc3RpbmF0aW9uRXh0ZXJuYWxJZCwgb2JqZWN0VHlwZSwgaWRlbnRpZmllclR5cGUgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBkZXN0aW5hdGlvbi1zcGVjaWZpYyBleHRlcm5hbCBJRCBvYmplY3QgZnJvbSBhIGdpdmVuIFJ1ZGRlclN0YWNrRXZlbnQgbWVzc2FnZS5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyB0aGUgZXh0ZXJuYWwgSUQuXG4gICAqIEBwYXJhbSBkZXN0aW5hdGlvbk5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZGVzdGluYXRpb24gZm9yIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBleHRlcm5hbCBJRCBvYmplY3QuXG4gICAqIEByZXR1cm5zIFRoZSBkZXN0aW5hdGlvbi1zcGVjaWZpYyBleHRlcm5hbCBJRCBvYmplY3QgaWYgZm91bmQsIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldERlc3RpbmF0aW9uRXh0ZXJuYWxJRE9iamVjdEZvclJldGwoXG4gICAgbWVzc2FnZTogUnVkZGVyU3RhY2tFdmVudCxcbiAgICBkZXN0aW5hdGlvbk5hbWU6IHN0cmluZyxcbiAgKTogRXh0ZXJuYWxJZCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgeyBleHRlcm5hbElkIH0gPSBtZXNzYWdlLmNvbnRleHQgfHwge307XG4gICAgY29uc3QgZXh0ZXJuYWxJZEFycmF5ID0gZXh0ZXJuYWxJZCA/PyBbXTtcblxuICAgIGxldCBvYmo6IEV4dGVybmFsSWQgfCB1bmRlZmluZWQ7XG4gICAgaWYgKGV4dGVybmFsSWRBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBzb21lIHN0b3BzIHRoZSBleGVjdXRpb24gd2hlbiB0aGUgZWxlbWVudCBpcyBmb3VuZFxuICAgICAgZXh0ZXJuYWxJZEFycmF5LnNvbWUoKGV4dElkT2JqKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdHlwZSB9ID0gZXh0SWRPYmo7XG4gICAgICAgIGlmICh0eXBlLmluY2x1ZGVzKGAke2Rlc3RpbmF0aW9uTmFtZX0tYCkpIHtcbiAgICAgICAgICBvYmogPSBleHRJZE9iajtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"axiosClient.test.d.ts","sourceRoot":"","sources":["../../../src/network/clients/axiosClient.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,231 +0,0 @@
|
|
|
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
|
-
const axios_1 = __importDefault(require("axios"));
|
|
7
|
-
const axios_mock_adapter_1 = __importDefault(require("axios-mock-adapter"));
|
|
8
|
-
const axios_client_1 = require("./axios_client"); // Import the AxiosClient class
|
|
9
|
-
// Mock Axios for testing
|
|
10
|
-
jest.mock('axios', () => {
|
|
11
|
-
return {
|
|
12
|
-
...jest.requireActual('axios'),
|
|
13
|
-
create: jest.fn().mockReturnValue(jest.requireActual('axios')),
|
|
14
|
-
};
|
|
15
|
-
});
|
|
16
|
-
// Test cases
|
|
17
|
-
describe('AxiosClient', () => {
|
|
18
|
-
let axiosClient;
|
|
19
|
-
let mockAxios;
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
mockAxios = new axios_mock_adapter_1.default(axios_1.default); // Create a MockAdapter for Axios
|
|
22
|
-
axiosClient = new axios_client_1.AxiosClient(); // Create a new AxiosClient instance for each test
|
|
23
|
-
});
|
|
24
|
-
afterEach(() => {
|
|
25
|
-
mockAxios.restore();
|
|
26
|
-
});
|
|
27
|
-
describe('happy flow tests', () => {
|
|
28
|
-
// Scenario 1: GET request and receive a response
|
|
29
|
-
it('should make a GET request and receive a response', async () => {
|
|
30
|
-
// Mock the GET request using axios-mock-adapter
|
|
31
|
-
mockAxios.onGet('https://example.com').reply(200, 'GET response');
|
|
32
|
-
const response = (await axiosClient.get('https://example.com'));
|
|
33
|
-
expect(response.type).toBe('success');
|
|
34
|
-
expect(response.statusCode).toBe(200);
|
|
35
|
-
expect(response.responseBody).toBe('GET response');
|
|
36
|
-
});
|
|
37
|
-
// Scenario 2: POST request and receive a response
|
|
38
|
-
it('should make a POST request and receive a response', async () => {
|
|
39
|
-
// Mock the axios.post method to return a response
|
|
40
|
-
mockAxios.onPost('https://example.com').reply(201, 'POST response');
|
|
41
|
-
const response = (await axiosClient.post('https://example.com', {
|
|
42
|
-
foo: 'bar',
|
|
43
|
-
}));
|
|
44
|
-
expect(response.type).toBe('success');
|
|
45
|
-
expect(response.statusCode).toBe(201);
|
|
46
|
-
expect(response.responseBody).toBe('POST response');
|
|
47
|
-
});
|
|
48
|
-
// Scenario 3: PUT request and receive a response
|
|
49
|
-
it('should make a PUT request and receive a response', async () => {
|
|
50
|
-
// Mock the axios.put method to return a response
|
|
51
|
-
mockAxios.onPut('https://example.com').reply(204);
|
|
52
|
-
const response = (await axiosClient.put('https://example.com', {
|
|
53
|
-
foo: 'bar',
|
|
54
|
-
}));
|
|
55
|
-
expect(response.type).toBe('success');
|
|
56
|
-
expect(response.statusCode).toBe(204);
|
|
57
|
-
expect(response.responseBody).toBeUndefined(); // No response body for PUT
|
|
58
|
-
});
|
|
59
|
-
// Scenario 4: PATCH request and receive a response
|
|
60
|
-
it('should make a PATCH request and receive a response', async () => {
|
|
61
|
-
// Mock the axios.patch method to return a response
|
|
62
|
-
mockAxios.onPatch('https://example.com').reply(200, 'PATCH response');
|
|
63
|
-
const response = (await axiosClient.patch('https://example.com', {
|
|
64
|
-
foo: 'bar',
|
|
65
|
-
}));
|
|
66
|
-
expect(response.type).toBe('success');
|
|
67
|
-
expect(response.statusCode).toBe(200);
|
|
68
|
-
expect(response.responseBody).toBe('PATCH response');
|
|
69
|
-
});
|
|
70
|
-
// Scenario 5: DELETE request and receive a response
|
|
71
|
-
it('should make a DELETE request and receive a response', async () => {
|
|
72
|
-
// Mock the axios.delete method to return a response
|
|
73
|
-
mockAxios.onDelete('https://example.com').reply(204);
|
|
74
|
-
const response = (await axiosClient.delete('https://example.com'));
|
|
75
|
-
expect(response.type).toBe('success');
|
|
76
|
-
expect(response.statusCode).toBe(204);
|
|
77
|
-
expect(response.responseBody).toBeUndefined(); // No response body for DELETE
|
|
78
|
-
});
|
|
79
|
-
// Scenario 6: GET request with a response parser
|
|
80
|
-
it('should make a GET request with a response parser', async () => {
|
|
81
|
-
// Mock the GET request using axios-mock-adapter
|
|
82
|
-
mockAxios.onGet('https://example.com').reply(200, 'GET response');
|
|
83
|
-
const response = (await axiosClient.get('https://example.com', {}, (data) => {
|
|
84
|
-
return `Parsed ${data}`;
|
|
85
|
-
}));
|
|
86
|
-
expect(response.type).toBe('success');
|
|
87
|
-
expect(response.statusCode).toBe(200);
|
|
88
|
-
expect(response.responseBody).toBe('Parsed GET response');
|
|
89
|
-
});
|
|
90
|
-
// Scenario 7: POST request with a response parser
|
|
91
|
-
it('should make a POST request with a response parser', async () => {
|
|
92
|
-
// Mock the axios.post method to return a response
|
|
93
|
-
mockAxios.onPost('https://example.com').reply(201, 'POST response');
|
|
94
|
-
const response = (await axiosClient.post('https://example.com', {
|
|
95
|
-
foo: 'bar',
|
|
96
|
-
}, {}, (data) => {
|
|
97
|
-
return `Parsed ${data}`;
|
|
98
|
-
}));
|
|
99
|
-
expect(response.type).toBe('success');
|
|
100
|
-
expect(response.statusCode).toBe(201);
|
|
101
|
-
expect(response.responseBody).toBe('Parsed POST response');
|
|
102
|
-
});
|
|
103
|
-
// Scenario 8: PUT request with a response parser
|
|
104
|
-
it('should make a PUT request with a response parser', async () => {
|
|
105
|
-
// Mock the axios.put method to return a response
|
|
106
|
-
mockAxios.onPut('https://example.com').reply(204);
|
|
107
|
-
const response = (await axiosClient.put('https://example.com', {
|
|
108
|
-
foo: 'bar',
|
|
109
|
-
}, {}, (data) => {
|
|
110
|
-
return `Parsed ${data}`;
|
|
111
|
-
}));
|
|
112
|
-
expect(response.type).toBe('success');
|
|
113
|
-
expect(response.statusCode).toBe(204);
|
|
114
|
-
expect(response.responseBody).toBe('Parsed undefined'); // No response body for PUT
|
|
115
|
-
});
|
|
116
|
-
// Scenario 9: PATCH request with a response parser
|
|
117
|
-
it('should make a PATCH request with a response parser', async () => {
|
|
118
|
-
// Mock the axios.patch method to return a response
|
|
119
|
-
mockAxios.onPatch('https://example.com').reply(200, 'PATCH response');
|
|
120
|
-
const response = (await axiosClient.patch('https://example.com', {
|
|
121
|
-
foo: 'bar',
|
|
122
|
-
}, {}, (data) => {
|
|
123
|
-
return `Parsed ${data}`;
|
|
124
|
-
}));
|
|
125
|
-
expect(response.type).toBe('success');
|
|
126
|
-
expect(response.statusCode).toBe(200);
|
|
127
|
-
expect(response.responseBody).toBe('Parsed PATCH response');
|
|
128
|
-
});
|
|
129
|
-
// Scenario 10: DELETE request with a response parser
|
|
130
|
-
it('should make a DELETE request with a response parser', async () => {
|
|
131
|
-
// Mock the axios.delete method to return a response
|
|
132
|
-
mockAxios.onDelete('https://example.com').reply(204);
|
|
133
|
-
const response = (await axiosClient.delete('https://example.com', {}, (data) => {
|
|
134
|
-
return `Parsed ${data}`;
|
|
135
|
-
}));
|
|
136
|
-
expect(response.type).toBe('success');
|
|
137
|
-
expect(response.statusCode).toBe(204);
|
|
138
|
-
expect(response.responseBody).toBe('Parsed undefined'); // No response body for DELETE
|
|
139
|
-
});
|
|
140
|
-
// Scenario 11: GET request with headers
|
|
141
|
-
it('should make a GET request with headers', async () => {
|
|
142
|
-
// Mock the GET request using axios-mock-adapter
|
|
143
|
-
mockAxios.onGet('https://example.com').reply((config) => {
|
|
144
|
-
expect(config.headers['foo']).toEqual('bar');
|
|
145
|
-
return [
|
|
146
|
-
200,
|
|
147
|
-
'GET response',
|
|
148
|
-
{
|
|
149
|
-
Authorization: `Bearer Token`,
|
|
150
|
-
'Content-type': 'application/x-www-form-urlencoded',
|
|
151
|
-
},
|
|
152
|
-
];
|
|
153
|
-
});
|
|
154
|
-
const response = (await axiosClient.get('https://example.com', {
|
|
155
|
-
headers: { foo: 'bar' },
|
|
156
|
-
}));
|
|
157
|
-
expect(response.type).toBe('success');
|
|
158
|
-
expect(response.statusCode).toBe(200);
|
|
159
|
-
expect(response.responseBody).toBe('GET response');
|
|
160
|
-
});
|
|
161
|
-
// other happy flow tests
|
|
162
|
-
// Scenario 12:
|
|
163
|
-
});
|
|
164
|
-
describe('error flow tests', () => {
|
|
165
|
-
// Scenario 1: GET request and receive a network error
|
|
166
|
-
it('should make a GET request and receive a network error', async () => {
|
|
167
|
-
// Mock the GET request using axios-mock-adapter
|
|
168
|
-
mockAxios.onGet('https://example.com').abortRequest();
|
|
169
|
-
const response = (await axiosClient.get('https://example.com'));
|
|
170
|
-
expect(response.type).toBe('client-error');
|
|
171
|
-
expect(response.statusCode).toBe(500);
|
|
172
|
-
expect(response.message).toBe('Unknown Error:Request aborted');
|
|
173
|
-
});
|
|
174
|
-
// should handle timeout errors
|
|
175
|
-
it('should make a GET request and receive a timeout error', async () => {
|
|
176
|
-
// Mock the GET request using axios-mock-adapter
|
|
177
|
-
mockAxios.onGet('https://example.com').timeout();
|
|
178
|
-
const response = (await axiosClient.get('https://example.com'));
|
|
179
|
-
expect(response.type).toBe('client-error');
|
|
180
|
-
expect(response.statusCode).toBe(500);
|
|
181
|
-
expect(response.message).toBe('Unknown Error:timeout of 0ms exceeded');
|
|
182
|
-
});
|
|
183
|
-
it('should make a GET request and receive a network error', async () => {
|
|
184
|
-
// Mock the GET request using axios-mock-adapter
|
|
185
|
-
mockAxios.onGet('https://example.com').networkError();
|
|
186
|
-
const response = (await axiosClient.get('https://example.com'));
|
|
187
|
-
expect(response.type).toBe('client-error');
|
|
188
|
-
expect(response.statusCode).toBe(500);
|
|
189
|
-
expect(response.message).toBe('Network Error');
|
|
190
|
-
});
|
|
191
|
-
// should handle application errors (4xx)
|
|
192
|
-
it('should make a GET request and receive a 400 error', async () => {
|
|
193
|
-
// Mock the GET request using axios-mock-adapter
|
|
194
|
-
mockAxios.onGet('https://example.com').reply(400, 'Bad Request Received');
|
|
195
|
-
const response = (await axiosClient.get('https://example.com'));
|
|
196
|
-
expect(response.type).toBe('application-error');
|
|
197
|
-
expect(response.statusCode).toBe(400);
|
|
198
|
-
expect(response.responseBody).toBe('Bad Request Received');
|
|
199
|
-
});
|
|
200
|
-
// should handle application errors (5xx)
|
|
201
|
-
it('should make a GET request and receive a 500 error', async () => {
|
|
202
|
-
// Mock the GET request using axios-mock-adapter
|
|
203
|
-
mockAxios.onGet('https://example.com').reply(500, 'Internal Server Error');
|
|
204
|
-
const response = (await axiosClient.get('https://example.com'));
|
|
205
|
-
expect(response.type).toBe('application-error');
|
|
206
|
-
expect(response.statusCode).toBe(500);
|
|
207
|
-
expect(response.responseBody).toBe('Internal Server Error');
|
|
208
|
-
});
|
|
209
|
-
// should handle unexpected errors
|
|
210
|
-
it('should make a GET request and receive an unexpected error', async () => {
|
|
211
|
-
// Mock the GET request using axios-mock-adapter
|
|
212
|
-
mockAxios.onGet('https://example.com').reply(200, 'GET response');
|
|
213
|
-
const response = (await axiosClient.get('https://example.com', {}, (data) => {
|
|
214
|
-
throw new Error('Unexpected Error');
|
|
215
|
-
}));
|
|
216
|
-
expect(response.type).toBe('client-error');
|
|
217
|
-
expect(response.statusCode).toBe(500);
|
|
218
|
-
expect(response.message).toBe('Failed to parse response data: Unexpected Error');
|
|
219
|
-
});
|
|
220
|
-
// should handle empty response body
|
|
221
|
-
it('should make a GET request and receive an empty response body', async () => {
|
|
222
|
-
// Mock the GET request using axios-mock-adapter
|
|
223
|
-
mockAxios.onGet('https://example.com').reply(200);
|
|
224
|
-
const response = (await axiosClient.get('https://example.com'));
|
|
225
|
-
expect(response.type).toBe('success');
|
|
226
|
-
expect(response.statusCode).toBe(200);
|
|
227
|
-
expect(response.responseBody).toBeUndefined();
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3NDbGllbnQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZXR3b3JrL2NsaWVudHMvYXhpb3NDbGllbnQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUEwQjtBQUMxQiw0RUFBNkM7QUFDN0MsaURBQTZDLENBQUMsK0JBQStCO0FBTzdFLHlCQUF5QjtBQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7SUFDdEIsT0FBTztRQUNMLEdBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQVk7UUFDMUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMvRCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxhQUFhO0FBQ2IsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IsSUFBSSxXQUF3QixDQUFDO0lBQzdCLElBQUksU0FBUyxDQUFDO0lBRWQsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFNBQVMsR0FBRyxJQUFJLDRCQUFXLENBQUMsZUFBSyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7UUFDckUsV0FBVyxHQUFHLElBQUksMEJBQVcsRUFBRSxDQUFDLENBQUMsa0RBQWtEO0lBQ3JGLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7UUFDaEMsaURBQWlEO1FBQ2pELEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNoRSxnREFBZ0Q7WUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDbEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQ3JDLHFCQUFxQixDQUN0QixDQUFrQyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBRUgsa0RBQWtEO1FBQ2xELEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNqRSxrREFBa0Q7WUFDbEQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFFcEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQzlELEdBQUcsRUFBRSxLQUFLO2FBQ1gsQ0FBQyxDQUFrQyxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBRUgsaURBQWlEO1FBQ2pELEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNoRSxpREFBaUQ7WUFDakQsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVsRCxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRTtnQkFDN0QsR0FBRyxFQUFFLEtBQUs7YUFDWCxDQUFDLENBQWtDLENBQUM7WUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLDJCQUEyQjtRQUM1RSxDQUFDLENBQUMsQ0FBQztRQUVILG1EQUFtRDtRQUNuRCxFQUFFLENBQUMsb0RBQW9ELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbEUsbURBQW1EO1lBQ25ELFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFFdEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUU7Z0JBQy9ELEdBQUcsRUFBRSxLQUFLO2FBQ1gsQ0FBQyxDQUFrQyxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7UUFFSCxvREFBb0Q7UUFDcEQsRUFBRSxDQUFDLHFEQUFxRCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ25FLG9EQUFvRDtZQUNwRCxTQUFTLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXJELE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsTUFBTSxDQUN4QyxxQkFBcUIsQ0FDdEIsQ0FBa0MsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsOEJBQThCO1FBQy9FLENBQUMsQ0FBQyxDQUFDO1FBRUgsaURBQWlEO1FBQ2pELEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNoRSxnREFBZ0Q7WUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFFbEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzFFLE9BQU8sVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBa0MsQ0FBQztZQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBRUgsa0RBQWtEO1FBQ2xELEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNqRSxrREFBa0Q7WUFDbEQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFFcEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxJQUFJLENBQ3RDLHFCQUFxQixFQUNyQjtnQkFDRSxHQUFHLEVBQUUsS0FBSzthQUNYLEVBQ0QsRUFBRSxFQUNGLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1AsT0FBTyxVQUFVLElBQUksRUFBRSxDQUFDO1lBQzFCLENBQUMsQ0FDRixDQUFrQyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxpREFBaUQ7UUFDakQsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2hFLGlEQUFpRDtZQUNqRCxTQUFTLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWxELE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUNyQyxxQkFBcUIsRUFDckI7Z0JBQ0UsR0FBRyxFQUFFLEtBQUs7YUFDWCxFQUNELEVBQUUsRUFDRixDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNQLE9BQU8sVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQ0YsQ0FBa0MsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsMkJBQTJCO1FBQ3JGLENBQUMsQ0FBQyxDQUFDO1FBRUgsbURBQW1EO1FBQ25ELEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsRSxtREFBbUQ7WUFDbkQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUV0RSxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FDdkMscUJBQXFCLEVBQ3JCO2dCQUNFLEdBQUcsRUFBRSxLQUFLO2FBQ1gsRUFDRCxFQUFFLEVBQ0YsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDUCxPQUFPLFVBQVUsSUFBSSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUNGLENBQWtDLENBQUM7WUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILHFEQUFxRDtRQUNyRCxFQUFFLENBQUMscURBQXFELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbkUsb0RBQW9EO1lBQ3BELFNBQVMsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFckQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzdFLE9BQU8sVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBa0MsQ0FBQztZQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsOEJBQThCO1FBQ3hGLENBQUMsQ0FBQyxDQUFDO1FBRUgsd0NBQXdDO1FBQ3hDLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN0RCxnREFBZ0Q7WUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN0RCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0MsT0FBTztvQkFDTCxHQUFHO29CQUNILGNBQWM7b0JBQ2Q7d0JBQ0UsYUFBYSxFQUFFLGNBQWM7d0JBQzdCLGNBQWMsRUFBRSxtQ0FBbUM7cUJBQ3BEO2lCQUNGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFO2dCQUM3RCxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO2FBQ3hCLENBQUMsQ0FBa0MsQ0FBQztZQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUVILHlCQUF5QjtRQUN6QixlQUFlO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUNoQyxzREFBc0Q7UUFDdEQsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JFLGdEQUFnRDtZQUNoRCxTQUFTLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBMkIsQ0FBQztZQUMxRixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsK0JBQStCO1FBQy9CLEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRSxnREFBZ0Q7WUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRWpELE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQTJCLENBQUM7WUFDMUYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRSxnREFBZ0Q7WUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXRELE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQTJCLENBQUM7WUFDMUYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSCx5Q0FBeUM7UUFDekMsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2pFLGdEQUFnRDtZQUNoRCxTQUFTLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBRTFFLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUNyQyxxQkFBcUIsQ0FDdEIsQ0FBZ0MsQ0FBQztZQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFFSCx5Q0FBeUM7UUFDekMsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2pFLGdEQUFnRDtZQUNoRCxTQUFTLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1lBRTNFLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUNyQyxxQkFBcUIsQ0FDdEIsQ0FBZ0MsQ0FBQztZQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsRUFBRSxDQUFDLDJEQUEyRCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3pFLGdEQUFnRDtZQUNoRCxTQUFTLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUVsRSxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDMUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUEyQixDQUFDO1lBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDLENBQUM7UUFFSCxvQ0FBb0M7UUFDcEMsRUFBRSxDQUFDLDhEQUE4RCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzVFLGdEQUFnRDtZQUNoRCxTQUFTLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWxELE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUNyQyxxQkFBcUIsQ0FDdEIsQ0FBa0MsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgTW9ja0FkYXB0ZXIgZnJvbSAnYXhpb3MtbW9jay1hZGFwdGVyJztcbmltcG9ydCB7IEF4aW9zQ2xpZW50IH0gZnJvbSAnLi9heGlvc19jbGllbnQnOyAvLyBJbXBvcnQgdGhlIEF4aW9zQ2xpZW50IGNsYXNzXG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkVycm9yQXBpUmVzcG9uc2UsXG4gIENsaWVudEVycm9yQXBpUmVzcG9uc2UsXG4gIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIE1vY2sgQXhpb3MgZm9yIHRlc3Rpbmdcbmplc3QubW9jaygnYXhpb3MnLCAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uKGplc3QucmVxdWlyZUFjdHVhbCgnYXhpb3MnKSBhcyBvYmplY3QpLFxuICAgIGNyZWF0ZTogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZShqZXN0LnJlcXVpcmVBY3R1YWwoJ2F4aW9zJykpLFxuICB9O1xufSk7XG5cbi8vIFRlc3QgY2FzZXNcbmRlc2NyaWJlKCdBeGlvc0NsaWVudCcsICgpID0+IHtcbiAgbGV0IGF4aW9zQ2xpZW50OiBBeGlvc0NsaWVudDtcbiAgbGV0IG1vY2tBeGlvcztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBtb2NrQXhpb3MgPSBuZXcgTW9ja0FkYXB0ZXIoYXhpb3MpOyAvLyBDcmVhdGUgYSBNb2NrQWRhcHRlciBmb3IgQXhpb3NcbiAgICBheGlvc0NsaWVudCA9IG5ldyBBeGlvc0NsaWVudCgpOyAvLyBDcmVhdGUgYSBuZXcgQXhpb3NDbGllbnQgaW5zdGFuY2UgZm9yIGVhY2ggdGVzdFxuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIG1vY2tBeGlvcy5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdoYXBweSBmbG93IHRlc3RzJywgKCkgPT4ge1xuICAgIC8vIFNjZW5hcmlvIDE6IEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgcmVzcG9uc2VcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDAsICdHRVQgcmVzcG9uc2UnKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ0dFVCByZXNwb25zZScpO1xuICAgIH0pO1xuXG4gICAgLy8gU2NlbmFyaW8gMjogUE9TVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgcmVzcG9uc2VcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBQT1NUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnBvc3QgbWV0aG9kIHRvIHJldHVybiBhIHJlc3BvbnNlXG4gICAgICBtb2NrQXhpb3Mub25Qb3N0KCdodHRwczovL2V4YW1wbGUuY29tJykucmVwbHkoMjAxLCAnUE9TVCByZXNwb25zZScpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5wb3N0KCdodHRwczovL2V4YW1wbGUuY29tJywge1xuICAgICAgICBmb286ICdiYXInLFxuICAgICAgfSkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMSk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlKCdQT1NUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyAzOiBQVVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUFVUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnB1dCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblB1dCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwNCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnB1dCgnaHR0cHM6Ly9leGFtcGxlLmNvbScsIHtcbiAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgIH0pKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDQpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZVVuZGVmaW5lZCgpOyAvLyBObyByZXNwb25zZSBib2R5IGZvciBQVVRcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDQ6IFBBVENIIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZVxuICAgIGl0KCdzaG91bGQgbWFrZSBhIFBBVENIIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnBhdGNoIG1ldGhvZCB0byByZXR1cm4gYSByZXNwb25zZVxuICAgICAgbW9ja0F4aW9zLm9uUGF0Y2goJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDAsICdQQVRDSCByZXNwb25zZScpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5wYXRjaCgnaHR0cHM6Ly9leGFtcGxlLmNvbScsIHtcbiAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgIH0pKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnUEFUQ0ggcmVzcG9uc2UnKTtcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDU6IERFTEVURSByZXF1ZXN0IGFuZCByZWNlaXZlIGEgcmVzcG9uc2VcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBERUxFVEUgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgYXhpb3MuZGVsZXRlIG1ldGhvZCB0byByZXR1cm4gYSByZXNwb25zZVxuICAgICAgbW9ja0F4aW9zLm9uRGVsZXRlKCdodHRwczovL2V4YW1wbGUuY29tJykucmVwbHkoMjA0KTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZGVsZXRlKFxuICAgICAgICAnaHR0cHM6Ly9leGFtcGxlLmNvbScsXG4gICAgICApKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDQpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZVVuZGVmaW5lZCgpOyAvLyBObyByZXNwb25zZSBib2R5IGZvciBERUxFVEVcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDY6IEdFVCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXJcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDAsICdHRVQgcmVzcG9uc2UnKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KCdodHRwczovL2V4YW1wbGUuY29tJywge30sIChkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiBgUGFyc2VkICR7ZGF0YX1gO1xuICAgICAgfSkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlKCdQYXJzZWQgR0VUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyA3OiBQT1NUIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlclxuICAgIGl0KCdzaG91bGQgbWFrZSBhIFBPU1QgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgYXhpb3MucG9zdCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblBvc3QoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDEsICdQT1NUIHJlc3BvbnNlJyk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnBvc3QoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICAge1xuICAgICAgICAgIGZvbzogJ2JhcicsXG4gICAgICAgIH0sXG4gICAgICAgIHt9LFxuICAgICAgICAoZGF0YSkgPT4ge1xuICAgICAgICAgIHJldHVybiBgUGFyc2VkICR7ZGF0YX1gO1xuICAgICAgICB9LFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAxKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BhcnNlZCBQT1NUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyA4OiBQVVQgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUFVUIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnB1dCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblB1dCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwNCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnB1dChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7XG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGBQYXJzZWQgJHtkYXRhfWA7XG4gICAgICAgIH0sXG4gICAgICApKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDQpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnUGFyc2VkIHVuZGVmaW5lZCcpOyAvLyBObyByZXNwb25zZSBib2R5IGZvciBQVVRcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDk6IFBBVENIIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlclxuICAgIGl0KCdzaG91bGQgbWFrZSBhIFBBVENIIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnBhdGNoIG1ldGhvZCB0byByZXR1cm4gYSByZXNwb25zZVxuICAgICAgbW9ja0F4aW9zLm9uUGF0Y2goJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDAsICdQQVRDSCByZXNwb25zZScpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5wYXRjaChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7XG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGBQYXJzZWQgJHtkYXRhfWA7XG4gICAgICAgIH0sXG4gICAgICApKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnUGFyc2VkIFBBVENIIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyAxMDogREVMRVRFIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlclxuICAgIGl0KCdzaG91bGQgbWFrZSBhIERFTEVURSByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBheGlvcy5kZWxldGUgbWV0aG9kIHRvIHJldHVybiBhIHJlc3BvbnNlXG4gICAgICBtb2NrQXhpb3Mub25EZWxldGUoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDQpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5kZWxldGUoJ2h0dHBzOi8vZXhhbXBsZS5jb20nLCB7fSwgKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIGBQYXJzZWQgJHtkYXRhfWA7XG4gICAgICB9KSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjA0KTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BhcnNlZCB1bmRlZmluZWQnKTsgLy8gTm8gcmVzcG9uc2UgYm9keSBmb3IgREVMRVRFXG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyAxMTogR0VUIHJlcXVlc3Qgd2l0aCBoZWFkZXJzXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgR0VUIHJlcXVlc3Qgd2l0aCBoZWFkZXJzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgoY29uZmlnKSA9PiB7XG4gICAgICAgIGV4cGVjdChjb25maWcuaGVhZGVyc1snZm9vJ10pLnRvRXF1YWwoJ2JhcicpO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIDIwMCxcbiAgICAgICAgICAnR0VUIHJlc3BvbnNlJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyIFRva2VuYCxcbiAgICAgICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScsIHtcbiAgICAgICAgaGVhZGVyczogeyBmb286ICdiYXInIH0sXG4gICAgICB9KSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ0dFVCByZXNwb25zZScpO1xuICAgIH0pO1xuXG4gICAgLy8gb3RoZXIgaGFwcHkgZmxvdyB0ZXN0c1xuICAgIC8vIFNjZW5hcmlvIDEyOlxuICB9KTtcblxuICBkZXNjcmliZSgnZXJyb3IgZmxvdyB0ZXN0cycsICgpID0+IHtcbiAgICAvLyBTY2VuYXJpbyAxOiBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIG5ldHdvcmsgZXJyb3JcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIG5ldHdvcmsgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLmFib3J0UmVxdWVzdCgpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKSkgYXMgQ2xpZW50RXJyb3JBcGlSZXNwb25zZTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdjbGllbnQtZXJyb3InKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDUwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UubWVzc2FnZSkudG9CZSgnVW5rbm93biBFcnJvcjpSZXF1ZXN0IGFib3J0ZWQnKTtcbiAgICB9KTtcblxuICAgIC8vIHNob3VsZCBoYW5kbGUgdGltZW91dCBlcnJvcnNcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHRpbWVvdXQgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnRpbWVvdXQoKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KCdodHRwczovL2V4YW1wbGUuY29tJykpIGFzIENsaWVudEVycm9yQXBpUmVzcG9uc2U7XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnY2xpZW50LWVycm9yJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSg1MDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLm1lc3NhZ2UpLnRvQmUoJ1Vua25vd24gRXJyb3I6dGltZW91dCBvZiAwbXMgZXhjZWVkZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgbmV0d29yayBlcnJvcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIEdFVCByZXF1ZXN0IHVzaW5nIGF4aW9zLW1vY2stYWRhcHRlclxuICAgICAgbW9ja0F4aW9zLm9uR2V0KCdodHRwczovL2V4YW1wbGUuY29tJykubmV0d29ya0Vycm9yKCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpKSBhcyBDbGllbnRFcnJvckFwaVJlc3BvbnNlO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ2NsaWVudC1lcnJvcicpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoNTAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5tZXNzYWdlKS50b0JlKCdOZXR3b3JrIEVycm9yJyk7XG4gICAgfSk7XG5cbiAgICAvLyBzaG91bGQgaGFuZGxlIGFwcGxpY2F0aW9uIGVycm9ycyAoNHh4KVxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgNDAwIGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSg0MDAsICdCYWQgUmVxdWVzdCBSZWNlaXZlZCcpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICkpIGFzIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdhcHBsaWNhdGlvbi1lcnJvcicpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoNDAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ0JhZCBSZXF1ZXN0IFJlY2VpdmVkJyk7XG4gICAgfSk7XG5cbiAgICAvLyBzaG91bGQgaGFuZGxlIGFwcGxpY2F0aW9uIGVycm9ycyAoNXh4KVxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgNTAwIGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSg1MDAsICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KFxuICAgICAgICAnaHR0cHM6Ly9leGFtcGxlLmNvbScsXG4gICAgICApKSBhcyBBcHBsaWNhdGlvbkVycm9yQXBpUmVzcG9uc2U7XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnYXBwbGljYXRpb24tZXJyb3InKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDUwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlKCdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKTtcbiAgICB9KTtcblxuICAgIC8vIHNob3VsZCBoYW5kbGUgdW5leHBlY3RlZCBlcnJvcnNcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhbiB1bmV4cGVjdGVkIGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDAsICdHRVQgcmVzcG9uc2UnKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KCdodHRwczovL2V4YW1wbGUuY29tJywge30sIChkYXRhKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBFcnJvcicpO1xuICAgICAgfSkpIGFzIENsaWVudEVycm9yQXBpUmVzcG9uc2U7XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnY2xpZW50LWVycm9yJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSg1MDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLm1lc3NhZ2UpLnRvQmUoJ0ZhaWxlZCB0byBwYXJzZSByZXNwb25zZSBkYXRhOiBVbmV4cGVjdGVkIEVycm9yJyk7XG4gICAgfSk7XG5cbiAgICAvLyBzaG91bGQgaGFuZGxlIGVtcHR5IHJlc3BvbnNlIGJvZHlcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhbiBlbXB0eSByZXNwb25zZSBib2R5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDApO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|