cubing 0.36.1 → 0.36.3
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/esm/alg/index.js +1 -1
- package/dist/esm/bluetooth/index.js +5 -5
- package/dist/esm/{chunk-GNCANY6Y.js → chunk-32CPLOFX.js} +13 -13
- package/dist/esm/{chunk-RZEN653J.js → chunk-HYGNVDCH.js} +5 -5
- package/dist/esm/{chunk-PRIRJZQ6.js → chunk-L4PH24KU.js} +3 -3
- package/dist/esm/{chunk-U45QP7V5.js → chunk-L7WY7BIO.js} +3 -3
- package/dist/esm/{chunk-XVAB7A2O.js → chunk-N4YR7ABS.js} +8 -6
- package/dist/esm/chunk-N4YR7ABS.js.map +7 -0
- package/dist/esm/{chunk-UIGRNWPE.js → chunk-RSF22LKP.js} +2 -2
- package/dist/esm/{chunk-2OZSC5I6.js → chunk-TM7SKFJD.js} +3 -2
- package/dist/esm/{chunk-2OZSC5I6.js.map → chunk-TM7SKFJD.js.map} +2 -2
- package/dist/esm/{chunk-PY6UOVLX.js → chunk-VL47U5J6.js} +3 -3
- package/dist/esm/{chunk-MHS6WQK3.js → chunk-WWCSMIJO.js} +22 -9
- package/dist/esm/{chunk-MHS6WQK3.js.map → chunk-WWCSMIJO.js.map} +2 -2
- package/dist/esm/{chunk-P6BKQJQU.js → chunk-XM2O37XU.js} +4 -4
- package/dist/esm/{chunk-HPHL232Y.js → chunk-ZIFM3JF6.js} +2 -2
- package/dist/esm/kpuzzle/index.js +2 -2
- package/dist/esm/notation/index.js +6 -8
- package/dist/esm/protocol/index.js +4 -4
- package/dist/esm/puzzle-geometry/index.js +68 -68
- package/dist/esm/puzzle-geometry/index.js.map +2 -2
- package/dist/esm/puzzles/index.js +4 -4
- package/dist/esm/scramble/index.js +8 -8
- package/dist/esm/search/index.js +8 -8
- package/dist/esm/{search-dynamic-sgs-side-events-UBB6BCFU.js → search-dynamic-sgs-side-events-CUV4L6KG.js} +6 -6
- package/dist/esm/{search-dynamic-sgs-unofficial-BTJQTYIB.js → search-dynamic-sgs-unofficial-XFWM4IT6.js} +6 -6
- package/dist/esm/{search-dynamic-solve-4x4x4-AJIQM7XH.js → search-dynamic-solve-4x4x4-EA6XTQN2.js} +6 -6
- package/dist/esm/{search-dynamic-solve-kilominx-QJWWB2PY.js → search-dynamic-solve-kilominx-HCOWDD7C.js} +2 -2
- package/dist/esm/{search-worker-inside-generated-string-S4N5JFZV.js → search-worker-inside-generated-string-OA23ZSGX.js} +24 -24
- package/dist/esm/search-worker-inside-generated-string-OA23ZSGX.js.map +7 -0
- package/dist/esm/search-worker-js-entry-TWY4DMZQ.js +17 -0
- package/dist/esm/{search-worker-ts-entry-CSGPRXKH.js → search-worker-ts-entry-ZR4EM4NC.js} +2 -2
- package/dist/esm/stream/index.js +1 -1
- package/dist/esm/twisty/index.js +30 -20
- package/dist/esm/twisty/index.js.map +2 -2
- package/dist/esm/{twisty-dynamic-3d-SGTMU2OZ.js → twisty-dynamic-3d-HPZKQUDJ.js} +6 -6
- package/dist/esm/{twsearch-FMALADRY.js → twsearch-JCPGQMKW.js} +2 -2
- package/dist/types/notation/index.d.ts +2 -3
- package/dist/types/{outside-ef4dd4d1.d.ts → outside-7959a3cd.d.ts} +3 -2
- package/dist/types/scramble/index.d.ts +1 -1
- package/dist/types/search/index.d.ts +1 -1
- package/package.json +2 -2
- package/dist/esm/chunk-XVAB7A2O.js.map +0 -7
- package/dist/esm/search-worker-inside-generated-string-S4N5JFZV.js.map +0 -7
- package/dist/esm/search-worker-js-entry-DMVNDNGG.js +0 -17
- /package/dist/esm/{chunk-GNCANY6Y.js.map → chunk-32CPLOFX.js.map} +0 -0
- /package/dist/esm/{chunk-RZEN653J.js.map → chunk-HYGNVDCH.js.map} +0 -0
- /package/dist/esm/{chunk-PRIRJZQ6.js.map → chunk-L4PH24KU.js.map} +0 -0
- /package/dist/esm/{chunk-U45QP7V5.js.map → chunk-L7WY7BIO.js.map} +0 -0
- /package/dist/esm/{chunk-UIGRNWPE.js.map → chunk-RSF22LKP.js.map} +0 -0
- /package/dist/esm/{chunk-PY6UOVLX.js.map → chunk-VL47U5J6.js.map} +0 -0
- /package/dist/esm/{chunk-P6BKQJQU.js.map → chunk-XM2O37XU.js.map} +0 -0
- /package/dist/esm/{chunk-HPHL232Y.js.map → chunk-ZIFM3JF6.js.map} +0 -0
- /package/dist/esm/{search-dynamic-sgs-side-events-UBB6BCFU.js.map → search-dynamic-sgs-side-events-CUV4L6KG.js.map} +0 -0
- /package/dist/esm/{search-dynamic-sgs-unofficial-BTJQTYIB.js.map → search-dynamic-sgs-unofficial-XFWM4IT6.js.map} +0 -0
- /package/dist/esm/{search-dynamic-solve-4x4x4-AJIQM7XH.js.map → search-dynamic-solve-4x4x4-EA6XTQN2.js.map} +0 -0
- /package/dist/esm/{search-dynamic-solve-kilominx-QJWWB2PY.js.map → search-dynamic-solve-kilominx-HCOWDD7C.js.map} +0 -0
- /package/dist/esm/{search-worker-js-entry-DMVNDNGG.js.map → search-worker-js-entry-TWY4DMZQ.js.map} +0 -0
- /package/dist/esm/{search-worker-ts-entry-CSGPRXKH.js.map → search-worker-ts-entry-ZR4EM4NC.js.map} +0 -0
- /package/dist/esm/{twisty-dynamic-3d-SGTMU2OZ.js.map → twisty-dynamic-3d-HPZKQUDJ.js.map} +0 -0
- /package/dist/esm/{twsearch-FMALADRY.js.map → twsearch-JCPGQMKW.js.map} +0 -0
package/dist/esm/alg/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
binaryComponentsToReid3x3x3,
|
|
3
3
|
twizzleBinaryToBinaryComponents
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-L7WY7BIO.js";
|
|
5
5
|
import {
|
|
6
6
|
cube3x3x3,
|
|
7
7
|
puzzles
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-XM2O37XU.js";
|
|
9
9
|
import {
|
|
10
10
|
experimental3x3x3KPuzzle
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-L4PH24KU.js";
|
|
12
12
|
import {
|
|
13
13
|
KState
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-RSF22LKP.js";
|
|
15
15
|
import {
|
|
16
16
|
Alg,
|
|
17
17
|
Move,
|
|
18
18
|
experimentalAppendMove,
|
|
19
19
|
keyToMove
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-TM7SKFJD.js";
|
|
21
21
|
|
|
22
22
|
// src/cubing/bluetooth/debug.ts
|
|
23
23
|
var DEBUG_LOGGING_ENABLED = false;
|
|
@@ -7,28 +7,28 @@ import {
|
|
|
7
7
|
random333Scramble,
|
|
8
8
|
setIsInsideWorker,
|
|
9
9
|
solve333
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HYGNVDCH.js";
|
|
11
11
|
import {
|
|
12
12
|
countMoves
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-WWCSMIJO.js";
|
|
14
14
|
import {
|
|
15
15
|
cube2x2x2,
|
|
16
16
|
puzzles
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-XM2O37XU.js";
|
|
18
18
|
import {
|
|
19
19
|
from,
|
|
20
20
|
normalize2x2x2Orientation
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-L4PH24KU.js";
|
|
22
22
|
import {
|
|
23
23
|
KPuzzle,
|
|
24
24
|
KState
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-RSF22LKP.js";
|
|
26
26
|
import {
|
|
27
27
|
Alg,
|
|
28
28
|
AlgBuilder,
|
|
29
29
|
Move,
|
|
30
30
|
QuantumMove
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-TM7SKFJD.js";
|
|
32
32
|
|
|
33
33
|
// src/cubing/search/inside/solve/puzzles/2x2x2.ts
|
|
34
34
|
import { randomPermuteInPlace, randomUIntBelow } from "random-uint-below";
|
|
@@ -172,10 +172,10 @@ function randomStateFromSGS(kpuzzle, sgs) {
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
// src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.ts
|
|
175
|
-
var searchDynamicSideEvents = from(() => import("./search-dynamic-sgs-side-events-
|
|
175
|
+
var searchDynamicSideEvents = from(() => import("./search-dynamic-sgs-side-events-CUV4L6KG.js"));
|
|
176
176
|
|
|
177
177
|
// src/cubing/search/inside/solve/twsearch.ts
|
|
178
|
-
var twsearchPromise = from(async () => import("./twsearch-
|
|
178
|
+
var twsearchPromise = from(async () => import("./twsearch-JCPGQMKW.js"));
|
|
179
179
|
var existingPuzzleDefString;
|
|
180
180
|
var existingMoveSubsetString;
|
|
181
181
|
function mustBeNaturalNumber(meaning, n) {
|
|
@@ -359,7 +359,7 @@ async function random222Scramble() {
|
|
|
359
359
|
}
|
|
360
360
|
|
|
361
361
|
// src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.ts
|
|
362
|
-
var dynamic4x4x4Solver = from(() => import("./search-dynamic-solve-4x4x4-
|
|
362
|
+
var dynamic4x4x4Solver = from(() => import("./search-dynamic-solve-4x4x4-EA6XTQN2.js"));
|
|
363
363
|
|
|
364
364
|
// src/cubing/search/inside/solve/puzzles/4x4x4.ts
|
|
365
365
|
var randomSuffixes = [
|
|
@@ -452,14 +452,14 @@ async function oriented555RandomMoves() {
|
|
|
452
452
|
var dynamicFTOSolver = from(() => import("./search-dynamic-solve-fto-IDE3JR5R.js"));
|
|
453
453
|
|
|
454
454
|
// src/cubing/search/inside/solve/puzzles/fto.ts
|
|
455
|
-
var dynamic = from(() => import("./search-dynamic-sgs-unofficial-
|
|
455
|
+
var dynamic = from(() => import("./search-dynamic-sgs-unofficial-XFWM4IT6.js"));
|
|
456
456
|
async function randomFTOScramble() {
|
|
457
457
|
mustBeInsideWorker();
|
|
458
458
|
return new Alg(await (await dynamicFTOSolver).randomFTOScrambleString());
|
|
459
459
|
}
|
|
460
460
|
|
|
461
461
|
// src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.ts
|
|
462
|
-
var dynamicKilominxSolver = from(() => import("./search-dynamic-solve-kilominx-
|
|
462
|
+
var dynamicKilominxSolver = from(() => import("./search-dynamic-solve-kilominx-HCOWDD7C.js"));
|
|
463
463
|
|
|
464
464
|
// src/cubing/search/inside/solve/puzzles/kilominx.ts
|
|
465
465
|
async function randomKilominxScramble() {
|
|
@@ -540,7 +540,7 @@ async function randomPyraminxScrambleFixedOrientation() {
|
|
|
540
540
|
}
|
|
541
541
|
|
|
542
542
|
// src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.ts
|
|
543
|
-
var searchDynamicUnofficial = from(() => import("./search-dynamic-sgs-unofficial-
|
|
543
|
+
var searchDynamicUnofficial = from(() => import("./search-dynamic-sgs-unofficial-XFWM4IT6.js"));
|
|
544
544
|
|
|
545
545
|
// src/cubing/search/inside/solve/puzzles/redi_cube.ts
|
|
546
546
|
async function randomRediCubeScramble() {
|
|
@@ -797,4 +797,4 @@ var insideAPI = {
|
|
|
797
797
|
export {
|
|
798
798
|
insideAPI
|
|
799
799
|
};
|
|
800
|
-
//# sourceMappingURL=chunk-
|
|
800
|
+
//# sourceMappingURL=chunk-32CPLOFX.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
puzzles
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XM2O37XU.js";
|
|
4
4
|
import {
|
|
5
5
|
from
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-L4PH24KU.js";
|
|
7
7
|
import {
|
|
8
8
|
KState
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-RSF22LKP.js";
|
|
10
10
|
import {
|
|
11
11
|
Alg,
|
|
12
12
|
AlgBuilder,
|
|
13
13
|
Move
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TM7SKFJD.js";
|
|
15
15
|
|
|
16
16
|
// src/cubing/search/inside/solve/puzzles/3x3x3/index.ts
|
|
17
17
|
import { randomChoice as randomChoice2 } from "random-uint-below";
|
|
@@ -612,4 +612,4 @@ export {
|
|
|
612
612
|
random333OrientedScramble,
|
|
613
613
|
random333FewestMovesScramble
|
|
614
614
|
};
|
|
615
|
-
//# sourceMappingURL=chunk-
|
|
615
|
+
//# sourceMappingURL=chunk-HYGNVDCH.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KPuzzle,
|
|
3
3
|
KState
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-RSF22LKP.js";
|
|
5
5
|
import {
|
|
6
6
|
Alg,
|
|
7
7
|
Move
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-TM7SKFJD.js";
|
|
9
9
|
|
|
10
10
|
// src/cubing/puzzles/stickerings/mask.ts
|
|
11
11
|
function getFaceletStickeringMask(stickeringMask, orbitName, pieceIdx, faceletIdx, hint) {
|
|
@@ -1230,4 +1230,4 @@ export {
|
|
|
1230
1230
|
customPGPuzzleLoader,
|
|
1231
1231
|
experimental3x3x3KPuzzle
|
|
1232
1232
|
};
|
|
1233
|
-
//# sourceMappingURL=chunk-
|
|
1233
|
+
//# sourceMappingURL=chunk-L4PH24KU.js.map
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
normalize3x3x3Orientation,
|
|
4
4
|
puzzleOrientation3x3x3Cache,
|
|
5
5
|
puzzleOrientation3x3x3Idx
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-L4PH24KU.js";
|
|
7
7
|
import {
|
|
8
8
|
KState
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-RSF22LKP.js";
|
|
10
10
|
|
|
11
11
|
// src/cubing/protocol/binary/orbit-indexing.ts
|
|
12
12
|
function identityPermutation(numElems) {
|
|
@@ -251,4 +251,4 @@ export {
|
|
|
251
251
|
bufferToSpacedHex,
|
|
252
252
|
spacedHexToBuffer
|
|
253
253
|
};
|
|
254
|
-
//# sourceMappingURL=chunk-
|
|
254
|
+
//# sourceMappingURL=chunk-L7WY7BIO.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
insideAPI
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-32CPLOFX.js";
|
|
4
4
|
import {
|
|
5
5
|
exposeAPI
|
|
6
6
|
} from "./chunk-RHC3DIN3.js";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-ZYCJIZDN.js";
|
|
10
10
|
import {
|
|
11
11
|
Alg
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TM7SKFJD.js";
|
|
13
13
|
|
|
14
14
|
// src/cubing/search/inside/solve/puzzles/clock.ts
|
|
15
15
|
import { randomUIntBelow } from "random-uint-below";
|
|
@@ -110,7 +110,7 @@ async function constructWorker(source, options) {
|
|
|
110
110
|
// src/cubing/search/inside/search-worker-ts-entry-path-getter.ts
|
|
111
111
|
exposeAPI.expose = false;
|
|
112
112
|
async function getWorkerEntryFileURL() {
|
|
113
|
-
return (await import("./search-worker-ts-entry-
|
|
113
|
+
return (await import("./search-worker-ts-entry-ZR4EM4NC.js")).WORKER_ENTRY_FILE_URL;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
// src/cubing/search/instantiator.ts
|
|
@@ -127,7 +127,9 @@ async function instantiateModuleWorker() {
|
|
|
127
127
|
}
|
|
128
128
|
let url;
|
|
129
129
|
if (globalThis.Worker) {
|
|
130
|
-
const importSrc = `import
|
|
130
|
+
const importSrc = `import ${JSON.stringify(
|
|
131
|
+
workerEntryFileURL.toString()
|
|
132
|
+
)};`;
|
|
131
133
|
const blob = new Blob([importSrc], {
|
|
132
134
|
type: "text/javascript"
|
|
133
135
|
});
|
|
@@ -174,7 +176,7 @@ function wrapWithTerminate(worker) {
|
|
|
174
176
|
return { insideAPI: insideAPI2, outsideAPI: { terminate } };
|
|
175
177
|
}
|
|
176
178
|
async function instantiateClassicWorker() {
|
|
177
|
-
const { workerSource } = await import("./search-worker-inside-generated-string-
|
|
179
|
+
const { workerSource } = await import("./search-worker-inside-generated-string-OA23ZSGX.js");
|
|
178
180
|
const worker = await constructWorker(workerSource, { eval: true });
|
|
179
181
|
return wrapWithTerminate(worker);
|
|
180
182
|
}
|
|
@@ -328,4 +330,4 @@ export {
|
|
|
328
330
|
solveTwsearch,
|
|
329
331
|
setDebug
|
|
330
332
|
};
|
|
331
|
-
//# sourceMappingURL=chunk-
|
|
333
|
+
//# sourceMappingURL=chunk-N4YR7ABS.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/cubing/search/inside/solve/puzzles/clock.ts", "../../src/cubing/search/inside/solve/puzzles/wca-minx.ts", "../../src/cubing/vendor/apache/comlink-everywhere/outside/index.ts", "../../src/cubing/search/inside/search-worker-ts-entry-path-getter.ts", "../../src/cubing/search/instantiator.ts", "../../src/cubing/search/outside.ts"],
|
|
4
|
+
"sourcesContent": ["import { randomUIntBelow } from \"random-uint-below\";\n\nconst pins = [\"UR\", \"DR\", \"DL\", \"UL\"];\nconst backMoves = [\"U\", \"R\", \"D\", \"L\", \"ALL\"];\nconst frontMoves = pins.concat(backMoves);\n\nexport function randomClockScrambleString(): string {\n let filteringMoveCount = 0;\n\n function randomSuffix() {\n const amount = randomUIntBelow(12);\n if (amount !== 0) {\n filteringMoveCount++;\n }\n if (amount <= 6) {\n return `${amount}+`;\n } else {\n return `${12 - amount}-`;\n }\n }\n\n const moves = [];\n function side(families: string[]): void {\n for (const family of families) {\n moves.push(`${family}${randomSuffix()}`);\n }\n }\n\n side(frontMoves);\n moves.push(\"y2\");\n side(backMoves);\n\n // https://www.worldcubeassociation.org/regulations/#4b3\n if (filteringMoveCount < 2) {\n return randomClockScrambleString();\n }\n\n for (const pin of pins) {\n if (randomUIntBelow(2) === 0) {\n moves.push(pin);\n }\n }\n return moves.join(\" \");\n}\n", "import { randomUIntBelow } from \"random-uint-below\";\n\nconst suffixes = [\"++\", \"--\"];\n\nexport function randomMegaminxScrambleString(): string {\n function rdPair(): string {\n return `R${suffixes[randomUIntBelow(2)]} D${suffixes[randomUIntBelow(2)]}`;\n }\n\n function randomU(): string {\n return `U${[\"\", \"'\"][randomUIntBelow(2)]}`;\n }\n\n function row(): string {\n const chunks = [];\n for (let i = 0; i < 5; i++) {\n chunks.push(rdPair());\n }\n chunks.push(randomU());\n return chunks.join(\" \");\n }\n\n const chunks = [];\n for (let i = 0; i < 6; i++) {\n chunks.push(row());\n }\n return chunks.join(\"\\n\");\n}\n", "import nodeEndpoint from \"../node-adapter\";\n\nexport { wrap } from \"comlink\";\n// Mangled so that bundlers don't try to inline the source.\n\nconst worker_threads_mangled = \"node:w-orker-_threa-ds\";\nconst worker_threads_unmangled = () => worker_threads_mangled.replace(/-/g, \"\");\n\nconst useNodeWorkarounds =\n typeof globalThis.Worker === \"undefined\" &&\n typeof (globalThis as any).WorkerNavigator === \"undefined\";\n\nasync function nodeWorker(\n source: string | URL,\n options?: { eval?: boolean },\n): Promise<Worker> {\n const { Worker: NodeWorker } = await import(\n /* @vite-ignore */ worker_threads_unmangled()\n );\n const worker = new NodeWorker(source, options);\n worker.unref();\n return nodeEndpoint(worker);\n}\n\nexport async function constructWorker(\n source: string | URL,\n options?: { eval?: boolean; type?: WorkerType },\n): Promise<Worker> {\n let worker;\n if (useNodeWorkarounds) {\n return nodeWorker(source, { eval: options?.eval });\n } else {\n if (options?.eval) {\n const blob = new Blob([source as string], {\n type: \"application/javascript\",\n });\n source = URL.createObjectURL(blob);\n }\n worker = new globalThis.Worker(source, {\n type: options ? options.type : undefined, // TODO: Is it safe to use `options?.type`?\n });\n }\n return worker;\n}\n", "import { exposeAPI } from \"./worker-guard\";\n\nexposeAPI.expose = false;\nexport async function getWorkerEntryFileURL() {\n return (await import(\"./search-worker-ts-entry\")).WORKER_ENTRY_FILE_URL;\n}\n", "import {\n constructWorker,\n wrap,\n} from \"../vendor/apache/comlink-everywhere/outside\";\nimport { insideAPI, type WorkerInsideAPI } from \"./inside/api\";\nimport { getWorkerEntryFileURL } from \"./inside/search-worker-ts-entry-path-getter\";\nimport { searchOutsideDebugGlobals } from \"./outside\";\n\nconst MODULE_WORKER_TIMEOUT_MILLISECONDS = 5000;\n\nexport interface WorkerOutsideAPI {\n terminate: () => void; // `node` can return a `Promise` with an exit code, but we match the web worker API.\n}\nexport interface InsideOutsideAPI {\n insideAPI: WorkerInsideAPI;\n outsideAPI: WorkerOutsideAPI;\n}\n\nexport async function instantiateModuleWorker(): Promise<InsideOutsideAPI> {\n // rome-ignore lint/suspicious/noAsyncPromiseExecutor: TODO\n return new Promise<InsideOutsideAPI>(async (resolve, reject) => {\n const timeoutID = setTimeout(() => {\n reject(new Error(\"module instantiation timeout\"));\n }, MODULE_WORKER_TIMEOUT_MILLISECONDS);\n\n try {\n const workerEntryFileURL = await getWorkerEntryFileURL();\n if (!workerEntryFileURL) {\n reject(new Error(\"Could not get worker entry file URL.\"));\n }\n let url: string | URL;\n if (globalThis.Worker) {\n // Standard browser-like environment.\n const importSrc = `import ${JSON.stringify(\n workerEntryFileURL.toString(),\n )};`;\n const blob = new Blob([importSrc], {\n type: \"text/javascript\",\n });\n url = URL.createObjectURL(blob);\n } else {\n // We need to keep the original entry file URL, but we have to wrap it in the `URL` class.\n url = new URL(workerEntryFileURL);\n }\n\n const worker = (await constructWorker(url, {\n type: \"module\",\n })) as Worker & {\n nodeWorker?: import(\"worker_threads\").Worker;\n };\n\n const onError = (e: ErrorEvent) => {\n // TODO: Remove fallback when Firefox implements module workers: https://bugzilla.mozilla.org/show_bug.cgi?id=1247687\n if (e.message?.startsWith(\"SyntaxError\")) {\n reject(e);\n }\n };\n\n const onFirstMessage = (messageData: string) => {\n if (messageData === \"comlink-exposed\") {\n // We need to clear the timeout so that we don't prevent `node` from exiting in the meantime.\n clearTimeout(timeoutID);\n resolve(wrapWithTerminate(worker));\n } else {\n reject(\n new Error(`wrong module instantiation message ${messageData}`),\n );\n }\n };\n\n if (worker.nodeWorker) {\n // We have to use `once` so the `unref()` from `comlink-everywhere` allows the process to quit as expected.\n worker.nodeWorker.once(\"message\", onFirstMessage);\n } else {\n worker.addEventListener(\"error\", onError, {\n once: true,\n });\n worker.addEventListener(\"message\", (e) => onFirstMessage(e.data), {\n once: true,\n });\n }\n } catch (e) {\n reject(e);\n }\n });\n}\n\nfunction wrapWithTerminate(worker: Worker): InsideOutsideAPI {\n const insideAPI = wrap<WorkerInsideAPI>(worker);\n const terminate = worker.terminate.bind(worker);\n return { insideAPI, outsideAPI: { terminate } };\n}\n\nasync function instantiateClassicWorker(): Promise<InsideOutsideAPI> {\n const { workerSource } = await import(\n \"./search-worker-inside-generated-string.js\"\n );\n const worker = await constructWorker(workerSource, { eval: true });\n return wrapWithTerminate(worker);\n}\n\nexport const allInsideOutsideAPIPromises: Promise<InsideOutsideAPI>[] = [];\n\nexport async function instantiateWorker(): Promise<InsideOutsideAPI> {\n const insideOutsideAPIPromise = instantiateWorkerImplementation();\n allInsideOutsideAPIPromises.push(insideOutsideAPIPromise);\n insideAPI.setDebugMeasurePerf(searchOutsideDebugGlobals.logPerf);\n insideAPI.setScramblePrefetchLevel(\n searchOutsideDebugGlobals.scramblePrefetchLevel,\n );\n return insideOutsideAPIPromise;\n}\n\nexport async function mapToAllWorkers(\n f: (worker: InsideOutsideAPI) => void,\n): Promise<void> {\n await Promise.all(\n allInsideOutsideAPIPromises.map((worker) => worker.then(f)),\n );\n}\n\nasync function instantiateWorkerImplementation(): Promise<InsideOutsideAPI> {\n if (searchOutsideDebugGlobals.forceStringWorker) {\n console.warn(\n \"Using the `forceStringWorker` workaround for search worker instantiation. This will require downloading significantly more code than necessary, but the functionality will be the same.\",\n );\n return instantiateClassicWorker();\n }\n try {\n // `await` is important for `catch` to work.\n return await instantiateModuleWorker();\n } catch (e) {\n const commonErrorPrefix =\n \"Could not instantiate module worker (this may happen in Firefox, or when using Parcel).\";\n if (searchOutsideDebugGlobals.disableStringWorker) {\n console.error(\n `${commonErrorPrefix} Fallback to string worker is disabled.`,\n e,\n );\n throw new Error(\"Module worker instantiation failed.\");\n }\n console.warn(`${commonErrorPrefix} Falling back to string worker.`, e);\n return instantiateClassicWorker();\n }\n}\n", "import { Alg } from \"../alg\";\nimport type { KPuzzle } from \"../kpuzzle\";\n// import { preInitialize222 } from \"../implementations/2x2x2\";\nimport type { KState } from \"../kpuzzle/KState\";\nimport type { PrefetchLevel } from \"./inside/api\";\nimport { randomClockScrambleString } from \"./inside/solve/puzzles/clock\"; // TODO: don't reach into `inside` code.\nimport { randomMegaminxScrambleString } from \"./inside/solve/puzzles/wca-minx\"; // TODO: don't reach into `inside` code.\nimport type { TwsearchOptions } from \"./inside/solve/twsearch\";\nimport {\n type InsideOutsideAPI,\n instantiateWorker,\n mapToAllWorkers,\n} from \"./instantiator\";\n\nlet cachedWorkerInstance: Promise<InsideOutsideAPI> | null = null;\nasync function getCachedWorkerInstance(): Promise<InsideOutsideAPI> {\n return await (cachedWorkerInstance ??= instantiateWorker());\n}\n\n// Pre-initialize the scrambler for the given event. (Otherwise, an event is\n// initialized the first time you ask for a scramble for that event.)\n//\n// Some typical numbers for a fast computer:\n// - 3x3x3 initialization: 200ms\n// - Each 3x3x3 scramble: 50ms\n// - 4x4x4 initialization: 2500ms\n// - Each 4x4x4 scramble: 300ms to 800ms\n//\n// It is safe to immediately call for a scramble\n// any time after starting pre-initialization, or to call for them without\n// pre-initializing. Pre-initializing essentially gives the scramble worker a\n// head start in case a scramble doesn't get requested immediately.\n//\n// Note that events cannot be pre-initialized in parallel. Attempting to\n// pre-initialize multiple events will initialize them consecutively. Scrambles\n// for a given event cannot be computed while another event is being initialized.\nexport function _preInitializationHintForEvent(\n eventID: string,\n // callback?: () => void\n): void {\n switch (eventID) {\n case \"clock\":\n case \"minx\":\n return;\n case \"333oh\":\n _preInitializationHintForEvent(\"333\");\n return;\n }\n (async () => {\n await (await getCachedWorkerInstance()).insideAPI.initialize(eventID);\n })();\n}\n\nexport async function randomScrambleForEvent(eventID: string): Promise<Alg> {\n switch (eventID) {\n case \"clock\":\n return Alg.fromString(await randomClockScrambleString());\n case \"minx\":\n return Alg.fromString(await randomMegaminxScrambleString());\n }\n const prom = _randomScrambleStringForEvent(eventID);\n const wat = await prom;\n return Alg.fromString(wat);\n}\n\nexport async function _randomScrambleStringForEvent(\n eventID: string,\n): Promise<string> {\n if (searchOutsideDebugGlobals.forceNewWorkerForEveryScramble) {\n }\n const worker = searchOutsideDebugGlobals.forceNewWorkerForEveryScramble\n ? await instantiateWorker()\n : await getCachedWorkerInstance();\n return worker.insideAPI.randomScrambleStringForEvent(eventID);\n}\n\nexport async function randomScrambleStringForEvent(\n eventID: string,\n): Promise<string> {\n switch (eventID) {\n case \"clock\":\n return randomClockScrambleString();\n case \"minx\":\n return randomMegaminxScrambleString();\n }\n return await _randomScrambleStringForEvent(eventID);\n}\n\nexport async function experimentalSolve3x3x3IgnoringCenters(\n state: KState,\n): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.insideAPI.solve333ToString(state.stateData));\n}\n\nexport async function experimentalSolve2x2x2(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.insideAPI.solve222ToString(state.stateData));\n}\n\nexport async function solveSkewb(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(\n await cwi.insideAPI.solveSkewbToString(state.stateData),\n );\n}\n\nexport async function solvePyraminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(\n await cwi.insideAPI.solvePyraminxToString(state.stateData),\n );\n}\n\nexport async function solveMegaminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(\n await cwi.insideAPI.solveMegaminxToString(state.stateData),\n );\n}\n\nexport interface SolveTwsearchOptions {\n moveSubset?: string[];\n startState?: KState;\n minDepth?: number;\n}\n\nexport async function solveTwsearch(\n kpuzzle: KPuzzle,\n state: KState,\n options?: SolveTwsearchOptions,\n): Promise<Alg> {\n const { startState, ...otherOptions } = options ?? {};\n const apiOptions: TwsearchOptions = otherOptions;\n if (startState) {\n apiOptions.startState =\n startState.experimentalToTransformation()!.transformationData;\n }\n const { ...def } = kpuzzle.definition;\n delete def.experimentalIsStateSolved;\n // delete def.experimentalDerivedMoves;\n const dedicatedWorker = await instantiateWorker();\n try {\n return Alg.fromString(\n await dedicatedWorker.insideAPI.solveTwsearchToString(\n def,\n state.stateData,\n apiOptions,\n ),\n );\n } finally {\n console.log(\"Search ended, terminating dedicated `twsearch` worker.\");\n // TODO: support re-using the same worker for multiple searches..\n await dedicatedWorker.outsideAPI.terminate();\n }\n}\n\ninterface SearchOutsideDebugGlobals {\n logPerf: boolean;\n scramblePrefetchLevel: `${PrefetchLevel}`;\n forceStringWorker: boolean;\n disableStringWorker: boolean;\n forceNewWorkerForEveryScramble: boolean;\n}\nexport const searchOutsideDebugGlobals: SearchOutsideDebugGlobals = {\n logPerf: false,\n scramblePrefetchLevel: \"auto\",\n forceStringWorker: false,\n disableStringWorker: false,\n forceNewWorkerForEveryScramble: false,\n};\n\nexport function setDebug(options: Partial<SearchOutsideDebugGlobals>): void {\n const { logPerf, scramblePrefetchLevel } = options;\n if (typeof logPerf !== \"undefined\") {\n searchOutsideDebugGlobals.logPerf = logPerf;\n mapToAllWorkers((worker) => worker.insideAPI.setDebugMeasurePerf(logPerf));\n }\n if (typeof scramblePrefetchLevel !== \"undefined\") {\n searchOutsideDebugGlobals.scramblePrefetchLevel = scramblePrefetchLevel;\n mapToAllWorkers((worker) =>\n worker.insideAPI.setScramblePrefetchLevel(\n scramblePrefetchLevel as PrefetchLevel,\n ),\n );\n }\n if (\"forceStringWorker\" in options) {\n searchOutsideDebugGlobals.forceStringWorker = !!options.forceStringWorker;\n }\n if (\"disableStringWorker\" in options) {\n searchOutsideDebugGlobals.disableStringWorker =\n !!options.disableStringWorker;\n }\n if (\"forceNewWorkerForEveryScramble\" in options) {\n searchOutsideDebugGlobals.forceNewWorkerForEveryScramble =\n !!options.forceNewWorkerForEveryScramble;\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA,SAAS,uBAAuB;AAEhC,IAAM,OAAO,CAAC,MAAM,MAAM,MAAM,IAAI;AACpC,IAAM,YAAY,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK;AAC5C,IAAM,aAAa,KAAK,OAAO,SAAS;AAEjC,SAAS,4BAAoC;AAClD,MAAI,qBAAqB;AAEzB,WAAS,eAAe;AACtB,UAAM,SAAS,gBAAgB,EAAE;AACjC,QAAI,WAAW,GAAG;AAChB;AAAA,IACF;AACA,QAAI,UAAU,GAAG;AACf,aAAO,GAAG;AAAA,IACZ,OAAO;AACL,aAAO,GAAG,KAAK;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,QAAQ,CAAC;AACf,WAAS,KAAK,UAA0B;AACtC,eAAW,UAAU,UAAU;AAC7B,YAAM,KAAK,GAAG,SAAS,aAAa,GAAG;AAAA,IACzC;AAAA,EACF;AAEA,OAAK,UAAU;AACf,QAAM,KAAK,IAAI;AACf,OAAK,SAAS;AAGd,MAAI,qBAAqB,GAAG;AAC1B,WAAO,0BAA0B;AAAA,EACnC;AAEA,aAAW,OAAO,MAAM;AACtB,QAAI,gBAAgB,CAAC,MAAM,GAAG;AAC5B,YAAM,KAAK,GAAG;AAAA,IAChB;AAAA,EACF;AACA,SAAO,MAAM,KAAK,GAAG;AACvB;;;AC3CA,SAAS,mBAAAA,wBAAuB;AAEhC,IAAM,WAAW,CAAC,MAAM,IAAI;AAErB,SAAS,+BAAuC;AACrD,WAAS,SAAiB;AACxB,WAAO,IAAI,SAASA,iBAAgB,CAAC,CAAC,MAAM,SAASA,iBAAgB,CAAC,CAAC;AAAA,EACzE;AAEA,WAAS,UAAkB;AACzB,WAAO,IAAI,CAAC,IAAI,GAAG,EAAEA,iBAAgB,CAAC,CAAC;AAAA,EACzC;AAEA,WAAS,MAAc;AACrB,UAAMC,UAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,MAAAA,QAAO,KAAK,OAAO,CAAC;AAAA,IACtB;AACA,IAAAA,QAAO,KAAK,QAAQ,CAAC;AACrB,WAAOA,QAAO,KAAK,GAAG;AAAA,EACxB;AAEA,QAAM,SAAS,CAAC;AAChB,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,WAAO,KAAK,IAAI,CAAC;AAAA,EACnB;AACA,SAAO,OAAO,KAAK,IAAI;AACzB;;;ACzBA,SAAS,YAAY;AAGrB,IAAM,yBAAyB;AAC/B,IAAM,2BAA2B,MAAM,uBAAuB,QAAQ,MAAM,EAAE;AAE9E,IAAM,qBACJ,OAAO,WAAW,WAAW,eAC7B,OAAQ,WAAmB,oBAAoB;AAEjD,eAAe,WACb,QACA,SACiB;AACjB,QAAM,EAAE,QAAQ,WAAW,IAAI,MAAM;AAAA;AAAA,IAChB,yBAAyB;AAAA;AAE9C,QAAM,SAAS,IAAI,WAAW,QAAQ,OAAO;AAC7C,SAAO,MAAM;AACb,SAAO,qBAAa,MAAM;AAC5B;AAEA,eAAsB,gBACpB,QACA,SACiB;AACjB,MAAI;AACJ,MAAI,oBAAoB;AACtB,WAAO,WAAW,QAAQ,EAAE,MAAM,SAAS,KAAK,CAAC;AAAA,EACnD,OAAO;AACL,QAAI,SAAS,MAAM;AACjB,YAAM,OAAO,IAAI,KAAK,CAAC,MAAgB,GAAG;AAAA,QACxC,MAAM;AAAA,MACR,CAAC;AACD,eAAS,IAAI,gBAAgB,IAAI;AAAA,IACnC;AACA,aAAS,IAAI,WAAW,OAAO,QAAQ;AAAA,MACrC,MAAM,UAAU,QAAQ,OAAO;AAAA;AAAA,IACjC,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;ACzCA,UAAU,SAAS;AACnB,eAAsB,wBAAwB;AAC5C,UAAQ,MAAM,OAAO,sCAA0B,GAAG;AACpD;;;ACGA,IAAM,qCAAqC;AAU3C,eAAsB,0BAAqD;AAEzE,SAAO,IAAI,QAA0B,OAAO,SAAS,WAAW;AAC9D,UAAM,YAAY,WAAW,MAAM;AACjC,aAAO,IAAI,MAAM,8BAA8B,CAAC;AAAA,IAClD,GAAG,kCAAkC;AAErC,QAAI;AACF,YAAM,qBAAqB,MAAM,sBAAsB;AACvD,UAAI,CAAC,oBAAoB;AACvB,eAAO,IAAI,MAAM,sCAAsC,CAAC;AAAA,MAC1D;AACA,UAAI;AACJ,UAAI,WAAW,QAAQ;AAErB,cAAM,YAAY,UAAU,KAAK;AAAA,UAC/B,mBAAmB,SAAS;AAAA,QAC9B;AACA,cAAM,OAAO,IAAI,KAAK,CAAC,SAAS,GAAG;AAAA,UACjC,MAAM;AAAA,QACR,CAAC;AACD,cAAM,IAAI,gBAAgB,IAAI;AAAA,MAChC,OAAO;AAEL,cAAM,IAAI,IAAI,kBAAkB;AAAA,MAClC;AAEA,YAAM,SAAU,MAAM,gBAAgB,KAAK;AAAA,QACzC,MAAM;AAAA,MACR,CAAC;AAID,YAAM,UAAU,CAAC,MAAkB;AAEjC,YAAI,EAAE,SAAS,WAAW,aAAa,GAAG;AACxC,iBAAO,CAAC;AAAA,QACV;AAAA,MACF;AAEA,YAAM,iBAAiB,CAAC,gBAAwB;AAC9C,YAAI,gBAAgB,mBAAmB;AAErC,uBAAa,SAAS;AACtB,kBAAQ,kBAAkB,MAAM,CAAC;AAAA,QACnC,OAAO;AACL;AAAA,YACE,IAAI,MAAM,sCAAsC,aAAa;AAAA,UAC/D;AAAA,QACF;AAAA,MACF;AAEA,UAAI,OAAO,YAAY;AAErB,eAAO,WAAW,KAAK,WAAW,cAAc;AAAA,MAClD,OAAO;AACL,eAAO,iBAAiB,SAAS,SAAS;AAAA,UACxC,MAAM;AAAA,QACR,CAAC;AACD,eAAO,iBAAiB,WAAW,CAAC,MAAM,eAAe,EAAE,IAAI,GAAG;AAAA,UAChE,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF,SAAS,GAAP;AACA,aAAO,CAAC;AAAA,IACV;AAAA,EACF,CAAC;AACH;AAEA,SAAS,kBAAkB,QAAkC;AAC3D,QAAMC,aAAY,KAAsB,MAAM;AAC9C,QAAM,YAAY,OAAO,UAAU,KAAK,MAAM;AAC9C,SAAO,EAAE,WAAAA,YAAW,YAAY,EAAE,UAAU,EAAE;AAChD;AAEA,eAAe,2BAAsD;AACnE,QAAM,EAAE,aAAa,IAAI,MAAM,OAC7B,qDACF;AACA,QAAM,SAAS,MAAM,gBAAgB,cAAc,EAAE,MAAM,KAAK,CAAC;AACjE,SAAO,kBAAkB,MAAM;AACjC;AAEO,IAAM,8BAA2D,CAAC;AAEzE,eAAsB,oBAA+C;AACnE,QAAM,0BAA0B,gCAAgC;AAChE,8BAA4B,KAAK,uBAAuB;AACxD,YAAU,oBAAoB,0BAA0B,OAAO;AAC/D,YAAU;AAAA,IACR,0BAA0B;AAAA,EAC5B;AACA,SAAO;AACT;AAEA,eAAsB,gBACpB,GACe;AACf,QAAM,QAAQ;AAAA,IACZ,4BAA4B,IAAI,CAAC,WAAW,OAAO,KAAK,CAAC,CAAC;AAAA,EAC5D;AACF;AAEA,eAAe,kCAA6D;AAC1E,MAAI,0BAA0B,mBAAmB;AAC/C,YAAQ;AAAA,MACN;AAAA,IACF;AACA,WAAO,yBAAyB;AAAA,EAClC;AACA,MAAI;AAEF,WAAO,MAAM,wBAAwB;AAAA,EACvC,SAAS,GAAP;AACA,UAAM,oBACJ;AACF,QAAI,0BAA0B,qBAAqB;AACjD,cAAQ;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MACF;AACA,YAAM,IAAI,MAAM,qCAAqC;AAAA,IACvD;AACA,YAAQ,KAAK,GAAG,oDAAoD,CAAC;AACrE,WAAO,yBAAyB;AAAA,EAClC;AACF;;;AClIA,IAAI,uBAAyD;AAC7D,eAAe,0BAAqD;AAClE,SAAO,OAAO,gDAAyB,kBAAkB;AAC3D;AAoCA,eAAsB,uBAAuB,SAA+B;AAC1E,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO,IAAI,WAAW,MAAM,0BAA0B,CAAC;AAAA,IACzD,KAAK;AACH,aAAO,IAAI,WAAW,MAAM,6BAA6B,CAAC;AAAA,EAC9D;AACA,QAAM,OAAO,8BAA8B,OAAO;AAClD,QAAM,MAAM,MAAM;AAClB,SAAO,IAAI,WAAW,GAAG;AAC3B;AAEA,eAAsB,8BACpB,SACiB;AACjB,MAAI,0BAA0B,gCAAgC;AAAA,EAC9D;AACA,QAAM,SAAS,0BAA0B,iCACrC,MAAM,kBAAkB,IACxB,MAAM,wBAAwB;AAClC,SAAO,OAAO,UAAU,6BAA6B,OAAO;AAC9D;AAcA,eAAsB,sCACpB,OACc;AACd,QAAM,MAAM,MAAM,wBAAwB;AAC1C,SAAO,IAAI,WAAW,MAAM,IAAI,UAAU,iBAAiB,MAAM,SAAS,CAAC;AAC7E;AAEA,eAAsB,uBAAuB,OAA6B;AACxE,QAAM,MAAM,MAAM,wBAAwB;AAC1C,SAAO,IAAI,WAAW,MAAM,IAAI,UAAU,iBAAiB,MAAM,SAAS,CAAC;AAC7E;AAEA,eAAsB,WAAW,OAA6B;AAC5D,QAAM,MAAM,MAAM,wBAAwB;AAC1C,SAAO,IAAI;AAAA,IACT,MAAM,IAAI,UAAU,mBAAmB,MAAM,SAAS;AAAA,EACxD;AACF;AAEA,eAAsB,cAAc,OAA6B;AAC/D,QAAM,MAAM,MAAM,wBAAwB;AAC1C,SAAO,IAAI;AAAA,IACT,MAAM,IAAI,UAAU,sBAAsB,MAAM,SAAS;AAAA,EAC3D;AACF;AAEA,eAAsB,cAAc,OAA6B;AAC/D,QAAM,MAAM,MAAM,wBAAwB;AAC1C,SAAO,IAAI;AAAA,IACT,MAAM,IAAI,UAAU,sBAAsB,MAAM,SAAS;AAAA,EAC3D;AACF;AAQA,eAAsB,cACpB,SACA,OACA,SACc;AACd,QAAM,EAAE,YAAY,GAAG,aAAa,IAAI,WAAW,CAAC;AACpD,QAAM,aAA8B;AACpC,MAAI,YAAY;AACd,eAAW,aACT,WAAW,6BAA6B,EAAG;AAAA,EAC/C;AACA,QAAM,EAAE,GAAG,IAAI,IAAI,QAAQ;AAC3B,SAAO,IAAI;AAEX,QAAM,kBAAkB,MAAM,kBAAkB;AAChD,MAAI;AACF,WAAO,IAAI;AAAA,MACT,MAAM,gBAAgB,UAAU;AAAA,QAC9B;AAAA,QACA,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF,UAAE;AACA,YAAQ,IAAI,wDAAwD;AAEpE,UAAM,gBAAgB,WAAW,UAAU;AAAA,EAC7C;AACF;AASO,IAAM,4BAAuD;AAAA,EAClE,SAAS;AAAA,EACT,uBAAuB;AAAA,EACvB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,gCAAgC;AAClC;AAEO,SAAS,SAAS,SAAmD;AAC1E,QAAM,EAAE,SAAS,sBAAsB,IAAI;AAC3C,MAAI,OAAO,YAAY,aAAa;AAClC,8BAA0B,UAAU;AACpC,oBAAgB,CAAC,WAAW,OAAO,UAAU,oBAAoB,OAAO,CAAC;AAAA,EAC3E;AACA,MAAI,OAAO,0BAA0B,aAAa;AAChD,8BAA0B,wBAAwB;AAClD;AAAA,MAAgB,CAAC,WACf,OAAO,UAAU;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,MAAI,uBAAuB,SAAS;AAClC,8BAA0B,oBAAoB,CAAC,CAAC,QAAQ;AAAA,EAC1D;AACA,MAAI,yBAAyB,SAAS;AACpC,8BAA0B,sBACxB,CAAC,CAAC,QAAQ;AAAA,EACd;AACA,MAAI,oCAAoC,SAAS;AAC/C,8BAA0B,iCACxB,CAAC,CAAC,QAAQ;AAAA,EACd;AACF;",
|
|
6
|
+
"names": ["randomUIntBelow", "chunks", "insideAPI"]
|
|
7
|
+
}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
Move,
|
|
4
4
|
TraversalDownUp,
|
|
5
5
|
functionFromTraversal
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TM7SKFJD.js";
|
|
7
7
|
|
|
8
8
|
// src/cubing/kpuzzle/combine.ts
|
|
9
9
|
function combineTransformationData(definition, transformationData1, transformationData2) {
|
|
@@ -601,4 +601,4 @@ export {
|
|
|
601
601
|
KTransformation,
|
|
602
602
|
KPuzzle
|
|
603
603
|
};
|
|
604
|
-
//# sourceMappingURL=chunk-
|
|
604
|
+
//# sourceMappingURL=chunk-RSF22LKP.js.map
|
|
@@ -1047,7 +1047,7 @@ var AppendOptionsHelper = class {
|
|
|
1047
1047
|
function areSameDirection(direction, move2) {
|
|
1048
1048
|
return direction * Math.sign(move2.amount) >= 0;
|
|
1049
1049
|
}
|
|
1050
|
-
function offsetMod(x, positiveMod, offset) {
|
|
1050
|
+
function offsetMod(x, positiveMod, offset = 0) {
|
|
1051
1051
|
return ((x - offset) % positiveMod + positiveMod) % positiveMod + offset;
|
|
1052
1052
|
}
|
|
1053
1053
|
function experimentalAppendMove(alg, addedMove, options) {
|
|
@@ -1835,10 +1835,11 @@ export {
|
|
|
1835
1835
|
TraversalDownUp,
|
|
1836
1836
|
TraversalUp,
|
|
1837
1837
|
functionFromTraversal,
|
|
1838
|
+
offsetMod,
|
|
1838
1839
|
experimentalAppendMove,
|
|
1839
1840
|
Alg,
|
|
1840
1841
|
Example,
|
|
1841
1842
|
keyToMove,
|
|
1842
1843
|
experimentalAlgCubingNetLink
|
|
1843
1844
|
};
|
|
1844
|
-
//# sourceMappingURL=chunk-
|
|
1845
|
+
//# sourceMappingURL=chunk-TM7SKFJD.js.map
|