cubing 0.55.2 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/bin/chunks/{chunk-DFQMTDRG.js → chunk-J53ID3VX.js} +2 -2
  2. package/dist/bin/chunks/chunk-J53ID3VX.js.map +7 -0
  3. package/dist/bin/order.js +1 -1
  4. package/dist/bin/order.js.map +2 -2
  5. package/dist/bin/puzzle-geometry-bin.js +1 -1
  6. package/dist/bin/puzzle-geometry-bin.js.map +2 -2
  7. package/dist/bin/scramble.js +2 -1
  8. package/dist/bin/scramble.js.map +2 -2
  9. package/dist/lib/cubing/{PuzzleLoader-DGpDr4U9.d.ts → PuzzleLoader-Dd4G1VlU.d.ts} +358 -314
  10. package/dist/lib/cubing/alg/index.d.ts +9 -9
  11. package/dist/lib/cubing/alg/index.js +1 -1
  12. package/dist/lib/cubing/bluetooth/index.d.ts +11 -12
  13. package/dist/lib/cubing/bluetooth/index.js +72 -57
  14. package/dist/lib/cubing/bluetooth/index.js.map +3 -3
  15. package/dist/lib/cubing/{bluetooth-puzzle-C097rA5h.d.ts → bluetooth-puzzle-FIXncgc8.d.ts} +1 -1
  16. package/dist/lib/cubing/chunks/big-puzzle-orientation-IZASZS5A.js +70 -0
  17. package/dist/lib/cubing/chunks/big-puzzle-orientation-IZASZS5A.js.map +7 -0
  18. package/dist/lib/cubing/chunks/{chunk-TQF5J7MH.js → chunk-3YVVF3KK.js} +79 -79
  19. package/dist/lib/cubing/chunks/chunk-3YVVF3KK.js.map +7 -0
  20. package/dist/lib/cubing/chunks/{chunk-ZOU73IV5.js → chunk-CGV5LY7H.js} +2 -2
  21. package/dist/lib/cubing/chunks/chunk-CGV5LY7H.js.map +7 -0
  22. package/dist/lib/cubing/chunks/{chunk-Y5U55NHQ.js → chunk-DWN2US56.js} +11 -11
  23. package/dist/lib/cubing/chunks/chunk-DWN2US56.js.map +7 -0
  24. package/dist/lib/cubing/chunks/{chunk-PJH5IVDC.js → chunk-EVYENG3X.js} +40 -42
  25. package/dist/lib/cubing/chunks/chunk-EVYENG3X.js.map +7 -0
  26. package/dist/lib/cubing/chunks/{chunk-BQNTAVTA.js → chunk-GKM2CK6T.js} +2 -2
  27. package/dist/lib/cubing/chunks/{chunk-MFK4M6PV.js → chunk-J6NSY47E.js} +120 -18
  28. package/dist/lib/cubing/chunks/chunk-J6NSY47E.js.map +7 -0
  29. package/dist/lib/cubing/chunks/{chunk-2QDTMC3W.js → chunk-KAXXPFNE.js} +4 -4
  30. package/dist/lib/cubing/chunks/{chunk-2QDTMC3W.js.map → chunk-KAXXPFNE.js.map} +2 -2
  31. package/dist/lib/cubing/chunks/{chunk-SGPKF5IH.js → chunk-MITU5GJ5.js} +55 -51
  32. package/dist/lib/cubing/chunks/{chunk-SGPKF5IH.js.map → chunk-MITU5GJ5.js.map} +3 -3
  33. package/dist/lib/cubing/chunks/{chunk-WELOEBCE.js → chunk-SNKS5WOA.js} +166 -150
  34. package/dist/lib/cubing/chunks/chunk-SNKS5WOA.js.map +7 -0
  35. package/dist/lib/cubing/chunks/{chunk-2SBMIHZV.js → chunk-SWKNZGJF.js} +100 -108
  36. package/dist/lib/cubing/chunks/chunk-SWKNZGJF.js.map +7 -0
  37. package/dist/lib/cubing/chunks/{chunk-G3WJVG4K.js → chunk-XKTLEY2R.js} +2 -2
  38. package/dist/lib/cubing/chunks/chunk-XKTLEY2R.js.map +7 -0
  39. package/dist/lib/cubing/chunks/{inside-DZMTYTHV.js → inside-AF5A42Y6.js} +18 -18
  40. package/dist/lib/cubing/chunks/{inside-DZMTYTHV.js.map → inside-AF5A42Y6.js.map} +2 -2
  41. package/dist/lib/cubing/chunks/{puzzles-dynamic-side-events-QIADTLKJ.js → puzzles-dynamic-side-events-BOGUHF4Q.js} +1681 -1800
  42. package/dist/lib/cubing/chunks/puzzles-dynamic-side-events-BOGUHF4Q.js.map +7 -0
  43. package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-EGIM6IYZ.js → search-dynamic-sgs-side-events-PVOJWVJF.js} +7 -7
  44. package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-EGIM6IYZ.js.map → search-dynamic-sgs-side-events-PVOJWVJF.js.map} +2 -2
  45. package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-R2TXOWXD.js → search-dynamic-sgs-unofficial-HRR5D2US.js} +648 -648
  46. package/dist/lib/cubing/chunks/search-dynamic-sgs-unofficial-HRR5D2US.js.map +7 -0
  47. package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-6XXEHLWN.js → search-dynamic-solve-4x4x4-3CROPIQD.js} +7 -7
  48. package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-5YRST2XM.js → search-dynamic-solve-fto-NKAFVO65.js} +2 -2
  49. package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-W64XQPBF.js → search-dynamic-solve-kilominx-EDGE5SP4.js} +2 -2
  50. package/dist/lib/cubing/chunks/search-worker-entry.js +1 -1
  51. package/dist/lib/cubing/chunks/{twisty-dynamic-3d-H7YMZQPB.js → twisty-dynamic-3d-EIIPCTEF.js} +106 -93
  52. package/dist/lib/cubing/chunks/twisty-dynamic-3d-EIIPCTEF.js.map +7 -0
  53. package/dist/lib/cubing/chunks/{twsearch-ZJ4WTIBT.js → twsearch-TGLVN7TI.js} +4 -4
  54. package/dist/lib/cubing/chunks/twsearch-TGLVN7TI.js.map +7 -0
  55. package/dist/lib/cubing/chunks/twsearch_wasm_bg-NHUYB5UW-HHHVHFI5.js +10 -0
  56. package/dist/lib/cubing/chunks/twsearch_wasm_bg-NHUYB5UW-HHHVHFI5.js.map +7 -0
  57. package/dist/lib/cubing/{index-3pTbhXFM.d.ts → index-Drw5ySJm.d.ts} +2 -2
  58. package/dist/lib/cubing/kpuzzle/index.d.ts +2 -2
  59. package/dist/lib/cubing/kpuzzle/index.js +2 -2
  60. package/dist/lib/cubing/notation/index.d.ts +4 -4
  61. package/dist/lib/cubing/notation/index.js +4 -4
  62. package/dist/lib/cubing/protocol/index.d.ts +2 -2
  63. package/dist/lib/cubing/protocol/index.js +4 -4
  64. package/dist/lib/cubing/puzzle-geometry/index.d.ts +3 -3
  65. package/dist/lib/cubing/puzzle-geometry/index.js +616 -483
  66. package/dist/lib/cubing/puzzle-geometry/index.js.map +3 -3
  67. package/dist/lib/cubing/puzzles/index.d.ts +2 -2
  68. package/dist/lib/cubing/puzzles/index.js +4 -4
  69. package/dist/lib/cubing/scramble/index.d.ts +3 -3
  70. package/dist/lib/cubing/scramble/index.js +6 -6
  71. package/dist/lib/cubing/search/index.d.ts +3 -3
  72. package/dist/lib/cubing/search/index.js +6 -6
  73. package/dist/lib/cubing/stream/index.d.ts +23 -23
  74. package/dist/lib/cubing/stream/index.js +41 -41
  75. package/dist/lib/cubing/stream/index.js.map +3 -3
  76. package/dist/lib/cubing/twisty/index.d.ts +9 -9
  77. package/dist/lib/cubing/twisty/index.js +3675 -3630
  78. package/dist/lib/cubing/twisty/index.js.map +4 -4
  79. package/package.json +16 -10
  80. package/dist/bin/chunks/chunk-DFQMTDRG.js.map +0 -7
  81. package/dist/lib/cubing/chunks/chunk-2SBMIHZV.js.map +0 -7
  82. package/dist/lib/cubing/chunks/chunk-G3WJVG4K.js.map +0 -7
  83. package/dist/lib/cubing/chunks/chunk-MFK4M6PV.js.map +0 -7
  84. package/dist/lib/cubing/chunks/chunk-PJH5IVDC.js.map +0 -7
  85. package/dist/lib/cubing/chunks/chunk-TQF5J7MH.js.map +0 -7
  86. package/dist/lib/cubing/chunks/chunk-WELOEBCE.js.map +0 -7
  87. package/dist/lib/cubing/chunks/chunk-Y5U55NHQ.js.map +0 -7
  88. package/dist/lib/cubing/chunks/chunk-ZOU73IV5.js.map +0 -7
  89. package/dist/lib/cubing/chunks/puzzles-dynamic-side-events-QIADTLKJ.js.map +0 -7
  90. package/dist/lib/cubing/chunks/search-dynamic-sgs-unofficial-R2TXOWXD.js.map +0 -7
  91. package/dist/lib/cubing/chunks/twisty-dynamic-3d-H7YMZQPB.js.map +0 -7
  92. package/dist/lib/cubing/chunks/twsearch-ZJ4WTIBT.js.map +0 -7
  93. package/dist/lib/cubing/chunks/twsearch_wasm_bg-FWKR4AQ6-XETKNJAN.js +0 -10
  94. package/dist/lib/cubing/chunks/twsearch_wasm_bg-FWKR4AQ6-XETKNJAN.js.map +0 -7
  95. /package/dist/lib/cubing/chunks/{chunk-BQNTAVTA.js.map → chunk-GKM2CK6T.js.map} +0 -0
  96. /package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-6XXEHLWN.js.map → search-dynamic-solve-4x4x4-3CROPIQD.js.map} +0 -0
  97. /package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-5YRST2XM.js.map → search-dynamic-solve-fto-NKAFVO65.js.map} +0 -0
  98. /package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-W64XQPBF.js.map → search-dynamic-solve-kilominx-EDGE5SP4.js.map} +0 -0
