@cloudbase/container 2.5.38-alpha.1 → 2.5.39-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.d.ts +0 -9
- package/dist/cjs/index.js +155 -70
- 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 -69
- package/dist/esm/utils/index.d.ts +1 -1
- package/dist/esm/utils/index.js +13 -31
- package/package.json +7 -11
- package/src/index.ts +167 -77
- package/src/utils/index.ts +11 -29
- package/dist/cjs/utils/loader.d.ts +0 -8
- package/dist/cjs/utils/loader.js +0 -185
- package/dist/esm/utils/loader.d.ts +0 -8
- package/dist/esm/utils/loader.js +0 -177
- package/dist/miniprogram/index.js +0 -1
- package/src/utils/loader.ts +0 -138
- package/webpack/web.prod.js +0 -84
- package/webpack/webpack.miniprogram.js +0 -22
package/src/index.ts
CHANGED
|
@@ -2,42 +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 (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
|
-
|
|
41
19
|
class InvalieParamsError extends Error {
|
|
42
20
|
code: any
|
|
43
21
|
constructor(scope, message) {
|
|
@@ -73,45 +51,43 @@ function genContainerError(data, scope = COMPONENT_NAME, defaultMessage = 'call
|
|
|
73
51
|
return error
|
|
74
52
|
}
|
|
75
53
|
|
|
76
|
-
|
|
77
|
-
private readonly config: IContianerConfig
|
|
54
|
+
class CloudbaseContainers {
|
|
55
|
+
private readonly config: IContianerConfig
|
|
78
56
|
private wasm: Promise<WebAssembly.Exports>
|
|
79
57
|
private containerInitPromise: /* Promise<any>*/ any | null
|
|
80
58
|
|
|
81
59
|
constructor(config: IContianerConfig) {
|
|
82
60
|
this.config = {
|
|
83
61
|
...config,
|
|
84
|
-
jsUrl:
|
|
85
|
-
typeof config.jsUrl === 'string'
|
|
86
|
-
? {
|
|
87
|
-
vm: config.jsUrl,
|
|
88
|
-
}
|
|
89
|
-
: (config.jsUrl as any),
|
|
90
62
|
}
|
|
91
63
|
|
|
92
|
-
if (!this.config.wasmUrl && this.config.
|
|
93
|
-
// 非 wams 且有 public key 则可使用默认的 js-sdk,无需校验
|
|
94
|
-
} 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) {
|
|
95
65
|
throw new InvalieParamsError(`${COMPONENT_NAME}`, '缺少 privatelink sdk 地址')
|
|
96
66
|
}
|
|
97
67
|
|
|
98
68
|
if (this.config.wasmUrl) {
|
|
99
|
-
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) => {
|
|
100
77
|
if (this.config.jsUrl) {
|
|
101
78
|
console.warn('load wams error, fall back to use js', e)
|
|
102
79
|
return loadJSExportFunction(this.config.jsUrl)
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return (globalThis as any).cloudbase_private_link
|
|
80
|
+
} if ((window as any).cloudbase_private_link) {
|
|
81
|
+
return (window as any).cloudbase_private_link
|
|
106
82
|
}
|
|
107
83
|
throw e
|
|
108
84
|
})
|
|
109
|
-
} else if (this.config.jsUrl
|
|
85
|
+
} else if (this.config.jsUrl) {
|
|
110
86
|
this.wasm = loadJSExportFunction(this.config.jsUrl)
|
|
111
87
|
} else {
|
|
112
88
|
this.wasm = Promise.resolve({
|
|
113
|
-
initContainer: (
|
|
114
|
-
callContainer: (
|
|
89
|
+
initContainer: (window as any).cloudbase_private_link.initContainer,
|
|
90
|
+
callContainer: (window as any).cloudbase_private_link.callContainer,
|
|
115
91
|
})
|
|
116
92
|
}
|
|
117
93
|
}
|
|
@@ -162,44 +138,36 @@ export class CloudbaseContainers {
|
|
|
162
138
|
url,
|
|
163
139
|
method,
|
|
164
140
|
header,
|
|
165
|
-
data: serializeRequestBody(header, data
|
|
141
|
+
data: serializeRequestBody(header, data),
|
|
166
142
|
timeout,
|
|
167
143
|
dataType,
|
|
168
144
|
responseType,
|
|
169
145
|
...restOptions,
|
|
170
146
|
}
|
|
171
147
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
list.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
|
|
190
|
-
return list
|
|
191
|
-
},
|
|
192
|
-
[],
|
|
193
|
-
)
|
|
194
|
-
if (list.length) {
|
|
195
|
-
getBody = list.join('&')
|
|
196
|
-
}
|
|
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) {}
|
|
197
165
|
}
|
|
198
166
|
|
|
199
|
-
if (typeof params.data === 'string') {
|
|
167
|
+
if (method === 'GET' && typeof params.data === 'string') {
|
|
200
168
|
const parsedUrl = parseURL(url)
|
|
201
169
|
if (parsedUrl.search) {
|
|
202
|
-
parsedUrl.search +=
|
|
170
|
+
parsedUrl.search += params.data
|
|
203
171
|
} else {
|
|
204
172
|
parsedUrl.search = `?${params.data}`
|
|
205
173
|
}
|
|
@@ -208,6 +176,15 @@ export class CloudbaseContainers {
|
|
|
208
176
|
}
|
|
209
177
|
}
|
|
210
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
|
+
|
|
211
188
|
callContainer({
|
|
212
189
|
...params,
|
|
213
190
|
success: resolve,
|
|
@@ -229,15 +206,15 @@ export class CloudbaseContainers {
|
|
|
229
206
|
this.containerInitPromise = new Promise((resolve, reject) => {
|
|
230
207
|
initContainer({
|
|
231
208
|
config,
|
|
232
|
-
success
|
|
209
|
+
success(res) {
|
|
233
210
|
if (String(res.statusCode) !== '200') {
|
|
234
211
|
reject(genContainerError(res.data, `${COMPONENT_NAME}.initContainer`, 'init container fail'))
|
|
235
212
|
}
|
|
236
213
|
resolve(res)
|
|
237
214
|
},
|
|
238
|
-
fail
|
|
215
|
+
fail(res) {
|
|
239
216
|
reject(genContainerError(res.data, `${COMPONENT_NAME}.initContainer`, 'init container fail'))
|
|
240
|
-
this.
|
|
217
|
+
this._containerInitPromis = null
|
|
241
218
|
},
|
|
242
219
|
})
|
|
243
220
|
})
|
|
@@ -274,3 +251,116 @@ export function registerContainers(app: Pick<ICloudbase, 'registerComponent'>) {
|
|
|
274
251
|
console.warn(e)
|
|
275
252
|
}
|
|
276
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,185 +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 go_wams_exec_1 = __importDefault(require("../go_wams_exec"));
|
|
55
|
-
var _1 = require(".");
|
|
56
|
-
function instantiateStreaming(resp, importObject, brotliCompressed) {
|
|
57
|
-
if (brotliCompressed === void 0) { brotliCompressed = false; }
|
|
58
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
59
|
-
var source, buffer;
|
|
60
|
-
return __generator(this, function (_a) {
|
|
61
|
-
switch (_a.label) {
|
|
62
|
-
case 0:
|
|
63
|
-
if (!(brotliCompressed || !WebAssembly.instantiateStreaming)) return [3, 3];
|
|
64
|
-
return [4, resp];
|
|
65
|
-
case 1: return [4, (_a.sent()).arrayBuffer()];
|
|
66
|
-
case 2:
|
|
67
|
-
source = _a.sent();
|
|
68
|
-
if (brotliCompressed) {
|
|
69
|
-
throw new Error('do not support *.br');
|
|
70
|
-
}
|
|
71
|
-
buffer = source;
|
|
72
|
-
return [2, WebAssembly.instantiate(buffer, importObject)];
|
|
73
|
-
case 3: return [2, WebAssembly.instantiateStreaming(resp, importObject)];
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
function isBrotliCompressed(url) {
|
|
79
|
-
var brotliCompressed = false;
|
|
80
|
-
var pathname = '';
|
|
81
|
-
try {
|
|
82
|
-
var location_1 = (0, _1.parseURL)(url);
|
|
83
|
-
pathname = location_1.pathname;
|
|
84
|
-
}
|
|
85
|
-
catch (e) {
|
|
86
|
-
pathname = url;
|
|
87
|
-
}
|
|
88
|
-
if (/\.br$/.test(pathname)) {
|
|
89
|
-
brotliCompressed = true;
|
|
90
|
-
}
|
|
91
|
-
return brotliCompressed;
|
|
92
|
-
}
|
|
93
|
-
function getExportFunction(url, module, mode) {
|
|
94
|
-
if (mode === void 0) { mode = 'go'; }
|
|
95
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
96
|
-
var importObject, go, brotliCompressed, reuslt;
|
|
97
|
-
return __generator(this, function (_a) {
|
|
98
|
-
switch (_a.label) {
|
|
99
|
-
case 0:
|
|
100
|
-
importObject = __assign({ env: {
|
|
101
|
-
memoryBase: 0,
|
|
102
|
-
tableBase: 0,
|
|
103
|
-
memory: new WebAssembly.Memory({
|
|
104
|
-
initial: 256,
|
|
105
|
-
}),
|
|
106
|
-
} }, module);
|
|
107
|
-
brotliCompressed = isBrotliCompressed(url);
|
|
108
|
-
if (mode === 'go') {
|
|
109
|
-
go = new go_wams_exec_1.default();
|
|
110
|
-
go._initedModulePromise = new Promise(function (resolve) {
|
|
111
|
-
go._initedModuleResolve = resolve;
|
|
112
|
-
});
|
|
113
|
-
importObject = __assign(__assign({}, go.importObject), { env: __assign(__assign({}, go.importObject.env), { exportModule: function (module) {
|
|
114
|
-
return go._initedModuleResolve(module);
|
|
115
|
-
} }) });
|
|
116
|
-
}
|
|
117
|
-
return [4, instantiateStreaming(fetch(url), importObject, brotliCompressed)];
|
|
118
|
-
case 1:
|
|
119
|
-
reuslt = _a.sent();
|
|
120
|
-
if (!(mode === 'go')) return [3, 3];
|
|
121
|
-
return [4, Promise.race([
|
|
122
|
-
go.run(reuslt.instance),
|
|
123
|
-
new Promise(function (resolve) { return setTimeout(function () {
|
|
124
|
-
resolve(null);
|
|
125
|
-
}, 500); }),
|
|
126
|
-
])];
|
|
127
|
-
case 2:
|
|
128
|
-
_a.sent();
|
|
129
|
-
return [2, {
|
|
130
|
-
callContainer: window.callContainer,
|
|
131
|
-
initContainer: window.initContainer,
|
|
132
|
-
}];
|
|
133
|
-
case 3: return [2, reuslt.instance.exports];
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
exports.getExportFunction = getExportFunction;
|
|
139
|
-
function loadJSExportFunction(config) {
|
|
140
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
141
|
-
var _a, vm, vender, VENDER_KEY;
|
|
142
|
-
return __generator(this, function (_b) {
|
|
143
|
-
switch (_b.label) {
|
|
144
|
-
case 0:
|
|
145
|
-
_a = config || {}, vm = _a.vm, vender = _a.vender;
|
|
146
|
-
VENDER_KEY = 'cloudbase_private_link_vender';
|
|
147
|
-
if (!(vender || !Object.prototype.hasOwnProperty.call(document.defaultView, VENDER_KEY))) return [3, 2];
|
|
148
|
-
return [4, loadUmdModule(vender
|
|
149
|
-
|| 'https://cdn.jsdelivr.net/npm/@cloudbase/privatelink-vender@0.0.1-alpha.3/dist/cdn/cloudbase.privatelink.vender.js', VENDER_KEY)];
|
|
150
|
-
case 1:
|
|
151
|
-
_b.sent();
|
|
152
|
-
_b.label = 2;
|
|
153
|
-
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')];
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
exports.loadJSExportFunction = loadJSExportFunction;
|
|
159
|
-
function loadUmdModule(jsUrl, umdModuleName, targetDoc) {
|
|
160
|
-
if (targetDoc === void 0) { targetDoc = document; }
|
|
161
|
-
return new Promise(function (resolve, reject) {
|
|
162
|
-
var win = targetDoc.defaultView;
|
|
163
|
-
var script = targetDoc.createElement('script');
|
|
164
|
-
script.setAttribute('src', jsUrl);
|
|
165
|
-
script.setAttribute('class', umdModuleName);
|
|
166
|
-
script.addEventListener('load', function () {
|
|
167
|
-
if (Object.prototype.hasOwnProperty.call(win, umdModuleName)) {
|
|
168
|
-
return resolve(win[umdModuleName]);
|
|
169
|
-
}
|
|
170
|
-
var error = new Error("Fail to load UMD module ".concat(umdModuleName, " from [").concat(jsUrl, "]."));
|
|
171
|
-
return reject(error);
|
|
172
|
-
});
|
|
173
|
-
script.addEventListener('error', function (e) {
|
|
174
|
-
var error = new Error("main bundle [".concat(umdModuleName, "] load failed from [").concat(jsUrl, "]: ").concat((e === null || e === void 0 ? void 0 : e.message) || ''));
|
|
175
|
-
reject(error);
|
|
176
|
-
});
|
|
177
|
-
if (targetDoc.body) {
|
|
178
|
-
targetDoc.body.appendChild(script);
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
targetDoc.head.appendChild(script);
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGlFQUFnQztBQUNoQyxzQkFBNEI7QUFFNUIsU0FBZSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGdCQUF3QjtJQUF4QixpQ0FBQSxFQUFBLHdCQUF3Qjs7Ozs7O3lCQUMxRSxDQUFBLGdCQUFnQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFBLEVBQXJELGNBQXFEO29CQUNqQyxXQUFNLElBQUksRUFBQTt3QkFBakIsV0FBTSxDQUFDLFNBQVUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFBOztvQkFBekMsTUFBTSxHQUFHLFNBQWdDO29CQUMvQyxJQUFJLGdCQUFnQixFQUFFO3dCQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7cUJBQ3ZDO29CQUVLLE1BQU0sR0FBRyxNQUFNLENBQUE7b0JBQ3JCLFdBQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUE7d0JBR3RELFdBQU8sV0FBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsRUFBQTs7OztDQUM1RDtBQUVELFNBQVMsa0JBQWtCLENBQUMsR0FBRztJQUM3QixJQUFJLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtJQUU1QixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUE7SUFDakIsSUFBSTtRQUNGLElBQU0sVUFBUSxHQUFHLElBQUEsV0FBUSxFQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzlCLFFBQVEsR0FBRyxVQUFRLENBQUMsUUFBUSxDQUFBO0tBQzdCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixRQUFRLEdBQUcsR0FBRyxDQUFBO0tBQ2Y7SUFF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QUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCBkZWNvbXByZXNzIGZyb20gJ2Jyb3RsaS9kZWNvbXByZXNzJ1xuaW1wb3J0IEdvIGZyb20gJy4uL2dvX3dhbXNfZXhlYydcbmltcG9ydCB7IHBhcnNlVVJMIH0gZnJvbSAnLidcblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFudGlhdGVTdHJlYW1pbmcocmVzcCwgaW1wb3J0T2JqZWN0LCBicm90bGlDb21wcmVzc2VkID0gZmFsc2UpIHtcbiAgaWYgKGJyb3RsaUNvbXByZXNzZWQgfHwgIVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKSB7XG4gICAgY29uc3Qgc291cmNlID0gYXdhaXQgKGF3YWl0IHJlc3ApLmFycmF5QnVmZmVyKClcbiAgICBpZiAoYnJvdGxpQ29tcHJlc3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkbyBub3Qgc3VwcG9ydCAqLmJyJylcbiAgICB9XG4gICAgLy8gY29uc3QgYnVmZmVyID0gYnJvdGxpQ29tcHJlc3NlZCA/IGRlY29tcHJlc3MobmV3IEludDhBcnJheShzb3VyY2UpKSA6IHNvdXJjZVxuICAgIGNvbnN0IGJ1ZmZlciA9IHNvdXJjZVxuICAgIHJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShidWZmZXIsIGltcG9ydE9iamVjdClcbiAgfVxuXG4gIHJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhyZXNwLCBpbXBvcnRPYmplY3QpXG59XG5cbmZ1bmN0aW9uIGlzQnJvdGxpQ29tcHJlc3NlZCh1cmwpIHtcbiAgbGV0IGJyb3RsaUNvbXByZXNzZWQgPSBmYWxzZVxuXG4gIGxldCBwYXRobmFtZSA9ICcnXG4gIHRyeSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSBwYXJzZVVSTCh1cmwpXG4gICAgcGF0aG5hbWUgPSBsb2NhdGlvbi5wYXRobmFtZVxuICB9IGNhdGNoIChlKSB7XG4gICAgcGF0aG5hbWUgPSB1cmxcbiAgfVxuXG4gIGlmICgvXFwuYnIkLy50ZXN0KHBhdGhuYW1lKSkge1xuICAgIGJyb3RsaUNvbXByZXNzZWQgPSB0cnVlXG4gIH1cbiAgcmV0dXJuIGJyb3RsaUNvbXByZXNzZWRcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEV4cG9ydEZ1bmN0aW9uKHVybCwgbW9kdWxlLCBtb2RlID0gJ2dvJykge1xuICBsZXQgaW1wb3J0T2JqZWN0ID0ge1xuICAgIGVudjoge1xuICAgICAgbWVtb3J5QmFzZTogMCxcbiAgICAgIHRhYmxlQmFzZTogMCxcbiAgICAgIG1lbW9yeTogbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7XG4gICAgICAgIGluaXRpYWw6IDI1NixcbiAgICAgIH0pLFxuICAgICAgLy8gdGFibGU6IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7XG4gICAgICAvLyAgIGluaXRpYWw6IDIsXG4gICAgICAvLyAgIGVsZW1lbnQ6ICdhbnlmdW5jJyxcbiAgICAgIC8vIH0pLFxuICAgIH0sXG4gICAgLi4ubW9kdWxlLFxuICB9XG4gIGxldCBnb1xuICBjb25zdCBicm90bGlDb21wcmVzc2VkID0gaXNCcm90bGlDb21wcmVzc2VkKHVybClcblxuICBpZiAobW9kZSA9PT0gJ2dvJykge1xuICAgIGdvID0gbmV3IEdvKClcbiAgICBnby5faW5pdGVkTW9kdWxlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBnby5faW5pdGVkTW9kdWxlUmVzb2x2ZSA9IHJlc29sdmVcbiAgICB9KVxuICAgIGltcG9ydE9iamVjdCA9IHtcbiAgICAgIC4uLmdvLmltcG9ydE9iamVjdCxcbiAgICAgIGVudjoge1xuICAgICAgICAuLi5nby5pbXBvcnRPYmplY3QuZW52LFxuICAgICAgICBleHBvcnRNb2R1bGUobW9kdWxlKSB7XG4gICAgICAgICAgcmV0dXJuIGdvLl9pbml0ZWRNb2R1bGVSZXNvbHZlKG1vZHVsZSlcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1c2x0ID0gYXdhaXQgaW5zdGFudGlhdGVTdHJlYW1pbmcoZmV0Y2godXJsKSwgaW1wb3J0T2JqZWN0LCBicm90bGlDb21wcmVzc2VkKVxuXG4gIGlmIChtb2RlID09PSAnZ28nKSB7XG4gICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgIGdvLnJ1bihyZXVzbHQuaW5zdGFuY2UpLFxuICAgICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KCgpID0+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>;
|