cubing 0.28.0 → 0.28.4
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/README.md +3 -1
- package/dist/esm/alg/index.js +4 -4
- package/dist/esm/bluetooth/index.js +222 -86
- package/dist/esm/bluetooth/index.js.map +3 -3
- package/dist/esm/{chunk-F4WWCPVE.js → chunk-2IZUSAXQ.js} +2 -2
- package/dist/esm/{chunk-F4WWCPVE.js.map → chunk-2IZUSAXQ.js.map} +1 -1
- package/dist/esm/{chunk-KBOIUBUE.js → chunk-DGJ3VGQO.js} +28 -12
- package/dist/esm/{chunk-KBOIUBUE.js.map → chunk-DGJ3VGQO.js.map} +1 -1
- package/dist/esm/{chunk-NJPSC7SH.js → chunk-GW4FGG42.js} +8 -4
- package/dist/esm/{chunk-NJPSC7SH.js.map → chunk-GW4FGG42.js.map} +1 -1
- package/dist/esm/{chunk-4KIZAW2Z.js → chunk-LSCTPPWV.js} +22 -8
- package/dist/esm/{chunk-4KIZAW2Z.js.map → chunk-LSCTPPWV.js.map} +1 -1
- package/dist/esm/{chunk-GXZIBFSN.js → chunk-NI7U4XAZ.js} +380 -242
- package/dist/esm/chunk-NI7U4XAZ.js.map +7 -0
- package/dist/esm/{chunk-GVPTO3OF.js → chunk-OX6O2ZO5.js} +1 -1
- package/dist/esm/{chunk-GVPTO3OF.js.map → chunk-OX6O2ZO5.js.map} +1 -1
- package/dist/esm/{chunk-LTPPXK6F.js → chunk-PYWGREIP.js} +44 -13
- package/dist/esm/chunk-PYWGREIP.js.map +7 -0
- package/dist/esm/{chunk-JAGHV77R.js → chunk-QDVCP6G7.js} +179 -76
- package/dist/esm/chunk-QDVCP6G7.js.map +7 -0
- package/dist/esm/chunk-RQGVI4ZL.js +1137 -0
- package/dist/esm/chunk-RQGVI4ZL.js.map +7 -0
- package/dist/esm/{chunk-MGJA5U5O.js → chunk-SBZRVSPK.js} +1 -12
- package/dist/esm/{chunk-MGJA5U5O.js.map → chunk-SBZRVSPK.js.map} +0 -0
- package/dist/esm/{chunk-V55YSWJY.js → chunk-WXCNEGW3.js} +10 -4
- package/dist/esm/{chunk-V55YSWJY.js.map → chunk-WXCNEGW3.js.map} +1 -1
- package/dist/esm/{chunk-UP6RBLG2.js → chunk-XU5ILFX5.js} +137 -66
- package/dist/esm/{chunk-UP6RBLG2.js.map → chunk-XU5ILFX5.js.map} +3 -3
- package/dist/esm/{chunk-4V4RM3YJ.js → chunk-Y22I7F7D.js} +21 -12
- package/dist/esm/{chunk-4V4RM3YJ.js.map → chunk-Y22I7F7D.js.map} +2 -2
- package/dist/esm/{chunk-ALBEW4DJ.js → chunk-ZB3P5AZN.js} +1 -1
- package/dist/esm/{chunk-ALBEW4DJ.js.map → chunk-ZB3P5AZN.js.map} +1 -1
- package/dist/esm/{chunk-47SWOA3X.js → chunk-ZNAYJGVL.js} +2 -2
- package/dist/esm/{chunk-47SWOA3X.js.map → chunk-ZNAYJGVL.js.map} +1 -1
- package/dist/esm/kpuzzle/index.js +3 -3
- package/dist/esm/notation/index.js +3 -3
- package/dist/esm/protocol/index.js +5 -5
- package/dist/esm/puzzle-geometry/index.js +4570 -15
- package/dist/esm/puzzle-geometry/index.js.map +4 -4
- package/dist/esm/puzzles/index.js +5 -5
- package/dist/esm/{puzzles-dynamic-3x3x3-NB2PEZTV.js → puzzles-dynamic-3x3x3-KIG5A6QR.js} +2 -2
- package/dist/esm/{puzzles-dynamic-3x3x3-NB2PEZTV.js.map → puzzles-dynamic-3x3x3-KIG5A6QR.js.map} +0 -0
- package/dist/esm/puzzles-dynamic-4x4x4-PEDAPUZK.js +126 -0
- package/dist/esm/puzzles-dynamic-4x4x4-PEDAPUZK.js.map +7 -0
- package/dist/esm/{puzzles-dynamic-side-events-WZI4Y3N6.js → puzzles-dynamic-side-events-5C7LMBWX.js} +2 -2
- package/dist/esm/{puzzles-dynamic-side-events-WZI4Y3N6.js.map → puzzles-dynamic-side-events-5C7LMBWX.js.map} +0 -0
- package/dist/esm/{puzzles-dynamic-unofficial-FUG3JBMH.js → puzzles-dynamic-unofficial-WWJ4NJMX.js} +2 -2
- package/dist/esm/{puzzles-dynamic-unofficial-FUG3JBMH.js.map → puzzles-dynamic-unofficial-WWJ4NJMX.js.map} +0 -0
- package/dist/esm/scramble/index.js +5 -5
- package/dist/esm/search/index.js +10 -10
- package/dist/esm/{search-dynamic-sgs-side-events-ZTOWSMQT.js → search-dynamic-sgs-side-events-MZN22QGN.js} +37 -21
- package/dist/esm/search-dynamic-sgs-side-events-MZN22QGN.js.map +7 -0
- package/dist/esm/{search-dynamic-sgs-unofficial-V6HZTLGM.js → search-dynamic-sgs-unofficial-AHPCH5XJ.js} +35 -14
- package/dist/esm/{search-dynamic-sgs-unofficial-V6HZTLGM.js.map → search-dynamic-sgs-unofficial-AHPCH5XJ.js.map} +2 -2
- package/dist/esm/{search-dynamic-solve-3x3x3-K42IWMQV.js → search-dynamic-solve-3x3x3-7XZTYQMO.js} +795 -142
- package/dist/esm/{search-dynamic-solve-3x3x3-K42IWMQV.js.map → search-dynamic-solve-3x3x3-7XZTYQMO.js.map} +1 -1
- package/dist/esm/{search-dynamic-solve-4x4x4-YH6SB2WB.js → search-dynamic-solve-4x4x4-IBS66QTP.js} +135 -29
- package/dist/esm/{search-dynamic-solve-4x4x4-YH6SB2WB.js.map → search-dynamic-solve-4x4x4-IBS66QTP.js.map} +1 -1
- package/dist/esm/{search-dynamic-solve-fto-O6UXF7EC.js → search-dynamic-solve-fto-4LI23P6K.js} +253 -69
- package/dist/esm/{search-dynamic-solve-fto-O6UXF7EC.js.map → search-dynamic-solve-fto-4LI23P6K.js.map} +2 -2
- package/dist/esm/{search-dynamic-solve-kilominx-ZPEOK4DY.js → search-dynamic-solve-kilominx-3HEVQ4MC.js} +32 -8
- package/dist/esm/{search-dynamic-solve-kilominx-ZPEOK4DY.js.map → search-dynamic-solve-kilominx-3HEVQ4MC.js.map} +2 -2
- package/dist/esm/{search-dynamic-solve-master_tetraminx-3RKD3IAN.js → search-dynamic-solve-master_tetraminx-UB32C7MM.js} +111 -42
- package/dist/esm/{search-dynamic-solve-master_tetraminx-3RKD3IAN.js.map → search-dynamic-solve-master_tetraminx-UB32C7MM.js.map} +2 -2
- package/dist/esm/{search-dynamic-solve-sq1-WIJEGVLP.js → search-dynamic-solve-sq1-HA72TYF2.js} +54 -9
- package/dist/esm/{search-dynamic-solve-sq1-WIJEGVLP.js.map → search-dynamic-solve-sq1-HA72TYF2.js.map} +2 -2
- package/dist/esm/search-worker-inside-generated-string-AMEXYCKK.js +3886 -0
- package/dist/esm/search-worker-inside-generated-string-AMEXYCKK.js.map +7 -0
- package/dist/esm/{search-worker-js-entry-3VKCL3RX.js → search-worker-js-entry-HUD3PWTB.js} +147 -53
- package/dist/esm/{search-worker-js-entry-3VKCL3RX.js.map → search-worker-js-entry-HUD3PWTB.js.map} +2 -2
- package/dist/esm/{search-worker-ts-entry-J3TDBCMV.js → search-worker-ts-entry-HER6WT5D.js} +5 -5
- package/dist/esm/{search-worker-ts-entry-J3TDBCMV.js.map → search-worker-ts-entry-HER6WT5D.js.map} +1 -1
- package/dist/esm/stream/index.js +12 -8
- package/dist/esm/stream/index.js.map +1 -1
- package/dist/esm/twisty/index.js +1164 -1513
- package/dist/esm/twisty/index.js.map +4 -4
- package/dist/esm/{twisty-dynamic-3d-UQJETF7O.js → twisty-dynamic-3d-NJUXK7KI.js} +358 -146
- package/dist/esm/twisty-dynamic-3d-NJUXK7KI.js.map +7 -0
- package/dist/types/{Alg-e2a80975.d.ts → Alg-137fb0d5.d.ts} +19 -16
- package/dist/types/{KState-a2f0e651.d.ts → KState-a73111d7.d.ts} +1 -9
- package/dist/types/{TwizzleLink-cd0fa192.d.ts → TwizzleLink-bef52ecd.d.ts} +47 -13
- package/dist/types/alg/index.d.ts +7 -6
- package/dist/types/bluetooth/index.d.ts +4 -4
- package/dist/types/{bluetooth-puzzle-3670a6a1.d.ts → bluetooth-puzzle-8a678993.d.ts} +9 -9
- package/dist/types/kpuzzle/index.d.ts +2 -2
- package/dist/types/notation/index.d.ts +1 -1
- package/dist/types/{outside-0ce1b145.d.ts → outside-e55f28a0.d.ts} +2 -2
- package/dist/types/{parse-ec97687c.d.ts → parseAlg-a28f7568.d.ts} +1 -1
- package/dist/types/protocol/index.d.ts +2 -2
- package/dist/types/puzzle-geometry/index.d.ts +3 -3
- package/dist/types/puzzles/index.d.ts +5 -5
- package/dist/types/scramble/index.d.ts +3 -3
- package/dist/types/search/index.d.ts +3 -3
- package/dist/types/stream/index.d.ts +5 -5
- package/dist/types/twisty/index.d.ts +13 -6
- package/package.json +43 -40
- package/dist/esm/chunk-7BLWQDZX.js +0 -342
- package/dist/esm/chunk-7BLWQDZX.js.map +0 -7
- package/dist/esm/chunk-GXZIBFSN.js.map +0 -7
- package/dist/esm/chunk-JAGHV77R.js.map +0 -7
- package/dist/esm/chunk-LTPPXK6F.js.map +0 -7
- package/dist/esm/chunk-ROGN5SXC.js +0 -4386
- package/dist/esm/chunk-ROGN5SXC.js.map +0 -7
- package/dist/esm/search-dynamic-sgs-side-events-ZTOWSMQT.js.map +0 -7
- package/dist/esm/search-worker-inside-generated-string-T43JGYSP.js +0 -3768
- package/dist/esm/search-worker-inside-generated-string-T43JGYSP.js.map +0 -7
- package/dist/esm/twisty-dynamic-3d-UQJETF7O.js.map +0 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
expose
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2IZUSAXQ.js";
|
|
4
4
|
import {
|
|
5
5
|
addOrientationSuffix,
|
|
6
6
|
initialize333,
|
|
@@ -10,33 +10,33 @@ import {
|
|
|
10
10
|
random333Scramble,
|
|
11
11
|
setIsInsideWorker,
|
|
12
12
|
solve333
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-DGJ3VGQO.js";
|
|
14
14
|
import {
|
|
15
15
|
from
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-OX6O2ZO5.js";
|
|
17
17
|
import {
|
|
18
18
|
countMoves
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ZNAYJGVL.js";
|
|
20
20
|
import {
|
|
21
21
|
puzzles
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-QDVCP6G7.js";
|
|
23
|
+
import "./chunk-PYWGREIP.js";
|
|
24
24
|
import {
|
|
25
25
|
KState
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-XU5ILFX5.js";
|
|
27
|
+
import "./chunk-ZB3P5AZN.js";
|
|
27
28
|
import {
|
|
28
29
|
randomChoiceFactory,
|
|
29
30
|
randomPermute,
|
|
30
31
|
randomUIntBelowFactory
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-ALBEW4DJ.js";
|
|
32
|
+
} from "./chunk-WXCNEGW3.js";
|
|
33
33
|
import {
|
|
34
34
|
Alg,
|
|
35
35
|
AlgBuilder,
|
|
36
36
|
Move,
|
|
37
37
|
QuantumMove
|
|
38
|
-
} from "./chunk-
|
|
39
|
-
import "./chunk-
|
|
38
|
+
} from "./chunk-NI7U4XAZ.js";
|
|
39
|
+
import "./chunk-SBZRVSPK.js";
|
|
40
40
|
|
|
41
41
|
// src/cubing/search/inside/solve/tremble.ts
|
|
42
42
|
var DEFAULT_STAGE1_DEPTH_LIMIT = 2;
|
|
@@ -47,7 +47,9 @@ function calculateMoves(kpuzzle, moveNames) {
|
|
|
47
47
|
moveNames.forEach(function(moveName) {
|
|
48
48
|
const rootMove = new Move(moveName);
|
|
49
49
|
if (rootMove.amount !== 1) {
|
|
50
|
-
throw new Error(
|
|
50
|
+
throw new Error(
|
|
51
|
+
"SGS cannot handle def moves with an amount other than 1 yet."
|
|
52
|
+
);
|
|
51
53
|
}
|
|
52
54
|
let transformation = kpuzzle.identityTransformation();
|
|
53
55
|
for (let i = 1; true; i++) {
|
|
@@ -67,12 +69,17 @@ var TrembleSolver = class {
|
|
|
67
69
|
constructor(kpuzzle, sgs, trembleMoveNames) {
|
|
68
70
|
this.kpuzzle = kpuzzle;
|
|
69
71
|
this.sgs = sgs;
|
|
70
|
-
this.searchMoves = calculateMoves(
|
|
72
|
+
this.searchMoves = calculateMoves(
|
|
73
|
+
this.kpuzzle,
|
|
74
|
+
trembleMoveNames ?? Object.keys(this.kpuzzle.definition.moves)
|
|
75
|
+
);
|
|
71
76
|
}
|
|
72
77
|
async solve(state, stage1DepthLimit = DEFAULT_STAGE1_DEPTH_LIMIT, quantumMoveOrder) {
|
|
73
78
|
const transformation = state.experimentalToTransformation();
|
|
74
79
|
if (!transformation) {
|
|
75
|
-
throw new Error(
|
|
80
|
+
throw new Error(
|
|
81
|
+
"distinguishable pieces are not supported in tremble solver yt"
|
|
82
|
+
);
|
|
76
83
|
}
|
|
77
84
|
let bestAlg = null;
|
|
78
85
|
let bestLen = 1e6;
|
|
@@ -95,7 +102,13 @@ var TrembleSolver = class {
|
|
|
95
102
|
return;
|
|
96
103
|
}
|
|
97
104
|
for (const searchMove of this.searchMoves) {
|
|
98
|
-
recur(
|
|
105
|
+
recur(
|
|
106
|
+
recursiveTransformation.applyTransformation(
|
|
107
|
+
searchMove.transformation
|
|
108
|
+
),
|
|
109
|
+
togo - 1,
|
|
110
|
+
sofar.concat([searchMove.move])
|
|
111
|
+
);
|
|
99
112
|
}
|
|
100
113
|
};
|
|
101
114
|
for (let d = 0; d <= stage1DepthLimit; d++) {
|
|
@@ -147,13 +160,15 @@ async function randomStateFromSGS(kpuzzle, sgs) {
|
|
|
147
160
|
let transformation = kpuzzle.identityTransformation();
|
|
148
161
|
for (const step of sgs.ordering) {
|
|
149
162
|
const sgsAction = randomChoice(Object.values(step.lookup));
|
|
150
|
-
transformation = transformation.applyTransformation(
|
|
163
|
+
transformation = transformation.applyTransformation(
|
|
164
|
+
sgsAction.transformation
|
|
165
|
+
);
|
|
151
166
|
}
|
|
152
167
|
return transformation.toKState();
|
|
153
168
|
}
|
|
154
169
|
|
|
155
170
|
// src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.ts
|
|
156
|
-
var searchDynamicSideEvents = from(() => import("./search-dynamic-sgs-side-events-
|
|
171
|
+
var searchDynamicSideEvents = from(() => import("./search-dynamic-sgs-side-events-MZN22QGN.js"));
|
|
157
172
|
|
|
158
173
|
// src/cubing/search/inside/solve/puzzles/2x2x2.ts
|
|
159
174
|
var TREMBLE_DEPTH = 3;
|
|
@@ -161,7 +176,11 @@ var cachedTrembleSolver = null;
|
|
|
161
176
|
async function getCachedTrembleSolver() {
|
|
162
177
|
return cachedTrembleSolver || (cachedTrembleSolver = (async () => {
|
|
163
178
|
const sgsCachedData = await (await searchDynamicSideEvents).cachedData222();
|
|
164
|
-
return new TrembleSolver(
|
|
179
|
+
return new TrembleSolver(
|
|
180
|
+
await puzzles["2x2x2"].kpuzzle(),
|
|
181
|
+
sgsCachedData,
|
|
182
|
+
"URFLBD".split("")
|
|
183
|
+
);
|
|
165
184
|
})());
|
|
166
185
|
}
|
|
167
186
|
async function preInitialize222() {
|
|
@@ -190,7 +209,10 @@ async function mutatingRandomizeOrbit(kpuzzle, orbitName, state, options) {
|
|
|
190
209
|
}
|
|
191
210
|
async function random222State() {
|
|
192
211
|
const kpuzzle = await puzzles["2x2x2"].kpuzzle();
|
|
193
|
-
const stateCopy = new KState(
|
|
212
|
+
const stateCopy = new KState(
|
|
213
|
+
kpuzzle,
|
|
214
|
+
JSON.parse(JSON.stringify(kpuzzle.startState().stateData))
|
|
215
|
+
);
|
|
194
216
|
await mutatingRandomizeOrbit(kpuzzle, "CORNERS", stateCopy, {
|
|
195
217
|
orientationSum: 0
|
|
196
218
|
});
|
|
@@ -201,7 +223,7 @@ async function random222Scramble() {
|
|
|
201
223
|
}
|
|
202
224
|
|
|
203
225
|
// src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.ts
|
|
204
|
-
var dynamic4x4x4Solver = from(() => import("./search-dynamic-solve-4x4x4-
|
|
226
|
+
var dynamic4x4x4Solver = from(() => import("./search-dynamic-solve-4x4x4-IBS66QTP.js"));
|
|
205
227
|
|
|
206
228
|
// src/cubing/search/inside/solve/puzzles/4x4x4.ts
|
|
207
229
|
var randomSuffixes = [
|
|
@@ -293,17 +315,17 @@ async function oriented555RandomMoves() {
|
|
|
293
315
|
}
|
|
294
316
|
|
|
295
317
|
// src/cubing/search/inside/solve/puzzles/dynamic/fto/index.ts
|
|
296
|
-
var dynamicFTOSolver = from(() => import("./search-dynamic-solve-fto-
|
|
318
|
+
var dynamicFTOSolver = from(() => import("./search-dynamic-solve-fto-4LI23P6K.js"));
|
|
297
319
|
|
|
298
320
|
// src/cubing/search/inside/solve/puzzles/fto.ts
|
|
299
|
-
var dynamic = from(() => import("./search-dynamic-sgs-unofficial-
|
|
321
|
+
var dynamic = from(() => import("./search-dynamic-sgs-unofficial-AHPCH5XJ.js"));
|
|
300
322
|
async function randomFTOScramble() {
|
|
301
323
|
mustBeInsideWorker();
|
|
302
324
|
return new Alg(await (await dynamicFTOSolver).randomFTOScrambleString());
|
|
303
325
|
}
|
|
304
326
|
|
|
305
327
|
// src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.ts
|
|
306
|
-
var dynamicKilominxSolver = from(() => import("./search-dynamic-solve-kilominx-
|
|
328
|
+
var dynamicKilominxSolver = from(() => import("./search-dynamic-solve-kilominx-3HEVQ4MC.js"));
|
|
307
329
|
|
|
308
330
|
// src/cubing/search/inside/solve/puzzles/kilominx.ts
|
|
309
331
|
async function randomKilominxScramble() {
|
|
@@ -312,12 +334,14 @@ async function randomKilominxScramble() {
|
|
|
312
334
|
}
|
|
313
335
|
|
|
314
336
|
// src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/index.ts
|
|
315
|
-
var dynamicMasterTetraminxSolver = from(() => import("./search-dynamic-solve-master_tetraminx-
|
|
337
|
+
var dynamicMasterTetraminxSolver = from(() => import("./search-dynamic-solve-master_tetraminx-UB32C7MM.js"));
|
|
316
338
|
|
|
317
339
|
// src/cubing/search/inside/solve/puzzles/master_tetraminx.ts
|
|
318
340
|
async function randomMasterTetraminxScramble() {
|
|
319
341
|
mustBeInsideWorker();
|
|
320
|
-
return new Alg(
|
|
342
|
+
return new Alg(
|
|
343
|
+
await (await dynamicMasterTetraminxSolver).randomMasterTetraminxScrambleString()
|
|
344
|
+
);
|
|
321
345
|
}
|
|
322
346
|
|
|
323
347
|
// src/cubing/search/inside/solve/puzzles/megaminx.ts
|
|
@@ -326,16 +350,29 @@ var cachedTrembleSolver2 = null;
|
|
|
326
350
|
async function getCachedTrembleSolver2() {
|
|
327
351
|
return cachedTrembleSolver2 || (cachedTrembleSolver2 = (async () => {
|
|
328
352
|
const json = await (await searchDynamicSideEvents).cachedSGSDataMegaminx();
|
|
329
|
-
return new TrembleSolver(
|
|
353
|
+
return new TrembleSolver(
|
|
354
|
+
await (await searchDynamicSideEvents).cachedMegaminxKPuzzleWithoutMO(),
|
|
355
|
+
json,
|
|
356
|
+
["U", "R", "F", "L", "BR", "BL", "FR", "FL", "DR", "DL", "B", "D"]
|
|
357
|
+
);
|
|
330
358
|
})());
|
|
331
359
|
}
|
|
332
360
|
async function solveMegaminx(state) {
|
|
333
361
|
mustBeInsideWorker();
|
|
334
362
|
const trembleSolver = await getCachedTrembleSolver2();
|
|
335
|
-
const stateDataWithoutMO = JSON.parse(
|
|
363
|
+
const stateDataWithoutMO = JSON.parse(
|
|
364
|
+
JSON.stringify(state.stateData)
|
|
365
|
+
);
|
|
336
366
|
stateDataWithoutMO.CENTERS.orientation = new Array(12).fill(0);
|
|
337
|
-
const stateWithoutMO = new KState(
|
|
338
|
-
|
|
367
|
+
const stateWithoutMO = new KState(
|
|
368
|
+
await (await searchDynamicSideEvents).cachedMegaminxKPuzzleWithoutMO(),
|
|
369
|
+
stateDataWithoutMO
|
|
370
|
+
);
|
|
371
|
+
const alg = await trembleSolver.solve(
|
|
372
|
+
stateWithoutMO,
|
|
373
|
+
TREMBLE_DEPTH2,
|
|
374
|
+
() => 5
|
|
375
|
+
);
|
|
339
376
|
return alg;
|
|
340
377
|
}
|
|
341
378
|
|
|
@@ -345,7 +382,11 @@ var cachedTrembleSolver3 = null;
|
|
|
345
382
|
async function getCachedTrembleSolver3() {
|
|
346
383
|
return cachedTrembleSolver3 || (cachedTrembleSolver3 = (async () => {
|
|
347
384
|
const json = await (await searchDynamicSideEvents).sgsDataPyraminx();
|
|
348
|
-
return new TrembleSolver(
|
|
385
|
+
return new TrembleSolver(
|
|
386
|
+
await puzzles.pyraminx.kpuzzle(),
|
|
387
|
+
json,
|
|
388
|
+
"RLUB".split("")
|
|
389
|
+
);
|
|
349
390
|
})());
|
|
350
391
|
}
|
|
351
392
|
async function solvePyraminx(state) {
|
|
@@ -356,14 +397,17 @@ async function solvePyraminx(state) {
|
|
|
356
397
|
}
|
|
357
398
|
async function randomPyraminxStateFixedOrientation() {
|
|
358
399
|
mustBeInsideWorker();
|
|
359
|
-
return randomStateFromSGS(
|
|
400
|
+
return randomStateFromSGS(
|
|
401
|
+
await puzzles.pyraminx.kpuzzle(),
|
|
402
|
+
await (await searchDynamicSideEvents).sgsDataPyraminxFixedOrientation()
|
|
403
|
+
);
|
|
360
404
|
}
|
|
361
405
|
async function randomPyraminxScrambleFixedOrientation() {
|
|
362
406
|
return solvePyraminx(await randomPyraminxStateFixedOrientation());
|
|
363
407
|
}
|
|
364
408
|
|
|
365
409
|
// src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.ts
|
|
366
|
-
var searchDynamicUnofficial = from(() => import("./search-dynamic-sgs-unofficial-
|
|
410
|
+
var searchDynamicUnofficial = from(() => import("./search-dynamic-sgs-unofficial-AHPCH5XJ.js"));
|
|
367
411
|
|
|
368
412
|
// src/cubing/search/inside/solve/puzzles/redi_cube.ts
|
|
369
413
|
async function randomRediCubeScramble() {
|
|
@@ -377,7 +421,11 @@ var cachedTrembleSolver4 = null;
|
|
|
377
421
|
async function getCachedTrembleSolver4() {
|
|
378
422
|
return cachedTrembleSolver4 || (cachedTrembleSolver4 = (async () => {
|
|
379
423
|
const json = await (await searchDynamicSideEvents).sgsDataSkewb();
|
|
380
|
-
return new TrembleSolver(
|
|
424
|
+
return new TrembleSolver(
|
|
425
|
+
await (await searchDynamicSideEvents).skewbKPuzzleWithoutMOCached(),
|
|
426
|
+
json,
|
|
427
|
+
"RLUB".split("")
|
|
428
|
+
);
|
|
381
429
|
})());
|
|
382
430
|
}
|
|
383
431
|
function resetCenterOrientation(state) {
|
|
@@ -392,22 +440,31 @@ function resetCenterOrientation(state) {
|
|
|
392
440
|
async function solveSkewb(state) {
|
|
393
441
|
mustBeInsideWorker();
|
|
394
442
|
const trembleSolver = await getCachedTrembleSolver4();
|
|
395
|
-
const alg = await trembleSolver.solve(
|
|
443
|
+
const alg = await trembleSolver.solve(
|
|
444
|
+
resetCenterOrientation(state),
|
|
445
|
+
TREMBLE_DEPTH4,
|
|
446
|
+
(quantumMove) => quantumMove.family === "y" ? 4 : 3
|
|
447
|
+
);
|
|
396
448
|
return alg;
|
|
397
449
|
}
|
|
398
450
|
async function randomSkewbFixedCornerState() {
|
|
399
|
-
return randomStateFromSGS(
|
|
451
|
+
return randomStateFromSGS(
|
|
452
|
+
await (await searchDynamicSideEvents).skewbKPuzzleWithoutMOCached(),
|
|
453
|
+
await (await searchDynamicSideEvents).sgsDataSkewbFixedCorner()
|
|
454
|
+
);
|
|
400
455
|
}
|
|
401
456
|
async function randomSkewbFixedCornerScramble() {
|
|
402
457
|
return solveSkewb(await randomSkewbFixedCornerState());
|
|
403
458
|
}
|
|
404
459
|
|
|
405
460
|
// src/cubing/search/inside/solve/puzzles/dynamic/sq1/index.ts
|
|
406
|
-
var dynamicSq1Solver = from(() => import("./search-dynamic-solve-sq1-
|
|
461
|
+
var dynamicSq1Solver = from(() => import("./search-dynamic-solve-sq1-HA72TYF2.js"));
|
|
407
462
|
|
|
408
463
|
// src/cubing/search/inside/solve/puzzles/sq1.ts
|
|
409
464
|
async function getRandomSquare1Scramble() {
|
|
410
|
-
return Alg.fromString(
|
|
465
|
+
return Alg.fromString(
|
|
466
|
+
await (await dynamicSq1Solver).getRandomSquare1ScrambleString()
|
|
467
|
+
);
|
|
411
468
|
}
|
|
412
469
|
|
|
413
470
|
// src/cubing/search/inside/api.ts
|
|
@@ -430,7 +487,11 @@ async function measurePerf(name, f, options) {
|
|
|
430
487
|
await result;
|
|
431
488
|
}
|
|
432
489
|
const end = now();
|
|
433
|
-
console.warn(
|
|
490
|
+
console.warn(
|
|
491
|
+
`${name}${options?.isPrefetch ? " (prefetched)" : ""}: ${Math.round(
|
|
492
|
+
end - start
|
|
493
|
+
)}ms`
|
|
494
|
+
);
|
|
434
495
|
return result;
|
|
435
496
|
}
|
|
436
497
|
var prefetchPromises = /* @__PURE__ */ new Map();
|
|
@@ -448,28 +509,52 @@ async function randomScrambleForEvent(eventID, options) {
|
|
|
448
509
|
isPrefetch: options?.isPrefetch
|
|
449
510
|
});
|
|
450
511
|
case "333fm":
|
|
451
|
-
return measurePerf(
|
|
512
|
+
return measurePerf(
|
|
513
|
+
"random333FewestMovesScramble",
|
|
514
|
+
random333FewestMovesScramble
|
|
515
|
+
);
|
|
452
516
|
case "333bf":
|
|
453
517
|
case "333mb":
|
|
454
|
-
return measurePerf(
|
|
518
|
+
return measurePerf(
|
|
519
|
+
"random333OrientedScramble",
|
|
520
|
+
random333OrientedScramble
|
|
521
|
+
);
|
|
455
522
|
case "444":
|
|
456
523
|
return measurePerf("random444Scramble", random444Scramble, {
|
|
457
524
|
isPrefetch: options?.isPrefetch
|
|
458
525
|
});
|
|
459
526
|
case "444bf":
|
|
460
|
-
return measurePerf(
|
|
527
|
+
return measurePerf(
|
|
528
|
+
"random444OrientedScramble",
|
|
529
|
+
random444OrientedScramble
|
|
530
|
+
);
|
|
461
531
|
case "555":
|
|
462
|
-
return measurePerf(
|
|
532
|
+
return measurePerf(
|
|
533
|
+
"bigCubeScramble(5)",
|
|
534
|
+
bigCubeRandomMoves.bind(bigCubeRandomMoves, 5)
|
|
535
|
+
);
|
|
463
536
|
case "555bf":
|
|
464
537
|
return measurePerf("oriented555RandomMoves", oriented555RandomMoves);
|
|
465
538
|
case "666":
|
|
466
|
-
return measurePerf(
|
|
539
|
+
return measurePerf(
|
|
540
|
+
"bigCubeScramble(6)",
|
|
541
|
+
bigCubeRandomMoves.bind(bigCubeRandomMoves, 6)
|
|
542
|
+
);
|
|
467
543
|
case "777":
|
|
468
|
-
return measurePerf(
|
|
544
|
+
return measurePerf(
|
|
545
|
+
"bigCubeScramble(7)",
|
|
546
|
+
bigCubeRandomMoves.bind(bigCubeRandomMoves, 7)
|
|
547
|
+
);
|
|
469
548
|
case "skewb":
|
|
470
|
-
return measurePerf(
|
|
549
|
+
return measurePerf(
|
|
550
|
+
"randomSkewbFixedCornerScramble",
|
|
551
|
+
randomSkewbFixedCornerScramble
|
|
552
|
+
);
|
|
471
553
|
case "pyram":
|
|
472
|
-
return measurePerf(
|
|
554
|
+
return measurePerf(
|
|
555
|
+
"randomPyraminxScrambleFixedOrientation",
|
|
556
|
+
randomPyraminxScrambleFixedOrientation
|
|
557
|
+
);
|
|
473
558
|
case "sq1":
|
|
474
559
|
return measurePerf("getRandomSquare1Scramble", getRandomSquare1Scramble, {
|
|
475
560
|
isPrefetch: options?.isPrefetch
|
|
@@ -479,7 +564,10 @@ async function randomScrambleForEvent(eventID, options) {
|
|
|
479
564
|
isPrefetch: options?.isPrefetch
|
|
480
565
|
});
|
|
481
566
|
case "master_tetraminx":
|
|
482
|
-
return measurePerf(
|
|
567
|
+
return measurePerf(
|
|
568
|
+
"randomMasterTetraminxScramble",
|
|
569
|
+
randomMasterTetraminxScramble
|
|
570
|
+
);
|
|
483
571
|
case "kilominx":
|
|
484
572
|
return measurePerf("randomKilominxScramble", randomKilominxScramble, {
|
|
485
573
|
isPrefetch: options?.isPrefetch
|
|
@@ -523,11 +611,17 @@ var insideAPI = {
|
|
|
523
611
|
if (queuedPrefetchTimeoutID) {
|
|
524
612
|
clearTimeout(queuedPrefetchTimeoutID);
|
|
525
613
|
}
|
|
526
|
-
queuedPrefetchTimeoutID = setTimeout(
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
614
|
+
queuedPrefetchTimeoutID = setTimeout(
|
|
615
|
+
() => {
|
|
616
|
+
prefetchPromises.set(
|
|
617
|
+
eventID,
|
|
618
|
+
randomScrambleForEvent(eventID, {
|
|
619
|
+
isPrefetch: true
|
|
620
|
+
})
|
|
621
|
+
);
|
|
622
|
+
},
|
|
623
|
+
currentPrefetchLevel === "immediate" /* Immediate */ ? 0 : IDLE_PREFETCH_TIMEOUT_MS
|
|
624
|
+
);
|
|
531
625
|
});
|
|
532
626
|
}
|
|
533
627
|
return promise;
|
|
@@ -562,4 +656,4 @@ var insideAPI = {
|
|
|
562
656
|
|
|
563
657
|
// src/cubing/search/inside/search-worker-js-entry.js
|
|
564
658
|
expose(insideAPI);
|
|
565
|
-
//# sourceMappingURL=search-worker-js-entry-
|
|
659
|
+
//# sourceMappingURL=search-worker-js-entry-HUD3PWTB.js.map
|
package/dist/esm/{search-worker-js-entry-3VKCL3RX.js.map → search-worker-js-entry-HUD3PWTB.js.map}
RENAMED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cubing/search/inside/solve/tremble.ts", "../../src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.ts", "../../src/cubing/search/inside/solve/puzzles/2x2x2.ts", "../../src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.ts", "../../src/cubing/search/inside/solve/puzzles/4x4x4.ts", "../../src/cubing/search/inside/solve/puzzles/big-cubes.ts", "../../src/cubing/search/inside/solve/puzzles/5x5x5.ts", "../../src/cubing/search/inside/solve/puzzles/dynamic/fto/index.ts", "../../src/cubing/search/inside/solve/puzzles/fto.ts", "../../src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.ts", "../../src/cubing/search/inside/solve/puzzles/kilominx.ts", "../../src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/index.ts", "../../src/cubing/search/inside/solve/puzzles/master_tetraminx.ts", "../../src/cubing/search/inside/solve/puzzles/megaminx.ts", "../../src/cubing/search/inside/solve/puzzles/pyraminx.ts", "../../src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.ts", "../../src/cubing/search/inside/solve/puzzles/redi_cube.ts", "../../src/cubing/search/inside/solve/puzzles/skewb.ts", "../../src/cubing/search/inside/solve/puzzles/dynamic/sq1/index.ts", "../../src/cubing/search/inside/solve/puzzles/sq1.ts", "../../src/cubing/search/inside/api.ts", "../../src/cubing/search/inside/search-worker-js-entry.js"],
|
|
4
4
|
"sourcesContent": ["import { Alg, AlgBuilder, Move, QuantumMove } from \"../../../alg\";\nimport type { KPuzzle, KTransformation } from \"../../../kpuzzle\";\nimport type { KState } from \"../../../kpuzzle/KState\";\nimport { experimentalCountMoves } from \"../../../notation\";\nimport { randomChoiceFactory } from \"../../../vendor/random-uint-below\";\nimport type { SGSAction, SGSCachedData } from \"./parseSGS\";\n\nconst DEFAULT_STAGE1_DEPTH_LIMIT = 2; // Moderately performant default.\n\nconst DOUBLECHECK_PLACED_PIECES = true;\nconst DEBUG = false;\n\n// TODO: Take moves instead of move names?\nfunction calculateMoves(\n kpuzzle: KPuzzle,\n moveNames: string[],\n): {\n move: Move;\n transformation: KTransformation;\n}[] {\n const searchMoves: {\n move: Move;\n transformation: KTransformation;\n }[] = [];\n // const identity = identityTransformation(def); // TODO\n // TODO: Make it easy to filter moves.\n moveNames.forEach(function (moveName) {\n const rootMove = new Move(moveName);\n if (rootMove.amount !== 1) {\n throw new Error(\n \"SGS cannot handle def moves with an amount other than 1 yet.\",\n );\n }\n let transformation = kpuzzle.identityTransformation();\n // eslint-disable-next-line no-constant-condition\n for (let i = 1; true; i++) {\n transformation = transformation.applyMove(rootMove);\n if (transformation.isIdentityTransformation()) {\n break;\n }\n searchMoves.push({\n move: rootMove.modified({ amount: i }),\n transformation,\n });\n }\n });\n return searchMoves;\n}\n\n// function badRandomMoves(moves: string[], ksp: KSolvePuzzle): KSolvePuzzleState {\n// // var sum = 0;\n// var scramble = \"\";\n// for (var i = 0; i < 1000; i++) {\n// scramble = scramble + \" \" + moves[Math.floor(moves.length * Math.random())];\n// }\n// // var sol = \"\";\n// const indexer = new TreeAlgIndexer(ksp, Alg.fromString(scramble));\n// return indexer.transformAtIndex(indexer.numMoves()) as any; // TODO\n// }\n\nexport class TrembleSolver {\n private searchMoves: {\n move: Move;\n transformation: KTransformation;\n }[];\n\n constructor(\n private kpuzzle: KPuzzle,\n private sgs: SGSCachedData,\n trembleMoveNames?: string[],\n ) {\n this.searchMoves = calculateMoves(\n this.kpuzzle,\n trembleMoveNames ?? Object.keys(this.kpuzzle.definition.moves),\n );\n }\n\n // public badRandomMoves(): KSolvePuzzleState {\n // return badRandomMoves(this.moves, this.ksp);\n // }\n\n public async solve(\n state: KState,\n stage1DepthLimit: number = DEFAULT_STAGE1_DEPTH_LIMIT,\n quantumMoveOrder?: (quantumMove: QuantumMove) => number,\n ): Promise<Alg> {\n const transformation = state.experimentalToTransformation();\n if (!transformation) {\n throw new Error(\n \"distinguishable pieces are not supported in tremble solver yt\",\n );\n }\n let bestAlg: Alg | null = null;\n let bestLen = 1000000;\n const recur = (\n recursiveTransformation: KTransformation, // TODO: Support KStatq1\n togo: number,\n sofar: Alg,\n ) => {\n // console.log(\"recur\");\n if (togo === 0) {\n const sgsAlg = this.sgsPhaseSolve(recursiveTransformation, bestLen);\n if (!sgsAlg) {\n return;\n }\n // console.log(\"sgs done!\", sofar.toString(), \"|\", sgsAlg.toString());\n const newAlg = sofar\n .concat(sgsAlg)\n .simplify({ collapseMoves: true, quantumMoveOrder });\n\n const len = experimentalCountMoves(newAlg);\n if (bestAlg === null || len < bestLen) {\n if (DEBUG) {\n console.log(`New best (${len} moves): ${newAlg.toString()}`);\n console.log(`Tremble moves are: ${sofar.toString()}`);\n }\n bestAlg = newAlg;\n bestLen = len;\n }\n return;\n }\n for (const searchMove of this.searchMoves) {\n recur(\n recursiveTransformation.applyTransformation(\n searchMove.transformation,\n ),\n togo - 1,\n sofar.concat([searchMove.move]),\n );\n }\n };\n for (let d = 0; d <= stage1DepthLimit; d++) {\n recur(transformation, d, new Alg());\n }\n if (bestAlg === null) {\n throw new Error(\"SGS search failed.\");\n }\n return bestAlg;\n }\n\n private sgsPhaseSolve(\n initialTransformation: KTransformation, // TODO: Handle KState\n bestLenSofar: number,\n ): Alg | null {\n // const pieceNames = \"UFR URB UBL ULF DRF DFL DLB DBR\".split(\" \");\n\n // function loggo(s: string) {\n // // console.warn(s);\n // // document.body.appendChild(document.createElement(\"div\")).textContent = s;\n // }\n\n // console.log(\"sgsPhaseSolve\");\n const algBuilder = new AlgBuilder();\n let transformation = initialTransformation;\n for (const step of this.sgs.ordering) {\n const cubieSeq = step.pieceOrdering;\n let key = \"\";\n const inverseTransformation = transformation.invert();\n for (let i = 0; i < cubieSeq.length; i++) {\n const loc = cubieSeq[i];\n const orbitName = loc.orbitName;\n const idx = loc.permutationIdx;\n key += ` ${inverseTransformation.transformationData[orbitName].permutation[idx]} ${inverseTransformation.transformationData[orbitName].orientation[idx]}`;\n }\n // console.log(key, step.lookup);\n const info = step.lookup[key];\n if (!info) {\n throw new Error(\"Missing algorithm in sgs or esgs?\");\n }\n algBuilder.experimentalPushAlg(info.alg);\n if (algBuilder.experimentalNumAlgNodes() >= bestLenSofar) {\n return null;\n }\n transformation = transformation.applyTransformation(info.transformation);\n if (DOUBLECHECK_PLACED_PIECES) {\n for (let i = 0; i < cubieSeq.length; i++) {\n const location = cubieSeq[i];\n const orbitName = location.orbitName;\n const idx = location.permutationIdx;\n if (\n transformation.transformationData[orbitName].permutation[idx] !==\n idx ||\n transformation.transformationData[orbitName].orientation[idx] !== 0\n ) {\n throw new Error(\"bad SGS :-(\");\n }\n }\n }\n }\n return algBuilder.toAlg();\n }\n}\n\nexport async function randomStateFromSGS(\n kpuzzle: KPuzzle,\n sgs: SGSCachedData,\n): Promise<KState> {\n const randomChoice = await randomChoiceFactory<SGSAction>(); // TODO: make this sync by putting the factory into a TLA\n\n let transformation = kpuzzle.identityTransformation();\n for (const step of sgs.ordering) {\n const sgsAction = randomChoice(Object.values(step.lookup));\n transformation = transformation.applyTransformation(\n sgsAction.transformation,\n );\n }\n return transformation.toKState();\n}\n", "import { from } from \"../../../../../../vendor/p-lazy/p-lazy\";\n\nexport const searchDynamicSideEvents = from<\n typeof import(\"./search-dynamic-sgs-side-events\")\n>(() => import(\"./search-dynamic-sgs-side-events\"));\n", "import type { Alg } from \"../../../../alg\";\nimport type { KPuzzle } from \"../../../../kpuzzle\";\nimport { KState } from \"../../../../kpuzzle\";\nimport { puzzles } from \"../../../../puzzles\";\nimport {\n randomPermute,\n randomUIntBelowFactory,\n} from \"../../../../vendor/random-uint-below\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\nimport { searchDynamicSideEvents } from \"./dynamic/sgs-side-events\";\n\n// Empirical ly determined depth:\n// - \u224811 moves on average (as opposed to >13 moves for depth 2),\n// - in close to 40ms(on a MacBook Pro).\nconst TREMBLE_DEPTH = 3;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const sgsCachedData: SGSCachedData = await (\n await searchDynamicSideEvents\n ).cachedData222();\n return new TrembleSolver(\n await puzzles[\"2x2x2\"].kpuzzle(),\n sgsCachedData,\n \"URFLBD\".split(\"\"),\n );\n })())\n );\n}\n\nexport async function preInitialize222(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\n// TODO: fix def consistency.\nexport async function solve222(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(state, TREMBLE_DEPTH, () => 4); // TODO: Attach quantum move order lookup to puzzle.\n return alg;\n}\n\n// TODO: factor out and test.\nasync function mutatingRandomizeOrbit(\n kpuzzle: KPuzzle,\n orbitName: string,\n state: KState,\n options?: { orientationSum?: number },\n): Promise<void> {\n const randomUIntBelow = await randomUIntBelowFactory();\n await randomPermute(state.stateData[orbitName].pieces);\n\n const orbitDef = kpuzzle.definition.orbits[orbitName];\n const ori = state.stateData[orbitName].orientation;\n\n let sum = 0;\n for (let i = 0; i < orbitDef.numPieces; i++) {\n const o = randomUIntBelow(orbitDef.numOrientations);\n ori[i] = o;\n sum += o;\n }\n\n // console.log(\"aaaa\", options && \"orientationSum\" in options);\n if (options && \"orientationSum\" in options) {\n // console.log(\"sfdsf\", options!.orientationSum),\n ori[0] =\n (((ori[0] + options.orientationSum! - sum) % orbitDef.numOrientations) +\n orbitDef.numOrientations) %\n orbitDef.numOrientations;\n }\n}\n\n// TODO: Use SGS?\nexport async function random222State(): Promise<KState> {\n const kpuzzle = await puzzles[\"2x2x2\"].kpuzzle();\n const stateCopy: KState = new KState(\n kpuzzle,\n JSON.parse(JSON.stringify(kpuzzle.startState().stateData)),\n ); // TODO\n await mutatingRandomizeOrbit(kpuzzle, \"CORNERS\", stateCopy, {\n orientationSum: 0,\n });\n return stateCopy;\n}\n\nexport async function random222Scramble(): Promise<Alg> {\n return await solve222(await random222State());\n}\n", "import { from } from \"../../../../../../vendor/p-lazy/p-lazy\";\n\nexport const dynamic4x4x4Solver = from<\n typeof import(\"./search-dynamic-solve-4x4x4\")\n>(() => import(\"./search-dynamic-solve-4x4x4\"));\n", "import type { Alg } from \"../../../../alg\";\nimport { addOrientationSuffix } from \"../addOrientationSuffix\";\nimport { dynamic4x4x4Solver } from \"./dynamic/4x4x4\";\n\nconst randomSuffixes = [\n [null, \"x\", \"x2\", \"x'\", \"z\", \"z'\"],\n [null, \"y\", \"y2\", \"y'\"],\n];\n\nexport async function initialize444(): Promise<void> {\n return (await dynamic4x4x4Solver).initialize();\n}\n\nexport async function random444Scramble(): Promise<Alg> {\n return (await dynamic4x4x4Solver).random444Scramble();\n}\n\nexport async function random444OrientedScramble(): Promise<Alg> {\n return addOrientationSuffix(await random444Scramble(), randomSuffixes);\n}\n", "import { Alg, AlgBuilder, Move, QuantumMove } from \"../../../../alg\";\nimport {\n randomChoiceFactory,\n randomUIntBelowFactory,\n} from \"../../../../vendor/random-uint-below\";\n\nfunction numMoves(n: number): number {\n switch (n) {\n case 5:\n return 60;\n case 6:\n return 80;\n default:\n return 100;\n }\n}\n\nconst axesFaces = [\n [\"U\", \"D\"],\n [\"L\", \"R\"],\n [\"F\", \"B\"],\n];\nconst axesMovesCache: Map<number, QuantumMove[][]> = new Map();\nfunction cachedAxesMoves(n: number): QuantumMove[][] {\n const existing = axesMovesCache.get(n);\n if (existing) {\n return existing;\n }\n const axesMoves = [];\n for (const faces of axesFaces) {\n const axisMoveFamilies: QuantumMove[] = [];\n axesMoves.push(axisMoveFamilies);\n\n for (const face of faces) {\n axisMoveFamilies.push(new QuantumMove(face));\n if (n > 3) {\n axisMoveFamilies.push(new QuantumMove(`${face}w`));\n }\n for (let i = 3; i <= n / 2; i++) {\n axisMoveFamilies.push(new QuantumMove(`${face}w`, i));\n }\n }\n }\n axesMovesCache.set(n, axesMoves);\n return axesMoves;\n}\n\n// TODO: Document this algorithm and compare to TNoodle.\nexport async function bigCubeRandomMoves(n: number): Promise<Alg> {\n const randomUintBelow = await randomUIntBelowFactory();\n const randomChoice = await randomChoiceFactory<QuantumMove>();\n const randomNumChoice = randomChoice as any as (arr: Array<number>) => number; // TODO: Avoid needing multiple instantiations or recasting.\n\n const axesMoves = cachedAxesMoves(n);\n\n const cachedNumMoves = numMoves(n);\n const algBuilder = new AlgBuilder();\n let currentAxisIdx = 0;\n const currentAxisQuantumMoves = new Set();\n while (algBuilder.experimentalNumAlgNodes() < cachedNumMoves) {\n const newAxisIdx = randomUintBelow(3);\n if (newAxisIdx !== currentAxisIdx) {\n currentAxisQuantumMoves.clear();\n }\n currentAxisIdx = newAxisIdx;\n\n const quantumMove = randomChoice(axesMoves[currentAxisIdx]);\n const quantumMoveStr = quantumMove.toString();\n if (currentAxisQuantumMoves.has(quantumMoveStr)) {\n // Skip duplicates and resample with replacement.\n continue;\n }\n currentAxisQuantumMoves.add(quantumMoveStr);\n algBuilder.push(new Move(quantumMove, randomNumChoice([1, 2, -1])));\n }\n\n return algBuilder.toAlg();\n}\n", "import type { Alg } from \"../../../../alg\";\nimport { addOrientationSuffix } from \"../addOrientationSuffix\";\nimport { bigCubeRandomMoves } from \"./big-cubes\";\n\nconst randomSuffixes = [\n [null, \"3Rw\", \"3Rw2\", \"3Rw'\", \"3Fw\", \"3Fw'\"],\n [null, \"3Dw\", \"3Dw2\", \"3Dw'\"],\n];\n\nexport async function oriented555RandomMoves(): Promise<Alg> {\n return addOrientationSuffix(await bigCubeRandomMoves(5), randomSuffixes);\n}\n", "import { from } from \"../../../../../../vendor/p-lazy/p-lazy\";\n\nexport const dynamicFTOSolver = from<\n typeof import(\"./search-dynamic-solve-fto\")\n>(() => import(\"./search-dynamic-solve-fto\"));\n", "import { Alg } from \"../../../../alg\";\nimport type { KState } from \"../../../../kpuzzle/KState\";\nimport { puzzles } from \"../../../../puzzles\";\nimport { from } from \"../../../../vendor/p-lazy/p-lazy\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\nimport { dynamicFTOSolver } from \"./dynamic/fto\";\n\nconst dynamic = from<\n typeof import(\"./dynamic/sgs-unofficial/search-dynamic-sgs-unofficial\")\n>(() => import(\"./dynamic/sgs-unofficial/search-dynamic-sgs-unofficial\"));\n\nconst TREMBLE_DEPTH = 3;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const json: SGSCachedData = await (await dynamic).sgsDataFTO();\n return new TrembleSolver(await puzzles[\"fto\"].kpuzzle(), json, [\n \"U\",\n \"R\",\n \"F\",\n \"L\",\n \"D\",\n \"B\",\n \"BR\",\n \"BL\",\n ]);\n })())\n );\n}\n\nexport async function preInitializeFTO(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\n// TODO: centers\nexport async function solveFTO(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(\n state,\n TREMBLE_DEPTH,\n () => 3, // TODO: Attach quantum move order lookup to puzzle.\n );\n return alg;\n}\n\nexport async function randomFTOScramble(): Promise<Alg> {\n mustBeInsideWorker();\n return new Alg(await (await dynamicFTOSolver).randomFTOScrambleString());\n}\n", "import { from } from \"../../../../../../vendor/p-lazy/p-lazy\";\n\nexport const dynamicKilominxSolver = from<\n typeof import(\"./search-dynamic-solve-kilominx\")\n>(() => import(\"./search-dynamic-solve-kilominx\"));\n", "import type { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport { dynamicKilominxSolver } from \"./dynamic/kilominx\";\n\nexport async function randomKilominxScramble(): Promise<Alg> {\n mustBeInsideWorker();\n return (await dynamicKilominxSolver).getRandomKilominxScramble();\n}\n", "import { from } from \"../../../../../../vendor/p-lazy/p-lazy\";\n\nexport const dynamicMasterTetraminxSolver = from<\n typeof import(\"./search-dynamic-solve-master_tetraminx\")\n>(() => import(\"./search-dynamic-solve-master_tetraminx\"));\n", "import { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport { dynamicMasterTetraminxSolver } from \"./dynamic/master_tetraminx\";\n\nexport async function randomMasterTetraminxScramble(): Promise<Alg> {\n mustBeInsideWorker();\n return new Alg(\n await (\n await dynamicMasterTetraminxSolver\n ).randomMasterTetraminxScrambleString(),\n );\n}\n", "import type { Alg } from \"../../../../alg\";\nimport type { KStateData } from \"../../../../kpuzzle\";\nimport { KState } from \"../../../../kpuzzle\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\nimport { searchDynamicSideEvents } from \"./dynamic/sgs-side-events\";\n\nconst TREMBLE_DEPTH = 2;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const json: SGSCachedData = await (\n await searchDynamicSideEvents\n ).cachedSGSDataMegaminx();\n return new TrembleSolver(\n await (await searchDynamicSideEvents).cachedMegaminxKPuzzleWithoutMO(),\n json,\n [\"U\", \"R\", \"F\", \"L\", \"BR\", \"BL\", \"FR\", \"FL\", \"DR\", \"DL\", \"B\", \"D\"],\n );\n })())\n );\n}\n\nexport async function preInitializeMegaminx(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\n// TODO: centers\nexport async function solveMegaminx(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const stateDataWithoutMO: KStateData = JSON.parse(\n JSON.stringify(state.stateData),\n );\n stateDataWithoutMO.CENTERS.orientation = new Array(12).fill(0);\n const stateWithoutMO = new KState(\n await (await searchDynamicSideEvents).cachedMegaminxKPuzzleWithoutMO(),\n stateDataWithoutMO,\n );\n const alg = await trembleSolver.solve(\n stateWithoutMO,\n TREMBLE_DEPTH,\n () => 5, // TODO: Attach quantum move order lookup to puzzle.\n );\n return alg;\n}\n", "import type { Alg } from \"../../../../alg\";\nimport type { KState } from \"../../../../kpuzzle/KState\";\nimport { puzzles } from \"../../../../puzzles\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { randomStateFromSGS, TrembleSolver } from \"../tremble\";\nimport { searchDynamicSideEvents } from \"./dynamic/sgs-side-events\";\n\nconst TREMBLE_DEPTH = 3;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const json: SGSCachedData = await (\n await searchDynamicSideEvents\n ).sgsDataPyraminx();\n return new TrembleSolver(\n await puzzles.pyraminx.kpuzzle(),\n json,\n \"RLUB\".split(\"\"),\n );\n })())\n );\n}\n\nexport async function preInitializePyraminx(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\nexport async function solvePyraminx(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(state, TREMBLE_DEPTH, () => 3); // TODO: Attach quantum move order lookup to puzzle.\n return alg;\n}\n\nexport async function randomPyraminxStateFixedOrientation(): Promise<KState> {\n mustBeInsideWorker();\n // Note: this sets all center orientations to 0.\n return randomStateFromSGS(\n await puzzles.pyraminx.kpuzzle(),\n await (await searchDynamicSideEvents).sgsDataPyraminxFixedOrientation(),\n );\n}\n\nexport async function randomPyraminxScrambleFixedOrientation(): Promise<Alg> {\n return solvePyraminx(await randomPyraminxStateFixedOrientation());\n}\n", "import { from } from \"../../../../../../vendor/p-lazy/p-lazy\";\n\nexport const searchDynamicUnofficial = from<\n typeof import(\"./search-dynamic-sgs-unofficial\")\n>(() => import(\"./search-dynamic-sgs-unofficial\"));\n", "import type { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport { searchDynamicUnofficial } from \"./dynamic/sgs-unofficial\";\n\nexport async function randomRediCubeScramble(): Promise<Alg> {\n mustBeInsideWorker();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return (await searchDynamicUnofficial).getRandomRediCubeScramble();\n}\n", "import type { Alg, QuantumMove } from \"../../../../alg\";\nimport { KState } from \"../../../../kpuzzle\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { randomStateFromSGS, TrembleSolver } from \"../tremble\";\nimport { searchDynamicSideEvents } from \"./dynamic/sgs-side-events\";\n\nconst TREMBLE_DEPTH = 3;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const json: SGSCachedData = await (\n await searchDynamicSideEvents\n ).sgsDataSkewb();\n return new TrembleSolver(\n await (await searchDynamicSideEvents).skewbKPuzzleWithoutMOCached(),\n json,\n \"RLUB\".split(\"\"),\n );\n })())\n );\n}\n\nexport async function preInitializeSkewb(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\nfunction resetCenterOrientation(state: KState): KState {\n return new KState(state.kpuzzle, {\n CORNERS: state.stateData.CORNERS,\n CENTERS: {\n pieces: state.stateData.CENTERS.pieces,\n orientation: new Array(6).fill(0),\n },\n });\n}\n\n// TODO: fix def consistency.\nexport async function solveSkewb(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(\n resetCenterOrientation(state),\n TREMBLE_DEPTH,\n (quantumMove: QuantumMove) => (quantumMove.family === \"y\" ? 4 : 3), // TODO: Attach quantum move order lookup to puzzle.\n );\n return alg;\n}\n\nexport async function randomSkewbFixedCornerState(): Promise<KState> {\n // Note: this sets all center orientations to 0.\n return randomStateFromSGS(\n await (await searchDynamicSideEvents).skewbKPuzzleWithoutMOCached(),\n await (await searchDynamicSideEvents).sgsDataSkewbFixedCorner(),\n );\n}\n\nexport async function randomSkewbFixedCornerScramble(): Promise<Alg> {\n return solveSkewb(await randomSkewbFixedCornerState());\n}\n", "import { from } from \"../../../../../../vendor/p-lazy/p-lazy\";\n\nexport const dynamicSq1Solver = from<\n typeof import(\"./search-dynamic-solve-sq1\")\n>(() => import(\"./search-dynamic-solve-sq1\"));\n", "import { Alg } from \"../../../../alg\";\nimport { dynamicSq1Solver } from \"./dynamic/sq1\";\n\nexport async function getRandomSquare1Scramble(): Promise<Alg> {\n return Alg.fromString(\n await (await dynamicSq1Solver).getRandomSquare1ScrambleString(),\n );\n}\n", "import type { Alg } from \"../../alg\";\nimport type { KStateData } from \"../../kpuzzle\";\nimport { KState } from \"../../kpuzzle\";\nimport { puzzles } from \"../../puzzles\";\nimport { setIsInsideWorker } from \"./inside-worker\";\nimport {\n preInitialize222,\n random222Scramble,\n solve222,\n} from \"./solve/puzzles/2x2x2\";\nimport {\n initialize333,\n random333FewestMovesScramble,\n random333OrientedScramble,\n random333Scramble,\n solve333,\n} from \"./solve/puzzles/3x3x3\";\nimport {\n initialize444,\n random444OrientedScramble,\n random444Scramble,\n} from \"./solve/puzzles/4x4x4\";\nimport { oriented555RandomMoves } from \"./solve/puzzles/5x5x5\";\nimport { bigCubeRandomMoves } from \"./solve/puzzles/big-cubes\";\nimport { randomFTOScramble } from \"./solve/puzzles/fto\";\nimport { randomKilominxScramble } from \"./solve/puzzles/kilominx\";\nimport { randomMasterTetraminxScramble } from \"./solve/puzzles/master_tetraminx\";\nimport { solveMegaminx } from \"./solve/puzzles/megaminx\";\nimport {\n randomPyraminxScrambleFixedOrientation,\n solvePyraminx,\n} from \"./solve/puzzles/pyraminx\";\nimport { randomRediCubeScramble } from \"./solve/puzzles/redi_cube\";\nimport {\n randomSkewbFixedCornerScramble,\n solveSkewb,\n} from \"./solve/puzzles/skewb\";\nimport { getRandomSquare1Scramble } from \"./solve/puzzles/sq1\";\n\nconst IDLE_PREFETCH_TIMEOUT_MS = 1000;\n\nsetIsInsideWorker(true);\n\nlet DEBUG_MEASURE_PERF = true;\nexport function setDebugMeasurePerf(newDebugMeasurePerf: boolean): void {\n DEBUG_MEASURE_PERF = newDebugMeasurePerf;\n}\n\nfunction now() {\n return (typeof performance === \"undefined\" ? Date : performance).now();\n}\n\nasync function measurePerf<T>(\n name: string,\n f: () => T | Promise<T>,\n options?: { isPrefetch?: boolean },\n): Promise<T> {\n if (!DEBUG_MEASURE_PERF) {\n return f();\n }\n\n const start = now();\n const result = f();\n if ((result as any)?.then) {\n await result;\n }\n const end = now();\n console.warn(\n `${name}${options?.isPrefetch ? \" (prefetched)\" : \"\"}: ${Math.round(\n end - start,\n )}ms`,\n );\n return result;\n}\n\nconst prefetchPromises: Map<string, Promise<Alg>> = new Map();\n// This would just be a number, except `node` is extremely silly and returns an object instead.\n// https://nodejs.org/api/timers.html#settimeoutcallback-delay-args\nlet queuedPrefetchTimeoutID: ReturnType<typeof setTimeout> | null = null;\n\nasync function randomScrambleForEvent(\n eventID: string,\n options?: { isPrefetch?: boolean },\n): Promise<Alg> {\n switch (eventID) {\n case \"222\":\n return measurePerf(\"random222Scramble\", random222Scramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"333\":\n case \"333oh\":\n case \"333ft\":\n return measurePerf(\"random333Scramble\", random333Scramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"333fm\":\n return measurePerf(\n \"random333FewestMovesScramble\",\n random333FewestMovesScramble,\n );\n case \"333bf\":\n case \"333mb\":\n return measurePerf(\n \"random333OrientedScramble\",\n random333OrientedScramble,\n );\n case \"444\":\n return measurePerf(\"random444Scramble\", random444Scramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"444bf\":\n return measurePerf(\n \"random444OrientedScramble\",\n random444OrientedScramble,\n );\n case \"555\":\n return measurePerf(\n \"bigCubeScramble(5)\",\n bigCubeRandomMoves.bind(bigCubeRandomMoves, 5),\n );\n case \"555bf\":\n return measurePerf(\"oriented555RandomMoves\", oriented555RandomMoves);\n case \"666\":\n return measurePerf(\n \"bigCubeScramble(6)\",\n bigCubeRandomMoves.bind(bigCubeRandomMoves, 6),\n );\n case \"777\":\n return measurePerf(\n \"bigCubeScramble(7)\",\n bigCubeRandomMoves.bind(bigCubeRandomMoves, 7),\n );\n case \"skewb\":\n return measurePerf(\n \"randomSkewbFixedCornerScramble\",\n randomSkewbFixedCornerScramble,\n );\n case \"pyram\":\n return measurePerf(\n \"randomPyraminxScrambleFixedOrientation\",\n randomPyraminxScrambleFixedOrientation,\n );\n case \"sq1\":\n return measurePerf(\"getRandomSquare1Scramble\", getRandomSquare1Scramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"fto\":\n return measurePerf(\"randomFTOScramble\", randomFTOScramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"master_tetraminx\":\n return measurePerf(\n \"randomMasterTetraminxScramble\",\n randomMasterTetraminxScramble,\n );\n case \"kilominx\":\n return measurePerf(\"randomKilominxScramble\", randomKilominxScramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"redi_cube\":\n return measurePerf(\"randomRediCubeScramble\", randomRediCubeScramble, {\n isPrefetch: options?.isPrefetch,\n });\n default:\n throw new Error(`unsupported event: ${eventID}`);\n }\n}\n\nexport enum PrefetchLevel {\n Auto = \"auto\",\n None = \"none\",\n Immediate = \"immediate\",\n}\n\nlet currentPrefetchLevel = PrefetchLevel.Auto;\n\nexport const insideAPI = {\n initialize: async (eventID: string) => {\n switch (eventID) {\n case \"222\":\n return measurePerf(\"preInitialize222\", preInitialize222);\n case \"333\":\n case \"333oh\":\n case \"333ft\":\n return measurePerf(\"initialize333\", initialize333);\n case \"444\":\n return measurePerf(\"initialize444\", initialize444);\n default:\n throw new Error(`unsupported event: ${eventID}`);\n }\n },\n\n setScramblePrefetchLevel(prefetchLevel: PrefetchLevel) {\n currentPrefetchLevel = prefetchLevel;\n },\n\n randomScrambleForEvent: async (eventID: string): Promise<Alg> => {\n let promise = prefetchPromises.get(eventID);\n if (promise) {\n prefetchPromises.delete(eventID);\n } else {\n promise = randomScrambleForEvent(eventID);\n }\n if (currentPrefetchLevel !== PrefetchLevel.None) {\n promise.then(() => {\n // `queuedPrefetch` could be 0, but:\n // > Passing an invalid ID to clearTimeout() silently does nothing; no exception is thrown.\n // https://developer.mozilla.org/en-US/docs/Web/API/clearTimeout#notes\n if (queuedPrefetchTimeoutID) {\n clearTimeout(queuedPrefetchTimeoutID);\n }\n queuedPrefetchTimeoutID = setTimeout(\n () => {\n prefetchPromises.set(\n eventID,\n randomScrambleForEvent(eventID, {\n isPrefetch: true,\n }),\n );\n },\n currentPrefetchLevel === PrefetchLevel.Immediate\n ? 0\n : IDLE_PREFETCH_TIMEOUT_MS,\n );\n });\n }\n return promise;\n },\n\n randomScrambleStringForEvent: async (eventID: string): Promise<string> => {\n return (await insideAPI.randomScrambleForEvent(eventID)).toString();\n },\n\n solve333ToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"3x3x3\"].kpuzzle(), stateData);\n return (await solve333(state)).toString();\n },\n\n solve222ToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"2x2x2\"].kpuzzle(), stateData);\n return (await solve222(state)).toString();\n },\n\n solveSkewbToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"skewb\"].kpuzzle(), stateData);\n return (await solveSkewb(state)).toString();\n },\n\n solvePyraminxToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"pyraminx\"].kpuzzle(), stateData);\n return (await solvePyraminx(state)).toString();\n },\n\n solveMegaminxToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"megaminx\"].kpuzzle(), stateData);\n return (await solveMegaminx(state)).toString();\n },\n\n setDebugMeasurePerf: async (measure: boolean): Promise<void> => {\n setDebugMeasurePerf(measure);\n },\n};\n\nexport type WorkerInsideAPI = typeof insideAPI;\n", "import { expose } from \"../../vendor/comlink-everywhere/inside\";\nimport { insideAPI } from \"./api\";\n\nexpose(insideAPI);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["randomSuffixes", "TREMBLE_DEPTH", "cachedTrembleSolver", "getCachedTrembleSolver", "getCachedTrembleSolver", "TREMBLE_DEPTH", "TREMBLE_DEPTH", "cachedTrembleSolver", "getCachedTrembleSolver", "getCachedTrembleSolver", "TREMBLE_DEPTH", "TREMBLE_DEPTH", "cachedTrembleSolver", "getCachedTrembleSolver", "getCachedTrembleSolver", "TREMBLE_DEPTH"]
|
|
7
7
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
nodeEndpointPort
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2IZUSAXQ.js";
|
|
4
4
|
import {
|
|
5
5
|
exposeAPI
|
|
6
6
|
} from "./chunk-RHC3DIN3.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-ZB3P5AZN.js";
|
|
8
|
+
import "./chunk-SBZRVSPK.js";
|
|
9
9
|
|
|
10
10
|
// src/cubing/search/inside/search-worker-ts-entry.ts
|
|
11
11
|
if (exposeAPI.expose) {
|
|
12
12
|
(async () => {
|
|
13
|
-
await import("./search-worker-js-entry-
|
|
13
|
+
await import("./search-worker-js-entry-HUD3PWTB.js");
|
|
14
14
|
const messagePort = globalThis.postMessage ? globalThis : await nodeEndpointPort();
|
|
15
15
|
messagePort.postMessage("comlink-exposed");
|
|
16
16
|
})();
|
|
@@ -19,4 +19,4 @@ var WORKER_ENTRY_FILE_URL = import.meta.url;
|
|
|
19
19
|
export {
|
|
20
20
|
WORKER_ENTRY_FILE_URL
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=search-worker-ts-entry-
|
|
22
|
+
//# sourceMappingURL=search-worker-ts-entry-HER6WT5D.js.map
|
package/dist/esm/{search-worker-ts-entry-J3TDBCMV.js.map → search-worker-ts-entry-HER6WT5D.js.map}
RENAMED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cubing/search/inside/search-worker-ts-entry.ts"],
|
|
4
4
|
"sourcesContent": ["import { nodeEndpointPort } from \"../../vendor/comlink-everywhere/inside/index\";\nimport { exposeAPI } from \"./worker-guard\";\n\nif (exposeAPI.expose) {\n (async () => {\n await import(\"./search-worker-js-entry.js\");\n\n // // Workaround for `node`\n const messagePort = (globalThis as any).postMessage\n ? globalThis\n : await nodeEndpointPort();\n messagePort.postMessage(\"comlink-exposed\");\n })();\n}\n\nexport const WORKER_ENTRY_FILE_URL = import.meta.url;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAGA,IAAI,UAAU,QAAQ;AACpB,
|
|
5
|
+
"mappings": ";;;;;;;;;;AAGA,IAAI,UAAU,QAAQ;AACpB,GAAC,YAAY;AACX,UAAM,OAAO;AAGb,UAAM,cAAe,WAAmB,cACpC,aACA,MAAM,iBAAiB;AAC3B,gBAAY,YAAY,iBAAiB;AAAA,EAC3C,GAAG;AACL;AAEO,IAAM,wBAAwB,YAAY;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/stream/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Move,
|
|
3
3
|
QuantumMove
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-NI7U4XAZ.js";
|
|
5
|
+
import "../chunk-SBZRVSPK.js";
|
|
6
6
|
|
|
7
7
|
// src/cubing/stream/websocket-proxy.ts
|
|
8
8
|
var WebSocketProxySender = class {
|
|
@@ -77,11 +77,13 @@ var TwizzleStream = class extends EventTarget {
|
|
|
77
77
|
if (move.type !== "blockMove") {
|
|
78
78
|
throw new Error("Invalid move!");
|
|
79
79
|
}
|
|
80
|
-
this.dispatchEvent(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
this.dispatchEvent(
|
|
81
|
+
new CustomEvent("move", {
|
|
82
|
+
detail: {
|
|
83
|
+
move: new Move(new QuantumMove(move.family), move.amount)
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
);
|
|
85
87
|
}
|
|
86
88
|
} catch (e) {
|
|
87
89
|
console.error("Could not handle message:", e);
|
|
@@ -93,7 +95,9 @@ var TwizzleStreamServer = class {
|
|
|
93
95
|
return (await (await fetch("https://api.twizzle.net/v0/streams")).json()).streams;
|
|
94
96
|
}
|
|
95
97
|
connect(streamID) {
|
|
96
|
-
return new TwizzleStream(
|
|
98
|
+
return new TwizzleStream(
|
|
99
|
+
`wss://api.twizzle.net/v0/streams/${streamID}/socket`
|
|
100
|
+
);
|
|
97
101
|
}
|
|
98
102
|
};
|
|
99
103
|
export {
|