@rudderstack/integrations-lib 0.2.19 → 0.2.21

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.
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DATA_CENTRE_BASE_ENDPOINTS_MAP = void 0;
3
+ exports.UPSERT_MODULES = exports.MODULE_WISE_DUPLICATE_CHECK_FIELD = exports.DATA_CENTRE_BASE_ENDPOINTS_MAP = exports.SYSTEM_DEFINED_DUPLICATE_CHECK_FIELD_FOR_CUSTOM_MODULE = exports.CUSTOM_GENERATED_TYPE = void 0;
4
+ exports.CUSTOM_GENERATED_TYPE = 'custom';
5
+ exports.SYSTEM_DEFINED_DUPLICATE_CHECK_FIELD_FOR_CUSTOM_MODULE = 'Name';
4
6
  exports.DATA_CENTRE_BASE_ENDPOINTS_MAP = {
5
7
  US: 'https://www.zohoapis.com',
6
8
  AU: 'https://www.zohoapis.com.au',
@@ -10,4 +12,41 @@ exports.DATA_CENTRE_BASE_ENDPOINTS_MAP = {
10
12
  JP: 'https://www.zohoapis.jp',
11
13
  CA: 'https://www.zohoapiscloud.ca',
12
14
  };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy96b2hvL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWtJYSxRQUFBLDhCQUE4QixHQUErQjtJQUN4RSxFQUFFLEVBQUUsMEJBQTBCO0lBQzlCLEVBQUUsRUFBRSw2QkFBNkI7SUFDakMsRUFBRSxFQUFFLHlCQUF5QjtJQUM3QixFQUFFLEVBQUUseUJBQXlCO0lBQzdCLEVBQUUsRUFBRSw2QkFBNkI7SUFDakMsRUFBRSxFQUFFLHlCQUF5QjtJQUM3QixFQUFFLEVBQUUsOEJBQThCO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBkYXRhVHlwZSA9ICdzdHJpbmcnIHwgJ2ludGVnZXInIHwgJ2Zsb2F0JyB8ICdkYXRldGltZScgfCAnYm9vbGVhbicgfCAnb2JqZWN0JyB8ICdhcnJheSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGQge1xuICBhc3NvY2lhdGVkX21vZHVsZT86IGFueTtcbiAgd2ViaG9vaz86IGJvb2xlYW47XG4gIG9wZXJhdGlvbl90eXBlPzoge1xuICAgIHdlYl91cGRhdGU/OiBib29sZWFuO1xuICAgIGFwaV9jcmVhdGU/OiBib29sZWFuO1xuICAgIHdlYl9jcmVhdGU/OiBib29sZWFuO1xuICAgIGFwaV91cGRhdGU/OiBib29sZWFuO1xuICB9O1xuICBjb2xvdXJfY29kZV9lbmFibGVkX2J5X3N5c3RlbT86IGJvb2xlYW47XG4gIGZpZWxkX2xhYmVsPzogc3RyaW5nO1xuICB0b29sdGlwPzogYW55O1xuICB0eXBlPzogc3RyaW5nO1xuICBmaWVsZF9yZWFkX29ubHk/OiBib29sZWFuO1xuICBjdXN0b21pemFibGVfcHJvcGVydGllcz86IHN0cmluZ1tdO1xuICBkaXNwbGF5X2xhYmVsPzogc3RyaW5nO1xuICByZWFkX29ubHk/OiBib29sZWFuO1xuICBhc3NvY2lhdGlvbl9kZXRhaWxzPzogYW55O1xuICBidXNpbmVzc2NhcmRfc3VwcG9ydGVkPzogYm9vbGVhbjtcbiAgbXVsdGlfbW9kdWxlX2xvb2t1cD86IGFueTtcbiAgaWQ/OiBzdHJpbmc7XG4gIGNyZWF0ZWRfdGltZT86IGFueTtcbiAgZmlsdGVyYWJsZT86IGJvb2xlYW47XG4gIHZpc2libGU/OiBib29sZWFuO1xuICBwcm9maWxlcz86IHtcbiAgICBwZXJtaXNzaW9uX3R5cGU/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBpZD86IHN0cmluZztcbiAgfVtdO1xuICB2aWV3X3R5cGU/OiB7XG4gICAgdmlldz86IGJvb2xlYW47XG4gICAgZWRpdD86IGJvb2xlYW47XG4gICAgcXVpY2tfY3JlYXRlPzogYm9vbGVhbjtcbiAgICBjcmVhdGU/OiBib29sZWFuO1xuICB9O1xuICBzZXBhcmF0b3I/OiBib29sZWFuO1xuICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcbiAgZXh0ZXJuYWw/OiBhbnk7XG4gIGFwaV9uYW1lPzogc3RyaW5nO1xuICB1bmlxdWU/OiBhbnk7XG4gIGVuYWJsZV9jb2xvdXJfY29kZT86IGJvb2xlYW47XG4gIHBpY2tfbGlzdF92YWx1ZXM/OiBhbnlbXTtcbiAgc3lzdGVtX21hbmRhdG9yeT86IGJvb2xlYW47XG4gIHZpcnR1YWxfZmllbGQ/OiBib29sZWFuO1xuICBqc29uX3R5cGU6IGRhdGFUeXBlO1xuICBjcnlwdD86IGFueTtcbiAgY3JlYXRlZF9zb3VyY2U/OiBzdHJpbmc7XG4gIGRpc3BsYXlfdHlwZT86IG51bWJlcjtcbiAgdWlfdHlwZT86IG51bWJlcjtcbiAgbW9kaWZpZWRfdGltZT86IGFueTtcbiAgZW1haWxfcGFyc2VyPzoge1xuICAgIGZpZWxkc191cGRhdGVfc3VwcG9ydGVkPzogYm9vbGVhbjtcbiAgICByZWNvcmRfb3BlcmF0aW9uc19zdXBwb3J0ZWQ/OiBib29sZWFuO1xuICB9O1xuICBjdXJyZW5jeT86IGFueTtcbiAgY3VzdG9tX2ZpZWxkPzogYm9vbGVhbjtcbiAgbG9va3VwPzogYW55O1xuICBjb252ZXJ0X21hcHBpbmc/OiB7XG4gICAgQ29udGFjdHM/OiBhbnk7XG4gICAgRGVhbHM/OiBhbnk7XG4gICAgQWNjb3VudHM/OiBhbnk7XG4gIH07XG4gIHJvbGx1cF9zdW1tYXJ5PzogYW55O1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIGRpc3BsYXlfZmllbGQ/OiBib29sZWFuO1xuICBwaWNrX2xpc3RfdmFsdWVzX3NvcnRlZF9sZXhpY2FsbHk/OiBib29sZWFuO1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG4gIGdsb2JhbF9waWNrbGlzdD86IGFueTtcbiAgaGlzdG9yeV90cmFja2luZz86IGFueTtcbiAgZGF0YV90eXBlPzogc3RyaW5nO1xuICBmb3JtdWxhPzogYW55O1xuICBkZWNpbWFsX3BsYWNlPzogYW55O1xuICBtYXNzX3VwZGF0ZT86IGJvb2xlYW47XG4gIG11bHRpc2VsZWN0bG9va3VwPzogYW55O1xuICBhdXRvX251bWJlcj86IGFueTtcbn1cblxuaW50ZXJmYWNlIFByb2ZpbGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGUge1xuICBoYXNfbW9yZV9wcm9maWxlcz86IGJvb2xlYW47XG4gIGFjY2Vzc190eXBlPzogc3RyaW5nO1xuICBwcml2YXRlX3Byb2ZpbGU/OiBhbnk7XG4gIGdsb2JhbF9zZWFyY2hfc3VwcG9ydGVkPzogYm9vbGVhbjtcbiAgZGVsZXRhYmxlPzogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNyZWF0YWJsZT86IGJvb2xlYW47XG4gIHJlY3ljbGVfYmluX29uX2RlbGV0ZT86IGJvb2xlYW47XG4gIG1vZGlmaWVkX3RpbWU/OiBhbnk7XG4gIHBsdXJhbF9sYWJlbD86IHN0cmluZztcbiAgcHJlc2VuY2Vfc3ViX21lbnU/OiBib29sZWFuO1xuICBhY3R1YWxfcGx1cmFsX2xhYmVsPzogc3RyaW5nO1xuICBsb29rdXBhYmxlPzogYm9vbGVhbjtcbiAgaWQ/OiBzdHJpbmc7XG4gIGlzQmx1ZXByaW50U3VwcG9ydGVkPzogYm9vbGVhbjtcbiAgdmlzaWJpbGl0eT86IG51bWJlcjtcbiAgY29udmVydGFibGU/OiBib29sZWFuO1xuICBzdWJfbWVudV9hdmFpbGFibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGFjdHVhbF9zaW5ndWxhcl9sYWJlbD86IHN0cmluZztcbiAgcHJvZmlsZXM/OiBQcm9maWxlW107XG4gIHNob3dfYXNfdGFiPzogYm9vbGVhbjtcbiAgd2ViX2xpbms/OiBhbnk7XG4gIHNlcXVlbmNlX251bWJlcj86IG51bWJlcjtcbiAgc2luZ3VsYXJfbGFiZWw/OiBzdHJpbmc7XG4gIHZpZXdhYmxlPzogYm9vbGVhbjtcbiAgYXBpX3N1cHBvcnRlZD86IGJvb2xlYW47XG4gIGFwaV9uYW1lPzogc3RyaW5nO1xuICBxdWlja19jcmVhdGU/OiBib29sZWFuO1xuICBtb2RpZmllZF9ieT86IGFueTtcbiAgZ2VuZXJhdGVkX3R5cGU/OiBzdHJpbmc7XG4gIGZlZWRzX3JlcXVpcmVkPzogYm9vbGVhbjtcbiAgcHVibGljX2ZpZWxkc19jb25maWd1cmVkPzogYm9vbGVhbjtcbiAgYXJndW1lbnRzPzogYW55W107XG4gIG1vZHVsZV9uYW1lPzogc3RyaW5nO1xuICBwcm9maWxlX2NvdW50PzogbnVtYmVyO1xuICBidXNpbmVzc19jYXJkX2ZpZWxkX2xpbWl0PzogbnVtYmVyO1xuICBwYXJlbnRfbW9kdWxlPzogYW55O1xuICBzdGF0dXM/OiBzdHJpbmc7XG59XG5cbi8vIGh0dHBzOi8vd3d3LnpvaG8uY29tL2NybS9kZXZlbG9wZXIvZG9jcy9hcGkvdjYvYWNjZXNzLXJlZnJlc2guaHRtbFxuXG5leHBvcnQgdHlwZSBSZWdpb25LZXlzID0gJ1VTJyB8ICdBVScgfCAnRVUnIHwgJ0lOJyB8ICdDTicgfCAnSlAnIHwgJ0NBJztcblxuZXhwb3J0IGNvbnN0IERBVEFfQ0VOVFJFX0JBU0VfRU5EUE9JTlRTX01BUDogUmVjb3JkPFJlZ2lvbktleXMsIHN0cmluZz4gPSB7XG4gIFVTOiAnaHR0cHM6Ly93d3cuem9ob2FwaXMuY29tJyxcbiAgQVU6ICdodHRwczovL3d3dy56b2hvYXBpcy5jb20uYXUnLFxuICBFVTogJ2h0dHBzOi8vd3d3LnpvaG9hcGlzLmV1JyxcbiAgSU46ICdodHRwczovL3d3dy56b2hvYXBpcy5pbicsXG4gIENOOiAnaHR0cHM6Ly93d3cuem9ob2FwaXMuY29tLmNuJyxcbiAgSlA6ICdodHRwczovL3d3dy56b2hvYXBpcy5qcCcsXG4gIENBOiAnaHR0cHM6Ly93d3cuem9ob2FwaXNjbG91ZC5jYScsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhPYmplY3Qge1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBkYXRhQ2VudGVyOiBSZWdpb25LZXlzO1xuICByZWZyZXNoQWNjZXNUb2tlbkZ1bmM6ICgpID0+IFByb21pc2U8c3RyaW5nPjtcbn1cbiJdfQ==
15
+ // https://www.zoho.com/crm/developer/docs/api/v6/upsert-records.html check section System-defined Duplicate Check Fields
16
+ exports.MODULE_WISE_DUPLICATE_CHECK_FIELD = {
17
+ Leads: 'Email',
18
+ Accounts: 'Account_Name',
19
+ Contacts: 'Email',
20
+ Deals: 'Deal_Name',
21
+ Campaigns: 'Campaign_Name',
22
+ Cases: 'Subject',
23
+ Solutions: 'Solution_Title',
24
+ Products: 'Product_Name',
25
+ Vendors: 'Vendor_Name',
26
+ PriceBooks: 'Price_Book_Name',
27
+ Quotes: 'Subject',
28
+ SalesOrders: 'Subject',
29
+ PurchaseOrders: 'Subject',
30
+ Invoices: 'Subject',
31
+ };
32
+ // https://www.zoho.com/crm/developer/docs/api/v6/upsert-records.html
33
+ exports.UPSERT_MODULES = [
34
+ 'Leads',
35
+ 'Accounts',
36
+ 'Contacts',
37
+ 'Deals',
38
+ 'Campaigns',
39
+ 'Cases',
40
+ 'Solutions',
41
+ 'Products',
42
+ 'Vendors',
43
+ 'Pricebooks',
44
+ 'Quotes',
45
+ 'Salesorders',
46
+ 'Purchaseorders',
47
+ 'Invoices',
48
+ 'Appointments',
49
+ 'Appointments_rescheduled_history',
50
+ 'Services',
51
+ ];
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy96b2hvL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEscUJBQXFCLEdBQUcsUUFBUSxDQUFDO0FBRWpDLFFBQUEsc0RBQXNELEdBQUcsTUFBTSxDQUFDO0FBbUloRSxRQUFBLDhCQUE4QixHQUErQjtJQUN4RSxFQUFFLEVBQUUsMEJBQTBCO0lBQzlCLEVBQUUsRUFBRSw2QkFBNkI7SUFDakMsRUFBRSxFQUFFLHlCQUF5QjtJQUM3QixFQUFFLEVBQUUseUJBQXlCO0lBQzdCLEVBQUUsRUFBRSw2QkFBNkI7SUFDakMsRUFBRSxFQUFFLHlCQUF5QjtJQUM3QixFQUFFLEVBQUUsOEJBQThCO0NBQ25DLENBQUM7QUFRRix5SEFBeUg7QUFDNUcsUUFBQSxpQ0FBaUMsR0FBMkI7SUFDdkUsS0FBSyxFQUFFLE9BQU87SUFDZCxRQUFRLEVBQUUsY0FBYztJQUN4QixRQUFRLEVBQUUsT0FBTztJQUNqQixLQUFLLEVBQUUsV0FBVztJQUNsQixTQUFTLEVBQUUsZUFBZTtJQUMxQixLQUFLLEVBQUUsU0FBUztJQUNoQixTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLFFBQVEsRUFBRSxjQUFjO0lBQ3hCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFVBQVUsRUFBRSxpQkFBaUI7SUFDN0IsTUFBTSxFQUFFLFNBQVM7SUFDakIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsUUFBUSxFQUFFLFNBQVM7Q0FDcEIsQ0FBQztBQUVGLHFFQUFxRTtBQUN4RCxRQUFBLGNBQWMsR0FBRztJQUM1QixPQUFPO0lBQ1AsVUFBVTtJQUNWLFVBQVU7SUFDVixPQUFPO0lBQ1AsV0FBVztJQUNYLE9BQU87SUFDUCxXQUFXO0lBQ1gsVUFBVTtJQUNWLFNBQVM7SUFDVCxZQUFZO0lBQ1osUUFBUTtJQUNSLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGNBQWM7SUFDZCxrQ0FBa0M7SUFDbEMsVUFBVTtDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBkYXRhVHlwZSA9ICdzdHJpbmcnIHwgJ2ludGVnZXInIHwgJ2Zsb2F0JyB8ICdkYXRldGltZScgfCAnYm9vbGVhbicgfCAnb2JqZWN0JyB8ICdhcnJheSc7XG5cbmV4cG9ydCBjb25zdCBDVVNUT01fR0VORVJBVEVEX1RZUEUgPSAnY3VzdG9tJztcblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9ERUZJTkVEX0RVUExJQ0FURV9DSEVDS19GSUVMRF9GT1JfQ1VTVE9NX01PRFVMRSA9ICdOYW1lJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZCB7XG4gIGFzc29jaWF0ZWRfbW9kdWxlPzogYW55O1xuICB3ZWJob29rPzogYm9vbGVhbjtcbiAgb3BlcmF0aW9uX3R5cGU/OiB7XG4gICAgd2ViX3VwZGF0ZT86IGJvb2xlYW47XG4gICAgYXBpX2NyZWF0ZT86IGJvb2xlYW47XG4gICAgd2ViX2NyZWF0ZT86IGJvb2xlYW47XG4gICAgYXBpX3VwZGF0ZT86IGJvb2xlYW47XG4gIH07XG4gIGNvbG91cl9jb2RlX2VuYWJsZWRfYnlfc3lzdGVtPzogYm9vbGVhbjtcbiAgZmllbGRfbGFiZWw/OiBzdHJpbmc7XG4gIHRvb2x0aXA/OiBhbnk7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGZpZWxkX3JlYWRfb25seT86IGJvb2xlYW47XG4gIGN1c3RvbWl6YWJsZV9wcm9wZXJ0aWVzPzogc3RyaW5nW107XG4gIGRpc3BsYXlfbGFiZWw/OiBzdHJpbmc7XG4gIHJlYWRfb25seT86IGJvb2xlYW47XG4gIGFzc29jaWF0aW9uX2RldGFpbHM/OiBhbnk7XG4gIGJ1c2luZXNzY2FyZF9zdXBwb3J0ZWQ/OiBib29sZWFuO1xuICBtdWx0aV9tb2R1bGVfbG9va3VwPzogYW55O1xuICBpZD86IHN0cmluZztcbiAgY3JlYXRlZF90aW1lPzogYW55O1xuICBmaWx0ZXJhYmxlPzogYm9vbGVhbjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHByb2ZpbGVzPzoge1xuICAgIHBlcm1pc3Npb25fdHlwZT86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGlkPzogc3RyaW5nO1xuICB9W107XG4gIHZpZXdfdHlwZT86IHtcbiAgICB2aWV3PzogYm9vbGVhbjtcbiAgICBlZGl0PzogYm9vbGVhbjtcbiAgICBxdWlja19jcmVhdGU/OiBib29sZWFuO1xuICAgIGNyZWF0ZT86IGJvb2xlYW47XG4gIH07XG4gIHNlcGFyYXRvcj86IGJvb2xlYW47XG4gIHNlYXJjaGFibGU/OiBib29sZWFuO1xuICBleHRlcm5hbD86IGFueTtcbiAgYXBpX25hbWU/OiBzdHJpbmc7XG4gIHVuaXF1ZT86IGFueTtcbiAgZW5hYmxlX2NvbG91cl9jb2RlPzogYm9vbGVhbjtcbiAgcGlja19saXN0X3ZhbHVlcz86IGFueVtdO1xuICBzeXN0ZW1fbWFuZGF0b3J5PzogYm9vbGVhbjtcbiAgdmlydHVhbF9maWVsZD86IGJvb2xlYW47XG4gIGpzb25fdHlwZTogZGF0YVR5cGU7XG4gIGNyeXB0PzogYW55O1xuICBjcmVhdGVkX3NvdXJjZT86IHN0cmluZztcbiAgZGlzcGxheV90eXBlPzogbnVtYmVyO1xuICB1aV90eXBlPzogbnVtYmVyO1xuICBtb2RpZmllZF90aW1lPzogYW55O1xuICBlbWFpbF9wYXJzZXI/OiB7XG4gICAgZmllbGRzX3VwZGF0ZV9zdXBwb3J0ZWQ/OiBib29sZWFuO1xuICAgIHJlY29yZF9vcGVyYXRpb25zX3N1cHBvcnRlZD86IGJvb2xlYW47XG4gIH07XG4gIGN1cnJlbmN5PzogYW55O1xuICBjdXN0b21fZmllbGQ/OiBib29sZWFuO1xuICBsb29rdXA/OiBhbnk7XG4gIGNvbnZlcnRfbWFwcGluZz86IHtcbiAgICBDb250YWN0cz86IGFueTtcbiAgICBEZWFscz86IGFueTtcbiAgICBBY2NvdW50cz86IGFueTtcbiAgfTtcbiAgcm9sbHVwX3N1bW1hcnk/OiBhbnk7XG4gIGxlbmd0aD86IG51bWJlcjtcbiAgZGlzcGxheV9maWVsZD86IGJvb2xlYW47XG4gIHBpY2tfbGlzdF92YWx1ZXNfc29ydGVkX2xleGljYWxseT86IGJvb2xlYW47XG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcbiAgZ2xvYmFsX3BpY2tsaXN0PzogYW55O1xuICBoaXN0b3J5X3RyYWNraW5nPzogYW55O1xuICBkYXRhX3R5cGU/OiBzdHJpbmc7XG4gIGZvcm11bGE/OiBhbnk7XG4gIGRlY2ltYWxfcGxhY2U/OiBhbnk7XG4gIG1hc3NfdXBkYXRlPzogYm9vbGVhbjtcbiAgbXVsdGlzZWxlY3Rsb29rdXA/OiBhbnk7XG4gIGF1dG9fbnVtYmVyPzogYW55O1xuICBtb2R1bGVDaGVja0R1cGxpY2F0ZUZpZWxkPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUHJvZmlsZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZSB7XG4gIGhhc19tb3JlX3Byb2ZpbGVzPzogYm9vbGVhbjtcbiAgYWNjZXNzX3R5cGU/OiBzdHJpbmc7XG4gIHByaXZhdGVfcHJvZmlsZT86IGFueTtcbiAgZ2xvYmFsX3NlYXJjaF9zdXBwb3J0ZWQ/OiBib29sZWFuO1xuICBkZWxldGFibGU/OiBib29sZWFuO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY3JlYXRhYmxlPzogYm9vbGVhbjtcbiAgcmVjeWNsZV9iaW5fb25fZGVsZXRlPzogYm9vbGVhbjtcbiAgbW9kaWZpZWRfdGltZT86IGFueTtcbiAgcGx1cmFsX2xhYmVsPzogc3RyaW5nO1xuICBwcmVzZW5jZV9zdWJfbWVudT86IGJvb2xlYW47XG4gIGFjdHVhbF9wbHVyYWxfbGFiZWw/OiBzdHJpbmc7XG4gIGxvb2t1cGFibGU/OiBib29sZWFuO1xuICBpZD86IHN0cmluZztcbiAgaXNCbHVlcHJpbnRTdXBwb3J0ZWQ/OiBib29sZWFuO1xuICB2aXNpYmlsaXR5PzogbnVtYmVyO1xuICBjb252ZXJ0YWJsZT86IGJvb2xlYW47XG4gIHN1Yl9tZW51X2F2YWlsYWJsZT86IGJvb2xlYW47XG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcbiAgYWN0dWFsX3Npbmd1bGFyX2xhYmVsPzogc3RyaW5nO1xuICBwcm9maWxlcz86IFByb2ZpbGVbXTtcbiAgc2hvd19hc190YWI/OiBib29sZWFuO1xuICB3ZWJfbGluaz86IGFueTtcbiAgc2VxdWVuY2VfbnVtYmVyPzogbnVtYmVyO1xuICBzaW5ndWxhcl9sYWJlbD86IHN0cmluZztcbiAgdmlld2FibGU/OiBib29sZWFuO1xuICBhcGlfc3VwcG9ydGVkPzogYm9vbGVhbjtcbiAgYXBpX25hbWU/OiBzdHJpbmc7XG4gIHF1aWNrX2NyZWF0ZT86IGJvb2xlYW47XG4gIG1vZGlmaWVkX2J5PzogYW55O1xuICBnZW5lcmF0ZWRfdHlwZT86IHN0cmluZztcbiAgZmVlZHNfcmVxdWlyZWQ/OiBib29sZWFuO1xuICBwdWJsaWNfZmllbGRzX2NvbmZpZ3VyZWQ/OiBib29sZWFuO1xuICBhcmd1bWVudHM/OiBhbnlbXTtcbiAgbW9kdWxlX25hbWU/OiBzdHJpbmc7XG4gIHByb2ZpbGVfY291bnQ/OiBudW1iZXI7XG4gIGJ1c2luZXNzX2NhcmRfZmllbGRfbGltaXQ/OiBudW1iZXI7XG4gIHBhcmVudF9tb2R1bGU/OiBhbnk7XG4gIHN0YXR1cz86IHN0cmluZztcbn1cblxuLy8gaHR0cHM6Ly93d3cuem9oby5jb20vY3JtL2RldmVsb3Blci9kb2NzL2FwaS92Ni9hY2Nlc3MtcmVmcmVzaC5odG1sXG5cbmV4cG9ydCB0eXBlIFJlZ2lvbktleXMgPSAnVVMnIHwgJ0FVJyB8ICdFVScgfCAnSU4nIHwgJ0NOJyB8ICdKUCcgfCAnQ0EnO1xuXG5leHBvcnQgY29uc3QgREFUQV9DRU5UUkVfQkFTRV9FTkRQT0lOVFNfTUFQOiBSZWNvcmQ8UmVnaW9uS2V5cywgc3RyaW5nPiA9IHtcbiAgVVM6ICdodHRwczovL3d3dy56b2hvYXBpcy5jb20nLFxuICBBVTogJ2h0dHBzOi8vd3d3LnpvaG9hcGlzLmNvbS5hdScsXG4gIEVVOiAnaHR0cHM6Ly93d3cuem9ob2FwaXMuZXUnLFxuICBJTjogJ2h0dHBzOi8vd3d3LnpvaG9hcGlzLmluJyxcbiAgQ046ICdodHRwczovL3d3dy56b2hvYXBpcy5jb20uY24nLFxuICBKUDogJ2h0dHBzOi8vd3d3LnpvaG9hcGlzLmpwJyxcbiAgQ0E6ICdodHRwczovL3d3dy56b2hvYXBpc2Nsb3VkLmNhJyxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aE9iamVjdCB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIGRhdGFDZW50ZXI6IFJlZ2lvbktleXM7XG4gIHJlZnJlc2hBY2Nlc1Rva2VuRnVuYzogKCkgPT4gUHJvbWlzZTxzdHJpbmc+O1xufVxuXG4vLyBodHRwczovL3d3dy56b2hvLmNvbS9jcm0vZGV2ZWxvcGVyL2RvY3MvYXBpL3Y2L3Vwc2VydC1yZWNvcmRzLmh0bWwgY2hlY2sgc2VjdGlvbiBTeXN0ZW0tZGVmaW5lZCBEdXBsaWNhdGUgQ2hlY2sgRmllbGRzXG5leHBvcnQgY29uc3QgTU9EVUxFX1dJU0VfRFVQTElDQVRFX0NIRUNLX0ZJRUxEOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBMZWFkczogJ0VtYWlsJyxcbiAgQWNjb3VudHM6ICdBY2NvdW50X05hbWUnLFxuICBDb250YWN0czogJ0VtYWlsJyxcbiAgRGVhbHM6ICdEZWFsX05hbWUnLFxuICBDYW1wYWlnbnM6ICdDYW1wYWlnbl9OYW1lJyxcbiAgQ2FzZXM6ICdTdWJqZWN0JyxcbiAgU29sdXRpb25zOiAnU29sdXRpb25fVGl0bGUnLFxuICBQcm9kdWN0czogJ1Byb2R1Y3RfTmFtZScsXG4gIFZlbmRvcnM6ICdWZW5kb3JfTmFtZScsXG4gIFByaWNlQm9va3M6ICdQcmljZV9Cb29rX05hbWUnLFxuICBRdW90ZXM6ICdTdWJqZWN0JyxcbiAgU2FsZXNPcmRlcnM6ICdTdWJqZWN0JyxcbiAgUHVyY2hhc2VPcmRlcnM6ICdTdWJqZWN0JyxcbiAgSW52b2ljZXM6ICdTdWJqZWN0Jyxcbn07XG5cbi8vIGh0dHBzOi8vd3d3LnpvaG8uY29tL2NybS9kZXZlbG9wZXIvZG9jcy9hcGkvdjYvdXBzZXJ0LXJlY29yZHMuaHRtbFxuZXhwb3J0IGNvbnN0IFVQU0VSVF9NT0RVTEVTID0gW1xuICAnTGVhZHMnLFxuICAnQWNjb3VudHMnLFxuICAnQ29udGFjdHMnLFxuICAnRGVhbHMnLFxuICAnQ2FtcGFpZ25zJyxcbiAgJ0Nhc2VzJyxcbiAgJ1NvbHV0aW9ucycsXG4gICdQcm9kdWN0cycsXG4gICdWZW5kb3JzJyxcbiAgJ1ByaWNlYm9va3MnLFxuICAnUXVvdGVzJyxcbiAgJ1NhbGVzb3JkZXJzJyxcbiAgJ1B1cmNoYXNlb3JkZXJzJyxcbiAgJ0ludm9pY2VzJyxcbiAgJ0FwcG9pbnRtZW50cycsXG4gICdBcHBvaW50bWVudHNfcmVzY2hlZHVsZWRfaGlzdG9yeScsXG4gICdTZXJ2aWNlcycsXG5dO1xuIl19
@@ -12,12 +12,18 @@ export default class ZOHO {
12
12
  zohoAPI: ZOHOAPI;
13
13
  constructor(authObject: AuthObject);
14
14
  private static validateAuthObject;
15
- fetchDynamicFields(moduleName: string): Promise<ApiResponse<{
15
+ fetchDynamicFields({ moduleName, systemRequiredOnly, }: {
16
+ moduleName: string;
17
+ systemRequiredOnly?: boolean;
18
+ }): Promise<ApiResponse<{
16
19
  fields: Field[];
17
20
  }>>;
18
- fetchModules(): Promise<ApiResponse<{
21
+ fetchModules({ upsertOnly, }?: {
22
+ upsertOnly?: boolean;
23
+ }): Promise<ApiResponse<{
19
24
  modules: Module[];
20
25
  }>>;
26
+ fetchModuleWiseDuplicateCheckField(moduleName: string): Promise<string[]>;
21
27
  }
22
28
  export {};
23
29
  //# sourceMappingURL=zoho.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoho.d.ts","sourceRoot":"","sources":["../../../src/sdks/zoho/zoho.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAiB,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAErF,cAAM,OAAO;IACX,UAAU,EAAE,UAAU,CAAC;IAEvB,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,EAAE,UAAU;IAOlC,OAAO,CAAC,aAAa;YAQP,YAAY;IASpB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAajE;AAED,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,OAAO,EAAE,OAAO,CAAC;gBAEL,UAAU,EAAE,UAAU;IAKlC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgBpB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC,CAAC;IAMjF,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAKzE"}
1
+ {"version":3,"file":"zoho.d.ts","sourceRoot":"","sources":["../../../src/sdks/zoho/zoho.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,EACL,MAAM,EAKP,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAiB,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAErF,cAAM,OAAO;IACX,UAAU,EAAE,UAAU,CAAC;IAEvB,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,EAAE,UAAU;IAOlC,OAAO,CAAC,aAAa;YAQP,YAAY;IASpB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAajE;AAED,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,OAAO,EAAE,OAAO,CAAC;gBAEL,UAAU,EAAE,UAAU;IAKlC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgBpB,kBAAkB,CAAC,EAC9B,UAAU,EACV,kBAA0B,GAC3B,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC,CAAC;IAgBhC,YAAY,CAAC,EACxB,UAAkB,GACnB,GAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAwBvC,kCAAkC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAwBvF"}
@@ -59,16 +59,62 @@ class ZOHO {
59
59
  throw new Error('ZOHO a refresh access token function is required.');
60
60
  }
61
61
  }
62
- async fetchDynamicFields(moduleName) {
62
+ async fetchDynamicFields({ moduleName, systemRequiredOnly = false, }) {
63
63
  const fieldsApiPath = `/crm/v6/settings/fields?module=${moduleName}`;
64
64
  const res = await this.zohoAPI.executeGetRequest(fieldsApiPath);
65
- return res;
65
+ if (!systemRequiredOnly || res.type === 'application-error' || res.type === 'client-error') {
66
+ return res;
67
+ }
68
+ const { fields } = res.responseBody;
69
+ const systemFields = fields.filter(({ system_mandatory }) => system_mandatory);
70
+ return {
71
+ ...res,
72
+ responseBody: {
73
+ fields: [...systemFields],
74
+ },
75
+ };
66
76
  }
67
- async fetchModules() {
77
+ async fetchModules({ upsertOnly = false, } = {}) {
68
78
  const objsPath = '/crm/v6/settings/modules';
69
79
  const res = await this.zohoAPI.executeGetRequest(objsPath);
70
- return res;
80
+ if (!upsertOnly || res.type === 'application-error' || res.type === 'client-error') {
81
+ return res;
82
+ }
83
+ const { modules } = res.responseBody;
84
+ const filteredModules = modules.filter(({ api_name }) => types_1.UPSERT_MODULES.some((module) => module === api_name));
85
+ const customGeneratedModules = modules.filter((module) => module.generated_type === types_1.CUSTOM_GENERATED_TYPE);
86
+ return {
87
+ ...res,
88
+ responseBody: {
89
+ modules: [...filteredModules, ...customGeneratedModules],
90
+ },
91
+ };
92
+ }
93
+ // Fetches the module wise duplicate check field for a given module name
94
+ // If the module is custom generated, it returns the system defined duplicate check field
95
+ // If the module is not found, it throws an error
96
+ async fetchModuleWiseDuplicateCheckField(moduleName) {
97
+ const moduleCheckDuplicateField = types_1.MODULE_WISE_DUPLICATE_CHECK_FIELD[moduleName];
98
+ if (moduleCheckDuplicateField) {
99
+ return [moduleCheckDuplicateField];
100
+ }
101
+ const modulesResponse = await this.fetchModules();
102
+ if (modulesResponse.type === 'application-error') {
103
+ throw new Error(`Unable to fetch modules, with error: ${modulesResponse.responseBody.code}`);
104
+ }
105
+ if (modulesResponse.type === 'client-error') {
106
+ throw new Error('Unable to fetch modules');
107
+ }
108
+ const { modules } = modulesResponse.responseBody;
109
+ const module = modules.find(({ api_name }) => api_name === moduleName);
110
+ if (!module) {
111
+ throw new Error(`Module ${moduleName} not found.`);
112
+ }
113
+ if (module.generated_type === types_1.CUSTOM_GENERATED_TYPE) {
114
+ return [types_1.SYSTEM_DEFINED_DUPLICATE_CHECK_FIELD_FOR_CUSTOM_MODULE];
115
+ }
116
+ return [];
71
117
  }
72
118
  }
73
119
  exports.default = ZOHO;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9oby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL3pvaG8vem9oby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFvRjtBQUNwRixtREFBdUU7QUFHdkUsTUFBTSxPQUFPO0lBS1gsWUFBWSxVQUFzQjtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLDJCQUFpQixDQUFDLGFBQWEsQ0FBQyxxQkFBVyxDQUFDLEtBQUssRUFBRTtZQUNuRSxPQUFPLEVBQUUsc0NBQThCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSxtQkFBbUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7YUFDaEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLElBQUk7WUFDRixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7U0FDM0M7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFJLEdBQVc7UUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDekUsUUFBUSxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ3JCLEtBQUssbUJBQW1CO2dCQUN0QixJQUFJLFFBQVEsQ0FBQyxVQUFVLEtBQUssR0FBRyxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFLLGVBQWUsRUFBRTtvQkFDakYsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRDtnQkFDRCxPQUFPLFFBQVEsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztTQUNuQjtJQUNILENBQUM7Q0FDRjtBQUVELE1BQXFCLElBQUk7SUFHdkIsWUFBWSxVQUFzQjtRQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDLFVBQXNCO1FBQ3RELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUN0RSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztTQUNsRDtRQUNELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDakQ7UUFDRCxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxVQUFrQjtRQUNoRCxNQUFNLGFBQWEsR0FBRyxrQ0FBa0MsVUFBVSxFQUFFLENBQUM7UUFDckUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFzQixhQUFhLENBQUMsQ0FBQztRQUNyRixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWTtRQUN2QixNQUFNLFFBQVEsR0FBRywwQkFBMEIsQ0FBQztRQUM1QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQXdCLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBbkNELHVCQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhPYmplY3QsIERBVEFfQ0VOVFJFX0JBU0VfRU5EUE9JTlRTX01BUCwgRmllbGQsIE1vZHVsZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudEZhY3RvcnksIENsaWVudE5hbWVzIH0gZnJvbSAnLi4vLi4vbmV0d29yay9mYWN0b3J5JztcbmltcG9ydCB7IEh0dHBDbGllbnQsIFJlcXVlc3RDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbmV0d29yay9jbGllbnRzL3R5cGVzJztcblxuY2xhc3MgWk9IT0FQSSB7XG4gIGF1dGhPYmplY3Q6IEF1dGhPYmplY3Q7XG5cbiAgaHR0cENsaWVudDogSHR0cENsaWVudDtcblxuICBjb25zdHJ1Y3RvcihhdXRoT2JqZWN0OiBBdXRoT2JqZWN0KSB7XG4gICAgdGhpcy5hdXRoT2JqZWN0ID0gYXV0aE9iamVjdDtcbiAgICB0aGlzLmh0dHBDbGllbnQgPSBIdHRwQ2xpZW50RmFjdG9yeS5nZXRIdHRwQ2xpZW50KENsaWVudE5hbWVzLkF4aW9zLCB7XG4gICAgICBiYXNlVVJMOiBEQVRBX0NFTlRSRV9CQVNFX0VORFBPSU5UU19NQVBbYXV0aE9iamVjdC5kYXRhQ2VudGVyXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXV0aEhlYWRlcigpOiBSZXF1ZXN0Q29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgWm9oby1vYXV0aHRva2VuICR7dGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VufWAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlZnJlc2hUb2tlbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhPYmplY3QucmVmcmVzaEFjY2VzVG9rZW5GdW5jKCk7XG4gICAgICB0aGlzLmF1dGhPYmplY3QuYWNjZXNzVG9rZW4gPSBhY2Nlc3NUb2tlbjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcmVmcmVzaCB0b2tlbiwgd2l0aCBlcnJvcjogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleGVjdXRlR2V0UmVxdWVzdDxUPih1cmw6IHN0cmluZyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cENsaWVudC5nZXQ8VD4odXJsLCB0aGlzLmdldEF1dGhIZWFkZXIoKSk7XG4gICAgc3dpdGNoIChyZXNwb25zZS50eXBlKSB7XG4gICAgICBjYXNlICdhcHBsaWNhdGlvbi1lcnJvcic6XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09PSA0MDEgJiYgcmVzcG9uc2UucmVzcG9uc2VCb2R5LmNvZGUgPT09ICdJTlZBTElEX1RPS0VOJykge1xuICAgICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VD4odXJsLCB0aGlzLmdldEF1dGhIZWFkZXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBaT0hPIHtcbiAgem9ob0FQSTogWk9IT0FQSTtcblxuICBjb25zdHJ1Y3RvcihhdXRoT2JqZWN0OiBBdXRoT2JqZWN0KSB7XG4gICAgWk9ITy52YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdCk7XG4gICAgdGhpcy56b2hvQVBJID0gbmV3IFpPSE9BUEkoYXV0aE9iamVjdCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCkge1xuICAgIGlmICghYXV0aE9iamVjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhdXRoT2JqZWN0IGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuLCBkYXRhQ2VudGVyLCByZWZyZXNoQWNjZXNUb2tlbkZ1bmMgfSA9IGF1dGhPYmplY3Q7XG4gICAgaWYgKCFhY2Nlc3NUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdaT0hPIGFjY2Vzc1Rva2VuIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoIWRhdGFDZW50ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWk9ITyBkYXRhQ2VudGVyIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoIXJlZnJlc2hBY2Nlc1Rva2VuRnVuYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdaT0hPIGEgcmVmcmVzaCBhY2Nlc3MgdG9rZW4gZnVuY3Rpb24gaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoRHluYW1pY0ZpZWxkcyhtb2R1bGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPHsgZmllbGRzOiBGaWVsZFtdIH0+PiB7XG4gICAgY29uc3QgZmllbGRzQXBpUGF0aCA9IGAvY3JtL3Y2L3NldHRpbmdzL2ZpZWxkcz9tb2R1bGU9JHttb2R1bGVOYW1lfWA7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy56b2hvQVBJLmV4ZWN1dGVHZXRSZXF1ZXN0PHsgZmllbGRzOiBGaWVsZFtdIH0+KGZpZWxkc0FwaVBhdGgpO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmV0Y2hNb2R1bGVzKCk6IFByb21pc2U8QXBpUmVzcG9uc2U8eyBtb2R1bGVzOiBNb2R1bGVbXSB9Pj4ge1xuICAgIGNvbnN0IG9ianNQYXRoID0gJy9jcm0vdjYvc2V0dGluZ3MvbW9kdWxlcyc7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy56b2hvQVBJLmV4ZWN1dGVHZXRSZXF1ZXN0PHsgbW9kdWxlczogTW9kdWxlW10gfT4ob2Jqc1BhdGgpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbn1cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9oby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL3pvaG8vem9oby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQVNpQjtBQUNqQixtREFBdUU7QUFHdkUsTUFBTSxPQUFPO0lBS1gsWUFBWSxVQUFzQjtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLDJCQUFpQixDQUFDLGFBQWEsQ0FBQyxxQkFBVyxDQUFDLEtBQUssRUFBRTtZQUNuRSxPQUFPLEVBQUUsc0NBQThCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSxtQkFBbUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7YUFDaEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUM1QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUksR0FBVztRQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFJLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN6RSxRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixLQUFLLG1CQUFt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T0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsVUFBVSxhQUFhLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsY0FBYyxLQUFLLDZCQUFxQixFQUFFLENBQUM7WUFDcEQsT0FBTyxDQUFDLDhEQUFzRCxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBbEdELHVCQWtHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEF1dGhPYmplY3QsXG4gIERBVEFfQ0VOVFJFX0JBU0VfRU5EUE9JTlRTX01BUCxcbiAgRmllbGQsXG4gIE1vZHVsZSxcbiAgTU9EVUxFX1dJU0VfRFVQTElDQVRFX0NIRUNLX0ZJRUxELFxuICBDVVNUT01fR0VORVJBVEVEX1RZUEUsXG4gIFNZU1RFTV9ERUZJTkVEX0RVUExJQ0FURV9DSEVDS19GSUVMRF9GT1JfQ1VTVE9NX01PRFVMRSxcbiAgVVBTRVJUX01PRFVMRVMsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudEZhY3RvcnksIENsaWVudE5hbWVzIH0gZnJvbSAnLi4vLi4vbmV0d29yay9mYWN0b3J5JztcbmltcG9ydCB7IEh0dHBDbGllbnQsIFJlcXVlc3RDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbmV0d29yay9jbGllbnRzL3R5cGVzJztcblxuY2xhc3MgWk9IT0FQSSB7XG4gIGF1dGhPYmplY3Q6IEF1dGhPYmplY3Q7XG5cbiAgaHR0cENsaWVudDogSHR0cENsaWVudDtcblxuICBjb25zdHJ1Y3RvcihhdXRoT2JqZWN0OiBBdXRoT2JqZWN0KSB7XG4gICAgdGhpcy5hdXRoT2JqZWN0ID0gYXV0aE9iamVjdDtcbiAgICB0aGlzLmh0dHBDbGllbnQgPSBIdHRwQ2xpZW50RmFjdG9yeS5nZXRIdHRwQ2xpZW50KENsaWVudE5hbWVzLkF4aW9zLCB7XG4gICAgICBiYXNlVVJMOiBEQVRBX0NFTlRSRV9CQVNFX0VORFBPSU5UU19NQVBbYXV0aE9iamVjdC5kYXRhQ2VudGVyXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXV0aEhlYWRlcigpOiBSZXF1ZXN0Q29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgWm9oby1vYXV0aHRva2VuICR7dGhpcy5hdXRoT2JqZWN0LmFjY2Vzc1Rva2VufWAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlZnJlc2hUb2tlbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhPYmplY3QucmVmcmVzaEFjY2VzVG9rZW5GdW5jKCk7XG4gICAgICB0aGlzLmF1dGhPYmplY3QuYWNjZXNzVG9rZW4gPSBhY2Nlc3NUb2tlbjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcmVmcmVzaCB0b2tlbiwgd2l0aCBlcnJvcjogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleGVjdXRlR2V0UmVxdWVzdDxUPih1cmw6IHN0cmluZyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cENsaWVudC5nZXQ8VD4odXJsLCB0aGlzLmdldEF1dGhIZWFkZXIoKSk7XG4gICAgc3dpdGNoIChyZXNwb25zZS50eXBlKSB7XG4gICAgICBjYXNlICdhcHBsaWNhdGlvbi1lcnJvcic6XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09PSA0MDEgJiYgcmVzcG9uc2UucmVzcG9uc2VCb2R5LmNvZGUgPT09ICdJTlZBTElEX1RPS0VOJykge1xuICAgICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VD4odXJsLCB0aGlzLmdldEF1dGhIZWFkZXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBaT0hPIHtcbiAgem9ob0FQSTogWk9IT0FQSTtcblxuICBjb25zdHJ1Y3RvcihhdXRoT2JqZWN0OiBBdXRoT2JqZWN0KSB7XG4gICAgWk9ITy52YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdCk7XG4gICAgdGhpcy56b2hvQVBJID0gbmV3IFpPSE9BUEkoYXV0aE9iamVjdCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCkge1xuICAgIGlmICghYXV0aE9iamVjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhdXRoT2JqZWN0IGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuLCBkYXRhQ2VudGVyLCByZWZyZXNoQWNjZXNUb2tlbkZ1bmMgfSA9IGF1dGhPYmplY3Q7XG4gICAgaWYgKCFhY2Nlc3NUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdaT0hPIGFjY2Vzc1Rva2VuIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoIWRhdGFDZW50ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWk9ITyBkYXRhQ2VudGVyIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoIXJlZnJlc2hBY2Nlc1Rva2VuRnVuYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdaT0hPIGEgcmVmcmVzaCBhY2Nlc3MgdG9rZW4gZnVuY3Rpb24gaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoRHluYW1pY0ZpZWxkcyh7XG4gICAgbW9kdWxlTmFtZSxcbiAgICBzeXN0ZW1SZXF1aXJlZE9ubHkgPSBmYWxzZSxcbiAgfToge1xuICAgIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgICBzeXN0ZW1SZXF1aXJlZE9ubHk/OiBib29sZWFuO1xuICB9KTogUHJvbWlzZTxBcGlSZXNwb25zZTx7IGZpZWxkczogRmllbGRbXSB9Pj4ge1xuICAgIGNvbnN0IGZpZWxkc0FwaVBhdGggPSBgL2NybS92Ni9zZXR0aW5ncy9maWVsZHM/bW9kdWxlPSR7bW9kdWxlTmFtZX1gO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuem9ob0FQSS5leGVjdXRlR2V0UmVxdWVzdDx7IGZpZWxkczogRmllbGRbXSB9PihmaWVsZHNBcGlQYXRoKTtcbiAgICBpZiAoIXN5c3RlbVJlcXVpcmVkT25seSB8fCByZXMudHlwZSA9PT0gJ2FwcGxpY2F0aW9uLWVycm9yJyB8fCByZXMudHlwZSA9PT0gJ2NsaWVudC1lcnJvcicpIHtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGNvbnN0IHsgZmllbGRzIH0gPSByZXMucmVzcG9uc2VCb2R5O1xuICAgIGNvbnN0IHN5c3RlbUZpZWxkcyA9IGZpZWxkcy5maWx0ZXIoKHsgc3lzdGVtX21hbmRhdG9yeSB9KSA9PiBzeXN0ZW1fbWFuZGF0b3J5KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzLFxuICAgICAgcmVzcG9uc2VCb2R5OiB7XG4gICAgICAgIGZpZWxkczogWy4uLnN5c3RlbUZpZWxkc10sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmV0Y2hNb2R1bGVzKHtcbiAgICB1cHNlcnRPbmx5ID0gZmFsc2UsXG4gIH06IHtcbiAgICB1cHNlcnRPbmx5PzogYm9vbGVhbjtcbiAgfSA9IHt9KTogUHJvbWlzZTxBcGlSZXNwb25zZTx7IG1vZHVsZXM6IE1vZHVsZVtdIH0+PiB7XG4gICAgY29uc3Qgb2Jqc1BhdGggPSAnL2NybS92Ni9zZXR0aW5ncy9tb2R1bGVzJztcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnpvaG9BUEkuZXhlY3V0ZUdldFJlcXVlc3Q8eyBtb2R1bGVzOiBNb2R1bGVbXSB9PihvYmpzUGF0aCk7XG4gICAgaWYgKCF1cHNlcnRPbmx5IHx8IHJlcy50eXBlID09PSAnYXBwbGljYXRpb24tZXJyb3InIHx8IHJlcy50eXBlID09PSAnY2xpZW50LWVycm9yJykge1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgY29uc3QgeyBtb2R1bGVzIH0gPSByZXMucmVzcG9uc2VCb2R5O1xuICAgIGNvbnN0IGZpbHRlcmVkTW9kdWxlcyA9IG1vZHVsZXMuZmlsdGVyKCh7IGFwaV9uYW1lIH0pID0+XG4gICAgICBVUFNFUlRfTU9EVUxFUy5zb21lKChtb2R1bGUpID0+IG1vZHVsZSA9PT0gYXBpX25hbWUpLFxuICAgICk7XG4gICAgY29uc3QgY3VzdG9tR2VuZXJhdGVkTW9kdWxlcyA9IG1vZHVsZXMuZmlsdGVyKFxuICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmdlbmVyYXRlZF90eXBlID09PSBDVVNUT01fR0VORVJBVEVEX1RZUEUsXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzLFxuICAgICAgcmVzcG9uc2VCb2R5OiB7XG4gICAgICAgIG1vZHVsZXM6IFsuLi5maWx0ZXJlZE1vZHVsZXMsIC4uLmN1c3RvbUdlbmVyYXRlZE1vZHVsZXNdLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRmV0Y2hlcyB0aGUgbW9kdWxlIHdpc2UgZHVwbGljYXRlIGNoZWNrIGZpZWxkIGZvciBhIGdpdmVuIG1vZHVsZSBuYW1lXG4gIC8vIElmIHRoZSBtb2R1bGUgaXMgY3VzdG9tIGdlbmVyYXRlZCwgaXQgcmV0dXJucyB0aGUgc3lzdGVtIGRlZmluZWQgZHVwbGljYXRlIGNoZWNrIGZpZWxkXG4gIC8vIElmIHRoZSBtb2R1bGUgaXMgbm90IGZvdW5kLCBpdCB0aHJvd3MgYW4gZXJyb3JcbiAgcHVibGljIGFzeW5jIGZldGNoTW9kdWxlV2lzZUR1cGxpY2F0ZUNoZWNrRmllbGQobW9kdWxlTmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IG1vZHVsZUNoZWNrRHVwbGljYXRlRmllbGQgPSBNT0RVTEVfV0lTRV9EVVBMSUNBVEVfQ0hFQ0tfRklFTERbbW9kdWxlTmFtZV07XG4gICAgaWYgKG1vZHVsZUNoZWNrRHVwbGljYXRlRmllbGQpIHtcbiAgICAgIHJldHVybiBbbW9kdWxlQ2hlY2tEdXBsaWNhdGVGaWVsZF07XG4gICAgfVxuXG4gICAgY29uc3QgbW9kdWxlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaE1vZHVsZXMoKTtcbiAgICBpZiAobW9kdWxlc1Jlc3BvbnNlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi1lcnJvcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZldGNoIG1vZHVsZXMsIHdpdGggZXJyb3I6ICR7bW9kdWxlc1Jlc3BvbnNlLnJlc3BvbnNlQm9keS5jb2RlfWApO1xuICAgIH1cbiAgICBpZiAobW9kdWxlc1Jlc3BvbnNlLnR5cGUgPT09ICdjbGllbnQtZXJyb3InKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmZXRjaCBtb2R1bGVzJyk7XG4gICAgfVxuICAgIGNvbnN0IHsgbW9kdWxlcyB9ID0gbW9kdWxlc1Jlc3BvbnNlLnJlc3BvbnNlQm9keTtcbiAgICBjb25zdCBtb2R1bGUgPSBtb2R1bGVzLmZpbmQoKHsgYXBpX25hbWUgfSkgPT4gYXBpX25hbWUgPT09IG1vZHVsZU5hbWUpO1xuICAgIGlmICghbW9kdWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSAke21vZHVsZU5hbWV9IG5vdCBmb3VuZC5gKTtcbiAgICB9XG5cbiAgICBpZiAobW9kdWxlLmdlbmVyYXRlZF90eXBlID09PSBDVVNUT01fR0VORVJBVEVEX1RZUEUpIHtcbiAgICAgIHJldHVybiBbU1lTVEVNX0RFRklORURfRFVQTElDQVRFX0NIRUNLX0ZJRUxEX0ZPUl9DVVNUT01fTU9EVUxFXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXX0=