@cloudbase/container 2.5.37-alpha.1 → 2.5.37-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 +0 -9
- package/dist/cjs/index.js +155 -66
- package/dist/cjs/utils/index.d.ts +1 -1
- package/dist/cjs/utils/index.js +13 -31
- package/dist/esm/index.d.ts +0 -9
- package/dist/esm/index.js +151 -65
- package/dist/esm/utils/index.d.ts +1 -1
- package/dist/esm/utils/index.js +13 -31
- package/package.json +3 -9
- package/src/index.ts +167 -74
- package/src/utils/index.ts +11 -29
- package/dist/cjs/utils/loader.d.ts +0 -8
- package/dist/cjs/utils/loader.js +0 -183
- package/dist/esm/utils/loader.d.ts +0 -8
- package/dist/esm/utils/loader.js +0 -175
- package/dist/miniprogram/index.js +0 -1
- package/src/utils/loader.ts +0 -134
- package/webpack/web.prod.js +0 -84
- package/webpack/webpack.miniprogram.js +0 -22
package/src/index.ts
CHANGED
|
@@ -2,36 +2,20 @@ 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'
|
|
5
9
|
import { isBuffer, parseURL, serializeRequestBody } from './utils'
|
|
10
|
+
import { request } from './utils/request'
|
|
6
11
|
import { COMPONENT_NAME } from './constants'
|
|
7
12
|
|
|
8
13
|
declare const cloudbase: ICloudbase
|
|
14
|
+
|
|
9
15
|
const { ERRORS, COMMUNITY_SITE_URL } = constants
|
|
10
16
|
const { execCallback, printWarn } = utils
|
|
11
17
|
const { catchErrorsDecorator } = helpers
|
|
12
18
|
|
|
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 () {
|
|
26
|
-
new Error('小程序不支持动态 js 加载')
|
|
27
|
-
}
|
|
28
|
-
} else {
|
|
29
|
-
const loader = require('./utils/loader')
|
|
30
|
-
getExportFunction = loader.getExportFunction
|
|
31
|
-
loadJSExportFunction = loader.loadJSExportFunction
|
|
32
|
-
}
|
|
33
|
-
/* eslint-enable */
|
|
34
|
-
|
|
35
19
|
class InvalieParamsError extends Error {
|
|
36
20
|
code: any
|
|
37
21
|
constructor(scope, message) {
|
|
@@ -67,48 +51,43 @@ function genContainerError(data, scope = COMPONENT_NAME, defaultMessage = 'call
|
|
|
67
51
|
return error
|
|
68
52
|
}
|
|
69
53
|
|
|
70
|
-
|
|
71
|
-
private readonly config: IContianerConfig
|
|
54
|
+
class CloudbaseContainers {
|
|
55
|
+
private readonly config: IContianerConfig
|
|
72
56
|
private wasm: Promise<WebAssembly.Exports>
|
|
73
57
|
private containerInitPromise: /* Promise<any>*/ any | null
|
|
74
58
|
|
|
75
59
|
constructor(config: IContianerConfig) {
|
|
76
60
|
this.config = {
|
|
77
61
|
...config,
|
|
78
|
-
jsUrl:
|
|
79
|
-
typeof config.jsUrl === 'string'
|
|
80
|
-
? {
|
|
81
|
-
vm: config.jsUrl,
|
|
82
|
-
}
|
|
83
|
-
: (config.jsUrl as any),
|
|
84
62
|
}
|
|
85
63
|
|
|
86
|
-
if (!this.config.wasmUrl && this.config.
|
|
87
|
-
// 非 wams 且有 public key 则可使用默认的 js-sdk,无需校验
|
|
88
|
-
} else if (!this.config.wasmUrl && !this.config.jsUrl?.vm && !(globalThis as any).cloudbase_private_link) {
|
|
64
|
+
if (!this.config.wasmUrl && !this.config.jsUrl && !(window as any).cloudbase_private_link) {
|
|
89
65
|
throw new InvalieParamsError(`${COMPONENT_NAME}`, '缺少 privatelink sdk 地址')
|
|
90
66
|
}
|
|
91
67
|
|
|
92
|
-
console.log('>>******', this.config)
|
|
93
|
-
debugger
|
|
94
|
-
|
|
95
68
|
if (this.config.wasmUrl) {
|
|
96
|
-
this.wasm = getExportFunction(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) => {
|
|
97
77
|
if (this.config.jsUrl) {
|
|
98
78
|
console.warn('load wams error, fall back to use js', e)
|
|
99
79
|
return loadJSExportFunction(this.config.jsUrl)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return (globalThis as any).cloudbase_private_link
|
|
80
|
+
} if ((window as any).cloudbase_private_link) {
|
|
81
|
+
return (window as any).cloudbase_private_link
|
|
103
82
|
}
|
|
104
83
|
throw e
|
|
105
84
|
})
|
|
106
|
-
} else if (this.config.jsUrl
|
|
85
|
+
} else if (this.config.jsUrl) {
|
|
107
86
|
this.wasm = loadJSExportFunction(this.config.jsUrl)
|
|
108
87
|
} else {
|
|
109
88
|
this.wasm = Promise.resolve({
|
|
110
|
-
initContainer: (
|
|
111
|
-
callContainer: (
|
|
89
|
+
initContainer: (window as any).cloudbase_private_link.initContainer,
|
|
90
|
+
callContainer: (window as any).cloudbase_private_link.callContainer,
|
|
112
91
|
})
|
|
113
92
|
}
|
|
114
93
|
}
|
|
@@ -159,44 +138,36 @@ export class CloudbaseContainers {
|
|
|
159
138
|
url,
|
|
160
139
|
method,
|
|
161
140
|
header,
|
|
162
|
-
data: serializeRequestBody(header, data
|
|
141
|
+
data: serializeRequestBody(header, data),
|
|
163
142
|
timeout,
|
|
164
143
|
dataType,
|
|
165
144
|
responseType,
|
|
166
145
|
...restOptions,
|
|
167
146
|
}
|
|
168
147
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
list.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
|
|
187
|
-
return list
|
|
188
|
-
},
|
|
189
|
-
[],
|
|
190
|
-
)
|
|
191
|
-
if (list.length) {
|
|
192
|
-
getBody = list.join('&')
|
|
193
|
-
}
|
|
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) {}
|
|
194
165
|
}
|
|
195
166
|
|
|
196
|
-
if (typeof params.data === 'string') {
|
|
167
|
+
if (method === 'GET' && typeof params.data === 'string') {
|
|
197
168
|
const parsedUrl = parseURL(url)
|
|
198
169
|
if (parsedUrl.search) {
|
|
199
|
-
parsedUrl.search +=
|
|
170
|
+
parsedUrl.search += params.data
|
|
200
171
|
} else {
|
|
201
172
|
parsedUrl.search = `?${params.data}`
|
|
202
173
|
}
|
|
@@ -205,6 +176,15 @@ export class CloudbaseContainers {
|
|
|
205
176
|
}
|
|
206
177
|
}
|
|
207
178
|
|
|
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
|
+
|
|
208
188
|
callContainer({
|
|
209
189
|
...params,
|
|
210
190
|
success: resolve,
|
|
@@ -226,15 +206,15 @@ export class CloudbaseContainers {
|
|
|
226
206
|
this.containerInitPromise = new Promise((resolve, reject) => {
|
|
227
207
|
initContainer({
|
|
228
208
|
config,
|
|
229
|
-
success
|
|
209
|
+
success(res) {
|
|
230
210
|
if (String(res.statusCode) !== '200') {
|
|
231
211
|
reject(genContainerError(res.data, `${COMPONENT_NAME}.initContainer`, 'init container fail'))
|
|
232
212
|
}
|
|
233
213
|
resolve(res)
|
|
234
214
|
},
|
|
235
|
-
fail
|
|
215
|
+
fail(res) {
|
|
236
216
|
reject(genContainerError(res.data, `${COMPONENT_NAME}.initContainer`, 'init container fail'))
|
|
237
|
-
this.
|
|
217
|
+
this._containerInitPromis = null
|
|
238
218
|
},
|
|
239
219
|
})
|
|
240
220
|
})
|
|
@@ -271,3 +251,116 @@ export function registerContainers(app: Pick<ICloudbase, 'registerComponent'>) {
|
|
|
271
251
|
console.warn(e)
|
|
272
252
|
}
|
|
273
253
|
}
|
|
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
|
+
}
|
package/src/utils/index.ts
CHANGED
|
@@ -15,36 +15,15 @@ export function isBuffer(buf: any) {
|
|
|
15
15
|
return buf instanceof ArrayBuffer || ArrayBuffer.isView(buf)
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
function
|
|
19
|
-
const list = Object.entries(data || {}).reduce((list, [key, value]: [string, string]) => {
|
|
20
|
-
list.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
|
|
21
|
-
return list
|
|
22
|
-
}, [])
|
|
23
|
-
if (list.length) {
|
|
24
|
-
return list.join('&')
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function serializeRequestBody<T>(headers, data: T, method = 'POST'): T | string {
|
|
18
|
+
export function serializeRequestBody<T>(headers, data: T): T | string {
|
|
29
19
|
let res: T | string = data
|
|
30
|
-
const
|
|
20
|
+
const contentType_key = 'Content-Type'
|
|
31
21
|
if (typeof data === 'object' && !isBuffer(data)) {
|
|
32
|
-
if (!headers[
|
|
33
|
-
headers[
|
|
22
|
+
if (!headers[contentType_key] && !headers['content-type']) {
|
|
23
|
+
headers[contentType_key] = 'application/json'
|
|
34
24
|
}
|
|
35
25
|
|
|
36
|
-
const contentType = headers[
|
|
37
|
-
|
|
38
|
-
if (method === 'GET') {
|
|
39
|
-
try {
|
|
40
|
-
return object2Qs(data) || ''
|
|
41
|
-
} catch (e) {
|
|
42
|
-
throw new Error(JSON.stringify({
|
|
43
|
-
code: ERRORS.INVALID_PARAMS,
|
|
44
|
-
msg: `[${COMPONENT_NAME}.callContainer] invalid data in query method, ${e.message}`,
|
|
45
|
-
}),)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
26
|
+
const contentType = headers[contentType_key] || headers['content-type']
|
|
48
27
|
|
|
49
28
|
switch (contentType) {
|
|
50
29
|
case 'application/json': {
|
|
@@ -60,9 +39,12 @@ export function serializeRequestBody<T>(headers, data: T, method = 'POST'): T |
|
|
|
60
39
|
}
|
|
61
40
|
case 'application/x-www-form-urlencoded': {
|
|
62
41
|
try {
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
42
|
+
const list = Object.entries(data || {}).reduce((list, [key, value]: [string, string]) => {
|
|
43
|
+
list.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
|
|
44
|
+
return list
|
|
45
|
+
}, [])
|
|
46
|
+
if (list.length) {
|
|
47
|
+
res = list.join('&')
|
|
66
48
|
}
|
|
67
49
|
} catch (e) {
|
|
68
50
|
throw new Error(JSON.stringify({
|
|
@@ -1,8 +0,0 @@
|
|
|
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>;
|
package/dist/cjs/utils/loader.js
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
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;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
-
};
|
|
52
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
-
exports.loadJSExportFunction = exports.getExportFunction = void 0;
|
|
54
|
-
var decompress_1 = __importDefault(require("brotli/decompress"));
|
|
55
|
-
var go_wams_exec_1 = __importDefault(require("../go_wams_exec"));
|
|
56
|
-
var _1 = require(".");
|
|
57
|
-
function instantiateStreaming(resp, importObject, brotliCompressed) {
|
|
58
|
-
if (brotliCompressed === void 0) { brotliCompressed = false; }
|
|
59
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
60
|
-
var source, buffer;
|
|
61
|
-
return __generator(this, function (_a) {
|
|
62
|
-
switch (_a.label) {
|
|
63
|
-
case 0:
|
|
64
|
-
if (!(brotliCompressed || !WebAssembly.instantiateStreaming)) return [3, 3];
|
|
65
|
-
return [4, resp];
|
|
66
|
-
case 1: return [4, (_a.sent()).arrayBuffer()];
|
|
67
|
-
case 2:
|
|
68
|
-
source = _a.sent();
|
|
69
|
-
buffer = brotliCompressed ? (0, decompress_1.default)(new Int8Array(source)) : source;
|
|
70
|
-
return [2, WebAssembly.instantiate(buffer, importObject)];
|
|
71
|
-
case 3: return [2, WebAssembly.instantiateStreaming(resp, importObject)];
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
function isBrotliCompressed(url) {
|
|
77
|
-
var brotliCompressed = false;
|
|
78
|
-
var pathname = '';
|
|
79
|
-
try {
|
|
80
|
-
var location_1 = (0, _1.parseURL)(url);
|
|
81
|
-
pathname = location_1.pathname;
|
|
82
|
-
}
|
|
83
|
-
catch (e) {
|
|
84
|
-
pathname = url;
|
|
85
|
-
}
|
|
86
|
-
if (/\.br$/.test(pathname)) {
|
|
87
|
-
brotliCompressed = true;
|
|
88
|
-
}
|
|
89
|
-
return brotliCompressed;
|
|
90
|
-
}
|
|
91
|
-
function getExportFunction(url, module, mode) {
|
|
92
|
-
if (mode === void 0) { mode = 'go'; }
|
|
93
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
94
|
-
var importObject, go, brotliCompressed, reuslt;
|
|
95
|
-
return __generator(this, function (_a) {
|
|
96
|
-
switch (_a.label) {
|
|
97
|
-
case 0:
|
|
98
|
-
importObject = __assign({ env: {
|
|
99
|
-
memoryBase: 0,
|
|
100
|
-
tableBase: 0,
|
|
101
|
-
memory: new WebAssembly.Memory({
|
|
102
|
-
initial: 256,
|
|
103
|
-
}),
|
|
104
|
-
} }, module);
|
|
105
|
-
brotliCompressed = isBrotliCompressed(url);
|
|
106
|
-
if (mode === 'go') {
|
|
107
|
-
go = new go_wams_exec_1.default();
|
|
108
|
-
go._initedModulePromise = new Promise(function (resolve) {
|
|
109
|
-
go._initedModuleResolve = resolve;
|
|
110
|
-
});
|
|
111
|
-
importObject = __assign(__assign({}, go.importObject), { env: __assign(__assign({}, go.importObject.env), { exportModule: function (module) {
|
|
112
|
-
return go._initedModuleResolve(module);
|
|
113
|
-
} }) });
|
|
114
|
-
}
|
|
115
|
-
return [4, instantiateStreaming(fetch(url), importObject, brotliCompressed)];
|
|
116
|
-
case 1:
|
|
117
|
-
reuslt = _a.sent();
|
|
118
|
-
if (!(mode === 'go')) return [3, 3];
|
|
119
|
-
return [4, Promise.race([
|
|
120
|
-
go.run(reuslt.instance),
|
|
121
|
-
new Promise(function (resolve) { return setTimeout(function () {
|
|
122
|
-
resolve(null);
|
|
123
|
-
}, 500); }),
|
|
124
|
-
])];
|
|
125
|
-
case 2:
|
|
126
|
-
_a.sent();
|
|
127
|
-
return [2, {
|
|
128
|
-
callContainer: window.callContainer,
|
|
129
|
-
initContainer: window.initContainer,
|
|
130
|
-
}];
|
|
131
|
-
case 3: return [2, reuslt.instance.exports];
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
exports.getExportFunction = getExportFunction;
|
|
137
|
-
function loadJSExportFunction(config) {
|
|
138
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
139
|
-
var _a, vm, vender, VENDER_KEY;
|
|
140
|
-
return __generator(this, function (_b) {
|
|
141
|
-
switch (_b.label) {
|
|
142
|
-
case 0:
|
|
143
|
-
_a = config || {}, vm = _a.vm, vender = _a.vender;
|
|
144
|
-
VENDER_KEY = 'cloudbase_private_link_vender';
|
|
145
|
-
if (!(vender || !Object.prototype.hasOwnProperty.call(document.defaultView, VENDER_KEY))) return [3, 2];
|
|
146
|
-
return [4, loadUmdModule(vender
|
|
147
|
-
|| 'https://cdn.jsdelivr.net/npm/@cloudbase/privatelink-vender@0.0.1-alpha.3/dist/cdn/cloudbase.privatelink.vender.js', VENDER_KEY)];
|
|
148
|
-
case 1:
|
|
149
|
-
_b.sent();
|
|
150
|
-
_b.label = 2;
|
|
151
|
-
case 2: return [2, loadUmdModule(vm || 'https://cdn.jsdelivr.net/npm/@cloudbase/privatelink@0.0.1-alpha.0/dist/cdn/cloudbase.privatelink.vm.js', 'cloudbase_private_link')];
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
exports.loadJSExportFunction = loadJSExportFunction;
|
|
157
|
-
function loadUmdModule(jsUrl, umdModuleName, targetDoc) {
|
|
158
|
-
if (targetDoc === void 0) { targetDoc = document; }
|
|
159
|
-
return new Promise(function (resolve, reject) {
|
|
160
|
-
var win = targetDoc.defaultView;
|
|
161
|
-
var script = targetDoc.createElement('script');
|
|
162
|
-
script.setAttribute('src', jsUrl);
|
|
163
|
-
script.setAttribute('class', umdModuleName);
|
|
164
|
-
script.addEventListener('load', function () {
|
|
165
|
-
if (Object.prototype.hasOwnProperty.call(win, umdModuleName)) {
|
|
166
|
-
return resolve(win[umdModuleName]);
|
|
167
|
-
}
|
|
168
|
-
var error = new Error("Fail to load UMD module ".concat(umdModuleName, " from [").concat(jsUrl, "]."));
|
|
169
|
-
return reject(error);
|
|
170
|
-
});
|
|
171
|
-
script.addEventListener('error', function (e) {
|
|
172
|
-
var error = new Error("main bundle [".concat(umdModuleName, "] load failed from [").concat(jsUrl, "]: ").concat((e === null || e === void 0 ? void 0 : e.message) || ''));
|
|
173
|
-
reject(error);
|
|
174
|
-
});
|
|
175
|
-
if (targetDoc.body) {
|
|
176
|
-
targetDoc.body.appendChild(script);
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
targetDoc.head.appendChild(script);
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlFQUEwQztBQUMxQyxpRUFBZ0M7QUFDaEMsc0JBQTRCO0FBRTVCLFNBQWUsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxnQkFBd0I7SUFBeEIsaUNBQUEsRUFBQSx3QkFBd0I7Ozs7Ozt5QkFDMUUsQ0FBQSxnQkFBZ0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQSxFQUFyRCxjQUFxRDtvQkFDakMsV0FBTSxJQUFJLEVBQUE7d0JBQWpCLFdBQU0sQ0FBQyxTQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBQTs7b0JBQXpDLE1BQU0sR0FBRyxTQUFnQztvQkFDekMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFBLG9CQUFVLEVBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO29CQUM1RSxXQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFBO3dCQUd0RCxXQUFPLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUE7Ozs7Q0FDNUQ7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEdBQUc7SUFDN0IsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7SUFFNUIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFBO0lBQ2pCLElBQUk7UUFDRixJQUFNLFVBQVEsR0FBRyxJQUFBLFdBQVEsRUFBQyxHQUFHLENBQUMsQ0FBQTtRQUM5QixRQUFRLEdBQUcsVUFBUSxDQUFDLFFBQVEsQ0FBQTtLQUM3QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsUUFBUSxH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U0FDbkM7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVjb21wcmVzcyBmcm9tICdicm90bGkvZGVjb21wcmVzcydcbmltcG9ydCBHbyBmcm9tICcuLi9nb193YW1zX2V4ZWMnXG5pbXBvcnQgeyBwYXJzZVVSTCB9IGZyb20gJy4nXG5cbmFzeW5jIGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RyZWFtaW5nKHJlc3AsIGltcG9ydE9iamVjdCwgYnJvdGxpQ29tcHJlc3NlZCA9IGZhbHNlKSB7XG4gIGlmIChicm90bGlDb21wcmVzc2VkIHx8ICFXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZykge1xuICAgIGNvbnN0IHNvdXJjZSA9IGF3YWl0IChhd2FpdCByZXNwKS5hcnJheUJ1ZmZlcigpXG4gICAgY29uc3QgYnVmZmVyID0gYnJvdGxpQ29tcHJlc3NlZCA/IGRlY29tcHJlc3MobmV3IEludDhBcnJheShzb3VyY2UpKSA6IHNvdXJjZVxuICAgIHJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShidWZmZXIsIGltcG9ydE9iamVjdClcbiAgfVxuXG4gIHJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhyZXNwLCBpbXBvcnRPYmplY3QpXG59XG5cbmZ1bmN0aW9uIGlzQnJvdGxpQ29tcHJlc3NlZCh1cmwpIHtcbiAgbGV0IGJyb3RsaUNvbXByZXNzZWQgPSBmYWxzZVxuXG4gIGxldCBwYXRobmFtZSA9ICcnXG4gIHRyeSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSBwYXJzZVVSTCh1cmwpXG4gICAgcGF0aG5hbWUgPSBsb2NhdGlvbi5wYXRobmFtZVxuICB9IGNhdGNoIChlKSB7XG4gICAgcGF0aG5hbWUgPSB1cmxcbiAgfVxuXG4gIGlmICgvXFwuYnIkLy50ZXN0KHBhdGhuYW1lKSkge1xuICAgIGJyb3RsaUNvbXByZXNzZWQgPSB0cnVlXG4gIH1cbiAgcmV0dXJuIGJyb3RsaUNvbXByZXNzZWRcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEV4cG9ydEZ1bmN0aW9uKHVybCwgbW9kdWxlLCBtb2RlID0gJ2dvJykge1xuICBsZXQgaW1wb3J0T2JqZWN0ID0ge1xuICAgIGVudjoge1xuICAgICAgbWVtb3J5QmFzZTogMCxcbiAgICAgIHRhYmxlQmFzZTogMCxcbiAgICAgIG1lbW9yeTogbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7XG4gICAgICAgIGluaXRpYWw6IDI1NixcbiAgICAgIH0pLFxuICAgICAgLy8gdGFibGU6IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7XG4gICAgICAvLyAgIGluaXRpYWw6IDIsXG4gICAgICAvLyAgIGVsZW1lbnQ6ICdhbnlmdW5jJyxcbiAgICAgIC8vIH0pLFxuICAgIH0sXG4gICAgLi4ubW9kdWxlLFxuICB9XG4gIGxldCBnb1xuICBjb25zdCBicm90bGlDb21wcmVzc2VkID0gaXNCcm90bGlDb21wcmVzc2VkKHVybClcblxuICBpZiAobW9kZSA9PT0gJ2dvJykge1xuICAgIGdvID0gbmV3IEdvKClcbiAgICBnby5faW5pdGVkTW9kdWxlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBnby5faW5pdGVkTW9kdWxlUmVzb2x2ZSA9IHJlc29sdmVcbiAgICB9KVxuICAgIGltcG9ydE9iamVjdCA9IHtcbiAgICAgIC4uLmdvLmltcG9ydE9iamVjdCxcbiAgICAgIGVudjoge1xuICAgICAgICAuLi5nby5pbXBvcnRPYmplY3QuZW52LFxuICAgICAgICBleHBvcnRNb2R1bGUobW9kdWxlKSB7XG4gICAgICAgICAgcmV0dXJuIGdvLl9pbml0ZWRNb2R1bGVSZXNvbHZlKG1vZHVsZSlcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1c2x0ID0gYXdhaXQgaW5zdGFudGlhdGVTdHJlYW1pbmcoZmV0Y2godXJsKSwgaW1wb3J0T2JqZWN0LCBicm90bGlDb21wcmVzc2VkKVxuXG4gIGlmIChtb2RlID09PSAnZ28nKSB7XG4gICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgIGdvLnJ1bihyZXVzbHQuaW5zdGFuY2UpLFxuICAgICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShudWxsKVxuICAgICAgfSwgNTAwKSwpLFxuICAgIF0pXG5cbiAgICByZXR1cm4ge1xuICAgICAgY2FsbENvbnRhaW5lcjogKHdpbmRvdyBhcyBhbnkpLmNhbGxDb250YWluZXIsXG4gICAgICBpbml0Q29udGFpbmVyOiAod2luZG93IGFzIGFueSkuaW5pdENvbnRhaW5lcixcbiAgICB9XG4gIH1cblxuICAvLyBpZiAobW9kZSA9PT0gJ2dvJykge1xuICAvLyAgIGdvLnJ1bihyZXVzbHQuaW5zdGFuY2UpXG4gIC8vICAgY29uc3QgbW9kdWxlID0gYXdhaXQgZ28uX2luaXRlZE1vZHVsZVByb21pc2VcbiAgLy8gICByZXR1cm4gbW9kdWxlXG4gIC8vIH1cblxuICByZXR1cm4gcmV1c2x0Lmluc3RhbmNlLmV4cG9ydHNcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRKU0V4cG9ydEZ1bmN0aW9uKGNvbmZpZz86IHsgdm06IHN0cmluZzsgdmVuZGVyPzogc3RyaW5nIH0pIHtcbiAgY29uc3QgeyB2bSwgdmVuZGVyIH0gPSBjb25maWcgfHwge31cbiAgY29uc3QgVkVOREVSX0tFWSA9ICdjbG91ZGJhc2VfcHJpdmF0ZV9saW5rX3ZlbmRlcidcblxuICBpZiAodmVuZGVyIHx8ICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZG9jdW1lbnQuZGVmYXVsdFZpZXcsIFZFTkRFUl9LRVkpKSB7XG4gICAgYXdhaXQgbG9hZFVtZE1vZHVsZShcbiAgICAgIHZlbmRlclxuICAgICAgICB8fCAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AY2xvdWRiYXNlL3ByaXZhdGVsaW5rLXZlbmRlckAwLjAuMS1hbHBoYS4zL2Rpc3QvY2RuL2Nsb3VkYmFzZS5wcml2YXRlbGluay52ZW5kZXIuanMnLFxuICAgICAgVkVOREVSX0tFWSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gbG9hZFVtZE1vZHVsZShcbiAgICB2bSB8fCAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AY2xvdWRiYXNlL3ByaXZhdGVsaW5rQDAuMC4xLWFscGhhLjAvZGlzdC9jZG4vY2xvdWRiYXNlLnByaXZhdGVsaW5rLnZtLmpzJyxcbiAgICAnY2xvdWRiYXNlX3ByaXZhdGVfbGluaycsXG4gIClcbn1cblxuZnVuY3Rpb24gbG9hZFVtZE1vZHVsZShqc1VybDogc3RyaW5nLCB1bWRNb2R1bGVOYW1lOiBzdHJpbmcsIHRhcmdldERvYzogRG9jdW1lbnQgPSBkb2N1bWVudCkge1xuICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgd2luID0gdGFyZ2V0RG9jLmRlZmF1bHRWaWV3XG5cbiAgICBjb25zdCBzY3JpcHQgPSB0YXJnZXREb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdzcmMnLCBqc1VybClcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdjbGFzcycsIHVtZE1vZHVsZU5hbWUpXG4gICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHdpbiwgdW1kTW9kdWxlTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUod2luW3VtZE1vZHVsZU5hbWUgYXMgYW55XSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBGYWlsIHRvIGxvYWQgVU1EIG1vZHVsZSAke3VtZE1vZHVsZU5hbWV9IGZyb20gWyR7anNVcmx9XS5gKVxuICAgICAgcmV0dXJuIHJlamVjdChlcnJvcilcbiAgICB9KVxuXG4gICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBtYWluIGJ1bmRsZSBbJHt1bWRNb2R1bGVOYW1lfV0gbG9hZCBmYWlsZWQgZnJvbSBbJHtqc1VybH1dOiAke2U/Lm1lc3NhZ2UgfHwgJyd9YClcbiAgICAgIHJlamVjdChlcnJvcilcbiAgICB9KVxuICAgIGlmICh0YXJnZXREb2MuYm9keSkge1xuICAgICAgdGFyZ2V0RG9jLmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KVxuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXREb2MuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpXG4gICAgfVxuICB9KVxufVxuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
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>;
|