tcpip 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/cjs/go/wasm_exec.js +619 -0
  2. package/dist/cjs/go/wasm_exec.js.map +1 -0
  3. package/dist/cjs/index.js +97 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/interfaces/loopback-interface.js +12 -0
  6. package/dist/cjs/interfaces/loopback-interface.js.map +1 -0
  7. package/dist/cjs/interfaces/tap-interface.js +31 -0
  8. package/dist/cjs/interfaces/tap-interface.js.map +1 -0
  9. package/dist/cjs/interfaces/tun-interface.js +31 -0
  10. package/dist/cjs/interfaces/tun-interface.js.map +1 -0
  11. package/dist/cjs/platforms/browser.js +76 -0
  12. package/dist/cjs/platforms/browser.js.map +1 -0
  13. package/dist/cjs/platforms/node-polyfills.js +16 -0
  14. package/dist/cjs/platforms/node-polyfills.js.map +1 -0
  15. package/dist/cjs/platforms/node.js +80 -0
  16. package/dist/cjs/platforms/node.js.map +1 -0
  17. package/dist/cjs/server.js +32 -0
  18. package/dist/cjs/server.js.map +1 -0
  19. package/dist/cjs/socket.js +32 -0
  20. package/dist/cjs/socket.js.map +1 -0
  21. package/dist/cjs/stack.js +111 -0
  22. package/dist/cjs/stack.js.map +1 -0
  23. package/dist/esm/go/wasm_exec.js +569 -0
  24. package/dist/esm/go/wasm_exec.js.map +1 -0
  25. package/dist/esm/index.js +23 -0
  26. package/dist/esm/index.js.map +1 -0
  27. package/dist/esm/interfaces/loopback-interface.js +9 -0
  28. package/dist/esm/interfaces/loopback-interface.js.map +1 -0
  29. package/dist/esm/interfaces/tap-interface.js +11 -0
  30. package/dist/esm/interfaces/tap-interface.js.map +1 -0
  31. package/dist/esm/interfaces/tun-interface.js +11 -0
  32. package/dist/esm/interfaces/tun-interface.js.map +1 -0
  33. package/dist/esm/platforms/browser.js +8 -0
  34. package/dist/esm/platforms/browser.js.map +1 -0
  35. package/dist/esm/platforms/node-polyfills.js +14 -0
  36. package/dist/esm/platforms/node-polyfills.js.map +1 -0
  37. package/dist/esm/platforms/node.js +11 -0
  38. package/dist/esm/platforms/node.js.map +1 -0
  39. package/dist/esm/server.js +11 -0
  40. package/dist/esm/server.js.map +1 -0
  41. package/dist/esm/socket.js +11 -0
  42. package/dist/esm/socket.js.map +1 -0
  43. package/dist/esm/stack.js +76 -0
  44. package/dist/esm/stack.js.map +1 -0
  45. package/dist/tcpip.wasm +0 -0
  46. package/dist/types/go/wasm_exec.d.ts +35 -0
  47. package/dist/types/index.d.ts +5 -0
  48. package/dist/types/interfaces/loopback-interface.d.ts +13 -0
  49. package/dist/types/interfaces/tap-interface.d.ts +19 -0
  50. package/dist/types/interfaces/tun-interface.d.ts +18 -0
  51. package/dist/types/platforms/browser.d.ts +2 -0
  52. package/dist/types/platforms/node-polyfills.d.ts +1 -0
  53. package/dist/types/platforms/node.d.ts +3 -0
  54. package/dist/types/server.d.ts +25 -0
  55. package/dist/types/socket.d.ts +99 -0
  56. package/dist/types/stack.d.ts +31 -0
  57. package/package.json +44 -0
