cubing 0.26.6 → 0.26.7
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/bluetooth/index.js +4 -4
- package/dist/esm/{chunk-GOBAXDTU.js → chunk-ASOUBXFO.js} +3 -3
- package/dist/esm/{chunk-GOBAXDTU.js.map → chunk-ASOUBXFO.js.map} +0 -0
- package/dist/esm/{chunk-NHCGS73I.js → chunk-GLII3KIK.js} +7 -1
- package/dist/esm/chunk-GLII3KIK.js.map +7 -0
- package/dist/esm/{chunk-VCOUFQGJ.js → chunk-J4SZZ5OP.js} +3 -3
- package/dist/esm/{chunk-VCOUFQGJ.js.map → chunk-J4SZZ5OP.js.map} +0 -0
- package/dist/esm/{chunk-7K6HJKEG.js → chunk-KSNW26OV.js} +17 -5
- package/dist/esm/chunk-KSNW26OV.js.map +7 -0
- package/dist/esm/{chunk-TB6NTLZY.js → chunk-KT3AIQTR.js} +3 -3
- package/dist/esm/{chunk-TB6NTLZY.js.map → chunk-KT3AIQTR.js.map} +1 -1
- package/dist/esm/{chunk-LJBHUHEP.js → chunk-LKISJU2L.js} +2 -2
- package/dist/esm/{chunk-LJBHUHEP.js.map → chunk-LKISJU2L.js.map} +0 -0
- package/dist/esm/{chunk-K62P6E3H.js → chunk-P637ZWHR.js} +3 -3
- package/dist/esm/{chunk-K62P6E3H.js.map → chunk-P637ZWHR.js.map} +0 -0
- package/dist/esm/{chunk-GNKVWDWW.js → chunk-QK4WH7WZ.js} +1 -1
- package/dist/esm/chunk-QK4WH7WZ.js.map +7 -0
- package/dist/esm/{chunk-VFDAQ42O.js → chunk-YEXEZWAK.js} +2 -2
- package/dist/esm/{chunk-VFDAQ42O.js.map → chunk-YEXEZWAK.js.map} +0 -0
- package/dist/esm/kpuzzle/index.js +1 -1
- package/dist/esm/notation/index.js +3 -1
- package/dist/esm/protocol/index.js +3 -3
- package/dist/esm/puzzle-geometry/index.js +1 -1
- package/dist/esm/puzzles/index.js +3 -3
- package/dist/esm/scramble/index.js +1 -1
- package/dist/esm/search/index.js +5 -5
- package/dist/esm/{search-dynamic-sgs-side-events-KK62JAWA.js → search-dynamic-sgs-side-events-OUCE5RN6.js} +5 -5
- package/dist/esm/{search-dynamic-sgs-side-events-KK62JAWA.js.map → search-dynamic-sgs-side-events-OUCE5RN6.js.map} +0 -0
- package/dist/esm/{search-dynamic-sgs-unofficial-VLNIEUW3.js → search-dynamic-sgs-unofficial-KS2IT3DM.js} +4 -4
- package/dist/esm/{search-dynamic-sgs-unofficial-VLNIEUW3.js.map → search-dynamic-sgs-unofficial-KS2IT3DM.js.map} +0 -0
- package/dist/esm/{search-dynamic-solve-4x4x4-S5JPXMNU.js → search-dynamic-solve-4x4x4-6IIZNXXP.js} +5 -5
- package/dist/esm/{search-dynamic-solve-4x4x4-S5JPXMNU.js.map → search-dynamic-solve-4x4x4-6IIZNXXP.js.map} +0 -0
- package/dist/esm/{search-worker-inside-generated-string-AVMDARJP.js → search-worker-inside-generated-string-GNBQVERX.js} +27 -27
- package/dist/esm/{search-worker-inside-generated-string-AVMDARJP.js.map → search-worker-inside-generated-string-GNBQVERX.js.map} +1 -1
- package/dist/esm/{search-worker-js-entry-KJRZ3CJQ.js → search-worker-js-entry-4A3O552B.js} +10 -10
- package/dist/esm/{search-worker-js-entry-KJRZ3CJQ.js.map → search-worker-js-entry-4A3O552B.js.map} +0 -0
- package/dist/esm/{search-worker-ts-entry-AFMPRPSV.js → search-worker-ts-entry-NUFPSU6U.js} +2 -2
- package/dist/esm/{search-worker-ts-entry-AFMPRPSV.js.map → search-worker-ts-entry-NUFPSU6U.js.map} +0 -0
- package/dist/esm/twisty/index.js +43 -29
- package/dist/esm/twisty/index.js.map +2 -2
- package/dist/esm/{twisty-dynamic-3d-AVZOMIIW.js → twisty-dynamic-3d-YI5E4NWB.js} +5 -5
- package/dist/esm/{twisty-dynamic-3d-AVZOMIIW.js.map → twisty-dynamic-3d-YI5E4NWB.js.map} +0 -0
- package/dist/types/{KState-84892e94.d.ts → KState-836cc3c7.d.ts} +47 -47
- package/dist/types/{TwizzleLink-02cfe1b1.d.ts → TwizzleLink-4f0a162d.d.ts} +163 -3
- package/dist/types/bluetooth/index.d.ts +3 -3
- package/dist/types/{bluetooth-puzzle-0f2e5f07.d.ts → bluetooth-puzzle-b1d62cb5.d.ts} +1 -1
- package/dist/types/kpuzzle/index.d.ts +1 -1
- package/dist/types/notation/index.d.ts +2 -1
- package/dist/types/{outside-d0ced6cc.d.ts → outside-a6c8f46b.d.ts} +2 -1
- package/dist/types/protocol/index.d.ts +1 -1
- package/dist/types/puzzle-geometry/index.d.ts +2 -2
- package/dist/types/puzzles/index.d.ts +3 -3
- package/dist/types/scramble/index.d.ts +2 -2
- package/dist/types/search/index.d.ts +2 -2
- package/dist/types/stream/index.d.ts +2 -2
- package/dist/types/twisty/index.d.ts +6 -8
- package/package.json +1 -1
- package/dist/esm/chunk-7K6HJKEG.js.map +0 -7
- package/dist/esm/chunk-GNKVWDWW.js.map +0 -7
- package/dist/esm/chunk-NHCGS73I.js.map +0 -7
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
binaryComponentsToReid3x3x3,
|
|
3
3
|
twizzleBinaryToBinaryComponents
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-J4SZZ5OP.js";
|
|
5
5
|
import {
|
|
6
6
|
puzzles
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-ASOUBXFO.js";
|
|
8
8
|
import {
|
|
9
9
|
experimental3x3x3KPuzzle
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-YEXEZWAK.js";
|
|
11
11
|
import {
|
|
12
12
|
KState
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-QK4WH7WZ.js";
|
|
14
14
|
import {
|
|
15
15
|
Alg,
|
|
16
16
|
Move,
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
StickeringManager,
|
|
4
4
|
experimental3x3x3KPuzzle,
|
|
5
5
|
experimentalStickerings
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YEXEZWAK.js";
|
|
7
7
|
import {
|
|
8
8
|
KPuzzle
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QK4WH7WZ.js";
|
|
10
10
|
import {
|
|
11
11
|
__privateAdd,
|
|
12
12
|
__privateGet,
|
|
@@ -605,4 +605,4 @@ export {
|
|
|
605
605
|
cube3x3x3,
|
|
606
606
|
puzzles
|
|
607
607
|
};
|
|
608
|
-
//# sourceMappingURL=chunk-
|
|
608
|
+
//# sourceMappingURL=chunk-ASOUBXFO.js.map
|
|
File without changes
|
|
@@ -49,6 +49,9 @@ function baseMetric(move) {
|
|
|
49
49
|
return 1;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
function etmMetric(_move) {
|
|
53
|
+
return 1;
|
|
54
|
+
}
|
|
52
55
|
function quantumMetric(move) {
|
|
53
56
|
const fam = move.family;
|
|
54
57
|
if (isCharUppercase(fam[0]) && fam[fam.length - 1] === "v" || fam === "x" || fam === "y" || fam === "z" || fam === "T") {
|
|
@@ -59,6 +62,8 @@ function quantumMetric(move) {
|
|
|
59
62
|
}
|
|
60
63
|
var countMovesInstance = new CountMoves(baseMetric);
|
|
61
64
|
var countMoves = countMovesInstance.traverseAlg.bind(countMovesInstance);
|
|
65
|
+
var countMovesETMInstance = new CountMoves(etmMetric);
|
|
66
|
+
var countMovesETM = countMovesInstance.traverseAlg.bind(countMovesETMInstance);
|
|
62
67
|
var countQuantumMovesInstance = new CountMoves(quantumMetric);
|
|
63
68
|
var countQuantumMoves = countQuantumMovesInstance.traverseAlg.bind(countQuantumMovesInstance);
|
|
64
69
|
|
|
@@ -98,7 +103,8 @@ var countAnimatedLeaves = countAnimatedLeavesInstance.traverseAlg.bind(countAnim
|
|
|
98
103
|
|
|
99
104
|
export {
|
|
100
105
|
countMoves,
|
|
106
|
+
countMovesETM,
|
|
101
107
|
countQuantumMoves,
|
|
102
108
|
countAnimatedLeaves
|
|
103
109
|
};
|
|
104
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-GLII3KIK.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/cubing/notation/CountMoves.ts", "../../src/cubing/notation/CountAnimatedLeaves.ts"],
|
|
4
|
+
"sourcesContent": ["// TODO: move this file somewhere permanent.\nimport {\n Alg,\n Grouping,\n LineComment,\n Commutator,\n Conjugate,\n Move,\n Newline,\n Pause,\n TraversalUp,\n} from \"../alg\";\n\n/*\n * For movecount, that understands puzzle rotations. This code\n * should be moved to the alg class, probably.\n */\nclass CountMoves extends TraversalUp<number> {\n constructor(private metric: (move: Move) => number) {\n super();\n }\n\n public traverseAlg(alg: Alg): number {\n let r = 0;\n for (const unit of alg.units()) {\n r += this.traverseUnit(unit);\n }\n return r;\n }\n\n public traverseGrouping(grouping: Grouping): number {\n // const unit: Unit = Alg.fromString(\"SDf\");\n // console.log(unit);\n const alg: Alg = grouping.alg;\n return this.traverseAlg(alg) * Math.abs(grouping.amount);\n }\n\n public traverseMove(move: Move): number {\n return this.metric(move);\n }\n\n public traverseCommutator(commutator: Commutator): number {\n return (\n 2 * (this.traverseAlg(commutator.A) + this.traverseAlg(commutator.B))\n );\n }\n\n public traverseConjugate(conjugate: Conjugate): number {\n return 2 * this.traverseAlg(conjugate.A) + this.traverseAlg(conjugate.B);\n }\n\n // TODO: Remove spaces between repeated pauses (in traverseSequence)\n public traversePause(_pause: Pause): number {\n return 0;\n }\n\n public traverseNewline(_newLine: Newline): number {\n return 0;\n }\n\n // TODO: Enforce being followed by a newline (or the end of the alg)?\n public traverseLineComment(_comment: LineComment): number {\n return 0;\n }\n}\n\nfunction isCharUppercase(c: string): boolean {\n return \"A\" <= c && c <= \"Z\";\n}\n\n// TODO: Implement a puzzle-specific way to calculate this.\nfunction baseMetric(move: Move): number {\n const fam = move.family;\n if (\n (isCharUppercase(fam[0]) && fam[fam.length - 1] === \"v\") ||\n fam === \"x\" ||\n fam === \"y\" ||\n fam === \"z\" ||\n fam === \"T\"\n ) {\n return 0;\n } else {\n return 1;\n }\n}\n\nfunction etmMetric(_move: Move): number {\n return 1;\n}\n\n// TODO: Implement a puzzle-specific way to calculate this.\nfunction quantumMetric(move: Move): number {\n const fam = move.family;\n if (\n (isCharUppercase(fam[0]) && fam[fam.length - 1] === \"v\") ||\n fam === \"x\" ||\n fam === \"y\" ||\n fam === \"z\" ||\n fam === \"T\"\n ) {\n return 0;\n } else {\n return Math.abs(move.amount);\n }\n}\n\nconst countMovesInstance = new CountMoves(baseMetric);\nexport const countMoves: (alg: Alg) => number =\n countMovesInstance.traverseAlg.bind(countMovesInstance);\n\nconst countMovesETMInstance = new CountMoves(etmMetric);\nexport const countMovesETM: (alg: Alg) => number =\n countMovesInstance.traverseAlg.bind(countMovesETMInstance);\n\nconst countQuantumMovesInstance = new CountMoves(quantumMetric);\nexport const countQuantumMoves: (alg: Alg) => number =\n countQuantumMovesInstance.traverseAlg.bind(countQuantumMovesInstance);\n", "import {\n Alg,\n Commutator,\n Conjugate,\n Grouping,\n LineComment,\n Move,\n Newline,\n Pause,\n TraversalUp,\n} from \"../alg\";\n\n// TODO: Include Pause, include amounts\nclass CountAnimatedLeaves extends TraversalUp<number, number> {\n public traverseAlg(alg: Alg): number {\n let total = 0;\n for (const part of alg.units()) {\n total += this.traverseUnit(part);\n }\n return total;\n }\n\n public traverseGrouping(grouping: Grouping): number {\n return this.traverseAlg(grouping.alg) * Math.abs(grouping.amount);\n }\n\n public traverseMove(_move: Move): number {\n return 1;\n }\n\n public traverseCommutator(commutator: Commutator): number {\n return (\n 2 * (this.traverseAlg(commutator.A) + this.traverseAlg(commutator.B))\n );\n }\n\n public traverseConjugate(conjugate: Conjugate): number {\n return 2 * this.traverseAlg(conjugate.A) + this.traverseAlg(conjugate.B);\n }\n\n public traversePause(_pause: Pause): number {\n return 1;\n }\n\n public traverseNewline(_newline: Newline): number {\n return 0;\n }\n\n public traverseLineComment(_comment: LineComment): number {\n return 0;\n }\n}\n\nconst countAnimatedLeavesInstance = new CountAnimatedLeaves();\nexport const countAnimatedLeaves: (alg: Alg) => number =\n countAnimatedLeavesInstance.traverseAlg.bind(countAnimatedLeavesInstance);\n"],
|
|
5
|
+
"mappings": ";;;;;AAiBA,+BAAyB,YAAoB;AAAA,EAC3C,YAAoB,QAAgC;AAClD;AADkB;AAAA;AAAA,EAIb,YAAY,KAAkB;AACnC,QAAI,IAAI;AACR,eAAW,QAAQ,IAAI,SAAS;AAC9B,WAAK,KAAK,aAAa;AAAA;AAEzB,WAAO;AAAA;AAAA,EAGF,iBAAiB,UAA4B;AAGlD,UAAM,MAAW,SAAS;AAC1B,WAAO,KAAK,YAAY,OAAO,KAAK,IAAI,SAAS;AAAA;AAAA,EAG5C,aAAa,MAAoB;AACtC,WAAO,KAAK,OAAO;AAAA;AAAA,EAGd,mBAAmB,YAAgC;AACxD,WACE,IAAK,MAAK,YAAY,WAAW,KAAK,KAAK,YAAY,WAAW;AAAA;AAAA,EAI/D,kBAAkB,WAA8B;AACrD,WAAO,IAAI,KAAK,YAAY,UAAU,KAAK,KAAK,YAAY,UAAU;AAAA;AAAA,EAIjE,cAAc,QAAuB;AAC1C,WAAO;AAAA;AAAA,EAGF,gBAAgB,UAA2B;AAChD,WAAO;AAAA;AAAA,EAIF,oBAAoB,UAA+B;AACxD,WAAO;AAAA;AAAA;AAIX,yBAAyB,GAAoB;AAC3C,SAAO,OAAO,KAAK,KAAK;AAAA;AAI1B,oBAAoB,MAAoB;AACtC,QAAM,MAAM,KAAK;AACjB,MACG,gBAAgB,IAAI,OAAO,IAAI,IAAI,SAAS,OAAO,OACpD,QAAQ,OACR,QAAQ,OACR,QAAQ,OACR,QAAQ,KACR;AACA,WAAO;AAAA,SACF;AACL,WAAO;AAAA;AAAA;AAIX,mBAAmB,OAAqB;AACtC,SAAO;AAAA;AAIT,uBAAuB,MAAoB;AACzC,QAAM,MAAM,KAAK;AACjB,MACG,gBAAgB,IAAI,OAAO,IAAI,IAAI,SAAS,OAAO,OACpD,QAAQ,OACR,QAAQ,OACR,QAAQ,OACR,QAAQ,KACR;AACA,WAAO;AAAA,SACF;AACL,WAAO,KAAK,IAAI,KAAK;AAAA;AAAA;AAIzB,IAAM,qBAAqB,IAAI,WAAW;AACnC,IAAM,aACX,mBAAmB,YAAY,KAAK;AAEtC,IAAM,wBAAwB,IAAI,WAAW;AACtC,IAAM,gBACX,mBAAmB,YAAY,KAAK;AAEtC,IAAM,4BAA4B,IAAI,WAAW;AAC1C,IAAM,oBACX,0BAA0B,YAAY,KAAK;;;ACvG7C,wCAAkC,YAA4B;AAAA,EACrD,YAAY,KAAkB;AACnC,QAAI,QAAQ;AACZ,eAAW,QAAQ,IAAI,SAAS;AAC9B,eAAS,KAAK,aAAa;AAAA;AAE7B,WAAO;AAAA;AAAA,EAGF,iBAAiB,UAA4B;AAClD,WAAO,KAAK,YAAY,SAAS,OAAO,KAAK,IAAI,SAAS;AAAA;AAAA,EAGrD,aAAa,OAAqB;AACvC,WAAO;AAAA;AAAA,EAGF,mBAAmB,YAAgC;AACxD,WACE,IAAK,MAAK,YAAY,WAAW,KAAK,KAAK,YAAY,WAAW;AAAA;AAAA,EAI/D,kBAAkB,WAA8B;AACrD,WAAO,IAAI,KAAK,YAAY,UAAU,KAAK,KAAK,YAAY,UAAU;AAAA;AAAA,EAGjE,cAAc,QAAuB;AAC1C,WAAO;AAAA;AAAA,EAGF,gBAAgB,UAA2B;AAChD,WAAO;AAAA;AAAA,EAGF,oBAAoB,UAA+B;AACxD,WAAO;AAAA;AAAA;AAIX,IAAM,8BAA8B,IAAI;AACjC,IAAM,sBACX,4BAA4B,YAAY,KAAK;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
normalize3x3x3Orientation,
|
|
4
4
|
puzzleOrientation3x3x3Cache,
|
|
5
5
|
puzzleOrientation3x3x3Idx
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YEXEZWAK.js";
|
|
7
7
|
import {
|
|
8
8
|
KState
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QK4WH7WZ.js";
|
|
10
10
|
|
|
11
11
|
// src/cubing/protocol/binary/orbit-indexing.ts
|
|
12
12
|
function identityPermutation(numElems) {
|
|
@@ -237,4 +237,4 @@ export {
|
|
|
237
237
|
bufferToSpacedHex,
|
|
238
238
|
spacedHexToBuffer
|
|
239
239
|
};
|
|
240
|
-
//# sourceMappingURL=chunk-
|
|
240
|
+
//# sourceMappingURL=chunk-J4SZZ5OP.js.map
|
|
File without changes
|
|
@@ -111,7 +111,7 @@ async function constructWorker(source, options) {
|
|
|
111
111
|
// src/cubing/search/inside/search-worker-ts-entry-path-getter.ts
|
|
112
112
|
exposeAPI.expose = false;
|
|
113
113
|
async function getWorkerEntryFileURL() {
|
|
114
|
-
return (await import("./search-worker-ts-entry-
|
|
114
|
+
return (await import("./search-worker-ts-entry-NUFPSU6U.js")).WORKER_ENTRY_FILE_URL;
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
// src/cubing/search/instantiator.ts
|
|
@@ -120,6 +120,10 @@ var forceStringWorker = false;
|
|
|
120
120
|
function setForceStringWorker(force) {
|
|
121
121
|
forceStringWorker = force;
|
|
122
122
|
}
|
|
123
|
+
var disableStringWorker = false;
|
|
124
|
+
function setDisableStringWorker(disable) {
|
|
125
|
+
disableStringWorker = disable;
|
|
126
|
+
}
|
|
123
127
|
async function instantiateModuleWorker() {
|
|
124
128
|
return new Promise(async (resolve, reject) => {
|
|
125
129
|
const timeoutID = setTimeout(() => {
|
|
@@ -131,7 +135,7 @@ async function instantiateModuleWorker() {
|
|
|
131
135
|
reject(new Error("Could not get worker entry file URL."));
|
|
132
136
|
}
|
|
133
137
|
let url;
|
|
134
|
-
if (globalThis.
|
|
138
|
+
if (globalThis.Worker) {
|
|
135
139
|
const importSrc = `import "${workerEntryFileURL}";`;
|
|
136
140
|
const blob = new Blob([importSrc], {
|
|
137
141
|
type: "text/javascript"
|
|
@@ -172,7 +176,7 @@ async function instantiateModuleWorker() {
|
|
|
172
176
|
});
|
|
173
177
|
}
|
|
174
178
|
async function instantiateClassicWorker() {
|
|
175
|
-
const { workerSource } = await import("./search-worker-inside-generated-string-
|
|
179
|
+
const { workerSource } = await import("./search-worker-inside-generated-string-GNBQVERX.js");
|
|
176
180
|
const worker = await constructWorker(workerSource, { eval: true });
|
|
177
181
|
return wrap(worker);
|
|
178
182
|
}
|
|
@@ -184,7 +188,12 @@ async function instantiateWorker() {
|
|
|
184
188
|
try {
|
|
185
189
|
return await instantiateModuleWorker();
|
|
186
190
|
} catch (e) {
|
|
187
|
-
|
|
191
|
+
const commonErrorPrefix = "Could not instantiate module worker (this may happen in Firefox, with `bundle-global`, or when using Parcel).";
|
|
192
|
+
if (disableStringWorker) {
|
|
193
|
+
console.error(`${commonErrorPrefix} Fallback to string worker is disabled.`, e);
|
|
194
|
+
throw new Error(`Module worker instantiation failed.`);
|
|
195
|
+
}
|
|
196
|
+
console.warn(`${commonErrorPrefix} Falling back to string worker.`, e);
|
|
188
197
|
return instantiateClassicWorker();
|
|
189
198
|
}
|
|
190
199
|
}
|
|
@@ -240,6 +249,9 @@ function setDebug(options) {
|
|
|
240
249
|
if ("forceStringWorker" in options) {
|
|
241
250
|
setForceStringWorker(!!options.forceStringWorker);
|
|
242
251
|
}
|
|
252
|
+
if ("disableStringWorker" in options) {
|
|
253
|
+
setDisableStringWorker(!!options.disableStringWorker);
|
|
254
|
+
}
|
|
243
255
|
}
|
|
244
256
|
|
|
245
257
|
export {
|
|
@@ -251,4 +263,4 @@ export {
|
|
|
251
263
|
solveMegaminx,
|
|
252
264
|
setDebug
|
|
253
265
|
};
|
|
254
|
-
//# sourceMappingURL=chunk-
|
|
266
|
+
//# sourceMappingURL=chunk-KSNW26OV.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/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 { randomUIntBelowFactory } from \"../../../../vendor/random-uint-below\";\n\nconst pins = [\"UR\", \"DR\", \"DL\", \"UL\"];\nconst backMoves = [\"U\", \"R\", \"D\", \"L\", \"ALL\"];\nconst frontMoves = pins.concat(backMoves);\n\nconst randomUIntBelowPromise = randomUIntBelowFactory();\n\nexport async function randomClockScrambleString(): Promise<string> {\n const randomUIntBelow = await randomUIntBelowPromise;\n\n let filteringMoveCount = 0;\n\n async function randomSuffix(randomUIntBelow: (max: number) => number) {\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 async function side(families: string[]): Promise<void> {\n for (const family of families) {\n moves.push(`${family}${await randomSuffix(randomUIntBelow)}`);\n }\n }\n\n await side(frontMoves);\n moves.push(\"y2\");\n await 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 { randomUIntBelowFactory } from \"../../../../vendor/random-uint-below\";\n\nconst randomUIntBelowPromise = randomUIntBelowFactory();\n\nconst suffixes = [\"++\", \"--\"];\n\nexport async function randomMegaminxScrambleString(): Promise<string> {\n const randomUIntBelow = await randomUIntBelowPromise;\n\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 { constructWorker, wrap } from \"../vendor/comlink-everywhere/outside\";\nimport type { WorkerInsideAPI } from \"./inside/api\";\nimport { getWorkerEntryFileURL } from \"./inside/search-worker-ts-entry-path-getter\";\n\nconst MODULE_WORKER_TIMEOUT_MILLISECONDS = 5000;\n\nlet forceStringWorker: boolean = false;\nexport function setForceStringWorker(force: boolean): void {\n forceStringWorker = force;\n}\nlet disableStringWorker: boolean = false;\nexport function setDisableStringWorker(disable: boolean): void {\n disableStringWorker = disable;\n}\n\nexport async function instantiateModuleWorker(): Promise<WorkerInsideAPI> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<WorkerInsideAPI>(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 // This happens in `bundle-global`.\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 \"${workerEntryFileURL}\";`;\n const blob = new Blob([importSrc], {\n type: \"text/javascript\",\n });\n url = URL.createObjectURL(blob);\n } else {\n // `node` < 18 doesn't have `Blob`:\n // https://nodejs.org/ko/blog/announcements/v18-release-announce/#other-global-apis\n // But `node` will not let us construct a worker from a `blob:` URL either.\n //\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(wrap<WorkerInsideAPI>(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 quite 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\nasync function instantiateClassicWorker(): Promise<WorkerInsideAPI> {\n const { workerSource } = await import(\n \"./search-worker-inside-generated-string.js\"\n );\n const worker = await constructWorker(workerSource, { eval: true });\n return wrap(worker);\n}\n\nexport async function instantiateWorker(): Promise<WorkerInsideAPI> {\n if (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, with `bundle-global`, or when using Parcel).\";\n if (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\";\n// import { preInitialize222 } from \"../implementations/2x2x2\";\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 {\n instantiateWorker,\n setDisableStringWorker,\n setForceStringWorker,\n} from \"./instantiator\";\nimport type { PrefetchLevel, WorkerInsideAPI } from \"./inside/api\";\nimport type { KState } from \"../kpuzzle/KState\";\n\nlet cachedWorkerInstance: Promise<WorkerInsideAPI> | null = null;\nasync function getCachedWorkerInstance(): Promise<WorkerInsideAPI> {\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 return _preInitializationHintForEvent(\"333\");\n }\n (async () => {\n await (await getCachedWorkerInstance()).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 const cwi = await getCachedWorkerInstance();\n return cwi.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.solve333ToString(state.stateData));\n}\n\nexport async function experimentalSolve2x2x2(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solve222ToString(state.stateData));\n}\n\nexport async function solveSkewb(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solveSkewbToString(state.stateData));\n}\n\nexport async function solvePyraminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solvePyraminxToString(state.stateData));\n}\n\nexport async function solveMegaminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solveMegaminxToString(state.stateData));\n}\n\nexport function setDebug(options: {\n logPerf?: boolean;\n scramblePrefetchLevel?: `${PrefetchLevel}`;\n forceStringWorker?: boolean;\n disableStringWorker?: boolean;\n}): void {\n const { logPerf, scramblePrefetchLevel } = options;\n if (typeof logPerf !== \"undefined\") {\n getCachedWorkerInstance().then((cwi) => cwi.setDebugMeasurePerf(logPerf));\n }\n if (typeof scramblePrefetchLevel !== \"undefined\") {\n getCachedWorkerInstance().then((cwi) =>\n cwi.setScramblePrefetchLevel(scramblePrefetchLevel as PrefetchLevel),\n );\n }\n if (\"forceStringWorker\" in options) {\n setForceStringWorker(!!options.forceStringWorker);\n }\n if (\"disableStringWorker\" in options) {\n setDisableStringWorker(!!options.disableStringWorker);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2189,8 +2189,8 @@ var orientationDefaults = {
|
|
|
2189
2189
|
"HI",
|
|
2190
2190
|
"BD",
|
|
2191
2191
|
"DB",
|
|
2192
|
-
"
|
|
2193
|
-
"
|
|
2192
|
+
"ON",
|
|
2193
|
+
"NO"
|
|
2194
2194
|
]
|
|
2195
2195
|
}
|
|
2196
2196
|
};
|
|
@@ -4383,4 +4383,4 @@ export {
|
|
|
4383
4383
|
PuzzleGeometry,
|
|
4384
4384
|
PGNotation
|
|
4385
4385
|
};
|
|
4386
|
-
//# sourceMappingURL=chunk-
|
|
4386
|
+
//# sourceMappingURL=chunk-KT3AIQTR.js.map
|