@cloudbase/app 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.
@@ -1,5 +1,63 @@
1
- import { ICloudbase } from '@cloudbase/types';
1
+ import { CloudbaseAdapter } from '@cloudbase/adapter-interface';
2
+ import { ICloudbaseConfig, ICloudbaseUpgradedConfig, ICloudbase, ICloudbaseExtension, ICloudbasePlatformInfo, EndPointKey, ICloudbaseApis } from '@cloudbase/types';
3
+ import { ICloudbaseAuth } from '@cloudbase/types/auth';
4
+ import { ICloudbaseComponent, ICloudbaseHook } from '@cloudbase/types/component';
5
+ import { ICloudbaseCache } from '@cloudbase/types/cache';
6
+ import { ICloudbaseRequest } from '@cloudbase/types/request';
7
+ import { type ISetEndPointWithKey } from './constants/common';
8
+ import { LANGS } from './libs/lang';
2
9
  export { getBaseEndPoint } from './constants/common';
3
10
  export { LANGS } from './libs/lang';
11
+ declare class Cloudbase implements ICloudbase {
12
+ authInstance: ICloudbaseAuth;
13
+ oauthInstance: any;
14
+ requestClient: any;
15
+ oauthClient: any;
16
+ version: string;
17
+ auth: ICloudbase['auth'] & ICloudbaseAuth;
18
+ apis: ICloudbaseApis;
19
+ private cloudbaseConfig;
20
+ constructor(config?: ICloudbaseConfig);
21
+ get config(): ICloudbaseConfig;
22
+ get platform(): ICloudbasePlatformInfo;
23
+ get cache(): ICloudbaseCache;
24
+ get localCache(): ICloudbaseCache;
25
+ get request(): ICloudbaseRequest;
26
+ init(config: ICloudbaseConfig & {
27
+ lang?: LANGS;
28
+ }): Cloudbase;
29
+ updateConfig(config: ICloudbaseUpgradedConfig): void;
30
+ updateLang(lang: LANGS): void;
31
+ registerExtension(ext: ICloudbaseExtension): void;
32
+ invokeExtension(name: string, opts: any): any;
33
+ useAdapters(adapters: CloudbaseAdapter | CloudbaseAdapter[], options?: any): void;
34
+ registerHook(hook: ICloudbaseHook): void;
35
+ registerComponent(component: ICloudbaseComponent): void;
36
+ registerVersion(version: string): void;
37
+ registerSdkName(name: string): void;
38
+ registerEndPoint(url: string, protocol?: 'http' | 'https'): void;
39
+ registerEndPointWithKey(props: ISetEndPointWithKey): void;
40
+ getEndPointWithKey(key: EndPointKey): {
41
+ BASE_URL: string;
42
+ PROTOCOL: "http" | "https" | "http:" | "https:";
43
+ };
44
+ parseCaptcha(url: any): {
45
+ error: string;
46
+ error_description: string;
47
+ state?: undefined;
48
+ token?: undefined;
49
+ captchaData?: undefined;
50
+ } | {
51
+ state: any;
52
+ token: any;
53
+ captchaData: any;
54
+ error?: undefined;
55
+ error_description?: undefined;
56
+ };
57
+ private useDefaultAdapter;
58
+ private formatTimeout;
59
+ private try2InitAuth;
60
+ }
61
+ export type { Cloudbase };
4
62
  export declare const cloudbase: ICloudbase;
5
63
  export default cloudbase;
package/dist/esm/index.js CHANGED
@@ -54,26 +54,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
54
54
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
55
55
  }
56
56
  };
57
- var __rest = (this && this.__rest) || function (s, e) {
58
- var t = {};
59
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
60
- t[p] = s[p];
61
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
62
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
63
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
64
- t[p[i]] = s[p[i]];
65
- }
66
- return t;
67
- };
68
57
  import { adapters, constants, utils, helpers } from '@cloudbase/utilities';
69
- import adapterForWxMp from '@cloudbase/adapter-wx_mp';
70
58
  import { registerComponent, registerHook } from './libs/component';
71
- import { Platform } from './libs/adapter';
59
+ import { getWxDefaultAdapter, Platform } from './libs/adapter';
72
60
  import { initCache, getCacheByEnvId, getLocalCache } from './libs/cache';
73
61
  import { initRequest, getRequestByEnvId } from './libs/request';
74
- import { getSdkName, setSdkVersion, setRegionLevelEndpoint, setSdkName, setGatewayEndPointWithEnv, setEndPointInfo, getEndPointInfo, getSdkVersion, } from './constants/common';
62
+ import { getSdkName, setSdkVersion, setRegionLevelEndpoint, setSdkName, setGatewayEndPointWithEnv, setEndPointInfo, getEndPointInfo, getSdkVersion, DEFAULT_PROTOCOL, } from './constants/common';
75
63
  import { i18nProxy } from './libs/lang';
76
- import { generateApis } from './libs/callApis';
77
64
  export { getBaseEndPoint } from './constants/common';
78
65
  export { LANGS } from './libs/lang';
79
66
  var useAdapters = adapters.useAdapters, useDefaultAdapter = adapters.useDefaultAdapter;
@@ -129,13 +116,6 @@ var Cloudbase = (function () {
129
116
  enumerable: false,
130
117
  configurable: true
131
118
  });
132
- Object.defineProperty(Cloudbase.prototype, "apis", {
133
- get: function () {
134
- return generateApis.call(this);
135
- },
136
- enumerable: false,
137
- configurable: true
138
- });
139
119
  Cloudbase.prototype.init = function (config) {
140
120
  var _a;
141
121
  if (!config.env) {
@@ -144,6 +124,7 @@ var Cloudbase = (function () {
144
124
  msg: 'env must not be specified',
145
125
  }));
146
126
  }
127
+ config.endPointMode = config.endPointMode || 'GATEWAY';
147
128
  if (!Platform.adapter) {
148
129
  this.useDefaultAdapter();
149
130
  }
