@cloudbase/utilities 3.0.0 → 3.0.1

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.
@@ -4,7 +4,7 @@ export declare enum RUNTIME {
4
4
  WX_MP = "wx_mp"
5
5
  }
6
6
  type ICloudbaseAdapter = CloudbaseAdapter & {
7
- genAdapter: (options: any) => SDKAdapterInterface | NodeAdapterInterface;
7
+ genAdapter: (options?: any) => SDKAdapterInterface | NodeAdapterInterface;
8
8
  };
9
9
  export declare function useAdapters(adapters: ICloudbaseAdapter | ICloudbaseAdapter[], options?: any): {
10
10
  adapter: {
@@ -27,7 +27,17 @@ export declare function useAdapters(adapters: ICloudbaseAdapter | ICloudbaseAdap
27
27
  runtime: string;
28
28
  };
29
29
  export declare function useDefaultAdapter(): {
30
- adapter: SDKAdapterInterface & {
30
+ adapter: {
31
+ root: any;
32
+ wsClass: import("@cloudbase/adapter-interface").WebSocketContructor;
33
+ reqClass: import("@cloudbase/adapter-interface").SDKRequestConstructor;
34
+ localStorage?: import("@cloudbase/adapter-interface").StorageInterface;
35
+ sessionStorage?: import("@cloudbase/adapter-interface").StorageInterface;
36
+ primaryStorage?: import("@cloudbase/adapter-interface").StorageType;
37
+ captchaOptions?: {
38
+ openURIWithCallback?: (url: string) => Promise<import("@cloudbase/adapter-interface").CaptchaToken>;
39
+ };
40
+ getAppSign?(): string;
31
41
  type?: "" | "default";
32
42
  };
33
43
  runtime: RUNTIME;
@@ -60,9 +60,9 @@ function useAdapters(adapters, options) {
60
60
  exports.useAdapters = useAdapters;
61
61
  function useDefaultAdapter() {
62
62
  return {
63
- adapter: Web.genAdapter(),
63
+ adapter: __assign({}, Web.genAdapter()),
64
64
  runtime: RUNTIME.WEB,
65
65
  };
66
66
  }
67
67
  exports.useDefaultAdapter = useDefaultAdapter;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG1EQUFzQztBQUN0QyxxQ0FBc0M7QUFFdEMsSUFBWSxPQUdYO0FBSEQsV0FBWSxPQUFPO0lBQ2pCLHNCQUFXLENBQUE7SUFDWCwwQkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFHbEI7QUFNRCxTQUFnQixXQUFXLENBQUMsUUFBaUQsRUFBRSxPQUFhO0lBQzFGLElBQU0sV0FBVyxHQUF3QixJQUFBLGNBQU8sRUFBQyxRQUFRLENBQUM7UUFDeEQsQ0FBQyxDQUFFLFFBQWdDO1FBQ25DLENBQUMsQ0FBQyxDQUFDLFFBQTZCLENBQUMsQ0FBQTtJQUNuQyxLQUFzQixVQUFXLEVBQVgsMkJBQVcsRUFBWCx5QkFBVyxFQUFYLElBQVcsRUFBRTtRQUE5QixJQUFNLE9BQU8sb0JBQUE7UUFDUixJQUFBLE9BQU8sR0FBMEIsT0FBTyxRQUFqQyxFQUFFLFVBQVUsR0FBYyxPQUFPLFdBQXJCLEVBQUUsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFZO1FBQ2hELElBQUksT0FBTyxFQUFFLEVBQUU7WUFDYixPQUFPO2dCQUNMLE9BQU8sYUFBSSxPQUFPLFNBQUEsSUFBSyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUU7Z0JBQzVDLE9BQU8sU0FBQTthQUNSLENBQUE7U0FDRjtLQUNGO0FBQ0gsQ0FBQztBQWJELGtDQWFDO0FBRUQsU0FBZ0IsaUJBQWlCO0lBQy9CLE9BQU87UUFDTCxPQUFPLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRTtRQUN6QixPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUc7S0FDckIsQ0FBQTtBQUNILENBQUM7QUFMRCw4Q0FLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsb3VkYmFzZUFkYXB0ZXIsIFNES0FkYXB0ZXJJbnRlcmZhY2UsIE5vZGVBZGFwdGVySW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCAqIGFzIFdlYiBmcm9tICcuL3BsYXRmb3Jtcy93ZWInXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vbGlicy91dGlsJ1xuXG5leHBvcnQgZW51bSBSVU5USU1FIHtcbiAgV0VCID0gJ3dlYicsXG4gIFdYX01QID0gJ3d4X21wJywgLy8g5b6u5L+h5bCP56iL5bqPXG59XG5cbnR5cGUgSUNsb3VkYmFzZUFkYXB0ZXIgPSBDbG91ZGJhc2VBZGFwdGVyICYge1xuICBnZW5BZGFwdGVyOiAob3B0aW9uczogYW55KSA9PiBTREtBZGFwdGVySW50ZXJmYWNlIHwgTm9kZUFkYXB0ZXJJbnRlcmZhY2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUFkYXB0ZXJzKGFkYXB0ZXJzOiBJQ2xvdWRiYXNlQWRhcHRlciB8IElDbG91ZGJhc2VBZGFwdGVyW10sIG9wdGlvbnM/OiBhbnkpIHtcbiAgY29uc3QgYWRhcHRlckxpc3Q6IElDbG91ZGJhc2VBZGFwdGVyW10gPSBpc0FycmF5KGFkYXB0ZXJzKVxuICAgID8gKGFkYXB0ZXJzIGFzIElDbG91ZGJhc2VBZGFwdGVyW10pXG4gICAgOiBbYWRhcHRlcnMgYXMgSUNsb3VkYmFzZUFkYXB0ZXJdXG4gIGZvciAoY29uc3QgYWRhcHRlciBvZiBhZGFwdGVyTGlzdCkge1xuICAgIGNvbnN0IHsgaXNNYXRjaCwgZ2VuQWRhcHRlciwgcnVudGltZSB9ID0gYWRhcHRlclxuICAgIGlmIChpc01hdGNoKCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkYXB0ZXI6IHsgaXNNYXRjaCwgLi4uZ2VuQWRhcHRlcihvcHRpb25zKSB9LFxuICAgICAgICBydW50aW1lLFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVmYXVsdEFkYXB0ZXIoKSB7XG4gIHJldHVybiB7XG4gICAgYWRhcHRlcjogV2ViLmdlbkFkYXB0ZXIoKSxcbiAgICBydW50aW1lOiBSVU5USU1FLldFQixcbiAgfVxufVxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG1EQUFzQztBQUN0QyxxQ0FBc0M7QUFFdEMsSUFBWSxPQUdYO0FBSEQsV0FBWSxPQUFPO0lBQ2pCLHNCQUFXLENBQUE7SUFDWCwwQkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFHbEI7QUFNRCxTQUFnQixXQUFXLENBQUMsUUFBaUQsRUFBRSxPQUFhO0lBQzFGLElBQU0sV0FBVyxHQUF3QixJQUFBLGNBQU8sRUFBQyxRQUFRLENBQUM7UUFDeEQsQ0FBQyxDQUFFLFFBQWdDO1FBQ25DLENBQUMsQ0FBQyxDQUFDLFFBQTZCLENBQUMsQ0FBQTtJQUNuQyxLQUFzQixVQUFXLEVBQVgsMkJBQVcsRUFBWCx5QkFBVyxFQUFYLElBQVcsRUFBRTtRQUE5QixJQUFNLE9BQU8sb0JBQUE7UUFDUixJQUFBLE9BQU8sR0FBMEIsT0FBTyxRQUFqQyxFQUFFLFVBQVUsR0FBYyxPQUFPLFdBQXJCLEVBQUUsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFZO1FBQ2hELElBQUksT0FBTyxFQUFFLEVBQUU7WUFDYixPQUFPO2dCQUNMLE9BQU8sYUFBSSxPQUFPLFNBQUEsSUFBSyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUU7Z0JBQzVDLE9BQU8sU0FBQTthQUNSLENBQUE7U0FDRjtLQUNGO0FBQ0gsQ0FBQztBQWJELGtDQWFDO0FBRUQsU0FBZ0IsaUJBQWlCO0lBQy9CLE9BQU87UUFDTCxPQUFPLGVBQU8sR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFFO1FBQ2hDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRztLQUNyQixDQUFBO0FBQ0gsQ0FBQztBQUxELDhDQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRiYXNlQWRhcHRlciwgU0RLQWRhcHRlckludGVyZmFjZSwgTm9kZUFkYXB0ZXJJbnRlcmZhY2UgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0ICogYXMgV2ViIGZyb20gJy4vcGxhdGZvcm1zL3dlYidcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICcuLi9saWJzL3V0aWwnXG5cbmV4cG9ydCBlbnVtIFJVTlRJTUUge1xuICBXRUIgPSAnd2ViJyxcbiAgV1hfTVAgPSAnd3hfbXAnLCAvLyDlvq7kv6HlsI/nqIvluo9cbn1cblxudHlwZSBJQ2xvdWRiYXNlQWRhcHRlciA9IENsb3VkYmFzZUFkYXB0ZXIgJiB7XG4gIGdlbkFkYXB0ZXI6IChvcHRpb25zPzogYW55KSA9PiBTREtBZGFwdGVySW50ZXJmYWNlIHwgTm9kZUFkYXB0ZXJJbnRlcmZhY2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUFkYXB0ZXJzKGFkYXB0ZXJzOiBJQ2xvdWRiYXNlQWRhcHRlciB8IElDbG91ZGJhc2VBZGFwdGVyW10sIG9wdGlvbnM/OiBhbnkpIHtcbiAgY29uc3QgYWRhcHRlckxpc3Q6IElDbG91ZGJhc2VBZGFwdGVyW10gPSBpc0FycmF5KGFkYXB0ZXJzKVxuICAgID8gKGFkYXB0ZXJzIGFzIElDbG91ZGJhc2VBZGFwdGVyW10pXG4gICAgOiBbYWRhcHRlcnMgYXMgSUNsb3VkYmFzZUFkYXB0ZXJdXG4gIGZvciAoY29uc3QgYWRhcHRlciBvZiBhZGFwdGVyTGlzdCkge1xuICAgIGNvbnN0IHsgaXNNYXRjaCwgZ2VuQWRhcHRlciwgcnVudGltZSB9ID0gYWRhcHRlclxuICAgIGlmIChpc01hdGNoKCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkYXB0ZXI6IHsgaXNNYXRjaCwgLi4uZ2VuQWRhcHRlcihvcHRpb25zKSB9LFxuICAgICAgICBydW50aW1lLFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVmYXVsdEFkYXB0ZXIoKSB7XG4gIHJldHVybiB7XG4gICAgYWRhcHRlcjogeyAuLi5XZWIuZ2VuQWRhcHRlcigpIH0sXG4gICAgcnVudGltZTogUlVOVElNRS5XRUIsXG4gIH1cbn1cbiJdfQ==
@@ -9,7 +9,9 @@ declare class WebRequest extends AbstractSDKRequest {
9
9
  put(options: IRequestOptions): Promise<ResponseObject>;
10
10
  upload(options: IUploadRequestOptions): Promise<ResponseObject>;
11
11
  download(options: IRequestOptions): Promise<any>;
12
- fetch(options: IFetchOptions): Promise<ResponseObject>;
12
+ fetch(options: IFetchOptions & {
13
+ shouldThrowOnError?: boolean;
14
+ }): Promise<ResponseObject>;
13
15
  protected request(options: IRequestOptions, enableAbort?: boolean): Promise<ResponseObject>;
14
16
  }
15
17
  declare function genAdapter(): SDKAdapterInterface & {
@@ -136,13 +136,13 @@ var WebRequest = (function (_super) {
136
136
  WebRequest.prototype.fetch = function (options) {
137
137
  var _a;
138
138
  return __awaiter(this, void 0, void 0, function () {
139
- var abortController, url, _b, enableAbort, _c, stream, signal, _timeout, timeout, timer, res;
139
+ var abortController, url, _b, enableAbort, _c, stream, signal, _timeout, _d, shouldThrowOnError, timeout, timer, res;
140
140
  var _this = this;
141
- return __generator(this, function (_d) {
142
- switch (_d.label) {
141
+ return __generator(this, function (_e) {
142
+ switch (_e.label) {
143
143
  case 0:
144
144
  abortController = new AbortController();
145
- url = options.url, _b = options.enableAbort, enableAbort = _b === void 0 ? false : _b, _c = options.stream, stream = _c === void 0 ? false : _c, signal = options.signal, _timeout = options.timeout;
145
+ url = options.url, _b = options.enableAbort, enableAbort = _b === void 0 ? false : _b, _c = options.stream, stream = _c === void 0 ? false : _c, signal = options.signal, _timeout = options.timeout, _d = options.shouldThrowOnError, shouldThrowOnError = _d === void 0 ? true : _d;
146
146
  timeout = _timeout !== null && _timeout !== void 0 ? _timeout : this.timeout;
147
147
  if (signal) {
148
148
  if (signal.aborted)
@@ -163,6 +163,7 @@ var WebRequest = (function (_super) {
163
163
  switch (_d.label) {
164
164
  case 0:
165
165
  clearTimeout(timer);
166
+ if (!shouldThrowOnError) return [3, 4];
166
167
  if (!response.ok) return [3, 1];
167
168
  _a = response;
168
169
  return [3, 3];
@@ -173,15 +174,18 @@ var WebRequest = (function (_super) {
173
174
  _a = _c.apply(_b, [_d.sent()]);
174
175
  _d.label = 3;
175
176
  case 3: return [2, _a];
177
+ case 4: return [2, response];
176
178
  }
177
179
  });
178
180
  }); })
179
181
  .catch(function (x) {
180
182
  clearTimeout(timer);
181
- return Promise.reject(x);
183
+ if (shouldThrowOnError) {
184
+ return Promise.reject(x);
185
+ }
182
186
  })];
183
187
  case 1:
184
- res = _d.sent();
188
+ res = _e.sent();
185
189
  return [2, {
186
190
  data: stream ? res.body : ((_a = res.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.includes('application/json')) ? res.json() : res.text(),
187
191
  statusCode: res.status,
@@ -271,4 +275,4 @@ function genAdapter() {
271
275
  return adapter;
272
276
  }
273
277
  exports.genAdapter = genAdapter;
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL3BsYXRmb3Jtcy93ZWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrRUFTcUM7QUFDckMsd0NBQXNFO0FBQ3RFLGlEQUFvRDtBQUtwRDtJQUF5Qiw4QkFBa0I7SUFPekMsb0JBQVksTUFBc0I7UUFBbEMsWUFDRSxpQkFBTyxTQUtSO1FBSlMsSUFBQSxPQUFPLEdBQW9DLE1BQU0sUUFBMUMsRUFBRSxVQUFVLEdBQXdCLE1BQU0sV0FBOUIsRUFBRSxpQkFBaUIsR0FBSyxNQUFNLGtCQUFYLENBQVc7UUFDekQsS0FBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFBO1FBQzNCLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLE1BQU0sQ0FBQTtRQUN0QyxLQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQTs7SUFDckYsQ0FBQztJQUNNLHdCQUFHLEdBQVYsVUFBVyxPQUF3QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPLHVCQUVaLE9BQU8sS0FDVixNQUFNLEVBQUUsS0FBSyxLQUVmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ3ZDLENBQUE7SUFDSCxDQUFDO0lBQ00seUJBQUksR0FBWCxVQUFZLE9BQXdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sdUJBRVosT0FBTyxLQUNWLE1BQU0sRUFBRSxNQUFNLEtBRWhCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3hDLENBQUE7SUFDSCxDQUFDO0lBQ00sd0JBQUcsR0FBVixVQUFXLE9B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Y0FBQTtLQUNiLENBQUE7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBRVEsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTREtBZGFwdGVySW50ZXJmYWNlLFxuICBBYnN0cmFjdFNES1JlcXVlc3QsXG4gIElSZXF1ZXN0T3B0aW9ucyxcbiAgUmVzcG9uc2VPYmplY3QsXG4gIElVcGxvYWRSZXF1ZXN0T3B0aW9ucyxcbiAgSVJlcXVlc3RDb25maWcsXG4gIElSZXF1ZXN0TWV0aG9kLFxuICBJRmV0Y2hPcHRpb25zLFxufSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHsgaXNGb3JtRGF0YSwgZm9ybWF0VXJsLCB0b1F1ZXJ5U3RyaW5nIH0gZnJvbSAnLi4vLi4vbGlicy91dGlsJ1xuaW1wb3J0IHsgZ2V0UHJvdG9jb2wgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29tbW9uJ1xuXG4vKipcbiAqIEBjbGFzcyBXZWJSZXF1ZXN0XG4gKi9cbmNsYXNzIFdlYlJlcXVlc3QgZXh0ZW5kcyBBYnN0cmFjdFNES1JlcXVlc3Qge1xuICAvLyDpu5jorqTkuI3pmZDotoXml7ZcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lb3V0OiBudW1iZXJcbiAgLy8g6LaF5pe25o+Q56S65paH5qGIXG4gIHByaXZhdGUgcmVhZG9ubHkgdGltZW91dE1zZzogc3RyaW5nXG4gIC8vIOi2heaXtuWPl+mZkOivt+axguexu+Wei++8jOm7mOiupOaJgOacieivt+axguWdh+WPl+mZkFxuICBwcml2YXRlIHJlYWRvbmx5IHJlc3RyaWN0ZWRNZXRob2RzOiBBcnJheTxJUmVxdWVzdE1ldGhvZD5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBJUmVxdWVzdENvbmZpZykge1xuICAgIHN1cGVyKClcbiAgICBjb25zdCB7IHRpbWVvdXQsIHRpbWVvdXRNc2csIHJlc3RyaWN0ZWRNZXRob2RzIH0gPSBjb25maWdcbiAgICB0aGlzLnRpbWVvdXQgPSB0aW1lb3V0IHx8IDBcbiAgICB0aGlzLnRpbWVvdXRNc2cgPSB0aW1lb3V0TXNnIHx8ICfor7fmsYLotoXml7YnXG4gICAgdGhpcy5yZXN0cmljdGVkTWV0aG9kcyA9IHJlc3RyaWN0ZWRNZXRob2RzIHx8IFsnZ2V0JywgJ3Bvc3QnLCAndXBsb2FkJywgJ2Rvd25sb2FkJ11cbiAgfVxuICBwdWJsaWMgZ2V0KG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgfSxcbiAgICAgIHRoaXMucmVzdHJpY3RlZE1ldGhvZHMuaW5jbHVkZXMoJ2dldCcpLFxuICAgIClcbiAgfVxuICBwdWJsaWMgcG9zdChvcHRpb25zOiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB9LFxuICAgICAgdGhpcy5yZXN0cmljdGVkTWV0aG9kcy5pbmNsdWRlcygncG9zdCcpLFxuICAgIClcbiAgfVxuICBwdWJsaWMgcHV0KG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgIH0pXG4gIH1cbiAgcHVibGljIHVwbG9hZChvcHRpb25zOiBJVXBsb2FkUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgY29uc3QgeyBkYXRhLCBmaWxlLCBuYW1lLCBtZXRob2QsIGhlYWRlcnMgPSB7fSB9ID0gb3B0aW9uc1xuICAgIGNvbnN0IHJlcU1ldGhvZCA9IHsgcG9zdDogJ3Bvc3QnLCBwdXQ6ICdwdXQnIH1bbWV0aG9kPy50b0xvd2VyQ2FzZSgpXSB8fCAncHV0J1xuICAgIC8vIOS4iuS8oOaWueW8j+S4unBvc3Tml7bvvIzpnIDovazmjaLkuLpGb3JtRGF0YVxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKClcbiAgICBpZiAocmVxTWV0aG9kID09PSAncG9zdCcpIHtcbiAgICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pXG4gICAgICB9KVxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdrZXknLCBuYW1lKVxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSlcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIGRhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgIG1ldGhvZDogcmVxTWV0aG9kLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlc3RyaWN0ZWRNZXRob2RzLmluY2x1ZGVzKCd1cGxvYWQnKSxcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgICAgYm9keTogZmlsZSxcbiAgICAgIH0sXG4gICAgICB0aGlzLnJlc3RyaWN0ZWRNZXRob2RzLmluY2x1ZGVzKCd1cGxvYWQnKSxcbiAgICApXG4gIH1cbiAgcHVibGljIGFzeW5jIGRvd25sb2FkKG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5nZXQoe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBoZWFkZXJzOiB7fSwgLy8g5LiL6L296LWE5rqQ6K+35rGC5LiN57uP6L+Hc2VydmljZe+8jGhlYWRlcua4heepulxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbZGF0YV0pKVxuICAgICAgY29uc3QgZmlsZU5hbWUgPSBkZWNvZGVVUklDb21wb25lbnQobmV3IFVSTChvcHRpb25zLnVybCkucGF0aG5hbWUuc3BsaXQoJy8nKS5wb3AoKSB8fCAnJylcbiAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcblxuICAgICAgbGluay5ocmVmID0gdXJsXG4gICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSlcbiAgICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXG4gICAgICBsaW5rLmNsaWNrKClcbiAgICAgIC8vIOWbnuaUtuWGheWtmFxuICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKVxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKVxuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgc3RhdHVzQ29kZTogMjAwLFxuICAgICAgICB0ZW1wRmlsZVBhdGg6IG9wdGlvbnMudXJsLFxuICAgICAgfSlcbiAgICB9KVxuICB9XG4gIGFzeW5jIGZldGNoKG9wdGlvbnM6IElGZXRjaE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgY29uc3QgeyB1cmwsIGVuYWJsZUFib3J0ID0gZmFsc2UsIHN0cmVhbSA9IGZhbHNlLCBzaWduYWwsIHRpbWVvdXQ6IF90aW1lb3V0IH0gPSBvcHRpb25zXG5cbiAgICBjb25zdCB0aW1lb3V0ID0gX3RpbWVvdXQgPz8gdGhpcy50aW1lb3V0XG5cbiAgICBpZiAoc2lnbmFsKSB7XG4gICAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIGFib3J0Q29udHJvbGxlci5hYm9ydCgpXG4gICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCAoKSA9PiBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKSlcbiAgICB9XG5cbiAgICBsZXQgdGltZXIgPSBudWxsXG4gICAgaWYgKGVuYWJsZUFib3J0ICYmIHRpbWVvdXQpIHtcbiAgICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUud2Fybih0aGlzLnRpbWVvdXRNc2cpXG4gICAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydChuZXcgRXJyb3IodGhpcy50aW1lb3V0TXNnKSlcbiAgICAgIH0sIHRpbWVvdXQpXG4gICAgfVxuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pXG4gICAgICAudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKVxuICAgICAgICAvLyA0MDQg562J562J5Lmf5Lya6L+bIHJlc29sdmXvvIzmiYDku6XopoHlho3pgJrov4cgb2sg5Yik5patXG4gICAgICAgIHJldHVybiByZXNwb25zZS5vayA/IHJlc3BvbnNlIDogUHJvbWlzZS5yZWplY3QoYXdhaXQgcmVzcG9uc2UuanNvbigpKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoeCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh4KVxuICAgICAgfSlcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBzdHJlYW0gPyByZXMuYm9keSA6IHJlcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykgPyByZXMuanNvbigpIDogcmVzLnRleHQoKSxcbiAgICAgIHN0YXR1c0NvZGU6IHJlcy5zdGF0dXMsXG4gICAgICBoZWFkZXI6IHJlcy5oZWFkZXJzLFxuICAgIH1cbiAgfVxuICAvKipcbiAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVBYm9ydCDmmK/lkKbotoXml7bkuK3mlq3or7fmsYJcbiAgICovXG4gIHByb3RlY3RlZCByZXF1ZXN0KG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucywgZW5hYmxlQWJvcnQgPSBmYWxzZSk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCBtZXRob2QgPSBTdHJpbmcob3B0aW9ucy5tZXRob2QpLnRvTG93ZXJDYXNlKCkgfHwgJ2dldCdcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IHsgdXJsLCBoZWFkZXJzID0ge30sIGRhdGEsIHJlc3BvbnNlVHlwZSwgd2l0aENyZWRlbnRpYWxzLCBib2R5LCBvblVwbG9hZFByb2dyZXNzIH0gPSBvcHRpb25zXG4gICAgICBjb25zdCByZWFsVXJsID0gZm9ybWF0VXJsKGdldFByb3RvY29sKCksIHVybCwgbWV0aG9kID09PSAnZ2V0JyA/IGRhdGEgOiB7fSlcbiAgICAgIGNvbnN0IGFqYXggPSBuZXcgWE1MSHR0cFJlcXVlc3QoKVxuICAgICAgYWpheC5vcGVuKG1ldGhvZCwgcmVhbFVybClcbiAgICAgIHJlc3BvbnNlVHlwZSAmJiAoYWpheC5yZXNwb25zZVR5cGUgPSByZXNwb25zZVR5cGUpXG4gICAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgYWpheC5zZXRSZXF1ZXN0SGVhZGVyKGtleSwgaGVhZGVyc1trZXldKVxuICAgICAgfSlcbiAgICAgIGxldCB0aW1lclxuICAgICAgaWYgKG9uVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgYWpheC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCBvblVwbG9hZFByb2dyZXNzKVxuICAgICAgfVxuICAgICAgYWpheC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogUmVzcG9uc2VPYmplY3QgPSB7fVxuICAgICAgICBpZiAoYWpheC5yZWFkeVN0YXRlID09PSA0KSB7XG4gICAgICAgICAgY29uc3QgaGVhZGVycyA9IGFqYXguZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKClcbiAgICAgICAgICBjb25zdCBhcnIgPSBoZWFkZXJzLnRyaW0oKS5zcGxpdCgvW1xcclxcbl0rLylcbiAgICAgICAgICAvLyBDcmVhdGUgYSBtYXAgb2YgaGVhZGVyIG5hbWVzIHRvIHZhbHVlc1xuICAgICAgICAgIGNvbnN0IGhlYWRlck1hcCA9IHt9XG4gICAgICAgICAgYXJyLmZvckVhY2goKGxpbmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gbGluZS5zcGxpdCgnOiAnKVxuICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gcGFydHMuc2hpZnQoKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcnRzLmpvaW4oJzogJylcbiAgICAgICAgICAgIGhlYWRlck1hcFtoZWFkZXJdID0gdmFsdWVcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJlc3VsdC5oZWFkZXIgPSBoZWFkZXJNYXBcbiAgICAgICAgICByZXN1bHQuc3RhdHVzQ29kZSA9IGFqYXguc3RhdHVzXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIOS4iuS8oHBvc3Tor7fmsYLov5Tlm57mlbDmja7moLzlvI/kuLp4bWzvvIzmraTlpITlrrnplJlcbiAgICAgICAgICAgIHJlc3VsdC5kYXRhID0gcmVzcG9uc2VUeXBlID09PSAnYmxvYicgPyBhamF4LnJlc3BvbnNlIDogSlNPTi5wYXJzZShhamF4LnJlc3BvbnNlVGV4dClcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXN1bHQuZGF0YSA9IHJlc3BvbnNlVHlwZSA9PT0gJ2Jsb2InID8gYWpheC5yZXNwb25zZSA6IGFqYXgucmVzcG9uc2VUZXh0XG4gICAgICAgICAgfVxuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcilcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGVuYWJsZUFib3J0ICYmIHRoaXMudGltZW91dCkge1xuICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUud2Fybih0aGlzLnRpbWVvdXRNc2cpXG4gICAgICAgICAgYWpheC5hYm9ydCgpXG4gICAgICAgIH0sIHRoaXMudGltZW91dClcbiAgICAgIH1cbiAgICAgIC8vIOWkhOeQhiBwYXlsb2FkXG4gICAgICBsZXQgcGF5bG9hZFxuICAgICAgaWYgKGlzRm9ybURhdGEoZGF0YSkpIHtcbiAgICAgICAgLy8gRm9ybURhdGHvvIzkuI3lpITnkIZcbiAgICAgICAgcGF5bG9hZCA9IGRhdGFcbiAgICAgIH0gZWxzZSBpZiAoaGVhZGVyc1snY29udGVudC10eXBlJ10gPT09ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKSB7XG4gICAgICAgIHBheWxvYWQgPSB0b1F1ZXJ5U3RyaW5nKGRhdGEpXG4gICAgICB9IGVsc2UgaWYgKGJvZHkpIHtcbiAgICAgICAgcGF5bG9hZCA9IGJvZHlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIOWFtuWug+aDheWGtVxuICAgICAgICBwYXlsb2FkID0gZGF0YSA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogdW5kZWZpbmVkXG4gICAgICB9XG5cbiAgICAgIGlmICh3aXRoQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgYWpheC53aXRoQ3JlZGVudGlhbHMgPSB0cnVlXG4gICAgICB9XG4gICAgICBhamF4LnNlbmQocGF5bG9hZClcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGdlbkFkYXB0ZXIoKSB7XG4gIGNvbnN0IGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UgJiB7IHR5cGU/OiAnZGVmYXVsdCcgfCAnJyB9ID0ge1xuICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICByb290OiB3aW5kb3csXG4gICAgcmVxQ2xhc3M6IFdlYlJlcXVlc3QsXG4gICAgd3NDbGFzczogV2ViU29ja2V0LFxuICAgIGxvY2FsU3RvcmFnZSxcbiAgfVxuICByZXR1cm4gYWRhcHRlclxufVxuXG5leHBvcnQgeyBnZW5BZGFwdGVyLCBXZWJSZXF1ZXN0IH1cbiJdfQ==
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL3BsYXRmb3Jtcy93ZWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrRUFTcUM7QUFDckMsd0NBQXNFO0FBQ3RFLGlEQUFvRDtBQUtwRDtJQUF5Qiw4QkFBa0I7SUFPekMsb0JBQVksTUFBc0I7UUFBbEMsWUFDRSxpQkFBTyxTQUtSO1FBSlMsSUFBQSxPQUFPLEdBQW9DLE1BQU0sUUFBMUMsRUFBRSxVQUFVLEdBQXdCLE1BQU0sV0FBOUIsRUFBRSxpQkFBaUIsR0FBSyxNQUFNLGtCQUFYLENBQVc7UUFDekQsS0FBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFBO1FBQzNCLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLE1BQU0sQ0FBQTtRQUN0QyxLQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQTs7SUFDckYsQ0FBQztJQUNNLHdCQUFHLEdBQVYsVUFBVyxPQUF3QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPLHVCQUVaLE9BQU8sS0FDVixNQUFNLEVBQUUsS0FBSyxLQUVmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ3ZDLENBQUE7SUFDSCxDQUFDO0lBQ00seUJBQUksR0FBWCxVQUFZLE9BQXdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sdUJBRVosT0FBTyxLQUNWLE1BQU0sRUFBRSxNQUFNLEtBRWhCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3hDLENBQUE7SUFDSCxDQUFDO0lBQ00sd0JBQUcsR0FBVixVQUFXLE9B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O0FBWC9CLFNBQVMsVUFBVTtJQUNqQixJQUFNLE9BQU8sR0FBb0Q7UUFDL0QsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFlBQVksY0FBQTtLQUNiLENBQUE7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBRVEsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTREtBZGFwdGVySW50ZXJmYWNlLFxuICBBYnN0cmFjdFNES1JlcXVlc3QsXG4gIElSZXF1ZXN0T3B0aW9ucyxcbiAgUmVzcG9uc2VPYmplY3QsXG4gIElVcGxvYWRSZXF1ZXN0T3B0aW9ucyxcbiAgSVJlcXVlc3RDb25maWcsXG4gIElSZXF1ZXN0TWV0aG9kLFxuICBJRmV0Y2hPcHRpb25zLFxufSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHsgaXNGb3JtRGF0YSwgZm9ybWF0VXJsLCB0b1F1ZXJ5U3RyaW5nIH0gZnJvbSAnLi4vLi4vbGlicy91dGlsJ1xuaW1wb3J0IHsgZ2V0UHJvdG9jb2wgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29tbW9uJ1xuXG4vKipcbiAqIEBjbGFzcyBXZWJSZXF1ZXN0XG4gKi9cbmNsYXNzIFdlYlJlcXVlc3QgZXh0ZW5kcyBBYnN0cmFjdFNES1JlcXVlc3Qge1xuICAvLyDpu5jorqTkuI3pmZDotoXml7ZcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lb3V0OiBudW1iZXJcbiAgLy8g6LaF5pe25o+Q56S65paH5qGIXG4gIHByaXZhdGUgcmVhZG9ubHkgdGltZW91dE1zZzogc3RyaW5nXG4gIC8vIOi2heaXtuWPl+mZkOivt+axguexu+Wei++8jOm7mOiupOaJgOacieivt+axguWdh+WPl+mZkFxuICBwcml2YXRlIHJlYWRvbmx5IHJlc3RyaWN0ZWRNZXRob2RzOiBBcnJheTxJUmVxdWVzdE1ldGhvZD5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBJUmVxdWVzdENvbmZpZykge1xuICAgIHN1cGVyKClcbiAgICBjb25zdCB7IHRpbWVvdXQsIHRpbWVvdXRNc2csIHJlc3RyaWN0ZWRNZXRob2RzIH0gPSBjb25maWdcbiAgICB0aGlzLnRpbWVvdXQgPSB0aW1lb3V0IHx8IDBcbiAgICB0aGlzLnRpbWVvdXRNc2cgPSB0aW1lb3V0TXNnIHx8ICfor7fmsYLotoXml7YnXG4gICAgdGhpcy5yZXN0cmljdGVkTWV0aG9kcyA9IHJlc3RyaWN0ZWRNZXRob2RzIHx8IFsnZ2V0JywgJ3Bvc3QnLCAndXBsb2FkJywgJ2Rvd25sb2FkJ11cbiAgfVxuICBwdWJsaWMgZ2V0KG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgfSxcbiAgICAgIHRoaXMucmVzdHJpY3RlZE1ldGhvZHMuaW5jbHVkZXMoJ2dldCcpLFxuICAgIClcbiAgfVxuICBwdWJsaWMgcG9zdChvcHRpb25zOiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB9LFxuICAgICAgdGhpcy5yZXN0cmljdGVkTWV0aG9kcy5pbmNsdWRlcygncG9zdCcpLFxuICAgIClcbiAgfVxuICBwdWJsaWMgcHV0KG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgIH0pXG4gIH1cbiAgcHVibGljIHVwbG9hZChvcHRpb25zOiBJVXBsb2FkUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgY29uc3QgeyBkYXRhLCBmaWxlLCBuYW1lLCBtZXRob2QsIGhlYWRlcnMgPSB7fSB9ID0gb3B0aW9uc1xuICAgIGNvbnN0IHJlcU1ldGhvZCA9IHsgcG9zdDogJ3Bvc3QnLCBwdXQ6ICdwdXQnIH1bbWV0aG9kPy50b0xvd2VyQ2FzZSgpXSB8fCAncHV0J1xuICAgIC8vIOS4iuS8oOaWueW8j+S4unBvc3Tml7bvvIzpnIDovazmjaLkuLpGb3JtRGF0YVxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKClcbiAgICBpZiAocmVxTWV0aG9kID09PSAncG9zdCcpIHtcbiAgICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pXG4gICAgICB9KVxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdrZXknLCBuYW1lKVxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSlcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIGRhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgIG1ldGhvZDogcmVxTWV0aG9kLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlc3RyaWN0ZWRNZXRob2RzLmluY2x1ZGVzKCd1cGxvYWQnKSxcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgICAgYm9keTogZmlsZSxcbiAgICAgIH0sXG4gICAgICB0aGlzLnJlc3RyaWN0ZWRNZXRob2RzLmluY2x1ZGVzKCd1cGxvYWQnKSxcbiAgICApXG4gIH1cbiAgcHVibGljIGFzeW5jIGRvd25sb2FkKG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5nZXQoe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBoZWFkZXJzOiB7fSwgLy8g5LiL6L296LWE5rqQ6K+35rGC5LiN57uP6L+Hc2VydmljZe+8jGhlYWRlcua4heepulxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbZGF0YV0pKVxuICAgICAgY29uc3QgZmlsZU5hbWUgPSBkZWNvZGVVUklDb21wb25lbnQobmV3IFVSTChvcHRpb25zLnVybCkucGF0aG5hbWUuc3BsaXQoJy8nKS5wb3AoKSB8fCAnJylcbiAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcblxuICAgICAgbGluay5ocmVmID0gdXJsXG4gICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSlcbiAgICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXG4gICAgICBsaW5rLmNsaWNrKClcbiAgICAgIC8vIOWbnuaUtuWGheWtmFxuICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKVxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKVxuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgc3RhdHVzQ29kZTogMjAwLFxuICAgICAgICB0ZW1wRmlsZVBhdGg6IG9wdGlvbnMudXJsLFxuICAgICAgfSlcbiAgICB9KVxuICB9XG4gIGFzeW5jIGZldGNoKG9wdGlvbnM6IElGZXRjaE9wdGlvbnMgJiB7IHNob3VsZFRocm93T25FcnJvcj86IGJvb2xlYW4gfSk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgICBjb25zdCB7IHVybCwgZW5hYmxlQWJvcnQgPSBmYWxzZSwgc3RyZWFtID0gZmFsc2UsIHNpZ25hbCwgdGltZW91dDogX3RpbWVvdXQsIHNob3VsZFRocm93T25FcnJvciA9IHRydWUgfSA9IG9wdGlvbnNcblxuICAgIGNvbnN0IHRpbWVvdXQgPSBfdGltZW91dCA/PyB0aGlzLnRpbWVvdXRcblxuICAgIGlmIChzaWduYWwpIHtcbiAgICAgIGlmIChzaWduYWwuYWJvcnRlZCkgYWJvcnRDb250cm9sbGVyLmFib3J0KClcbiAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpID0+IGFib3J0Q29udHJvbGxlci5hYm9ydCgpKVxuICAgIH1cblxuICAgIGxldCB0aW1lciA9IG51bGxcbiAgICBpZiAoZW5hYmxlQWJvcnQgJiYgdGltZW91dCkge1xuICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKHRoaXMudGltZW91dE1zZylcbiAgICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KG5ldyBFcnJvcih0aGlzLnRpbWVvdXRNc2cpKVxuICAgICAgfSwgdGltZW91dClcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSlcbiAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpXG4gICAgICAgIGlmIChzaG91bGRUaHJvd09uRXJyb3IpIHtcbiAgICAgICAgICAvLyA0MDQg562J562J5Lmf5Lya6L+bIHJlc29sdmXvvIzmiYDku6XopoHlho3pgJrov4cgb2sg5Yik5patXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm9rID8gcmVzcG9uc2UgOiBQcm9taXNlLnJlamVjdChhd2FpdCByZXNwb25zZS5qc29uKCkpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlXG4gICAgICB9KVxuICAgICAgLmNhdGNoKCh4KSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcilcbiAgICAgICAgaWYgKHNob3VsZFRocm93T25FcnJvcikge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh4KVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICAgICAgZGF0YTogc3RyZWFtID8gcmVzLmJvZHkgOiByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpPy5pbmNsdWRlcygnYXBwbGljYXRpb24vanNvbicpID8gcmVzLmpzb24oKSA6IHJlcy50ZXh0KCksXG4gICAgICBzdGF0dXNDb2RlOiByZXMuc3RhdHVzLFxuICAgICAgaGVhZGVyOiByZXMuaGVhZGVycyxcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RPcHRpb25zfSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlQWJvcnQg5piv5ZCm6LaF5pe25Lit5pat6K+35rGCXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWVzdChvcHRpb25zOiBJUmVxdWVzdE9wdGlvbnMsIGVuYWJsZUFib3J0ID0gZmFsc2UpOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgY29uc3QgbWV0aG9kID0gU3RyaW5nKG9wdGlvbnMubWV0aG9kKS50b0xvd2VyQ2FzZSgpIHx8ICdnZXQnXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCB7IHVybCwgaGVhZGVycyA9IHt9LCBkYXRhLCByZXNwb25zZVR5cGUsIHdpdGhDcmVkZW50aWFscywgYm9keSwgb25VcGxvYWRQcm9ncmVzcyB9ID0gb3B0aW9uc1xuICAgICAgY29uc3QgcmVhbFVybCA9IGZvcm1hdFVybChnZXRQcm90b2NvbCgpLCB1cmwsIG1ldGhvZCA9PT0gJ2dldCcgPyBkYXRhIDoge30pXG4gICAgICBjb25zdCBhamF4ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KClcbiAgICAgIGFqYXgub3BlbihtZXRob2QsIHJlYWxVcmwpXG4gICAgICByZXNwb25zZVR5cGUgJiYgKGFqYXgucmVzcG9uc2VUeXBlID0gcmVzcG9uc2VUeXBlKVxuICAgICAgT2JqZWN0LmtleXMoaGVhZGVycykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGFqYXguc2V0UmVxdWVzdEhlYWRlcihrZXksIGhlYWRlcnNba2V5XSlcbiAgICAgIH0pXG4gICAgICBsZXQgdGltZXJcbiAgICAgIGlmIChvblVwbG9hZFByb2dyZXNzKSB7XG4gICAgICAgIGFqYXgudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgb25VcGxvYWRQcm9ncmVzcylcbiAgICAgIH1cbiAgICAgIGFqYXgub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFJlc3BvbnNlT2JqZWN0ID0ge31cbiAgICAgICAgaWYgKGFqYXgucmVhZHlTdGF0ZSA9PT0gNCkge1xuICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBhamF4LmdldEFsbFJlc3BvbnNlSGVhZGVycygpXG4gICAgICAgICAgY29uc3QgYXJyID0gaGVhZGVycy50cmltKCkuc3BsaXQoL1tcXHJcXG5dKy8pXG4gICAgICAgICAgLy8gQ3JlYXRlIGEgbWFwIG9mIGhlYWRlciBuYW1lcyB0byB2YWx1ZXNcbiAgICAgICAgICBjb25zdCBoZWFkZXJNYXAgPSB7fVxuICAgICAgICAgIGFyci5mb3JFYWNoKChsaW5lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IGxpbmUuc3BsaXQoJzogJylcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHBhcnRzLnNoaWZ0KCkudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJ0cy5qb2luKCc6ICcpXG4gICAgICAgICAgICBoZWFkZXJNYXBbaGVhZGVyXSA9IHZhbHVlXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXN1bHQuaGVhZGVyID0gaGVhZGVyTWFwXG4gICAgICAgICAgcmVzdWx0LnN0YXR1c0NvZGUgPSBhamF4LnN0YXR1c1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyDkuIrkvKBwb3N06K+35rGC6L+U5Zue5pWw5o2u5qC85byP5Li6eG1s77yM5q2k5aSE5a656ZSZXG4gICAgICAgICAgICByZXN1bHQuZGF0YSA9IHJlc3BvbnNlVHlwZSA9PT0gJ2Jsb2InID8gYWpheC5yZXNwb25zZSA6IEpTT04ucGFyc2UoYWpheC5yZXNwb25zZVRleHQpXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVzdWx0LmRhdGEgPSByZXNwb25zZVR5cGUgPT09ICdibG9iJyA/IGFqYXgucmVzcG9uc2UgOiBhamF4LnJlc3BvbnNlVGV4dFxuICAgICAgICAgIH1cbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlbmFibGVBYm9ydCAmJiB0aGlzLnRpbWVvdXQpIHtcbiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLndhcm4odGhpcy50aW1lb3V0TXNnKVxuICAgICAgICAgIGFqYXguYWJvcnQoKVxuICAgICAgICB9LCB0aGlzLnRpbWVvdXQpXG4gICAgICB9XG4gICAgICAvLyDlpITnkIYgcGF5bG9hZFxuICAgICAgbGV0IHBheWxvYWRcbiAgICAgIGlmIChpc0Zvcm1EYXRhKGRhdGEpKSB7XG4gICAgICAgIC8vIEZvcm1EYXRh77yM5LiN5aSE55CGXG4gICAgICAgIHBheWxvYWQgPSBkYXRhXG4gICAgICB9IGVsc2UgaWYgKGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykge1xuICAgICAgICBwYXlsb2FkID0gdG9RdWVyeVN0cmluZyhkYXRhKVxuICAgICAgfSBlbHNlIGlmIChib2R5KSB7XG4gICAgICAgIHBheWxvYWQgPSBib2R5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyDlhbblroPmg4XlhrVcbiAgICAgICAgcGF5bG9hZCA9IGRhdGEgPyBKU09OLnN0cmluZ2lmeShkYXRhKSA6IHVuZGVmaW5lZFxuICAgICAgfVxuXG4gICAgICBpZiAod2l0aENyZWRlbnRpYWxzKSB7XG4gICAgICAgIGFqYXgud2l0aENyZWRlbnRpYWxzID0gdHJ1ZVxuICAgICAgfVxuICAgICAgYWpheC5zZW5kKHBheWxvYWQpXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBnZW5BZGFwdGVyKCkge1xuICBjb25zdCBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlICYgeyB0eXBlPzogJ2RlZmF1bHQnIHwgJycgfSA9IHtcbiAgICB0eXBlOiAnZGVmYXVsdCcsXG4gICAgcm9vdDogd2luZG93LFxuICAgIHJlcUNsYXNzOiBXZWJSZXF1ZXN0LFxuICAgIHdzQ2xhc3M6IFdlYlNvY2tldCxcbiAgICBsb2NhbFN0b3JhZ2UsXG4gIH1cbiAgcmV0dXJuIGFkYXB0ZXJcbn1cblxuZXhwb3J0IHsgZ2VuQWRhcHRlciwgV2ViUmVxdWVzdCB9XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  export declare function setSdkName(name: string): void;
2
2
  export declare function getSdkName(): string;
3
- export declare function setProtocol(protocol: 'http' | 'https'): void;
3
+ export declare function setProtocol(protocol: 'http:' | 'https:'): void;
4
4
  export declare function getProtocol(): string;
5
5
  export declare const IS_DEBUG_MODE: boolean;
6
6
  export declare const COMMUNITY_SITE_URL = "https://support.qq.com/products/148793";
@@ -19,6 +19,6 @@ function getProtocol() {
19
19
  return PROTOCOL;
20
20
  }
21
21
  exports.getProtocol = getProtocol;
22
- exports.IS_DEBUG_MODE = process.env.NODE_ENV === 'development';
22
+ exports.IS_DEBUG_MODE = typeof process === 'undefined' || typeof process.env === 'undefined' ? false : process.env.NODE_ENV === 'development';
23
23
  exports.COMMUNITY_SITE_URL = 'https://support.qq.com/products/148793';
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxPQUFPLEdBQUcsbUJBQW1CLENBQUE7QUFDakMsU0FBZ0IsVUFBVSxDQUFDLElBQVk7SUFDckMsT0FBTyxHQUFHLElBQUksQ0FBQTtBQUNoQixDQUFDO0FBRkQsZ0NBRUM7QUFDRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFGRCxnQ0FFQztBQUVELElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQTtBQUV2QixTQUFnQixXQUFXLENBQUMsUUFBMEI7SUFDcEQsUUFBUSxHQUFHLFFBQVEsQ0FBQTtBQUNyQixDQUFDO0FBRkQsa0NBRUM7QUFFRCxTQUFnQixXQUFXO0lBQ3pCLE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUM7QUFGRCxrQ0FFQztBQUVZLFFBQUEsYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLGFBQWEsQ0FBQTtBQUV0RCxRQUFBLGtCQUFrQixHQUFHLHdDQUF3QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHNka05hbWUgPSAnQGNsb3VkYmFzZS9qcy1zZGsnXG5leHBvcnQgZnVuY3Rpb24gc2V0U2RrTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgc2RrTmFtZSA9IG5hbWVcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZGtOYW1lKCkge1xuICByZXR1cm4gc2RrTmFtZVxufVxuXG5sZXQgUFJPVE9DT0wgPSAnaHR0cHM6J1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UHJvdG9jb2wocHJvdG9jb2w6ICdodHRwJyB8ICdodHRwcycpIHtcbiAgUFJPVE9DT0wgPSBwcm90b2NvbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvdG9jb2woKSB7XG4gIHJldHVybiBQUk9UT0NPTFxufVxuLy8g5piv5ZCm5Li65byA5Y+R5qih5byPXG5leHBvcnQgY29uc3QgSVNfREVCVUdfTU9ERSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnXG4vLyDpl67nrZTnpL7ljLrpk77mjqVcbmV4cG9ydCBjb25zdCBDT01NVU5JVFlfU0lURV9VUkwgPSAnaHR0cHM6Ly9zdXBwb3J0LnFxLmNvbS9wcm9kdWN0cy8xNDg3OTMnXG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxPQUFPLEdBQUcsbUJBQW1CLENBQUE7QUFDakMsU0FBZ0IsVUFBVSxDQUFDLElBQVk7SUFDckMsT0FBTyxHQUFHLElBQUksQ0FBQTtBQUNoQixDQUFDO0FBRkQsZ0NBRUM7QUFDRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFGRCxnQ0FFQztBQUVELElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQTtBQUV2QixTQUFnQixXQUFXLENBQUMsUUFBNEI7SUFDdEQsUUFBUSxHQUFHLFFBQVEsQ0FBQTtBQUNyQixDQUFDO0FBRkQsa0NBRUM7QUFFRCxTQUFnQixXQUFXO0lBQ3pCLE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUM7QUFGRCxrQ0FFQztBQUVZLFFBQUEsYUFBYSxHQUFHLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLGFBQWEsQ0FBQTtBQUVySSxRQUFBLGtCQUFrQixHQUFHLHdDQUF3QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHNka05hbWUgPSAnQGNsb3VkYmFzZS9qcy1zZGsnXG5leHBvcnQgZnVuY3Rpb24gc2V0U2RrTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgc2RrTmFtZSA9IG5hbWVcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZGtOYW1lKCkge1xuICByZXR1cm4gc2RrTmFtZVxufVxuXG5sZXQgUFJPVE9DT0wgPSAnaHR0cHM6J1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UHJvdG9jb2wocHJvdG9jb2w6ICdodHRwOicgfCAnaHR0cHM6Jykge1xuICBQUk9UT0NPTCA9IHByb3RvY29sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm90b2NvbCgpIHtcbiAgcmV0dXJuIFBST1RPQ09MXG59XG4vLyDmmK/lkKbkuLrlvIDlj5HmqKHlvI9cbmV4cG9ydCBjb25zdCBJU19ERUJVR19NT0RFID0gdHlwZW9mIHByb2Nlc3MgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBwcm9jZXNzLmVudiA9PT0gJ3VuZGVmaW5lZCcgPyBmYWxzZSA6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnXG4vLyDpl67nrZTnpL7ljLrpk77mjqVcbmV4cG9ydCBjb25zdCBDT01NVU5JVFlfU0lURV9VUkwgPSAnaHR0cHM6Ly9zdXBwb3J0LnFxLmNvbS9wcm9kdWN0cy8xNDg3OTMnXG4iXX0=
@@ -22,4 +22,4 @@ var AbortController = (function () {
22
22
  return AbortController;
23
23
  }());
24
24
  exports.default = AbortController;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvcnRDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYnMvYWJvcnRDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7SUFVRTtRQUFBLGlCQUFnQjtRQVRoQixjQUFTLEdBQTRCLEVBQUUsQ0FBQTtRQUN2QyxXQUFNLEdBQUc7WUFDUCxPQUFPLEVBQUUsS0FBSztZQUNkLGdCQUFnQixFQUFFLFVBQUMsQ0FBUyxFQUFFLENBQW1CO2dCQUMvQyxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQUU7b0JBQ2pCLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUN2QjtZQUNILENBQUM7U0FDRixDQUFBO0lBQ2MsQ0FBQztJQUVoQiwrQkFBSyxHQUFMO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBRS9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsRUFBRSxFQUFILENBQUcsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFsQkQsSUFrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBBYm9ydENvbnRyb2xsZXIge1xuICBsaXN0ZW5lcnM6IEFycmF5PENhbGxhYmxlRnVuY3Rpb24+ID0gW11cbiAgc2lnbmFsID0ge1xuICAgIGFib3J0ZWQ6IGZhbHNlLFxuICAgIGFkZEV2ZW50TGlzdGVuZXI6IChlOiBzdHJpbmcsIGY6IENhbGxhYmxlRnVuY3Rpb24pID0+IHtcbiAgICAgIGlmIChlID09PSAnYWJvcnQnKSB7XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2goZilcbiAgICAgIH1cbiAgICB9LFxuICB9XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBhYm9ydCgpIHtcbiAgICBpZiAodGhpcy5zaWduYWwuYWJvcnRlZCkgcmV0dXJuXG5cbiAgICB0aGlzLnNpZ25hbC5hYm9ydGVkID0gdHJ1ZVxuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goZiA9PiBmKCkpXG4gIH1cbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvcnRDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYnMvYWJvcnRDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7SUFXRTtRQUFBLGlCQUFnQjtRQVZoQixjQUFTLEdBQTRCLEVBQUUsQ0FBQTtRQUN2QyxXQUFNLEdBQUc7WUFDUCxPQUFPLEVBQUUsS0FBSztZQUNkLGdCQUFnQixFQUFFLFVBQUMsQ0FBUyxFQUFFLENBQW1CO2dCQUMvQyxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQUU7b0JBQ2pCLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUN2QjtZQUNILENBQUM7U0FDRixDQUFBO0lBRWMsQ0FBQztJQUVoQiwrQkFBSyxHQUFMO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBRS9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsRUFBRSxFQUFILENBQUcsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFuQkQsSUFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBBYm9ydENvbnRyb2xsZXIge1xuICBsaXN0ZW5lcnM6IEFycmF5PENhbGxhYmxlRnVuY3Rpb24+ID0gW11cbiAgc2lnbmFsID0ge1xuICAgIGFib3J0ZWQ6IGZhbHNlLFxuICAgIGFkZEV2ZW50TGlzdGVuZXI6IChlOiBzdHJpbmcsIGY6IENhbGxhYmxlRnVuY3Rpb24pID0+IHtcbiAgICAgIGlmIChlID09PSAnYWJvcnQnKSB7XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2goZilcbiAgICAgIH1cbiAgICB9LFxuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlbGVzcy1jb25zdHJ1Y3RvclxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgYWJvcnQoKSB7XG4gICAgaWYgKHRoaXMuc2lnbmFsLmFib3J0ZWQpIHJldHVyblxuXG4gICAgdGhpcy5zaWduYWwuYWJvcnRlZCA9IHRydWVcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKGYgPT4gZigpKVxuICB9XG59XG4iXX0=
@@ -33,4 +33,17 @@ export declare function printGroupLog(options: IPrintGroupLogOptions): void;
33
33
  export declare const sleep: (ms?: number) => Promise<unknown>;
34
34
  export declare function transformPhone(phoneNumber: string): string;
35
35
  export declare const parseQueryString: (queryString: any) => {};
36
+ export declare function parseCaptcha(url: any): {
37
+ error: string;
38
+ error_description: string;
39
+ state?: undefined;
40
+ token?: undefined;
41
+ captchaData?: undefined;
42
+ } | {
43
+ state: any;
44
+ token: any;
45
+ captchaData: any;
46
+ error?: undefined;
47
+ error_description?: undefined;
48
+ };
36
49
  export {};
@@ -1,6 +1,17 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseQueryString = exports.transformPhone = exports.sleep = exports.printGroupLog = exports.throwError = exports.printInfo = exports.printError = exports.printWarn = exports.execCallback = exports.createPromiseCallback = exports.removeParam = exports.getHash = exports.getQuery = exports.toQueryString = exports.formatUrl = exports.generateRequestId = exports.genSeqId = exports.isFormData = exports.isInstanceOf = exports.isNull = exports.isPalinObject = exports.isUndefined = exports.isString = exports.isArray = void 0;
14
+ exports.parseCaptcha = exports.parseQueryString = exports.transformPhone = exports.sleep = exports.printGroupLog = exports.throwError = exports.printInfo = exports.printError = exports.printWarn = exports.execCallback = exports.createPromiseCallback = exports.removeParam = exports.getHash = exports.getQuery = exports.toQueryString = exports.formatUrl = exports.generateRequestId = exports.genSeqId = exports.isFormData = exports.isInstanceOf = exports.isNull = exports.isPalinObject = exports.isUndefined = exports.isString = exports.isArray = void 0;
4
15
  var constants_1 = require("../constants");
5
16
  function isArray(val) {
6
17
  return Object.prototype.toString.call(val) === '[object Array]';
@@ -37,7 +48,7 @@ function genSeqId() {
37
48
  exports.genSeqId = genSeqId;
38
49
  function generateRequestId() {
39
50
  var d = new Date().getTime();
40
- var d2 = ((Date === null || Date === void 0 ? void 0 : Date.now) && (Date.now() * 1000)) || 0;
51
+ var d2 = ((Date === null || Date === void 0 ? void 0 : Date.now) && Date.now() * 1000) || 0;
41
52
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
42
53
  var r = Math.random() * 16;
43
54
  if (d > 0) {
@@ -48,7 +59,7 @@ function generateRequestId() {
48
59
  r = (d2 + r) % 16 | 0;
49
60
  d2 = Math.floor(d2 / 16);
50
61
  }
51
- return (c === 'x' ? r : ((r & 0x7) | 0x8)).toString(16);
62
+ return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16);
52
63
  });
53
64
  }
54
65
  exports.generateRequestId = generateRequestId;
@@ -85,10 +96,10 @@ function getQuery(name, url) {
85
96
  if (typeof window === 'undefined') {
86
97
  return false;
87
98
  }
88
- var u = url || window.location.search;
99
+ var u = url || decodeURIComponent(window.location.search);
89
100
  var reg = new RegExp("(^|&)".concat(name, "=([^&]*)(&|$)"));
90
101
  var r = u.substr(u.indexOf('?') + 1).match(reg);
91
- return (r !== null && r !== undefined) ? r[2] : '';
102
+ return r !== null && r !== undefined ? r[2] : '';
92
103
  }
93
104
  exports.getQuery = getQuery;
94
105
  var getHash = function (name) {
@@ -118,7 +129,7 @@ function removeParam(key, sourceURL) {
118
129
  }
119
130
  exports.removeParam = removeParam;
120
131
  function createPromiseCallback() {
121
- var cb;
132
+ var cb = {};
122
133
  if (!Promise) {
123
134
  cb = function () { };
124
135
  cb.promise = {};
@@ -238,4 +249,34 @@ var parseQueryString = function (queryString) {
238
249
  return params;
239
250
  };
240
251
  exports.parseQueryString = parseQueryString;
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMENBQXlDO0FBRXpDLFNBQWdCLE9BQU8sQ0FBQyxHQUFRO0lBQzlCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGdCQUFnQixDQUFBO0FBQ2pFLENBQUM7QUFGRCwwQkFFQztBQUNELFNBQWdCLFFBQVEsQ0FBQyxHQUFRO0lBQy9CLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFBO0FBQ2hDLENBQUM7QUFGRCw0QkFFQztBQUNELFNBQWdCLFdBQVcsQ0FBQyxHQUFRO0lBQ2xDLE9BQU8sT0FBTyxHQUFHLEtBQUssV0FBVyxDQUFBO0FBQ25DLENBQUM7QUFGRCxrQ0FFQztBQUNELFNBQWdCLGFBQWEsQ0FBQyxHQUFRO0lBQ3BDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGlCQUFpQixDQUFBO0FBQ2xFLENBQUM7QUFGRCxzQ0FFQztBQUNELFNBQWdCLE1BQU0sQ0FBQyxHQUFRO0lBQzdCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGVBQWUsQ0FBQTtBQUNoRSxDQUFDO0FBRkQsd0JBRUM7QUFDRCxTQUFnQixZQUFZLENBQUMsUUFBYSxFQUFFLFNBQWM7SUFDeEQsT0FBTyxRQUFRLFlBQVksU0FBUyxDQUFBO0FBQ3RDLENBQUM7QUFGRCxvQ0FFQztBQUNELFNBQWdCLFVBQVUsQ0FBQyxHQUFRO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLG1CQUFtQixDQUFBO0FBQ3BFLENBQUM7QUFGRCxnQ0FFQztBQUNELFNBQWdCLFFBQVE7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SUFBTSxnQkFBZ0IsR0FBRyxVQUFDLFdBQVc7SUFDMUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzVDLElBQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUNqQixJQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRXBDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBQyxJQUFJO1FBQ2IsSUFBQSxLQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQTdCLEdBQUcsUUFBQSxFQUFFLEtBQUssUUFBbUIsQ0FBQTtRQUNsQyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDN0IsS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pDLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2YsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUM5QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO2lCQUN4QjtxQkFBTTtvQkFDTCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUE7aUJBQ25DO2FBQ0Y7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTthQUNwQjtTQUNGO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQXZCWSxRQUFBLGdCQUFnQixvQkF1QjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS1YgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0U2RrTmFtZSB9IGZyb20gJy4uL2NvbnN0YW50cydcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBBcnJheV0nXG59XG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnXG59XG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICd1bmRlZmluZWQnXG59XG5leHBvcnQgZnVuY3Rpb24gaXNQYWxpbk9iamVjdCh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IE9iamVjdF0nXG59XG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsKHZhbDogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgTnVsbF0nXG59XG5leHBvcnQgZnVuY3Rpb24gaXNJbnN0YW5jZU9mKGluc3RhbmNlOiBhbnksIGNvbnN0cnVjdDogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBpbnN0YW5jZSBpbnN0YW5jZW9mIGNvbnN0cnVjdFxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybURhdGEodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBGb3JtRGF0YV0nXG59XG5leHBvcnQgZnVuY3Rpb24gZ2VuU2VxSWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMTYpXG4gICAgLnNsaWNlKDIpXG59XG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZXF1ZXN0SWQoKSB7XG4gIGxldCBkID0gbmV3IERhdGUoKS5nZXRUaW1lKClcbiAgbGV0IGQyID0gKERhdGU/Lm5vdyAmJiAoRGF0ZS5ub3coKSAqIDEwMDApKSB8fCAwXG4gIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIChjKSA9PiB7XG4gICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTZcbiAgICBpZiAoZCA+IDApIHtcbiAgICAgIHIgPSAoZCArIHIpICUgMTYgfCAwXG4gICAgICBkID0gTWF0aC5mbG9vcihkIC8gMTYpXG4gICAgfSBlbHNlIHtcbiAgICAgIHIgPSAoZDIgKyByKSAlIDE2IHwgMFxuICAgICAgZDIgPSBNYXRoLmZsb29yKGQyIC8gMTYpXG4gICAgfVxuICAgIHJldHVybiAoYyA9PT0gJ3gnID8gciA6ICgociAmIDB4NykgfCAweDgpKS50b1N0cmluZygxNilcbiAgfSlcbn1cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRVcmwoUFJPVE9DT0w6IHN0cmluZywgdXJsOiBzdHJpbmcsIHF1ZXJ5OiBLVjxhbnk+ID0ge30pOiBzdHJpbmcge1xuICBjb25zdCB1cmxIYXNRdWVyeSA9IC9cXD8vLnRlc3QodXJsKVxuICBsZXQgcXVlcnlTdHJpbmcgPSAnJ1xuICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaWYgKHF1ZXJ5U3RyaW5nID09PSAnJykge1xuICAgICAgIXVybEhhc1F1ZXJ5ICYmICh1cmwgKz0gJz8nKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeVN0cmluZyArPSAnJidcbiAgICB9XG4gICAgcXVlcnlTdHJpbmcgKz0gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudChxdWVyeVtrZXldKX1gXG4gIH0pXG4gIHVybCArPSBxdWVyeVN0cmluZ1xuICBpZiAoL15odHRwKHMpPzpcXC9cXC8vLnRlc3QodXJsKSkge1xuICAgIHJldHVybiB1cmxcbiAgfVxuICByZXR1cm4gYCR7UFJPVE9DT0x9JHt1cmx9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9RdWVyeVN0cmluZyhxdWVyeTogS1Y8YW55PiA9IHt9KSB7XG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gW11cbiAgT2JqZWN0LmtleXMocXVlcnkpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIHF1ZXJ5U3RyaW5nLnB1c2goYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudChxdWVyeVtrZXldKX1gKVxuICB9KVxuICByZXR1cm4gcXVlcnlTdHJpbmcuam9pbignJicpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyeShuYW1lOiBzdHJpbmcsIHVybD86IHN0cmluZykge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICAvLyDlj4LmlbDvvJrlj5jph4/lkI3vvIx1cmzkuLrnqbrliJnooajku47lvZPliY3pobXpnaLnmoR1cmzkuK3lj5ZcbiAgY29uc3QgdSA9IHVybCB8fCB3aW5kb3cubG9jYXRpb24uc2VhcmNoXG4gIGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYChefCYpJHtuYW1lfT0oW14mXSopKCZ8JClgKVxuICBjb25zdCByID0gdS5zdWJzdHIodS5pbmRleE9mKCc/JykgKyAxKS5tYXRjaChyZWcpXG4gIHJldHVybiAociAhPT0gbnVsbCAmJiByICE9PSB1bmRlZmluZWQpID8gclsyXSA6ICcnXG59XG5cbmV4cG9ydCBjb25zdCBnZXRIYXNoID0gZnVuY3Rpb24gKG5hbWU6IHN0cmluZykge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gd2luZG93LmxvY2F0aW9uLmhhc2gubWF0Y2gobmV3IFJlZ0V4cChgWyM/Ji9dJHtuYW1lfT0oW14mI10qKWApKVxuICByZXR1cm4gbWF0Y2hlcyA/IG1hdGNoZXNbMV0gOiAnJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGFyYW0oa2V5OiBzdHJpbmcsIHNvdXJjZVVSTDogc3RyaW5nKSB7XG4gIGxldCBydG4gPSBzb3VyY2VVUkwuc3BsaXQoJz8nKVswXVxuICBsZXQgcGFyYW1cbiAgbGV0IHBhcmFtcyA9IFtdXG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gc291cmNlVVJMLmluZGV4T2YoJz8nKSAhPT0gLTEgPyBzb3VyY2VVUkwuc3BsaXQoJz8nKVsxXSA6ICcnXG4gIGlmIChxdWVyeVN0cmluZyAhPT0gJycpIHtcbiAgICBwYXJhbXMgPSBxdWVyeVN0cmluZy5zcGxpdCgnJicpXG4gICAgZm9yIChsZXQgaSA9IHBhcmFtcy5sZW5ndGggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICBwYXJhbSA9IHBhcmFtc1tpXS5zcGxpdCgnPScpWzBdXG4gICAgICBpZiAocGFyYW0gPT09IGtleSkge1xuICAgICAgICBwYXJhbXMuc3BsaWNlKGksIDEpXG4gICAgICB9XG4gICAgfVxuICAgIHJ0biA9IGAke3J0bn0/JHtwYXJhbXMuam9pbignJicpfWBcbiAgfVxuICByZXR1cm4gcnRuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9taXNlQ2FsbGJhY2soKSB7XG4gIGxldCBjYjogYW55XG4gIGlmICghUHJvbWlzZSkge1xuICAgIGNiID0gKCkgPT4geyB9XG4gICAgY2IucHJvbWlzZSA9IHt9XG5cbiAgICBjb25zdCB0aHJvd1Byb21pc2VOb3REZWZpbmVkID0gKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3VyIE5vZGUgcnVudGltZSBkb2VzIHN1cHBvcnQgRVM2IFByb21pc2VzLiAnXG4gICAgICAgICsgJ1NldCBcImdsb2JhbC5Qcm9taXNlXCIgdG8geW91ciBwcmVmZXJyZWQgaW1wbGVtZW50YXRpb24gb2YgcHJvbWlzZXMuJylcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2IucHJvbWlzZSwgJ3RoZW4nLCB7IGdldDogdGhyb3dQcm9taXNlTm90RGVmaW5lZCB9KVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjYi5wcm9taXNlLCAnY2F0Y2gnLCB7IGdldDogdGhyb3dQcm9taXNlTm90RGVmaW5lZCB9KVxuICAgIHJldHVybiBjYlxuICB9XG5cbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjYiA9IChlcnIsIGRhdGEpID0+IHtcbiAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKVxuICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YSlcbiAgICB9XG4gIH0pXG4gIGNiLnByb21pc2UgPSBwcm9taXNlXG4gIHJldHVybiBjYlxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhlY0NhbGxiYWNrKGZuOiBGdW5jdGlvbiB8IG51bGwgfCB1bmRlZmluZWQsIGVycjogYW55LCBkYXRhID0gbnVsbCkge1xuICBpZiAoZm4gJiYgdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGZuKGVyciwgZGF0YSlcbiAgfVxuICBpZiAoZXJyKSB7XG4gICAgdGhyb3cgZXJyXG4gIH1cbiAgcmV0dXJuIGRhdGFcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW50V2FybihlcnJvcjogc3RyaW5nLCBtc2c6IHN0cmluZykge1xuICBjb25zb2xlLndhcm4oYFske2dldFNka05hbWUoKX1dWyR7ZXJyb3J9XToke21zZ31gKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRFcnJvcihlcnJvcjogc3RyaW5nLCBtc2c6IHN0cmluZykge1xuICBjb25zb2xlLmVycm9yKHtcbiAgICBjb2RlOiBlcnJvcixcbiAgICBtc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVske2Vycm9yfV06JHttc2d9YCxcbiAgfSlcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcmludEluZm8oZXJyb3I6IHN0cmluZywgbXNnOiBzdHJpbmcpIHtcbiAgY29uc29sZS5sb2coYFske2dldFNka05hbWUoKX1dWyR7ZXJyb3J9XToke21zZ31gKVxufVxuZXhwb3J0IGZ1bmN0aW9uIHRocm93RXJyb3IoZXJyb3I6IHN0cmluZywgbXNnOiBzdHJpbmcpIHtcbiAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICBjb2RlOiBlcnJvcixcbiAgICBtc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVske2Vycm9yfV06JHttc2d9YCxcbiAgfSkpXG59XG5cbmludGVyZmFjZSBJUHJpbnRHcm91cExvZ09wdGlvbnMge1xuICB0aXRsZTogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nIHwgb2JqZWN0O1xuICBjb250ZW50OiB7XG4gICAgdHlwZTogJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJyxcbiAgICBib2R5OiBzdHJpbmcgfCBFcnJvcjtcbiAgfVtdO1xuICBwcmludFRyYWNlPzogYm9vbGVhbjtcbiAgY29sbGFwc2VkPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcmludEdyb3VwTG9nKG9wdGlvbnM6IElQcmludEdyb3VwTG9nT3B0aW9ucykge1xuICBjb25zdCB7IHRpdGxlLCBzdWJ0aXRsZSA9ICcnLCBjb250ZW50ID0gW10sIHByaW50VHJhY2UgPSBmYWxzZSwgY29sbGFwc2VkID0gZmFsc2UgfSA9IG9wdGlvbnNcbiAgaWYgKGNvbGxhcHNlZCkge1xuICAgIChjb25zb2xlLmdyb3VwQ29sbGFwc2VkIHx8IGNvbnNvbGUuZXJyb3IpKHRpdGxlLCBzdWJ0aXRsZSlcbiAgfSBlbHNlIHtcbiAgICAoY29uc29sZS5ncm91cCB8fCBjb25zb2xlLmVycm9yKSh0aXRsZSwgc3VidGl0bGUpXG4gIH1cbiAgZm9yIChjb25zdCB0aXAgb2YgY29udGVudCkge1xuICAgIGNvbnN0IHsgdHlwZSwgYm9keSB9ID0gdGlwXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgY29uc29sZS5sb2coYm9keSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3dhcm4nOlxuICAgICAgICBjb25zb2xlLndhcm4oYm9keSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgY29uc29sZS5lcnJvcihib2R5KVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuICBpZiAocHJpbnRUcmFjZSkge1xuICAgIChjb25zb2xlLnRyYWNlIHx8IGNvbnNvbGUubG9nKSgnc3RhY2sgdHJhY2U6JylcbiAgfVxuICBjb25zb2xlLmdyb3VwRW5kPy4oKVxufVxuXG5leHBvcnQgY29uc3Qgc2xlZXAgPSAobXMgPSAwKSA9PiBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgbXMpKVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUGhvbmUocGhvbmVOdW1iZXI6IHN0cmluZykge1xuICByZXR1cm4gYCs4NiR7cGhvbmVOdW1iZXJ9YFxufVxuXG5cbmV4cG9ydCBjb25zdCBwYXJzZVF1ZXJ5U3RyaW5nID0gKHF1ZXJ5U3RyaW5nKSA9PiB7XG4gIHF1ZXJ5U3RyaW5nID0gcXVlcnlTdHJpbmcucmVwbGFjZSgvXlxcPy8sICcnKVxuICBjb25zdCBwYXJhbXMgPSB7fVxuICBjb25zdCBwYWlycyA9IHF1ZXJ5U3RyaW5nLnNwbGl0KCcmJylcblxuICBwYWlycy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgbGV0IFtrZXksIHZhbHVlXSA9IGl0ZW0uc3BsaXQoJz0nKVxuICAgIGtleSA9IGRlY29kZVVSSUNvbXBvbmVudChrZXkpXG4gICAgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpXG4gICAgaWYgKGtleSkge1xuICAgICAgaWYgKHBhcmFtc1trZXldKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtc1trZXldKSkge1xuICAgICAgICAgIHBhcmFtc1trZXldLnB1c2godmFsdWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFyYW1zW2tleV0gPSBbcGFyYW1zW2tleV0sIHZhbHVlXVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJhbXNba2V5XSA9IHZhbHVlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBwYXJhbXNcbn1cbiJdfQ==
252
+ function parseCaptcha(url) {
253
+ var queryObj = {};
254
+ var matched = url.match(/^(data:.*?)(\?[^#\s]*)?$/);
255
+ if (matched) {
256
+ url = matched[1];
257
+ var search = matched[2];
258
+ if (search) {
259
+ queryObj = (0, exports.parseQueryString)(search);
260
+ }
261
+ }
262
+ var token = queryObj.token, restQueryObj = __rest(queryObj, ["token"]);
263
+ if (/^data:/.test(url) && !token) {
264
+ return {
265
+ error: 'invalid_argument',
266
+ error_description: "invalid captcha data: ".concat(url),
267
+ };
268
+ }
269
+ if (!token) {
270
+ return {
271
+ error: 'unimplemented',
272
+ error_description: 'need to impl captcha data',
273
+ };
274
+ }
275
+ return {
276
+ state: restQueryObj.state,
277
+ token: token,
278
+ captchaData: url,
279
+ };
280
+ }
281
+ exports.parseCaptcha = parseCaptcha;
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSwwQ0FBeUM7QUFFekMsU0FBZ0IsT0FBTyxDQUFDLEdBQVE7SUFDOUIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssZ0JBQWdCLENBQUE7QUFDakUsQ0FBQztBQUZELDBCQUVDO0FBQ0QsU0FBZ0IsUUFBUSxDQUFDLEdBQVE7SUFDL0IsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUE7QUFDaEMsQ0FBQztBQUZELDRCQUVDO0FBQ0QsU0FBZ0IsV0FBVyxDQUFDLEdBQVE7SUFDbEMsT0FBTyxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUE7QUFDbkMsQ0FBQztBQUZELGtDQUVDO0FBQ0QsU0FBZ0IsYUFBYSxDQUFDLEdBQVE7SUFDcEMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssaUJBQWlCLENBQUE7QUFDbEUsQ0FBQztBQUZELHNDQUVDO0FBQ0QsU0FBZ0IsTUFBTSxDQUFDLEdBQVE7SUFDN0IsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssZUFBZSxDQUFBO0FBQ2hFLENBQUM7QUFGRCx3QkFFQztBQUNELFNBQWdCLFlBQVksQ0FBQyxRQUFhLEVBQUUsU0FBYztJQUN4RCxPQUFPLFFBQVEsWUFBWSxTQUFTLENBQUE7QUFDdEMsQ0FBQztBQUZELG9DQUVDO0FBQ0QsU0FBZ0IsVUFBVSxDQUFDLEdBQVE7SUFDakMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssbUJBQW1CLENBQUE7QUFDcEUsQ0FBQztBQUZELGdDQUVDO0FBQ0Qs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MEJBQTBCLENBQUMsQ0FBQTtJQUNyRCxJQUFJLE9BQU8sRUFBRTtRQUVYLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDaEIsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3pCLElBQUksTUFBTSxFQUFFO1lBQ1YsUUFBUSxHQUFHLElBQUEsd0JBQWdCLEVBQUMsTUFBTSxDQUFDLENBQUE7U0FDcEM7S0FDRjtJQUNPLElBQUEsS0FBSyxHQUFzQixRQUFRLE1BQTlCLEVBQUssWUFBWSxVQUFLLFFBQVEsRUFBckMsU0FBMEIsQ0FBRixDQUFhO0lBQzNDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNoQyxPQUFPO1lBQ0wsS0FBSyxFQUFFLGtCQUFrQjtZQUN6QixpQkFBaUIsRUFBRSxnQ0FBeUIsR0FBRyxDQUFFO1NBQ2xELENBQUE7S0FDRjtJQUNELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPO1lBQ0wsS0FBSyxFQUFFLGVBQWU7WUFDdEIsaUJBQWlCLEVBQUUsMkJBQTJCO1NBQy9DLENBQUE7S0FDRjtJQUVELE9BQU87UUFDTCxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7UUFDekIsS0FBSyxPQUFBO1FBQ0wsV0FBVyxFQUFFLEdBQUc7S0FDakIsQ0FBQTtBQUNILENBQUM7QUE5QkQsb0NBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS1YgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0U2RrTmFtZSB9IGZyb20gJy4uL2NvbnN0YW50cydcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBBcnJheV0nXG59XG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnXG59XG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICd1bmRlZmluZWQnXG59XG5leHBvcnQgZnVuY3Rpb24gaXNQYWxpbk9iamVjdCh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IE9iamVjdF0nXG59XG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsKHZhbDogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgTnVsbF0nXG59XG5leHBvcnQgZnVuY3Rpb24gaXNJbnN0YW5jZU9mKGluc3RhbmNlOiBhbnksIGNvbnN0cnVjdDogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBpbnN0YW5jZSBpbnN0YW5jZW9mIGNvbnN0cnVjdFxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybURhdGEodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBGb3JtRGF0YV0nXG59XG5leHBvcnQgZnVuY3Rpb24gZ2VuU2VxSWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMTYpXG4gICAgLnNsaWNlKDIpXG59XG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZXF1ZXN0SWQoKSB7XG4gIGxldCBkID0gbmV3IERhdGUoKS5nZXRUaW1lKClcbiAgbGV0IGQyID0gKERhdGU/Lm5vdyAmJiBEYXRlLm5vdygpICogMTAwMCkgfHwgMFxuICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCAoYykgPT4ge1xuICAgIGxldCByID0gTWF0aC5yYW5kb20oKSAqIDE2XG4gICAgaWYgKGQgPiAwKSB7XG4gICAgICByID0gKGQgKyByKSAlIDE2IHwgMFxuICAgICAgZCA9IE1hdGguZmxvb3IoZCAvIDE2KVxuICAgIH0gZWxzZSB7XG4gICAgICByID0gKGQyICsgcikgJSAxNiB8IDBcbiAgICAgIGQyID0gTWF0aC5mbG9vcihkMiAvIDE2KVxuICAgIH1cbiAgICByZXR1cm4gKGMgPT09ICd4JyA/IHIgOiAociAmIDB4NykgfCAweDgpLnRvU3RyaW5nKDE2KVxuICB9KVxufVxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFVybChQUk9UT0NPTDogc3RyaW5nLCB1cmw6IHN0cmluZywgcXVlcnk6IEtWPGFueT4gPSB7fSk6IHN0cmluZyB7XG4gIGNvbnN0IHVybEhhc1F1ZXJ5ID0gL1xcPy8udGVzdCh1cmwpXG4gIGxldCBxdWVyeVN0cmluZyA9ICcnXG4gIE9iamVjdC5rZXlzKHF1ZXJ5KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAocXVlcnlTdHJpbmcgPT09ICcnKSB7XG4gICAgICAhdXJsSGFzUXVlcnkgJiYgKHVybCArPSAnPycpXG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9ICcmJ1xuICAgIH1cbiAgICBxdWVyeVN0cmluZyArPSBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5W2tleV0pfWBcbiAgfSlcbiAgdXJsICs9IHF1ZXJ5U3RyaW5nXG4gIGlmICgvXmh0dHAocyk/OlxcL1xcLy8udGVzdCh1cmwpKSB7XG4gICAgcmV0dXJuIHVybFxuICB9XG4gIHJldHVybiBgJHtQUk9UT0NPTH0ke3VybH1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1F1ZXJ5U3RyaW5nKHF1ZXJ5OiBLVjxhbnk+ID0ge30pIHtcbiAgY29uc3QgcXVlcnlTdHJpbmcgPSBbXVxuICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgcXVlcnlTdHJpbmcucHVzaChgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5W2tleV0pfWApXG4gIH0pXG4gIHJldHVybiBxdWVyeVN0cmluZy5qb2luKCcmJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJ5KG5hbWU6IHN0cmluZywgdXJsPzogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIC8vIOWPguaVsO+8muWPmOmHj+WQje+8jHVybOS4uuepuuWImeihqOS7juW9k+WJjemhtemdoueahHVybOS4reWPllxuICBjb25zdCB1ID0gdXJsIHx8IGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uc2VhcmNoKVxuICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKGAoXnwmKSR7bmFtZX09KFteJl0qKSgmfCQpYClcbiAgY29uc3QgciA9IHUuc3Vic3RyKHUuaW5kZXhPZignPycpICsgMSkubWF0Y2gocmVnKVxuICByZXR1cm4gciAhPT0gbnVsbCAmJiByICE9PSB1bmRlZmluZWQgPyByWzJdIDogJydcbn1cblxuZXhwb3J0IGNvbnN0IGdldEhhc2ggPSBmdW5jdGlvbiAobmFtZTogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiAnJ1xuICB9XG4gIGNvbnN0IG1hdGNoZXMgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5tYXRjaChuZXcgUmVnRXhwKGBbIz8mL10ke25hbWV9PShbXiYjXSopYCkpXG4gIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlc1sxXSA6ICcnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQYXJhbShrZXk6IHN0cmluZywgc291cmNlVVJMOiBzdHJpbmcpIHtcbiAgbGV0IHJ0biA9IHNvdXJjZVVSTC5zcGxpdCgnPycpWzBdXG4gIGxldCBwYXJhbVxuICBsZXQgcGFyYW1zID0gW11cbiAgY29uc3QgcXVlcnlTdHJpbmcgPSBzb3VyY2VVUkwuaW5kZXhPZignPycpICE9PSAtMSA/IHNvdXJjZVVSTC5zcGxpdCgnPycpWzFdIDogJydcbiAgaWYgKHF1ZXJ5U3RyaW5nICE9PSAnJykge1xuICAgIHBhcmFtcyA9IHF1ZXJ5U3RyaW5nLnNwbGl0KCcmJylcbiAgICBmb3IgKGxldCBpID0gcGFyYW1zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgIHBhcmFtID0gcGFyYW1zW2ldLnNwbGl0KCc9JylbMF1cbiAgICAgIGlmIChwYXJhbSA9PT0ga2V5KSB7XG4gICAgICAgIHBhcmFtcy5zcGxpY2UoaSwgMSlcbiAgICAgIH1cbiAgICB9XG4gICAgcnRuID0gYCR7cnRufT8ke3BhcmFtcy5qb2luKCcmJyl9YFxuICB9XG4gIHJldHVybiBydG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VDYWxsYmFjaygpIHtcbiAgbGV0IGNiOiBhbnkgPSB7fVxuICBpZiAoIVByb21pc2UpIHtcbiAgICBjYiA9ICgpID0+IHt9XG4gICAgY2IucHJvbWlzZSA9IHt9XG5cbiAgICBjb25zdCB0aHJvd1Byb21pc2VOb3REZWZpbmVkID0gKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3VyIE5vZGUgcnVudGltZSBkb2VzIHN1cHBvcnQgRVM2IFByb21pc2VzLiAnXG4gICAgICAgICAgKyAnU2V0IFwiZ2xvYmFsLlByb21pc2VcIiB0byB5b3VyIHByZWZlcnJlZCBpbXBsZW1lbnRhdGlvbiBvZiBwcm9taXNlcy4nLClcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2IucHJvbWlzZSwgJ3RoZW4nLCB7IGdldDogdGhyb3dQcm9taXNlTm90RGVmaW5lZCB9KVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjYi5wcm9taXNlLCAnY2F0Y2gnLCB7IGdldDogdGhyb3dQcm9taXNlTm90RGVmaW5lZCB9KVxuICAgIHJldHVybiBjYlxuICB9XG5cbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjYiA9IChlcnIsIGRhdGEpID0+IHtcbiAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKVxuICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YSlcbiAgICB9XG4gIH0pXG4gIGNiLnByb21pc2UgPSBwcm9taXNlXG4gIHJldHVybiBjYlxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhlY0NhbGxiYWNrKGZuOiBGdW5jdGlvbiB8IG51bGwgfCB1bmRlZmluZWQsIGVycjogYW55LCBkYXRhID0gbnVsbCkge1xuICBpZiAoZm4gJiYgdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGZuKGVyciwgZGF0YSlcbiAgfVxuICBpZiAoZXJyKSB7XG4gICAgdGhyb3cgZXJyXG4gIH1cbiAgcmV0dXJuIGRhdGFcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW50V2FybihlcnJvcjogc3RyaW5nLCBtc2c6IHN0cmluZykge1xuICBjb25zb2xlLndhcm4oYFske2dldFNka05hbWUoKX1dWyR7ZXJyb3J9XToke21zZ31gKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRFcnJvcihlcnJvcjogc3RyaW5nLCBtc2c6IHN0cmluZykge1xuICBjb25zb2xlLmVycm9yKHtcbiAgICBjb2RlOiBlcnJvcixcbiAgICBtc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVske2Vycm9yfV06JHttc2d9YCxcbiAgfSlcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcmludEluZm8oZXJyb3I6IHN0cmluZywgbXNnOiBzdHJpbmcpIHtcbiAgY29uc29sZS5sb2coYFske2dldFNka05hbWUoKX1dWyR7ZXJyb3J9XToke21zZ31gKVxufVxuZXhwb3J0IGZ1bmN0aW9uIHRocm93RXJyb3IoZXJyb3I6IHN0cmluZywgbXNnOiBzdHJpbmcpIHtcbiAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICBjb2RlOiBlcnJvcixcbiAgICBtc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVske2Vycm9yfV06JHttc2d9YCxcbiAgfSksKVxufVxuXG5pbnRlcmZhY2UgSVByaW50R3JvdXBMb2dPcHRpb25zIHtcbiAgdGl0bGU6IHN0cmluZ1xuICBzdWJ0aXRsZTogc3RyaW5nIHwgb2JqZWN0XG4gIGNvbnRlbnQ6IHtcbiAgICB0eXBlOiAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InXG4gICAgYm9keTogc3RyaW5nIHwgRXJyb3JcbiAgfVtdXG4gIHByaW50VHJhY2U/OiBib29sZWFuXG4gIGNvbGxhcHNlZD86IGJvb2xlYW5cbn1cbmV4cG9ydCBmdW5jdGlvbiBwcmludEdyb3VwTG9nKG9wdGlvbnM6IElQcmludEdyb3VwTG9nT3B0aW9ucykge1xuICBjb25zdCB7IHRpdGxlLCBzdWJ0aXRsZSA9ICcnLCBjb250ZW50ID0gW10sIHByaW50VHJhY2UgPSBmYWxzZSwgY29sbGFwc2VkID0gZmFsc2UgfSA9IG9wdGlvbnNcbiAgaWYgKGNvbGxhcHNlZCkge1xuICAgIChjb25zb2xlLmdyb3VwQ29sbGFwc2VkIHx8IGNvbnNvbGUuZXJyb3IpKHRpdGxlLCBzdWJ0aXRsZSlcbiAgfSBlbHNlIHtcbiAgICAoY29uc29sZS5ncm91cCB8fCBjb25zb2xlLmVycm9yKSh0aXRsZSwgc3VidGl0bGUpXG4gIH1cbiAgZm9yIChjb25zdCB0aXAgb2YgY29udGVudCkge1xuICAgIGNvbnN0IHsgdHlwZSwgYm9keSB9ID0gdGlwXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgY29uc29sZS5sb2coYm9keSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3dhcm4nOlxuICAgICAgICBjb25zb2xlLndhcm4oYm9keSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgY29uc29sZS5lcnJvcihib2R5KVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuICBpZiAocHJpbnRUcmFjZSkge1xuICAgIChjb25zb2xlLnRyYWNlIHx8IGNvbnNvbGUubG9nKSgnc3RhY2sgdHJhY2U6JylcbiAgfVxuICBjb25zb2xlLmdyb3VwRW5kPy4oKVxufVxuXG5leHBvcnQgY29uc3Qgc2xlZXAgPSAobXMgPSAwKSA9PiBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgbXMpKVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUGhvbmUocGhvbmVOdW1iZXI6IHN0cmluZykge1xuICByZXR1cm4gYCs4NiR7cGhvbmVOdW1iZXJ9YFxufVxuXG5leHBvcnQgY29uc3QgcGFyc2VRdWVyeVN0cmluZyA9IChxdWVyeVN0cmluZykgPT4ge1xuICBxdWVyeVN0cmluZyA9IHF1ZXJ5U3RyaW5nLnJlcGxhY2UoL15cXD8vLCAnJylcbiAgY29uc3QgcGFyYW1zID0ge31cbiAgY29uc3QgcGFpcnMgPSBxdWVyeVN0cmluZy5zcGxpdCgnJicpXG5cbiAgcGFpcnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIGxldCBba2V5LCB2YWx1ZV0gPSBpdGVtLnNwbGl0KCc9JylcbiAgICBrZXkgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5KVxuICAgIHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKVxuICAgIGlmIChrZXkpIHtcbiAgICAgIGlmIChwYXJhbXNba2V5XSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbXNba2V5XSkpIHtcbiAgICAgICAgICBwYXJhbXNba2V5XS5wdXNoKHZhbHVlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcmFtc1trZXldID0gW3BhcmFtc1trZXldLCB2YWx1ZV1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gcGFyYW1zXG59XG5cbi8vIOino+aekFVSTOWPguaVsFxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2FwdGNoYSh1cmwpIHtcbiAgbGV0IHF1ZXJ5T2JqOiBhbnkgPSB7fVxuICBjb25zdCBtYXRjaGVkID0gdXJsLm1hdGNoKC9eKGRhdGE6Lio/KShcXD9bXiNcXHNdKik/JC8pXG4gIGlmIChtYXRjaGVkKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1kZXN0cnVjdHVyaW5nXG4gICAgdXJsID0gbWF0Y2hlZFsxXVxuICAgIGNvbnN0IHNlYXJjaCA9IG1hdGNoZWRbMl1cbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICBxdWVyeU9iaiA9IHBhcnNlUXVlcnlTdHJpbmcoc2VhcmNoKVxuICAgIH1cbiAgfVxuICBjb25zdCB7IHRva2VuLCAuLi5yZXN0UXVlcnlPYmogfSA9IHF1ZXJ5T2JqXG4gIGlmICgvXmRhdGE6Ly50ZXN0KHVybCkgJiYgIXRva2VuKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiAnaW52YWxpZF9hcmd1bWVudCcsXG4gICAgICBlcnJvcl9kZXNjcmlwdGlvbjogYGludmFsaWQgY2FwdGNoYSBkYXRhOiAke3VybH1gLFxuICAgIH1cbiAgfVxuICBpZiAoIXRva2VuKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiAndW5pbXBsZW1lbnRlZCcsXG4gICAgICBlcnJvcl9kZXNjcmlwdGlvbjogJ25lZWQgdG8gaW1wbCBjYXB0Y2hhIGRhdGEnLFxuICAgIH1cbiAgfVxuICAvLyDop6PmnpB1cmzlvpfliLDnmoTlj4LmlbBcbiAgcmV0dXJuIHtcbiAgICBzdGF0ZTogcmVzdFF1ZXJ5T2JqLnN0YXRlLFxuICAgIHRva2VuLCAvLyDpqozor4HnoIF0b2tlblxuICAgIGNhcHRjaGFEYXRhOiB1cmwsIC8vIOmqjOivgeeggWJhc2U2NOWbvueJh1xuICB9XG59XG4iXX0=
@@ -4,7 +4,7 @@ export declare enum RUNTIME {
4
4
  WX_MP = "wx_mp"
5
5
  }
6
6
  type ICloudbaseAdapter = CloudbaseAdapter & {
7
- genAdapter: (options: any) => SDKAdapterInterface | NodeAdapterInterface;
7
+ genAdapter: (options?: any) => SDKAdapterInterface | NodeAdapterInterface;
8
8
  };
9
9
  export declare function useAdapters(adapters: ICloudbaseAdapter | ICloudbaseAdapter[], options?: any): {
10
10
  adapter: {
@@ -27,7 +27,17 @@ export declare function useAdapters(adapters: ICloudbaseAdapter | ICloudbaseAdap
27
27
  runtime: string;
28
28
  };
29
29
  export declare function useDefaultAdapter(): {
30
- adapter: SDKAdapterInterface & {
30
+ adapter: {
31
+ root: any;
32
+ wsClass: import("@cloudbase/adapter-interface").WebSocketContructor;
33
+ reqClass: import("@cloudbase/adapter-interface").SDKRequestConstructor;
34
+ localStorage?: import("@cloudbase/adapter-interface").StorageInterface;
35
+ sessionStorage?: import("@cloudbase/adapter-interface").StorageInterface;
36
+ primaryStorage?: import("@cloudbase/adapter-interface").StorageType;
37
+ captchaOptions?: {
38
+ openURIWithCallback?: (url: string) => Promise<import("@cloudbase/adapter-interface").CaptchaToken>;
39
+ };
40
+ getAppSign?(): string;
31
41
  type?: "" | "default";
32
42
  };
33
43
  runtime: RUNTIME;
@@ -33,8 +33,8 @@ export function useAdapters(adapters, options) {
33
33
  }
34
34
  export function useDefaultAdapter() {
35
35
  return {
36
- adapter: Web.genAdapter(),
36
+ adapter: __assign({}, Web.genAdapter()),
37
37
  runtime: RUNTIME.WEB,
38
38
  };
39
39
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEtBQUssR0FBRyxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFdEMsTUFBTSxDQUFOLElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNqQixzQkFBVyxDQUFBO0lBQ1gsMEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsT0FBTyxLQUFQLE9BQU8sUUFHbEI7QUFNRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFFBQWlELEVBQUUsT0FBYTtJQUMxRixJQUFNLFdBQVcsR0FBd0IsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN4RCxDQUFDLENBQUUsUUFBZ0M7UUFDbkMsQ0FBQyxDQUFDLENBQUMsUUFBNkIsQ0FBQyxDQUFBO0lBQ25DLEtBQXNCLFVBQVcsRUFBWCwyQkFBVyxFQUFYLHlCQUFXLEVBQVgsSUFBVyxFQUFFO1FBQTlCLElBQU0sT0FBTyxvQkFBQTtRQUNSLElBQUEsT0FBTyxHQUEwQixPQUFPLFFBQWpDLEVBQUUsVUFBVSxHQUFjLE9BQU8sV0FBckIsRUFBRSxPQUFPLEdBQUssT0FBTyxRQUFaLENBQVk7UUFDaEQsSUFBSSxPQUFPLEVBQUUsRUFBRTtZQUNiLE9BQU87Z0JBQ0wsT0FBTyxhQUFJLE9BQU8sU0FBQSxJQUFLLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBRTtnQkFDNUMsT0FBTyxTQUFBO2FBQ1IsQ0FBQTtTQUNGO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPO1FBQ0wsT0FBTyxFQUFFLEdBQUcsQ0FBQyxVQUFVLEVBQUU7UUFDekIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHO0tBQ3JCLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRiYXNlQWRhcHRlciwgU0RLQWRhcHRlckludGVyZmFjZSwgTm9kZUFkYXB0ZXJJbnRlcmZhY2UgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0ICogYXMgV2ViIGZyb20gJy4vcGxhdGZvcm1zL3dlYidcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICcuLi9saWJzL3V0aWwnXG5cbmV4cG9ydCBlbnVtIFJVTlRJTUUge1xuICBXRUIgPSAnd2ViJyxcbiAgV1hfTVAgPSAnd3hfbXAnLCAvLyDlvq7kv6HlsI/nqIvluo9cbn1cblxudHlwZSBJQ2xvdWRiYXNlQWRhcHRlciA9IENsb3VkYmFzZUFkYXB0ZXIgJiB7XG4gIGdlbkFkYXB0ZXI6IChvcHRpb25zOiBhbnkpID0+IFNES0FkYXB0ZXJJbnRlcmZhY2UgfCBOb2RlQWRhcHRlckludGVyZmFjZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQWRhcHRlcnMoYWRhcHRlcnM6IElDbG91ZGJhc2VBZGFwdGVyIHwgSUNsb3VkYmFzZUFkYXB0ZXJbXSwgb3B0aW9ucz86IGFueSkge1xuICBjb25zdCBhZGFwdGVyTGlzdDogSUNsb3VkYmFzZUFkYXB0ZXJbXSA9IGlzQXJyYXkoYWRhcHRlcnMpXG4gICAgPyAoYWRhcHRlcnMgYXMgSUNsb3VkYmFzZUFkYXB0ZXJbXSlcbiAgICA6IFthZGFwdGVycyBhcyBJQ2xvdWRiYXNlQWRhcHRlcl1cbiAgZm9yIChjb25zdCBhZGFwdGVyIG9mIGFkYXB0ZXJMaXN0KSB7XG4gICAgY29uc3QgeyBpc01hdGNoLCBnZW5BZGFwdGVyLCBydW50aW1lIH0gPSBhZGFwdGVyXG4gICAgaWYgKGlzTWF0Y2goKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRhcHRlcjogeyBpc01hdGNoLCAuLi5nZW5BZGFwdGVyKG9wdGlvbnMpIH0sXG4gICAgICAgIHJ1bnRpbWUsXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VEZWZhdWx0QWRhcHRlcigpIHtcbiAgcmV0dXJuIHtcbiAgICBhZGFwdGVyOiBXZWIuZ2VuQWRhcHRlcigpLFxuICAgIHJ1bnRpbWU6IFJVTlRJTUUuV0VCLFxuICB9XG59XG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEtBQUssR0FBRyxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFdEMsTUFBTSxDQUFOLElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNqQixzQkFBVyxDQUFBO0lBQ1gsMEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsT0FBTyxLQUFQLE9BQU8sUUFHbEI7QUFNRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFFBQWlELEVBQUUsT0FBYTtJQUMxRixJQUFNLFdBQVcsR0FBd0IsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN4RCxDQUFDLENBQUUsUUFBZ0M7UUFDbkMsQ0FBQyxDQUFDLENBQUMsUUFBNkIsQ0FBQyxDQUFBO0lBQ25DLEtBQXNCLFVBQVcsRUFBWCwyQkFBVyxFQUFYLHlCQUFXLEVBQVgsSUFBVyxFQUFFO1FBQTlCLElBQU0sT0FBTyxvQkFBQTtRQUNSLElBQUEsT0FBTyxHQUEwQixPQUFPLFFBQWpDLEVBQUUsVUFBVSxHQUFjLE9BQU8sV0FBckIsRUFBRSxPQUFPLEdBQUssT0FBTyxRQUFaLENBQVk7UUFDaEQsSUFBSSxPQUFPLEVBQUUsRUFBRTtZQUNiLE9BQU87Z0JBQ0wsT0FBTyxhQUFJLE9BQU8sU0FBQSxJQUFLLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBRTtnQkFDNUMsT0FBTyxTQUFBO2FBQ1IsQ0FBQTtTQUNGO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPO1FBQ0wsT0FBTyxlQUFPLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBRTtRQUNoQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUc7S0FDckIsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZGJhc2VBZGFwdGVyLCBTREtBZGFwdGVySW50ZXJmYWNlLCBOb2RlQWRhcHRlckludGVyZmFjZSB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci1pbnRlcmZhY2UnXG5pbXBvcnQgKiBhcyBXZWIgZnJvbSAnLi9wbGF0Zm9ybXMvd2ViJ1xuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uL2xpYnMvdXRpbCdcblxuZXhwb3J0IGVudW0gUlVOVElNRSB7XG4gIFdFQiA9ICd3ZWInLFxuICBXWF9NUCA9ICd3eF9tcCcsIC8vIOW+ruS/oeWwj+eoi+W6j1xufVxuXG50eXBlIElDbG91ZGJhc2VBZGFwdGVyID0gQ2xvdWRiYXNlQWRhcHRlciAmIHtcbiAgZ2VuQWRhcHRlcjogKG9wdGlvbnM/OiBhbnkpID0+IFNES0FkYXB0ZXJJbnRlcmZhY2UgfCBOb2RlQWRhcHRlckludGVyZmFjZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQWRhcHRlcnMoYWRhcHRlcnM6IElDbG91ZGJhc2VBZGFwdGVyIHwgSUNsb3VkYmFzZUFkYXB0ZXJbXSwgb3B0aW9ucz86IGFueSkge1xuICBjb25zdCBhZGFwdGVyTGlzdDogSUNsb3VkYmFzZUFkYXB0ZXJbXSA9IGlzQXJyYXkoYWRhcHRlcnMpXG4gICAgPyAoYWRhcHRlcnMgYXMgSUNsb3VkYmFzZUFkYXB0ZXJbXSlcbiAgICA6IFthZGFwdGVycyBhcyBJQ2xvdWRiYXNlQWRhcHRlcl1cbiAgZm9yIChjb25zdCBhZGFwdGVyIG9mIGFkYXB0ZXJMaXN0KSB7XG4gICAgY29uc3QgeyBpc01hdGNoLCBnZW5BZGFwdGVyLCBydW50aW1lIH0gPSBhZGFwdGVyXG4gICAgaWYgKGlzTWF0Y2goKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRhcHRlcjogeyBpc01hdGNoLCAuLi5nZW5BZGFwdGVyKG9wdGlvbnMpIH0sXG4gICAgICAgIHJ1bnRpbWUsXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VEZWZhdWx0QWRhcHRlcigpIHtcbiAgcmV0dXJuIHtcbiAgICBhZGFwdGVyOiB7IC4uLldlYi5nZW5BZGFwdGVyKCkgfSxcbiAgICBydW50aW1lOiBSVU5USU1FLldFQixcbiAgfVxufVxuIl19
@@ -9,7 +9,9 @@ declare class WebRequest extends AbstractSDKRequest {
9
9
  put(options: IRequestOptions): Promise<ResponseObject>;
10
10
  upload(options: IUploadRequestOptions): Promise<ResponseObject>;
11
11
  download(options: IRequestOptions): Promise<any>;
12
- fetch(options: IFetchOptions): Promise<ResponseObject>;
12
+ fetch(options: IFetchOptions & {
13
+ shouldThrowOnError?: boolean;
14
+ }): Promise<ResponseObject>;
13
15
  protected request(options: IRequestOptions, enableAbort?: boolean): Promise<ResponseObject>;
14
16
  }
15
17
  declare function genAdapter(): SDKAdapterInterface & {