@@ -1,5 +1,5 @@
1
- import { u as PuzzleID, t as PuzzleLoader, v as KPuzzle, d as PuzzleGeometry, E as ExperimentalStickering, w as StickeringMask, x as PuzzleSpecificSimplifyOptions, A as AlgLeaf } from '../PuzzleLoader-DGpDr4U9.js';
2
- import 'three';
1
+ import { u as PuzzleID, t as PuzzleLoader, v as KPuzzle, q as PuzzleGeometry, E as ExperimentalStickering, w as StickeringMask, x as PuzzleSpecificSimplifyOptions, A as AlgLeaf } from '../PuzzleLoader-Dd4G1VlU.js';
2
+ import 'three/src/Three.js';
3
3
 
4
4
  interface EventInfo {
5
5
  puzzleID: PuzzleID;
@@ -6,10 +6,10 @@ import {
6
6
  twizzleEvents,
7
7
  wcaEventInfo,
8
8
  wcaEvents
9
- } from "../chunks/chunk-MFK4M6PV.js";
10
- import "../chunks/chunk-SGPKF5IH.js";
11
- import "../chunks/chunk-TQF5J7MH.js";
12
- import "../chunks/chunk-2SBMIHZV.js";
9
+ } from "../chunks/chunk-J6NSY47E.js";
10
+ import "../chunks/chunk-MITU5GJ5.js";
11
+ import "../chunks/chunk-3YVVF3KK.js";
12
+ import "../chunks/chunk-SWKNZGJF.js";
13
13
  export {
14
14
  cube2x2x2,
15
15
  cube3x3x3,
@@ -1,3 +1,3 @@
1
- export { r as randomScrambleForEvent } from '../index-3pTbhXFM.js';
2
- import '../PuzzleLoader-DGpDr4U9.js';
3
- import 'three';
1
+ import '../PuzzleLoader-Dd4G1VlU.js';
2
+ export { r as randomScrambleForEvent } from '../index-Drw5ySJm.js';
3
+ import 'three/src/Three.js';
@@ -1,14 +1,14 @@
1
1
  import "../chunks/chunk-NAPITA3L.js";
2
2
  import {
3
3
  randomScrambleForEvent
4
- } from "../chunks/chunk-ZOU73IV5.js";
5
- import "../chunks/chunk-Y5U55NHQ.js";
4
+ } from "../chunks/chunk-CGV5LY7H.js";
5
+ import "../chunks/chunk-DWN2US56.js";
6
6
  import "../chunks/chunk-7GUL3OBQ.js";
