@cloudbase/container 2.5.38-alpha.1 → 2.5.39-beta.0

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,11 +1,2 @@
1
1
  import { ICloudbase } from '@cloudbase/types';
2
- import { ICallContainerOptions, IContianerConfig } from '@cloudbase/types/container';
3
- export declare class CloudbaseContainers {
4
- private readonly config;
5
- private wasm;
6
- private containerInitPromise;
7
- constructor(config: IContianerConfig);
8
- callContainer(options: ICallContainerOptions, callback?: Function): Promise<any>;
9
- initContainer(config: Omit<IContianerConfig, 'wasmUrl' | 'jsUrl'>): Promise<any>;
10
- }
11
2
  export declare function registerContainers(app: Pick<ICloudbase, 'registerComponent'>): void;
package/dist/cjs/index.js CHANGED
@@ -81,39 +81,20 @@ var __rest = (this && this.__rest) || function (s, e) {
81
81
  }
82
82
  return t;
83
83
  };
84
+ var __importDefault = (this && this.__importDefault) || function (mod) {
85
+ return (mod && mod.__esModule) ? mod : { "default": mod };
86
+ };
84
87
  Object.defineProperty(exports, "__esModule", { value: true });
85
- exports.registerContainers = exports.CloudbaseContainers = void 0;
88
+ exports.registerContainers = void 0;
86
89
  var utilities_1 = require("@cloudbase/utilities");
90
+ var decompress_1 = __importDefault(require("brotli/decompress"));
91
+ var go_wams_exec_1 = __importDefault(require("./go_wams_exec"));
87
92
  var utils_1 = require("./utils");
93
+ var request_1 = require("./utils/request");
88
94
  var constants_1 = require("./constants");
89
95
  var ERRORS = utilities_1.constants.ERRORS, COMMUNITY_SITE_URL = utilities_1.constants.COMMUNITY_SITE_URL;
90
96
  var execCallback = utilities_1.utils.execCallback, printWarn = utilities_1.utils.printWarn;
91
97
  var catchErrorsDecorator = utilities_1.helpers.catchErrorsDecorator;
