@cloudbase/container 2.5.40-beta.0 → 2.5.41-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.
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +70 -155
- package/dist/cjs/utils/index.d.ts +1 -1
- package/dist/cjs/utils/index.js +31 -13
- package/dist/cjs/utils/loader.d.ts +8 -0
- package/dist/cjs/utils/loader.js +186 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.js +69 -151
- package/dist/esm/utils/index.d.ts +1 -1
- package/dist/esm/utils/index.js +31 -13
- package/dist/esm/utils/loader.d.ts +8 -0
- package/dist/esm/utils/loader.js +178 -0
- package/package.json +11 -7
- package/src/index.ts +77 -167
- package/src/utils/index.ts +29 -11
- package/src/utils/loader.ts +139 -0
- package/webpack/web.prod.js +84 -0
- package/webpack/webpack.miniprogram.js +22 -0
package/dist/esm/utils/index.js
CHANGED
|
@@ -12,14 +12,36 @@ export function parseURL(_url) {
|
|
|
12
12
|
export function isBuffer(buf) {
|
|
13
13
|
return buf instanceof ArrayBuffer || ArrayBuffer.isView(buf);
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
function object2Qs(data) {
|
|
16
|
+
var list = Object.entries(data || {}).reduce(function (list, _a) {
|
|
17
|
+
var key = _a[0], value = _a[1];
|
|
18
|
+
list.push("".concat(encodeURIComponent(key), "=").concat(encodeURIComponent(value)));
|
|
19
|
+
return list;
|
|
20
|
+
}, []);
|
|
21
|
+
if (list.length) {
|
|
22
|
+
return list.join('&');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function serializeRequestBody(headers, data, method) {
|
|
26
|
+
if (method === void 0) { method = 'POST'; }
|
|
16
27
|
var res = data;
|
|
17
|
-
var
|
|
28
|
+
var contentTypeKey = 'Content-Type';
|
|
18
29
|
if (typeof data === 'object' && !isBuffer(data)) {
|
|
19
|
-
if (!headers[
|
|
20
|
-
headers[
|
|
30
|
+
if (!headers[contentTypeKey] && !headers['content-type']) {
|
|
31
|
+
headers[contentTypeKey] = 'application/json';
|
|
32
|
+
}
|
|
33
|
+
var contentType = headers[contentTypeKey] || headers['content-type'];
|
|
34
|
+
if (method === 'GET') {
|
|
35
|
+
try {
|
|
36
|
+
return object2Qs(data) || '';
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
throw new Error(JSON.stringify({
|
|
40
|
+
code: ERRORS.INVALID_PARAMS,
|
|
41
|
+
msg: "[".concat(COMPONENT_NAME, ".callContainer] invalid data in query method, ").concat(e.message),
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
21
44
|
}
|
|
22
|
-
var contentType = headers[contentType_key] || headers['content-type'];
|
|
23
45
|
switch (contentType) {
|
|
24
46
|
case 'application/json': {
|
|
25
47
|
try {
|
|
@@ -35,13 +57,9 @@ export function serializeRequestBody(headers, data) {
|
|
|
35
57
|
}
|
|
36
58
|
case 'application/x-www-form-urlencoded': {
|
|
37
59
|
try {
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return list;
|
|
42
|
-
}, []);
|
|
43
|
-
if (list.length) {
|
|
44
|
-
res = list.join('&');
|
|
60
|
+
var qs_1 = object2Qs(data);
|
|
61
|
+
if (qs_1) {
|
|
62
|
+
res = qs_1;
|
|
45
63
|
}
|
|
46
64
|
}
|
|
47
65
|
catch (e) {
|
|
@@ -56,4 +74,4 @@ export function serializeRequestBody(headers, data) {
|
|
|
56
74
|
}
|
|
57
75
|
return res;
|
|
58
76
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDckMsSUFBQSxNQUFNLEdBQUssU0FBUyxPQUFkLENBQWM7QUFFNUIsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFZO0lBQ25DLElBQUksUUFBUSxFQUFFO1FBQ1osSUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNyQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNiLE9BQU8sQ0FBQyxDQUFBO0tBQ1Q7SUFDRCxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVE7SUFDL0IsT0FBTyxHQUFHLFlBQVksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLElBQUk7SUFDckIsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsSUFBSSxFQUFFLEVBQThCO1lBQTdCLEdBQUcsUUFBQSxFQUFFLEtBQUssUUFBQTtRQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGNBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUUsQ0FBQyxDQUFBO1FBQ3BFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ04sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0tBQ3RCO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxPQUFPLEVBQUUsSUFBTyxFQUFFLE1BQWU7SUFBZix1QkFBQSxFQUFBLGVBQWU7SUFDdkUsSUFBSSxHQUFHLEdBQWUsSUFBSSxDQUFBO0lBQzFCLElBQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQTtJQUNyQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3hELE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxrQkFBa0IsQ0FBQTtTQUM3QztRQUVELElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEUsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3BCLElBQUk7Z0JBQ0YsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO2FBQzdCO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWM7b0JBQzNCLEdBQUcsRUFBRSxXQUFJLGNBQWMsMkRBQWlELENBQUMsQ0FBQyxPQUFPLENBQUU7aUJBQ3BGLENBQUMsQ0FBRSxDQUFBO2FBQ0w7U0FDRjtRQUVELFFBQVEsV0FBVyxFQUFFO1lBQ25CLEtBQUssa0JBQWtCLENBQUMsQ0FBQztnQkFDdkIsSUFBSTtvQkFDRixHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtpQkFDM0I7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWM7d0JBQzNCLEdBQUcsRUFBRSxXQUFJLGNBQWMsK0VBQXFFLENBQUMsQ0FBQyxPQUFPLENBQUU7cUJBQ3hHLENBQUMsQ0FBRSxDQUFBO2lCQUNMO2dCQUNELE1BQUs7YUFDTjtZQUNELEtBQUssbUNBQW1DLENBQUMsQ0FBQztnQkFDeEMsSUFBSTtvQkFDRixJQUFNLElBQUUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQzFCLElBQUksSUFBRSxFQUFFO3dCQUNOLEdBQUcsR0FBRyxJQUFFLENBQUE7cUJBQ1Q7aUJBQ0Y7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWM7d0JBQzNCLEdBQUcsRUFBRSxXQUFJLGNBQWMsK0ZBQXFGLENBQUMsQ0FBQyxPQUFPLENBQUU7cUJBQ3hILENBQUMsQ0FBRSxDQUFBO2lCQUNMO2dCQUNELE1BQUs7YUFDTjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IENPTVBPTkVOVF9OQU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuY29uc3QgeyBFUlJPUlMgfSA9IGNvbnN0YW50c1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VVUkwoX3VybDogc3RyaW5nKSB7XG4gIGlmIChkb2N1bWVudCkge1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcbiAgICBhLmhyZWYgPSBfdXJsXG4gICAgcmV0dXJuIGFcbiAgfVxuICByZXR1cm4gbmV3IFVSTChuZXcgUmVxdWVzdChfdXJsKS51cmwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0J1ZmZlcihidWY6IGFueSkge1xuICByZXR1cm4gYnVmIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIgfHwgQXJyYXlCdWZmZXIuaXNWaWV3KGJ1Zilcbn1cblxuZnVuY3Rpb24gb2JqZWN0MlFzKGRhdGEpIHtcbiAgY29uc3QgbGlzdCA9IE9iamVjdC5lbnRyaWVzKGRhdGEgfHwge30pLnJlZHVjZSgobGlzdCwgW2tleSwgdmFsdWVdOiBbc3RyaW5nLCBzdHJpbmddKSA9PiB7XG4gICAgbGlzdC5wdXNoKGAke2VuY29kZVVSSUNvbXBvbmVudChrZXkpfT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9YClcbiAgICByZXR1cm4gbGlzdFxuICB9LCBbXSlcbiAgaWYgKGxpc3QubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGxpc3Quam9pbignJicpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVJlcXVlc3RCb2R5PFQ+KGhlYWRlcnMsIGRhdGE6IFQsIG1ldGhvZCA9ICdQT1NUJyk6IFQgfCBzdHJpbmcge1xuICBsZXQgcmVzOiBUIHwgc3RyaW5nID0gZGF0YVxuICBjb25zdCBjb250ZW50VHlwZUtleSA9ICdDb250ZW50LVR5cGUnXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgIWlzQnVmZmVyKGRhdGEpKSB7XG4gICAgaWYgKCFoZWFkZXJzW2NvbnRlbnRUeXBlS2V5XSAmJiAhaGVhZGVyc1snY29udGVudC10eXBlJ10pIHtcbiAgICAgIGhlYWRlcnNbY29udGVudFR5cGVLZXldID0gJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudFR5cGUgPSBoZWFkZXJzW2NvbnRlbnRUeXBlS2V5XSB8fCBoZWFkZXJzWydjb250ZW50LXR5cGUnXVxuXG4gICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBvYmplY3QyUXMoZGF0YSkgfHwgJydcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmNhbGxDb250YWluZXJdIGludmFsaWQgZGF0YSBpbiBxdWVyeSBtZXRob2QsICR7ZS5tZXNzYWdlfWAsXG4gICAgICAgIH0pLClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2ggKGNvbnRlbnRUeXBlKSB7XG4gICAgICBjYXNlICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlcyA9IEpTT04uc3RyaW5naWZ5KGRhdGEpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmNhbGxDb250YWluZXJdIGludmFsaWQgZGF0YSB3aXRoIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbiwgJHtlLm1lc3NhZ2V9YCxcbiAgICAgICAgICB9KSwpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBxcyA9IG9iamVjdDJRcyhkYXRhKVxuICAgICAgICAgIGlmIChxcykge1xuICAgICAgICAgICAgcmVzID0gcXNcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmNhbGxDb250YWluZXJdIGludmFsaWQgZGF0YSB3aXRoIGNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkLCR7ZS5tZXNzYWdlfWAsXG4gICAgICAgICAgfSksKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function getExportFunction(url: any, module: any, mode?: string): Promise<WebAssembly.Exports | {
|
|
2
|
+
callContainer: any;
|
|
3
|
+
initContainer: any;
|
|
4
|
+
}>;
|
|
5
|
+
export declare function loadJSExportFunction(config?: {
|
|
6
|
+
vm: string;
|
|
7
|
+
vender?: string;
|
|
8
|
+
}): Promise<any>;
|
|
@@ -0,0 +1,178 @@
|
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
+
function step(op) {
|
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
+
switch (op[0]) {
|
|
31
|
+
case 0: case 1: t = op; break;
|
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
+
default:
|
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
+
if (t[2]) _.ops.pop();
|
|
41
|
+
_.trys.pop(); continue;
|
|
42
|
+
}
|
|
43
|
+
op = body.call(thisArg, _);
|
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
import Go from '../go_wams_exec';
|
|
49
|
+
import { parseURL } from '.';
|
|
50
|
+
function instantiateStreaming(resp, importObject, brotliCompressed) {
|
|
51
|
+
if (brotliCompressed === void 0) { brotliCompressed = false; }
|
|
52
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
53
|
+
var source, buffer;
|
|
54
|
+
return __generator(this, function (_a) {
|
|
55
|
+
switch (_a.label) {
|
|
56
|
+
case 0:
|
|
57
|
+
if (!(brotliCompressed || !WebAssembly.instantiateStreaming)) return [3, 3];
|
|
58
|
+
return [4, resp];
|
|
59
|
+
case 1: return [4, (_a.sent()).arrayBuffer()];
|
|
60
|
+
case 2:
|
|
61
|
+
source = _a.sent();
|
|
62
|
+
if (brotliCompressed) {
|
|
63
|
+
throw new Error('do not support *.br');
|
|
64
|
+
}
|
|
65
|
+
buffer = source;
|
|
66
|
+
return [2, WebAssembly.instantiate(buffer, importObject)];
|
|
67
|
+
case 3: return [2, WebAssembly.instantiateStreaming(resp, importObject)];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function isBrotliCompressed(url) {
|
|
73
|
+
var brotliCompressed = false;
|
|
74
|
+
var pathname = '';
|
|
75
|
+
try {
|
|
76
|
+
var location_1 = parseURL(url);
|
|
77
|
+
pathname = location_1.pathname;
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
pathname = url;
|
|
81
|
+
}
|
|
82
|
+
if (/\.br$/.test(pathname)) {
|
|
83
|
+
brotliCompressed = true;
|
|
84
|
+
}
|
|
85
|
+
return brotliCompressed;
|
|
86
|
+
}
|
|
87
|
+
export function getExportFunction(url, module, mode) {
|
|
88
|
+
if (mode === void 0) { mode = 'go'; }
|
|
89
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
90
|
+
var importObject, go, brotliCompressed, reuslt;
|
|
91
|
+
return __generator(this, function (_a) {
|
|
92
|
+
switch (_a.label) {
|
|
93
|
+
case 0:
|
|
94
|
+
importObject = __assign({ env: {
|
|
95
|
+
memoryBase: 0,
|
|
96
|
+
tableBase: 0,
|
|
97
|
+
memory: new WebAssembly.Memory({
|
|
98
|
+
initial: 256,
|
|
99
|
+
}),
|
|
100
|
+
} }, module);
|
|
101
|
+
brotliCompressed = isBrotliCompressed(url);
|
|
102
|
+
if (mode === 'go') {
|
|
103
|
+
go = new Go();
|
|
104
|
+
go._initedModulePromise = new Promise(function (resolve) {
|
|
105
|
+
go._initedModuleResolve = resolve;
|
|
106
|
+
});
|
|
107
|
+
importObject = __assign(__assign({}, go.importObject), { env: __assign(__assign({}, go.importObject.env), { exportModule: function (module) {
|
|
108
|
+
return go._initedModuleResolve(module);
|
|
109
|
+
} }) });
|
|
110
|
+
}
|
|
111
|
+
return [4, instantiateStreaming(fetch(url), importObject, brotliCompressed)];
|
|
112
|
+
case 1:
|
|
113
|
+
reuslt = _a.sent();
|
|
114
|
+
if (!(mode === 'go')) return [3, 3];
|
|
115
|
+
return [4, Promise.race([
|
|
116
|
+
go.run(reuslt.instance),
|
|
117
|
+
new Promise(function (resolve) { return setTimeout(function () {
|
|
118
|
+
resolve(null);
|
|
119
|
+
}, 500); }),
|
|
120
|
+
])];
|
|
121
|
+
case 2:
|
|
122
|
+
_a.sent();
|
|
123
|
+
return [2, {
|
|
124
|
+
callContainer: window.callContainer,
|
|
125
|
+
initContainer: window.initContainer,
|
|
126
|
+
}];
|
|
127
|
+
case 3: return [2, reuslt.instance.exports];
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
export function loadJSExportFunction(config) {
|
|
133
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
134
|
+
var _a, vm, vender, VENDER_KEY;
|
|
135
|
+
return __generator(this, function (_b) {
|
|
136
|
+
switch (_b.label) {
|
|
137
|
+
case 0:
|
|
138
|
+
_a = config || {}, vm = _a.vm, vender = _a.vender;
|
|
139
|
+
VENDER_KEY = 'cloudbase_private_link_vender';
|
|
140
|
+
if (!(vender || !Object.prototype.hasOwnProperty.call(document.defaultView, VENDER_KEY))) return [3, 2];
|
|
141
|
+
return [4, loadUmdModule(vender
|
|
142
|
+
|| 'https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/privatelink-vender@0.0.2/dist/cdn/cloudbase.privatelink.vender.js', VENDER_KEY)];
|
|
143
|
+
case 1:
|
|
144
|
+
_b.sent();
|
|
145
|
+
_b.label = 2;
|
|
146
|
+
case 2: return [2, loadUmdModule(vm
|
|
147
|
+
|| 'https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/privatelink@0.0.1/dist/cdn/cloudbase.privatelink.vm.js', 'cloudbase_private_link')];
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function loadUmdModule(jsUrl, umdModuleName, targetDoc) {
|
|
153
|
+
if (targetDoc === void 0) { targetDoc = document; }
|
|
154
|
+
return new Promise(function (resolve, reject) {
|
|
155
|
+
var win = targetDoc.defaultView;
|
|
156
|
+
var script = targetDoc.createElement('script');
|
|
157
|
+
script.setAttribute('src', jsUrl);
|
|
158
|
+
script.setAttribute('class', umdModuleName);
|
|
159
|
+
script.addEventListener('load', function () {
|
|
160
|
+
if (Object.prototype.hasOwnProperty.call(win, umdModuleName)) {
|
|
161
|
+
return resolve(win[umdModuleName]);
|
|
162
|
+
}
|
|
163
|
+
var error = new Error("Fail to load UMD module ".concat(umdModuleName, " from [").concat(jsUrl, "]."));
|
|
164
|
+
return reject(error);
|
|
165
|
+
});
|
|
166
|
+
script.addEventListener('error', function (e) {
|
|
167
|
+
var error = new Error("main bundle [".concat(umdModuleName, "] load failed from [").concat(jsUrl, "]: ").concat((e === null || e === void 0 ? void 0 : e.message) || ''));
|
|
168
|
+
reject(error);
|
|
169
|
+
});
|
|
170
|
+
if (targetDoc.body) {
|
|
171
|
+
targetDoc.body.appendChild(script);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
targetDoc.head.appendChild(script);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUE7QUFFNUIsU0FBZSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGdCQUF3QjtJQUF4QixpQ0FBQSxFQUFBLHdCQUF3Qjs7Ozs7O3lCQUMxRSxDQUFBLGdCQUFnQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFBLEVBQXJELGNBQXFEO29CQUNqQyxXQUFNLElBQUksRUFBQTt3QkFBakIsV0FBTSxDQUFDLFNBQVUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFBOztvQkFBekMsTUFBTSxHQUFHLFNBQWdDO29CQUMvQyxJQUFJLGdCQUFnQixFQUFFO3dCQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7cUJBQ3ZDO29CQUVLLE1BQU0sR0FBRyxNQUFNLENBQUE7b0JBQ3JCLFdBQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUE7d0JBR3RELFdBQU8sV0FBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsRUFBQTs7OztDQUM1RDtBQUVELFNBQVMsa0JBQWtCLENBQUMsR0FBRztJQUM3QixJQUFJLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtJQUU1QixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUE7SUFDakIsSUFBSTtRQUNGLElBQU0sVUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM5QixRQUFRLEdBQUcsVUFBUSxDQUFDLFFBQVEsQ0FBQTtLQUM3QjtJQUFDLE9BQU8sQ0FBQyxF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QUNuQztJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCBkZWNvbXByZXNzIGZyb20gJ2Jyb3RsaS9kZWNvbXByZXNzJ1xuaW1wb3J0IEdvIGZyb20gJy4uL2dvX3dhbXNfZXhlYydcbmltcG9ydCB7IHBhcnNlVVJMIH0gZnJvbSAnLidcblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFudGlhdGVTdHJlYW1pbmcocmVzcCwgaW1wb3J0T2JqZWN0LCBicm90bGlDb21wcmVzc2VkID0gZmFsc2UpIHtcbiAgaWYgKGJyb3RsaUNvbXByZXNzZWQgfHwgIVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKSB7XG4gICAgY29uc3Qgc291cmNlID0gYXdhaXQgKGF3YWl0IHJlc3ApLmFycmF5QnVmZmVyKClcbiAgICBpZiAoYnJvdGxpQ29tcHJlc3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkbyBub3Qgc3VwcG9ydCAqLmJyJylcbiAgICB9XG4gICAgLy8gY29uc3QgYnVmZmVyID0gYnJvdGxpQ29tcHJlc3NlZCA/IGRlY29tcHJlc3MobmV3IEludDhBcnJheShzb3VyY2UpKSA6IHNvdXJjZVxuICAgIGNvbnN0IGJ1ZmZlciA9IHNvdXJjZVxuICAgIHJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShidWZmZXIsIGltcG9ydE9iamVjdClcbiAgfVxuXG4gIHJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhyZXNwLCBpbXBvcnRPYmplY3QpXG59XG5cbmZ1bmN0aW9uIGlzQnJvdGxpQ29tcHJlc3NlZCh1cmwpIHtcbiAgbGV0IGJyb3RsaUNvbXByZXNzZWQgPSBmYWxzZVxuXG4gIGxldCBwYXRobmFtZSA9ICcnXG4gIHRyeSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSBwYXJzZVVSTCh1cmwpXG4gICAgcGF0aG5hbWUgPSBsb2NhdGlvbi5wYXRobmFtZVxuICB9IGNhdGNoIChlKSB7XG4gICAgcGF0aG5hbWUgPSB1cmxcbiAgfVxuXG4gIGlmICgvXFwuYnIkLy50ZXN0KHBhdGhuYW1lKSkge1xuICAgIGJyb3RsaUNvbXByZXNzZWQgPSB0cnVlXG4gIH1cbiAgcmV0dXJuIGJyb3RsaUNvbXByZXNzZWRcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEV4cG9ydEZ1bmN0aW9uKHVybCwgbW9kdWxlLCBtb2RlID0gJ2dvJykge1xuICBsZXQgaW1wb3J0T2JqZWN0ID0ge1xuICAgIGVudjoge1xuICAgICAgbWVtb3J5QmFzZTogMCxcbiAgICAgIHRhYmxlQmFzZTogMCxcbiAgICAgIG1lbW9yeTogbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7XG4gICAgICAgIGluaXRpYWw6IDI1NixcbiAgICAgIH0pLFxuICAgICAgLy8gdGFibGU6IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7XG4gICAgICAvLyAgIGluaXRpYWw6IDIsXG4gICAgICAvLyAgIGVsZW1lbnQ6ICdhbnlmdW5jJyxcbiAgICAgIC8vIH0pLFxuICAgIH0sXG4gICAgLi4ubW9kdWxlLFxuICB9XG4gIGxldCBnb1xuICBjb25zdCBicm90bGlDb21wcmVzc2VkID0gaXNCcm90bGlDb21wcmVzc2VkKHVybClcblxuICBpZiAobW9kZSA9PT0gJ2dvJykge1xuICAgIGdvID0gbmV3IEdvKClcbiAgICBnby5faW5pdGVkTW9kdWxlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBnby5faW5pdGVkTW9kdWxlUmVzb2x2ZSA9IHJlc29sdmVcbiAgICB9KVxuICAgIGltcG9ydE9iamVjdCA9IHtcbiAgICAgIC4uLmdvLmltcG9ydE9iamVjdCxcbiAgICAgIGVudjoge1xuICAgICAgICAuLi5nby5pbXBvcnRPYmplY3QuZW52LFxuICAgICAgICBleHBvcnRNb2R1bGUobW9kdWxlKSB7XG4gICAgICAgICAgcmV0dXJuIGdvLl9pbml0ZWRNb2R1bGVSZXNvbHZlKG1vZHVsZSlcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1c2x0ID0gYXdhaXQgaW5zdGFudGlhdGVTdHJlYW1pbmcoZmV0Y2godXJsKSwgaW1wb3J0T2JqZWN0LCBicm90bGlDb21wcmVzc2VkKVxuXG4gIGlmIChtb2RlID09PSAnZ28nKSB7XG4gICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgIGdvLnJ1bihyZXVzbHQuaW5zdGFuY2UpLFxuICAgICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShudWxsKVxuICAgICAgfSwgNTAwKSwpLFxuICAgIF0pXG5cbiAgICByZXR1cm4ge1xuICAgICAgY2FsbENvbnRhaW5lcjogKHdpbmRvdyBhcyBhbnkpLmNhbGxDb250YWluZXIsXG4gICAgICBpbml0Q29udGFpbmVyOiAod2luZG93IGFzIGFueSkuaW5pdENvbnRhaW5lcixcbiAgICB9XG4gIH1cblxuICAvLyBpZiAobW9kZSA9PT0gJ2dvJykge1xuICAvLyAgIGdvLnJ1bihyZXVzbHQuaW5zdGFuY2UpXG4gIC8vICAgY29uc3QgbW9kdWxlID0gYXdhaXQgZ28uX2luaXRlZE1vZHVsZVByb21pc2VcbiAgLy8gICByZXR1cm4gbW9kdWxlXG4gIC8vIH1cblxuICByZXR1cm4gcmV1c2x0Lmluc3RhbmNlLmV4cG9ydHNcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRKU0V4cG9ydEZ1bmN0aW9uKGNvbmZpZz86IHsgdm06IHN0cmluZzsgdmVuZGVyPzogc3RyaW5nIH0pIHtcbiAgY29uc3QgeyB2bSwgdmVuZGVyIH0gPSBjb25maWcgfHwge31cbiAgY29uc3QgVkVOREVSX0tFWSA9ICdjbG91ZGJhc2VfcHJpdmF0ZV9saW5rX3ZlbmRlcidcblxuICBpZiAodmVuZGVyIHx8ICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZG9jdW1lbnQuZGVmYXVsdFZpZXcsIFZFTkRFUl9LRVkpKSB7XG4gICAgYXdhaXQgbG9hZFVtZE1vZHVsZShcbiAgICAgIHZlbmRlclxuICAgICAgICB8fCAnaHR0cHM6Ly9xYmFzZS5jZG4tZ28uY24vbGNhcC9sY2FwLXJlc291cmNlLWNkbmdvLy0vcmVsZWFzZS9fbnBtL0BjbG91ZGJhc2UvcHJpdmF0ZWxpbmstdmVuZGVyQDAuMC4yL2Rpc3QvY2RuL2Nsb3VkYmFzZS5wcml2YXRlbGluay52ZW5kZXIuanMnLFxuICAgICAgVkVOREVSX0tFWSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gbG9hZFVtZE1vZHVsZShcbiAgICB2bVxuICAgICAgfHwgJ2h0dHBzOi8vcWJhc2UuY2RuLWdvLmNuL2xjYXAvbGNhcC1yZXNvdXJjZS1jZG5nby8tL3JlbGVhc2UvX25wbS9AY2xvdWRiYXNlL3ByaXZhdGVsaW5rQDAuMC4xL2Rpc3QvY2RuL2Nsb3VkYmFzZS5wcml2YXRlbGluay52bS5qcycsXG4gICAgJ2Nsb3VkYmFzZV9wcml2YXRlX2xpbmsnLFxuICApXG59XG5cbmZ1bmN0aW9uIGxvYWRVbWRNb2R1bGUoanNVcmw6IHN0cmluZywgdW1kTW9kdWxlTmFtZTogc3RyaW5nLCB0YXJnZXREb2M6IERvY3VtZW50ID0gZG9jdW1lbnQpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHdpbiA9IHRhcmdldERvYy5kZWZhdWx0Vmlld1xuXG4gICAgY29uc3Qgc2NyaXB0ID0gdGFyZ2V0RG9jLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpXG4gICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnc3JjJywganNVcmwpXG4gICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCB1bWRNb2R1bGVOYW1lKVxuICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh3aW4sIHVtZE1vZHVsZU5hbWUpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHdpblt1bWRNb2R1bGVOYW1lIGFzIGFueV0pXG4gICAgICB9XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgRmFpbCB0byBsb2FkIFVNRCBtb2R1bGUgJHt1bWRNb2R1bGVOYW1lfSBmcm9tIFske2pzVXJsfV0uYClcbiAgICAgIHJldHVybiByZWplY3QoZXJyb3IpXG4gICAgfSlcblxuICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIChlKSA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgbWFpbiBidW5kbGUgWyR7dW1kTW9kdWxlTmFtZX1dIGxvYWQgZmFpbGVkIGZyb20gWyR7anNVcmx9XTogJHtlPy5tZXNzYWdlIHx8ICcnfWApXG4gICAgICByZWplY3QoZXJyb3IpXG4gICAgfSlcbiAgICBpZiAodGFyZ2V0RG9jLmJvZHkpIHtcbiAgICAgIHRhcmdldERvYy5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdClcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0RG9jLmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KVxuICAgIH1cbiAgfSlcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/container",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.41-beta.0",
|
|
4
4
|
"description": "cloudbase javascript sdk functions componets",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
|
+
"miniprogram": "dist/miniprogram",
|
|
7
8
|
"scripts": {
|
|
8
|
-
"tsc": "rm -rf dist/ && tsc -p tsconfig.esm.json && tsc -p tsconfig.json",
|
|
9
|
+
"tsc": "rm -rf dist/esm && tsc -p tsconfig.esm.json && rm -rf dist/cjs && tsc -p tsconfig.json",
|
|
9
10
|
"lint": "eslint --fix \"./src/**/*.ts\"",
|
|
10
11
|
"build": "npm run lint && npm run tsc",
|
|
12
|
+
"build:mp": "webpack --config ./webpack/webpack.miniprogram.js",
|
|
11
13
|
"precommit": "npm run lint"
|
|
12
14
|
},
|
|
13
15
|
"publishConfig": {
|
|
@@ -29,10 +31,12 @@
|
|
|
29
31
|
"license": "Apache-2.0",
|
|
30
32
|
"dependencies": {
|
|
31
33
|
"@cloudbase/adapter-interface": "^0.4.1",
|
|
32
|
-
"@cloudbase/
|
|
33
|
-
"@cloudbase/utilities": "^2.5.25-beta.0",
|
|
34
|
-
"brotli": "^1.3.3",
|
|
35
|
-
"brotli-dec-wasm": "^2.0.1"
|
|
34
|
+
"@cloudbase/utilities": "^2.5.25-beta.0"
|
|
36
35
|
},
|
|
37
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "e8513caf4d4c69629977296f3a977e831bddd314",
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@cloudbase/types": "^2.5.25-beta.0",
|
|
39
|
+
"terser-webpack-plugin": "^3.0.2",
|
|
40
|
+
"webpack-bundle-analyzer": "^4.9.1"
|
|
41
|
+
}
|
|
38
42
|
}
|
package/src/index.ts
CHANGED
|
@@ -2,20 +2,42 @@ import { ICloudbase } from '@cloudbase/types'
|
|
|
2
2
|
import { ICloudbaseComponent } from '@cloudbase/types/component'
|
|
3
3
|
import { ICallContainerOptions, IContianerConfig } from '@cloudbase/types/container'
|
|
4
4
|
import { constants, utils, helpers } from '@cloudbase/utilities'
|
|
5
|
-
// import brotliPromise from 'brotli-dec-wasm' // Import the default export
|
|
6
|
-
import decompress from 'brotli/decompress'
|
|
7
|
-
|
|
8
|
-
import Go from './go_wams_exec'
|
|
9
5
|
import { isBuffer, parseURL, serializeRequestBody } from './utils'
|
|
10
|
-
import { request } from './utils/request'
|
|
11
6
|
import { COMPONENT_NAME } from './constants'
|
|
12
7
|
|
|
13
8
|
declare const cloudbase: ICloudbase
|
|
14
|
-
|
|
15
9
|
const { ERRORS, COMMUNITY_SITE_URL } = constants
|
|
16
10
|
const { execCallback, printWarn } = utils
|
|
17
11
|
const { catchErrorsDecorator } = helpers
|
|
18
12
|
|
|
13
|
+
/* eslint-disable */
|
|
14
|
+
let getExportFunction: Function = () => {
|
|
15
|
+
throw new Error('getExportFunction 未实现')
|
|
16
|
+
}
|
|
17
|
+
let loadJSExportFunction: Function = () => {
|
|
18
|
+
throw new Error('loadJSExportFunction 未实现')
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (globalThis.IS_MP_BUILD) {
|
|
22
|
+
getExportFunction = function () {
|
|
23
|
+
new Error('小程序不支持 wasm 加载')
|
|
24
|
+
}
|
|
25
|
+
loadJSExportFunction = function (jsUrl) {
|
|
26
|
+
if (jsUrl) {
|
|
27
|
+
new Error('小程序不支持动态 js 加载')
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
initContainer: (globalThis as any).cloudbase_private_link.initContainer,
|
|
31
|
+
callContainer: (globalThis as any).cloudbase_private_link.callContainer,
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
} else {
|
|
35
|
+
const loader = require('./utils/loader')
|
|
36
|
+
getExportFunction = loader.getExportFunction
|
|
37
|
+
loadJSExportFunction = loader.loadJSExportFunction
|
|
38
|
+
}
|
|
39
|
+
/* eslint-enable */
|
|
40
|
+
|
|
19
41
|
class InvalieParamsError extends Error {
|
|
20
42
|
code: any
|
|
21
43
|
constructor(scope, message) {
|
|
@@ -51,43 +73,45 @@ function genContainerError(data, scope = COMPONENT_NAME, defaultMessage = 'call
|
|
|
51
73
|
return error
|
|
52
74
|
}
|
|
53
75
|
|
|
54
|
-
class CloudbaseContainers {
|
|
55
|
-
private readonly config: IContianerConfig
|
|
76
|
+
export class CloudbaseContainers {
|
|
77
|
+
private readonly config: IContianerConfig & { jsUrl?: { vender?: string; vm: string } }
|
|
56
78
|
private wasm: Promise<WebAssembly.Exports>
|
|
57
79
|
private containerInitPromise: /* Promise<any>*/ any | null
|
|
58
80
|
|
|
59
81
|
constructor(config: IContianerConfig) {
|
|
60
82
|
this.config = {
|
|
61
83
|
...config,
|
|
84
|
+
jsUrl:
|
|
85
|
+
typeof config.jsUrl === 'string'
|
|
86
|
+
? {
|
|
87
|
+
vm: config.jsUrl,
|
|
88
|
+
}
|
|
89
|
+
: (config.jsUrl as any),
|
|
62
90
|
}
|
|
63
91
|
|
|
64
|
-
if (!this.config.wasmUrl &&
|
|
92
|
+
if (!this.config.wasmUrl && this.config.publicKey) {
|
|
93
|
+
// 非 wams 且有 public key 则可使用默认的 js-sdk,无需校验
|
|
94
|
+
} else if (!this.config.wasmUrl && !this.config.jsUrl?.vm && !(globalThis as any).cloudbase_private_link) {
|
|
65
95
|
throw new InvalieParamsError(`${COMPONENT_NAME}`, '缺少 privatelink sdk 地址')
|
|
66
96
|
}
|
|
67
97
|
|
|
68
98
|
if (this.config.wasmUrl) {
|
|
69
|
-
this.wasm = getExportFunction(this.config.wasmUrl
|
|
70
|
-
utils: {
|
|
71
|
-
info(e) {
|
|
72
|
-
console.log(e)
|
|
73
|
-
},
|
|
74
|
-
request,
|
|
75
|
-
},
|
|
76
|
-
}).catch((e) => {
|
|
99
|
+
this.wasm = getExportFunction(this.config.wasmUrl).catch((e) => {
|
|
77
100
|
if (this.config.jsUrl) {
|
|
78
101
|
console.warn('load wams error, fall back to use js', e)
|
|
79
102
|
return loadJSExportFunction(this.config.jsUrl)
|
|
80
|
-
}
|
|
81
|
-
|
|
103
|
+
}
|
|
104
|
+
if ((globalThis as any).cloudbase_private_link) {
|
|
105
|
+
return (globalThis as any).cloudbase_private_link
|
|
82
106
|
}
|
|
83
107
|
throw e
|
|
84
108
|
})
|
|
85
|
-
} else if (this.config.jsUrl) {
|
|
109
|
+
} else if (this.config.jsUrl || this.config.publicKey) {
|
|
86
110
|
this.wasm = loadJSExportFunction(this.config.jsUrl)
|
|
87
111
|
} else {
|
|
88
112
|
this.wasm = Promise.resolve({
|
|
89
|
-
initContainer: (
|
|
90
|
-
callContainer: (
|
|
113
|
+
initContainer: (globalThis as any).cloudbase_private_link.initContainer,
|
|
114
|
+
callContainer: (globalThis as any).cloudbase_private_link.callContainer,
|
|
91
115
|
})
|
|
92
116
|
}
|
|
93
117
|
}
|
|
@@ -138,36 +162,44 @@ class CloudbaseContainers {
|
|
|
138
162
|
url,
|
|
139
163
|
method,
|
|
140
164
|
header,
|
|
141
|
-
data: serializeRequestBody(header, data),
|
|
165
|
+
data: serializeRequestBody(header, data, method),
|
|
142
166
|
timeout,
|
|
143
167
|
dataType,
|
|
144
168
|
responseType,
|
|
145
169
|
...restOptions,
|
|
146
170
|
}
|
|
147
171
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
172
|
+
if (
|
|
173
|
+
data
|
|
174
|
+
&& (isBuffer(params.data) || typeof params.data === 'string')
|
|
175
|
+
&& (data as any)?.length > 1000 * 1024 * 10
|
|
176
|
+
) {
|
|
177
|
+
reject(new InvalieParamsError(SCOPE, 'body too large'))
|
|
178
|
+
return
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (method === 'GET') {
|
|
182
|
+
let { data: getBody } = params
|
|
183
|
+
if (getBody) {
|
|
184
|
+
params.data = undefined
|
|
185
|
+
}
|
|
186
|
+
if (!isBuffer(getBody) && typeof getBody !== 'string') {
|
|
187
|
+
const list = Object.entries(getBody || {}).reduce(
|
|
188
|
+
(list, [key, value]: [string, string | number | boolean]) => {
|
|
189
|
+
list.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
|
|
190
|
+
return list
|
|
191
|
+
},
|
|
192
|
+
[],
|
|
193
|
+
)
|
|
194
|
+
if (list.length) {
|
|
195
|
+
getBody = list.join('&')
|
|
196
|
+
}
|
|
165
197
|
}
|
|
166
198
|
|
|
167
|
-
if (
|
|
199
|
+
if (typeof params.data === 'string') {
|
|
168
200
|
const parsedUrl = parseURL(url)
|
|
169
201
|
if (parsedUrl.search) {
|
|
170
|
-
parsedUrl.search += params.data
|
|
202
|
+
parsedUrl.search += `&${params.data}`
|
|
171
203
|
} else {
|
|
172
204
|
parsedUrl.search = `?${params.data}`
|
|
173
205
|
}
|
|
@@ -176,15 +208,6 @@ class CloudbaseContainers {
|
|
|
176
208
|
}
|
|
177
209
|
}
|
|
178
210
|
|
|
179
|
-
if (
|
|
180
|
-
data
|
|
181
|
-
&& (isBuffer(params.data) || typeof params.data === 'string')
|
|
182
|
-
&& (data as any)?.length > 1000 * 1024 * 10
|
|
183
|
-
) {
|
|
184
|
-
reject(new InvalieParamsError(SCOPE, 'body too large'))
|
|
185
|
-
return
|
|
186
|
-
}
|
|
187
|
-
|
|
188
211
|
callContainer({
|
|
189
212
|
...params,
|
|
190
213
|
success: resolve,
|
|
@@ -206,15 +229,15 @@ class CloudbaseContainers {
|
|
|
206
229
|
this.containerInitPromise = new Promise((resolve, reject) => {
|
|
207
230
|
initContainer({
|
|
208
231
|
config,
|
|
209
|
-
success(res) {
|
|
232
|
+
success: (res) => {
|
|
210
233
|
if (String(res.statusCode) !== '200') {
|
|
211
234
|
reject(genContainerError(res.data, `${COMPONENT_NAME}.initContainer`, 'init container fail'))
|
|
212
235
|
}
|
|
213
236
|
resolve(res)
|
|
214
237
|
},
|
|
215
|
-
fail(res) {
|
|
238
|
+
fail: (res) => {
|
|
216
239
|
reject(genContainerError(res.data, `${COMPONENT_NAME}.initContainer`, 'init container fail'))
|
|
217
|
-
this.
|
|
240
|
+
this.containerInitPromise = null
|
|
218
241
|
},
|
|
219
242
|
})
|
|
220
243
|
})
|
|
@@ -251,116 +274,3 @@ export function registerContainers(app: Pick<ICloudbase, 'registerComponent'>) {
|
|
|
251
274
|
console.warn(e)
|
|
252
275
|
}
|
|
253
276
|
}
|
|
254
|
-
|
|
255
|
-
async function getExportFunction(url, module, mode = 'go') {
|
|
256
|
-
async function instantiateStreaming(resp, importObject, brotliCompressed = false) {
|
|
257
|
-
if (brotliCompressed || !WebAssembly.instantiateStreaming) {
|
|
258
|
-
const source = await (await resp).arrayBuffer()
|
|
259
|
-
const buffer = brotliCompressed ? decompress(new Int8Array(source)) : source
|
|
260
|
-
return WebAssembly.instantiate(buffer, importObject)
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
return WebAssembly.instantiateStreaming(resp, importObject)
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
let importObject = {
|
|
267
|
-
env: {
|
|
268
|
-
memoryBase: 0,
|
|
269
|
-
tableBase: 0,
|
|
270
|
-
memory: new WebAssembly.Memory({
|
|
271
|
-
initial: 256,
|
|
272
|
-
}),
|
|
273
|
-
// table: new WebAssembly.Table({
|
|
274
|
-
// initial: 2,
|
|
275
|
-
// element: 'anyfunc',
|
|
276
|
-
// }),
|
|
277
|
-
},
|
|
278
|
-
...module,
|
|
279
|
-
}
|
|
280
|
-
let go
|
|
281
|
-
const brotliCompressed = isBrotliCompressed(url)
|
|
282
|
-
|
|
283
|
-
if (mode === 'go') {
|
|
284
|
-
go = new Go()
|
|
285
|
-
go._initedModulePromise = new Promise((resolve) => {
|
|
286
|
-
go._initedModuleResolve = resolve
|
|
287
|
-
})
|
|
288
|
-
importObject = {
|
|
289
|
-
...go.importObject,
|
|
290
|
-
env: {
|
|
291
|
-
...go.importObject.env,
|
|
292
|
-
exportModule(module) {
|
|
293
|
-
return go._initedModuleResolve(module)
|
|
294
|
-
},
|
|
295
|
-
},
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
const reuslt = await instantiateStreaming(fetch(url), importObject, brotliCompressed)
|
|
300
|
-
|
|
301
|
-
if (mode === 'go') {
|
|
302
|
-
await Promise.race([
|
|
303
|
-
go.run(reuslt.instance),
|
|
304
|
-
new Promise(resolve => setTimeout(() => {
|
|
305
|
-
resolve(null)
|
|
306
|
-
}, 500),),
|
|
307
|
-
])
|
|
308
|
-
|
|
309
|
-
return {
|
|
310
|
-
callContainer: (window as any).callContainer,
|
|
311
|
-
initContainer: (window as any).initContainer,
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// if (mode === 'go') {
|
|
316
|
-
// go.run(reuslt.instance)
|
|
317
|
-
// const module = await go._initedModulePromise
|
|
318
|
-
// return module
|
|
319
|
-
// }
|
|
320
|
-
|
|
321
|
-
return reuslt.instance.exports
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
function loadUmdModule(jsUrl: string, umdModuleName: string, targetDoc: Document = document) {
|
|
325
|
-
return new Promise<any>((resolve, reject) => {
|
|
326
|
-
const win = targetDoc.defaultView
|
|
327
|
-
|
|
328
|
-
const script = targetDoc.createElement('script')
|
|
329
|
-
script.setAttribute('src', jsUrl)
|
|
330
|
-
script.setAttribute('class', umdModuleName)
|
|
331
|
-
script.addEventListener('load', () => {
|
|
332
|
-
if (Object.prototype.hasOwnProperty.call(win, umdModuleName)) {
|
|
333
|
-
return resolve(win[umdModuleName as any])
|
|
334
|
-
}
|
|
335
|
-
const error = new Error(`Fail to load UMD module ${umdModuleName} from [${jsUrl}].`)
|
|
336
|
-
return reject(error)
|
|
337
|
-
})
|
|
338
|
-
|
|
339
|
-
script.addEventListener('error', (e) => {
|
|
340
|
-
const error = new Error(`main bundle [${umdModuleName}] load failed from [${jsUrl}]: ${e?.message || ''}`)
|
|
341
|
-
reject(error)
|
|
342
|
-
})
|
|
343
|
-
targetDoc.body.appendChild(script)
|
|
344
|
-
})
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
async function loadJSExportFunction(url) {
|
|
348
|
-
return loadUmdModule(url, 'cloudbase_private_link')
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
function isBrotliCompressed(url) {
|
|
352
|
-
let brotliCompressed = false
|
|
353
|
-
|
|
354
|
-
let pathname = ''
|
|
355
|
-
try {
|
|
356
|
-
const location = parseURL(url)
|
|
357
|
-
pathname = location.pathname
|
|
358
|
-
} catch (e) {
|
|
359
|
-
pathname = url
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
if (/\.br$/.test(pathname)) {
|
|
363
|
-
brotliCompressed = true
|
|
364
|
-
}
|
|
365
|
-
return brotliCompressed
|
|
366
|
-
}
|