@cloudbase/js-sdk 3.4.4 → 3.4.6

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/miniprogram_dist/app.js +1 -1
  5. package/miniprogram_dist/index.js +1 -1
  6. package/node_modules/@cloudbase/ai/package.json +3 -3
  7. package/node_modules/@cloudbase/apis/package.json +3 -3
  8. package/node_modules/@cloudbase/app/dist/cjs/constants/common.d.ts +1 -1
  9. package/node_modules/@cloudbase/app/dist/cjs/constants/common.js +3 -3
  10. package/node_modules/@cloudbase/app/dist/cjs/index.node.js +11 -4
  11. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/context.d.ts +7 -3
  12. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/context.js +67 -40
  13. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/index.d.ts +4 -2
  14. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/index.js +28 -2
  15. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/request.d.ts +3 -0
  16. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/request.js +145 -104
  17. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/tool.js +151 -25
  18. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/types.d.ts +24 -0
  19. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/types.js +1 -1
  20. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/utils.d.ts +21 -1
  21. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/utils.js +76 -11
  22. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/wx.d.ts +39 -0
  23. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/wx.js +272 -0
  24. package/node_modules/@cloudbase/app/dist/esm/constants/common.d.ts +1 -1
  25. package/node_modules/@cloudbase/app/dist/esm/constants/common.js +3 -3
  26. package/node_modules/@cloudbase/app/dist/esm/index.node.js +10 -3
  27. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/context.d.ts +7 -3
  28. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/context.js +63 -38
  29. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/index.d.ts +4 -2
  30. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/index.js +4 -2
  31. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/request.d.ts +3 -0
  32. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/request.js +145 -104
  33. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/tool.js +153 -27
  34. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/types.d.ts +24 -0
  35. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/types.js +1 -1
  36. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/utils.d.ts +21 -1
  37. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/utils.js +68 -9
  38. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/wx.d.ts +39 -0
  39. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/wx.js +237 -0
  40. package/node_modules/@cloudbase/app/package.json +3 -3
  41. package/node_modules/@cloudbase/auth/package.json +3 -3
  42. package/node_modules/@cloudbase/cloudrun/package.json +3 -3
  43. package/node_modules/@cloudbase/container/package.json +2 -2
  44. package/node_modules/@cloudbase/functions/package.json +4 -4
  45. package/node_modules/@cloudbase/model/package.json +3 -3
  46. package/node_modules/@cloudbase/mysql/package.json +1 -1
  47. package/node_modules/@cloudbase/oauth/package.json +2 -2
  48. package/node_modules/@cloudbase/realtime/package.json +2 -2
  49. package/node_modules/@cloudbase/storage/package.json +3 -3
  50. package/node_modules/@cloudbase/types/package.json +1 -1
  51. package/node_modules/@cloudbase/utilities/package.json +2 -2
  52. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/ai",
3
- "version": "3.4.4",
3
+ "version": "3.4.6",
4
4
  "description": "cloudbase js sdk ai module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -22,8 +22,8 @@
22
22
  "author": "",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
- "@cloudbase/types": "3.4.4",
26
- "@cloudbase/utilities": "3.4.4",
25
+ "@cloudbase/types": "3.4.6",
26
+ "@cloudbase/utilities": "3.4.6",
27
27
  "@mattiasbuelens/web-streams-adapter": "^0.1.0",
28
28
  "text-encoding-shim": "^1.0.5",
29
29
  "web-streams-polyfill": "^4.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/apis",
3
- "version": "3.4.4",
3
+ "version": "3.4.6",
4
4
  "description": "cloudbase js sdk apis module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -22,7 +22,7 @@
22
22
  "author": "",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
- "@cloudbase/types": "3.4.4",
26
- "@cloudbase/utilities": "3.4.4"
25
+ "@cloudbase/types": "3.4.6",
26
+ "@cloudbase/utilities": "3.4.6"
27
27
  }
28
28
  }
@@ -20,7 +20,7 @@ export interface ISetEndPointWithKey {
20
20
  url?: string;
21
21
  protocol?: 'http' | 'https';
22
22
  }
23
- export declare function setGatewayEndPointWithEnv(env: string, protocol?: Protocol, init?: boolean): void;
23
+ export declare function setGatewayEndPointWithEnv(env: string, protocol?: Protocol, intl?: boolean): void;
24
24
  export declare function setRegionLevelEndpoint(env: string, region: string, protocol?: Protocol): void;
25
25
  export declare function getBaseEndPoint(env: string, endPointKey?: EndPointKey): string;
