@bloopjs/web 0.0.39 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mod.js CHANGED
@@ -61,17 +61,24 @@ __export(exports_engine, {
61
61
  mouseButtonCodeToMouseButton: () => mouseButtonCodeToMouseButton,
62
62
  keyToKeyCode: () => keyToKeyCode,
63
63
  keyCodeToKey: () => keyCodeToKey,
64
+ inputSourceToInputSourceCode: () => inputSourceToInputSourceCode,
65
+ inputSourceCodeToInputSource: () => inputSourceCodeToInputSource,
64
66
  TimeContext: () => TimeContext,
65
67
  TIME_CTX_OFFSET: () => TIME_CTX_OFFSET,
66
68
  SNAPSHOT_HEADER_USER_LEN_OFFSET: () => SNAPSHOT_HEADER_USER_LEN_OFFSET,
67
69
  SNAPSHOT_HEADER_LEN: () => SNAPSHOT_HEADER_LEN,
68
70
  SNAPSHOT_HEADER_ENGINE_LEN_OFFSET: () => SNAPSHOT_HEADER_ENGINE_LEN_OFFSET,
71
+ PlayerInputContext: () => PlayerInputContext,
72
+ PLAYER_INPUTS_SIZE: () => PLAYER_INPUTS_SIZE,
69
73
  MouseContext: () => MouseContext,
70
74
  MOUSE_OFFSET: () => MOUSE_OFFSET,
71
75
  MOUSE_BUTTONS_OFFSET: () => MOUSE_BUTTONS_OFFSET,
76
+ MAX_PLAYERS: () => MAX_PLAYERS,
72
77
  KeyboardContext: () => KeyboardContext,
78
+ KEYBOARD_SIZE: () => KEYBOARD_SIZE,
73
79
  KEYBOARD_OFFSET: () => KEYBOARD_OFFSET,
74
80
  InputContext: () => InputContext,
81
+ INPUT_CTX_SIZE: () => INPUT_CTX_SIZE,
75
82
  INPUT_CTX_OFFSET: () => INPUT_CTX_OFFSET,
76
83
  Enums: () => exports_enums,
77
84
  EVENT_PAYLOAD_SIZE: () => EVENT_PAYLOAD_SIZE,
@@ -93,6 +100,7 @@ var exports_enums = {};
93
100
  __export2(exports_enums, {
94
101
  MouseButton: () => MouseButton,
95
102
  Key: () => Key,
103
+ InputSource: () => InputSource,
96
104
  EventType: () => EventType
97
105
  });
98
106
  var EventType;
@@ -316,9 +324,45 @@ var Key;
316
324
  Key2[Key2["F34"] = 193] = "F34";
317
325
  Key2[Key2["F35"] = 194] = "F35";
318
326
  })(Key ||= {});
327
+ var InputSource;
328
+ ((InputSource2) => {
329
+ InputSource2[InputSource2["None"] = 0] = "None";
330
+ InputSource2[InputSource2["LocalKeyboard"] = 1] = "LocalKeyboard";
331
+ InputSource2[InputSource2["LocalMouse"] = 2] = "LocalMouse";
332
+ InputSource2[InputSource2["LocalTouch"] = 3] = "LocalTouch";
333
+ InputSource2[InputSource2["LocalGamepad0"] = 4] = "LocalGamepad0";
334
+ InputSource2[InputSource2["LocalGamepad1"] = 5] = "LocalGamepad1";
335
+ InputSource2[InputSource2["LocalGamepad2"] = 6] = "LocalGamepad2";
336
+ InputSource2[InputSource2["LocalGamepad3"] = 7] = "LocalGamepad3";
337
+ InputSource2[InputSource2["LocalGamepad4"] = 8] = "LocalGamepad4";
338
+ InputSource2[InputSource2["LocalGamepad5"] = 9] = "LocalGamepad5";
339
+ InputSource2[InputSource2["LocalGamepad6"] = 10] = "LocalGamepad6";
340
+ InputSource2[InputSource2["LocalGamepad7"] = 11] = "LocalGamepad7";
341
+ InputSource2[InputSource2["LocalGamepad8"] = 12] = "LocalGamepad8";
342
+ InputSource2[InputSource2["LocalGamepad9"] = 13] = "LocalGamepad9";
343
+ InputSource2[InputSource2["LocalGamepad10"] = 14] = "LocalGamepad10";
344
+ InputSource2[InputSource2["LocalGamepad11"] = 15] = "LocalGamepad11";
345
+ InputSource2[InputSource2["RemotePeer0"] = 128] = "RemotePeer0";
346
+ InputSource2[InputSource2["RemotePeer1"] = 129] = "RemotePeer1";
347
+ InputSource2[InputSource2["RemotePeer2"] = 130] = "RemotePeer2";
348
+ InputSource2[InputSource2["RemotePeer3"] = 131] = "RemotePeer3";
349
+ InputSource2[InputSource2["RemotePeer4"] = 132] = "RemotePeer4";
350
+ InputSource2[InputSource2["RemotePeer5"] = 133] = "RemotePeer5";
351
+ InputSource2[InputSource2["RemotePeer6"] = 134] = "RemotePeer6";
352
+ InputSource2[InputSource2["RemotePeer7"] = 135] = "RemotePeer7";
353
+ InputSource2[InputSource2["RemotePeer8"] = 136] = "RemotePeer8";
354
+ InputSource2[InputSource2["RemotePeer9"] = 137] = "RemotePeer9";
355
+ InputSource2[InputSource2["RemotePeer10"] = 138] = "RemotePeer10";
356
+ InputSource2[InputSource2["RemotePeer11"] = 139] = "RemotePeer11";
357
+ InputSource2[InputSource2["Unmapped"] = 255] = "Unmapped";
358
+ })(InputSource ||= {});
359
+ var MAX_PLAYERS = 12;
360
+ var KEYBOARD_OFFSET = 0;
361
+ var KEYBOARD_SIZE = 256;
319
362
  var MOUSE_OFFSET = 256;
320
363
  var MOUSE_BUTTONS_OFFSET = 16;
321
- var KEYBOARD_OFFSET = 0;
364
+ var PLAYER_INPUTS_SIZE = 280;
365
+ var INPUT_CTX_SIZE = MAX_PLAYERS * PLAYER_INPUTS_SIZE;
322
366
  var EVENT_PAYLOAD_SIZE = 8;
323
367
  var EVENT_PAYLOAD_ALIGN = 4;
