@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.
@@ -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
- export function serializeRequestBody(headers, data) {
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 contentType_key = 'Content-Type';
28
+ var contentTypeKey = 'Content-Type';
18
29
  if (typeof data === 'object' && !isBuffer(data)) {
19
- if (!headers[contentType_key] && !headers['content-type']) {
20
- headers[contentType_key] = 'application/json';
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 list = Object.entries(data || {}).reduce(function (list, _a) {
39
- var key = _a[0], value = _a[1];
40
- list.push("".concat(encodeURIComponent(key), "=").concat(encodeURIComponent(value)));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDckMsSUFBQSxNQUFNLEdBQUssU0FBUyxPQUFkLENBQWM7QUFFNUIsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFZO0lBQ25DLElBQUksUUFBUSxFQUFFO1FBQ1osSUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNyQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNiLE9BQU8sQ0FBQyxDQUFBO0tBQ1Q7SUFDRCxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVE7SUFDL0IsT0FBTyxHQUFHLFlBQVksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxPQUFPLEVBQUUsSUFBTztJQUN0RCxJQUFJLEdBQUcsR0FBZSxJQUFJLENBQUE7SUFDMUIsSUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFBO0lBQ3RDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDekQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLGtCQUFrQixDQUFBO1NBQzlDO1FBRUQsSUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUV2RSxRQUFRLFdBQVcsRUFBRTtZQUNuQixLQUFLLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3ZCLElBQUk7b0JBQ0YsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7aUJBQzNCO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzt3QkFDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjO3dCQUMzQixHQUFHLEVBQUUsV0FBSSxjQUFjLCtFQUFxRSxDQUFDLENBQUMsT0FBTyxDQUFFO3FCQUN4RyxDQUFDLENBQUUsQ0FBQTtpQkFDTDtnQkFDRCxNQUFLO2FBQ047WUFDRCxLQUFLLG1DQUFtQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUk7b0JBQ0YsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsSUFBSSxFQUFFLEVBQThCOzRCQUE3QixHQUFHLFFBQUEsRUFBRSxLQUFLLFFBQUE7d0JBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsY0FBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBRSxDQUFDLENBQUE7d0JBQ3BFLE9BQU8sSUFBSSxDQUFBO29CQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtvQkFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ2YsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7cUJBQ3JCO2lCQUNGO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzt3QkFDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjO3dCQUMzQixHQUFHLEVBQUUsV0FBSSxjQUFjLCtGQUFxRixDQUFDLENBQUMsT0FBTyxDQUFFO3FCQUN4SCxDQUFDLENBQUUsQ0FBQTtpQkFDTDtnQkFDRCxNQUFLO2FBQ047U0FDRjtLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5pbXBvcnQgeyBDT01QT05FTlRfTkFNRSB9IGZyb20gJy4uL2NvbnN0YW50cydcbmNvbnN0IHsgRVJST1JTIH0gPSBjb25zdGFudHNcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVVJMKF91cmw6IHN0cmluZykge1xuICBpZiAoZG9jdW1lbnQpIHtcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXG4gICAgYS5ocmVmID0gX3VybFxuICAgIHJldHVybiBhXG4gIH1cbiAgcmV0dXJuIG5ldyBVUkwobmV3IFJlcXVlc3QoX3VybCkudXJsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCdWZmZXIoYnVmOiBhbnkpIHtcbiAgcmV0dXJuIGJ1ZiBpbnN0YW5jZW9mIEFycmF5QnVmZmVyIHx8IEFycmF5QnVmZmVyLmlzVmlldyhidWYpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVSZXF1ZXN0Qm9keTxUPihoZWFkZXJzLCBkYXRhOiBUKTogVCB8IHN0cmluZyB7XG4gIGxldCByZXM6IFQgfCBzdHJpbmcgPSBkYXRhXG4gIGNvbnN0IGNvbnRlbnRUeXBlX2tleSA9ICdDb250ZW50LVR5cGUnXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgIWlzQnVmZmVyKGRhdGEpKSB7XG4gICAgaWYgKCFoZWFkZXJzW2NvbnRlbnRUeXBlX2tleV0gJiYgIWhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddKSB7XG4gICAgICBoZWFkZXJzW2NvbnRlbnRUeXBlX2tleV0gPSAnYXBwbGljYXRpb24vanNvbidcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IGhlYWRlcnNbY29udGVudFR5cGVfa2V5XSB8fCBoZWFkZXJzWydjb250ZW50LXR5cGUnXVxuXG4gICAgc3dpdGNoIChjb250ZW50VHlwZSkge1xuICAgICAgY2FzZSAnYXBwbGljYXRpb24vanNvbic6IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXMgPSBKU09OLnN0cmluZ2lmeShkYXRhKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5jYWxsQ29udGFpbmVyXSBpbnZhbGlkIGRhdGEgd2l0aCBjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24sICR7ZS5tZXNzYWdlfWAsXG4gICAgICAgICAgfSksKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbGlzdCA9IE9iamVjdC5lbnRyaWVzKGRhdGEgfHwge30pLnJlZHVjZSgobGlzdCwgW2tleSwgdmFsdWVdOiBbc3RyaW5nLCBzdHJpbmddKSA9PiB7XG4gICAgICAgICAgICBsaXN0LnB1c2goYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKX1gKVxuICAgICAgICAgICAgcmV0dXJuIGxpc3RcbiAgICAgICAgICB9LCBbXSlcbiAgICAgICAgICBpZiAobGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlcyA9IGxpc3Quam9pbignJicpXG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5jYWxsQ29udGFpbmVyXSBpbnZhbGlkIGRhdGEgd2l0aCBjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCwke2UubWVzc2FnZX1gLFxuICAgICAgICAgIH0pLClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG4iXX0=
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.40-beta.0",
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/types": "^2.5.25-beta.0",
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": "fdd47542ba93aa05a9a917b2b3cee8e6d5d04c66"
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 && !this.config.jsUrl && !(window as any).cloudbase_private_link) {
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
- } if ((window as any).cloudbase_private_link) {
81
- return (window as any).cloudbase_private_link
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: (window as any).cloudbase_private_link.initContainer,
90
- callContainer: (window as any).cloudbase_private_link.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
- * 非 buffer
150
- */
151
- if (params.data !== undefined && !isBuffer(params.data)) {
152
- if (typeof params.data !== 'string' && method === 'GET') {
153
- try {
154
- const list = Object.entries(params.data || {}).reduce(
155
- (list, [key, value]: [string, string | number | boolean]) => {
156
- list.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
157
- return list
158
- },
159
- [],
160
- )
161
- if (list.length) {
162
- params.data = list.join('&')
163
- }
164
- } catch (e) {}
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 (method === 'GET' && typeof params.data === 'string') {
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._containerInitPromis = null
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
- }