26
26
  export declare enum LOGINTYPE {
@@ -66,9 +66,9 @@ function getEndPointInfo(env, endPointKey, region) {
66
66
  return findMatchedInfo({ env: env, endPointKey: endPointKey, region: region });
67
67
  }
68
68
  exports.getEndPointInfo = getEndPointInfo;
69
- function setGatewayEndPointWithEnv(env, protocol, init) {
69
+ function setGatewayEndPointWithEnv(env, protocol, intl) {
70
70
  var baseUrl = "//".concat(env, ".api.tcloudbasegateway.com/v1");
71
- if (init) {
71
+ if (intl) {
72
72
  baseUrl = "//".concat(env, ".api.intl.tcloudbasegateway.com/v1");
73
73
  }
74
74
  setEndPointInfo({ endPointKey: 'GATEWAY', env: env, baseUrl: baseUrl, protocol: protocol });
@@ -100,4 +100,4 @@ var LOGINTYPE;
100
100
  LOGINTYPE["PHONE"] = "PHONE";
101
101
  })(LOGINTYPE = exports.LOGINTYPE || (exports.LOGINTYPE = {}));
102
102
  exports.OAUTH2_LOGINTYPE_PREFIX = 'OAUTH2';
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSxrREFBZ0Q7QUFHeEMsSUFBWSxtQkFBbUIsR0FBd0MscUJBQVMsV0FBakQsRUFBZSxvQkFBb0IsR0FBSyxxQkFBUyxZQUFkLENBQWM7QUFJeEYsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ25CLElBQUksT0FBTyxHQUFHLG1CQUFtQixDQUFBO0FBRWpDLFNBQWdCLGFBQWEsQ0FBQyxPQUFlO0lBQzNDLFVBQVUsR0FBRyxPQUFPLENBQUE7QUFDdEIsQ0FBQztBQUZELHNDQUVDO0FBQ0QsU0FBZ0IsYUFBYTtJQUMzQixPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRkQsc0NBRUM7QUFDRCxTQUFnQixVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ2QsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUhELGdDQUdDO0FBQ0QsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBRkQsZ0NBRUM7QUFDWSxRQUFBLFlBQVksR0FBRyxZQUFZLENBQUE7QUFpQnhDLElBQU0sa0JBQWtCLEdBQXdCLEVBQUUsQ0FBQTtBQUdsRCxJQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUV0RCxRQUFBLGdCQUFnQixHQUF1QixRQUFRLENBQUE7QUFFNUQsU0FBUyxlQUFlLENBQUMsSUFBa0I7SUFFekMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBQSxVQUFVLElBQUksT0FBQSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsVUFBQSxTQUFTLElBQUksT0FBQSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUF2QixDQUF1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O0FBRUQsSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25CLDBCQUFhLENBQUE7SUFDYixvQ0FBdUIsQ0FBQTtJQUN2Qiw4QkFBaUIsQ0FBQTtJQUNqQiw0Q0FBK0IsQ0FBQTtJQUMvQix3Q0FBMkIsQ0FBQTtJQUMzQiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFVcEI7QUFFWSxRQUFBLHVCQUF1QixHQUFHLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZFBvaW50S2V5IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuXG4vLyBAdHMtaWdub3JlXG5jb25zdCB7IHNldFNka05hbWU6IHNldFV0aWxpdGllc1Nka05hbWUsIHNldFByb3RvY29sOiBzZXRVdGlsaXRpZXNQcm90b2NvbCB9ID0gY29uc3RhbnRzXG4vKipcbiAqIFNES1xuICovXG5sZXQgc2RrVmVyc2lvbiA9ICcnXG5sZXQgc2RrTmFtZSA9ICdAY2xvdWRiYXNlL2pzLXNkaydcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNka1ZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gIHNka1ZlcnNpb24gPSB2ZXJzaW9uXG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2RrVmVyc2lvbigpIHtcbiAgcmV0dXJuIHNka1ZlcnNpb25cbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICBzZGtOYW1lID0gbmFtZVxuICBzZXRVdGlsaXRpZXNTZGtOYW1lKG5hbWUpXG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2RrTmFtZSgpIHtcbiAgcmV0dXJuIHNka05hbWVcbn1cbmV4cG9ydCBjb25zdCBEQVRBX1ZFUlNJT04gPSAnMjAyMC0wMS0xMCdcblxuaW50ZXJmYWNlIEVuZFBvaW50SW5mbyB7XG4gIGVudjogc3RyaW5nXG4gIGVuZFBvaW50S2V5OiBFbmRQb2ludEtleVxuICByZWdpb24/OiBzdHJpbmdcbiAgYmFzZVVybD86IHN0cmluZ1xuICBwcm90b2NvbD86IFByb3RvY29sXG59XG5cbnR5cGUgUHJvdG9jb2wgPSAnaHR0cCcgfCAnaHR0cHMnIHwgJ2h0dHA6JyB8ICdodHRwczonXG5cbi8qKlxuICogIOaJgOaciSBlbmRQb2ludCDkv6Hmga9cbiAqICDpgb/lhY3nm7TmjqXmk43kvZzor6XmlbDnu4RcbiAqICDkvb/nlKggc2V0RW5kUG9pbnRJbmZv44CBIGdldEVuZFBvaW50SW5mb1xuICovXG5jb25zdCBFTkRfUE9JTlRfSU5GT19BUlI6IEFycmF5PEVuZFBvaW50SW5mbz4gPSBbXVxuXG4vKiog55So5p2l5p+l5om+IGVuZFBvaW50IOeahOWtl+autSAqL1xuY29uc3QgRU5EX1BPSU5UX0lORk9fU0VBUkNIX0tFWVMgPSBbJ2VudicsICdlbmRQb2ludEtleScsICdyZWdpb24nXVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QUk9UT0NPTDogJ2h0dHA6JyB8ICdodHRwczonID0gJ2h0dHBzOidcblxuZnVuY3Rpb24gZmluZE1hdGNoZWRJbmZvKGluZm86IEVuZFBvaW50SW5mbykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlbiwgZXFlcWVxXG4gIHJldHVybiBFTkRfUE9JTlRfSU5GT19BUlIuZmluZCh0YXJnZXRJbmZvID0+IEVORF9QT0lOVF9JTkZPX1NFQVJDSF9LRVlTLmZpbHRlcihzZWFyY2hLZXkgPT4gaW5mb1tzZWFyY2hLZXldICE9IG51bGwpLmV2ZXJ5KHNlYXJjaEtleSA9PiB0YXJnZXRJbmZvW3NlYXJjaEtleV0gPT09IGluZm9bc2VhcmNoS2V5XSwpLClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVuZFBvaW50SW5mbyhuZXdJbmZvOiBFbmRQb2ludEluZm8pIHtcbiAgaWYgKG5ld0luZm8ucHJvdG9jb2wgJiYgIS86JC8udGVzdChuZXdJbmZvLnByb3RvY29sKSkge1xuICAgIG5ld0luZm8ucHJvdG9jb2wgPSBgJHtuZXdJbmZvLnByb3RvY29sfTpgIGFzIFByb3RvY29sXG4gIH1cblxuICBjb25zdCBlbmRQb2ludEluZm8gPSBmaW5kTWF0Y2hlZEluZm8obmV3SW5mbylcbiAgaWYgKGVuZFBvaW50SW5mbykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICBpZiAobmV3SW5mby5iYXNlVXJsICE9IG51bGwpIHtcbiAgICAgIGVuZFBvaW50SW5mby5iYXNlVXJsID0gbmV3SW5mby5iYXNlVXJsXG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICBpZiAobmV3SW5mby5wcm90b2NvbCAhPSBudWxsKSB7XG4gICAgICBlbmRQb2ludEluZm8ucHJvdG9jb2wgPSBuZXdJbmZvLnByb3RvY29sXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIEVORF9QT0lOVF9JTkZPX0FSUi5wdXNoKHsgLi4ubmV3SW5mbywgcHJvdG9jb2w6IG5ld0luZm8ucHJvdG9jb2wgPz8gREVGQVVMVF9QUk9UT0NPTCB9KVxuICB9XG5cbiAgLy8g5L+d5oyB5pen5Luj56CB6YC76L6RXG4gIGlmIChuZXdJbmZvLmVuZFBvaW50S2V5ID09PSAnQ0xPVURfQVBJJykge1xuICAgIHNldFV0aWxpdGllc1Byb3RvY29sKChuZXdJbmZvLnByb3RvY29sID8/IERFRkFVTFRfUFJPVE9DT0wpIGFzICdodHRwOicgfCAnaHR0cHM6JylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5kUG9pbnRJbmZvKGVudjogc3RyaW5nLCBlbmRQb2ludEtleTogRW5kUG9pbnRLZXksIHJlZ2lvbj86IHN0cmluZykge1xuICByZXR1cm4gZmluZE1hdGNoZWRJbmZvKHsgZW52LCBlbmRQb2ludEtleSwgcmVnaW9uIH0pXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNldEVuZFBvaW50V2l0aEtleSB7XG4gIGtleTogRW5kUG9pbnRLZXlcbiAgdXJsPzogc3RyaW5nXG4gIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudihlbnY6IHN0cmluZywgcHJvdG9jb2w/OiBQcm90b2NvbCwgaW5pdD86IGJvb2xlYW4pIHtcbiAgbGV0IGJhc2VVcmwgPSBgLy8ke2Vudn0uYXBpLnRjbG91ZGJhc2VnYXRld2F5LmNvbS92MWBcblxuICBpZiAoaW5pdCkge1xuICAgIGJhc2VVcmwgPSBgLy8ke2Vudn0uYXBpLmludGwudGNsb3VkYmFzZWdhdGV3YXkuY29tL3YxYFxuICB9XG5cbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW5kUG9pbnRLZXk6ICdHQVRFV0FZJywgZW52LCBiYXNlVXJsLCBwcm90b2NvbCB9KVxufVxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQoZW52OiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nLCBwcm90b2NvbD86IFByb3RvY29sKSB7XG4gIGNvbnN0IGJhc2VVcmwgPSBgLy8ke2Vudn0uJHtyZWdpb24gfHwgJ2FwLXNoYW5naGFpJ30udGNiLWFwaS50ZW5jZW50Y2xvdWRhcGkuY29tL3dlYmBcbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW52LCByZWdpb24sIGJhc2VVcmwsIHByb3RvY29sLCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2VFbmRQb2ludChlbnY6IHN0cmluZywgZW5kUG9pbnRLZXk6IEVuZFBvaW50S2V5ID0gJ0NMT1VEX0FQSScpIHtcbiAgY29uc3QgaW5mbyA9IGdldEVuZFBvaW50SW5mbyhlbnYsIGVuZFBvaW50S2V5IHx8ICdDTE9VRF9BUEknKVxuXG4gIGNvbnN0IHsgcHJvdG9jb2w6IFBST1RPQ09MLCBiYXNlVXJsOiBCQVNFX1VSTCB9ID0gaW5mb1xuICBjb25zdCB3ZWJFbmRwb2ludCA9IGAke1BST1RPQ09MfSR7QkFTRV9VUkx9YFxuICAvLyBAdG9kbyDkuLTml7blhbzlrrnlsI/nqIvluo9cbiAgcmV0dXJuIHdlYkVuZHBvaW50Lm1hdGNoKC8oaHR0cChzKT86KT9cXC9cXC8oW14vPyNdKikvKVswXVxuICAvLyByZXR1cm4gYCR7bmV3IFVSTCh3ZWJFbmRwb2ludCkub3JpZ2lufWBcbn1cblxuZXhwb3J0IGVudW0gTE9HSU5UWVBFIHtcbiAgTlVMTCA9ICdOVUxMJyxcbiAgQU5PTllNT1VTID0gJ0FOT05ZTU9VUycsXG4gIFdFQ0hBVCA9ICdXRUNIQVQnLFxuICBXRUNIQVRfUFVCTElDID0gJ1dFQ0hBVC1QVUJMSUMnLFxuICBXRUNIQVRfT1BFTiA9ICdXRUNIQVQtT1BFTicsXG4gIENVU1RPTSA9ICdDVVNUT00nLFxuICBFTUFJTCA9ICdFTUFJTCcsXG4gIFVTRVJOQU1FID0gJ1VTRVJOQU1FJyxcbiAgUEhPTkUgPSAnUEhPTkUnLFxufVxuXG5leHBvcnQgY29uc3QgT0FVVEgyX0xPR0lOVFlQRV9QUkVGSVggPSAnT0FVVEgyJ1xuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSxrREFBZ0Q7QUFHeEMsSUFBWSxtQkFBbUIsR0FBd0MscUJBQVMsV0FBakQsRUFBZSxvQkFBb0IsR0FBSyxxQkFBUyxZQUFkLENBQWM7QUFJeEYsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ25CLElBQUksT0FBTyxHQUFHLG1CQUFtQixDQUFBO0FBRWpDLFNBQWdCLGFBQWEsQ0FBQyxPQUFlO0lBQzNDLFVBQVUsR0FBRyxPQUFPLENBQUE7QUFDdEIsQ0FBQztBQUZELHNDQUVDO0FBQ0QsU0FBZ0IsYUFBYTtJQUMzQixPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRkQsc0NBRUM7QUFDRCxTQUFnQixVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ2QsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUhELGdDQUdDO0FBQ0QsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBRkQsZ0NBRUM7QUFDWSxRQUFBLFlBQVksR0FBRyxZQUFZLENBQUE7QUFpQnhDLElBQU0sa0JBQWtCLEdBQXdCLEVBQUUsQ0FBQTtBQUdsRCxJQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUV0RCxRQUFBLGdCQUFnQixHQUF1QixRQUFRLENBQUE7QUFFNUQsU0FBUyxlQUFlLENBQUMsSUFBa0I7SUFFekMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBQSxVQUFVLElBQUksT0FBQSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsVUFBQSxTQUFTLElBQUksT0FBQSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUF2QixDQUF1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O0FBRUQsSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25CLDBCQUFhLENBQUE7SUFDYixvQ0FBdUIsQ0FBQTtJQUN2Qiw4QkFBaUIsQ0FBQTtJQUNqQiw0Q0FBK0IsQ0FBQTtJQUMvQix3Q0FBMkIsQ0FBQTtJQUMzQiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFVcEI7QUFFWSxRQUFBLHVCQUF1QixHQUFHLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZFBvaW50S2V5IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuXG4vLyBAdHMtaWdub3JlXG5jb25zdCB7IHNldFNka05hbWU6IHNldFV0aWxpdGllc1Nka05hbWUsIHNldFByb3RvY29sOiBzZXRVdGlsaXRpZXNQcm90b2NvbCB9ID0gY29uc3RhbnRzXG4vKipcbiAqIFNES1xuICovXG5sZXQgc2RrVmVyc2lvbiA9ICcnXG5sZXQgc2RrTmFtZSA9ICdAY2xvdWRiYXNlL2pzLXNkaydcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNka1ZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gIHNka1ZlcnNpb24gPSB2ZXJzaW9uXG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2RrVmVyc2lvbigpIHtcbiAgcmV0dXJuIHNka1ZlcnNpb25cbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICBzZGtOYW1lID0gbmFtZVxuICBzZXRVdGlsaXRpZXNTZGtOYW1lKG5hbWUpXG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2RrTmFtZSgpIHtcbiAgcmV0dXJuIHNka05hbWVcbn1cbmV4cG9ydCBjb25zdCBEQVRBX1ZFUlNJT04gPSAnMjAyMC0wMS0xMCdcblxuaW50ZXJmYWNlIEVuZFBvaW50SW5mbyB7XG4gIGVudjogc3RyaW5nXG4gIGVuZFBvaW50S2V5OiBFbmRQb2ludEtleVxuICByZWdpb24/OiBzdHJpbmdcbiAgYmFzZVVybD86IHN0cmluZ1xuICBwcm90b2NvbD86IFByb3RvY29sXG59XG5cbnR5cGUgUHJvdG9jb2wgPSAnaHR0cCcgfCAnaHR0cHMnIHwgJ2h0dHA6JyB8ICdodHRwczonXG5cbi8qKlxuICogIOaJgOaciSBlbmRQb2ludCDkv6Hmga9cbiAqICDpgb/lhY3nm7TmjqXmk43kvZzor6XmlbDnu4RcbiAqICDkvb/nlKggc2V0RW5kUG9pbnRJbmZv44CBIGdldEVuZFBvaW50SW5mb1xuICovXG5jb25zdCBFTkRfUE9JTlRfSU5GT19BUlI6IEFycmF5PEVuZFBvaW50SW5mbz4gPSBbXVxuXG4vKiog55So5p2l5p+l5om+IGVuZFBvaW50IOeahOWtl+autSAqL1xuY29uc3QgRU5EX1BPSU5UX0lORk9fU0VBUkNIX0tFWVMgPSBbJ2VudicsICdlbmRQb2ludEtleScsICdyZWdpb24nXVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QUk9UT0NPTDogJ2h0dHA6JyB8ICdodHRwczonID0gJ2h0dHBzOidcblxuZnVuY3Rpb24gZmluZE1hdGNoZWRJbmZvKGluZm86IEVuZFBvaW50SW5mbykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlbiwgZXFlcWVxXG4gIHJldHVybiBFTkRfUE9JTlRfSU5GT19BUlIuZmluZCh0YXJnZXRJbmZvID0+IEVORF9QT0lOVF9JTkZPX1NFQVJDSF9LRVlTLmZpbHRlcihzZWFyY2hLZXkgPT4gaW5mb1tzZWFyY2hLZXldICE9IG51bGwpLmV2ZXJ5KHNlYXJjaEtleSA9PiB0YXJnZXRJbmZvW3NlYXJjaEtleV0gPT09IGluZm9bc2VhcmNoS2V5XSwpLClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVuZFBvaW50SW5mbyhuZXdJbmZvOiBFbmRQb2ludEluZm8pIHtcbiAgaWYgKG5ld0luZm8ucHJvdG9jb2wgJiYgIS86JC8udGVzdChuZXdJbmZvLnByb3RvY29sKSkge1xuICAgIG5ld0luZm8ucHJvdG9jb2wgPSBgJHtuZXdJbmZvLnByb3RvY29sfTpgIGFzIFByb3RvY29sXG4gIH1cblxuICBjb25zdCBlbmRQb2ludEluZm8gPSBmaW5kTWF0Y2hlZEluZm8obmV3SW5mbylcbiAgaWYgKGVuZFBvaW50SW5mbykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICBpZiAobmV3SW5mby5iYXNlVXJsICE9IG51bGwpIHtcbiAgICAgIGVuZFBvaW50SW5mby5iYXNlVXJsID0gbmV3SW5mby5iYXNlVXJsXG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICBpZiAobmV3SW5mby5wcm90b2NvbCAhPSBudWxsKSB7XG4gICAgICBlbmRQb2ludEluZm8ucHJvdG9jb2wgPSBuZXdJbmZvLnByb3RvY29sXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIEVORF9QT0lOVF9JTkZPX0FSUi5wdXNoKHsgLi4ubmV3SW5mbywgcHJvdG9jb2w6IG5ld0luZm8ucHJvdG9jb2wgPz8gREVGQVVMVF9QUk9UT0NPTCB9KVxuICB9XG5cbiAgLy8g5L+d5oyB5pen5Luj56CB6YC76L6RXG4gIGlmIChuZXdJbmZvLmVuZFBvaW50S2V5ID09PSAnQ0xPVURfQVBJJykge1xuICAgIHNldFV0aWxpdGllc1Byb3RvY29sKChuZXdJbmZvLnByb3RvY29sID8/IERFRkFVTFRfUFJPVE9DT0wpIGFzICdodHRwOicgfCAnaHR0cHM6JylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5kUG9pbnRJbmZvKGVudjogc3RyaW5nLCBlbmRQb2ludEtleTogRW5kUG9pbnRLZXksIHJlZ2lvbj86IHN0cmluZykge1xuICByZXR1cm4gZmluZE1hdGNoZWRJbmZvKHsgZW52LCBlbmRQb2ludEtleSwgcmVnaW9uIH0pXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNldEVuZFBvaW50V2l0aEtleSB7XG4gIGtleTogRW5kUG9pbnRLZXlcbiAgdXJsPzogc3RyaW5nXG4gIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudihlbnY6IHN0cmluZywgcHJvdG9jb2w/OiBQcm90b2NvbCwgaW50bD86IGJvb2xlYW4pIHtcbiAgbGV0IGJhc2VVcmwgPSBgLy8ke2Vudn0uYXBpLnRjbG91ZGJhc2VnYXRld2F5LmNvbS92MWBcblxuICBpZiAoaW50bCkge1xuICAgIGJhc2VVcmwgPSBgLy8ke2Vudn0uYXBpLmludGwudGNsb3VkYmFzZWdhdGV3YXkuY29tL3YxYFxuICB9XG5cbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW5kUG9pbnRLZXk6ICdHQVRFV0FZJywgZW52LCBiYXNlVXJsLCBwcm90b2NvbCB9KVxufVxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQoZW52OiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nLCBwcm90b2NvbD86IFByb3RvY29sKSB7XG4gIGNvbnN0IGJhc2VVcmwgPSBgLy8ke2Vudn0uJHtyZWdpb24gfHwgJ2FwLXNoYW5naGFpJ30udGNiLWFwaS50ZW5jZW50Y2xvdWRhcGkuY29tL3dlYmBcbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW52LCByZWdpb24sIGJhc2VVcmwsIHByb3RvY29sLCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2VFbmRQb2ludChlbnY6IHN0cmluZywgZW5kUG9pbnRLZXk6IEVuZFBvaW50S2V5ID0gJ0NMT1VEX0FQSScpIHtcbiAgY29uc3QgaW5mbyA9IGdldEVuZFBvaW50SW5mbyhlbnYsIGVuZFBvaW50S2V5IHx8ICdDTE9VRF9BUEknKVxuXG4gIGNvbnN0IHsgcHJvdG9jb2w6IFBST1RPQ09MLCBiYXNlVXJsOiBCQVNFX1VSTCB9ID0gaW5mb1xuICBjb25zdCB3ZWJFbmRwb2ludCA9IGAke1BST1RPQ09MfSR7QkFTRV9VUkx9YFxuICAvLyBAdG9kbyDkuLTml7blhbzlrrnlsI/nqIvluo9cbiAgcmV0dXJuIHdlYkVuZHBvaW50Lm1hdGNoKC8oaHR0cChzKT86KT9cXC9cXC8oW14vPyNdKikvKVswXVxuICAvLyByZXR1cm4gYCR7bmV3IFVSTCh3ZWJFbmRwb2ludCkub3JpZ2lufWBcbn1cblxuZXhwb3J0IGVudW0gTE9HSU5UWVBFIHtcbiAgTlVMTCA9ICdOVUxMJyxcbiAgQU5PTllNT1VTID0gJ0FOT05ZTU9VUycsXG4gIFdFQ0hBVCA9ICdXRUNIQVQnLFxuICBXRUNIQVRfUFVCTElDID0gJ1dFQ0hBVC1QVUJMSUMnLFxuICBXRUNIQVRfT1BFTiA9ICdXRUNIQVQtT1BFTicsXG4gIENVU1RPTSA9ICdDVVNUT00nLFxuICBFTUFJTCA9ICdFTUFJTCcsXG4gIFVTRVJOQU1FID0gJ1VTRVJOQU1FJyxcbiAgUEhPTkUgPSAnUEhPTkUnLFxufVxuXG5leHBvcnQgY29uc3QgT0FVVEgyX0xPR0lOVFlQRV9QUkVGSVggPSAnT0FVVEgyJ1xuIl19
@@ -7,14 +7,21 @@ exports.cloudbase = exports.LANGS = exports.getBaseEndPoint = void 0;
7
7
  var index_1 = __importDefault(require("./index"));
8
8
  exports.cloudbase = index_1.default;
9
9
  var common_1 = require("./constants/common");
10
- Object.defineProperty(exports, "getBaseEndPoint", { enumerable: true, get: function () { return common_1.getBaseEndPoint; } });
10
+ var common_2 = require("./constants/common");
11
+ Object.defineProperty(exports, "getBaseEndPoint", { enumerable: true, get: function () { return common_2.getBaseEndPoint; } });
11
12
  var lang_1 = require("./libs/lang");
12
13
  Object.defineProperty(exports, "LANGS", { enumerable: true, get: function () { return lang_1.LANGS; } });
13
14
  try {
14
- var nodeAdapter = require('./libs/adapter-node').default;
15
- index_1.default.useAdapters(nodeAdapter);
15
+ var nodeAdapter = require('./libs/adapter-node');
16
+ index_1.default.useAdapters(nodeAdapter.default);
17
+ var cb = index_1.default;
18
+ cb.version = (0, common_1.getSdkVersion)();
19
+ cb.SYMBOL_CURRENT_ENV = nodeAdapter.SYMBOL_CURRENT_ENV;
20
+ cb.SYMBOL_DEFAULT_ENV = nodeAdapter.SYMBOL_DEFAULT_ENV;
21
+ cb.parseContext = nodeAdapter.parseContext;
22
+ cb.getCloudbaseContext = nodeAdapter.getCloudbaseContext;
16
23
  }
17
24
  catch (error) {
18
25
  }
19
26
  exports.default = index_1.default;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC5ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUlBLGtEQUErQjtBQUt0QixvQkFMRixlQUFTLENBS0U7QUFIbEIsNkNBQW9EO0FBQTNDLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixvQ0FBbUM7QUFBMUIsNkZBQUEsS0FBSyxPQUFBO0FBS2QsSUFBSTtJQUVGLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtJQUMxRCxlQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0NBQ25DO0FBQUMsT0FBTyxLQUFLLEVBQUU7Q0FFZjtBQUdELGtCQUFlLGVBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTm9kZS5qcyDlhaXlj6NcbiAqIOW8leeUqCBiYXNlIOaooeWdl+eahOWFqOmDqOWvvOWHuu+8jOW5tumineWkluWKoOi9vSBOb2RlIGFkYXB0ZXJcbiAqL1xuaW1wb3J0IGNsb3VkYmFzZSBmcm9tICcuL2luZGV4J1xuXG5leHBvcnQgeyBnZXRCYXNlRW5kUG9pbnQgfSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5leHBvcnQgeyBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuZXhwb3J0IHR5cGUgeyBDbG91ZGJhc2UgfSBmcm9tICcuL2luZGV4J1xuZXhwb3J0IHsgY2xvdWRiYXNlIH1cblxuLy8gTm9kZSDnjq/looPkuIvliqDovb0gTm9kZSBhZGFwdGVyXG50cnkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlcywgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICBjb25zdCBub2RlQWRhcHRlciA9IHJlcXVpcmUoJy4vbGlicy9hZGFwdGVyLW5vZGUnKS5kZWZhdWx0XG4gIGNsb3VkYmFzZS51c2VBZGFwdGVycyhub2RlQWRhcHRlcilcbn0gY2F0Y2ggKGVycm9yKSB7XG4gIC8vIHRocm93IGVycm9yXG59XG5cbi8vIOm7mOiupOWvvOWHuuWunuS+i1xuZXhwb3J0IGRlZmF1bHQgY2xvdWRiYXNlXG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC5ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUlBLGtEQUErQjtBQU10QixvQkFORixlQUFTLENBTUU7QUFMbEIsNkNBQWtEO0FBRWxELDZDQUFvRDtBQUEzQyx5R0FBQSxlQUFlLE9BQUE7QUFDeEIsb0NBQW1DO0FBQTFCLDZGQUFBLEtBQUssT0FBQTtBQUtkLElBQUk7SUFFRixJQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUVsRCxlQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUcxQyxJQUFNLEVBQUUsR0FBRyxlQUFnQixDQUFBO0lBQzNCLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBQSxzQkFBYSxHQUFFLENBQUE7SUFDNUIsRUFBRSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQTtJQUN0RCxFQUFFLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFBO0lBQ3RELEVBQUUsQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQTtJQUMxQyxFQUFFLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixDQUFBO0NBQ3pEO0FBQUMsT0FBTyxLQUFLLEVBQUU7Q0FFZjtBQUdELGtCQUFlLGVBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTm9kZS5qcyDlhaXlj6NcbiAqIOW8leeUqCBiYXNlIOaooeWdl+eahOWFqOmDqOWvvOWHuu+8jOW5tumineWkluWKoOi9vSBOb2RlIGFkYXB0ZXJcbiAqL1xuaW1wb3J0IGNsb3VkYmFzZSBmcm9tICcuL2luZGV4J1xuaW1wb3J0IHsgZ2V0U2RrVmVyc2lvbiB9IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcblxuZXhwb3J0IHsgZ2V0QmFzZUVuZFBvaW50IH0gZnJvbSAnLi9jb25zdGFudHMvY29tbW9uJ1xuZXhwb3J0IHsgTEFOR1MgfSBmcm9tICcuL2xpYnMvbGFuZydcbmV4cG9ydCB0eXBlIHsgQ2xvdWRiYXNlIH0gZnJvbSAnLi9pbmRleCdcbmV4cG9ydCB7IGNsb3VkYmFzZSB9XG5cbi8vIE5vZGUg546v5aKD5LiL5Yqg6L29IE5vZGUgYWRhcHRlclxudHJ5IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgY29uc3Qgbm9kZUFkYXB0ZXIgPSByZXF1aXJlKCcuL2xpYnMvYWRhcHRlci1ub2RlJylcblxuICBjbG91ZGJhc2UudXNlQWRhcHRlcnMobm9kZUFkYXB0ZXIuZGVmYXVsdClcblxuICAvLyDlsIYgbm9kZS1zZGsg5bi455So55qE6Z2Z5oCB5bGe5oCnL+aWueazleaMguWIsCBjbG91ZGJhc2Ug5a6e5L6L5LiKXG4gIGNvbnN0IGNiID0gY2xvdWRiYXNlIGFzIGFueVxuICBjYi52ZXJzaW9uID0gZ2V0U2RrVmVyc2lvbigpXG4gIGNiLlNZTUJPTF9DVVJSRU5UX0VOViA9IG5vZGVBZGFwdGVyLlNZTUJPTF9DVVJSRU5UX0VOVlxuICBjYi5TWU1CT0xfREVGQVVMVF9FTlYgPSBub2RlQWRhcHRlci5TWU1CT0xfREVGQVVMVF9FTlZcbiAgY2IucGFyc2VDb250ZXh0ID0gbm9kZUFkYXB0ZXIucGFyc2VDb250ZXh0XG4gIGNiLmdldENsb3VkYmFzZUNvbnRleHQgPSBub2RlQWRhcHRlci5nZXRDbG91ZGJhc2VDb250ZXh0XG59IGNhdGNoIChlcnJvcikge1xuICAvLyB0aHJvdyBlcnJvclxufVxuXG4vLyDpu5jorqTlr7zlh7rlrp7kvotcbmV4cG9ydCBkZWZhdWx0IGNsb3VkYmFzZVxuIl19
@@ -2,12 +2,16 @@ import type { IContextParam, ICompleteCloudbaseContext } from './types';
2
2
  import { ICloudbaseConfig } from '@cloudbase/types';
3
3
  export declare function parseContext(context: IContextParam): any;
4
4
  export declare const getCloudbaseContext: (context?: IContextParam) => ICompleteCloudbaseContext;
5
+ export declare function getTcbContextConfig(): any;
6
+ export declare function getServerInjectUrl(): string;
5
7
  export declare let INIT_CONFIG: ICloudbaseConfig;
6
8
  export declare const getSecretInfo: (config?: ICloudbaseConfig) => {
7
9
  env: string;
8
- secretId: string;
9
- secretKey: string;
10
- sessionToken: string;
10
+ secretId: any;
11
+ secretKey: any;
12
+ sessionToken: any;
11
13
  accessKey: string;
12
14
  secretType: string;
15
+ credentials: any;
16
+ context: any;
13
17
  };
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.getSecretInfo = exports.INIT_CONFIG = exports.getCloudbaseContext = exports.parseContext = void 0;
14
+ exports.getSecretInfo = exports.INIT_CONFIG = exports.getServerInjectUrl = exports.getTcbContextConfig = exports.getCloudbaseContext = exports.parseContext = void 0;
15
15
  var constants_1 = require("./constants");
16
16
  var utils_1 = require("./utils");
17
17
  function parseContext(context) {
@@ -86,44 +86,62 @@ var getCloudbaseContext = function (context) {
86
86
  }
87
87
  var tcbContextKeys = envFromContext.TCB_CONTEXT_KEYS || envObj.TCB_CONTEXT_KEYS;
88
88
  var wxContextKeys = envFromContext.WX_CONTEXT_KEYS || envObj.WX_CONTEXT_KEYS;
89
- if (tcbContextKeys) {
90
- try {
91
- var tcbKeysList = tcbContextKeys.split(',');
92
- for (var _i = 0, tcbKeysList_1 = tcbKeysList; _i < tcbKeysList_1.length; _i++) {
93
- var item = tcbKeysList_1[_i];
94
- envFromProcessEnv[item] = envFromContext[item] || (0, utils_1.getEnv)(item);
89
+ for (var _i = 0, _b = [tcbContextKeys, wxContextKeys]; _i < _b.length; _i++) {
90
+ var contextKeys = _b[_i];
91
+ if (contextKeys) {
92
+ try {
93
+ for (var _c = 0, _d = contextKeys.split(','); _c < _d.length; _c++) {
94
+ var item = _d[_c];
95
+ envFromProcessEnv[item] = envFromContext[item] || (0, utils_1.getEnv)(item);
96
+ }
95
97
  }
96
- }
97
- catch (_e) {
98
- }
99
- }
100
- if (wxContextKeys) {
101
- try {
102
- var wxKeysList = wxContextKeys.split(',');
103
- for (var _b = 0, wxKeysList_1 = wxKeysList; _b < wxKeysList_1.length; _b++) {
104
- var item = wxKeysList_1[_b];
105
- envFromProcessEnv[item] = envFromContext[item] || (0, utils_1.getEnv)(item);
98
+ catch (_e) {
106
99
  }
107
100
  }
108
- catch (_e) {
109
- }
110
101
  }
111
102
  var allContext = __assign(__assign({}, envFromProcessEnv), envFromContext);
112
- var finalContext = {};
113
- for (var key in allContext) {
114
- if (allContext[key] !== undefined) {
115
- finalContext[key] = allContext[key];
116
- }
117
- }
118
- return finalContext;
103
+ return Object.fromEntries(Object.entries(allContext).filter(function (_a) {
104
+ var v = _a[1];
105
+ return v !== undefined;
106
+ }));
119
107
  };
120
108
  exports.getCloudbaseContext = getCloudbaseContext;
109
+ function getTcbContextConfig() {
110
+ try {
111
+ var context = (0, exports.getCloudbaseContext)();
112
+ var TCB_CONTEXT_CNFG = context.TCB_CONTEXT_CNFG;
113
+ if (TCB_CONTEXT_CNFG) {
114
+ return JSON.parse(TCB_CONTEXT_CNFG);
115
+ }
116
+ return {};
117
+ }
118
+ catch (_e) {
119
+ console.error('[TCB][ERROR] parse context error: ', _e);
120
+ return {};
121
+ }
122
+ }
123
+ exports.getTcbContextConfig = getTcbContextConfig;
124
+ function getServerInjectUrl() {
125
+ var tcbContextConfig = getTcbContextConfig();
126
+ return tcbContextConfig.URL || '';
127
+ }
128
+ exports.getServerInjectUrl = getServerInjectUrl;
121
129
  exports.INIT_CONFIG = {};
122
130
  var getSecretInfo = function (config) {
123
- var _a, _b, _c, _d, _f, _g;
131
+ var _a, _b, _c, _d, _f;
124
132
  exports.INIT_CONFIG = JSON.parse(JSON.stringify(config || {}));
125
- var _h = (0, exports.getCloudbaseContext)(), TCB_ENV = _h.TCB_ENV, SCF_NAMESPACE = _h.SCF_NAMESPACE;
126
- var env = (config === null || config === void 0 ? void 0 : config.env) || TCB_ENV || SCF_NAMESPACE || '';
133
+ var _g = (0, utils_1.getEnv)(), TCB_ENV = _g.TCB_ENV, SCF_NAMESPACE = _g.SCF_NAMESPACE, TENCENTCLOUD_RUNENV = _g.TENCENTCLOUD_RUNENV;
134
+ var topLevel = config;
135
+ var env = '';
136
+ if (typeof (config === null || config === void 0 ? void 0 : config.env) === 'symbol' || !(config === null || config === void 0 ? void 0 : config.env)) {
137
+ env = TCB_ENV || SCF_NAMESPACE || '';
138
+ }
139
+ else {
140
+ env = config.env;
141
+ }
142
+ if (env === 'local' && TENCENTCLOUD_RUNENV === 'WX_LOCAL_SCF') {
143
+ env = '';
144
+ }
127
145
  var defaultInfo = {
128
146
  env: env,
129
147
  secretId: '',
@@ -131,32 +149,41 @@ var getSecretInfo = function (config) {
131
149
  sessionToken: '',
132
150
  accessKey: '',
133
151
  secretType: '',
152
+ credentials: undefined,
153
+ context: undefined,
134
154
  };
135
- if (config === null || config === void 0 ? void 0 : config.accessKey) {
155
+ if (topLevel === null || topLevel === void 0 ? void 0 : topLevel.context) {
156
+ defaultInfo.context = topLevel.context;
157
+ }
158
+ if (topLevel === null || topLevel === void 0 ? void 0 : topLevel.credentials) {
159
+ defaultInfo.credentials = topLevel.credentials;
160
+ }
161
+ if ((config === null || config === void 0 ? void 0 : config.accessKey) || (topLevel === null || topLevel === void 0 ? void 0 : topLevel.accessKey)) {
162
+ defaultInfo.accessKey = (config === null || config === void 0 ? void 0 : config.accessKey) || (topLevel === null || topLevel === void 0 ? void 0 : topLevel.accessKey);
136
163
  return defaultInfo;
137
164
  }
165
+ if ((topLevel === null || topLevel === void 0 ? void 0 : topLevel.secretId) && (topLevel === null || topLevel === void 0 ? void 0 : topLevel.secretKey)) {
166
+ return __assign(__assign({}, defaultInfo), { secretId: topLevel.secretId, secretKey: topLevel.secretKey, sessionToken: topLevel.sessionToken || '', secretType: topLevel.sessionToken ? constants_1.SECRET_TYPE.SESSION_SECRET : constants_1.SECRET_TYPE.SECRET });
167
+ }
138
168
  if (((_a = config === null || config === void 0 ? void 0 : config.auth) === null || _a === void 0 ? void 0 : _a.secretId) && ((_b = config === null || config === void 0 ? void 0 : config.auth) === null || _b === void 0 ? void 0 : _b.secretKey)) {
139
- return __assign(__assign({}, defaultInfo), { secretId: config.auth.secretId, secretKey: config.auth.secretKey, secretType: constants_1.SECRET_TYPE.SECRET });
169
+ return __assign(__assign({}, defaultInfo), { secretId: config.auth.secretId, secretKey: config.auth.secretKey, sessionToken: config.auth.sessionToken || '', secretType: config.auth.secretType || constants_1.SECRET_TYPE.SECRET });
140
170
  }
141
- var secretEnv = (0, utils_1.getEnv)();
142
- var TENCENTCLOUD_SECRETID = secretEnv.TENCENTCLOUD_SECRETID;
143
- var TENCENTCLOUD_SECRETKEY = secretEnv.TENCENTCLOUD_SECRETKEY;
144
- var TENCENTCLOUD_SESSIONTOKEN = secretEnv.TENCENTCLOUD_SESSIONTOKEN;
145
- var CLOUDBASE_APIKEY = secretEnv.CLOUDBASE_APIKEY;
171
+ var _h = (0, utils_1.getEnv)(), TENCENTCLOUD_SECRETID = _h.TENCENTCLOUD_SECRETID, TENCENTCLOUD_SECRETKEY = _h.TENCENTCLOUD_SECRETKEY, TENCENTCLOUD_SESSIONTOKEN = _h.TENCENTCLOUD_SESSIONTOKEN, CLOUDBASE_APIKEY = _h.CLOUDBASE_APIKEY;
146
172
  if (CLOUDBASE_APIKEY) {
147
173
  return __assign(__assign({}, defaultInfo), { accessKey: CLOUDBASE_APIKEY });
148
174
  }
149
175
  if (TENCENTCLOUD_SECRETID && TENCENTCLOUD_SECRETKEY) {
150
176
  return __assign(__assign({}, defaultInfo), { secretId: TENCENTCLOUD_SECRETID, secretKey: TENCENTCLOUD_SECRETKEY, sessionToken: TENCENTCLOUD_SESSIONTOKEN || '', secretType: constants_1.SECRET_TYPE.SESSION_SECRET });
151
177
  }
152
- if ((_c = config === null || config === void 0 ? void 0 : config.context) === null || _c === void 0 ? void 0 : _c.extendedContext) {
153
- var extendedContext = config.context.extendedContext;
178
+ var contextConfig = (topLevel === null || topLevel === void 0 ? void 0 : topLevel.context) || (config === null || config === void 0 ? void 0 : config.context);
179
+ if (contextConfig === null || contextConfig === void 0 ? void 0 : contextConfig.extendedContext) {
180
+ var extendedContext = contextConfig.extendedContext;
154
181
  if (!env) {
155
182
  env = extendedContext.envId || '';
156
183
  }
157
- return __assign(__assign({}, defaultInfo), { secretId: ((_d = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _d === void 0 ? void 0 : _d.secretId) || '', secretKey: ((_f = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _f === void 0 ? void 0 : _f.secretKey) || '', sessionToken: ((_g = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _g === void 0 ? void 0 : _g.token) || '' });
184
+ return __assign(__assign({}, defaultInfo), { env: env, secretId: ((_c = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _c === void 0 ? void 0 : _c.secretId) || '', secretKey: ((_d = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _d === void 0 ? void 0 : _d.secretKey) || '', sessionToken: ((_f = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _f === void 0 ? void 0 : _f.token) || '' });
158
185
  }
159
186
  return __assign({}, defaultInfo);
160
187
  };
161
188
  exports.getSecretInfo = getSecretInfo;
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXItbm9kZS9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBR0EseUNBQWdEO0FBQ2hELGlDQUE4QztBQVk5QyxTQUFnQixZQUFZLENBQUMsT0FBc0I7SUFDakQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsNEJBQVcsaUJBQUssQ0FBQyxlQUFlLEtBQUUsT0FBTyxFQUFFLGlCQUFpQixJQUFFO0tBQy9EO0lBRUQsSUFBTSxXQUFXLEdBQVEsRUFBRSxDQUFBO0lBR3pCLElBQUEsa0JBQWtCLEdBU2hCLE9BQU8sbUJBVFMsRUFDbEIsZ0JBQWdCLEdBUWQsT0FBTyxpQkFSTyxFQUNoQixVQUFVLEdBT1IsT0FBTyxXQVBDLEVBQ1YsZ0JBQWdCLEdBTWQsT0FBTyxpQkFOTyxFQUNoQixTQUFTLEdBS1AsT0FBTyxVQUxBLEVBQ1QsYUFBYSxHQUlYLE9BQU8sY0FKSSxFQUViLE9BQU8sR0FFTCxPQUFPLFFBRkYsRUFDUCxXQUFXLEdBQ1QsT0FBTyxZQURFLENBQ0Y7SUFFWCxJQUFJO1FBQ0YsV0FBVyxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQTtRQUNoRCxXQUFXLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFBO1FBQzNDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFBO1FBQ2xDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsZ0JBQWdCLENBQUE7UUFDOUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDakMsV0FBVyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUE7UUFFeEMsSUFBSSxXQUFXLEVBQUU7WUFFZixXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDbEQ7YUFBTTtZQUlMLElBQU0sWUFBWSxHQUFRLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDN0MsSUFBTSxlQUFlLEdBQVEsRUFBRSxDQUFBO1lBRy9CLEtBQUssSUFBTSxDQUFDLElBQUksWUFBWSxFQUFFO2dCQUM1QixJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBRWpDLElBQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQy9DLElBQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFBO29CQUNoRCxJQUFJLEtBQUssR0FBUSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQTtvQkFHdEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDM0IsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7cUJBQ3pCO29CQUNELGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7aUJBQzdCO2FBQ0Y7WUFFRCxXQUFXLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQTtTQUN0QztLQUNGO0lBQUMsT0FBTyxJQUFTLEVBQUU7UUFDbEIsbUJBQVcsaUJBQUssQ0FBQyxlQUFlLEVBQUU7S0FDbkM7SUFFRCxPQUFPLFdBQVcsQ0FBQTtBQUNwQixDQUFDO0FBNURELG9DQTREQztBQVlNLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxPQUF1QjtJQUV6RCxJQUFJLElBQUEsb0JBQVksR0FBRSxFQUFFO1FBQ2xCLElBQUksQ0FBQyxJQUFBLGNBQU0sRUFBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQTtTQUN4RTtRQUNELElBQUksQ0FBQyxJQUFBLGNBQU0sRUFBQyxlQUFlLENBQUMsRUFBRTtZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUE7U0FDbEU7S0FDRjtJQUdELElBQU0sTUFBTSxHQUFHLElBQUEsY0FBTSxHQUFFLENBQUE7SUFDdkIsSUFBTSxpQkFBaUIsR0FBUTtRQUM3QixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1FBQ2pDLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtRQUNuQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsbUJBQW1CO1FBQy9DLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxxQkFBcUI7UUFDbkQsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLHNCQUFzQjtRQUNyRCx5QkFBeUIsRUFBRSxNQUFNLENBQUMseUJBQXlCO1FBQzNELGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtRQUN2Qyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsdUJBQXVCO1FBQ3ZELFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7UUFDbkMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtRQUN6QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO1FBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztLQUM1QixDQUFBO0lBR0QsSUFBSSxjQUFjLEdBQVEsRUFBRSxDQUFBO0lBQzVCLElBQUksT0FBTyxFQUFFO1FBQ0wsSUFBQSxLQUEyQixZQUFZLENBQUMsT0FBTyxDQUFDLEVBQTlDLFdBQVcsaUJBQUEsRUFBRSxPQUFPLGFBQTBCLENBQUE7UUFDdEQsY0FBYyxHQUFHLFdBQVcsSUFBSSxPQUFPLElBQUksRUFBRSxDQUFBO0tBQzlDO0lBR0QsSUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtJQUNqRixJQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUE7SUFFOUUsSUFBSSxjQUFjLEVBQUU7UUFDbEIsSUFBSTtZQUNGLElBQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDN0MsS0FBbUIsVUFBVyxFQUFYLDJCQUFXLEVBQVgseUJBQVcsRUFBWCxJQUFXLEVBQUU7Z0JBQTNCLElBQU0sSUFBSSxvQkFBQTtnQkFDYixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksSUFBQSxjQUFNLEVBQUMsSUFBSSxDQUFDLENBQUE7YUFDL0Q7U0FDRjtRQUFDLE9BQU8sRUFBRSxFQUFFO1NBRVo7S0FDRjtJQUVELElBQUksYUFBYSxFQUFFO1FBQ2pCLElBQUk7WUFDRixJQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzNDLEtBQW1CLFVBQVUsRUFBVix5QkFBVSxFQUFWLHdCQUFVLEVBQVYsSUFBVSxFQUFFO2dCQUExQixJQUFNLElBQUksbUJBQUE7Z0JBQ2IsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUEsY0FBTSxFQUFDLElBQUksQ0FBQyxDQUFBO2FBQy9EO1NBQ0Y7UUFBQyxPQUFPLEVBQUUsRUFBRTtTQUVaO0tBQ0Y7SUFHRCxJQUFNLFVBQVUseUJBQVEsaUJBQWlCLEdBQUssY0FBYyxDQUFFLENBQUE7SUFFOUQsSUFBTSxZQUFZLEdBQVEsRUFBRSxDQUFBO0lBQzVCLEtBQUssSUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO1FBQzVCLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNqQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0tBQ0Y7SUFFRCxPQUFPLFlBQVksQ0FBQTtBQUNyQixDQUFDLENBQUE7QUExRVksUUFBQSxtQkFBbUIsdUJBMEUvQjtBQUdVLFFBQUEsV0FBVyxHQUFxQixFQUFpQyxDQUFBO0FBTXJFLElBQU0sYUFBYSxHQUFHLFVBQUMsTUFBeUI7O0lBQ3JELG1CQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBRWhELElBQUEsS0FBNkIsSUFBQSwyQkFBbUIsR0FBRSxFQUFoRCxPQUFPLGFBQUEsRUFBRSxhQUFhLG1CQUEwQixDQUFBO0lBRXhELElBQUksR0FBRyxHQUFHLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEdBQUcsS0FBSSxPQUFPLElBQUksYUFBYSxJQUFJLEVBQUUsQ0FBQTtJQUN2RCxJQUFNLFdBQVcsR0FBRztRQUNsQixHQUFHLEtBQUE7UUFDSCxRQUFRLEVBQUUsRUFBRTtRQUNaLFNBQVMsRUFBRSxFQUFFO1FBQ2IsWUFBWSxFQUFFLEVBQUU7UUFDaEIsU0FBUyxFQUFFLEVBQUU7UUFDYixVQUFVLEVBQUUsRUFBRTtLQUNmLENBQUE7SUFFRCxJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLEVBQUU7UUFDckIsT0FBTyxXQUFXLENBQUE7S0FDbkI7SUFFRCxJQUFJLENBQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSwwQ0FBRSxRQUFRLE1BQUksTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSwwQ0FBRSxTQUFTLENBQUEsRUFBRTtRQUNyRCw2QkFDSyxXQUFXLEtBQ2QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUM5QixTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQ2hDLFVBQVUsRUFBRSx1QkFBVyxDQUFDLE1BQU0sSUFDL0I7S0FDRjtJQUVELElBQU0sU0FBUyxHQUFHLElBQUEsY0FBTSxHQUFFLENBQUE7SUFDbEIsSUFBQSxxQkFBcUIsR0FBSyxTQUFTLHNCQUFkLENBQWM7SUFDbkMsSUFBQSxzQkFBc0IsR0FBSyxTQUFTLHVCQUFkLENBQWM7SUFDcEMsSUFBQSx5QkFBeUIsR0FBSyxTQUFTLDBCQUFkLENBQWM7SUFDdkMsSUFBQSxnQkFBZ0IsR0FBSyxTQUFTLGlCQUFkLENBQWM7SUFFdEMsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQiw2QkFDSyxXQUFXLEtBQ2QsU0FBUyxFQUFFLGdCQUFnQixJQUM1QjtLQUNGO0lBRUQsSUFBSSxxQkFBcUIsSUFBSSxzQkFBc0IsRUFBRTtRQUNuRCw2QkFDSyxXQUFXLEtBQ2QsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixTQUFTLEVBQUUsc0JBQXNCLEVBQ2pDLFlBQVksRUFBRSx5QkFBeUIsSUFBSSxFQUFFLEVBQzdDLFVBQVUsRUFBRSx1QkFBVyxDQUFDLGNBQWMsSUFDdkM7S0FDRjtJQUVELElBQUksTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTywwQ0FBRSxlQUFlLEVBQUU7UUFDNUIsSUFBQSxlQUFlLEdBQUssTUFBTSxDQUFDLE9BQU8sZ0JBQW5CLENBQW1CO1FBQzFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixHQUFHLEdBQUcsZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7U0FDbEM7UUFFRCw2QkFDSyxXQUFXLEtBQ2QsUUFBUSxFQUFFLENBQUEsTUFBQSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsU0FBUywwQ0FBRSxRQUFRLEtBQUksRUFBRSxFQUNwRCxTQUFTLEVBQUUsQ0FBQSxNQUFBLGVBQWUsYUFBZixlQUFlLHVCQUFmLGVBQWUsQ0FBRSxTQUFTLDBDQUFFLFNBQVMsS0FBSSxFQUFFLEVBQ3RELFlBQVksRUFBRSxDQUFBLE1BQUEsZUFBZSxhQUFmLGVBQWUsdUJBQWYsZUFBZSxDQUFFLFNBQVMsMENBQUUsS0FBSyxLQUFJLEVBQUUsSUFDdEQ7S0FDRjtJQUVELG9CQUFZLFdBQVcsRUFBRTtBQUMzQixDQUFDLENBQUE7QUFsRVksUUFBQSxhQUFhLGlCQWtFekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tbXV0YWJsZS1leHBvcnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG5pbXBvcnQgeyBFUlJPUiwgU0VDUkVUX1RZUEUgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7IGNoZWNrSXNJblNjZiwgZ2V0RW52IH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB0eXBlIHsgSUNvbnRleHRQYXJhbSwgSUNvbXBsZXRlQ2xvdWRiYXNlQ29udGV4dCB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcblxuLyoqXG4gKiDop6PmnpDlubbmoKHpqozkupHlh73mlbDlhaXlj6PnmoQgQ29udGV4dCDlj4LmlbBcbiAqIOWwhuS4i+WIkue6v+WRveWQjeeahOWtl+autei9rOS4uumpvOWzsOagvOW8j++8jOW5tuino+aekOeOr+Wig+WPmOmHj1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IC0g5LqR5Ye95pWw5YWl5Y+j5Lyg5YWl55qEIGNvbnRleHQg5a+56LGhXG4gKiBAcmV0dXJucyDop6PmnpDlkI7nmoTkuIrkuIvmloflr7nosaHvvIzljIXlkKsgZW52aXJvbm1lbnTvvIjmlrDmnrbmnoTvvInmiJYgZW52aXJvbu+8iOiAgeaetuaehO+8iVxuICogQHRocm93cyBJTlZBTElEX0NPTlRFWFQgLSBjb250ZXh0IOS4jeaYr+WvueixoeaIluino+aekOWksei0peaXtlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb250ZXh0KGNvbnRleHQ6IElDb250ZXh0UGFyYW0pIHtcbiAgaWYgKHR5cGVvZiBjb250ZXh0ICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IHsgLi4uRVJST1IuSU5WQUxJRF9DT05URVhULCBtZXNzYWdlOiAnY29udGV4dCDlv4XpobvkuLrlr7nosaHnsbvlnosnIH1cbiAgfVxuXG4gIGNvbnN0IHBhcnNlUmVzdWx0OiBhbnkgPSB7fVxuXG4gIGNvbnN0IHtcbiAgICBtZW1vcnlfbGltaXRfaW5fbWIsXG4gICAgdGltZV9saW1pdF9pbl9tcyxcbiAgICByZXF1ZXN0X2lkLFxuICAgIGZ1bmN0aW9uX3ZlcnNpb24sXG4gICAgbmFtZXNwYWNlLFxuICAgIGZ1bmN0aW9uX25hbWUsXG5cbiAgICBlbnZpcm9uLFxuICAgIGVudmlyb25tZW50LFxuICB9ID0gY29udGV4dFxuXG4gIHRyeSB7XG4gICAgcGFyc2VSZXN1bHQubWVtb3J5TGltaXRJbk1iID0gbWVtb3J5X2xpbWl0X2luX21iXG4gICAgcGFyc2VSZXN1bHQudGltZUxpbWl0SW5zID0gdGltZV9saW1pdF9pbl9tc1xuICAgIHBhcnNlUmVzdWx0LnJlcXVlc3RJZCA9IHJlcXVlc3RfaWRcbiAgICBwYXJzZVJlc3VsdC5mdW5jdGlvblZlcnNpb24gPSBmdW5jdGlvbl92ZXJzaW9uXG4gICAgcGFyc2VSZXN1bHQubmFtZXNwYWNlID0gbmFtZXNwYWNlXG4gICAgcGFyc2VSZXN1bHQuZnVuY3Rpb25OYW1lID0gZnVuY3Rpb25fbmFtZVxuXG4gICAgaWYgKGVudmlyb25tZW50KSB7XG4gICAgICAvLyDmlrDmnrbmnoTvvJplbnZpcm9ubWVudCDkuLogSlNPTiDlrZfnrKbkuLLvvIznm7TmjqXop6PmnpBcbiAgICAgIHBhcnNlUmVzdWx0LmVudmlyb25tZW50ID0gSlNPTi5wYXJzZShlbnZpcm9ubWVudClcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVE9ETzog6ICD6JmR56e76Zmk6ICB5p625p6E55qE5YW85a656YC76L6RXG4gICAgICAvLyDogIHmnrbmnoTvvJplbnZpcm9uIOS4uuWIhuWPt+WIhumalOeahCBrZXk9dmFsdWUg5a2X56ym5LiyXG4gICAgICAvLyDlrZjlnKggYnVn77yadmFsdWUg5ZCr54m55q6K5a2X56ym5pe25Y+v6IO95b2x5ZON6Kej5p6QXG4gICAgICBjb25zdCBwYXJzZUVudmlyb246IGFueSA9IGVudmlyb24/LnNwbGl0KCc7JylcbiAgICAgIGNvbnN0IHBhcnNlRW52aXJvbk9iajogYW55ID0ge31cblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1mb3ItaW4tYXJyYXlcbiAgICAgIGZvciAoY29uc3QgaSBpbiBwYXJzZUVudmlyb24pIHtcbiAgICAgICAgaWYgKHBhcnNlRW52aXJvbltpXS5pbmNsdWRlcygnPScpKSB7XG4gICAgICAgICAgLy8g5Y+q5oyJ56ys5LiA5LiqID0g5YiH5Ymy77yM5L+d55WZIHZhbHVlIOS4reeahCA9XG4gICAgICAgICAgY29uc3QgZXF1YWxJbmRleCA9IHBhcnNlRW52aXJvbltpXS5pbmRleE9mKCc9JylcbiAgICAgICAgICBjb25zdCBrZXkgPSBwYXJzZUVudmlyb25baV0uc2xpY2UoMCwgZXF1YWxJbmRleClcbiAgICAgICAgICBsZXQgdmFsdWU6IGFueSA9IHBhcnNlRW52aXJvbltpXS5zbGljZShlcXVhbEluZGV4ICsgMSlcblxuICAgICAgICAgIC8vIHZhbHVlIOWQq+mAl+WPt+aXtuinhuS4uuaVsOe7hFxuICAgICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKCcsJykgPj0gMCkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgnLCcpXG4gICAgICAgICAgfVxuICAgICAgICAgIHBhcnNlRW52aXJvbk9ialtrZXldID0gdmFsdWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwYXJzZVJlc3VsdC5lbnZpcm9uID0gcGFyc2VFbnZpcm9uT2JqXG4gICAgfVxuICB9IGNhdGNoIChfZXJyOiBhbnkpIHtcbiAgICB0aHJvdyB7IC4uLkVSUk9SLklOVkFMSURfQ09OVEVYVCB9XG4gIH1cblxuICByZXR1cm4gcGFyc2VSZXN1bHRcbn1cblxuLyoqXG4gKiDojrflj5blvZPliY3kupHlh73mlbDlhoXnmoTmiYDmnInnjq/looPlj5jph49cbiAqIOe7n+S4gOS7jiBwcm9jZXNzLmVudiDlkowgY29udGV4dCDkuKTkuKrmnaXmupDlkIjlubblj5blgLxcbiAqXG4gKiDlj5blgLzkvJjlhYjnuqfvvJpjb250ZXh0ID4gcHJvY2Vzcy5lbnZcbiAqIOmAmui/hyBUQ0JfQ09OVEVYVF9LRVlTIC8gV1hfQ09OVEVYVF9LRVlTIOWKqOaAgeaJqeWxlemcgOimgeivu+WPlueahOeOr+Wig+WPmOmHj+WIl+ihqFxuICpcbiAqIEBwYXJhbSBjb250ZXh0IC0g5Y+v6YCJ77yM5LqR5Ye95pWw5YWl5Y+j55qEIGNvbnRleHQg5Y+C5pWwXG4gKiBAcmV0dXJucyDlkIjlubblkI7nmoTlrozmlbTnjq/looPlj5jph4/kuIrkuIvmlodcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENsb3VkYmFzZUNvbnRleHQgPSAoY29udGV4dD86IElDb250ZXh0UGFyYW0pOiBJQ29tcGxldGVDbG91ZGJhc2VDb250ZXh0ID0+IHtcbiAgLy8g5LqR5Ye95pWw546v5aKD5LiL5qCh6aqM5b+F6KaB546v5aKD5Y+Y6YePXG4gIGlmIChjaGVja0lzSW5TY2YoKSkge1xuICAgIGlmICghZ2V0RW52KCdURU5DRU5UQ0xPVURfUkVHSU9OJykpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUQ0JdW0VSUk9SXSBtaXNzaW5nIGBURU5DRU5UQ0xPVURfUkVHSU9OYCBlbnZpcm9ubWVudCcpXG4gICAgfVxuICAgIGlmICghZ2V0RW52KCdTQ0ZfTkFNRVNQQUNFJykpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUQ0JdW0VSUk9SXSBtaXNzaW5nIGBTQ0ZfTkFNRVNQQUNFYCBlbnZpcm9ubWVudCcpXG4gICAgfVxuICB9XG5cbiAgLy8g56ys5LiA5q2l77ya5LuOIHByb2Nlc3MuZW52IOivu+WPluWfuuehgOeOr+Wig+WPmOmHj1xuICBjb25zdCBlbnZPYmogPSBnZXRFbnYoKVxuICBjb25zdCBlbnZGcm9tUHJvY2Vzc0VudjogYW55ID0ge1xuICAgIFRSSUdHRVJfU1JDOiBlbnZPYmouVFJJR0dFUl9TUkMsXG4gICAgX1NDRl9UQ0JfTE9HOiBlbnZPYmouX1NDRl9UQ0JfTE9HLFxuICAgIFNDRl9OQU1FU1BBQ0U6IGVudk9iai5TQ0ZfTkFNRVNQQUNFLFxuICAgIFRFTkNFTlRDTE9VRF9SVU5FTlY6IGVudk9iai5URU5DRU5UQ0xPVURfUlVORU5WLFxuICAgIFRFTkNFTlRDTE9VRF9TRUNSRVRJRDogZW52T2JqLlRFTkNFTlRDTE9VRF9TRUNSRVRJRCxcbiAgICBURU5DRU5UQ0xPVURfU0VDUkVUS0VZOiBlbnZPYmouVEVOQ0VOVENMT1VEX1NFQ1JFVEtFWSxcbiAgICBURU5DRU5UQ0xPVURfU0VTU0lPTlRPS0VOOiBlbnZPYmouVEVOQ0VOVENMT1VEX1NFU1NJT05UT0tFTixcbiAgICBXWF9DT05URVhUX0tFWVM6IGVudk9iai5XWF9DT05URVhUX0tFWVMsXG4gICAgV1hfVFJJR0dFUl9BUElfVE9LRU5fVjA6IGVudk9iai5XWF9UUklHR0VSX0FQSV9UT0tFTl9WMCxcbiAgICBXWF9DTElFTlRJUDogZW52T2JqLldYX0NMSUVOVElQLFxuICAgIFdYX0NMSUVOVElQVjY6IGVudk9iai5XWF9DTElFTlRJUFY2LFxuICAgIFRDQl9DT05URVhUX0tFWVM6IGVudk9iai5UQ0JfQ09OVEVYVF9LRVlTLFxuICAgIFRDQl9DT05URVhUX0NORkc6IGVudk9iai5UQ0JfQ09OVEVYVF9DTkZHLFxuICAgIExPR0lOVFlQRTogZW52T2JqLkxPR0lOVFlQRSxcbiAgfVxuXG4gIC8vIOesrOS6jOatpe+8muS7jiBjb250ZXh0IOS4reino+aekOeOr+Wig+WPmOmHj1xuICBsZXQgZW52RnJvbUNvbnRleHQ6IGFueSA9IHt9XG4gIGlmIChjb250ZXh0KSB7XG4gICAgY29uc3QgeyBlbnZpcm9ubWVudCwgZW52aXJvbiB9ID0gcGFyc2VDb250ZXh0KGNvbnRleHQpXG4gICAgZW52RnJvbUNvbnRleHQgPSBlbnZpcm9ubWVudCB8fCBlbnZpcm9uIHx8IHt9XG4gIH1cblxuICAvLyDnrKzkuInmraXvvJrmoLnmja4gQ09OVEVYVF9LRVlTIOWKqOaAgeaJqeWxleWPmOmHj+WIl+ihqO+8iOS8mOWFiOWPliBjb250ZXh0IOS4reeahOWAvO+8iVxuICBjb25zdCB0Y2JDb250ZXh0S2V5cyA9IGVudkZyb21Db250ZXh0LlRDQl9DT05URVhUX0tFWVMgfHwgZW52T2JqLlRDQl9DT05URVhUX0tFWVNcbiAgY29uc3Qgd3hDb250ZXh0S2V5cyA9IGVudkZyb21Db250ZXh0LldYX0NPTlRFWFRfS0VZUyB8fCBlbnZPYmouV1hfQ09OVEVYVF9LRVlTXG5cbiAgaWYgKHRjYkNvbnRleHRLZXlzKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRjYktleXNMaXN0ID0gdGNiQ29udGV4dEtleXMuc3BsaXQoJywnKVxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRjYktleXNMaXN0KSB7XG4gICAgICAgIGVudkZyb21Qcm9jZXNzRW52W2l0ZW1dID0gZW52RnJvbUNvbnRleHRbaXRlbV0gfHwgZ2V0RW52KGl0ZW0pXG4gICAgICB9XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgaWYgKHd4Q29udGV4dEtleXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgd3hLZXlzTGlzdCA9IHd4Q29udGV4dEtleXMuc3BsaXQoJywnKVxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHd4S2V5c0xpc3QpIHtcbiAgICAgICAgZW52RnJvbVByb2Nlc3NFbnZbaXRlbV0gPSBlbnZGcm9tQ29udGV4dFtpdGVtXSB8fCBnZXRFbnYoaXRlbSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIChfZSkge1xuICAgICAgLy9cbiAgICB9XG4gIH1cblxuICAvLyDnrKzlm5vmraXvvJrlkIjlubbmiYDmnInmnaXmupDvvIxjb250ZXh0IOeahOWAvOimhuebliBwcm9jZXNzLmVudu+8jOi/h+a7pCB1bmRlZmluZWRcbiAgY29uc3QgYWxsQ29udGV4dCA9IHsgLi4uZW52RnJvbVByb2Nlc3NFbnYsIC4uLmVudkZyb21Db250ZXh0IH1cblxuICBjb25zdCBmaW5hbENvbnRleHQ6IGFueSA9IHt9XG4gIGZvciAoY29uc3Qga2V5IGluIGFsbENvbnRleHQpIHtcbiAgICBpZiAoYWxsQ29udGV4dFtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZpbmFsQ29udGV4dFtrZXldID0gYWxsQ29udGV4dFtrZXldXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZpbmFsQ29udGV4dFxufVxuXG4vKiog57yT5a2YIGV4dGVuZGVkQ29udGV4dO+8jOS+m+WFtuS7luaooeWdl+ivu+WPlu+8iOWmgiB0b29sLnRzIOS4reiOt+WPliB1c2VySWTvvIkgKi9cbmV4cG9ydCBsZXQgSU5JVF9DT05GSUc6IElDbG91ZGJhc2VDb25maWcgPSB7fSBhcyB1bmtub3duIGFzIElDbG91ZGJhc2VDb25maWdcblxuLyoqXG4gKiDku47njq/looPlj5jph4/kuK3ojrflj5bohb7orq/kupHkuLTml7blr4bpkqXkv6Hmga9cbiAqIOeUqOS6jiBBUEkg6K+35rGC562+5ZCNXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTZWNyZXRJbmZvID0gKGNvbmZpZz86IElDbG91ZGJhc2VDb25maWcpID0+IHtcbiAgSU5JVF9DT05GSUcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbmZpZyB8fCB7fSkpXG5cbiAgY29uc3QgeyBUQ0JfRU5WLCBTQ0ZfTkFNRVNQQUNFIH0gPSBnZXRDbG91ZGJhc2VDb250ZXh0KClcblxuICBsZXQgZW52ID0gY29uZmlnPy5lbnYgfHwgVENCX0VOViB8fCBTQ0ZfTkFNRVNQQUNFIHx8ICcnXG4gIGNvbnN0IGRlZmF1bHRJbmZvID0ge1xuICAgIGVudixcbiAgICBzZWNyZXRJZDogJycsXG4gICAgc2VjcmV0S2V5OiAnJyxcbiAgICBzZXNzaW9uVG9rZW46ICcnLFxuICAgIGFjY2Vzc0tleTogJycsXG4gICAgc2VjcmV0VHlwZTogJycsXG4gIH1cblxuICBpZiAoY29uZmlnPy5hY2Nlc3NLZXkpIHtcbiAgICByZXR1cm4gZGVmYXVsdEluZm9cbiAgfVxuXG4gIGlmIChjb25maWc/LmF1dGg/LnNlY3JldElkICYmIGNvbmZpZz8uYXV0aD8uc2VjcmV0S2V5KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgc2VjcmV0SWQ6IGNvbmZpZy5hdXRoLnNlY3JldElkLFxuICAgICAgc2VjcmV0S2V5OiBjb25maWcuYXV0aC5zZWNyZXRLZXksXG4gICAgICBzZWNyZXRUeXBlOiBTRUNSRVRfVFlQRS5TRUNSRVQsXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2VjcmV0RW52ID0gZ2V0RW52KClcbiAgY29uc3QgeyBURU5DRU5UQ0xPVURfU0VDUkVUSUQgfSA9IHNlY3JldEVudlxuICBjb25zdCB7IFRFTkNFTlRDTE9VRF9TRUNSRVRLRVkgfSA9IHNlY3JldEVudlxuICBjb25zdCB7IFRFTkNFTlRDTE9VRF9TRVNTSU9OVE9LRU4gfSA9IHNlY3JldEVudlxuICBjb25zdCB7IENMT1VEQkFTRV9BUElLRVkgfSA9IHNlY3JldEVudlxuXG4gIGlmIChDTE9VREJBU0VfQVBJS0VZKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgYWNjZXNzS2V5OiBDTE9VREJBU0VfQVBJS0VZLFxuICAgIH1cbiAgfVxuXG4gIGlmIChURU5DRU5UQ0xPVURfU0VDUkVUSUQgJiYgVEVOQ0VOVENMT1VEX1NFQ1JFVEtFWSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0SW5mbyxcbiAgICAgIHNlY3JldElkOiBURU5DRU5UQ0xPVURfU0VDUkVUSUQsXG4gICAgICBzZWNyZXRLZXk6IFRFTkNFTlRDTE9VRF9TRUNSRVRLRVksXG4gICAgICBzZXNzaW9uVG9rZW46IFRFTkNFTlRDTE9VRF9TRVNTSU9OVE9LRU4gfHwgJycsXG4gICAgICBzZWNyZXRUeXBlOiBTRUNSRVRfVFlQRS5TRVNTSU9OX1NFQ1JFVCxcbiAgICB9XG4gIH1cblxuICBpZiAoY29uZmlnPy5jb250ZXh0Py5leHRlbmRlZENvbnRleHQpIHtcbiAgICBjb25zdCB7IGV4dGVuZGVkQ29udGV4dCB9ID0gY29uZmlnLmNvbnRleHRcbiAgICBpZiAoIWVudikge1xuICAgICAgZW52ID0gZXh0ZW5kZWRDb250ZXh0LmVudklkIHx8ICcnXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgc2VjcmV0SWQ6IGV4dGVuZGVkQ29udGV4dD8udG1wU2VjcmV0Py5zZWNyZXRJZCB8fCAnJyxcbiAgICAgIHNlY3JldEtleTogZXh0ZW5kZWRDb250ZXh0Py50bXBTZWNyZXQ/LnNlY3JldEtleSB8fCAnJyxcbiAgICAgIHNlc3Npb25Ub2tlbjogZXh0ZW5kZWRDb250ZXh0Py50bXBTZWNyZXQ/LnRva2VuIHx8ICcnLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IC4uLmRlZmF1bHRJbmZvIH1cbn1cbiJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXItbm9kZS9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBR0EseUNBQWdEO0FBQ2hELGlDQUE4QztBQVk5QyxTQUFnQixZQUFZLENBQUMsT0FBc0I7SUFDakQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsNEJBQVcsaUJBQUssQ0FBQyxlQUFlLEtBQUUsT0FBTyxFQUFFLGlCQUFpQixJQUFFO0tBQy9EO0lBRUQsSUFBTSxXQUFXLEdBQVEsRUFBRSxDQUFBO0lBR3pCLElBQUEsa0JBQWtCLEdBU2hCLE9BQU8sbUJBVFMsRUFDbEIsZ0JBQWdCLEdBUWQsT0FBTyxpQkFSTyxFQUNoQixVQUFVLEdBT1IsT0FBTyxXQVBDLEVBQ1YsZ0JBQWdCLEdBTWQsT0FBTyxpQkFOTyxFQUNoQixTQUFTLEdBS1AsT0FBTyxVQUxBLEVBQ1QsYUFBYSxHQUlYLE9BQU8sY0FKSSxFQUViLE9BQU8sR0FFTCxPQUFPLFFBRkYsRUFDUCxXQUFXLEdBQ1QsT0FBTyxZQURFLENBQ0Y7SUFFWCxJQUFJO1FBQ0YsV0FBVyxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQTtRQUNoRCxXQUFXLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFBO1FBQzNDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFBO1FBQ2xDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsZ0JBQWdCLENBQUE7UUFDOUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDakMsV0FBVyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUE7UUFFeEMsSUFBSSxXQUFXLEVBQUU7WUFFZixXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDbEQ7YUFBTTtZQUlMLElBQU0sWUFBWSxHQUFRLE9BQU8sYUFB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QyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsR0FBRyxHQUFHLGVBQWUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFBO1NBQ2xDO1FBRUQsNkJBQ0ssV0FBVyxLQUNkLEdBQUcsS0FBQSxFQUNILFFBQVEsRUFBRSxDQUFBLE1BQUEsZUFBZSxhQUFmLGVBQWUsdUJBQWYsZUFBZSxDQUFFLFNBQVMsMENBQUUsUUFBUSxLQUFJLEVBQUUsRUFDcEQsU0FBUyxFQUFFLENBQUEsTUFBQSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsU0FBUywwQ0FBRSxTQUFTLEtBQUksRUFBRSxFQUN0RCxZQUFZLEVBQUUsQ0FBQSxNQUFBLGVBQWUsYUFBZixlQUFlLHVCQUFmLGVBQWUsQ0FBRSxTQUFTLDBDQUFFLEtBQUssS0FBSSxFQUFFLElBQ3REO0tBQ0Y7SUFFRCxvQkFBWSxXQUFXLEVBQUU7QUFDM0IsQ0FBQyxDQUFBO0FBM0dZLFFBQUEsYUFBYSxpQkEyR3pCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0cyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuaW1wb3J0IHsgRVJST1IsIFNFQ1JFVF9UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnXG5pbXBvcnQgeyBjaGVja0lzSW5TY2YsIGdldEVudiB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IElDb250ZXh0UGFyYW0sIElDb21wbGV0ZUNsb3VkYmFzZUNvbnRleHQgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5cbi8qKlxuICog6Kej5p6Q5bm25qCh6aqM5LqR5Ye95pWw5YWl5Y+j55qEIENvbnRleHQg5Y+C5pWwXG4gKiDlsIbkuIvliJLnur/lkb3lkI3nmoTlrZfmrrXovazkuLrpqbzls7DmoLzlvI/vvIzlubbop6PmnpDnjq/looPlj5jph49cbiAqXG4gKiBAcGFyYW0gY29udGV4dCAtIOS6keWHveaVsOWFpeWPo+S8oOWFpeeahCBjb250ZXh0IOWvueixoVxuICogQHJldHVybnMg6Kej5p6Q5ZCO55qE5LiK5LiL5paH5a+56LGh77yM5YyF5ZCrIGVudmlyb25tZW5077yI5paw5p625p6E77yJ5oiWIGVudmlyb27vvIjogIHmnrbmnoTvvIlcbiAqIEB0aHJvd3MgSU5WQUxJRF9DT05URVhUIC0gY29udGV4dCDkuI3mmK/lr7nosaHmiJbop6PmnpDlpLHotKXml7ZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29udGV4dChjb250ZXh0OiBJQ29udGV4dFBhcmFtKSB7XG4gIGlmICh0eXBlb2YgY29udGV4dCAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyB7IC4uLkVSUk9SLklOVkFMSURfQ09OVEVYVCwgbWVzc2FnZTogJ2NvbnRleHQg5b+F6aG75Li65a+56LGh57G75Z6LJyB9XG4gIH1cblxuICBjb25zdCBwYXJzZVJlc3VsdDogYW55ID0ge31cblxuICBjb25zdCB7XG4gICAgbWVtb3J5X2xpbWl0X2luX21iLFxuICAgIHRpbWVfbGltaXRfaW5fbXMsXG4gICAgcmVxdWVzdF9pZCxcbiAgICBmdW5jdGlvbl92ZXJzaW9uLFxuICAgIG5hbWVzcGFjZSxcbiAgICBmdW5jdGlvbl9uYW1lLFxuXG4gICAgZW52aXJvbixcbiAgICBlbnZpcm9ubWVudCxcbiAgfSA9IGNvbnRleHRcblxuICB0cnkge1xuICAgIHBhcnNlUmVzdWx0Lm1lbW9yeUxpbWl0SW5NYiA9IG1lbW9yeV9saW1pdF9pbl9tYlxuICAgIHBhcnNlUmVzdWx0LnRpbWVMaW1pdElucyA9IHRpbWVfbGltaXRfaW5fbXNcbiAgICBwYXJzZVJlc3VsdC5yZXF1ZXN0SWQgPSByZXF1ZXN0X2lkXG4gICAgcGFyc2VSZXN1bHQuZnVuY3Rpb25WZXJzaW9uID0gZnVuY3Rpb25fdmVyc2lvblxuICAgIHBhcnNlUmVzdWx0Lm5hbWVzcGFjZSA9IG5hbWVzcGFjZVxuICAgIHBhcnNlUmVzdWx0LmZ1bmN0aW9uTmFtZSA9IGZ1bmN0aW9uX25hbWVcblxuICAgIGlmIChlbnZpcm9ubWVudCkge1xuICAgICAgLy8g5paw5p625p6E77yaZW52aXJvbm1lbnQg5Li6IEpTT04g5a2X56ym5Liy77yM55u05o6l6Kej5p6QXG4gICAgICBwYXJzZVJlc3VsdC5lbnZpcm9ubWVudCA9IEpTT04ucGFyc2UoZW52aXJvbm1lbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE86IOiAg+iZkeenu+mZpOiAgeaetuaehOeahOWFvOWuuemAu+i+kVxuICAgICAgLy8g6ICB5p625p6E77yaZW52aXJvbiDkuLrliIblj7fliIbpmpTnmoQga2V5PXZhbHVlIOWtl+espuS4slxuICAgICAgLy8g5a2Y5ZyoIGJ1Z++8mnZhbHVlIOWQq+eJueauiuWtl+espuaXtuWPr+iDveW9seWTjeino+aekFxuICAgICAgY29uc3QgcGFyc2VFbnZpcm9uOiBhbnkgPSBlbnZpcm9uPy5zcGxpdCgnOycpXG4gICAgICBjb25zdCBwYXJzZUVudmlyb25PYmo6IGFueSA9IHt9XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZm9yLWluLWFycmF5XG4gICAgICBmb3IgKGNvbnN0IGkgaW4gcGFyc2VFbnZpcm9uKSB7XG4gICAgICAgIGlmIChwYXJzZUVudmlyb25baV0uaW5jbHVkZXMoJz0nKSkge1xuICAgICAgICAgIC8vIOWPquaMieesrOS4gOS4qiA9IOWIh+WJsu+8jOS/neeVmSB2YWx1ZSDkuK3nmoQgPVxuICAgICAgICAgIGNvbnN0IGVxdWFsSW5kZXggPSBwYXJzZUVudmlyb25baV0uaW5kZXhPZignPScpXG4gICAgICAgICAgY29uc3Qga2V5ID0gcGFyc2VFbnZpcm9uW2ldLnNsaWNlKDAsIGVxdWFsSW5kZXgpXG4gICAgICAgICAgbGV0IHZhbHVlOiBhbnkgPSBwYXJzZUVudmlyb25baV0uc2xpY2UoZXF1YWxJbmRleCArIDEpXG5cbiAgICAgICAgICAvLyB2YWx1ZSDlkKvpgJflj7fml7bop4bkuLrmlbDnu4RcbiAgICAgICAgICBpZiAodmFsdWUuaW5kZXhPZignLCcpID49IDApIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoJywnKVxuICAgICAgICAgIH1cbiAgICAgICAgICBwYXJzZUVudmlyb25PYmpba2V5XSA9IHZhbHVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcGFyc2VSZXN1bHQuZW52aXJvbiA9IHBhcnNlRW52aXJvbk9ialxuICAgIH1cbiAgfSBjYXRjaCAoX2VycjogYW55KSB7XG4gICAgdGhyb3cgeyAuLi5FUlJPUi5JTlZBTElEX0NPTlRFWFQgfVxuICB9XG5cbiAgcmV0dXJuIHBhcnNlUmVzdWx0XG59XG5cbi8qKlxuICog6I635Y+W5b2T5YmN5LqR5Ye95pWw5YaF55qE5omA5pyJ546v5aKD5Y+Y6YePXG4gKiDnu5/kuIDku44gcHJvY2Vzcy5lbnYg5ZKMIGNvbnRleHQg5Lik5Liq5p2l5rqQ5ZCI5bm25Y+W5YC8XG4gKlxuICog5Y+W5YC85LyY5YWI57qn77yaY29udGV4dCA+IHByb2Nlc3MuZW52XG4gKiDpgJrov4cgVENCX0NPTlRFWFRfS0VZUyAvIFdYX0NPTlRFWFRfS0VZUyDliqjmgIHmianlsZXpnIDopoHor7vlj5bnmoTnjq/looPlj5jph4/liJfooahcbiAqXG4gKiBAcGFyYW0gY29udGV4dCAtIOWPr+mAie+8jOS6keWHveaVsOWFpeWPo+eahCBjb250ZXh0IOWPguaVsFxuICogQHJldHVybnMg5ZCI5bm25ZCO55qE5a6M5pW0546v5aKD5Y+Y6YeP5LiK5LiL5paHXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDbG91ZGJhc2VDb250ZXh0ID0gKGNvbnRleHQ/OiBJQ29udGV4dFBhcmFtKTogSUNvbXBsZXRlQ2xvdWRiYXNlQ29udGV4dCA9PiB7XG4gIC8vIOS6keWHveaVsOeOr+Wig+S4i+agoemqjOW/heimgeeOr+Wig+WPmOmHj1xuICBpZiAoY2hlY2tJc0luU2NmKCkpIHtcbiAgICBpZiAoIWdldEVudignVEVOQ0VOVENMT1VEX1JFR0lPTicpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbVENCXVtFUlJPUl0gbWlzc2luZyBgVEVOQ0VOVENMT1VEX1JFR0lPTmAgZW52aXJvbm1lbnQnKVxuICAgIH1cbiAgICBpZiAoIWdldEVudignU0NGX05BTUVTUEFDRScpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbVENCXVtFUlJPUl0gbWlzc2luZyBgU0NGX05BTUVTUEFDRWAgZW52aXJvbm1lbnQnKVxuICAgIH1cbiAgfVxuXG4gIC8vIOesrOS4gOatpe+8muS7jiBwcm9jZXNzLmVudiDor7vlj5bln7rnoYDnjq/looPlj5jph49cbiAgY29uc3QgZW52T2JqID0gZ2V0RW52KClcbiAgY29uc3QgZW52RnJvbVByb2Nlc3NFbnY6IGFueSA9IHtcbiAgICBUUklHR0VSX1NSQzogZW52T2JqLlRSSUdHRVJfU1JDLFxuICAgIF9TQ0ZfVENCX0xPRzogZW52T2JqLl9TQ0ZfVENCX0xPRyxcbiAgICBTQ0ZfTkFNRVNQQUNFOiBlbnZPYmouU0NGX05BTUVTUEFDRSxcbiAgICBURU5DRU5UQ0xPVURfUlVORU5WOiBlbnZPYmouVEVOQ0VOVENMT1VEX1JVTkVOVixcbiAgICBURU5DRU5UQ0xPVURfU0VDUkVUSUQ6IGVudk9iai5URU5DRU5UQ0xPVURfU0VDUkVUSUQsXG4gICAgVEVOQ0VOVENMT1VEX1NFQ1JFVEtFWTogZW52T2JqLlRFTkNFTlRDTE9VRF9TRUNSRVRLRVksXG4gICAgVEVOQ0VOVENMT1VEX1NFU1NJT05UT0tFTjogZW52T2JqLlRFTkNFTlRDTE9VRF9TRVNTSU9OVE9LRU4sXG4gICAgV1hfQ09OVEVYVF9LRVlTOiBlbnZPYmouV1hfQ09OVEVYVF9LRVlTLFxuICAgIFdYX1RSSUdHRVJfQVBJX1RPS0VOX1YwOiBlbnZPYmouV1hfVFJJR0dFUl9BUElfVE9LRU5fVjAsXG4gICAgV1hfQ0xJRU5USVA6IGVudk9iai5XWF9DTElFTlRJUCxcbiAgICBXWF9DTElFTlRJUFY2OiBlbnZPYmouV1hfQ0xJRU5USVBWNixcbiAgICBUQ0JfQ09OVEVYVF9LRVlTOiBlbnZPYmouVENCX0NPTlRFWFRfS0VZUyxcbiAgICBUQ0JfQ09OVEVYVF9DTkZHOiBlbnZPYmouVENCX0NPTlRFWFRfQ05GRyxcbiAgICBMT0dJTlRZUEU6IGVudk9iai5MT0dJTlRZUEUsXG4gIH1cblxuICAvLyDnrKzkuozmraXvvJrku44gY29udGV4dCDkuK3op6PmnpDnjq/looPlj5jph49cbiAgbGV0IGVudkZyb21Db250ZXh0OiBhbnkgPSB7fVxuICBpZiAoY29udGV4dCkge1xuICAgIGNvbnN0IHsgZW52aXJvbm1lbnQsIGVudmlyb24gfSA9IHBhcnNlQ29udGV4dChjb250ZXh0KVxuICAgIGVudkZyb21Db250ZXh0ID0gZW52aXJvbm1lbnQgfHwgZW52aXJvbiB8fCB7fVxuICB9XG5cbiAgLy8g56ys5LiJ5q2l77ya5qC55o2uIENPTlRFWFRfS0VZUyDliqjmgIHmianlsZXlj5jph4/liJfooajvvIjkvJjlhYjlj5YgY29udGV4dCDkuK3nmoTlgLzvvIlcbiAgY29uc3QgdGNiQ29udGV4dEtleXMgPSBlbnZGcm9tQ29udGV4dC5UQ0JfQ09OVEVYVF9LRVlTIHx8IGVudk9iai5UQ0JfQ09OVEVYVF9LRVlTXG4gIGNvbnN0IHd4Q29udGV4dEtleXMgPSBlbnZGcm9tQ29udGV4dC5XWF9DT05URVhUX0tFWVMgfHwgZW52T2JqLldYX0NPTlRFWFRfS0VZU1xuXG4gIC8vIOagueaNriBDT05URVhUX0tFWVMg5Yqo5oCB5omp5bGV5Y+Y6YeP5YiX6KGoXG4gIGZvciAoY29uc3QgY29udGV4dEtleXMgb2YgW3RjYkNvbnRleHRLZXlzLCB3eENvbnRleHRLZXlzXSkge1xuICAgIGlmIChjb250ZXh0S2V5cykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNvbnRleHRLZXlzLnNwbGl0KCcsJykpIHtcbiAgICAgICAgICBlbnZGcm9tUHJvY2Vzc0VudltpdGVtXSA9IGVudkZyb21Db250ZXh0W2l0ZW1dIHx8IGdldEVudihpdGVtKVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChfZSkge1xuICAgICAgICAvL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIOesrOWbm+atpe+8muWQiOW5tuaJgOacieadpea6kO+8jGNvbnRleHQg55qE5YC86KaG55uWIHByb2Nlc3MuZW5277yM6L+H5rukIHVuZGVmaW5lZFxuICBjb25zdCBhbGxDb250ZXh0ID0geyAuLi5lbnZGcm9tUHJvY2Vzc0VudiwgLi4uZW52RnJvbUNvbnRleHQgfVxuXG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYWxsQ29udGV4dCkuZmlsdGVyKChbLCB2XSkgPT4gdiAhPT0gdW5kZWZpbmVkKSkgYXMgYW55XG59XG5cbi8qKlxuICog6I635Y+WIFRDQl9DT05URVhUX0NORkcg6YWN572uXG4gKiDop6PmnpDnjq/looPlj5jph4/kuK3nuqblrprnmoQgSlNPTiDphY3nva5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRjYkNvbnRleHRDb25maWcoKTogYW55IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBjb250ZXh0OiBhbnkgPSBnZXRDbG91ZGJhc2VDb250ZXh0KClcbiAgICBjb25zdCB7IFRDQl9DT05URVhUX0NORkcgfSA9IGNvbnRleHRcbiAgICBpZiAoVENCX0NPTlRFWFRfQ05GRykge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoVENCX0NPTlRFWFRfQ05GRylcbiAgICB9XG4gICAgcmV0dXJuIHt9XG4gIH0gY2F0Y2ggKF9lKSB7XG4gICAgY29uc29sZS5lcnJvcignW1RDQl1bRVJST1JdIHBhcnNlIGNvbnRleHQgZXJyb3I6ICcsIF9lKVxuICAgIHJldHVybiB7fVxuICB9XG59XG5cbi8qKlxuICog6I635Y+W5pyN5Yqh56uv5rOo5YWl55qEIFVSTFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VydmVySW5qZWN0VXJsKCk6IHN0cmluZyB7XG4gIGNvbnN0IHRjYkNvbnRleHRDb25maWcgPSBnZXRUY2JDb250ZXh0Q29uZmlnKClcbiAgcmV0dXJuIHRjYkNvbnRleHRDb25maWcuVVJMIHx8ICcnXG59XG5cbi8qKiDnvJPlrZggZXh0ZW5kZWRDb250ZXh077yM5L6b5YW25LuW5qih5Z2X6K+75Y+W77yI5aaCIHRvb2wudHMg5Lit6I635Y+WIHVzZXJJZO+8iSAqL1xuZXhwb3J0IGxldCBJTklUX0NPTkZJRzogSUNsb3VkYmFzZUNvbmZpZyA9IHt9IGFzIHVua25vd24gYXMgSUNsb3VkYmFzZUNvbmZpZ1xuXG4vKipcbiAqIOS7jueOr+Wig+WPmOmHjyAvIGNvbmZpZyDpobblsYLlrZfmrrUgLyBjb250ZXh0IOS4reiOt+WPluiFvuiur+S6keWvhumSpeS/oeaBr1xuICog5YW85a65IG5vZGUtc2RrIOmjjuagvOeahOmhtuWxgumFjee9ru+8iHNlY3JldElkLCBzZWNyZXRLZXksIGNyZWRlbnRpYWxzLCBjb250ZXh0IOetie+8iVxuICog55So5LqOIEFQSSDor7fmsYLnrb7lkI1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFNlY3JldEluZm8gPSAoY29uZmlnPzogSUNsb3VkYmFzZUNvbmZpZykgPT4ge1xuICBJTklUX0NPTkZJRyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29uZmlnIHx8IHt9KSlcblxuICBjb25zdCB7IFRDQl9FTlYsIFNDRl9OQU1FU1BBQ0UsIFRFTkNFTlRDTE9VRF9SVU5FTlYgfSA9IGdldEVudigpXG4gIGNvbnN0IHRvcExldmVsID0gY29uZmlnIGFzIGFueVxuXG4gIC8vIC0tLSBlbnYg5aSE55CGIC0tLVxuICAvLyBlbnYg5Y+v6IO95Li6IHN5bWJvbO+8iFNZTUJPTF9DVVJSRU5UX0VOViAvIFNZTUJPTF9ERUZBVUxUX0VOVu+8ie+8jOWwneivleS7jueOr+Wig+WPmOmHj+iOt+WPllxuICBsZXQgZW52ID0gJydcbiAgaWYgKHR5cGVvZiBjb25maWc/LmVudiA9PT0gJ3N5bWJvbCcgfHwgIWNvbmZpZz8uZW52KSB7XG4gICAgZW52ID0gVENCX0VOViB8fCBTQ0ZfTkFNRVNQQUNFIHx8ICcnXG4gIH0gZWxzZSB7XG4gICAgZW52ID0gY29uZmlnLmVudiBhcyBzdHJpbmdcbiAgfVxuXG4gIC8vIOacrOWcsOiwg+ivleeOr+Wig+eJueauiuWkhOeQhlxuICBpZiAoZW52ID09PSAnbG9jYWwnICYmIFRFTkNFTlRDTE9VRF9SVU5FTlYgPT09ICdXWF9MT0NBTF9TQ0YnKSB7XG4gICAgZW52ID0gJydcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRJbmZvID0ge1xuICAgIGVudixcbiAgICBzZWNyZXRJZDogJycsXG4gICAgc2VjcmV0S2V5OiAnJyxcbiAgICBzZXNzaW9uVG9rZW46ICcnLFxuICAgIGFjY2Vzc0tleTogJycsXG4gICAgc2VjcmV0VHlwZTogJycsXG4gICAgY3JlZGVudGlhbHM6IHVuZGVmaW5lZCBhcyBhbnksXG4gICAgY29udGV4dDogdW5kZWZpbmVkIGFzIGFueSxcbiAgfVxuXG4gIC8vIC0tLSDpobblsYIgY29udGV4dO+8iGZ1bmN0aW9ucy1mcmFtZXdvcmsg5LiK5LiL5paH77yJIC0tLVxuICBpZiAodG9wTGV2ZWw/LmNvbnRleHQpIHtcbiAgICBkZWZhdWx0SW5mby5jb250ZXh0ID0gdG9wTGV2ZWwuY29udGV4dFxuICB9XG5cbiAgLy8gLS0tIOmhtuWxgiBjcmVkZW50aWFsc++8iOengemSpeiupOivge+8iSAtLS1cbiAgaWYgKHRvcExldmVsPy5jcmVkZW50aWFscykge1xuICAgIGRlZmF1bHRJbmZvLmNyZWRlbnRpYWxzID0gdG9wTGV2ZWwuY3JlZGVudGlhbHNcbiAgfVxuXG4gIC8vIC0tLSBhY2Nlc3NLZXkg5LyY5YWI57qn77yaY29uZmlnLmFjY2Vzc0tleSA+IOeOr+Wig+WPmOmHjyAtLS1cbiAgaWYgKGNvbmZpZz8uYWNjZXNzS2V5IHx8IHRvcExldmVsPy5hY2Nlc3NLZXkpIHtcbiAgICBkZWZhdWx0SW5mby5hY2Nlc3NLZXkgPSBjb25maWc/LmFjY2Vzc0tleSB8fCB0b3BMZXZlbD8uYWNjZXNzS2V5XG4gICAgcmV0dXJuIGRlZmF1bHRJbmZvXG4gIH1cblxuICAvLyAtLS0g6aG25bGCIHNlY3JldElkL3NlY3JldEtlee+8iG5vZGUtc2RrIOmjjuagvOWFvOWuue+8iSAtLS1cbiAgaWYgKHRvcExldmVsPy5zZWNyZXRJZCAmJiB0b3BMZXZlbD8uc2VjcmV0S2V5KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgc2VjcmV0SWQ6IHRvcExldmVsLnNlY3JldElkLFxuICAgICAgc2VjcmV0S2V5OiB0b3BMZXZlbC5zZWNyZXRLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IHRvcExldmVsLnNlc3Npb25Ub2tlbiB8fCAnJyxcbiAgICAgIHNlY3JldFR5cGU6IHRvcExldmVsLnNlc3Npb25Ub2tlbiA/IFNFQ1JFVF9UWVBFLlNFU1NJT05fU0VDUkVUIDogU0VDUkVUX1RZUEUuU0VDUkVULFxuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSBjb25maWcuYXV0aCDkuK3nmoTlr4bpkqUgLS0tXG4gIGlmIChjb25maWc/LmF1dGg/LnNlY3JldElkICYmIGNvbmZpZz8uYXV0aD8uc2VjcmV0S2V5KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgc2VjcmV0SWQ6IGNvbmZpZy5hdXRoLnNlY3JldElkLFxuICAgICAgc2VjcmV0S2V5OiBjb25maWcuYXV0aC5zZWNyZXRLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IGNvbmZpZy5hdXRoLnNlc3Npb25Ub2tlbiB8fCAnJyxcbiAgICAgIHNlY3JldFR5cGU6IGNvbmZpZy5hdXRoLnNlY3JldFR5cGUgfHwgU0VDUkVUX1RZUEUuU0VDUkVULFxuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSDnjq/looPlj5jph4/kuK3nmoTlr4bpkqUgLS0tXG4gIGNvbnN0IHsgVEVOQ0VOVENMT1VEX1NFQ1JFVElELCBURU5DRU5UQ0xPVURfU0VDUkVUS0VZLCBURU5DRU5UQ0xPVURfU0VTU0lPTlRPS0VOLCBDTE9VREJBU0VfQVBJS0VZIH0gPSBnZXRFbnYoKVxuXG4gIGlmIChDTE9VREJBU0VfQVBJS0VZKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgYWNjZXNzS2V5OiBDTE9VREJBU0VfQVBJS0VZLFxuICAgIH1cbiAgfVxuXG4gIGlmIChURU5DRU5UQ0xPVURfU0VDUkVUSUQgJiYgVEVOQ0VOVENMT1VEX1NFQ1JFVEtFWSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0SW5mbyxcbiAgICAgIHNlY3JldElkOiBURU5DRU5UQ0xPVURfU0VDUkVUSUQsXG4gICAgICBzZWNyZXRLZXk6IFRFTkNFTlRDTE9VRF9TRUNSRVRLRVksXG4gICAgICBzZXNzaW9uVG9rZW46IFRFTkNFTlRDTE9VRF9TRVNTSU9OVE9LRU4gfHwgJycsXG4gICAgICBzZWNyZXRUeXBlOiBTRUNSRVRfVFlQRS5TRVNTSU9OX1NFQ1JFVCxcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gY29udGV4dC5leHRlbmRlZENvbnRleHQg5Lit55qE5Li05pe25a+G6ZKlIC0tLVxuICBjb25zdCBjb250ZXh0Q29uZmlnID0gdG9wTGV2ZWw/LmNvbnRleHQgfHwgY29uZmlnPy5jb250ZXh0XG4gIGlmIChjb250ZXh0Q29uZmlnPy5leHRlbmRlZENvbnRleHQpIHtcbiAgICBjb25zdCB7IGV4dGVuZGVkQ29udGV4dCB9ID0gY29udGV4dENvbmZpZ1xuICAgIGlmICghZW52KSB7XG4gICAgICBlbnYgPSBleHRlbmRlZENvbnRleHQuZW52SWQgfHwgJydcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZGVmYXVsdEluZm8sXG4gICAgICBlbnYsXG4gICAgICBzZWNyZXRJZDogZXh0ZW5kZWRDb250ZXh0Py50bXBTZWNyZXQ/LnNlY3JldElkIHx8ICcnLFxuICAgICAgc2VjcmV0S2V5OiBleHRlbmRlZENvbnRleHQ/LnRtcFNlY3JldD8uc2VjcmV0S2V5IHx8ICcnLFxuICAgICAgc2Vzc2lvblRva2VuOiBleHRlbmRlZENvbnRleHQ/LnRtcFNlY3JldD8udG9rZW4gfHwgJycsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgLi4uZGVmYXVsdEluZm8gfVxufVxuIl19
@@ -1,8 +1,10 @@
1
1
  import { SDKAdapterInterface } from '@cloudbase/adapter-interface';
2
2
  import { ICloudbaseConfig } from '@cloudbase/types';
3
3
  export { NodeRequest } from './request';
4
- export { parseQueryString, createWebStreamFromNodeReadableStream } from './utils';
5
- export type { ICreateTicketOpts, IGetUserInfoResult, IGetEndUserInfoResult, IUserInfoQuery, IContextParam, ICompleteCloudbaseContext, } from './types';
4
+ export { parseQueryString, createWebStreamFromNodeReadableStream, E, TcbError, SYMBOL_CURRENT_ENV, SYMBOL_DEFAULT_ENV, isValidEnvFormat, isPageModuleName, filterValue, filterUndefined, processReturn, setThrowOnCode } from './utils';
5
+ export { getCloudbaseContext, parseContext, getSecretInfo, getServerInjectUrl, getTcbContextConfig } from './context';
6
+ export { getWxCloudToken, buildAdminUrl, sendWxRequest, sendWxFormDataRequest, callWxOpenApi, callCompatibleWxOpenApi, callWxPayApi, wxCallContainerApi, getWxOptions } from './wx';
7
+ export type { ICreateTicketOpts, IGetUserInfoResult, IGetEndUserInfoResult, IUserInfoQuery, IContextParam, ICompleteCloudbaseContext, ISCFContext, ICallWxOpenApiOptions, ICallWxOpenApiResult, ITemplateNotifyReq, Extension, } from './types';
6
8
  declare function isMatch(): boolean;
7
9
  declare function genAdapter(options: any): SDKAdapterInterface & {
8
10
  getSecretInfo: (config?: ICloudbaseConfig) => {
@@ -22,7 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  return t;
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.createWebStreamFromNodeReadableStream = exports.parseQueryString = exports.NodeRequest = void 0;
25
+ exports.getWxOptions = exports.wxCallContainerApi = exports.callWxPayApi = exports.callCompatibleWxOpenApi = exports.callWxOpenApi = exports.sendWxFormDataRequest = exports.sendWxRequest = exports.buildAdminUrl = exports.getWxCloudToken = exports.getTcbContextConfig = exports.getServerInjectUrl = exports.getSecretInfo = exports.parseContext = exports.getCloudbaseContext = exports.setThrowOnCode = exports.processReturn = exports.filterUndefined = exports.filterValue = exports.isPageModuleName = exports.isValidEnvFormat = exports.SYMBOL_DEFAULT_ENV = exports.SYMBOL_CURRENT_ENV = exports.TcbError = exports.E = exports.createWebStreamFromNodeReadableStream = exports.parseQueryString = exports.NodeRequest = void 0;
26
26
  var adapter_interface_1 = require("@cloudbase/adapter-interface");
27
27
  var request_1 = require("./request");
28
28
  var tool_1 = require("./tool");
@@ -47,6 +47,32 @@ Object.defineProperty(exports, "NodeRequest", { enumerable: true, get: function
47
47
  var utils_2 = require("./utils");
48
48
  Object.defineProperty(exports, "parseQueryString", { enumerable: true, get: function () { return utils_2.parseQueryString; } });
49
49
  Object.defineProperty(exports, "createWebStreamFromNodeReadableStream", { enumerable: true, get: function () { return utils_2.createWebStreamFromNodeReadableStream; } });
50
+ Object.defineProperty(exports, "E", { enumerable: true, get: function () { return utils_2.E; } });
51
+ Object.defineProperty(exports, "TcbError", { enumerable: true, get: function () { return utils_2.TcbError; } });
52
+ Object.defineProperty(exports, "SYMBOL_CURRENT_ENV", { enumerable: true, get: function () { return utils_2.SYMBOL_CURRENT_ENV; } });
53
+ Object.defineProperty(exports, "SYMBOL_DEFAULT_ENV", { enumerable: true, get: function () { return utils_2.SYMBOL_DEFAULT_ENV; } });
54
+ Object.defineProperty(exports, "isValidEnvFormat", { enumerable: true, get: function () { return utils_2.isValidEnvFormat; } });
55
+ Object.defineProperty(exports, "isPageModuleName", { enumerable: true, get: function () { return utils_2.isPageModuleName; } });
56
+ Object.defineProperty(exports, "filterValue", { enumerable: true, get: function () { return utils_2.filterValue; } });
57
+ Object.defineProperty(exports, "filterUndefined", { enumerable: true, get: function () { return utils_2.filterUndefined; } });
58
+ Object.defineProperty(exports, "processReturn", { enumerable: true, get: function () { return utils_2.processReturn; } });
59
+ Object.defineProperty(exports, "setThrowOnCode", { enumerable: true, get: function () { return utils_2.setThrowOnCode; } });
60
+ var context_2 = require("./context");
61
+ Object.defineProperty(exports, "getCloudbaseContext", { enumerable: true, get: function () { return context_2.getCloudbaseContext; } });
62
+ Object.defineProperty(exports, "parseContext", { enumerable: true, get: function () { return context_2.parseContext; } });
63
+ Object.defineProperty(exports, "getSecretInfo", { enumerable: true, get: function () { return context_2.getSecretInfo; } });
64
+ Object.defineProperty(exports, "getServerInjectUrl", { enumerable: true, get: function () { return context_2.getServerInjectUrl; } });
65
+ Object.defineProperty(exports, "getTcbContextConfig", { enumerable: true, get: function () { return context_2.getTcbContextConfig; } });
66
+ var wx_1 = require("./wx");
67
+ Object.defineProperty(exports, "getWxCloudToken", { enumerable: true, get: function () { return wx_1.getWxCloudToken; } });
68
+ Object.defineProperty(exports, "buildAdminUrl", { enumerable: true, get: function () { return wx_1.buildAdminUrl; } });
69
+ Object.defineProperty(exports, "sendWxRequest", { enumerable: true, get: function () { return wx_1.sendWxRequest; } });
70
+ Object.defineProperty(exports, "sendWxFormDataRequest", { enumerable: true, get: function () { return wx_1.sendWxFormDataRequest; } });
71
+ Object.defineProperty(exports, "callWxOpenApi", { enumerable: true, get: function () { return wx_1.callWxOpenApi; } });
72
+ Object.defineProperty(exports, "callCompatibleWxOpenApi", { enumerable: true, get: function () { return wx_1.callCompatibleWxOpenApi; } });
73
+ Object.defineProperty(exports, "callWxPayApi", { enumerable: true, get: function () { return wx_1.callWxPayApi; } });
74
+ Object.defineProperty(exports, "wxCallContainerApi", { enumerable: true, get: function () { return wx_1.wxCallContainerApi; } });
75
+ Object.defineProperty(exports, "getWxOptions", { enumerable: true, get: function () { return wx_1.getWxOptions; } });
50
76
  function isMatch() {
51
77
  return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
52
78
  }
@@ -121,4 +147,4 @@ var adapter = {
121
147
  runtime: 'node-adapter',
122
148
  };
123
149
  exports.default = adapter;
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlicy9hZGFwdGVyLW5vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLGtFQUtxQztBQUVyQyxxQ0FBdUM7QUFDdkMsK0JBQWlDO0FBQ2pDLHFDQUF5QztBQUN6QyxpQ0FBMEM7QUFJMUMsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFBO0FBQ25CLFNBQVMsS0FBSztJQUNaLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixJQUFJO1lBRUYsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUNwQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0I7a0JBQ2xDLHNCQUFzQjtrQkFDdEIsK0JBQStCLENBQUUsQ0FBQTtTQUN0QztLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBR0QscUNBQXVDO0FBQTlCLHNHQUFBLFdBQVcsT0FBQTtBQUNwQixpQ0FBaUY7QUFBeEUseUdBQUEsZ0JBQWdCLE9BQUE7QUFBRSw4SEFBQSxxQ0FBcUMsT0FBQTtBQWNoRSxTQUFTLE9BQU87SUFFZCxPQUFPLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUE7QUFDcEcsQ0FBQztBQU1ELElBQU0sT0FBTyxHQUFxQixDQUFDO0lBQ2pDLElBQU0sRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUE7SUFDcEIsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxZQUFDLEdBQUcsRUFBRSxLQUFLO1lBQ2hCLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLENBQUM7UUFDRCxPQUFPLFlBQUMsR0FBRztZQUNULE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNwQixDQUFDO1FBQ0QsVUFBVSxZQUFDLEdBQUc7WUFDWixFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxLQUFLO1lBQ0gsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ1osQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDLENBQUMsRUFBRSxDQUFBO0FBU0osU0FBUyxVQUFVLENBQUMsT0FBWTtJQUM5QixJQUFNLE9BQU8sR0FVVDtRQUNGLFFBQVEsaUJBQUE7UUFDUixhQUFhLHlCQUFBO1FBQ2IsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtRQUN4QixRQUFRLEVBQUUscUJBQVc7UUFDckIsT0FBTyxFQUFFLEtBQUssRUFBMEI7UUFDeEMsY0FBYyxFQUFFLE9BQU87UUFDdkIsWUFBWSxFQUFFLE9BQU87UUFDckIsY0FBYyxFQUFFLCtCQUFXLENBQUMsT0FBTztRQUNuQyxjQUFjLEVBQUU7WUFNZCxtQkFBbUIsRUFBRSxVQUFDLElBQVk7Z0JBQ3hCLElBQUEsUUFBUSxHQUFLLE9BQU8sU0FBWixDQUFZO2dCQUM1QixJQUFJLFFBQVEsR0FBc0MsRUFBRSxDQUFBO2dCQUNwRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUE7Z0JBR2QsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO2dCQUN0RCxJQUFJLE9BQU8sRUFBRTtvQkFDWCxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNoQixJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ3pCLElBQUksTUFBTSxFQUFFO3dCQUNWLFFBQVEsR0FBRyxJQUFBLHdCQUFnQixFQUFDLE1BQU0sQ0FBQyxDQUFBO3FCQUNwQztpQkFDRjtnQkFFTyxJQUFBLEtBQUssR0FBc0IsUUFBUSxNQUE5QixFQUFLLFlBQVksVUFBSyxRQUFRLEVBQXJDLFNBQTBCLENBQUYsQ0FBYTtnQkFHM0MsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNoQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ3BCLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLGlCQUFpQixFQUFFLGdDQUF5QixJQUFJLENBQUU7cUJBQ25ELENBQUMsQ0FBQTtpQkFDSDtnQkFDRCxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNWLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDcEIsS0FBSyxFQUFFLGVBQWU7d0JBQ3RCLGlCQUFpQixFQUFFLDJCQUEyQjtxQkFDL0MsQ0FBQyxDQUFBO2lCQUNIO2dCQUVELE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPO29CQUV6QixRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFxQix3QkFDL0IsWUFBWSxLQUNmLEtBQUssT0FBQSxFQUNMLEdBQUcsS0FBQSxJQUNILENBQUE7b0JBR0YsUUFBUSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxVQUFDLEdBQWtEO3dCQUN4RixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQ2QsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDO1NBQ0Y7S0FDRixDQUFBO0lBQ0QsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQUdELElBQU0sT0FBTyxHQUFHO0lBQ2QsVUFBVSxZQUFBO0lBQ1YsT0FBTyxTQUFBO0lBQ1AsT0FBTyxFQUFFLGNBQWM7Q0FDeEIsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB7XG4gIFNES0FkYXB0ZXJJbnRlcmZhY2UsXG4gIFN0b3JhZ2VJbnRlcmZhY2UsXG4gIFN0b3JhZ2VUeXBlLFxuICBXZWJTb2NrZXRDb250cnVjdG9yIGFzIFdlYlNvY2tldENvbnN0cnVjdG9yLFxufSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuXG5pbXBvcnQgeyBOb2RlUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCdcbmltcG9ydCB7IG5vZGVUb29sIH0gZnJvbSAnLi90b29sJ1xuaW1wb3J0IHsgZ2V0U2VjcmV0SW5mbyB9IGZyb20gJy4vY29udGV4dCdcbmltcG9ydCB7IHBhcnNlUXVlcnlTdHJpbmcgfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5cbi8vIHdzIOW7tui/n+WKoOi9ve+8jOmBv+WFjemdniBOb2RlIOeOr+Wig+aJk+WMheaXtuW8leWFpVxubGV0IF9XUzogYW55ID0gbnVsbFxuZnVuY3Rpb24gZ2V0V1MoKSB7XG4gIGlmICghX1dTKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICBfV1MgPSByZXF1aXJlKCd3cycpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcign57y65bCR5L6d6LWWIHdz77yM6K+35omn6KGM5Lul5LiL5ZG95Luk5a6J6KOF77yaXFxuXFxuJ1xuICAgICAgICArICcgIG5wbSBpbnN0YWxsIHdzXFxuXFxuJ1xuICAgICAgICArICfor6Xkvp3otZbnlKjkuo4gTm9kZSDnjq/looPkuIvnmoQgV2ViU29ja2V0IOi/nuaOpeOAgicsKVxuICAgIH1cbiAgfVxuICByZXR1cm4gX1dTXG59XG5cbi8vIFJlLWV4cG9ydCBmb3IgZXh0ZXJuYWwgY29uc3VtZXJzXG5leHBvcnQgeyBOb2RlUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCdcbmV4cG9ydCB7IHBhcnNlUXVlcnlTdHJpbmcsIGNyZWF0ZVdlYlN0cmVhbUZyb21Ob2RlUmVhZGFibGVTdHJlYW0gfSBmcm9tICcuL3V0aWxzJ1xuZXhwb3J0IHR5cGUge1xuICBJQ3JlYXRlVGlja2V0T3B0cyxcbiAgSUdldFVzZXJJbmZvUmVzdWx0LFxuICBJR2V0RW5kVXNlckluZm9SZXN1bHQsXG4gIElVc2VySW5mb1F1ZXJ5LFxuICBJQ29udGV4dFBhcmFtLFxuICBJQ29tcGxldGVDbG91ZGJhc2VDb250ZXh0LFxufSBmcm9tICcuL3R5cGVzJ1xuXG4vKipcbiAqIOeOr+Wig+WMuemFjeajgOa1i++8muWIpOaWreW9k+WJjei/kOihjOeOr+Wig+aYr+WQpuS4uiBOb2RlLmpzXG4gKiBTREsg6YCa6L+H5q2k5pa55rOV5Yaz5a6a5piv5ZCm5L2/55So5b2T5YmNIGFkYXB0ZXJcbiAqL1xuZnVuY3Rpb24gaXNNYXRjaCgpOiBib29sZWFuIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MudmVyc2lvbnMgIT0gbnVsbCAmJiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT0gbnVsbFxufVxuXG4vKipcbiAqIOWfuuS6jiBNYXAg55qE5YaF5a2Y5a2Y5YKo5a6e546wXG4gKiBOb2RlLmpzIOeOr+Wig+S4i+aXoOa1j+iniOWZqCBTdG9yYWdlIEFQSe+8jOS9v+eUqOWGheWtmCBNYXAg5qih5oufXG4gKi9cbmNvbnN0IHN0b3JhZ2U6IFN0b3JhZ2VJbnRlcmZhY2UgPSAoKCkgPT4ge1xuICBjb25zdCBkYiA9IG5ldyBNYXAoKVxuICByZXR1cm4ge1xuICAgIG1vZGU6ICdzeW5jJyxcbiAgICBzZXRJdGVtKGtleSwgdmFsdWUpIHtcbiAgICAgIGRiLnNldChrZXksIHZhbHVlKVxuICAgIH0sXG4gICAgZ2V0SXRlbShrZXkpIHtcbiAgICAgIHJldHVybiBkYi5nZXQoa2V5KVxuICAgIH0sXG4gICAgcmVtb3ZlSXRlbShrZXkpIHtcbiAgICAgIGRiLmRlbGV0ZShrZXkpXG4gICAgfSxcbiAgICBjbGVhcigpIHtcbiAgICAgIGRiLmNsZWFyKClcbiAgICB9LFxuICB9XG59KSgpXG5cbi8qKlxuICog55Sf5oiQIE5vZGUuanMg546v5aKD55qEIFNESyBBZGFwdGVyXG4gKiDnu4Too4Xor7fmsYLnsbvjgIHlrZjlgqjjgIFXZWJTb2NrZXTjgIHorqTor4HnrYnog73liptcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIOmFjee9rumhue+8jOWMheWQqyBFdmVudEJ1c++8iOeUqOS6jumqjOivgeeggeWbnuiwg++8iVxuICogQHJldHVybnMgU0RLIEFkYXB0ZXIg5a6e5L6LXG4gKi9cbmZ1bmN0aW9uIGdlbkFkYXB0ZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UgJiB7XG4gICAgZ2V0U2VjcmV0SW5mbzogKGNvbmZpZz86IElDbG91ZGJhc2VDb25maWcpID0+IHtcbiAgICAgIGVudjogc3RyaW5nXG4gICAgICBzZWNyZXRJZDogc3RyaW5nXG4gICAgICBzZWNyZXRLZXk6IHN0cmluZ1xuICAgICAgc2Vzc2lvblRva2VuOiBzdHJpbmdcbiAgICAgIGFjY2Vzc0tleTogc3RyaW5nXG4gICAgICBzZWNyZXRUeXBlOiBzdHJpbmdcbiAgICB9XG4gICAgbm9kZVRvb2w6IChhcHA6IGFueSwgY29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnKSA9PiB2b2lkXG4gIH0gPSB7XG4gICAgbm9kZVRvb2wsXG4gICAgZ2V0U2VjcmV0SW5mbyxcbiAgICByb290OiB7IGdsb2JhbFRoaXM6IHt9IH0sXG4gICAgcmVxQ2xhc3M6IE5vZGVSZXF1ZXN0LFxuICAgIHdzQ2xhc3M6IGdldFdTKCkgYXMgV2ViU29ja2V0Q29uc3RydWN0b3IsXG4gICAgc2Vzc2lvblN0b3JhZ2U6IHN0b3JhZ2UsXG4gICAgbG9jYWxTdG9yYWdlOiBzdG9yYWdlLFxuICAgIHByaW1hcnlTdG9yYWdlOiBTdG9yYWdlVHlwZS5zZXNzaW9uLFxuICAgIGNhcHRjaGFPcHRpb25zOiB7XG4gICAgICAvKipcbiAgICAgICAqIOmqjOivgeeggeWkhOeQhuWbnuiwg1xuICAgICAgICog6Kej5p6QIGRhdGE6IFVSSSDkuK3nmoTpqozor4HnoIHlj4LmlbDvvIzpgJrov4cgRXZlbnRCdXMg6YCa55+l5Lia5Yqh5bGCXG4gICAgICAgKiDnrYnlvoXkuJrliqHlsYLov5Tlm57pqozor4Hnu5PmnpzlkI4gcmVzb2x2ZVxuICAgICAgICovXG4gICAgICBvcGVuVVJJV2l0aENhbGxiYWNrOiAoX3VybDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgRXZlbnRCdXMgfSA9IG9wdGlvbnNcbiAgICAgICAgbGV0IHF1ZXJ5T2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT4gPSB7fVxuICAgICAgICBsZXQgdXJsID0gX3VybFxuXG4gICAgICAgIC8vIOS7jiBkYXRhOiBVUkkg5Lit5o+Q5Y+W5p+l6K+i5Y+C5pWwXG4gICAgICAgIGNvbnN0IG1hdGNoZWQgPSBfdXJsLm1hdGNoKC9eKGRhdGE6Lio/KShcXD9bXiNcXHNdKik/JC8pXG4gICAgICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICAgICAgdXJsID0gbWF0Y2hlZFsxXVxuICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IG1hdGNoZWRbMl1cbiAgICAgICAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgICAgICBxdWVyeU9iaiA9IHBhcnNlUXVlcnlTdHJpbmcoc2VhcmNoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgdG9rZW4sIC4uLnJlc3RRdWVyeU9iaiB9ID0gcXVlcnlPYmpcblxuICAgICAgICAvLyBkYXRhOiDljY/orq7kvYbml6AgdG9rZW7vvIzop4bkuLrml6DmlYjpqozor4HnoIHmlbDmja5cbiAgICAgICAgaWYgKC9eZGF0YTovLnRlc3QodXJsKSAmJiAhdG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe1xuICAgICAgICAgICAgZXJyb3I6ICdpbnZhbGlkX2FyZ3VtZW50JyxcbiAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiBgaW52YWxpZSBjYXB0Y2hhIGRhdGE6ICR7X3VybH1gLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7XG4gICAgICAgICAgICBlcnJvcjogJ3VuaW1wbGVtZW50ZWQnLFxuICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246ICduZWVkIHRvIGltcGwgY2FwdGNoYSBkYXRhJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgLy8g6YCa55+l5Lia5Yqh5bGC5bGV56S66aqM6K+B56CBXG4gICAgICAgICAgRXZlbnRCdXMuJGVtaXQoJ0NBUFRDSEFfREFUQV9DSEFOR0UnLCB7XG4gICAgICAgICAgICAuLi5yZXN0UXVlcnlPYmosXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8g562J5b6F5Lia5Yqh5bGC6L+U5Zue6aqM6K+B57uT5p6cXG4gICAgICAgICAgRXZlbnRCdXMuJG9uY2UoJ1JFU09MVkVfQ0FQVENIQV9EQVRBJywgKHJlczogeyBjYXB0Y2hhX3Rva2VuOiBzdHJpbmc7IGV4cGlyZXNfaW46IG51bWJlciB9KSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICB9LFxuICB9XG4gIHJldHVybiBhZGFwdGVyXG59XG5cbi8qKiBOb2RlLmpzIEFkYXB0ZXIg5YWl5Y+j5a+85Ye6ICovXG5jb25zdCBhZGFwdGVyID0ge1xuICBnZW5BZGFwdGVyLFxuICBpc01hdGNoLFxuICBydW50aW1lOiAnbm9kZS1hZGFwdGVyJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWRhcHRlclxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlicy9hZGFwdGVyLW5vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLGtFQUtxQztBQUVyQyxxQ0FBdUM7QUFDdkMsK0JBQWlDO0FBQ2pDLHFDQUF5QztBQUN6QyxpQ0FBMEM7QUFJMUMsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFBO0FBQ25CLFNBQVMsS0FBSztJQUNaLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixJQUFJO1lBRUYsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUNwQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0I7a0JBQ2xDLHNCQUFzQjtrQkFDdEIsK0JBQStCLENBQUUsQ0FBQTtTQUN0QztLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBR0QscUNBQXVDO0FBQTlCLHNHQUFBLFdBQVcsT0FBQTtBQUNwQixpQ0FBdU87QUFBOU4seUdBQUEsZ0JBQWdCLE9BQUE7QUFBRSw4SEFBQSxxQ0FBcUMsT0FBQTtBQUFFLDBGQUFBLENBQUMsT0FBQTtBQUFFLGlHQUFBLFFBQVEsT0FBQTtBQUFFLDJHQUFBLGtCQUFrQixPQUFBO0FBQUUsMkdBQUEsa0JBQWtCLE9BQUE7QUFBRSx5R0FBQSxnQkFBZ0IsT0FBQTtBQUFFLHlHQUFBLGdCQUFnQixPQUFBO0FBQUUsb0dBQUEsV0FBVyxPQUFBO0FBQUUsd0dBQUEsZUFBZSxPQUFBO0FBQUUsc0dBQUEsYUFBYSxPQUFBO0FBQUUsdUdBQUEsY0FBYyxPQUFBO0FBQ3ROLHFDQUFxSDtBQUE1Ryw4R0FBQSxtQkFBbUIsT0FBQTtBQUFFLHVHQUFBLFlBQVksT0FBQTtBQUFFLHdHQUFBLGFBQWEsT0FBQTtBQUFFLDZHQUFBLGtCQUFrQixPQUFBO0FBQUUsOEdBQUEs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QUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTztvQkFFekIsUUFBUSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsd0JBQy9CLFlBQVksS0FDZixLQUFLLE9BQUEsRUFDTCxHQUFHLEtBQUEsSUFDSCxDQUFBO29CQUdGLFFBQVEsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsVUFBQyxHQUFrRDt3QkFDeEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUNkLENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQztTQUNGO0tBQ0YsQ0FBQTtJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFHRCxJQUFNLE9BQU8sR0FBRztJQUNkLFVBQVUsWUFBQTtJQUNWLE9BQU8sU0FBQTtJQUNQLE9BQU8sRUFBRSxjQUFjO0NBQ3hCLENBQUE7QUFFRCxrQkFBZSxPQUFPLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItZGVzdHJ1Y3R1cmluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQge1xuICBTREtBZGFwdGVySW50ZXJmYWNlLFxuICBTdG9yYWdlSW50ZXJmYWNlLFxuICBTdG9yYWdlVHlwZSxcbiAgV2ViU29ja2V0Q29udHJ1Y3RvciBhcyBXZWJTb2NrZXRDb25zdHJ1Y3Rvcixcbn0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcblxuaW1wb3J0IHsgTm9kZVJlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3QnXG5pbXBvcnQgeyBub2RlVG9vbCB9IGZyb20gJy4vdG9vbCdcbmltcG9ydCB7IGdldFNlY3JldEluZm8gfSBmcm9tICcuL2NvbnRleHQnXG5pbXBvcnQgeyBwYXJzZVF1ZXJ5U3RyaW5nIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IElDbG91ZGJhc2VDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuXG4vLyB3cyDlu7bov5/liqDovb3vvIzpgb/lhY3pnZ4gTm9kZSDnjq/looPmiZPljIXml7blvJXlhaVcbmxldCBfV1M6IGFueSA9IG51bGxcbmZ1bmN0aW9uIGdldFdTKCkge1xuICBpZiAoIV9XUykge1xuICAgIHRyeSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlcywgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgICAgX1dTID0gcmVxdWlyZSgnd3MnKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ+e8uuWwkeS+nei1liB3c++8jOivt+aJp+ihjOS7peS4i+WRveS7pOWuieijhe+8mlxcblxcbidcbiAgICAgICAgKyAnICBucG0gaW5zdGFsbCB3c1xcblxcbidcbiAgICAgICAgKyAn6K+l5L6d6LWW55So5LqOIE5vZGUg546v5aKD5LiL55qEIFdlYlNvY2tldCDov57mjqXjgIInLClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIF9XU1xufVxuXG4vLyBSZS1leHBvcnQgZm9yIGV4dGVybmFsIGNvbnN1bWVyc1xuZXhwb3J0IHsgTm9kZVJlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3QnXG5leHBvcnQgeyBwYXJzZVF1ZXJ5U3RyaW5nLCBjcmVhdGVXZWJTdHJlYW1Gcm9tTm9kZVJlYWRhYmxlU3RyZWFtLCBFLCBUY2JFcnJvciwgU1lNQk9MX0NVUlJFTlRfRU5WLCBTWU1CT0xfREVGQVVMVF9FTlYsIGlzVmFsaWRFbnZGb3JtYXQsIGlzUGFnZU1vZHVsZU5hbWUsIGZpbHRlclZhbHVlLCBmaWx0ZXJVbmRlZmluZWQsIHByb2Nlc3NSZXR1cm4sIHNldFRocm93T25Db2RlIH0gZnJvbSAnLi91dGlscydcbmV4cG9ydCB7IGdldENsb3VkYmFzZUNvbnRleHQsIHBhcnNlQ29udGV4dCwgZ2V0U2VjcmV0SW5mbywgZ2V0U2VydmVySW5qZWN0VXJsLCBnZXRUY2JDb250ZXh0Q29uZmlnIH0gZnJvbSAnLi9jb250ZXh0J1xuZXhwb3J0IHsgZ2V0V3hDbG91ZFRva2VuLCBidWlsZEFkbWluVXJsLCBzZW5kV3hSZXF1ZXN0LCBzZW5kV3hGb3JtRGF0YVJlcXVlc3QsIGNhbGxXeE9wZW5BcGksIGNhbGxDb21wYXRpYmxlV3hPcGVuQXBpLCBjYWxsV3hQYXlBcGksIHd4Q2FsbENvbnRhaW5lckFwaSwgZ2V0V3hPcHRpb25zIH0gZnJvbSAnLi93eCdcbmV4cG9ydCB0eXBlIHtcbiAgSUNyZWF0ZVRpY2tldE9wdHMsXG4gIElHZXRVc2VySW5mb1Jlc3VsdCxcbiAgSUdldEVuZFVzZXJJbmZvUmVzdWx0LFxuICBJVXNlckluZm9RdWVyeSxcbiAgSUNvbnRleHRQYXJhbSxcbiAgSUNvbXBsZXRlQ2xvdWRiYXNlQ29udGV4dCxcbiAgSVNDRkNvbnRleHQsXG4gIElDYWxsV3hPcGVuQXBpT3B0aW9ucyxcbiAgSUNhbGxXeE9wZW5BcGlSZXN1bHQsXG4gIElUZW1wbGF0ZU5vdGlmeVJlcSxcbiAgRXh0ZW5zaW9uLFxufSBmcm9tICcuL3R5cGVzJ1xuXG4vKipcbiAqIOeOr+Wig+WMuemFjeajgOa1i++8muWIpOaWreW9k+WJjei/kOihjOeOr+Wig+aYr+WQpuS4uiBOb2RlLmpzXG4gKiBTREsg6YCa6L+H5q2k5pa55rOV5Yaz5a6a5piv5ZCm5L2/55So5b2T5YmNIGFkYXB0ZXJcbiAqL1xuZnVuY3Rpb24gaXNNYXRjaCgpOiBib29sZWFuIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MudmVyc2lvbnMgIT0gbnVsbCAmJiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT0gbnVsbFxufVxuXG4vKipcbiAqIOWfuuS6jiBNYXAg55qE5YaF5a2Y5a2Y5YKo5a6e546wXG4gKiBOb2RlLmpzIOeOr+Wig+S4i+aXoOa1j+iniOWZqCBTdG9yYWdlIEFQSe+8jOS9v+eUqOWGheWtmCBNYXAg5qih5oufXG4gKi9cbmNvbnN0IHN0b3JhZ2U6IFN0b3JhZ2VJbnRlcmZhY2UgPSAoKCkgPT4ge1xuICBjb25zdCBkYiA9IG5ldyBNYXAoKVxuICByZXR1cm4ge1xuICAgIG1vZGU6ICdzeW5jJyxcbiAgICBzZXRJdGVtKGtleSwgdmFsdWUpIHtcbiAgICAgIGRiLnNldChrZXksIHZhbHVlKVxuICAgIH0sXG4gICAgZ2V0SXRlbShrZXkpIHtcbiAgICAgIHJldHVybiBkYi5nZXQoa2V5KVxuICAgIH0sXG4gICAgcmVtb3ZlSXRlbShrZXkpIHtcbiAgICAgIGRiLmRlbGV0ZShrZXkpXG4gICAgfSxcbiAgICBjbGVhcigpIHtcbiAgICAgIGRiLmNsZWFyKClcbiAgICB9LFxuICB9XG59KSgpXG5cbi8qKlxuICog55Sf5oiQIE5vZGUuanMg546v5aKD55qEIFNESyBBZGFwdGVyXG4gKiDnu4Too4Xor7fmsYLnsbvjgIHlrZjlgqjjgIFXZWJTb2NrZXTjgIHorqTor4HnrYnog73liptcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIOmFjee9rumhue+8jOWMheWQqyBFdmVudEJ1c++8iOeUqOS6jumqjOivgeeggeWbnuiwg++8iVxuICogQHJldHVybnMgU0RLIEFkYXB0ZXIg5a6e5L6LXG4gKi9cbmZ1bmN0aW9uIGdlbkFkYXB0ZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UgJiB7XG4gICAgZ2V0U2VjcmV0SW5mbzogKGNvbmZpZz86IElDbG91ZGJhc2VDb25maWcpID0+IHtcbiAgICAgIGVudjogc3RyaW5nXG4gICAgICBzZWNyZXRJZDogc3RyaW5nXG4gICAgICBzZWNyZXRLZXk6IHN0cmluZ1xuICAgICAgc2Vzc2lvblRva2VuOiBzdHJpbmdcbiAgICAgIGFjY2Vzc0tleTogc3RyaW5nXG4gICAgICBzZWNyZXRUeXBlOiBzdHJpbmdcbiAgICB9XG4gICAgbm9kZVRvb2w6IChhcHA6IGFueSwgY29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnKSA9PiB2b2lkXG4gIH0gPSB7XG4gICAgbm9kZVRvb2wsXG4gICAgZ2V0U2VjcmV0SW5mbyxcbiAgICByb290OiB7IGdsb2JhbFRoaXM6IHt9IH0sXG4gICAgcmVxQ2xhc3M6IE5vZGVSZXF1ZXN0LFxuICAgIHdzQ2xhc3M6IGdldFdTKCkgYXMgV2ViU29ja2V0Q29uc3RydWN0b3IsXG4gICAgc2Vzc2lvblN0b3JhZ2U6IHN0b3JhZ2UsXG4gICAgbG9jYWxTdG9yYWdlOiBzdG9yYWdlLFxuICAgIHByaW1hcnlTdG9yYWdlOiBTdG9yYWdlVHlwZS5zZXNzaW9uLFxuICAgIGNhcHRjaGFPcHRpb25zOiB7XG4gICAgICAvKipcbiAgICAgICAqIOmqjOivgeeggeWkhOeQhuWbnuiwg1xuICAgICAgICog6Kej5p6QIGRhdGE6IFVSSSDkuK3nmoTpqozor4HnoIHlj4LmlbDvvIzpgJrov4cgRXZlbnRCdXMg6YCa55+l5Lia5Yqh5bGCXG4gICAgICAgKiDnrYnlvoXkuJrliqHlsYLov5Tlm57pqozor4Hnu5PmnpzlkI4gcmVzb2x2ZVxuICAgICAgICovXG4gICAgICBvcGVuVVJJV2l0aENhbGxiYWNrOiAoX3VybDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgRXZlbnRCdXMgfSA9IG9wdGlvbnNcbiAgICAgICAgbGV0IHF1ZXJ5T2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT4gPSB7fVxuICAgICAgICBsZXQgdXJsID0gX3VybFxuXG4gICAgICAgIC8vIOS7jiBkYXRhOiBVUkkg5Lit5o+Q5Y+W5p+l6K+i5Y+C5pWwXG4gICAgICAgIGNvbnN0IG1hdGNoZWQgPSBfdXJsLm1hdGNoKC9eKGRhdGE6Lio/KShcXD9bXiNcXHNdKik/JC8pXG4gICAgICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICAgICAgdXJsID0gbWF0Y2hlZFsxXVxuICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IG1hdGNoZWRbMl1cbiAgICAgICAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgICAgICBxdWVyeU9iaiA9IHBhcnNlUXVlcnlTdHJpbmcoc2VhcmNoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgdG9rZW4sIC4uLnJlc3RRdWVyeU9iaiB9ID0gcXVlcnlPYmpcblxuICAgICAgICAvLyBkYXRhOiDljY/orq7kvYbml6AgdG9rZW7vvIzop4bkuLrml6DmlYjpqozor4HnoIHmlbDmja5cbiAgICAgICAgaWYgKC9eZGF0YTovLnRlc3QodXJsKSAmJiAhdG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe1xuICAgICAgICAgICAgZXJyb3I6ICdpbnZhbGlkX2FyZ3VtZW50JyxcbiAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiBgaW52YWxpZSBjYXB0Y2hhIGRhdGE6ICR7X3VybH1gLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7XG4gICAgICAgICAgICBlcnJvcjogJ3VuaW1wbGVtZW50ZWQnLFxuICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246ICduZWVkIHRvIGltcGwgY2FwdGNoYSBkYXRhJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgLy8g6YCa55+l5Lia5Yqh5bGC5bGV56S66aqM6K+B56CBXG4gICAgICAgICAgRXZlbnRCdXMuJGVtaXQoJ0NBUFRDSEFfREFUQV9DSEFOR0UnLCB7XG4gICAgICAgICAgICAuLi5yZXN0UXVlcnlPYmosXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8g562J5b6F5Lia5Yqh5bGC6L+U5Zue6aqM6K+B57uT5p6cXG4gICAgICAgICAgRXZlbnRCdXMuJG9uY2UoJ1JFU09MVkVfQ0FQVENIQV9EQVRBJywgKHJlczogeyBjYXB0Y2hhX3Rva2VuOiBzdHJpbmc7IGV4cGlyZXNfaW46IG51bWJlciB9KSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICB9LFxuICB9XG4gIHJldHVybiBhZGFwdGVyXG59XG5cbi8qKiBOb2RlLmpzIEFkYXB0ZXIg5YWl5Y+j5a+85Ye6ICovXG5jb25zdCBhZGFwdGVyID0ge1xuICBnZW5BZGFwdGVyLFxuICBpc01hdGNoLFxuICBydW50aW1lOiAnbm9kZS1hZGFwdGVyJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWRhcHRlclxuIl19
@@ -35,4 +35,7 @@ export declare class NodeRequest implements SDKRequestInterface {
35
35
  customReqOpts?: ICustomReqOpts;
36
36
  }) => Promise<ResponseObject>;
37
37
  request: (options: IRequestOptions, enableAbort?: boolean) => Promise<ResponseObject>;
38
+ private createAbortController;
39
+ private applyDuplexIfNeeded;
40
+ private isNpmFormData;
38
41
  }