isomorfeus-asset-manager 0.15.1 → 0.15.3
Sign up to get free protection for your applications and to get access to all the features.
- 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/esbuild.wasm +0 -0
- data/node_modules/esbuild-wasm/esm/browser.d.ts +2 -0
- data/node_modules/esbuild-wasm/esm/browser.js +602 -676
- data/node_modules/esbuild-wasm/esm/browser.min.js +9 -9
- data/node_modules/esbuild-wasm/lib/browser.d.ts +2 -0
- data/node_modules/esbuild-wasm/lib/browser.js +605 -678
- data/node_modules/esbuild-wasm/lib/browser.min.js +9 -9
- data/node_modules/esbuild-wasm/lib/main.d.ts +2 -0
- data/node_modules/esbuild-wasm/lib/main.js +610 -817
- data/node_modules/esbuild-wasm/package.json +1 -1
- data/package.json +1 -1
- metadata +22 -8
@@ -1,26 +1,9 @@
|
|
1
1
|
(module=>{
|
2
2
|
"use strict";
|
3
3
|
var __defProp = Object.defineProperty;
|
4
|
-
var __defProps = Object.defineProperties;
|
5
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
6
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
7
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
8
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
9
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
12
|
-
var __spreadValues = (a, b) => {
|
13
|
-
for (var prop in b || (b = {}))
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
16
|
-
if (__getOwnPropSymbols)
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
18
|
-
if (__propIsEnum.call(b, prop))
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
20
|
-
}
|
21
|
-
return a;
|
22
|
-
};
|
23
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
24
7
|
var __export = (target, all) => {
|
25
8
|
for (var name in all)
|
26
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
@@ -238,6 +221,8 @@ function writeUInt32LE(buffer, value, offset) {
|
|
238
221
|
}
|
239
222
|
|
240
223
|
// lib/shared/common.ts
|
224
|
+
var buildLogLevelDefault = "warning";
|
225
|
+
var transformLogLevelDefault = "silent";
|
241
226
|
function validateTarget(target) {
|
242
227
|
target += "";
|
243
228
|
if (target.indexOf(",") >= 0)
|
@@ -338,6 +323,7 @@ function pushCommonFlags(flags, options, keys) {
|
|
338
323
|
let jsxFragment = getFlag(options, keys, "jsxFragment", mustBeString);
|
339
324
|
let jsxImportSource = getFlag(options, keys, "jsxImportSource", mustBeString);
|
340
325
|
let jsxDev = getFlag(options, keys, "jsxDev", mustBeBoolean);
|
326
|
+
let jsxSideEffects = getFlag(options, keys, "jsxSideEffects", mustBeBoolean);
|
341
327
|
let define = getFlag(options, keys, "define", mustBeObject);
|
342
328
|
let logOverride = getFlag(options, keys, "logOverride", mustBeObject);
|
343
329
|
let supported = getFlag(options, keys, "supported", mustBeObject);
|
@@ -395,6 +381,8 @@ function pushCommonFlags(flags, options, keys) {
|
|
395
381
|
flags.push(`--jsx-import-source=${jsxImportSource}`);
|
396
382
|
if (jsxDev)
|
397
383
|
flags.push(`--jsx-dev`);
|
384
|
+
if (jsxSideEffects)
|
385
|
+
flags.push(`--jsx-side-effects`);
|
398
386
|
if (define) {
|
399
387
|
for (let key in define) {
|
400
388
|
if (key.indexOf("=") >= 0)
|
@@ -648,11 +636,9 @@ function flagsForTransformOptions(callName, options, isTTY, logLevelDefault) {
|
|
648
636
|
};
|
649
637
|
}
|
650
638
|
function createChannel(streamIn) {
|
651
|
-
|
652
|
-
|
653
|
-
let
|
654
|
-
let serveCallbacks = /* @__PURE__ */ new Map();
|
655
|
-
let closeData = null;
|
639
|
+
const requestCallbacksByKey = {};
|
640
|
+
const closeData = { didClose: false, reason: "" };
|
641
|
+
let responseCallbacks = {};
|
656
642
|
let nextRequestID = 0;
|
657
643
|
let nextBuildKey = 0;
|
658
644
|
let stdout = new Uint8Array(16 * 1024);
|
@@ -682,105 +668,53 @@ function createChannel(streamIn) {
|
|
682
668
|
}
|
683
669
|
};
|
684
670
|
let afterClose = (error) => {
|
685
|
-
closeData =
|
671
|
+
closeData.didClose = true;
|
672
|
+
if (error)
|
673
|
+
closeData.reason = ": " + (error.message || error);
|
686
674
|
const text = "The service was stopped" + closeData.reason;
|
687
|
-
for (let
|
688
|
-
|
689
|
-
}
|
690
|
-
responseCallbacks.clear();
|
691
|
-
for (let callbacks of serveCallbacks.values()) {
|
692
|
-
callbacks.onWait(text);
|
693
|
-
}
|
694
|
-
serveCallbacks.clear();
|
695
|
-
for (let callback of watchCallbacks.values()) {
|
696
|
-
try {
|
697
|
-
callback(new Error(text), null);
|
698
|
-
} catch (e) {
|
699
|
-
console.error(e);
|
700
|
-
}
|
675
|
+
for (let id in responseCallbacks) {
|
676
|
+
responseCallbacks[id](text, null);
|
701
677
|
}
|
702
|
-
|
678
|
+
responseCallbacks = {};
|
703
679
|
};
|
704
680
|
let sendRequest = (refs, value, callback) => {
|
705
|
-
if (closeData)
|
681
|
+
if (closeData.didClose)
|
706
682
|
return callback("The service is no longer running" + closeData.reason, null);
|
707
683
|
let id = nextRequestID++;
|
708
|
-
responseCallbacks
|
684
|
+
responseCallbacks[id] = (error, response) => {
|
709
685
|
try {
|
710
686
|
callback(error, response);
|
711
687
|
} finally {
|
712
688
|
if (refs)
|
713
689
|
refs.unref();
|
714
690
|
}
|
715
|
-
}
|
691
|
+
};
|
716
692
|
if (refs)
|
717
693
|
refs.ref();
|
718
694
|
streamIn.writeToStdin(encodePacket({ id, isRequest: true, value }));
|
719
695
|
};
|
720
696
|
let sendResponse = (id, value) => {
|
721
|
-
if (closeData)
|
697
|
+
if (closeData.didClose)
|
722
698
|
throw new Error("The service is no longer running" + closeData.reason);
|
723
699
|
streamIn.writeToStdin(encodePacket({ id, isRequest: false, value }));
|
724
700
|
};
|
725
701
|
let handleRequest = (id, request) => __async(this, null, function* () {
|
726
702
|
try {
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
break;
|
739
|
-
}
|
740
|
-
case "on-resolve": {
|
741
|
-
let callback = pluginCallbacks.get(request.key);
|
742
|
-
if (!callback)
|
743
|
-
sendResponse(id, {});
|
744
|
-
else
|
745
|
-
sendResponse(id, yield callback(request));
|
746
|
-
break;
|
747
|
-
}
|
748
|
-
case "on-load": {
|
749
|
-
let callback = pluginCallbacks.get(request.key);
|
750
|
-
if (!callback)
|
751
|
-
sendResponse(id, {});
|
752
|
-
else
|
753
|
-
sendResponse(id, yield callback(request));
|
754
|
-
break;
|
755
|
-
}
|
756
|
-
case "serve-request": {
|
757
|
-
let callbacks = serveCallbacks.get(request.key);
|
758
|
-
if (callbacks && callbacks.onRequest)
|
759
|
-
callbacks.onRequest(request.args);
|
760
|
-
sendResponse(id, {});
|
761
|
-
break;
|
762
|
-
}
|
763
|
-
case "serve-wait": {
|
764
|
-
let callbacks = serveCallbacks.get(request.key);
|
765
|
-
if (callbacks)
|
766
|
-
callbacks.onWait(request.error);
|
767
|
-
sendResponse(id, {});
|
768
|
-
break;
|
769
|
-
}
|
770
|
-
case "watch-rebuild": {
|
771
|
-
let callback = watchCallbacks.get(request.key);
|
772
|
-
try {
|
773
|
-
if (callback)
|
774
|
-
callback(null, request.args);
|
775
|
-
} catch (err) {
|
776
|
-
console.error(err);
|
703
|
+
if (request.command === "ping") {
|
704
|
+
sendResponse(id, {});
|
705
|
+
return;
|
706
|
+
}
|
707
|
+
if (typeof request.key === "number") {
|
708
|
+
const requestCallbacks = requestCallbacksByKey[request.key];
|
709
|
+
if (requestCallbacks) {
|
710
|
+
const callback = requestCallbacks[request.command];
|
711
|
+
if (callback) {
|
712
|
+
yield callback(id, request);
|
713
|
+
return;
|
777
714
|
}
|
778
|
-
sendResponse(id, {});
|
779
|
-
break;
|
780
715
|
}
|
781
|
-
default:
|
782
|
-
throw new Error(`Invalid command: ` + request.command);
|
783
716
|
}
|
717
|
+
throw new Error(`Invalid command: ` + request.command);
|
784
718
|
} catch (e) {
|
785
719
|
sendResponse(id, { errors: [extractErrorMessageV8(e, streamIn, null, void 0, "")] });
|
786
720
|
}
|
@@ -790,8 +724,8 @@ function createChannel(streamIn) {
|
|
790
724
|
if (isFirstPacket) {
|
791
725
|
isFirstPacket = false;
|
792
726
|
let binaryVersion = String.fromCharCode(...bytes);
|
793
|
-
if (binaryVersion !== "0.15.
|
794
|
-
throw new Error(`Cannot start service: Host version "${"0.15.
|
727
|
+
if (binaryVersion !== "0.15.8") {
|
728
|
+
throw new Error(`Cannot start service: Host version "${"0.15.8"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
|
795
729
|
}
|
796
730
|
return;
|
797
731
|
}
|
@@ -799,450 +733,259 @@ function createChannel(streamIn) {
|
|
799
733
|
if (packet.isRequest) {
|
800
734
|
handleRequest(packet.id, packet.value);
|
801
735
|
} else {
|
802
|
-
let callback = responseCallbacks
|
803
|
-
responseCallbacks
|
736
|
+
let callback = responseCallbacks[packet.id];
|
737
|
+
delete responseCallbacks[packet.id];
|
804
738
|
if (packet.value.error)
|
805
739
|
callback(packet.value.error, {});
|
806
740
|
else
|
807
741
|
callback(null, packet.value);
|
808
742
|
}
|
809
743
|
};
|
810
|
-
let
|
811
|
-
let
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
744
|
+
let buildOrServe = ({ callName, refs, serveOptions, options, isTTY, defaultWD, callback }) => {
|
745
|
+
let refCount = 0;
|
746
|
+
const buildKey = nextBuildKey++;
|
747
|
+
const requestCallbacks = {};
|
748
|
+
const buildRefs = {
|
749
|
+
ref() {
|
750
|
+
if (++refCount === 1) {
|
751
|
+
if (refs)
|
752
|
+
refs.ref();
|
753
|
+
}
|
754
|
+
},
|
755
|
+
unref() {
|
756
|
+
if (--refCount === 0) {
|
757
|
+
delete requestCallbacksByKey[buildKey];
|
758
|
+
if (refs)
|
759
|
+
refs.unref();
|
760
|
+
}
|
761
|
+
}
|
762
|
+
};
|
763
|
+
requestCallbacksByKey[buildKey] = requestCallbacks;
|
764
|
+
buildRefs.ref();
|
765
|
+
buildOrServeImpl(
|
766
|
+
callName,
|
767
|
+
buildKey,
|
768
|
+
sendRequest,
|
769
|
+
sendResponse,
|
770
|
+
buildRefs,
|
771
|
+
streamIn,
|
772
|
+
requestCallbacks,
|
773
|
+
options,
|
774
|
+
serveOptions,
|
775
|
+
isTTY,
|
776
|
+
defaultWD,
|
777
|
+
closeData,
|
778
|
+
(err, res) => {
|
779
|
+
try {
|
780
|
+
callback(err, res);
|
781
|
+
} finally {
|
782
|
+
buildRefs.unref();
|
783
|
+
}
|
784
|
+
}
|
785
|
+
);
|
786
|
+
};
|
787
|
+
let transform2 = ({ callName, refs, input, options, isTTY, fs, callback }) => {
|
788
|
+
const details = createObjectStash();
|
789
|
+
let start = (inputPath) => {
|
827
790
|
try {
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
if (!isSetupDone)
|
840
|
-
throw new Error('Cannot call "resolve" before plugin setup has completed');
|
841
|
-
if (typeof path !== "string")
|
842
|
-
throw new Error(`The path to resolve must be a string`);
|
843
|
-
let keys2 = /* @__PURE__ */ Object.create(null);
|
844
|
-
let pluginName = getFlag(options, keys2, "pluginName", mustBeString);
|
845
|
-
let importer = getFlag(options, keys2, "importer", mustBeString);
|
846
|
-
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
847
|
-
let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
|
848
|
-
let kind = getFlag(options, keys2, "kind", mustBeString);
|
849
|
-
let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
|
850
|
-
checkForInvalidFlags(options, keys2, "in resolve() call");
|
851
|
-
return new Promise((resolve2, reject) => {
|
852
|
-
const request = {
|
853
|
-
command: "resolve",
|
854
|
-
path,
|
855
|
-
key: buildKey,
|
856
|
-
pluginName: name
|
857
|
-
};
|
858
|
-
if (pluginName != null)
|
859
|
-
request.pluginName = pluginName;
|
860
|
-
if (importer != null)
|
861
|
-
request.importer = importer;
|
862
|
-
if (namespace != null)
|
863
|
-
request.namespace = namespace;
|
864
|
-
if (resolveDir != null)
|
865
|
-
request.resolveDir = resolveDir;
|
866
|
-
if (kind != null)
|
867
|
-
request.kind = kind;
|
868
|
-
if (pluginData != null)
|
869
|
-
request.pluginData = stash.store(pluginData);
|
870
|
-
sendRequest(refs, request, (error, response) => {
|
871
|
-
if (error !== null)
|
872
|
-
reject(new Error(error));
|
873
|
-
else
|
874
|
-
resolve2({
|
875
|
-
errors: replaceDetailsInMessages(response.errors, stash),
|
876
|
-
warnings: replaceDetailsInMessages(response.warnings, stash),
|
877
|
-
path: response.path,
|
878
|
-
external: response.external,
|
879
|
-
sideEffects: response.sideEffects,
|
880
|
-
namespace: response.namespace,
|
881
|
-
suffix: response.suffix,
|
882
|
-
pluginData: stash.load(response.pluginData)
|
883
|
-
});
|
884
|
-
});
|
885
|
-
});
|
791
|
+
if (typeof input !== "string" && !(input instanceof Uint8Array))
|
792
|
+
throw new Error('The input to "transform" must be a string or a Uint8Array');
|
793
|
+
let {
|
794
|
+
flags,
|
795
|
+
mangleCache
|
796
|
+
} = flagsForTransformOptions(callName, options, isTTY, transformLogLevelDefault);
|
797
|
+
let request = {
|
798
|
+
command: "transform",
|
799
|
+
flags,
|
800
|
+
inputFS: inputPath !== null,
|
801
|
+
input: inputPath !== null ? encodeUTF8(inputPath) : typeof input === "string" ? encodeUTF8(input) : input
|
886
802
|
};
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
let registeredText = `This error came from the "onResolve" callback registered here:`;
|
902
|
-
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onResolve");
|
903
|
-
let keys2 = {};
|
904
|
-
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
905
|
-
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
906
|
-
checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${JSON.stringify(name)}`);
|
907
|
-
if (filter == null)
|
908
|
-
throw new Error(`onResolve() call is missing a filter`);
|
909
|
-
let id = nextCallbackID++;
|
910
|
-
onResolveCallbacks[id] = { name, callback: callback2, note: registeredNote };
|
911
|
-
plugin.onResolve.push({ id, filter: filter.source, namespace: namespace || "" });
|
912
|
-
},
|
913
|
-
onLoad(options, callback2) {
|
914
|
-
let registeredText = `This error came from the "onLoad" callback registered here:`;
|
915
|
-
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onLoad");
|
916
|
-
let keys2 = {};
|
917
|
-
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
918
|
-
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
919
|
-
checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${JSON.stringify(name)}`);
|
920
|
-
if (filter == null)
|
921
|
-
throw new Error(`onLoad() call is missing a filter`);
|
922
|
-
let id = nextCallbackID++;
|
923
|
-
onLoadCallbacks[id] = { name, callback: callback2, note: registeredNote };
|
924
|
-
plugin.onLoad.push({ id, filter: filter.source, namespace: namespace || "" });
|
925
|
-
},
|
926
|
-
esbuild: streamIn.esbuild
|
927
|
-
});
|
928
|
-
if (promise)
|
929
|
-
yield promise;
|
930
|
-
requestPlugins.push(plugin);
|
931
|
-
} catch (e) {
|
932
|
-
return { ok: false, error: e, pluginName: name };
|
933
|
-
}
|
934
|
-
}
|
935
|
-
const callback = (request) => __async(this, null, function* () {
|
936
|
-
switch (request.command) {
|
937
|
-
case "on-start": {
|
938
|
-
let response = { errors: [], warnings: [] };
|
939
|
-
yield Promise.all(onStartCallbacks.map((_0) => __async(this, [_0], function* ({ name, callback: callback2, note }) {
|
940
|
-
try {
|
941
|
-
let result = yield callback2();
|
942
|
-
if (result != null) {
|
943
|
-
if (typeof result !== "object")
|
944
|
-
throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(name)} to return an object`);
|
945
|
-
let keys = {};
|
946
|
-
let errors = getFlag(result, keys, "errors", mustBeArray);
|
947
|
-
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
948
|
-
checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${JSON.stringify(name)}`);
|
949
|
-
if (errors != null)
|
950
|
-
response.errors.push(...sanitizeMessages(errors, "errors", stash, name));
|
951
|
-
if (warnings != null)
|
952
|
-
response.warnings.push(...sanitizeMessages(warnings, "warnings", stash, name));
|
953
|
-
}
|
954
|
-
} catch (e) {
|
955
|
-
response.errors.push(extractErrorMessageV8(e, streamIn, stash, note && note(), name));
|
803
|
+
if (mangleCache)
|
804
|
+
request.mangleCache = mangleCache;
|
805
|
+
sendRequest(refs, request, (error, response) => {
|
806
|
+
if (error)
|
807
|
+
return callback(new Error(error), null);
|
808
|
+
let errors = replaceDetailsInMessages(response.errors, details);
|
809
|
+
let warnings = replaceDetailsInMessages(response.warnings, details);
|
810
|
+
let outstanding = 1;
|
811
|
+
let next = () => {
|
812
|
+
if (--outstanding === 0) {
|
813
|
+
let result = { warnings, code: response.code, map: response.map };
|
814
|
+
if (response.mangleCache)
|
815
|
+
result.mangleCache = response == null ? void 0 : response.mangleCache;
|
816
|
+
callback(null, result);
|
956
817
|
}
|
957
|
-
}
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
namespace: request.namespace,
|
969
|
-
resolveDir: request.resolveDir,
|
970
|
-
kind: request.kind,
|
971
|
-
pluginData: stash.load(request.pluginData)
|
972
|
-
});
|
973
|
-
if (result != null) {
|
974
|
-
if (typeof result !== "object")
|
975
|
-
throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(name)} to return an object`);
|
976
|
-
let keys = {};
|
977
|
-
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
978
|
-
let path = getFlag(result, keys, "path", mustBeString);
|
979
|
-
let namespace = getFlag(result, keys, "namespace", mustBeString);
|
980
|
-
let suffix = getFlag(result, keys, "suffix", mustBeString);
|
981
|
-
let external = getFlag(result, keys, "external", mustBeBoolean);
|
982
|
-
let sideEffects = getFlag(result, keys, "sideEffects", mustBeBoolean);
|
983
|
-
let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
|
984
|
-
let errors = getFlag(result, keys, "errors", mustBeArray);
|
985
|
-
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
986
|
-
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
987
|
-
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
988
|
-
checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${JSON.stringify(name)}`);
|
989
|
-
response.id = id;
|
990
|
-
if (pluginName != null)
|
991
|
-
response.pluginName = pluginName;
|
992
|
-
if (path != null)
|
993
|
-
response.path = path;
|
994
|
-
if (namespace != null)
|
995
|
-
response.namespace = namespace;
|
996
|
-
if (suffix != null)
|
997
|
-
response.suffix = suffix;
|
998
|
-
if (external != null)
|
999
|
-
response.external = external;
|
1000
|
-
if (sideEffects != null)
|
1001
|
-
response.sideEffects = sideEffects;
|
1002
|
-
if (pluginData != null)
|
1003
|
-
response.pluginData = stash.store(pluginData);
|
1004
|
-
if (errors != null)
|
1005
|
-
response.errors = sanitizeMessages(errors, "errors", stash, name);
|
1006
|
-
if (warnings != null)
|
1007
|
-
response.warnings = sanitizeMessages(warnings, "warnings", stash, name);
|
1008
|
-
if (watchFiles != null)
|
1009
|
-
response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
|
1010
|
-
if (watchDirs != null)
|
1011
|
-
response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
|
1012
|
-
break;
|
818
|
+
};
|
819
|
+
if (errors.length > 0)
|
820
|
+
return callback(failureErrorWithLog("Transform failed", errors, warnings), null);
|
821
|
+
if (response.codeFS) {
|
822
|
+
outstanding++;
|
823
|
+
fs.readFile(response.code, (err, contents) => {
|
824
|
+
if (err !== null) {
|
825
|
+
callback(err, null);
|
826
|
+
} else {
|
827
|
+
response.code = contents;
|
828
|
+
next();
|
1013
829
|
}
|
1014
|
-
}
|
1015
|
-
return { id, errors: [extractErrorMessageV8(e, streamIn, stash, note && note(), name)] };
|
1016
|
-
}
|
830
|
+
});
|
1017
831
|
}
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
path: request.path,
|
1027
|
-
namespace: request.namespace,
|
1028
|
-
suffix: request.suffix,
|
1029
|
-
pluginData: stash.load(request.pluginData)
|
1030
|
-
});
|
1031
|
-
if (result != null) {
|
1032
|
-
if (typeof result !== "object")
|
1033
|
-
throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(name)} to return an object`);
|
1034
|
-
let keys = {};
|
1035
|
-
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
1036
|
-
let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array);
|
1037
|
-
let resolveDir = getFlag(result, keys, "resolveDir", mustBeString);
|
1038
|
-
let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
|
1039
|
-
let loader = getFlag(result, keys, "loader", mustBeString);
|
1040
|
-
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1041
|
-
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1042
|
-
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
1043
|
-
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
1044
|
-
checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${JSON.stringify(name)}`);
|
1045
|
-
response.id = id;
|
1046
|
-
if (pluginName != null)
|
1047
|
-
response.pluginName = pluginName;
|
1048
|
-
if (contents instanceof Uint8Array)
|
1049
|
-
response.contents = contents;
|
1050
|
-
else if (contents != null)
|
1051
|
-
response.contents = encodeUTF8(contents);
|
1052
|
-
if (resolveDir != null)
|
1053
|
-
response.resolveDir = resolveDir;
|
1054
|
-
if (pluginData != null)
|
1055
|
-
response.pluginData = stash.store(pluginData);
|
1056
|
-
if (loader != null)
|
1057
|
-
response.loader = loader;
|
1058
|
-
if (errors != null)
|
1059
|
-
response.errors = sanitizeMessages(errors, "errors", stash, name);
|
1060
|
-
if (warnings != null)
|
1061
|
-
response.warnings = sanitizeMessages(warnings, "warnings", stash, name);
|
1062
|
-
if (watchFiles != null)
|
1063
|
-
response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
|
1064
|
-
if (watchDirs != null)
|
1065
|
-
response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
|
1066
|
-
break;
|
832
|
+
if (response.mapFS) {
|
833
|
+
outstanding++;
|
834
|
+
fs.readFile(response.map, (err, contents) => {
|
835
|
+
if (err !== null) {
|
836
|
+
callback(err, null);
|
837
|
+
} else {
|
838
|
+
response.map = contents;
|
839
|
+
next();
|
1067
840
|
}
|
1068
|
-
}
|
1069
|
-
return { id, errors: [extractErrorMessageV8(e, streamIn, stash, note && note(), name)] };
|
1070
|
-
}
|
1071
|
-
}
|
1072
|
-
return response;
|
1073
|
-
}
|
1074
|
-
default:
|
1075
|
-
throw new Error(`Invalid command: ` + request.command);
|
1076
|
-
}
|
1077
|
-
});
|
1078
|
-
let runOnEndCallbacks = (result, logPluginError, done) => done();
|
1079
|
-
if (onEndCallbacks.length > 0) {
|
1080
|
-
runOnEndCallbacks = (result, logPluginError, done) => {
|
1081
|
-
(() => __async(this, null, function* () {
|
1082
|
-
for (const { name, callback: callback2, note } of onEndCallbacks) {
|
1083
|
-
try {
|
1084
|
-
yield callback2(result);
|
1085
|
-
} catch (e) {
|
1086
|
-
result.errors.push(yield new Promise((resolve) => logPluginError(e, name, note && note(), resolve)));
|
1087
|
-
}
|
841
|
+
});
|
1088
842
|
}
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
requestPlugins,
|
1097
|
-
runOnEndCallbacks,
|
1098
|
-
pluginRefs: {
|
1099
|
-
ref() {
|
1100
|
-
if (++refCount === 1)
|
1101
|
-
pluginCallbacks.set(buildKey, callback);
|
1102
|
-
},
|
1103
|
-
unref() {
|
1104
|
-
if (--refCount === 0)
|
1105
|
-
pluginCallbacks.delete(buildKey);
|
843
|
+
next();
|
844
|
+
});
|
845
|
+
} catch (e) {
|
846
|
+
let flags = [];
|
847
|
+
try {
|
848
|
+
pushLogFlags(flags, options, {}, isTTY, transformLogLevelDefault);
|
849
|
+
} catch (e2) {
|
1106
850
|
}
|
851
|
+
const error = extractErrorMessageV8(e, streamIn, details, void 0, "");
|
852
|
+
sendRequest(refs, { command: "error", flags, error }, () => {
|
853
|
+
error.detail = details.load(error.detail);
|
854
|
+
callback(failureErrorWithLog("Transform failed", [error], []), null);
|
855
|
+
});
|
1107
856
|
}
|
1108
857
|
};
|
1109
|
-
|
1110
|
-
|
858
|
+
if ((typeof input === "string" || input instanceof Uint8Array) && input.length > 1024 * 1024) {
|
859
|
+
let next = start;
|
860
|
+
start = () => fs.writeFile(input, next);
|
861
|
+
}
|
862
|
+
start(null);
|
863
|
+
};
|
864
|
+
let formatMessages2 = ({ callName, refs, messages, options, callback }) => {
|
865
|
+
let result = sanitizeMessages(messages, "messages", null, "");
|
866
|
+
if (!options)
|
867
|
+
throw new Error(`Missing second argument in ${callName}() call`);
|
1111
868
|
let keys = {};
|
1112
|
-
let
|
1113
|
-
let
|
1114
|
-
let
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
request.serve.servedir = servedir;
|
1134
|
-
serveCallbacks.set(key, {
|
1135
|
-
onRequest,
|
1136
|
-
onWait
|
869
|
+
let kind = getFlag(options, keys, "kind", mustBeString);
|
870
|
+
let color = getFlag(options, keys, "color", mustBeBoolean);
|
871
|
+
let terminalWidth = getFlag(options, keys, "terminalWidth", mustBeInteger);
|
872
|
+
checkForInvalidFlags(options, keys, `in ${callName}() call`);
|
873
|
+
if (kind === void 0)
|
874
|
+
throw new Error(`Missing "kind" in ${callName}() call`);
|
875
|
+
if (kind !== "error" && kind !== "warning")
|
876
|
+
throw new Error(`Expected "kind" to be "error" or "warning" in ${callName}() call`);
|
877
|
+
let request = {
|
878
|
+
command: "format-msgs",
|
879
|
+
messages: result,
|
880
|
+
isWarning: kind === "warning"
|
881
|
+
};
|
882
|
+
if (color !== void 0)
|
883
|
+
request.color = color;
|
884
|
+
if (terminalWidth !== void 0)
|
885
|
+
request.terminalWidth = terminalWidth;
|
886
|
+
sendRequest(refs, request, (error, response) => {
|
887
|
+
if (error)
|
888
|
+
return callback(new Error(error), null);
|
889
|
+
callback(null, response.messages);
|
1137
890
|
});
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
891
|
+
};
|
892
|
+
let analyzeMetafile2 = ({ callName, refs, metafile, options, callback }) => {
|
893
|
+
if (options === void 0)
|
894
|
+
options = {};
|
895
|
+
let keys = {};
|
896
|
+
let color = getFlag(options, keys, "color", mustBeBoolean);
|
897
|
+
let verbose = getFlag(options, keys, "verbose", mustBeBoolean);
|
898
|
+
checkForInvalidFlags(options, keys, `in ${callName}() call`);
|
899
|
+
let request = {
|
900
|
+
command: "analyze-metafile",
|
901
|
+
metafile
|
1144
902
|
};
|
903
|
+
if (color !== void 0)
|
904
|
+
request.color = color;
|
905
|
+
if (verbose !== void 0)
|
906
|
+
request.verbose = verbose;
|
907
|
+
sendRequest(refs, request, (error, response) => {
|
908
|
+
if (error)
|
909
|
+
return callback(new Error(error), null);
|
910
|
+
callback(null, response.result);
|
911
|
+
});
|
1145
912
|
};
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1152
|
-
|
1153
|
-
|
1154
|
-
let value = options.plugins;
|
1155
|
-
if (value !== void 0) {
|
1156
|
-
if (!Array.isArray(value))
|
1157
|
-
throw new Error(`"plugins" must be an array`);
|
1158
|
-
plugins = value;
|
1159
|
-
}
|
913
|
+
return {
|
914
|
+
readFromStdout,
|
915
|
+
afterClose,
|
916
|
+
service: {
|
917
|
+
buildOrServe,
|
918
|
+
transform: transform2,
|
919
|
+
formatMessages: formatMessages2,
|
920
|
+
analyzeMetafile: analyzeMetafile2
|
1160
921
|
}
|
1161
|
-
|
1162
|
-
|
1163
|
-
|
1164
|
-
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1168
|
-
|
1169
|
-
|
1170
|
-
done(message);
|
1171
|
-
});
|
1172
|
-
};
|
1173
|
-
let handleError = (e, pluginName) => {
|
1174
|
-
logPluginError(e, pluginName, void 0, (error) => {
|
1175
|
-
callback(failureErrorWithLog("Build failed", [error], []), null);
|
1176
|
-
});
|
1177
|
-
};
|
1178
|
-
if (plugins && plugins.length > 0) {
|
1179
|
-
if (streamIn.isSync)
|
1180
|
-
return handleError(new Error("Cannot use plugins in synchronous API calls"), "");
|
1181
|
-
handlePlugins(options, plugins, key, details, refs).then(
|
1182
|
-
(result) => {
|
1183
|
-
if (!result.ok) {
|
1184
|
-
handleError(result.error, result.pluginName);
|
1185
|
-
} else {
|
1186
|
-
try {
|
1187
|
-
buildOrServeContinue(__spreadProps(__spreadValues({}, args), {
|
1188
|
-
key,
|
1189
|
-
details,
|
1190
|
-
logPluginError,
|
1191
|
-
requestPlugins: result.requestPlugins,
|
1192
|
-
runOnEndCallbacks: result.runOnEndCallbacks,
|
1193
|
-
pluginRefs: result.pluginRefs
|
1194
|
-
}));
|
1195
|
-
} catch (e) {
|
1196
|
-
handleError(e, "");
|
1197
|
-
}
|
1198
|
-
}
|
1199
|
-
},
|
1200
|
-
(e) => handleError(e, "")
|
1201
|
-
);
|
1202
|
-
} else {
|
1203
|
-
try {
|
1204
|
-
buildOrServeContinue(__spreadProps(__spreadValues({}, args), {
|
1205
|
-
key,
|
1206
|
-
details,
|
1207
|
-
logPluginError,
|
1208
|
-
requestPlugins: null,
|
1209
|
-
runOnEndCallbacks: (result, logPluginError2, done) => done(),
|
1210
|
-
pluginRefs: null
|
1211
|
-
}));
|
1212
|
-
} catch (e) {
|
1213
|
-
handleError(e, "");
|
1214
|
-
}
|
922
|
+
};
|
923
|
+
}
|
924
|
+
function buildOrServeImpl(callName, buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, options, serveOptions, isTTY, defaultWD, closeData, callback) {
|
925
|
+
const details = createObjectStash();
|
926
|
+
const logPluginError = (e, pluginName, note, done) => {
|
927
|
+
const flags = [];
|
928
|
+
try {
|
929
|
+
pushLogFlags(flags, options, {}, isTTY, buildLogLevelDefault);
|
930
|
+
} catch (e2) {
|
1215
931
|
}
|
932
|
+
const message = extractErrorMessageV8(e, streamIn, details, note, pluginName);
|
933
|
+
sendRequest(refs, { command: "error", flags, error: message }, () => {
|
934
|
+
message.detail = details.load(message.detail);
|
935
|
+
done(message);
|
936
|
+
});
|
1216
937
|
};
|
1217
|
-
|
1218
|
-
|
1219
|
-
|
1220
|
-
|
1221
|
-
|
1222
|
-
|
1223
|
-
|
1224
|
-
|
1225
|
-
|
1226
|
-
|
1227
|
-
|
1228
|
-
|
1229
|
-
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
938
|
+
const handleError = (e, pluginName) => {
|
939
|
+
logPluginError(e, pluginName, void 0, (error) => {
|
940
|
+
callback(failureErrorWithLog("Build failed", [error], []), null);
|
941
|
+
});
|
942
|
+
};
|
943
|
+
let plugins;
|
944
|
+
if (typeof options === "object") {
|
945
|
+
const value = options.plugins;
|
946
|
+
if (value !== void 0) {
|
947
|
+
if (!Array.isArray(value))
|
948
|
+
throw new Error(`"plugins" must be an array`);
|
949
|
+
plugins = value;
|
950
|
+
}
|
951
|
+
}
|
952
|
+
if (plugins && plugins.length > 0) {
|
953
|
+
if (streamIn.isSync) {
|
954
|
+
handleError(new Error("Cannot use plugins in synchronous API calls"), "");
|
955
|
+
return;
|
956
|
+
}
|
957
|
+
handlePlugins(
|
958
|
+
buildKey,
|
959
|
+
sendRequest,
|
960
|
+
sendResponse,
|
961
|
+
refs,
|
962
|
+
streamIn,
|
963
|
+
requestCallbacks,
|
964
|
+
options,
|
965
|
+
plugins,
|
966
|
+
details
|
967
|
+
).then(
|
968
|
+
(result) => {
|
969
|
+
if (!result.ok) {
|
970
|
+
handleError(result.error, result.pluginName);
|
971
|
+
return;
|
972
|
+
}
|
973
|
+
try {
|
974
|
+
buildOrServeContinue(result.requestPlugins, result.runOnEndCallbacks);
|
975
|
+
} catch (e) {
|
976
|
+
handleError(e, "");
|
977
|
+
}
|
1238
978
|
},
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
|
979
|
+
(e) => handleError(e, "")
|
980
|
+
);
|
981
|
+
return;
|
982
|
+
}
|
983
|
+
try {
|
984
|
+
buildOrServeContinue(null, (result, logPluginError2, done) => done());
|
985
|
+
} catch (e) {
|
986
|
+
handleError(e, "");
|
987
|
+
}
|
988
|
+
function buildOrServeContinue(requestPlugins, runOnEndCallbacks) {
|
1246
989
|
let writeDefault = !streamIn.isWriteUnavailable;
|
1247
990
|
let {
|
1248
991
|
entries,
|
@@ -1258,7 +1001,7 @@ function createChannel(streamIn) {
|
|
1258
1001
|
} = flagsForBuildOptions(callName, options, isTTY, buildLogLevelDefault, writeDefault);
|
1259
1002
|
let request = {
|
1260
1003
|
command: "build",
|
1261
|
-
key,
|
1004
|
+
key: buildKey,
|
1262
1005
|
entries,
|
1263
1006
|
flags,
|
1264
1007
|
write,
|
@@ -1272,7 +1015,7 @@ function createChannel(streamIn) {
|
|
1272
1015
|
request.plugins = requestPlugins;
|
1273
1016
|
if (mangleCache)
|
1274
1017
|
request.mangleCache = mangleCache;
|
1275
|
-
let serve2 = serveOptions && buildServeData(refs, serveOptions, request
|
1018
|
+
let serve2 = serveOptions && buildServeData(buildKey, sendRequest, sendResponse, refs, requestCallbacks, serveOptions, request);
|
1276
1019
|
let rebuild;
|
1277
1020
|
let stop;
|
1278
1021
|
let copyResponseToResult = (response, result) => {
|
@@ -1299,11 +1042,11 @@ function createChannel(streamIn) {
|
|
1299
1042
|
if (!rebuild) {
|
1300
1043
|
let isDisposed = false;
|
1301
1044
|
rebuild = () => new Promise((resolve, reject) => {
|
1302
|
-
if (isDisposed || closeData)
|
1045
|
+
if (isDisposed || closeData.didClose)
|
1303
1046
|
throw new Error("Cannot rebuild");
|
1304
1047
|
sendRequest(
|
1305
1048
|
refs,
|
1306
|
-
{ command: "rebuild", key },
|
1049
|
+
{ command: "rebuild", key: buildKey },
|
1307
1050
|
(error2, response2) => {
|
1308
1051
|
if (error2) {
|
1309
1052
|
const message = { id: "", pluginName: "", text: error2, location: null, notes: [], detail: void 0 };
|
@@ -1323,7 +1066,7 @@ function createChannel(streamIn) {
|
|
1323
1066
|
if (isDisposed)
|
1324
1067
|
return;
|
1325
1068
|
isDisposed = true;
|
1326
|
-
sendRequest(refs, { command: "rebuild-dispose", key }, () => {
|
1069
|
+
sendRequest(refs, { command: "rebuild-dispose", key: buildKey }, () => {
|
1327
1070
|
});
|
1328
1071
|
refs.unref();
|
1329
1072
|
};
|
@@ -1338,36 +1081,35 @@ function createChannel(streamIn) {
|
|
1338
1081
|
if (isStopped)
|
1339
1082
|
return;
|
1340
1083
|
isStopped = true;
|
1341
|
-
|
1342
|
-
sendRequest(refs, { command: "watch-stop", key }, () => {
|
1084
|
+
delete requestCallbacks["watch-rebuild"];
|
1085
|
+
sendRequest(refs, { command: "watch-stop", key: buildKey }, () => {
|
1343
1086
|
});
|
1344
1087
|
refs.unref();
|
1345
1088
|
};
|
1346
1089
|
if (watch) {
|
1347
|
-
|
1348
|
-
|
1349
|
-
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1090
|
+
requestCallbacks["watch-rebuild"] = (id, request2) => {
|
1091
|
+
try {
|
1092
|
+
let watchResponse = request2.args;
|
1093
|
+
let result2 = {
|
1094
|
+
errors: replaceDetailsInMessages(watchResponse.errors, details),
|
1095
|
+
warnings: replaceDetailsInMessages(watchResponse.warnings, details)
|
1096
|
+
};
|
1097
|
+
copyResponseToResult(watchResponse, result2);
|
1098
|
+
runOnEndCallbacks(result2, logPluginError, () => {
|
1099
|
+
if (result2.errors.length > 0) {
|
1100
|
+
if (watch.onRebuild)
|
1101
|
+
watch.onRebuild(failureErrorWithLog("Build failed", result2.errors, result2.warnings), null);
|
1102
|
+
return;
|
1103
|
+
}
|
1104
|
+
result2.stop = stop;
|
1360
1105
|
if (watch.onRebuild)
|
1361
|
-
watch.onRebuild(
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
watch.onRebuild(null, result2);
|
1369
|
-
});
|
1370
|
-
});
|
1106
|
+
watch.onRebuild(null, result2);
|
1107
|
+
});
|
1108
|
+
} catch (err) {
|
1109
|
+
console.error(err);
|
1110
|
+
}
|
1111
|
+
sendResponse(id, {});
|
1112
|
+
};
|
1371
1113
|
}
|
1372
1114
|
}
|
1373
1115
|
result.stop = stop;
|
@@ -1406,144 +1148,329 @@ function createChannel(streamIn) {
|
|
1406
1148
|
}
|
1407
1149
|
return buildResponseToResult(response, callback);
|
1408
1150
|
});
|
1151
|
+
}
|
1152
|
+
}
|
1153
|
+
var buildServeData = (buildKey, sendRequest, sendResponse, refs, requestCallbacks, options, request) => {
|
1154
|
+
let keys = {};
|
1155
|
+
let port = getFlag(options, keys, "port", mustBeInteger);
|
1156
|
+
let host = getFlag(options, keys, "host", mustBeString);
|
1157
|
+
let servedir = getFlag(options, keys, "servedir", mustBeString);
|
1158
|
+
let onRequest = getFlag(options, keys, "onRequest", mustBeFunction);
|
1159
|
+
let wait = new Promise((resolve, reject) => {
|
1160
|
+
requestCallbacks["serve-wait"] = (id, request2) => {
|
1161
|
+
if (request2.error !== null)
|
1162
|
+
reject(new Error(request2.error));
|
1163
|
+
else
|
1164
|
+
resolve();
|
1165
|
+
sendResponse(id, {});
|
1166
|
+
};
|
1167
|
+
});
|
1168
|
+
request.serve = {};
|
1169
|
+
checkForInvalidFlags(options, keys, `in serve() call`);
|
1170
|
+
if (port !== void 0)
|
1171
|
+
request.serve.port = port;
|
1172
|
+
if (host !== void 0)
|
1173
|
+
request.serve.host = host;
|
1174
|
+
if (servedir !== void 0)
|
1175
|
+
request.serve.servedir = servedir;
|
1176
|
+
requestCallbacks["serve-request"] = (id, request2) => {
|
1177
|
+
if (onRequest)
|
1178
|
+
onRequest(request2.args);
|
1179
|
+
sendResponse(id, {});
|
1409
1180
|
};
|
1410
|
-
|
1411
|
-
|
1412
|
-
|
1413
|
-
|
1414
|
-
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1181
|
+
return {
|
1182
|
+
wait,
|
1183
|
+
stop() {
|
1184
|
+
sendRequest(refs, { command: "serve-stop", key: buildKey }, () => {
|
1185
|
+
});
|
1186
|
+
}
|
1187
|
+
};
|
1188
|
+
};
|
1189
|
+
var handlePlugins = (buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, initialOptions, plugins, details) => __async(void 0, null, function* () {
|
1190
|
+
let onStartCallbacks = [];
|
1191
|
+
let onEndCallbacks = [];
|
1192
|
+
let onResolveCallbacks = {};
|
1193
|
+
let onLoadCallbacks = {};
|
1194
|
+
let nextCallbackID = 0;
|
1195
|
+
let i = 0;
|
1196
|
+
let requestPlugins = [];
|
1197
|
+
let isSetupDone = false;
|
1198
|
+
plugins = [...plugins];
|
1199
|
+
for (let item of plugins) {
|
1200
|
+
let keys = {};
|
1201
|
+
if (typeof item !== "object")
|
1202
|
+
throw new Error(`Plugin at index ${i} must be an object`);
|
1203
|
+
const name = getFlag(item, keys, "name", mustBeString);
|
1204
|
+
if (typeof name !== "string" || name === "")
|
1205
|
+
throw new Error(`Plugin at index ${i} is missing a name`);
|
1206
|
+
try {
|
1207
|
+
let setup = getFlag(item, keys, "setup", mustBeFunction);
|
1208
|
+
if (typeof setup !== "function")
|
1209
|
+
throw new Error(`Plugin is missing a setup function`);
|
1210
|
+
checkForInvalidFlags(item, keys, `on plugin ${JSON.stringify(name)}`);
|
1211
|
+
let plugin = {
|
1212
|
+
name,
|
1213
|
+
onResolve: [],
|
1214
|
+
onLoad: []
|
1215
|
+
};
|
1216
|
+
i++;
|
1217
|
+
let resolve = (path, options = {}) => {
|
1218
|
+
if (!isSetupDone)
|
1219
|
+
throw new Error('Cannot call "resolve" before plugin setup has completed');
|
1220
|
+
if (typeof path !== "string")
|
1221
|
+
throw new Error(`The path to resolve must be a string`);
|
1222
|
+
let keys2 = /* @__PURE__ */ Object.create(null);
|
1223
|
+
let pluginName = getFlag(options, keys2, "pluginName", mustBeString);
|
1224
|
+
let importer = getFlag(options, keys2, "importer", mustBeString);
|
1225
|
+
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
1226
|
+
let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
|
1227
|
+
let kind = getFlag(options, keys2, "kind", mustBeString);
|
1228
|
+
let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
|
1229
|
+
checkForInvalidFlags(options, keys2, "in resolve() call");
|
1230
|
+
return new Promise((resolve2, reject) => {
|
1231
|
+
const request = {
|
1232
|
+
command: "resolve",
|
1233
|
+
path,
|
1234
|
+
key: buildKey,
|
1235
|
+
pluginName: name
|
1441
1236
|
};
|
1442
|
-
if (
|
1443
|
-
|
1444
|
-
if (
|
1445
|
-
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
1449
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1459
|
-
|
1460
|
-
|
1461
|
-
response.
|
1462
|
-
|
1463
|
-
|
1464
|
-
|
1465
|
-
|
1466
|
-
|
1237
|
+
if (pluginName != null)
|
1238
|
+
request.pluginName = pluginName;
|
1239
|
+
if (importer != null)
|
1240
|
+
request.importer = importer;
|
1241
|
+
if (namespace != null)
|
1242
|
+
request.namespace = namespace;
|
1243
|
+
if (resolveDir != null)
|
1244
|
+
request.resolveDir = resolveDir;
|
1245
|
+
if (kind != null)
|
1246
|
+
request.kind = kind;
|
1247
|
+
if (pluginData != null)
|
1248
|
+
request.pluginData = details.store(pluginData);
|
1249
|
+
sendRequest(refs, request, (error, response) => {
|
1250
|
+
if (error !== null)
|
1251
|
+
reject(new Error(error));
|
1252
|
+
else
|
1253
|
+
resolve2({
|
1254
|
+
errors: replaceDetailsInMessages(response.errors, details),
|
1255
|
+
warnings: replaceDetailsInMessages(response.warnings, details),
|
1256
|
+
path: response.path,
|
1257
|
+
external: response.external,
|
1258
|
+
sideEffects: response.sideEffects,
|
1259
|
+
namespace: response.namespace,
|
1260
|
+
suffix: response.suffix,
|
1261
|
+
pluginData: details.load(response.pluginData)
|
1262
|
+
});
|
1263
|
+
});
|
1467
1264
|
});
|
1265
|
+
};
|
1266
|
+
let promise = setup({
|
1267
|
+
initialOptions,
|
1268
|
+
resolve,
|
1269
|
+
onStart(callback) {
|
1270
|
+
let registeredText = `This error came from the "onStart" callback registered here:`;
|
1271
|
+
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onStart");
|
1272
|
+
onStartCallbacks.push({ name, callback, note: registeredNote });
|
1273
|
+
},
|
1274
|
+
onEnd(callback) {
|
1275
|
+
let registeredText = `This error came from the "onEnd" callback registered here:`;
|
1276
|
+
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onEnd");
|
1277
|
+
onEndCallbacks.push({ name, callback, note: registeredNote });
|
1278
|
+
},
|
1279
|
+
onResolve(options, callback) {
|
1280
|
+
let registeredText = `This error came from the "onResolve" callback registered here:`;
|
1281
|
+
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onResolve");
|
1282
|
+
let keys2 = {};
|
1283
|
+
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
1284
|
+
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
1285
|
+
checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${JSON.stringify(name)}`);
|
1286
|
+
if (filter == null)
|
1287
|
+
throw new Error(`onResolve() call is missing a filter`);
|
1288
|
+
let id = nextCallbackID++;
|
1289
|
+
onResolveCallbacks[id] = { name, callback, note: registeredNote };
|
1290
|
+
plugin.onResolve.push({ id, filter: filter.source, namespace: namespace || "" });
|
1291
|
+
},
|
1292
|
+
onLoad(options, callback) {
|
1293
|
+
let registeredText = `This error came from the "onLoad" callback registered here:`;
|
1294
|
+
let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onLoad");
|
1295
|
+
let keys2 = {};
|
1296
|
+
let filter = getFlag(options, keys2, "filter", mustBeRegExp);
|
1297
|
+
let namespace = getFlag(options, keys2, "namespace", mustBeString);
|
1298
|
+
checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${JSON.stringify(name)}`);
|
1299
|
+
if (filter == null)
|
1300
|
+
throw new Error(`onLoad() call is missing a filter`);
|
1301
|
+
let id = nextCallbackID++;
|
1302
|
+
onLoadCallbacks[id] = { name, callback, note: registeredNote };
|
1303
|
+
plugin.onLoad.push({ id, filter: filter.source, namespace: namespace || "" });
|
1304
|
+
},
|
1305
|
+
esbuild: streamIn.esbuild
|
1306
|
+
});
|
1307
|
+
if (promise)
|
1308
|
+
yield promise;
|
1309
|
+
requestPlugins.push(plugin);
|
1310
|
+
} catch (e) {
|
1311
|
+
return { ok: false, error: e, pluginName: name };
|
1312
|
+
}
|
1313
|
+
}
|
1314
|
+
requestCallbacks["on-start"] = (id, request) => __async(void 0, null, function* () {
|
1315
|
+
let response = { errors: [], warnings: [] };
|
1316
|
+
yield Promise.all(onStartCallbacks.map((_0) => __async(void 0, [_0], function* ({ name, callback, note }) {
|
1317
|
+
try {
|
1318
|
+
let result = yield callback();
|
1319
|
+
if (result != null) {
|
1320
|
+
if (typeof result !== "object")
|
1321
|
+
throw new Error(`Expected onStart() callback in plugin ${JSON.stringify(name)} to return an object`);
|
1322
|
+
let keys = {};
|
1323
|
+
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1324
|
+
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1325
|
+
checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${JSON.stringify(name)}`);
|
1326
|
+
if (errors != null)
|
1327
|
+
response.errors.push(...sanitizeMessages(errors, "errors", details, name));
|
1328
|
+
if (warnings != null)
|
1329
|
+
response.warnings.push(...sanitizeMessages(warnings, "warnings", details, name));
|
1330
|
+
}
|
1468
1331
|
} catch (e) {
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1332
|
+
response.errors.push(extractErrorMessageV8(e, streamIn, details, note && note(), name));
|
1333
|
+
}
|
1334
|
+
})));
|
1335
|
+
sendResponse(id, response);
|
1336
|
+
});
|
1337
|
+
requestCallbacks["on-resolve"] = (id, request) => __async(void 0, null, function* () {
|
1338
|
+
let response = {}, name = "", callback, note;
|
1339
|
+
for (let id2 of request.ids) {
|
1340
|
+
try {
|
1341
|
+
({ name, callback, note } = onResolveCallbacks[id2]);
|
1342
|
+
let result = yield callback({
|
1343
|
+
path: request.path,
|
1344
|
+
importer: request.importer,
|
1345
|
+
namespace: request.namespace,
|
1346
|
+
resolveDir: request.resolveDir,
|
1347
|
+
kind: request.kind,
|
1348
|
+
pluginData: details.load(request.pluginData)
|
1349
|
+
});
|
1350
|
+
if (result != null) {
|
1351
|
+
if (typeof result !== "object")
|
1352
|
+
throw new Error(`Expected onResolve() callback in plugin ${JSON.stringify(name)} to return an object`);
|
1353
|
+
let keys = {};
|
1354
|
+
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
1355
|
+
let path = getFlag(result, keys, "path", mustBeString);
|
1356
|
+
let namespace = getFlag(result, keys, "namespace", mustBeString);
|
1357
|
+
let suffix = getFlag(result, keys, "suffix", mustBeString);
|
1358
|
+
let external = getFlag(result, keys, "external", mustBeBoolean);
|
1359
|
+
let sideEffects = getFlag(result, keys, "sideEffects", mustBeBoolean);
|
1360
|
+
let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
|
1361
|
+
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1362
|
+
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1363
|
+
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
1364
|
+
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
1365
|
+
checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${JSON.stringify(name)}`);
|
1366
|
+
response.id = id2;
|
1367
|
+
if (pluginName != null)
|
1368
|
+
response.pluginName = pluginName;
|
1369
|
+
if (path != null)
|
1370
|
+
response.path = path;
|
1371
|
+
if (namespace != null)
|
1372
|
+
response.namespace = namespace;
|
1373
|
+
if (suffix != null)
|
1374
|
+
response.suffix = suffix;
|
1375
|
+
if (external != null)
|
1376
|
+
response.external = external;
|
1377
|
+
if (sideEffects != null)
|
1378
|
+
response.sideEffects = sideEffects;
|
1379
|
+
if (pluginData != null)
|
1380
|
+
response.pluginData = details.store(pluginData);
|
1381
|
+
if (errors != null)
|
1382
|
+
response.errors = sanitizeMessages(errors, "errors", details, name);
|
1383
|
+
if (warnings != null)
|
1384
|
+
response.warnings = sanitizeMessages(warnings, "warnings", details, name);
|
1385
|
+
if (watchFiles != null)
|
1386
|
+
response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
|
1387
|
+
if (watchDirs != null)
|
1388
|
+
response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
|
1389
|
+
break;
|
1473
1390
|
}
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
1477
|
-
|
1391
|
+
} catch (e) {
|
1392
|
+
response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };
|
1393
|
+
break;
|
1394
|
+
}
|
1395
|
+
}
|
1396
|
+
sendResponse(id, response);
|
1397
|
+
});
|
1398
|
+
requestCallbacks["on-load"] = (id, request) => __async(void 0, null, function* () {
|
1399
|
+
let response = {}, name = "", callback, note;
|
1400
|
+
for (let id2 of request.ids) {
|
1401
|
+
try {
|
1402
|
+
({ name, callback, note } = onLoadCallbacks[id2]);
|
1403
|
+
let result = yield callback({
|
1404
|
+
path: request.path,
|
1405
|
+
namespace: request.namespace,
|
1406
|
+
suffix: request.suffix,
|
1407
|
+
pluginData: details.load(request.pluginData)
|
1478
1408
|
});
|
1409
|
+
if (result != null) {
|
1410
|
+
if (typeof result !== "object")
|
1411
|
+
throw new Error(`Expected onLoad() callback in plugin ${JSON.stringify(name)} to return an object`);
|
1412
|
+
let keys = {};
|
1413
|
+
let pluginName = getFlag(result, keys, "pluginName", mustBeString);
|
1414
|
+
let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array);
|
1415
|
+
let resolveDir = getFlag(result, keys, "resolveDir", mustBeString);
|
1416
|
+
let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
|
1417
|
+
let loader = getFlag(result, keys, "loader", mustBeString);
|
1418
|
+
let errors = getFlag(result, keys, "errors", mustBeArray);
|
1419
|
+
let warnings = getFlag(result, keys, "warnings", mustBeArray);
|
1420
|
+
let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
|
1421
|
+
let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
|
1422
|
+
checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${JSON.stringify(name)}`);
|
1423
|
+
response.id = id2;
|
1424
|
+
if (pluginName != null)
|
1425
|
+
response.pluginName = pluginName;
|
1426
|
+
if (contents instanceof Uint8Array)
|
1427
|
+
response.contents = contents;
|
1428
|
+
else if (contents != null)
|
1429
|
+
response.contents = encodeUTF8(contents);
|
1430
|
+
if (resolveDir != null)
|
1431
|
+
response.resolveDir = resolveDir;
|
1432
|
+
if (pluginData != null)
|
1433
|
+
response.pluginData = details.store(pluginData);
|
1434
|
+
if (loader != null)
|
1435
|
+
response.loader = loader;
|
1436
|
+
if (errors != null)
|
1437
|
+
response.errors = sanitizeMessages(errors, "errors", details, name);
|
1438
|
+
if (warnings != null)
|
1439
|
+
response.warnings = sanitizeMessages(warnings, "warnings", details, name);
|
1440
|
+
if (watchFiles != null)
|
1441
|
+
response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
|
1442
|
+
if (watchDirs != null)
|
1443
|
+
response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
|
1444
|
+
break;
|
1445
|
+
}
|
1446
|
+
} catch (e) {
|
1447
|
+
response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };
|
1448
|
+
break;
|
1479
1449
|
}
|
1480
|
-
};
|
1481
|
-
if ((typeof input === "string" || input instanceof Uint8Array) && input.length > 1024 * 1024) {
|
1482
|
-
let next = start;
|
1483
|
-
start = () => fs.writeFile(input, next);
|
1484
1450
|
}
|
1485
|
-
|
1486
|
-
};
|
1487
|
-
let
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
1498
|
-
|
1499
|
-
throw new Error(`Expected "kind" to be "error" or "warning" in ${callName}() call`);
|
1500
|
-
let request = {
|
1501
|
-
command: "format-msgs",
|
1502
|
-
messages: result,
|
1503
|
-
isWarning: kind === "warning"
|
1504
|
-
};
|
1505
|
-
if (color !== void 0)
|
1506
|
-
request.color = color;
|
1507
|
-
if (terminalWidth !== void 0)
|
1508
|
-
request.terminalWidth = terminalWidth;
|
1509
|
-
sendRequest(refs, request, (error, response) => {
|
1510
|
-
if (error)
|
1511
|
-
return callback(new Error(error), null);
|
1512
|
-
callback(null, response.messages);
|
1513
|
-
});
|
1514
|
-
};
|
1515
|
-
let analyzeMetafile2 = ({ callName, refs, metafile, options, callback }) => {
|
1516
|
-
if (options === void 0)
|
1517
|
-
options = {};
|
1518
|
-
let keys = {};
|
1519
|
-
let color = getFlag(options, keys, "color", mustBeBoolean);
|
1520
|
-
let verbose = getFlag(options, keys, "verbose", mustBeBoolean);
|
1521
|
-
checkForInvalidFlags(options, keys, `in ${callName}() call`);
|
1522
|
-
let request = {
|
1523
|
-
command: "analyze-metafile",
|
1524
|
-
metafile
|
1451
|
+
sendResponse(id, response);
|
1452
|
+
});
|
1453
|
+
let runOnEndCallbacks = (result, logPluginError, done) => done();
|
1454
|
+
if (onEndCallbacks.length > 0) {
|
1455
|
+
runOnEndCallbacks = (result, logPluginError, done) => {
|
1456
|
+
(() => __async(void 0, null, function* () {
|
1457
|
+
for (const { name, callback, note } of onEndCallbacks) {
|
1458
|
+
try {
|
1459
|
+
yield callback(result);
|
1460
|
+
} catch (e) {
|
1461
|
+
result.errors.push(yield new Promise((resolve) => logPluginError(e, name, note && note(), resolve)));
|
1462
|
+
}
|
1463
|
+
}
|
1464
|
+
}))().then(done);
|
1525
1465
|
};
|
1526
|
-
|
1527
|
-
|
1528
|
-
if (verbose !== void 0)
|
1529
|
-
request.verbose = verbose;
|
1530
|
-
sendRequest(refs, request, (error, response) => {
|
1531
|
-
if (error)
|
1532
|
-
return callback(new Error(error), null);
|
1533
|
-
callback(null, response.result);
|
1534
|
-
});
|
1535
|
-
};
|
1466
|
+
}
|
1467
|
+
isSetupDone = true;
|
1536
1468
|
return {
|
1537
|
-
|
1538
|
-
|
1539
|
-
|
1540
|
-
buildOrServe,
|
1541
|
-
transform: transform2,
|
1542
|
-
formatMessages: formatMessages2,
|
1543
|
-
analyzeMetafile: analyzeMetafile2
|
1544
|
-
}
|
1469
|
+
ok: true,
|
1470
|
+
requestPlugins,
|
1471
|
+
runOnEndCallbacks
|
1545
1472
|
};
|
1546
|
-
}
|
1473
|
+
});
|
1547
1474
|
function createObjectStash() {
|
1548
1475
|
const map = /* @__PURE__ */ new Map();
|
1549
1476
|
let nextID = 0;
|
@@ -1748,7 +1675,7 @@ function convertOutputFiles({ path, contents }) {
|
|
1748
1675
|
}
|
1749
1676
|
|
1750
1677
|
// lib/npm/browser.ts
|
1751
|
-
var version = "0.15.
|
1678
|
+
var version = "0.15.8";
|
1752
1679
|
var build = (options) => ensureServiceIsRunning().build(options);
|
1753
1680
|
var serve = () => {
|
1754
1681
|
throw new Error(`The "serve" API only works in node`);
|
@@ -1804,7 +1731,7 @@ var startRunningService = (wasmURL, wasmModule, useWorker) => __async(void 0, nu
|
|
1804
1731
|
}
|
1805
1732
|
let worker;
|
1806
1733
|
if (useWorker) {
|
1807
|
-
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.4"}`];\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" });
|
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.8"}`];\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" });
|
1808
1735
|
worker = new Worker(URL.createObjectURL(blob));
|
1809
1736
|
} else {
|
1810
1737
|
let onmessage = ((postMessage) => {
|
@@ -2408,7 +2335,7 @@ var startRunningService = (wasmURL, wasmModule, useWorker) => __async(void 0, nu
|
|
2408
2335
|
callback(null, count);
|
2409
2336
|
};
|
2410
2337
|
let go = new globalThis.Go();
|
2411
|
-
go.argv = ["", `--service=${"0.15.
|
2338
|
+
go.argv = ["", `--service=${"0.15.8"}`];
|
2412
2339
|
if (wasm instanceof WebAssembly.Module) {
|
2413
2340
|
WebAssembly.instantiate(wasm, go.importObject).then((instance) => go.run(instance));
|
2414
2341
|
} else {
|