isomorfeus-asset-manager 0.14.21 → 0.14.22

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,24 +20,19 @@ var __spreadValues = (a, b) => {
20
20
  return a;
21
21
  };
22
22
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
24
23
  var __export = (target, all) => {
25
24
  for (var name in all)
26
25
  __defProp(target, name, { get: all[name], enumerable: true });
27
26
  };
28
- var __reExport = (target, module2, copyDefault, desc) => {
29
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
30
- for (let key of __getOwnPropNames(module2))
31
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
32
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
27
+ var __copyProps = (to, from, except, desc) => {
28
+ if (from && typeof from === "object" || typeof from === "function") {
29
+ for (let key of __getOwnPropNames(from))
30
+ if (!__hasOwnProp.call(to, key) && key !== except)
31
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
32
  }
34
- return target;
33
+ return to;
35
34
  };
36
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
37
- return (module2, temp) => {
38
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
39
- };
40
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
41
36
  var __async = (__this, __arguments, generator) => {
42
37
  return new Promise((resolve, reject) => {
43
38
  var fulfilled = (value) => {
@@ -75,6 +70,7 @@ __export(browser_exports, {
75
70
  transformSync: () => transformSync,
76
71
  version: () => version
77
72
  });
73
+ module.exports = __toCommonJS(browser_exports);
78
74
 
79
75
  // lib/shared/stdio_protocol.ts
80
76
  function encodePacket(packet) {
@@ -256,6 +252,7 @@ var mustBeInteger = (value) => typeof value === "number" && value === (value | 0
256
252
  var mustBeFunction = (value) => typeof value === "function" ? null : "a function";
257
253
  var mustBeArray = (value) => Array.isArray(value) ? null : "an array";
258
254
  var mustBeObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? null : "an object";
255
+ var mustBeWebAssemblyModule = (value) => value instanceof WebAssembly.Module ? null : "a WebAssembly.Module";
259
256
  var mustBeArrayOrRecord = (value) => typeof value === "object" && value !== null ? null : "an array or an object";
260
257
  var mustBeObjectOrNull = (value) => typeof value === "object" && !Array.isArray(value) ? null : "an object or null";
261
258
  var mustBeStringOrBoolean = (value) => typeof value === "string" || typeof value === "boolean" ? null : "a string or a boolean";
@@ -282,10 +279,12 @@ function checkForInvalidFlags(object, keys, where) {
282
279
  function validateInitializeOptions(options) {
283
280
  let keys = /* @__PURE__ */ Object.create(null);
284
281
  let wasmURL = getFlag(options, keys, "wasmURL", mustBeString);
282
+ let wasmModule = getFlag(options, keys, "wasmModule", mustBeWebAssemblyModule);
285
283
  let worker = getFlag(options, keys, "worker", mustBeBoolean);
286
- checkForInvalidFlags(options, keys, "in startService() call");
284
+ checkForInvalidFlags(options, keys, "in initialize() call");
287
285
  return {
288
286
  wasmURL,
287
+ wasmModule,
289
288
  worker
290
289
  };
291
290
  }
@@ -324,6 +323,7 @@ function pushCommonFlags(flags, options, keys) {
324
323
  let globalName = getFlag(options, keys, "globalName", mustBeString);
325
324
  let mangleProps = getFlag(options, keys, "mangleProps", mustBeRegExp);
326
325
  let reserveProps = getFlag(options, keys, "reserveProps", mustBeRegExp);
326
+ let mangleQuoted = getFlag(options, keys, "mangleQuoted", mustBeBoolean);
327
327
  let minify = getFlag(options, keys, "minify", mustBeBoolean);
328
328
  let minifySyntax = getFlag(options, keys, "minifySyntax", mustBeBoolean);
329
329
  let minifyWhitespace = getFlag(options, keys, "minifyWhitespace", mustBeBoolean);
@@ -375,6 +375,8 @@ function pushCommonFlags(flags, options, keys) {
375
375
  flags.push(`--mangle-props=${mangleProps.source}`);
376
376
  if (reserveProps)
377
377
  flags.push(`--reserve-props=${reserveProps.source}`);
378
+ if (mangleQuoted !== void 0)
379
+ flags.push(`--mangle-quoted=${mangleQuoted}`);
378
380
  if (jsx)
379
381
  flags.push(`--jsx=${jsx}`);
380
382
  if (jsxFactory)
@@ -624,7 +626,7 @@ function createChannel(streamIn) {
624
626
  let pluginCallbacks = /* @__PURE__ */ new Map();
625
627
  let watchCallbacks = /* @__PURE__ */ new Map();
626
628
  let serveCallbacks = /* @__PURE__ */ new Map();
627
- let isClosed = false;
629
+ let closeData = null;
628
630
  let nextRequestID = 0;
629
631
  let nextBuildKey = 0;
630
632
  let stdout = new Uint8Array(16 * 1024);
@@ -653,19 +655,20 @@ function createChannel(streamIn) {
653
655
  stdoutUsed -= offset;
654
656
  }
655
657
  };
656
- let afterClose = () => {
657
- isClosed = true;
658
+ let afterClose = (error) => {
659
+ closeData = { reason: error ? ": " + (error.message || error) : "" };
660
+ const text = "The service was stopped" + closeData.reason;
658
661
  for (let callback of responseCallbacks.values()) {
659
- callback("The service was stopped", null);
662
+ callback(text, null);
660
663
  }
661
664
  responseCallbacks.clear();
662
665
  for (let callbacks of serveCallbacks.values()) {
663
- callbacks.onWait("The service was stopped");
666
+ callbacks.onWait(text);
664
667
  }
665
668
  serveCallbacks.clear();
666
669
  for (let callback of watchCallbacks.values()) {
667
670
  try {
668
- callback(new Error("The service was stopped"), null);
671
+ callback(new Error(text), null);
669
672
  } catch (e) {
670
673
  console.error(e);
671
674
  }
@@ -673,8 +676,8 @@ function createChannel(streamIn) {
673
676
  watchCallbacks.clear();
674
677
  };
675
678
  let sendRequest = (refs, value, callback) => {
676
- if (isClosed)
677
- return callback("The service is no longer running", null);
679
+ if (closeData)
680
+ return callback("The service is no longer running" + closeData.reason, null);
678
681
  let id = nextRequestID++;
679
682
  responseCallbacks.set(id, (error, response) => {
680
683
  try {
@@ -689,8 +692,8 @@ function createChannel(streamIn) {
689
692
  streamIn.writeToStdin(encodePacket({ id, isRequest: true, value }));
690
693
  };
691
694
  let sendResponse = (id, value) => {
692
- if (isClosed)
693
- throw new Error("The service is no longer running");
695
+ if (closeData)
696
+ throw new Error("The service is no longer running" + closeData.reason);
694
697
  streamIn.writeToStdin(encodePacket({ id, isRequest: false, value }));
695
698
  };
696
699
  let handleRequest = (id, request) => __async(this, null, function* () {
@@ -761,8 +764,8 @@ function createChannel(streamIn) {
761
764
  if (isFirstPacket) {
762
765
  isFirstPacket = false;
763
766
  let binaryVersion = String.fromCharCode(...bytes);
764
- if (binaryVersion !== "0.14.23") {
765
- throw new Error(`Cannot start service: Host version "${"0.14.23"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
767
+ if (binaryVersion !== "0.14.36") {
768
+ throw new Error(`Cannot start service: Host version "${"0.14.36"}" does not match binary version ${JSON.stringify(binaryVersion)}`);
766
769
  }
767
770
  return;
768
771
  }
@@ -1267,7 +1270,7 @@ function createChannel(streamIn) {
1267
1270
  if (!rebuild) {
1268
1271
  let isDisposed = false;
1269
1272
  rebuild = () => new Promise((resolve, reject) => {
1270
- if (isDisposed || isClosed)
1273
+ if (isDisposed || closeData)
1271
1274
  throw new Error("Cannot rebuild");
1272
1275
  sendRequest(refs, { command: "rebuild", key }, (error2, response2) => {
1273
1276
  if (error2) {
@@ -1707,7 +1710,7 @@ function convertOutputFiles({ path, contents }) {
1707
1710
  }
1708
1711
 
1709
1712
  // lib/npm/browser.ts
1710
- var version = "0.14.23";
1713
+ var version = "0.14.36";
1711
1714
  var build = (options) => ensureServiceIsRunning().build(options);
1712
1715
  var serve = () => {
1713
1716
  throw new Error(`The "serve" API only works in node`);
@@ -1739,747 +1742,643 @@ var ensureServiceIsRunning = () => {
1739
1742
  var initialize = (options) => {
1740
1743
  options = validateInitializeOptions(options || {});
1741
1744
  let wasmURL = options.wasmURL;
1745
+ let wasmModule = options.wasmModule;
1742
1746
  let useWorker = options.worker !== false;
1743
- if (!wasmURL)
1744
- throw new Error('Must provide the "wasmURL" option');
1745
- wasmURL += "";
1747
+ if (!wasmURL && !wasmModule)
1748
+ throw new Error('Must provide either the "wasmURL" option or the "wasmModule" option');
1746
1749
  if (initializePromise)
1747
1750
  throw new Error('Cannot call "initialize" more than once');
1748
- initializePromise = startRunningService(wasmURL, useWorker);
1751
+ initializePromise = startRunningService(wasmURL || "", wasmModule, useWorker);
1749
1752
  initializePromise.catch(() => {
1750
1753
  initializePromise = void 0;
1751
1754
  });
1752
1755
  return initializePromise;
1753
1756
  };
1754
- var startRunningService = (wasmURL, useWorker) => __async(void 0, null, function* () {
1755
- let res = yield fetch(wasmURL);
1756
- if (!res.ok)
1757
- throw new Error(`Failed to download ${JSON.stringify(wasmURL)}`);
1758
- let wasm = yield res.arrayBuffer();
1759
- let code = `{let global={};for(let o=self;o;o=Object.getPrototypeOf(o))for(let k of Object.getOwnPropertyNames(o))if(!(k in global))Object.defineProperty(global,k,{get:()=>self[k]});// Copyright 2018 The Go Authors. All rights reserved.
1760
- // Use of this source code is governed by a BSD-style
1761
- // license that can be found in the LICENSE file.
1762
-
1763
- (() => {
1764
- // Map multiple JavaScript environments to a single common API,
1765
- // preferring web standards over Node.js API.
1766
- //
1767
- // Environments considered:
1768
- // - Browsers
1769
- // - Node.js
1770
- // - Electron
1771
- // - Parcel
1772
- // - Webpack
1773
-
1774
- if (typeof global !== "undefined") {
1775
- // global already exists
1776
- } else if (typeof window !== "undefined") {
1777
- window.global = window;
1778
- } else if (typeof self !== "undefined") {
1779
- self.global = self;
1780
- } else {
1781
- throw new Error("cannot export Go (neither global, window nor self is defined)");
1782
- }
1783
-
1784
- if (!global.require && typeof require !== "undefined") {
1785
- global.require = require;
1786
- }
1787
-
1788
- if (!global.fs && global.require) {
1789
- const fs = require("fs");
1790
- if (typeof fs === "object" && fs !== null && Object.keys(fs).length !== 0) {
1791
-
1792
- global.fs = Object.assign({}, fs, {
1793
- // Hack around a Unicode bug in node: https://github.com/nodejs/node/issues/24550
1794
- write(fd, buf, offset, length, position, callback) {
1795
- if (offset === 0 && length === buf.length && position === null) {
1796
- if (fd === process.stdout.fd) {
1757
+ var startRunningService = (wasmURL, wasmModule, useWorker) => __async(void 0, null, function* () {
1758
+ let wasm;
1759
+ if (wasmModule) {
1760
+ wasm = wasmModule;
1761
+ } else {
1762
+ let res = yield fetch(wasmURL);
1763
+ if (!res.ok)
1764
+ throw new Error(`Failed to download ${JSON.stringify(wasmURL)}`);
1765
+ wasm = yield res.arrayBuffer();
1766
+ }
1767
+ let worker;
1768
+ if (useWorker) {
1769
+ 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 this._resume();\n while (this._scheduledTimeouts.has(id)) {\n console.warn("scheduleTimeoutEvent: missed timeout event");\n this._resume();\n }\n }, getInt64(sp + 8) + 1));\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.14.36"}`];\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" });
1770
+ worker = new Worker(URL.createObjectURL(blob));
1771
+ } else {
1772
+ let onmessage = ((postMessage) => {
1773
+ // Copyright 2018 The Go Authors. All rights reserved.
1774
+ // Use of this source code is governed by a BSD-style
1775
+ // license that can be found in the LICENSE file.
1776
+ var __async = (__this, __arguments, generator) => {
1777
+ return new Promise((resolve, reject) => {
1778
+ var fulfilled = (value) => {
1797
1779
  try {
1798
- process.stdout.write(buf, err => err ? callback(err, 0, null) : callback(null, length, buf));
1799
- } catch (err) {
1800
- callback(err, 0, null);
1780
+ step(generator.next(value));
1781
+ } catch (e) {
1782
+ reject(e);
1801
1783
  }
1802
- return;
1803
- }
1804
- if (fd === process.stderr.fd) {
1784
+ };
1785
+ var rejected = (value) => {
1805
1786
  try {
1806
- process.stderr.write(buf, err => err ? callback(err, 0, null) : callback(null, length, buf));
1807
- } catch (err) {
1808
- callback(err, 0, null);
1787
+ step(generator.throw(value));
1788
+ } catch (e) {
1789
+ reject(e);
1790
+ }
1791
+ };
1792
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
1793
+ step((generator = generator.apply(__this, __arguments)).next());
1794
+ });
1795
+ };
1796
+ let onmessage;
1797
+ let globalThis = {};
1798
+ for (let o = self; o; o = Object.getPrototypeOf(o))
1799
+ for (let k of Object.getOwnPropertyNames(o))
1800
+ if (!(k in globalThis))
1801
+ Object.defineProperty(globalThis, k, { get: () => self[k] });
1802
+ "use strict";
1803
+ (() => {
1804
+ const enosys = () => {
1805
+ const err = new Error("not implemented");
1806
+ err.code = "ENOSYS";
1807
+ return err;
1808
+ };
1809
+ if (!globalThis.fs) {
1810
+ let outputBuf = "";
1811
+ globalThis.fs = {
1812
+ constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 },
1813
+ writeSync(fd, buf) {
1814
+ outputBuf += decoder.decode(buf);
1815
+ const nl = outputBuf.lastIndexOf("\n");
1816
+ if (nl != -1) {
1817
+ console.log(outputBuf.substr(0, nl));
1818
+ outputBuf = outputBuf.substr(nl + 1);
1819
+ }
1820
+ return buf.length;
1821
+ },
1822
+ write(fd, buf, offset, length, position, callback) {
1823
+ if (offset !== 0 || length !== buf.length || position !== null) {
1824
+ callback(enosys());
1825
+ return;
1826
+ }
1827
+ const n = this.writeSync(fd, buf);
1828
+ callback(null, n);
1829
+ },
1830
+ chmod(path, mode, callback) {
1831
+ callback(enosys());
1832
+ },
1833
+ chown(path, uid, gid, callback) {
1834
+ callback(enosys());
1835
+ },
1836
+ close(fd, callback) {
1837
+ callback(enosys());
1838
+ },
1839
+ fchmod(fd, mode, callback) {
1840
+ callback(enosys());
1841
+ },
1842
+ fchown(fd, uid, gid, callback) {
1843
+ callback(enosys());
1844
+ },
1845
+ fstat(fd, callback) {
1846
+ callback(enosys());
1847
+ },
1848
+ fsync(fd, callback) {
1849
+ callback(null);
1850
+ },
1851
+ ftruncate(fd, length, callback) {
1852
+ callback(enosys());
1853
+ },
1854
+ lchown(path, uid, gid, callback) {
1855
+ callback(enosys());
1856
+ },
1857
+ link(path, link, callback) {
1858
+ callback(enosys());
1859
+ },
1860
+ lstat(path, callback) {
1861
+ callback(enosys());
1862
+ },
1863
+ mkdir(path, perm, callback) {
1864
+ callback(enosys());
1865
+ },
1866
+ open(path, flags, mode, callback) {
1867
+ callback(enosys());
1868
+ },
1869
+ read(fd, buffer, offset, length, position, callback) {
1870
+ callback(enosys());
1871
+ },
1872
+ readdir(path, callback) {
1873
+ callback(enosys());
1874
+ },
1875
+ readlink(path, callback) {
1876
+ callback(enosys());
1877
+ },
1878
+ rename(from, to, callback) {
1879
+ callback(enosys());
1880
+ },
1881
+ rmdir(path, callback) {
1882
+ callback(enosys());
1883
+ },
1884
+ stat(path, callback) {
1885
+ callback(enosys());
1886
+ },
1887
+ symlink(path, link, callback) {
1888
+ callback(enosys());
1889
+ },
1890
+ truncate(path, length, callback) {
1891
+ callback(enosys());
1892
+ },
1893
+ unlink(path, callback) {
1894
+ callback(enosys());
1895
+ },
1896
+ utimes(path, atime, mtime, callback) {
1897
+ callback(enosys());
1898
+ }
1899
+ };
1900
+ }
1901
+ if (!globalThis.process) {
1902
+ globalThis.process = {
1903
+ getuid() {
1904
+ return -1;
1905
+ },
1906
+ getgid() {
1907
+ return -1;
1908
+ },
1909
+ geteuid() {
1910
+ return -1;
1911
+ },
1912
+ getegid() {
1913
+ return -1;
1914
+ },
1915
+ getgroups() {
1916
+ throw enosys();
1917
+ },
1918
+ pid: -1,
1919
+ ppid: -1,
1920
+ umask() {
1921
+ throw enosys();
1922
+ },
1923
+ cwd() {
1924
+ throw enosys();
1925
+ },
1926
+ chdir() {
1927
+ throw enosys();
1928
+ }
1929
+ };
1930
+ }
1931
+ if (!globalThis.crypto) {
1932
+ throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");
1933
+ }
1934
+ if (!globalThis.performance) {
1935
+ throw new Error("globalThis.performance is not available, polyfill required (performance.now only)");
1936
+ }
1937
+ if (!globalThis.TextEncoder) {
1938
+ throw new Error("globalThis.TextEncoder is not available, polyfill required");
1939
+ }
1940
+ if (!globalThis.TextDecoder) {
1941
+ throw new Error("globalThis.TextDecoder is not available, polyfill required");
1942
+ }
1943
+ const encoder = new TextEncoder("utf-8");
1944
+ const decoder = new TextDecoder("utf-8");
1945
+ globalThis.Go = class {
1946
+ constructor() {
1947
+ this.argv = ["js"];
1948
+ this.env = {};
1949
+ this.exit = (code) => {
1950
+ if (code !== 0) {
1951
+ console.warn("exit code:", code);
1952
+ }
1953
+ };
1954
+ this._exitPromise = new Promise((resolve) => {
1955
+ this._resolveExitPromise = resolve;
1956
+ });
1957
+ this._pendingEvent = null;
1958
+ this._scheduledTimeouts = /* @__PURE__ */ new Map();
1959
+ this._nextCallbackTimeoutID = 1;
1960
+ const setInt64 = (addr, v) => {
1961
+ this.mem.setUint32(addr + 0, v, true);
1962
+ this.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true);
1963
+ };
1964
+ const getInt64 = (addr) => {
1965
+ const low = this.mem.getUint32(addr + 0, true);
1966
+ const high = this.mem.getInt32(addr + 4, true);
1967
+ return low + high * 4294967296;
1968
+ };
1969
+ const loadValue = (addr) => {
1970
+ const f = this.mem.getFloat64(addr, true);
1971
+ if (f === 0) {
1972
+ return void 0;
1973
+ }
1974
+ if (!isNaN(f)) {
1975
+ return f;
1976
+ }
1977
+ const id = this.mem.getUint32(addr, true);
1978
+ return this._values[id];
1979
+ };
1980
+ const storeValue = (addr, v) => {
1981
+ const nanHead = 2146959360;
1982
+ if (typeof v === "number" && v !== 0) {
1983
+ if (isNaN(v)) {
1984
+ this.mem.setUint32(addr + 4, nanHead, true);
1985
+ this.mem.setUint32(addr, 0, true);
1986
+ return;
1987
+ }
1988
+ this.mem.setFloat64(addr, v, true);
1989
+ return;
1990
+ }
1991
+ if (v === void 0) {
1992
+ this.mem.setFloat64(addr, 0, true);
1993
+ return;
1994
+ }
1995
+ let id = this._ids.get(v);
1996
+ if (id === void 0) {
1997
+ id = this._idPool.pop();
1998
+ if (id === void 0) {
1999
+ id = this._values.length;
2000
+ }
2001
+ this._values[id] = v;
2002
+ this._goRefCounts[id] = 0;
2003
+ this._ids.set(v, id);
2004
+ }
2005
+ this._goRefCounts[id]++;
2006
+ let typeFlag = 0;
2007
+ switch (typeof v) {
2008
+ case "object":
2009
+ if (v !== null) {
2010
+ typeFlag = 1;
2011
+ }
2012
+ break;
2013
+ case "string":
2014
+ typeFlag = 2;
2015
+ break;
2016
+ case "symbol":
2017
+ typeFlag = 3;
2018
+ break;
2019
+ case "function":
2020
+ typeFlag = 4;
2021
+ break;
2022
+ }
2023
+ this.mem.setUint32(addr + 4, nanHead | typeFlag, true);
2024
+ this.mem.setUint32(addr, id, true);
2025
+ };
2026
+ const loadSlice = (addr) => {
2027
+ const array = getInt64(addr + 0);
2028
+ const len = getInt64(addr + 8);
2029
+ return new Uint8Array(this._inst.exports.mem.buffer, array, len);
2030
+ };
2031
+ const loadSliceOfValues = (addr) => {
2032
+ const array = getInt64(addr + 0);
2033
+ const len = getInt64(addr + 8);
2034
+ const a = new Array(len);
2035
+ for (let i = 0; i < len; i++) {
2036
+ a[i] = loadValue(array + i * 8);
2037
+ }
2038
+ return a;
2039
+ };
2040
+ const loadString = (addr) => {
2041
+ const saddr = getInt64(addr + 0);
2042
+ const len = getInt64(addr + 8);
2043
+ return decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len));
2044
+ };
2045
+ const timeOrigin = Date.now() - performance.now();
2046
+ this.importObject = {
2047
+ go: {
2048
+ "runtime.wasmExit": (sp) => {
2049
+ sp >>>= 0;
2050
+ const code = this.mem.getInt32(sp + 8, true);
2051
+ this.exited = true;
2052
+ delete this._inst;
2053
+ delete this._values;
2054
+ delete this._goRefCounts;
2055
+ delete this._ids;
2056
+ delete this._idPool;
2057
+ this.exit(code);
2058
+ },
2059
+ "runtime.wasmWrite": (sp) => {
2060
+ sp >>>= 0;
2061
+ const fd = getInt64(sp + 8);
2062
+ const p = getInt64(sp + 16);
2063
+ const n = this.mem.getInt32(sp + 24, true);
2064
+ globalThis.fs.writeSync(fd, new Uint8Array(this._inst.exports.mem.buffer, p, n));
2065
+ },
2066
+ "runtime.resetMemoryDataView": (sp) => {
2067
+ sp >>>= 0;
2068
+ this.mem = new DataView(this._inst.exports.mem.buffer);
2069
+ },
2070
+ "runtime.nanotime1": (sp) => {
2071
+ sp >>>= 0;
2072
+ setInt64(sp + 8, (timeOrigin + performance.now()) * 1e6);
2073
+ },
2074
+ "runtime.walltime": (sp) => {
2075
+ sp >>>= 0;
2076
+ const msec = new Date().getTime();
2077
+ setInt64(sp + 8, msec / 1e3);
2078
+ this.mem.setInt32(sp + 16, msec % 1e3 * 1e6, true);
2079
+ },
2080
+ "runtime.scheduleTimeoutEvent": (sp) => {
2081
+ sp >>>= 0;
2082
+ const id = this._nextCallbackTimeoutID;
2083
+ this._nextCallbackTimeoutID++;
2084
+ this._scheduledTimeouts.set(id, setTimeout(() => {
2085
+ this._resume();
2086
+ while (this._scheduledTimeouts.has(id)) {
2087
+ console.warn("scheduleTimeoutEvent: missed timeout event");
2088
+ this._resume();
2089
+ }
2090
+ }, getInt64(sp + 8) + 1));
2091
+ this.mem.setInt32(sp + 16, id, true);
2092
+ },
2093
+ "runtime.clearTimeoutEvent": (sp) => {
2094
+ sp >>>= 0;
2095
+ const id = this.mem.getInt32(sp + 8, true);
2096
+ clearTimeout(this._scheduledTimeouts.get(id));
2097
+ this._scheduledTimeouts.delete(id);
2098
+ },
2099
+ "runtime.getRandomData": (sp) => {
2100
+ sp >>>= 0;
2101
+ crypto.getRandomValues(loadSlice(sp + 8));
2102
+ },
2103
+ "syscall/js.finalizeRef": (sp) => {
2104
+ sp >>>= 0;
2105
+ const id = this.mem.getUint32(sp + 8, true);
2106
+ this._goRefCounts[id]--;
2107
+ if (this._goRefCounts[id] === 0) {
2108
+ const v = this._values[id];
2109
+ this._values[id] = null;
2110
+ this._ids.delete(v);
2111
+ this._idPool.push(id);
2112
+ }
2113
+ },
2114
+ "syscall/js.stringVal": (sp) => {
2115
+ sp >>>= 0;
2116
+ storeValue(sp + 24, loadString(sp + 8));
2117
+ },
2118
+ "syscall/js.valueGet": (sp) => {
2119
+ sp >>>= 0;
2120
+ const result = Reflect.get(loadValue(sp + 8), loadString(sp + 16));
2121
+ sp = this._inst.exports.getsp() >>> 0;
2122
+ storeValue(sp + 32, result);
2123
+ },
2124
+ "syscall/js.valueSet": (sp) => {
2125
+ sp >>>= 0;
2126
+ Reflect.set(loadValue(sp + 8), loadString(sp + 16), loadValue(sp + 32));
2127
+ },
2128
+ "syscall/js.valueDelete": (sp) => {
2129
+ sp >>>= 0;
2130
+ Reflect.deleteProperty(loadValue(sp + 8), loadString(sp + 16));
2131
+ },
2132
+ "syscall/js.valueIndex": (sp) => {
2133
+ sp >>>= 0;
2134
+ storeValue(sp + 24, Reflect.get(loadValue(sp + 8), getInt64(sp + 16)));
2135
+ },
2136
+ "syscall/js.valueSetIndex": (sp) => {
2137
+ sp >>>= 0;
2138
+ Reflect.set(loadValue(sp + 8), getInt64(sp + 16), loadValue(sp + 24));
2139
+ },
2140
+ "syscall/js.valueCall": (sp) => {
2141
+ sp >>>= 0;
2142
+ try {
2143
+ const v = loadValue(sp + 8);
2144
+ const m = Reflect.get(v, loadString(sp + 16));
2145
+ const args = loadSliceOfValues(sp + 32);
2146
+ const result = Reflect.apply(m, v, args);
2147
+ sp = this._inst.exports.getsp() >>> 0;
2148
+ storeValue(sp + 56, result);
2149
+ this.mem.setUint8(sp + 64, 1);
2150
+ } catch (err) {
2151
+ sp = this._inst.exports.getsp() >>> 0;
2152
+ storeValue(sp + 56, err);
2153
+ this.mem.setUint8(sp + 64, 0);
2154
+ }
2155
+ },
2156
+ "syscall/js.valueInvoke": (sp) => {
2157
+ sp >>>= 0;
2158
+ try {
2159
+ const v = loadValue(sp + 8);
2160
+ const args = loadSliceOfValues(sp + 16);
2161
+ const result = Reflect.apply(v, void 0, args);
2162
+ sp = this._inst.exports.getsp() >>> 0;
2163
+ storeValue(sp + 40, result);
2164
+ this.mem.setUint8(sp + 48, 1);
2165
+ } catch (err) {
2166
+ sp = this._inst.exports.getsp() >>> 0;
2167
+ storeValue(sp + 40, err);
2168
+ this.mem.setUint8(sp + 48, 0);
2169
+ }
2170
+ },
2171
+ "syscall/js.valueNew": (sp) => {
2172
+ sp >>>= 0;
2173
+ try {
2174
+ const v = loadValue(sp + 8);
2175
+ const args = loadSliceOfValues(sp + 16);
2176
+ const result = Reflect.construct(v, args);
2177
+ sp = this._inst.exports.getsp() >>> 0;
2178
+ storeValue(sp + 40, result);
2179
+ this.mem.setUint8(sp + 48, 1);
2180
+ } catch (err) {
2181
+ sp = this._inst.exports.getsp() >>> 0;
2182
+ storeValue(sp + 40, err);
2183
+ this.mem.setUint8(sp + 48, 0);
2184
+ }
2185
+ },
2186
+ "syscall/js.valueLength": (sp) => {
2187
+ sp >>>= 0;
2188
+ setInt64(sp + 16, parseInt(loadValue(sp + 8).length));
2189
+ },
2190
+ "syscall/js.valuePrepareString": (sp) => {
2191
+ sp >>>= 0;
2192
+ const str = encoder.encode(String(loadValue(sp + 8)));
2193
+ storeValue(sp + 16, str);
2194
+ setInt64(sp + 24, str.length);
2195
+ },
2196
+ "syscall/js.valueLoadString": (sp) => {
2197
+ sp >>>= 0;
2198
+ const str = loadValue(sp + 8);
2199
+ loadSlice(sp + 16).set(str);
2200
+ },
2201
+ "syscall/js.valueInstanceOf": (sp) => {
2202
+ sp >>>= 0;
2203
+ this.mem.setUint8(sp + 24, loadValue(sp + 8) instanceof loadValue(sp + 16) ? 1 : 0);
2204
+ },
2205
+ "syscall/js.copyBytesToGo": (sp) => {
2206
+ sp >>>= 0;
2207
+ const dst = loadSlice(sp + 8);
2208
+ const src = loadValue(sp + 32);
2209
+ if (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) {
2210
+ this.mem.setUint8(sp + 48, 0);
2211
+ return;
2212
+ }
2213
+ const toCopy = src.subarray(0, dst.length);
2214
+ dst.set(toCopy);
2215
+ setInt64(sp + 40, toCopy.length);
2216
+ this.mem.setUint8(sp + 48, 1);
2217
+ },
2218
+ "syscall/js.copyBytesToJS": (sp) => {
2219
+ sp >>>= 0;
2220
+ const dst = loadValue(sp + 8);
2221
+ const src = loadSlice(sp + 16);
2222
+ if (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) {
2223
+ this.mem.setUint8(sp + 48, 0);
2224
+ return;
2225
+ }
2226
+ const toCopy = src.subarray(0, dst.length);
2227
+ dst.set(toCopy);
2228
+ setInt64(sp + 40, toCopy.length);
2229
+ this.mem.setUint8(sp + 48, 1);
2230
+ },
2231
+ "debug": (value) => {
2232
+ console.log(value);
2233
+ }
2234
+ }
2235
+ };
2236
+ }
2237
+ run(instance) {
2238
+ return __async(this, null, function* () {
2239
+ if (!(instance instanceof WebAssembly.Instance)) {
2240
+ throw new Error("Go.run: WebAssembly.Instance expected");
2241
+ }
2242
+ this._inst = instance;
2243
+ this.mem = new DataView(this._inst.exports.mem.buffer);
2244
+ this._values = [
2245
+ NaN,
2246
+ 0,
2247
+ null,
2248
+ true,
2249
+ false,
2250
+ globalThis,
2251
+ this
2252
+ ];
2253
+ this._goRefCounts = new Array(this._values.length).fill(Infinity);
2254
+ this._ids = /* @__PURE__ */ new Map([
2255
+ [0, 1],
2256
+ [null, 2],
2257
+ [true, 3],
2258
+ [false, 4],
2259
+ [globalThis, 5],
2260
+ [this, 6]
2261
+ ]);
2262
+ this._idPool = [];
2263
+ this.exited = false;
2264
+ let offset = 4096;
2265
+ const strPtr = (str) => {
2266
+ const ptr = offset;
2267
+ const bytes = encoder.encode(str + "\0");
2268
+ new Uint8Array(this.mem.buffer, offset, bytes.length).set(bytes);
2269
+ offset += bytes.length;
2270
+ if (offset % 8 !== 0) {
2271
+ offset += 8 - offset % 8;
2272
+ }
2273
+ return ptr;
2274
+ };
2275
+ const argc = this.argv.length;
2276
+ const argvPtrs = [];
2277
+ this.argv.forEach((arg) => {
2278
+ argvPtrs.push(strPtr(arg));
2279
+ });
2280
+ argvPtrs.push(0);
2281
+ const keys = Object.keys(this.env).sort();
2282
+ keys.forEach((key) => {
2283
+ argvPtrs.push(strPtr(`${key}=${this.env[key]}`));
2284
+ });
2285
+ argvPtrs.push(0);
2286
+ const argv = offset;
2287
+ argvPtrs.forEach((ptr) => {
2288
+ this.mem.setUint32(offset, ptr, true);
2289
+ this.mem.setUint32(offset + 4, 0, true);
2290
+ offset += 8;
2291
+ });
2292
+ const wasmMinDataAddr = 4096 + 8192;
2293
+ if (offset >= wasmMinDataAddr) {
2294
+ throw new Error("total length of command line and environment variables exceeds limit");
2295
+ }
2296
+ this._inst.exports.run(argc, argv);
2297
+ if (this.exited) {
2298
+ this._resolveExitPromise();
2299
+ }
2300
+ yield this._exitPromise;
2301
+ });
2302
+ }
2303
+ _resume() {
2304
+ if (this.exited) {
2305
+ throw new Error("Go program has already exited");
2306
+ }
2307
+ this._inst.exports.resume();
2308
+ if (this.exited) {
2309
+ this._resolveExitPromise();
1809
2310
  }
2311
+ }
2312
+ _makeFuncWrapper(id) {
2313
+ const go = this;
2314
+ return function() {
2315
+ const event = { id, this: this, args: arguments };
2316
+ go._pendingEvent = event;
2317
+ go._resume();
2318
+ return event.result;
2319
+ };
2320
+ }
2321
+ };
2322
+ })();
2323
+ onmessage = ({ data: wasm }) => {
2324
+ let decoder = new TextDecoder();
2325
+ let fs = globalThis.fs;
2326
+ let stderr = "";
2327
+ fs.writeSync = (fd, buffer) => {
2328
+ if (fd === 1) {
2329
+ postMessage(buffer);
2330
+ } else if (fd === 2) {
2331
+ stderr += decoder.decode(buffer);
2332
+ let parts = stderr.split("\n");
2333
+ if (parts.length > 1)
2334
+ console.log(parts.slice(0, -1).join("\n"));
2335
+ stderr = parts[parts.length - 1];
2336
+ } else {
2337
+ throw new Error("Bad write");
2338
+ }
2339
+ return buffer.length;
2340
+ };
2341
+ let stdin = [];
2342
+ let resumeStdin;
2343
+ let stdinPos = 0;
2344
+ onmessage = ({ data }) => {
2345
+ if (data.length > 0) {
2346
+ stdin.push(data);
2347
+ if (resumeStdin)
2348
+ resumeStdin();
2349
+ }
2350
+ };
2351
+ fs.read = (fd, buffer, offset, length, position, callback) => {
2352
+ if (fd !== 0 || offset !== 0 || length !== buffer.length || position !== null) {
2353
+ throw new Error("Bad read");
2354
+ }
2355
+ if (stdin.length === 0) {
2356
+ resumeStdin = () => fs.read(fd, buffer, offset, length, position, callback);
1810
2357
  return;
1811
2358
  }
2359
+ let first = stdin[0];
2360
+ let count = Math.max(0, Math.min(length, first.length - stdinPos));
2361
+ buffer.set(first.subarray(stdinPos, stdinPos + count), offset);
2362
+ stdinPos += count;
2363
+ if (stdinPos === first.length) {
2364
+ stdin.shift();
2365
+ stdinPos = 0;
2366
+ }
2367
+ callback(null, count);
2368
+ };
2369
+ let go = new globalThis.Go();
2370
+ go.argv = ["", `--service=${"0.14.36"}`];
2371
+ if (wasm instanceof WebAssembly.Module) {
2372
+ WebAssembly.instantiate(wasm, go.importObject).then((instance) => go.run(instance));
2373
+ } else {
2374
+ WebAssembly.instantiate(wasm, go.importObject).then(({ instance }) => go.run(instance));
1812
2375
  }
1813
- fs.write(fd, buf, offset, length, position, callback);
1814
- },
1815
- });
1816
-
1817
- }
1818
- }
1819
-
1820
- const enosys = () => {
1821
- const err = new Error("not implemented");
1822
- err.code = "ENOSYS";
1823
- return err;
1824
- };
1825
-
1826
- if (!global.fs) {
1827
- let outputBuf = "";
1828
- global.fs = {
1829
- constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, // unused
1830
- writeSync(fd, buf) {
1831
- outputBuf += decoder.decode(buf);
1832
- const nl = outputBuf.lastIndexOf("\\n");
1833
- if (nl != -1) {
1834
- console.log(outputBuf.substr(0, nl));
1835
- outputBuf = outputBuf.substr(nl + 1);
1836
- }
1837
- return buf.length;
1838
- },
1839
- write(fd, buf, offset, length, position, callback) {
1840
- if (offset !== 0 || length !== buf.length || position !== null) {
1841
- callback(enosys());
1842
- return;
1843
- }
1844
- const n = this.writeSync(fd, buf);
1845
- callback(null, n);
1846
- },
1847
- chmod(path, mode, callback) { callback(enosys()); },
1848
- chown(path, uid, gid, callback) { callback(enosys()); },
1849
- close(fd, callback) { callback(enosys()); },
1850
- fchmod(fd, mode, callback) { callback(enosys()); },
1851
- fchown(fd, uid, gid, callback) { callback(enosys()); },
1852
- fstat(fd, callback) { callback(enosys()); },
1853
- fsync(fd, callback) { callback(null); },
1854
- ftruncate(fd, length, callback) { callback(enosys()); },
1855
- lchown(path, uid, gid, callback) { callback(enosys()); },
1856
- link(path, link, callback) { callback(enosys()); },
1857
- lstat(path, callback) { callback(enosys()); },
1858
- mkdir(path, perm, callback) { callback(enosys()); },
1859
- open(path, flags, mode, callback) { callback(enosys()); },
1860
- read(fd, buffer, offset, length, position, callback) { callback(enosys()); },
1861
- readdir(path, callback) { callback(enosys()); },
1862
- readlink(path, callback) { callback(enosys()); },
1863
- rename(from, to, callback) { callback(enosys()); },
1864
- rmdir(path, callback) { callback(enosys()); },
1865
- stat(path, callback) { callback(enosys()); },
1866
- symlink(path, link, callback) { callback(enosys()); },
1867
- truncate(path, length, callback) { callback(enosys()); },
1868
- unlink(path, callback) { callback(enosys()); },
1869
- utimes(path, atime, mtime, callback) { callback(enosys()); },
1870
- };
1871
- }
1872
-
1873
- if (!global.process) {
1874
- global.process = {
1875
- getuid() { return -1; },
1876
- getgid() { return -1; },
1877
- geteuid() { return -1; },
1878
- getegid() { return -1; },
1879
- getgroups() { throw enosys(); },
1880
- pid: -1,
1881
- ppid: -1,
1882
- umask() { throw enosys(); },
1883
- cwd() { throw enosys(); },
1884
- chdir() { throw enosys(); },
1885
- }
1886
- }
1887
-
1888
- if (!global.crypto && global.require) {
1889
- const nodeCrypto = require("crypto");
1890
- global.crypto = {
1891
- getRandomValues(b) {
1892
- nodeCrypto.randomFillSync(b);
1893
- },
1894
- };
1895
- }
1896
- if (!global.crypto) {
1897
- throw new Error("global.crypto is not available, polyfill required (getRandomValues only)");
1898
- }
1899
-
1900
- if (!global.performance) {
1901
- global.performance = {
1902
- now() {
1903
- const [sec, nsec] = process.hrtime();
1904
- return sec * 1000 + nsec / 1000000;
1905
- },
1906
- };
1907
- }
1908
-
1909
- if (!global.TextEncoder && global.require) {
1910
- global.TextEncoder = require("util").TextEncoder;
1911
- }
1912
- if (!global.TextEncoder) {
1913
- throw new Error("global.TextEncoder is not available, polyfill required");
1914
- }
1915
-
1916
- if (!global.TextDecoder && global.require) {
1917
- global.TextDecoder = require("util").TextDecoder;
1918
- }
1919
- if (!global.TextDecoder) {
1920
- throw new Error("global.TextDecoder is not available, polyfill required");
1921
- }
1922
-
1923
-
1924
- // Make sure Go sees the shadowed "fs" global
1925
- const { fs } = global;
1926
-
1927
-
1928
- const encoder = new TextEncoder("utf-8");
1929
- const decoder = new TextDecoder("utf-8");
1930
-
1931
- global.Go = class {
1932
- constructor() {
1933
- this.argv = ["js"];
1934
- this.env = {};
1935
- this.exit = (code) => {
1936
- if (code !== 0) {
1937
- console.warn("exit code:", code);
1938
- }
1939
- };
1940
- this._exitPromise = new Promise((resolve) => {
1941
- this._resolveExitPromise = resolve;
1942
- });
1943
- this._pendingEvent = null;
1944
- this._scheduledTimeouts = new Map();
1945
- this._nextCallbackTimeoutID = 1;
1946
-
1947
- const setInt64 = (addr, v) => {
1948
- this.mem.setUint32(addr + 0, v, true);
1949
- this.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true);
1950
- }
1951
-
1952
- const getInt64 = (addr) => {
1953
- const low = this.mem.getUint32(addr + 0, true);
1954
- const high = this.mem.getInt32(addr + 4, true);
1955
- return low + high * 4294967296;
1956
- }
1957
-
1958
- const loadValue = (addr) => {
1959
- const f = this.mem.getFloat64(addr, true);
1960
- if (f === 0) {
1961
- return undefined;
1962
- }
1963
- if (!isNaN(f)) {
1964
- return f;
1965
- }
1966
-
1967
- const id = this.mem.getUint32(addr, true);
1968
- return this._values[id];
1969
- }
1970
-
1971
- const storeValue = (addr, v) => {
1972
- const nanHead = 0x7FF80000;
1973
-
1974
- if (typeof v === "number" && v !== 0) {
1975
- if (isNaN(v)) {
1976
- this.mem.setUint32(addr + 4, nanHead, true);
1977
- this.mem.setUint32(addr, 0, true);
1978
- return;
1979
- }
1980
- this.mem.setFloat64(addr, v, true);
1981
- return;
1982
- }
1983
-
1984
- if (v === undefined) {
1985
- this.mem.setFloat64(addr, 0, true);
1986
- return;
1987
- }
1988
-
1989
- let id = this._ids.get(v);
1990
- if (id === undefined) {
1991
- id = this._idPool.pop();
1992
- if (id === undefined) {
1993
- id = this._values.length;
1994
- }
1995
- this._values[id] = v;
1996
- this._goRefCounts[id] = 0;
1997
- this._ids.set(v, id);
1998
- }
1999
- this._goRefCounts[id]++;
2000
- let typeFlag = 0;
2001
- switch (typeof v) {
2002
- case "object":
2003
- if (v !== null) {
2004
- typeFlag = 1;
2005
- }
2006
- break;
2007
- case "string":
2008
- typeFlag = 2;
2009
- break;
2010
- case "symbol":
2011
- typeFlag = 3;
2012
- break;
2013
- case "function":
2014
- typeFlag = 4;
2015
- break;
2016
- }
2017
- this.mem.setUint32(addr + 4, nanHead | typeFlag, true);
2018
- this.mem.setUint32(addr, id, true);
2019
- }
2020
-
2021
- const loadSlice = (addr) => {
2022
- const array = getInt64(addr + 0);
2023
- const len = getInt64(addr + 8);
2024
- return new Uint8Array(this._inst.exports.mem.buffer, array, len);
2025
- }
2026
-
2027
- const loadSliceOfValues = (addr) => {
2028
- const array = getInt64(addr + 0);
2029
- const len = getInt64(addr + 8);
2030
- const a = new Array(len);
2031
- for (let i = 0; i < len; i++) {
2032
- a[i] = loadValue(array + i * 8);
2033
- }
2034
- return a;
2035
- }
2036
-
2037
- const loadString = (addr) => {
2038
- const saddr = getInt64(addr + 0);
2039
- const len = getInt64(addr + 8);
2040
- return decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len));
2041
- }
2042
-
2043
- const timeOrigin = Date.now() - performance.now();
2044
- this.importObject = {
2045
- go: {
2046
- // Go's SP does not change as long as no Go code is running. Some operations (e.g. calls, getters and setters)
2047
- // may synchronously trigger a Go event handler. This makes Go code get executed in the middle of the imported
2048
- // function. A goroutine can switch to a new stack if the current stack is too small (see morestack function).
2049
- // This changes the SP, thus we have to update the SP used by the imported function.
2050
-
2051
- // func wasmExit(code int32)
2052
- "runtime.wasmExit": (sp) => {
2053
- sp >>>= 0;
2054
- const code = this.mem.getInt32(sp + 8, true);
2055
- this.exited = true;
2056
- delete this._inst;
2057
- delete this._values;
2058
- delete this._goRefCounts;
2059
- delete this._ids;
2060
- delete this._idPool;
2061
- this.exit(code);
2062
- },
2063
-
2064
- // func wasmWrite(fd uintptr, p unsafe.Pointer, n int32)
2065
- "runtime.wasmWrite": (sp) => {
2066
- sp >>>= 0;
2067
- const fd = getInt64(sp + 8);
2068
- const p = getInt64(sp + 16);
2069
- const n = this.mem.getInt32(sp + 24, true);
2070
- fs.writeSync(fd, new Uint8Array(this._inst.exports.mem.buffer, p, n));
2071
- },
2072
-
2073
- // func resetMemoryDataView()
2074
- "runtime.resetMemoryDataView": (sp) => {
2075
- sp >>>= 0;
2076
- this.mem = new DataView(this._inst.exports.mem.buffer);
2077
- },
2078
-
2079
- // func nanotime1() int64
2080
- "runtime.nanotime1": (sp) => {
2081
- sp >>>= 0;
2082
- setInt64(sp + 8, (timeOrigin + performance.now()) * 1000000);
2083
- },
2084
-
2085
- // func walltime() (sec int64, nsec int32)
2086
- "runtime.walltime": (sp) => {
2087
- sp >>>= 0;
2088
- const msec = (new Date).getTime();
2089
- setInt64(sp + 8, msec / 1000);
2090
- this.mem.setInt32(sp + 16, (msec % 1000) * 1000000, true);
2091
- },
2092
-
2093
- // func scheduleTimeoutEvent(delay int64) int32
2094
- "runtime.scheduleTimeoutEvent": (sp) => {
2095
- sp >>>= 0;
2096
- const id = this._nextCallbackTimeoutID;
2097
- this._nextCallbackTimeoutID++;
2098
- this._scheduledTimeouts.set(id, setTimeout(
2099
- () => {
2100
- this._resume();
2101
- while (this._scheduledTimeouts.has(id)) {
2102
- // for some reason Go failed to register the timeout event, log and try again
2103
- // (temporary workaround for https://github.com/golang/go/issues/28975)
2104
- console.warn("scheduleTimeoutEvent: missed timeout event");
2105
- this._resume();
2106
- }
2107
- },
2108
- getInt64(sp + 8) + 1, // setTimeout has been seen to fire up to 1 millisecond early
2109
- ));
2110
- this.mem.setInt32(sp + 16, id, true);
2111
- },
2112
-
2113
- // func clearTimeoutEvent(id int32)
2114
- "runtime.clearTimeoutEvent": (sp) => {
2115
- sp >>>= 0;
2116
- const id = this.mem.getInt32(sp + 8, true);
2117
- clearTimeout(this._scheduledTimeouts.get(id));
2118
- this._scheduledTimeouts.delete(id);
2119
- },
2120
-
2121
- // func getRandomData(r []byte)
2122
- "runtime.getRandomData": (sp) => {
2123
- sp >>>= 0;
2124
- crypto.getRandomValues(loadSlice(sp + 8));
2125
- },
2126
-
2127
- // func finalizeRef(v ref)
2128
- "syscall/js.finalizeRef": (sp) => {
2129
- sp >>>= 0;
2130
- const id = this.mem.getUint32(sp + 8, true);
2131
- this._goRefCounts[id]--;
2132
- if (this._goRefCounts[id] === 0) {
2133
- const v = this._values[id];
2134
- this._values[id] = null;
2135
- this._ids.delete(v);
2136
- this._idPool.push(id);
2137
- }
2138
- },
2139
-
2140
- // func stringVal(value string) ref
2141
- "syscall/js.stringVal": (sp) => {
2142
- sp >>>= 0;
2143
- storeValue(sp + 24, loadString(sp + 8));
2144
- },
2145
-
2146
- // func valueGet(v ref, p string) ref
2147
- "syscall/js.valueGet": (sp) => {
2148
- sp >>>= 0;
2149
- const result = Reflect.get(loadValue(sp + 8), loadString(sp + 16));
2150
- sp = this._inst.exports.getsp() >>> 0; // see comment above
2151
- storeValue(sp + 32, result);
2152
- },
2153
-
2154
- // func valueSet(v ref, p string, x ref)
2155
- "syscall/js.valueSet": (sp) => {
2156
- sp >>>= 0;
2157
- Reflect.set(loadValue(sp + 8), loadString(sp + 16), loadValue(sp + 32));
2158
- },
2159
-
2160
- // func valueDelete(v ref, p string)
2161
- "syscall/js.valueDelete": (sp) => {
2162
- sp >>>= 0;
2163
- Reflect.deleteProperty(loadValue(sp + 8), loadString(sp + 16));
2164
- },
2165
-
2166
- // func valueIndex(v ref, i int) ref
2167
- "syscall/js.valueIndex": (sp) => {
2168
- sp >>>= 0;
2169
- storeValue(sp + 24, Reflect.get(loadValue(sp + 8), getInt64(sp + 16)));
2170
- },
2171
-
2172
- // valueSetIndex(v ref, i int, x ref)
2173
- "syscall/js.valueSetIndex": (sp) => {
2174
- sp >>>= 0;
2175
- Reflect.set(loadValue(sp + 8), getInt64(sp + 16), loadValue(sp + 24));
2176
- },
2177
-
2178
- // func valueCall(v ref, m string, args []ref) (ref, bool)
2179
- "syscall/js.valueCall": (sp) => {
2180
- sp >>>= 0;
2181
- try {
2182
- const v = loadValue(sp + 8);
2183
- const m = Reflect.get(v, loadString(sp + 16));
2184
- const args = loadSliceOfValues(sp + 32);
2185
- const result = Reflect.apply(m, v, args);
2186
- sp = this._inst.exports.getsp() >>> 0; // see comment above
2187
- storeValue(sp + 56, result);
2188
- this.mem.setUint8(sp + 64, 1);
2189
- } catch (err) {
2190
- sp = this._inst.exports.getsp() >>> 0; // see comment above
2191
- storeValue(sp + 56, err);
2192
- this.mem.setUint8(sp + 64, 0);
2193
- }
2194
- },
2195
-
2196
- // func valueInvoke(v ref, args []ref) (ref, bool)
2197
- "syscall/js.valueInvoke": (sp) => {
2198
- sp >>>= 0;
2199
- try {
2200
- const v = loadValue(sp + 8);
2201
- const args = loadSliceOfValues(sp + 16);
2202
- const result = Reflect.apply(v, undefined, args);
2203
- sp = this._inst.exports.getsp() >>> 0; // see comment above
2204
- storeValue(sp + 40, result);
2205
- this.mem.setUint8(sp + 48, 1);
2206
- } catch (err) {
2207
- sp = this._inst.exports.getsp() >>> 0; // see comment above
2208
- storeValue(sp + 40, err);
2209
- this.mem.setUint8(sp + 48, 0);
2210
- }
2211
- },
2212
-
2213
- // func valueNew(v ref, args []ref) (ref, bool)
2214
- "syscall/js.valueNew": (sp) => {
2215
- sp >>>= 0;
2216
- try {
2217
- const v = loadValue(sp + 8);
2218
- const args = loadSliceOfValues(sp + 16);
2219
- const result = Reflect.construct(v, args);
2220
- sp = this._inst.exports.getsp() >>> 0; // see comment above
2221
- storeValue(sp + 40, result);
2222
- this.mem.setUint8(sp + 48, 1);
2223
- } catch (err) {
2224
- sp = this._inst.exports.getsp() >>> 0; // see comment above
2225
- storeValue(sp + 40, err);
2226
- this.mem.setUint8(sp + 48, 0);
2227
- }
2228
- },
2229
-
2230
- // func valueLength(v ref) int
2231
- "syscall/js.valueLength": (sp) => {
2232
- sp >>>= 0;
2233
- setInt64(sp + 16, parseInt(loadValue(sp + 8).length));
2234
- },
2235
-
2236
- // valuePrepareString(v ref) (ref, int)
2237
- "syscall/js.valuePrepareString": (sp) => {
2238
- sp >>>= 0;
2239
- const str = encoder.encode(String(loadValue(sp + 8)));
2240
- storeValue(sp + 16, str);
2241
- setInt64(sp + 24, str.length);
2242
- },
2243
-
2244
- // valueLoadString(v ref, b []byte)
2245
- "syscall/js.valueLoadString": (sp) => {
2246
- sp >>>= 0;
2247
- const str = loadValue(sp + 8);
2248
- loadSlice(sp + 16).set(str);
2249
- },
2250
-
2251
- // func valueInstanceOf(v ref, t ref) bool
2252
- "syscall/js.valueInstanceOf": (sp) => {
2253
- sp >>>= 0;
2254
- this.mem.setUint8(sp + 24, (loadValue(sp + 8) instanceof loadValue(sp + 16)) ? 1 : 0);
2255
- },
2256
-
2257
- // func copyBytesToGo(dst []byte, src ref) (int, bool)
2258
- "syscall/js.copyBytesToGo": (sp) => {
2259
- sp >>>= 0;
2260
- const dst = loadSlice(sp + 8);
2261
- const src = loadValue(sp + 32);
2262
- if (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) {
2263
- this.mem.setUint8(sp + 48, 0);
2264
- return;
2265
- }
2266
- const toCopy = src.subarray(0, dst.length);
2267
- dst.set(toCopy);
2268
- setInt64(sp + 40, toCopy.length);
2269
- this.mem.setUint8(sp + 48, 1);
2270
- },
2271
-
2272
- // func copyBytesToJS(dst ref, src []byte) (int, bool)
2273
- "syscall/js.copyBytesToJS": (sp) => {
2274
- sp >>>= 0;
2275
- const dst = loadValue(sp + 8);
2276
- const src = loadSlice(sp + 16);
2277
- if (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) {
2278
- this.mem.setUint8(sp + 48, 0);
2279
- return;
2280
- }
2281
- const toCopy = src.subarray(0, dst.length);
2282
- dst.set(toCopy);
2283
- setInt64(sp + 40, toCopy.length);
2284
- this.mem.setUint8(sp + 48, 1);
2285
- },
2286
-
2287
- "debug": (value) => {
2288
- console.log(value);
2289
- },
2290
- }
2291
- };
2292
- }
2293
-
2294
- async run(instance) {
2295
- if (!(instance instanceof WebAssembly.Instance)) {
2296
- throw new Error("Go.run: WebAssembly.Instance expected");
2297
- }
2298
- this._inst = instance;
2299
- this.mem = new DataView(this._inst.exports.mem.buffer);
2300
- this._values = [ // JS values that Go currently has references to, indexed by reference id
2301
- NaN,
2302
- 0,
2303
- null,
2304
- true,
2305
- false,
2306
- global,
2307
- this,
2308
- ];
2309
- this._goRefCounts = new Array(this._values.length).fill(Infinity); // number of references that Go has to a JS value, indexed by reference id
2310
- this._ids = new Map([ // mapping from JS values to reference ids
2311
- [0, 1],
2312
- [null, 2],
2313
- [true, 3],
2314
- [false, 4],
2315
- [global, 5],
2316
- [this, 6],
2317
- ]);
2318
- this._idPool = []; // unused ids that have been garbage collected
2319
- this.exited = false; // whether the Go program has exited
2320
-
2321
- // Pass command line arguments and environment variables to WebAssembly by writing them to the linear memory.
2322
- let offset = 4096;
2323
-
2324
- const strPtr = (str) => {
2325
- const ptr = offset;
2326
- const bytes = encoder.encode(str + "\\0");
2327
- new Uint8Array(this.mem.buffer, offset, bytes.length).set(bytes);
2328
- offset += bytes.length;
2329
- if (offset % 8 !== 0) {
2330
- offset += 8 - (offset % 8);
2331
- }
2332
- return ptr;
2333
- };
2334
-
2335
- const argc = this.argv.length;
2336
-
2337
- const argvPtrs = [];
2338
- this.argv.forEach((arg) => {
2339
- argvPtrs.push(strPtr(arg));
2340
- });
2341
- argvPtrs.push(0);
2342
-
2343
- const keys = Object.keys(this.env).sort();
2344
- keys.forEach((key) => {
2345
- argvPtrs.push(strPtr(\`\${key}=\${this.env[key]}\`));
2346
- });
2347
- argvPtrs.push(0);
2348
-
2349
- const argv = offset;
2350
- argvPtrs.forEach((ptr) => {
2351
- this.mem.setUint32(offset, ptr, true);
2352
- this.mem.setUint32(offset + 4, 0, true);
2353
- offset += 8;
2354
- });
2355
-
2356
- // The linker guarantees global data starts from at least wasmMinDataAddr.
2357
- // Keep in sync with cmd/link/internal/ld/data.go:wasmMinDataAddr.
2358
- const wasmMinDataAddr = 4096 + 8192;
2359
- if (offset >= wasmMinDataAddr) {
2360
- throw new Error("total length of command line and environment variables exceeds limit");
2361
- }
2362
-
2363
- this._inst.exports.run(argc, argv);
2364
- if (this.exited) {
2365
- this._resolveExitPromise();
2366
- }
2367
- await this._exitPromise;
2368
- }
2369
-
2370
- _resume() {
2371
- if (this.exited) {
2372
- throw new Error("Go program has already exited");
2373
- }
2374
- this._inst.exports.resume();
2375
- if (this.exited) {
2376
- this._resolveExitPromise();
2377
- }
2378
- }
2379
-
2380
- _makeFuncWrapper(id) {
2381
- const go = this;
2382
- return function () {
2383
- const event = { id: id, this: this, args: arguments };
2384
- go._pendingEvent = event;
2385
- go._resume();
2386
- return event.result;
2387
- };
2388
- }
2389
- }
2390
-
2391
- if (
2392
- typeof module !== "undefined" &&
2393
- global.require &&
2394
- global.require.main === module &&
2395
- global.process &&
2396
- global.process.versions &&
2397
- !global.process.versions.electron
2398
- ) {
2399
- if (process.argv.length < 3) {
2400
- console.error("usage: go_js_wasm_exec [wasm binary] [arguments]");
2401
- process.exit(1);
2402
- }
2403
-
2404
- const go = new Go();
2405
- go.argv = process.argv.slice(2);
2406
- go.env = Object.assign({ TMPDIR: require("os").tmpdir() }, process.env);
2407
- go.exit = process.exit;
2408
- WebAssembly.instantiate(fs.readFileSync(process.argv[2]), go.importObject).then((result) => {
2409
- process.on("exit", (code) => { // Node.js exits if no event handler is pending
2410
- if (code === 0 && !go.exited) {
2411
- // deadlock, make Go print error and stack traces
2412
- go._pendingEvent = { id: 0 };
2413
- go._resume();
2414
- }
2415
- });
2416
- return go.run(result.instance);
2417
- }).catch((err) => {
2418
- console.error(err);
2419
- process.exit(1);
2420
- });
2421
- }
2422
- })();
2423
- onmessage = ({ data: wasm }) => {
2424
- let decoder = new TextDecoder();
2425
- let fs = global.fs;
2426
- let stderr = "";
2427
- fs.writeSync = (fd, buffer) => {
2428
- if (fd === 1) {
2429
- postMessage(buffer);
2430
- } else if (fd === 2) {
2431
- stderr += decoder.decode(buffer);
2432
- let parts = stderr.split("\\n");
2433
- if (parts.length > 1)
2434
- console.log(parts.slice(0, -1).join("\\n"));
2435
- stderr = parts[parts.length - 1];
2436
- } else {
2437
- throw new Error("Bad write");
2438
- }
2439
- return buffer.length;
2440
- };
2441
- let stdin = [];
2442
- let resumeStdin;
2443
- let stdinPos = 0;
2444
- onmessage = ({ data }) => {
2445
- if (data.length > 0) {
2446
- stdin.push(data);
2447
- if (resumeStdin)
2448
- resumeStdin();
2449
- }
2450
- };
2451
- fs.read = (fd, buffer, offset, length, position, callback) => {
2452
- if (fd !== 0 || offset !== 0 || length !== buffer.length || position !== null) {
2453
- throw new Error("Bad read");
2454
- }
2455
- if (stdin.length === 0) {
2456
- resumeStdin = () => fs.read(fd, buffer, offset, length, position, callback);
2457
- return;
2458
- }
2459
- let first = stdin[0];
2460
- let count = Math.max(0, Math.min(length, first.length - stdinPos));
2461
- buffer.set(first.subarray(stdinPos, stdinPos + count), offset);
2462
- stdinPos += count;
2463
- if (stdinPos === first.length) {
2464
- stdin.shift();
2465
- stdinPos = 0;
2466
- }
2467
- callback(null, count);
2468
- };
2469
- let go = new global.Go();
2470
- go.argv = ["", \`--service=\${"0.14.23"}\`];
2471
- WebAssembly.instantiate(wasm, go.importObject).then(({ instance }) => go.run(instance));
2472
- };}`;
2473
- let worker;
2474
- if (useWorker) {
2475
- let blob = new Blob([code], { type: "text/javascript" });
2476
- worker = new Worker(URL.createObjectURL(blob));
2477
- } else {
2478
- let fn = new Function("postMessage", code + `var onmessage; return m => onmessage(m)`);
2479
- let onmessage = fn((data) => worker.onmessage({ data }));
2376
+ };
2377
+ return (m) => onmessage(m);
2378
+ })((data) => worker.onmessage({ data }));
2480
2379
  worker = {
2481
2380
  onmessage: null,
2482
- postMessage: (data) => onmessage({ data }),
2381
+ postMessage: (data) => setTimeout(() => onmessage({ data })),
2483
2382
  terminate() {
2484
2383
  }
2485
2384
  };
@@ -2502,7 +2401,7 @@ onmessage = ({ data: wasm }) => {
2502
2401
  options,
2503
2402
  isTTY: false,
2504
2403
  defaultWD: "/",
2505
- callback: (err, res2) => err ? reject(err) : resolve(res2)
2404
+ callback: (err, res) => err ? reject(err) : resolve(res)
2506
2405
  })),
2507
2406
  transform: (input, options) => new Promise((resolve, reject) => service.transform({
2508
2407
  callName: "transform",
@@ -2518,24 +2417,23 @@ onmessage = ({ data: wasm }) => {
2518
2417
  callback(null);
2519
2418
  }
2520
2419
  },
2521
- callback: (err, res2) => err ? reject(err) : resolve(res2)
2420
+ callback: (err, res) => err ? reject(err) : resolve(res)
2522
2421
  })),
2523
2422
  formatMessages: (messages, options) => new Promise((resolve, reject) => service.formatMessages({
2524
2423
  callName: "formatMessages",
2525
2424
  refs: null,
2526
2425
  messages,
2527
2426
  options,
2528
- callback: (err, res2) => err ? reject(err) : resolve(res2)
2427
+ callback: (err, res) => err ? reject(err) : resolve(res)
2529
2428
  })),
2530
2429
  analyzeMetafile: (metafile, options) => new Promise((resolve, reject) => service.analyzeMetafile({
2531
2430
  callName: "analyzeMetafile",
2532
2431
  refs: null,
2533
2432
  metafile: typeof metafile === "string" ? metafile : JSON.stringify(metafile),
2534
2433
  options,
2535
- callback: (err, res2) => err ? reject(err) : resolve(res2)
2434
+ callback: (err, res) => err ? reject(err) : resolve(res)
2536
2435
  }))
2537
2436
  };
2538
2437
  });
2539
2438
  var browser_default = browser_exports;
2540
- module.exports = __toCommonJS(browser_exports);
2541
2439
  })(typeof module==="object"?module:{set exports(x){(typeof self!=="undefined"?self:this).esbuild=x}});