@cloudbase/auth 2.17.7 → 2.17.9

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.
@@ -153,9 +153,44 @@ function generateOauthClientRequest(reqClass) {
153
153
  function getUrlPath(url) {
154
154
  return URL_REG.test(url) ? RegExp.$1 : url;
155
155
  }
156
- export var useAuthAdapter = function (config) {
156
+ var dealUserAdapter = function (config, adapter) {
157
+ var data = __assign({}, config);
158
+ try {
159
+ if (!(config === null || config === void 0 ? void 0 : config.storage) && (adapter === null || adapter === void 0 ? void 0 : adapter.localStorage)) {
160
+ data.storage = new OauthClientStorageBase({ localStorage: adapter.localStorage });
161
+ }
162
+ if (!config.captchaOptions && (adapter === null || adapter === void 0 ? void 0 : adapter.captchaOptions)) {
163
+ data.captchaOptions = adapter.captchaOptions;
164
+ }
165
+ if (!config.baseRequest && (adapter === null || adapter === void 0 ? void 0 : adapter.reqClass)) {
166
+ var reqClassParams = {
167
+ timeout: 10000,
168
+ restrictedMethods: ['get', 'post', 'upload', 'download', 'request'],
169
+ };
170
+ var adapterReq_1 = new adapter.reqClass(reqClassParams);
171
+ data.request = function (url, options) {
172
+ var _a, _b;
173
+ return __awaiter(this, void 0, void 0, function () {
174
+ return __generator(this, function (_c) {
175
+ return [2, (_b = adapterReq_1 === null || adapterReq_1 === void 0 ? void 0 : adapterReq_1[(_a = options.method) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()]) === null || _b === void 0 ? void 0 : _b.call(adapterReq_1, __assign({ url: url }, options))];
176
+ });
177
+ });
178
+ };
179
+ if (data.captchaOptions) {
180
+ data.baseRequest = data.request;
181
+ data.request = undefined;
182
+ }
183
+ }
184
+ }
185
+ catch (e) {
186
+ console.error('user adapter generate fail:', e);
187
+ }
188
+ return data;
189
+ };
190
+ var dealAuthAdapter = function (config) {
157
191
  if (!adapterForWxMp.isMatch() || (config.storage && config.baseRequest))
158
192
  return config;
193
+ var data = __assign({}, config);
159
194
  var authOptions = {};
160
195
  try {
161
196
  var _a = adapterForWxMp.genAdapter(), localStorage_1 = _a.localStorage, ReqClass = _a.reqClass;
@@ -169,15 +204,21 @@ export var useAuthAdapter = function (config) {
169
204
  });
170
205
  authOptions.request = generateOauthClientRequest(reqClass);
171
206
  }
172
- if (config.captchaOptions) {
173
- authOptions.baseRequest = authOptions.request || config.request;
207
+ if (data.captchaOptions) {
208
+ authOptions.baseRequest = authOptions.request;
174
209
  authOptions.request = undefined;
175
210
  }
176
- return __assign(__assign({}, config), authOptions);
211
+ return __assign(__assign({}, data), authOptions);
177
212
  }
178
213
  catch (e) {
179
214
  console.error('adapter generate fail:', e);
180
215
  }
181
- return config;
216
+ return data;
217
+ };
218
+ export var useAuthAdapter = function (config, adapter) {
219
+ if (adapter) {
220
+ return dealUserAdapter(config, adapter);
221
+ }
222
+ return dealAuthAdapter(config);
182
223
  };
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUs1QztJQUVFLGdDQUFZLE1BQXFEO1FBQy9ELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxLQUFLLFVBQWtCLENBQUMsWUFBWSxDQUFBO0lBQzlFLENBQUM7SUFNSyx3Q0FBTyxHQUFiLFVBQWMsR0FBVzs7O2dCQUN2QixXQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzs7S0FDdEM7SUFPSywyQ0FBVSxHQUFoQixVQUFpQixHQUFXOzs7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7O0tBQ2xDO0lBUUssd0NBQU8sR0FBYixVQUFjLEdBQVcsRUFBRSxLQUFhOzs7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTs7OztLQUN0QztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXLEVBQUUsS0FBYTtRQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELCtDQUFjLEdBQWQsVUFBZSxHQUFXO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25DLENB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QUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFBO1lBQy9ELFdBQVcsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO1NBQ2hDO1FBRUQsNkJBQVksTUFBTSxHQUFLLFdBQVcsRUFBRTtLQUNyQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtLQUMzQztJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRhcHRlckZvcld4TXAgfSBmcm9tICcuL3V0aWxpdGllcydcbmltcG9ydCB0eXBlIHsgQXV0aE9wdGlvbnMgfSBmcm9tICdAY2xvdWRiYXNlL29hdXRoJ1xuXG5kZWNsYXJlIGNvbnN0IHd4OiBhbnlcblxuY2xhc3MgT2F1dGhDbGllbnRTdG9yYWdlQmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhbFN0b3JhZ2VcbiAgY29uc3RydWN0b3IoY29uZmlnPzogeyBsb2NhbFN0b3JhZ2U6IGFueSAvKiBTdG9yYWdlSW50ZXJmYWNlICovIH0pIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZSA9IGNvbmZpZz8ubG9jYWxTdG9yYWdlIHx8IChnbG9iYWxUaGlzIGFzIGFueSkubG9jYWxTdG9yYWdlXG4gIH1cbiAgLyoqXG4gICAqIEdldCBJdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHJldHVybiB7UHJvbWlzZTxzdHJpbmcgfCBudWxsPn1cbiAgICovXG4gIGFzeW5jIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIEl0ZW0uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgSXRlbS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpXG4gIH1cblxuICBnZXRJdGVtU3luYyhrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSlcbiAgfVxuXG4gIHNldEl0ZW1TeW5jKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKVxuICB9XG5cbiAgcmVtb3ZlSXRlbVN5bmMoa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSlcbiAgfVxufVxuXG4vKipcbiAqIGNvcHkgdG8gZ2l0QGdpdC53b2EuY29tOlFCYXNlL2xjYXAvZGF0YXNvdXJjZS5naXQvcGFja2FnZXMvY2xvdWQtc2RrL2NvbW1vblxuICog5ZCM5q2l5L+u5pS5XG4gKi9cbmNvbnN0IFVSTF9SRUcgPSAvXlteOl0rOlxcL1xcL1teL10rKFxcL1tePyNdKykvXG5cbmZ1bmN0aW9uIGdlbmVyYXRlT2F1dGhDbGllbnRSZXF1ZXN0KHJlcUNsYXNzKSB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGJvZHk/OiBhbnkgfCBudWxsXG4gICAgICBoZWFkZXJzPzogYW55IHwgbnVsbFxuICAgICAgbWV0aG9kPzogc3RyaW5nXG4gICAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgICB9LFxuICApIHtcbiAgICBjb25zdCByZXF1ZXN0SWQgPSBvcHRpb25zPy5oZWFkZXJzPy5bJ3gtcmVxdWVzdC1pZCddXG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gT2JqZWN0cyBtdXN0IGJlIGNvcGllZCB0byBwcmV2ZW50IG1vZGlmaWNhdGlvbiBvZiBkYXRhIHN1Y2ggYXMgYm9keS5cbiAgICAgIGNvbnN0IGNvcHlPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucylcbiAgICAgIGlmIChjb3B5T3B0aW9ucy5ib2R5ICYmIHR5cGVvZiBjb3B5T3B0aW9ucy5ib2R5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICBjb3B5T3B0aW9ucy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoY29weU9wdGlvbnMuYm9keSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFzayA9IHd4LnJlcXVlc3Qoe1xuICAgICAgICB1cmwsXG4gICAgICAgIGRhdGE6IGNvcHlPcHRpb25zLmJvZHksXG4gICAgICAgIHRpbWVvdXQ6IHJlcUNsYXNzLl90aW1lb3V0LFxuICAgICAgICBtZXRob2Q6IGNvcHlPcHRpb25zLm1ldGhvZCB8fCAnR0VUJyxcbiAgICAgICAgaGVhZGVyOiBjb3B5T3B0aW9ucy5oZWFkZXJzLFxuICAgICAgICBzdWNjZXNzKHJlcykge1xuICAgICAgICAgIGlmIChyZXMuY29kZSB8fCByZXMuZGF0YT8uZXJyb3JfY29kZSkge1xuICAgICAgICAgICAgcmVzID0ge1xuICAgICAgICAgICAgICBlcnJvcjogcmVzLmNvZGUgfHwgcmVzLmRhdGEuZXJyb3IsXG4gICAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiByZXMuZGF0YS5lcnJvcl9kZXNjcmlwdGlvbiB8fCByZXMubWVzc2FnZSB8fCByZXMuY29kZSB8fCByZXMuZGF0YS5lcnJvcl9jb2RlLFxuICAgICAgICAgICAgICByZXF1ZXN0X2lkOiByZXMucmVxdWVzdElkLFxuICAgICAgICAgICAgICBlcnJvcl9jb2RlOiByZXMuZGF0YT8uZXJyb3JfY29kZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXJlcy5yZXF1ZXN0X2lkKSB7XG4gICAgICAgICAgICByZXMucmVxdWVzdF9pZCA9IHJlcy5yZXF1ZXN0X2lkIHx8IHJlcXVlc3RJZFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZXMuZXJyb3IpIHtcbiAgICAgICAgICAgIHJlcy5lcnJvcl91cmkgPSBnZXRVcmxQYXRoKHVybClcbiAgICAgICAgICAgIHJlamVjdChyZXMpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUocmVzLmRhdGEgfHwge30pXG4gICAgICAgIH0sXG4gICAgICAgIGZhaWwoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KHtcbiAgICAgICAgICAgIGVycm9yOiAndW5yZWFjaGFibGUnLFxuICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoZXJyKSB7XG4gICAgICAgICAgaWYgKCFlcnIgfHwgIWVyci5lcnJNc2cpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXJlcUNsYXNzLl90aW1lb3V0IHx8IHJlcUNsYXNzLl9yZXN0cmljdGVkTWV0aG9kcy5pbmRleE9mKCdyZXF1ZXN0JykgPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBlcnJNc2cgfSA9IGVyclxuICAgICAgICAgIGlmIChlcnJNc2cgPT09ICdyZXF1ZXN0OmZhaWwgdGltZW91dCcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihyZXFDbGFzcy5fdGltZW91dE1zZylcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHRhc2suYWJvcnQoKVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdXJsIHBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldFVybFBhdGgodXJsOiBzdHJpbmcpIHtcbiAgLy8gcmV0dXJuIHBhdGggaWYgbWF0Y2hlZCwgb3Igb3JpZ2luYWwgdXJsXG4gIHJldHVybiBVUkxfUkVHLnRlc3QodXJsKSA/IFJlZ0V4cC4kMSA6IHVybFxufVxuXG5leHBvcnQgY29uc3QgdXNlQXV0aEFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucykgPT4ge1xuICBpZiAoIWFkYXB0ZXJGb3JXeE1wLmlzTWF0Y2goKSB8fCAoY29uZmlnLnN0b3JhZ2UgJiYgY29uZmlnLmJhc2VSZXF1ZXN0KSkgcmV0dXJuIGNvbmZpZ1xuXG4gIGNvbnN0IGF1dGhPcHRpb25zOiBhbnkgPSB7fVxuICB0cnkge1xuICAgIGNvbnN0IHsgbG9jYWxTdG9yYWdlLCByZXFDbGFzczogUmVxQ2xhc3MgfSA9IGFkYXB0ZXJGb3JXeE1wLmdlbkFkYXB0ZXIoKVxuICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIGF1dGhPcHRpb25zLnN0b3JhZ2UgPSBuZXcgT2F1dGhDbGllbnRTdG9yYWdlQmFzZSh7IGxvY2FsU3RvcmFnZSB9KVxuICAgIH1cbiAgICBpZiAoUmVxQ2xhc3MpIHtcbiAgICAgIGNvbnN0IHJlcUNsYXNzID0gbmV3IFJlcUNsYXNzKHtcbiAgICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgICAgIHJlc3RyaWN0ZWRNZXRob2RzOiBbJ2dldCcsICdwb3N0JywgJ3VwbG9hZCcsICdkb3dubG9hZCcsICdyZXF1ZXN0J10sXG4gICAgICB9KVxuICAgICAgYXV0aE9wdGlvbnMucmVxdWVzdCA9IGdlbmVyYXRlT2F1dGhDbGllbnRSZXF1ZXN0KHJlcUNsYXNzKVxuICAgIH1cblxuICAgIGlmIChjb25maWcuY2FwdGNoYU9wdGlvbnMpIHtcbiAgICAgIGF1dGhPcHRpb25zLmJhc2VSZXF1ZXN0ID0gYXV0aE9wdGlvbnMucmVxdWVzdCB8fCBjb25maWcucmVxdWVzdFxuICAgICAgYXV0aE9wdGlvbnMucmVxdWVzdCA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiB7IC4uLmNvbmZpZywgLi4uYXV0aE9wdGlvbnMgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gY29uZmlnXG59XG4iXX0=
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQVU1QztJQUVFLGdDQUFZLE1BQXFEO1FBQy9ELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxLQUFLLFVBQWtCLENBQUMsWUFBWSxDQUFBO0lBQzlFLENBQUM7SUFNSyx3Q0FBTyxHQUFiLFVBQWMsR0FBVzs7O2dCQUN2QixXQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzs7S0FDdEM7SUFPSywyQ0FBVSxHQUFoQixVQUFpQixHQUFXOzs7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7O0tBQ2xDO0lBUUssd0NBQU8sR0FBYixVQUFjLEdBQVcsRUFBRSxLQUFhOzs7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTs7OztLQUN0QztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXLEVBQUUsS0FBYTtRQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELCtDQUFjLEdBQWQsVUFBZSxHQUFXO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25DLENB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USxFQUFFO1lBQ1osSUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUM7Z0JBQzVCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLGlCQUFpQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQzthQUNwRSxDQUFDLENBQUE7WUFDRixXQUFXLENBQUMsT0FBTyxHQUFHLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQzNEO1FBRUQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLFdBQVcsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQTtZQUM3QyxXQUFXLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQTtTQUNoQztRQUVELDZCQUFZLElBQUksR0FBSyxXQUFXLEVBQUU7S0FDbkM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLENBQUE7S0FDM0M7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLE1BQW1CLEVBQUUsT0FBaUI7SUFDbkUsSUFBSSxPQUFPLEVBQUU7UUFDWCxPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7S0FDeEM7SUFFRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTREtBZGFwdGVySW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IGFkYXB0ZXJGb3JXeE1wIH0gZnJvbSAnLi91dGlsaXRpZXMnXG5pbXBvcnQgdHlwZSB7IEF1dGhPcHRpb25zIH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcbmltcG9ydCB7IENhcHRjaGFPcHRpb25zIH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aC9zcmMvY2FwdGNoYS9jYXB0Y2hhJ1xuXG5pbnRlcmZhY2UgSUFkYXB0ZXIgZXh0ZW5kcyBTREtBZGFwdGVySW50ZXJmYWNlICB7XG4gIGNhcHRjaGFPcHRpb25zPzogUGFydGlhbDxDYXB0Y2hhT3B0aW9ucz5cbn1cblxuZGVjbGFyZSBjb25zdCB3eDogYW55XG5cbmNsYXNzIE9hdXRoQ2xpZW50U3RvcmFnZUJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxTdG9yYWdlXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IHsgbG9jYWxTdG9yYWdlOiBhbnkgLyogU3RvcmFnZUludGVyZmFjZSAqLyB9KSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UgPSBjb25maWc/LmxvY2FsU3RvcmFnZSB8fCAoZ2xvYmFsVGhpcyBhcyBhbnkpLmxvY2FsU3RvcmFnZVxuICB9XG4gIC8qKlxuICAgKiBHZXQgSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nIHwgbnVsbD59XG4gICAqL1xuICBhc3luYyBnZXRJdGVtKGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBJdGVtLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gIH1cblxuICAvKipcbiAgICogU2V0IEl0ZW0uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKVxuICB9XG5cbiAgZ2V0SXRlbVN5bmMoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gIH1cblxuICBzZXRJdGVtU3luYyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSlcbiAgfVxuXG4gIHJlbW92ZUl0ZW1TeW5jKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gIH1cbn1cblxuLyoqXG4gKiBjb3B5IHRvIGdpdEBnaXQud29hLmNvbTpRQmFzZS9sY2FwL2RhdGFzb3VyY2UuZ2l0L3BhY2thZ2VzL2Nsb3VkLXNkay9jb21tb25cbiAqIOWQjOatpeS/ruaUuVxuICovXG5jb25zdCBVUkxfUkVHID0gL15bXjpdKzpcXC9cXC9bXi9dKyhcXC9bXj8jXSspL1xuXG5mdW5jdGlvbiBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcykge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBib2R5PzogYW55IHwgbnVsbFxuICAgICAgaGVhZGVycz86IGFueSB8IG51bGxcbiAgICAgIG1ldGhvZD86IHN0cmluZ1xuICAgICAgW2tleTogc3RyaW5nXTogYW55XG4gICAgfSxcbiAgKSB7XG4gICAgY29uc3QgcmVxdWVzdElkID0gb3B0aW9ucz8uaGVhZGVycz8uWyd4LXJlcXVlc3QtaWQnXVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIE9iamVjdHMgbXVzdCBiZSBjb3BpZWQgdG8gcHJldmVudCBtb2RpZmljYXRpb24gb2YgZGF0YSBzdWNoIGFzIGJvZHkuXG4gICAgICBjb25zdCBjb3B5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpXG4gICAgICBpZiAoY29weU9wdGlvbnMuYm9keSAmJiB0eXBlb2YgY29weU9wdGlvbnMuYm9keSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29weU9wdGlvbnMuYm9keSA9IEpTT04uc3RyaW5naWZ5KGNvcHlPcHRpb25zLmJvZHkpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhc2sgPSB3eC5yZXF1ZXN0KHtcbiAgICAgICAgdXJsLFxuICAgICAgICBkYXRhOiBjb3B5T3B0aW9ucy5ib2R5LFxuICAgICAgICB0aW1lb3V0OiByZXFDbGFzcy5fdGltZW91dCxcbiAgICAgICAgbWV0aG9kOiBjb3B5T3B0aW9ucy5tZXRob2QgfHwgJ0dFVCcsXG4gICAgICAgIGhlYWRlcjogY29weU9wdGlvbnMuaGVhZGVycyxcbiAgICAgICAgc3VjY2VzcyhyZXMpIHtcbiAgICAgICAgICBpZiAocmVzLmNvZGUgfHwgcmVzLmRhdGE/LmVycm9yX2NvZGUpIHtcbiAgICAgICAgICAgIHJlcyA9IHtcbiAgICAgICAgICAgICAgZXJyb3I6IHJlcy5jb2RlIHx8IHJlcy5kYXRhLmVycm9yLFxuICAgICAgICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogcmVzLmRhdGEuZXJyb3JfZGVzY3JpcHRpb24gfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLmNvZGUgfHwgcmVzLmRhdGEuZXJyb3JfY29kZSxcbiAgICAgICAgICAgICAgcmVxdWVzdF9pZDogcmVzLnJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgZXJyb3JfY29kZTogcmVzLmRhdGE/LmVycm9yX2NvZGUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFyZXMucmVxdWVzdF9pZCkge1xuICAgICAgICAgICAgcmVzLnJlcXVlc3RfaWQgPSByZXMucmVxdWVzdF9pZCB8fCByZXF1ZXN0SWRcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocmVzLmVycm9yKSB7XG4gICAgICAgICAgICByZXMuZXJyb3JfdXJpID0gZ2V0VXJsUGF0aCh1cmwpXG4gICAgICAgICAgICByZWplY3QocmVzKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHJlcy5kYXRhIHx8IHt9KVxuICAgICAgICB9LFxuICAgICAgICBmYWlsKGVycikge1xuICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICBlcnJvcjogJ3VucmVhY2hhYmxlJyxcbiAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlKGVycikge1xuICAgICAgICAgIGlmICghZXJyIHx8ICFlcnIuZXJyTXNnKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFyZXFDbGFzcy5fdGltZW91dCB8fCByZXFDbGFzcy5fcmVzdHJpY3RlZE1ldGhvZHMuaW5kZXhPZigncmVxdWVzdCcpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHsgZXJyTXNnIH0gPSBlcnJcbiAgICAgICAgICBpZiAoZXJyTXNnID09PSAncmVxdWVzdDpmYWlsIHRpbWVvdXQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4ocmVxQ2xhc3MuX3RpbWVvdXRNc2cpXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB0YXNrLmFib3J0KClcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogR2V0IHVybCBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBnZXRVcmxQYXRoKHVybDogc3RyaW5nKSB7XG4gIC8vIHJldHVybiBwYXRoIGlmIG1hdGNoZWQsIG9yIG9yaWdpbmFsIHVybFxuICByZXR1cm4gVVJMX1JFRy50ZXN0KHVybCkgPyBSZWdFeHAuJDEgOiB1cmxcbn1cblxuLyoqXG4gKiDnlKjmiLfoh6rlrprkuYlhZGFwdGVy5aSE55CGXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gYWRhcHRlclxuICogQHJldHVybnNcbiAqL1xuY29uc3QgZGVhbFVzZXJBZGFwdGVyID0gKGNvbmZpZzogQXV0aE9wdGlvbnMsIGFkYXB0ZXI6IElBZGFwdGVyKSA9PiB7XG4gIGNvbnN0IGRhdGEgPSB7IC4uLmNvbmZpZyB9XG5cbiAgdHJ5IHtcbiAgICBpZiAoIWNvbmZpZz8uc3RvcmFnZSAmJiBhZGFwdGVyPy5sb2NhbFN0b3JhZ2UpIHtcbiAgICAgIGRhdGEuc3RvcmFnZSA9IG5ldyBPYXV0aENsaWVudFN0b3JhZ2VCYXNlKHsgbG9jYWxTdG9yYWdlOiBhZGFwdGVyLmxvY2FsU3RvcmFnZSB9KVxuICAgIH1cblxuICAgIGlmICghY29uZmlnLmNhcHRjaGFPcHRpb25zICYmIGFkYXB0ZXI/LmNhcHRjaGFPcHRpb25zKSB7XG4gICAgICBkYXRhLmNhcHRjaGFPcHRpb25zID0gYWRhcHRlci5jYXB0Y2hhT3B0aW9uc1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLmJhc2VSZXF1ZXN0ICYmIGFkYXB0ZXI/LnJlcUNsYXNzKSB7XG4gICAgICBjb25zdCByZXFDbGFzc1BhcmFtcyA9IHtcbiAgICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgICAgIHJlc3RyaWN0ZWRNZXRob2RzOiBbJ2dldCcsICdwb3N0JywgJ3VwbG9hZCcsICdkb3dubG9hZCcsICdyZXF1ZXN0J10sXG4gICAgICB9XG4gICAgICBjb25zdCBhZGFwdGVyUmVxID0gbmV3IGFkYXB0ZXIucmVxQ2xhc3MocmVxQ2xhc3NQYXJhbXMpXG4gICAgICBkYXRhLnJlcXVlc3QgPSBhc3luYyBmdW5jdGlvbiAodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiB7IG1ldGhvZD86IHN0cmluZzsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICAgICAgcmV0dXJuIGFkYXB0ZXJSZXE/LltvcHRpb25zLm1ldGhvZD8udG9Mb2NhbGVMb3dlckNhc2UoKV0/Lih7IHVybCwgLi4ub3B0aW9ucyB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS5jYXB0Y2hhT3B0aW9ucykge1xuICAgICAgICBkYXRhLmJhc2VSZXF1ZXN0ID0gZGF0YS5yZXF1ZXN0XG4gICAgICAgIGRhdGEucmVxdWVzdCA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3VzZXIgYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG4vKipcbiAqIOWGhee9rum7mOiupGFkYXB0ZXLlpITnkIZcbiAqIEBwYXJhbSBjb25maWdcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGRlYWxBdXRoQWRhcHRlciA9IChjb25maWc6IEF1dGhPcHRpb25zKSA9PiB7XG4gIGlmICghYWRhcHRlckZvcld4TXAuaXNNYXRjaCgpIHx8IChjb25maWcuc3RvcmFnZSAmJiBjb25maWcuYmFzZVJlcXVlc3QpKSByZXR1cm4gY29uZmlnXG5cbiAgY29uc3QgZGF0YSA9IHsgLi4uY29uZmlnIH1cbiAgY29uc3QgYXV0aE9wdGlvbnM6IGFueSA9IHt9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7IGxvY2FsU3RvcmFnZSwgcmVxQ2xhc3M6IFJlcUNsYXNzIH0gPSBhZGFwdGVyRm9yV3hNcC5nZW5BZGFwdGVyKClcbiAgICBpZiAobG9jYWxTdG9yYWdlKSB7XG4gICAgICBhdXRoT3B0aW9ucy5zdG9yYWdlID0gbmV3IE9hdXRoQ2xpZW50U3RvcmFnZUJhc2UoeyBsb2NhbFN0b3JhZ2UgfSlcbiAgICB9XG4gICAgaWYgKFJlcUNsYXNzKSB7XG4gICAgICBjb25zdCByZXFDbGFzcyA9IG5ldyBSZXFDbGFzcyh7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgICByZXN0cmljdGVkTWV0aG9kczogWydnZXQnLCAncG9zdCcsICd1cGxvYWQnLCAnZG93bmxvYWQnLCAncmVxdWVzdCddLFxuICAgICAgfSlcbiAgICAgIGF1dGhPcHRpb25zLnJlcXVlc3QgPSBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcylcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5jYXB0Y2hhT3B0aW9ucykge1xuICAgICAgYXV0aE9wdGlvbnMuYmFzZVJlcXVlc3QgPSBhdXRoT3B0aW9ucy5yZXF1ZXN0XG4gICAgICBhdXRoT3B0aW9ucy5yZXF1ZXN0ID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgLi4uZGF0YSwgLi4uYXV0aE9wdGlvbnMgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG5leHBvcnQgY29uc3QgdXNlQXV0aEFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucywgYWRhcHRlcjogSUFkYXB0ZXIpID0+IHtcbiAgaWYgKGFkYXB0ZXIpIHtcbiAgICByZXR1cm4gZGVhbFVzZXJBZGFwdGVyKGNvbmZpZywgYWRhcHRlcilcbiAgfVxuXG4gIHJldHVybiBkZWFsQXV0aEFkYXB0ZXIoY29uZmlnKVxufVxuIl19