@cloudbase/app 3.0.4 → 3.0.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 (47) hide show
  1. package/dist/cjs/index.js +13 -9
  2. package/dist/cjs/libs/adapter-node/constants.d.ts +33 -0
  3. package/dist/cjs/libs/adapter-node/constants.js +38 -0
  4. package/dist/cjs/libs/adapter-node/context.d.ts +13 -0
  5. package/dist/cjs/libs/adapter-node/context.js +162 -0
  6. package/dist/cjs/libs/adapter-node/index.d.ts +23 -0
  7. package/dist/cjs/libs/adapter-node/index.js +124 -0
  8. package/dist/cjs/libs/adapter-node/metadata.d.ts +14 -0
  9. package/dist/cjs/libs/adapter-node/metadata.js +130 -0
  10. package/dist/cjs/libs/adapter-node/request.d.ts +38 -0
  11. package/dist/cjs/libs/adapter-node/request.js +440 -0
  12. package/dist/cjs/libs/adapter-node/tool.d.ts +2 -0
  13. package/dist/cjs/libs/adapter-node/tool.js +227 -0
  14. package/dist/cjs/libs/adapter-node/types.d.ts +78 -0
  15. package/dist/cjs/libs/adapter-node/types.js +3 -0
  16. package/dist/cjs/libs/adapter-node/utils.d.ts +17 -0
  17. package/dist/cjs/libs/adapter-node/utils.js +221 -0
  18. package/dist/esm/index.js +13 -9
  19. package/dist/esm/libs/adapter-node/constants.d.ts +33 -0
  20. package/dist/esm/libs/adapter-node/constants.js +35 -0
  21. package/dist/esm/libs/adapter-node/context.d.ts +13 -0
  22. package/dist/esm/libs/adapter-node/context.js +156 -0
  23. package/dist/esm/libs/adapter-node/index.d.ts +23 -0
  24. package/dist/esm/libs/adapter-node/index.js +118 -0
  25. package/dist/esm/libs/adapter-node/metadata.d.ts +14 -0
  26. package/dist/esm/libs/adapter-node/metadata.js +123 -0
  27. package/dist/esm/libs/adapter-node/request.d.ts +38 -0
  28. package/dist/esm/libs/adapter-node/request.js +437 -0
  29. package/dist/esm/libs/adapter-node/tool.d.ts +2 -0
  30. package/dist/esm/libs/adapter-node/tool.js +223 -0
  31. package/dist/esm/libs/adapter-node/types.d.ts +78 -0
  32. package/dist/esm/libs/adapter-node/types.js +2 -0
  33. package/dist/esm/libs/adapter-node/utils.d.ts +17 -0
  34. package/dist/esm/libs/adapter-node/utils.js +205 -0
  35. package/dist/miniprogram/index.js +1 -1
  36. package/package.json +20 -4
  37. package/src/index.ts +14 -2
  38. package/src/libs/adapter-node/constants.ts +42 -0
  39. package/src/libs/adapter-node/context.ts +238 -0
  40. package/src/libs/adapter-node/index.ts +166 -0
  41. package/src/libs/adapter-node/metadata.ts +69 -0
  42. package/src/libs/adapter-node/request.ts +486 -0
  43. package/src/libs/adapter-node/tool.ts +223 -0
  44. package/src/libs/adapter-node/types.ts +116 -0
  45. package/src/libs/adapter-node/utils.ts +182 -0
  46. package/webpack/web.prod.js +14 -13
  47. package/webpack/webpack.miniprogram.js +10 -3
package/dist/cjs/index.js CHANGED
@@ -135,7 +135,7 @@ var Cloudbase = (function () {
135
135
  }));
136
136
  }
137
137
  var reqConfig = {
138
- timeout: config.timeout || 5000,
138
+ timeout: config.timeout || 15000,
139
139
  timeoutMsg: "[".concat((0, common_1.getSdkName)(), "][REQUEST TIMEOUT] request had been abort since didn't finished within").concat(config.timeout / 1000, "s"),
140
140
  auth: config.auth,
141
141
  };