@@ -0,0 +1,619 @@
1
+ "use strict";
2
+ /* eslint-disable */
3
+ // @ts-nocheck
4
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
+ return new (P || (P = Promise))(function (resolve, reject) {
7
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11
+ });
12
+ };
13
+ var __generator = (this && this.__generator) || function (thisArg, body) {
14
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
15
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
16
+ function verb(n) { return function (v) { return step([n, v]); }; }
17
+ function step(op) {
18
+ if (f) throw new TypeError("Generator is already executing.");
19
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
20
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
21
+ if (y = 0, t) op = [op[0] & 2, t.value];
22
+ switch (op[0]) {
23
+ case 0: case 1: t = op; break;
24
+ case 4: _.label++; return { value: op[1], done: false };
25
+ case 5: _.label++; y = op[1]; op = [0]; continue;
26
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
27
+ default:
28
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
29
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
30
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
31
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
32
+ if (t[2]) _.ops.pop();
33
+ _.trys.pop(); continue;
34
+ }
35
+ op = body.call(thisArg, _);
36
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
37
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
38
+ }
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ // Copyright 2018 The Go Authors. All rights reserved.
42
+ // Use of this source code is governed by a BSD-style
43
+ // license that can be found in the LICENSE file.
44
+ // This file has been modified for use by tcpip.
45
+ var enosys = function () {
46
+ var err = new Error('not implemented');
47
+ err.code = 'ENOSYS';
48
+ return err;
49
+ };
50
+ if (!globalThis.fs) {
51
+ var outputBuf_1 = '';
52
+ globalThis.fs = {
53
+ constants: {
54
+ O_WRONLY: -1,
55
+ O_RDWR: -1,
56
+ O_CREAT: -1,
57
+ O_TRUNC: -1,
58
+ O_APPEND: -1,
59
+ O_EXCL: -1,
60
+ },
61
+ writeSync: function (fd, buf) {
62
+ outputBuf_1 += decoder.decode(buf);
63
+ var nl = outputBuf_1.lastIndexOf('\n');
64
+ if (nl != -1) {
65
+ console.log(outputBuf_1.substring(0, nl));
66
+ outputBuf_1 = outputBuf_1.substring(nl + 1);
67
+ }
68
+ return buf.length;
69
+ },
70
+ write: function (fd, buf, offset, length, position, callback) {
71
+ if (offset !== 0 || length !== buf.length || position !== null) {
72
+ callback(enosys());
73
+ return;
74
+ }
75
+ var n = this.writeSync(fd, buf);
76
+ callback(null, n);
77
+ },
78
+ chmod: function (path, mode, callback) {
79
+ callback(enosys());
80
+ },
81
+ chown: function (path, uid, gid, callback) {
82
+ callback(enosys());
83
+ },
84
+ close: function (fd, callback) {
85
+ callback(enosys());
86
+ },
87
+ fchmod: function (fd, mode, callback) {
88
+ callback(enosys());
89
+ },
90
+ fchown: function (fd, uid, gid, callback) {
91
+ callback(enosys());
92
+ },
93
+ fstat: function (fd, callback) {
94
+ callback(enosys());
95
+ },
96
+ fsync: function (fd, callback) {
97
+ callback(null);
98
+ },
99
+ ftruncate: function (fd, length, callback) {
100
+ callback(enosys());
101
+ },
102
+ lchown: function (path, uid, gid, callback) {
103
+ callback(enosys());
104
+ },
105
+ link: function (path, link, callback) {
106
+ callback(enosys());
107
+ },
108
+ lstat: function (path, callback) {
109
+ callback(enosys());
110
+ },
111
+ mkdir: function (path, perm, callback) {
112
+ callback(enosys());
113
+ },
114
+ open: function (path, flags, mode, callback) {
115
+ callback(enosys());
116
+ },
117
+ read: function (fd, buffer, offset, length, position, callback) {
118
+ callback(enosys());
119
+ },
120
+ readdir: function (path, callback) {
121
+ callback(enosys());
122
+ },
123
+ readlink: function (path, callback) {
124
+ callback(enosys());
125
+ },
126
+ rename: function (from, to, callback) {
127
+ callback(enosys());
128
+ },
129
+ rmdir: function (path, callback) {
130
+ callback(enosys());
131
+ },
132
+ stat: function (path, callback) {
133
+ callback(enosys());
134
+ },
135
+ symlink: function (path, link, callback) {
136
+ callback(enosys());
137
+ },
138
+ truncate: function (path, length, callback) {
139
+ callback(enosys());
140
+ },
141
+ unlink: function (path, callback) {
142
+ callback(enosys());
143
+ },
144
+ utimes: function (path, atime, mtime, callback) {
145
+ callback(enosys());
146
+ },
147
+ };
148
+ }
149
+ if (!globalThis.process) {
150
+ globalThis.process = {
151
+ getuid: function () {
152
+ return -1;
153
+ },
154
+ getgid: function () {
155
+ return -1;
156
+ },
157
+ geteuid: function () {
158
+ return -1;
159
+ },
160
+ getegid: function () {
161
+ return -1;
162
+ },
163
+ getgroups: function () {
164
+ throw enosys();
165
+ },
166
+ pid: -1,
167
+ ppid: -1,
168
+ umask: function () {
169
+ throw enosys();
170
+ },
171
+ cwd: function () {
172
+ throw enosys();
173
+ },
174
+ chdir: function () {
175
+ throw enosys();
176
+ },
177
+ };
178
+ }
179
+ if (!globalThis.crypto) {
180
+ throw new Error('globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)');
181
+ }
182
+ if (!globalThis.performance) {
183
+ throw new Error('globalThis.performance is not available, polyfill required (performance.now only)');
184
+ }
185
+ if (!globalThis.TextEncoder) {
186
+ throw new Error('globalThis.TextEncoder is not available, polyfill required');
187
+ }
188
+ if (!globalThis.TextDecoder) {
189
+ throw new Error('globalThis.TextDecoder is not available, polyfill required');
190
+ }
191
+ var encoder = new TextEncoder('utf-8');
192
+ var decoder = new TextDecoder('utf-8');
193
+ var Go = /** @class */ (function () {
194
+ function Go() {
195
+ var _this = this;
196
+ this.argv = ['js'];
197
+ this.env = {};
198
+ this.exit = function (code) {
199
+ if (code !== 0) {
200
+ console.warn('exit code:', code);
201
+ }
202
+ };
203
+ this._exitPromise = new Promise(function (resolve) {
204
+ _this._resolveExitPromise = resolve;
205
+ });
206
+ this._pendingEvent = null;
207
+ this._scheduledTimeouts = new Map();
208
+ this._nextCallbackTimeoutID = 1;
209
+ var setInt64 = function (addr, v) {
210
+ _this.mem.setUint32(addr + 0, v, true);
211
+ _this.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true);
212
+ };
213
+ var getInt64 = function (addr) {
214
+ var low = _this.mem.getUint32(addr + 0, true);
215
+ var high = _this.mem.getInt32(addr + 4, true);
216
+ return low + high * 4294967296;
217
+ };
218
+ var loadValue = function (addr) {
219
+ var f = _this.mem.getFloat64(addr, true);
220
+ if (f === 0) {
221
+ return undefined;
222
+ }
223
+ if (!isNaN(f)) {
224
+ return f;
225
+ }
226
+ var id = _this.mem.getUint32(addr, true);
227
+ return _this._values[id];
228
+ };
229
+ var storeValue = function (addr, v) {
230
+ var nanHead = 0x7ff80000;
231
+ if (typeof v === 'number' && v !== 0) {
232
+ if (isNaN(v)) {
233
+ _this.mem.setUint32(addr + 4, nanHead, true);
234
+ _this.mem.setUint32(addr, 0, true);
235
+ return;
236
+ }
237
+ _this.mem.setFloat64(addr, v, true);
238
+ return;
239
+ }
240
+ if (v === undefined) {
241
+ _this.mem.setFloat64(addr, 0, true);
242
+ return;
243
+ }
244
+ var id = _this._ids.get(v);
245
+ if (id === undefined) {
246
+ id = _this._idPool.pop();
247
+ if (id === undefined) {
248
+ id = _this._values.length;
249
+ }
250
+ _this._values[id] = v;
251
+ _this._goRefCounts[id] = 0;
252
+ _this._ids.set(v, id);
253
+ }
254
+ _this._goRefCounts[id]++;
255
+ var typeFlag = 0;
256
+ switch (typeof v) {
257
+ case 'object':
258
+ if (v !== null) {
259
+ typeFlag = 1;
260
+ }
261
+ break;
262
+ case 'string':
263
+ typeFlag = 2;
264
+ break;
265
+ case 'symbol':
266
+ typeFlag = 3;
267
+ break;
268
+ case 'function':
269
+ typeFlag = 4;
270
+ break;
271
+ }
272
+ _this.mem.setUint32(addr + 4, nanHead | typeFlag, true);
273
+ _this.mem.setUint32(addr, id, true);
274
+ };
275
+ var loadSlice = function (addr) {
276
+ var array = getInt64(addr + 0);
277
+ var len = getInt64(addr + 8);
278
+ return new Uint8Array(_this._inst.exports.mem.buffer, array, len);
279
+ };
280
+ var loadSliceOfValues = function (addr) {
281
+ var array = getInt64(addr + 0);
282
+ var len = getInt64(addr + 8);
283
+ var a = new Array(len);
284
+ for (var i = 0; i < len; i++) {
285
+ a[i] = loadValue(array + i * 8);
286
+ }
287
+ return a;
288
+ };
289
+ var loadString = function (addr) {
290
+ var saddr = getInt64(addr + 0);
291
+ var len = getInt64(addr + 8);
292
+ return decoder.decode(new DataView(_this._inst.exports.mem.buffer, saddr, len));
293
+ };
294
+ var timeOrigin = Date.now() - performance.now();
295
+ this.importObject = {
296
+ go: {
297
+ // Go's SP does not change as long as no Go code is running. Some operations (e.g. calls, getters and setters)
298
+ // may synchronously trigger a Go event handler. This makes Go code get executed in the middle of the imported
299
+ // function. A goroutine can switch to a new stack if the current stack is too small (see morestack function).
300
+ // This changes the SP, thus we have to update the SP used by the imported function.
301
+ // func wasmExit(code int32)
302
+ 'runtime.wasmExit': function (sp) {
303
+ sp >>>= 0;
304
+ var code = _this.mem.getInt32(sp + 8, true);
305
+ _this.exited = true;
306
+ delete _this._inst;
307
+ delete _this._values;
308
+ delete _this._goRefCounts;
309
+ delete _this._ids;
310
+ delete _this._idPool;
311
+ _this.exit(code);
312
+ },
313
+ // func wasmWrite(fd uintptr, p unsafe.Pointer, n int32)
314
+ 'runtime.wasmWrite': function (sp) {
315
+ sp >>>= 0;
316
+ var fd = getInt64(sp + 8);
317
+ var p = getInt64(sp + 16);
318
+ var n = _this.mem.getInt32(sp + 24, true);
319
+ fs.writeSync(fd, new Uint8Array(_this._inst.exports.mem.buffer, p, n));
320
+ },
321
+ // func resetMemoryDataView()
322
+ 'runtime.resetMemoryDataView': function (sp) {
323
+ sp >>>= 0;
324
+ _this.mem = new DataView(_this._inst.exports.mem.buffer);
325
+ },
326
+ // func nanotime1() int64
327
+ 'runtime.nanotime1': function (sp) {
328
+ sp >>>= 0;
329
+ setInt64(sp + 8, (timeOrigin + performance.now()) * 1000000);
330
+ },
331
+ // func walltime() (sec int64, nsec int32)
332
+ 'runtime.walltime': function (sp) {
333
+ sp >>>= 0;
334
+ var msec = new Date().getTime();
335
+ setInt64(sp + 8, msec / 1000);
336
+ _this.mem.setInt32(sp + 16, (msec % 1000) * 1000000, true);
337
+ },
338
+ // func scheduleTimeoutEvent(delay int64) int32
339
+ 'runtime.scheduleTimeoutEvent': function (sp) {
340
+ sp >>>= 0;
341
+ var id = _this._nextCallbackTimeoutID;
342
+ _this._nextCallbackTimeoutID++;
343
+ _this._scheduledTimeouts.set(id, setTimeout(function () {
344
+ _this._resume();
345
+ while (_this._scheduledTimeouts.has(id)) {
346
+ // for some reason Go failed to register the timeout event, log and try again
347
+ // (temporary workaround for https://github.com/golang/go/issues/28975)
348
+ console.warn('scheduleTimeoutEvent: missed timeout event');
349
+ _this._resume();
350
+ }
351
+ }, getInt64(sp + 8) + 1 // setTimeout has been seen to fire up to 1 millisecond early
352
+ ));
353
+ _this.mem.setInt32(sp + 16, id, true);
354
+ },
355
+ // func clearTimeoutEvent(id int32)
356
+ 'runtime.clearTimeoutEvent': function (sp) {
357
+ sp >>>= 0;
358
+ var id = _this.mem.getInt32(sp + 8, true);
359
+ clearTimeout(_this._scheduledTimeouts.get(id));
360
+ _this._scheduledTimeouts.delete(id);
361
+ },
362
+ // func getRandomData(r []byte)
363
+ 'runtime.getRandomData': function (sp) {
364
+ sp >>>= 0;
365
+ crypto.getRandomValues(loadSlice(sp + 8));
366
+ },
367
+ // func finalizeRef(v ref)
368
+ 'syscall/js.finalizeRef': function (sp) {
369
+ sp >>>= 0;
370
+ var id = _this.mem.getUint32(sp + 8, true);
371
+ _this._goRefCounts[id]--;
372
+ if (_this._goRefCounts[id] === 0) {
373
+ var v = _this._values[id];
374
+ _this._values[id] = null;
375
+ _this._ids.delete(v);
376
+ _this._idPool.push(id);
377
+ }
378
+ },
379
+ // func stringVal(value string) ref
380
+ 'syscall/js.stringVal': function (sp) {
381
+ sp >>>= 0;
382
+ storeValue(sp + 24, loadString(sp + 8));
383
+ },
384
+ // func valueGet(v ref, p string) ref
385
+ 'syscall/js.valueGet': function (sp) {
386
+ sp >>>= 0;
387
+ var result = Reflect.get(loadValue(sp + 8), loadString(sp + 16));
388
+ sp = _this._inst.exports.getsp() >>> 0; // see comment above
389
+ storeValue(sp + 32, result);
390
+ },
391
+ // func valueSet(v ref, p string, x ref)
392
+ 'syscall/js.valueSet': function (sp) {
393
+ sp >>>= 0;
394
+ Reflect.set(loadValue(sp + 8), loadString(sp + 16), loadValue(sp + 32));
395
+ },
396
+ // func valueDelete(v ref, p string)
397
+ 'syscall/js.valueDelete': function (sp) {
398
+ sp >>>= 0;
399
+ Reflect.deleteProperty(loadValue(sp + 8), loadString(sp + 16));
400
+ },
401
+ // func valueIndex(v ref, i int) ref
402
+ 'syscall/js.valueIndex': function (sp) {
403
+ sp >>>= 0;
404
+ storeValue(sp + 24, Reflect.get(loadValue(sp + 8), getInt64(sp + 16)));
405
+ },
406
+ // valueSetIndex(v ref, i int, x ref)
407
+ 'syscall/js.valueSetIndex': function (sp) {
408
+ sp >>>= 0;
409
+ Reflect.set(loadValue(sp + 8), getInt64(sp + 16), loadValue(sp + 24));
410
+ },
411
+ // func valueCall(v ref, m string, args []ref) (ref, bool)
412
+ 'syscall/js.valueCall': function (sp) {
413
+ sp >>>= 0;
414
+ try {
415
+ var v = loadValue(sp + 8);
416
+ var m = Reflect.get(v, loadString(sp + 16));
417
+ var args = loadSliceOfValues(sp + 32);
418
+ var result = Reflect.apply(m, v, args);
419
+ sp = _this._inst.exports.getsp() >>> 0; // see comment above
420
+ storeValue(sp + 56, result);
421
+ _this.mem.setUint8(sp + 64, 1);
422
+ }
423
+ catch (err) {
424
+ sp = _this._inst.exports.getsp() >>> 0; // see comment above
425
+ storeValue(sp + 56, err);
426
+ _this.mem.setUint8(sp + 64, 0);
427
+ }
428
+ },
429
+ // func valueInvoke(v ref, args []ref) (ref, bool)
430
+ 'syscall/js.valueInvoke': function (sp) {
431
+ sp >>>= 0;
432
+ try {
433
+ var v = loadValue(sp + 8);
434
+ var args = loadSliceOfValues(sp + 16);
435
+ var result = Reflect.apply(v, undefined, args);
436
+ sp = _this._inst.exports.getsp() >>> 0; // see comment above
437
+ storeValue(sp + 40, result);
438
+ _this.mem.setUint8(sp + 48, 1);
439
+ }
440
+ catch (err) {
441
+ sp = _this._inst.exports.getsp() >>> 0; // see comment above
442
+ storeValue(sp + 40, err);
443
+ _this.mem.setUint8(sp + 48, 0);
444
+ }
445
+ },
446
+ // func valueNew(v ref, args []ref) (ref, bool)
447
+ 'syscall/js.valueNew': function (sp) {
448
+ sp >>>= 0;
449
+ try {
450
+ var v = loadValue(sp + 8);
451
+ var args = loadSliceOfValues(sp + 16);
452
+ var result = Reflect.construct(v, args);
453
+ sp = _this._inst.exports.getsp() >>> 0; // see comment above
454
+ storeValue(sp + 40, result);
455
+ _this.mem.setUint8(sp + 48, 1);
456
+ }
457
+ catch (err) {
458
+ sp = _this._inst.exports.getsp() >>> 0; // see comment above
459
+ storeValue(sp + 40, err);
460
+ _this.mem.setUint8(sp + 48, 0);
461
+ }
462
+ },
463
+ // func valueLength(v ref) int
464
+ 'syscall/js.valueLength': function (sp) {
465
+ sp >>>= 0;
466
+ setInt64(sp + 16, parseInt(loadValue(sp + 8).length));
467
+ },
468
+ // valuePrepareString(v ref) (ref, int)
469
+ 'syscall/js.valuePrepareString': function (sp) {
470
+ sp >>>= 0;
471
+ var str = encoder.encode(String(loadValue(sp + 8)));
472
+ storeValue(sp + 16, str);
473
+ setInt64(sp + 24, str.length);
474
+ },
475
+ // valueLoadString(v ref, b []byte)
476
+ 'syscall/js.valueLoadString': function (sp) {
477
+ sp >>>= 0;
478
+ var str = loadValue(sp + 8);
479
+ loadSlice(sp + 16).set(str);
480
+ },
481
+ // func valueInstanceOf(v ref, t ref) bool
482
+ 'syscall/js.valueInstanceOf': function (sp) {
483
+ sp >>>= 0;
484
+ _this.mem.setUint8(sp + 24, loadValue(sp + 8) instanceof loadValue(sp + 16) ? 1 : 0);
485
+ },
486
+ // func copyBytesToGo(dst []byte, src ref) (int, bool)
487
+ 'syscall/js.copyBytesToGo': function (sp) {
488
+ sp >>>= 0;
489
+ var dst = loadSlice(sp + 8);
490
+ var src = loadValue(sp + 32);
491
+ if (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) {
492
+ _this.mem.setUint8(sp + 48, 0);
493
+ return;
494
+ }
495
+ var toCopy = src.subarray(0, dst.length);
496
+ dst.set(toCopy);
497
+ setInt64(sp + 40, toCopy.length);
498
+ _this.mem.setUint8(sp + 48, 1);
499
+ },
500
+ // func copyBytesToJS(dst ref, src []byte) (int, bool)
501
+ 'syscall/js.copyBytesToJS': function (sp) {
502
+ sp >>>= 0;
503
+ var dst = loadValue(sp + 8);
504
+ var src = loadSlice(sp + 16);
505
+ if (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) {
506
+ _this.mem.setUint8(sp + 48, 0);
507
+ return;
508
+ }
509
+ var toCopy = src.subarray(0, dst.length);
510
+ dst.set(toCopy);
511
+ setInt64(sp + 40, toCopy.length);
512
+ _this.mem.setUint8(sp + 48, 1);
513
+ },
514
+ debug: function (value) {
515
+ console.log(value);
516
+ },
517
+ },
518
+ };
519
+ }
520
+ Go.prototype.run = function (instance) {
521
+ return __awaiter(this, void 0, void 0, function () {
522
+ var offset, strPtr, argc, argvPtrs, keys, argv, wasmMinDataAddr;
523
+ var _this = this;
524
+ return __generator(this, function (_a) {
525
+ switch (_a.label) {
526
+ case 0:
527
+ if (!(instance instanceof WebAssembly.Instance)) {
528
+ throw new Error('Go.run: WebAssembly.Instance expected');
529
+ }
530
+ this._inst = instance;
531
+ this.mem = new DataView(this._inst.exports.mem.buffer);
532
+ this._values = [
533
+ // JS values that Go currently has references to, indexed by reference id
534
+ NaN,
535
+ 0,
536
+ null,
537
+ true,
538
+ false,
539
+ globalThis,
540
+ this,
541
+ ];
542
+ this._goRefCounts = new Array(this._values.length).fill(Infinity); // number of references that Go has to a JS value, indexed by reference id
543
+ this._ids = new Map([
544
+ // mapping from JS values to reference ids
545
+ [0, 1],
546
+ [null, 2],
547
+ [true, 3],
548
+ [false, 4],
549
+ [globalThis, 5],
550
+ [this, 6],
551
+ ]);
552
+ this._idPool = []; // unused ids that have been garbage collected
553
+ this.exited = false; // whether the Go program has exited
554
+ offset = 4096;
555
+ strPtr = function (str) {
556
+ var ptr = offset;
557
+ var bytes = encoder.encode(str + '\0');
558
+ new Uint8Array(_this.mem.buffer, offset, bytes.length).set(bytes);
559
+ offset += bytes.length;
560
+ if (offset % 8 !== 0) {
561
+ offset += 8 - (offset % 8);
562
+ }
563
+ return ptr;
564
+ };
565
+ argc = this.argv.length;
566
+ argvPtrs = [];
567
+ this.argv.forEach(function (arg) {
568
+ argvPtrs.push(strPtr(arg));
569
+ });
570
+ argvPtrs.push(0);
571
+ keys = Object.keys(this.env).sort();
572
+ keys.forEach(function (key) {
573
+ argvPtrs.push(strPtr("".concat(key, "=").concat(_this.env[key])));
574
+ });
575
+ argvPtrs.push(0);
576
+ argv = offset;
577
+ argvPtrs.forEach(function (ptr) {
578
+ _this.mem.setUint32(offset, ptr, true);
579
+ _this.mem.setUint32(offset + 4, 0, true);
580
+ offset += 8;
581
+ });
582
+ wasmMinDataAddr = 4096 + 8192;
583
+ if (offset >= wasmMinDataAddr) {
584
+ throw new Error('total length of command line and environment variables exceeds limit');
585
+ }
586
+ this._inst.exports.run(argc, argv);
587
+ if (this.exited) {
588
+ this._resolveExitPromise();
589
+ }
590
+ return [4 /*yield*/, this._exitPromise];
591
+ case 1:
592
+ _a.sent();
593
+ return [2 /*return*/];
594
+ }
595
+ });
596
+ });
597
+ };
598
+ Go.prototype._resume = function () {
599
+ if (this.exited) {
600
+ throw new Error('Go program has already exited');
601
+ }
602
+ this._inst.exports.resume();
603
+ if (this.exited) {
604
+ this._resolveExitPromise();
605
+ }
606
+ };
607
+ Go.prototype._makeFuncWrapper = function (id) {
608
+ var go = this;
609
+ return function () {
610
+ var event = { id: id, this: this, args: arguments };
611
+ go._pendingEvent = event;
612
+ go._resume();
613
+ return event.result;
614
+ };
615
+ };
616
+ return Go;
617
+ }());
618
+ exports.default = Go;
619
+ //# sourceMappingURL=wasm_exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm_exec.js","sourceRoot":"","sources":["../../../src/go/wasm_exec.ts"],"names":[],"mappings":"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"}