@cloudbase/app 3.0.4 → 3.0.5

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 +12 -8
  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 +432 -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 +12 -8
  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 +429 -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 +13 -1
  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 +480 -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 +13 -13
  47. package/webpack/webpack.miniprogram.js +9 -3
package/dist/esm/index.js CHANGED
@@ -261,14 +261,9 @@ var Cloudbase = (function () {
261
261
  };
262
262
  Cloudbase.prototype.dealNodeAdapterConfig = function (config) {
263
263
  var _a, _b;
264
- if ((_a = Platform.adapter) === null || _a === void 0 ? void 0 : _a.getSecretInfo) {
264
+ if (!process.env.IS_BROWSER_BUILD && ((_a = Platform.adapter) === null || _a === void 0 ? void 0 : _a.getSecretInfo)) {
265
265
  var secretInfo = (_b = Platform.adapter) === null || _b === void 0 ? void 0 : _b.getSecretInfo(config);
266
- config.auth = {
267
- secretId: secretInfo.secretId,
268
- secretKey: secretInfo.secretKey,
269
- sessionToken: secretInfo.sessionToken,
270
- secretType: secretInfo.secretType,
271
- };
266
+ config.auth = __assign(__assign({}, config.auth), { secretId: secretInfo.secretId, secretKey: secretInfo.secretKey, sessionToken: secretInfo.sessionToken, secretType: secretInfo.secretType });
272
267
  if (!config.env) {
273
268
  config.env = secretInfo.env;
274
269
  }
@@ -311,5 +306,14 @@ var Cloudbase = (function () {
311
306
  }());
312
307
  export var cloudbase = new Cloudbase();
313
308
  cloudbase.useAdapters(getWxDefaultAdapter());
309
+ if (!process.env.IS_BROWSER_BUILD) {
310
+ try {
311
+ var nodeAdapter = require('./libs/adapter-node').default;
312
+ cloudbase.useAdapters(nodeAdapter);
313
+ }
314
+ catch (error) {
315
+ throw error;
316
+ }
317
+ }
314
318
  export default cloudbase;
315
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFhMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUc5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQy9ELE9BQU8sRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YseUJBQXlCLEVBRXpCLGVBQWUsRUFDZixlQUFlLEVBQ2YsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQVMsTUFBTSxhQUFhLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0IsSUFBQSxXQUFXLEdBQXdCLFFBQVEsWUFBaEMsRUFBRSxpQkFBaUIsR0FBSyxRQUFRLGtCQUFiLENBQWE7QUFDM0MsSUFBQSxNQUFNLEdBQXlCLFNBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxTQUFTLG1CQUFkLENBQWM7QUFDeEMsSUFBQSxTQUFTLEdBQUssS0FBSyxVQUFWLENBQVU7QUFDbkIsSUFBQSxvQkFBb0Is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QztZQUNwQixLQUFLLEVBQUUsVUFBVTtZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsVUFBVTtnQkFDVix1Q0FBdUM7Z0JBQ3ZDLGdEQUFnRDtnQkFDaEQsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7OztvREFXRDtJQWlISCxnQkFBQztDQUFBLEFBeFFELElBd1FDO0FBTUQsTUFBTSxDQUFDLElBQU0sU0FBUyxHQUFlLElBQUksU0FBUyxFQUFFLENBQUE7QUFFcEQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUE7QUFHNUMsZUFBZSxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGFwdGVycywgY29uc3RhbnRzLCB1dGlscywgaGVscGVycyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuaW1wb3J0IHsgU0RLQWRhcHRlckludGVyZmFjZSwgQ2xvdWRiYXNlQWRhcHRlciwgSVJlcXVlc3RDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgSUNsb3VkYmFzZUNvbmZpZyxcbiAgSUNsb3VkYmFzZVVwZ3JhZGVkQ29uZmlnLFxuICBJQ2xvdWRiYXNlLFxuICBJQ2xvdWRiYXNlRXh0ZW5zaW9uLFxuICBLVixcbiAgSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyxcbiAgRW5kUG9pbnRLZXksXG4gIElDbG91ZGJhc2VBcGlzLFxufSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUF1dGggfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2F1dGgnXG5pbXBvcnQgeyByZWdpc3RlckNvbXBvbmVudCwgcmVnaXN0ZXJIb29rIH0gZnJvbSAnLi9saWJzL2NvbXBvbmVudCdcbmltcG9ydCB7IGdldFd4RGVmYXVsdEFkYXB0ZXIsIFBsYXRmb3JtIH0gZnJvbSAnLi9saWJzL2FkYXB0ZXInXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29tcG9uZW50LCBJQ2xvdWRiYXNlSG9vayB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNhY2hlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSdcbmltcG9ydCB7IGluaXRDYWNoZSwgZ2V0Q2FjaGVCeUVudklkLCBnZXRMb2NhbENhY2hlIH0gZnJvbSAnLi9saWJzL2NhY2hlJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZVJlcXVlc3QgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL3JlcXVlc3QnXG5pbXBvcnQgeyBpbml0UmVxdWVzdCwgZ2V0UmVxdWVzdEJ5RW52SWQgfSBmcm9tICcuL2xpYnMvcmVxdWVzdCdcbmltcG9ydCB7XG4gIGdldFNka05hbWUsXG4gIHNldFNka1ZlcnNpb24sXG4gIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQsXG4gIHNldFNka05hbWUsXG4gIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYsXG4gIHR5cGUgSVNldEVuZFBvaW50V2l0aEtleSxcbiAgc2V0RW5kUG9pbnRJbmZvLFxuICBnZXRFbmRQb2ludEluZm8sXG4gIGdldFNka1ZlcnNpb24sXG4gIERFRkFVTFRfUFJPVE9DT0wsXG59IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcbmltcG9ydCB7IGkxOG5Qcm94eSwgTEFOR1MgfSBmcm9tICcuL2xpYnMvbGFuZydcbmV4cG9ydCB7IGdldEJhc2VFbmRQb2ludCB9IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcbmV4cG9ydCB7IExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5jb25zdCB7IHVzZUFkYXB0ZXJzLCB1c2VEZWZhdWx0QWRhcHRlciB9ID0gYWRhcHRlcnNcbmNvbnN0IHsgRVJST1JTLCBDT01NVU5JVFlfU0lURV9VUkwgfSA9IGNvbnN0YW50c1xuY29uc3QgeyBwcmludFdhcm4gfSA9IHV0aWxzXG5jb25zdCB7IGNhdGNoRXJyb3JzRGVjb3JhdG9yIH0gPSBoZWxwZXJzXG5cbi8qKlxuICogQGNvbnN0YW50IOm7mOiupOmFjee9rlxuICovXG5jb25zdCBERUZBVUxUX0lOSVRfQ09ORklHOiBQYXJ0aWFsPElDbG91ZGJhc2VDb25maWc+ID0ge1xuICB0aW1lb3V0OiAxNTAwMCxcbiAgcGVyc2lzdGVuY2U6ICdsb2NhbCcsIC8vIOaMgeS5heWMluWtmOWCqOexu+Wei1xufVxuXG4vLyB0aW1lb3V05LiK6ZmQMTDliIbpkp9cbmNvbnN0IE1BWF9USU1FT1VUID0gMTAwMCAqIDYwICogMTBcbi8vIHRpbWVvdXTkuIvpmZAxMDBtc1xuY29uc3QgTUlOX1RJTUVPVVQgPSAxMDBcblxuY29uc3QgZXh0ZW5zaW9uTWFwOiBLVjxJQ2xvdWRiYXNlRXh0ZW5zaW9uPiA9IHt9XG5cbmNsYXNzIENsb3VkYmFzZSBpbXBsZW1lbnRzIElDbG91ZGJhc2Uge1xuICBwdWJsaWMgYXV0aEluc3RhbmNlOiBJQ2xvdWRiYXNlQXV0aFxuICBwdWJsaWMgb2F1dGhJbnN0YW5jZTogYW55XG4gIHB1YmxpYyByZXF1ZXN0Q2xpZW50OiBhbnlcbiAgcHVibGljIG9hdXRoQ2xpZW50OiBhbnlcbiAgcHVibGljIHZlcnNpb246IHN0cmluZ1xuICBwdWJsaWMgYXV0aDogSUNsb3VkYmFzZVsnYXV0aCddICYgSUNsb3VkYmFzZUF1dGhcbiAgcHVibGljIGFwaXM6IElDbG91ZGJhc2VBcGlzXG4gIHByaXZhdGUgY2xvdWRiYXNlQ29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnXG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogSUNsb3VkYmFzZUNvbmZpZykge1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0gY29uZmlnID8gY29uZmlnIDogdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICB0aGlzLmF1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLm9hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy52ZXJzaW9uID0gZ2V0U2RrVmVyc2lvbigpXG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtKCk6IElDbG91ZGJhc2VQbGF0Zm9ybUluZm8ge1xuICAgIHJldHVybiBQbGF0Zm9ybVxuICB9XG5cbiAgZ2V0IGNhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldENhY2hlQnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgbG9jYWxDYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRMb2NhbENhY2hlKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCByZXF1ZXN0KCk6IElDbG91ZGJhc2VSZXF1ZXN0IHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdEJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBtb2RlOiAnc3luYycsXG4gICAgdGl0bGU6ICdDbG91ZGJhc2Ug5Yid5aeL5YyW5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGNsb3VkYmFzZS5pbml0KCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlpoLmnpzmmK/pnZ7mtY/op4jlmajnjq/looPvvIzmmK/lkKbphY3nva7kuoblronlhajlupTnlKjmnaXmupDvvIhodHRwczovL2RvY3MuY2xvdWRiYXNlLm5ldC9hcGktcmVmZXJlbmNlL3dlYnYzL2FkYXB0ZXIjJUU3JUFDJUFDLTItJUU2JUFEJUE1JUU5JTg1JThEJUU3JUJEJUFFJUU1JUFFJTg5JUU1JTg1JUE4JUU1JUJBJTk0JUU3JTk0JUE4JUU2JTlEJUE1JUU2JUJBJTkw77yJJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBpbml0KGNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZyAmIHsgbGFuZz86IExBTkdTIH0pOiBDbG91ZGJhc2Uge1xuICAgIGNvbmZpZy5lbmRQb2ludE1vZGUgPSBjb25maWcuZW5kUG9pbnRNb2RlIHx8ICdHQVRFV0FZJ1xuXG4gICAgLy8g5Yid5aeL5YyW5pe26Iul5pyq5YW85a655bmz5Y+w77yM5YiZ5L2/55So6buY6K6kYWRhcHRlclxuICAgIGlmICghUGxhdGZvcm0uYWRhcHRlcikge1xuICAgICAgdGhpcy51c2VEZWZhdWx0QWRhcHRlcigpXG4gICAgfVxuXG4gICAgLy8g5Zyo5Yik5patY29uZmlnLmVuduS5i+WJje+8jOWFiOWkhOeQhm5vZGXnjq/looPnmoTphY3nva5cbiAgICBjb25maWcgPSB0aGlzLmRlYWxOb2RlQWRhcHRlckNvbmZpZyhjb25maWcpXG5cbiAgICBpZiAoIWNvbmZpZy5lbnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiAnZW52IG11c3Qgbm90IGJlIHNwZWNpZmllZCcsXG4gICAgICB9KSwpXG4gICAgfVxuXG4gICAgY29uc3QgcmVxQ29uZmlnOiBJUmVxdWVzdENvbmZpZyAmIHsgYXV0aDogSUNsb3VkYmFzZUNvbmZpZ1snYXV0aCddIH0gPSB7XG4gICAgICB0aW1lb3V0OiBjb25maWcudGltZW91dCB8fCA1MDAwLFxuICAgICAgdGltZW91dE1zZzogYFske2dldFNka05hbWUoKX1dW1JFUVVFU1QgVElNRU9VVF0gcmVxdWVzdCBoYWQgYmVlbiBhYm9ydCBzaW5jZSBkaWRuJ3QgZmluaXNoZWQgd2l0aGluJHtcbiAgICAgICAgY29uZmlnLnRpbWVvdXQgLyAxMDAwXG4gICAgICB9c2AsXG4gICAgICBhdXRoOiBjb25maWcuYXV0aCxcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3RDbGllbnQgPSBuZXcgUGxhdGZvcm0uYWRhcHRlci5yZXFDbGFzcyhyZXFDb25maWcpXG5cbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZyA9IHtcbiAgICAgIC4uLkRFRkFVTFRfSU5JVF9DT05GSUcsXG4gICAgICAuLi5jb25maWcsXG4gICAgICBpMThuOiBpMThuUHJveHkoUGxhdGZvcm0sIGNvbmZpZyksXG4gICAgfVxuXG4gICAgZGVsZXRlICh0aGlzLmNsb3VkYmFzZUNvbmZpZyBhcyBhbnkpLmxhbmdcbiAgICAvLyDkv67mraN0aW1lb3V05Y+W5YC8XG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcudGltZW91dCA9IHRoaXMuZm9ybWF0VGltZW91dCh0aGlzLmNsb3VkYmFzZUNvbmZpZy50aW1lb3V0KVxuICAgIC8vIOWIneWni+WMlmNhY2hl5ZKMcmVxdWVzdFxuICAgIGNvbnN0IHsgZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHRpbWVvdXQsIG9hdXRoQ2xpZW50LCBpMThuIH0gPSB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICAgIGluaXRDYWNoZSh7IGVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCBwbGF0Zm9ybUluZm86IHRoaXMucGxhdGZvcm0gfSlcblxuICAgIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQoZW52LCBjb25maWcucmVnaW9uIHx8ICcnKVxuICAgIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYoZW52LCBERUZBVUxUX1BST1RPQ09MLCBjb25maWcucmVnaW9uIHx8ICcnKVxuXG4gICAgY29uc3QgYXBwID0gbmV3IENsb3VkYmFzZSh0aGlzLmNsb3VkYmFzZUNvbmZpZylcbiAgICBpbml0UmVxdWVzdCh7XG4gICAgICBlbnYsXG4gICAgICByZWdpb246IGNvbmZpZy5yZWdpb24gfHwgJycsXG4gICAgICB0aW1lb3V0LFxuICAgICAgb2F1dGhDbGllbnQsXG4gICAgICBfZnJvbUFwcDogYXBwLFxuICAgICAgaTE4bixcbiAgICAgIGVuZFBvaW50TW9kZTogY29uZmlnLmVuZFBvaW50TW9kZSxcbiAgICAgIGF1dGg6IGNvbmZpZy5hdXRoLFxuICAgIH0pXG4gICAgYXBwLnJlcXVlc3RDbGllbnQgPSB0aGlzLnJlcXVlc3RDbGllbnRcbiAgICA7KHRoaXMgYXMgYW55KT8uZmlyZT8uKCdjbG91ZGJhc2VfaW5pdCcsIGFwcClcblxuICAgIHRoaXMudHJ5MkluaXRBdXRoKGFwcClcblxuICAgIC8vIG5vZGXnjq/looPlj6/ku6Xku45hZGFwdGVy6I635Y+Wbm9kZVRvb2znmoTmlrnms5VcbiAgICBpZiAoUGxhdGZvcm0uYWRhcHRlcj8ubm9kZVRvb2wpIHtcbiAgICAgIFBsYXRmb3JtLmFkYXB0ZXI/Lm5vZGVUb29sKGFwcCwgdGhpcy5jbG91ZGJhc2VDb25maWcpXG4gICAgfVxuXG4gICAgcmV0dXJuIGFwcFxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbmZpZyhjb25maWc6IElDbG91ZGJhc2VVcGdyYWRlZENvbmZpZykge1xuICAgIGNvbnN0IHsgcGVyc2lzdGVuY2UsIGRlYnVnIH0gPSBjb25maWdcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy5wZXJzaXN0ZW5jZSA9IHBlcnNpc3RlbmNlXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcuZGVidWcgPSBkZWJ1Z1xuICAgIC8vIHBlcnNpc3RlbmNl5pS55Yqo5b2x5ZONY2FjaGVcbiAgICBpbml0Q2FjaGUoeyBlbnY6IHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCBwbGF0Zm9ybUluZm86IHRoaXMucGxhdGZvcm0gfSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYW5nKGxhbmc6IExBTkdTKSB7XG4gICAgaWYgKCFsYW5nIHx8IGxhbmcgPT09IHRoaXMuY2xvdWRiYXNlQ29uZmlnLmkxOG4/LmxhbmcpIHJldHVyblxuXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcuaTE4bi5sYW5nID0gbGFuZ1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyRXh0ZW5zaW9uKGV4dDogSUNsb3VkYmFzZUV4dGVuc2lvbikge1xuICAgIGV4dGVuc2lvbk1hcFtleHQubmFtZV0gPSBleHRcbiAgfVxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn6LCD55So5omp5bGV6IO95Yqb5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGludm9rZUV4dGVuc2lvbigpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g6KKr6LCD55So55qE5omp5bGV6IO95Yqb5piv5ZCm5bey57uP5a6J6KOF5bm26YCa6L+HIHJlZ2lzdGVyRXh0ZW5zaW9uKCkg5rOo5YaMJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBpbnZva2VFeHRlbnNpb24obmFtZTogc3RyaW5nLCBvcHRzOiBhbnkpIHtcbiAgICBjb25zdCBleHQgPSBleHRlbnNpb25NYXBbbmFtZV1cbiAgICBpZiAoIWV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6IGBleHRlbnNpb246JHtuYW1lfSBtdXN0IGJlIHJlZ2lzdGVyZWQgYmVmb3JlIGludm9rZWAsXG4gICAgICB9KSwpXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IGV4dC5pbnZva2Uob3B0cywgdGhpcylcbiAgfVxuXG4gIHB1YmxpYyB1c2VBZGFwdGVycyhhZGFwdGVyczogQ2xvdWRiYXNlQWRhcHRlciB8IENsb3VkYmFzZUFkYXB0ZXJbXSwgb3B0aW9ucz86IGFueSkge1xuICAgIGNvbnN0IHsgYWRhcHRlciwgcnVudGltZSB9ID0gdXNlQWRhcHRlcnMoYWRhcHRlcnMsIG9wdGlvbnMpIHx8IHt9XG4gICAgYWRhcHRlciAmJiAoUGxhdGZvcm0uYWRhcHRlciA9IGFkYXB0ZXIgYXMgU0RLQWRhcHRlckludGVyZmFjZSlcbiAgICBydW50aW1lICYmIChQbGF0Zm9ybS5ydW50aW1lID0gcnVudGltZSBhcyBzdHJpbmcpXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJIb29rKGhvb2s6IElDbG91ZGJhc2VIb29rKSB7XG4gICAgcmVnaXN0ZXJIb29rKENsb3VkYmFzZSwgaG9vaylcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckNvbXBvbmVudChjb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQpIHtcbiAgICByZWdpc3RlckNvbXBvbmVudChDbG91ZGJhc2UsIGNvbXBvbmVudClcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gICAgc2V0U2RrVmVyc2lvbih2ZXJzaW9uKVxuICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb25cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclNka05hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgc2V0U2RrTmFtZShuYW1lKVxuICB9XG5cbiAgLyoqIOiuvue9riB0Y2IgYXBpIOeahCBlbmRwb2ludCAqL1xuICBwdWJsaWMgcmVnaXN0ZXJFbmRQb2ludCh1cmw6IHN0cmluZywgcHJvdG9jb2w/OiAnaHR0cCcgfCAnaHR0cHMnKSB7XG4gICAgc2V0RW5kUG9pbnRJbmZvKHsgYmFzZVVybDogdXJsLCBwcm90b2NvbCwgZW52OiB0aGlzLmNvbmZpZy5lbnYsIGVuZFBvaW50S2V5OiAnQ0xPVURfQVBJJyB9KVxuICB9XG5cbiAgLyoqIOiuvue9rue9keWFsy90Y2IgYXBp55qEIGVuZFBvaW5077yM6YCa6L+HIGtleSDmjIflrpogKi9cbiAgcHVibGljIHJlZ2lzdGVyRW5kUG9pbnRXaXRoS2V5KHByb3BzOiBJU2V0RW5kUG9pbnRXaXRoS2V5KSB7XG4gICAgc2V0RW5kUG9pbnRJbmZvKHtcbiAgICAgIGVudjogdGhpcy5jb25maWcuZW52LFxuICAgICAgZW5kUG9pbnRLZXk6IHByb3BzLmtleSxcbiAgICAgIGJhc2VVcmw6IHByb3BzLnVybCxcbiAgICAgIHByb3RvY29sOiBwcm9wcy5wcm90b2NvbCxcbiAgICB9KVxuICB9XG5cbiAgLyoqIOaLv+e9keWFsy90Y2IgYXBp55qEIGVuZFBvaW5077yM6YCa6L+HIGtleSDmjIflrpogKi9cbiAgcHVibGljIGdldEVuZFBvaW50V2l0aEtleShrZXk6IEVuZFBvaW50S2V5KSB7XG4gICAgY29uc3QgaW5mbyA9IGdldEVuZFBvaW50SW5mbyh0aGlzLmNvbmZpZy5lbnYsIGtleSlcbiAgICByZXR1cm4ge1xuICAgICAgQkFTRV9VUkw6IGluZm8uYmFzZVVybCxcbiAgICAgIFBST1RPQ09MOiBpbmZvLnByb3RvY29sLFxuICAgIH1cbiAgfVxuXG4gIC8vIOino+aekFVSTOWPguaVsFxuICBwdWJsaWMgcGFyc2VDYXB0Y2hhKHVybCkge1xuICAgIHJldHVybiB1dGlscy5wYXJzZUNhcHRjaGEodXJsKVxuICB9XG5cbiAgcHJpdmF0ZSB1c2VEZWZhdWx0QWRhcHRlcigpIHtcbiAgICBjb25zdCB7IGFkYXB0ZXIsIHJ1bnRpbWUgfSA9IHVzZURlZmF1bHRBZGFwdGVyLmJpbmQodGhpcykoKVxuICAgIFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2VcbiAgICBQbGF0Zm9ybS5ydW50aW1lID0gcnVudGltZSBhcyBzdHJpbmdcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VGltZW91dCh0aW1lb3V0OiBudW1iZXIpIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgdGltZW91dCA+IE1BWF9USU1FT1VUOlxuICAgICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfUEFSQU1TLCAndGltZW91dCBpcyBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZVsxMG1pbl0nKVxuICAgICAgICByZXR1cm4gTUFYX1RJTUVPVVRcbiAgICAgIGNhc2UgdGltZW91dCA8IE1JTl9USU1FT1VUOlxuICAgICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfUEFSQU1TLCAndGltZW91dCBpcyBsZXNzIHRoYW4gbWF4aW11bSB2YWx1ZVsxMDBtc10nKVxuICAgICAgICByZXR1cm4gTUlOX1RJTUVPVVRcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aW1lb3V0XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cnkySW5pdEF1dGgoYXBwKSB7XG4gICAgdHJ5IHtcbiAgICAgIGFwcC5hdXRoKClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coJ3RyeTJJbml0QXV0aCBlcnJvcjonLCBlcnJvcilcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog5aSE55CGIE5vZGUg546v5aKD5LiLIGFkYXB0ZXIg55qE6YWN572u5L+h5oGvXG4gICAqIOWcqCBOb2RlIOeOr+Wig+S4re+8jOmAmui/hyBhZGFwdGVyIOiHquWKqOiOt+WPluWvhumSpeOAgeeOr+Wig0lE44CBYWNjZXNzS2V5IOetiemFjee9ru+8jFxuICAgKiDlh4/lsJHnlKjmiLfmiYvliqjkvKDlhaXphY3nva7nmoTotJ/mi4VcbiAgICogQHBhcmFtIGNvbmZpZyAtIOS6keW8gOWPkeWIneWni+WMlumFjee9ruWvueixoVxuICAgKiBAcmV0dXJucyDooaXlhYXkuoYgTm9kZSBhZGFwdGVyIOS/oeaBr+WQjueahOmFjee9ruWvueixoVxuICAgKi9cbiAgcHJpdmF0ZSBkZWFsTm9kZUFkYXB0ZXJDb25maWcoY29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnKSB7XG4gICAgLy8gbm9kZeeOr+Wig+WPr+S7peS7jmFkYXB0ZXLojrflj5bpu5jorqTnmoRzZWNyZXRJZOWSjHNlY3JldEtleVxuICAgIGlmIChQbGF0Zm9ybS5hZGFwdGVyPy5nZXRTZWNyZXRJbmZvKSB7XG4gICAgICBjb25zdCBzZWNyZXRJbmZvID0gUGxhdGZvcm0uYWRhcHRlcj8uZ2V0U2VjcmV0SW5mbyhjb25maWcpXG4gICAgICAvLyDlsIYgYWRhcHRlciDmj5DkvpvnmoTlr4bpkqXkv6Hmga/lhpnlhaUgY29uZmlnLmF1dGhcbiAgICAgIGNvbmZpZy5hdXRoID0ge1xuICAgICAgICBzZWNyZXRJZDogc2VjcmV0SW5mby5zZWNyZXRJZCxcbiAgICAgICAgc2VjcmV0S2V5OiBzZWNyZXRJbmZvLnNlY3JldEtleSxcbiAgICAgICAgc2Vzc2lvblRva2VuOiBzZWNyZXRJbmZvLnNlc3Npb25Ub2tlbixcbiAgICAgICAgc2VjcmV0VHlwZTogc2VjcmV0SW5mby5zZWNyZXRUeXBlIGFzIGFueSxcbiAgICAgIH1cblxuICAgICAgLy8gbm9kZSDnjq/looPlj6/og73lj6/ku6Xku47kuIrkuIvmlofojrflj5ZlbnbvvIznlKjmiLfmnKrmmL7lvI/mjIflrprml7boh6rliqjloavlhYVcbiAgICAgIGlmICghY29uZmlnLmVudikge1xuICAgICAgICBjb25maWcuZW52ID0gc2VjcmV0SW5mby5lbnZcbiAgICAgIH1cblxuICAgICAgLy8gbm9kZSBhZGFwdGVy546v5aKD6IO96K+75Y+W5YiwIHByb2Nlc3MuZW52LkNMT1VEQkFTRV9BUElLRVkg5pe277yM5Zyo5rKh5pyJ5Lyg5YWlYWNjZXNzS2V55pe277yM5L2/55SoIG5vZGUgYWRhcHRlciDmj5DkvpvnmoQgYWNjZXNzS2V577yIcHJvY2Vzcy5lbnYuQ0xPVURCQVNFX0FQSUtFWe+8iVxuICAgICAgaWYgKCFjb25maWcuYWNjZXNzS2V5ICYmIHNlY3JldEluZm8uYWNjZXNzS2V5KSB7XG4gICAgICAgIGNvbmZpZy5hY2Nlc3NLZXkgPSBzZWNyZXRJbmZvLmFjY2Vzc0tleVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuXG4vLyDnsbvlnovlr7zlh7pcbmV4cG9ydCB0eXBlIHsgQ2xvdWRiYXNlIH1cblxuLy8g5YC85a+85Ye6XG5leHBvcnQgY29uc3QgY2xvdWRiYXNlOiBJQ2xvdWRiYXNlID0gbmV3IENsb3VkYmFzZSgpXG5cbmNsb3VkYmFzZS51c2VBZGFwdGVycyhnZXRXeERlZmF1bHRBZGFwdGVyKCkpXG5cbi8vIOm7mOiupOWvvOWHuuWunuS+i1xuZXhwb3J0IGRlZmF1bHQgY2xvdWRiYXNlXG4iXX0=
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFhMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUc5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQy9ELE9BQU8sRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YseUJBQXlCLEVBRXpCLGVBQWUsRUFDZixlQUFlLEVBQ2YsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQVMsTUFBTSxhQUFhLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0IsSUFBQSxXQUFXLEdBQXdCLFFBQVEsWUFBaEMsRUFBRSxpQkFBaUIsR0FBSyxRQUFRLGtCQUFiLENBQWE7QUFDM0MsSUFBQSxNQUFNLEdBQXlCLFNBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxTQUFTLG1CQUFkLENBQWM7QUFDeEMsSUFBQSxTQUFTLEdBQUssS0FBSyxVQUFWLENBQVU7QUFDbkIsSUFBQSxvQkFBb0Is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O1NBQ0YsQ0FBQzs7O3dDQUN3RCxTQUFTO3lDQWtFbEU7SUE0Qlk7UUFUWixvQkFBb0IsQ0FBQztZQUNwQixLQUFLLEVBQUUsVUFBVTtZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsVUFBVTtnQkFDVix1Q0FBdUM7Z0JBQ3ZDLGdEQUFnRDtnQkFDaEQsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7OztvREFXRDtJQWtISCxnQkFBQztDQUFBLEFBelFELElBeVFDO0FBTUQsTUFBTSxDQUFDLElBQU0sU0FBUyxHQUFlLElBQUksU0FBUyxFQUFFLENBQUE7QUFFcEQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUE7QUFHNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUU7SUFDakMsSUFBSTtRQUVGLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtRQUMxRCxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0tBQ25DO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxNQUFNLEtBQUssQ0FBQTtLQUNaO0NBQ0Y7QUFHRCxlQUFlLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkYXB0ZXJzLCBjb25zdGFudHMsIHV0aWxzLCBoZWxwZXJzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5pbXBvcnQgeyBTREtBZGFwdGVySW50ZXJmYWNlLCBDbG91ZGJhc2VBZGFwdGVyLCBJUmVxdWVzdENvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci1pbnRlcmZhY2UnXG5pbXBvcnQge1xuICBJQ2xvdWRiYXNlQ29uZmlnLFxuICBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcsXG4gIElDbG91ZGJhc2UsXG4gIElDbG91ZGJhc2VFeHRlbnNpb24sXG4gIEtWLFxuICBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvLFxuICBFbmRQb2ludEtleSxcbiAgSUNsb3VkYmFzZUFwaXMsXG59IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQXV0aCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvYXV0aCdcbmltcG9ydCB7IHJlZ2lzdGVyQ29tcG9uZW50LCByZWdpc3Rlckhvb2sgfSBmcm9tICcuL2xpYnMvY29tcG9uZW50J1xuaW1wb3J0IHsgZ2V0V3hEZWZhdWx0QWRhcHRlciwgUGxhdGZvcm0gfSBmcm9tICcuL2xpYnMvYWRhcHRlcidcbmltcG9ydCB7IElDbG91ZGJhc2VDb21wb25lbnQsIElDbG91ZGJhc2VIb29rIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jb21wb25lbnQnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ2FjaGUgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NhY2hlJ1xuaW1wb3J0IHsgaW5pdENhY2hlLCBnZXRDYWNoZUJ5RW52SWQsIGdldExvY2FsQ2FjaGUgfSBmcm9tICcuL2xpYnMvY2FjaGUnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlUmVxdWVzdCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvcmVxdWVzdCdcbmltcG9ydCB7IGluaXRSZXF1ZXN0LCBnZXRSZXF1ZXN0QnlFbnZJZCB9IGZyb20gJy4vbGlicy9yZXF1ZXN0J1xuaW1wb3J0IHtcbiAgZ2V0U2RrTmFtZSxcbiAgc2V0U2RrVmVyc2lvbixcbiAgc2V0UmVnaW9uTGV2ZWxFbmRwb2ludCxcbiAgc2V0U2RrTmFtZSxcbiAgc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudixcbiAgdHlwZSBJU2V0RW5kUG9pbnRXaXRoS2V5LFxuICBzZXRFbmRQb2ludEluZm8sXG4gIGdldEVuZFBvaW50SW5mbyxcbiAgZ2V0U2RrVmVyc2lvbixcbiAgREVGQVVMVF9QUk9UT0NPTCxcbn0gZnJvbSAnLi9jb25zdGFudHMvY29tbW9uJ1xuaW1wb3J0IHsgaTE4blByb3h5LCBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuZXhwb3J0IHsgZ2V0QmFzZUVuZFBvaW50IH0gZnJvbSAnLi9jb25zdGFudHMvY29tbW9uJ1xuZXhwb3J0IHsgTEFOR1MgfSBmcm9tICcuL2xpYnMvbGFuZydcbmNvbnN0IHsgdXNlQWRhcHRlcnMsIHVzZURlZmF1bHRBZGFwdGVyIH0gPSBhZGFwdGVyc1xuY29uc3QgeyBFUlJPUlMsIENPTU1VTklUWV9TSVRFX1VSTCB9ID0gY29uc3RhbnRzXG5jb25zdCB7IHByaW50V2FybiB9ID0gdXRpbHNcbmNvbnN0IHsgY2F0Y2hFcnJvcnNEZWNvcmF0b3IgfSA9IGhlbHBlcnNcblxuLyoqXG4gKiBAY29uc3RhbnQg6buY6K6k6YWN572uXG4gKi9cbmNvbnN0IERFRkFVTFRfSU5JVF9DT05GSUc6IFBhcnRpYWw8SUNsb3VkYmFzZUNvbmZpZz4gPSB7XG4gIHRpbWVvdXQ6IDE1MDAwLFxuICBwZXJzaXN0ZW5jZTogJ2xvY2FsJywgLy8g5oyB5LmF5YyW5a2Y5YKo57G75Z6LXG59XG5cbi8vIHRpbWVvdXTkuIrpmZAxMOWIhumSn1xuY29uc3QgTUFYX1RJTUVPVVQgPSAxMDAwICogNjAgKiAxMFxuLy8gdGltZW91dOS4i+mZkDEwMG1zXG5jb25zdCBNSU5fVElNRU9VVCA9IDEwMFxuXG5jb25zdCBleHRlbnNpb25NYXA6IEtWPElDbG91ZGJhc2VFeHRlbnNpb24+ID0ge31cblxuY2xhc3MgQ2xvdWRiYXNlIGltcGxlbWVudHMgSUNsb3VkYmFzZSB7XG4gIHB1YmxpYyBhdXRoSW5zdGFuY2U6IElDbG91ZGJhc2VBdXRoXG4gIHB1YmxpYyBvYXV0aEluc3RhbmNlOiBhbnlcbiAgcHVibGljIHJlcXVlc3RDbGllbnQ6IGFueVxuICBwdWJsaWMgb2F1dGhDbGllbnQ6IGFueVxuICBwdWJsaWMgdmVyc2lvbjogc3RyaW5nXG4gIHB1YmxpYyBhdXRoOiBJQ2xvdWRiYXNlWydhdXRoJ10gJiBJQ2xvdWRiYXNlQXV0aFxuICBwdWJsaWMgYXBpczogSUNsb3VkYmFzZUFwaXNcbiAgcHJpdmF0ZSBjbG91ZGJhc2VDb25maWc6IElDbG91ZGJhc2VDb25maWdcblxuICBjb25zdHJ1Y3Rvcihjb25maWc/OiBJQ2xvdWRiYXNlQ29uZmlnKSB7XG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcgPSBjb25maWcgPyBjb25maWcgOiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICAgIHRoaXMuYXV0aEluc3RhbmNlID0gbnVsbFxuICAgIHRoaXMub2F1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLnZlcnNpb24gPSBnZXRTZGtWZXJzaW9uKClcbiAgfVxuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gIH1cblxuICBnZXQgcGxhdGZvcm0oKTogSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyB7XG4gICAgcmV0dXJuIFBsYXRmb3JtXG4gIH1cblxuICBnZXQgY2FjaGUoKTogSUNsb3VkYmFzZUNhY2hlIHtcbiAgICByZXR1cm4gZ2V0Q2FjaGVCeUVudklkKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCBsb2NhbENhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldExvY2FsQ2FjaGUodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IHJlcXVlc3QoKTogSUNsb3VkYmFzZVJlcXVlc3Qge1xuICAgIHJldHVybiBnZXRSZXF1ZXN0QnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIG1vZGU6ICdzeW5jJyxcbiAgICB0aXRsZTogJ0Nsb3VkYmFzZSDliJ3lp4vljJblpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggY2xvdWRiYXNlLmluaXQoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOWmguaenOaYr+mdnua1j+iniOWZqOeOr+Wig++8jOaYr+WQpumFjee9ruS6huWuieWFqOW6lOeUqOadpea6kO+8iGh0dHBzOi8vZG9jcy5jbG91ZGJhc2UubmV0L2FwaS1yZWZlcmVuY2Uvd2VidjMvYWRhcHRlciMlRTclQUMlQUMtMi0lRTYlQUQlQTUlRTklODUlOEQlRTclQkQlQUUlRTUlQUUlODklRTUlODUlQTglRTUlQkElOTQlRTclOTQlQTglRTYlOUQlQTUlRTYlQkElOTDvvIknLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGluaXQoY29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnICYgeyBsYW5nPzogTEFOR1MgfSk6IENsb3VkYmFzZSB7XG4gICAgY29uZmlnLmVuZFBvaW50TW9kZSA9IGNvbmZpZy5lbmRQb2ludE1vZGUgfHwgJ0dBVEVXQVknXG5cbiAgICAvLyDliJ3lp4vljJbml7boi6XmnKrlhbzlrrnlubPlj7DvvIzliJnkvb/nlKjpu5jorqRhZGFwdGVyXG4gICAgaWYgKCFQbGF0Zm9ybS5hZGFwdGVyKSB7XG4gICAgICB0aGlzLnVzZURlZmF1bHRBZGFwdGVyKClcbiAgICB9XG5cbiAgICAvLyDlnKjliKTmlq1jb25maWcuZW525LmL5YmN77yM5YWI5aSE55CGbm9kZeeOr+Wig+eahOmFjee9rlxuICAgIGNvbmZpZyA9IHRoaXMuZGVhbE5vZGVBZGFwdGVyQ29uZmlnKGNvbmZpZylcblxuICAgIGlmICghY29uZmlnLmVudikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6ICdlbnYgbXVzdCBub3QgYmUgc3BlY2lmaWVkJyxcbiAgICAgIH0pLClcbiAgICB9XG5cbiAgICBjb25zdCByZXFDb25maWc6IElSZXF1ZXN0Q29uZmlnICYgeyBhdXRoOiBJQ2xvdWRiYXNlQ29uZmlnWydhdXRoJ10gfSA9IHtcbiAgICAgIHRpbWVvdXQ6IGNvbmZpZy50aW1lb3V0IHx8IDUwMDAsXG4gICAgICB0aW1lb3V0TXNnOiBgWyR7Z2V0U2RrTmFtZSgpfV1bUkVRVUVTVCBUSU1FT1VUXSByZXF1ZXN0IGhhZCBiZWVuIGFib3J0IHNpbmNlIGRpZG4ndCBmaW5pc2hlZCB3aXRoaW4ke1xuICAgICAgICBjb25maWcudGltZW91dCAvIDEwMDBcbiAgICAgIH1zYCxcbiAgICAgIGF1dGg6IGNvbmZpZy5hdXRoLFxuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdENsaWVudCA9IG5ldyBQbGF0Zm9ybS5hZGFwdGVyLnJlcUNsYXNzKHJlcUNvbmZpZylcblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9JTklUX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGkxOG46IGkxOG5Qcm94eShQbGF0Zm9ybSwgY29uZmlnKSxcbiAgICB9XG5cbiAgICBkZWxldGUgKHRoaXMuY2xvdWRiYXNlQ29uZmlnIGFzIGFueSkubGFuZ1xuICAgIC8vIOS/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,35 @@
1
+ export var ERROR = {
2
+ INVALID_PARAM: {
3
+ code: 'INVALID_PARAM',
4
+ message: 'invalid param',
5
+ },
6
+ SYS_ERR: {
7
+ code: 'SYS_ERR',
8
+ message: 'system error',
9
+ },
10
+ STORAGE_REQUEST_FAIL: {
11
+ code: 'STORAGE_REQUEST_FAIL',
12
+ message: 'storage request fail',
13
+ },
14
+ STORAGE_FILE_NONEXIST: {
15
+ code: 'STORAGE_FILE_NONEXIST',
16
+ message: 'storage file not exist',
17
+ },
18
+ TCB_CLS_UNOPEN: {
19
+ code: 'TCB_CLS_UNOPEN',
20
+ message: '需要先开通日志检索功能',
21
+ },
22
+ INVALID_CONTEXT: {
23
+ code: 'INVALID_CONTEXT',
24
+ message: '无效的context对象,请使用 云函数入口的context参数',
25
+ },
26
+ };
27
+ export var ADMIN_PATH = '/admin';
28
+ export var CLIENT_AUTH_PATH = '/auth/v1/token/clientCredential';
29
+ export var checkCustomUserIdRegex = /^[a-zA-Z0-9_\-#@~=*(){}[\]:.,<>+]{4,32}$/;
30
+ export var SECRET_TYPE;
31
+ (function (SECRET_TYPE) {
32
+ SECRET_TYPE["SECRET"] = "SECRET";
33
+ SECRET_TYPE["SESSION_SECRET"] = "SESSION_SECRET";
34
+ })(SECRET_TYPE || (SECRET_TYPE = {}));
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYnMvYWRhcHRlci1ub2RlL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUc7SUFDbkIsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxjQUFjO0tBQ3hCO0lBQ0Qsb0JBQW9CLEVBQUU7UUFDcEIsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixPQUFPLEVBQUUsc0JBQXNCO0tBQ2hDO0lBQ0QscUJBQXFCLEVBQUU7UUFDckIsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixPQUFPLEVBQUUsd0JBQXdCO0tBQ2xDO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUNELGVBQWUsRUFBRTtRQUNmLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsT0FBTyxFQUFFLGtDQUFrQztLQUM1QztDQUNGLENBQUE7QUFHRCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFBO0FBR2xDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFBO0FBR2pFLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLDBDQUEwQyxDQUFBO0FBRWhGLE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsZ0NBQW1CLENBQUE7SUFDbkIsZ0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG4vKiog57uf5LiA6ZSZ6K+v56CB5a6a5LmJICovXG5leHBvcnQgY29uc3QgRVJST1IgPSB7XG4gIElOVkFMSURfUEFSQU06IHtcbiAgICBjb2RlOiAnSU5WQUxJRF9QQVJBTScsXG4gICAgbWVzc2FnZTogJ2ludmFsaWQgcGFyYW0nLFxuICB9LFxuICBTWVNfRVJSOiB7XG4gICAgY29kZTogJ1NZU19FUlInLFxuICAgIG1lc3NhZ2U6ICdzeXN0ZW0gZXJyb3InLFxuICB9LFxuICBTVE9SQUdFX1JFUVVFU1RfRkFJTDoge1xuICAgIGNvZGU6ICdTVE9SQUdFX1JFUVVFU1RfRkFJTCcsXG4gICAgbWVzc2FnZTogJ3N0b3JhZ2UgcmVxdWVzdCBmYWlsJyxcbiAgfSxcbiAgU1RPUkFHRV9GSUxFX05PTkVYSVNUOiB7XG4gICAgY29kZTogJ1NUT1JBR0VfRklMRV9OT05FWElTVCcsXG4gICAgbWVzc2FnZTogJ3N0b3JhZ2UgZmlsZSBub3QgZXhpc3QnLFxuICB9LFxuICBUQ0JfQ0xTX1VOT1BFTjoge1xuICAgIGNvZGU6ICdUQ0JfQ0xTX1VOT1BFTicsXG4gICAgbWVzc2FnZTogJ+mcgOimgeWFiOW8gOmAmuaXpeW/l+ajgOe0ouWKn+iDvScsXG4gIH0sXG4gIElOVkFMSURfQ09OVEVYVDoge1xuICAgIGNvZGU6ICdJTlZBTElEX0NPTlRFWFQnLFxuICAgIG1lc3NhZ2U6ICfml6DmlYjnmoRjb250ZXh05a+56LGh77yM6K+35L2/55SoIOS6keWHveaVsOWFpeWPo+eahGNvbnRleHTlj4LmlbAnLFxuICB9LFxufVxuXG4vKiog566h55CG56uvIEFQSSDot6/lvoTvvIznlKjkuo7mm7/mjaIgL3dlYiDot6/lvoTvvIjpnIDopoHlr4bpkqXnrb7lkI3ml7bvvIkgKi9cbmV4cG9ydCBjb25zdCBBRE1JTl9QQVRIID0gJy9hZG1pbidcblxuLyoqIOeuoeeQhuerr+iOt+WPluWuouaIt+err+WHreivgSBhY2Nlc3NfdG9rZW7vvIzkuLrnrqHnkIblkZjmnYPpmZAgKi9cbmV4cG9ydCBjb25zdCBDTElFTlRfQVVUSF9QQVRIID0gJy9hdXRoL3YxL3Rva2VuL2NsaWVudENyZWRlbnRpYWwnXG5cbi8qKiDoh6rlrprkuYnnlKjmiLcgSUQg5qCh6aqM6KeE5YiZ77yaNH4zMiDkvY3vvIzlhYHorrjlrZfmr43jgIHmlbDlrZflj4rpg6jliIbnibnmrorlrZfnrKYgKi9cbmV4cG9ydCBjb25zdCBjaGVja0N1c3RvbVVzZXJJZFJlZ2V4ID0gL15bYS16QS1aMC05X1xcLSNAfj0qKCl7fVtcXF06Liw8PitdezQsMzJ9JC9cblxuZXhwb3J0IGVudW0gU0VDUkVUX1RZUEUge1xuICAnU0VDUkVUJyA9ICdTRUNSRVQnLFxuICAnU0VTU0lPTl9TRUNSRVQnID0gJ1NFU1NJT05fU0VDUkVUJyxcbn1cbiJdfQ==
@@ -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,156 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { ERROR, SECRET_TYPE } from './constants';
13
+ import { checkIsInScf, getEnv } from './utils';
14
+ export function parseContext(context) {
15
+ if (typeof context !== 'object') {
16
+ throw __assign(__assign({}, ERROR.INVALID_CONTEXT), { message: 'context 必须为对象类型' });
17
+ }
18
+ var parseResult = {};
19
+ 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;
20
+ try {
21
+ parseResult.memoryLimitInMb = memory_limit_in_mb;
22
+ parseResult.timeLimitIns = time_limit_in_ms;
23
+ parseResult.requestId = request_id;
24
+ parseResult.functionVersion = function_version;
25
+ parseResult.namespace = namespace;
26
+ parseResult.functionName = function_name;
27
+ if (environment) {
28
+ parseResult.environment = JSON.parse(environment);
29
+ }
30
+ else {
31
+ var parseEnviron = environ === null || environ === void 0 ? void 0 : environ.split(';');
32
+ var parseEnvironObj = {};
33
+ for (var i in parseEnviron) {
34
+ if (parseEnviron[i].includes('=')) {
35
+ var equalIndex = parseEnviron[i].indexOf('=');
36
+ var key = parseEnviron[i].slice(0, equalIndex);
37
+ var value = parseEnviron[i].slice(equalIndex + 1);
38
+ if (value.indexOf(',') >= 0) {
39
+ value = value.split(',');
40
+ }
41
+ parseEnvironObj[key] = value;
42
+ }
43
+ }
44
+ parseResult.environ = parseEnvironObj;
45
+ }
46
+ }
47
+ catch (_err) {
48
+ throw __assign({}, ERROR.INVALID_CONTEXT);
49
+ }
50
+ return parseResult;
51
+ }
52
+ export var getCloudbaseContext = function (context) {
53
+ if (checkIsInScf()) {
54
+ if (!getEnv('TENCENTCLOUD_REGION')) {
55
+ console.error('[TCB][ERROR] missing `TENCENTCLOUD_REGION` environment');
56
+ }
57
+ if (!getEnv('SCF_NAMESPACE')) {
58
+ console.error('[TCB][ERROR] missing `SCF_NAMESPACE` environment');
59
+ }
60
+ }
61
+ var envObj = getEnv();
62
+ var envFromProcessEnv = {
63
+ TRIGGER_SRC: envObj.TRIGGER_SRC,
64
+ _SCF_TCB_LOG: envObj._SCF_TCB_LOG,
65
+ SCF_NAMESPACE: envObj.SCF_NAMESPACE,
66
+ TENCENTCLOUD_RUNENV: envObj.TENCENTCLOUD_RUNENV,
67
+ TENCENTCLOUD_SECRETID: envObj.TENCENTCLOUD_SECRETID,
68
+ TENCENTCLOUD_SECRETKEY: envObj.TENCENTCLOUD_SECRETKEY,
69
+ TENCENTCLOUD_SESSIONTOKEN: envObj.TENCENTCLOUD_SESSIONTOKEN,
70
+ WX_CONTEXT_KEYS: envObj.WX_CONTEXT_KEYS,
71
+ WX_TRIGGER_API_TOKEN_V0: envObj.WX_TRIGGER_API_TOKEN_V0,
72
+ WX_CLIENTIP: envObj.WX_CLIENTIP,
73
+ WX_CLIENTIPV6: envObj.WX_CLIENTIPV6,
74
+ TCB_CONTEXT_KEYS: envObj.TCB_CONTEXT_KEYS,
75
+ TCB_CONTEXT_CNFG: envObj.TCB_CONTEXT_CNFG,
76
+ LOGINTYPE: envObj.LOGINTYPE,
77
+ };
78
+ var envFromContext = {};
79
+ if (context) {
80
+ var _a = parseContext(context), environment = _a.environment, environ = _a.environ;
81
+ envFromContext = environment || environ || {};
82
+ }
83
+ var tcbContextKeys = envFromContext.TCB_CONTEXT_KEYS || envObj.TCB_CONTEXT_KEYS;
84
+ var wxContextKeys = envFromContext.WX_CONTEXT_KEYS || envObj.WX_CONTEXT_KEYS;
85
+ if (tcbContextKeys) {
86
+ try {
87
+ var tcbKeysList = tcbContextKeys.split(',');
88
+ for (var _i = 0, tcbKeysList_1 = tcbKeysList; _i < tcbKeysList_1.length; _i++) {
89
+ var item = tcbKeysList_1[_i];
90
+ envFromProcessEnv[item] = envFromContext[item] || getEnv(item);
91
+ }
92
+ }
93
+ catch (_e) {
94
+ }
95
+ }
96
+ if (wxContextKeys) {
97
+ try {
98
+ var wxKeysList = wxContextKeys.split(',');
99
+ for (var _b = 0, wxKeysList_1 = wxKeysList; _b < wxKeysList_1.length; _b++) {
100
+ var item = wxKeysList_1[_b];
101
+ envFromProcessEnv[item] = envFromContext[item] || getEnv(item);
102
+ }
103
+ }
104
+ catch (_e) {
105
+ }
106
+ }
107
+ var allContext = __assign(__assign({}, envFromProcessEnv), envFromContext);
108
+ var finalContext = {};
109
+ for (var key in allContext) {
110
+ if (allContext[key] !== undefined) {
111
+ finalContext[key] = allContext[key];
112
+ }
113
+ }
114
+ return finalContext;
115
+ };
116
+ export var INIT_CONFIG = {};
117
+ export var getSecretInfo = function (config) {
118
+ var _a, _b, _c, _d, _f, _g;
119
+ INIT_CONFIG = JSON.parse(JSON.stringify(config || {}));
120
+ var _h = getCloudbaseContext(), TCB_ENV = _h.TCB_ENV, SCF_NAMESPACE = _h.SCF_NAMESPACE;
121
+ var env = (config === null || config === void 0 ? void 0 : config.env) || TCB_ENV || SCF_NAMESPACE || '';
122
+ var defaultInfo = {
123
+ env: env,
124
+ secretId: '',
125
+ secretKey: '',
126
+ sessionToken: '',
127
+ accessKey: '',
128
+ secretType: '',
129
+ };
130
+ if (config === null || config === void 0 ? void 0 : config.accessKey) {
131
+ return defaultInfo;
132
+ }
133
+ 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)) {
134
+ return __assign(__assign({}, defaultInfo), { secretId: config.auth.secretId, secretKey: config.auth.secretKey, secretType: SECRET_TYPE.SECRET });
135
+ }
136
+ var secretEnv = getEnv();
137
+ var TENCENTCLOUD_SECRETID = secretEnv.TENCENTCLOUD_SECRETID;
138
+ var TENCENTCLOUD_SECRETKEY = secretEnv.TENCENTCLOUD_SECRETKEY;
139
+ var TENCENTCLOUD_SESSIONTOKEN = secretEnv.TENCENTCLOUD_SESSIONTOKEN;
140
+ var CLOUDBASE_APIKEY = secretEnv.CLOUDBASE_APIKEY;
141
+ if (CLOUDBASE_APIKEY) {
142
+ return __assign(__assign({}, defaultInfo), { accessKey: CLOUDBASE_APIKEY });
143
+ }
144
+ if (TENCENTCLOUD_SECRETID && TENCENTCLOUD_SECRETKEY) {
145
+ return __assign(__assign({}, defaultInfo), { secretId: TENCENTCLOUD_SECRETID, secretKey: TENCENTCLOUD_SECRETKEY, sessionToken: TENCENTCLOUD_SESSIONTOKEN || '', secretType: SECRET_TYPE.SESSION_SECRET });
146
+ }
147
+ if ((_c = config === null || config === void 0 ? void 0 : config.context) === null || _c === void 0 ? void 0 : _c.extendedContext) {
148
+ var extendedContext = config.context.extendedContext;
149
+ if (!env) {
150
+ env = extendedContext.envId || '';
151
+ }
152
+ 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) || '' });
153
+ }
154
+ return __assign({}, defaultInfo);
155
+ };
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXItbm9kZS9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFZOUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFzQjtJQUNqRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtRQUMvQiw0QkFBVyxLQUFLLENBQUMsZUFBZSxLQUFFLE9BQU8sRUFBRSxpQkFBaUIsSUFBRTtLQUMvRDtJQUVELElBQU0sV0FBVyxHQUFRLEVBQUUsQ0FBQTtJQUd6QixJQUFBLGtCQUFrQixHQVNoQixPQUFPLG1CQVRTLEVBQ2xCLGdCQUFnQixHQVFkLE9BQU8saUJBUk8sRUFDaEIsVUFBVSxHQU9SLE9BQU8sV0FQQyxFQUNWLGdCQUFnQixHQU1kLE9BQU8saUJBTk8sRUFDaEIsU0FBUyxHQUtQLE9BQU8sVUFMQSxFQUNULGFBQWEsR0FJWCxPQUFPLGNBSkksRUFFYixPQUFPLEdBRUwsT0FBTyxRQUZGLEVBQ1AsV0FBVyxHQUNULE9BQU8sWUFERSxDQUNGO0lBRVgsSUFBSTtRQUNGLFdBQVcsQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUE7UUFDaEQsV0FBVyxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQTtRQUMzQyxXQUFXLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQTtRQUNsQyxXQUFXLENBQUMsZUFBZSxHQUFHLGdCQUFnQixDQUFBO1FBQzlDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQ2pDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFBO1FBRXhDLElBQUksV0FBVyxFQUFFO1lBRWYsV0FBVyxDQUFDLFdBQVcsR0FB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cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0cyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuaW1wb3J0IHsgRVJST1IsIFNFQ1JFVF9UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnXG5pbXBvcnQgeyBjaGVja0lzSW5TY2YsIGdldEVudiB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IElDb250ZXh0UGFyYW0sIElDb21wbGV0ZUNsb3VkYmFzZUNvbnRleHQgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5cbi8qKlxuICog6Kej5p6Q5bm25qCh6aqM5LqR5Ye95pWw5YWl5Y+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/liJfooajvvIjkvJjlhYjlj5YgY29udGV4dCDkuK3nmoTlgLzvvIlcbiAgY29uc3QgdGNiQ29udGV4dEtleXMgPSBlbnZGcm9tQ29udGV4dC5UQ0JfQ09OVEVYVF9LRVlTIHx8IGVudk9iai5UQ0JfQ09OVEVYVF9LRVlTXG4gIGNvbnN0IHd4Q29udGV4dEtleXMgPSBlbnZGcm9tQ29udGV4dC5XWF9DT05URVhUX0tFWVMgfHwgZW52T2JqLldYX0NPTlRFWFRfS0VZU1xuXG4gIGlmICh0Y2JDb250ZXh0S2V5cykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0Y2JLZXlzTGlzdCA9IHRjYkNvbnRleHRLZXlzLnNwbGl0KCcsJylcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0Y2JLZXlzTGlzdCkge1xuICAgICAgICBlbnZGcm9tUHJvY2Vzc0VudltpdGVtXSA9IGVudkZyb21Db250ZXh0W2l0ZW1dIHx8IGdldEVudihpdGVtKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKF9lKSB7XG4gICAgICAvL1xuICAgIH1cbiAgfVxuXG4gIGlmICh3eENvbnRleHRLZXlzKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHd4S2V5c0xpc3QgPSB3eENvbnRleHRLZXlzLnNwbGl0KCcsJylcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB3eEtleXNMaXN0KSB7XG4gICAgICAgIGVudkZyb21Qcm9jZXNzRW52W2l0ZW1dID0gZW52RnJvbUNvbnRleHRbaXRlbV0gfHwgZ2V0RW52KGl0ZW0pXG4gICAgICB9XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgLy8g56ys5Zub5q2l77ya5ZCI5bm25omA5pyJ5p2l5rqQ77yMY29udGV4dCDnmoTlgLzopobnm5YgcHJvY2Vzcy5lbnbvvIzov4fmu6QgdW5kZWZpbmVkXG4gIGNvbnN0IGFsbENvbnRleHQgPSB7IC4uLmVudkZyb21Qcm9jZXNzRW52LCAuLi5lbnZGcm9tQ29udGV4dCB9XG5cbiAgY29uc3QgZmluYWxDb250ZXh0OiBhbnkgPSB7fVxuICBmb3IgKGNvbnN0IGtleSBpbiBhbGxDb250ZXh0KSB7XG4gICAgaWYgKGFsbENvbnRleHRba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmaW5hbENvbnRleHRba2V5XSA9IGFsbENvbnRleHRba2V5XVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmaW5hbENvbnRleHRcbn1cblxuLyoqIOe8k+WtmCBleHRlbmRlZENvbnRleHTvvIzkvpvlhbbku5bmqKHlnZfor7vlj5bvvIjlpoIgdG9vbC50cyDkuK3ojrflj5YgdXNlcklk77yJICovXG5leHBvcnQgbGV0IElOSVRfQ09ORklHOiBJQ2xvdWRiYXNlQ29uZmlnID0ge30gYXMgdW5rbm93biBhcyBJQ2xvdWRiYXNlQ29uZmlnXG5cbi8qKlxuICog5LuO546v5aKD5Y+Y6YeP5Lit6I635Y+W6IW+6K6v5LqR5Li05pe25a+G6ZKl5L+h5oGvXG4gKiDnlKjkuo4gQVBJIOivt+axguetvuWQjVxuICovXG5leHBvcnQgY29uc3QgZ2V0U2VjcmV0SW5mbyA9IChjb25maWc/OiBJQ2xvdWRiYXNlQ29uZmlnKSA9PiB7XG4gIElOSVRfQ09ORklHID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb25maWcgfHwge30pKVxuXG4gIGNvbnN0IHsgVENCX0VOViwgU0NGX05BTUVTUEFDRSB9ID0gZ2V0Q2xvdWRiYXNlQ29udGV4dCgpXG5cbiAgbGV0IGVudiA9IGNvbmZpZz8uZW52IHx8IFRDQl9FTlYgfHwgU0NGX05BTUVTUEFDRSB8fCAnJ1xuICBjb25zdCBkZWZhdWx0SW5mbyA9IHtcbiAgICBlbnYsXG4gICAgc2VjcmV0SWQ6ICcnLFxuICAgIHNlY3JldEtleTogJycsXG4gICAgc2Vzc2lvblRva2VuOiAnJyxcbiAgICBhY2Nlc3NLZXk6ICcnLFxuICAgIHNlY3JldFR5cGU6ICcnLFxuICB9XG5cbiAgaWYgKGNvbmZpZz8uYWNjZXNzS2V5KSB7XG4gICAgcmV0dXJuIGRlZmF1bHRJbmZvXG4gIH1cblxuICBpZiAoY29uZmlnPy5hdXRoPy5zZWNyZXRJZCAmJiBjb25maWc/LmF1dGg/LnNlY3JldEtleSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0SW5mbyxcbiAgICAgIHNlY3JldElkOiBjb25maWcuYXV0aC5zZWNyZXRJZCxcbiAgICAgIHNlY3JldEtleTogY29uZmlnLmF1dGguc2VjcmV0S2V5LFxuICAgICAgc2VjcmV0VHlwZTogU0VDUkVUX1RZUEUuU0VDUkVULFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNlY3JldEVudiA9IGdldEVudigpXG4gIGNvbnN0IHsgVEVOQ0VOVENMT1VEX1NFQ1JFVElEIH0gPSBzZWNyZXRFbnZcbiAgY29uc3QgeyBURU5DRU5UQ0xPVURfU0VDUkVUS0VZIH0gPSBzZWNyZXRFbnZcbiAgY29uc3QgeyBURU5DRU5UQ0xPVURfU0VTU0lPTlRPS0VOIH0gPSBzZWNyZXRFbnZcbiAgY29uc3QgeyBDTE9VREJBU0VfQVBJS0VZIH0gPSBzZWNyZXRFbnZcblxuICBpZiAoQ0xPVURCQVNFX0FQSUtFWSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0SW5mbyxcbiAgICAgIGFjY2Vzc0tleTogQ0xPVURCQVNFX0FQSUtFWSxcbiAgICB9XG4gIH1cblxuICBpZiAoVEVOQ0VOVENMT1VEX1NFQ1JFVElEICYmIFRFTkNFTlRDTE9VRF9TRUNSRVRLRVkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZGVmYXVsdEluZm8sXG4gICAgICBzZWNyZXRJZDogVEVOQ0VOVENMT1VEX1NFQ1JFVElELFxuICAgICAgc2VjcmV0S2V5OiBURU5DRU5UQ0xPVURfU0VDUkVUS0VZLFxuICAgICAgc2Vzc2lvblRva2VuOiBURU5DRU5UQ0xPVURfU0VTU0lPTlRPS0VOIHx8ICcnLFxuICAgICAgc2VjcmV0VHlwZTogU0VDUkVUX1RZUEUuU0VTU0lPTl9TRUNSRVQsXG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbmZpZz8uY29udGV4dD8uZXh0ZW5kZWRDb250ZXh0KSB7XG4gICAgY29uc3QgeyBleHRlbmRlZENvbnRleHQgfSA9IGNvbmZpZy5jb250ZXh0XG4gICAgaWYgKCFlbnYpIHtcbiAgICAgIGVudiA9IGV4dGVuZGVkQ29udGV4dC5lbnZJZCB8fCAnJ1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0SW5mbyxcbiAgICAgIHNlY3JldElkOiBleHRlbmRlZENvbnRleHQ/LnRtcFNlY3JldD8uc2VjcmV0SWQgfHwgJycsXG4gICAgICBzZWNyZXRLZXk6IGV4dGVuZGVkQ29udGV4dD8udG1wU2VjcmV0Py5zZWNyZXRLZXkgfHwgJycsXG4gICAgICBzZXNzaW9uVG9rZW46IGV4dGVuZGVkQ29udGV4dD8udG1wU2VjcmV0Py50b2tlbiB8fCAnJyxcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyAuLi5kZWZhdWx0SW5mbyB9XG59XG4iXX0=
@@ -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,118 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { StorageType, } from '@cloudbase/adapter-interface';
24
+ import { NodeRequest } from './request';
25
+ import { nodeTool } from './tool';
26
+ import { getSecretInfo } from './context';
27
+ import { parseQueryString } from './utils';
28
+ var _WS = null;
29
+ function getWS() {
30
+ if (!_WS) {
31
+ try {
32
+ _WS = require('ws');
33
+ }
34
+ catch (e) {
35
+ throw new Error('缺少依赖 ws,请执行以下命令安装:\n\n'
36
+ + ' npm install ws\n\n'
37
+ + '该依赖用于 Node 环境下的 WebSocket 连接。');
38
+ }
39
+ }
40
+ return _WS;
41
+ }
42
+ export { NodeRequest } from './request';
43
+ export { parseQueryString, createWebStreamFromNodeReadableStream } from './utils';
44
+ function isMatch() {
45
+ return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
46
+ }
47
+ var storage = (function () {
48
+ var db = new Map();
49
+ return {
50
+ mode: 'sync',
51
+ setItem: function (key, value) {
52
+ db.set(key, value);
53
+ },
54
+ getItem: function (key) {
55
+ return db.get(key);
56
+ },
57
+ removeItem: function (key) {
58
+ db.delete(key);
59
+ },
60
+ clear: function () {
61
+ db.clear();
62
+ },
63
+ };
64
+ })();
65
+ function genAdapter(options) {
66
+ var adapter = {
67
+ nodeTool: nodeTool,
68
+ getSecretInfo: getSecretInfo,
69
+ root: { globalThis: {} },
70
+ reqClass: NodeRequest,
71
+ wsClass: getWS(),
72
+ sessionStorage: storage,
73
+ localStorage: storage,
74
+ primaryStorage: StorageType.session,
75
+ captchaOptions: {
76
+ openURIWithCallback: function (_url) {
77
+ var EventBus = options.EventBus;
78
+ var queryObj = {};
79
+ var url = _url;
80
+ var matched = _url.match(/^(data:.*?)(\?[^#\s]*)?$/);
81
+ if (matched) {
82
+ url = matched[1];
83
+ var search = matched[2];
84
+ if (search) {
85
+ queryObj = parseQueryString(search);
86
+ }
87
+ }
88
+ var token = queryObj.token, restQueryObj = __rest(queryObj, ["token"]);
89
+ if (/^data:/.test(url) && !token) {
90
+ return Promise.reject({
91
+ error: 'invalid_argument',
92
+ error_description: "invalie captcha data: ".concat(_url),
93
+ });
94
+ }
95
+ if (!token) {
96
+ return Promise.reject({
97
+ error: 'unimplemented',
98
+ error_description: 'need to impl captcha data',
99
+ });
100
+ }
101
+ return new Promise(function (resolve) {
102
+ EventBus.$emit('CAPTCHA_DATA_CHANGE', __assign(__assign({}, restQueryObj), { token: token, url: url }));
103
+ EventBus.$once('RESOLVE_CAPTCHA_DATA', function (res) {
104
+ resolve(res);
105
+ });
106
+ });
107
+ },
108
+ },
109
+ };
110
+ return adapter;
111
+ }
112
+ var adapter = {
113
+ genAdapter: genAdapter,
114
+ isMatch: isMatch,
115
+ runtime: 'node-adapter',
116
+ };
117
+ export default adapter;
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlicy9hZGFwdGVyLW5vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLE9BQU8sRUFHTCxXQUFXLEdBRVosTUFBTSw4QkFBOEIsQ0FBQTtBQUVyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFJMUMsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFBO0FBQ25CLFNBQVMsS0FBSztJQUNaLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixJQUFJO1lBRUYsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUNwQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0I7a0JBQ3BDLHNCQUFzQjtrQkFDdEIsK0JBQStCLENBQUUsQ0FBQTtTQUN0QztLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBR0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFjakYsU0FBUyxPQUFPO0lBRWQsT0FBTyxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFBO0FBQ3BHLENBQUM7QUFNRCxJQUFNLE9BQU8sR0FBcUIsQ0FBQztJQUNqQyxJQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcs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bGludC1kaXNhYmxlIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB7XG4gIFNES0FkYXB0ZXJJbnRlcmZhY2UsXG4gIFN0b3JhZ2VJbnRlcmZhY2UsXG4gIFN0b3JhZ2VUeXBlLFxuICBXZWJTb2NrZXRDb250cnVjdG9yIGFzIFdlYlNvY2tldENvbnN0cnVjdG9yLFxufSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuXG5pbXBvcnQgeyBOb2RlUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCdcbmltcG9ydCB7IG5vZGVUb29sIH0gZnJvbSAnLi90b29sJ1xuaW1wb3J0IHsgZ2V0U2VjcmV0SW5mbyB9IGZyb20gJy4vY29udGV4dCdcbmltcG9ydCB7IHBhcnNlUXVlcnlTdHJpbmcgfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5cbi8vIHdzIOW7tui/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>;