@@ -266,14 +266,9 @@ var Cloudbase = (function () {
266
266
  };
267
267
  Cloudbase.prototype.dealNodeAdapterConfig = function (config) {
268
268
  var _a, _b;
269
- if ((_a = adapter_1.Platform.adapter) === null || _a === void 0 ? void 0 : _a.getSecretInfo) {
269
+ if (!process.env.IS_BROWSER_BUILD && ((_a = adapter_1.Platform.adapter) === null || _a === void 0 ? void 0 : _a.getSecretInfo)) {
270
270
  var secretInfo = (_b = adapter_1.Platform.adapter) === null || _b === void 0 ? void 0 : _b.getSecretInfo(config);
271
- config.auth = {
272
- secretId: secretInfo.secretId,
273
- secretKey: secretInfo.secretKey,
274
- sessionToken: secretInfo.sessionToken,
275
- secretType: secretInfo.secretType,
276
- };
271
+ config.auth = __assign(__assign({}, config.auth), { secretId: secretInfo.secretId, secretKey: secretInfo.secretKey, sessionToken: secretInfo.sessionToken, secretType: secretInfo.secretType });
277
272
  if (!config.env) {
278
273
  config.env = secretInfo.env;
279
274
  }
@@ -316,5 +311,14 @@ var Cloudbase = (function () {
316
311
  }());
317
312
  exports.cloudbase = new Cloudbase();
318
313
  exports.cloudbase.useAdapters((0, adapter_1.getWxDefaultAdapter)());
314
+ if (!process.env.IS_BROWSER_BUILD) {
315
+ try {
316
+ var nodeAdapter = require('./libs/adapter-node').default;
317
+ exports.cloudbase.useAdapters(nodeAdapter);
318
+ }
319
+ catch (error) {
320
+ throw error;
321
+ }
322
+ }
319
323
  exports.default = exports.cloudbase;
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBMEU7QUFhMUUsOENBQWtFO0FBQ2xFLDBDQUE4RDtBQUc5RCxzQ0FBd0U7QUFFeEUsMENBQStEO0FBQy9ELDZDQVcyQjtBQUMzQixvQ0FBOEM7QUFDOUMsNkNBQW9EO0FBQTNDLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixvQ0FBbUM7QUFBMUIsNkZBQUEsS0FBSyxPQUFBO0FBQ04sSUFBQSxXQUFXLEdBQXdCLG9CQUFRLFlBQWhDLEVBQUUsaUJBQWlCLEdBQUssb0JBQVEsa0JBQWIsQ0FBYTtBQUMzQyxJQUFBLE1BQU0sR0FBeUIscUJBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxxQkFBUyxtQkFBZCxDQUFjO0FBQ3hDLElBQUEsU0FBUyxHQUFLLGlCQUFLLFVBQVYsQ0FBVTtBQUNuQixJQUFBLG9CQUFvQixHQUFLLG1CQUFPLHFCQUFaLENBQVk7QUFLeEMsSUFBTSxtQkFBbUIsR0FBOEI7SUFDckQsT0FBTyxFQUFFLEtBQUs7SUFDZCxXQUFXLEVBQUUsT0FBTztDQUNyQixDQUFBO0FBR0QsSUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7QUFFbEMsSUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFBO0FBRXZCLElBQU0sWUFBWSxHQUE0QixFQUFFLENBQUE7QUFFaEQ7SUFVRSxtQkFBWSxNQUF5QjtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFBO1FBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxD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QUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRhcHRlcnMsIGNvbnN0YW50cywgdXRpbHMsIGhlbHBlcnMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IFNES0FkYXB0ZXJJbnRlcmZhY2UsIENsb3VkYmFzZUFkYXB0ZXIsIElSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7XG4gIElDbG91ZGJhc2VDb25maWcsXG4gIElDbG91ZGJhc2VVcGdyYWRlZENvbmZpZyxcbiAgSUNsb3VkYmFzZSxcbiAgSUNsb3VkYmFzZUV4dGVuc2lvbixcbiAgS1YsXG4gIElDbG91ZGJhc2VQbGF0Zm9ybUluZm8sXG4gIEVuZFBvaW50S2V5LFxuICBJQ2xvdWRiYXNlQXBpcyxcbn0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VBdXRoIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9hdXRoJ1xuaW1wb3J0IHsgcmVnaXN0ZXJDb21wb25lbnQsIHJlZ2lzdGVySG9vayB9IGZyb20gJy4vbGlicy9jb21wb25lbnQnXG5pbXBvcnQgeyBnZXRXeERlZmF1bHRBZGFwdGVyLCBQbGF0Zm9ybSB9IGZyb20gJy4vbGlicy9hZGFwdGVyJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbXBvbmVudCwgSUNsb3VkYmFzZUhvb2sgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY2FjaGUnXG5pbXBvcnQgeyBpbml0Q2FjaGUsIGdldENhY2hlQnlFbnZJZCwgZ2V0TG9jYWxDYWNoZSB9IGZyb20gJy4vbGlicy9jYWNoZSdcbmltcG9ydCB7IElDbG91ZGJhc2VSZXF1ZXN0IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9yZXF1ZXN0J1xuaW1wb3J0IHsgaW5pdFJlcXVlc3QsIGdldFJlcXVlc3RCeUVudklkIH0gZnJvbSAnLi9saWJzL3JlcXVlc3QnXG5pbXBvcnQge1xuICBnZXRTZGtOYW1lLFxuICBzZXRTZGtWZXJzaW9uLFxuICBzZXRSZWdpb25MZXZlbEVuZHBvaW50LFxuICBzZXRTZGtOYW1lLFxuICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52LFxuICB0eXBlIElTZXRFbmRQb2ludFdpdGhLZXksXG4gIHNldEVuZFBvaW50SW5mbyxcbiAgZ2V0RW5kUG9pbnRJbmZvLFxuICBnZXRTZGtWZXJzaW9uLFxuICBERUZBVUxUX1BST1RPQ09MLFxufSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5pbXBvcnQgeyBpMThuUHJveHksIExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5leHBvcnQgeyBnZXRCYXNlRW5kUG9pbnQgfSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5leHBvcnQgeyBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuY29uc3QgeyB1c2VBZGFwdGVycywgdXNlRGVmYXVsdEFkYXB0ZXIgfSA9IGFkYXB0ZXJzXG5jb25zdCB7IEVSUk9SUywgQ09NTVVOSVRZX1NJVEVfVVJMIH0gPSBjb25zdGFudHNcbmNvbnN0IHsgcHJpbnRXYXJuIH0gPSB1dGlsc1xuY29uc3QgeyBjYXRjaEVycm9yc0RlY29yYXRvciB9ID0gaGVscGVyc1xuXG4vKipcbiAqIEBjb25zdGFudCDpu5jorqTphY3nva5cbiAqL1xuY29uc3QgREVGQVVMVF9JTklUX0NPTkZJRzogUGFydGlhbDxJQ2xvdWRiYXNlQ29uZmlnPiA9IHtcbiAgdGltZW91dDogMTUwMDAsXG4gIHBlcnNpc3RlbmNlOiAnbG9jYWwnLCAvLyDmjIHkuYXljJblrZjlgqjnsbvlnotcbn1cblxuLy8gdGltZW91dOS4iumZkDEw5YiG6ZKfXG5jb25zdCBNQVhfVElNRU9VVCA9IDEwMDAgKiA2MCAqIDEwXG4vLyB0aW1lb3V05LiL6ZmQMTAwbXNcbmNvbnN0IE1JTl9USU1FT1VUID0gMTAwXG5cbmNvbnN0IGV4dGVuc2lvbk1hcDogS1Y8SUNsb3VkYmFzZUV4dGVuc2lvbj4gPSB7fVxuXG5jbGFzcyBDbG91ZGJhc2UgaW1wbGVtZW50cyBJQ2xvdWRiYXNlIHtcbiAgcHVibGljIGF1dGhJbnN0YW5jZTogSUNsb3VkYmFzZUF1dGhcbiAgcHVibGljIG9hdXRoSW5zdGFuY2U6IGFueVxuICBwdWJsaWMgcmVxdWVzdENsaWVudDogYW55XG4gIHB1YmxpYyBvYXV0aENsaWVudDogYW55XG4gIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmdcbiAgcHVibGljIGF1dGg6IElDbG91ZGJhc2VbJ2F1dGgnXSAmIElDbG91ZGJhc2VBdXRoXG4gIHB1YmxpYyBhcGlzOiBJQ2xvdWRiYXNlQXBpc1xuICBwcml2YXRlIGNsb3VkYmFzZUNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZ1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IElDbG91ZGJhc2VDb25maWcpIHtcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZyA9IGNvbmZpZyA/IGNvbmZpZyA6IHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gICAgdGhpcy5hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy5vYXV0aEluc3RhbmNlID0gbnVsbFxuICAgIHRoaXMudmVyc2lvbiA9IGdldFNka1ZlcnNpb24oKVxuICB9XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgfVxuXG4gIGdldCBwbGF0Zm9ybSgpOiBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvIHtcbiAgICByZXR1cm4gUGxhdGZvcm1cbiAgfVxuXG4gIGdldCBjYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRDYWNoZUJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IGxvY2FsQ2FjaGUoKTogSUNsb3VkYmFzZUNhY2hlIHtcbiAgICByZXR1cm4gZ2V0TG9jYWxDYWNoZSh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgcmVxdWVzdCgpOiBJQ2xvdWRiYXNlUmVxdWVzdCB7XG4gICAgcmV0dXJuIGdldFJlcXVlc3RCeUVudklkKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgbW9kZTogJ3N5bmMnLFxuICAgIHRpdGxlOiAnQ2xvdWRiYXNlIOWIneWni+WMluWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBjbG91ZGJhc2UuaW5pdCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5aaC5p6c5piv6Z2e5rWP6KeI5Zmo546v5aKD77yM5piv5ZCm6YWN572u5LqG5a6J5YWo5bqU55So5p2l5rqQ77yIaHR0cHM6Ly9kb2NzLmNsb3VkYmFzZS5uZXQvYXBpLXJlZmVyZW5jZS93ZWJ2My9hZGFwdGVyIyVFNyVBQyVBQy0yLSVFNiVBRCVBNSVFOSU4NSU4RCVFNyVCRCVBRSVFNSVBRSU4OSVFNSU4NSVBOCVFNSVCQSU5NCVFNyU5NCVBOCVFNiU5RCVBNSVFNiVCQSU5MO+8iScsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgaW5pdChjb25maWc6IElDbG91ZGJhc2VDb25maWcgJiB7IGxhbmc/OiBMQU5HUyB9KTogQ2xvdWRiYXNlIHtcbiAgICBjb25maWcuZW5kUG9pbnRNb2RlID0gY29uZmlnLmVuZFBvaW50TW9kZSB8fCAnR0FURVdBWSdcblxuICAgIC8vIOWIneWni+WMluaXtuiLpeacquWFvOWuueW5s+WPsO+8jOWImeS9v+eUqOm7mOiupGFkYXB0ZXJcbiAgICBpZiAoIVBsYXRmb3JtLmFkYXB0ZXIpIHtcbiAgICAgIHRoaXMudXNlRGVmYXVsdEFkYXB0ZXIoKVxuICAgIH1cblxuICAgIC8vIOWcqOWIpOaWrWNvbmZpZy5lbnbkuYvliY3vvIzlhYjlpITnkIZub2Rl546v5aKD55qE6YWN572uXG4gICAgY29uZmlnID0gdGhpcy5kZWFsTm9kZUFkYXB0ZXJDb25maWcoY29uZmlnKVxuXG4gICAgaWYgKCFjb25maWcuZW52KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogJ2VudiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQnLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIGNvbnN0IHJlcUNvbmZpZzogSVJlcXVlc3RDb25maWcgJiB7IGF1dGg6IElDbG91ZGJhc2VDb25maWdbJ2F1dGgnXSB9ID0ge1xuICAgICAgdGltZW91dDogY29uZmlnLnRpbWVvdXQgfHwgNTAwMCxcbiAgICAgIHRpbWVvdXRNc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVtSRVFVRVNUIFRJTUVPVVRdIHJlcXVlc3QgaGFkIGJlZW4gYWJvcnQgc2luY2UgZGlkbid0IGZpbmlzaGVkIHdpdGhpbiR7XG4gICAgICAgIGNvbmZpZy50aW1lb3V0IC8gMTAwMFxuICAgICAgfXNgLFxuICAgICAgYXV0aDogY29uZmlnLmF1dGgsXG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0Q2xpZW50ID0gbmV3IFBsYXRmb3JtLmFkYXB0ZXIucmVxQ2xhc3MocmVxQ29uZmlnKVxuXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX0lOSVRfQ09ORklHLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgaTE4bjogaTE4blByb3h5KFBsYXRmb3JtLCBjb25maWcpLFxuICAgIH1cblxuICAgIGRlbGV0ZSAodGhpcy5jbG91ZGJhc2VDb25maWcgYXMgYW55KS5sYW5nXG4gICAgLy8g5L+u5q2jdGltZW91dOWPluWAvFxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLnRpbWVvdXQgPSB0aGlzLmZvcm1hdFRpbWVvdXQodGhpcy5jbG91ZGJhc2VDb25maWcudGltZW91dClcbiAgICAvLyDliJ3lp4vljJZjYWNoZeWSjHJlcXVlc3RcbiAgICBjb25zdCB7IGVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCB0aW1lb3V0LCBvYXV0aENsaWVudCwgaTE4biB9ID0gdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICBpbml0Q2FjaGUoeyBlbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG5cbiAgICBzZXRSZWdpb25MZXZlbEVuZHBvaW50KGVudiwgY29uZmlnLnJlZ2lvbiB8fCAnJylcbiAgICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52KGVudiwgREVGQVVMVF9QUk9UT0NPTCwgY29uZmlnLnJlZ2lvbiB8fCAnJylcblxuICAgIGNvbnN0IGFwcCA9IG5ldyBDbG91ZGJhc2UodGhpcy5jbG91ZGJhc2VDb25maWcpXG4gICAgaW5pdFJlcXVlc3Qoe1xuICAgICAgZW52LFxuICAgICAgcmVnaW9uOiBjb25maWcucmVnaW9uIHx8ICcnLFxuICAgICAgdGltZW91dCxcbiAgICAgIG9hdXRoQ2xpZW50LFxuICAgICAgX2Zyb21BcHA6IGFwcCxcbiAgICAgIGkxOG4sXG4gICAgICBlbmRQb2ludE1vZGU6IGNvbmZpZy5lbmRQb2ludE1vZGUsXG4gICAgICBhdXRoOiBjb25maWcuYXV0aCxcbiAgICB9KVxuICAgIGFwcC5yZXF1ZXN0Q2xpZW50ID0gdGhpcy5yZXF1ZXN0Q2xpZW50XG4gICAgOyh0aGlzIGFzIGFueSk/LmZpcmU/LignY2xvdWRiYXNlX2luaXQnLCBhcHApXG5cbiAgICB0aGlzLnRyeTJJbml0QXV0aChhcHApXG5cbiAgICAvLyBub2Rl546v5aKD5Y+v5Lul5LuOYWRhcHRlcuiOt+WPlm5vZGVUb29s55qE5pa55rOVXG4gICAgaWYgKFBsYXRmb3JtLmFkYXB0ZXI/Lm5vZGVUb29sKSB7XG4gICAgICBQbGF0Zm9ybS5hZGFwdGVyPy5ub2RlVG9vbChhcHAsIHRoaXMuY2xvdWRiYXNlQ29uZmlnKVxuICAgIH1cblxuICAgIHJldHVybiBhcHBcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb25maWcoY29uZmlnOiBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcpIHtcbiAgICBjb25zdCB7IHBlcnNpc3RlbmNlLCBkZWJ1ZyB9ID0gY29uZmlnXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcucGVyc2lzdGVuY2UgPSBwZXJzaXN0ZW5jZVxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmRlYnVnID0gZGVidWdcbiAgICAvLyBwZXJzaXN0ZW5jZeaUueWKqOW9seWTjWNhY2hlXG4gICAgaW5pdENhY2hlKHsgZW52OiB0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGFuZyhsYW5nOiBMQU5HUykge1xuICAgIGlmICghbGFuZyB8fCBsYW5nID09PSB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuPy5sYW5nKSByZXR1cm5cblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmkxOG4ubGFuZyA9IGxhbmdcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckV4dGVuc2lvbihleHQ6IElDbG91ZGJhc2VFeHRlbnNpb24pIHtcbiAgICBleHRlbnNpb25NYXBbZXh0Lm5hbWVdID0gZXh0XG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iwg+eUqOaJqeWxleiDveWKm+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBpbnZva2VFeHRlbnNpb24oKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOiiq+iwg+eUqOeahOaJqeWxleiDveWKm+aYr+WQpuW3sue7j+WuieijheW5tumAmui/hyByZWdpc3RlckV4dGVuc2lvbigpIOazqOWGjCcsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgaW52b2tlRXh0ZW5zaW9uKG5hbWU6IHN0cmluZywgb3B0czogYW55KSB7XG4gICAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uTWFwW25hbWVdXG4gICAgaWYgKCFleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgZXh0ZW5zaW9uOiR7bmFtZX0gbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBpbnZva2VgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBleHQuaW52b2tlKG9wdHMsIHRoaXMpXG4gIH1cblxuICBwdWJsaWMgdXNlQWRhcHRlcnMoYWRhcHRlcnM6IENsb3VkYmFzZUFkYXB0ZXIgfCBDbG91ZGJhc2VBZGFwdGVyW10sIG9wdGlvbnM/OiBhbnkpIHtcbiAgICBjb25zdCB7IGFkYXB0ZXIsIHJ1bnRpbWUgfSA9IHVzZUFkYXB0ZXJzKGFkYXB0ZXJzLCBvcHRpb25zKSB8fCB7fVxuICAgIGFkYXB0ZXIgJiYgKFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2UpXG4gICAgcnVudGltZSAmJiAoUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySG9vayhob29rOiBJQ2xvdWRiYXNlSG9vaykge1xuICAgIHJlZ2lzdGVySG9vayhDbG91ZGJhc2UsIGhvb2spXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50KSB7XG4gICAgcmVnaXN0ZXJDb21wb25lbnQoQ2xvdWRiYXNlLCBjb21wb25lbnQpXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIHNldFNka1ZlcnNpb24odmVyc2lvbilcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHNldFNka05hbWUobmFtZSlcbiAgfVxuXG4gIC8qKiDorr7nva4gdGNiIGFwaSDnmoQgZW5kcG9pbnQgKi9cbiAgcHVibGljIHJlZ2lzdGVyRW5kUG9pbnQodXJsOiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICAgIHNldEVuZFBvaW50SW5mbyh7IGJhc2VVcmw6IHVybCwgcHJvdG9jb2wsIGVudjogdGhpcy5jb25maWcuZW52LCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbiAgfVxuXG4gIC8qKiDorr7nva7nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50V2l0aEtleShwcm9wczogSVNldEVuZFBvaW50V2l0aEtleSkge1xuICAgIHNldEVuZFBvaW50SW5mbyh7XG4gICAgICBlbnY6IHRoaXMuY29uZmlnLmVudixcbiAgICAgIGVuZFBvaW50S2V5OiBwcm9wcy5rZXksXG4gICAgICBiYXNlVXJsOiBwcm9wcy51cmwsXG4gICAgICBwcm90b2NvbDogcHJvcHMucHJvdG9jb2wsXG4gICAgfSlcbiAgfVxuXG4gIC8qKiDmi7/nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyBnZXRFbmRQb2ludFdpdGhLZXkoa2V5OiBFbmRQb2ludEtleSkge1xuICAgIGNvbnN0IGluZm8gPSBnZXRFbmRQb2ludEluZm8odGhpcy5jb25maWcuZW52LCBrZXkpXG4gICAgcmV0dXJuIHtcbiAgICAgIEJBU0VfVVJMOiBpbmZvLmJhc2VVcmwsXG4gICAgICBQUk9UT0NPTDogaW5mby5wcm90b2NvbCxcbiAgICB9XG4gIH1cblxuICAvLyDop6PmnpBVUkzlj4LmlbBcbiAgcHVibGljIHBhcnNlQ2FwdGNoYSh1cmwpIHtcbiAgICByZXR1cm4gdXRpbHMucGFyc2VDYXB0Y2hhKHVybClcbiAgfVxuXG4gIHByaXZhdGUgdXNlRGVmYXVsdEFkYXB0ZXIoKSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VEZWZhdWx0QWRhcHRlci5iaW5kKHRoaXMpKClcbiAgICBQbGF0Zm9ybS5hZGFwdGVyID0gYWRhcHRlciBhcyBTREtBZGFwdGVySW50ZXJmYWNlXG4gICAgUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nXG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFRpbWVvdXQodGltZW91dDogbnVtYmVyKSB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRpbWVvdXQgPiBNQVhfVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gdmFsdWVbMTBtaW5dJylcbiAgICAgICAgcmV0dXJuIE1BWF9USU1FT1VUXG4gICAgICBjYXNlIHRpbWVvdXQgPCBNSU5fVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgbGVzcyB0aGFuIG1heGltdW0gdmFsdWVbMTAwbXNdJylcbiAgICAgICAgcmV0dXJuIE1JTl9USU1FT1VUXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGltZW91dFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJ5MkluaXRBdXRoKGFwcCkge1xuICAgIHRyeSB7XG4gICAgICBhcHAuYXV0aCgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCd0cnkySW5pdEF1dGggZXJyb3I6JywgZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOWkhOeQhiBOb2RlIOeOr+Wig+S4iyBhZGFwdGVyIOeahOmFjee9ruS/oeaBr1xuICAgKiDlnKggTm9kZSDnjq/looPkuK3vvIzpgJrov4cgYWRhcHRlciDoh6rliqjojrflj5blr4bpkqXjgIHnjq/looNJROOAgWFjY2Vzc0tleSDnrYnphY3nva7vvIxcbiAgICog5YeP5bCR55So5oi35omL5Yqo5Lyg5YWl6YWN572u55qE6LSf5ouFXG4gICAqIEBwYXJhbSBjb25maWcgLSDkupHlvIDlj5HliJ3lp4vljJbphY3nva7lr7nosaFcbiAgICogQHJldHVybnMg6KGl5YWF5LqGIE5vZGUgYWRhcHRlciDkv6Hmga/lkI7nmoTphY3nva7lr7nosaFcbiAgICovXG4gIHByaXZhdGUgZGVhbE5vZGVBZGFwdGVyQ29uZmlnKGNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZykge1xuICAgIC8vIG5vZGXnjq/looPlj6/ku6Xku45hZGFwdGVy6I635Y+W6buY6K6k55qEc2VjcmV0SWTlkoxzZWNyZXRLZXlcbiAgICBpZiAoUGxhdGZvcm0uYWRhcHRlcj8uZ2V0U2VjcmV0SW5mbykge1xuICAgICAgY29uc3Qgc2VjcmV0SW5mbyA9IFBsYXRmb3JtLmFkYXB0ZXI/LmdldFNlY3JldEluZm8oY29uZmlnKVxuICAgICAgLy8g5bCGIGFkYXB0ZXIg5o+Q5L6b55qE5a+G6ZKl5L+h5oGv5YaZ5YWlIGNvbmZpZy5hdXRoXG4gICAgICBjb25maWcuYXV0aCA9IHtcbiAgICAgICAgc2VjcmV0SWQ6IHNlY3JldEluZm8uc2VjcmV0SWQsXG4gICAgICAgIHNlY3JldEtleTogc2VjcmV0SW5mby5zZWNyZXRLZXksXG4gICAgICAgIHNlc3Npb25Ub2tlbjogc2VjcmV0SW5mby5zZXNzaW9uVG9rZW4sXG4gICAgICAgIHNlY3JldFR5cGU6IHNlY3JldEluZm8uc2VjcmV0VHlwZSBhcyBhbnksXG4gICAgICB9XG5cbiAgICAgIC8vIG5vZGUg546v5aKD5Y+v6IO95Y+v5Lul5LuO5LiK5LiL5paH6I635Y+WZW5277yM55So5oi35pyq5pi+5byP5oyH5a6a5pe26Ieq5Yqo5aGr5YWFXG4gICAgICBpZiAoIWNvbmZpZy5lbnYpIHtcbiAgICAgICAgY29uZmlnLmVudiA9IHNlY3JldEluZm8uZW52XG4gICAgICB9XG5cbiAgICAgIC8vIG5vZGUgYWRhcHRlcueOr+Wig+iDveivu+WPluWIsCBwcm9jZXNzLmVudi5DTE9VREJBU0VfQVBJS0VZIOaXtu+8jOWcqOayoeacieS8oOWFpWFjY2Vzc0tleeaXtu+8jOS9v+eUqCBub2RlIGFkYXB0ZXIg5o+Q5L6b55qEIGFjY2Vzc0tlee+8iHByb2Nlc3MuZW52LkNMT1VEQkFTRV9BUElLRVnvvIlcbiAgICAgIGlmICghY29uZmlnLmFjY2Vzc0tleSAmJiBzZWNyZXRJbmZvLmFjY2Vzc0tleSkge1xuICAgICAgICBjb25maWcuYWNjZXNzS2V5ID0gc2VjcmV0SW5mby5hY2Nlc3NLZXlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cblxuLy8g57G75Z6L5a+85Ye6XG5leHBvcnQgdHlwZSB7IENsb3VkYmFzZSB9XG5cbi8vIOWAvOWvvOWHulxuZXhwb3J0IGNvbnN0IGNsb3VkYmFzZTogSUNsb3VkYmFzZSA9IG5ldyBDbG91ZGJhc2UoKVxuXG5jbG91ZGJhc2UudXNlQWRhcHRlcnMoZ2V0V3hEZWZhdWx0QWRhcHRlcigpKVxuXG4vLyDpu5jorqTlr7zlh7rlrp7kvotcbmV4cG9ydCBkZWZhdWx0IGNsb3VkYmFzZVxuIl19
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBMEU7QUFhMUUsOENBQWtFO0FBQ2xFLDBDQUE4RDtBQUc5RCxzQ0FBd0U7QUFFeEUsMENBQStEO0FBQy9ELDZDQVcyQjtBQUMzQixvQ0FBOEM7QUFDOUMsNkNBQW9EO0FBQTNDLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixvQ0FBbUM7QUFBMUIsNkZBQUEsS0FBSyxPQUFBO0FBQ04sSUFBQSxXQUFXLEdBQXdCLG9CQUFRLFlBQWhDLEVBQUUsaUJBQWlCLEdBQUssb0JBQVEsa0JBQWIsQ0FBYTtBQUMzQyxJQUFBLE1BQU0sR0FBeUIscUJBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxxQkFBUyxtQkFBZCxDQUFjO0FBQ3hDLElBQUEsU0FBUyxHQUFLLGlCQUFLLFVBQVYsQ0FBVTtBQUNuQixJQUFBLG9CQUFvQixHQUFLLG1CQUFPLHFCQUFaLENBQVk7QUFLeEMsSUFBTSxtQkFBbUIsR0FBOEI7SUFDckQsT0FBTyxFQUFFLEtBQUs7SUFDZCxXQUFXLEVBQUUsT0FBTztDQUNyQixDQUFBO0FBR0QsSUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7QUFFbEMsSUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFBO0FBRXZCLElBQU0sWUFBWSxHQUE0QixFQUFFLENBQUE7QUFFaEQ7SUFVRSxtQkFBWSxNQUF5QjtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFBO1FBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxD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QVcsQ0FBQyxJQUFBLDZCQUFtQixHQUFFLENBQUMsQ0FBQTtBQUc1QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRTtJQUNqQyxJQUFJO1FBRUYsSUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFBO1FBQzFELGlCQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0tBQ25DO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxNQUFNLEtBQUssQ0FBQTtLQUNaO0NBQ0Y7QUFHRCxrQkFBZSxpQkFBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRhcHRlcnMsIGNvbnN0YW50cywgdXRpbHMsIGhlbHBlcnMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IFNES0FkYXB0ZXJJbnRlcmZhY2UsIENsb3VkYmFzZUFkYXB0ZXIsIElSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7XG4gIElDbG91ZGJhc2VDb25maWcsXG4gIElDbG91ZGJhc2VVcGdyYWRlZENvbmZpZyxcbiAgSUNsb3VkYmFzZSxcbiAgSUNsb3VkYmFzZUV4dGVuc2lvbixcbiAgS1YsXG4gIElDbG91ZGJhc2VQbGF0Zm9ybUluZm8sXG4gIEVuZFBvaW50S2V5LFxuICBJQ2xvdWRiYXNlQXBpcyxcbn0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VBdXRoIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9hdXRoJ1xuaW1wb3J0IHsgcmVnaXN0ZXJDb21wb25lbnQsIHJlZ2lzdGVySG9vayB9IGZyb20gJy4vbGlicy9jb21wb25lbnQnXG5pbXBvcnQgeyBnZXRXeERlZmF1bHRBZGFwdGVyLCBQbGF0Zm9ybSB9IGZyb20gJy4vbGlicy9hZGFwdGVyJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbXBvbmVudCwgSUNsb3VkYmFzZUhvb2sgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY2FjaGUnXG5pbXBvcnQgeyBpbml0Q2FjaGUsIGdldENhY2hlQnlFbnZJZCwgZ2V0TG9jYWxDYWNoZSB9IGZyb20gJy4vbGlicy9jYWNoZSdcbmltcG9ydCB7IElDbG91ZGJhc2VSZXF1ZXN0IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9yZXF1ZXN0J1xuaW1wb3J0IHsgaW5pdFJlcXVlc3QsIGdldFJlcXVlc3RCeUVudklkIH0gZnJvbSAnLi9saWJzL3JlcXVlc3QnXG5pbXBvcnQge1xuICBnZXRTZGtOYW1lLFxuICBzZXRTZGtWZXJzaW9uLFxuICBzZXRSZWdpb25MZXZlbEVuZHBvaW50LFxuICBzZXRTZGtOYW1lLFxuICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52LFxuICB0eXBlIElTZXRFbmRQb2ludFdpdGhLZXksXG4gIHNldEVuZFBvaW50SW5mbyxcbiAgZ2V0RW5kUG9pbnRJbmZvLFxuICBnZXRTZGtWZXJzaW9uLFxuICBERUZBVUxUX1BST1RPQ09MLFxufSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5pbXBvcnQgeyBpMThuUHJveHksIExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5leHBvcnQgeyBnZXRCYXNlRW5kUG9pbnQgfSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5leHBvcnQgeyBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuY29uc3QgeyB1c2VBZGFwdGVycywgdXNlRGVmYXVsdEFkYXB0ZXIgfSA9IGFkYXB0ZXJzXG5jb25zdCB7IEVSUk9SUywgQ09NTVVOSVRZX1NJVEVfVVJMIH0gPSBjb25zdGFudHNcbmNvbnN0IHsgcHJpbnRXYXJuIH0gPSB1dGlsc1xuY29uc3QgeyBjYXRjaEVycm9yc0RlY29yYXRvciB9ID0gaGVscGVyc1xuXG4vKipcbiAqIEBjb25zdGFudCDpu5jorqTphY3nva5cbiAqL1xuY29uc3QgREVGQVVMVF9JTklUX0NPTkZJRzogUGFydGlhbDxJQ2xvdWRiYXNlQ29uZmlnPiA9IHtcbiAgdGltZW91dDogMTUwMDAsXG4gIHBlcnNpc3RlbmNlOiAnbG9jYWwnLCAvLyDmjIHkuYXljJblrZjlgqjnsbvlnotcbn1cblxuLy8gdGltZW91dOS4iumZkDEw5YiG6ZKfXG5jb25zdCBNQVhfVElNRU9VVCA9IDEwMDAgKiA2MCAqIDEwXG4vLyB0aW1lb3V05LiL6ZmQMTAwbXNcbmNvbnN0IE1JTl9USU1FT1VUID0gMTAwXG5cbmNvbnN0IGV4dGVuc2lvbk1hcDogS1Y8SUNsb3VkYmFzZUV4dGVuc2lvbj4gPSB7fVxuXG5jbGFzcyBDbG91ZGJhc2UgaW1wbGVtZW50cyBJQ2xvdWRiYXNlIHtcbiAgcHVibGljIGF1dGhJbnN0YW5jZTogSUNsb3VkYmFzZUF1dGhcbiAgcHVibGljIG9hdXRoSW5zdGFuY2U6IGFueVxuICBwdWJsaWMgcmVxdWVzdENsaWVudDogYW55XG4gIHB1YmxpYyBvYXV0aENsaWVudDogYW55XG4gIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmdcbiAgcHVibGljIGF1dGg6IElDbG91ZGJhc2VbJ2F1dGgnXSAmIElDbG91ZGJhc2VBdXRoXG4gIHB1YmxpYyBhcGlzOiBJQ2xvdWRiYXNlQXBpc1xuICBwcml2YXRlIGNsb3VkYmFzZUNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZ1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IElDbG91ZGJhc2VDb25maWcpIHtcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZyA9IGNvbmZpZyA/IGNvbmZpZyA6IHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gICAgdGhpcy5hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy5vYXV0aEluc3RhbmNlID0gbnVsbFxuICAgIHRoaXMudmVyc2lvbiA9IGdldFNka1ZlcnNpb24oKVxuICB9XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgfVxuXG4gIGdldCBwbGF0Zm9ybSgpOiBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvIHtcbiAgICByZXR1cm4gUGxhdGZvcm1cbiAgfVxuXG4gIGdldCBjYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRDYWNoZUJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IGxvY2FsQ2FjaGUoKTogSUNsb3VkYmFzZUNhY2hlIHtcbiAgICByZXR1cm4gZ2V0TG9jYWxDYWNoZSh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgcmVxdWVzdCgpOiBJQ2xvdWRiYXNlUmVxdWVzdCB7XG4gICAgcmV0dXJuIGdldFJlcXVlc3RCeUVudklkKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgbW9kZTogJ3N5bmMnLFxuICAgIHRpdGxlOiAnQ2xvdWRiYXNlIOWIneWni+WMluWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBjbG91ZGJhc2UuaW5pdCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5aaC5p6c5piv6Z2e5rWP6KeI5Zmo546v5aKD77yM5piv5ZCm6YWN572u5LqG5a6J5YWo5bqU55So5p2l5rqQ77yIaHR0cHM6Ly9kb2NzLmNsb3VkYmFzZS5uZXQvYXBpLXJlZmVyZW5jZS93ZWJ2My9hZGFwdGVyIyVFNyVBQyVBQy0yLSVFNiVBRCVBNSVFOSU4NSU4RCVFNyVCRCVBRSVFNSVBRSU4OSVFNSU4NSVBOCVFNSVCQSU5NCVFNyU5NCVBOCVFNiU5RCVBNSVFNiVCQSU5MO+8iScsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgaW5pdChjb25maWc6IElDbG91ZGJhc2VDb25maWcgJiB7IGxhbmc/OiBMQU5HUyB9KTogQ2xvdWRiYXNlIHtcbiAgICBjb25maWcuZW5kUG9pbnRNb2RlID0gY29uZmlnLmVuZFBvaW50TW9kZSB8fCAnR0FURVdBWSdcblxuICAgIC8vIOWIneWni+WMluaXtuiLpeacquWFvOWuueW5s+WPsO+8jOWImeS9v+eUqOm7mOiupGFkYXB0ZXJcbiAgICBpZiAoIVBsYXRmb3JtLmFkYXB0ZXIpIHtcbiAgICAgIHRoaXMudXNlRGVmYXVsdEFkYXB0ZXIoKVxuICAgIH1cblxuICAgIC8vIOWcqOWIpOaWrWNvbmZpZy5lbnbkuYvliY3vvIzlhYjlpITnkIZub2Rl546v5aKD55qE6YWN572uXG4gICAgY29uZmlnID0gdGhpcy5kZWFsTm9kZUFkYXB0ZXJDb25maWcoY29uZmlnKVxuXG4gICAgaWYgKCFjb25maWcuZW52KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogJ2VudiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQnLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIGNvbnN0IHJlcUNvbmZpZzogSVJlcXVlc3RDb25maWcgJiB7IGF1dGg6IElDbG91ZGJhc2VDb25maWdbJ2F1dGgnXSB9ID0ge1xuICAgICAgdGltZW91dDogY29uZmlnLnRpbWVvdXQgfHwgMTUwMDAsXG4gICAgICB0aW1lb3V0TXNnOiBgWyR7Z2V0U2RrTmFtZSgpfV1bUkVRVUVTVCBUSU1FT1VUXSByZXF1ZXN0IGhhZCBiZWVuIGFib3J0IHNpbmNlIGRpZG4ndCBmaW5pc2hlZCB3aXRoaW4ke1xuICAgICAgICBjb25maWcudGltZW91dCAvIDEwMDBcbiAgICAgIH1zYCxcbiAgICAgIGF1dGg6IGNvbmZpZy5hdXRoLFxuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdENsaWVudCA9IG5ldyBQbGF0Zm9ybS5hZGFwdGVyLnJlcUNsYXNzKHJlcUNvbmZpZylcblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9JTklUX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGkxOG46IGkxOG5Qcm94eShQbGF0Zm9ybSwgY29uZmlnKSxcbiAgICB9XG5cbiAgICBkZWxldGUgKHRoaXMuY2xvdWRiYXNlQ29uZmlnIGFzIGFueSkubGFuZ1xuICAgIC8vIOS/ruato3RpbWVvdXTlj5blgLxcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy50aW1lb3V0ID0gdGhpcy5mb3JtYXRUaW1lb3V0KHRoaXMuY2xvdWRiYXNlQ29uZmlnLnRpbWVvdXQpXG4gICAgLy8g5Yid5aeL5YyWY2FjaGXlkoxyZXF1ZXN0XG4gICAgY29uc3QgeyBlbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgdGltZW91dCwgb2F1dGhDbGllbnQsIGkxOG4gfSA9IHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gICAgaW5pdENhY2hlKHsgZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHBsYXRmb3JtSW5mbzogdGhpcy5wbGF0Zm9ybSB9KVxuXG4gICAgc2V0UmVnaW9uTGV2ZWxFbmRwb2ludChlbnYsIGNvbmZpZy5yZWdpb24gfHwgJycpXG4gICAgc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudihlbnYsIERFRkFVTFRfUFJPVE9DT0wsIGNvbmZpZy5yZWdpb24gfHwgJycpXG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2xvdWRiYXNlKHRoaXMuY2xvdWRiYXNlQ29uZmlnKVxuICAgIGluaXRSZXF1ZXN0KHtcbiAgICAgIGVudixcbiAgICAgIHJlZ2lvbjogY29uZmlnLnJlZ2lvbiB8fCAnJyxcbiAgICAgIHRpbWVvdXQsXG4gICAgICBvYXV0aENsaWVudCxcbiAgICAgIF9mcm9tQXBwOiBhcHAsXG4gICAgICBpMThuLFxuICAgICAgZW5kUG9pbnRNb2RlOiBjb25maWcuZW5kUG9pbnRNb2RlLFxuICAgICAgYXV0aDogY29uZmlnLmF1dGgsXG4gICAgfSlcbiAgICBhcHAucmVxdWVzdENsaWVudCA9IHRoaXMucmVxdWVzdENsaWVudFxuICAgIDsodGhpcyBhcyBhbnkpPy5maXJlPy4oJ2Nsb3VkYmFzZV9pbml0JywgYXBwKVxuXG4gICAgdGhpcy50cnkySW5pdEF1dGgoYXBwKVxuXG4gICAgLy8gbm9kZeeOr+Wig+WPr+S7peS7jmFkYXB0ZXLojrflj5Zub2RlVG9vbOeahOaWueazlVxuICAgIGlmIChQbGF0Zm9ybS5hZGFwdGVyPy5ub2RlVG9vbCkge1xuICAgICAgUGxhdGZvcm0uYWRhcHRlcj8ubm9kZVRvb2woYXBwLCB0aGlzLmNsb3VkYmFzZUNvbmZpZylcbiAgICB9XG5cbiAgICByZXR1cm4gYXBwXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ29uZmlnKGNvbmZpZzogSUNsb3VkYmFzZVVwZ3JhZGVkQ29uZmlnKSB7XG4gICAgY29uc3QgeyBwZXJzaXN0ZW5jZSwgZGVidWcgfSA9IGNvbmZpZ1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLnBlcnNpc3RlbmNlID0gcGVyc2lzdGVuY2VcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy5kZWJ1ZyA9IGRlYnVnXG4gICAgLy8gcGVyc2lzdGVuY2XmlLnliqjlvbHlk41jYWNoZVxuICAgIGluaXRDYWNoZSh7IGVudjogdGhpcy5jbG91ZGJhc2VDb25maWcuZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHBsYXRmb3JtSW5mbzogdGhpcy5wbGF0Zm9ybSB9KVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxhbmcobGFuZzogTEFOR1MpIHtcbiAgICBpZiAoIWxhbmcgfHwgbGFuZyA9PT0gdGhpcy5jbG91ZGJhc2VDb25maWcuaTE4bj8ubGFuZykgcmV0dXJuXG5cbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuLmxhbmcgPSBsYW5nXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJFeHRlbnNpb24oZXh0OiBJQ2xvdWRiYXNlRXh0ZW5zaW9uKSB7XG4gICAgZXh0ZW5zaW9uTWFwW2V4dC5uYW1lXSA9IGV4dFxuICB9XG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfosIPnlKjmianlsZXog73lipvlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggaW52b2tlRXh0ZW5zaW9uKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDooqvosIPnlKjnmoTmianlsZXog73lipvmmK/lkKblt7Lnu4/lronoo4XlubbpgJrov4cgcmVnaXN0ZXJFeHRlbnNpb24oKSDms6jlhownLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGludm9rZUV4dGVuc2lvbihuYW1lOiBzdHJpbmcsIG9wdHM6IGFueSkge1xuICAgIGNvbnN0IGV4dCA9IGV4dGVuc2lvbk1hcFtuYW1lXVxuICAgIGlmICghZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogYGV4dGVuc2lvbjoke25hbWV9IG11c3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgaW52b2tlYCxcbiAgICAgIH0pLClcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgZXh0Lmludm9rZShvcHRzLCB0aGlzKVxuICB9XG5cbiAgcHVibGljIHVzZUFkYXB0ZXJzKGFkYXB0ZXJzOiBDbG91ZGJhc2VBZGFwdGVyIHwgQ2xvdWRiYXNlQWRhcHRlcltdLCBvcHRpb25zPzogYW55KSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VBZGFwdGVycyhhZGFwdGVycywgb3B0aW9ucykgfHwge31cbiAgICBhZGFwdGVyICYmIChQbGF0Zm9ybS5hZGFwdGVyID0gYWRhcHRlciBhcyBTREtBZGFwdGVySW50ZXJmYWNlKVxuICAgIHJ1bnRpbWUgJiYgKFBsYXRmb3JtLnJ1bnRpbWUgPSBydW50aW1lIGFzIHN0cmluZylcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlckhvb2soaG9vazogSUNsb3VkYmFzZUhvb2spIHtcbiAgICByZWdpc3Rlckhvb2soQ2xvdWRiYXNlLCBob29rKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudDogSUNsb3VkYmFzZUNvbXBvbmVudCkge1xuICAgIHJlZ2lzdGVyQ29tcG9uZW50KENsb3VkYmFzZSwgY29tcG9uZW50KVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBzZXRTZGtWZXJzaW9uKHZlcnNpb24pXG4gICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvblxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyU2RrTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBzZXRTZGtOYW1lKG5hbWUpXG4gIH1cblxuICAvKiog6K6+572uIHRjYiBhcGkg55qEIGVuZHBvaW50ICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50KHVybDogc3RyaW5nLCBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcycpIHtcbiAgICBzZXRFbmRQb2ludEluZm8oeyBiYXNlVXJsOiB1cmwsIHByb3RvY29sLCBlbnY6IHRoaXMuY29uZmlnLmVudiwgZW5kUG9pbnRLZXk6ICdDTE9VRF9BUEknIH0pXG4gIH1cblxuICAvKiog6K6+572u572R5YWzL3RjYiBhcGnnmoQgZW5kUG9pbnTvvIzpgJrov4cga2V5IOaMh+WumiAqL1xuICBwdWJsaWMgcmVnaXN0ZXJFbmRQb2ludFdpdGhLZXkocHJvcHM6IElTZXRFbmRQb2ludFdpdGhLZXkpIHtcbiAgICBzZXRFbmRQb2ludEluZm8oe1xuICAgICAgZW52OiB0aGlzLmNvbmZpZy5lbnYsXG4gICAgICBlbmRQb2ludEtleTogcHJvcHMua2V5LFxuICAgICAgYmFzZVVybDogcHJvcHMudXJsLFxuICAgICAgcHJvdG9jb2w6IHByb3BzLnByb3RvY29sLFxuICAgIH0pXG4gIH1cblxuICAvKiog5ou/572R5YWzL3RjYiBhcGnnmoQgZW5kUG9pbnTvvIzpgJrov4cga2V5IOaMh+WumiAqL1xuICBwdWJsaWMgZ2V0RW5kUG9pbnRXaXRoS2V5KGtleTogRW5kUG9pbnRLZXkpIHtcbiAgICBjb25zdCBpbmZvID0gZ2V0RW5kUG9pbnRJbmZvKHRoaXMuY29uZmlnLmVudiwga2V5KVxuICAgIHJldHVybiB7XG4gICAgICBCQVNFX1VSTDogaW5mby5iYXNlVXJsLFxuICAgICAgUFJPVE9DT0w6IGluZm8ucHJvdG9jb2wsXG4gICAgfVxuICB9XG5cbiAgLy8g6Kej5p6QVVJM5Y+C5pWwXG4gIHB1YmxpYyBwYXJzZUNhcHRjaGEodXJsKSB7XG4gICAgcmV0dXJuIHV0aWxzLnBhcnNlQ2FwdGNoYSh1cmwpXG4gIH1cblxuICBwcml2YXRlIHVzZURlZmF1bHRBZGFwdGVyKCkge1xuICAgIGNvbnN0IHsgYWRhcHRlciwgcnVudGltZSB9ID0gdXNlRGVmYXVsdEFkYXB0ZXIuYmluZCh0aGlzKSgpXG4gICAgUGxhdGZvcm0uYWRhcHRlciA9IGFkYXB0ZXIgYXMgU0RLQWRhcHRlckludGVyZmFjZVxuICAgIFBsYXRmb3JtLnJ1bnRpbWUgPSBydW50aW1lIGFzIHN0cmluZ1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lb3V0KHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aW1lb3V0ID4gTUFYX1RJTUVPVVQ6XG4gICAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd0aW1lb3V0IGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlWzEwbWluXScpXG4gICAgICAgIHJldHVybiBNQVhfVElNRU9VVFxuICAgICAgY2FzZSB0aW1lb3V0IDwgTUlOX1RJTUVPVVQ6XG4gICAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd0aW1lb3V0IGlzIGxlc3MgdGhhbiBtYXhpbXVtIHZhbHVlWzEwMG1zXScpXG4gICAgICAgIHJldHVybiBNSU5fVElNRU9VVFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRpbWVvdXRcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyeTJJbml0QXV0aChhcHApIHtcbiAgICB0cnkge1xuICAgICAgYXBwLmF1dGgoKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygndHJ5MkluaXRBdXRoIGVycm9yOicsIGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDlpITnkIYgTm9kZSDnjq/looPkuIsgYWRhcHRlciDnmoTphY3nva7kv6Hmga9cbiAgICog5ZyoIE5vZGUg546v5aKD5Lit77yM6YCa6L+HIGFkYXB0ZXIg6Ieq5Yqo6I635Y+W5a+G6ZKl44CB546v5aKDSUTjgIFhY2Nlc3NLZXkg562J6YWN572u77yMXG4gICAqIOWHj+WwkeeUqOaIt+aJi+WKqOS8oOWFpemFjee9rueahOi0n+aLhVxuICAgKiBAcGFyYW0gY29uZmlnIC0g5LqR5byA5Y+R5Yid5aeL5YyW6YWN572u5a+56LGhXG4gICAqIEByZXR1cm5zIOihpeWFheS6hiBOb2RlIGFkYXB0ZXIg5L+h5oGv5ZCO55qE6YWN572u5a+56LGhXG4gICAqL1xuICBwcml2YXRlIGRlYWxOb2RlQWRhcHRlckNvbmZpZyhjb25maWc6IElDbG91ZGJhc2VDb25maWcpIHtcbiAgICAvLyBub2Rl546v5aKD5Y+v5Lul5LuOYWRhcHRlcuiOt+WPlum7mOiupOeahHNlY3JldElk5ZKMc2VjcmV0S2V5XG4gICAgaWYgKCFwcm9jZXNzLmVudi5JU19CUk9XU0VSX0JVSUxEICYmIFBsYXRmb3JtLmFkYXB0ZXI/LmdldFNlY3JldEluZm8pIHtcbiAgICAgIGNvbnN0IHNlY3JldEluZm8gPSBQbGF0Zm9ybS5hZGFwdGVyPy5nZXRTZWNyZXRJbmZvKGNvbmZpZylcbiAgICAgIC8vIOWwhiBhZGFwdGVyIOaPkOS+m+eahOWvhumSpeS/oeaBr+WGmeWFpSBjb25maWcuYXV0aFxuICAgICAgY29uZmlnLmF1dGggPSB7XG4gICAgICAgIC4uLmNvbmZpZy5hdXRoLFxuICAgICAgICBzZWNyZXRJZDogc2VjcmV0SW5mby5zZWNyZXRJZCxcbiAgICAgICAgc2VjcmV0S2V5OiBzZWNyZXRJbmZvLnNlY3JldEtleSxcbiAgICAgICAgc2Vzc2lvblRva2VuOiBzZWNyZXRJbmZvLnNlc3Npb25Ub2tlbixcbiAgICAgICAgc2VjcmV0VHlwZTogc2VjcmV0SW5mby5zZWNyZXRUeXBlIGFzIGFueSxcbiAgICAgIH1cblxuICAgICAgLy8gbm9kZSDnjq/looPlj6/og73lj6/ku6Xku47kuIrkuIvmlofojrflj5ZlbnbvvIznlKjmiLfmnKrmmL7lvI/mjIflrprml7boh6rliqjloavlhYVcbiAgICAgIGlmICghY29uZmlnLmVudikge1xuICAgICAgICBjb25maWcuZW52ID0gc2VjcmV0SW5mby5lbnZcbiAgICAgIH1cblxuICAgICAgLy8gbm9kZSBhZGFwdGVy546v5aKD6IO96K+75Y+W5YiwIHByb2Nlc3MuZW52LkNMT1VEQkFTRV9BUElLRVkg5pe277yM5Zyo5rKh5pyJ5Lyg5YWlYWNjZXNzS2V55pe277yM5L2/55SoIG5vZGUgYWRhcHRlciDmj5DkvpvnmoQgYWNjZXNzS2V577yIcHJvY2Vzcy5lbnYuQ0xPVURCQVNFX0FQSUtFWe+8iVxuICAgICAgaWYgKCFjb25maWcuYWNjZXNzS2V5ICYmIHNlY3JldEluZm8uYWNjZXNzS2V5KSB7XG4gICAgICAgIGNvbmZpZy5hY2Nlc3NLZXkgPSBzZWNyZXRJbmZvLmFjY2Vzc0tleVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuXG4vLyDnsbvlnovlr7zlh7pcbmV4cG9ydCB0eXBlIHsgQ2xvdWRiYXNlIH1cblxuLy8g5YC85a+85Ye6XG5leHBvcnQgY29uc3QgY2xvdWRiYXNlOiBJQ2xvdWRiYXNlID0gbmV3IENsb3VkYmFzZSgpXG5cbmNsb3VkYmFzZS51c2VBZGFwdGVycyhnZXRXeERlZmF1bHRBZGFwdGVyKCkpXG5cbi8vIE5vZGUg546v5aKD5LiL5Yqo5oCB5byV5YWlIGFkYXB0ZXLvvIzmtY/op4jlmagv5bCP56iL5bqP5omT5YyF5pe2IElTX0JST1dTRVJfQlVJTEQ9dHJ1Ze+8jOatpOWIhuaUr+S8muiiqyB0cmVlLXNoYWtpbmcg56e76ZmkXG5pZiAoIXByb2Nlc3MuZW52LklTX0JST1dTRVJfQlVJTEQpIHtcbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlcywgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgIGNvbnN0IG5vZGVBZGFwdGVyID0gcmVxdWlyZSgnLi9saWJzL2FkYXB0ZXItbm9kZScpLmRlZmF1bHRcbiAgICBjbG91ZGJhc2UudXNlQWRhcHRlcnMobm9kZUFkYXB0ZXIpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuXG4vLyDpu5jorqTlr7zlh7rlrp7kvotcbmV4cG9ydCBkZWZhdWx0IGNsb3VkYmFzZVxuIl19
@@ -0,0 +1,33 @@
1
+ export declare const ERROR: {
2
+ INVALID_PARAM: {
3
+ code: string;
4
+ message: string;
5
+ };
6
+ SYS_ERR: {
7
+ code: string;
8
+ message: string;
9
+ };
10
+ STORAGE_REQUEST_FAIL: {
11
+ code: string;
12
+ message: string;
13
+ };
14
+ STORAGE_FILE_NONEXIST: {
15
+ code: string;
16
+ message: string;
17
+ };
18
+ TCB_CLS_UNOPEN: {
19
+ code: string;
20
+ message: string;
21
+ };
22
+ INVALID_CONTEXT: {
23
+ code: string;
24
+ message: string;
25
+ };
26
+ };
27
+ export declare const ADMIN_PATH = "/admin";
28
+ export declare const CLIENT_AUTH_PATH = "/auth/v1/token/clientCredential";
29
+ export declare const checkCustomUserIdRegex: RegExp;
30
+ export declare enum SECRET_TYPE {
31
+ 'SECRET' = "SECRET",
32
+ 'SESSION_SECRET' = "SESSION_SECRET"
33
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SECRET_TYPE = exports.checkCustomUserIdRegex = exports.CLIENT_AUTH_PATH = exports.ADMIN_PATH = exports.ERROR = void 0;
4
+ exports.ERROR = {
5
+ INVALID_PARAM: {
6
+ code: 'INVALID_PARAM',
7
+ message: 'invalid param',
8
+ },
9
+ SYS_ERR: {
10
+ code: 'SYS_ERR',
11
+ message: 'system error',
12
+ },
13
+ STORAGE_REQUEST_FAIL: {
14
+ code: 'STORAGE_REQUEST_FAIL',
15
+ message: 'storage request fail',
16
+ },
17
+ STORAGE_FILE_NONEXIST: {
18
+ code: 'STORAGE_FILE_NONEXIST',
19
+ message: 'storage file not exist',
20
+ },
21
+ TCB_CLS_UNOPEN: {
22
+ code: 'TCB_CLS_UNOPEN',
23
+ message: '需要先开通日志检索功能',
24
+ },
25
+ INVALID_CONTEXT: {
26
+ code: 'INVALID_CONTEXT',
27
+ message: '无效的context对象,请使用 云函数入口的context参数',
28
+ },
29
+ };
30
+ exports.ADMIN_PATH = '/admin';
31
+ exports.CLIENT_AUTH_PATH = '/auth/v1/token/clientCredential';
32
+ exports.checkCustomUserIdRegex = /^[a-zA-Z0-9_\-#@~=*(){}[\]:.,<>+]{4,32}$/;
33
+ var SECRET_TYPE;
34
+ (function (SECRET_TYPE) {
35
+ SECRET_TYPE["SECRET"] = "SECRET";
36
+ SECRET_TYPE["SESSION_SECRET"] = "SESSION_SECRET";
37
+ })(SECRET_TYPE = exports.SECRET_TYPE || (exports.SECRET_TYPE = {}));
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYnMvYWRhcHRlci1ub2RlL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLEtBQUssR0FBRztJQUNuQixhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsZUFBZTtRQUNyQixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFDRCxvQkFBb0IsRUFBRTtRQUNwQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLE9BQU8sRUFBRSxzQkFBc0I7S0FDaEM7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLE9BQU8sRUFBRSx3QkFBd0I7S0FDbEM7SUFDRCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixPQUFPLEVBQUUsa0NBQWtDO0tBQzVDO0NBQ0YsQ0FBQTtBQUdZLFFBQUEsVUFBVSxHQUFHLFFBQVEsQ0FBQTtBQUdyQixRQUFBLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFBO0FBR3BELFFBQUEsc0JBQXNCLEdBQUcsMENBQTBDLENBQUE7QUFFaEYsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGdDQUFtQixDQUFBO0lBQ25CLGdEQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFIVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuLyoqIOe7n+S4gOmUmeivr+eggeWumuS5iSAqL1xuZXhwb3J0IGNvbnN0IEVSUk9SID0ge1xuICBJTlZBTElEX1BBUkFNOiB7XG4gICAgY29kZTogJ0lOVkFMSURfUEFSQU0nLFxuICAgIG1lc3NhZ2U6ICdpbnZhbGlkIHBhcmFtJyxcbiAgfSxcbiAgU1lTX0VSUjoge1xuICAgIGNvZGU6ICdTWVNfRVJSJyxcbiAgICBtZXNzYWdlOiAnc3lzdGVtIGVycm9yJyxcbiAgfSxcbiAgU1RPUkFHRV9SRVFVRVNUX0ZBSUw6IHtcbiAgICBjb2RlOiAnU1RPUkFHRV9SRVFVRVNUX0ZBSUwnLFxuICAgIG1lc3NhZ2U6ICdzdG9yYWdlIHJlcXVlc3QgZmFpbCcsXG4gIH0sXG4gIFNUT1JBR0VfRklMRV9OT05FWElTVDoge1xuICAgIGNvZGU6ICdTVE9SQUdFX0ZJTEVfTk9ORVhJU1QnLFxuICAgIG1lc3NhZ2U6ICdzdG9yYWdlIGZpbGUgbm90IGV4aXN0JyxcbiAgfSxcbiAgVENCX0NMU19VTk9QRU46IHtcbiAgICBjb2RlOiAnVENCX0NMU19VTk9QRU4nLFxuICAgIG1lc3NhZ2U6ICfpnIDopoHlhYjlvIDpgJrml6Xlv5fmo4DntKLlip/og70nLFxuICB9LFxuICBJTlZBTElEX0NPTlRFWFQ6IHtcbiAgICBjb2RlOiAnSU5WQUxJRF9DT05URVhUJyxcbiAgICBtZXNzYWdlOiAn5peg5pWI55qEY29udGV4dOWvueixoe+8jOivt+S9v+eUqCDkupHlh73mlbDlhaXlj6PnmoRjb250ZXh05Y+C5pWwJyxcbiAgfSxcbn1cblxuLyoqIOeuoeeQhuerryBBUEkg6Lev5b6E77yM55So5LqO5pu/5o2iIC93ZWIg6Lev5b6E77yI6ZyA6KaB5a+G6ZKl562+5ZCN5pe277yJICovXG5leHBvcnQgY29uc3QgQURNSU5fUEFUSCA9ICcvYWRtaW4nXG5cbi8qKiDnrqHnkIbnq6/ojrflj5blrqLmiLfnq6/lh63or4EgYWNjZXNzX3Rva2Vu77yM5Li6566h55CG5ZGY5p2D6ZmQICovXG5leHBvcnQgY29uc3QgQ0xJRU5UX0FVVEhfUEFUSCA9ICcvYXV0aC92MS90b2tlbi9jbGllbnRDcmVkZW50aWFsJ1xuXG4vKiog6Ieq5a6a5LmJ55So5oi3IElEIOagoemqjOinhOWIme+8mjR+MzIg5L2N77yM5YWB6K645a2X5q+N44CB5pWw5a2X5Y+K6YOo5YiG54m55q6K5a2X56ymICovXG5leHBvcnQgY29uc3QgY2hlY2tDdXN0b21Vc2VySWRSZWdleCA9IC9eW2EtekEtWjAtOV9cXC0jQH49Kigpe31bXFxdOi4sPD4rXXs0LDMyfSQvXG5cbmV4cG9ydCBlbnVtIFNFQ1JFVF9UWVBFIHtcbiAgJ1NFQ1JFVCcgPSAnU0VDUkVUJyxcbiAgJ1NFU1NJT05fU0VDUkVUJyA9ICdTRVNTSU9OX1NFQ1JFVCcsXG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import type { IContextParam, ICompleteCloudbaseContext } from './types';
2
+ import { ICloudbaseConfig } from '@cloudbase/types';
3
+ export declare function parseContext(context: IContextParam): any;
4
+ export declare const getCloudbaseContext: (context?: IContextParam) => ICompleteCloudbaseContext;
5
+ export declare let INIT_CONFIG: ICloudbaseConfig;
6
+ export declare const getSecretInfo: (config?: ICloudbaseConfig) => {
7
+ env: string;
8
+ secretId: string;
9
+ secretKey: string;
10
+ sessionToken: string;
11
+ accessKey: string;
12
+ secretType: string;
13
+ };
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getSecretInfo = exports.INIT_CONFIG = exports.getCloudbaseContext = exports.parseContext = void 0;
15
+ var constants_1 = require("./constants");
16
+ var utils_1 = require("./utils");
17
+ function parseContext(context) {
18
+ if (typeof context !== 'object') {
19
+ throw __assign(__assign({}, constants_1.ERROR.INVALID_CONTEXT), { message: 'context 必须为对象类型' });
20
+ }
21
+ var parseResult = {};
22
+ var memory_limit_in_mb = context.memory_limit_in_mb, time_limit_in_ms = context.time_limit_in_ms, request_id = context.request_id, function_version = context.function_version, namespace = context.namespace, function_name = context.function_name, environ = context.environ, environment = context.environment;
23
+ try {
24
+ parseResult.memoryLimitInMb = memory_limit_in_mb;
25
+ parseResult.timeLimitIns = time_limit_in_ms;
26
+ parseResult.requestId = request_id;
27
+ parseResult.functionVersion = function_version;
28
+ parseResult.namespace = namespace;
29
+ parseResult.functionName = function_name;
30
+ if (environment) {
31
+ parseResult.environment = JSON.parse(environment);
32
+ }
33
+ else {
34
+ var parseEnviron = environ === null || environ === void 0 ? void 0 : environ.split(';');
35
+ var parseEnvironObj = {};
36
+ for (var i in parseEnviron) {
37
+ if (parseEnviron[i].includes('=')) {
38
+ var equalIndex = parseEnviron[i].indexOf('=');
39
+ var key = parseEnviron[i].slice(0, equalIndex);
40
+ var value = parseEnviron[i].slice(equalIndex + 1);
41
+ if (value.indexOf(',') >= 0) {
42
+ value = value.split(',');
43
+ }
44
+ parseEnvironObj[key] = value;
45
+ }
46
+ }
47
+ parseResult.environ = parseEnvironObj;
48
+ }
49
+ }
50
+ catch (_err) {
51
+ throw __assign({}, constants_1.ERROR.INVALID_CONTEXT);
52
+ }
53
+ return parseResult;
54
+ }
55
+ exports.parseContext = parseContext;
56
+ var getCloudbaseContext = function (context) {
57
+ if ((0, utils_1.checkIsInScf)()) {
58
+ if (!(0, utils_1.getEnv)('TENCENTCLOUD_REGION')) {
59
+ console.error('[TCB][ERROR] missing `TENCENTCLOUD_REGION` environment');
60
+ }
61
+ if (!(0, utils_1.getEnv)('SCF_NAMESPACE')) {
62
+ console.error('[TCB][ERROR] missing `SCF_NAMESPACE` environment');
63
+ }
64
+ }
65
+ var envObj = (0, utils_1.getEnv)();
66
+ var envFromProcessEnv = {
67
+ TRIGGER_SRC: envObj.TRIGGER_SRC,
68
+ _SCF_TCB_LOG: envObj._SCF_TCB_LOG,
69
+ SCF_NAMESPACE: envObj.SCF_NAMESPACE,
70
+ TENCENTCLOUD_RUNENV: envObj.TENCENTCLOUD_RUNENV,
71
+ TENCENTCLOUD_SECRETID: envObj.TENCENTCLOUD_SECRETID,
72
+ TENCENTCLOUD_SECRETKEY: envObj.TENCENTCLOUD_SECRETKEY,
73
+ TENCENTCLOUD_SESSIONTOKEN: envObj.TENCENTCLOUD_SESSIONTOKEN,
74
+ WX_CONTEXT_KEYS: envObj.WX_CONTEXT_KEYS,
75
+ WX_TRIGGER_API_TOKEN_V0: envObj.WX_TRIGGER_API_TOKEN_V0,
76
+ WX_CLIENTIP: envObj.WX_CLIENTIP,
77
+ WX_CLIENTIPV6: envObj.WX_CLIENTIPV6,
78
+ TCB_CONTEXT_KEYS: envObj.TCB_CONTEXT_KEYS,
79
+ TCB_CONTEXT_CNFG: envObj.TCB_CONTEXT_CNFG,
80
+ LOGINTYPE: envObj.LOGINTYPE,
81
+ };
82
+ var envFromContext = {};
83
+ if (context) {
84
+ var _a = parseContext(context), environment = _a.environment, environ = _a.environ;
85
+ envFromContext = environment || environ || {};
86
+ }
87
+ var tcbContextKeys = envFromContext.TCB_CONTEXT_KEYS || envObj.TCB_CONTEXT_KEYS;
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);
95
+ }
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);
106
+ }
107
+ }
108
+ catch (_e) {
109
+ }
110
+ }
111
+ 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;
119
+ };
120
+ exports.getCloudbaseContext = getCloudbaseContext;
121
+ exports.INIT_CONFIG = {};
122
+ var getSecretInfo = function (config) {
123
+ var _a, _b, _c, _d, _f, _g;
124
+ 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 || '';
127
+ var defaultInfo = {
128
+ env: env,
129
+ secretId: '',
130
+ secretKey: '',
131
+ sessionToken: '',
132
+ accessKey: '',
133
+ secretType: '',
134
+ };
135
+ if (config === null || config === void 0 ? void 0 : config.accessKey) {
136
+ return defaultInfo;
137
+ }
138
+ 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 });
140
+ }
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;
146
+ if (CLOUDBASE_APIKEY) {
147
+ return __assign(__assign({}, defaultInfo), { accessKey: CLOUDBASE_APIKEY });
148
+ }
149
+ if (TENCENTCLOUD_SECRETID && TENCENTCLOUD_SECRETKEY) {
150
+ return __assign(__assign({}, defaultInfo), { secretId: TENCENTCLOUD_SECRETID, secretKey: TENCENTCLOUD_SECRETKEY, sessionToken: TENCENTCLOUD_SESSIONTOKEN || '', secretType: constants_1.SECRET_TYPE.SESSION_SECRET });
151
+ }
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;
154
+ if (!env) {
155
+ env = extendedContext.envId || '';
156
+ }
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) || '' });
158
+ }
159
+ return __assign({}, defaultInfo);
160
+ };
161
+ exports.getSecretInfo = getSecretInfo;
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXItbm9kZS9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBR0EseUNBQWdEO0FBQ2hELGlDQUE4QztBQVk5QyxTQUFnQixZQUFZLENBQUMsT0FBc0I7SUFDakQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsNEJBQVcsaUJBQUssQ0FBQyxlQUFlLEtBQUUsT0FBTyxFQUFFLGlCQUFpQixJQUFFO0tBQy9EO0lBRUQsSUFBTSxXQUFXLEdBQVEsRUFBRSxDQUFBO0lBR3pCLElBQUEsa0JBQWtCLEdBU2hCLE9BQU8sbUJBVFMsRUFDbEIsZ0JBQWdCLEdBUWQsT0FBTyxpQkFSTyxFQUNoQixVQUFVLEdBT1IsT0FBTyxXQVBDLEVBQ1YsZ0JBQWdCLEdBTWQsT0FBTyxpQkFOTyxFQUNoQixTQUFTLEdBS1AsT0FBTyxVQUxBLEVBQ1QsYUFBYSxHQUlYLE9BQU8sY0FKSSxFQUViLE9BQU8sR0FFTCxPQUFPLFFBRkYsRUFDUCxXQUFXLEdBQ1QsT0FBTyxZQURFLENBQ0Y7SUFFWCxJQUFJO1FBQ0YsV0FBVyxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQTtRQUNoRCxXQUFXLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFBO1FBQzNDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFBO1FBQ2xDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsZ0JBQWdCLENBQUE7UUFDOUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDakMsV0FBVyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUE7UUFFeEMsSUFBSSxXQUFXLEVBQUU7WUFFZixXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDbEQ7YUFBTTtZQUlMLElBQU0sWUFBWSxHQUFRLE9BQU8sYUFB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b3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tbXV0YWJsZS1leHBvcnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG5pbXBvcnQgeyBFUlJPUiwgU0VDUkVUX1RZUEUgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7IGNoZWNrSXNJblNjZiwgZ2V0RW52IH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB0eXBlIHsgSUNvbnRleHRQYXJhbSwgSUNvbXBsZXRlQ2xvdWRiYXNlQ29udGV4dCB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcblxuLyoqXG4gKiDop6PmnpDlubbmoKHpqozkupHlh73mlbDlhaXlj6PnmoQgQ29udGV4dCDlj4LmlbBcbiAqIOWwhuS4i+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==
@@ -0,0 +1,23 @@
1
+ import { SDKAdapterInterface } from '@cloudbase/adapter-interface';
2
+ import { ICloudbaseConfig } from '@cloudbase/types';
3
+ export { NodeRequest } from './request';
4
+ export { parseQueryString, createWebStreamFromNodeReadableStream } from './utils';
5
+ export type { ICreateTicketOpts, IGetUserInfoResult, IGetEndUserInfoResult, IUserInfoQuery, IContextParam, ICompleteCloudbaseContext, } from './types';
6
+ declare function isMatch(): boolean;
7
+ declare function genAdapter(options: any): SDKAdapterInterface & {
8
+ getSecretInfo: (config?: ICloudbaseConfig) => {
9
+ env: string;
10
+ secretId: string;
11
+ secretKey: string;
12
+ sessionToken: string;
13
+ accessKey: string;
14
+ secretType: string;
15
+ };
16
+ nodeTool: (app: any, config: ICloudbaseConfig) => void;
17
+ };
18
+ declare const adapter: {
19
+ genAdapter: typeof genAdapter;
20
+ isMatch: typeof isMatch;
21
+ runtime: string;
22
+ };
23
+ export default adapter;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.createWebStreamFromNodeReadableStream = exports.parseQueryString = exports.NodeRequest = void 0;
26
+ var adapter_interface_1 = require("@cloudbase/adapter-interface");
27
+ var request_1 = require("./request");
28
+ var tool_1 = require("./tool");
29
+ var context_1 = require("./context");
30
+ var utils_1 = require("./utils");
31
+ var _WS = null;
32
+ function getWS() {
33
+ if (!_WS) {
34
+ try {
35
+ _WS = require('ws');
36
+ }
37
+ catch (e) {
38
+ throw new Error('缺少依赖 ws,请执行以下命令安装:\n\n'
39
+ + ' npm install ws\n\n'
40
+ + '该依赖用于 Node 环境下的 WebSocket 连接。');
41
+ }
42
+ }
43
+ return _WS;
44
+ }
45
+ var request_2 = require("./request");
46
+ Object.defineProperty(exports, "NodeRequest", { enumerable: true, get: function () { return request_2.NodeRequest; } });
47
+ var utils_2 = require("./utils");
48
+ Object.defineProperty(exports, "parseQueryString", { enumerable: true, get: function () { return utils_2.parseQueryString; } });
49
+ Object.defineProperty(exports, "createWebStreamFromNodeReadableStream", { enumerable: true, get: function () { return utils_2.createWebStreamFromNodeReadableStream; } });
50
+ function isMatch() {
51
+ return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
52
+ }
53
+ var storage = (function () {
54
+ var db = new Map();
55
+ return {
56
+ mode: 'sync',
57
+ setItem: function (key, value) {
58
+ db.set(key, value);
59
+ },
60
+ getItem: function (key) {
61
+ return db.get(key);
62
+ },
63
+ removeItem: function (key) {
64
+ db.delete(key);
65
+ },
66
+ clear: function () {
67
+ db.clear();
68
+ },
69
+ };
70
+ })();
71
+ function genAdapter(options) {
72
+ var adapter = {
73
+ nodeTool: tool_1.nodeTool,
74
+ getSecretInfo: context_1.getSecretInfo,
75
+ root: { globalThis: {} },
76
+ reqClass: request_1.NodeRequest,
77
+ wsClass: getWS(),
78
+ sessionStorage: storage,
79
+ localStorage: storage,
80
+ primaryStorage: adapter_interface_1.StorageType.session,
81
+ captchaOptions: {
82
+ openURIWithCallback: function (_url) {
83
+ var EventBus = options.EventBus;
84
+ var queryObj = {};
85
+ var url = _url;
86
+ var matched = _url.match(/^(data:.*?)(\?[^#\s]*)?$/);
87
+ if (matched) {
88
+ url = matched[1];
89
+ var search = matched[2];
90
+ if (search) {
91
+ queryObj = (0, utils_1.parseQueryString)(search);
92
+ }
93
+ }
94
+ var token = queryObj.token, restQueryObj = __rest(queryObj, ["token"]);
95
+ if (/^data:/.test(url) && !token) {
96
+ return Promise.reject({
97
+ error: 'invalid_argument',
98
+ error_description: "invalie captcha data: ".concat(_url),
99
+ });
100
+ }
101
+ if (!token) {
102
+ return Promise.reject({
103
+ error: 'unimplemented',
104
+ error_description: 'need to impl captcha data',
105
+ });
106
+ }
107
+ return new Promise(function (resolve) {
108
+ EventBus.$emit('CAPTCHA_DATA_CHANGE', __assign(__assign({}, restQueryObj), { token: token, url: url }));
109
+ EventBus.$once('RESOLVE_CAPTCHA_DATA', function (res) {
110
+ resolve(res);
111
+ });
112
+ });
113
+ },
114
+ },
115
+ };
116
+ return adapter;
117
+ }
118
+ var adapter = {
119
+ genAdapter: genAdapter,
120
+ isMatch: isMatch,
121
+ runtime: 'node-adapter',
122
+ };
123
+ exports.default = adapter;
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlicy9hZGFwdGVyLW5vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLGtFQUtxQztBQUVyQyxxQ0FBdUM7QUFDdkMsK0JBQWlDO0FBQ2pDLHFDQUF5QztBQUN6QyxpQ0FBMEM7QUFJMUMsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFBO0FBQ25CLFNBQVMsS0FBSztJQUNaLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixJQUFJO1lBRUYsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUNwQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0I7a0JBQ3BDLHNCQUFzQjtrQkFDdEIsK0JBQStCLENBQUUsQ0FBQTtTQUN0QztLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBR0QscUNBQXVDO0FBQTlCLHNHQUFBLFdBQVcsT0FBQTtBQUNwQixpQ0FBaUY7QUFBeEUseUdBQUEsZ0JBQWdCLE9BQUE7QUFBRSw4SEFBQSxxQ0FBcUMsT0FBQTtBQWNoRSxTQUFTLE9BQU87SUFFZCxPQUFPLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUE7QUFDcEcsQ0FBQztBQU1ELElBQU0sT0FBTyxHQUFxQixDQUFDO0lBQ2pDLElBQU0sRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUE7SUFDcEIsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxZQUFDLEdBQUcsRUFBRSxLQUFLO1lBQ2hCLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLENBQUM7UUFDRCxPQUFPLFlBQUMsR0FBRztZQUNULE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNwQixDQUFDO1FBQ0QsVUFBVSxZQUFDLEdBQUc7WUFDWixFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLENBQUM7UUFDRCxLQUFLO1lBQ0gsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ1osQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDLENBQUMsRUFBRSxDQUFBO0FBU0osU0FBUyxVQUFVLENBQUMsT0FBWTtJQUM5QixJQUFNLE9BQU8sR0FVVDtRQUNGLFFBQVEsaUJBQUE7UUFDUixhQUFhLHlCQUFBO1FBQ2IsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtRQUN4QixRQUFRLEVBQUUscUJBQVc7UUFDckIsT0FBTyxFQUFFLEtBQUssRUFBMEI7UUFDeEMsY0FBYyxFQUFFLE9BQU87UUFDdkIsWUFBWSxFQUFFLE9BQU87UUFDckIsY0FBYyxFQUFFLCtCQUFXLENBQUMsT0FBTztRQUNuQyxjQUFjLEVBQUU7WUFNZCxtQkFBbUIsRUFBRSxVQUFDLElBQVk7Z0JBQ3hCLElBQUEsUUFBUSxHQUFLLE9BQU8sU0FBWixDQUFZO2dCQUM1QixJQUFJLFFBQVEsR0FBc0MsRUFBRSxDQUFBO2dCQUNwRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUE7Z0JBR2QsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO2dCQUN0RCxJQUFJLE9BQU8sRUFBRTtvQkFDWCxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNoQixJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ3pCLElBQUksTUFBTSxFQUFFO3dCQUNWLFFBQVEsR0FBRyxJQUFBLHdCQUFnQixFQUFDLE1BQU0sQ0FBQyxDQUFBO3FCQUNwQztpQkFDRjtnQkFFTyxJQUFBLEtBQUssR0FBc0IsUUFBUSxNQUE5QixFQUFLLFlBQVksVUFBSyxRQUFRLEVBQXJDLFNBQTBCLENBQUYsQ0FBYTtnQkFHM0MsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNoQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ3BCLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLGlCQUFpQixFQUFFLGdDQUF5QixJQUFJLENBQUU7cUJBQ25ELENBQUMsQ0FBQTtpQkFDSDtnQkFDRCxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNWLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDcEIsS0FBSyxFQUFFLGVBQWU7d0JBQ3RCLGlCQUFpQixFQUFFLDJCQUEyQjtxQkFDL0MsQ0FBQyxDQUFBO2lCQUNIO2dCQUVELE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPO29CQUV6QixRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFxQix3QkFDL0IsWUFBWSxLQUNmLEtBQUssT0FBQSxFQUNMLEdBQUcsS0FBQSxJQUNILENBQUE7b0JBR0YsUUFBUSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxVQUFDLEdBQWtEO3dCQUN4RixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQ2QsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDO1NBQ0Y7S0FDRixDQUFBO0lBQ0QsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQUdELElBQU0sT0FBTyxHQUFHO0lBQ2QsVUFBVSxZQUFBO0lBQ1YsT0FBTyxTQUFBO0lBQ1AsT0FBTyxFQUFFLGNBQWM7Q0FDeEIsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB7XG4gIFNES0FkYXB0ZXJJbnRlcmZhY2UsXG4gIFN0b3JhZ2VJbnRlcmZhY2UsXG4gIFN0b3JhZ2VUeXBlLFxuICBXZWJTb2NrZXRDb250cnVjdG9yIGFzIFdlYlNvY2tldENvbnN0cnVjdG9yLFxufSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuXG5pbXBvcnQgeyBOb2RlUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCdcbmltcG9ydCB7IG5vZGVUb29sIH0gZnJvbSAnLi90b29sJ1xuaW1wb3J0IHsgZ2V0U2VjcmV0SW5mbyB9IGZyb20gJy4vY29udGV4dCdcbmltcG9ydCB7IHBhcnNlUXVlcnlTdHJpbmcgfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5cbi8vIHdzIOW7tui/n+WKoOi9ve+8jOmBv+WFjemdniBOb2RlIOeOr+Wig+aJk+WMheaXtuW8leWFpVxubGV0IF9XUzogYW55ID0gbnVsbFxuZnVuY3Rpb24gZ2V0V1MoKSB7XG4gIGlmICghX1dTKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICBfV1MgPSByZXF1aXJlKCd3cycpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCfnvLrlsJHkvp3otZYgd3PvvIzor7fmiafooYzku6XkuIvlkb3ku6Tlronoo4XvvJpcXG5cXG4nXG4gICAgICAgICsgJyAgbnBtIGluc3RhbGwgd3NcXG5cXG4nXG4gICAgICAgICsgJ+ivpeS+nei1lueUqOS6jiBOb2RlIOeOr+Wig+S4i+eahCBXZWJTb2NrZXQg6L+e5o6l44CCJywpXG4gICAgfVxuICB9XG4gIHJldHVybiBfV1Ncbn1cblxuLy8gUmUtZXhwb3J0IGZvciBleHRlcm5hbCBjb25zdW1lcnNcbmV4cG9ydCB7IE5vZGVSZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0J1xuZXhwb3J0IHsgcGFyc2VRdWVyeVN0cmluZywgY3JlYXRlV2ViU3RyZWFtRnJvbU5vZGVSZWFkYWJsZVN0cmVhbSB9IGZyb20gJy4vdXRpbHMnXG5leHBvcnQgdHlwZSB7XG4gIElDcmVhdGVUaWNrZXRPcHRzLFxuICBJR2V0VXNlckluZm9SZXN1bHQsXG4gIElHZXRFbmRVc2VySW5mb1Jlc3VsdCxcbiAgSVVzZXJJbmZvUXVlcnksXG4gIElDb250ZXh0UGFyYW0sXG4gIElDb21wbGV0ZUNsb3VkYmFzZUNvbnRleHQsXG59IGZyb20gJy4vdHlwZXMnXG5cbi8qKlxuICog546v5aKD5Yy56YWN5qOA5rWL77ya5Yik5pat5b2T5YmN6L+Q6KGM546v5aKD5piv5ZCm5Li6IE5vZGUuanNcbiAqIFNESyDpgJrov4fmraTmlrnms5XlhrPlrprmmK/lkKbkvb/nlKjlvZPliY0gYWRhcHRlclxuICovXG5mdW5jdGlvbiBpc01hdGNoKCk6IGJvb2xlYW4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gIHJldHVybiB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvY2Vzcy52ZXJzaW9ucyAhPSBudWxsICYmIHByb2Nlc3MudmVyc2lvbnMubm9kZSAhPSBudWxsXG59XG5cbi8qKlxuICog5Z+65LqOIE1hcCDnmoTlhoXlrZjlrZjlgqjlrp7njrBcbiAqIE5vZGUuanMg546v5aKD5LiL5peg5rWP6KeI5ZmoIFN0b3JhZ2UgQVBJ77yM5L2/55So5YaF5a2YIE1hcCDmqKHmi59cbiAqL1xuY29uc3Qgc3RvcmFnZTogU3RvcmFnZUludGVyZmFjZSA9ICgoKSA9PiB7XG4gIGNvbnN0IGRiID0gbmV3IE1hcCgpXG4gIHJldHVybiB7XG4gICAgbW9kZTogJ3N5bmMnLFxuICAgIHNldEl0ZW0oa2V5LCB2YWx1ZSkge1xuICAgICAgZGIuc2V0KGtleSwgdmFsdWUpXG4gICAgfSxcbiAgICBnZXRJdGVtKGtleSkge1xuICAgICAgcmV0dXJuIGRiLmdldChrZXkpXG4gICAgfSxcbiAgICByZW1vdmVJdGVtKGtleSkge1xuICAgICAgZGIuZGVsZXRlKGtleSlcbiAgICB9LFxuICAgIGNsZWFyKCkge1xuICAgICAgZGIuY2xlYXIoKVxuICAgIH0sXG4gIH1cbn0pKClcblxuLyoqXG4gKiDnlJ/miJAgTm9kZS5qcyDnjq/looPnmoQgU0RLIEFkYXB0ZXJcbiAqIOe7hOijheivt+axguexu+OAgeWtmOWCqOOAgVdlYlNvY2tldOOAgeiupOivgeetieiDveWKm1xuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0g6YWN572u6aG577yM5YyF5ZCrIEV2ZW50QnVz77yI55So5LqO6aqM6K+B56CB5Zue6LCD77yJXG4gKiBAcmV0dXJucyBTREsgQWRhcHRlciDlrp7kvotcbiAqL1xuZnVuY3Rpb24gZ2VuQWRhcHRlcihvcHRpb25zOiBhbnkpIHtcbiAgY29uc3QgYWRhcHRlcjogU0RLQWRhcHRlckludGVyZmFjZSAmIHtcbiAgICBnZXRTZWNyZXRJbmZvOiAoY29uZmlnPzogSUNsb3VkYmFzZUNvbmZpZykgPT4ge1xuICAgICAgZW52OiBzdHJpbmdcbiAgICAgIHNlY3JldElkOiBzdHJpbmdcbiAgICAgIHNlY3JldEtleTogc3RyaW5nXG4gICAgICBzZXNzaW9uVG9rZW46IHN0cmluZ1xuICAgICAgYWNjZXNzS2V5OiBzdHJpbmdcbiAgICAgIHNlY3JldFR5cGU6IHN0cmluZ1xuICAgIH1cbiAgICBub2RlVG9vbDogKGFwcDogYW55LCBjb25maWc6IElDbG91ZGJhc2VDb25maWcpID0+IHZvaWRcbiAgfSA9IHtcbiAgICBub2RlVG9vbCxcbiAgICBnZXRTZWNyZXRJbmZvLFxuICAgIHJvb3Q6IHsgZ2xvYmFsVGhpczoge30gfSxcbiAgICByZXFDbGFzczogTm9kZVJlcXVlc3QsXG4gICAgd3NDbGFzczogZ2V0V1MoKSBhcyBXZWJTb2NrZXRDb25zdHJ1Y3RvcixcbiAgICBzZXNzaW9uU3RvcmFnZTogc3RvcmFnZSxcbiAgICBsb2NhbFN0b3JhZ2U6IHN0b3JhZ2UsXG4gICAgcHJpbWFyeVN0b3JhZ2U6IFN0b3JhZ2VUeXBlLnNlc3Npb24sXG4gICAgY2FwdGNoYU9wdGlvbnM6IHtcbiAgICAgIC8qKlxuICAgICAgICog6aqM6K+B56CB5aSE55CG5Zue6LCDXG4gICAgICAgKiDop6PmnpAgZGF0YTogVVJJIOS4reeahOmqjOivgeeggeWPguaVsO+8jOmAmui/hyBFdmVudEJ1cyDpgJrnn6XkuJrliqHlsYJcbiAgICAgICAqIOetieW+heS4muWKoeWxgui/lOWbnumqjOivgee7k+aenOWQjiByZXNvbHZlXG4gICAgICAgKi9cbiAgICAgIG9wZW5VUklXaXRoQ2FsbGJhY2s6IChfdXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgeyBFdmVudEJ1cyB9ID0gb3B0aW9uc1xuICAgICAgICBsZXQgcXVlcnlPYmo6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPiA9IHt9XG4gICAgICAgIGxldCB1cmwgPSBfdXJsXG5cbiAgICAgICAgLy8g5LuOIGRhdGE6IFVSSSDkuK3mj5Dlj5bmn6Xor6Llj4LmlbBcbiAgICAgICAgY29uc3QgbWF0Y2hlZCA9IF91cmwubWF0Y2goL14oZGF0YTouKj8pKFxcP1teI1xcc10qKT8kLylcbiAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICB1cmwgPSBtYXRjaGVkWzFdXG4gICAgICAgICAgY29uc3Qgc2VhcmNoID0gbWF0Y2hlZFsyXVxuICAgICAgICAgIGlmIChzZWFyY2gpIHtcbiAgICAgICAgICAgIHF1ZXJ5T2JqID0gcGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyB0b2tlbiwgLi4ucmVzdFF1ZXJ5T2JqIH0gPSBxdWVyeU9ialxuXG4gICAgICAgIC8vIGRhdGE6IOWNj+iuruS9huaXoCB0b2tlbu+8jOinhuS4uuaXoOaViOmqjOivgeeggeaVsOaNrlxuICAgICAgICBpZiAoL15kYXRhOi8udGVzdCh1cmwpICYmICF0b2tlbikge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7XG4gICAgICAgICAgICBlcnJvcjogJ2ludmFsaWRfYXJndW1lbnQnLFxuICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGBpbnZhbGllIGNhcHRjaGEgZGF0YTogJHtfdXJsfWAsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHtcbiAgICAgICAgICAgIGVycm9yOiAndW5pbXBsZW1lbnRlZCcsXG4gICAgICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogJ25lZWQgdG8gaW1wbCBjYXB0Y2hhIGRhdGEnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAvLyDpgJrnn6XkuJrliqHlsYLlsZXnpLrpqozor4HnoIFcbiAgICAgICAgICBFdmVudEJ1cy4kZW1pdCgnQ0FQVENIQV9EQVRBX0NIQU5HRScsIHtcbiAgICAgICAgICAgIC4uLnJlc3RRdWVyeU9iaixcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAvLyDnrYnlvoXkuJrliqHlsYLov5Tlm57pqozor4Hnu5PmnpxcbiAgICAgICAgICBFdmVudEJ1cy4kb25jZSgnUkVTT0xWRV9DQVBUQ0hBX0RBVEEnLCAocmVzOiB7IGNhcHRjaGFfdG9rZW46IHN0cmluZzsgZXhwaXJlc19pbjogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgIH0sXG4gIH1cbiAgcmV0dXJuIGFkYXB0ZXJcbn1cblxuLyoqIE5vZGUuanMgQWRhcHRlciDlhaXlj6Plr7zlh7ogKi9cbmNvbnN0IGFkYXB0ZXIgPSB7XG4gIGdlbkFkYXB0ZXIsXG4gIGlzTWF0Y2gsXG4gIHJ1bnRpbWU6ICdub2RlLWFkYXB0ZXInLFxufVxuXG5leHBvcnQgZGVmYXVsdCBhZGFwdGVyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ export declare const kMetadataBaseUrl = "http://metadata.tencentyun.com";
2
+ export declare const kAppIdPath = "meta-data/app-id";
3
+ export declare const kSecurityCredentialsPath = "meta-data/cam/security-credentials";
4
+ export declare enum kMetadataVersions {
5
+ 'v20170919' = "2017-09-19",
6
+ 'v1.0' = "1.0",
7
+ 'latest' = "latest"
8
+ }
9
+ export declare function isAppId(appIdStr: string): boolean;
10
+ export declare function lookup(path: string, options?: {
11
+ timeout?: number;
12
+ }): Promise<string>;
13
+ export declare function lookupAppId(): Promise<string>;
14
+ export declare function lookupCredentials(ruleName: string): Promise<string>;