isomorfeus-asset-manager 0.15.10 → 0.16.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.
- checksums.yaml +4 -4
- data/lib/isomorfeus/asset_manager/version.rb +1 -1
- data/node_modules/.package-lock.json +3 -3
- data/node_modules/esbuild-wasm/bin/esbuild +0 -42
- data/node_modules/esbuild-wasm/esbuild.wasm +0 -0
- data/node_modules/esbuild-wasm/esm/browser.d.ts +5 -3
- data/node_modules/esbuild-wasm/esm/browser.js +127 -79
- data/node_modules/esbuild-wasm/esm/browser.min.js +15 -10
- data/node_modules/esbuild-wasm/lib/browser.d.ts +5 -3
- data/node_modules/esbuild-wasm/lib/browser.js +130 -80
- data/node_modules/esbuild-wasm/lib/browser.min.js +17 -12
- data/node_modules/esbuild-wasm/lib/main.d.ts +5 -3
- data/node_modules/esbuild-wasm/lib/main.js +73 -48
- data/node_modules/esbuild-wasm/package.json +1 -1
- data/package.json +1 -1
- metadata +2 -3
- data/node_modules/esbuild-wasm/exit0.js +0 -13
@@ -190,26 +190,30 @@ var ByteBuffer = class {
|
|
190
190
|
};
|
191
191
|
var encodeUTF8;
|
192
192
|
var decodeUTF8;
|
193
|
+
var encodeInvariant;
|
193
194
|
if (typeof TextEncoder !== "undefined" && typeof TextDecoder !== "undefined") {
|
194
195
|
let encoder = new TextEncoder();
|
195
196
|
let decoder = new TextDecoder();
|
196
197
|
encodeUTF8 = (text) => encoder.encode(text);
|
197
198
|
decodeUTF8 = (bytes) => decoder.decode(bytes);
|
199
|
+
encodeInvariant = 'new TextEncoder().encode("")';
|
198
200
|
} else if (typeof Buffer !== "undefined") {
|
199
|
-
encodeUTF8 = (text) =>
|
200
|
-
let buffer = Buffer.from(text);
|
201
|
-
if (!(buffer instanceof Uint8Array)) {
|
202
|
-
buffer = new Uint8Array(buffer);
|
203
|
-
}
|
204
|
-
return buffer;
|
205
|
-
};
|
201
|
+
encodeUTF8 = (text) => Buffer.from(text);
|
206
202
|
decodeUTF8 = (bytes) => {
|
207
203
|
let { buffer, byteOffset, byteLength } = bytes;
|
208
204
|
return Buffer.from(buffer, byteOffset, byteLength).toString();
|
209
205
|
};
|
206
|
+
encodeInvariant = 'Buffer.from("")';
|
210
207
|
} else {
|
211
208
|
throw new Error("No UTF-8 codec found");
|
212
209
|
}
|
210
|
+
if (!(encodeUTF8("") instanceof Uint8Array))
|
211
|
+
throw new Error(`Invariant violation: "${encodeInvariant} instanceof Uint8Array" is incorrectly false
|
212
|
+
|
213
|
+
This indicates that your JavaScript environment is broken. You cannot use
|
214
|
+
esbuild in this environment because esbuild relies on this invariant. This
|
215
|
+
is not a problem with esbuild. You need to fix your environment instead.
|
216
|
+
`);
|
213
217
|
function readUInt32LE(buffer, offset) {
|
214
218
|
return buffer[offset++] | buffer[offset++] << 8 | buffer[offset++] << 16 | buffer[offset++] << 24;
|
215
219
|
}
|
@@ -221,10 +225,11 @@ function writeUInt32LE(buffer, value, offset) {
|
|
221
225
|
}
|
222
226
|
|
223
227
|
// lib/shared/common.ts
|
228
|
+
var quote = JSON.stringify;
|
224
229
|
var buildLogLevelDefault = "warning";
|
225
230
|
var transformLogLevelDefault = "silent";
|
226
231
|
function validateTarget(target) {
|
227
|
-
target
|
232
|
+
validateStringValue(target, "target");
|
228
233
|
if (target.indexOf(",") >= 0)
|
229
234
|
throw new Error(`Invalid target: ${target}`);
|
230
235
|
return target;
|
@@ -245,6 +250,7 @@ var mustBeStringOrBoolean = (value) => typeof value === "string" || typeof value
|
|
245
250
|
var mustBeStringOrObject = (value) => typeof value === "string" || typeof value === "object" && value !== null && !Array.isArray(value) ? null : "a string or an object";
|
246
251
|
var mustBeStringOrArray = (value) => typeof value === "string" || Array.isArray(value) ? null : "a string or an array";
|
247
252
|
var mustBeStringOrUint8Array = (value) => typeof value === "string" || value instanceof Uint8Array ? null : "a string or a Uint8Array";
|
253
|
+
var mustBeStringOrURL = (value) => typeof value === "string" || value instanceof URL ? null : "a string or a URL";
|
248
254
|
function getFlag(object, keys, key, mustBeFn) {
|
249
255
|
let value = object[key];
|
250
256
|
keys[key + ""] = true;
|
@@ -252,19 +258,19 @@ function getFlag(object, keys, key, mustBeFn) {
|
|
252
258
|
return void 0;
|
253
259
|
let mustBe = mustBeFn(value);
|
254
260
|
if (mustBe !== null)
|
255
|
-
throw new Error(
|
261
|
+
throw new Error(`${quote(key)} must be ${mustBe}`);
|
256
262
|
return value;
|
257
263
|
}
|
258
264
|
function checkForInvalidFlags(object, keys, where) {
|
259
265
|
for (let key in object) {
|
260
266
|
if (!(key in keys)) {
|
261
|
-
throw new Error(`Invalid option ${where}:
|
267
|
+
throw new Error(`Invalid option ${where}: ${quote(key)}`);
|
262
268
|
}
|
263
269
|
}
|
264
270
|
}
|
265
271
|
function validateInitializeOptions(options) {
|
266
272
|
let keys = /* @__PURE__ */ Object.create(null);
|
267
|
-
let wasmURL = getFlag(options, keys, "wasmURL",
|
273
|
+
let wasmURL = getFlag(options, keys, "wasmURL", mustBeStringOrURL);
|
268
274
|
let wasmModule = getFlag(options, keys, "wasmModule", mustBeWebAssemblyModule);
|
269
275
|
let worker = getFlag(options, keys, "worker", mustBeBoolean);
|
270
276
|
checkForInvalidFlags(options, keys, "in initialize() call");
|
@@ -278,12 +284,12 @@ function validateMangleCache(mangleCache) {
|
|
278
284
|
let validated;
|
279
285
|
if (mangleCache !== void 0) {
|
280
286
|
validated = /* @__PURE__ */ Object.create(null);
|
281
|
-
for (let key
|
287
|
+
for (let key in mangleCache) {
|
282
288
|
let value = mangleCache[key];
|
283
289
|
if (typeof value === "string" || value === false) {
|
284
290
|
validated[key] = value;
|
285
291
|
} else {
|
286
|
-
throw new Error(`Expected ${
|
292
|
+
throw new Error(`Expected ${quote(key)} in mangle cache to map to either a string or false`);
|
287
293
|
}
|
288
294
|
}
|
289
295
|
}
|
@@ -300,6 +306,12 @@ function pushLogFlags(flags, options, keys, isTTY, logLevelDefault) {
|
|
300
306
|
flags.push(`--log-level=${logLevel || logLevelDefault}`);
|
301
307
|
flags.push(`--log-limit=${logLimit || 0}`);
|
302
308
|
}
|
309
|
+
function validateStringValue(value, what, key) {
|
310
|
+
if (typeof value !== "string") {
|
311
|
+
throw new Error(`Expected value for ${what}${key !== void 0 ? " " + quote(key) : ""} to be a string, got ${typeof value} instead`);
|
312
|
+
}
|
313
|
+
return value;
|
314
|
+
}
|
303
315
|
function pushCommonFlags(flags, options, keys) {
|
304
316
|
let legalComments = getFlag(options, keys, "legalComments", mustBeString);
|
305
317
|
let sourceRoot = getFlag(options, keys, "sourceRoot", mustBeString);
|
@@ -364,7 +376,7 @@ function pushCommonFlags(flags, options, keys) {
|
|
364
376
|
flags.push(`--ignore-annotations`);
|
365
377
|
if (drop)
|
366
378
|
for (let what of drop)
|
367
|
-
flags.push(`--drop:${what}`);
|
379
|
+
flags.push(`--drop:${validateStringValue(what, "drop")}`);
|
368
380
|
if (mangleProps)
|
369
381
|
flags.push(`--mangle-props=${mangleProps.source}`);
|
370
382
|
if (reserveProps)
|
@@ -387,26 +399,29 @@ function pushCommonFlags(flags, options, keys) {
|
|
387
399
|
for (let key in define) {
|
388
400
|
if (key.indexOf("=") >= 0)
|
389
401
|
throw new Error(`Invalid define: ${key}`);
|
390
|
-
flags.push(`--define:${key}=${define[key]}`);
|
402
|
+
flags.push(`--define:${key}=${validateStringValue(define[key], "define", key)}`);
|
391
403
|
}
|
392
404
|
}
|
393
405
|
if (logOverride) {
|
394
406
|
for (let key in logOverride) {
|
395
407
|
if (key.indexOf("=") >= 0)
|
396
408
|
throw new Error(`Invalid log override: ${key}`);
|
397
|
-
flags.push(`--log-override:${key}=${logOverride[key]}`);
|
409
|
+
flags.push(`--log-override:${key}=${validateStringValue(logOverride[key], "log override", key)}`);
|
398
410
|
}
|
399
411
|
}
|
400
412
|
if (supported) {
|
401
413
|
for (let key in supported) {
|
402
414
|
if (key.indexOf("=") >= 0)
|
403
415
|
throw new Error(`Invalid supported: ${key}`);
|
404
|
-
|
416
|
+
const value = supported[key];
|
417
|
+
if (typeof value !== "boolean")
|
418
|
+
throw new Error(`Expected value for supported ${quote(key)} to be a boolean, got ${typeof value} instead`);
|
419
|
+
flags.push(`--supported:${key}=${value}`);
|
405
420
|
}
|
406
421
|
}
|
407
422
|
if (pure)
|
408
423
|
for (let fn of pure)
|
409
|
-
flags.push(`--pure:${fn}`);
|
424
|
+
flags.push(`--pure:${validateStringValue(fn, "pure")}`);
|
410
425
|
if (keepNames)
|
411
426
|
flags.push(`--keep-names`);
|
412
427
|
}
|
@@ -435,6 +450,7 @@ function flagsForBuildOptions(callName, options, isTTY, logLevelDefault, writeDe
|
|
435
450
|
let mainFields = getFlag(options, keys, "mainFields", mustBeArray);
|
436
451
|
let conditions = getFlag(options, keys, "conditions", mustBeArray);
|
437
452
|
let external = getFlag(options, keys, "external", mustBeArray);
|
453
|
+
let alias = getFlag(options, keys, "alias", mustBeObject);
|
438
454
|
let loader = getFlag(options, keys, "loader", mustBeObject);
|
439
455
|
let outExtension = getFlag(options, keys, "outExtension", mustBeObject);
|
440
456
|
let publicPath = getFlag(options, keys, "publicPath", mustBeString);
|
@@ -487,7 +503,7 @@ function flagsForBuildOptions(callName, options, isTTY, logLevelDefault, writeDe
|
|
487
503
|
if (resolveExtensions) {
|
488
504
|
let values = [];
|
489
505
|
for (let value of resolveExtensions) {
|
490
|
-
value
|
506
|
+
validateStringValue(value, "resolve extension");
|
491
507
|
if (value.indexOf(",") >= 0)
|
492
508
|
throw new Error(`Invalid resolve extension: ${value}`);
|
493
509
|
values.push(value);
|
@@ -505,7 +521,7 @@ function flagsForBuildOptions(callName, options, isTTY, logLevelDefault, writeDe
|
|
505
521
|
if (mainFields) {
|
506
522
|
let values = [];
|
507
523
|
for (let value of mainFields) {
|
508
|
-
value
|
524
|
+
validateStringValue(value, "main field");
|
509
525
|
if (value.indexOf(",") >= 0)
|
510
526
|
throw new Error(`Invalid main field: ${value}`);
|
511
527
|
values.push(value);
|
@@ -515,7 +531,7 @@ function flagsForBuildOptions(callName, options, isTTY, logLevelDefault, writeDe
|
|
515
531
|
if (conditions) {
|
516
532
|
let values = [];
|
517
533
|
for (let value of conditions) {
|
518
|
-
value
|
534
|
+
validateStringValue(value, "condition");
|
519
535
|
if (value.indexOf(",") >= 0)
|
520
536
|
throw new Error(`Invalid condition: ${value}`);
|
521
537
|
values.push(value);
|
@@ -524,46 +540,53 @@ function flagsForBuildOptions(callName, options, isTTY, logLevelDefault, writeDe
|
|
524
540
|
}
|
525
541
|
if (external)
|
526
542
|
for (let name of external)
|
527
|
-
flags.push(`--external:${name}`);
|
543
|
+
flags.push(`--external:${validateStringValue(name, "external")}`);
|
544
|
+
if (alias) {
|
545
|
+
for (let old in alias) {
|
546
|
+
if (old.indexOf("=") >= 0)
|
547
|
+
throw new Error(`Invalid package name in alias: ${old}`);
|
548
|
+
flags.push(`--alias:${old}=${validateStringValue(alias[old], "alias", old)}`);
|
549
|
+
}
|
550
|
+
}
|
528
551
|
if (banner) {
|
529
552
|
for (let type in banner) {
|
530
553
|
if (type.indexOf("=") >= 0)
|
531
554
|
throw new Error(`Invalid banner file type: ${type}`);
|
532
|
-
flags.push(`--banner:${type}=${banner[type]}`);
|
555
|
+
flags.push(`--banner:${type}=${validateStringValue(banner[type], "banner", type)}`);
|
533
556
|
}
|
534
557
|
}
|
535
558
|
if (footer) {
|
536
559
|
for (let type in footer) {
|
537
560
|
if (type.indexOf("=") >= 0)
|
538
561
|
throw new Error(`Invalid footer file type: ${type}`);
|
539
|
-
flags.push(`--footer:${type}=${footer[type]}`);
|
562
|
+
flags.push(`--footer:${type}=${validateStringValue(footer[type], "footer", type)}`);
|
540
563
|
}
|
541
564
|
}
|
542
565
|
if (inject)
|
543
566
|
for (let path of inject)
|
544
|
-
flags.push(`--inject:${path}`);
|
567
|
+
flags.push(`--inject:${validateStringValue(path, "inject")}`);
|
545
568
|
if (loader) {
|
546
569
|
for (let ext in loader) {
|
547
570
|
if (ext.indexOf("=") >= 0)
|
548
571
|
throw new Error(`Invalid loader extension: ${ext}`);
|
549
|
-
flags.push(`--loader:${ext}=${loader[ext]}`);
|
572
|
+
flags.push(`--loader:${ext}=${validateStringValue(loader[ext], "loader", ext)}`);
|
550
573
|
}
|
551
574
|
}
|
552
575
|
if (outExtension) {
|
553
576
|
for (let ext in outExtension) {
|
554
577
|
if (ext.indexOf("=") >= 0)
|
555
578
|
throw new Error(`Invalid out extension: ${ext}`);
|
556
|
-
flags.push(`--out-extension:${ext}=${outExtension[ext]}`);
|
579
|
+
flags.push(`--out-extension:${ext}=${validateStringValue(outExtension[ext], "out extension", ext)}`);
|
557
580
|
}
|
558
581
|
}
|
559
582
|
if (entryPoints) {
|
560
583
|
if (Array.isArray(entryPoints)) {
|
561
584
|
for (let entryPoint of entryPoints) {
|
562
|
-
entries.push(["", entryPoint
|
585
|
+
entries.push(["", validateStringValue(entryPoint, "entry point")]);
|
563
586
|
}
|
564
587
|
} else {
|
565
|
-
for (let
|
566
|
-
entries.push([key
|
588
|
+
for (let key in entryPoints) {
|
589
|
+
entries.push([key, validateStringValue(entryPoints[key], "entry point", key)]);
|
567
590
|
}
|
568
591
|
}
|
569
592
|
}
|
@@ -579,7 +602,7 @@ function flagsForBuildOptions(callName, options, isTTY, logLevelDefault, writeDe
|
|
579
602
|
if (loader2)
|
580
603
|
flags.push(`--loader=${loader2}`);
|
581
604
|
if (resolveDir)
|
582
|
-
stdinResolveDir = resolveDir
|
605
|
+
stdinResolveDir = resolveDir;
|
583
606
|
if (typeof contents === "string")
|
584
607
|
stdinContents = encodeUTF8(contents);
|
585
608
|
else if (contents instanceof Uint8Array)
|
@@ -724,8 +747,8 @@ function createChannel(streamIn) {
|
|
724
747
|
if (isFirstPacket) {
|
725
748
|
isFirstPacket = false;
|
726
749
|
let binaryVersion = String.fromCharCode(...bytes);
|
727
|
-
if (binaryVersion !== "0.
|
728
|
-
throw new Error(`Cannot start service: Host version "${"0.
|
750
|
+
if (binaryVersion !== "0.16.1") {
|
751
|
+
throw new Error(`Cannot start service: Host version "${"0.16.1"}" does not match binary version ${quote(binaryVersion)}`);
|
729
752
|
}
|
730
753
|
return;
|
731
754
|
}
|
@@ -1207,7 +1230,7 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1207
1230
|
let setup = getFlag(item, keys, "setup", mustBeFunction);
|
1208
1231
|
if (typeof setup !== "function")
|
1209
1232
|
throw new Error(`Plugin is missing a setup function`);
|
1210
|
-
checkForInvalidFlags(item, keys, `on plugin ${
|
1233
|
+
checkForInvalidFlags(item, keys, `on plugin ${quote(name)}`);
|
1211
1234
|
let plugin = {
|
1212
1235
|
name,
|
1213
1236
|
onResolve: [],
|
@@ -1244,6 +1267,8 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1244
1267
|
request.resolveDir = resolveDir;
|
1245
1268
|
if (kind != null)
|
1246
1269
|
request.kind = kind;
|
1270
|
+
else
|
1271
|
+
throw new Error(`Must specify "kind" when calling "resolve"`);
|
1247
1272
|
if (pluginData != null)
|
1248
1273
|
request.pluginData = details.store(pluginData);
|
1249
1274
|
sendRequest(refs, request, (error, response) => {
|
@@ -1282,7 +1307,7 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1282
1307
|
let keys2 = {};
|
1283
1308
|
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
1284
1309
|
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
1285
|
-
checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${
|
1310
|
+
checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${quote(name)}`);
|
1286
1311
|
if (filter == null)
|
1287
1312
|
throw new Error(`onResolve() call is missing a filter`);
|
1288
1313
|
let id = nextCallbackID++;
|
@@ -1295,7 +1320,7 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1295
1320
|
let keys2 = {};
|
1296
1321
|
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
1297
1322
|
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
1298
|
-
checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${
|
1323
|
+
checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${quote(name)}`);
|
1299
1324
|
if (filter == null)
|
1300
1325
|
throw new Error(`onLoad() call is missing a filter`);
|
1301
1326
|
let id = nextCallbackID++;
|
@@ -1318,11 +1343,11 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1318
1343
|
let result = yield callback();
|
1319
1344
|
if (result != null) {
|
1320
1345
|
if (typeof result !== "object")
|
1321
|
-
throw new Error(`Expected onStart() callback in plugin ${
|
1346
|
+
throw new Error(`Expected onStart() callback in plugin ${quote(name)} to return an object`);
|
1322
1347
|
let keys = {};
|
1323
1348
|
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1324
1349
|
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1325
|
-
checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${
|
1350
|
+
checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${quote(name)}`);
|
1326
1351
|
if (errors != null)
|
1327
1352
|
response.errors.push(...sanitizeMessages(errors, "errors", details, name));
|
1328
1353
|
if (warnings != null)
|
@@ -1349,7 +1374,7 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1349
1374
|
});
|
1350
1375
|
if (result != null) {
|
1351
1376
|
if (typeof result !== "object")
|
1352
|
-
throw new Error(`Expected onResolve() callback in plugin ${
|
1377
|
+
throw new Error(`Expected onResolve() callback in plugin ${quote(name)} to return an object`);
|
1353
1378
|
let keys = {};
|
1354
1379
|
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
1355
1380
|
let path = getFlag(result, keys, "path", mustBeString);
|
@@ -1362,7 +1387,7 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1362
1387
|
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1363
1388
|
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
1364
1389
|
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
1365
|
-
checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${
|
1390
|
+
checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${quote(name)}`);
|
1366
1391
|
response.id = id2;
|
1367
1392
|
if (pluginName != null)
|
1368
1393
|
response.pluginName = pluginName;
|
@@ -1408,7 +1433,7 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1408
1433
|
});
|
1409
1434
|
if (result != null) {
|
1410
1435
|
if (typeof result !== "object")
|
1411
|
-
throw new Error(`Expected onLoad() callback in plugin ${
|
1436
|
+
throw new Error(`Expected onLoad() callback in plugin ${quote(name)} to return an object`);
|
1412
1437
|
let keys = {};
|
1413
1438
|
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
1414
1439
|
let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array);
|
@@ -1419,7 +1444,7 @@ var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, reques
|
|
1419
1444
|
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1420
1445
|
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
1421
1446
|
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
1422
|
-
checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${
|
1447
|
+
checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${quote(name)}`);
|
1423
1448
|
response.id = id2;
|
1424
1449
|
if (pluginName != null)
|
1425
1450
|
response.pluginName = pluginName;
|
@@ -1497,9 +1522,9 @@ function extractCallerV8(e, streamIn, ident) {
|
|
1497
1522
|
try {
|
1498
1523
|
let lines = (e.stack + "").split("\n");
|
1499
1524
|
lines.splice(1, 1);
|
1500
|
-
let
|
1501
|
-
if (
|
1502
|
-
note = { text: e.message, location };
|
1525
|
+
let location2 = parseStackLinesV8(streamIn, lines, ident);
|
1526
|
+
if (location2) {
|
1527
|
+
note = { text: e.message, location: location2 };
|
1503
1528
|
return note;
|
1504
1529
|
}
|
1505
1530
|
} catch (e2) {
|
@@ -1508,16 +1533,16 @@ function extractCallerV8(e, streamIn, ident) {
|
|
1508
1533
|
}
|
1509
1534
|
function extractErrorMessageV8(e, streamIn, stash, note, pluginName) {
|
1510
1535
|
let text = "Internal error";
|
1511
|
-
let
|
1536
|
+
let location2 = null;
|
1512
1537
|
try {
|
1513
1538
|
text = (e && e.message || e) + "";
|
1514
1539
|
} catch (e2) {
|
1515
1540
|
}
|
1516
1541
|
try {
|
1517
|
-
|
1542
|
+
location2 = parseStackLinesV8(streamIn, (e.stack + "").split("\n"), "");
|
1518
1543
|
} catch (e2) {
|
1519
1544
|
}
|
1520
|
-
return { id: "", pluginName, text, location, notes: note ? [note] : [], detail: stash ? stash.store(e) : -1 };
|
1545
|
+
return { id: "", pluginName, text, location: location2, notes: note ? [note] : [], detail: stash ? stash.store(e) : -1 };
|
1521
1546
|
}
|
1522
1547
|
function parseStackLinesV8(streamIn, lines, ident) {
|
1523
1548
|
let at = " at ";
|
@@ -1589,18 +1614,18 @@ function replaceDetailsInMessages(messages, stash) {
|
|
1589
1614
|
}
|
1590
1615
|
return messages;
|
1591
1616
|
}
|
1592
|
-
function sanitizeLocation(
|
1593
|
-
if (
|
1617
|
+
function sanitizeLocation(location2, where) {
|
1618
|
+
if (location2 == null)
|
1594
1619
|
return null;
|
1595
1620
|
let keys = {};
|
1596
|
-
let file = getFlag(
|
1597
|
-
let namespace = getFlag(
|
1598
|
-
let line = getFlag(
|
1599
|
-
let column = getFlag(
|
1600
|
-
let length = getFlag(
|
1601
|
-
let lineText = getFlag(
|
1602
|
-
let suggestion = getFlag(
|
1603
|
-
checkForInvalidFlags(
|
1621
|
+
let file = getFlag(location2, keys, "file", mustBeString);
|
1622
|
+
let namespace = getFlag(location2, keys, "namespace", mustBeString);
|
1623
|
+
let line = getFlag(location2, keys, "line", mustBeInteger);
|
1624
|
+
let column = getFlag(location2, keys, "column", mustBeInteger);
|
1625
|
+
let length = getFlag(location2, keys, "length", mustBeInteger);
|
1626
|
+
let lineText = getFlag(location2, keys, "lineText", mustBeString);
|
1627
|
+
let suggestion = getFlag(location2, keys, "suggestion", mustBeString);
|
1628
|
+
checkForInvalidFlags(location2, keys, where);
|
1604
1629
|
return {
|
1605
1630
|
file: file || "",
|
1606
1631
|
namespace: namespace || "",
|
@@ -1619,7 +1644,7 @@ function sanitizeMessages(messages, property, stash, fallbackPluginName) {
|
|
1619
1644
|
let id = getFlag(message, keys, "id", mustBeString);
|
1620
1645
|
let pluginName = getFlag(message, keys, "pluginName", mustBeString);
|
1621
1646
|
let text = getFlag(message, keys, "text", mustBeString);
|
1622
|
-
let
|
1647
|
+
let location2 = getFlag(message, keys, "location", mustBeObjectOrNull);
|
1623
1648
|
let notes = getFlag(message, keys, "notes", mustBeArray);
|
1624
1649
|
let detail = getFlag(message, keys, "detail", canBeAnything);
|
1625
1650
|
let where = `in element ${index} of "${property}"`;
|
@@ -1641,7 +1666,7 @@ function sanitizeMessages(messages, property, stash, fallbackPluginName) {
|
|
1641
1666
|
id: id || "",
|
1642
1667
|
pluginName: pluginName || fallbackPluginName,
|
1643
1668
|
text: text || "",
|
1644
|
-
location: sanitizeLocation(
|
1669
|
+
location: sanitizeLocation(location2, where),
|
1645
1670
|
notes: notesClone,
|
1646
1671
|
detail: stash ? stash.store(detail) : -1
|
1647
1672
|
});
|
@@ -1653,7 +1678,7 @@ function sanitizeStringArray(values, property) {
|
|
1653
1678
|
const result = [];
|
1654
1679
|
for (const value of values) {
|
1655
1680
|
if (typeof value !== "string")
|
1656
|
-
throw new Error(`${
|
1681
|
+
throw new Error(`${quote(property)} must be an array of strings`);
|
1657
1682
|
result.push(value);
|
1658
1683
|
}
|
1659
1684
|
return result;
|
@@ -1675,7 +1700,7 @@ function convertOutputFiles({ path, contents }) {
|
|
1675
1700
|
}
|
1676
1701
|
|
1677
1702
|
// lib/npm/browser.ts
|
1678
|
-
var version = "0.
|
1703
|
+
var version = "0.16.1";
|
1679
1704
|
var build = (options) => ensureServiceIsRunning().build(options);
|
1680
1705
|
var serve = () => {
|
1681
1706
|
throw new Error(`The "serve" API only works in node`);
|
@@ -1720,18 +1745,9 @@ var initialize = (options) => {
|
|
1720
1745
|
return initializePromise;
|
1721
1746
|
};
|
1722
1747
|
var startRunningService = (wasmURL, wasmModule, useWorker) => __async(void 0, null, function* () {
|
1723
|
-
let wasm;
|
1724
|
-
if (wasmModule) {
|
1725
|
-
wasm = wasmModule;
|
1726
|
-
} else {
|
1727
|
-
let res = yield fetch(wasmURL);
|
1728
|
-
if (!res.ok)
|
1729
|
-
throw new Error(`Failed to download ${JSON.stringify(wasmURL)}`);
|
1730
|
-
wasm = yield res.arrayBuffer();
|
1731
|
-
}
|
1732
1748
|
let worker;
|
1733
1749
|
if (useWorker) {
|
1734
|
-
let blob = new Blob([`onmessage=${'((postMessage) => {\n // Copyright 2018 The Go Authors. All rights reserved.\n // Use of this source code is governed by a BSD-style\n // license that can be found in the LICENSE file.\n var __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n };\n let onmessage;\n let globalThis = {};\n for (let o = self; o; o = Object.getPrototypeOf(o))\n for (let k of Object.getOwnPropertyNames(o))\n if (!(k in globalThis))\n Object.defineProperty(globalThis, k, { get: () => self[k] });\n "use strict";\n (() => {\n const enosys = () => {\n const err = new Error("not implemented");\n err.code = "ENOSYS";\n return err;\n };\n if (!globalThis.fs) {\n let outputBuf = "";\n globalThis.fs = {\n constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 },\n writeSync(fd, buf) {\n outputBuf += decoder.decode(buf);\n const nl = outputBuf.lastIndexOf("\\n");\n if (nl != -1) {\n console.log(outputBuf.substr(0, nl));\n outputBuf = outputBuf.substr(nl + 1);\n }\n return buf.length;\n },\n write(fd, buf, offset, length, position, callback) {\n if (offset !== 0 || length !== buf.length || position !== null) {\n callback(enosys());\n return;\n }\n const n = this.writeSync(fd, buf);\n callback(null, n);\n },\n chmod(path, mode, callback) {\n callback(enosys());\n },\n chown(path, uid, gid, callback) {\n callback(enosys());\n },\n close(fd, callback) {\n callback(enosys());\n },\n fchmod(fd, mode, callback) {\n callback(enosys());\n },\n fchown(fd, uid, gid, callback) {\n callback(enosys());\n },\n fstat(fd, callback) {\n callback(enosys());\n },\n fsync(fd, callback) {\n callback(null);\n },\n ftruncate(fd, length, callback) {\n callback(enosys());\n },\n lchown(path, uid, gid, callback) {\n callback(enosys());\n },\n link(path, link, callback) {\n callback(enosys());\n },\n lstat(path, callback) {\n callback(enosys());\n },\n mkdir(path, perm, callback) {\n callback(enosys());\n },\n open(path, flags, mode, callback) {\n callback(enosys());\n },\n read(fd, buffer, offset, length, position, callback) {\n callback(enosys());\n },\n readdir(path, callback) {\n callback(enosys());\n },\n readlink(path, callback) {\n callback(enosys());\n },\n rename(from, to, callback) {\n callback(enosys());\n },\n rmdir(path, callback) {\n callback(enosys());\n },\n stat(path, callback) {\n callback(enosys());\n },\n symlink(path, link, callback) {\n callback(enosys());\n },\n truncate(path, length, callback) {\n callback(enosys());\n },\n unlink(path, callback) {\n callback(enosys());\n },\n utimes(path, atime, mtime, callback) {\n callback(enosys());\n }\n };\n }\n if (!globalThis.process) {\n globalThis.process = {\n getuid() {\n return -1;\n },\n getgid() {\n return -1;\n },\n geteuid() {\n return -1;\n },\n getegid() {\n return -1;\n },\n getgroups() {\n throw enosys();\n },\n pid: -1,\n ppid: -1,\n umask() {\n throw enosys();\n },\n cwd() {\n throw enosys();\n },\n chdir() {\n throw enosys();\n }\n };\n }\n if (!globalThis.crypto) {\n throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");\n }\n if (!globalThis.performance) {\n throw new Error("globalThis.performance is not available, polyfill required (performance.now only)");\n }\n if (!globalThis.TextEncoder) {\n throw new Error("globalThis.TextEncoder is not available, polyfill required");\n }\n if (!globalThis.TextDecoder) {\n throw new Error("globalThis.TextDecoder is not available, polyfill required");\n }\n const encoder = new TextEncoder("utf-8");\n const decoder = new TextDecoder("utf-8");\n globalThis.Go = class {\n constructor() {\n this.argv = ["js"];\n this.env = {};\n this.exit = (code) => {\n if (code !== 0) {\n console.warn("exit code:", code);\n }\n };\n this._exitPromise = new Promise((resolve) => {\n this._resolveExitPromise = resolve;\n });\n this._pendingEvent = null;\n this._scheduledTimeouts = /* @__PURE__ */ new Map();\n this._nextCallbackTimeoutID = 1;\n const setInt64 = (addr, v) => {\n this.mem.setUint32(addr + 0, v, true);\n this.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true);\n };\n const getInt64 = (addr) => {\n const low = this.mem.getUint32(addr + 0, true);\n const high = this.mem.getInt32(addr + 4, true);\n return low + high * 4294967296;\n };\n const loadValue = (addr) => {\n const f = this.mem.getFloat64(addr, true);\n if (f === 0) {\n return void 0;\n }\n if (!isNaN(f)) {\n return f;\n }\n const id = this.mem.getUint32(addr, true);\n return this._values[id];\n };\n const storeValue = (addr, v) => {\n const nanHead = 2146959360;\n if (typeof v === "number" && v !== 0) {\n if (isNaN(v)) {\n this.mem.setUint32(addr + 4, nanHead, true);\n this.mem.setUint32(addr, 0, true);\n return;\n }\n this.mem.setFloat64(addr, v, true);\n return;\n }\n if (v === void 0) {\n this.mem.setFloat64(addr, 0, true);\n return;\n }\n let id = this._ids.get(v);\n if (id === void 0) {\n id = this._idPool.pop();\n if (id === void 0) {\n id = this._values.length;\n }\n this._values[id] = v;\n this._goRefCounts[id] = 0;\n this._ids.set(v, id);\n }\n this._goRefCounts[id]++;\n let typeFlag = 0;\n switch (typeof v) {\n case "object":\n if (v !== null) {\n typeFlag = 1;\n }\n break;\n case "string":\n typeFlag = 2;\n break;\n case "symbol":\n typeFlag = 3;\n break;\n case "function":\n typeFlag = 4;\n break;\n }\n this.mem.setUint32(addr + 4, nanHead | typeFlag, true);\n this.mem.setUint32(addr, id, true);\n };\n const loadSlice = (addr) => {\n const array = getInt64(addr + 0);\n const len = getInt64(addr + 8);\n return new Uint8Array(this._inst.exports.mem.buffer, array, len);\n };\n const loadSliceOfValues = (addr) => {\n const array = getInt64(addr + 0);\n const len = getInt64(addr + 8);\n const a = new Array(len);\n for (let i = 0; i < len; i++) {\n a[i] = loadValue(array + i * 8);\n }\n return a;\n };\n const loadString = (addr) => {\n const saddr = getInt64(addr + 0);\n const len = getInt64(addr + 8);\n return decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len));\n };\n const timeOrigin = Date.now() - performance.now();\n this.importObject = {\n go: {\n "runtime.wasmExit": (sp) => {\n sp >>>= 0;\n const code = this.mem.getInt32(sp + 8, true);\n this.exited = true;\n delete this._inst;\n delete this._values;\n delete this._goRefCounts;\n delete this._ids;\n delete this._idPool;\n this.exit(code);\n },\n "runtime.wasmWrite": (sp) => {\n sp >>>= 0;\n const fd = getInt64(sp + 8);\n const p = getInt64(sp + 16);\n const n = this.mem.getInt32(sp + 24, true);\n globalThis.fs.writeSync(fd, new Uint8Array(this._inst.exports.mem.buffer, p, n));\n },\n "runtime.resetMemoryDataView": (sp) => {\n sp >>>= 0;\n this.mem = new DataView(this._inst.exports.mem.buffer);\n },\n "runtime.nanotime1": (sp) => {\n sp >>>= 0;\n setInt64(sp + 8, (timeOrigin + performance.now()) * 1e6);\n },\n "runtime.walltime": (sp) => {\n sp >>>= 0;\n const msec = new Date().getTime();\n setInt64(sp + 8, msec / 1e3);\n this.mem.setInt32(sp + 16, msec % 1e3 * 1e6, true);\n },\n "runtime.scheduleTimeoutEvent": (sp) => {\n sp >>>= 0;\n const id = this._nextCallbackTimeoutID;\n this._nextCallbackTimeoutID++;\n this._scheduledTimeouts.set(id, setTimeout(\n () => {\n this._resume();\n while (this._scheduledTimeouts.has(id)) {\n console.warn("scheduleTimeoutEvent: missed timeout event");\n this._resume();\n }\n },\n getInt64(sp + 8) + 1\n ));\n this.mem.setInt32(sp + 16, id, true);\n },\n "runtime.clearTimeoutEvent": (sp) => {\n sp >>>= 0;\n const id = this.mem.getInt32(sp + 8, true);\n clearTimeout(this._scheduledTimeouts.get(id));\n this._scheduledTimeouts.delete(id);\n },\n "runtime.getRandomData": (sp) => {\n sp >>>= 0;\n crypto.getRandomValues(loadSlice(sp + 8));\n },\n "syscall/js.finalizeRef": (sp) => {\n sp >>>= 0;\n const id = this.mem.getUint32(sp + 8, true);\n this._goRefCounts[id]--;\n if (this._goRefCounts[id] === 0) {\n const v = this._values[id];\n this._values[id] = null;\n this._ids.delete(v);\n this._idPool.push(id);\n }\n },\n "syscall/js.stringVal": (sp) => {\n sp >>>= 0;\n storeValue(sp + 24, loadString(sp + 8));\n },\n "syscall/js.valueGet": (sp) => {\n sp >>>= 0;\n const result = Reflect.get(loadValue(sp + 8), loadString(sp + 16));\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 32, result);\n },\n "syscall/js.valueSet": (sp) => {\n sp >>>= 0;\n Reflect.set(loadValue(sp + 8), loadString(sp + 16), loadValue(sp + 32));\n },\n "syscall/js.valueDelete": (sp) => {\n sp >>>= 0;\n Reflect.deleteProperty(loadValue(sp + 8), loadString(sp + 16));\n },\n "syscall/js.valueIndex": (sp) => {\n sp >>>= 0;\n storeValue(sp + 24, Reflect.get(loadValue(sp + 8), getInt64(sp + 16)));\n },\n "syscall/js.valueSetIndex": (sp) => {\n sp >>>= 0;\n Reflect.set(loadValue(sp + 8), getInt64(sp + 16), loadValue(sp + 24));\n },\n "syscall/js.valueCall": (sp) => {\n sp >>>= 0;\n try {\n const v = loadValue(sp + 8);\n const m = Reflect.get(v, loadString(sp + 16));\n const args = loadSliceOfValues(sp + 32);\n const result = Reflect.apply(m, v, args);\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 56, result);\n this.mem.setUint8(sp + 64, 1);\n } catch (err) {\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 56, err);\n this.mem.setUint8(sp + 64, 0);\n }\n },\n "syscall/js.valueInvoke": (sp) => {\n sp >>>= 0;\n try {\n const v = loadValue(sp + 8);\n const args = loadSliceOfValues(sp + 16);\n const result = Reflect.apply(v, void 0, args);\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 40, result);\n this.mem.setUint8(sp + 48, 1);\n } catch (err) {\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 40, err);\n this.mem.setUint8(sp + 48, 0);\n }\n },\n "syscall/js.valueNew": (sp) => {\n sp >>>= 0;\n try {\n const v = loadValue(sp + 8);\n const args = loadSliceOfValues(sp + 16);\n const result = Reflect.construct(v, args);\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 40, result);\n this.mem.setUint8(sp + 48, 1);\n } catch (err) {\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 40, err);\n this.mem.setUint8(sp + 48, 0);\n }\n },\n "syscall/js.valueLength": (sp) => {\n sp >>>= 0;\n setInt64(sp + 16, parseInt(loadValue(sp + 8).length));\n },\n "syscall/js.valuePrepareString": (sp) => {\n sp >>>= 0;\n const str = encoder.encode(String(loadValue(sp + 8)));\n storeValue(sp + 16, str);\n setInt64(sp + 24, str.length);\n },\n "syscall/js.valueLoadString": (sp) => {\n sp >>>= 0;\n const str = loadValue(sp + 8);\n loadSlice(sp + 16).set(str);\n },\n "syscall/js.valueInstanceOf": (sp) => {\n sp >>>= 0;\n this.mem.setUint8(sp + 24, loadValue(sp + 8) instanceof loadValue(sp + 16) ? 1 : 0);\n },\n "syscall/js.copyBytesToGo": (sp) => {\n sp >>>= 0;\n const dst = loadSlice(sp + 8);\n const src = loadValue(sp + 32);\n if (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) {\n this.mem.setUint8(sp + 48, 0);\n return;\n }\n const toCopy = src.subarray(0, dst.length);\n dst.set(toCopy);\n setInt64(sp + 40, toCopy.length);\n this.mem.setUint8(sp + 48, 1);\n },\n "syscall/js.copyBytesToJS": (sp) => {\n sp >>>= 0;\n const dst = loadValue(sp + 8);\n const src = loadSlice(sp + 16);\n if (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) {\n this.mem.setUint8(sp + 48, 0);\n return;\n }\n const toCopy = src.subarray(0, dst.length);\n dst.set(toCopy);\n setInt64(sp + 40, toCopy.length);\n this.mem.setUint8(sp + 48, 1);\n },\n "debug": (value) => {\n console.log(value);\n }\n }\n };\n }\n run(instance) {\n return __async(this, null, function* () {\n if (!(instance instanceof WebAssembly.Instance)) {\n throw new Error("Go.run: WebAssembly.Instance expected");\n }\n this._inst = instance;\n this.mem = new DataView(this._inst.exports.mem.buffer);\n this._values = [\n NaN,\n 0,\n null,\n true,\n false,\n globalThis,\n this\n ];\n this._goRefCounts = new Array(this._values.length).fill(Infinity);\n this._ids = /* @__PURE__ */ new Map([\n [0, 1],\n [null, 2],\n [true, 3],\n [false, 4],\n [globalThis, 5],\n [this, 6]\n ]);\n this._idPool = [];\n this.exited = false;\n let offset = 4096;\n const strPtr = (str) => {\n const ptr = offset;\n const bytes = encoder.encode(str + "\\0");\n new Uint8Array(this.mem.buffer, offset, bytes.length).set(bytes);\n offset += bytes.length;\n if (offset % 8 !== 0) {\n offset += 8 - offset % 8;\n }\n return ptr;\n };\n const argc = this.argv.length;\n const argvPtrs = [];\n this.argv.forEach((arg) => {\n argvPtrs.push(strPtr(arg));\n });\n argvPtrs.push(0);\n const keys = Object.keys(this.env).sort();\n keys.forEach((key) => {\n argvPtrs.push(strPtr(`${key}=${this.env[key]}`));\n });\n argvPtrs.push(0);\n const argv = offset;\n argvPtrs.forEach((ptr) => {\n this.mem.setUint32(offset, ptr, true);\n this.mem.setUint32(offset + 4, 0, true);\n offset += 8;\n });\n const wasmMinDataAddr = 4096 + 8192;\n if (offset >= wasmMinDataAddr) {\n throw new Error("total length of command line and environment variables exceeds limit");\n }\n this._inst.exports.run(argc, argv);\n if (this.exited) {\n this._resolveExitPromise();\n }\n yield this._exitPromise;\n });\n }\n _resume() {\n if (this.exited) {\n throw new Error("Go program has already exited");\n }\n this._inst.exports.resume();\n if (this.exited) {\n this._resolveExitPromise();\n }\n }\n _makeFuncWrapper(id) {\n const go = this;\n return function() {\n const event = { id, this: this, args: arguments };\n go._pendingEvent = event;\n go._resume();\n return event.result;\n };\n }\n };\n })();\n onmessage = ({ data: wasm }) => {\n let decoder = new TextDecoder();\n let fs = globalThis.fs;\n let stderr = "";\n fs.writeSync = (fd, buffer) => {\n if (fd === 1) {\n postMessage(buffer);\n } else if (fd === 2) {\n stderr += decoder.decode(buffer);\n let parts = stderr.split("\\n");\n if (parts.length > 1)\n console.log(parts.slice(0, -1).join("\\n"));\n stderr = parts[parts.length - 1];\n } else {\n throw new Error("Bad write");\n }\n return buffer.length;\n };\n let stdin = [];\n let resumeStdin;\n let stdinPos = 0;\n onmessage = ({ data }) => {\n if (data.length > 0) {\n stdin.push(data);\n if (resumeStdin)\n resumeStdin();\n }\n };\n fs.read = (fd, buffer, offset, length, position, callback) => {\n if (fd !== 0 || offset !== 0 || length !== buffer.length || position !== null) {\n throw new Error("Bad read");\n }\n if (stdin.length === 0) {\n resumeStdin = () => fs.read(fd, buffer, offset, length, position, callback);\n return;\n }\n let first = stdin[0];\n let count = Math.max(0, Math.min(length, first.length - stdinPos));\n buffer.set(first.subarray(stdinPos, stdinPos + count), offset);\n stdinPos += count;\n if (stdinPos === first.length) {\n stdin.shift();\n stdinPos = 0;\n }\n callback(null, count);\n };\n let go = new globalThis.Go();\n go.argv = ["", `--service=${"0.15.15"}`];\n if (wasm instanceof WebAssembly.Module) {\n WebAssembly.instantiate(wasm, go.importObject).then((instance) => go.run(instance));\n } else {\n WebAssembly.instantiate(wasm, go.importObject).then(({ instance }) => go.run(instance));\n }\n };\n return (m) => onmessage(m);\n })'}(postMessage)`], { type: "text/javascript" });
|
1750
|
+
let blob = new Blob([`onmessage=${'((postMessage) => {\n // Copyright 2018 The Go Authors. All rights reserved.\n // Use of this source code is governed by a BSD-style\n // license that can be found in the LICENSE file.\n var __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n };\n let onmessage;\n let globalThis = {};\n for (let o = self; o; o = Object.getPrototypeOf(o))\n for (let k of Object.getOwnPropertyNames(o))\n if (!(k in globalThis))\n Object.defineProperty(globalThis, k, { get: () => self[k] });\n "use strict";\n (() => {\n const enosys = () => {\n const err = new Error("not implemented");\n err.code = "ENOSYS";\n return err;\n };\n if (!globalThis.fs) {\n let outputBuf = "";\n globalThis.fs = {\n constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 },\n writeSync(fd, buf) {\n outputBuf += decoder.decode(buf);\n const nl = outputBuf.lastIndexOf("\\n");\n if (nl != -1) {\n console.log(outputBuf.substr(0, nl));\n outputBuf = outputBuf.substr(nl + 1);\n }\n return buf.length;\n },\n write(fd, buf, offset, length, position, callback) {\n if (offset !== 0 || length !== buf.length || position !== null) {\n callback(enosys());\n return;\n }\n const n = this.writeSync(fd, buf);\n callback(null, n);\n },\n chmod(path, mode, callback) {\n callback(enosys());\n },\n chown(path, uid, gid, callback) {\n callback(enosys());\n },\n close(fd, callback) {\n callback(enosys());\n },\n fchmod(fd, mode, callback) {\n callback(enosys());\n },\n fchown(fd, uid, gid, callback) {\n callback(enosys());\n },\n fstat(fd, callback) {\n callback(enosys());\n },\n fsync(fd, callback) {\n callback(null);\n },\n ftruncate(fd, length, callback) {\n callback(enosys());\n },\n lchown(path, uid, gid, callback) {\n callback(enosys());\n },\n link(path, link, callback) {\n callback(enosys());\n },\n lstat(path, callback) {\n callback(enosys());\n },\n mkdir(path, perm, callback) {\n callback(enosys());\n },\n open(path, flags, mode, callback) {\n callback(enosys());\n },\n read(fd, buffer, offset, length, position, callback) {\n callback(enosys());\n },\n readdir(path, callback) {\n callback(enosys());\n },\n readlink(path, callback) {\n callback(enosys());\n },\n rename(from, to, callback) {\n callback(enosys());\n },\n rmdir(path, callback) {\n callback(enosys());\n },\n stat(path, callback) {\n callback(enosys());\n },\n symlink(path, link, callback) {\n callback(enosys());\n },\n truncate(path, length, callback) {\n callback(enosys());\n },\n unlink(path, callback) {\n callback(enosys());\n },\n utimes(path, atime, mtime, callback) {\n callback(enosys());\n }\n };\n }\n if (!globalThis.process) {\n globalThis.process = {\n getuid() {\n return -1;\n },\n getgid() {\n return -1;\n },\n geteuid() {\n return -1;\n },\n getegid() {\n return -1;\n },\n getgroups() {\n throw enosys();\n },\n pid: -1,\n ppid: -1,\n umask() {\n throw enosys();\n },\n cwd() {\n throw enosys();\n },\n chdir() {\n throw enosys();\n }\n };\n }\n if (!globalThis.crypto) {\n throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");\n }\n if (!globalThis.performance) {\n throw new Error("globalThis.performance is not available, polyfill required (performance.now only)");\n }\n if (!globalThis.TextEncoder) {\n throw new Error("globalThis.TextEncoder is not available, polyfill required");\n }\n if (!globalThis.TextDecoder) {\n throw new Error("globalThis.TextDecoder is not available, polyfill required");\n }\n const encoder = new TextEncoder("utf-8");\n const decoder = new TextDecoder("utf-8");\n globalThis.Go = class {\n constructor() {\n this.argv = ["js"];\n this.env = {};\n this.exit = (code) => {\n if (code !== 0) {\n console.warn("exit code:", code);\n }\n };\n this._exitPromise = new Promise((resolve) => {\n this._resolveExitPromise = resolve;\n });\n this._pendingEvent = null;\n this._scheduledTimeouts = /* @__PURE__ */ new Map();\n this._nextCallbackTimeoutID = 1;\n const setInt64 = (addr, v) => {\n this.mem.setUint32(addr + 0, v, true);\n this.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true);\n };\n const getInt64 = (addr) => {\n const low = this.mem.getUint32(addr + 0, true);\n const high = this.mem.getInt32(addr + 4, true);\n return low + high * 4294967296;\n };\n const loadValue = (addr) => {\n const f = this.mem.getFloat64(addr, true);\n if (f === 0) {\n return void 0;\n }\n if (!isNaN(f)) {\n return f;\n }\n const id = this.mem.getUint32(addr, true);\n return this._values[id];\n };\n const storeValue = (addr, v) => {\n const nanHead = 2146959360;\n if (typeof v === "number" && v !== 0) {\n if (isNaN(v)) {\n this.mem.setUint32(addr + 4, nanHead, true);\n this.mem.setUint32(addr, 0, true);\n return;\n }\n this.mem.setFloat64(addr, v, true);\n return;\n }\n if (v === void 0) {\n this.mem.setFloat64(addr, 0, true);\n return;\n }\n let id = this._ids.get(v);\n if (id === void 0) {\n id = this._idPool.pop();\n if (id === void 0) {\n id = this._values.length;\n }\n this._values[id] = v;\n this._goRefCounts[id] = 0;\n this._ids.set(v, id);\n }\n this._goRefCounts[id]++;\n let typeFlag = 0;\n switch (typeof v) {\n case "object":\n if (v !== null) {\n typeFlag = 1;\n }\n break;\n case "string":\n typeFlag = 2;\n break;\n case "symbol":\n typeFlag = 3;\n break;\n case "function":\n typeFlag = 4;\n break;\n }\n this.mem.setUint32(addr + 4, nanHead | typeFlag, true);\n this.mem.setUint32(addr, id, true);\n };\n const loadSlice = (addr) => {\n const array = getInt64(addr + 0);\n const len = getInt64(addr + 8);\n return new Uint8Array(this._inst.exports.mem.buffer, array, len);\n };\n const loadSliceOfValues = (addr) => {\n const array = getInt64(addr + 0);\n const len = getInt64(addr + 8);\n const a = new Array(len);\n for (let i = 0; i < len; i++) {\n a[i] = loadValue(array + i * 8);\n }\n return a;\n };\n const loadString = (addr) => {\n const saddr = getInt64(addr + 0);\n const len = getInt64(addr + 8);\n return decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len));\n };\n const timeOrigin = Date.now() - performance.now();\n this.importObject = {\n go: {\n "runtime.wasmExit": (sp) => {\n sp >>>= 0;\n const code = this.mem.getInt32(sp + 8, true);\n this.exited = true;\n delete this._inst;\n delete this._values;\n delete this._goRefCounts;\n delete this._ids;\n delete this._idPool;\n this.exit(code);\n },\n "runtime.wasmWrite": (sp) => {\n sp >>>= 0;\n const fd = getInt64(sp + 8);\n const p = getInt64(sp + 16);\n const n = this.mem.getInt32(sp + 24, true);\n globalThis.fs.writeSync(fd, new Uint8Array(this._inst.exports.mem.buffer, p, n));\n },\n "runtime.resetMemoryDataView": (sp) => {\n sp >>>= 0;\n this.mem = new DataView(this._inst.exports.mem.buffer);\n },\n "runtime.nanotime1": (sp) => {\n sp >>>= 0;\n setInt64(sp + 8, (timeOrigin + performance.now()) * 1e6);\n },\n "runtime.walltime": (sp) => {\n sp >>>= 0;\n const msec = new Date().getTime();\n setInt64(sp + 8, msec / 1e3);\n this.mem.setInt32(sp + 16, msec % 1e3 * 1e6, true);\n },\n "runtime.scheduleTimeoutEvent": (sp) => {\n sp >>>= 0;\n const id = this._nextCallbackTimeoutID;\n this._nextCallbackTimeoutID++;\n this._scheduledTimeouts.set(id, setTimeout(\n () => {\n this._resume();\n while (this._scheduledTimeouts.has(id)) {\n console.warn("scheduleTimeoutEvent: missed timeout event");\n this._resume();\n }\n },\n getInt64(sp + 8) + 1\n ));\n this.mem.setInt32(sp + 16, id, true);\n },\n "runtime.clearTimeoutEvent": (sp) => {\n sp >>>= 0;\n const id = this.mem.getInt32(sp + 8, true);\n clearTimeout(this._scheduledTimeouts.get(id));\n this._scheduledTimeouts.delete(id);\n },\n "runtime.getRandomData": (sp) => {\n sp >>>= 0;\n crypto.getRandomValues(loadSlice(sp + 8));\n },\n "syscall/js.finalizeRef": (sp) => {\n sp >>>= 0;\n const id = this.mem.getUint32(sp + 8, true);\n this._goRefCounts[id]--;\n if (this._goRefCounts[id] === 0) {\n const v = this._values[id];\n this._values[id] = null;\n this._ids.delete(v);\n this._idPool.push(id);\n }\n },\n "syscall/js.stringVal": (sp) => {\n sp >>>= 0;\n storeValue(sp + 24, loadString(sp + 8));\n },\n "syscall/js.valueGet": (sp) => {\n sp >>>= 0;\n const result = Reflect.get(loadValue(sp + 8), loadString(sp + 16));\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 32, result);\n },\n "syscall/js.valueSet": (sp) => {\n sp >>>= 0;\n Reflect.set(loadValue(sp + 8), loadString(sp + 16), loadValue(sp + 32));\n },\n "syscall/js.valueDelete": (sp) => {\n sp >>>= 0;\n Reflect.deleteProperty(loadValue(sp + 8), loadString(sp + 16));\n },\n "syscall/js.valueIndex": (sp) => {\n sp >>>= 0;\n storeValue(sp + 24, Reflect.get(loadValue(sp + 8), getInt64(sp + 16)));\n },\n "syscall/js.valueSetIndex": (sp) => {\n sp >>>= 0;\n Reflect.set(loadValue(sp + 8), getInt64(sp + 16), loadValue(sp + 24));\n },\n "syscall/js.valueCall": (sp) => {\n sp >>>= 0;\n try {\n const v = loadValue(sp + 8);\n const m = Reflect.get(v, loadString(sp + 16));\n const args = loadSliceOfValues(sp + 32);\n const result = Reflect.apply(m, v, args);\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 56, result);\n this.mem.setUint8(sp + 64, 1);\n } catch (err) {\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 56, err);\n this.mem.setUint8(sp + 64, 0);\n }\n },\n "syscall/js.valueInvoke": (sp) => {\n sp >>>= 0;\n try {\n const v = loadValue(sp + 8);\n const args = loadSliceOfValues(sp + 16);\n const result = Reflect.apply(v, void 0, args);\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 40, result);\n this.mem.setUint8(sp + 48, 1);\n } catch (err) {\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 40, err);\n this.mem.setUint8(sp + 48, 0);\n }\n },\n "syscall/js.valueNew": (sp) => {\n sp >>>= 0;\n try {\n const v = loadValue(sp + 8);\n const args = loadSliceOfValues(sp + 16);\n const result = Reflect.construct(v, args);\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 40, result);\n this.mem.setUint8(sp + 48, 1);\n } catch (err) {\n sp = this._inst.exports.getsp() >>> 0;\n storeValue(sp + 40, err);\n this.mem.setUint8(sp + 48, 0);\n }\n },\n "syscall/js.valueLength": (sp) => {\n sp >>>= 0;\n setInt64(sp + 16, parseInt(loadValue(sp + 8).length));\n },\n "syscall/js.valuePrepareString": (sp) => {\n sp >>>= 0;\n const str = encoder.encode(String(loadValue(sp + 8)));\n storeValue(sp + 16, str);\n setInt64(sp + 24, str.length);\n },\n "syscall/js.valueLoadString": (sp) => {\n sp >>>= 0;\n const str = loadValue(sp + 8);\n loadSlice(sp + 16).set(str);\n },\n "syscall/js.valueInstanceOf": (sp) => {\n sp >>>= 0;\n this.mem.setUint8(sp + 24, loadValue(sp + 8) instanceof loadValue(sp + 16) ? 1 : 0);\n },\n "syscall/js.copyBytesToGo": (sp) => {\n sp >>>= 0;\n const dst = loadSlice(sp + 8);\n const src = loadValue(sp + 32);\n if (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) {\n this.mem.setUint8(sp + 48, 0);\n return;\n }\n const toCopy = src.subarray(0, dst.length);\n dst.set(toCopy);\n setInt64(sp + 40, toCopy.length);\n this.mem.setUint8(sp + 48, 1);\n },\n "syscall/js.copyBytesToJS": (sp) => {\n sp >>>= 0;\n const dst = loadValue(sp + 8);\n const src = loadSlice(sp + 16);\n if (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) {\n this.mem.setUint8(sp + 48, 0);\n return;\n }\n const toCopy = src.subarray(0, dst.length);\n dst.set(toCopy);\n setInt64(sp + 40, toCopy.length);\n this.mem.setUint8(sp + 48, 1);\n },\n "debug": (value) => {\n console.log(value);\n }\n }\n };\n }\n run(instance) {\n return __async(this, null, function* () {\n if (!(instance instanceof WebAssembly.Instance)) {\n throw new Error("Go.run: WebAssembly.Instance expected");\n }\n this._inst = instance;\n this.mem = new DataView(this._inst.exports.mem.buffer);\n this._values = [\n NaN,\n 0,\n null,\n true,\n false,\n globalThis,\n this\n ];\n this._goRefCounts = new Array(this._values.length).fill(Infinity);\n this._ids = /* @__PURE__ */ new Map([\n [0, 1],\n [null, 2],\n [true, 3],\n [false, 4],\n [globalThis, 5],\n [this, 6]\n ]);\n this._idPool = [];\n this.exited = false;\n let offset = 4096;\n const strPtr = (str) => {\n const ptr = offset;\n const bytes = encoder.encode(str + "\\0");\n new Uint8Array(this.mem.buffer, offset, bytes.length).set(bytes);\n offset += bytes.length;\n if (offset % 8 !== 0) {\n offset += 8 - offset % 8;\n }\n return ptr;\n };\n const argc = this.argv.length;\n const argvPtrs = [];\n this.argv.forEach((arg) => {\n argvPtrs.push(strPtr(arg));\n });\n argvPtrs.push(0);\n const keys = Object.keys(this.env).sort();\n keys.forEach((key) => {\n argvPtrs.push(strPtr(`${key}=${this.env[key]}`));\n });\n argvPtrs.push(0);\n const argv = offset;\n argvPtrs.forEach((ptr) => {\n this.mem.setUint32(offset, ptr, true);\n this.mem.setUint32(offset + 4, 0, true);\n offset += 8;\n });\n const wasmMinDataAddr = 4096 + 8192;\n if (offset >= wasmMinDataAddr) {\n throw new Error("total length of command line and environment variables exceeds limit");\n }\n this._inst.exports.run(argc, argv);\n if (this.exited) {\n this._resolveExitPromise();\n }\n yield this._exitPromise;\n });\n }\n _resume() {\n if (this.exited) {\n throw new Error("Go program has already exited");\n }\n this._inst.exports.resume();\n if (this.exited) {\n this._resolveExitPromise();\n }\n }\n _makeFuncWrapper(id) {\n const go = this;\n return function() {\n const event = { id, this: this, args: arguments };\n go._pendingEvent = event;\n go._resume();\n return event.result;\n };\n }\n };\n })();\n onmessage = ({ data: wasm }) => {\n let decoder = new TextDecoder();\n let fs = globalThis.fs;\n let stderr = "";\n fs.writeSync = (fd, buffer) => {\n if (fd === 1) {\n postMessage(buffer);\n } else if (fd === 2) {\n stderr += decoder.decode(buffer);\n let parts = stderr.split("\\n");\n if (parts.length > 1)\n console.log(parts.slice(0, -1).join("\\n"));\n stderr = parts[parts.length - 1];\n } else {\n throw new Error("Bad write");\n }\n return buffer.length;\n };\n let stdin = [];\n let resumeStdin;\n let stdinPos = 0;\n onmessage = ({ data }) => {\n if (data.length > 0) {\n stdin.push(data);\n if (resumeStdin)\n resumeStdin();\n }\n };\n fs.read = (fd, buffer, offset, length, position, callback) => {\n if (fd !== 0 || offset !== 0 || length !== buffer.length || position !== null) {\n throw new Error("Bad read");\n }\n if (stdin.length === 0) {\n resumeStdin = () => fs.read(fd, buffer, offset, length, position, callback);\n return;\n }\n let first = stdin[0];\n let count = Math.max(0, Math.min(length, first.length - stdinPos));\n buffer.set(first.subarray(stdinPos, stdinPos + count), offset);\n stdinPos += count;\n if (stdinPos === first.length) {\n stdin.shift();\n stdinPos = 0;\n }\n callback(null, count);\n };\n let go = new globalThis.Go();\n go.argv = ["", `--service=${"0.16.1"}`];\n tryToInstantiateModule(wasm, go).then(\n (instance) => {\n postMessage(null);\n go.run(instance);\n },\n (error) => {\n postMessage(error);\n }\n );\n };\n function tryToInstantiateModule(wasm, go) {\n return __async(this, null, function* () {\n if (wasm instanceof WebAssembly.Module) {\n return WebAssembly.instantiate(wasm, go.importObject);\n }\n const res = yield fetch(wasm);\n if (!res.ok)\n throw new Error(`Failed to download ${JSON.stringify(wasm)}`);\n if ("instantiateStreaming" in WebAssembly && /^application\\/wasm($|;)/i.test(res.headers.get("Content-Type") || "")) {\n const result2 = yield WebAssembly.instantiateStreaming(res, go.importObject);\n return result2.instance;\n }\n const bytes = yield res.arrayBuffer();\n const result = yield WebAssembly.instantiate(bytes, go.importObject);\n return result.instance;\n });\n }\n return (m) => onmessage(m);\n })'}(postMessage)`], { type: "text/javascript" });
|
1735
1751
|
worker = new Worker(URL.createObjectURL(blob));
|
1736
1752
|
} else {
|
1737
1753
|
let onmessage = ((postMessage) => {
|
@@ -2335,13 +2351,34 @@ var startRunningService = (wasmURL, wasmModule, useWorker) => __async(void 0, nu
|
|
2335
2351
|
callback(null, count);
|
2336
2352
|
};
|
2337
2353
|
let go = new globalThis.Go();
|
2338
|
-
go.argv = ["", `--service=${"0.
|
2339
|
-
|
2340
|
-
|
2341
|
-
|
2342
|
-
|
2343
|
-
|
2354
|
+
go.argv = ["", `--service=${"0.16.1"}`];
|
2355
|
+
tryToInstantiateModule(wasm, go).then(
|
2356
|
+
(instance) => {
|
2357
|
+
postMessage(null);
|
2358
|
+
go.run(instance);
|
2359
|
+
},
|
2360
|
+
(error) => {
|
2361
|
+
postMessage(error);
|
2362
|
+
}
|
2363
|
+
);
|
2344
2364
|
};
|
2365
|
+
function tryToInstantiateModule(wasm, go) {
|
2366
|
+
return __async(this, null, function* () {
|
2367
|
+
if (wasm instanceof WebAssembly.Module) {
|
2368
|
+
return WebAssembly.instantiate(wasm, go.importObject);
|
2369
|
+
}
|
2370
|
+
const res = yield fetch(wasm);
|
2371
|
+
if (!res.ok)
|
2372
|
+
throw new Error(`Failed to download ${JSON.stringify(wasm)}`);
|
2373
|
+
if ("instantiateStreaming" in WebAssembly && /^application\/wasm($|;)/i.test(res.headers.get("Content-Type") || "")) {
|
2374
|
+
const result2 = yield WebAssembly.instantiateStreaming(res, go.importObject);
|
2375
|
+
return result2.instance;
|
2376
|
+
}
|
2377
|
+
const bytes = yield res.arrayBuffer();
|
2378
|
+
const result = yield WebAssembly.instantiate(bytes, go.importObject);
|
2379
|
+
return result.instance;
|
2380
|
+
});
|
2381
|
+
}
|
2345
2382
|
return (m) => onmessage(m);
|
2346
2383
|
})((data) => worker.onmessage({ data }));
|
2347
2384
|
worker = {
|
@@ -2351,8 +2388,20 @@ var startRunningService = (wasmURL, wasmModule, useWorker) => __async(void 0, nu
|
|
2351
2388
|
}
|
2352
2389
|
};
|
2353
2390
|
}
|
2354
|
-
|
2355
|
-
|
2391
|
+
let firstMessageResolve;
|
2392
|
+
let firstMessageReject;
|
2393
|
+
const firstMessagePromise = new Promise((resolve, reject) => {
|
2394
|
+
firstMessageResolve = resolve;
|
2395
|
+
firstMessageReject = reject;
|
2396
|
+
});
|
2397
|
+
worker.onmessage = ({ data: error }) => {
|
2398
|
+
worker.onmessage = ({ data }) => readFromStdout(data);
|
2399
|
+
if (error)
|
2400
|
+
firstMessageReject(error);
|
2401
|
+
else
|
2402
|
+
firstMessageResolve();
|
2403
|
+
};
|
2404
|
+
worker.postMessage(wasmModule || new URL(wasmURL, location.href).toString());
|
2356
2405
|
let { readFromStdout, service } = createChannel({
|
2357
2406
|
writeToStdin(bytes) {
|
2358
2407
|
worker.postMessage(bytes);
|
@@ -2361,6 +2410,7 @@ var startRunningService = (wasmURL, wasmModule, useWorker) => __async(void 0, nu
|
|
2361
2410
|
isWriteUnavailable: true,
|
2362
2411
|
esbuild: browser_exports
|
2363
2412
|
});
|
2413
|
+
yield firstMessagePromise;
|
2364
2414
|
longLivedService = {
|
2365
2415
|
build: (options) => new Promise((resolve, reject) => service.buildOrServe({
|
2366
2416
|
callName: "build",
|