@@ -158,11 +139,20 @@ var Cloudbase = (function () {
158
139
  var _b = this.cloudbaseConfig, env = _b.env, persistence = _b.persistence, debug = _b.debug, timeout = _b.timeout, oauthClient = _b.oauthClient, i18n = _b.i18n;
159
140
  initCache({ env: env, persistence: persistence, debug: debug, platformInfo: this.platform });
160
141
  setRegionLevelEndpoint(env, config.region || '');
161
- setGatewayEndPointWithEnv(env);
142
+ setGatewayEndPointWithEnv(env, DEFAULT_PROTOCOL, config.region || '');
162
143
  var app = new Cloudbase(this.cloudbaseConfig);
163
- initRequest({ env: env, region: config.region || '', timeout: timeout, oauthClient: oauthClient, _fromApp: app, i18n: i18n });
144
+ initRequest({
145
+ env: env,
146
+ region: config.region || '',
147
+ timeout: timeout,
148
+ oauthClient: oauthClient,
149
+ _fromApp: app,
150
+ i18n: i18n,
151
+ endPointMode: config.endPointMode,
152
+ });
164
153
  app.requestClient = this.requestClient;
165
154
  (_a = this === null || this === void 0 ? void 0 : this.fire) === null || _a === void 0 ? void 0 : _a.call(this, 'cloudbase_init', app);
155
+ this.try2InitAuth(app);
166
156
  return app;
167
157
  };
168
158
  Cloudbase.prototype.updateConfig = function (config) {
@@ -236,36 +226,10 @@ var Cloudbase = (function () {
236
226
  };
237
227
  };
238
228
  Cloudbase.prototype.parseCaptcha = function (url) {
239
- var queryObj = {};
240
- var matched = url.match(/^(data:.*?)(\?[^#\s]*)?$/);
241
- if (matched) {
242
- url = matched[1];
243
- var search = matched[2];
244
- if (search) {
245
- queryObj = utils.parseQueryString(search);
246
- }
247
- }
248
- var token = queryObj.token, restQueryObj = __rest(queryObj, ["token"]);
249
- if (/^data:/.test(url) && !token) {
250
- return {
251
- error: 'invalid_argument',
252
- error_description: "invalid captcha data: ".concat(url),
253
- };
254
- }
255
- if (!token) {
256
- return {
257
- error: 'unimplemented',
258
- error_description: 'need to impl captcha data',
259
- };
260
- }
261
- return {
262
- state: restQueryObj.state,
263
- token: token,
264
- captchaData: url,
265
- };
229
+ return utils.parseCaptcha(url);
266
230
  };
267
231
  Cloudbase.prototype.useDefaultAdapter = function () {
268
- var _a = useDefaultAdapter(), adapter = _a.adapter, runtime = _a.runtime;
232
+ var _a = useDefaultAdapter.bind(this)(), adapter = _a.adapter, runtime = _a.runtime;
269
233
  Platform.adapter = adapter;
270
234
  Platform.runtime = runtime;
271
235
  };
@@ -281,6 +245,14 @@ var Cloudbase = (function () {
281
245
  return timeout;
282
246
  }
283
247
  };
248
+ Cloudbase.prototype.try2InitAuth = function (app) {
249
+ try {
250
+ app.auth();
251
+ }
252
+ catch (error) {
253
+ console.log('try2InitAuth error:', error);
254
+ }
255
+ };
284
256
  __decorate([
285
257
  catchErrorsDecorator({
286
258
  mode: 'sync',
@@ -313,6 +285,6 @@ var Cloudbase = (function () {
313
285
  return Cloudbase;
314
286
  }());
315
287
  export var cloudbase = new Cloudbase();
316
- cloudbase.useAdapters(adapterForWxMp);
288
+ cloudbase.useAdapters(getWxDefaultAdapter());
317
289
  export default cloudbase;
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQVcxRSxPQUFPLGNBQWMsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBR3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0QsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVix5QkFBeUIsRUFHekIsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEdBQ2QsTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFTLE1BQU0sYUFBYSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0IsSUFBQSxXQUFXLEdBQXdCLFFBQVEsWUFBaEMsRUFBRSxpQkFBaUIsR0FBSyxRQUFRLGtCQUFiLENBQWE7QUFDM0MsSUFBQSxNQUFNLEdBQXlCLFNBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxTQUFTLG1C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UUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFpQixDQUFBO0lBQ3RDLENBQUM7SUFFTyxpQ0FBYSxHQUFyQixVQUFzQixPQUFlO1FBQ25DLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxPQUFPLEdBQUcsV0FBVztnQkFDeEIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsOENBQThDLENBQUMsQ0FBQTtnQkFDaEYsT0FBTyxXQUFXLENBQUE7WUFDcEIsS0FBSyxPQUFPLEdBQUcsV0FBVztnQkFDeEIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsMkNBQTJDLENBQUMsQ0FBQTtnQkFDN0UsT0FBTyxXQUFXLENBQUE7WUFDcEI7Z0JBQ0UsT0FBTyxPQUFPLENBQUE7U0FDakI7SUFDSCxDQUFDO0lBbExNO1FBVk4sb0JBQW9CLENBQUM7WUFDcEIsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixVQUFVO2dCQUNWLHNDQUFzQztnQkFDdEMsbUxBQW1MO2dCQUNuTCxzS0FBNkIsa0JBQWtCLENBQUU7YUFDbEQ7U0FDRixDQUFDOzs7d0NBQ3dELFNBQVM7eUNBMENsRTtJQTRCWTtRQVRaLG9CQUFvQixDQUFDO1lBQ3BCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFFBQVEsRUFBRTtnQkFDUixVQUFVO2dCQUNWLHVDQUF1QztnQkFDdkMsZ0RBQWdEO2dCQUNoRCxzS0FBNkIsa0JBQWtCLENBQUU7YUFDbEQ7U0FDRixDQUFDOzs7O29EQVdEO0lBbUdILGdCQUFDO0NBQUEsQUFwT0QsSUFvT0M7QUFFRCxNQUFNLENBQUMsSUFBTSxTQUFTLEdBQWUsSUFBSSxTQUFTLEVBQUUsQ0FBQTtBQUNwRCxTQUFTLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRXJDLGVBQWUsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRhcHRlcnMsIGNvbnN0YW50cywgdXRpbHMsIGhlbHBlcnMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IFNES0FkYXB0ZXJJbnRlcmZhY2UsIENsb3VkYmFzZUFkYXB0ZXIsIElSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7XG4gIElDbG91ZGJhc2VDb25maWcsXG4gIElDbG91ZGJhc2VVcGdyYWRlZENvbmZpZyxcbiAgSUNsb3VkYmFzZSxcbiAgSUNsb3VkYmFzZUV4dGVuc2lvbixcbiAgS1YsXG4gIElDbG91ZGJhc2VQbGF0Zm9ybUluZm8sXG59IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQXV0aCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvYXV0aCdcbmltcG9ydCBhZGFwdGVyRm9yV3hNcCBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItd3hfbXAnXG5pbXBvcnQgeyByZWdpc3RlckNvbXBvbmVudCwgcmVnaXN0ZXJIb29rIH0gZnJvbSAnLi9saWJzL2NvbXBvbmVudCdcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnLi9saWJzL2FkYXB0ZXInXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29tcG9uZW50LCBJQ2xvdWRiYXNlSG9vayB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNhY2hlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSdcbmltcG9ydCB7IGluaXRDYWNoZSwgZ2V0Q2FjaGVCeUVudklkLCBnZXRMb2NhbENhY2hlIH0gZnJvbSAnLi9saWJzL2NhY2hlJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZVJlcXVlc3QgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL3JlcXVlc3QnXG5pbXBvcnQgeyBpbml0UmVxdWVzdCwgZ2V0UmVxdWVzdEJ5RW52SWQgfSBmcm9tICcuL2xpYnMvcmVxdWVzdCdcbmltcG9ydCB7XG4gIGdldFNka05hbWUsXG4gIHNldFNka1ZlcnNpb24sXG4gIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQsXG4gIHNldFNka05hbWUsXG4gIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYsXG4gIHR5cGUgRW5kUG9pbnRLZXksXG4gIHR5cGUgSVNldEVuZFBvaW50V2l0aEtleSxcbiAgc2V0RW5kUG9pbnRJbmZvLFxuICBnZXRFbmRQb2ludEluZm8sXG4gIGdldFNka1ZlcnNpb24sXG59IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcbmltcG9ydCB7IGkxOG5Qcm94eSwgTEFOR1MgfSBmcm9tICcuL2xpYnMvbGFuZydcbmltcG9ydCB7IGdlbmVyYXRlQXBpcywgZ2VuZXJhdGVDYWxsQXBpcyB9IGZyb20gJy4vbGlicy9jYWxsQXBpcydcbmV4cG9ydCB7IGdldEJhc2VFbmRQb2ludCB9IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcbmV4cG9ydCB7IExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5jb25zdCB7IHVzZUFkYXB0ZXJzLCB1c2VEZWZhdWx0QWRhcHRlciB9ID0gYWRhcHRlcnNcbmNvbnN0IHsgRVJST1JTLCBDT01NVU5JVFlfU0lURV9VUkwgfSA9IGNvbnN0YW50c1xuY29uc3QgeyBwcmludFdhcm4gfSA9IHV0aWxzXG5jb25zdCB7IGNhdGNoRXJyb3JzRGVjb3JhdG9yIH0gPSBoZWxwZXJzXG5cbi8qKlxuICogQGNvbnN0YW50IOm7mOiupOmFjee9rlxuICovXG5jb25zdCBERUZBVUxUX0lOSVRfQ09ORklHOiBQYXJ0aWFsPElDbG91ZGJhc2VDb25maWc+ID0ge1xuICB0aW1lb3V0OiAxNTAwMCxcbiAgcGVyc2lzdGVuY2U6ICdsb2NhbCcsXG59XG5cbi8vIHRpbWVvdXTkuIrpmZAxMOWIhumSn1xuY29uc3QgTUFYX1RJTUVPVVQgPSAxMDAwICogNjAgKiAxMFxuLy8gdGltZW91dOS4i+mZkDEwMG1zXG5jb25zdCBNSU5fVElNRU9VVCA9IDEwMFxuXG5jb25zdCBleHRlbnNpb25NYXA6IEtWPElDbG91ZGJhc2VFeHRlbnNpb24+ID0ge31cblxuY2xhc3MgQ2xvdWRiYXNlIGltcGxlbWVudHMgSUNsb3VkYmFzZSB7XG4gIHB1YmxpYyBhdXRoSW5zdGFuY2U6IElDbG91ZGJhc2VBdXRoXG4gIHB1YmxpYyBvYXV0aEluc3RhbmNlOiBhbnlcbiAgcHVibGljIHJlcXVlc3RDbGllbnQ6IGFueVxuICBwdWJsaWMgb2F1dGhDbGllbnQ6IGFueVxuICBwdWJsaWMgdmVyc2lvbjogc3RyaW5nXG4gIHByaXZhdGUgY2xvdWRiYXNlQ29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnXG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogSUNsb3VkYmFzZUNvbmZpZykge1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0gY29uZmlnID8gY29uZmlnIDogdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICB0aGlzLmF1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLm9hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy52ZXJzaW9uID0gZ2V0U2RrVmVyc2lvbigpXG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtKCk6IElDbG91ZGJhc2VQbGF0Zm9ybUluZm8ge1xuICAgIHJldHVybiBQbGF0Zm9ybVxuICB9XG5cbiAgZ2V0IGNhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldENhY2hlQnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgbG9jYWxDYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRMb2NhbENhY2hlKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCByZXF1ZXN0KCk6IElDbG91ZGJhc2VSZXF1ZXN0IHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdEJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IGFwaXMoKTogeyBba2V5OiBzdHJpbmddOiB0eXBlb2YgZ2VuZXJhdGVDYWxsQXBpcyB9IHtcbiAgICByZXR1cm4gZ2VuZXJhdGVBcGlzLmNhbGwodGhpcylcbiAgfVxuXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgbW9kZTogJ3N5bmMnLFxuICAgIHRpdGxlOiAnQ2xvdWRiYXNlIOWIneWni+WMluWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBjbG91ZGJhc2UuaW5pdCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5aaC5p6c5piv6Z2e5rWP6KeI5Zmo546v5aKD77yM5piv5ZCm6YWN572u5LqG5a6J5YWo5bqU55So5p2l5rqQ77yIaHR0cHM6Ly9kb2NzLmNsb3VkYmFzZS5uZXQvYXBpLXJlZmVyZW5jZS93ZWJ2My9hZGFwdGVyIyVFNyVBQyVBQy0yLSVFNiVBRCVBNSVFOSU4NSU4RCVFNyVCRCVBRSVFNSVBRSU4OSVFNSU4NSVBOCVFNSVCQSU5NCVFNyU5NCVBOCVFNiU5RCVBNSVFNiVCQSU5MO+8iScsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgaW5pdChjb25maWc6IElDbG91ZGJhc2VDb25maWcgJiB7IGxhbmc/OiBMQU5HUyB9KTogQ2xvdWRiYXNlIHtcbiAgICBpZiAoIWNvbmZpZy5lbnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiAnZW52IG11c3Qgbm90IGJlIHNwZWNpZmllZCcsXG4gICAgICB9KSwpXG4gICAgfVxuICAgIC8vIOWIneWni+WMluaXtuiLpeacquWFvOWuueW5s+WPsO+8jOWImeS9v+eUqOm7mOiupGFkYXB0ZXJcbiAgICBpZiAoIVBsYXRmb3JtLmFkYXB0ZXIpIHtcbiAgICAgIHRoaXMudXNlRGVmYXVsdEFkYXB0ZXIoKVxuICAgIH1cblxuICAgIGNvbnN0IHJlcUNvbmZpZzogSVJlcXVlc3RDb25maWcgPSB7XG4gICAgICB0aW1lb3V0OiBjb25maWcudGltZW91dCB8fCA1MDAwLFxuICAgICAgdGltZW91dE1zZzogYFske2dldFNka05hbWUoKX1dW1JFUVVFU1QgVElNRU9VVF0gcmVxdWVzdCBoYWQgYmVlbiBhYm9ydCBzaW5jZSBkaWRuJ3QgZmluaXNoZWQgd2l0aGluJHtcbiAgICAgICAgY29uZmlnLnRpbWVvdXQgLyAxMDAwXG4gICAgICB9c2AsXG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0Q2xpZW50ID0gbmV3IFBsYXRmb3JtLmFkYXB0ZXIucmVxQ2xhc3MocmVxQ29uZmlnKVxuXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX0lOSVRfQ09ORklHLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgaTE4bjogaTE4blByb3h5KFBsYXRmb3JtLCBjb25maWcpLFxuICAgIH1cblxuICAgIGRlbGV0ZSAodGhpcy5jbG91ZGJhc2VDb25maWcgYXMgYW55KS5sYW5nXG4gICAgLy8g5L+u5q2jdGltZW91dOWPluWAvFxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLnRpbWVvdXQgPSB0aGlzLmZvcm1hdFRpbWVvdXQodGhpcy5jbG91ZGJhc2VDb25maWcudGltZW91dClcbiAgICAvLyDliJ3lp4vljJZjYWNoZeWSjHJlcXVlc3RcbiAgICBjb25zdCB7IGVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCB0aW1lb3V0LCBvYXV0aENsaWVudCwgaTE4biB9ID0gdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICBpbml0Q2FjaGUoeyBlbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG5cbiAgICBzZXRSZWdpb25MZXZlbEVuZHBvaW50KGVudiwgY29uZmlnLnJlZ2lvbiB8fCAnJylcbiAgICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52KGVudilcblxuICAgIGNvbnN0IGFwcCA9IG5ldyBDbG91ZGJhc2UodGhpcy5jbG91ZGJhc2VDb25maWcpXG4gICAgaW5pdFJlcXVlc3QoeyBlbnYsIHJlZ2lvbjogY29uZmlnLnJlZ2lvbiB8fCAnJywgdGltZW91dCwgb2F1dGhDbGllbnQsIF9mcm9tQXBwOiBhcHAsIGkxOG4gfSlcbiAgICBhcHAucmVxdWVzdENsaWVudCA9IHRoaXMucmVxdWVzdENsaWVudFxuICAgIDsodGhpcyBhcyBhbnkpPy5maXJlPy4oJ2Nsb3VkYmFzZV9pbml0JywgYXBwKVxuICAgIHJldHVybiBhcHBcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb25maWcoY29uZmlnOiBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcpIHtcbiAgICBjb25zdCB7IHBlcnNpc3RlbmNlLCBkZWJ1ZyB9ID0gY29uZmlnXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcucGVyc2lzdGVuY2UgPSBwZXJzaXN0ZW5jZVxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmRlYnVnID0gZGVidWdcbiAgICAvLyBwZXJzaXN0ZW5jZeaUueWKqOW9seWTjWNhY2hlXG4gICAgaW5pdENhY2hlKHsgZW52OiB0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGFuZyhsYW5nOiBMQU5HUykge1xuICAgIGlmICghbGFuZyB8fCBsYW5nID09PSB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuPy5sYW5nKSByZXR1cm5cblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmkxOG4ubGFuZyA9IGxhbmdcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckV4dGVuc2lvbihleHQ6IElDbG91ZGJhc2VFeHRlbnNpb24pIHtcbiAgICBleHRlbnNpb25NYXBbZXh0Lm5hbWVdID0gZXh0XG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iwg+eUqOaJqeWxleiDveWKm+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBpbnZva2VFeHRlbnNpb24oKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOiiq+iwg+eUqOeahOaJqeWxleiDveWKm+aYr+WQpuW3sue7j+WuieijheW5tumAmui/hyByZWdpc3RlckV4dGVuc2lvbigpIOazqOWGjCcsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgaW52b2tlRXh0ZW5zaW9uKG5hbWU6IHN0cmluZywgb3B0czogYW55KSB7XG4gICAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uTWFwW25hbWVdXG4gICAgaWYgKCFleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgZXh0ZW5zaW9uOiR7bmFtZX0gbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBpbnZva2VgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBleHQuaW52b2tlKG9wdHMsIHRoaXMpXG4gIH1cblxuICBwdWJsaWMgdXNlQWRhcHRlcnMoYWRhcHRlcnM6IENsb3VkYmFzZUFkYXB0ZXIgfCBDbG91ZGJhc2VBZGFwdGVyW10sIG9wdGlvbnM/OiBhbnkpIHtcbiAgICBjb25zdCB7IGFkYXB0ZXIsIHJ1bnRpbWUgfSA9IHVzZUFkYXB0ZXJzKGFkYXB0ZXJzLCBvcHRpb25zKSB8fCB7fVxuICAgIGFkYXB0ZXIgJiYgKFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2UpXG4gICAgcnVudGltZSAmJiAoUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySG9vayhob29rOiBJQ2xvdWRiYXNlSG9vaykge1xuICAgIHJlZ2lzdGVySG9vayhDbG91ZGJhc2UsIGhvb2spXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50KSB7XG4gICAgcmVnaXN0ZXJDb21wb25lbnQoQ2xvdWRiYXNlLCBjb21wb25lbnQpXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIHNldFNka1ZlcnNpb24odmVyc2lvbilcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHNldFNka05hbWUobmFtZSlcbiAgfVxuXG4gIC8qKiDorr7nva4gdGNiIGFwaSDnmoQgZW5kcG9pbnQgKi9cbiAgcHVibGljIHJlZ2lzdGVyRW5kUG9pbnQodXJsOiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICAgIHNldEVuZFBvaW50SW5mbyh7IGJhc2VVcmw6IHVybCwgcHJvdG9jb2wsIGVudjogdGhpcy5jb25maWcuZW52LCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbiAgfVxuXG4gIC8qKiDorr7nva7nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50V2l0aEtleShwcm9wczogSVNldEVuZFBvaW50V2l0aEtleSkge1xuICAgIHNldEVuZFBvaW50SW5mbyh7XG4gICAgICBlbnY6IHRoaXMuY29uZmlnLmVudixcbiAgICAgIGVuZFBvaW50S2V5OiBwcm9wcy5rZXksXG4gICAgICBiYXNlVXJsOiBwcm9wcy51cmwsXG4gICAgICBwcm90b2NvbDogcHJvcHMucHJvdG9jb2wsXG4gICAgfSlcbiAgfVxuXG4gIC8qKiDmi7/nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyBnZXRFbmRQb2ludFdpdGhLZXkoa2V5OiBFbmRQb2ludEtleSkge1xuICAgIGNvbnN0IGluZm8gPSBnZXRFbmRQb2ludEluZm8odGhpcy5jb25maWcuZW52LCBrZXkpXG4gICAgcmV0dXJuIHtcbiAgICAgIEJBU0VfVVJMOiBpbmZvLmJhc2VVcmwsXG4gICAgICBQUk9UT0NPTDogaW5mby5wcm90b2NvbCxcbiAgICB9XG4gIH1cblxuICAvLyDop6PmnpBVUkzlj4LmlbBcbiAgcHVibGljIHBhcnNlQ2FwdGNoYSh1cmwpIHtcbiAgICBsZXQgcXVlcnlPYmo6IGFueSA9IHt9XG4gICAgY29uc3QgbWF0Y2hlZCA9IHVybC5tYXRjaCgvXihkYXRhOi4qPykoXFw/W14jXFxzXSopPyQvKVxuICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICB1cmwgPSBtYXRjaGVkWzFdXG4gICAgICBjb25zdCBzZWFyY2ggPSBtYXRjaGVkWzJdXG4gICAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgIHF1ZXJ5T2JqID0gdXRpbHMucGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgdG9rZW4sIC4uLnJlc3RRdWVyeU9iaiB9ID0gcXVlcnlPYmpcbiAgICBpZiAoL15kYXRhOi8udGVzdCh1cmwpICYmICF0b2tlbikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6ICdpbnZhbGlkX2FyZ3VtZW50JyxcbiAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGBpbnZhbGlkIGNhcHRjaGEgZGF0YTogJHt1cmx9YCxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6ICd1bmltcGxlbWVudGVkJyxcbiAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246ICduZWVkIHRvIGltcGwgY2FwdGNoYSBkYXRhJyxcbiAgICAgIH1cbiAgICB9XG4gICAgLy8g6Kej5p6QdXJs5b6X5Yiw55qE5Y+C5pWwXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlOiByZXN0UXVlcnlPYmouc3RhdGUsXG4gICAgICB0b2tlbiwgLy8g6aqM6K+B56CBdG9rZW5cbiAgICAgIGNhcHRjaGFEYXRhOiB1cmwsIC8vIOmqjOivgeeggWJhc2U2NOWbvueJh1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXNlRGVmYXVsdEFkYXB0ZXIoKSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VEZWZhdWx0QWRhcHRlcigpXG4gICAgUGxhdGZvcm0uYWRhcHRlciA9IGFkYXB0ZXIgYXMgU0RLQWRhcHRlckludGVyZmFjZVxuICAgIFBsYXRmb3JtLnJ1bnRpbWUgPSBydW50aW1lIGFzIHN0cmluZ1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lb3V0KHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aW1lb3V0ID4gTUFYX1RJTUVPVVQ6XG4gICAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd0aW1lb3V0IGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlWzEwbWluXScpXG4gICAgICAgIHJldHVybiBNQVhfVElNRU9VVFxuICAgICAgY2FzZSB0aW1lb3V0IDwgTUlOX1RJTUVPVVQ6XG4gICAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd0aW1lb3V0IGlzIGxlc3MgdGhhbiBtYXhpbXVtIHZhbHVlWzEwMG1zXScpXG4gICAgICAgIHJldHVybiBNSU5fVElNRU9VVFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRpbWVvdXRcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNsb3VkYmFzZTogSUNsb3VkYmFzZSA9IG5ldyBDbG91ZGJhc2UoKVxuY2xvdWRiYXNlLnVzZUFkYXB0ZXJzKGFkYXB0ZXJGb3JXeE1wKVxuXG5leHBvcnQgZGVmYXVsdCBjbG91ZGJhc2VcbiJdfQ==
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFhMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUc5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQy9ELE9BQU8sRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YseUJBQXlCLEVBRXpCLGVBQWUsRUFDZixlQUFlLEVBQ2YsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQVMsTUFBTSxhQUFhLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0IsSUFBQSxXQUFXLEdBQXdCLFFBQVEsWUFBaEMsRUFBRSxpQkFBaUIsR0FBSyxRQUFRLGtCQUFiLENBQWE7QUFDM0MsSUFBQSxNQUFNLEdBQXlCLFNBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxTQUFTLG1CQUFkLENBQWM7QUFDeEMsSUFBQSxTQUFTLEdBQUssS0FBSyxVQUFWLENBQVU7QUFDbkIsSUFBQSxvQkFBb0Is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QkFDVixzQ0FBc0M7Z0JBQ3RDLG1MQUFtTDtnQkFDbkwsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7O3dDQUN3RCxTQUFTO3lDQXVEbEU7SUE0Qlk7UUFUWixvQkFBb0IsQ0FBQztZQUNwQixLQUFLLEVBQUUsVUFBVTtZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsVUFBVTtnQkFDVix1Q0FBdUM7Z0JBQ3ZDLGdEQUFnRDtnQkFDaEQsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7OztvREFXRDtJQWdGSCxnQkFBQztDQUFBLEFBNU5ELElBNE5DO0FBTUQsTUFBTSxDQUFDLElBQU0sU0FBUyxHQUFlLElBQUksU0FBUyxFQUFFLENBQUE7QUFFcEQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUE7QUFHNUMsZUFBZSxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGFwdGVycywgY29uc3RhbnRzLCB1dGlscywgaGVscGVycyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuaW1wb3J0IHsgU0RLQWRhcHRlckludGVyZmFjZSwgQ2xvdWRiYXNlQWRhcHRlciwgSVJlcXVlc3RDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgSUNsb3VkYmFzZUNvbmZpZyxcbiAgSUNsb3VkYmFzZVVwZ3JhZGVkQ29uZmlnLFxuICBJQ2xvdWRiYXNlLFxuICBJQ2xvdWRiYXNlRXh0ZW5zaW9uLFxuICBLVixcbiAgSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyxcbiAgRW5kUG9pbnRLZXksXG4gIElDbG91ZGJhc2VBcGlzLFxufSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUF1dGggfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2F1dGgnXG5pbXBvcnQgeyByZWdpc3RlckNvbXBvbmVudCwgcmVnaXN0ZXJIb29rIH0gZnJvbSAnLi9saWJzL2NvbXBvbmVudCdcbmltcG9ydCB7IGdldFd4RGVmYXVsdEFkYXB0ZXIsIFBsYXRmb3JtIH0gZnJvbSAnLi9saWJzL2FkYXB0ZXInXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29tcG9uZW50LCBJQ2xvdWRiYXNlSG9vayB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNhY2hlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSdcbmltcG9ydCB7IGluaXRDYWNoZSwgZ2V0Q2FjaGVCeUVudklkLCBnZXRMb2NhbENhY2hlIH0gZnJvbSAnLi9saWJzL2NhY2hlJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZVJlcXVlc3QgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL3JlcXVlc3QnXG5pbXBvcnQgeyBpbml0UmVxdWVzdCwgZ2V0UmVxdWVzdEJ5RW52SWQgfSBmcm9tICcuL2xpYnMvcmVxdWVzdCdcbmltcG9ydCB7XG4gIGdldFNka05hbWUsXG4gIHNldFNka1ZlcnNpb24sXG4gIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQsXG4gIHNldFNka05hbWUsXG4gIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYsXG4gIHR5cGUgSVNldEVuZFBvaW50V2l0aEtleSxcbiAgc2V0RW5kUG9pbnRJbmZvLFxuICBnZXRFbmRQb2ludEluZm8sXG4gIGdldFNka1ZlcnNpb24sXG4gIERFRkFVTFRfUFJPVE9DT0wsXG59IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcbmltcG9ydCB7IGkxOG5Qcm94eSwgTEFOR1MgfSBmcm9tICcuL2xpYnMvbGFuZydcbmV4cG9ydCB7IGdldEJhc2VFbmRQb2ludCB9IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcbmV4cG9ydCB7IExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5jb25zdCB7IHVzZUFkYXB0ZXJzLCB1c2VEZWZhdWx0QWRhcHRlciB9ID0gYWRhcHRlcnNcbmNvbnN0IHsgRVJST1JTLCBDT01NVU5JVFlfU0lURV9VUkwgfSA9IGNvbnN0YW50c1xuY29uc3QgeyBwcmludFdhcm4gfSA9IHV0aWxzXG5jb25zdCB7IGNhdGNoRXJyb3JzRGVjb3JhdG9yIH0gPSBoZWxwZXJzXG5cbi8qKlxuICogQGNvbnN0YW50IOm7mOiupOmFjee9rlxuICovXG5jb25zdCBERUZBVUxUX0lOSVRfQ09ORklHOiBQYXJ0aWFsPElDbG91ZGJhc2VDb25maWc+ID0ge1xuICB0aW1lb3V0OiAxNTAwMCxcbiAgcGVyc2lzdGVuY2U6ICdsb2NhbCcsIC8vIOaMgeS5heWMluWtmOWCqOexu+Wei1xufVxuXG4vLyB0aW1lb3V05LiK6ZmQMTDliIbpkp9cbmNvbnN0IE1BWF9USU1FT1VUID0gMTAwMCAqIDYwICogMTBcbi8vIHRpbWVvdXTkuIvpmZAxMDBtc1xuY29uc3QgTUlOX1RJTUVPVVQgPSAxMDBcblxuY29uc3QgZXh0ZW5zaW9uTWFwOiBLVjxJQ2xvdWRiYXNlRXh0ZW5zaW9uPiA9IHt9XG5cbmNsYXNzIENsb3VkYmFzZSBpbXBsZW1lbnRzIElDbG91ZGJhc2Uge1xuICBwdWJsaWMgYXV0aEluc3RhbmNlOiBJQ2xvdWRiYXNlQXV0aFxuICBwdWJsaWMgb2F1dGhJbnN0YW5jZTogYW55XG4gIHB1YmxpYyByZXF1ZXN0Q2xpZW50OiBhbnlcbiAgcHVibGljIG9hdXRoQ2xpZW50OiBhbnlcbiAgcHVibGljIHZlcnNpb246IHN0cmluZ1xuICBwdWJsaWMgYXV0aDogSUNsb3VkYmFzZVsnYXV0aCddICYgSUNsb3VkYmFzZUF1dGhcbiAgcHVibGljIGFwaXM6IElDbG91ZGJhc2VBcGlzXG4gIHByaXZhdGUgY2xvdWRiYXNlQ29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnXG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogSUNsb3VkYmFzZUNvbmZpZykge1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0gY29uZmlnID8gY29uZmlnIDogdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICB0aGlzLmF1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLm9hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy52ZXJzaW9uID0gZ2V0U2RrVmVyc2lvbigpXG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtKCk6IElDbG91ZGJhc2VQbGF0Zm9ybUluZm8ge1xuICAgIHJldHVybiBQbGF0Zm9ybVxuICB9XG5cbiAgZ2V0IGNhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldENhY2hlQnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgbG9jYWxDYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRMb2NhbENhY2hlKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCByZXF1ZXN0KCk6IElDbG91ZGJhc2VSZXF1ZXN0IHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdEJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBtb2RlOiAnc3luYycsXG4gICAgdGl0bGU6ICdDbG91ZGJhc2Ug5Yid5aeL5YyW5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGNsb3VkYmFzZS5pbml0KCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlpoLmnpzmmK/pnZ7mtY/op4jlmajnjq/looPvvIzmmK/lkKbphY3nva7kuoblronlhajlupTnlKjmnaXmupDvvIhodHRwczovL2RvY3MuY2xvdWRiYXNlLm5ldC9hcGktcmVmZXJlbmNlL3dlYnYzL2FkYXB0ZXIjJUU3JUFDJUFDLTItJUU2JUFEJUE1JUU5JTg1JThEJUU3JUJEJUFFJUU1JUFFJTg5JUU1JTg1JUE4JUU1JUJBJTk0JUU3JTk0JUE4JUU2JTlEJUE1JUU2JUJBJTkw77yJJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBpbml0KGNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZyAmIHsgbGFuZz86IExBTkdTIH0pOiBDbG91ZGJhc2Uge1xuICAgIGlmICghY29uZmlnLmVudikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6ICdlbnYgbXVzdCBub3QgYmUgc3BlY2lmaWVkJyxcbiAgICAgIH0pLClcbiAgICB9XG4gICAgY29uZmlnLmVuZFBvaW50TW9kZSA9IGNvbmZpZy5lbmRQb2ludE1vZGUgfHwgJ0dBVEVXQVknXG5cbiAgICAvLyDliJ3lp4vljJbml7boi6XmnKrlhbzlrrnlubPlj7DvvIzliJnkvb/nlKjpu5jorqRhZGFwdGVyXG4gICAgaWYgKCFQbGF0Zm9ybS5hZGFwdGVyKSB7XG4gICAgICB0aGlzLnVzZURlZmF1bHRBZGFwdGVyKClcbiAgICB9XG5cbiAgICBjb25zdCByZXFDb25maWc6IElSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgdGltZW91dDogY29uZmlnLnRpbWVvdXQgfHwgNTAwMCxcbiAgICAgIHRpbWVvdXRNc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVtSRVFVRVNUIFRJTUVPVVRdIHJlcXVlc3QgaGFkIGJlZW4gYWJvcnQgc2luY2UgZGlkbid0IGZpbmlzaGVkIHdpdGhpbiR7XG4gICAgICAgIGNvbmZpZy50aW1lb3V0IC8gMTAwMFxuICAgICAgfXNgLFxuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdENsaWVudCA9IG5ldyBQbGF0Zm9ybS5hZGFwdGVyLnJlcUNsYXNzKHJlcUNvbmZpZylcblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9JTklUX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGkxOG46IGkxOG5Qcm94eShQbGF0Zm9ybSwgY29uZmlnKSxcbiAgICB9XG5cbiAgICBkZWxldGUgKHRoaXMuY2xvdWRiYXNlQ29uZmlnIGFzIGFueSkubGFuZ1xuICAgIC8vIOS/ruato3RpbWVvdXTlj5blgLxcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy50aW1lb3V0ID0gdGhpcy5mb3JtYXRUaW1lb3V0KHRoaXMuY2xvdWRiYXNlQ29uZmlnLnRpbWVvdXQpXG4gICAgLy8g5Yid5aeL5YyWY2FjaGXlkoxyZXF1ZXN0XG4gICAgY29uc3QgeyBlbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgdGltZW91dCwgb2F1dGhDbGllbnQsIGkxOG4gfSA9IHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gICAgaW5pdENhY2hlKHsgZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHBsYXRmb3JtSW5mbzogdGhpcy5wbGF0Zm9ybSB9KVxuXG4gICAgc2V0UmVnaW9uTGV2ZWxFbmRwb2ludChlbnYsIGNvbmZpZy5yZWdpb24gfHwgJycpXG4gICAgc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudihlbnYsIERFRkFVTFRfUFJPVE9DT0wsIGNvbmZpZy5yZWdpb24gfHwgJycpXG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2xvdWRiYXNlKHRoaXMuY2xvdWRiYXNlQ29uZmlnKVxuICAgIGluaXRSZXF1ZXN0KHtcbiAgICAgIGVudixcbiAgICAgIHJlZ2lvbjogY29uZmlnLnJlZ2lvbiB8fCAnJyxcbiAgICAgIHRpbWVvdXQsXG4gICAgICBvYXV0aENsaWVudCxcbiAgICAgIF9mcm9tQXBwOiBhcHAsXG4gICAgICBpMThuLFxuICAgICAgZW5kUG9pbnRNb2RlOiBjb25maWcuZW5kUG9pbnRNb2RlLFxuICAgIH0pXG4gICAgYXBwLnJlcXVlc3RDbGllbnQgPSB0aGlzLnJlcXVlc3RDbGllbnRcbiAgICA7KHRoaXMgYXMgYW55KT8uZmlyZT8uKCdjbG91ZGJhc2VfaW5pdCcsIGFwcClcblxuICAgIHRoaXMudHJ5MkluaXRBdXRoKGFwcClcblxuICAgIHJldHVybiBhcHBcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb25maWcoY29uZmlnOiBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcpIHtcbiAgICBjb25zdCB7IHBlcnNpc3RlbmNlLCBkZWJ1ZyB9ID0gY29uZmlnXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcucGVyc2lzdGVuY2UgPSBwZXJzaXN0ZW5jZVxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmRlYnVnID0gZGVidWdcbiAgICAvLyBwZXJzaXN0ZW5jZeaUueWKqOW9seWTjWNhY2hlXG4gICAgaW5pdENhY2hlKHsgZW52OiB0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGFuZyhsYW5nOiBMQU5HUykge1xuICAgIGlmICghbGFuZyB8fCBsYW5nID09PSB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuPy5sYW5nKSByZXR1cm5cblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmkxOG4ubGFuZyA9IGxhbmdcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckV4dGVuc2lvbihleHQ6IElDbG91ZGJhc2VFeHRlbnNpb24pIHtcbiAgICBleHRlbnNpb25NYXBbZXh0Lm5hbWVdID0gZXh0XG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iwg+eUqOaJqeWxleiDveWKm+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBpbnZva2VFeHRlbnNpb24oKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOiiq+iwg+eUqOeahOaJqeWxleiDveWKm+aYr+WQpuW3sue7j+WuieijheW5tumAmui/hyByZWdpc3RlckV4dGVuc2lvbigpIOazqOWGjCcsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgaW52b2tlRXh0ZW5zaW9uKG5hbWU6IHN0cmluZywgb3B0czogYW55KSB7XG4gICAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uTWFwW25hbWVdXG4gICAgaWYgKCFleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgZXh0ZW5zaW9uOiR7bmFtZX0gbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBpbnZva2VgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBleHQuaW52b2tlKG9wdHMsIHRoaXMpXG4gIH1cblxuICBwdWJsaWMgdXNlQWRhcHRlcnMoYWRhcHRlcnM6IENsb3VkYmFzZUFkYXB0ZXIgfCBDbG91ZGJhc2VBZGFwdGVyW10sIG9wdGlvbnM/OiBhbnkpIHtcbiAgICBjb25zdCB7IGFkYXB0ZXIsIHJ1bnRpbWUgfSA9IHVzZUFkYXB0ZXJzKGFkYXB0ZXJzLCBvcHRpb25zKSB8fCB7fVxuICAgIGFkYXB0ZXIgJiYgKFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2UpXG4gICAgcnVudGltZSAmJiAoUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySG9vayhob29rOiBJQ2xvdWRiYXNlSG9vaykge1xuICAgIHJlZ2lzdGVySG9vayhDbG91ZGJhc2UsIGhvb2spXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50KSB7XG4gICAgcmVnaXN0ZXJDb21wb25lbnQoQ2xvdWRiYXNlLCBjb21wb25lbnQpXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIHNldFNka1ZlcnNpb24odmVyc2lvbilcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHNldFNka05hbWUobmFtZSlcbiAgfVxuXG4gIC8qKiDorr7nva4gdGNiIGFwaSDnmoQgZW5kcG9pbnQgKi9cbiAgcHVibGljIHJlZ2lzdGVyRW5kUG9pbnQodXJsOiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICAgIHNldEVuZFBvaW50SW5mbyh7IGJhc2VVcmw6IHVybCwgcHJvdG9jb2wsIGVudjogdGhpcy5jb25maWcuZW52LCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbiAgfVxuXG4gIC8qKiDorr7nva7nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50V2l0aEtleShwcm9wczogSVNldEVuZFBvaW50V2l0aEtleSkge1xuICAgIHNldEVuZFBvaW50SW5mbyh7XG4gICAgICBlbnY6IHRoaXMuY29uZmlnLmVudixcbiAgICAgIGVuZFBvaW50S2V5OiBwcm9wcy5rZXksXG4gICAgICBiYXNlVXJsOiBwcm9wcy51cmwsXG4gICAgICBwcm90b2NvbDogcHJvcHMucHJvdG9jb2wsXG4gICAgfSlcbiAgfVxuXG4gIC8qKiDmi7/nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyBnZXRFbmRQb2ludFdpdGhLZXkoa2V5OiBFbmRQb2ludEtleSkge1xuICAgIGNvbnN0IGluZm8gPSBnZXRFbmRQb2ludEluZm8odGhpcy5jb25maWcuZW52LCBrZXkpXG4gICAgcmV0dXJuIHtcbiAgICAgIEJBU0VfVVJMOiBpbmZvLmJhc2VVcmwsXG4gICAgICBQUk9UT0NPTDogaW5mby5wcm90b2NvbCxcbiAgICB9XG4gIH1cblxuICAvLyDop6PmnpBVUkzlj4LmlbBcbiAgcHVibGljIHBhcnNlQ2FwdGNoYSh1cmwpIHtcbiAgICByZXR1cm4gdXRpbHMucGFyc2VDYXB0Y2hhKHVybClcbiAgfVxuXG4gIHByaXZhdGUgdXNlRGVmYXVsdEFkYXB0ZXIoKSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VEZWZhdWx0QWRhcHRlci5iaW5kKHRoaXMpKClcbiAgICBQbGF0Zm9ybS5hZGFwdGVyID0gYWRhcHRlciBhcyBTREtBZGFwdGVySW50ZXJmYWNlXG4gICAgUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nXG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFRpbWVvdXQodGltZW91dDogbnVtYmVyKSB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRpbWVvdXQgPiBNQVhfVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gdmFsdWVbMTBtaW5dJylcbiAgICAgICAgcmV0dXJuIE1BWF9USU1FT1VUXG4gICAgICBjYXNlIHRpbWVvdXQgPCBNSU5fVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgbGVzcyB0aGFuIG1heGltdW0gdmFsdWVbMTAwbXNdJylcbiAgICAgICAgcmV0dXJuIE1JTl9USU1FT1VUXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGltZW91dFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJ5MkluaXRBdXRoKGFwcCkge1xuICAgIHRyeSB7XG4gICAgICBhcHAuYXV0aCgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCd0cnkySW5pdEF1dGggZXJyb3I6JywgZXJyb3IpXG4gICAgfVxuICB9XG59XG5cbi8vIOexu+Wei+WvvOWHulxuZXhwb3J0IHR5cGUgeyBDbG91ZGJhc2UgfVxuXG4vLyDlgLzlr7zlh7pcbmV4cG9ydCBjb25zdCBjbG91ZGJhc2U6IElDbG91ZGJhc2UgPSBuZXcgQ2xvdWRiYXNlKClcblxuY2xvdWRiYXNlLnVzZUFkYXB0ZXJzKGdldFd4RGVmYXVsdEFkYXB0ZXIoKSlcblxuLy8g6buY6K6k5a+85Ye65a6e5L6LXG5leHBvcnQgZGVmYXVsdCBjbG91ZGJhc2VcbiJdfQ==
@@ -1,2 +1,3 @@
1
1
  import { ICloudbasePlatformInfo } from '@cloudbase/types';
2
2
  export declare const Platform: ICloudbasePlatformInfo;
3
+ export declare const getWxDefaultAdapter: () => any;
@@ -1,2 +1,136 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import adapterForWxMp, { WxRequest, WxMpWebSocket, wxMpStorage, parseQueryString } from '@cloudbase/adapter-wx_mp';
24
+ import { StorageType } from '@cloudbase/adapter-interface';
1
25
  export var Platform = {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUEyQixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcblxuZXhwb3J0IGNvbnN0IFBsYXRmb3JtOiBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvID0ge31cbiJdfQ==
26
+ export var getWxDefaultAdapter = function () {
27
+ WxRequest.prototype.upload = function (options) {
28
+ var _this = this;
29
+ var self = this;
30
+ return new Promise(function (resolve) {
31
+ var url = options.url, file = options.file, data = options.data, headers = options.headers;
32
+ var fs = wx.getFileSystemManager();
33
+ var task = wx.request({
34
+ url: url,
35
+ method: options.method,
36
+ header: __assign({ 'content-type': ' ' }, headers),
37
+ data: fs.readFileSync(file),
38
+ timeout: _this._timeout,
39
+ success: function (res) {
40
+ var result = {
41
+ statusCode: res.statusCode,
42
+ data: res.data || {},
43
+ };
44
+ if (res.statusCode === 200 && (data === null || data === void 0 ? void 0 : data.success_action_status)) {
45
+ result.statusCode = parseInt(data.success_action_status, 10);
46
+ }
47
+ resolve(result);
48
+ },
49
+ fail: function (err) {
50
+ resolve(err);
51
+ },
52
+ complete: function (err) {
53
+ if (!(err === null || err === void 0 ? void 0 : err.errMsg)) {
54
+ return;
55
+ }
56
+ if (!self._timeout || self._restrictedMethods.indexOf('upload') === -1) {
57
+ return;
58
+ }
59
+ var errMsg = err.errMsg;
60
+ if (errMsg === 'request:fail timeout') {
61
+ console.warn(self._timeoutMsg);
62
+ try {
63
+ task.abort();
64
+ }
65
+ catch (e) { }
66
+ }
67
+ },
68
+ });
69
+ });
70
+ };
71
+ function isPlugin() {
72
+ return (typeof App === 'undefined'
73
+ && typeof getApp === 'undefined'
74
+ && !wx.onAppHide
75
+ && !wx.offAppHide
76
+ && !wx.onAppShow
77
+ && !wx.offAppShow);
78
+ }
79
+ adapterForWxMp.genAdapter = function genAdapter(options) {
80
+ var adapter = {
81
+ root: { globalThis: {} },
82
+ reqClass: WxRequest,
83
+ wsClass: WxMpWebSocket,
84
+ captchaOptions: {
85
+ openURIWithCallback: function (_url) {
86
+ var EventBus = options.EventBus;
87
+ var queryObj = {};
88
+ var url = _url;
89
+ console.log('openURIWithCallback', _url);
90
+ var matched = _url.match(/^(data:.*?)(\?[^#\s]*)?$/);
91
+ if (matched) {
92
+ url = matched[1];
93
+ console.log('openURIWithCallback url', url);
94
+ var search = matched[2];
95
+ if (search) {
96
+ queryObj = parseQueryString(search);
97
+ }
98
+ }
99
+ console.log('openURIWithCallback queryObj', queryObj);
100
+ var token = queryObj.token, restQueryObj = __rest(queryObj, ["token"]);
101
+ if (/^data:/.test(url) && !token) {
102
+ return Promise.reject({
103
+ error: 'invalid_argument',
104
+ error_description: "invalie captcha data: ".concat(_url),
105
+ });
106
+ }
107
+ if (!token) {
108
+ return Promise.reject({
109
+ error: 'unimplemented',
110
+ error_description: 'need to impl captcha data',
111
+ });
112
+ }
113
+ return new Promise(function (resolve) {
114
+ console.log('wait for captcha...');
115
+ EventBus.$emit('CAPTCHA_DATA_CHANGE', __assign(__assign({}, restQueryObj), { token: token, url: url }));
116
+ EventBus.$once('RESOLVE_CAPTCHA_DATA', function (res) {
117
+ resolve(res);
118
+ });
119
+ });
120
+ },
121
+ },
122
+ localStorage: wxMpStorage,
123
+ primaryStorage: StorageType.local,
124
+ getAppSign: function () {
125
+ var info = wx.getAccountInfoSync();
126
+ if (isPlugin()) {
127
+ return info && info.plugin ? info.plugin.appId : '';
128
+ }
129
+ return info && info.miniProgram ? info.miniProgram.appId : '';
130
+ },
131
+ };
132
+ return adapter;
133
+ };
134
+ return adapterForWxMp;
135
+ };
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNsSCxPQUFPLEVBQXlCLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBTWpGLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBMkIsRUFBRSxDQUFBO0FBRWxELE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHO0lBQ2pDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQVUsT0FBOEI7UUFBeEMsaUJBNkM1QjtRQTNDQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUE7UUFDakIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU87WUFDakIsSUFBQSxHQUFHLEdBQTBCLE9BQU8sSUFBakMsRUFBRSxJQUFJLEdBQW9CLE9BQU8sS0FBM0IsRUFBRSxJQUFJLEdBQWMsT0FBTyxLQUFyQixFQUFFLE9BQU8sR0FBSyxPQUFPLFFBQVosQ0FBWTtZQUM1QyxJQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUNwQyxJQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUN0QixHQUFHLEtBQUE7Z0JBQ0gsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixNQUFNLGFBQ0osY0FBYyxFQUFFLEdBQUcsSUFDaEIsT0FBTyxDQUNYO2dCQUNELElBQUksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDM0IsT0FBTyxFQUFFLEtBQUksQ0FBQyxRQUFRO2dCQUN0QixPQUFPLFlBQUMsR0FBMEM7b0JBQ2hELElBQU0sTUFBTSxHQUFHO3dCQUNiLFVB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QyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7WUFDL0QsQ0FBQztTQUNGLENBQUE7UUFDRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDLENBQUE7SUFFRCxPQUFPLGNBQWMsQ0FBQTtBQUN2QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCBhZGFwdGVyRm9yV3hNcCwgeyBXeFJlcXVlc3QsIFd4TXBXZWJTb2NrZXQsIHd4TXBTdG9yYWdlLCBwYXJzZVF1ZXJ5U3RyaW5nIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLXd4X21wJ1xuaW1wb3J0IHsgSVVwbG9hZFJlcXVlc3RPcHRpb25zLCBTdG9yYWdlVHlwZSB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci1pbnRlcmZhY2UnXG5cbmRlY2xhcmUgY29uc3Qgd3g6IGFueVxuZGVjbGFyZSBjb25zdCBBcHA6IGFueVxuZGVjbGFyZSBjb25zdCBnZXRBcHA6IGFueVxuXG5leHBvcnQgY29uc3QgUGxhdGZvcm06IElDbG91ZGJhc2VQbGF0Zm9ybUluZm8gPSB7fVxuXG5leHBvcnQgY29uc3QgZ2V0V3hEZWZhdWx0QWRhcHRlciA9ICgpID0+IHtcbiAgV3hSZXF1ZXN0LnByb3RvdHlwZS51cGxvYWQgPSBmdW5jdGlvbiAob3B0aW9uczogSVVwbG9hZFJlcXVlc3RPcHRpb25zKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IHsgdXJsLCBmaWxlLCBkYXRhLCBoZWFkZXJzIH0gPSBvcHRpb25zXG4gICAgICBjb25zdCBmcyA9IHd4LmdldEZpbGVTeXN0ZW1NYW5hZ2VyKCkgLy8g6K+75Y+W5paH5Lu2IOS6jOi/m+WItuWGheWuuVxuICAgICAgY29uc3QgdGFzayA9IHd4LnJlcXVlc3Qoe1xuICAgICAgICB1cmwsXG4gICAgICAgIG1ldGhvZDogb3B0aW9ucy5tZXRob2QsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnICcsIC8vIOWwj+eoi+W6jyBjb250ZW50LXR5cGUg6buY6K6k5Li6IGFwcGxpY2F0aW9uL2pzb27vvIwg6L+Z6YeM5LiA5a6a6KaB5by65Yi25Li6IOepuu+8jCDlkKbliJnnrb7lkI3plJnor69cbiAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiBmcy5yZWFkRmlsZVN5bmMoZmlsZSksIC8vIOWwhuS6jOi/m+WItuaWh+S7tui9rOS4uuWtl+espuS4suebtOaOpei1i+WAvOWIsCByZXF1ZXN0IHBheWxvYWTvvIwg5LiN6KaB5LulIGZvcm0g55qE5pa55byP5Lyg6L6TXG4gICAgICAgIHRpbWVvdXQ6IHRoaXMuX3RpbWVvdXQsXG4gICAgICAgIHN1Y2Nlc3MocmVzOiB7IHN0YXR1c0NvZGU6IG51bWJlcjsgZGF0YTogdW5rbm93biB9KSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICBkYXRhOiByZXMuZGF0YSB8fCB7fSxcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlcy5zdGF0dXNDb2RlID09PSAyMDAgJiYgZGF0YT8uc3VjY2Vzc19hY3Rpb25fc3RhdHVzKSB7XG4gICAgICAgICAgICByZXN1bHQuc3RhdHVzQ29kZSA9IHBhcnNlSW50KGRhdGEuc3VjY2Vzc19hY3Rpb25fc3RhdHVzLCAxMClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpXG4gICAgICAgIH0sXG4gICAgICAgIGZhaWwoZXJyOiB1bmtub3duKSB7XG4gICAgICAgICAgcmVzb2x2ZShlcnIpXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlKGVycjogeyBlcnJNc2c6IHN0cmluZyB9KSB7XG4gICAgICAgICAgaWYgKCFlcnI/LmVyck1zZykge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc2VsZi5fdGltZW91dCB8fCBzZWxmLl9yZXN0cmljdGVkTWV0aG9kcy5pbmRleE9mKCd1cGxvYWQnKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB7IGVyck1zZyB9ID0gZXJyXG4gICAgICAgICAgaWYgKGVyck1zZyA9PT0gJ3JlcXVlc3Q6ZmFpbCB0aW1lb3V0Jykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHNlbGYuX3RpbWVvdXRNc2cpXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB0YXNrLmFib3J0KClcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gaXNQbHVnaW4oKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiBBcHAgPT09ICd1bmRlZmluZWQnXG4gICAgICAmJiB0eXBlb2YgZ2V0QXBwID09PSAndW5kZWZpbmVkJ1xuICAgICAgJiYgIXd4Lm9uQXBwSGlkZVxuICAgICAgJiYgIXd4Lm9mZkFwcEhpZGVcbiAgICAgICYmICF3eC5vbkFwcFNob3dcbiAgICAgICYmICF3eC5vZmZBcHBTaG93XG4gICAgKVxuICB9XG4gIGFkYXB0ZXJGb3JXeE1wLmdlbkFkYXB0ZXIgPSBmdW5jdGlvbiBnZW5BZGFwdGVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBhZGFwdGVyID0ge1xuICAgICAgcm9vdDogeyBnbG9iYWxUaGlzOiB7fSB9LFxuICAgICAgcmVxQ2xhc3M6IFd4UmVxdWVzdCxcbiAgICAgIHdzQ2xhc3M6IFd4TXBXZWJTb2NrZXQsXG4gICAgICBjYXB0Y2hhT3B0aW9uczoge1xuICAgICAgICBvcGVuVVJJV2l0aENhbGxiYWNrOiAoX3VybDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgICAgIGNvbnN0IHsgRXZlbnRCdXMgfSA9IG9wdGlvbnNcbiAgICAgICAgICBsZXQgcXVlcnlPYmo6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICAgICAgICAgIGxldCB1cmwgPSBfdXJsXG4gICAgICAgICAgY29uc29sZS5sb2coJ29wZW5VUklXaXRoQ2FsbGJhY2snLCBfdXJsKVxuICAgICAgICAgIGNvbnN0IG1hdGNoZWQgPSBfdXJsLm1hdGNoKC9eKGRhdGE6Lio/KShcXD9bXiNcXHNdKik/JC8pXG4gICAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgICAgICAgICAgdXJsID0gbWF0Y2hlZFsxXVxuICAgICAgICAgICAgY29uc29sZS5sb2coJ29wZW5VUklXaXRoQ2FsbGJhY2sgdXJsJywgdXJsKVxuICAgICAgICAgICAgY29uc3Qgc2VhcmNoID0gbWF0Y2hlZFsyXVxuICAgICAgICAgICAgaWYgKHNlYXJjaCkge1xuICAgICAgICAgICAgICBxdWVyeU9iaiA9IHBhcnNlUXVlcnlTdHJpbmcoc2VhcmNoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLmxvZygnb3BlblVSSVdpdGhDYWxsYmFjayBxdWVyeU9iaicsIHF1ZXJ5T2JqKVxuICAgICAgICAgIGNvbnN0IHsgdG9rZW4sIC4uLnJlc3RRdWVyeU9iaiB9ID0gcXVlcnlPYmpcbiAgICAgICAgICBpZiAoL15kYXRhOi8udGVzdCh1cmwpICYmICF0b2tlbikge1xuICAgICAgICAgICAgLy8g5aaC5p6c5pivIGRhdGE6IOW8gOWktOeahCBVUkwg5LiU5rKh5pyJIHRva2Vu77yM5YiZ55u05o6l6L+U5ZueXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe1xuICAgICAgICAgICAgICBlcnJvcjogJ2ludmFsaWRfYXJndW1lbnQnLFxuICAgICAgICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogYGludmFsaWUgY2FwdGNoYSBkYXRhOiAke191cmx9YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7XG4gICAgICAgICAgICAgIGVycm9yOiAndW5pbXBsZW1lbnRlZCcsXG4gICAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiAnbmVlZCB0byBpbXBsIGNhcHRjaGEgZGF0YScsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3YWl0IGZvciBjYXB0Y2hhLi4uJylcbiAgICAgICAgICAgIEV2ZW50QnVzLiRlbWl0KCdDQVBUQ0hBX0RBVEFfQ0hBTkdFJywgeyAuLi5yZXN0UXVlcnlPYmosIHRva2VuLCB1cmwgfSlcblxuICAgICAgICAgICAgLy8g55uR5ZCs5LqL5Lu25oC757q/77yM562J5b6F6aqM6K+B56CB5pWw5o2u5Y+Y5YyWXG4gICAgICAgICAgICBFdmVudEJ1cy4kb25jZSgnUkVTT0xWRV9DQVBUQ0hBX0RBVEEnLCAocmVzOiB7IGNhcHRjaGFfdG9rZW46IHN0cmluZzsgZXhwaXJlc19pbjogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbG9jYWxTdG9yYWdlOiB3eE1wU3RvcmFnZSxcbiAgICAgIHByaW1hcnlTdG9yYWdlOiBTdG9yYWdlVHlwZS5sb2NhbCxcbiAgICAgIGdldEFwcFNpZ24oKSB7XG4gICAgICAgIGNvbnN0IGluZm8gPSB3eC5nZXRBY2NvdW50SW5mb1N5bmMoKVxuICAgICAgICBpZiAoaXNQbHVnaW4oKSkge1xuICAgICAgICAgIC8vIOaPkuS7tueOr+Wig+i/lOWbnuaPkuS7tmFwcGlkXG4gICAgICAgICAgcmV0dXJuIGluZm8gJiYgaW5mby5wbHVnaW4gPyBpbmZvLnBsdWdpbi5hcHBJZCA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZm8gJiYgaW5mby5taW5pUHJvZ3JhbSA/IGluZm8ubWluaVByb2dyYW0uYXBwSWQgOiAnJ1xuICAgICAgfSxcbiAgICB9XG4gICAgcmV0dXJuIGFkYXB0ZXJcbiAgfVxuXG4gIHJldHVybiBhZGFwdGVyRm9yV3hNcFxufVxuIl19
@@ -1,6 +1,15 @@
1
1
  import { IRequestOptions, ResponseObject, IUploadRequestOptions, IFetchOptions } from '@cloudbase/adapter-interface';
2
- import { KV } from '@cloudbase/types';
2
+ import { EndPointKey, KV } from '@cloudbase/types';
3
+ import { ICustomReqOpts } from '@cloudbase/types/functions';
3
4
  import { IGetAccessTokenResult, ICloudbaseRequestConfig } from '@cloudbase/types/request';
5
+ export interface IGateWayOptions {
6
+ name?: string;
7
+ data?: any;
8
+ path?: string;
9
+ method: string;
10
+ header?: {};
11
+ url?: string;
12
+ }
4
13
  export interface ICloudbaseRequest {
5
14
  post: (options: IRequestOptions) => Promise<ResponseObject>;
6
15
  upload: (options: IUploadRequestOptions) => Promise<ResponseObject>;
@@ -17,13 +26,15 @@ export declare class CloudbaseRequest implements ICloudbaseRequest {
17
26
  constructor(config: ICloudbaseRequestConfig & {
18
27
  throw?: boolean;
19
28
  });
29
+ getAccessToken(token?: any): Promise<any>;
20
30
  getDefaultHeaders(): {
21
- [x: string]: import("@cloudbase/types").LANGS;
31
+ [x: string]: string;
32
+ 'X-SDK-Version': string;
22
33
  };
23
- post(options: IRequestOptions): Promise<ResponseObject>;
34
+ post(options: IRequestOptions, customReqOpts?: ICustomReqOpts): Promise<ResponseObject>;
24
35
  upload(options: IUploadRequestOptions): Promise<ResponseObject>;
25
36
  download(options: IRequestOptions): Promise<ResponseObject>;
26
- getBaseEndPoint(): string;
37
+ getBaseEndPoint(endPointKey?: EndPointKey): string;
27
38
  getOauthAccessTokenV2(oauthClient: any): Promise<IGetAccessTokenResult>;
28
39
  request(action: string, params: KV<any>, options?: {
29
40
  onUploadProgress?: Function;
@@ -32,11 +43,18 @@ export declare class CloudbaseRequest implements ICloudbaseRequest {
32
43
  inQuery?: KV<any>;
33
44
  search?: string;
34
45
  defaultQuery?: KV<any>;
35
- }): Promise<ResponseObject>;
46
+ headers?: KV<string>;
47
+ }, customReqOpts?: ICustomReqOpts): Promise<ResponseObject>;
36
48
  fetch(options: IFetchOptions & {
37
49
  token?: string;
50
+ customReqOpts?: ICustomReqOpts;
38
51
  }): Promise<ResponseObject>;
39
- send(action: string, data?: KV<any>, options?: KV<any>): Promise<any>;
52
+ send(action: string, data?: KV<any>, options?: KV<any>, customReqOpts?: ICustomReqOpts): Promise<any>;
53
+ gateWay(options: IGateWayOptions, customReqOpts?: ICustomReqOpts): Promise<{
54
+ data: any;
55
+ statusCode?: number;
56
+ requestId: string;
57
+ }>;
40
58
  }
41
59
  export declare function initRequest(config: ICloudbaseRequestConfig): void;
42
60
  export declare function getRequestByEnvId(env: string): CloudbaseRequest;