7
7
  import "../chunks/chunk-RDSQRW3G.js";
8
- import "../chunks/chunk-MFK4M6PV.js";
9
- import "../chunks/chunk-SGPKF5IH.js";
10
- import "../chunks/chunk-TQF5J7MH.js";
11
- import "../chunks/chunk-2SBMIHZV.js";
8
+ import "../chunks/chunk-J6NSY47E.js";
9
+ import "../chunks/chunk-MITU5GJ5.js";
10
+ import "../chunks/chunk-3YVVF3KK.js";
11
+ import "../chunks/chunk-SWKNZGJF.js";
12
12
  export {
13
13
  randomScrambleForEvent
14
14
  };
@@ -1,6 +1,6 @@
1
- export { a as experimentalSolve2x2x2, e as experimentalSolve3x3x3IgnoringCenters, f as experimentalSolveTwsearch, d as setSearchDebug, c as solveMegaminx, b as solvePyraminx, s as solveSkewb } from '../index-3pTbhXFM.js';
2
- import { K as KPattern } from '../PuzzleLoader-DGpDr4U9.js';
3
- import 'three';
1
+ import { K as KPattern } from '../PuzzleLoader-Dd4G1VlU.js';
2
+ export { e as experimentalSolve2x2x2, a as experimentalSolve3x3x3IgnoringCenters, f as experimentalSolveTwsearch, s as setSearchDebug, b as solveMegaminx, c as solvePyraminx, d as solveSkewb } from '../index-Drw5ySJm.js';
3
+ import 'three/src/Three.js';
4
4
 
5
5
  declare function random333Pattern(): Promise<KPattern>;
6
6
 
@@ -6,16 +6,16 @@ import {
6
6
  solvePyraminx,
7
7
  solveSkewb,
8
8
  solveTwsearch
9
- } from "../chunks/chunk-ZOU73IV5.js";
9
+ } from "../chunks/chunk-CGV5LY7H.js";
10
10
  import {
11
11
  random333Pattern
12
- } from "../chunks/chunk-Y5U55NHQ.js";
12
+ } from "../chunks/chunk-DWN2US56.js";
13
13
  import "../chunks/chunk-7GUL3OBQ.js";
14
14
  import "../chunks/chunk-RDSQRW3G.js";