92
- var getExportFunction = function () {
93
- throw new Error('getExportFunction 未实现');
94
- };
95
- var loadJSExportFunction = function () {
96
- throw new Error('loadJSExportFunction 未实现');
97
- };
98
- if (globalThis.IS_MP_BUILD) {
99
- getExportFunction = function () {
100
- new Error('小程序不支持 wasm 加载');
101
- };
102
- loadJSExportFunction = function (jsUrl) {
103
- if (jsUrl) {
104
- new Error('小程序不支持动态 js 加载');
105
- }
106
- return {
107
- initContainer: globalThis.cloudbase_private_link.initContainer,
108
- callContainer: globalThis.cloudbase_private_link.callContainer,
109
- };
110
- };
111
- }
112
- else {
113
- var loader = require('./utils/loader');
114
- getExportFunction = loader.getExportFunction;
115
- loadJSExportFunction = loader.loadJSExportFunction;
116
- }
117
98
  var InvalieParamsError = (function (_super) {
118
99
  __extends(InvalieParamsError, _super);
119
100
  function InvalieParamsError(scope, message) {
@@ -141,46 +122,45 @@ function genContainerError(data, scope, defaultMessage) {
141
122
  error.code = (data === null || data === void 0 ? void 0 : data.code) || 'UNKNOWN_ERROR';
142
123
  return error;
143
124
  }
144
- var CloudbaseContainers = exports.CloudbaseContainers = (function () {
125
+ var CloudbaseContainers = (function () {
145
126
  function CloudbaseContainers(config) {
146
127
  var _this = this;
147
- var _a;
148
- this.config = __assign(__assign({}, config), { jsUrl: typeof config.jsUrl === 'string'
149
- ? {
150
- vm: config.jsUrl,
151
- }
152
- : config.jsUrl });
153
- if (!this.config.wasmUrl && this.config.publicKey) {
154
- }
155
- else if (!this.config.wasmUrl && !((_a = this.config.jsUrl) === null || _a === void 0 ? void 0 : _a.vm) && !globalThis.cloudbase_private_link) {
128
+ this.config = __assign({}, config);
129
+ if (!this.config.wasmUrl && !this.config.jsUrl && !window.cloudbase_private_link) {
156
130
  throw new InvalieParamsError("".concat(constants_1.COMPONENT_NAME), '缺少 privatelink sdk 地址');
157
131
  }
158
132
  if (this.config.wasmUrl) {
159
- this.wasm = getExportFunction(this.config.wasmUrl).catch(function (e) {
133
+ this.wasm = getExportFunction(this.config.wasmUrl, {
134
+ utils: {
135
+ info: function (e) {
136
+ console.log(e);
137
+ },
138
+ request: request_1.request,
139
+ },
140
+ }).catch(function (e) {
160
141
  if (_this.config.jsUrl) {
161
142
  console.warn('load wams error, fall back to use js', e);
162
143
  return loadJSExportFunction(_this.config.jsUrl);
163
144
  }
164
- if (globalThis.cloudbase_private_link) {
165
- return globalThis.cloudbase_private_link;
145
+ if (window.cloudbase_private_link) {
146
+ return window.cloudbase_private_link;
166
147
  }
167
148
  throw e;
168
149
  });
169
150
  }
170
- else if (this.config.jsUrl || this.config.publicKey) {
151
+ else if (this.config.jsUrl) {
171
152
  this.wasm = loadJSExportFunction(this.config.jsUrl);
172
153
  }
173
154
  else {
174
155
  this.wasm = Promise.resolve({
175
- initContainer: globalThis.cloudbase_private_link.initContainer,
176
- callContainer: globalThis.cloudbase_private_link.callContainer,
156
+ initContainer: window.cloudbase_private_link.initContainer,
157
+ callContainer: window.cloudbase_private_link.callContainer,
177
158
  });
178
159
  }
179
160
  }
180
161
  CloudbaseContainers.prototype.callContainer = function (options, callback) {
181
162
  return __awaiter(this, void 0, void 0, function () {
182
- var SCOPE, callContainer, _a, url, method, header, data, timeout, dataType, responseType, restOptions, res, e_1;
183
- var _b, _c, _d, _e, _f;
163
+ var SCOPE, callContainer, _a, url, _b, method, _c, header, data, _d, timeout, _e, dataType, _f, responseType, restOptions, res, e_1;
184
164
  return __generator(this, function (_g) {
185
165
  switch (_g.label) {
186
166
  case 0: return [4, this.initContainer(this.config)];
@@ -190,7 +170,7 @@ var CloudbaseContainers = exports.CloudbaseContainers = (function () {
190
170
  return [4, this.wasm];
191
171
  case 2:
192
172
  callContainer = (_g.sent()).callContainer;
193
- _a = __assign({}, options), url = _a.url, method = (_b = _a.method, _b === void 0 ? 'GET' : _b), header = (_c = _a.header, _c === void 0 ? {} : _c), data = _a.data, timeout = (_d = _a.timeout, _d === void 0 ? 60000 : _d), dataType = (_e = _a.dataType, _e === void 0 ? 'json' : _e), responseType = (_f = _a.responseType, _f === void 0 ? 'text' : _f), restOptions = __rest(_a, ["url", "method", "header", "data", "timeout", "dataType", "responseType"]);
173
+ _a = __assign({}, options), url = _a.url, _b = _a.method, method = _b === void 0 ? 'GET' : _b, _c = _a.header, header = _c === void 0 ? {} : _c, data = _a.data, _d = _a.timeout, timeout = _d === void 0 ? 60000 : _d, _e = _a.dataType, dataType = _e === void 0 ? 'json' : _e, _f = _a.responseType, responseType = _f === void 0 ? 'text' : _f, restOptions = __rest(_a, ["url", "method", "header", "data", "timeout", "dataType", "responseType"]);
194
174
  if (!url) {
195
175
  throw new InvalieParamsError(SCOPE, 'invalid request url');
196
176
  }
@@ -201,32 +181,25 @@ var CloudbaseContainers = exports.CloudbaseContainers = (function () {
201
181
  case 3:
202
182
  _g.trys.push([3, 5, , 6]);
203
183
  return [4, new Promise(function (resolve, reject) {
204
- var params = __assign({ url: url, method: method, header: header, data: (0, utils_1.serializeRequestBody)(header, data, method), timeout: timeout, dataType: dataType, responseType: responseType }, restOptions);
205
- if (data
206
- && ((0, utils_1.isBuffer)(params.data) || typeof params.data === 'string')
207
- && (data === null || data === void 0 ? void 0 : data.length) > 1000 * 1024 * 10) {
208
- reject(new InvalieParamsError(SCOPE, 'body too large'));
209
- return;
210
- }
211
- if (method === 'GET') {
212
- var getBody = params.data;
213
- if (getBody) {
214
- params.data = undefined;
215
- }
216
- if (!(0, utils_1.isBuffer)(getBody) && typeof getBody !== 'string') {
217
- var list = Object.entries(getBody || {}).reduce(function (list, _a) {
218
- var key = _a[0], value = _a[1];
219
- list.push("".concat(encodeURIComponent(key), "=").concat(encodeURIComponent(String(value))));
220
- return list;
221
- }, []);
222
- if (list.length) {
223
- getBody = list.join('&');
184
+ var params = __assign({ url: url, method: method, header: header, data: (0, utils_1.serializeRequestBody)(header, data), timeout: timeout, dataType: dataType, responseType: responseType }, restOptions);
185
+ if (params.data !== undefined && !(0, utils_1.isBuffer)(params.data)) {
186
+ if (typeof params.data !== 'string' && method === 'GET') {
187
+ try {
188
+ var list = Object.entries(params.data || {}).reduce(function (list, _a) {
189
+ var key = _a[0], value = _a[1];
190
+ list.push("".concat(encodeURIComponent(key), "=").concat(encodeURIComponent(String(value))));
191
+ return list;
192
+ }, []);
193
+ if (list.length) {
194
+ params.data = list.join('&');
195
+ }
224
196
  }
197
+ catch (e) { }
225
198
  }
226
- if (typeof params.data === 'string') {
199
+ if (method === 'GET' && typeof params.data === 'string') {
227
200
  var parsedUrl = (0, utils_1.parseURL)(url);
228
201
  if (parsedUrl.search) {
229
- parsedUrl.search += "&".concat(params.data);
202
+ parsedUrl.search += params.data;
230
203
  }
231
204
  else {
232
205
  parsedUrl.search = "?".concat(params.data);
@@ -235,6 +208,12 @@ var CloudbaseContainers = exports.CloudbaseContainers = (function () {
235
208
  params.data = undefined;
236
209
  }
237
210
  }
211
+ if (data
212
+ && ((0, utils_1.isBuffer)(params.data) || typeof params.data === 'string')
213
+ && (data === null || data === void 0 ? void 0 : data.length) > 1000 * 1024 * 10) {
214
+ reject(new InvalieParamsError(SCOPE, 'body too large'));
215
+ return;
216
+ }
238
217
  callContainer(__assign(__assign({}, params), { success: resolve, fail: function (res) {
239
218
  var data = (res || {}).data;
240
219
  reject(genContainerError(data, SCOPE, 'call container error'));
@@ -255,7 +234,6 @@ var CloudbaseContainers = exports.CloudbaseContainers = (function () {
255
234
  CloudbaseContainers.prototype.initContainer = function (config) {
256
235
  return __awaiter(this, void 0, void 0, function () {
257
236
  var initContainer;
258
- var _this = this;
259
237
  return __generator(this, function (_a) {
260
238
  switch (_a.label) {
261
239
  case 0: return [4, this.wasm];
@@ -273,7 +251,7 @@ var CloudbaseContainers = exports.CloudbaseContainers = (function () {
273
251
  },
274
252
  fail: function (res) {
275
253
  reject(genContainerError(res.data, "".concat(constants_1.COMPONENT_NAME, ".initContainer"), 'init container fail'));
276
- _this.containerInitPromise = null;
254
+ this._containerInitPromis = null;
277
255
  },
278
256
  });
279
257
  });
@@ -330,4 +308,111 @@ function registerContainers(app) {
330
308
  }
331
309
  }
332
310
  exports.registerContainers = registerContainers;
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLGtEQUFnRTtBQUNoRSxpQ0FBa0U7QUFDbEUseUNBQTRDO0FBR3BDLElBQUEsTUFBTSxHQUF5QixxQkFBUyxPQUFsQyxFQUFFLGtCQUFrQixHQUFLLHFCQUFTLG1CQUFkLENBQWM7QUFDeEMsSUFBQSxZQUFZLEdBQWdCLGlCQUFLLGFBQXJCLEVBQUUsU0FBUyxHQUFLLGlCQUFLLFVBQVYsQ0FBVTtBQUNqQyxJQUFBLG9CQUFvQixHQUFLLG1CQUFPLHFCQUFaLENBQVk7QUFHeEMsSUFBSSxpQkFBaUIsR0FBYTtJQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7QUFDMUMsQ0FBQyxDQUFBO0FBQ0QsSUFBSSxvQkFBb0IsR0FBYTtJQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7QUFDN0MsQ0FBQyxDQUFBO0FBRUQsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFO0lBQzFCLGlCQUFpQixHQUFHO1FBQ2xCLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDN0IsQ0FBQyxDQUFBO0lBQ0Qsb0JBQW9CLEdBQUcsVUFBVSxLQUFLO1FBQ3BDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtTQUM1QjtRQUNELE9BQU87WUFDTCxhQUFhLEVBQUcsVUFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhO1lBQ3ZFLGFBQWEsRUFBRyxVQUFrQixDQUFDLHNCQUFzQixDQUFDLGFBQWE7U0FDeEUsQ0FBQTtJQUNILENBQUMsQ0FBQTtDQUNGO0tBQU07SUFDTCxJQUFNLE1B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aEI7QUFDSCxDQUFDO0FBTkQsZ0RBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2xvdWRiYXNlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VDb21wb25lbnQgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IElDYWxsQ29udGFpbmVyT3B0aW9ucywgSUNvbnRpYW5lckNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29udGFpbmVyJ1xuaW1wb3J0IHsgY29uc3RhbnRzLCB1dGlscywgaGVscGVycyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuaW1wb3J0IHsgaXNCdWZmZXIsIHBhcnNlVVJMLCBzZXJpYWxpemVSZXF1ZXN0Qm9keSB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgeyBDT01QT05FTlRfTkFNRSB9IGZyb20gJy4vY29uc3RhbnRzJ1xuXG5kZWNsYXJlIGNvbnN0IGNsb3VkYmFzZTogSUNsb3VkYmFzZVxuY29uc3QgeyBFUlJPUlMsIENPTU1VTklUWV9TSVRFX1VSTCB9ID0gY29uc3RhbnRzXG5jb25zdCB7IGV4ZWNDYWxsYmFjaywgcHJpbnRXYXJuIH0gPSB1dGlsc1xuY29uc3QgeyBjYXRjaEVycm9yc0RlY29yYXRvciB9ID0gaGVscGVyc1xuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xubGV0IGdldEV4cG9ydEZ1bmN0aW9uOiBGdW5jdGlvbiA9ICgpID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKCdnZXRFeHBvcnRGdW5jdGlvbiDmnKrlrp7njrAnKVxufVxubGV0IGxvYWRKU0V4cG9ydEZ1bmN0aW9uOiBGdW5jdGlvbiA9ICgpID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKCdsb2FkSlNFeHBvcnRGdW5jdGlvbiDmnKrlrp7njrAnKVxufVxuXG5pZiAoZ2xvYmFsVGhpcy5JU19NUF9CVUlMRCkge1xuICBnZXRFeHBvcnRGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICBuZXcgRXJyb3IoJ+Wwj+eoi+W6j+S4jeaUr+aMgSB3YXNtIOWKoOi9vScpXG4gIH1cbiAgbG9hZEpTRXhwb3J0RnVuY3Rpb24gPSBmdW5jdGlvbiAoanNVcmwpIHtcbiAgICBpZiAoanNVcmwpIHtcbiAgICAgIG5ldyBFcnJvcign5bCP56iL5bqP5LiN5pSv5oyB5Yqo5oCBIGpzIOWKoOi9vScpXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpbml0Q29udGFpbmVyOiAoZ2xvYmFsVGhpcyBhcyBhbnkpLmNsb3VkYmFzZV9wcml2YXRlX2xpbmsuaW5pdENvbnRhaW5lcixcbiAgICAgIGNhbGxDb250YWluZXI6IChnbG9iYWxUaGlzIGFzIGFueSkuY2xvdWRiYXNlX3ByaXZhdGVfbGluay5jYWxsQ29udGFpbmVyLFxuICAgIH1cbiAgfVxufSBlbHNlIHtcbiAgY29uc3QgbG9hZGVyID0gcmVxdWlyZSgnLi91dGlscy9sb2FkZXInKVxuICBnZXRFeHBvcnRGdW5jdGlvbiA9IGxvYWRlci5nZXRFeHBvcnRGdW5jdGlvblxuICBsb2FkSlNFeHBvcnRGdW5jdGlvbiA9IGxvYWRlci5sb2FkSlNFeHBvcnRGdW5jdGlvblxufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuXG5jbGFzcyBJbnZhbGllUGFyYW1zRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IGFueVxuICBjb25zdHJ1Y3RvcihzY29wZSwgbWVzc2FnZSkge1xuICAgIGNvbnN0IG1zZyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgIG1zZzogYFske3Njb3BlfV0gJHttZXNzYWdlfWAsXG4gICAgfSlcbiAgICBzdXBlcihtc2cpXG4gICAgdGhpcy5jb2RlID0gRVJST1JTLklOVkFMSURfUEFSQU1TXG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiB0aGlzLmNvZGUsXG4gICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBJQ2FsbFRjYkNvbnRhaW5lck9wdGlvbnMgZXh0ZW5kcyBJQ2FsbENvbnRhaW5lck9wdGlvbnMge1xuICBzdWNjZXNzOiAocmVzOiB7IHN0YXR1c0NvZGU6IHN0cmluZyB8IG51bWJlcjsgaGVhZGVyOiBJQ2FsbENvbnRhaW5lck9wdGlvbnNbJ2hlYWRlciddOyBkYXRhOiBhbnkgfSkgPT4gdm9pZFxuICBmYWlsOiAocmVzOiB7IGRhdGE6IHsgY29kZTogbnVtYmVyOyBtZXNzYWdlOiBzdHJpbmcgfSB9KSA9PiB2b2lkXG59XG5cbmludGVyZmFjZSBJSW5pdFRjYkNvbnRhaW5lck9wdGlvbnMge1xuICBjb25maWc6IE9taXQ8SUNvbnRpYW5lckNvbmZpZywgJ3dhc21VcmwnIHwgJ2pzVXJsJz5cbiAgc3VjY2VzczogKHJlczogeyBzdGF0dXNDb2RlOiBzdHJpbmcgfCBudW1iZXI7IGhlYWRlcjogSUNhbGxDb250YWluZXJPcHRpb25zWydoZWFkZXInXTsgZGF0YTogYW55IH0pID0+IHZvaWRcbiAgZmFpbDogKHJlczogeyBkYXRhOiB7IGNvZGU6IG51bWJlcjsgbWVzc2FnZTogc3RyaW5nIH0gfSkgPT4gdm9pZFxufVxuXG5mdW5jdGlvbiBnZW5Db250YWluZXJFcnJvcihkYXRhLCBzY29wZSA9IENPTVBPTkVOVF9OQU1FLCBkZWZhdWx0TWVzc2FnZSA9ICdjYWxsIGNvbnRhaW5lciBlcnJvcicpIHtcbiAgY29uc3QgZXJyb3IgPSBkYXRhIGluc3RhbmNlb2YgRXJyb3IgPyBkYXRhIDogbmV3IEVycm9yKGBbJHtzY29wZX1dICR7ZGF0YT8ubWVzc2FnZSB8fCBkZWZhdWx0TWVzc2FnZX1gKVxuICA7KGVycm9yIGFzIGFueSkuY29kZSA9IGRhdGE/LmNvZGUgfHwgJ1VOS05PV05fRVJST1InXG4gIHJldHVybiBlcnJvclxufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRiYXNlQ29udGFpbmVycyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBJQ29udGlhbmVyQ29uZmlnICYgeyBqc1VybD86IHsgdmVuZGVyPzogc3RyaW5nOyB2bTogc3RyaW5nIH0gfVxuICBwcml2YXRlIHdhc206IFByb21pc2U8V2ViQXNzZW1ibHkuRXhwb3J0cz5cbiAgcHJpdmF0ZSBjb250YWluZXJJbml0UHJvbWlzZTogLyogUHJvbWlzZTxhbnk+Ki8gYW55IHwgbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogSUNvbnRpYW5lckNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAganNVcmw6XG4gICAgICAgIHR5cGVvZiBjb25maWcuanNVcmwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICB2bTogY29uZmlnLmpzVXJsLFxuICAgICAgICAgIH1cbiAgICAgICAgICA6IChjb25maWcuanNVcmwgYXMgYW55KSxcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnLndhc21VcmwgJiYgdGhpcy5jb25maWcucHVibGljS2V5KSB7XG4gICAgICAvLyDpnZ4gd2FtcyDkuJTmnIkgcHVibGljIGtleSDliJnlj6/kvb/nlKjpu5jorqTnmoQganMtc2Rr77yM5peg6ZyA5qCh6aqMXG4gICAgfSBlbHNlIGlmICghdGhpcy5jb25maWcud2FzbVVybCAmJiAhdGhpcy5jb25maWcuanNVcmw/LnZtICYmICEoZ2xvYmFsVGhpcyBhcyBhbnkpLmNsb3VkYmFzZV9wcml2YXRlX2xpbmspIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGllUGFyYW1zRXJyb3IoYCR7Q09NUE9ORU5UX05BTUV9YCwgJ+e8uuWwkSBwcml2YXRlbGluayBzZGsg5Zyw5Z2AJylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcud2FzbVVybCkge1xuICAgICAgdGhpcy53YXNtID0gZ2V0RXhwb3J0RnVuY3Rpb24odGhpcy5jb25maWcud2FzbVVybCkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmpzVXJsKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdsb2FkIHdhbXMgZXJyb3IsIGZhbGwgYmFjayB0byB1c2UganMnLCBlKVxuICAgICAgICAgIHJldHVybiBsb2FkSlNFeHBvcnRGdW5jdGlvbih0aGlzLmNvbmZpZy5qc1VybClcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGdsb2JhbFRoaXMgYXMgYW55KS5jbG91ZGJhc2VfcHJpdmF0ZV9saW5rKSB7XG4gICAgICAgICAgcmV0dXJuIChnbG9iYWxUaGlzIGFzIGFueSkuY2xvdWRiYXNlX3ByaXZhdGVfbGlua1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5qc1VybCB8fCB0aGlzLmNvbmZpZy5wdWJsaWNLZXkpIHtcbiAgICAgIHRoaXMud2FzbSA9IGxvYWRKU0V4cG9ydEZ1bmN0aW9uKHRoaXMuY29uZmlnLmpzVXJsKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndhc20gPSBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICBpbml0Q29udGFpbmVyOiAoZ2xvYmFsVGhpcyBhcyBhbnkpLmNsb3VkYmFzZV9wcml2YXRlX2xpbmsuaW5pdENvbnRhaW5lcixcbiAgICAgICAgY2FsbENvbnRhaW5lcjogKGdsb2JhbFRoaXMgYXMgYW55KS5jbG91ZGJhc2VfcHJpdmF0ZV9saW5rLmNhbGxDb250YWluZXIsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgY3VzdG9tSW5mbzoge1xuICAgICAgY2xhc3NOYW1lOiAnQ2xvdWRiYXNlJyxcbiAgICAgIG1ldGhvZE5hbWU6ICdjYWxsQ29udGFpbmVyJyxcbiAgICB9LFxuICAgIHRpdGxlOiAn6LCD55So5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGNhbGxDb250YWluZXIoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOWfn+WQjSAmIOi3r+W+hOaYr+WQpuWtmOWcqCcsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgY2FsbENvbnRhaW5lcihvcHRpb25zOiBJQ2FsbENvbnRhaW5lck9wdGlvbnMsIGNhbGxiYWNrPzogRnVuY3Rpb24pIHtcbiAgICBhd2FpdCB0aGlzLmluaXRDb250YWluZXIodGhpcy5jb25maWcpXG4gICAgY29uc3QgU0NPUEUgPSBgJHtDT01QT05FTlRfTkFNRX0uY2FsbENvbnRhaW5lcmBcbiAgICBjb25zdCB7IGNhbGxDb250YWluZXIgfTogeyBjYWxsQ29udGFpbmVyOiAob3B0aW9uczogSUNhbGxUY2JDb250YWluZXJPcHRpb25zKSA9PiB2b2lkIH0gPSAoYXdhaXQgdGhpcy53YXNtKSBhcyBhbnlcbiAgICBjb25zdCB7XG4gICAgICB1cmwsXG4gICAgICBtZXRob2QgPSAnR0VUJyxcbiAgICAgIGhlYWRlciA9IHt9LFxuICAgICAgZGF0YSxcbiAgICAgIHRpbWVvdXQgPSA2MDAwMCxcbiAgICAgIGRhdGFUeXBlID0gJ2pzb24nLFxuICAgICAgcmVzcG9uc2VUeXBlID0gJ3RleHQnLFxuICAgICAgLi4ucmVzdE9wdGlvbnNcbiAgICB9ID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9XG5cbiAgICBpZiAoIXVybCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWVQYXJhbXNFcnJvcihTQ09QRSwgJ2ludmFsaWQgcmVxdWVzdCB1cmwnKVxuICAgIH1cblxuICAgIGlmICghbWV0aG9kKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZVBhcmFtc0Vycm9yKFNDT1BFLCAnaW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpXG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgaGVhZGVyLFxuICAgICAgICAgIGRhdGE6IHNlcmlhbGl6ZVJlcXVlc3RCb2R5KGhlYWRlciwgZGF0YSwgbWV0aG9kKSxcbiAgICAgICAgICB0aW1lb3V0LFxuICAgICAgICAgIGRhdGFUeXBlLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZSxcbiAgICAgICAgICAuLi5yZXN0T3B0aW9ucyxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBkYXRhXG4gICAgICAgICAgJiYgKGlzQnVmZmVyKHBhcmFtcy5kYXRhKSB8fCB0eXBlb2YgcGFyYW1zLmRhdGEgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICYmIChkYXRhIGFzIGFueSk/Lmxlbmd0aCA+IDEwMDAgKiAxMDI0ICogMTBcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmVqZWN0KG5ldyBJbnZhbGllUGFyYW1zRXJyb3IoU0NPUEUsICdib2R5IHRvbyBsYXJnZScpKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgICAgICBsZXQgeyBkYXRhOiBnZXRCb2R5IH0gPSBwYXJhbXNcbiAgICAgICAgICBpZiAoZ2V0Qm9keSkge1xuICAgICAgICAgICAgcGFyYW1zLmRhdGEgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc0J1ZmZlcihnZXRCb2R5KSAmJiB0eXBlb2YgZ2V0Qm9keSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBPYmplY3QuZW50cmllcyhnZXRCb2R5IHx8IHt9KS5yZWR1Y2UoXG4gICAgICAgICAgICAgIChsaXN0LCBba2V5LCB2YWx1ZV06IFtzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW5dKSA9PiB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKGAke2VuY29kZVVSSUNvbXBvbmVudChrZXkpfT0ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcodmFsdWUpKX1gKVxuICAgICAgICAgICAgICAgIHJldHVybiBsaXN0XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKGxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGdldEJvZHkgPSBsaXN0LmpvaW4oJyYnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW1zLmRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRVcmwgPSBwYXJzZVVSTCh1cmwpXG4gICAgICAgICAgICBpZiAocGFyc2VkVXJsLnNlYXJjaCkge1xuICAgICAgICAgICAgICBwYXJzZWRVcmwuc2VhcmNoICs9IGAmJHtwYXJhbXMuZGF0YX1gXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwYXJzZWRVcmwuc2VhcmNoID0gYD8ke3BhcmFtcy5kYXRhfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtcy51cmwgPSBwYXJzZWRVcmwuaHJlZlxuICAgICAgICAgICAgcGFyYW1zLmRhdGEgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjYWxsQ29udGFpbmVyKHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgc3VjY2VzczogcmVzb2x2ZSxcbiAgICAgICAgICBmYWlsOiAocmVzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEgfSA9IHJlcyB8fCB7fVxuICAgICAgICAgICAgcmVqZWN0KGdlbkNvbnRhaW5lckVycm9yKGRhdGEsIFNDT1BFLCAnY2FsbCBjb250YWluZXIgZXJyb3InKSlcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIG51bGwsIHJlcylcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIGUpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW5pdENvbnRhaW5lcihjb25maWc6IE9taXQ8SUNvbnRpYW5lckNvbmZpZywgJ3dhc21VcmwnIHwgJ2pzVXJsJz4pIHtcbiAgICBjb25zdCB7IGluaXRDb250YWluZXIgfTogeyBpbml0Q29udGFpbmVyOiAob3B0aW9uczogSUluaXRUY2JDb250YWluZXJPcHRpb25zKSA9PiB2b2lkIH0gPSAoYXdhaXQgdGhpcy53YXNtKSBhcyBhbnlcbiAgICBpZiAoIXRoaXMuY29udGFpbmVySW5pdFByb21pc2UpIHtcbiAgICAgIHRoaXMuY29udGFpbmVySW5pdFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGluaXRDb250YWluZXIoe1xuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoU3RyaW5nKHJlcy5zdGF0dXNDb2RlKSAhPT0gJzIwMCcpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGdlbkNvbnRhaW5lckVycm9yKHJlcy5kYXRhLCBgJHtDT01QT05FTlRfTkFNRX0uaW5pdENvbnRhaW5lcmAsICdpbml0IGNvbnRhaW5lciBmYWlsJykpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZhaWw6IChyZXMpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChnZW5Db250YWluZXJFcnJvcihyZXMuZGF0YSwgYCR7Q09NUE9ORU5UX05BTUV9LmluaXRDb250YWluZXJgLCAnaW5pdCBjb250YWluZXIgZmFpbCcpKVxuICAgICAgICAgICAgdGhpcy5jb250YWluZXJJbml0UHJvbWlzZSA9IG51bGxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb250YWluZXJJbml0UHJvbWlzZVxuICB9XG59XG5cbmNvbnN0IGNvbXBvbmVudDogSUNsb3VkYmFzZUNvbXBvbmVudCA9IHtcbiAgbmFtZTogQ09NUE9ORU5UX05BTUUsXG4gIG5hbWVzcGFjZTogJ2NvbnRhaW5lcicsXG4gIGVudGl0eShjb25maWc6IElDb250aWFuZXJDb25maWcpIHtcbiAgICBpZiAodGhpcy5jb250YWluZXJJbnN0YW5jZSkge1xuICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX09QRVJBVElPTiwgJ2V2ZXJ5IGNsb3VkYmFzZSBpbnN0YW5jZSBzaG91bGQgaGFzIG9ubHkgb25lIGNvbnRhaW5lciBvYmplY3QnKVxuICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVySW5zdGFuY2VcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBDbG91ZGJhc2VDb250YWluZXJzKGNvbmZpZylcbiAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlID0gaW5zdGFuY2VcbiAgICB0aGlzLmNhbGxDb250YWluZXIgPSBpbnN0YW5jZS5jYWxsQ29udGFpbmVyLmJpbmQoaW5zdGFuY2UpXG5cbiAgICByZXR1cm4gdGhpcy5jb250YWluZXJJbnN0YW5jZVxuICB9LFxufVxudHJ5IHtcbiAgY2xvdWRiYXNlLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudClcbn0gY2F0Y2ggKGUpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckNvbnRhaW5lcnMoYXBwOiBQaWNrPElDbG91ZGJhc2UsICdyZWdpc3RlckNvbXBvbmVudCc+KSB7XG4gIHRyeSB7XG4gICAgYXBwLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUud2FybihlKVxuICB9XG59XG4iXX0=
311
+ function getExportFunction(url, module, mode) {
312
+ if (mode === void 0) { mode = 'go'; }
313
+ return __awaiter(this, void 0, void 0, function () {
314
+ function instantiateStreaming(resp, importObject, brotliCompressed) {
315
+ if (brotliCompressed === void 0) { brotliCompressed = false; }
316
+ return __awaiter(this, void 0, void 0, function () {
317
+ var source, buffer;
318
+ return __generator(this, function (_a) {
319
+ switch (_a.label) {
320
+ case 0:
321
+ if (!(brotliCompressed || !WebAssembly.instantiateStreaming)) return [3, 3];
322
+ return [4, resp];
323
+ case 1: return [4, (_a.sent()).arrayBuffer()];
324
+ case 2:
325
+ source = _a.sent();
326
+ buffer = brotliCompressed ? (0, decompress_1.default)(new Int8Array(source)) : source;
327
+ return [2, WebAssembly.instantiate(buffer, importObject)];
328
+ case 3: return [2, WebAssembly.instantiateStreaming(resp, importObject)];
329
+ }
330
+ });
331
+ });
332
+ }
333
+ var importObject, go, brotliCompressed, reuslt;
334
+ return __generator(this, function (_a) {
335
+ switch (_a.label) {
336
+ case 0:
337
+ importObject = __assign({ env: {
338
+ memoryBase: 0,
339
+ tableBase: 0,
340
+ memory: new WebAssembly.Memory({
341
+ initial: 256,
342
+ }),
343
+ } }, module);
344
+ brotliCompressed = isBrotliCompressed(url);
345
+ if (mode === 'go') {
346
+ go = new go_wams_exec_1.default();
347
+ go._initedModulePromise = new Promise(function (resolve) {
348
+ go._initedModuleResolve = resolve;
349
+ });
350
+ importObject = __assign(__assign({}, go.importObject), { env: __assign(__assign({}, go.importObject.env), { exportModule: function (module) {
351
+ return go._initedModuleResolve(module);
352
+ } }) });
353
+ }
354
+ return [4, instantiateStreaming(fetch(url), importObject, brotliCompressed)];
355
+ case 1:
356
+ reuslt = _a.sent();
357
+ if (!(mode === 'go')) return [3, 3];
358
+ return [4, Promise.race([
359
+ go.run(reuslt.instance),
360
+ new Promise(function (resolve) { return setTimeout(function () {
361
+ resolve(null);
362
+ }, 500); }),
363
+ ])];
364
+ case 2:
365
+ _a.sent();
366
+ return [2, {
367
+ callContainer: window.callContainer,
368
+ initContainer: window.initContainer,
369
+ }];
370
+ case 3: return [2, reuslt.instance.exports];
371
+ }
372
+ });
373
+ });
374
+ }
375
+ function loadUmdModule(jsUrl, umdModuleName, targetDoc) {
376
+ if (targetDoc === void 0) { targetDoc = document; }
377
+ return new Promise(function (resolve, reject) {
378
+ var win = targetDoc.defaultView;
379
+ var script = targetDoc.createElement('script');
380
+ script.setAttribute('src', jsUrl);
381
+ script.setAttribute('class', umdModuleName);
382
+ script.addEventListener('load', function () {
383
+ if (Object.prototype.hasOwnProperty.call(win, umdModuleName)) {
384
+ return resolve(win[umdModuleName]);
385
+ }
386
+ var error = new Error("Fail to load UMD module ".concat(umdModuleName, " from [").concat(jsUrl, "]."));
387
+ return reject(error);
388
+ });
389
+ script.addEventListener('error', function (e) {
390
+ var error = new Error("main bundle [".concat(umdModuleName, "] load failed from [").concat(jsUrl, "]: ").concat((e === null || e === void 0 ? void 0 : e.message) || ''));
391
+ reject(error);
392
+ });
393
+ targetDoc.body.appendChild(script);
394
+ });
395
+ }
396
+ function loadJSExportFunction(url) {
397
+ return __awaiter(this, void 0, void 0, function () {
398
+ return __generator(this, function (_a) {
399
+ return [2, loadUmdModule(url, 'cloudbase_private_link')];
400
+ });
401
+ });
402
+ }
403
+ function isBrotliCompressed(url) {
404
+ var brotliCompressed = false;
405
+ var pathname = '';
406
+ try {
407
+ var location_1 = (0, utils_1.parseURL)(url);
408
+ pathname = location_1.pathname;
409
+ }
410
+ catch (e) {
411
+ pathname = url;
412
+ }
413
+ if (/\.br$/.test(pathname)) {
414
+ brotliCompressed = true;
415
+ }
416
+ return brotliCompressed;
417
+ }
418
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLGtEQUFnRTtBQUVoRSxpRUFBMEM7QUFFMUMsZ0VBQStCO0FBQy9CLGlDQUFrRTtBQUNsRSwyQ0FBeUM7QUFDekMseUNBQTRDO0FBSXBDLElBQUEsTUFBTSxHQUF5QixxQkFBUyxPQUFsQyxFQUFFLGtCQUFrQixHQUFLLHFCQUFTLG1CQUFkLENBQWM7QUFDeEMsSUFBQSxZQUFZLEdBQWdCLGlCQUFLLGFBQXJCLEVBQUUsU0FBUyxHQUFLLGlCQUFLLFVBQVYsQ0FBVTtBQUNqQyxJQUFBLG9CQUFvQixHQUFLLG1CQUFPLHFCQUFaLENBQVk7QUFFeEM7SUFBaUMsc0NBQUs7SUFFcEMsNEJBQVksS0FBSyxFQUFFLE9BQU87UUFBMUIsaUJBT0M7UUFOQyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYztZQUMzQixHQUFHLEVBQUUsV0FBSSxLQUFLLGVBQUssT0FBTyxDQUFFO1NBQzdCLENBQUMsQ0FBQTtnQkFDRixrQkFBTSxHQUFHLENBQUM7UUFDVixLQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUE7O0lBQ25DLENBQUM7SUFDRCxtQ0FBTSxHQUFOO1FBQ0UsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUNILHlCQUFDO0FBQUQsQ0FBQyxBQWhCRCxDQUFpQyxLQUFLLEdBZ0JyQztBQWFELFNBQVMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQXNCLEVBQUUs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VyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3BDLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELFNBQWUsb0JBQW9CLENBQUMsR0FBRzs7O1lBQ3JDLFdBQU8sYUFBYSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFBOzs7Q0FDcEQ7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEdBQUc7SUFDN0IsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7SUFFNUIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFBO0lBQ2pCLElBQUk7UUFDRixJQUFNLFVBQVEsR0FBRyxJQUFBLGdCQUFRLEVBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUIsUUFBUSxHQUFHLFVBQVEsQ0FBQyxRQUFRLENBQUE7S0FDN0I7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLFFBQVEsR0FBRyxHQUFHLENBQUE7S0FDZjtJQUVELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMxQixnQkFBZ0IsR0FBRyxJQUFJLENBQUE7S0FDeEI7SUFDRCxPQUFPLGdCQUFnQixDQUFBO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2xvdWRiYXNlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VDb21wb25lbnQgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IElDYWxsQ29udGFpbmVyT3B0aW9ucywgSUNvbnRpYW5lckNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29udGFpbmVyJ1xuaW1wb3J0IHsgY29uc3RhbnRzLCB1dGlscywgaGVscGVycyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuLy8gaW1wb3J0IGJyb3RsaVByb21pc2UgZnJvbSAnYnJvdGxpLWRlYy13YXNtJyAvLyBJbXBvcnQgdGhlIGRlZmF1bHQgZXhwb3J0XG5pbXBvcnQgZGVjb21wcmVzcyBmcm9tICdicm90bGkvZGVjb21wcmVzcydcblxuaW1wb3J0IEdvIGZyb20gJy4vZ29fd2Ftc19leGVjJ1xuaW1wb3J0IHsgaXNCdWZmZXIsIHBhcnNlVVJMLCBzZXJpYWxpemVSZXF1ZXN0Qm9keSB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgeyByZXF1ZXN0IH0gZnJvbSAnLi91dGlscy9yZXF1ZXN0J1xuaW1wb3J0IHsgQ09NUE9ORU5UX05BTUUgfSBmcm9tICcuL2NvbnN0YW50cydcblxuZGVjbGFyZSBjb25zdCBjbG91ZGJhc2U6IElDbG91ZGJhc2VcblxuY29uc3QgeyBFUlJPUlMsIENPTU1VTklUWV9TSVRFX1VSTCB9ID0gY29uc3RhbnRzXG5jb25zdCB7IGV4ZWNDYWxsYmFjaywgcHJpbnRXYXJuIH0gPSB1dGlsc1xuY29uc3QgeyBjYXRjaEVycm9yc0RlY29yYXRvciB9ID0gaGVscGVyc1xuXG5jbGFzcyBJbnZhbGllUGFyYW1zRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IGFueVxuICBjb25zdHJ1Y3RvcihzY29wZSwgbWVzc2FnZSkge1xuICAgIGNvbnN0IG1zZyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgIG1zZzogYFske3Njb3BlfV0gJHttZXNzYWdlfWAsXG4gICAgfSlcbiAgICBzdXBlcihtc2cpXG4gICAgdGhpcy5jb2RlID0gRVJST1JTLklOVkFMSURfUEFSQU1TXG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiB0aGlzLmNvZGUsXG4gICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBJQ2FsbFRjYkNvbnRhaW5lck9wdGlvbnMgZXh0ZW5kcyBJQ2FsbENvbnRhaW5lck9wdGlvbnMge1xuICBzdWNjZXNzOiAocmVzOiB7IHN0YXR1c0NvZGU6IHN0cmluZyB8IG51bWJlcjsgaGVhZGVyOiBJQ2FsbENvbnRhaW5lck9wdGlvbnNbJ2hlYWRlciddOyBkYXRhOiBhbnkgfSkgPT4gdm9pZFxuICBmYWlsOiAocmVzOiB7IGRhdGE6IHsgY29kZTogbnVtYmVyOyBtZXNzYWdlOiBzdHJpbmcgfSB9KSA9PiB2b2lkXG59XG5cbmludGVyZmFjZSBJSW5pdFRjYkNvbnRhaW5lck9wdGlvbnMge1xuICBjb25maWc6IE9taXQ8SUNvbnRpYW5lckNvbmZpZywgJ3dhc21VcmwnIHwgJ2pzVXJsJz5cbiAgc3VjY2VzczogKHJlczogeyBzdGF0dXNDb2RlOiBzdHJpbmcgfCBudW1iZXI7IGhlYWRlcjogSUNhbGxDb250YWluZXJPcHRpb25zWydoZWFkZXInXTsgZGF0YTogYW55IH0pID0+IHZvaWRcbiAgZmFpbDogKHJlczogeyBkYXRhOiB7IGNvZGU6IG51bWJlcjsgbWVzc2FnZTogc3RyaW5nIH0gfSkgPT4gdm9pZFxufVxuXG5mdW5jdGlvbiBnZW5Db250YWluZXJFcnJvcihkYXRhLCBzY29wZSA9IENPTVBPTkVOVF9OQU1FLCBkZWZhdWx0TWVzc2FnZSA9ICdjYWxsIGNvbnRhaW5lciBlcnJvcicpIHtcbiAgY29uc3QgZXJyb3IgPSBkYXRhIGluc3RhbmNlb2YgRXJyb3IgPyBkYXRhIDogbmV3IEVycm9yKGBbJHtzY29wZX1dICR7ZGF0YT8ubWVzc2FnZSB8fCBkZWZhdWx0TWVzc2FnZX1gKVxuICA7KGVycm9yIGFzIGFueSkuY29kZSA9IGRhdGE/LmNvZGUgfHwgJ1VOS05PV05fRVJST1InXG4gIHJldHVybiBlcnJvclxufVxuXG5jbGFzcyBDbG91ZGJhc2VDb250YWluZXJzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IElDb250aWFuZXJDb25maWdcbiAgcHJpdmF0ZSB3YXNtOiBQcm9taXNlPFdlYkFzc2VtYmx5LkV4cG9ydHM+XG4gIHByaXZhdGUgY29udGFpbmVySW5pdFByb21pc2U6IC8qIFByb21pc2U8YW55PiovIGFueSB8IG51bGxcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IElDb250aWFuZXJDb25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnLndhc21VcmwgJiYgIXRoaXMuY29uZmlnLmpzVXJsICYmICEod2luZG93IGFzIGFueSkuY2xvdWRiYXNlX3ByaXZhdGVfbGluaykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWVQYXJhbXNFcnJvcihgJHtDT01QT05FTlRfTkFNRX1gLCAn57y65bCRIHByaXZhdGVsaW5rIHNkayDlnLDlnYAnKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy53YXNtVXJsKSB7XG4gICAgICB0aGlzLndhc20gPSBnZXRFeHBvcnRGdW5jdGlvbih0aGlzLmNvbmZpZy53YXNtVXJsLCB7XG4gICAgICAgIHV0aWxzOiB7XG4gICAgICAgICAgaW5mbyhlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgfSxcbiAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5qc1VybCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybignbG9hZCB3YW1zIGVycm9yLCBmYWxsIGJhY2sgdG8gdXNlIGpzJywgZSlcbiAgICAgICAgICByZXR1cm4gbG9hZEpTRXhwb3J0RnVuY3Rpb24odGhpcy5jb25maWcuanNVcmwpXG4gICAgICAgIH0gaWYgKCh3aW5kb3cgYXMgYW55KS5jbG91ZGJhc2VfcHJpdmF0ZV9saW5rKSB7XG4gICAgICAgICAgcmV0dXJuICh3aW5kb3cgYXMgYW55KS5jbG91ZGJhc2VfcHJpdmF0ZV9saW5rXG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZVxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLmpzVXJsKSB7XG4gICAgICB0aGlzLndhc20gPSBsb2FkSlNFeHBvcnRGdW5jdGlvbih0aGlzLmNvbmZpZy5qc1VybClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53YXNtID0gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgaW5pdENvbnRhaW5lcjogKHdpbmRvdyBhcyBhbnkpLmNsb3VkYmFzZV9wcml2YXRlX2xpbmsuaW5pdENvbnRhaW5lcixcbiAgICAgICAgY2FsbENvbnRhaW5lcjogKHdpbmRvdyBhcyBhbnkpLmNsb3VkYmFzZV9wcml2YXRlX2xpbmsuY2FsbENvbnRhaW5lcixcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBjdXN0b21JbmZvOiB7XG4gICAgICBjbGFzc05hbWU6ICdDbG91ZGJhc2UnLFxuICAgICAgbWV0aG9kTmFtZTogJ2NhbGxDb250YWluZXInLFxuICAgIH0sXG4gICAgdGl0bGU6ICfosIPnlKjlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggY2FsbENvbnRhaW5lcigpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5Z+f5ZCNICYg6Lev5b6E5piv5ZCm5a2Y5ZyoJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBjYWxsQ29udGFpbmVyKG9wdGlvbnM6IElDYWxsQ29udGFpbmVyT3B0aW9ucywgY2FsbGJhY2s/OiBGdW5jdGlvbikge1xuICAgIGF3YWl0IHRoaXMuaW5pdENvbnRhaW5lcih0aGlzLmNvbmZpZylcbiAgICBjb25zdCBTQ09QRSA9IGAke0NPTVBPTkVOVF9OQU1FfS5jYWxsQ29udGFpbmVyYFxuICAgIGNvbnN0IHsgY2FsbENvbnRhaW5lciB9OiB7IGNhbGxDb250YWluZXI6IChvcHRpb25zOiBJQ2FsbFRjYkNvbnRhaW5lck9wdGlvbnMpID0+IHZvaWQgfSA9IChhd2FpdCB0aGlzLndhc20pIGFzIGFueVxuICAgIGNvbnN0IHtcbiAgICAgIHVybCxcbiAgICAgIG1ldGhvZCA9ICdHRVQnLFxuICAgICAgaGVhZGVyID0ge30sXG4gICAgICBkYXRhLFxuICAgICAgdGltZW91dCA9IDYwMDAwLFxuICAgICAgZGF0YVR5cGUgPSAnanNvbicsXG4gICAgICByZXNwb25zZVR5cGUgPSAndGV4dCcsXG4gICAgICAuLi5yZXN0T3B0aW9uc1xuICAgIH0gPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgIH1cblxuICAgIGlmICghdXJsKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZVBhcmFtc0Vycm9yKFNDT1BFLCAnaW52YWxpZCByZXF1ZXN0IHVybCcpXG4gICAgfVxuXG4gICAgaWYgKCFtZXRob2QpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGllUGFyYW1zRXJyb3IoU0NPUEUsICdpbnZhbGlkIHJlcXVlc3QgbWV0aG9kJylcbiAgICB9XG5cbiAgICAvLyBAdHMtaWdub3JlXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBoZWFkZXIsXG4gICAgICAgICAgZGF0YTogc2VyaWFsaXplUmVxdWVzdEJvZHkoaGVhZGVyLCBkYXRhKSxcbiAgICAgICAgICB0aW1lb3V0LFxuICAgICAgICAgIGRhdGFUeXBlLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZSxcbiAgICAgICAgICAuLi5yZXN0T3B0aW9ucyxcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDpnZ4gYnVmZmVyXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocGFyYW1zLmRhdGEgIT09IHVuZGVmaW5lZCAmJiAhaXNCdWZmZXIocGFyYW1zLmRhdGEpKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBwYXJhbXMuZGF0YSAhPT0gJ3N0cmluZycgJiYgbWV0aG9kID09PSAnR0VUJykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IE9iamVjdC5lbnRyaWVzKHBhcmFtcy5kYXRhIHx8IHt9KS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGxpc3QsIFtrZXksIHZhbHVlXTogW3N0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbl0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGxpc3QucHVzaChgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5KX09JHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHZhbHVlKSl9YClcbiAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAobGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZGF0YSA9IGxpc3Quam9pbignJicpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcgJiYgdHlwZW9mIHBhcmFtcy5kYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkVXJsID0gcGFyc2VVUkwodXJsKVxuICAgICAgICAgICAgaWYgKHBhcnNlZFVybC5zZWFyY2gpIHtcbiAgICAgICAgICAgICAgcGFyc2VkVXJsLnNlYXJjaCArPSBwYXJhbXMuZGF0YVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGFyc2VkVXJsLnNlYXJjaCA9IGA/JHtwYXJhbXMuZGF0YX1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJhbXMudXJsID0gcGFyc2VkVXJsLmhyZWZcbiAgICAgICAgICAgIHBhcmFtcy5kYXRhID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRhdGFcbiAgICAgICAgICAmJiAoaXNCdWZmZXIocGFyYW1zLmRhdGEpIHx8IHR5cGVvZiBwYXJhbXMuZGF0YSA9PT0gJ3N0cmluZycpXG4gICAgICAgICAgJiYgKGRhdGEgYXMgYW55KT8ubGVuZ3RoID4gMTAwMCAqIDEwMjQgKiAxMFxuICAgICAgICApIHtcbiAgICAgICAgICByZWplY3QobmV3IEludmFsaWVQYXJhbXNFcnJvcihTQ09QRSwgJ2JvZHkgdG9vIGxhcmdlJykpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjYWxsQ29udGFpbmVyKHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgc3VjY2VzczogcmVzb2x2ZSxcbiAgICAgICAgICBmYWlsOiAocmVzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGEgfSA9IHJlcyB8fCB7fVxuICAgICAgICAgICAgcmVqZWN0KGdlbkNvbnRhaW5lckVycm9yKGRhdGEsIFNDT1BFLCAnY2FsbCBjb250YWluZXIgZXJyb3InKSlcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIG51bGwsIHJlcylcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIGUpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW5pdENvbnRhaW5lcihjb25maWc6IE9taXQ8SUNvbnRpYW5lckNvbmZpZywgJ3dhc21VcmwnIHwgJ2pzVXJsJz4pIHtcbiAgICBjb25zdCB7IGluaXRDb250YWluZXIgfTogeyBpbml0Q29udGFpbmVyOiAob3B0aW9uczogSUluaXRUY2JDb250YWluZXJPcHRpb25zKSA9PiB2b2lkIH0gPSAoYXdhaXQgdGhpcy53YXNtKSBhcyBhbnlcbiAgICBpZiAoIXRoaXMuY29udGFpbmVySW5pdFByb21pc2UpIHtcbiAgICAgIHRoaXMuY29udGFpbmVySW5pdFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGluaXRDb250YWluZXIoe1xuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBzdWNjZXNzKHJlcykge1xuICAgICAgICAgICAgaWYgKFN0cmluZyhyZXMuc3RhdHVzQ29kZSkgIT09ICcyMDAnKSB7XG4gICAgICAgICAgICAgIHJlamVjdChnZW5Db250YWluZXJFcnJvcihyZXMuZGF0YSwgYCR7Q09NUE9ORU5UX05BTUV9LmluaXRDb250YWluZXJgLCAnaW5pdCBjb250YWluZXIgZmFpbCcpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmYWlsKHJlcykge1xuICAgICAgICAgICAgcmVqZWN0KGdlbkNvbnRhaW5lckVycm9yKHJlcy5kYXRhLCBgJHtDT01QT05FTlRfTkFNRX0uaW5pdENvbnRhaW5lcmAsICdpbml0IGNvbnRhaW5lciBmYWlsJykpXG4gICAgICAgICAgICB0aGlzLl9jb250YWluZXJJbml0UHJvbWlzID0gbnVsbFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lckluaXRQcm9taXNlXG4gIH1cbn1cblxuY29uc3QgY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50ID0ge1xuICBuYW1lOiBDT01QT05FTlRfTkFNRSxcbiAgbmFtZXNwYWNlOiAnY29udGFpbmVyJyxcbiAgZW50aXR5KGNvbmZpZzogSUNvbnRpYW5lckNvbmZpZykge1xuICAgIGlmICh0aGlzLmNvbnRhaW5lckluc3RhbmNlKSB7XG4gICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfT1BFUkFUSU9OLCAnZXZlcnkgY2xvdWRiYXNlIGluc3RhbmNlIHNob3VsZCBoYXMgb25seSBvbmUgY29udGFpbmVyIG9iamVjdCcpXG4gICAgICByZXR1cm4gdGhpcy5jb250YWluZXJJbnN0YW5jZVxuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IENsb3VkYmFzZUNvbnRhaW5lcnMoY29uZmlnKVxuICAgIHRoaXMuY29udGFpbmVySW5zdGFuY2UgPSBpbnN0YW5jZVxuICAgIHRoaXMuY2FsbENvbnRhaW5lciA9IGluc3RhbmNlLmNhbGxDb250YWluZXIuYmluZChpbnN0YW5jZSlcblxuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lckluc3RhbmNlXG4gIH0sXG59XG50cnkge1xuICBjbG91ZGJhc2UucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxufSBjYXRjaCAoZSkge31cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udGFpbmVycyhhcHA6IFBpY2s8SUNsb3VkYmFzZSwgJ3JlZ2lzdGVyQ29tcG9uZW50Jz4pIHtcbiAgdHJ5IHtcbiAgICBhcHAucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0RXhwb3J0RnVuY3Rpb24odXJsLCBtb2R1bGUsIG1vZGUgPSAnZ28nKSB7XG4gIGFzeW5jIGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RyZWFtaW5nKHJlc3AsIGltcG9ydE9iamVjdCwgYnJvdGxpQ29tcHJlc3NlZCA9IGZhbHNlKSB7XG4gICAgaWYgKGJyb3RsaUNvbXByZXNzZWQgfHwgIVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKSB7XG4gICAgICBjb25zdCBzb3VyY2UgPSBhd2FpdCAoYXdhaXQgcmVzcCkuYXJyYXlCdWZmZXIoKVxuICAgICAgY29uc3QgYnVmZmVyID0gYnJvdGxpQ29tcHJlc3NlZCA/IGRlY29tcHJlc3MobmV3IEludDhBcnJheShzb3VyY2UpKSA6IHNvdXJjZVxuICAgICAgcmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGJ1ZmZlciwgaW1wb3J0T2JqZWN0KVxuICAgIH1cblxuICAgIHJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhyZXNwLCBpbXBvcnRPYmplY3QpXG4gIH1cblxuICBsZXQgaW1wb3J0T2JqZWN0ID0ge1xuICAgIGVudjoge1xuICAgICAgbWVtb3J5QmFzZTogMCxcbiAgICAgIHRhYmxlQmFzZTogMCxcbiAgICAgIG1lbW9yeTogbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7XG4gICAgICAgIGluaXRpYWw6IDI1NixcbiAgICAgIH0pLFxuICAgICAgLy8gdGFibGU6IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7XG4gICAgICAvLyAgIGluaXRpYWw6IDIsXG4gICAgICAvLyAgIGVsZW1lbnQ6ICdhbnlmdW5jJyxcbiAgICAgIC8vIH0pLFxuICAgIH0sXG4gICAgLi4ubW9kdWxlLFxuICB9XG4gIGxldCBnb1xuICBjb25zdCBicm90bGlDb21wcmVzc2VkID0gaXNCcm90bGlDb21wcmVzc2VkKHVybClcblxuICBpZiAobW9kZSA9PT0gJ2dvJykge1xuICAgIGdvID0gbmV3IEdvKClcbiAgICBnby5faW5pdGVkTW9kdWxlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBnby5faW5pdGVkTW9kdWxlUmVzb2x2ZSA9IHJlc29sdmVcbiAgICB9KVxuICAgIGltcG9ydE9iamVjdCA9IHtcbiAgICAgIC4uLmdvLmltcG9ydE9iamVjdCxcbiAgICAgIGVudjoge1xuICAgICAgICAuLi5nby5pbXBvcnRPYmplY3QuZW52LFxuICAgICAgICBleHBvcnRNb2R1bGUobW9kdWxlKSB7XG4gICAgICAgICAgcmV0dXJuIGdvLl9pbml0ZWRNb2R1bGVSZXNvbHZlKG1vZHVsZSlcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1c2x0ID0gYXdhaXQgaW5zdGFudGlhdGVTdHJlYW1pbmcoZmV0Y2godXJsKSwgaW1wb3J0T2JqZWN0LCBicm90bGlDb21wcmVzc2VkKVxuXG4gIGlmIChtb2RlID09PSAnZ28nKSB7XG4gICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgIGdvLnJ1bihyZXVzbHQuaW5zdGFuY2UpLFxuICAgICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShudWxsKVxuICAgICAgfSwgNTAwKSwpLFxuICAgIF0pXG5cbiAgICByZXR1cm4ge1xuICAgICAgY2FsbENvbnRhaW5lcjogKHdpbmRvdyBhcyBhbnkpLmNhbGxDb250YWluZXIsXG4gICAgICBpbml0Q29udGFpbmVyOiAod2luZG93IGFzIGFueSkuaW5pdENvbnRhaW5lcixcbiAgICB9XG4gIH1cblxuICAvLyBpZiAobW9kZSA9PT0gJ2dvJykge1xuICAvLyAgIGdvLnJ1bihyZXVzbHQuaW5zdGFuY2UpXG4gIC8vICAgY29uc3QgbW9kdWxlID0gYXdhaXQgZ28uX2luaXRlZE1vZHVsZVByb21pc2VcbiAgLy8gICByZXR1cm4gbW9kdWxlXG4gIC8vIH1cblxuICByZXR1cm4gcmV1c2x0Lmluc3RhbmNlLmV4cG9ydHNcbn1cblxuZnVuY3Rpb24gbG9hZFVtZE1vZHVsZShqc1VybDogc3RyaW5nLCB1bWRNb2R1bGVOYW1lOiBzdHJpbmcsIHRhcmdldERvYzogRG9jdW1lbnQgPSBkb2N1bWVudCkge1xuICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgd2luID0gdGFyZ2V0RG9jLmRlZmF1bHRWaWV3XG5cbiAgICBjb25zdCBzY3JpcHQgPSB0YXJnZXREb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdzcmMnLCBqc1VybClcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdjbGFzcycsIHVtZE1vZHVsZU5hbWUpXG4gICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHdpbiwgdW1kTW9kdWxlTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUod2luW3VtZE1vZHVsZU5hbWUgYXMgYW55XSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBGYWlsIHRvIGxvYWQgVU1EIG1vZHVsZSAke3VtZE1vZHVsZU5hbWV9IGZyb20gWyR7anNVcmx9XS5gKVxuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcilcbiAgICB9KVxuXG4gICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBtYWluIGJ1bmRsZSBbJHt1bWRNb2R1bGVOYW1lfV0gbG9hZCBmYWlsZWQgZnJvbSBbJHtqc1VybH1dOiAke2U/Lm1lc3NhZ2UgfHwgJyd9YClcbiAgICAgIHJlamVjdChlcnJvcilcbiAgICB9KVxuICAgIHRhcmdldERvYy5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdClcbiAgfSlcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZEpTRXhwb3J0RnVuY3Rpb24odXJsKSB7XG4gIHJldHVybiBsb2FkVW1kTW9kdWxlKHVybCwgJ2Nsb3VkYmFzZV9wcml2YXRlX2xpbmsnKVxufVxuXG5mdW5jdGlvbiBpc0Jyb3RsaUNvbXByZXNzZWQodXJsKSB7XG4gIGxldCBicm90bGlDb21wcmVzc2VkID0gZmFsc2VcblxuICBsZXQgcGF0aG5hbWUgPSAnJ1xuICB0cnkge1xuICAgIGNvbnN0IGxvY2F0aW9uID0gcGFyc2VVUkwodXJsKVxuICAgIHBhdGhuYW1lID0gbG9jYXRpb24ucGF0aG5hbWVcbiAgfSBjYXRjaCAoZSkge1xuICAgIHBhdGhuYW1lID0gdXJsXG4gIH1cblxuICBpZiAoL1xcLmJyJC8udGVzdChwYXRobmFtZSkpIHtcbiAgICBicm90bGlDb21wcmVzc2VkID0gdHJ1ZVxuICB9XG4gIHJldHVybiBicm90bGlDb21wcmVzc2VkXG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export declare function parseURL(_url: string): HTMLAnchorElement | URL;
2
2
  export declare function isBuffer(buf: any): boolean;
3
- export declare function serializeRequestBody<T>(headers: any, data: T, method?: string): T | string;
3
+ export declare function serializeRequestBody<T>(headers: any, data: T): T | string;
@@ -17,36 +17,14 @@ function isBuffer(buf) {
17
17
  return buf instanceof ArrayBuffer || ArrayBuffer.isView(buf);
18
18
  }
19
19
  exports.isBuffer = isBuffer;
20
- function object2Qs(data) {
21
- var list = Object.entries(data || {}).reduce(function (list, _a) {
22
- var key = _a[0], value = _a[1];
23
- list.push("".concat(encodeURIComponent(key), "=").concat(encodeURIComponent(value)));
24
- return list;
25
- }, []);
26
- if (list.length) {
27
- return list.join('&');
28
- }
29
- }
30
- function serializeRequestBody(headers, data, method) {
31
- if (method === void 0) { method = 'POST'; }
20
+ function serializeRequestBody(headers, data) {
32
21
  var res = data;
33
- var contentTypeKey = 'Content-Type';
22
+ var contentType_key = 'Content-Type';
34
23
  if (typeof data === 'object' && !isBuffer(data)) {
35
- if (!headers[contentTypeKey] && !headers['content-type']) {
36
- headers[contentTypeKey] = 'application/json';
37
- }
38
- var contentType = headers[contentTypeKey] || headers['content-type'];
39
- if (method === 'GET') {
40
- try {
41
- return object2Qs(data) || '';
42
- }
43
- catch (e) {
44
- throw new Error(JSON.stringify({
45
- code: ERRORS.INVALID_PARAMS,
46
- msg: "[".concat(constants_1.COMPONENT_NAME, ".callContainer] invalid data in query method, ").concat(e.message),
47
- }));
48
- }
24
+ if (!headers[contentType_key] && !headers['content-type']) {
25
+ headers[contentType_key] = 'application/json';
49
26
  }
27
+ var contentType = headers[contentType_key] || headers['content-type'];
50
28
  switch (contentType) {
51
29
  case 'application/json': {
52
30
  try {
@@ -62,9 +40,13 @@ function serializeRequestBody(headers, data, method) {
62
40
  }
63
41
  case 'application/x-www-form-urlencoded': {
64
42
  try {
65
- var qs_1 = object2Qs(data);
66
- if (qs_1) {
67
- res = qs_1;
43
+ var list = Object.entries(data || {}).reduce(function (list, _a) {
44
+ var key = _a[0], value = _a[1];
45
+ list.push("".concat(encodeURIComponent(key), "=").concat(encodeURIComponent(value)));
46
+ return list;
47
+ }, []);
48
+ if (list.length) {
49
+ res = list.join('&');
68
50
  }
69
51
  }
70
52
  catch (e) {
@@ -80,4 +62,4 @@ function serializeRequestBody(headers, data, method) {
80
62
  return res;
81
63
  }
82
64
  exports.serializeRequestBody = serializeRequestBody;
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQWdEO0FBQ2hELDBDQUE2QztBQUNyQyxJQUFBLE1BQU0sR0FBSyxxQkFBUyxPQUFkLENBQWM7QUFFNUIsU0FBZ0IsUUFBUSxDQUFDLElBQVk7SUFDbkMsSUFBSSxRQUFRLEVBQUU7UUFDWixJQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3JDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2IsT0FBTyxDQUFDLENBQUE7S0FDVDtJQUNELE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDdkMsQ0FBQztBQVBELDRCQU9DO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLEdBQVE7SUFDL0IsT0FBTyxHQUFHLFlBQVksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUZELDRCQUVDO0FBRUQsU0FBUyxTQUFTLENBQUMsSUFBSTtJQUNyQixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxJQUFJLEVBQUUsRUFBOEI7WUFBN0IsR0FBRyxRQUFBLEVBQUUsS0FBSyxRQUFBO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsY0FBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBRSxDQUFDLENBQUE7UUFDcEUsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7S0FDdEI7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUksT0FBTyxFQUFFLElBQU8sRUFBRSxNQUFlO0lBQWYsdUJBQUEsRUFBQSxlQUFlO0lBQ3ZFLElBQUksR0FBRyxHQUFlLElBQUksQ0FBQTtJQUMxQixJQUFNLGNBQWMsR0FBRyxjQUFjLENBQUE7SUFDckMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN4RCxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsa0JBQWtCLENBQUE7U0FDN0M7UUFFRCxJQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBRXRFLElBQUksTUFBTSxLQUFLLEtBQUssRUFBRTtZQUNwQixJQUFJO2dCQUNGLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTthQUM3QjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjO29CQUMzQixHQUFHLEVBQUUsV0FBSSwwQkFBYywyREFBaUQsQ0FBQyxDQUFDLE9BQU8sQ0FBRTtpQkFDcEYsQ0FBQyxDQUFFLENBQUE7YUFDTDtTQUNGO1FBRUQsUUFBUSxXQUFXLEVBQUU7WUFDbkIsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN2QixJQUFJO29CQUNGLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO2lCQUMzQjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7d0JBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYzt3QkFDM0IsR0FBRyxFQUFFLFdBQUksMEJBQWMsK0VBQXFFLENBQUMsQ0FBQyxPQUFPLENBQUU7cUJBQ3hHLENBQUMsQ0FBRSxDQUFBO2lCQUNMO2dCQUNELE1BQUs7YUFDTjtZQUNELEtBQUssbUNBQW1DLENBQUMsQ0FBQztnQkFDeEMsSUFBSTtvQkFDRixJQUFNLElBQUUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQzFCLElBQUksSUFBRSxFQUFFO3dCQUNOLEdBQUcsR0FBRyxJQUFFLENBQUE7cUJBQ1Q7aUJBQ0Y7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWM7d0JBQzNCLEdBQUcsRUFBRSxXQUFJLDBCQUFjLCtGQUFxRixDQUFDLENBQUMsT0FBTyxDQUFFO3FCQUN4SCxDQUFDLENBQUUsQ0FBQTtpQkFDTDtnQkFDRCxNQUFLO2FBQ047U0FDRjtLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBbERELG9EQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuaW1wb3J0IHsgQ09NUE9ORU5UX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnXG5jb25zdCB7IEVSUk9SUyB9ID0gY29uc3RhbnRzXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVVSTChfdXJsOiBzdHJpbmcpIHtcbiAgaWYgKGRvY3VtZW50KSB7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgIGEuaHJlZiA9IF91cmxcbiAgICByZXR1cm4gYVxuICB9XG4gIHJldHVybiBuZXcgVVJMKG5ldyBSZXF1ZXN0KF91cmwpLnVybClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVmZmVyKGJ1ZjogYW55KSB7XG4gIHJldHVybiBidWYgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciB8fCBBcnJheUJ1ZmZlci5pc1ZpZXcoYnVmKVxufVxuXG5mdW5jdGlvbiBvYmplY3QyUXMoZGF0YSkge1xuICBjb25zdCBsaXN0ID0gT2JqZWN0LmVudHJpZXMoZGF0YSB8fCB7fSkucmVkdWNlKChsaXN0LCBba2V5LCB2YWx1ZV06IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICBsaXN0LnB1c2goYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKX1gKVxuICAgIHJldHVybiBsaXN0XG4gIH0sIFtdKVxuICBpZiAobGlzdC5sZW5ndGgpIHtcbiAgICByZXR1cm4gbGlzdC5qb2luKCcmJylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplUmVxdWVzdEJvZHk8VD4oaGVhZGVycywgZGF0YTogVCwgbWV0aG9kID0gJ1BPU1QnKTogVCB8IHN0cmluZyB7XG4gIGxldCByZXM6IFQgfCBzdHJpbmcgPSBkYXRhXG4gIGNvbnN0IGNvbnRlbnRUeXBlS2V5ID0gJ0NvbnRlbnQtVHlwZSdcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiAhaXNCdWZmZXIoZGF0YSkpIHtcbiAgICBpZiAoIWhlYWRlcnNbY29udGVudFR5cGVLZXldICYmICFoZWFkZXJzWydjb250ZW50LXR5cGUnXSkge1xuICAgICAgaGVhZGVyc1tjb250ZW50VHlwZUtleV0gPSAnYXBwbGljYXRpb24vanNvbidcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IGhlYWRlcnNbY29udGVudFR5cGVLZXldIHx8IGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddXG5cbiAgICBpZiAobWV0aG9kID09PSAnR0VUJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDJRcyhkYXRhKSB8fCAnJ1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uY2FsbENvbnRhaW5lcl0gaW52YWxpZCBkYXRhIGluIHF1ZXJ5IG1ldGhvZCwgJHtlLm1lc3NhZ2V9YCxcbiAgICAgICAgfSksKVxuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAoY29udGVudFR5cGUpIHtcbiAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL2pzb24nOiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmVzID0gSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uY2FsbENvbnRhaW5lcl0gaW52YWxpZCBkYXRhIHdpdGggY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uLCAke2UubWVzc2FnZX1gLFxuICAgICAgICAgIH0pLClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzoge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHFzID0gb2JqZWN0MlFzKGRhdGEpXG4gICAgICAgICAgaWYgKHFzKSB7XG4gICAgICAgICAgICByZXMgPSBxc1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uY2FsbENvbnRhaW5lcl0gaW52YWxpZCBkYXRhIHdpdGggY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQsJHtlLm1lc3NhZ2V9YCxcbiAgICAgICAgICB9KSwpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuIl19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQWdEO0FBQ2hELDBDQUE2QztBQUNyQyxJQUFBLE1BQU0sR0FBSyxxQkFBUyxPQUFkLENBQWM7QUFFNUIsU0FBZ0IsUUFBUSxDQUFDLElBQVk7SUFDbkMsSUFBSSxRQUFRLEVBQUU7UUFDWixJQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3JDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2IsT0FBTyxDQUFDLENBQUE7S0FDVDtJQUNELE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDdkMsQ0FBQztBQVBELDRCQU9DO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLEdBQVE7SUFDL0IsT0FBTyxHQUFHLFlBQVksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUZELDRCQUVDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUksT0FBTyxFQUFFLElBQU87SUFDdEQsSUFBSSxHQUFHLEdBQWUsSUFBSSxDQUFBO0lBQzFCLElBQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQTtJQUN0QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3pELE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxrQkFBa0IsQ0FBQTtTQUM5QztRQUVELElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdkUsUUFBUSxXQUFXLEVBQUU7WUFDbkIsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN2QixJQUFJO29CQUNGLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO2lCQUMzQjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7d0JBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYzt3QkFDM0IsR0FBRyxFQUFFLFdBQUksMEJBQWMsK0VBQXFFLENBQUMsQ0FBQyxPQUFPLENBQUU7cUJBQ3hHLENBQUMsQ0FBRSxDQUFBO2lCQUNMO2dCQUNELE1BQUs7YUFDTjtZQUNELEtBQUssbUNBQW1DLENBQUMsQ0FBQztnQkFDeEMsSUFBSTtvQkFDRixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxJQUFJLEVBQUUsRUFBOEI7NEJBQTdCLEdBQUcsUUFBQSxFQUFFLEtBQUssUUFBQTt3QkFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxjQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFFLENBQUMsQ0FBQTt3QkFDcEUsT0FBTyxJQUFJLENBQUE7b0JBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO29CQUNOLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDZixHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtxQkFDckI7aUJBQ0Y7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWM7d0JBQzNCLEdBQUcsRUFBRSxXQUFJLDBCQUFjLCtGQUFxRixDQUFDLENBQUMsT0FBTyxDQUFFO3FCQUN4SCxDQUFDLENBQUUsQ0FBQTtpQkFDTDtnQkFDRCxNQUFLO2FBQ047U0FDRjtLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBMUNELG9EQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuaW1wb3J0IHsgQ09NUE9ORU5UX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnXG5jb25zdCB7IEVSUk9SUyB9ID0gY29uc3RhbnRzXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVVSTChfdXJsOiBzdHJpbmcpIHtcbiAgaWYgKGRvY3VtZW50KSB7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgIGEuaHJlZiA9IF91cmxcbiAgICByZXR1cm4gYVxuICB9XG4gIHJldHVybiBuZXcgVVJMKG5ldyBSZXF1ZXN0KF91cmwpLnVybClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVmZmVyKGJ1ZjogYW55KSB7XG4gIHJldHVybiBidWYgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciB8fCBBcnJheUJ1ZmZlci5pc1ZpZXcoYnVmKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplUmVxdWVzdEJvZHk8VD4oaGVhZGVycywgZGF0YTogVCk6IFQgfCBzdHJpbmcge1xuICBsZXQgcmVzOiBUIHwgc3RyaW5nID0gZGF0YVxuICBjb25zdCBjb250ZW50VHlwZV9rZXkgPSAnQ29udGVudC1UeXBlJ1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICFpc0J1ZmZlcihkYXRhKSkge1xuICAgIGlmICghaGVhZGVyc1tjb250ZW50VHlwZV9rZXldICYmICFoZWFkZXJzWydjb250ZW50LXR5cGUnXSkge1xuICAgICAgaGVhZGVyc1tjb250ZW50VHlwZV9rZXldID0gJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudFR5cGUgPSBoZWFkZXJzW2NvbnRlbnRUeXBlX2tleV0gfHwgaGVhZGVyc1snY29udGVudC10eXBlJ11cblxuICAgIHN3aXRjaCAoY29udGVudFR5cGUpIHtcbiAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL2pzb24nOiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmVzID0gSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uY2FsbENvbnRhaW5lcl0gaW52YWxpZCBkYXRhIHdpdGggY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uLCAke2UubWVzc2FnZX1gLFxuICAgICAgICAgIH0pLClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzoge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGxpc3QgPSBPYmplY3QuZW50cmllcyhkYXRhIHx8IHt9KS5yZWR1Y2UoKGxpc3QsIFtrZXksIHZhbHVlXTogW3N0cmluZywgc3RyaW5nXSkgPT4ge1xuICAgICAgICAgICAgbGlzdC5wdXNoKGAke2VuY29kZVVSSUNvbXBvbmVudChrZXkpfT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9YClcbiAgICAgICAgICAgIHJldHVybiBsaXN0XG4gICAgICAgICAgfSwgW10pXG4gICAgICAgICAgaWYgKGxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXMgPSBsaXN0LmpvaW4oJyYnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uY2FsbENvbnRhaW5lcl0gaW52YWxpZCBkYXRhIHdpdGggY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQsJHtlLm1lc3NhZ2V9YCxcbiAgICAgICAgICB9KSwpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuIl19
@@ -1,11 +1,2 @@
1
1
  import { ICloudbase } from '@cloudbase/types';
2
- import { ICallContainerOptions, IContianerConfig } from '@cloudbase/types/container';
3
- export declare class CloudbaseContainers {
4
- private readonly config;
5
- private wasm;
6
- private containerInitPromise;
7
- constructor(config: IContianerConfig);
8
- callContainer(options: ICallContainerOptions, callback?: Function): Promise<any>;
9
- initContainer(config: Omit<IContianerConfig, 'wasmUrl' | 'jsUrl'>): Promise<any>;
10
- }
11
2
  export declare function registerContainers(app: Pick<ICloudbase, 'registerComponent'>): void;