324
368
  function keyToKeyCode(key) {
@@ -333,14 +377,41 @@ function mouseButtonToMouseButtonCode(button) {
333
377
  function mouseButtonCodeToMouseButton(code) {
334
378
  return MouseButton[code];
335
379
  }
380
+ function inputSourceToInputSourceCode(source) {
381
+ return InputSource[source];
382
+ }
383
+ function inputSourceCodeToInputSource(code) {
384
+ return InputSource[code];
385
+ }
336
386
 
337
- class InputContext {
387
+ class PlayerInputContext {
338
388
  #dataView;
339
389
  #keys;
340
390
  #mouse;
391
+ constructor(dataView) {
392
+ this.#dataView = dataView;
393
+ }
394
+ get keys() {
395
+ if (!this.#keys) {
396
+ this.#keys = new KeyboardContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + KEYBOARD_OFFSET));
397
+ }
398
+ return this.#keys;
399
+ }
400
+ get mouse() {
401
+ if (!this.#mouse) {
402
+ this.#mouse = new MouseContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + MOUSE_OFFSET));
403
+ }
404
+ return this.#mouse;
405
+ }
406
+ }
407
+
408
+ class InputContext {
409
+ #dataView;
410
+ #players = [];
341
411
  constructor(dataView) {
342
412
  if (dataView) {
343
413
  this.#dataView = dataView;
414
+ this.#buildPlayers();
344
415
  }
345
416
  }
346
417
  get dataView() {
@@ -351,20 +422,30 @@ class InputContext {
351
422
  }
352
423
  set dataView(dataView) {
353
424
  this.#dataView = dataView;
354
- this.#keys = undefined;
355
- this.#mouse = undefined;
425
+ this.#buildPlayers();
426
+ }
427
+ #buildPlayers() {
428
+ this.#players = [];
429
+ for (let i = 0;i < MAX_PLAYERS; i++) {
430
+ const playerOffset = i * PLAYER_INPUTS_SIZE;
431
+ const playerDataView = new DataView(this.dataView.buffer, this.dataView.byteOffset + playerOffset, PLAYER_INPUTS_SIZE);
432
+ this.#players.push(new PlayerInputContext(playerDataView));
433
+ }
434
+ }
435
+ get players() {
436
+ return this.#players;
356
437
  }
357
438
  get keys() {
358
- if (!this.#keys) {
359
- this.#keys = new KeyboardContext(new DataView(this.dataView.buffer, this.dataView.byteOffset + KEYBOARD_OFFSET));
439
+ if (!this.#players[0]) {
440
+ throw new Error("No player inputs available in InputContext");
360
441
  }
361
- return this.#keys;
442
+ return this.#players[0].keys;
362
443
  }
363
444
  get mouse() {
364
- if (!this.#mouse) {
365
- this.#mouse = new MouseContext(new DataView(this.dataView.buffer, this.dataView.byteOffset + MOUSE_OFFSET));
445
+ if (!this.#players[0]) {
446
+ throw new Error("No player inputs available in InputContext");
366
447
  }
367
- return this.#mouse;
448
+ return this.#players[0].mouse;
368
449
  }
369
450
  }
370
451
 
@@ -1195,23 +1276,23 @@ class Sim {
1195
1276
  return this.isRecording || this.isReplaying;
1196
1277
  }
1197
1278
  emit = {
1198
- keydown: (key) => {
1199
- this.wasm.emit_keydown(keyToKeyCode(key));
1279
+ keydown: (key, source = "LocalKeyboard") => {
1280
+ this.wasm.emit_keydown(keyToKeyCode(key), inputSourceToInputSourceCode(source));
1200
1281
  },
1201
- keyup: (key) => {
1202
- this.wasm.emit_keyup(keyToKeyCode(key));
1282
+ keyup: (key, source = "LocalKeyboard") => {
1283
+ this.wasm.emit_keyup(keyToKeyCode(key), inputSourceToInputSourceCode(source));
1203
1284
  },
1204
- mousemove: (x, y) => {
1205
- this.wasm.emit_mousemove(x, y);
1285
+ mousemove: (x, y, source = "LocalMouse") => {
1286
+ this.wasm.emit_mousemove(x, y, inputSourceToInputSourceCode(source));
1206
1287
  },
1207
- mousedown: (button) => {
1208
- this.wasm.emit_mousedown(mouseButtonToMouseButtonCode(button));
1288
+ mousedown: (button, source = "LocalMouse") => {
1289
+ this.wasm.emit_mousedown(mouseButtonToMouseButtonCode(button), inputSourceToInputSourceCode(source));
1209
1290
  },
1210
- mouseup: (button) => {
1211
- this.wasm.emit_mouseup(mouseButtonToMouseButtonCode(button));
1291
+ mouseup: (button, source = "LocalMouse") => {
1292
+ this.wasm.emit_mouseup(mouseButtonToMouseButtonCode(button), inputSourceToInputSourceCode(source));
1212
1293
  },
1213
- mousewheel: (x, y) => {
1214
- this.wasm.emit_mousewheel(x, y);
1294
+ mousewheel: (x, y, source = "LocalMouse") => {
1295
+ this.wasm.emit_mousewheel(x, y, inputSourceToInputSourceCode(source));
1215
1296
  }
1216
1297
  };
1217
1298
  }
@@ -1280,10 +1361,14 @@ class Bloop {
1280
1361
  if (dontCallMeDirectly !== "dontCallMeDirectly") {
1281
1362
  throw new Error("Bloop constructor is private. Use Bloop.create() to create a new game instance.");
1282
1363
  }
1364
+ const inputs = new InputContext;
1283
1365
  this.#context = {
1284
1366
  bag: opts.bag ?? {},
1285
1367
  time: new TimeContext,
1286
- inputs: new InputContext,
1368
+ inputs,
1369
+ get players() {
1370
+ return inputs.players;
1371
+ },
1287
1372
  rawPointer: -1
1288
1373
  };
1289
1374
  }
@@ -1342,15 +1427,16 @@ class Bloop {
1342
1427
  const eventsDataView = new DataView(this.#engineBuffer, eventsPtr);
1343
1428
  for (const system of this.#systems) {
1344
1429
  system.update?.(this.#context);
1345
- const eventCount = eventsDataView.getUint32(0, true);
1346
- let offset = Uint32Array.BYTES_PER_ELEMENT;
1430
+ const eventCount = eventsDataView.getUint16(0, true);
1431
+ let offset = 4;
1347
1432
  for (let i = 0;i < eventCount; i++) {
1348
1433
  const eventType = eventsDataView.getUint8(offset);
1349
- const payloadSize = EVENT_PAYLOAD_SIZE;
1350
- const payloadByte = eventsDataView.getUint8(offset + EVENT_PAYLOAD_ALIGN);
1434
+ const eventSource = eventsDataView.getUint8(offset + 1);
1435
+ const payloadOffset = offset + 4;
1436
+ const payloadByte = eventsDataView.getUint8(payloadOffset);
1351
1437
  const payloadVec2 = {
1352
- x: eventsDataView.getFloat32(offset + EVENT_PAYLOAD_ALIGN, true),
1353
- y: eventsDataView.getFloat32(offset + EVENT_PAYLOAD_ALIGN + Float32Array.BYTES_PER_ELEMENT, true)
1438
+ x: eventsDataView.getFloat32(payloadOffset, true),
1439
+ y: eventsDataView.getFloat32(payloadOffset + Float32Array.BYTES_PER_ELEMENT, true)
1354
1440
  };
1355
1441
  switch (eventType) {
1356
1442
  case exports_enums.EventType.KeyDown: {
@@ -1389,7 +1475,7 @@ class Bloop {
1389
1475
  default:
1390
1476
  throw new Error(`Unknown event type: ${eventType}`);
1391
1477
  }
1392
- offset += EVENT_PAYLOAD_ALIGN + EVENT_PAYLOAD_SIZE;
1478
+ offset += 12;
1393
1479
  }
1394
1480
  this.#context.event = undefined;
1395
1481
  }
@@ -1416,6 +1502,7 @@ var exports_enums2 = {};
1416
1502
  __export3(exports_enums2, {
1417
1503
  MouseButton: () => MouseButton2,
1418
1504
  Key: () => Key2,
1505
+ InputSource: () => InputSource2,
1419
1506
  EventType: () => EventType2
1420
1507
  });
1421
1508
  var EventType2;
@@ -1639,20 +1726,75 @@ var Key2;
1639
1726
  Key22[Key22["F34"] = 193] = "F34";
1640
1727
  Key22[Key22["F35"] = 194] = "F35";
1641
1728
  })(Key2 ||= {});
1729
+ var InputSource2;
1730
+ ((InputSource22) => {
1731
+ InputSource22[InputSource22["None"] = 0] = "None";
1732
+ InputSource22[InputSource22["LocalKeyboard"] = 1] = "LocalKeyboard";
1733
+ InputSource22[InputSource22["LocalMouse"] = 2] = "LocalMouse";
1734
+ InputSource22[InputSource22["LocalTouch"] = 3] = "LocalTouch";
1735
+ InputSource22[InputSource22["LocalGamepad0"] = 4] = "LocalGamepad0";
1736
+ InputSource22[InputSource22["LocalGamepad1"] = 5] = "LocalGamepad1";
1737
+ InputSource22[InputSource22["LocalGamepad2"] = 6] = "LocalGamepad2";
1738
+ InputSource22[InputSource22["LocalGamepad3"] = 7] = "LocalGamepad3";
1739
+ InputSource22[InputSource22["LocalGamepad4"] = 8] = "LocalGamepad4";
1740
+ InputSource22[InputSource22["LocalGamepad5"] = 9] = "LocalGamepad5";
1741
+ InputSource22[InputSource22["LocalGamepad6"] = 10] = "LocalGamepad6";
1742
+ InputSource22[InputSource22["LocalGamepad7"] = 11] = "LocalGamepad7";
1743
+ InputSource22[InputSource22["LocalGamepad8"] = 12] = "LocalGamepad8";
1744
+ InputSource22[InputSource22["LocalGamepad9"] = 13] = "LocalGamepad9";
1745
+ InputSource22[InputSource22["LocalGamepad10"] = 14] = "LocalGamepad10";
1746
+ InputSource22[InputSource22["LocalGamepad11"] = 15] = "LocalGamepad11";
1747
+ InputSource22[InputSource22["RemotePeer0"] = 128] = "RemotePeer0";
1748
+ InputSource22[InputSource22["RemotePeer1"] = 129] = "RemotePeer1";
1749
+ InputSource22[InputSource22["RemotePeer2"] = 130] = "RemotePeer2";
1750
+ InputSource22[InputSource22["RemotePeer3"] = 131] = "RemotePeer3";
1751
+ InputSource22[InputSource22["RemotePeer4"] = 132] = "RemotePeer4";
1752
+ InputSource22[InputSource22["RemotePeer5"] = 133] = "RemotePeer5";
1753
+ InputSource22[InputSource22["RemotePeer6"] = 134] = "RemotePeer6";
1754
+ InputSource22[InputSource22["RemotePeer7"] = 135] = "RemotePeer7";
1755
+ InputSource22[InputSource22["RemotePeer8"] = 136] = "RemotePeer8";
1756
+ InputSource22[InputSource22["RemotePeer9"] = 137] = "RemotePeer9";
1757
+ InputSource22[InputSource22["RemotePeer10"] = 138] = "RemotePeer10";
1758
+ InputSource22[InputSource22["RemotePeer11"] = 139] = "RemotePeer11";
1759
+ InputSource22[InputSource22["Unmapped"] = 255] = "Unmapped";
1760
+ })(InputSource2 ||= {});
1761
+ var MAX_PLAYERS2 = 12;
1762
+ var KEYBOARD_OFFSET2 = 0;
1642
1763
  var MOUSE_OFFSET2 = 256;
1643
1764
  var MOUSE_BUTTONS_OFFSET2 = 16;
1644
- var KEYBOARD_OFFSET2 = 0;
1765
+ var PLAYER_INPUTS_SIZE2 = 280;
1766
+ var INPUT_CTX_SIZE2 = MAX_PLAYERS2 * PLAYER_INPUTS_SIZE2;
1645
1767
  function mouseButtonCodeToMouseButton2(code) {
1646
1768
  return MouseButton2[code];
1647
1769
  }
1648
-
1649
- class InputContext2 {
1770
+ class PlayerInputContext2 {
1650
1771
  #dataView;
1651
1772
  #keys;
1652
1773
  #mouse;
1774
+ constructor(dataView) {
1775
+ this.#dataView = dataView;
1776
+ }
1777
+ get keys() {
1778
+ if (!this.#keys) {
1779
+ this.#keys = new KeyboardContext2(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + KEYBOARD_OFFSET2));
1780
+ }
1781
+ return this.#keys;
1782
+ }
1783
+ get mouse() {
1784
+ if (!this.#mouse) {
1785
+ this.#mouse = new MouseContext2(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + MOUSE_OFFSET2));
1786
+ }
1787
+ return this.#mouse;
1788
+ }
1789
+ }
1790
+
1791
+ class InputContext2 {
1792
+ #dataView;
1793
+ #players = [];
1653
1794
  constructor(dataView) {
1654
1795
  if (dataView) {
1655
1796
  this.#dataView = dataView;
1797
+ this.#buildPlayers();
1656
1798
  }
1657
1799
  }
1658
1800
  get dataView() {
@@ -1663,20 +1805,30 @@ class InputContext2 {
1663
1805
  }
1664
1806
  set dataView(dataView) {
1665
1807
  this.#dataView = dataView;
1666
- this.#keys = undefined;
1667
- this.#mouse = undefined;
1808
+ this.#buildPlayers();
1809
+ }
1810
+ #buildPlayers() {
1811
+ this.#players = [];
1812
+ for (let i = 0;i < MAX_PLAYERS2; i++) {
1813
+ const playerOffset = i * PLAYER_INPUTS_SIZE2;
1814
+ const playerDataView = new DataView(this.dataView.buffer, this.dataView.byteOffset + playerOffset, PLAYER_INPUTS_SIZE2);
1815
+ this.#players.push(new PlayerInputContext2(playerDataView));
1816
+ }
1817
+ }
1818
+ get players() {
1819
+ return this.#players;
1668
1820
  }
1669
1821
  get keys() {
1670
- if (!this.#keys) {
1671
- this.#keys = new KeyboardContext2(new DataView(this.dataView.buffer, this.dataView.byteOffset + KEYBOARD_OFFSET2));
1822
+ if (!this.#players[0]) {
1823
+ throw new Error("No player inputs available in InputContext");
1672
1824
  }
1673
- return this.#keys;
1825
+ return this.#players[0].keys;
1674
1826
  }
1675
1827
  get mouse() {
1676
- if (!this.#mouse) {
1677
- this.#mouse = new MouseContext2(new DataView(this.dataView.buffer, this.dataView.byteOffset + MOUSE_OFFSET2));
1828
+ if (!this.#players[0]) {
1829
+ throw new Error("No player inputs available in InputContext");
1678
1830
  }
1679
- return this.#mouse;
1831
+ return this.#players[0].mouse;
1680
1832
  }
1681
1833
  }
1682
1834
 
@@ -2520,5 +2672,5 @@ export {
2520
2672
  App
2521
2673
  };
2522
2674
 
2523
- //# debugId=6903EE465E71BF4D64756E2164756E21
2675
+ //# debugId=CB2BC26A05BB20C764756E2164756E21
2524
2676
  //# sourceMappingURL=mod.js.map
package/dist/mod.js.map CHANGED
@@ -2,11 +2,11 @@
2
2
  "version": 3,
3
3
  "sources": ["../../bloop/dist/mod.js", "../../engine/dist/engine.js", "../src/App.ts"],
4
4
  "sourcesContent": [
5
- "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\n\n// src/util.ts\nvar exports_util = {};\n__export(exports_util, {\n unwrap: () => unwrap,\n toHexString: () => toHexString,\n logPerSecond: () => logPerSecond,\n logOnce: () => logOnce,\n logEvery: () => logEvery,\n assert: () => assert\n});\nfunction toHexString(dataView, length) {\n length ??= dataView.byteLength;\n let hexString = \"\";\n for (let i = 0;i < length; i++) {\n const byte = dataView.getUint8(i);\n hexString += `${byte.toString(16).padStart(2, \"0\")} `;\n }\n return hexString.trim();\n}\nfunction assert(condition, message) {\n if (condition == null || condition === false) {\n throw new Error(message ?? \"Assertion failed\");\n }\n}\nvar backpressureLogs = new Map;\nfunction logOnce(...args) {\n const key = args.map((a) => String(a)).join(\" \");\n if (!backpressureLogs.has(key)) {\n console.log(...args);\n backpressureLogs.set(key, 1);\n }\n}\nfunction logPerSecond(now, ...args) {\n logEvery(now, 1000, ...args);\n}\nfunction logEvery(now, interval = 10, ...args) {\n const key = args.map((a) => String(a)).join(\" \");\n const lastLogged = backpressureLogs.get(key) ?? -Infinity;\n if (now - lastLogged >= interval) {\n console.log(...args);\n backpressureLogs.set(key, now);\n }\n}\nfunction unwrap(value, message) {\n assert(value != null, message ?? `Unwrap failed: value is ${value}`);\n return value;\n}\n// ../engine/dist/engine.js\nvar exports_engine = {};\n__export(exports_engine, {\n mouseButtonToMouseButtonCode: () => mouseButtonToMouseButtonCode,\n mouseButtonCodeToMouseButton: () => mouseButtonCodeToMouseButton,\n keyToKeyCode: () => keyToKeyCode,\n keyCodeToKey: () => keyCodeToKey,\n TimeContext: () => TimeContext,\n TIME_CTX_OFFSET: () => TIME_CTX_OFFSET,\n SNAPSHOT_HEADER_USER_LEN_OFFSET: () => SNAPSHOT_HEADER_USER_LEN_OFFSET,\n SNAPSHOT_HEADER_LEN: () => SNAPSHOT_HEADER_LEN,\n SNAPSHOT_HEADER_ENGINE_LEN_OFFSET: () => SNAPSHOT_HEADER_ENGINE_LEN_OFFSET,\n MouseContext: () => MouseContext,\n MOUSE_OFFSET: () => MOUSE_OFFSET,\n MOUSE_BUTTONS_OFFSET: () => MOUSE_BUTTONS_OFFSET,\n KeyboardContext: () => KeyboardContext,\n KEYBOARD_OFFSET: () => KEYBOARD_OFFSET,\n InputContext: () => InputContext,\n INPUT_CTX_OFFSET: () => INPUT_CTX_OFFSET,\n Enums: () => exports_enums,\n EVENT_PAYLOAD_SIZE: () => EVENT_PAYLOAD_SIZE,\n EVENT_PAYLOAD_ALIGN: () => EVENT_PAYLOAD_ALIGN,\n EVENTS_OFFSET: () => EVENTS_OFFSET,\n DEFAULT_WASM_URL: () => DEFAULT_WASM_URL\n});\nvar __defProp2 = Object.defineProperty;\nvar __export2 = (target, all) => {\n for (var name in all)\n __defProp2(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\nvar exports_enums = {};\n__export2(exports_enums, {\n MouseButton: () => MouseButton,\n Key: () => Key,\n EventType: () => EventType\n});\nvar EventType;\n((EventType2) => {\n EventType2[EventType2[\"None\"] = 0] = \"None\";\n EventType2[EventType2[\"KeyDown\"] = 1] = \"KeyDown\";\n EventType2[EventType2[\"KeyUp\"] = 2] = \"KeyUp\";\n EventType2[EventType2[\"MouseMove\"] = 3] = \"MouseMove\";\n EventType2[EventType2[\"MouseDown\"] = 4] = \"MouseDown\";\n EventType2[EventType2[\"MouseUp\"] = 5] = \"MouseUp\";\n EventType2[EventType2[\"MouseWheel\"] = 6] = \"MouseWheel\";\n EventType2[EventType2[\"FrameStart\"] = 7] = \"FrameStart\";\n})(EventType ||= {});\nvar MouseButton;\n((MouseButton2) => {\n MouseButton2[MouseButton2[\"None\"] = 0] = \"None\";\n MouseButton2[MouseButton2[\"Left\"] = 1] = \"Left\";\n MouseButton2[MouseButton2[\"Middle\"] = 2] = \"Middle\";\n MouseButton2[MouseButton2[\"Right\"] = 3] = \"Right\";\n MouseButton2[MouseButton2[\"X1\"] = 4] = \"X1\";\n MouseButton2[MouseButton2[\"X2\"] = 5] = \"X2\";\n MouseButton2[MouseButton2[\"X3\"] = 6] = \"X3\";\n MouseButton2[MouseButton2[\"X4\"] = 7] = \"X4\";\n MouseButton2[MouseButton2[\"X5\"] = 8] = \"X5\";\n})(MouseButton ||= {});\nvar Key;\n((Key2) => {\n Key2[Key2[\"None\"] = 0] = \"None\";\n Key2[Key2[\"Backquote\"] = 1] = \"Backquote\";\n Key2[Key2[\"Backslash\"] = 2] = \"Backslash\";\n Key2[Key2[\"BracketLeft\"] = 3] = \"BracketLeft\";\n Key2[Key2[\"BracketRight\"] = 4] = \"BracketRight\";\n Key2[Key2[\"Comma\"] = 5] = \"Comma\";\n Key2[Key2[\"Digit0\"] = 6] = \"Digit0\";\n Key2[Key2[\"Digit1\"] = 7] = \"Digit1\";\n Key2[Key2[\"Digit2\"] = 8] = \"Digit2\";\n Key2[Key2[\"Digit3\"] = 9] = \"Digit3\";\n Key2[Key2[\"Digit4\"] = 10] = \"Digit4\";\n Key2[Key2[\"Digit5\"] = 11] = \"Digit5\";\n Key2[Key2[\"Digit6\"] = 12] = \"Digit6\";\n Key2[Key2[\"Digit7\"] = 13] = \"Digit7\";\n Key2[Key2[\"Digit8\"] = 14] = \"Digit8\";\n Key2[Key2[\"Digit9\"] = 15] = \"Digit9\";\n Key2[Key2[\"Equal\"] = 16] = \"Equal\";\n Key2[Key2[\"IntlBackslash\"] = 17] = \"IntlBackslash\";\n Key2[Key2[\"IntlRo\"] = 18] = \"IntlRo\";\n Key2[Key2[\"IntlYen\"] = 19] = \"IntlYen\";\n Key2[Key2[\"KeyA\"] = 20] = \"KeyA\";\n Key2[Key2[\"KeyB\"] = 21] = \"KeyB\";\n Key2[Key2[\"KeyC\"] = 22] = \"KeyC\";\n Key2[Key2[\"KeyD\"] = 23] = \"KeyD\";\n Key2[Key2[\"KeyE\"] = 24] = \"KeyE\";\n Key2[Key2[\"KeyF\"] = 25] = \"KeyF\";\n Key2[Key2[\"KeyG\"] = 26] = \"KeyG\";\n Key2[Key2[\"KeyH\"] = 27] = \"KeyH\";\n Key2[Key2[\"KeyI\"] = 28] = \"KeyI\";\n Key2[Key2[\"KeyJ\"] = 29] = \"KeyJ\";\n Key2[Key2[\"KeyK\"] = 30] = \"KeyK\";\n Key2[Key2[\"KeyL\"] = 31] = \"KeyL\";\n Key2[Key2[\"KeyM\"] = 32] = \"KeyM\";\n Key2[Key2[\"KeyN\"] = 33] = \"KeyN\";\n Key2[Key2[\"KeyO\"] = 34] = \"KeyO\";\n Key2[Key2[\"KeyP\"] = 35] = \"KeyP\";\n Key2[Key2[\"KeyQ\"] = 36] = \"KeyQ\";\n Key2[Key2[\"KeyR\"] = 37] = \"KeyR\";\n Key2[Key2[\"KeyS\"] = 38] = \"KeyS\";\n Key2[Key2[\"KeyT\"] = 39] = \"KeyT\";\n Key2[Key2[\"KeyU\"] = 40] = \"KeyU\";\n Key2[Key2[\"KeyV\"] = 41] = \"KeyV\";\n Key2[Key2[\"KeyW\"] = 42] = \"KeyW\";\n Key2[Key2[\"KeyX\"] = 43] = \"KeyX\";\n Key2[Key2[\"KeyY\"] = 44] = \"KeyY\";\n Key2[Key2[\"KeyZ\"] = 45] = \"KeyZ\";\n Key2[Key2[\"Minus\"] = 46] = \"Minus\";\n Key2[Key2[\"Period\"] = 47] = \"Period\";\n Key2[Key2[\"Quote\"] = 48] = \"Quote\";\n Key2[Key2[\"Semicolon\"] = 49] = \"Semicolon\";\n Key2[Key2[\"Slash\"] = 50] = \"Slash\";\n Key2[Key2[\"AltLeft\"] = 51] = \"AltLeft\";\n Key2[Key2[\"AltRight\"] = 52] = \"AltRight\";\n Key2[Key2[\"Backspace\"] = 53] = \"Backspace\";\n Key2[Key2[\"CapsLock\"] = 54] = \"CapsLock\";\n Key2[Key2[\"ContextMenu\"] = 55] = \"ContextMenu\";\n Key2[Key2[\"ControlLeft\"] = 56] = \"ControlLeft\";\n Key2[Key2[\"ControlRight\"] = 57] = \"ControlRight\";\n Key2[Key2[\"Enter\"] = 58] = \"Enter\";\n Key2[Key2[\"MetaLeft\"] = 59] = \"MetaLeft\";\n Key2[Key2[\"MetaRight\"] = 60] = \"MetaRight\";\n Key2[Key2[\"ShiftLeft\"] = 61] = \"ShiftLeft\";\n Key2[Key2[\"ShiftRight\"] = 62] = \"ShiftRight\";\n Key2[Key2[\"Space\"] = 63] = \"Space\";\n Key2[Key2[\"Tab\"] = 64] = \"Tab\";\n Key2[Key2[\"Convert\"] = 65] = \"Convert\";\n Key2[Key2[\"KanaMode\"] = 66] = \"KanaMode\";\n Key2[Key2[\"Lang1\"] = 67] = \"Lang1\";\n Key2[Key2[\"Lang2\"] = 68] = \"Lang2\";\n Key2[Key2[\"Lang3\"] = 69] = \"Lang3\";\n Key2[Key2[\"Lang4\"] = 70] = \"Lang4\";\n Key2[Key2[\"Lang5\"] = 71] = \"Lang5\";\n Key2[Key2[\"NonConvert\"] = 72] = \"NonConvert\";\n Key2[Key2[\"Delete\"] = 73] = \"Delete\";\n Key2[Key2[\"End\"] = 74] = \"End\";\n Key2[Key2[\"Help\"] = 75] = \"Help\";\n Key2[Key2[\"Home\"] = 76] = \"Home\";\n Key2[Key2[\"Insert\"] = 77] = \"Insert\";\n Key2[Key2[\"PageDown\"] = 78] = \"PageDown\";\n Key2[Key2[\"PageUp\"] = 79] = \"PageUp\";\n Key2[Key2[\"ArrowDown\"] = 80] = \"ArrowDown\";\n Key2[Key2[\"ArrowLeft\"] = 81] = \"ArrowLeft\";\n Key2[Key2[\"ArrowRight\"] = 82] = \"ArrowRight\";\n Key2[Key2[\"ArrowUp\"] = 83] = \"ArrowUp\";\n Key2[Key2[\"NumLock\"] = 84] = \"NumLock\";\n Key2[Key2[\"Numpad0\"] = 85] = \"Numpad0\";\n Key2[Key2[\"Numpad1\"] = 86] = \"Numpad1\";\n Key2[Key2[\"Numpad2\"] = 87] = \"Numpad2\";\n Key2[Key2[\"Numpad3\"] = 88] = \"Numpad3\";\n Key2[Key2[\"Numpad4\"] = 89] = \"Numpad4\";\n Key2[Key2[\"Numpad5\"] = 90] = \"Numpad5\";\n Key2[Key2[\"Numpad6\"] = 91] = \"Numpad6\";\n Key2[Key2[\"Numpad7\"] = 92] = \"Numpad7\";\n Key2[Key2[\"Numpad8\"] = 93] = \"Numpad8\";\n Key2[Key2[\"Numpad9\"] = 94] = \"Numpad9\";\n Key2[Key2[\"NumpadAdd\"] = 95] = \"NumpadAdd\";\n Key2[Key2[\"NumpadBackspace\"] = 96] = \"NumpadBackspace\";\n Key2[Key2[\"NumpadClear\"] = 97] = \"NumpadClear\";\n Key2[Key2[\"NumpadClearEntry\"] = 98] = \"NumpadClearEntry\";\n Key2[Key2[\"NumpadComma\"] = 99] = \"NumpadComma\";\n Key2[Key2[\"NumpadDecimal\"] = 100] = \"NumpadDecimal\";\n Key2[Key2[\"NumpadDivide\"] = 101] = \"NumpadDivide\";\n Key2[Key2[\"NumpadEnter\"] = 102] = \"NumpadEnter\";\n Key2[Key2[\"NumpadEqual\"] = 103] = \"NumpadEqual\";\n Key2[Key2[\"NumpadHash\"] = 104] = \"NumpadHash\";\n Key2[Key2[\"NumpadMemoryAdd\"] = 105] = \"NumpadMemoryAdd\";\n Key2[Key2[\"NumpadMemoryClear\"] = 106] = \"NumpadMemoryClear\";\n Key2[Key2[\"NumpadMemoryRecall\"] = 107] = \"NumpadMemoryRecall\";\n Key2[Key2[\"NumpadMemoryStore\"] = 108] = \"NumpadMemoryStore\";\n Key2[Key2[\"NumpadMemorySubtract\"] = 109] = \"NumpadMemorySubtract\";\n Key2[Key2[\"NumpadMultiply\"] = 110] = \"NumpadMultiply\";\n Key2[Key2[\"NumpadParenLeft\"] = 111] = \"NumpadParenLeft\";\n Key2[Key2[\"NumpadParenRight\"] = 112] = \"NumpadParenRight\";\n Key2[Key2[\"NumpadStar\"] = 113] = \"NumpadStar\";\n Key2[Key2[\"NumpadSubtract\"] = 114] = \"NumpadSubtract\";\n Key2[Key2[\"Escape\"] = 115] = \"Escape\";\n Key2[Key2[\"Fn\"] = 116] = \"Fn\";\n Key2[Key2[\"FnLock\"] = 117] = \"FnLock\";\n Key2[Key2[\"PrintScreen\"] = 118] = \"PrintScreen\";\n Key2[Key2[\"ScrollLock\"] = 119] = \"ScrollLock\";\n Key2[Key2[\"Pause\"] = 120] = \"Pause\";\n Key2[Key2[\"BrowserBack\"] = 121] = \"BrowserBack\";\n Key2[Key2[\"BrowserFavorites\"] = 122] = \"BrowserFavorites\";\n Key2[Key2[\"BrowserForward\"] = 123] = \"BrowserForward\";\n Key2[Key2[\"BrowserHome\"] = 124] = \"BrowserHome\";\n Key2[Key2[\"BrowserRefresh\"] = 125] = \"BrowserRefresh\";\n Key2[Key2[\"BrowserSearch\"] = 126] = \"BrowserSearch\";\n Key2[Key2[\"BrowserStop\"] = 127] = \"BrowserStop\";\n Key2[Key2[\"Eject\"] = 128] = \"Eject\";\n Key2[Key2[\"LaunchApp1\"] = 129] = \"LaunchApp1\";\n Key2[Key2[\"LaunchApp2\"] = 130] = \"LaunchApp2\";\n Key2[Key2[\"LaunchMail\"] = 131] = \"LaunchMail\";\n Key2[Key2[\"MediaPlayPause\"] = 132] = \"MediaPlayPause\";\n Key2[Key2[\"MediaSelect\"] = 133] = \"MediaSelect\";\n Key2[Key2[\"MediaStop\"] = 134] = \"MediaStop\";\n Key2[Key2[\"MediaTrackNext\"] = 135] = \"MediaTrackNext\";\n Key2[Key2[\"MediaTrackPrevious\"] = 136] = \"MediaTrackPrevious\";\n Key2[Key2[\"Power\"] = 137] = \"Power\";\n Key2[Key2[\"Sleep\"] = 138] = \"Sleep\";\n Key2[Key2[\"AudioVolumeDown\"] = 139] = \"AudioVolumeDown\";\n Key2[Key2[\"AudioVolumeMute\"] = 140] = \"AudioVolumeMute\";\n Key2[Key2[\"AudioVolumeUp\"] = 141] = \"AudioVolumeUp\";\n Key2[Key2[\"WakeUp\"] = 142] = \"WakeUp\";\n Key2[Key2[\"Hyper\"] = 143] = \"Hyper\";\n Key2[Key2[\"Super\"] = 144] = \"Super\";\n Key2[Key2[\"Turbo\"] = 145] = \"Turbo\";\n Key2[Key2[\"Abort\"] = 146] = \"Abort\";\n Key2[Key2[\"Resume\"] = 147] = \"Resume\";\n Key2[Key2[\"Suspend\"] = 148] = \"Suspend\";\n Key2[Key2[\"Again\"] = 149] = \"Again\";\n Key2[Key2[\"Copy\"] = 150] = \"Copy\";\n Key2[Key2[\"Cut\"] = 151] = \"Cut\";\n Key2[Key2[\"Find\"] = 152] = \"Find\";\n Key2[Key2[\"Open\"] = 153] = \"Open\";\n Key2[Key2[\"Paste\"] = 154] = \"Paste\";\n Key2[Key2[\"Props\"] = 155] = \"Props\";\n Key2[Key2[\"Select\"] = 156] = \"Select\";\n Key2[Key2[\"Undo\"] = 157] = \"Undo\";\n Key2[Key2[\"Hiragana\"] = 158] = \"Hiragana\";\n Key2[Key2[\"Katakana\"] = 159] = \"Katakana\";\n Key2[Key2[\"F1\"] = 160] = \"F1\";\n Key2[Key2[\"F2\"] = 161] = \"F2\";\n Key2[Key2[\"F3\"] = 162] = \"F3\";\n Key2[Key2[\"F4\"] = 163] = \"F4\";\n Key2[Key2[\"F5\"] = 164] = \"F5\";\n Key2[Key2[\"F6\"] = 165] = \"F6\";\n Key2[Key2[\"F7\"] = 166] = \"F7\";\n Key2[Key2[\"F8\"] = 167] = \"F8\";\n Key2[Key2[\"F9\"] = 168] = \"F9\";\n Key2[Key2[\"F10\"] = 169] = \"F10\";\n Key2[Key2[\"F11\"] = 170] = \"F11\";\n Key2[Key2[\"F12\"] = 171] = \"F12\";\n Key2[Key2[\"F13\"] = 172] = \"F13\";\n Key2[Key2[\"F14\"] = 173] = \"F14\";\n Key2[Key2[\"F15\"] = 174] = \"F15\";\n Key2[Key2[\"F16\"] = 175] = \"F16\";\n Key2[Key2[\"F17\"] = 176] = \"F17\";\n Key2[Key2[\"F18\"] = 177] = \"F18\";\n Key2[Key2[\"F19\"] = 178] = \"F19\";\n Key2[Key2[\"F20\"] = 179] = \"F20\";\n Key2[Key2[\"F21\"] = 180] = \"F21\";\n Key2[Key2[\"F22\"] = 181] = \"F22\";\n Key2[Key2[\"F23\"] = 182] = \"F23\";\n Key2[Key2[\"F24\"] = 183] = \"F24\";\n Key2[Key2[\"F25\"] = 184] = \"F25\";\n Key2[Key2[\"F26\"] = 185] = \"F26\";\n Key2[Key2[\"F27\"] = 186] = \"F27\";\n Key2[Key2[\"F28\"] = 187] = \"F28\";\n Key2[Key2[\"F29\"] = 188] = \"F29\";\n Key2[Key2[\"F30\"] = 189] = \"F30\";\n Key2[Key2[\"F31\"] = 190] = \"F31\";\n Key2[Key2[\"F32\"] = 191] = \"F32\";\n Key2[Key2[\"F33\"] = 192] = \"F33\";\n Key2[Key2[\"F34\"] = 193] = \"F34\";\n Key2[Key2[\"F35\"] = 194] = \"F35\";\n})(Key ||= {});\nvar MOUSE_OFFSET = 256;\nvar MOUSE_BUTTONS_OFFSET = 16;\nvar KEYBOARD_OFFSET = 0;\nvar EVENT_PAYLOAD_SIZE = 8;\nvar EVENT_PAYLOAD_ALIGN = 4;\nfunction keyToKeyCode(key) {\n return Key[key];\n}\nfunction keyCodeToKey(code) {\n return Key[code];\n}\nfunction mouseButtonToMouseButtonCode(button) {\n return MouseButton[button];\n}\nfunction mouseButtonCodeToMouseButton(code) {\n return MouseButton[code];\n}\n\nclass InputContext {\n #dataView;\n #keys;\n #mouse;\n constructor(dataView) {\n if (dataView) {\n this.#dataView = dataView;\n }\n }\n get dataView() {\n if (!this.#dataView) {\n throw new Error(\"DataView is not initialized on InputContext\");\n }\n return this.#dataView;\n }\n set dataView(dataView) {\n this.#dataView = dataView;\n this.#keys = undefined;\n this.#mouse = undefined;\n }\n get keys() {\n if (!this.#keys) {\n this.#keys = new KeyboardContext(new DataView(this.dataView.buffer, this.dataView.byteOffset + KEYBOARD_OFFSET));\n }\n return this.#keys;\n }\n get mouse() {\n if (!this.#mouse) {\n this.#mouse = new MouseContext(new DataView(this.dataView.buffer, this.dataView.byteOffset + MOUSE_OFFSET));\n }\n return this.#mouse;\n }\n}\n\nclass MouseContext {\n #dataView;\n #buttonStates = new Map;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get x() {\n return this.#dataView.getFloat32(0, true);\n }\n get y() {\n return this.#dataView.getFloat32(4, true);\n }\n get wheel() {\n return { x: this.wheelX, y: this.wheelY };\n }\n get wheelX() {\n return this.#dataView.getFloat32(8, true);\n }\n get wheelY() {\n return this.#dataView.getFloat32(12, true);\n }\n get left() {\n return this.#buttonState(1);\n }\n get right() {\n return this.#buttonState(3);\n }\n get middle() {\n return this.#buttonState(2);\n }\n #buttonState(code) {\n let state;\n if (this.#buttonStates.has(code)) {\n state = this.#buttonStates.get(code);\n } else {\n state = { down: false, held: false, up: false };\n this.#buttonStates.set(code, state);\n }\n const offset = MOUSE_BUTTONS_OFFSET;\n state.held = !!(this.#dataView.getUint8(offset + code) & 1);\n state.down = state.held && !(this.#dataView.getUint8(offset + code) & 2);\n state.up = !state.held && !!(this.#dataView.getUint8(offset + code) & 2);\n return state;\n }\n}\n\nclass KeyboardContext {\n #dataView;\n #keystates = new Map;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get shift() {\n return this.shiftLeft || this.shiftRight;\n }\n get alt() {\n return this.altLeft || this.altRight;\n }\n get control() {\n return this.controlLeft || this.controlRight;\n }\n get meta() {\n return this.metaLeft || this.metaRight;\n }\n get backquote() {\n return this.#keystate(1);\n }\n get backslash() {\n return this.#keystate(2);\n }\n get bracketLeft() {\n return this.#keystate(3);\n }\n get bracketRight() {\n return this.#keystate(4);\n }\n get comma() {\n return this.#keystate(5);\n }\n get digit0() {\n return this.#keystate(6);\n }\n get digit1() {\n return this.#keystate(7);\n }\n get digit2() {\n return this.#keystate(8);\n }\n get digit3() {\n return this.#keystate(9);\n }\n get digit4() {\n return this.#keystate(10);\n }\n get digit5() {\n return this.#keystate(11);\n }\n get digit6() {\n return this.#keystate(12);\n }\n get digit7() {\n return this.#keystate(13);\n }\n get digit8() {\n return this.#keystate(14);\n }\n get digit9() {\n return this.#keystate(15);\n }\n get equal() {\n return this.#keystate(16);\n }\n get intlBackslash() {\n return this.#keystate(17);\n }\n get intlRo() {\n return this.#keystate(18);\n }\n get intlYen() {\n return this.#keystate(19);\n }\n get a() {\n return this.#keystate(20);\n }\n get b() {\n return this.#keystate(21);\n }\n get c() {\n return this.#keystate(22);\n }\n get d() {\n return this.#keystate(23);\n }\n get e() {\n return this.#keystate(24);\n }\n get f() {\n return this.#keystate(25);\n }\n get g() {\n return this.#keystate(26);\n }\n get h() {\n return this.#keystate(27);\n }\n get i() {\n return this.#keystate(28);\n }\n get j() {\n return this.#keystate(29);\n }\n get k() {\n return this.#keystate(30);\n }\n get l() {\n return this.#keystate(31);\n }\n get m() {\n return this.#keystate(32);\n }\n get n() {\n return this.#keystate(33);\n }\n get o() {\n return this.#keystate(34);\n }\n get p() {\n return this.#keystate(35);\n }\n get q() {\n return this.#keystate(36);\n }\n get r() {\n return this.#keystate(37);\n }\n get s() {\n return this.#keystate(38);\n }\n get t() {\n return this.#keystate(39);\n }\n get u() {\n return this.#keystate(40);\n }\n get v() {\n return this.#keystate(41);\n }\n get w() {\n return this.#keystate(42);\n }\n get x() {\n return this.#keystate(43);\n }\n get y() {\n return this.#keystate(44);\n }\n get z() {\n return this.#keystate(45);\n }\n get minus() {\n return this.#keystate(46);\n }\n get period() {\n return this.#keystate(47);\n }\n get quote() {\n return this.#keystate(48);\n }\n get semicolon() {\n return this.#keystate(49);\n }\n get slash() {\n return this.#keystate(50);\n }\n get altLeft() {\n return this.#keystate(51);\n }\n get altRight() {\n return this.#keystate(52);\n }\n get backspace() {\n return this.#keystate(53);\n }\n get capsLock() {\n return this.#keystate(54);\n }\n get contextMenu() {\n return this.#keystate(55);\n }\n get controlLeft() {\n return this.#keystate(56);\n }\n get controlRight() {\n return this.#keystate(57);\n }\n get enter() {\n return this.#keystate(58);\n }\n get metaLeft() {\n return this.#keystate(59);\n }\n get metaRight() {\n return this.#keystate(60);\n }\n get shiftLeft() {\n return this.#keystate(61);\n }\n get shiftRight() {\n return this.#keystate(62);\n }\n get space() {\n return this.#keystate(63);\n }\n get tab() {\n return this.#keystate(64);\n }\n get convert() {\n return this.#keystate(65);\n }\n get kanaMode() {\n return this.#keystate(66);\n }\n get lang1() {\n return this.#keystate(67);\n }\n get lang2() {\n return this.#keystate(68);\n }\n get lang3() {\n return this.#keystate(69);\n }\n get lang4() {\n return this.#keystate(70);\n }\n get lang5() {\n return this.#keystate(71);\n }\n get nonConvert() {\n return this.#keystate(72);\n }\n get delete() {\n return this.#keystate(73);\n }\n get end() {\n return this.#keystate(74);\n }\n get help() {\n return this.#keystate(75);\n }\n get home() {\n return this.#keystate(76);\n }\n get insert() {\n return this.#keystate(77);\n }\n get pageDown() {\n return this.#keystate(78);\n }\n get pageUp() {\n return this.#keystate(79);\n }\n get arrowDown() {\n return this.#keystate(80);\n }\n get arrowLeft() {\n return this.#keystate(81);\n }\n get arrowRight() {\n return this.#keystate(82);\n }\n get arrowUp() {\n return this.#keystate(83);\n }\n get numLock() {\n return this.#keystate(84);\n }\n get numpad0() {\n return this.#keystate(85);\n }\n get numpad1() {\n return this.#keystate(86);\n }\n get numpad2() {\n return this.#keystate(87);\n }\n get numpad3() {\n return this.#keystate(88);\n }\n get numpad4() {\n return this.#keystate(89);\n }\n get numpad5() {\n return this.#keystate(90);\n }\n get numpad6() {\n return this.#keystate(91);\n }\n get numpad7() {\n return this.#keystate(92);\n }\n get numpad8() {\n return this.#keystate(93);\n }\n get numpad9() {\n return this.#keystate(94);\n }\n get numpadAdd() {\n return this.#keystate(95);\n }\n get numpadBackspace() {\n return this.#keystate(96);\n }\n get numpadClear() {\n return this.#keystate(97);\n }\n get numpadClearEntry() {\n return this.#keystate(98);\n }\n get numpadComma() {\n return this.#keystate(99);\n }\n get numpadDecimal() {\n return this.#keystate(100);\n }\n get numpadDivide() {\n return this.#keystate(101);\n }\n get numpadEnter() {\n return this.#keystate(102);\n }\n get numpadEqual() {\n return this.#keystate(103);\n }\n get numpadHash() {\n return this.#keystate(104);\n }\n get numpadMemoryAdd() {\n return this.#keystate(105);\n }\n get numpadMemoryClear() {\n return this.#keystate(106);\n }\n get numpadMemoryRecall() {\n return this.#keystate(107);\n }\n get numpadMemoryStore() {\n return this.#keystate(108);\n }\n get numpadMemorySubtract() {\n return this.#keystate(109);\n }\n get numpadMultiply() {\n return this.#keystate(110);\n }\n get numpadParenLeft() {\n return this.#keystate(111);\n }\n get numpadParenRight() {\n return this.#keystate(112);\n }\n get numpadStar() {\n return this.#keystate(113);\n }\n get numpadSubtract() {\n return this.#keystate(114);\n }\n get escape() {\n return this.#keystate(115);\n }\n get fn() {\n return this.#keystate(116);\n }\n get fnLock() {\n return this.#keystate(117);\n }\n get printScreen() {\n return this.#keystate(118);\n }\n get scrollLock() {\n return this.#keystate(119);\n }\n get pause() {\n return this.#keystate(120);\n }\n get browserBack() {\n return this.#keystate(121);\n }\n get browserFavorites() {\n return this.#keystate(122);\n }\n get browserForward() {\n return this.#keystate(123);\n }\n get browserHome() {\n return this.#keystate(124);\n }\n get browserRefresh() {\n return this.#keystate(125);\n }\n get browserSearch() {\n return this.#keystate(126);\n }\n get browserStop() {\n return this.#keystate(127);\n }\n get eject() {\n return this.#keystate(128);\n }\n get launchApp1() {\n return this.#keystate(129);\n }\n get launchApp2() {\n return this.#keystate(130);\n }\n get launchMail() {\n return this.#keystate(131);\n }\n get mediaPlayPause() {\n return this.#keystate(132);\n }\n get mediaSelect() {\n return this.#keystate(133);\n }\n get mediaStop() {\n return this.#keystate(134);\n }\n get mediaTrackNext() {\n return this.#keystate(135);\n }\n get mediaTrackPrevious() {\n return this.#keystate(136);\n }\n get power() {\n return this.#keystate(137);\n }\n get sleep() {\n return this.#keystate(138);\n }\n get audioVolumeDown() {\n return this.#keystate(139);\n }\n get audioVolumeMute() {\n return this.#keystate(140);\n }\n get audioVolumeUp() {\n return this.#keystate(141);\n }\n get wakeUp() {\n return this.#keystate(142);\n }\n get hyper() {\n return this.#keystate(143);\n }\n get super() {\n return this.#keystate(144);\n }\n get turbo() {\n return this.#keystate(145);\n }\n get abort() {\n return this.#keystate(146);\n }\n get resume() {\n return this.#keystate(147);\n }\n get suspend() {\n return this.#keystate(148);\n }\n get again() {\n return this.#keystate(149);\n }\n get copy() {\n return this.#keystate(150);\n }\n get cut() {\n return this.#keystate(151);\n }\n get find() {\n return this.#keystate(152);\n }\n get open() {\n return this.#keystate(153);\n }\n get paste() {\n return this.#keystate(154);\n }\n get props() {\n return this.#keystate(155);\n }\n get select() {\n return this.#keystate(156);\n }\n get undo() {\n return this.#keystate(157);\n }\n get hiragana() {\n return this.#keystate(158);\n }\n get katakana() {\n return this.#keystate(159);\n }\n get f1() {\n return this.#keystate(160);\n }\n get f2() {\n return this.#keystate(161);\n }\n get f3() {\n return this.#keystate(162);\n }\n get f4() {\n return this.#keystate(163);\n }\n get f5() {\n return this.#keystate(164);\n }\n get f6() {\n return this.#keystate(165);\n }\n get f7() {\n return this.#keystate(166);\n }\n get f8() {\n return this.#keystate(167);\n }\n get f9() {\n return this.#keystate(168);\n }\n get f10() {\n return this.#keystate(169);\n }\n get f11() {\n return this.#keystate(170);\n }\n get f12() {\n return this.#keystate(171);\n }\n get f13() {\n return this.#keystate(172);\n }\n get f14() {\n return this.#keystate(173);\n }\n get f15() {\n return this.#keystate(174);\n }\n get f16() {\n return this.#keystate(175);\n }\n get f17() {\n return this.#keystate(176);\n }\n get f18() {\n return this.#keystate(177);\n }\n get f19() {\n return this.#keystate(178);\n }\n get f20() {\n return this.#keystate(179);\n }\n get f21() {\n return this.#keystate(180);\n }\n get f22() {\n return this.#keystate(181);\n }\n get f23() {\n return this.#keystate(182);\n }\n get f24() {\n return this.#keystate(183);\n }\n get f25() {\n return this.#keystate(184);\n }\n get f26() {\n return this.#keystate(185);\n }\n get f27() {\n return this.#keystate(186);\n }\n get f28() {\n return this.#keystate(187);\n }\n get f29() {\n return this.#keystate(188);\n }\n get f30() {\n return this.#keystate(189);\n }\n get f31() {\n return this.#keystate(190);\n }\n get f32() {\n return this.#keystate(191);\n }\n get f33() {\n return this.#keystate(192);\n }\n get f34() {\n return this.#keystate(193);\n }\n get f35() {\n return this.#keystate(194);\n }\n #keystate(code) {\n let state;\n if (this.#keystates.has(code)) {\n state = this.#keystates.get(code);\n } else {\n state = { down: false, held: false, up: false };\n this.#keystates.set(code, state);\n }\n state.held = !!(this.#dataView.getUint8(code) & 1);\n state.down = state.held && !(this.#dataView.getUint8(code) & 2);\n state.up = !state.held && !!(this.#dataView.getUint8(code) & 2);\n return state;\n }\n}\n\nclass TimeContext {\n dataView;\n constructor(dataView) {\n this.dataView = dataView;\n }\n get frame() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(0, true);\n }\n get dt() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(4, true) / 1000;\n }\n get time() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(8, true) / 1000;\n }\n}\nvar DEFAULT_WASM_URL = new URL(\"../wasm/bloop.wasm\", import.meta.url);\nvar TIME_CTX_OFFSET = 0;\nvar INPUT_CTX_OFFSET = TIME_CTX_OFFSET + 4;\nvar EVENTS_OFFSET = INPUT_CTX_OFFSET + 4;\nvar SNAPSHOT_HEADER_LEN = 16;\nvar SNAPSHOT_HEADER_USER_LEN_OFFSET = 4;\nvar SNAPSHOT_HEADER_ENGINE_LEN_OFFSET = 8;\n// src/sim.ts\nvar originalConsole = globalThis.console;\nvar noop = () => {};\nvar stubConsole = Object.fromEntries(Object.keys(originalConsole).map((key) => [key, noop]));\nfunction muteConsole() {\n globalThis.console = stubConsole;\n}\nfunction unmuteConsole() {\n globalThis.console = originalConsole;\n}\n\nclass Sim {\n wasm;\n id;\n #memory;\n #time;\n #serialize;\n #isPaused = false;\n constructor(wasm, memory, opts) {\n this.wasm = wasm;\n this.#memory = memory;\n this.#time = new TimeContext(new DataView(this.#memory.buffer, this.wasm.get_time_ctx()));\n this.id = `${Math.floor(Math.random() * 1e6)}`;\n this.#serialize = opts?.serialize;\n }\n step(ms) {\n if (this.#isPaused && !this.isReplaying) {\n return 0;\n }\n return this.wasm.step(ms ?? 16);\n }\n tick() {\n this.wasm.tick();\n }\n cloneSession(source) {\n this.loadTape(source.saveTape());\n this.restore(source.snapshot());\n }\n pause() {\n this.#isPaused = true;\n }\n unpause() {\n this.#isPaused = false;\n }\n get isPaused() {\n return this.#isPaused;\n }\n stepBack() {\n if (this.time.frame === 0) {\n return;\n }\n this.seek(this.time.frame - 1);\n }\n seek(frame, inclusive) {\n assert(this.hasHistory, \"Not recording or playing back, can't seek to frame\");\n const targetFrame = inclusive ? frame + 1 : frame;\n const shouldMute = frame < this.time.frame;\n if (shouldMute) {\n muteConsole();\n }\n this.wasm.seek(targetFrame);\n if (shouldMute) {\n unmuteConsole();\n }\n }\n record() {\n const serializer = this.#serialize ? this.#serialize() : null;\n const size = serializer ? serializer.size : 0;\n const result = this.wasm.start_recording(size, 1024);\n if (result !== 0) {\n throw new Error(`failed to start recording, error code=${result}`);\n }\n }\n snapshot() {\n const serializer = this.#serialize ? this.#serialize() : null;\n const size = serializer ? serializer.size : 0;\n const ptr = this.wasm.take_snapshot(size);\n const header = new Uint32Array(this.#memory.buffer, ptr, 4);\n const userLenIndex = SNAPSHOT_HEADER_USER_LEN_OFFSET / Uint32Array.BYTES_PER_ELEMENT;\n const engineLenIndex = SNAPSHOT_HEADER_ENGINE_LEN_OFFSET / Uint32Array.BYTES_PER_ELEMENT;\n assert(header[userLenIndex], `header user length missing`);\n assert(header[engineLenIndex], `header engine length missing`);\n const length = header[userLenIndex] + header[engineLenIndex];\n const memoryView = new Uint8Array(this.#memory.buffer, ptr, length);\n const copy = new Uint8Array(length);\n copy.set(memoryView);\n return copy;\n }\n saveTape() {\n const tapeLen = this.wasm.get_tape_len();\n const tapePtr = this.wasm.get_tape_ptr();\n const memoryView = new Uint8Array(this.#memory.buffer, tapePtr, tapeLen);\n const copy = new Uint8Array(tapeLen);\n copy.set(memoryView);\n return copy;\n }\n loadTape(tape) {\n const tapePtr = this.wasm.alloc(tape.byteLength);\n assert(tapePtr > 0, `failed to allocate ${tape.byteLength} bytes for tape load, pointer=${tapePtr}`);\n const memoryView = new Uint8Array(this.#memory.buffer, tapePtr, tape.byteLength);\n memoryView.set(tape);\n this.wasm.stop_recording();\n const result = this.wasm.load_tape(tapePtr, tape.byteLength);\n assert(result === 0, `failed to load tape, error code=${result}`);\n this.wasm.free(tapePtr, tape.byteLength);\n }\n restore(snapshot) {\n const dataPtr = this.wasm.alloc(snapshot.byteLength);\n assert(dataPtr > 0, `failed to allocate ${snapshot.byteLength} bytes for snapshot restore, pointer=${dataPtr}`);\n const memoryView = new Uint8Array(this.#memory.buffer, dataPtr, snapshot.byteLength);\n memoryView.set(snapshot);\n this.wasm.restore(dataPtr);\n this.wasm.free(dataPtr, snapshot.byteLength);\n }\n unmount() {\n this.wasm.deinit();\n }\n get time() {\n if (!this.#time.dataView || this.#time.dataView.buffer !== this.#memory.buffer) {\n this.#time.dataView = new DataView(this.#memory.buffer, this.wasm.get_time_ctx());\n }\n return this.#time;\n }\n get buffer() {\n return this.#memory.buffer;\n }\n get isRecording() {\n return this.wasm.is_recording();\n }\n get isReplaying() {\n return this.wasm.is_replaying();\n }\n get hasHistory() {\n return this.isRecording || this.isReplaying;\n }\n emit = {\n keydown: (key) => {\n this.wasm.emit_keydown(keyToKeyCode(key));\n },\n keyup: (key) => {\n this.wasm.emit_keyup(keyToKeyCode(key));\n },\n mousemove: (x, y) => {\n this.wasm.emit_mousemove(x, y);\n },\n mousedown: (button) => {\n this.wasm.emit_mousedown(mouseButtonToMouseButtonCode(button));\n },\n mouseup: (button) => {\n this.wasm.emit_mouseup(mouseButtonToMouseButtonCode(button));\n },\n mousewheel: (x, y) => {\n this.wasm.emit_mousewheel(x, y);\n }\n };\n}\n\n// src/mount.ts\nasync function mount(opts) {\n const bytes = await fetch(opts.wasmUrl ?? DEFAULT_WASM_URL).then((res) => res.arrayBuffer()).catch((e) => {\n console.error(`Failed to fetch wasm at ${opts.wasmUrl ?? DEFAULT_WASM_URL}`, e);\n throw e;\n });\n const memory = new WebAssembly.Memory({ initial: 17, maximum: 1000 });\n const wasmInstantiatedSource = await WebAssembly.instantiate(bytes, {\n env: {\n memory,\n __cb: function(system_handle, ptr) {\n opts.hooks.setBuffer(memory.buffer);\n opts.hooks.systemsCallback(system_handle, ptr);\n },\n __before_frame: function(frame) {\n try {\n opts.hooks.beforeFrame?.(frame);\n } catch (e) {\n console.error(\"Error in beforeFrame hook:\", e);\n }\n },\n console_log: function(ptr, len) {\n const bytes2 = new Uint8Array(memory.buffer, ptr, len);\n const string = new TextDecoder(\"utf-8\").decode(bytes2);\n console.log(string);\n },\n user_data_len: function() {\n const serializer = opts.hooks.serialize();\n return serializer ? serializer.size : 0;\n },\n user_data_serialize: function(ptr, len) {\n const serializer = opts.hooks.serialize();\n assert(len === serializer.size, `user_data_serialize length mismatch, expected=${serializer.size} got=${len}`);\n serializer.write(memory.buffer, ptr);\n },\n user_data_deserialize: function(ptr, len) {\n opts.hooks.deserialize(memory.buffer, ptr, len);\n }\n }\n });\n const wasm = wasmInstantiatedSource.instance.exports;\n const enginePointer = wasm.initialize();\n const sim = new Sim(wasm, memory, {\n serialize: opts.hooks.serialize\n });\n if (opts.startRecording ?? true) {\n sim.record();\n }\n opts.hooks.setBuffer(memory.buffer);\n opts.hooks.setContext(enginePointer);\n return {\n sim\n };\n}\n// src/bloop.ts\nclass Bloop {\n #systems = [];\n #context;\n #engineBuffer = new ArrayBuffer(0);\n static create(opts = {}) {\n return new Bloop(opts, \"dontCallMeDirectly\");\n }\n constructor(opts = {}, dontCallMeDirectly) {\n if (dontCallMeDirectly !== \"dontCallMeDirectly\") {\n throw new Error(\"Bloop constructor is private. Use Bloop.create() to create a new game instance.\");\n }\n this.#context = {\n bag: opts.bag ?? {},\n time: new TimeContext,\n inputs: new InputContext,\n rawPointer: -1\n };\n }\n get bag() {\n return this.#context.bag;\n }\n get context() {\n return this.#context;\n }\n system(label, system) {\n system.label ??= label;\n this.#systems.push(system);\n return this.#systems.length;\n }\n hooks = {\n serialize: () => {\n const str = JSON.stringify(this.#context.bag);\n const encoder = new TextEncoder;\n const textBytes = encoder.encode(str);\n return {\n size: textBytes.byteLength,\n write: (buffer, ptr) => {\n const memoryView = new Uint8Array(buffer, ptr, textBytes.byteLength);\n memoryView.set(textBytes);\n }\n };\n },\n deserialize: (buffer, ptr, len) => {\n const bagBytes = new Uint8Array(buffer, ptr, len);\n const decoder = new TextDecoder;\n const str = decoder.decode(bagBytes);\n try {\n this.#context.bag = JSON.parse(str);\n } catch (e) {\n console.error(\"failed to deserialize bag\", { json: str, error: e });\n }\n },\n setBuffer: (buffer) => {\n this.#engineBuffer = buffer;\n },\n setContext: (ptr) => {\n if (!this.#engineBuffer) {\n throw new Error(\"Tried to set context before engine buffer\");\n }\n const dv = new DataView(this.#engineBuffer, ptr);\n const timeCtxPtr = dv.getUint32(TIME_CTX_OFFSET, true);\n const inputCtxPtr = dv.getUint32(INPUT_CTX_OFFSET, true);\n this.#context.rawPointer = ptr;\n this.#context.inputs.dataView = new DataView(this.#engineBuffer, inputCtxPtr);\n this.#context.time.dataView = new DataView(this.#engineBuffer, timeCtxPtr);\n },\n systemsCallback: (system_handle, ptr) => {\n this.hooks.setContext(ptr);\n const dv = new DataView(this.#engineBuffer, ptr);\n const eventsPtr = dv.getUint32(EVENTS_OFFSET, true);\n const eventsDataView = new DataView(this.#engineBuffer, eventsPtr);\n for (const system of this.#systems) {\n system.update?.(this.#context);\n const eventCount = eventsDataView.getUint32(0, true);\n let offset = Uint32Array.BYTES_PER_ELEMENT;\n for (let i = 0;i < eventCount; i++) {\n const eventType = eventsDataView.getUint8(offset);\n const payloadSize = EVENT_PAYLOAD_SIZE;\n const payloadByte = eventsDataView.getUint8(offset + EVENT_PAYLOAD_ALIGN);\n const payloadVec2 = {\n x: eventsDataView.getFloat32(offset + EVENT_PAYLOAD_ALIGN, true),\n y: eventsDataView.getFloat32(offset + EVENT_PAYLOAD_ALIGN + Float32Array.BYTES_PER_ELEMENT, true)\n };\n switch (eventType) {\n case exports_enums.EventType.KeyDown: {\n system.keydown?.(attachEvent(this.#context, {\n key: keyCodeToKey(payloadByte)\n }));\n break;\n }\n case exports_enums.EventType.KeyUp:\n system.keyup?.(attachEvent(this.#context, {\n key: keyCodeToKey(payloadByte)\n }));\n break;\n case exports_enums.EventType.MouseDown:\n system.mousedown?.(attachEvent(this.#context, {\n button: mouseButtonCodeToMouseButton(payloadByte)\n }));\n break;\n case exports_enums.EventType.MouseUp:\n system.mouseup?.(attachEvent(this.#context, {\n button: mouseButtonCodeToMouseButton(payloadByte)\n }));\n break;\n case exports_enums.EventType.MouseMove:\n system.mousemove?.(attachEvent(this.#context, {\n x: payloadVec2.x,\n y: payloadVec2.y\n }));\n break;\n case exports_enums.EventType.MouseWheel:\n system.mousewheel?.(attachEvent(this.#context, {\n x: payloadVec2.x,\n y: payloadVec2.y\n }));\n break;\n default:\n throw new Error(`Unknown event type: ${eventType}`);\n }\n offset += EVENT_PAYLOAD_ALIGN + EVENT_PAYLOAD_SIZE;\n }\n this.#context.event = undefined;\n }\n }\n };\n}\nfunction attachEvent(context, event) {\n context.event = event;\n return context;\n}\nexport {\n unwrap,\n mount,\n assert,\n exports_util as Util,\n Sim,\n exports_engine as Engine,\n Bloop\n};\n\n//# debugId=7CF5EBB522CCF56A64756E2164756E21\n//# sourceMappingURL=mod.js.map\n",
6
- "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\n\n// js/codegen/enums.ts\nvar exports_enums = {};\n__export(exports_enums, {\n MouseButton: () => MouseButton,\n Key: () => Key,\n EventType: () => EventType\n});\nvar EventType;\n((EventType2) => {\n EventType2[EventType2[\"None\"] = 0] = \"None\";\n EventType2[EventType2[\"KeyDown\"] = 1] = \"KeyDown\";\n EventType2[EventType2[\"KeyUp\"] = 2] = \"KeyUp\";\n EventType2[EventType2[\"MouseMove\"] = 3] = \"MouseMove\";\n EventType2[EventType2[\"MouseDown\"] = 4] = \"MouseDown\";\n EventType2[EventType2[\"MouseUp\"] = 5] = \"MouseUp\";\n EventType2[EventType2[\"MouseWheel\"] = 6] = \"MouseWheel\";\n EventType2[EventType2[\"FrameStart\"] = 7] = \"FrameStart\";\n})(EventType ||= {});\nvar MouseButton;\n((MouseButton2) => {\n MouseButton2[MouseButton2[\"None\"] = 0] = \"None\";\n MouseButton2[MouseButton2[\"Left\"] = 1] = \"Left\";\n MouseButton2[MouseButton2[\"Middle\"] = 2] = \"Middle\";\n MouseButton2[MouseButton2[\"Right\"] = 3] = \"Right\";\n MouseButton2[MouseButton2[\"X1\"] = 4] = \"X1\";\n MouseButton2[MouseButton2[\"X2\"] = 5] = \"X2\";\n MouseButton2[MouseButton2[\"X3\"] = 6] = \"X3\";\n MouseButton2[MouseButton2[\"X4\"] = 7] = \"X4\";\n MouseButton2[MouseButton2[\"X5\"] = 8] = \"X5\";\n})(MouseButton ||= {});\nvar Key;\n((Key2) => {\n Key2[Key2[\"None\"] = 0] = \"None\";\n Key2[Key2[\"Backquote\"] = 1] = \"Backquote\";\n Key2[Key2[\"Backslash\"] = 2] = \"Backslash\";\n Key2[Key2[\"BracketLeft\"] = 3] = \"BracketLeft\";\n Key2[Key2[\"BracketRight\"] = 4] = \"BracketRight\";\n Key2[Key2[\"Comma\"] = 5] = \"Comma\";\n Key2[Key2[\"Digit0\"] = 6] = \"Digit0\";\n Key2[Key2[\"Digit1\"] = 7] = \"Digit1\";\n Key2[Key2[\"Digit2\"] = 8] = \"Digit2\";\n Key2[Key2[\"Digit3\"] = 9] = \"Digit3\";\n Key2[Key2[\"Digit4\"] = 10] = \"Digit4\";\n Key2[Key2[\"Digit5\"] = 11] = \"Digit5\";\n Key2[Key2[\"Digit6\"] = 12] = \"Digit6\";\n Key2[Key2[\"Digit7\"] = 13] = \"Digit7\";\n Key2[Key2[\"Digit8\"] = 14] = \"Digit8\";\n Key2[Key2[\"Digit9\"] = 15] = \"Digit9\";\n Key2[Key2[\"Equal\"] = 16] = \"Equal\";\n Key2[Key2[\"IntlBackslash\"] = 17] = \"IntlBackslash\";\n Key2[Key2[\"IntlRo\"] = 18] = \"IntlRo\";\n Key2[Key2[\"IntlYen\"] = 19] = \"IntlYen\";\n Key2[Key2[\"KeyA\"] = 20] = \"KeyA\";\n Key2[Key2[\"KeyB\"] = 21] = \"KeyB\";\n Key2[Key2[\"KeyC\"] = 22] = \"KeyC\";\n Key2[Key2[\"KeyD\"] = 23] = \"KeyD\";\n Key2[Key2[\"KeyE\"] = 24] = \"KeyE\";\n Key2[Key2[\"KeyF\"] = 25] = \"KeyF\";\n Key2[Key2[\"KeyG\"] = 26] = \"KeyG\";\n Key2[Key2[\"KeyH\"] = 27] = \"KeyH\";\n Key2[Key2[\"KeyI\"] = 28] = \"KeyI\";\n Key2[Key2[\"KeyJ\"] = 29] = \"KeyJ\";\n Key2[Key2[\"KeyK\"] = 30] = \"KeyK\";\n Key2[Key2[\"KeyL\"] = 31] = \"KeyL\";\n Key2[Key2[\"KeyM\"] = 32] = \"KeyM\";\n Key2[Key2[\"KeyN\"] = 33] = \"KeyN\";\n Key2[Key2[\"KeyO\"] = 34] = \"KeyO\";\n Key2[Key2[\"KeyP\"] = 35] = \"KeyP\";\n Key2[Key2[\"KeyQ\"] = 36] = \"KeyQ\";\n Key2[Key2[\"KeyR\"] = 37] = \"KeyR\";\n Key2[Key2[\"KeyS\"] = 38] = \"KeyS\";\n Key2[Key2[\"KeyT\"] = 39] = \"KeyT\";\n Key2[Key2[\"KeyU\"] = 40] = \"KeyU\";\n Key2[Key2[\"KeyV\"] = 41] = \"KeyV\";\n Key2[Key2[\"KeyW\"] = 42] = \"KeyW\";\n Key2[Key2[\"KeyX\"] = 43] = \"KeyX\";\n Key2[Key2[\"KeyY\"] = 44] = \"KeyY\";\n Key2[Key2[\"KeyZ\"] = 45] = \"KeyZ\";\n Key2[Key2[\"Minus\"] = 46] = \"Minus\";\n Key2[Key2[\"Period\"] = 47] = \"Period\";\n Key2[Key2[\"Quote\"] = 48] = \"Quote\";\n Key2[Key2[\"Semicolon\"] = 49] = \"Semicolon\";\n Key2[Key2[\"Slash\"] = 50] = \"Slash\";\n Key2[Key2[\"AltLeft\"] = 51] = \"AltLeft\";\n Key2[Key2[\"AltRight\"] = 52] = \"AltRight\";\n Key2[Key2[\"Backspace\"] = 53] = \"Backspace\";\n Key2[Key2[\"CapsLock\"] = 54] = \"CapsLock\";\n Key2[Key2[\"ContextMenu\"] = 55] = \"ContextMenu\";\n Key2[Key2[\"ControlLeft\"] = 56] = \"ControlLeft\";\n Key2[Key2[\"ControlRight\"] = 57] = \"ControlRight\";\n Key2[Key2[\"Enter\"] = 58] = \"Enter\";\n Key2[Key2[\"MetaLeft\"] = 59] = \"MetaLeft\";\n Key2[Key2[\"MetaRight\"] = 60] = \"MetaRight\";\n Key2[Key2[\"ShiftLeft\"] = 61] = \"ShiftLeft\";\n Key2[Key2[\"ShiftRight\"] = 62] = \"ShiftRight\";\n Key2[Key2[\"Space\"] = 63] = \"Space\";\n Key2[Key2[\"Tab\"] = 64] = \"Tab\";\n Key2[Key2[\"Convert\"] = 65] = \"Convert\";\n Key2[Key2[\"KanaMode\"] = 66] = \"KanaMode\";\n Key2[Key2[\"Lang1\"] = 67] = \"Lang1\";\n Key2[Key2[\"Lang2\"] = 68] = \"Lang2\";\n Key2[Key2[\"Lang3\"] = 69] = \"Lang3\";\n Key2[Key2[\"Lang4\"] = 70] = \"Lang4\";\n Key2[Key2[\"Lang5\"] = 71] = \"Lang5\";\n Key2[Key2[\"NonConvert\"] = 72] = \"NonConvert\";\n Key2[Key2[\"Delete\"] = 73] = \"Delete\";\n Key2[Key2[\"End\"] = 74] = \"End\";\n Key2[Key2[\"Help\"] = 75] = \"Help\";\n Key2[Key2[\"Home\"] = 76] = \"Home\";\n Key2[Key2[\"Insert\"] = 77] = \"Insert\";\n Key2[Key2[\"PageDown\"] = 78] = \"PageDown\";\n Key2[Key2[\"PageUp\"] = 79] = \"PageUp\";\n Key2[Key2[\"ArrowDown\"] = 80] = \"ArrowDown\";\n Key2[Key2[\"ArrowLeft\"] = 81] = \"ArrowLeft\";\n Key2[Key2[\"ArrowRight\"] = 82] = \"ArrowRight\";\n Key2[Key2[\"ArrowUp\"] = 83] = \"ArrowUp\";\n Key2[Key2[\"NumLock\"] = 84] = \"NumLock\";\n Key2[Key2[\"Numpad0\"] = 85] = \"Numpad0\";\n Key2[Key2[\"Numpad1\"] = 86] = \"Numpad1\";\n Key2[Key2[\"Numpad2\"] = 87] = \"Numpad2\";\n Key2[Key2[\"Numpad3\"] = 88] = \"Numpad3\";\n Key2[Key2[\"Numpad4\"] = 89] = \"Numpad4\";\n Key2[Key2[\"Numpad5\"] = 90] = \"Numpad5\";\n Key2[Key2[\"Numpad6\"] = 91] = \"Numpad6\";\n Key2[Key2[\"Numpad7\"] = 92] = \"Numpad7\";\n Key2[Key2[\"Numpad8\"] = 93] = \"Numpad8\";\n Key2[Key2[\"Numpad9\"] = 94] = \"Numpad9\";\n Key2[Key2[\"NumpadAdd\"] = 95] = \"NumpadAdd\";\n Key2[Key2[\"NumpadBackspace\"] = 96] = \"NumpadBackspace\";\n Key2[Key2[\"NumpadClear\"] = 97] = \"NumpadClear\";\n Key2[Key2[\"NumpadClearEntry\"] = 98] = \"NumpadClearEntry\";\n Key2[Key2[\"NumpadComma\"] = 99] = \"NumpadComma\";\n Key2[Key2[\"NumpadDecimal\"] = 100] = \"NumpadDecimal\";\n Key2[Key2[\"NumpadDivide\"] = 101] = \"NumpadDivide\";\n Key2[Key2[\"NumpadEnter\"] = 102] = \"NumpadEnter\";\n Key2[Key2[\"NumpadEqual\"] = 103] = \"NumpadEqual\";\n Key2[Key2[\"NumpadHash\"] = 104] = \"NumpadHash\";\n Key2[Key2[\"NumpadMemoryAdd\"] = 105] = \"NumpadMemoryAdd\";\n Key2[Key2[\"NumpadMemoryClear\"] = 106] = \"NumpadMemoryClear\";\n Key2[Key2[\"NumpadMemoryRecall\"] = 107] = \"NumpadMemoryRecall\";\n Key2[Key2[\"NumpadMemoryStore\"] = 108] = \"NumpadMemoryStore\";\n Key2[Key2[\"NumpadMemorySubtract\"] = 109] = \"NumpadMemorySubtract\";\n Key2[Key2[\"NumpadMultiply\"] = 110] = \"NumpadMultiply\";\n Key2[Key2[\"NumpadParenLeft\"] = 111] = \"NumpadParenLeft\";\n Key2[Key2[\"NumpadParenRight\"] = 112] = \"NumpadParenRight\";\n Key2[Key2[\"NumpadStar\"] = 113] = \"NumpadStar\";\n Key2[Key2[\"NumpadSubtract\"] = 114] = \"NumpadSubtract\";\n Key2[Key2[\"Escape\"] = 115] = \"Escape\";\n Key2[Key2[\"Fn\"] = 116] = \"Fn\";\n Key2[Key2[\"FnLock\"] = 117] = \"FnLock\";\n Key2[Key2[\"PrintScreen\"] = 118] = \"PrintScreen\";\n Key2[Key2[\"ScrollLock\"] = 119] = \"ScrollLock\";\n Key2[Key2[\"Pause\"] = 120] = \"Pause\";\n Key2[Key2[\"BrowserBack\"] = 121] = \"BrowserBack\";\n Key2[Key2[\"BrowserFavorites\"] = 122] = \"BrowserFavorites\";\n Key2[Key2[\"BrowserForward\"] = 123] = \"BrowserForward\";\n Key2[Key2[\"BrowserHome\"] = 124] = \"BrowserHome\";\n Key2[Key2[\"BrowserRefresh\"] = 125] = \"BrowserRefresh\";\n Key2[Key2[\"BrowserSearch\"] = 126] = \"BrowserSearch\";\n Key2[Key2[\"BrowserStop\"] = 127] = \"BrowserStop\";\n Key2[Key2[\"Eject\"] = 128] = \"Eject\";\n Key2[Key2[\"LaunchApp1\"] = 129] = \"LaunchApp1\";\n Key2[Key2[\"LaunchApp2\"] = 130] = \"LaunchApp2\";\n Key2[Key2[\"LaunchMail\"] = 131] = \"LaunchMail\";\n Key2[Key2[\"MediaPlayPause\"] = 132] = \"MediaPlayPause\";\n Key2[Key2[\"MediaSelect\"] = 133] = \"MediaSelect\";\n Key2[Key2[\"MediaStop\"] = 134] = \"MediaStop\";\n Key2[Key2[\"MediaTrackNext\"] = 135] = \"MediaTrackNext\";\n Key2[Key2[\"MediaTrackPrevious\"] = 136] = \"MediaTrackPrevious\";\n Key2[Key2[\"Power\"] = 137] = \"Power\";\n Key2[Key2[\"Sleep\"] = 138] = \"Sleep\";\n Key2[Key2[\"AudioVolumeDown\"] = 139] = \"AudioVolumeDown\";\n Key2[Key2[\"AudioVolumeMute\"] = 140] = \"AudioVolumeMute\";\n Key2[Key2[\"AudioVolumeUp\"] = 141] = \"AudioVolumeUp\";\n Key2[Key2[\"WakeUp\"] = 142] = \"WakeUp\";\n Key2[Key2[\"Hyper\"] = 143] = \"Hyper\";\n Key2[Key2[\"Super\"] = 144] = \"Super\";\n Key2[Key2[\"Turbo\"] = 145] = \"Turbo\";\n Key2[Key2[\"Abort\"] = 146] = \"Abort\";\n Key2[Key2[\"Resume\"] = 147] = \"Resume\";\n Key2[Key2[\"Suspend\"] = 148] = \"Suspend\";\n Key2[Key2[\"Again\"] = 149] = \"Again\";\n Key2[Key2[\"Copy\"] = 150] = \"Copy\";\n Key2[Key2[\"Cut\"] = 151] = \"Cut\";\n Key2[Key2[\"Find\"] = 152] = \"Find\";\n Key2[Key2[\"Open\"] = 153] = \"Open\";\n Key2[Key2[\"Paste\"] = 154] = \"Paste\";\n Key2[Key2[\"Props\"] = 155] = \"Props\";\n Key2[Key2[\"Select\"] = 156] = \"Select\";\n Key2[Key2[\"Undo\"] = 157] = \"Undo\";\n Key2[Key2[\"Hiragana\"] = 158] = \"Hiragana\";\n Key2[Key2[\"Katakana\"] = 159] = \"Katakana\";\n Key2[Key2[\"F1\"] = 160] = \"F1\";\n Key2[Key2[\"F2\"] = 161] = \"F2\";\n Key2[Key2[\"F3\"] = 162] = \"F3\";\n Key2[Key2[\"F4\"] = 163] = \"F4\";\n Key2[Key2[\"F5\"] = 164] = \"F5\";\n Key2[Key2[\"F6\"] = 165] = \"F6\";\n Key2[Key2[\"F7\"] = 166] = \"F7\";\n Key2[Key2[\"F8\"] = 167] = \"F8\";\n Key2[Key2[\"F9\"] = 168] = \"F9\";\n Key2[Key2[\"F10\"] = 169] = \"F10\";\n Key2[Key2[\"F11\"] = 170] = \"F11\";\n Key2[Key2[\"F12\"] = 171] = \"F12\";\n Key2[Key2[\"F13\"] = 172] = \"F13\";\n Key2[Key2[\"F14\"] = 173] = \"F14\";\n Key2[Key2[\"F15\"] = 174] = \"F15\";\n Key2[Key2[\"F16\"] = 175] = \"F16\";\n Key2[Key2[\"F17\"] = 176] = \"F17\";\n Key2[Key2[\"F18\"] = 177] = \"F18\";\n Key2[Key2[\"F19\"] = 178] = \"F19\";\n Key2[Key2[\"F20\"] = 179] = \"F20\";\n Key2[Key2[\"F21\"] = 180] = \"F21\";\n Key2[Key2[\"F22\"] = 181] = \"F22\";\n Key2[Key2[\"F23\"] = 182] = \"F23\";\n Key2[Key2[\"F24\"] = 183] = \"F24\";\n Key2[Key2[\"F25\"] = 184] = \"F25\";\n Key2[Key2[\"F26\"] = 185] = \"F26\";\n Key2[Key2[\"F27\"] = 186] = \"F27\";\n Key2[Key2[\"F28\"] = 187] = \"F28\";\n Key2[Key2[\"F29\"] = 188] = \"F29\";\n Key2[Key2[\"F30\"] = 189] = \"F30\";\n Key2[Key2[\"F31\"] = 190] = \"F31\";\n Key2[Key2[\"F32\"] = 191] = \"F32\";\n Key2[Key2[\"F33\"] = 192] = \"F33\";\n Key2[Key2[\"F34\"] = 193] = \"F34\";\n Key2[Key2[\"F35\"] = 194] = \"F35\";\n})(Key ||= {});\n// js/inputs.ts\nvar MOUSE_OFFSET = 256;\nvar MOUSE_BUTTONS_OFFSET = 16;\nvar KEYBOARD_OFFSET = 0;\nvar EVENT_PAYLOAD_SIZE = 8;\nvar EVENT_PAYLOAD_ALIGN = 4;\nfunction keyToKeyCode(key) {\n return Key[key];\n}\nfunction keyCodeToKey(code) {\n return Key[code];\n}\nfunction mouseButtonToMouseButtonCode(button) {\n return MouseButton[button];\n}\nfunction mouseButtonCodeToMouseButton(code) {\n return MouseButton[code];\n}\n\n// js/contexts/inputContext.ts\nclass InputContext {\n #dataView;\n #keys;\n #mouse;\n constructor(dataView) {\n if (dataView) {\n this.#dataView = dataView;\n }\n }\n get dataView() {\n if (!this.#dataView) {\n throw new Error(\"DataView is not initialized on InputContext\");\n }\n return this.#dataView;\n }\n set dataView(dataView) {\n this.#dataView = dataView;\n this.#keys = undefined;\n this.#mouse = undefined;\n }\n get keys() {\n if (!this.#keys) {\n this.#keys = new KeyboardContext(new DataView(this.dataView.buffer, this.dataView.byteOffset + KEYBOARD_OFFSET));\n }\n return this.#keys;\n }\n get mouse() {\n if (!this.#mouse) {\n this.#mouse = new MouseContext(new DataView(this.dataView.buffer, this.dataView.byteOffset + MOUSE_OFFSET));\n }\n return this.#mouse;\n }\n}\n\nclass MouseContext {\n #dataView;\n #buttonStates = new Map;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get x() {\n return this.#dataView.getFloat32(0, true);\n }\n get y() {\n return this.#dataView.getFloat32(4, true);\n }\n get wheel() {\n return { x: this.wheelX, y: this.wheelY };\n }\n get wheelX() {\n return this.#dataView.getFloat32(8, true);\n }\n get wheelY() {\n return this.#dataView.getFloat32(12, true);\n }\n get left() {\n return this.#buttonState(1 /* Left */);\n }\n get right() {\n return this.#buttonState(3 /* Right */);\n }\n get middle() {\n return this.#buttonState(2 /* Middle */);\n }\n #buttonState(code) {\n let state;\n if (this.#buttonStates.has(code)) {\n state = this.#buttonStates.get(code);\n } else {\n state = { down: false, held: false, up: false };\n this.#buttonStates.set(code, state);\n }\n const offset = MOUSE_BUTTONS_OFFSET;\n state.held = !!(this.#dataView.getUint8(offset + code) & 1);\n state.down = state.held && !(this.#dataView.getUint8(offset + code) & 2);\n state.up = !state.held && !!(this.#dataView.getUint8(offset + code) & 2);\n return state;\n }\n}\n\nclass KeyboardContext {\n #dataView;\n #keystates = new Map;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get shift() {\n return this.shiftLeft || this.shiftRight;\n }\n get alt() {\n return this.altLeft || this.altRight;\n }\n get control() {\n return this.controlLeft || this.controlRight;\n }\n get meta() {\n return this.metaLeft || this.metaRight;\n }\n get backquote() {\n return this.#keystate(1 /* Backquote */);\n }\n get backslash() {\n return this.#keystate(2 /* Backslash */);\n }\n get bracketLeft() {\n return this.#keystate(3 /* BracketLeft */);\n }\n get bracketRight() {\n return this.#keystate(4 /* BracketRight */);\n }\n get comma() {\n return this.#keystate(5 /* Comma */);\n }\n get digit0() {\n return this.#keystate(6 /* Digit0 */);\n }\n get digit1() {\n return this.#keystate(7 /* Digit1 */);\n }\n get digit2() {\n return this.#keystate(8 /* Digit2 */);\n }\n get digit3() {\n return this.#keystate(9 /* Digit3 */);\n }\n get digit4() {\n return this.#keystate(10 /* Digit4 */);\n }\n get digit5() {\n return this.#keystate(11 /* Digit5 */);\n }\n get digit6() {\n return this.#keystate(12 /* Digit6 */);\n }\n get digit7() {\n return this.#keystate(13 /* Digit7 */);\n }\n get digit8() {\n return this.#keystate(14 /* Digit8 */);\n }\n get digit9() {\n return this.#keystate(15 /* Digit9 */);\n }\n get equal() {\n return this.#keystate(16 /* Equal */);\n }\n get intlBackslash() {\n return this.#keystate(17 /* IntlBackslash */);\n }\n get intlRo() {\n return this.#keystate(18 /* IntlRo */);\n }\n get intlYen() {\n return this.#keystate(19 /* IntlYen */);\n }\n get a() {\n return this.#keystate(20 /* KeyA */);\n }\n get b() {\n return this.#keystate(21 /* KeyB */);\n }\n get c() {\n return this.#keystate(22 /* KeyC */);\n }\n get d() {\n return this.#keystate(23 /* KeyD */);\n }\n get e() {\n return this.#keystate(24 /* KeyE */);\n }\n get f() {\n return this.#keystate(25 /* KeyF */);\n }\n get g() {\n return this.#keystate(26 /* KeyG */);\n }\n get h() {\n return this.#keystate(27 /* KeyH */);\n }\n get i() {\n return this.#keystate(28 /* KeyI */);\n }\n get j() {\n return this.#keystate(29 /* KeyJ */);\n }\n get k() {\n return this.#keystate(30 /* KeyK */);\n }\n get l() {\n return this.#keystate(31 /* KeyL */);\n }\n get m() {\n return this.#keystate(32 /* KeyM */);\n }\n get n() {\n return this.#keystate(33 /* KeyN */);\n }\n get o() {\n return this.#keystate(34 /* KeyO */);\n }\n get p() {\n return this.#keystate(35 /* KeyP */);\n }\n get q() {\n return this.#keystate(36 /* KeyQ */);\n }\n get r() {\n return this.#keystate(37 /* KeyR */);\n }\n get s() {\n return this.#keystate(38 /* KeyS */);\n }\n get t() {\n return this.#keystate(39 /* KeyT */);\n }\n get u() {\n return this.#keystate(40 /* KeyU */);\n }\n get v() {\n return this.#keystate(41 /* KeyV */);\n }\n get w() {\n return this.#keystate(42 /* KeyW */);\n }\n get x() {\n return this.#keystate(43 /* KeyX */);\n }\n get y() {\n return this.#keystate(44 /* KeyY */);\n }\n get z() {\n return this.#keystate(45 /* KeyZ */);\n }\n get minus() {\n return this.#keystate(46 /* Minus */);\n }\n get period() {\n return this.#keystate(47 /* Period */);\n }\n get quote() {\n return this.#keystate(48 /* Quote */);\n }\n get semicolon() {\n return this.#keystate(49 /* Semicolon */);\n }\n get slash() {\n return this.#keystate(50 /* Slash */);\n }\n get altLeft() {\n return this.#keystate(51 /* AltLeft */);\n }\n get altRight() {\n return this.#keystate(52 /* AltRight */);\n }\n get backspace() {\n return this.#keystate(53 /* Backspace */);\n }\n get capsLock() {\n return this.#keystate(54 /* CapsLock */);\n }\n get contextMenu() {\n return this.#keystate(55 /* ContextMenu */);\n }\n get controlLeft() {\n return this.#keystate(56 /* ControlLeft */);\n }\n get controlRight() {\n return this.#keystate(57 /* ControlRight */);\n }\n get enter() {\n return this.#keystate(58 /* Enter */);\n }\n get metaLeft() {\n return this.#keystate(59 /* MetaLeft */);\n }\n get metaRight() {\n return this.#keystate(60 /* MetaRight */);\n }\n get shiftLeft() {\n return this.#keystate(61 /* ShiftLeft */);\n }\n get shiftRight() {\n return this.#keystate(62 /* ShiftRight */);\n }\n get space() {\n return this.#keystate(63 /* Space */);\n }\n get tab() {\n return this.#keystate(64 /* Tab */);\n }\n get convert() {\n return this.#keystate(65 /* Convert */);\n }\n get kanaMode() {\n return this.#keystate(66 /* KanaMode */);\n }\n get lang1() {\n return this.#keystate(67 /* Lang1 */);\n }\n get lang2() {\n return this.#keystate(68 /* Lang2 */);\n }\n get lang3() {\n return this.#keystate(69 /* Lang3 */);\n }\n get lang4() {\n return this.#keystate(70 /* Lang4 */);\n }\n get lang5() {\n return this.#keystate(71 /* Lang5 */);\n }\n get nonConvert() {\n return this.#keystate(72 /* NonConvert */);\n }\n get delete() {\n return this.#keystate(73 /* Delete */);\n }\n get end() {\n return this.#keystate(74 /* End */);\n }\n get help() {\n return this.#keystate(75 /* Help */);\n }\n get home() {\n return this.#keystate(76 /* Home */);\n }\n get insert() {\n return this.#keystate(77 /* Insert */);\n }\n get pageDown() {\n return this.#keystate(78 /* PageDown */);\n }\n get pageUp() {\n return this.#keystate(79 /* PageUp */);\n }\n get arrowDown() {\n return this.#keystate(80 /* ArrowDown */);\n }\n get arrowLeft() {\n return this.#keystate(81 /* ArrowLeft */);\n }\n get arrowRight() {\n return this.#keystate(82 /* ArrowRight */);\n }\n get arrowUp() {\n return this.#keystate(83 /* ArrowUp */);\n }\n get numLock() {\n return this.#keystate(84 /* NumLock */);\n }\n get numpad0() {\n return this.#keystate(85 /* Numpad0 */);\n }\n get numpad1() {\n return this.#keystate(86 /* Numpad1 */);\n }\n get numpad2() {\n return this.#keystate(87 /* Numpad2 */);\n }\n get numpad3() {\n return this.#keystate(88 /* Numpad3 */);\n }\n get numpad4() {\n return this.#keystate(89 /* Numpad4 */);\n }\n get numpad5() {\n return this.#keystate(90 /* Numpad5 */);\n }\n get numpad6() {\n return this.#keystate(91 /* Numpad6 */);\n }\n get numpad7() {\n return this.#keystate(92 /* Numpad7 */);\n }\n get numpad8() {\n return this.#keystate(93 /* Numpad8 */);\n }\n get numpad9() {\n return this.#keystate(94 /* Numpad9 */);\n }\n get numpadAdd() {\n return this.#keystate(95 /* NumpadAdd */);\n }\n get numpadBackspace() {\n return this.#keystate(96 /* NumpadBackspace */);\n }\n get numpadClear() {\n return this.#keystate(97 /* NumpadClear */);\n }\n get numpadClearEntry() {\n return this.#keystate(98 /* NumpadClearEntry */);\n }\n get numpadComma() {\n return this.#keystate(99 /* NumpadComma */);\n }\n get numpadDecimal() {\n return this.#keystate(100 /* NumpadDecimal */);\n }\n get numpadDivide() {\n return this.#keystate(101 /* NumpadDivide */);\n }\n get numpadEnter() {\n return this.#keystate(102 /* NumpadEnter */);\n }\n get numpadEqual() {\n return this.#keystate(103 /* NumpadEqual */);\n }\n get numpadHash() {\n return this.#keystate(104 /* NumpadHash */);\n }\n get numpadMemoryAdd() {\n return this.#keystate(105 /* NumpadMemoryAdd */);\n }\n get numpadMemoryClear() {\n return this.#keystate(106 /* NumpadMemoryClear */);\n }\n get numpadMemoryRecall() {\n return this.#keystate(107 /* NumpadMemoryRecall */);\n }\n get numpadMemoryStore() {\n return this.#keystate(108 /* NumpadMemoryStore */);\n }\n get numpadMemorySubtract() {\n return this.#keystate(109 /* NumpadMemorySubtract */);\n }\n get numpadMultiply() {\n return this.#keystate(110 /* NumpadMultiply */);\n }\n get numpadParenLeft() {\n return this.#keystate(111 /* NumpadParenLeft */);\n }\n get numpadParenRight() {\n return this.#keystate(112 /* NumpadParenRight */);\n }\n get numpadStar() {\n return this.#keystate(113 /* NumpadStar */);\n }\n get numpadSubtract() {\n return this.#keystate(114 /* NumpadSubtract */);\n }\n get escape() {\n return this.#keystate(115 /* Escape */);\n }\n get fn() {\n return this.#keystate(116 /* Fn */);\n }\n get fnLock() {\n return this.#keystate(117 /* FnLock */);\n }\n get printScreen() {\n return this.#keystate(118 /* PrintScreen */);\n }\n get scrollLock() {\n return this.#keystate(119 /* ScrollLock */);\n }\n get pause() {\n return this.#keystate(120 /* Pause */);\n }\n get browserBack() {\n return this.#keystate(121 /* BrowserBack */);\n }\n get browserFavorites() {\n return this.#keystate(122 /* BrowserFavorites */);\n }\n get browserForward() {\n return this.#keystate(123 /* BrowserForward */);\n }\n get browserHome() {\n return this.#keystate(124 /* BrowserHome */);\n }\n get browserRefresh() {\n return this.#keystate(125 /* BrowserRefresh */);\n }\n get browserSearch() {\n return this.#keystate(126 /* BrowserSearch */);\n }\n get browserStop() {\n return this.#keystate(127 /* BrowserStop */);\n }\n get eject() {\n return this.#keystate(128 /* Eject */);\n }\n get launchApp1() {\n return this.#keystate(129 /* LaunchApp1 */);\n }\n get launchApp2() {\n return this.#keystate(130 /* LaunchApp2 */);\n }\n get launchMail() {\n return this.#keystate(131 /* LaunchMail */);\n }\n get mediaPlayPause() {\n return this.#keystate(132 /* MediaPlayPause */);\n }\n get mediaSelect() {\n return this.#keystate(133 /* MediaSelect */);\n }\n get mediaStop() {\n return this.#keystate(134 /* MediaStop */);\n }\n get mediaTrackNext() {\n return this.#keystate(135 /* MediaTrackNext */);\n }\n get mediaTrackPrevious() {\n return this.#keystate(136 /* MediaTrackPrevious */);\n }\n get power() {\n return this.#keystate(137 /* Power */);\n }\n get sleep() {\n return this.#keystate(138 /* Sleep */);\n }\n get audioVolumeDown() {\n return this.#keystate(139 /* AudioVolumeDown */);\n }\n get audioVolumeMute() {\n return this.#keystate(140 /* AudioVolumeMute */);\n }\n get audioVolumeUp() {\n return this.#keystate(141 /* AudioVolumeUp */);\n }\n get wakeUp() {\n return this.#keystate(142 /* WakeUp */);\n }\n get hyper() {\n return this.#keystate(143 /* Hyper */);\n }\n get super() {\n return this.#keystate(144 /* Super */);\n }\n get turbo() {\n return this.#keystate(145 /* Turbo */);\n }\n get abort() {\n return this.#keystate(146 /* Abort */);\n }\n get resume() {\n return this.#keystate(147 /* Resume */);\n }\n get suspend() {\n return this.#keystate(148 /* Suspend */);\n }\n get again() {\n return this.#keystate(149 /* Again */);\n }\n get copy() {\n return this.#keystate(150 /* Copy */);\n }\n get cut() {\n return this.#keystate(151 /* Cut */);\n }\n get find() {\n return this.#keystate(152 /* Find */);\n }\n get open() {\n return this.#keystate(153 /* Open */);\n }\n get paste() {\n return this.#keystate(154 /* Paste */);\n }\n get props() {\n return this.#keystate(155 /* Props */);\n }\n get select() {\n return this.#keystate(156 /* Select */);\n }\n get undo() {\n return this.#keystate(157 /* Undo */);\n }\n get hiragana() {\n return this.#keystate(158 /* Hiragana */);\n }\n get katakana() {\n return this.#keystate(159 /* Katakana */);\n }\n get f1() {\n return this.#keystate(160 /* F1 */);\n }\n get f2() {\n return this.#keystate(161 /* F2 */);\n }\n get f3() {\n return this.#keystate(162 /* F3 */);\n }\n get f4() {\n return this.#keystate(163 /* F4 */);\n }\n get f5() {\n return this.#keystate(164 /* F5 */);\n }\n get f6() {\n return this.#keystate(165 /* F6 */);\n }\n get f7() {\n return this.#keystate(166 /* F7 */);\n }\n get f8() {\n return this.#keystate(167 /* F8 */);\n }\n get f9() {\n return this.#keystate(168 /* F9 */);\n }\n get f10() {\n return this.#keystate(169 /* F10 */);\n }\n get f11() {\n return this.#keystate(170 /* F11 */);\n }\n get f12() {\n return this.#keystate(171 /* F12 */);\n }\n get f13() {\n return this.#keystate(172 /* F13 */);\n }\n get f14() {\n return this.#keystate(173 /* F14 */);\n }\n get f15() {\n return this.#keystate(174 /* F15 */);\n }\n get f16() {\n return this.#keystate(175 /* F16 */);\n }\n get f17() {\n return this.#keystate(176 /* F17 */);\n }\n get f18() {\n return this.#keystate(177 /* F18 */);\n }\n get f19() {\n return this.#keystate(178 /* F19 */);\n }\n get f20() {\n return this.#keystate(179 /* F20 */);\n }\n get f21() {\n return this.#keystate(180 /* F21 */);\n }\n get f22() {\n return this.#keystate(181 /* F22 */);\n }\n get f23() {\n return this.#keystate(182 /* F23 */);\n }\n get f24() {\n return this.#keystate(183 /* F24 */);\n }\n get f25() {\n return this.#keystate(184 /* F25 */);\n }\n get f26() {\n return this.#keystate(185 /* F26 */);\n }\n get f27() {\n return this.#keystate(186 /* F27 */);\n }\n get f28() {\n return this.#keystate(187 /* F28 */);\n }\n get f29() {\n return this.#keystate(188 /* F29 */);\n }\n get f30() {\n return this.#keystate(189 /* F30 */);\n }\n get f31() {\n return this.#keystate(190 /* F31 */);\n }\n get f32() {\n return this.#keystate(191 /* F32 */);\n }\n get f33() {\n return this.#keystate(192 /* F33 */);\n }\n get f34() {\n return this.#keystate(193 /* F34 */);\n }\n get f35() {\n return this.#keystate(194 /* F35 */);\n }\n #keystate(code) {\n let state;\n if (this.#keystates.has(code)) {\n state = this.#keystates.get(code);\n } else {\n state = { down: false, held: false, up: false };\n this.#keystates.set(code, state);\n }\n state.held = !!(this.#dataView.getUint8(code) & 1);\n state.down = state.held && !(this.#dataView.getUint8(code) & 2);\n state.up = !state.held && !!(this.#dataView.getUint8(code) & 2);\n return state;\n }\n}\n// js/contexts/timeContext.ts\nclass TimeContext {\n dataView;\n constructor(dataView) {\n this.dataView = dataView;\n }\n get frame() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(0, true);\n }\n get dt() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(4, true) / 1000;\n }\n get time() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(8, true) / 1000;\n }\n}\n\n// js/engine.ts\nvar DEFAULT_WASM_URL = new URL(\"../wasm/bloop.wasm\", import.meta.url);\nvar TIME_CTX_OFFSET = 0;\nvar INPUT_CTX_OFFSET = TIME_CTX_OFFSET + 4;\nvar EVENTS_OFFSET = INPUT_CTX_OFFSET + 4;\nvar SNAPSHOT_HEADER_LEN = 16;\nvar SNAPSHOT_HEADER_USER_LEN_OFFSET = 4;\nvar SNAPSHOT_HEADER_ENGINE_LEN_OFFSET = 8;\nexport {\n mouseButtonToMouseButtonCode,\n mouseButtonCodeToMouseButton,\n keyToKeyCode,\n keyCodeToKey,\n TimeContext,\n TIME_CTX_OFFSET,\n SNAPSHOT_HEADER_USER_LEN_OFFSET,\n SNAPSHOT_HEADER_LEN,\n SNAPSHOT_HEADER_ENGINE_LEN_OFFSET,\n MouseContext,\n MOUSE_OFFSET,\n MOUSE_BUTTONS_OFFSET,\n KeyboardContext,\n KEYBOARD_OFFSET,\n InputContext,\n INPUT_CTX_OFFSET,\n exports_enums as Enums,\n EVENT_PAYLOAD_SIZE,\n EVENT_PAYLOAD_ALIGN,\n EVENTS_OFFSET,\n DEFAULT_WASM_URL\n};\n\n//# debugId=C8014A483C57B10D64756E2164756E21\n//# sourceMappingURL=engine.js.map\n",
5
+ "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\n\n// src/util.ts\nvar exports_util = {};\n__export(exports_util, {\n unwrap: () => unwrap,\n toHexString: () => toHexString,\n logPerSecond: () => logPerSecond,\n logOnce: () => logOnce,\n logEvery: () => logEvery,\n assert: () => assert\n});\nfunction toHexString(dataView, length) {\n length ??= dataView.byteLength;\n let hexString = \"\";\n for (let i = 0;i < length; i++) {\n const byte = dataView.getUint8(i);\n hexString += `${byte.toString(16).padStart(2, \"0\")} `;\n }\n return hexString.trim();\n}\nfunction assert(condition, message) {\n if (condition == null || condition === false) {\n throw new Error(message ?? \"Assertion failed\");\n }\n}\nvar backpressureLogs = new Map;\nfunction logOnce(...args) {\n const key = args.map((a) => String(a)).join(\" \");\n if (!backpressureLogs.has(key)) {\n console.log(...args);\n backpressureLogs.set(key, 1);\n }\n}\nfunction logPerSecond(now, ...args) {\n logEvery(now, 1000, ...args);\n}\nfunction logEvery(now, interval = 10, ...args) {\n const key = args.map((a) => String(a)).join(\" \");\n const lastLogged = backpressureLogs.get(key) ?? -Infinity;\n if (now - lastLogged >= interval) {\n console.log(...args);\n backpressureLogs.set(key, now);\n }\n}\nfunction unwrap(value, message) {\n assert(value != null, message ?? `Unwrap failed: value is ${value}`);\n return value;\n}\n// ../engine/dist/engine.js\nvar exports_engine = {};\n__export(exports_engine, {\n mouseButtonToMouseButtonCode: () => mouseButtonToMouseButtonCode,\n mouseButtonCodeToMouseButton: () => mouseButtonCodeToMouseButton,\n keyToKeyCode: () => keyToKeyCode,\n keyCodeToKey: () => keyCodeToKey,\n inputSourceToInputSourceCode: () => inputSourceToInputSourceCode,\n inputSourceCodeToInputSource: () => inputSourceCodeToInputSource,\n TimeContext: () => TimeContext,\n TIME_CTX_OFFSET: () => TIME_CTX_OFFSET,\n SNAPSHOT_HEADER_USER_LEN_OFFSET: () => SNAPSHOT_HEADER_USER_LEN_OFFSET,\n SNAPSHOT_HEADER_LEN: () => SNAPSHOT_HEADER_LEN,\n SNAPSHOT_HEADER_ENGINE_LEN_OFFSET: () => SNAPSHOT_HEADER_ENGINE_LEN_OFFSET,\n PlayerInputContext: () => PlayerInputContext,\n PLAYER_INPUTS_SIZE: () => PLAYER_INPUTS_SIZE,\n MouseContext: () => MouseContext,\n MOUSE_OFFSET: () => MOUSE_OFFSET,\n MOUSE_BUTTONS_OFFSET: () => MOUSE_BUTTONS_OFFSET,\n MAX_PLAYERS: () => MAX_PLAYERS,\n KeyboardContext: () => KeyboardContext,\n KEYBOARD_SIZE: () => KEYBOARD_SIZE,\n KEYBOARD_OFFSET: () => KEYBOARD_OFFSET,\n InputContext: () => InputContext,\n INPUT_CTX_SIZE: () => INPUT_CTX_SIZE,\n INPUT_CTX_OFFSET: () => INPUT_CTX_OFFSET,\n Enums: () => exports_enums,\n EVENT_PAYLOAD_SIZE: () => EVENT_PAYLOAD_SIZE,\n EVENT_PAYLOAD_ALIGN: () => EVENT_PAYLOAD_ALIGN,\n EVENTS_OFFSET: () => EVENTS_OFFSET,\n DEFAULT_WASM_URL: () => DEFAULT_WASM_URL\n});\nvar __defProp2 = Object.defineProperty;\nvar __export2 = (target, all) => {\n for (var name in all)\n __defProp2(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\nvar exports_enums = {};\n__export2(exports_enums, {\n MouseButton: () => MouseButton,\n Key: () => Key,\n InputSource: () => InputSource,\n EventType: () => EventType\n});\nvar EventType;\n((EventType2) => {\n EventType2[EventType2[\"None\"] = 0] = \"None\";\n EventType2[EventType2[\"KeyDown\"] = 1] = \"KeyDown\";\n EventType2[EventType2[\"KeyUp\"] = 2] = \"KeyUp\";\n EventType2[EventType2[\"MouseMove\"] = 3] = \"MouseMove\";\n EventType2[EventType2[\"MouseDown\"] = 4] = \"MouseDown\";\n EventType2[EventType2[\"MouseUp\"] = 5] = \"MouseUp\";\n EventType2[EventType2[\"MouseWheel\"] = 6] = \"MouseWheel\";\n EventType2[EventType2[\"FrameStart\"] = 7] = \"FrameStart\";\n})(EventType ||= {});\nvar MouseButton;\n((MouseButton2) => {\n MouseButton2[MouseButton2[\"None\"] = 0] = \"None\";\n MouseButton2[MouseButton2[\"Left\"] = 1] = \"Left\";\n MouseButton2[MouseButton2[\"Middle\"] = 2] = \"Middle\";\n MouseButton2[MouseButton2[\"Right\"] = 3] = \"Right\";\n MouseButton2[MouseButton2[\"X1\"] = 4] = \"X1\";\n MouseButton2[MouseButton2[\"X2\"] = 5] = \"X2\";\n MouseButton2[MouseButton2[\"X3\"] = 6] = \"X3\";\n MouseButton2[MouseButton2[\"X4\"] = 7] = \"X4\";\n MouseButton2[MouseButton2[\"X5\"] = 8] = \"X5\";\n})(MouseButton ||= {});\nvar Key;\n((Key2) => {\n Key2[Key2[\"None\"] = 0] = \"None\";\n Key2[Key2[\"Backquote\"] = 1] = \"Backquote\";\n Key2[Key2[\"Backslash\"] = 2] = \"Backslash\";\n Key2[Key2[\"BracketLeft\"] = 3] = \"BracketLeft\";\n Key2[Key2[\"BracketRight\"] = 4] = \"BracketRight\";\n Key2[Key2[\"Comma\"] = 5] = \"Comma\";\n Key2[Key2[\"Digit0\"] = 6] = \"Digit0\";\n Key2[Key2[\"Digit1\"] = 7] = \"Digit1\";\n Key2[Key2[\"Digit2\"] = 8] = \"Digit2\";\n Key2[Key2[\"Digit3\"] = 9] = \"Digit3\";\n Key2[Key2[\"Digit4\"] = 10] = \"Digit4\";\n Key2[Key2[\"Digit5\"] = 11] = \"Digit5\";\n Key2[Key2[\"Digit6\"] = 12] = \"Digit6\";\n Key2[Key2[\"Digit7\"] = 13] = \"Digit7\";\n Key2[Key2[\"Digit8\"] = 14] = \"Digit8\";\n Key2[Key2[\"Digit9\"] = 15] = \"Digit9\";\n Key2[Key2[\"Equal\"] = 16] = \"Equal\";\n Key2[Key2[\"IntlBackslash\"] = 17] = \"IntlBackslash\";\n Key2[Key2[\"IntlRo\"] = 18] = \"IntlRo\";\n Key2[Key2[\"IntlYen\"] = 19] = \"IntlYen\";\n Key2[Key2[\"KeyA\"] = 20] = \"KeyA\";\n Key2[Key2[\"KeyB\"] = 21] = \"KeyB\";\n Key2[Key2[\"KeyC\"] = 22] = \"KeyC\";\n Key2[Key2[\"KeyD\"] = 23] = \"KeyD\";\n Key2[Key2[\"KeyE\"] = 24] = \"KeyE\";\n Key2[Key2[\"KeyF\"] = 25] = \"KeyF\";\n Key2[Key2[\"KeyG\"] = 26] = \"KeyG\";\n Key2[Key2[\"KeyH\"] = 27] = \"KeyH\";\n Key2[Key2[\"KeyI\"] = 28] = \"KeyI\";\n Key2[Key2[\"KeyJ\"] = 29] = \"KeyJ\";\n Key2[Key2[\"KeyK\"] = 30] = \"KeyK\";\n Key2[Key2[\"KeyL\"] = 31] = \"KeyL\";\n Key2[Key2[\"KeyM\"] = 32] = \"KeyM\";\n Key2[Key2[\"KeyN\"] = 33] = \"KeyN\";\n Key2[Key2[\"KeyO\"] = 34] = \"KeyO\";\n Key2[Key2[\"KeyP\"] = 35] = \"KeyP\";\n Key2[Key2[\"KeyQ\"] = 36] = \"KeyQ\";\n Key2[Key2[\"KeyR\"] = 37] = \"KeyR\";\n Key2[Key2[\"KeyS\"] = 38] = \"KeyS\";\n Key2[Key2[\"KeyT\"] = 39] = \"KeyT\";\n Key2[Key2[\"KeyU\"] = 40] = \"KeyU\";\n Key2[Key2[\"KeyV\"] = 41] = \"KeyV\";\n Key2[Key2[\"KeyW\"] = 42] = \"KeyW\";\n Key2[Key2[\"KeyX\"] = 43] = \"KeyX\";\n Key2[Key2[\"KeyY\"] = 44] = \"KeyY\";\n Key2[Key2[\"KeyZ\"] = 45] = \"KeyZ\";\n Key2[Key2[\"Minus\"] = 46] = \"Minus\";\n Key2[Key2[\"Period\"] = 47] = \"Period\";\n Key2[Key2[\"Quote\"] = 48] = \"Quote\";\n Key2[Key2[\"Semicolon\"] = 49] = \"Semicolon\";\n Key2[Key2[\"Slash\"] = 50] = \"Slash\";\n Key2[Key2[\"AltLeft\"] = 51] = \"AltLeft\";\n Key2[Key2[\"AltRight\"] = 52] = \"AltRight\";\n Key2[Key2[\"Backspace\"] = 53] = \"Backspace\";\n Key2[Key2[\"CapsLock\"] = 54] = \"CapsLock\";\n Key2[Key2[\"ContextMenu\"] = 55] = \"ContextMenu\";\n Key2[Key2[\"ControlLeft\"] = 56] = \"ControlLeft\";\n Key2[Key2[\"ControlRight\"] = 57] = \"ControlRight\";\n Key2[Key2[\"Enter\"] = 58] = \"Enter\";\n Key2[Key2[\"MetaLeft\"] = 59] = \"MetaLeft\";\n Key2[Key2[\"MetaRight\"] = 60] = \"MetaRight\";\n Key2[Key2[\"ShiftLeft\"] = 61] = \"ShiftLeft\";\n Key2[Key2[\"ShiftRight\"] = 62] = \"ShiftRight\";\n Key2[Key2[\"Space\"] = 63] = \"Space\";\n Key2[Key2[\"Tab\"] = 64] = \"Tab\";\n Key2[Key2[\"Convert\"] = 65] = \"Convert\";\n Key2[Key2[\"KanaMode\"] = 66] = \"KanaMode\";\n Key2[Key2[\"Lang1\"] = 67] = \"Lang1\";\n Key2[Key2[\"Lang2\"] = 68] = \"Lang2\";\n Key2[Key2[\"Lang3\"] = 69] = \"Lang3\";\n Key2[Key2[\"Lang4\"] = 70] = \"Lang4\";\n Key2[Key2[\"Lang5\"] = 71] = \"Lang5\";\n Key2[Key2[\"NonConvert\"] = 72] = \"NonConvert\";\n Key2[Key2[\"Delete\"] = 73] = \"Delete\";\n Key2[Key2[\"End\"] = 74] = \"End\";\n Key2[Key2[\"Help\"] = 75] = \"Help\";\n Key2[Key2[\"Home\"] = 76] = \"Home\";\n Key2[Key2[\"Insert\"] = 77] = \"Insert\";\n Key2[Key2[\"PageDown\"] = 78] = \"PageDown\";\n Key2[Key2[\"PageUp\"] = 79] = \"PageUp\";\n Key2[Key2[\"ArrowDown\"] = 80] = \"ArrowDown\";\n Key2[Key2[\"ArrowLeft\"] = 81] = \"ArrowLeft\";\n Key2[Key2[\"ArrowRight\"] = 82] = \"ArrowRight\";\n Key2[Key2[\"ArrowUp\"] = 83] = \"ArrowUp\";\n Key2[Key2[\"NumLock\"] = 84] = \"NumLock\";\n Key2[Key2[\"Numpad0\"] = 85] = \"Numpad0\";\n Key2[Key2[\"Numpad1\"] = 86] = \"Numpad1\";\n Key2[Key2[\"Numpad2\"] = 87] = \"Numpad2\";\n Key2[Key2[\"Numpad3\"] = 88] = \"Numpad3\";\n Key2[Key2[\"Numpad4\"] = 89] = \"Numpad4\";\n Key2[Key2[\"Numpad5\"] = 90] = \"Numpad5\";\n Key2[Key2[\"Numpad6\"] = 91] = \"Numpad6\";\n Key2[Key2[\"Numpad7\"] = 92] = \"Numpad7\";\n Key2[Key2[\"Numpad8\"] = 93] = \"Numpad8\";\n Key2[Key2[\"Numpad9\"] = 94] = \"Numpad9\";\n Key2[Key2[\"NumpadAdd\"] = 95] = \"NumpadAdd\";\n Key2[Key2[\"NumpadBackspace\"] = 96] = \"NumpadBackspace\";\n Key2[Key2[\"NumpadClear\"] = 97] = \"NumpadClear\";\n Key2[Key2[\"NumpadClearEntry\"] = 98] = \"NumpadClearEntry\";\n Key2[Key2[\"NumpadComma\"] = 99] = \"NumpadComma\";\n Key2[Key2[\"NumpadDecimal\"] = 100] = \"NumpadDecimal\";\n Key2[Key2[\"NumpadDivide\"] = 101] = \"NumpadDivide\";\n Key2[Key2[\"NumpadEnter\"] = 102] = \"NumpadEnter\";\n Key2[Key2[\"NumpadEqual\"] = 103] = \"NumpadEqual\";\n Key2[Key2[\"NumpadHash\"] = 104] = \"NumpadHash\";\n Key2[Key2[\"NumpadMemoryAdd\"] = 105] = \"NumpadMemoryAdd\";\n Key2[Key2[\"NumpadMemoryClear\"] = 106] = \"NumpadMemoryClear\";\n Key2[Key2[\"NumpadMemoryRecall\"] = 107] = \"NumpadMemoryRecall\";\n Key2[Key2[\"NumpadMemoryStore\"] = 108] = \"NumpadMemoryStore\";\n Key2[Key2[\"NumpadMemorySubtract\"] = 109] = \"NumpadMemorySubtract\";\n Key2[Key2[\"NumpadMultiply\"] = 110] = \"NumpadMultiply\";\n Key2[Key2[\"NumpadParenLeft\"] = 111] = \"NumpadParenLeft\";\n Key2[Key2[\"NumpadParenRight\"] = 112] = \"NumpadParenRight\";\n Key2[Key2[\"NumpadStar\"] = 113] = \"NumpadStar\";\n Key2[Key2[\"NumpadSubtract\"] = 114] = \"NumpadSubtract\";\n Key2[Key2[\"Escape\"] = 115] = \"Escape\";\n Key2[Key2[\"Fn\"] = 116] = \"Fn\";\n Key2[Key2[\"FnLock\"] = 117] = \"FnLock\";\n Key2[Key2[\"PrintScreen\"] = 118] = \"PrintScreen\";\n Key2[Key2[\"ScrollLock\"] = 119] = \"ScrollLock\";\n Key2[Key2[\"Pause\"] = 120] = \"Pause\";\n Key2[Key2[\"BrowserBack\"] = 121] = \"BrowserBack\";\n Key2[Key2[\"BrowserFavorites\"] = 122] = \"BrowserFavorites\";\n Key2[Key2[\"BrowserForward\"] = 123] = \"BrowserForward\";\n Key2[Key2[\"BrowserHome\"] = 124] = \"BrowserHome\";\n Key2[Key2[\"BrowserRefresh\"] = 125] = \"BrowserRefresh\";\n Key2[Key2[\"BrowserSearch\"] = 126] = \"BrowserSearch\";\n Key2[Key2[\"BrowserStop\"] = 127] = \"BrowserStop\";\n Key2[Key2[\"Eject\"] = 128] = \"Eject\";\n Key2[Key2[\"LaunchApp1\"] = 129] = \"LaunchApp1\";\n Key2[Key2[\"LaunchApp2\"] = 130] = \"LaunchApp2\";\n Key2[Key2[\"LaunchMail\"] = 131] = \"LaunchMail\";\n Key2[Key2[\"MediaPlayPause\"] = 132] = \"MediaPlayPause\";\n Key2[Key2[\"MediaSelect\"] = 133] = \"MediaSelect\";\n Key2[Key2[\"MediaStop\"] = 134] = \"MediaStop\";\n Key2[Key2[\"MediaTrackNext\"] = 135] = \"MediaTrackNext\";\n Key2[Key2[\"MediaTrackPrevious\"] = 136] = \"MediaTrackPrevious\";\n Key2[Key2[\"Power\"] = 137] = \"Power\";\n Key2[Key2[\"Sleep\"] = 138] = \"Sleep\";\n Key2[Key2[\"AudioVolumeDown\"] = 139] = \"AudioVolumeDown\";\n Key2[Key2[\"AudioVolumeMute\"] = 140] = \"AudioVolumeMute\";\n Key2[Key2[\"AudioVolumeUp\"] = 141] = \"AudioVolumeUp\";\n Key2[Key2[\"WakeUp\"] = 142] = \"WakeUp\";\n Key2[Key2[\"Hyper\"] = 143] = \"Hyper\";\n Key2[Key2[\"Super\"] = 144] = \"Super\";\n Key2[Key2[\"Turbo\"] = 145] = \"Turbo\";\n Key2[Key2[\"Abort\"] = 146] = \"Abort\";\n Key2[Key2[\"Resume\"] = 147] = \"Resume\";\n Key2[Key2[\"Suspend\"] = 148] = \"Suspend\";\n Key2[Key2[\"Again\"] = 149] = \"Again\";\n Key2[Key2[\"Copy\"] = 150] = \"Copy\";\n Key2[Key2[\"Cut\"] = 151] = \"Cut\";\n Key2[Key2[\"Find\"] = 152] = \"Find\";\n Key2[Key2[\"Open\"] = 153] = \"Open\";\n Key2[Key2[\"Paste\"] = 154] = \"Paste\";\n Key2[Key2[\"Props\"] = 155] = \"Props\";\n Key2[Key2[\"Select\"] = 156] = \"Select\";\n Key2[Key2[\"Undo\"] = 157] = \"Undo\";\n Key2[Key2[\"Hiragana\"] = 158] = \"Hiragana\";\n Key2[Key2[\"Katakana\"] = 159] = \"Katakana\";\n Key2[Key2[\"F1\"] = 160] = \"F1\";\n Key2[Key2[\"F2\"] = 161] = \"F2\";\n Key2[Key2[\"F3\"] = 162] = \"F3\";\n Key2[Key2[\"F4\"] = 163] = \"F4\";\n Key2[Key2[\"F5\"] = 164] = \"F5\";\n Key2[Key2[\"F6\"] = 165] = \"F6\";\n Key2[Key2[\"F7\"] = 166] = \"F7\";\n Key2[Key2[\"F8\"] = 167] = \"F8\";\n Key2[Key2[\"F9\"] = 168] = \"F9\";\n Key2[Key2[\"F10\"] = 169] = \"F10\";\n Key2[Key2[\"F11\"] = 170] = \"F11\";\n Key2[Key2[\"F12\"] = 171] = \"F12\";\n Key2[Key2[\"F13\"] = 172] = \"F13\";\n Key2[Key2[\"F14\"] = 173] = \"F14\";\n Key2[Key2[\"F15\"] = 174] = \"F15\";\n Key2[Key2[\"F16\"] = 175] = \"F16\";\n Key2[Key2[\"F17\"] = 176] = \"F17\";\n Key2[Key2[\"F18\"] = 177] = \"F18\";\n Key2[Key2[\"F19\"] = 178] = \"F19\";\n Key2[Key2[\"F20\"] = 179] = \"F20\";\n Key2[Key2[\"F21\"] = 180] = \"F21\";\n Key2[Key2[\"F22\"] = 181] = \"F22\";\n Key2[Key2[\"F23\"] = 182] = \"F23\";\n Key2[Key2[\"F24\"] = 183] = \"F24\";\n Key2[Key2[\"F25\"] = 184] = \"F25\";\n Key2[Key2[\"F26\"] = 185] = \"F26\";\n Key2[Key2[\"F27\"] = 186] = \"F27\";\n Key2[Key2[\"F28\"] = 187] = \"F28\";\n Key2[Key2[\"F29\"] = 188] = \"F29\";\n Key2[Key2[\"F30\"] = 189] = \"F30\";\n Key2[Key2[\"F31\"] = 190] = \"F31\";\n Key2[Key2[\"F32\"] = 191] = \"F32\";\n Key2[Key2[\"F33\"] = 192] = \"F33\";\n Key2[Key2[\"F34\"] = 193] = \"F34\";\n Key2[Key2[\"F35\"] = 194] = \"F35\";\n})(Key ||= {});\nvar InputSource;\n((InputSource2) => {\n InputSource2[InputSource2[\"None\"] = 0] = \"None\";\n InputSource2[InputSource2[\"LocalKeyboard\"] = 1] = \"LocalKeyboard\";\n InputSource2[InputSource2[\"LocalMouse\"] = 2] = \"LocalMouse\";\n InputSource2[InputSource2[\"LocalTouch\"] = 3] = \"LocalTouch\";\n InputSource2[InputSource2[\"LocalGamepad0\"] = 4] = \"LocalGamepad0\";\n InputSource2[InputSource2[\"LocalGamepad1\"] = 5] = \"LocalGamepad1\";\n InputSource2[InputSource2[\"LocalGamepad2\"] = 6] = \"LocalGamepad2\";\n InputSource2[InputSource2[\"LocalGamepad3\"] = 7] = \"LocalGamepad3\";\n InputSource2[InputSource2[\"LocalGamepad4\"] = 8] = \"LocalGamepad4\";\n InputSource2[InputSource2[\"LocalGamepad5\"] = 9] = \"LocalGamepad5\";\n InputSource2[InputSource2[\"LocalGamepad6\"] = 10] = \"LocalGamepad6\";\n InputSource2[InputSource2[\"LocalGamepad7\"] = 11] = \"LocalGamepad7\";\n InputSource2[InputSource2[\"LocalGamepad8\"] = 12] = \"LocalGamepad8\";\n InputSource2[InputSource2[\"LocalGamepad9\"] = 13] = \"LocalGamepad9\";\n InputSource2[InputSource2[\"LocalGamepad10\"] = 14] = \"LocalGamepad10\";\n InputSource2[InputSource2[\"LocalGamepad11\"] = 15] = \"LocalGamepad11\";\n InputSource2[InputSource2[\"RemotePeer0\"] = 128] = \"RemotePeer0\";\n InputSource2[InputSource2[\"RemotePeer1\"] = 129] = \"RemotePeer1\";\n InputSource2[InputSource2[\"RemotePeer2\"] = 130] = \"RemotePeer2\";\n InputSource2[InputSource2[\"RemotePeer3\"] = 131] = \"RemotePeer3\";\n InputSource2[InputSource2[\"RemotePeer4\"] = 132] = \"RemotePeer4\";\n InputSource2[InputSource2[\"RemotePeer5\"] = 133] = \"RemotePeer5\";\n InputSource2[InputSource2[\"RemotePeer6\"] = 134] = \"RemotePeer6\";\n InputSource2[InputSource2[\"RemotePeer7\"] = 135] = \"RemotePeer7\";\n InputSource2[InputSource2[\"RemotePeer8\"] = 136] = \"RemotePeer8\";\n InputSource2[InputSource2[\"RemotePeer9\"] = 137] = \"RemotePeer9\";\n InputSource2[InputSource2[\"RemotePeer10\"] = 138] = \"RemotePeer10\";\n InputSource2[InputSource2[\"RemotePeer11\"] = 139] = \"RemotePeer11\";\n InputSource2[InputSource2[\"Unmapped\"] = 255] = \"Unmapped\";\n})(InputSource ||= {});\nvar MAX_PLAYERS = 12;\nvar KEYBOARD_OFFSET = 0;\nvar KEYBOARD_SIZE = 256;\nvar MOUSE_OFFSET = 256;\nvar MOUSE_BUTTONS_OFFSET = 16;\nvar PLAYER_INPUTS_SIZE = 280;\nvar INPUT_CTX_SIZE = MAX_PLAYERS * PLAYER_INPUTS_SIZE;\nvar EVENT_PAYLOAD_SIZE = 8;\nvar EVENT_PAYLOAD_ALIGN = 4;\nfunction keyToKeyCode(key) {\n return Key[key];\n}\nfunction keyCodeToKey(code) {\n return Key[code];\n}\nfunction mouseButtonToMouseButtonCode(button) {\n return MouseButton[button];\n}\nfunction mouseButtonCodeToMouseButton(code) {\n return MouseButton[code];\n}\nfunction inputSourceToInputSourceCode(source) {\n return InputSource[source];\n}\nfunction inputSourceCodeToInputSource(code) {\n return InputSource[code];\n}\n\nclass PlayerInputContext {\n #dataView;\n #keys;\n #mouse;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get keys() {\n if (!this.#keys) {\n this.#keys = new KeyboardContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + KEYBOARD_OFFSET));\n }\n return this.#keys;\n }\n get mouse() {\n if (!this.#mouse) {\n this.#mouse = new MouseContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + MOUSE_OFFSET));\n }\n return this.#mouse;\n }\n}\n\nclass InputContext {\n #dataView;\n #players = [];\n constructor(dataView) {\n if (dataView) {\n this.#dataView = dataView;\n this.#buildPlayers();\n }\n }\n get dataView() {\n if (!this.#dataView) {\n throw new Error(\"DataView is not initialized on InputContext\");\n }\n return this.#dataView;\n }\n set dataView(dataView) {\n this.#dataView = dataView;\n this.#buildPlayers();\n }\n #buildPlayers() {\n this.#players = [];\n for (let i = 0;i < MAX_PLAYERS; i++) {\n const playerOffset = i * PLAYER_INPUTS_SIZE;\n const playerDataView = new DataView(this.dataView.buffer, this.dataView.byteOffset + playerOffset, PLAYER_INPUTS_SIZE);\n this.#players.push(new PlayerInputContext(playerDataView));\n }\n }\n get players() {\n return this.#players;\n }\n get keys() {\n if (!this.#players[0]) {\n throw new Error(\"No player inputs available in InputContext\");\n }\n return this.#players[0].keys;\n }\n get mouse() {\n if (!this.#players[0]) {\n throw new Error(\"No player inputs available in InputContext\");\n }\n return this.#players[0].mouse;\n }\n}\n\nclass MouseContext {\n #dataView;\n #buttonStates = new Map;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get x() {\n return this.#dataView.getFloat32(0, true);\n }\n get y() {\n return this.#dataView.getFloat32(4, true);\n }\n get wheel() {\n return { x: this.wheelX, y: this.wheelY };\n }\n get wheelX() {\n return this.#dataView.getFloat32(8, true);\n }\n get wheelY() {\n return this.#dataView.getFloat32(12, true);\n }\n get left() {\n return this.#buttonState(1);\n }\n get right() {\n return this.#buttonState(3);\n }\n get middle() {\n return this.#buttonState(2);\n }\n #buttonState(code) {\n let state;\n if (this.#buttonStates.has(code)) {\n state = this.#buttonStates.get(code);\n } else {\n state = { down: false, held: false, up: false };\n this.#buttonStates.set(code, state);\n }\n const offset = MOUSE_BUTTONS_OFFSET;\n state.held = !!(this.#dataView.getUint8(offset + code) & 1);\n state.down = state.held && !(this.#dataView.getUint8(offset + code) & 2);\n state.up = !state.held && !!(this.#dataView.getUint8(offset + code) & 2);\n return state;\n }\n}\n\nclass KeyboardContext {\n #dataView;\n #keystates = new Map;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get shift() {\n return this.shiftLeft || this.shiftRight;\n }\n get alt() {\n return this.altLeft || this.altRight;\n }\n get control() {\n return this.controlLeft || this.controlRight;\n }\n get meta() {\n return this.metaLeft || this.metaRight;\n }\n get backquote() {\n return this.#keystate(1);\n }\n get backslash() {\n return this.#keystate(2);\n }\n get bracketLeft() {\n return this.#keystate(3);\n }\n get bracketRight() {\n return this.#keystate(4);\n }\n get comma() {\n return this.#keystate(5);\n }\n get digit0() {\n return this.#keystate(6);\n }\n get digit1() {\n return this.#keystate(7);\n }\n get digit2() {\n return this.#keystate(8);\n }\n get digit3() {\n return this.#keystate(9);\n }\n get digit4() {\n return this.#keystate(10);\n }\n get digit5() {\n return this.#keystate(11);\n }\n get digit6() {\n return this.#keystate(12);\n }\n get digit7() {\n return this.#keystate(13);\n }\n get digit8() {\n return this.#keystate(14);\n }\n get digit9() {\n return this.#keystate(15);\n }\n get equal() {\n return this.#keystate(16);\n }\n get intlBackslash() {\n return this.#keystate(17);\n }\n get intlRo() {\n return this.#keystate(18);\n }\n get intlYen() {\n return this.#keystate(19);\n }\n get a() {\n return this.#keystate(20);\n }\n get b() {\n return this.#keystate(21);\n }\n get c() {\n return this.#keystate(22);\n }\n get d() {\n return this.#keystate(23);\n }\n get e() {\n return this.#keystate(24);\n }\n get f() {\n return this.#keystate(25);\n }\n get g() {\n return this.#keystate(26);\n }\n get h() {\n return this.#keystate(27);\n }\n get i() {\n return this.#keystate(28);\n }\n get j() {\n return this.#keystate(29);\n }\n get k() {\n return this.#keystate(30);\n }\n get l() {\n return this.#keystate(31);\n }\n get m() {\n return this.#keystate(32);\n }\n get n() {\n return this.#keystate(33);\n }\n get o() {\n return this.#keystate(34);\n }\n get p() {\n return this.#keystate(35);\n }\n get q() {\n return this.#keystate(36);\n }\n get r() {\n return this.#keystate(37);\n }\n get s() {\n return this.#keystate(38);\n }\n get t() {\n return this.#keystate(39);\n }\n get u() {\n return this.#keystate(40);\n }\n get v() {\n return this.#keystate(41);\n }\n get w() {\n return this.#keystate(42);\n }\n get x() {\n return this.#keystate(43);\n }\n get y() {\n return this.#keystate(44);\n }\n get z() {\n return this.#keystate(45);\n }\n get minus() {\n return this.#keystate(46);\n }\n get period() {\n return this.#keystate(47);\n }\n get quote() {\n return this.#keystate(48);\n }\n get semicolon() {\n return this.#keystate(49);\n }\n get slash() {\n return this.#keystate(50);\n }\n get altLeft() {\n return this.#keystate(51);\n }\n get altRight() {\n return this.#keystate(52);\n }\n get backspace() {\n return this.#keystate(53);\n }\n get capsLock() {\n return this.#keystate(54);\n }\n get contextMenu() {\n return this.#keystate(55);\n }\n get controlLeft() {\n return this.#keystate(56);\n }\n get controlRight() {\n return this.#keystate(57);\n }\n get enter() {\n return this.#keystate(58);\n }\n get metaLeft() {\n return this.#keystate(59);\n }\n get metaRight() {\n return this.#keystate(60);\n }\n get shiftLeft() {\n return this.#keystate(61);\n }\n get shiftRight() {\n return this.#keystate(62);\n }\n get space() {\n return this.#keystate(63);\n }\n get tab() {\n return this.#keystate(64);\n }\n get convert() {\n return this.#keystate(65);\n }\n get kanaMode() {\n return this.#keystate(66);\n }\n get lang1() {\n return this.#keystate(67);\n }\n get lang2() {\n return this.#keystate(68);\n }\n get lang3() {\n return this.#keystate(69);\n }\n get lang4() {\n return this.#keystate(70);\n }\n get lang5() {\n return this.#keystate(71);\n }\n get nonConvert() {\n return this.#keystate(72);\n }\n get delete() {\n return this.#keystate(73);\n }\n get end() {\n return this.#keystate(74);\n }\n get help() {\n return this.#keystate(75);\n }\n get home() {\n return this.#keystate(76);\n }\n get insert() {\n return this.#keystate(77);\n }\n get pageDown() {\n return this.#keystate(78);\n }\n get pageUp() {\n return this.#keystate(79);\n }\n get arrowDown() {\n return this.#keystate(80);\n }\n get arrowLeft() {\n return this.#keystate(81);\n }\n get arrowRight() {\n return this.#keystate(82);\n }\n get arrowUp() {\n return this.#keystate(83);\n }\n get numLock() {\n return this.#keystate(84);\n }\n get numpad0() {\n return this.#keystate(85);\n }\n get numpad1() {\n return this.#keystate(86);\n }\n get numpad2() {\n return this.#keystate(87);\n }\n get numpad3() {\n return this.#keystate(88);\n }\n get numpad4() {\n return this.#keystate(89);\n }\n get numpad5() {\n return this.#keystate(90);\n }\n get numpad6() {\n return this.#keystate(91);\n }\n get numpad7() {\n return this.#keystate(92);\n }\n get numpad8() {\n return this.#keystate(93);\n }\n get numpad9() {\n return this.#keystate(94);\n }\n get numpadAdd() {\n return this.#keystate(95);\n }\n get numpadBackspace() {\n return this.#keystate(96);\n }\n get numpadClear() {\n return this.#keystate(97);\n }\n get numpadClearEntry() {\n return this.#keystate(98);\n }\n get numpadComma() {\n return this.#keystate(99);\n }\n get numpadDecimal() {\n return this.#keystate(100);\n }\n get numpadDivide() {\n return this.#keystate(101);\n }\n get numpadEnter() {\n return this.#keystate(102);\n }\n get numpadEqual() {\n return this.#keystate(103);\n }\n get numpadHash() {\n return this.#keystate(104);\n }\n get numpadMemoryAdd() {\n return this.#keystate(105);\n }\n get numpadMemoryClear() {\n return this.#keystate(106);\n }\n get numpadMemoryRecall() {\n return this.#keystate(107);\n }\n get numpadMemoryStore() {\n return this.#keystate(108);\n }\n get numpadMemorySubtract() {\n return this.#keystate(109);\n }\n get numpadMultiply() {\n return this.#keystate(110);\n }\n get numpadParenLeft() {\n return this.#keystate(111);\n }\n get numpadParenRight() {\n return this.#keystate(112);\n }\n get numpadStar() {\n return this.#keystate(113);\n }\n get numpadSubtract() {\n return this.#keystate(114);\n }\n get escape() {\n return this.#keystate(115);\n }\n get fn() {\n return this.#keystate(116);\n }\n get fnLock() {\n return this.#keystate(117);\n }\n get printScreen() {\n return this.#keystate(118);\n }\n get scrollLock() {\n return this.#keystate(119);\n }\n get pause() {\n return this.#keystate(120);\n }\n get browserBack() {\n return this.#keystate(121);\n }\n get browserFavorites() {\n return this.#keystate(122);\n }\n get browserForward() {\n return this.#keystate(123);\n }\n get browserHome() {\n return this.#keystate(124);\n }\n get browserRefresh() {\n return this.#keystate(125);\n }\n get browserSearch() {\n return this.#keystate(126);\n }\n get browserStop() {\n return this.#keystate(127);\n }\n get eject() {\n return this.#keystate(128);\n }\n get launchApp1() {\n return this.#keystate(129);\n }\n get launchApp2() {\n return this.#keystate(130);\n }\n get launchMail() {\n return this.#keystate(131);\n }\n get mediaPlayPause() {\n return this.#keystate(132);\n }\n get mediaSelect() {\n return this.#keystate(133);\n }\n get mediaStop() {\n return this.#keystate(134);\n }\n get mediaTrackNext() {\n return this.#keystate(135);\n }\n get mediaTrackPrevious() {\n return this.#keystate(136);\n }\n get power() {\n return this.#keystate(137);\n }\n get sleep() {\n return this.#keystate(138);\n }\n get audioVolumeDown() {\n return this.#keystate(139);\n }\n get audioVolumeMute() {\n return this.#keystate(140);\n }\n get audioVolumeUp() {\n return this.#keystate(141);\n }\n get wakeUp() {\n return this.#keystate(142);\n }\n get hyper() {\n return this.#keystate(143);\n }\n get super() {\n return this.#keystate(144);\n }\n get turbo() {\n return this.#keystate(145);\n }\n get abort() {\n return this.#keystate(146);\n }\n get resume() {\n return this.#keystate(147);\n }\n get suspend() {\n return this.#keystate(148);\n }\n get again() {\n return this.#keystate(149);\n }\n get copy() {\n return this.#keystate(150);\n }\n get cut() {\n return this.#keystate(151);\n }\n get find() {\n return this.#keystate(152);\n }\n get open() {\n return this.#keystate(153);\n }\n get paste() {\n return this.#keystate(154);\n }\n get props() {\n return this.#keystate(155);\n }\n get select() {\n return this.#keystate(156);\n }\n get undo() {\n return this.#keystate(157);\n }\n get hiragana() {\n return this.#keystate(158);\n }\n get katakana() {\n return this.#keystate(159);\n }\n get f1() {\n return this.#keystate(160);\n }\n get f2() {\n return this.#keystate(161);\n }\n get f3() {\n return this.#keystate(162);\n }\n get f4() {\n return this.#keystate(163);\n }\n get f5() {\n return this.#keystate(164);\n }\n get f6() {\n return this.#keystate(165);\n }\n get f7() {\n return this.#keystate(166);\n }\n get f8() {\n return this.#keystate(167);\n }\n get f9() {\n return this.#keystate(168);\n }\n get f10() {\n return this.#keystate(169);\n }\n get f11() {\n return this.#keystate(170);\n }\n get f12() {\n return this.#keystate(171);\n }\n get f13() {\n return this.#keystate(172);\n }\n get f14() {\n return this.#keystate(173);\n }\n get f15() {\n return this.#keystate(174);\n }\n get f16() {\n return this.#keystate(175);\n }\n get f17() {\n return this.#keystate(176);\n }\n get f18() {\n return this.#keystate(177);\n }\n get f19() {\n return this.#keystate(178);\n }\n get f20() {\n return this.#keystate(179);\n }\n get f21() {\n return this.#keystate(180);\n }\n get f22() {\n return this.#keystate(181);\n }\n get f23() {\n return this.#keystate(182);\n }\n get f24() {\n return this.#keystate(183);\n }\n get f25() {\n return this.#keystate(184);\n }\n get f26() {\n return this.#keystate(185);\n }\n get f27() {\n return this.#keystate(186);\n }\n get f28() {\n return this.#keystate(187);\n }\n get f29() {\n return this.#keystate(188);\n }\n get f30() {\n return this.#keystate(189);\n }\n get f31() {\n return this.#keystate(190);\n }\n get f32() {\n return this.#keystate(191);\n }\n get f33() {\n return this.#keystate(192);\n }\n get f34() {\n return this.#keystate(193);\n }\n get f35() {\n return this.#keystate(194);\n }\n #keystate(code) {\n let state;\n if (this.#keystates.has(code)) {\n state = this.#keystates.get(code);\n } else {\n state = { down: false, held: false, up: false };\n this.#keystates.set(code, state);\n }\n state.held = !!(this.#dataView.getUint8(code) & 1);\n state.down = state.held && !(this.#dataView.getUint8(code) & 2);\n state.up = !state.held && !!(this.#dataView.getUint8(code) & 2);\n return state;\n }\n}\n\nclass TimeContext {\n dataView;\n constructor(dataView) {\n this.dataView = dataView;\n }\n get frame() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(0, true);\n }\n get dt() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(4, true) / 1000;\n }\n get time() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(8, true) / 1000;\n }\n}\nvar DEFAULT_WASM_URL = new URL(\"../wasm/bloop.wasm\", import.meta.url);\nvar TIME_CTX_OFFSET = 0;\nvar INPUT_CTX_OFFSET = TIME_CTX_OFFSET + 4;\nvar EVENTS_OFFSET = INPUT_CTX_OFFSET + 4;\nvar SNAPSHOT_HEADER_LEN = 16;\nvar SNAPSHOT_HEADER_USER_LEN_OFFSET = 4;\nvar SNAPSHOT_HEADER_ENGINE_LEN_OFFSET = 8;\n// src/sim.ts\nvar originalConsole = globalThis.console;\nvar noop = () => {};\nvar stubConsole = Object.fromEntries(Object.keys(originalConsole).map((key) => [key, noop]));\nfunction muteConsole() {\n globalThis.console = stubConsole;\n}\nfunction unmuteConsole() {\n globalThis.console = originalConsole;\n}\n\nclass Sim {\n wasm;\n id;\n #memory;\n #time;\n #serialize;\n #isPaused = false;\n constructor(wasm, memory, opts) {\n this.wasm = wasm;\n this.#memory = memory;\n this.#time = new TimeContext(new DataView(this.#memory.buffer, this.wasm.get_time_ctx()));\n this.id = `${Math.floor(Math.random() * 1e6)}`;\n this.#serialize = opts?.serialize;\n }\n step(ms) {\n if (this.#isPaused && !this.isReplaying) {\n return 0;\n }\n return this.wasm.step(ms ?? 16);\n }\n tick() {\n this.wasm.tick();\n }\n cloneSession(source) {\n this.loadTape(source.saveTape());\n this.restore(source.snapshot());\n }\n pause() {\n this.#isPaused = true;\n }\n unpause() {\n this.#isPaused = false;\n }\n get isPaused() {\n return this.#isPaused;\n }\n stepBack() {\n if (this.time.frame === 0) {\n return;\n }\n this.seek(this.time.frame - 1);\n }\n seek(frame, inclusive) {\n assert(this.hasHistory, \"Not recording or playing back, can't seek to frame\");\n const targetFrame = inclusive ? frame + 1 : frame;\n const shouldMute = frame < this.time.frame;\n if (shouldMute) {\n muteConsole();\n }\n this.wasm.seek(targetFrame);\n if (shouldMute) {\n unmuteConsole();\n }\n }\n record() {\n const serializer = this.#serialize ? this.#serialize() : null;\n const size = serializer ? serializer.size : 0;\n const result = this.wasm.start_recording(size, 1024);\n if (result !== 0) {\n throw new Error(`failed to start recording, error code=${result}`);\n }\n }\n snapshot() {\n const serializer = this.#serialize ? this.#serialize() : null;\n const size = serializer ? serializer.size : 0;\n const ptr = this.wasm.take_snapshot(size);\n const header = new Uint32Array(this.#memory.buffer, ptr, 4);\n const userLenIndex = SNAPSHOT_HEADER_USER_LEN_OFFSET / Uint32Array.BYTES_PER_ELEMENT;\n const engineLenIndex = SNAPSHOT_HEADER_ENGINE_LEN_OFFSET / Uint32Array.BYTES_PER_ELEMENT;\n assert(header[userLenIndex], `header user length missing`);\n assert(header[engineLenIndex], `header engine length missing`);\n const length = header[userLenIndex] + header[engineLenIndex];\n const memoryView = new Uint8Array(this.#memory.buffer, ptr, length);\n const copy = new Uint8Array(length);\n copy.set(memoryView);\n return copy;\n }\n saveTape() {\n const tapeLen = this.wasm.get_tape_len();\n const tapePtr = this.wasm.get_tape_ptr();\n const memoryView = new Uint8Array(this.#memory.buffer, tapePtr, tapeLen);\n const copy = new Uint8Array(tapeLen);\n copy.set(memoryView);\n return copy;\n }\n loadTape(tape) {\n const tapePtr = this.wasm.alloc(tape.byteLength);\n assert(tapePtr > 0, `failed to allocate ${tape.byteLength} bytes for tape load, pointer=${tapePtr}`);\n const memoryView = new Uint8Array(this.#memory.buffer, tapePtr, tape.byteLength);\n memoryView.set(tape);\n this.wasm.stop_recording();\n const result = this.wasm.load_tape(tapePtr, tape.byteLength);\n assert(result === 0, `failed to load tape, error code=${result}`);\n this.wasm.free(tapePtr, tape.byteLength);\n }\n restore(snapshot) {\n const dataPtr = this.wasm.alloc(snapshot.byteLength);\n assert(dataPtr > 0, `failed to allocate ${snapshot.byteLength} bytes for snapshot restore, pointer=${dataPtr}`);\n const memoryView = new Uint8Array(this.#memory.buffer, dataPtr, snapshot.byteLength);\n memoryView.set(snapshot);\n this.wasm.restore(dataPtr);\n this.wasm.free(dataPtr, snapshot.byteLength);\n }\n unmount() {\n this.wasm.deinit();\n }\n get time() {\n if (!this.#time.dataView || this.#time.dataView.buffer !== this.#memory.buffer) {\n this.#time.dataView = new DataView(this.#memory.buffer, this.wasm.get_time_ctx());\n }\n return this.#time;\n }\n get buffer() {\n return this.#memory.buffer;\n }\n get isRecording() {\n return this.wasm.is_recording();\n }\n get isReplaying() {\n return this.wasm.is_replaying();\n }\n get hasHistory() {\n return this.isRecording || this.isReplaying;\n }\n emit = {\n keydown: (key, source = \"LocalKeyboard\") => {\n this.wasm.emit_keydown(keyToKeyCode(key), inputSourceToInputSourceCode(source));\n },\n keyup: (key, source = \"LocalKeyboard\") => {\n this.wasm.emit_keyup(keyToKeyCode(key), inputSourceToInputSourceCode(source));\n },\n mousemove: (x, y, source = \"LocalMouse\") => {\n this.wasm.emit_mousemove(x, y, inputSourceToInputSourceCode(source));\n },\n mousedown: (button, source = \"LocalMouse\") => {\n this.wasm.emit_mousedown(mouseButtonToMouseButtonCode(button), inputSourceToInputSourceCode(source));\n },\n mouseup: (button, source = \"LocalMouse\") => {\n this.wasm.emit_mouseup(mouseButtonToMouseButtonCode(button), inputSourceToInputSourceCode(source));\n },\n mousewheel: (x, y, source = \"LocalMouse\") => {\n this.wasm.emit_mousewheel(x, y, inputSourceToInputSourceCode(source));\n }\n };\n}\n\n// src/mount.ts\nasync function mount(opts) {\n const bytes = await fetch(opts.wasmUrl ?? DEFAULT_WASM_URL).then((res) => res.arrayBuffer()).catch((e) => {\n console.error(`Failed to fetch wasm at ${opts.wasmUrl ?? DEFAULT_WASM_URL}`, e);\n throw e;\n });\n const memory = new WebAssembly.Memory({ initial: 17, maximum: 1000 });\n const wasmInstantiatedSource = await WebAssembly.instantiate(bytes, {\n env: {\n memory,\n __cb: function(system_handle, ptr) {\n opts.hooks.setBuffer(memory.buffer);\n opts.hooks.systemsCallback(system_handle, ptr);\n },\n __before_frame: function(frame) {\n try {\n opts.hooks.beforeFrame?.(frame);\n } catch (e) {\n console.error(\"Error in beforeFrame hook:\", e);\n }\n },\n console_log: function(ptr, len) {\n const bytes2 = new Uint8Array(memory.buffer, ptr, len);\n const string = new TextDecoder(\"utf-8\").decode(bytes2);\n console.log(string);\n },\n user_data_len: function() {\n const serializer = opts.hooks.serialize();\n return serializer ? serializer.size : 0;\n },\n user_data_serialize: function(ptr, len) {\n const serializer = opts.hooks.serialize();\n assert(len === serializer.size, `user_data_serialize length mismatch, expected=${serializer.size} got=${len}`);\n serializer.write(memory.buffer, ptr);\n },\n user_data_deserialize: function(ptr, len) {\n opts.hooks.deserialize(memory.buffer, ptr, len);\n }\n }\n });\n const wasm = wasmInstantiatedSource.instance.exports;\n const enginePointer = wasm.initialize();\n const sim = new Sim(wasm, memory, {\n serialize: opts.hooks.serialize\n });\n if (opts.startRecording ?? true) {\n sim.record();\n }\n opts.hooks.setBuffer(memory.buffer);\n opts.hooks.setContext(enginePointer);\n return {\n sim\n };\n}\n// src/bloop.ts\nclass Bloop {\n #systems = [];\n #context;\n #engineBuffer = new ArrayBuffer(0);\n static create(opts = {}) {\n return new Bloop(opts, \"dontCallMeDirectly\");\n }\n constructor(opts = {}, dontCallMeDirectly) {\n if (dontCallMeDirectly !== \"dontCallMeDirectly\") {\n throw new Error(\"Bloop constructor is private. Use Bloop.create() to create a new game instance.\");\n }\n const inputs = new InputContext;\n this.#context = {\n bag: opts.bag ?? {},\n time: new TimeContext,\n inputs,\n get players() {\n return inputs.players;\n },\n rawPointer: -1\n };\n }\n get bag() {\n return this.#context.bag;\n }\n get context() {\n return this.#context;\n }\n system(label, system) {\n system.label ??= label;\n this.#systems.push(system);\n return this.#systems.length;\n }\n hooks = {\n serialize: () => {\n const str = JSON.stringify(this.#context.bag);\n const encoder = new TextEncoder;\n const textBytes = encoder.encode(str);\n return {\n size: textBytes.byteLength,\n write: (buffer, ptr) => {\n const memoryView = new Uint8Array(buffer, ptr, textBytes.byteLength);\n memoryView.set(textBytes);\n }\n };\n },\n deserialize: (buffer, ptr, len) => {\n const bagBytes = new Uint8Array(buffer, ptr, len);\n const decoder = new TextDecoder;\n const str = decoder.decode(bagBytes);\n try {\n this.#context.bag = JSON.parse(str);\n } catch (e) {\n console.error(\"failed to deserialize bag\", { json: str, error: e });\n }\n },\n setBuffer: (buffer) => {\n this.#engineBuffer = buffer;\n },\n setContext: (ptr) => {\n if (!this.#engineBuffer) {\n throw new Error(\"Tried to set context before engine buffer\");\n }\n const dv = new DataView(this.#engineBuffer, ptr);\n const timeCtxPtr = dv.getUint32(TIME_CTX_OFFSET, true);\n const inputCtxPtr = dv.getUint32(INPUT_CTX_OFFSET, true);\n this.#context.rawPointer = ptr;\n this.#context.inputs.dataView = new DataView(this.#engineBuffer, inputCtxPtr);\n this.#context.time.dataView = new DataView(this.#engineBuffer, timeCtxPtr);\n },\n systemsCallback: (system_handle, ptr) => {\n this.hooks.setContext(ptr);\n const dv = new DataView(this.#engineBuffer, ptr);\n const eventsPtr = dv.getUint32(EVENTS_OFFSET, true);\n const eventsDataView = new DataView(this.#engineBuffer, eventsPtr);\n for (const system of this.#systems) {\n system.update?.(this.#context);\n const eventCount = eventsDataView.getUint16(0, true);\n let offset = 4;\n for (let i = 0;i < eventCount; i++) {\n const eventType = eventsDataView.getUint8(offset);\n const eventSource = eventsDataView.getUint8(offset + 1);\n const payloadOffset = offset + 4;\n const payloadByte = eventsDataView.getUint8(payloadOffset);\n const payloadVec2 = {\n x: eventsDataView.getFloat32(payloadOffset, true),\n y: eventsDataView.getFloat32(payloadOffset + Float32Array.BYTES_PER_ELEMENT, true)\n };\n switch (eventType) {\n case exports_enums.EventType.KeyDown: {\n system.keydown?.(attachEvent(this.#context, {\n key: keyCodeToKey(payloadByte)\n }));\n break;\n }\n case exports_enums.EventType.KeyUp:\n system.keyup?.(attachEvent(this.#context, {\n key: keyCodeToKey(payloadByte)\n }));\n break;\n case exports_enums.EventType.MouseDown:\n system.mousedown?.(attachEvent(this.#context, {\n button: mouseButtonCodeToMouseButton(payloadByte)\n }));\n break;\n case exports_enums.EventType.MouseUp:\n system.mouseup?.(attachEvent(this.#context, {\n button: mouseButtonCodeToMouseButton(payloadByte)\n }));\n break;\n case exports_enums.EventType.MouseMove:\n system.mousemove?.(attachEvent(this.#context, {\n x: payloadVec2.x,\n y: payloadVec2.y\n }));\n break;\n case exports_enums.EventType.MouseWheel:\n system.mousewheel?.(attachEvent(this.#context, {\n x: payloadVec2.x,\n y: payloadVec2.y\n }));\n break;\n default:\n throw new Error(`Unknown event type: ${eventType}`);\n }\n offset += 12;\n }\n this.#context.event = undefined;\n }\n }\n };\n}\nfunction attachEvent(context, event) {\n context.event = event;\n return context;\n}\nexport {\n unwrap,\n mount,\n assert,\n exports_util as Util,\n Sim,\n exports_engine as Engine,\n Bloop\n};\n\n//# debugId=5ABFB58A403D543264756E2164756E21\n//# sourceMappingURL=mod.js.map\n",
6
+ "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\n\n// js/codegen/enums.ts\nvar exports_enums = {};\n__export(exports_enums, {\n MouseButton: () => MouseButton,\n Key: () => Key,\n InputSource: () => InputSource,\n EventType: () => EventType\n});\nvar EventType;\n((EventType2) => {\n EventType2[EventType2[\"None\"] = 0] = \"None\";\n EventType2[EventType2[\"KeyDown\"] = 1] = \"KeyDown\";\n EventType2[EventType2[\"KeyUp\"] = 2] = \"KeyUp\";\n EventType2[EventType2[\"MouseMove\"] = 3] = \"MouseMove\";\n EventType2[EventType2[\"MouseDown\"] = 4] = \"MouseDown\";\n EventType2[EventType2[\"MouseUp\"] = 5] = \"MouseUp\";\n EventType2[EventType2[\"MouseWheel\"] = 6] = \"MouseWheel\";\n EventType2[EventType2[\"FrameStart\"] = 7] = \"FrameStart\";\n})(EventType ||= {});\nvar MouseButton;\n((MouseButton2) => {\n MouseButton2[MouseButton2[\"None\"] = 0] = \"None\";\n MouseButton2[MouseButton2[\"Left\"] = 1] = \"Left\";\n MouseButton2[MouseButton2[\"Middle\"] = 2] = \"Middle\";\n MouseButton2[MouseButton2[\"Right\"] = 3] = \"Right\";\n MouseButton2[MouseButton2[\"X1\"] = 4] = \"X1\";\n MouseButton2[MouseButton2[\"X2\"] = 5] = \"X2\";\n MouseButton2[MouseButton2[\"X3\"] = 6] = \"X3\";\n MouseButton2[MouseButton2[\"X4\"] = 7] = \"X4\";\n MouseButton2[MouseButton2[\"X5\"] = 8] = \"X5\";\n})(MouseButton ||= {});\nvar Key;\n((Key2) => {\n Key2[Key2[\"None\"] = 0] = \"None\";\n Key2[Key2[\"Backquote\"] = 1] = \"Backquote\";\n Key2[Key2[\"Backslash\"] = 2] = \"Backslash\";\n Key2[Key2[\"BracketLeft\"] = 3] = \"BracketLeft\";\n Key2[Key2[\"BracketRight\"] = 4] = \"BracketRight\";\n Key2[Key2[\"Comma\"] = 5] = \"Comma\";\n Key2[Key2[\"Digit0\"] = 6] = \"Digit0\";\n Key2[Key2[\"Digit1\"] = 7] = \"Digit1\";\n Key2[Key2[\"Digit2\"] = 8] = \"Digit2\";\n Key2[Key2[\"Digit3\"] = 9] = \"Digit3\";\n Key2[Key2[\"Digit4\"] = 10] = \"Digit4\";\n Key2[Key2[\"Digit5\"] = 11] = \"Digit5\";\n Key2[Key2[\"Digit6\"] = 12] = \"Digit6\";\n Key2[Key2[\"Digit7\"] = 13] = \"Digit7\";\n Key2[Key2[\"Digit8\"] = 14] = \"Digit8\";\n Key2[Key2[\"Digit9\"] = 15] = \"Digit9\";\n Key2[Key2[\"Equal\"] = 16] = \"Equal\";\n Key2[Key2[\"IntlBackslash\"] = 17] = \"IntlBackslash\";\n Key2[Key2[\"IntlRo\"] = 18] = \"IntlRo\";\n Key2[Key2[\"IntlYen\"] = 19] = \"IntlYen\";\n Key2[Key2[\"KeyA\"] = 20] = \"KeyA\";\n Key2[Key2[\"KeyB\"] = 21] = \"KeyB\";\n Key2[Key2[\"KeyC\"] = 22] = \"KeyC\";\n Key2[Key2[\"KeyD\"] = 23] = \"KeyD\";\n Key2[Key2[\"KeyE\"] = 24] = \"KeyE\";\n Key2[Key2[\"KeyF\"] = 25] = \"KeyF\";\n Key2[Key2[\"KeyG\"] = 26] = \"KeyG\";\n Key2[Key2[\"KeyH\"] = 27] = \"KeyH\";\n Key2[Key2[\"KeyI\"] = 28] = \"KeyI\";\n Key2[Key2[\"KeyJ\"] = 29] = \"KeyJ\";\n Key2[Key2[\"KeyK\"] = 30] = \"KeyK\";\n Key2[Key2[\"KeyL\"] = 31] = \"KeyL\";\n Key2[Key2[\"KeyM\"] = 32] = \"KeyM\";\n Key2[Key2[\"KeyN\"] = 33] = \"KeyN\";\n Key2[Key2[\"KeyO\"] = 34] = \"KeyO\";\n Key2[Key2[\"KeyP\"] = 35] = \"KeyP\";\n Key2[Key2[\"KeyQ\"] = 36] = \"KeyQ\";\n Key2[Key2[\"KeyR\"] = 37] = \"KeyR\";\n Key2[Key2[\"KeyS\"] = 38] = \"KeyS\";\n Key2[Key2[\"KeyT\"] = 39] = \"KeyT\";\n Key2[Key2[\"KeyU\"] = 40] = \"KeyU\";\n Key2[Key2[\"KeyV\"] = 41] = \"KeyV\";\n Key2[Key2[\"KeyW\"] = 42] = \"KeyW\";\n Key2[Key2[\"KeyX\"] = 43] = \"KeyX\";\n Key2[Key2[\"KeyY\"] = 44] = \"KeyY\";\n Key2[Key2[\"KeyZ\"] = 45] = \"KeyZ\";\n Key2[Key2[\"Minus\"] = 46] = \"Minus\";\n Key2[Key2[\"Period\"] = 47] = \"Period\";\n Key2[Key2[\"Quote\"] = 48] = \"Quote\";\n Key2[Key2[\"Semicolon\"] = 49] = \"Semicolon\";\n Key2[Key2[\"Slash\"] = 50] = \"Slash\";\n Key2[Key2[\"AltLeft\"] = 51] = \"AltLeft\";\n Key2[Key2[\"AltRight\"] = 52] = \"AltRight\";\n Key2[Key2[\"Backspace\"] = 53] = \"Backspace\";\n Key2[Key2[\"CapsLock\"] = 54] = \"CapsLock\";\n Key2[Key2[\"ContextMenu\"] = 55] = \"ContextMenu\";\n Key2[Key2[\"ControlLeft\"] = 56] = \"ControlLeft\";\n Key2[Key2[\"ControlRight\"] = 57] = \"ControlRight\";\n Key2[Key2[\"Enter\"] = 58] = \"Enter\";\n Key2[Key2[\"MetaLeft\"] = 59] = \"MetaLeft\";\n Key2[Key2[\"MetaRight\"] = 60] = \"MetaRight\";\n Key2[Key2[\"ShiftLeft\"] = 61] = \"ShiftLeft\";\n Key2[Key2[\"ShiftRight\"] = 62] = \"ShiftRight\";\n Key2[Key2[\"Space\"] = 63] = \"Space\";\n Key2[Key2[\"Tab\"] = 64] = \"Tab\";\n Key2[Key2[\"Convert\"] = 65] = \"Convert\";\n Key2[Key2[\"KanaMode\"] = 66] = \"KanaMode\";\n Key2[Key2[\"Lang1\"] = 67] = \"Lang1\";\n Key2[Key2[\"Lang2\"] = 68] = \"Lang2\";\n Key2[Key2[\"Lang3\"] = 69] = \"Lang3\";\n Key2[Key2[\"Lang4\"] = 70] = \"Lang4\";\n Key2[Key2[\"Lang5\"] = 71] = \"Lang5\";\n Key2[Key2[\"NonConvert\"] = 72] = \"NonConvert\";\n Key2[Key2[\"Delete\"] = 73] = \"Delete\";\n Key2[Key2[\"End\"] = 74] = \"End\";\n Key2[Key2[\"Help\"] = 75] = \"Help\";\n Key2[Key2[\"Home\"] = 76] = \"Home\";\n Key2[Key2[\"Insert\"] = 77] = \"Insert\";\n Key2[Key2[\"PageDown\"] = 78] = \"PageDown\";\n Key2[Key2[\"PageUp\"] = 79] = \"PageUp\";\n Key2[Key2[\"ArrowDown\"] = 80] = \"ArrowDown\";\n Key2[Key2[\"ArrowLeft\"] = 81] = \"ArrowLeft\";\n Key2[Key2[\"ArrowRight\"] = 82] = \"ArrowRight\";\n Key2[Key2[\"ArrowUp\"] = 83] = \"ArrowUp\";\n Key2[Key2[\"NumLock\"] = 84] = \"NumLock\";\n Key2[Key2[\"Numpad0\"] = 85] = \"Numpad0\";\n Key2[Key2[\"Numpad1\"] = 86] = \"Numpad1\";\n Key2[Key2[\"Numpad2\"] = 87] = \"Numpad2\";\n Key2[Key2[\"Numpad3\"] = 88] = \"Numpad3\";\n Key2[Key2[\"Numpad4\"] = 89] = \"Numpad4\";\n Key2[Key2[\"Numpad5\"] = 90] = \"Numpad5\";\n Key2[Key2[\"Numpad6\"] = 91] = \"Numpad6\";\n Key2[Key2[\"Numpad7\"] = 92] = \"Numpad7\";\n Key2[Key2[\"Numpad8\"] = 93] = \"Numpad8\";\n Key2[Key2[\"Numpad9\"] = 94] = \"Numpad9\";\n Key2[Key2[\"NumpadAdd\"] = 95] = \"NumpadAdd\";\n Key2[Key2[\"NumpadBackspace\"] = 96] = \"NumpadBackspace\";\n Key2[Key2[\"NumpadClear\"] = 97] = \"NumpadClear\";\n Key2[Key2[\"NumpadClearEntry\"] = 98] = \"NumpadClearEntry\";\n Key2[Key2[\"NumpadComma\"] = 99] = \"NumpadComma\";\n Key2[Key2[\"NumpadDecimal\"] = 100] = \"NumpadDecimal\";\n Key2[Key2[\"NumpadDivide\"] = 101] = \"NumpadDivide\";\n Key2[Key2[\"NumpadEnter\"] = 102] = \"NumpadEnter\";\n Key2[Key2[\"NumpadEqual\"] = 103] = \"NumpadEqual\";\n Key2[Key2[\"NumpadHash\"] = 104] = \"NumpadHash\";\n Key2[Key2[\"NumpadMemoryAdd\"] = 105] = \"NumpadMemoryAdd\";\n Key2[Key2[\"NumpadMemoryClear\"] = 106] = \"NumpadMemoryClear\";\n Key2[Key2[\"NumpadMemoryRecall\"] = 107] = \"NumpadMemoryRecall\";\n Key2[Key2[\"NumpadMemoryStore\"] = 108] = \"NumpadMemoryStore\";\n Key2[Key2[\"NumpadMemorySubtract\"] = 109] = \"NumpadMemorySubtract\";\n Key2[Key2[\"NumpadMultiply\"] = 110] = \"NumpadMultiply\";\n Key2[Key2[\"NumpadParenLeft\"] = 111] = \"NumpadParenLeft\";\n Key2[Key2[\"NumpadParenRight\"] = 112] = \"NumpadParenRight\";\n Key2[Key2[\"NumpadStar\"] = 113] = \"NumpadStar\";\n Key2[Key2[\"NumpadSubtract\"] = 114] = \"NumpadSubtract\";\n Key2[Key2[\"Escape\"] = 115] = \"Escape\";\n Key2[Key2[\"Fn\"] = 116] = \"Fn\";\n Key2[Key2[\"FnLock\"] = 117] = \"FnLock\";\n Key2[Key2[\"PrintScreen\"] = 118] = \"PrintScreen\";\n Key2[Key2[\"ScrollLock\"] = 119] = \"ScrollLock\";\n Key2[Key2[\"Pause\"] = 120] = \"Pause\";\n Key2[Key2[\"BrowserBack\"] = 121] = \"BrowserBack\";\n Key2[Key2[\"BrowserFavorites\"] = 122] = \"BrowserFavorites\";\n Key2[Key2[\"BrowserForward\"] = 123] = \"BrowserForward\";\n Key2[Key2[\"BrowserHome\"] = 124] = \"BrowserHome\";\n Key2[Key2[\"BrowserRefresh\"] = 125] = \"BrowserRefresh\";\n Key2[Key2[\"BrowserSearch\"] = 126] = \"BrowserSearch\";\n Key2[Key2[\"BrowserStop\"] = 127] = \"BrowserStop\";\n Key2[Key2[\"Eject\"] = 128] = \"Eject\";\n Key2[Key2[\"LaunchApp1\"] = 129] = \"LaunchApp1\";\n Key2[Key2[\"LaunchApp2\"] = 130] = \"LaunchApp2\";\n Key2[Key2[\"LaunchMail\"] = 131] = \"LaunchMail\";\n Key2[Key2[\"MediaPlayPause\"] = 132] = \"MediaPlayPause\";\n Key2[Key2[\"MediaSelect\"] = 133] = \"MediaSelect\";\n Key2[Key2[\"MediaStop\"] = 134] = \"MediaStop\";\n Key2[Key2[\"MediaTrackNext\"] = 135] = \"MediaTrackNext\";\n Key2[Key2[\"MediaTrackPrevious\"] = 136] = \"MediaTrackPrevious\";\n Key2[Key2[\"Power\"] = 137] = \"Power\";\n Key2[Key2[\"Sleep\"] = 138] = \"Sleep\";\n Key2[Key2[\"AudioVolumeDown\"] = 139] = \"AudioVolumeDown\";\n Key2[Key2[\"AudioVolumeMute\"] = 140] = \"AudioVolumeMute\";\n Key2[Key2[\"AudioVolumeUp\"] = 141] = \"AudioVolumeUp\";\n Key2[Key2[\"WakeUp\"] = 142] = \"WakeUp\";\n Key2[Key2[\"Hyper\"] = 143] = \"Hyper\";\n Key2[Key2[\"Super\"] = 144] = \"Super\";\n Key2[Key2[\"Turbo\"] = 145] = \"Turbo\";\n Key2[Key2[\"Abort\"] = 146] = \"Abort\";\n Key2[Key2[\"Resume\"] = 147] = \"Resume\";\n Key2[Key2[\"Suspend\"] = 148] = \"Suspend\";\n Key2[Key2[\"Again\"] = 149] = \"Again\";\n Key2[Key2[\"Copy\"] = 150] = \"Copy\";\n Key2[Key2[\"Cut\"] = 151] = \"Cut\";\n Key2[Key2[\"Find\"] = 152] = \"Find\";\n Key2[Key2[\"Open\"] = 153] = \"Open\";\n Key2[Key2[\"Paste\"] = 154] = \"Paste\";\n Key2[Key2[\"Props\"] = 155] = \"Props\";\n Key2[Key2[\"Select\"] = 156] = \"Select\";\n Key2[Key2[\"Undo\"] = 157] = \"Undo\";\n Key2[Key2[\"Hiragana\"] = 158] = \"Hiragana\";\n Key2[Key2[\"Katakana\"] = 159] = \"Katakana\";\n Key2[Key2[\"F1\"] = 160] = \"F1\";\n Key2[Key2[\"F2\"] = 161] = \"F2\";\n Key2[Key2[\"F3\"] = 162] = \"F3\";\n Key2[Key2[\"F4\"] = 163] = \"F4\";\n Key2[Key2[\"F5\"] = 164] = \"F5\";\n Key2[Key2[\"F6\"] = 165] = \"F6\";\n Key2[Key2[\"F7\"] = 166] = \"F7\";\n Key2[Key2[\"F8\"] = 167] = \"F8\";\n Key2[Key2[\"F9\"] = 168] = \"F9\";\n Key2[Key2[\"F10\"] = 169] = \"F10\";\n Key2[Key2[\"F11\"] = 170] = \"F11\";\n Key2[Key2[\"F12\"] = 171] = \"F12\";\n Key2[Key2[\"F13\"] = 172] = \"F13\";\n Key2[Key2[\"F14\"] = 173] = \"F14\";\n Key2[Key2[\"F15\"] = 174] = \"F15\";\n Key2[Key2[\"F16\"] = 175] = \"F16\";\n Key2[Key2[\"F17\"] = 176] = \"F17\";\n Key2[Key2[\"F18\"] = 177] = \"F18\";\n Key2[Key2[\"F19\"] = 178] = \"F19\";\n Key2[Key2[\"F20\"] = 179] = \"F20\";\n Key2[Key2[\"F21\"] = 180] = \"F21\";\n Key2[Key2[\"F22\"] = 181] = \"F22\";\n Key2[Key2[\"F23\"] = 182] = \"F23\";\n Key2[Key2[\"F24\"] = 183] = \"F24\";\n Key2[Key2[\"F25\"] = 184] = \"F25\";\n Key2[Key2[\"F26\"] = 185] = \"F26\";\n Key2[Key2[\"F27\"] = 186] = \"F27\";\n Key2[Key2[\"F28\"] = 187] = \"F28\";\n Key2[Key2[\"F29\"] = 188] = \"F29\";\n Key2[Key2[\"F30\"] = 189] = \"F30\";\n Key2[Key2[\"F31\"] = 190] = \"F31\";\n Key2[Key2[\"F32\"] = 191] = \"F32\";\n Key2[Key2[\"F33\"] = 192] = \"F33\";\n Key2[Key2[\"F34\"] = 193] = \"F34\";\n Key2[Key2[\"F35\"] = 194] = \"F35\";\n})(Key ||= {});\nvar InputSource;\n((InputSource2) => {\n InputSource2[InputSource2[\"None\"] = 0] = \"None\";\n InputSource2[InputSource2[\"LocalKeyboard\"] = 1] = \"LocalKeyboard\";\n InputSource2[InputSource2[\"LocalMouse\"] = 2] = \"LocalMouse\";\n InputSource2[InputSource2[\"LocalTouch\"] = 3] = \"LocalTouch\";\n InputSource2[InputSource2[\"LocalGamepad0\"] = 4] = \"LocalGamepad0\";\n InputSource2[InputSource2[\"LocalGamepad1\"] = 5] = \"LocalGamepad1\";\n InputSource2[InputSource2[\"LocalGamepad2\"] = 6] = \"LocalGamepad2\";\n InputSource2[InputSource2[\"LocalGamepad3\"] = 7] = \"LocalGamepad3\";\n InputSource2[InputSource2[\"LocalGamepad4\"] = 8] = \"LocalGamepad4\";\n InputSource2[InputSource2[\"LocalGamepad5\"] = 9] = \"LocalGamepad5\";\n InputSource2[InputSource2[\"LocalGamepad6\"] = 10] = \"LocalGamepad6\";\n InputSource2[InputSource2[\"LocalGamepad7\"] = 11] = \"LocalGamepad7\";\n InputSource2[InputSource2[\"LocalGamepad8\"] = 12] = \"LocalGamepad8\";\n InputSource2[InputSource2[\"LocalGamepad9\"] = 13] = \"LocalGamepad9\";\n InputSource2[InputSource2[\"LocalGamepad10\"] = 14] = \"LocalGamepad10\";\n InputSource2[InputSource2[\"LocalGamepad11\"] = 15] = \"LocalGamepad11\";\n InputSource2[InputSource2[\"RemotePeer0\"] = 128] = \"RemotePeer0\";\n InputSource2[InputSource2[\"RemotePeer1\"] = 129] = \"RemotePeer1\";\n InputSource2[InputSource2[\"RemotePeer2\"] = 130] = \"RemotePeer2\";\n InputSource2[InputSource2[\"RemotePeer3\"] = 131] = \"RemotePeer3\";\n InputSource2[InputSource2[\"RemotePeer4\"] = 132] = \"RemotePeer4\";\n InputSource2[InputSource2[\"RemotePeer5\"] = 133] = \"RemotePeer5\";\n InputSource2[InputSource2[\"RemotePeer6\"] = 134] = \"RemotePeer6\";\n InputSource2[InputSource2[\"RemotePeer7\"] = 135] = \"RemotePeer7\";\n InputSource2[InputSource2[\"RemotePeer8\"] = 136] = \"RemotePeer8\";\n InputSource2[InputSource2[\"RemotePeer9\"] = 137] = \"RemotePeer9\";\n InputSource2[InputSource2[\"RemotePeer10\"] = 138] = \"RemotePeer10\";\n InputSource2[InputSource2[\"RemotePeer11\"] = 139] = \"RemotePeer11\";\n InputSource2[InputSource2[\"Unmapped\"] = 255] = \"Unmapped\";\n})(InputSource ||= {});\n// js/inputs.ts\nvar MAX_PLAYERS = 12;\nvar KEYBOARD_OFFSET = 0;\nvar KEYBOARD_SIZE = 256;\nvar MOUSE_OFFSET = 256;\nvar MOUSE_BUTTONS_OFFSET = 16;\nvar PLAYER_INPUTS_SIZE = 280;\nvar INPUT_CTX_SIZE = MAX_PLAYERS * PLAYER_INPUTS_SIZE;\nvar EVENT_PAYLOAD_SIZE = 8;\nvar EVENT_PAYLOAD_ALIGN = 4;\nfunction keyToKeyCode(key) {\n return Key[key];\n}\nfunction keyCodeToKey(code) {\n return Key[code];\n}\nfunction mouseButtonToMouseButtonCode(button) {\n return MouseButton[button];\n}\nfunction mouseButtonCodeToMouseButton(code) {\n return MouseButton[code];\n}\nfunction inputSourceToInputSourceCode(source) {\n return InputSource[source];\n}\nfunction inputSourceCodeToInputSource(code) {\n return InputSource[code];\n}\n\n// js/contexts/inputContext.ts\nclass PlayerInputContext {\n #dataView;\n #keys;\n #mouse;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get keys() {\n if (!this.#keys) {\n this.#keys = new KeyboardContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + KEYBOARD_OFFSET));\n }\n return this.#keys;\n }\n get mouse() {\n if (!this.#mouse) {\n this.#mouse = new MouseContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + MOUSE_OFFSET));\n }\n return this.#mouse;\n }\n}\n\nclass InputContext {\n #dataView;\n #players = [];\n constructor(dataView) {\n if (dataView) {\n this.#dataView = dataView;\n this.#buildPlayers();\n }\n }\n get dataView() {\n if (!this.#dataView) {\n throw new Error(\"DataView is not initialized on InputContext\");\n }\n return this.#dataView;\n }\n set dataView(dataView) {\n this.#dataView = dataView;\n this.#buildPlayers();\n }\n #buildPlayers() {\n this.#players = [];\n for (let i = 0;i < MAX_PLAYERS; i++) {\n const playerOffset = i * PLAYER_INPUTS_SIZE;\n const playerDataView = new DataView(this.dataView.buffer, this.dataView.byteOffset + playerOffset, PLAYER_INPUTS_SIZE);\n this.#players.push(new PlayerInputContext(playerDataView));\n }\n }\n get players() {\n return this.#players;\n }\n get keys() {\n if (!this.#players[0]) {\n throw new Error(\"No player inputs available in InputContext\");\n }\n return this.#players[0].keys;\n }\n get mouse() {\n if (!this.#players[0]) {\n throw new Error(\"No player inputs available in InputContext\");\n }\n return this.#players[0].mouse;\n }\n}\n\nclass MouseContext {\n #dataView;\n #buttonStates = new Map;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get x() {\n return this.#dataView.getFloat32(0, true);\n }\n get y() {\n return this.#dataView.getFloat32(4, true);\n }\n get wheel() {\n return { x: this.wheelX, y: this.wheelY };\n }\n get wheelX() {\n return this.#dataView.getFloat32(8, true);\n }\n get wheelY() {\n return this.#dataView.getFloat32(12, true);\n }\n get left() {\n return this.#buttonState(1 /* Left */);\n }\n get right() {\n return this.#buttonState(3 /* Right */);\n }\n get middle() {\n return this.#buttonState(2 /* Middle */);\n }\n #buttonState(code) {\n let state;\n if (this.#buttonStates.has(code)) {\n state = this.#buttonStates.get(code);\n } else {\n state = { down: false, held: false, up: false };\n this.#buttonStates.set(code, state);\n }\n const offset = MOUSE_BUTTONS_OFFSET;\n state.held = !!(this.#dataView.getUint8(offset + code) & 1);\n state.down = state.held && !(this.#dataView.getUint8(offset + code) & 2);\n state.up = !state.held && !!(this.#dataView.getUint8(offset + code) & 2);\n return state;\n }\n}\n\nclass KeyboardContext {\n #dataView;\n #keystates = new Map;\n constructor(dataView) {\n this.#dataView = dataView;\n }\n get shift() {\n return this.shiftLeft || this.shiftRight;\n }\n get alt() {\n return this.altLeft || this.altRight;\n }\n get control() {\n return this.controlLeft || this.controlRight;\n }\n get meta() {\n return this.metaLeft || this.metaRight;\n }\n get backquote() {\n return this.#keystate(1 /* Backquote */);\n }\n get backslash() {\n return this.#keystate(2 /* Backslash */);\n }\n get bracketLeft() {\n return this.#keystate(3 /* BracketLeft */);\n }\n get bracketRight() {\n return this.#keystate(4 /* BracketRight */);\n }\n get comma() {\n return this.#keystate(5 /* Comma */);\n }\n get digit0() {\n return this.#keystate(6 /* Digit0 */);\n }\n get digit1() {\n return this.#keystate(7 /* Digit1 */);\n }\n get digit2() {\n return this.#keystate(8 /* Digit2 */);\n }\n get digit3() {\n return this.#keystate(9 /* Digit3 */);\n }\n get digit4() {\n return this.#keystate(10 /* Digit4 */);\n }\n get digit5() {\n return this.#keystate(11 /* Digit5 */);\n }\n get digit6() {\n return this.#keystate(12 /* Digit6 */);\n }\n get digit7() {\n return this.#keystate(13 /* Digit7 */);\n }\n get digit8() {\n return this.#keystate(14 /* Digit8 */);\n }\n get digit9() {\n return this.#keystate(15 /* Digit9 */);\n }\n get equal() {\n return this.#keystate(16 /* Equal */);\n }\n get intlBackslash() {\n return this.#keystate(17 /* IntlBackslash */);\n }\n get intlRo() {\n return this.#keystate(18 /* IntlRo */);\n }\n get intlYen() {\n return this.#keystate(19 /* IntlYen */);\n }\n get a() {\n return this.#keystate(20 /* KeyA */);\n }\n get b() {\n return this.#keystate(21 /* KeyB */);\n }\n get c() {\n return this.#keystate(22 /* KeyC */);\n }\n get d() {\n return this.#keystate(23 /* KeyD */);\n }\n get e() {\n return this.#keystate(24 /* KeyE */);\n }\n get f() {\n return this.#keystate(25 /* KeyF */);\n }\n get g() {\n return this.#keystate(26 /* KeyG */);\n }\n get h() {\n return this.#keystate(27 /* KeyH */);\n }\n get i() {\n return this.#keystate(28 /* KeyI */);\n }\n get j() {\n return this.#keystate(29 /* KeyJ */);\n }\n get k() {\n return this.#keystate(30 /* KeyK */);\n }\n get l() {\n return this.#keystate(31 /* KeyL */);\n }\n get m() {\n return this.#keystate(32 /* KeyM */);\n }\n get n() {\n return this.#keystate(33 /* KeyN */);\n }\n get o() {\n return this.#keystate(34 /* KeyO */);\n }\n get p() {\n return this.#keystate(35 /* KeyP */);\n }\n get q() {\n return this.#keystate(36 /* KeyQ */);\n }\n get r() {\n return this.#keystate(37 /* KeyR */);\n }\n get s() {\n return this.#keystate(38 /* KeyS */);\n }\n get t() {\n return this.#keystate(39 /* KeyT */);\n }\n get u() {\n return this.#keystate(40 /* KeyU */);\n }\n get v() {\n return this.#keystate(41 /* KeyV */);\n }\n get w() {\n return this.#keystate(42 /* KeyW */);\n }\n get x() {\n return this.#keystate(43 /* KeyX */);\n }\n get y() {\n return this.#keystate(44 /* KeyY */);\n }\n get z() {\n return this.#keystate(45 /* KeyZ */);\n }\n get minus() {\n return this.#keystate(46 /* Minus */);\n }\n get period() {\n return this.#keystate(47 /* Period */);\n }\n get quote() {\n return this.#keystate(48 /* Quote */);\n }\n get semicolon() {\n return this.#keystate(49 /* Semicolon */);\n }\n get slash() {\n return this.#keystate(50 /* Slash */);\n }\n get altLeft() {\n return this.#keystate(51 /* AltLeft */);\n }\n get altRight() {\n return this.#keystate(52 /* AltRight */);\n }\n get backspace() {\n return this.#keystate(53 /* Backspace */);\n }\n get capsLock() {\n return this.#keystate(54 /* CapsLock */);\n }\n get contextMenu() {\n return this.#keystate(55 /* ContextMenu */);\n }\n get controlLeft() {\n return this.#keystate(56 /* ControlLeft */);\n }\n get controlRight() {\n return this.#keystate(57 /* ControlRight */);\n }\n get enter() {\n return this.#keystate(58 /* Enter */);\n }\n get metaLeft() {\n return this.#keystate(59 /* MetaLeft */);\n }\n get metaRight() {\n return this.#keystate(60 /* MetaRight */);\n }\n get shiftLeft() {\n return this.#keystate(61 /* ShiftLeft */);\n }\n get shiftRight() {\n return this.#keystate(62 /* ShiftRight */);\n }\n get space() {\n return this.#keystate(63 /* Space */);\n }\n get tab() {\n return this.#keystate(64 /* Tab */);\n }\n get convert() {\n return this.#keystate(65 /* Convert */);\n }\n get kanaMode() {\n return this.#keystate(66 /* KanaMode */);\n }\n get lang1() {\n return this.#keystate(67 /* Lang1 */);\n }\n get lang2() {\n return this.#keystate(68 /* Lang2 */);\n }\n get lang3() {\n return this.#keystate(69 /* Lang3 */);\n }\n get lang4() {\n return this.#keystate(70 /* Lang4 */);\n }\n get lang5() {\n return this.#keystate(71 /* Lang5 */);\n }\n get nonConvert() {\n return this.#keystate(72 /* NonConvert */);\n }\n get delete() {\n return this.#keystate(73 /* Delete */);\n }\n get end() {\n return this.#keystate(74 /* End */);\n }\n get help() {\n return this.#keystate(75 /* Help */);\n }\n get home() {\n return this.#keystate(76 /* Home */);\n }\n get insert() {\n return this.#keystate(77 /* Insert */);\n }\n get pageDown() {\n return this.#keystate(78 /* PageDown */);\n }\n get pageUp() {\n return this.#keystate(79 /* PageUp */);\n }\n get arrowDown() {\n return this.#keystate(80 /* ArrowDown */);\n }\n get arrowLeft() {\n return this.#keystate(81 /* ArrowLeft */);\n }\n get arrowRight() {\n return this.#keystate(82 /* ArrowRight */);\n }\n get arrowUp() {\n return this.#keystate(83 /* ArrowUp */);\n }\n get numLock() {\n return this.#keystate(84 /* NumLock */);\n }\n get numpad0() {\n return this.#keystate(85 /* Numpad0 */);\n }\n get numpad1() {\n return this.#keystate(86 /* Numpad1 */);\n }\n get numpad2() {\n return this.#keystate(87 /* Numpad2 */);\n }\n get numpad3() {\n return this.#keystate(88 /* Numpad3 */);\n }\n get numpad4() {\n return this.#keystate(89 /* Numpad4 */);\n }\n get numpad5() {\n return this.#keystate(90 /* Numpad5 */);\n }\n get numpad6() {\n return this.#keystate(91 /* Numpad6 */);\n }\n get numpad7() {\n return this.#keystate(92 /* Numpad7 */);\n }\n get numpad8() {\n return this.#keystate(93 /* Numpad8 */);\n }\n get numpad9() {\n return this.#keystate(94 /* Numpad9 */);\n }\n get numpadAdd() {\n return this.#keystate(95 /* NumpadAdd */);\n }\n get numpadBackspace() {\n return this.#keystate(96 /* NumpadBackspace */);\n }\n get numpadClear() {\n return this.#keystate(97 /* NumpadClear */);\n }\n get numpadClearEntry() {\n return this.#keystate(98 /* NumpadClearEntry */);\n }\n get numpadComma() {\n return this.#keystate(99 /* NumpadComma */);\n }\n get numpadDecimal() {\n return this.#keystate(100 /* NumpadDecimal */);\n }\n get numpadDivide() {\n return this.#keystate(101 /* NumpadDivide */);\n }\n get numpadEnter() {\n return this.#keystate(102 /* NumpadEnter */);\n }\n get numpadEqual() {\n return this.#keystate(103 /* NumpadEqual */);\n }\n get numpadHash() {\n return this.#keystate(104 /* NumpadHash */);\n }\n get numpadMemoryAdd() {\n return this.#keystate(105 /* NumpadMemoryAdd */);\n }\n get numpadMemoryClear() {\n return this.#keystate(106 /* NumpadMemoryClear */);\n }\n get numpadMemoryRecall() {\n return this.#keystate(107 /* NumpadMemoryRecall */);\n }\n get numpadMemoryStore() {\n return this.#keystate(108 /* NumpadMemoryStore */);\n }\n get numpadMemorySubtract() {\n return this.#keystate(109 /* NumpadMemorySubtract */);\n }\n get numpadMultiply() {\n return this.#keystate(110 /* NumpadMultiply */);\n }\n get numpadParenLeft() {\n return this.#keystate(111 /* NumpadParenLeft */);\n }\n get numpadParenRight() {\n return this.#keystate(112 /* NumpadParenRight */);\n }\n get numpadStar() {\n return this.#keystate(113 /* NumpadStar */);\n }\n get numpadSubtract() {\n return this.#keystate(114 /* NumpadSubtract */);\n }\n get escape() {\n return this.#keystate(115 /* Escape */);\n }\n get fn() {\n return this.#keystate(116 /* Fn */);\n }\n get fnLock() {\n return this.#keystate(117 /* FnLock */);\n }\n get printScreen() {\n return this.#keystate(118 /* PrintScreen */);\n }\n get scrollLock() {\n return this.#keystate(119 /* ScrollLock */);\n }\n get pause() {\n return this.#keystate(120 /* Pause */);\n }\n get browserBack() {\n return this.#keystate(121 /* BrowserBack */);\n }\n get browserFavorites() {\n return this.#keystate(122 /* BrowserFavorites */);\n }\n get browserForward() {\n return this.#keystate(123 /* BrowserForward */);\n }\n get browserHome() {\n return this.#keystate(124 /* BrowserHome */);\n }\n get browserRefresh() {\n return this.#keystate(125 /* BrowserRefresh */);\n }\n get browserSearch() {\n return this.#keystate(126 /* BrowserSearch */);\n }\n get browserStop() {\n return this.#keystate(127 /* BrowserStop */);\n }\n get eject() {\n return this.#keystate(128 /* Eject */);\n }\n get launchApp1() {\n return this.#keystate(129 /* LaunchApp1 */);\n }\n get launchApp2() {\n return this.#keystate(130 /* LaunchApp2 */);\n }\n get launchMail() {\n return this.#keystate(131 /* LaunchMail */);\n }\n get mediaPlayPause() {\n return this.#keystate(132 /* MediaPlayPause */);\n }\n get mediaSelect() {\n return this.#keystate(133 /* MediaSelect */);\n }\n get mediaStop() {\n return this.#keystate(134 /* MediaStop */);\n }\n get mediaTrackNext() {\n return this.#keystate(135 /* MediaTrackNext */);\n }\n get mediaTrackPrevious() {\n return this.#keystate(136 /* MediaTrackPrevious */);\n }\n get power() {\n return this.#keystate(137 /* Power */);\n }\n get sleep() {\n return this.#keystate(138 /* Sleep */);\n }\n get audioVolumeDown() {\n return this.#keystate(139 /* AudioVolumeDown */);\n }\n get audioVolumeMute() {\n return this.#keystate(140 /* AudioVolumeMute */);\n }\n get audioVolumeUp() {\n return this.#keystate(141 /* AudioVolumeUp */);\n }\n get wakeUp() {\n return this.#keystate(142 /* WakeUp */);\n }\n get hyper() {\n return this.#keystate(143 /* Hyper */);\n }\n get super() {\n return this.#keystate(144 /* Super */);\n }\n get turbo() {\n return this.#keystate(145 /* Turbo */);\n }\n get abort() {\n return this.#keystate(146 /* Abort */);\n }\n get resume() {\n return this.#keystate(147 /* Resume */);\n }\n get suspend() {\n return this.#keystate(148 /* Suspend */);\n }\n get again() {\n return this.#keystate(149 /* Again */);\n }\n get copy() {\n return this.#keystate(150 /* Copy */);\n }\n get cut() {\n return this.#keystate(151 /* Cut */);\n }\n get find() {\n return this.#keystate(152 /* Find */);\n }\n get open() {\n return this.#keystate(153 /* Open */);\n }\n get paste() {\n return this.#keystate(154 /* Paste */);\n }\n get props() {\n return this.#keystate(155 /* Props */);\n }\n get select() {\n return this.#keystate(156 /* Select */);\n }\n get undo() {\n return this.#keystate(157 /* Undo */);\n }\n get hiragana() {\n return this.#keystate(158 /* Hiragana */);\n }\n get katakana() {\n return this.#keystate(159 /* Katakana */);\n }\n get f1() {\n return this.#keystate(160 /* F1 */);\n }\n get f2() {\n return this.#keystate(161 /* F2 */);\n }\n get f3() {\n return this.#keystate(162 /* F3 */);\n }\n get f4() {\n return this.#keystate(163 /* F4 */);\n }\n get f5() {\n return this.#keystate(164 /* F5 */);\n }\n get f6() {\n return this.#keystate(165 /* F6 */);\n }\n get f7() {\n return this.#keystate(166 /* F7 */);\n }\n get f8() {\n return this.#keystate(167 /* F8 */);\n }\n get f9() {\n return this.#keystate(168 /* F9 */);\n }\n get f10() {\n return this.#keystate(169 /* F10 */);\n }\n get f11() {\n return this.#keystate(170 /* F11 */);\n }\n get f12() {\n return this.#keystate(171 /* F12 */);\n }\n get f13() {\n return this.#keystate(172 /* F13 */);\n }\n get f14() {\n return this.#keystate(173 /* F14 */);\n }\n get f15() {\n return this.#keystate(174 /* F15 */);\n }\n get f16() {\n return this.#keystate(175 /* F16 */);\n }\n get f17() {\n return this.#keystate(176 /* F17 */);\n }\n get f18() {\n return this.#keystate(177 /* F18 */);\n }\n get f19() {\n return this.#keystate(178 /* F19 */);\n }\n get f20() {\n return this.#keystate(179 /* F20 */);\n }\n get f21() {\n return this.#keystate(180 /* F21 */);\n }\n get f22() {\n return this.#keystate(181 /* F22 */);\n }\n get f23() {\n return this.#keystate(182 /* F23 */);\n }\n get f24() {\n return this.#keystate(183 /* F24 */);\n }\n get f25() {\n return this.#keystate(184 /* F25 */);\n }\n get f26() {\n return this.#keystate(185 /* F26 */);\n }\n get f27() {\n return this.#keystate(186 /* F27 */);\n }\n get f28() {\n return this.#keystate(187 /* F28 */);\n }\n get f29() {\n return this.#keystate(188 /* F29 */);\n }\n get f30() {\n return this.#keystate(189 /* F30 */);\n }\n get f31() {\n return this.#keystate(190 /* F31 */);\n }\n get f32() {\n return this.#keystate(191 /* F32 */);\n }\n get f33() {\n return this.#keystate(192 /* F33 */);\n }\n get f34() {\n return this.#keystate(193 /* F34 */);\n }\n get f35() {\n return this.#keystate(194 /* F35 */);\n }\n #keystate(code) {\n let state;\n if (this.#keystates.has(code)) {\n state = this.#keystates.get(code);\n } else {\n state = { down: false, held: false, up: false };\n this.#keystates.set(code, state);\n }\n state.held = !!(this.#dataView.getUint8(code) & 1);\n state.down = state.held && !(this.#dataView.getUint8(code) & 2);\n state.up = !state.held && !!(this.#dataView.getUint8(code) & 2);\n return state;\n }\n}\n// js/contexts/timeContext.ts\nclass TimeContext {\n dataView;\n constructor(dataView) {\n this.dataView = dataView;\n }\n get frame() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(0, true);\n }\n get dt() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(4, true) / 1000;\n }\n get time() {\n if (!this.dataView) {\n throw new Error(\"TimeContext DataView is not initialized\");\n }\n return this.dataView.getUint32(8, true) / 1000;\n }\n}\n\n// js/engine.ts\nvar DEFAULT_WASM_URL = new URL(\"../wasm/bloop.wasm\", import.meta.url);\nvar TIME_CTX_OFFSET = 0;\nvar INPUT_CTX_OFFSET = TIME_CTX_OFFSET + 4;\nvar EVENTS_OFFSET = INPUT_CTX_OFFSET + 4;\nvar SNAPSHOT_HEADER_LEN = 16;\nvar SNAPSHOT_HEADER_USER_LEN_OFFSET = 4;\nvar SNAPSHOT_HEADER_ENGINE_LEN_OFFSET = 8;\nexport {\n mouseButtonToMouseButtonCode,\n mouseButtonCodeToMouseButton,\n keyToKeyCode,\n keyCodeToKey,\n inputSourceToInputSourceCode,\n inputSourceCodeToInputSource,\n TimeContext,\n TIME_CTX_OFFSET,\n SNAPSHOT_HEADER_USER_LEN_OFFSET,\n SNAPSHOT_HEADER_LEN,\n SNAPSHOT_HEADER_ENGINE_LEN_OFFSET,\n PlayerInputContext,\n PLAYER_INPUTS_SIZE,\n MouseContext,\n MOUSE_OFFSET,\n MOUSE_BUTTONS_OFFSET,\n MAX_PLAYERS,\n KeyboardContext,\n KEYBOARD_SIZE,\n KEYBOARD_OFFSET,\n InputContext,\n INPUT_CTX_SIZE,\n INPUT_CTX_OFFSET,\n exports_enums as Enums,\n EVENT_PAYLOAD_SIZE,\n EVENT_PAYLOAD_ALIGN,\n EVENTS_OFFSET,\n DEFAULT_WASM_URL\n};\n\n//# debugId=9ABC92059EB22C3864756E2164756E21\n//# sourceMappingURL=engine.js.map\n",
7
7
  "import { type Bloop, type MountOpts, mount, type Sim } from \"@bloopjs/bloop\";\nimport type { Key } from \"@bloopjs/engine\";\nimport { mouseButtonCodeToMouseButton } from \"@bloopjs/engine\";\n\nexport type StartOptions = {\n /** A bloop game instance */\n game: Bloop<any>;\n /** A pre-mounted sim instance, defaults to mount with default options */\n sim?: Sim;\n /** An override url to use to fetch the engine wasm */\n engineWasmUrl?: URL;\n /** Whether the sim should pause before running the first frame, defaults to false */\n startPaused?: boolean;\n /** Whether the sim should be recording to tape from initialization, defaults to true */\n startRecording?: boolean;\n};\n\n/** Start a bloop game on the web */\nexport async function start(opts: StartOptions): Promise<App> {\n if (!opts.sim) {\n const { sim } = await mount({\n hooks: opts.game.hooks,\n startRecording: opts.startRecording ?? true,\n wasmUrl: opts.engineWasmUrl,\n });\n opts.sim = sim;\n }\n\n const app = new App(opts.sim, opts.game);\n return app;\n}\n\nexport class App {\n #sim: Sim;\n game: Bloop<any>;\n /** RequestAnimationFrame handle for cancelling */\n #rafHandle: number | null = null;\n #unsubscribe: UnsubscribeFn | null = null;\n #now: number = performance.now();\n\n constructor(sim: Sim, game: Bloop<any>) {\n this.#sim = sim;\n this.game = game;\n\n this.game.hooks.beforeFrame = (frame: number) => {\n this.beforeFrame.notify(frame);\n };\n\n this.subscribe();\n }\n\n get sim(): Sim {\n return this.#sim;\n }\n\n set sim(sim: Sim) {\n this.#sim = sim;\n }\n\n beforeFrame: ReturnType<typeof createListener> = createListener<[number]>();\n afterFrame: ReturnType<typeof createListener> = createListener<[number]>();\n\n /** Subscribe to the browser events and start the render loop */\n subscribe(): void {\n const handleKeydown = (event: KeyboardEvent) => {\n this.sim.emit.keydown(event.code as Key);\n };\n window.addEventListener(\"keydown\", handleKeydown);\n\n const handleKeyup = (event: KeyboardEvent) => {\n this.sim.emit.keyup(event.code as Key);\n };\n window.addEventListener(\"keyup\", handleKeyup);\n\n const handleMousemove = (event: MouseEvent) => {\n this.sim.emit.mousemove(event.clientX, event.clientY);\n };\n window.addEventListener(\"mousemove\", handleMousemove);\n\n const handleMousedown = (event: MouseEvent) => {\n this.sim.emit.mousedown(mouseButtonCodeToMouseButton(event.button + 1));\n };\n window.addEventListener(\"mousedown\", handleMousedown);\n\n const handleMouseup = (event: MouseEvent) => {\n this.sim.emit.mouseup(mouseButtonCodeToMouseButton(event.button + 1));\n };\n window.addEventListener(\"mouseup\", handleMouseup);\n\n const handleMousewheel = (event: WheelEvent) => {\n this.sim.emit.mousewheel(event.deltaX, event.deltaY);\n };\n window.addEventListener(\"wheel\", handleMousewheel);\n\n // Touch events for mobile support\n const handleTouchstart = (event: TouchEvent) => {\n const touch = event.touches[0];\n if (touch) {\n this.sim.emit.mousemove(touch.clientX, touch.clientY);\n this.sim.emit.mousedown(\"Left\");\n }\n };\n window.addEventListener(\"touchstart\", handleTouchstart);\n\n const handleTouchend = () => {\n this.sim.emit.mouseup(\"Left\");\n };\n window.addEventListener(\"touchend\", handleTouchend);\n\n const handleTouchmove = (event: TouchEvent) => {\n const touch = event.touches[0];\n if (touch) {\n this.sim.emit.mousemove(touch.clientX, touch.clientY);\n }\n };\n window.addEventListener(\"touchmove\", handleTouchmove);\n\n const playbarHotkeys = (event: KeyboardEvent) => {\n const isPauseHotkey =\n event.key === \"Enter\" && (event.ctrlKey || event.metaKey);\n if (isPauseHotkey || event.key === \"6\") {\n this.sim.isPaused ? this.sim.unpause() : this.sim.pause();\n }\n\n if (this.sim.isPaused) {\n switch (event.key) {\n case \",\":\n case \"5\":\n this.sim.stepBack();\n break;\n case \".\":\n case \"7\":\n this.sim.step();\n break;\n }\n }\n };\n window.addEventListener(\"keydown\", playbarHotkeys);\n\n const frame = () => {\n this.sim.step(performance.now() - this.#now);\n if (!this.sim.isPaused) {\n try {\n this.afterFrame.notify(this.sim.time.frame);\n } catch (e) {\n console.error(\"Error in afterFrame listeners:\", e);\n }\n }\n this.#now = performance.now();\n this.#rafHandle = requestAnimationFrame(frame);\n };\n frame();\n\n this.#unsubscribe = () => {\n window.removeEventListener(\"keydown\", handleKeydown);\n window.removeEventListener(\"keyup\", handleKeyup);\n window.removeEventListener(\"mousemove\", handleMousemove);\n window.removeEventListener(\"mousedown\", handleMousedown);\n window.removeEventListener(\"mouseup\", handleMouseup);\n window.removeEventListener(\"wheel\", handleMousewheel);\n window.removeEventListener(\"keydown\", playbarHotkeys);\n window.removeEventListener(\"touchstart\", handleTouchstart);\n window.removeEventListener(\"touchend\", handleTouchend);\n window.removeEventListener(\"touchmove\", handleTouchmove);\n if (this.#rafHandle != null) {\n cancelAnimationFrame(this.#rafHandle);\n }\n };\n }\n\n /** Clean up wasm resources and event listeners */\n cleanup(): void {\n this.#unsubscribe?.();\n this.sim.unmount();\n this.beforeFrame.unsubscribeAll();\n this.afterFrame.unsubscribeAll();\n }\n\n async acceptHmr(module: any, opts?: Partial<MountOpts>): Promise<void> {\n const game = (module.game ?? module) as Bloop<any>;\n if (!game.hooks) {\n throw new Error(\n `HMR: missing game.hooks export on module: ${JSON.stringify(module)}`\n );\n }\n\n // load session from the current sim\n this.sim.pause();\n const { sim } = await mount({\n hooks: game.hooks,\n wasmUrl: new URL(\"/bloop-wasm/bloop.wasm\", window.location.href),\n ...opts,\n });\n sim.cloneSession(this.sim);\n this.sim.unmount();\n this.sim = sim;\n this.game = game;\n }\n}\n\nfunction createListener<T extends any[]>(): {\n subscribe: (callback: (...args: T) => void) => UnsubscribeFn;\n notify: (...args: T) => void;\n unsubscribeAll: UnsubscribeFn;\n} {\n const listeners = new Set<(...args: T) => void>();\n\n const subscribe = (callback: (...args: T) => void): (() => void) => {\n listeners.add(callback);\n\n // Return unsubscribe function\n return () => {\n listeners.delete(callback);\n };\n };\n\n const notify = (...args: T): void => {\n listeners.forEach((callback) => {\n callback(...args);\n });\n };\n\n return {\n subscribe,\n notify,\n unsubscribeAll: () => listeners.clear(),\n };\n}\n\nexport type UnsubscribeFn = () => void;\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "6903EE465E71BF4D64756E2164756E21",
9
+ "mappings": "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AE,GAAG;AAAA,IACP,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,EAAE,GAAG;AAAA,IACP,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,EAAE,GAAG;AAAA,IACP,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,EAAE,GAAG;AAAA,IACP,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAG;AAAA;AAAA,MAEvB,GAAG,GAAG;AAAA,IACR,OAAO,K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AAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG;AAAA,IACN,OAAO,KAAK,UAAU,EAAa;AAAA;AAAA,MAEjC,CAAC,GAAG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O,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AAAA,MAEjC,GAAG,GAAG;AAAA,IACR,OAAO,KAAK,UAAU,GAAa;AAAA;AA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",
10
+ "debugId": "CB2BC26A05BB20C764756E2164756E21",
11
11
  "names": []
12
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloopjs/web",
3
- "version": "0.0.39",
3
+ "version": "0.0.41",
4
4
  "author": "Neil Sarkar",
5
5
  "type": "module",
6
6
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "typescript": "^5"
34
34
  },
35
35
  "dependencies": {
36
- "@bloopjs/bloop": "0.0.39",
37
- "@bloopjs/engine": "0.0.39"
36
+ "@bloopjs/bloop": "0.0.41",
37
+ "@bloopjs/engine": "0.0.41"
38
38
  }
39
39
  }