15
- import "../chunks/chunk-MFK4M6PV.js";
16
- import "../chunks/chunk-SGPKF5IH.js";
17
- import "../chunks/chunk-TQF5J7MH.js";
18
- import "../chunks/chunk-2SBMIHZV.js";
15
+ import "../chunks/chunk-J6NSY47E.js";
16
+ import "../chunks/chunk-MITU5GJ5.js";
17
+ import "../chunks/chunk-3YVVF3KK.js";
18
+ import "../chunks/chunk-SWKNZGJF.js";
19
19
  export {
20
20
  experimentalSolve2x2x2,
21
21
  experimentalSolve3x3x3IgnoringCenters,
@@ -1,6 +1,6 @@
1
- import '../PuzzleLoader-DGpDr4U9.js';
2
- import { A as AlgLeafEvent, O as OrientationEvent } from '../bluetooth-puzzle-C097rA5h.js';
3
- import 'three';
1
+ import '../PuzzleLoader-Dd4G1VlU.js';
2
+ import { A as AlgLeafEvent, O as OrientationEvent } from '../bluetooth-puzzle-FIXncgc8.js';
3
+ import 'three/src/Three.js';
4
4
 
5
5
  interface ProxyMoveEvent {
6
6
  event: "move";
@@ -15,26 +15,6 @@ interface ProxyResetEvent {
15
15
  }
16
16
  type ProxyEvent = ProxyMoveEvent | ProxyOrientationEvent | ProxyResetEvent;
17
17
 
18
- declare class WebSocketProxySender {
19
- protected websocket: WebSocket;
20
- constructor(url: string);
21
- sendMoveEvent(e: AlgLeafEvent): void;
22
- sendOrientationEvent(e: OrientationEvent): void;
23
- sendResetEvent(): void;
24
- protected sendProxyEvent(proxyEvent: ProxyEvent): void;
25
- protected onopen(): void;
26
- protected onerror(error: Error): void;
27
- protected onmessage(_e: MessageEvent): void;
28
- }
29
- declare abstract class WebSocketProxyReceiver {
30
- protected websocket: WebSocket;
31
- constructor(url: string, socketOrigin?: string);
32
- protected onopen(): void;
33
- protected onerror(error: Error): void;
34
- protected onmessage(e: MessageEvent): void;
35
- abstract onProxyEvent(e: ProxyEvent): void;
36
- }
37
-
38
18
  declare class TwizzleStream extends EventTarget {
39
19
  socket: WebSocket;
40
20
  constructor(url: string);
@@ -53,4 +33,24 @@ declare class TwizzleStreamServer {
53
33
  connect(streamID: string): TwizzleStream;
54
34
  }
55
35
 
36
+ declare class WebSocketProxySender {
37
+ protected websocket: WebSocket;
38
+ constructor(url: string);
39
+ sendMoveEvent(e: AlgLeafEvent): void;
40
+ sendOrientationEvent(e: OrientationEvent): void;
41
+ sendResetEvent(): void;
42
+ protected sendProxyEvent(proxyEvent: ProxyEvent): void;
43
+ protected onopen(): void;
44
+ protected onerror(error: any): void;
45
+ protected onmessage(_e: MessageEvent): void;
46
+ }
47
+ declare abstract class WebSocketProxyReceiver {
48
+ protected websocket?: WebSocket;
49
+ constructor(url: string, socketOrigin?: string);
50
+ protected onopen(): void;
51
+ protected onerror(error: any): void;
52
+ protected onmessage(e: MessageEvent): void;
53
+ abstract onProxyEvent(e: ProxyEvent): void;
54
+ }
55
+
56
56
  export { type ProxyEvent as ExperimentalProxyEvent, type ProxyMoveEvent as ExperimentalProxyMoveEvent, type ProxyOrientationEvent as ExperimentalProxyOrientationEvent, type ProxyResetEvent as ExperimentalProxyResetEvent, TwizzleStreamServer as ExperimentalTwizzleStreamServer, WebSocketProxyReceiver as ExperimentalWebSocketProxyReceiver, WebSocketProxySender as ExperimentalWebSocketProxySender };
@@ -1,7 +1,47 @@
1
1
  import {
2
2
  Move,
3
3
  QuantumMove
4
- } from "../chunks/chunk-2SBMIHZV.js";
4
+ } from "../chunks/chunk-SWKNZGJF.js";
5
+
6
+ // src/cubing/stream/twizzle/TwizzleStream.ts
7
+ var TwizzleStream = class extends EventTarget {
8
+ socket;
9
+ constructor(url) {
10
+ super();
11
+ this.socket = new WebSocket(url);
12
+ this.socket.onmessage = this.onMessage.bind(this);
13
+ }
14
+ onMessage(msg) {
15
+ try {
16
+ const json = JSON.parse(msg.data);
17
+ if (json.event === "move") {
18
+ const move = json.data.latestMove;
19
+ if (move.type !== "blockMove") {
20
+ throw new Error("Invalid move!");
21
+ }
22
+ this.dispatchEvent(
23
+ new CustomEvent("move", {
24
+ detail: {
25
+ move: new Move(new QuantumMove(move.family), move.amount)
26
+ }
27
+ })
28
+ );
29
+ }
30
+ } catch (e) {
31
+ console.error("Could not handle message:", e);
32
+ }
33
+ }
34
+ };
35
+ var TwizzleStreamServer = class {
36
+ async streams() {
37
+ return (await (await fetch("https://api.twizzle.net/v0/streams")).json()).streams;
38
+ }
39
+ connect(streamID) {
40
+ return new TwizzleStream(
41
+ `wss://api.twizzle.net/v0/streams/${streamID}/socket`
42
+ );
43
+ }
44
+ };
5
45
 
6
46
  // src/cubing/stream/websocket-proxy.ts
7
47
  var WebSocketProxySender = class {
@@ -63,46 +103,6 @@ var WebSocketProxyReceiver = class {
63
103
  this.onProxyEvent(JSON.parse(e.data));
64
104
  }
65
105
  };
66
-
67
- // src/cubing/stream/twizzle/TwizzleStream.ts
68
- var TwizzleStream = class extends EventTarget {
69
- socket;
70
- constructor(url) {
71
- super();
72
- this.socket = new WebSocket(url);
73
- this.socket.onmessage = this.onMessage.bind(this);
74
- }
75
- onMessage(msg) {
76
- try {
77
- const json = JSON.parse(msg.data);
78
- if (json.event === "move") {
79
- const move = json.data.latestMove;
80
- if (move.type !== "blockMove") {
81
- throw new Error("Invalid move!");
82
- }
83
- this.dispatchEvent(
84
- new CustomEvent("move", {
85
- detail: {
86
- move: new Move(new QuantumMove(move.family), move.amount)
87
- }
88
- })
89
- );
90
- }
91
- } catch (e) {
92
- console.error("Could not handle message:", e);
93
- }
94
- }
95
- };
96
- var TwizzleStreamServer = class {
97
- async streams() {
98
- return (await (await fetch("https://api.twizzle.net/v0/streams")).json()).streams;
99
- }
100
- connect(streamID) {
101
- return new TwizzleStream(
102
- `wss://api.twizzle.net/v0/streams/${streamID}/socket`
103
- );
104
- }
105
- };
106
106
  export {
107
107
  TwizzleStreamServer as ExperimentalTwizzleStreamServer,
108
108
  WebSocketProxyReceiver as ExperimentalWebSocketProxyReceiver,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/cubing/stream/websocket-proxy.ts", "../../../../src/cubing/stream/twizzle/TwizzleStream.ts"],
4
- "sourcesContent": ["import type { MoveEvent, OrientationEvent } from \"../bluetooth\";\nimport type { ProxyEvent } from \"./proxy-event\";\n\nexport class WebSocketProxySender {\n protected websocket: WebSocket;\n constructor(url: string) {\n this.websocket = new WebSocket(url);\n this.websocket.onopen = this.onopen.bind(this);\n this.websocket.onerror = this.onerror.bind(this);\n this.websocket.onmessage = this.onmessage.bind(this);\n }\n\n public sendMoveEvent(e: MoveEvent): void {\n (e as any).latestAlgLeaf = e.latestAlgLeaf.toString(); // TODO\n this.sendProxyEvent({\n event: \"move\",\n data: e,\n });\n }\n\n public sendOrientationEvent(e: OrientationEvent): void {\n this.sendProxyEvent({\n event: \"orientation\",\n data: e,\n });\n }\n\n public sendResetEvent(): void {\n this.sendProxyEvent({ event: \"reset\" });\n }\n\n protected sendProxyEvent(proxyEvent: ProxyEvent): void {\n this.websocket.send(JSON.stringify(proxyEvent));\n }\n\n protected onopen(): void {\n console.log(\"Sending socket is open!\");\n }\n\n protected onerror(error: Error): void {\n console.error(\"WebSocket sender error:\", error);\n }\n\n protected onmessage(_e: MessageEvent): void {}\n}\n\nexport abstract class WebSocketProxyReceiver {\n protected websocket: WebSocket;\n constructor(url: string, socketOrigin?: string) {\n if (!socketOrigin) {\n console.log(\"No socket origin specified. Will not attempt to connect.\");\n return;\n }\n this.websocket = new WebSocket(url);\n console.log(this.websocket);\n this.websocket.onopen = this.onopen.bind(this);\n this.websocket.onerror = this.onerror.bind(this);\n this.websocket.onmessage = this.onmessage.bind(this);\n }\n\n protected onopen(): void {\n console.log(\"Receiving socket is open!\");\n }\n\n protected onerror(error: Error): void {\n console.error(\"WebSocket receiver error:\", error);\n }\n\n protected onmessage(e: MessageEvent): void {\n this.onProxyEvent(JSON.parse(e.data));\n }\n\n abstract onProxyEvent(e: ProxyEvent): void;\n}\n", "import { Move, QuantumMove } from \"../../alg\";\nimport type { StreamMessageEvent } from \"./stream-types\";\n\nclass TwizzleStream extends EventTarget {\n socket: WebSocket;\n constructor(url: string) {\n super();\n this.socket = new WebSocket(url);\n this.socket.onmessage = this.onMessage.bind(this); // TODO: Can we \"add a listener instead\"?\n }\n\n onMessage(msg: MessageEvent): void {\n try {\n const json: StreamMessageEvent = JSON.parse(msg.data);\n if (json.event === \"move\") {\n const move = json.data.latestMove;\n if (move.type !== \"blockMove\") {\n throw new Error(\"Invalid move!\");\n }\n this.dispatchEvent(\n new CustomEvent(\"move\", {\n detail: {\n move: new Move(new QuantumMove(move.family), move.amount),\n },\n }),\n );\n }\n } catch (e) {\n console.error(\"Could not handle message:\", e);\n }\n }\n}\n\ntype StreamsField = {\n streamID: string;\n senders: { name: string; twizzleUserID: string; wcaID: string | null }[];\n}[];\n\nexport class TwizzleStreamServer {\n async streams(): Promise<StreamsField> {\n return (\n (await (await fetch(\"https://api.twizzle.net/v0/streams\")).json()) as {\n streams: StreamsField;\n }\n ).streams;\n }\n\n connect(streamID: string): TwizzleStream {\n return new TwizzleStream(\n `wss://api.twizzle.net/v0/streams/${streamID}/socket`,\n );\n }\n}\n"],
5
- "mappings": ";;;;;;AAGO,IAAM,uBAAN,MAA2B;AAAA,EACtB;AAAA,EACV,YAAY,KAAa;AACvB,SAAK,YAAY,IAAI,UAAU,GAAG;AAClC,SAAK,UAAU,SAAS,KAAK,OAAO,KAAK,IAAI;AAC7C,SAAK,UAAU,UAAU,KAAK,QAAQ,KAAK,IAAI;AAC/C,SAAK,UAAU,YAAY,KAAK,UAAU,KAAK,IAAI;AAAA,EACrD;AAAA,EAEO,cAAc,GAAoB;AACvC,IAAC,EAAU,gBAAgB,EAAE,cAAc,SAAS;AACpD,SAAK,eAAe;AAAA,MAClB,OAAO;AAAA,MACP,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAAA,EAEO,qBAAqB,GAA2B;AACrD,SAAK,eAAe;AAAA,MAClB,OAAO;AAAA,MACP,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAAA,EAEO,iBAAuB;AAC5B,SAAK,eAAe,EAAE,OAAO,QAAQ,CAAC;AAAA,EACxC;AAAA,EAEU,eAAe,YAA8B;AACrD,SAAK,UAAU,KAAK,KAAK,UAAU,UAAU,CAAC;AAAA,EAChD;AAAA,EAEU,SAAe;AACvB,YAAQ,IAAI,yBAAyB;AAAA,EACvC;AAAA,EAEU,QAAQ,OAAoB;AACpC,YAAQ,MAAM,2BAA2B,KAAK;AAAA,EAChD;AAAA,EAEU,UAAU,IAAwB;AAAA,EAAC;AAC/C;AAEO,IAAe,yBAAf,MAAsC;AAAA,EACjC;AAAA,EACV,YAAY,KAAa,cAAuB;AAC9C,QAAI,CAAC,cAAc;AACjB,cAAQ,IAAI,0DAA0D;AACtE;AAAA,IACF;AACA,SAAK,YAAY,IAAI,UAAU,GAAG;AAClC,YAAQ,IAAI,KAAK,SAAS;AAC1B,SAAK,UAAU,SAAS,KAAK,OAAO,KAAK,IAAI;AAC7C,SAAK,UAAU,UAAU,KAAK,QAAQ,KAAK,IAAI;AAC/C,SAAK,UAAU,YAAY,KAAK,UAAU,KAAK,IAAI;AAAA,EACrD;AAAA,EAEU,SAAe;AACvB,YAAQ,IAAI,2BAA2B;AAAA,EACzC;AAAA,EAEU,QAAQ,OAAoB;AACpC,YAAQ,MAAM,6BAA6B,KAAK;AAAA,EAClD;AAAA,EAEU,UAAU,GAAuB;AACzC,SAAK,aAAa,KAAK,MAAM,EAAE,IAAI,CAAC;AAAA,EACtC;AAGF;;;ACtEA,IAAM,gBAAN,cAA4B,YAAY;AAAA,EACtC;AAAA,EACA,YAAY,KAAa;AACvB,UAAM;AACN,SAAK,SAAS,IAAI,UAAU,GAAG;AAC/B,SAAK,OAAO,YAAY,KAAK,UAAU,KAAK,IAAI;AAAA,EAClD;AAAA,EAEA,UAAU,KAAyB;AACjC,QAAI;AACF,YAAM,OAA2B,KAAK,MAAM,IAAI,IAAI;AACpD,UAAI,KAAK,UAAU,QAAQ;AACzB,cAAM,OAAO,KAAK,KAAK;AACvB,YAAI,KAAK,SAAS,aAAa;AAC7B,gBAAM,IAAI,MAAM,eAAe;AAAA,QACjC;AACA,aAAK;AAAA,UACH,IAAI,YAAY,QAAQ;AAAA,YACtB,QAAQ;AAAA,cACN,MAAM,IAAI,KAAK,IAAI,YAAY,KAAK,MAAM,GAAG,KAAK,MAAM;AAAA,YAC1D;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,SAAS,GAAG;AACV,cAAQ,MAAM,6BAA6B,CAAC;AAAA,IAC9C;AAAA,EACF;AACF;AAOO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,MAAM,UAAiC;AACrC,YACG,OAAO,MAAM,MAAM,oCAAoC,GAAG,KAAK,GAGhE;AAAA,EACJ;AAAA,EAEA,QAAQ,UAAiC;AACvC,WAAO,IAAI;AAAA,MACT,oCAAoC,QAAQ;AAAA,IAC9C;AAAA,EACF;AACF;",
3
+ "sources": ["../../../../src/cubing/stream/twizzle/TwizzleStream.ts", "../../../../src/cubing/stream/websocket-proxy.ts"],
4
+ "sourcesContent": ["import { Move, QuantumMove } from \"../../alg\";\nimport type { StreamMessageEvent } from \"./stream-types\";\n\nclass TwizzleStream extends EventTarget {\n socket: WebSocket;\n constructor(url: string) {\n super();\n this.socket = new WebSocket(url);\n this.socket.onmessage = this.onMessage.bind(this); // TODO: Can we \"add a listener instead\"?\n }\n\n onMessage(msg: MessageEvent): void {\n try {\n const json: StreamMessageEvent = JSON.parse(msg.data);\n if (json.event === \"move\") {\n const move = json.data.latestMove;\n if (move.type !== \"blockMove\") {\n throw new Error(\"Invalid move!\");\n }\n this.dispatchEvent(\n new CustomEvent(\"move\", {\n detail: {\n move: new Move(new QuantumMove(move.family), move.amount),\n },\n }),\n );\n }\n } catch (e) {\n console.error(\"Could not handle message:\", e);\n }\n }\n}\n\ntype StreamsField = {\n streamID: string;\n senders: { name: string; twizzleUserID: string; wcaID: string | null }[];\n}[];\n\nexport class TwizzleStreamServer {\n async streams(): Promise<StreamsField> {\n return (\n (await (await fetch(\"https://api.twizzle.net/v0/streams\")).json()) as {\n streams: StreamsField;\n }\n ).streams;\n }\n\n connect(streamID: string): TwizzleStream {\n return new TwizzleStream(\n `wss://api.twizzle.net/v0/streams/${streamID}/socket`,\n );\n }\n}\n", "import type { MoveEvent, OrientationEvent } from \"../bluetooth\";\nimport type { ProxyEvent } from \"./proxy-event\";\n\nexport class WebSocketProxySender {\n protected websocket: WebSocket;\n constructor(url: string) {\n this.websocket = new WebSocket(url);\n this.websocket.onopen = this.onopen.bind(this);\n this.websocket.onerror = this.onerror.bind(this);\n this.websocket.onmessage = this.onmessage.bind(this);\n }\n\n public sendMoveEvent(e: MoveEvent): void {\n (e as any).latestAlgLeaf = e.latestAlgLeaf.toString(); // TODO\n this.sendProxyEvent({\n event: \"move\",\n data: e,\n });\n }\n\n public sendOrientationEvent(e: OrientationEvent): void {\n this.sendProxyEvent({\n event: \"orientation\",\n data: e,\n });\n }\n\n public sendResetEvent(): void {\n this.sendProxyEvent({ event: \"reset\" });\n }\n\n protected sendProxyEvent(proxyEvent: ProxyEvent): void {\n this.websocket.send(JSON.stringify(proxyEvent));\n }\n\n protected onopen(): void {\n console.log(\"Sending socket is open!\");\n }\n\n protected onerror(error: any): void {\n console.error(\"WebSocket sender error:\", error);\n }\n\n protected onmessage(_e: MessageEvent): void {}\n}\n\nexport abstract class WebSocketProxyReceiver {\n protected websocket?: WebSocket;\n constructor(url: string, socketOrigin?: string) {\n if (!socketOrigin) {\n console.log(\"No socket origin specified. Will not attempt to connect.\");\n return;\n }\n this.websocket = new WebSocket(url);\n console.log(this.websocket);\n this.websocket.onopen = this.onopen.bind(this);\n this.websocket.onerror = this.onerror.bind(this);\n this.websocket.onmessage = this.onmessage.bind(this);\n }\n\n protected onopen(): void {\n console.log(\"Receiving socket is open!\");\n }\n\n protected onerror(error: any): void {\n console.error(\"WebSocket receiver error:\", error);\n }\n\n protected onmessage(e: MessageEvent): void {\n this.onProxyEvent(JSON.parse(e.data));\n }\n\n abstract onProxyEvent(e: ProxyEvent): void;\n}\n"],
5
+ "mappings": ";;;;;;AAGA,IAAM,gBAAN,cAA4B,YAAY;AAAA,EACtC;AAAA,EACA,YAAY,KAAa;AACvB,UAAM;AACN,SAAK,SAAS,IAAI,UAAU,GAAG;AAC/B,SAAK,OAAO,YAAY,KAAK,UAAU,KAAK,IAAI;AAAA,EAClD;AAAA,EAEA,UAAU,KAAyB;AACjC,QAAI;AACF,YAAM,OAA2B,KAAK,MAAM,IAAI,IAAI;AACpD,UAAI,KAAK,UAAU,QAAQ;AACzB,cAAM,OAAO,KAAK,KAAK;AACvB,YAAI,KAAK,SAAS,aAAa;AAC7B,gBAAM,IAAI,MAAM,eAAe;AAAA,QACjC;AACA,aAAK;AAAA,UACH,IAAI,YAAY,QAAQ;AAAA,YACtB,QAAQ;AAAA,cACN,MAAM,IAAI,KAAK,IAAI,YAAY,KAAK,MAAM,GAAG,KAAK,MAAM;AAAA,YAC1D;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,SAAS,GAAG;AACV,cAAQ,MAAM,6BAA6B,CAAC;AAAA,IAC9C;AAAA,EACF;AACF;AAOO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,MAAM,UAAiC;AACrC,YACG,OAAO,MAAM,MAAM,oCAAoC,GAAG,KAAK,GAGhE;AAAA,EACJ;AAAA,EAEA,QAAQ,UAAiC;AACvC,WAAO,IAAI;AAAA,MACT,oCAAoC,QAAQ;AAAA,IAC9C;AAAA,EACF;AACF;;;ACjDO,IAAM,uBAAN,MAA2B;AAAA,EACtB;AAAA,EACV,YAAY,KAAa;AACvB,SAAK,YAAY,IAAI,UAAU,GAAG;AAClC,SAAK,UAAU,SAAS,KAAK,OAAO,KAAK,IAAI;AAC7C,SAAK,UAAU,UAAU,KAAK,QAAQ,KAAK,IAAI;AAC/C,SAAK,UAAU,YAAY,KAAK,UAAU,KAAK,IAAI;AAAA,EACrD;AAAA,EAEO,cAAc,GAAoB;AACvC,IAAC,EAAU,gBAAgB,EAAE,cAAc,SAAS;AACpD,SAAK,eAAe;AAAA,MAClB,OAAO;AAAA,MACP,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAAA,EAEO,qBAAqB,GAA2B;AACrD,SAAK,eAAe;AAAA,MAClB,OAAO;AAAA,MACP,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAAA,EAEO,iBAAuB;AAC5B,SAAK,eAAe,EAAE,OAAO,QAAQ,CAAC;AAAA,EACxC;AAAA,EAEU,eAAe,YAA8B;AACrD,SAAK,UAAU,KAAK,KAAK,UAAU,UAAU,CAAC;AAAA,EAChD;AAAA,EAEU,SAAe;AACvB,YAAQ,IAAI,yBAAyB;AAAA,EACvC;AAAA,EAEU,QAAQ,OAAkB;AAClC,YAAQ,MAAM,2BAA2B,KAAK;AAAA,EAChD;AAAA,EAEU,UAAU,IAAwB;AAAA,EAAC;AAC/C;AAEO,IAAe,yBAAf,MAAsC;AAAA,EACjC;AAAA,EACV,YAAY,KAAa,cAAuB;AAC9C,QAAI,CAAC,cAAc;AACjB,cAAQ,IAAI,0DAA0D;AACtE;AAAA,IACF;AACA,SAAK,YAAY,IAAI,UAAU,GAAG;AAClC,YAAQ,IAAI,KAAK,SAAS;AAC1B,SAAK,UAAU,SAAS,KAAK,OAAO,KAAK,IAAI;AAC7C,SAAK,UAAU,UAAU,KAAK,QAAQ,KAAK,IAAI;AAC/C,SAAK,UAAU,YAAY,KAAK,UAAU,KAAK,IAAI;AAAA,EACrD;AAAA,EAEU,SAAe;AACvB,YAAQ,IAAI,2BAA2B;AAAA,EACzC;AAAA,EAEU,QAAQ,OAAkB;AAClC,YAAQ,MAAM,6BAA6B,KAAK;AAAA,EAClD;AAAA,EAEU,UAAU,GAAuB;AACzC,SAAK,aAAa,KAAK,MAAM,EAAE,IAAI,CAAC;AAAA,EACtC;AAGF;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,6 @@
1
- import { y as AlgIndexer, v as KPuzzle, s as Alg, M as Move, T as Timestamp, K as KPattern, z as KTransformation, D as Duration, w as StickeringMask } from '../PuzzleLoader-DGpDr4U9.js';
2
- export { H as BackViewLayout, N as EXPERIMENTAL_PROP_NO_VALUE, L as ExperimentalMillisecondTimestamp, E as ExperimentalStickering, u as PuzzleID, F as TwistyAlgEditor, C as TwistyAlgViewer, B as TwistyPlayer, G as TwistyPlayerConfig, J as TwizzleLink, V as VisualizationFormat, I as backViewLayouts } from '../PuzzleLoader-DGpDr4U9.js';
3
- import 'three';
4
-
5
- declare const twistyDebugGlobals: {
6
- shareAllNewRenderers: "auto" | "always" | "never";
7
- showRenderStats: boolean;
8
- };
9
- declare function setTwistyDebug(options: Partial<typeof twistyDebugGlobals>): void;
1
+ import { y as AlgIndexer, v as KPuzzle, s as Alg, M as Move, T as Timestamp, K as KPattern, z as KTransformation, D as Duration, w as StickeringMask } from '../PuzzleLoader-Dd4G1VlU.js';
2
+ export { C as BackViewLayout, N as EXPERIMENTAL_PROP_NO_VALUE, B as ExperimentalMillisecondTimestamp, E as ExperimentalStickering, u as PuzzleID, G as TwistyAlgEditor, H as TwistyAlgViewer, J as TwistyPlayer, I as TwistyPlayerConfig, L as TwizzleLink, V as VisualizationFormat, F as backViewLayouts } from '../PuzzleLoader-Dd4G1VlU.js';
3
+ import 'three/src/Three.js';
10
4
 
11
5
  declare class SimpleAlgIndexer implements AlgIndexer {
12
6
  private kpuzzle;
@@ -39,6 +33,12 @@ declare class TreeAlgIndexer implements AlgIndexer {
39
33
  moveDuration(index: number): number;
40
34
  }
41
35
 
36
+ declare const twistyDebugGlobals: {
37
+ shareAllNewRenderers: "auto" | "always" | "never";
38
+ showRenderStats: boolean;
39
+ };
40
+ declare function setTwistyDebug(options: Partial<typeof twistyDebugGlobals>): void;
41
+
42
42
  declare class TwistyAnimatedSVG {
43
43
  kpuzzle: KPuzzle;
44
44
  private showUnknownOrientations;