cubing 0.25.7 → 0.25.10
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/{2x2x2.kpuzzle.json-RUB44MJV.js → 2x2x2.kpuzzle.json-BHTFIME6.js} +2 -2
- package/dist/esm/{2x2x2.kpuzzle.json-RUB44MJV.js.map → 2x2x2.kpuzzle.json-BHTFIME6.js.map} +0 -0
- package/dist/esm/{2x2x2.kpuzzle.svg-CQF2FTV7.js → 2x2x2.kpuzzle.svg-CYX37VBY.js} +2 -2
- package/dist/esm/{2x2x2.kpuzzle.svg-CQF2FTV7.js.map → 2x2x2.kpuzzle.svg-CYX37VBY.js.map} +0 -0
- package/dist/esm/{2x2x2.sgs.json-3ZT7QXX6.js → 2x2x2.sgs.json-CLGNVWIM.js} +6 -6
- package/dist/esm/{2x2x2.sgs.json-3ZT7QXX6.js.map → 2x2x2.sgs.json-CLGNVWIM.js.map} +0 -0
- package/dist/esm/{3d-dynamic-PTVO24C3.js → 3d-dynamic-5LHE6HI6.js} +8 -8
- package/dist/esm/{3d-dynamic-PTVO24C3.js.map → 3d-dynamic-5LHE6HI6.js.map} +1 -1
- package/dist/esm/{3x3x3-ll.kpuzzle.svg-53CBPG5O.js → 3x3x3-ll.kpuzzle.svg-KZNSV76X.js} +2 -2
- package/dist/esm/{3x3x3-ll.kpuzzle.svg-53CBPG5O.js.map → 3x3x3-ll.kpuzzle.svg-KZNSV76X.js.map} +0 -0
- package/dist/esm/{3x3x3-min2phase-FPRJ5PCJ.js → 3x3x3-min2phase-UBW46KDU.js} +2 -2
- package/dist/esm/{3x3x3-min2phase-FPRJ5PCJ.js.map → 3x3x3-min2phase-UBW46KDU.js.map} +0 -0
- package/dist/esm/{3x3x3.kpuzzle.svg-ERSSH66P.js → 3x3x3.kpuzzle.svg-5U7LUACF.js} +2 -2
- package/dist/esm/{3x3x3.kpuzzle.svg-ERSSH66P.js.map → 3x3x3.kpuzzle.svg-5U7LUACF.js.map} +0 -0
- package/dist/esm/{444-solver-BYA4CXZO.js → 444-solver-SFZ7V6NL.js} +7 -7
- package/dist/esm/{444-solver-BYA4CXZO.js.map → 444-solver-SFZ7V6NL.js.map} +0 -0
- package/dist/esm/alg/index.js +2 -2
- package/dist/esm/bluetooth/index.js +5 -5
- package/dist/esm/{chunk-RENZB7QN.js → chunk-43SBQEWR.js} +5 -2
- package/dist/esm/chunk-43SBQEWR.js.map +7 -0
- package/dist/esm/{chunk-JGAZXWH2.js → chunk-4SXK3FSU.js} +6 -6
- package/dist/esm/{chunk-JGAZXWH2.js.map → chunk-4SXK3FSU.js.map} +1 -1
- package/dist/esm/{chunk-ANYSPBCR.js → chunk-6BUCXDZU.js} +3 -3
- package/dist/esm/{chunk-ANYSPBCR.js.map → chunk-6BUCXDZU.js.map} +0 -0
- package/dist/esm/{chunk-JW2JE4D3.js → chunk-C6I4KFI2.js} +4 -4
- package/dist/esm/{chunk-JW2JE4D3.js.map → chunk-C6I4KFI2.js.map} +0 -0
- package/dist/esm/{chunk-EWRBHQFX.js → chunk-DO7GZAW4.js} +35 -35
- package/dist/esm/{chunk-EWRBHQFX.js.map → chunk-DO7GZAW4.js.map} +1 -1
- package/dist/esm/{chunk-27KJGD3S.js → chunk-FB7SFELN.js} +2 -2
- package/dist/esm/{chunk-27KJGD3S.js.map → chunk-FB7SFELN.js.map} +0 -0
- package/dist/esm/{chunk-IVQ4ITE2.js → chunk-GBMX6FHY.js} +2 -2
- package/dist/esm/{chunk-IVQ4ITE2.js.map → chunk-GBMX6FHY.js.map} +1 -1
- package/dist/esm/{chunk-WO2AXYFE.js → chunk-MGJA5U5O.js} +1 -1
- package/dist/esm/{chunk-WO2AXYFE.js.map → chunk-MGJA5U5O.js.map} +0 -0
- package/dist/esm/{chunk-U2TSTTDG.js → chunk-NSLR2SC4.js} +2 -2
- package/dist/esm/{chunk-U2TSTTDG.js.map → chunk-NSLR2SC4.js.map} +0 -0
- package/dist/esm/{chunk-F5WNHV7V.js → chunk-ODQRVWJB.js} +3 -3
- package/dist/esm/{chunk-F5WNHV7V.js.map → chunk-ODQRVWJB.js.map} +1 -1
- package/dist/esm/{chunk-OAPHPP4R.js → chunk-OFGQQQBY.js} +4 -4
- package/dist/esm/{chunk-OAPHPP4R.js.map → chunk-OFGQQQBY.js.map} +0 -0
- package/dist/esm/{chunk-CNIY6YZL.js → chunk-QKEGKHT5.js} +106 -103
- package/dist/esm/chunk-QKEGKHT5.js.map +7 -0
- package/dist/esm/{chunk-ZIHFCBOI.js → chunk-RREJ3MSB.js} +3 -3
- package/dist/esm/{chunk-ZIHFCBOI.js.map → chunk-RREJ3MSB.js.map} +0 -0
- package/dist/esm/{chunk-HFQZM22L.js → chunk-XBH5IPB2.js} +14 -8
- package/dist/esm/chunk-XBH5IPB2.js.map +7 -0
- package/dist/esm/{chunk-MVKZPDII.js → chunk-YAOUFM4D.js} +5 -5
- package/dist/esm/{chunk-MVKZPDII.js.map → chunk-YAOUFM4D.js.map} +1 -1
- package/dist/esm/{chunk-NROLOGGL.js → chunk-Z35CBICW.js} +6 -6
- package/dist/esm/{chunk-NROLOGGL.js.map → chunk-Z35CBICW.js.map} +0 -0
- package/dist/esm/{chunk-WDJDRVZZ.js → chunk-ZPAGJE7S.js} +6 -3
- package/dist/esm/{chunk-WDJDRVZZ.js.map → chunk-ZPAGJE7S.js.map} +2 -2
- package/dist/esm/{clock.kpuzzle.json-BQKNKV3G.js → clock.kpuzzle.json-PYHONPBY.js} +2 -2
- package/dist/esm/{clock.kpuzzle.json-BQKNKV3G.js.map → clock.kpuzzle.json-PYHONPBY.js.map} +0 -0
- package/dist/esm/{clock.kpuzzle.svg-B7TMN3SY.js → clock.kpuzzle.svg-JSRDCSQF.js} +2 -2
- package/dist/esm/{clock.kpuzzle.svg-B7TMN3SY.js.map → clock.kpuzzle.svg-JSRDCSQF.js.map} +0 -0
- package/dist/esm/{fto-solver-HI6NIV74.js → fto-solver-TOOJNOZB.js} +3 -3
- package/dist/esm/{fto-solver-HI6NIV74.js.map → fto-solver-TOOJNOZB.js.map} +0 -0
- package/dist/esm/{fto.dynamic-FLX5JKRG.js → fto.dynamic-3MSUIE4Q.js} +7 -7
- package/dist/esm/{fto.dynamic-FLX5JKRG.js.map → fto.dynamic-3MSUIE4Q.js.map} +0 -0
- package/dist/esm/fto.kpuzzle.svg-H2RJX6UR.js +102 -0
- package/dist/esm/fto.kpuzzle.svg-H2RJX6UR.js.map +7 -0
- package/dist/esm/{kilominx.kpuzzle.svg-7XJBOKFU.js → kilominx.kpuzzle.svg-ZLRTRUTM.js} +2 -2
- package/dist/esm/{kilominx.kpuzzle.svg-7XJBOKFU.js.map → kilominx.kpuzzle.svg-ZLRTRUTM.js.map} +0 -0
- package/dist/esm/{kilosolver-N6JM5PUY.js → kilosolver-A3MNW2DJ.js} +6 -5
- package/dist/esm/{kilosolver-N6JM5PUY.js.map → kilosolver-A3MNW2DJ.js.map} +1 -1
- package/dist/esm/kpuzzle/index.js +3 -3
- package/dist/esm/{master_tetraminx-solver-KBQJGW4A.js → master_tetraminx-solver-QSJNGET5.js} +6 -5
- package/dist/esm/{master_tetraminx-solver-KBQJGW4A.js.map → master_tetraminx-solver-QSJNGET5.js.map} +1 -1
- package/dist/esm/megaminx.sgs.json-O2B5OU3T.js +16 -0
- package/dist/esm/{megaminx.sgs.json-CGIZZZMZ.js.map → megaminx.sgs.json-O2B5OU3T.js.map} +0 -0
- package/dist/esm/notation/index.js +3 -3
- package/dist/esm/protocol/index.js +4 -4
- package/dist/esm/puzzle-geometry/index.js +3 -3
- package/dist/esm/puzzles/index.js +4 -4
- package/dist/esm/{pyraminx.kpuzzle.svg-QBBMZVDY.js → pyraminx.kpuzzle.svg-UHDZCBET.js} +2 -2
- package/dist/esm/{pyraminx.kpuzzle.svg-QBBMZVDY.js.map → pyraminx.kpuzzle.svg-UHDZCBET.js.map} +0 -0
- package/dist/esm/pyraminx.sgs.json-NTELD4DU.js +14 -0
- package/dist/esm/{pyraminx.sgs.json-XGJQTHLV.js.map → pyraminx.sgs.json-NTELD4DU.js.map} +0 -0
- package/dist/esm/{redi_cube-E5F64NIQ.js → redi_cube-FYRLEZZH.js} +7 -6
- package/dist/esm/{redi_cube-E5F64NIQ.js.map → redi_cube-FYRLEZZH.js.map} +1 -1
- package/dist/esm/{redi_cube.kpuzzle.json-EPBKWOMV.js → redi_cube.kpuzzle.json-43CP47Z6.js} +2 -2
- package/dist/esm/{redi_cube.kpuzzle.json-EPBKWOMV.js.map → redi_cube.kpuzzle.json-43CP47Z6.js.map} +0 -0
- package/dist/esm/{redi_cube.kpuzzle.svg-BSHCMC2Z.js → redi_cube.kpuzzle.svg-3DWDYE3O.js} +2 -2
- package/dist/esm/{redi_cube.kpuzzle.svg-BSHCMC2Z.js.map → redi_cube.kpuzzle.svg-3DWDYE3O.js.map} +0 -0
- package/dist/esm/scramble/index.js +8 -8
- package/dist/esm/search/index.js +8 -8
- package/dist/esm/{search-worker-js-entry-A4VBA2ZD.js → search-worker-js-entry-32MQILEZ.js} +113 -71
- package/dist/esm/{search-worker-js-entry-A4VBA2ZD.js.map → search-worker-js-entry-32MQILEZ.js.map} +2 -2
- package/dist/esm/{search-worker-ts-entry-LUHAXJBE.js → search-worker-ts-entry-IJRN7GQV.js} +5 -5
- package/dist/esm/{search-worker-ts-entry-LUHAXJBE.js.map → search-worker-ts-entry-IJRN7GQV.js.map} +0 -0
- package/dist/esm/skewb.sgs.json-GISOONJZ.js +16 -0
- package/dist/esm/{skewb.sgs.json-HNUN4G7F.js.map → skewb.sgs.json-GISOONJZ.js.map} +0 -0
- package/dist/esm/{sq1-hyperorbit.kpuzzle.json-4XS5YACO.js → sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js} +2 -2
- package/dist/esm/{sq1-hyperorbit.kpuzzle.json-4XS5YACO.js.map → sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js.map} +0 -0
- package/dist/esm/{sq1-hyperorbit.kpuzzle.svg-ID57EER7.js → sq1-hyperorbit.kpuzzle.svg-MNHJTJ6V.js} +2 -2
- package/dist/esm/{sq1-hyperorbit.kpuzzle.svg-ID57EER7.js.map → sq1-hyperorbit.kpuzzle.svg-MNHJTJ6V.js.map} +0 -0
- package/dist/esm/{sq1-solver-P3IWWET7.js → sq1-solver-KMN2GSOU.js} +3 -3
- package/dist/esm/{sq1-solver-P3IWWET7.js.map → sq1-solver-KMN2GSOU.js.map} +0 -0
- package/dist/esm/stream/index.js +2 -2
- package/dist/esm/twisty/index.js +558 -559
- package/dist/esm/twisty/index.js.map +3 -3
- package/dist/esm/worker-inside-generated-string-JGML54CI.js +3768 -0
- package/dist/esm/worker-inside-generated-string-JGML54CI.js.map +7 -0
- package/dist/types/puzzles/implementations/fto/fto.kpuzzle.svg.d.ts +1 -0
- package/dist/types/puzzles/implementations/fto/index.d.ts +1 -0
- package/dist/types/search/inside/api.d.ts +6 -0
- package/dist/types/search/outside.d.ts +2 -0
- package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
- package/dist/types/twisty/model/TwistyPlayerModel.d.ts +27 -46
- package/dist/types/twisty/model/TwistySceneModel.d.ts +27 -0
- package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts +3 -3
- package/package.json +21 -22
- package/dist/esm/chunk-CNIY6YZL.js.map +0 -7
- package/dist/esm/chunk-HFQZM22L.js.map +0 -7
- package/dist/esm/chunk-RENZB7QN.js.map +0 -7
- package/dist/esm/megaminx.sgs.json-CGIZZZMZ.js +0 -16
- package/dist/esm/pyraminx.sgs.json-XGJQTHLV.js +0 -14
- package/dist/esm/skewb.sgs.json-HNUN4G7F.js +0 -16
- package/dist/esm/worker-inside-generated-string-VHOABMFC.js +0 -3674
- package/dist/esm/worker-inside-generated-string-VHOABMFC.js.map +0 -7
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseSGS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FB7SFELN.js";
|
|
4
4
|
import {
|
|
5
5
|
PGNotation,
|
|
6
6
|
getPuzzleGeometryByName
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ODQRVWJB.js";
|
|
8
8
|
import {
|
|
9
9
|
KPuzzle
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YAOUFM4D.js";
|
|
11
11
|
|
|
12
12
|
// src/cubing/search/inside/solve/puzzles/megaminx.sgs.json.ts
|
|
13
13
|
async function megaminxKPuzzleWithoutMO() {
|
|
@@ -1558,4 +1558,4 @@ export {
|
|
|
1558
1558
|
cachedSGSDataMegaminx,
|
|
1559
1559
|
sgsDataMegaminx
|
|
1560
1560
|
};
|
|
1561
|
-
//# sourceMappingURL=chunk-
|
|
1561
|
+
//# sourceMappingURL=chunk-OFGQQQBY.js.map
|
|
File without changes
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KPuzzle,
|
|
3
3
|
experimental3x3x3KPuzzle
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YAOUFM4D.js";
|
|
5
5
|
import {
|
|
6
6
|
__privateAdd,
|
|
7
7
|
__privateGet,
|
|
8
8
|
__privateSet
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MGJA5U5O.js";
|
|
10
10
|
|
|
11
11
|
// src/cubing/puzzles/customPGPuzzleLoader.ts
|
|
12
12
|
async function descAsyncGetPuzzleGeometry(desc) {
|
|
@@ -116,8 +116,7 @@ function getFaceletAppearance(appearance, orbitName, pieceIdx, faceletIdx, hint)
|
|
|
116
116
|
}
|
|
117
117
|
return faceletAppearance.appearance;
|
|
118
118
|
}
|
|
119
|
-
var PieceStickering
|
|
120
|
-
(function(PieceStickering2) {
|
|
119
|
+
var PieceStickering = /* @__PURE__ */ ((PieceStickering2) => {
|
|
121
120
|
PieceStickering2["Regular"] = "Regular";
|
|
122
121
|
PieceStickering2["Dim"] = "Dim";
|
|
123
122
|
PieceStickering2["Ignored"] = "Ignored";
|
|
@@ -127,10 +126,11 @@ var PieceStickering;
|
|
|
127
126
|
PieceStickering2["IgnoreNonPrimary"] = "IgnoreNonPrimary";
|
|
128
127
|
PieceStickering2["PermuteNonPrimary"] = "PermuteNonPrimary";
|
|
129
128
|
PieceStickering2["OrientationWithoutPermutation"] = "OrientationWithoutPermutation";
|
|
130
|
-
|
|
129
|
+
return PieceStickering2;
|
|
130
|
+
})(PieceStickering || {});
|
|
131
131
|
var PieceAnnotation = class {
|
|
132
132
|
constructor(kpuzzle, defaultValue) {
|
|
133
|
-
this.stickerings = new Map();
|
|
133
|
+
this.stickerings = /* @__PURE__ */ new Map();
|
|
134
134
|
for (const [orbitName, orbitDef] of Object.entries(kpuzzle.definition.orbits)) {
|
|
135
135
|
this.stickerings.set(orbitName, new Array(orbitDef.numPieces).fill(defaultValue));
|
|
136
136
|
}
|
|
@@ -170,29 +170,29 @@ var oiiii = {
|
|
|
170
170
|
};
|
|
171
171
|
function getPieceAppearance(pieceStickering) {
|
|
172
172
|
switch (pieceStickering) {
|
|
173
|
-
case
|
|
173
|
+
case "Regular" /* Regular */:
|
|
174
174
|
return r;
|
|
175
|
-
case
|
|
175
|
+
case "Dim" /* Dim */:
|
|
176
176
|
return d;
|
|
177
|
-
case
|
|
177
|
+
case "Ignored" /* Ignored */:
|
|
178
178
|
return i;
|
|
179
|
-
case
|
|
179
|
+
case "OrientationStickers" /* OrientationStickers */:
|
|
180
180
|
return o;
|
|
181
|
-
case
|
|
181
|
+
case "Invisible" /* Invisible */:
|
|
182
182
|
return invisiblePiece;
|
|
183
|
-
case
|
|
183
|
+
case "IgnoreNonPrimary" /* IgnoreNonPrimary */:
|
|
184
184
|
return riiii;
|
|
185
|
-
case
|
|
185
|
+
case "PermuteNonPrimary" /* PermuteNonPrimary */:
|
|
186
186
|
return drrrr;
|
|
187
|
-
case
|
|
187
|
+
case "Ignoriented" /* Ignoriented */:
|
|
188
188
|
return diiii;
|
|
189
|
-
case
|
|
189
|
+
case "OrientationWithoutPermutation" /* OrientationWithoutPermutation */:
|
|
190
190
|
return oiiii;
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
var PuzzleStickering = class extends PieceAnnotation {
|
|
194
194
|
constructor(kpuzzle) {
|
|
195
|
-
super(kpuzzle,
|
|
195
|
+
super(kpuzzle, "Regular" /* Regular */);
|
|
196
196
|
}
|
|
197
197
|
set(pieceSet, pieceStickering) {
|
|
198
198
|
for (const [orbitName, pieces] of this.stickerings.entries()) {
|
|
@@ -295,7 +295,7 @@ function setGlobalCustomStickerer(stickerer) {
|
|
|
295
295
|
const successPromises = [];
|
|
296
296
|
for (const player of players) {
|
|
297
297
|
successPromises.push((async () => {
|
|
298
|
-
const stickering = await player.experimentalModel.stickering.get();
|
|
298
|
+
const stickering = await player.experimentalModel.twistySceneModel.stickering.get();
|
|
299
299
|
player.experimentalStickering = stickering === "experimental-global-custom-1" ? "experimental-global-custom-2" : "experimental-global-custom-1";
|
|
300
300
|
})());
|
|
301
301
|
}
|
|
@@ -339,19 +339,19 @@ async function cubeAppearance(puzzleLoader, stickering) {
|
|
|
339
339
|
const CORNERS = () => m.not(m.or([CENTERS(), EDGES()]));
|
|
340
340
|
const L6E = () => m.or([M(), m.and([LL(), EDGES()])]);
|
|
341
341
|
function dimF2L() {
|
|
342
|
-
puzzleStickering.set(F2L(),
|
|
342
|
+
puzzleStickering.set(F2L(), "Dim" /* Dim */);
|
|
343
343
|
}
|
|
344
344
|
function setPLL() {
|
|
345
|
-
puzzleStickering.set(LL(),
|
|
346
|
-
puzzleStickering.set(centerU(),
|
|
345
|
+
puzzleStickering.set(LL(), "PermuteNonPrimary" /* PermuteNonPrimary */);
|
|
346
|
+
puzzleStickering.set(centerU(), "Dim" /* Dim */);
|
|
347
347
|
}
|
|
348
348
|
function setOLL() {
|
|
349
|
-
puzzleStickering.set(LL(),
|
|
350
|
-
puzzleStickering.set(centerU(),
|
|
349
|
+
puzzleStickering.set(LL(), "IgnoreNonPrimary" /* IgnoreNonPrimary */);
|
|
350
|
+
puzzleStickering.set(centerU(), "Regular" /* Regular */);
|
|
351
351
|
}
|
|
352
352
|
function dimOLL() {
|
|
353
|
-
puzzleStickering.set(LL(),
|
|
354
|
-
puzzleStickering.set(centerU(),
|
|
353
|
+
puzzleStickering.set(LL(), "Ignoriented" /* Ignoriented */);
|
|
354
|
+
puzzleStickering.set(centerU(), "Dim" /* Dim */);
|
|
355
355
|
}
|
|
356
356
|
switch (stickering) {
|
|
357
357
|
case "full":
|
|
@@ -362,10 +362,10 @@ async function cubeAppearance(puzzleLoader, stickering) {
|
|
|
362
362
|
break;
|
|
363
363
|
case "CLS":
|
|
364
364
|
dimF2L();
|
|
365
|
-
puzzleStickering.set(m.and(m.moves(["D", "R", "F"])),
|
|
366
|
-
puzzleStickering.set(LL(),
|
|
367
|
-
puzzleStickering.set(m.and([LL(), M(), S()]),
|
|
368
|
-
puzzleStickering.set(m.and([LL(), CORNERS()]),
|
|
365
|
+
puzzleStickering.set(m.and(m.moves(["D", "R", "F"])), "Regular" /* Regular */);
|
|
366
|
+
puzzleStickering.set(LL(), "Ignoriented" /* Ignoriented */);
|
|
367
|
+
puzzleStickering.set(m.and([LL(), M(), S()]), "Dim" /* Dim */);
|
|
368
|
+
puzzleStickering.set(m.and([LL(), CORNERS()]), "IgnoreNonPrimary" /* IgnoreNonPrimary */);
|
|
369
369
|
break;
|
|
370
370
|
case "OLL":
|
|
371
371
|
dimF2L();
|
|
@@ -374,117 +374,117 @@ async function cubeAppearance(puzzleLoader, stickering) {
|
|
|
374
374
|
case "COLL":
|
|
375
375
|
dimF2L();
|
|
376
376
|
setPLL();
|
|
377
|
-
puzzleStickering.set(m.and([LL(), CORNERS()]),
|
|
377
|
+
puzzleStickering.set(m.and([LL(), CORNERS()]), "Regular" /* Regular */);
|
|
378
378
|
break;
|
|
379
379
|
case "OCLL":
|
|
380
380
|
dimF2L();
|
|
381
381
|
dimOLL();
|
|
382
|
-
puzzleStickering.set(m.and([LL(), CORNERS()]),
|
|
382
|
+
puzzleStickering.set(m.and([LL(), CORNERS()]), "IgnoreNonPrimary" /* IgnoreNonPrimary */);
|
|
383
383
|
break;
|
|
384
384
|
case "CLL":
|
|
385
385
|
dimF2L();
|
|
386
|
-
puzzleStickering.set(m.not(m.and([CORNERS(), LL()])),
|
|
386
|
+
puzzleStickering.set(m.not(m.and([CORNERS(), LL()])), "Dim" /* Dim */);
|
|
387
387
|
break;
|
|
388
388
|
case "ELL":
|
|
389
389
|
dimF2L();
|
|
390
|
-
puzzleStickering.set(LL(),
|
|
391
|
-
puzzleStickering.set(m.and([LL(), EDGES()]),
|
|
390
|
+
puzzleStickering.set(LL(), "Dim" /* Dim */);
|
|
391
|
+
puzzleStickering.set(m.and([LL(), EDGES()]), "Regular" /* Regular */);
|
|
392
392
|
break;
|
|
393
393
|
case "ELS":
|
|
394
394
|
dimF2L();
|
|
395
395
|
setOLL();
|
|
396
|
-
puzzleStickering.set(m.and([LL(), CORNERS()]),
|
|
397
|
-
puzzleStickering.set(edgeFR(),
|
|
398
|
-
puzzleStickering.set(cornerDFR(),
|
|
396
|
+
puzzleStickering.set(m.and([LL(), CORNERS()]), "Ignored" /* Ignored */);
|
|
397
|
+
puzzleStickering.set(edgeFR(), "Regular" /* Regular */);
|
|
398
|
+
puzzleStickering.set(cornerDFR(), "Ignored" /* Ignored */);
|
|
399
399
|
break;
|
|
400
400
|
case "LL":
|
|
401
401
|
dimF2L();
|
|
402
402
|
break;
|
|
403
403
|
case "F2L":
|
|
404
|
-
puzzleStickering.set(LL(),
|
|
404
|
+
puzzleStickering.set(LL(), "Ignored" /* Ignored */);
|
|
405
405
|
break;
|
|
406
406
|
case "ZBLL":
|
|
407
407
|
dimF2L();
|
|
408
|
-
puzzleStickering.set(LL(),
|
|
409
|
-
puzzleStickering.set(centerU(),
|
|
410
|
-
puzzleStickering.set(m.and([LL(), CORNERS()]),
|
|
408
|
+
puzzleStickering.set(LL(), "PermuteNonPrimary" /* PermuteNonPrimary */);
|
|
409
|
+
puzzleStickering.set(centerU(), "Dim" /* Dim */);
|
|
410
|
+
puzzleStickering.set(m.and([LL(), CORNERS()]), "Regular" /* Regular */);
|
|
411
411
|
break;
|
|
412
412
|
case "ZBLS":
|
|
413
413
|
dimF2L();
|
|
414
|
-
puzzleStickering.set(slotFR(),
|
|
414
|
+
puzzleStickering.set(slotFR(), "Regular" /* Regular */);
|
|
415
415
|
setOLL();
|
|
416
|
-
puzzleStickering.set(m.and([LL(), CORNERS()]),
|
|
416
|
+
puzzleStickering.set(m.and([LL(), CORNERS()]), "Ignored" /* Ignored */);
|
|
417
417
|
break;
|
|
418
418
|
case "WVLS":
|
|
419
419
|
case "VLS":
|
|
420
420
|
dimF2L();
|
|
421
|
-
puzzleStickering.set(slotFR(),
|
|
421
|
+
puzzleStickering.set(slotFR(), "Regular" /* Regular */);
|
|
422
422
|
setOLL();
|
|
423
423
|
break;
|
|
424
424
|
case "LS":
|
|
425
425
|
dimF2L();
|
|
426
|
-
puzzleStickering.set(slotFR(),
|
|
427
|
-
puzzleStickering.set(LL(),
|
|
428
|
-
puzzleStickering.set(centerU(),
|
|
426
|
+
puzzleStickering.set(slotFR(), "Regular" /* Regular */);
|
|
427
|
+
puzzleStickering.set(LL(), "Ignored" /* Ignored */);
|
|
428
|
+
puzzleStickering.set(centerU(), "Dim" /* Dim */);
|
|
429
429
|
break;
|
|
430
430
|
case "EO":
|
|
431
|
-
puzzleStickering.set(CORNERS(),
|
|
432
|
-
puzzleStickering.set(EDGES(),
|
|
431
|
+
puzzleStickering.set(CORNERS(), "Ignored" /* Ignored */);
|
|
432
|
+
puzzleStickering.set(EDGES(), "OrientationWithoutPermutation" /* OrientationWithoutPermutation */);
|
|
433
433
|
break;
|
|
434
434
|
case "EOline":
|
|
435
|
-
puzzleStickering.set(CORNERS(),
|
|
436
|
-
puzzleStickering.set(EDGES(),
|
|
437
|
-
puzzleStickering.set(m.and(m.moves(["D", "M"])),
|
|
435
|
+
puzzleStickering.set(CORNERS(), "Ignored" /* Ignored */);
|
|
436
|
+
puzzleStickering.set(EDGES(), "OrientationWithoutPermutation" /* OrientationWithoutPermutation */);
|
|
437
|
+
puzzleStickering.set(m.and(m.moves(["D", "M"])), "Regular" /* Regular */);
|
|
438
438
|
break;
|
|
439
439
|
case "EOcross":
|
|
440
|
-
puzzleStickering.set(EDGES(),
|
|
441
|
-
puzzleStickering.set(m.move("D"),
|
|
442
|
-
puzzleStickering.set(CORNERS(),
|
|
440
|
+
puzzleStickering.set(EDGES(), "OrientationWithoutPermutation" /* OrientationWithoutPermutation */);
|
|
441
|
+
puzzleStickering.set(m.move("D"), "Regular" /* Regular */);
|
|
442
|
+
puzzleStickering.set(CORNERS(), "Ignored" /* Ignored */);
|
|
443
443
|
break;
|
|
444
444
|
case "CMLL":
|
|
445
|
-
puzzleStickering.set(F2L(),
|
|
446
|
-
puzzleStickering.set(L6E(),
|
|
447
|
-
puzzleStickering.set(m.and([LL(), CORNERS()]),
|
|
445
|
+
puzzleStickering.set(F2L(), "Dim" /* Dim */);
|
|
446
|
+
puzzleStickering.set(L6E(), "Ignored" /* Ignored */);
|
|
447
|
+
puzzleStickering.set(m.and([LL(), CORNERS()]), "Regular" /* Regular */);
|
|
448
448
|
break;
|
|
449
449
|
case "L6E":
|
|
450
|
-
puzzleStickering.set(m.not(L6E()),
|
|
450
|
+
puzzleStickering.set(m.not(L6E()), "Dim" /* Dim */);
|
|
451
451
|
break;
|
|
452
452
|
case "L6EO":
|
|
453
|
-
puzzleStickering.set(m.not(L6E()),
|
|
454
|
-
puzzleStickering.set(L6E(),
|
|
455
|
-
puzzleStickering.set(m.and([CENTERS(), orUD()]),
|
|
453
|
+
puzzleStickering.set(m.not(L6E()), "Dim" /* Dim */);
|
|
454
|
+
puzzleStickering.set(L6E(), "OrientationWithoutPermutation" /* OrientationWithoutPermutation */);
|
|
455
|
+
puzzleStickering.set(m.and([CENTERS(), orUD()]), "OrientationStickers" /* OrientationStickers */);
|
|
456
456
|
break;
|
|
457
457
|
case "Daisy":
|
|
458
|
-
puzzleStickering.set(m.all(),
|
|
459
|
-
puzzleStickering.set(CENTERS(),
|
|
460
|
-
puzzleStickering.set(m.and([m.move("D"), CENTERS()]),
|
|
461
|
-
puzzleStickering.set(m.and([m.move("U"), EDGES()]),
|
|
458
|
+
puzzleStickering.set(m.all(), "Ignored" /* Ignored */);
|
|
459
|
+
puzzleStickering.set(CENTERS(), "Dim" /* Dim */);
|
|
460
|
+
puzzleStickering.set(m.and([m.move("D"), CENTERS()]), "Regular" /* Regular */);
|
|
461
|
+
puzzleStickering.set(m.and([m.move("U"), EDGES()]), "IgnoreNonPrimary" /* IgnoreNonPrimary */);
|
|
462
462
|
break;
|
|
463
463
|
case "Cross":
|
|
464
|
-
puzzleStickering.set(m.all(),
|
|
465
|
-
puzzleStickering.set(CENTERS(),
|
|
466
|
-
puzzleStickering.set(m.and([m.move("D"), CENTERS()]),
|
|
467
|
-
puzzleStickering.set(m.and([m.move("D"), EDGES()]),
|
|
464
|
+
puzzleStickering.set(m.all(), "Ignored" /* Ignored */);
|
|
465
|
+
puzzleStickering.set(CENTERS(), "Dim" /* Dim */);
|
|
466
|
+
puzzleStickering.set(m.and([m.move("D"), CENTERS()]), "Regular" /* Regular */);
|
|
467
|
+
puzzleStickering.set(m.and([m.move("D"), EDGES()]), "Regular" /* Regular */);
|
|
468
468
|
break;
|
|
469
469
|
case "2x2x2":
|
|
470
|
-
puzzleStickering.set(m.or(m.moves(["U", "F", "R"])),
|
|
471
|
-
puzzleStickering.set(m.and([m.or(m.moves(["U", "F", "R"])), CENTERS()]),
|
|
470
|
+
puzzleStickering.set(m.or(m.moves(["U", "F", "R"])), "Ignored" /* Ignored */);
|
|
471
|
+
puzzleStickering.set(m.and([m.or(m.moves(["U", "F", "R"])), CENTERS()]), "Dim" /* Dim */);
|
|
472
472
|
break;
|
|
473
473
|
case "2x2x3":
|
|
474
|
-
puzzleStickering.set(m.all(),
|
|
475
|
-
puzzleStickering.set(m.or(m.moves(["U", "F", "R"])),
|
|
476
|
-
puzzleStickering.set(m.and([m.or(m.moves(["U", "F", "R"])), CENTERS()]),
|
|
477
|
-
puzzleStickering.set(m.and([m.move("F"), m.not(m.or(m.moves(["U", "R"])))]),
|
|
474
|
+
puzzleStickering.set(m.all(), "Dim" /* Dim */);
|
|
475
|
+
puzzleStickering.set(m.or(m.moves(["U", "F", "R"])), "Ignored" /* Ignored */);
|
|
476
|
+
puzzleStickering.set(m.and([m.or(m.moves(["U", "F", "R"])), CENTERS()]), "Dim" /* Dim */);
|
|
477
|
+
puzzleStickering.set(m.and([m.move("F"), m.not(m.or(m.moves(["U", "R"])))]), "Regular" /* Regular */);
|
|
478
478
|
break;
|
|
479
479
|
case "Void Cube":
|
|
480
|
-
puzzleStickering.set(CENTERS(),
|
|
480
|
+
puzzleStickering.set(CENTERS(), "Invisible" /* Invisible */);
|
|
481
481
|
break;
|
|
482
482
|
case "picture":
|
|
483
483
|
case "invisible":
|
|
484
|
-
puzzleStickering.set(m.all(),
|
|
484
|
+
puzzleStickering.set(m.all(), "Invisible" /* Invisible */);
|
|
485
485
|
break;
|
|
486
486
|
case "centers-only":
|
|
487
|
-
puzzleStickering.set(m.not(CENTERS()),
|
|
487
|
+
puzzleStickering.set(m.not(CENTERS()), "Ignored" /* Ignored */);
|
|
488
488
|
break;
|
|
489
489
|
case "experimental-global-custom-1":
|
|
490
490
|
case "experimental-global-custom-2":
|
|
@@ -492,7 +492,7 @@ async function cubeAppearance(puzzleLoader, stickering) {
|
|
|
492
492
|
break;
|
|
493
493
|
default:
|
|
494
494
|
console.warn(`Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`);
|
|
495
|
-
puzzleStickering.set(m.and(m.moves([])),
|
|
495
|
+
puzzleStickering.set(m.and(m.moves([])), "Dim" /* Dim */);
|
|
496
496
|
}
|
|
497
497
|
return puzzleStickering.toAppearance();
|
|
498
498
|
}
|
|
@@ -596,9 +596,9 @@ var CubePGPuzzleLoader = class extends PGPuzzleLoader {
|
|
|
596
596
|
var cube2x2x2 = {
|
|
597
597
|
id: "2x2x2",
|
|
598
598
|
fullName: "2\xD72\xD72 Cube",
|
|
599
|
-
kpuzzle: getCached(async () => new KPuzzle((await import("./2x2x2.kpuzzle.json-
|
|
599
|
+
kpuzzle: getCached(async () => new KPuzzle((await import("./2x2x2.kpuzzle.json-BHTFIME6.js")).cube2x2x2KPuzzleDefinition)),
|
|
600
600
|
svg: async () => {
|
|
601
|
-
return (await import("./2x2x2.kpuzzle.svg-
|
|
601
|
+
return (await import("./2x2x2.kpuzzle.svg-CYX37VBY.js")).default;
|
|
602
602
|
},
|
|
603
603
|
pg: getCached(async () => {
|
|
604
604
|
return asyncGetPuzzleGeometry("2x2x2");
|
|
@@ -617,10 +617,10 @@ var cube3x3x3 = {
|
|
|
617
617
|
return experimental3x3x3KPuzzle;
|
|
618
618
|
}),
|
|
619
619
|
svg: getCached(async () => {
|
|
620
|
-
return (await import("./3x3x3.kpuzzle.svg-
|
|
620
|
+
return (await import("./3x3x3.kpuzzle.svg-5U7LUACF.js")).default;
|
|
621
621
|
}),
|
|
622
622
|
llSVG: getCached(async () => {
|
|
623
|
-
return (await import("./3x3x3-ll.kpuzzle.svg-
|
|
623
|
+
return (await import("./3x3x3-ll.kpuzzle.svg-KZNSV76X.js")).default;
|
|
624
624
|
}),
|
|
625
625
|
pg: getCached(async () => {
|
|
626
626
|
return asyncGetPuzzleGeometry("3x3x3");
|
|
@@ -635,9 +635,9 @@ var clock = {
|
|
|
635
635
|
fullName: "Clock",
|
|
636
636
|
inventedBy: ["Christopher C. Wiggs", "Christopher J. Taylor"],
|
|
637
637
|
inventionYear: 1988,
|
|
638
|
-
kpuzzle: getCached(async () => new KPuzzle((await import("./clock.kpuzzle.json-
|
|
638
|
+
kpuzzle: getCached(async () => new KPuzzle((await import("./clock.kpuzzle.json-PYHONPBY.js")).clockKPuzzleDefinition)),
|
|
639
639
|
svg: getCached(async () => {
|
|
640
|
-
return (await import("./clock.kpuzzle.svg-
|
|
640
|
+
return (await import("./clock.kpuzzle.svg-JSRDCSQF.js")).default;
|
|
641
641
|
})
|
|
642
642
|
};
|
|
643
643
|
|
|
@@ -667,30 +667,30 @@ async function ftoStickering(puzzleLoader, stickering) {
|
|
|
667
667
|
case "full":
|
|
668
668
|
break;
|
|
669
669
|
case "experimental-fto-fc":
|
|
670
|
-
puzzleStickering.set(m.not(experimentalFTO_FC()),
|
|
670
|
+
puzzleStickering.set(m.not(experimentalFTO_FC()), "Ignored" /* Ignored */);
|
|
671
671
|
break;
|
|
672
672
|
case "experimental-fto-f2t":
|
|
673
|
-
puzzleStickering.set(m.not(experimentalFTO_F2T()),
|
|
674
|
-
puzzleStickering.set(experimentalFTO_FC(),
|
|
673
|
+
puzzleStickering.set(m.not(experimentalFTO_F2T()), "Ignored" /* Ignored */);
|
|
674
|
+
puzzleStickering.set(experimentalFTO_FC(), "Dim" /* Dim */);
|
|
675
675
|
break;
|
|
676
676
|
case "experimental-fto-sc":
|
|
677
|
-
puzzleStickering.set(m.not(experimentalFTO_SC()),
|
|
678
|
-
puzzleStickering.set(experimentalFTO_F2T(),
|
|
677
|
+
puzzleStickering.set(m.not(experimentalFTO_SC()), "Ignored" /* Ignored */);
|
|
678
|
+
puzzleStickering.set(experimentalFTO_F2T(), "Dim" /* Dim */);
|
|
679
679
|
break;
|
|
680
680
|
case "experimental-fto-l2c":
|
|
681
|
-
puzzleStickering.set(m.not(experimentalFTO_L2C()),
|
|
682
|
-
puzzleStickering.set(experimentalFTO_SC(),
|
|
681
|
+
puzzleStickering.set(m.not(experimentalFTO_L2C()), "Ignored" /* Ignored */);
|
|
682
|
+
puzzleStickering.set(experimentalFTO_SC(), "Dim" /* Dim */);
|
|
683
683
|
break;
|
|
684
684
|
case "experimental-fto-lbt":
|
|
685
|
-
puzzleStickering.set(m.not(experimentalFTO_LBT()),
|
|
686
|
-
puzzleStickering.set(experimentalFTO_L2C(),
|
|
685
|
+
puzzleStickering.set(m.not(experimentalFTO_LBT()), "Ignored" /* Ignored */);
|
|
686
|
+
puzzleStickering.set(experimentalFTO_L2C(), "Dim" /* Dim */);
|
|
687
687
|
break;
|
|
688
688
|
case "experimental-fto-l3t":
|
|
689
|
-
puzzleStickering.set(experimentalFTO_LBT(),
|
|
689
|
+
puzzleStickering.set(experimentalFTO_LBT(), "Dim" /* Dim */);
|
|
690
690
|
break;
|
|
691
691
|
default:
|
|
692
692
|
console.warn(`Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`);
|
|
693
|
-
puzzleStickering.set(m.and(m.moves([])),
|
|
693
|
+
puzzleStickering.set(m.and(m.moves([])), "Dim" /* Dim */);
|
|
694
694
|
}
|
|
695
695
|
return puzzleStickering.toAppearance();
|
|
696
696
|
}
|
|
@@ -717,6 +717,9 @@ var FTOPuzzleLoader = class extends PGPuzzleLoader {
|
|
|
717
717
|
inventionYear: 1983
|
|
718
718
|
});
|
|
719
719
|
this.stickerings = ftoStickerings;
|
|
720
|
+
this.svg = getCached(async () => {
|
|
721
|
+
return (await import("./fto.kpuzzle.svg-H2RJX6UR.js")).ftoSVG;
|
|
722
|
+
});
|
|
720
723
|
}
|
|
721
724
|
appearance(stickering) {
|
|
722
725
|
return ftoStickering(this, stickering);
|
|
@@ -765,7 +768,7 @@ var PyraminxPuzzleLoader = class extends PGPuzzleLoader {
|
|
|
765
768
|
inventedBy: ["Uwe Meffert"]
|
|
766
769
|
});
|
|
767
770
|
this.svg = getCached(async () => {
|
|
768
|
-
return (await import("./pyraminx.kpuzzle.svg-
|
|
771
|
+
return (await import("./pyraminx.kpuzzle.svg-UHDZCBET.js")).default;
|
|
769
772
|
});
|
|
770
773
|
}
|
|
771
774
|
};
|
|
@@ -777,9 +780,9 @@ var square1 = {
|
|
|
777
780
|
fullName: "Square-1",
|
|
778
781
|
inventedBy: ["Karel Hr\u0161el", "Vojtech Kopsk\xFD"],
|
|
779
782
|
inventionYear: 1990,
|
|
780
|
-
kpuzzle: getCached(async () => new KPuzzle((await import("./sq1-hyperorbit.kpuzzle.json-
|
|
783
|
+
kpuzzle: getCached(async () => new KPuzzle((await import("./sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js")).sq1HyperOrbitKPuzzleDefinition)),
|
|
781
784
|
svg: getCached(async () => {
|
|
782
|
-
return (await import("./sq1-hyperorbit.kpuzzle.svg-
|
|
785
|
+
return (await import("./sq1-hyperorbit.kpuzzle.svg-MNHJTJ6V.js")).default;
|
|
783
786
|
})
|
|
784
787
|
};
|
|
785
788
|
|
|
@@ -817,7 +820,7 @@ var kilominx = {
|
|
|
817
820
|
return kpuzzle;
|
|
818
821
|
}),
|
|
819
822
|
svg: getCached(async () => {
|
|
820
|
-
return (await import("./kilominx.kpuzzle.svg-
|
|
823
|
+
return (await import("./kilominx.kpuzzle.svg-ZLRTRUTM.js")).kilominxSVG;
|
|
821
824
|
})
|
|
822
825
|
};
|
|
823
826
|
|
|
@@ -827,9 +830,9 @@ var rediCube = {
|
|
|
827
830
|
fullName: "Redi Cube",
|
|
828
831
|
inventedBy: ["Oskar van Deventer"],
|
|
829
832
|
inventionYear: 2009,
|
|
830
|
-
kpuzzle: getCached(async () => new KPuzzle((await import("./redi_cube.kpuzzle.json-
|
|
833
|
+
kpuzzle: getCached(async () => new KPuzzle((await import("./redi_cube.kpuzzle.json-43CP47Z6.js")).rediCubeKPuzzleDefinition)),
|
|
831
834
|
svg: async () => {
|
|
832
|
-
return (await import("./redi_cube.kpuzzle.svg-
|
|
835
|
+
return (await import("./redi_cube.kpuzzle.svg-3DWDYE3O.js")).rediCubeSVG;
|
|
833
836
|
}
|
|
834
837
|
};
|
|
835
838
|
|
|
@@ -882,4 +885,4 @@ export {
|
|
|
882
885
|
cube3x3x3,
|
|
883
886
|
puzzles
|
|
884
887
|
};
|
|
885
|
-
//# sourceMappingURL=chunk-
|
|
888
|
+
//# sourceMappingURL=chunk-QKEGKHT5.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/cubing/puzzles/customPGPuzzleLoader.ts", "../../src/cubing/puzzles/events.ts", "../../src/cubing/puzzles/stickerings/appearance.ts", "../../src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts", "../../src/cubing/puzzles/stickerings/cube-stickerings.ts", "../../src/cubing/puzzles/async/lazy-cached.ts", "../../src/cubing/puzzles/async/async-pg3d.ts", "../../src/cubing/puzzles/implementations/2x2x2/index.ts", "../../src/cubing/puzzles/implementations/3x3x3/index.ts", "../../src/cubing/puzzles/implementations/clock/index.ts", "../../src/cubing/puzzles/stickerings/fto-stickerings.ts", "../../src/cubing/puzzles/implementations/fto/index.ts", "../../src/cubing/puzzles/stickerings/megaminx-stickerings.ts", "../../src/cubing/puzzles/implementations/megaminx/index.ts", "../../src/cubing/puzzles/implementations/pyraminx/index.ts", "../../src/cubing/puzzles/implementations/square1/index.ts", "../../src/cubing/puzzles/implementations/kilominx/index.ts", "../../src/cubing/puzzles/implementations/redi-cube/index.ts", "../../src/cubing/puzzles/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { KPuzzle, KPuzzleDefinition } from \"../kpuzzle\";\nimport type { PuzzleGeometry } from \"../puzzle-geometry\";\nimport type { PuzzleDescriptionString } from \"../puzzle-geometry/PGPuzzles\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function descAsyncGetPuzzleGeometry(\n desc: PuzzleDescriptionString,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByDesc(desc, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: dedup with `cubing/puzzles`\nexport async function asyncGetKPuzzle(\n desc: PuzzleDescriptionString,\n): Promise<KPuzzle> {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n const kpuzzleDefinition: KPuzzleDefinition = pg.getKPuzzleDefinition(true);\n kpuzzleDefinition.name = `description: ${desc}`;\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n const pgNotation = new puzzleGeometry.ExperimentalPGNotation(\n pg,\n pg.getOrbitsDef(true),\n );\n return new KPuzzle(kpuzzleDefinition, {\n experimentalPGNotation: pgNotation,\n });\n}\n\n// TODO: Can we avoid relying on IDs to deduplicate work at higher levels?\nlet nextCustomID = 1;\n\nexport function customPGPuzzleLoader(\n desc: PuzzleDescriptionString,\n info?: {\n fullName?: string;\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const customID = nextCustomID++;\n let cachedKPuzzle: Promise<KPuzzle> | null = null;\n const puzzleLoader: PuzzleLoader = {\n id: `custom-${customID}`,\n fullName: info?.fullName ?? `Custom Puzzle (instance #${customID})`,\n kpuzzle: async () => {\n return (cachedKPuzzle ??= asyncGetKPuzzle(desc));\n },\n svg: async () => {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n return pg.generatesvg();\n },\n pg: async () => {\n return descAsyncGetPuzzleGeometry(desc);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n", "import type { PuzzleID } from \"../twisty\";\n\ninterface EventInfo {\n puzzleID: PuzzleID;\n eventName: string;\n}\n\nconst wcaEvents: Record<string, EventInfo> = {\n \"333\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Cube\" },\n \"222\": { puzzleID: \"2x2x2\", eventName: \"2x2x2 Cube\" },\n \"444\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Cube\" },\n \"555\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Cube\" },\n \"666\": { puzzleID: \"6x6x6\", eventName: \"6x6x6 Cube\" },\n \"777\": { puzzleID: \"7x7x7\", eventName: \"7x7x7 Cube\" },\n \"333bf\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Blindfolded\" },\n \"333fm\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Fewest Moves\" },\n \"333oh\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 One-Handed\" },\n \"clock\": { puzzleID: \"clock\", eventName: \"Clock\" },\n \"minx\": { puzzleID: \"megaminx\", eventName: \"Megaminx\" },\n \"pyram\": { puzzleID: \"pyraminx\", eventName: \"Pyraminx\" },\n \"skewb\": { puzzleID: \"skewb\", eventName: \"Skewb\" },\n \"sq1\": { puzzleID: \"square1\", eventName: \"Square-1\" },\n \"444bf\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Blindfolded\" },\n \"555bf\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Blindfolded\" },\n \"333mb\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Multi-Blind\" },\n};\n\nexport function wcaEventInfo(event: string): EventInfo | null {\n return wcaEvents[event] ?? null;\n}\n\nconst events: Record<string, EventInfo> = {\n ...wcaEvents,\n fto: { puzzleID: \"fto\", eventName: \"Face-Turning Octahedron\" },\n master_tetraminx: {\n puzzleID: \"master_tetraminx\",\n eventName: \"Master Tetraminx\",\n },\n kilominx: {\n puzzleID: \"kilominx\",\n eventName: \"Kilominx\",\n },\n redi_cube: {\n puzzleID: \"redi_cube\",\n eventName: \"Redi Cube\",\n },\n};\n\nexport function eventInfo(event: string): EventInfo | null {\n return events[event] ?? null;\n}\n", "// TODO: figure out where to house this permanently.\n\nimport type { Move } from \"../../alg\";\nimport type { KPuzzle } from \"../../kpuzzle\";\n\nexport type FaceletMeshAppearance =\n | \"regular\"\n | \"dim\"\n | \"oriented\"\n | \"ignored\"\n | \"invisible\";\n\nexport type FaceletAppearance = {\n appearance: FaceletMeshAppearance;\n hintAppearance?: FaceletMeshAppearance;\n};\n\nexport type PieceAppearance = {\n // TODO: foundation?\n facelets: (FaceletMeshAppearance | FaceletAppearance | null)[];\n};\n\nexport type OrbitAppearance = {\n pieces: (PieceAppearance | null)[];\n};\n\nexport type PuzzleAppearance = {\n name?: string; // TODO\n orbits: Record<string, OrbitAppearance>;\n};\n\nexport function getFaceletAppearance(\n appearance: PuzzleAppearance,\n orbitName: string,\n pieceIdx: number,\n faceletIdx: number,\n hint: boolean,\n): FaceletMeshAppearance {\n const orbitAppearance = appearance.orbits[orbitName];\n const pieceAppearance: PieceAppearance | null =\n orbitAppearance.pieces[pieceIdx];\n if (pieceAppearance === null) {\n return regular;\n }\n const faceletAppearance: FaceletMeshAppearance | FaceletAppearance | null =\n pieceAppearance.facelets[faceletIdx];\n if (faceletAppearance === null) {\n return regular;\n }\n if (typeof faceletAppearance === \"string\") {\n return faceletAppearance;\n }\n if (hint) {\n return faceletAppearance.hintAppearance ?? faceletAppearance.appearance;\n }\n return faceletAppearance.appearance;\n}\n\n// TODO: Revert this to a normal enum, or write a standard to codify the names?\nexport enum PieceStickering {\n Regular = \"Regular\",\n Dim = \"Dim\",\n Ignored = \"Ignored\",\n OrientationStickers = \"OrientationStickers\",\n Invisible = \"Invisible\",\n Ignoriented = \"Ignoriented\",\n IgnoreNonPrimary = \"IgnoreNonPrimary\",\n PermuteNonPrimary = \"PermuteNonPrimary\",\n OrientationWithoutPermutation = \"OrientationWithoutPermutation\",\n}\n\nexport class PieceAnnotation<T> {\n stickerings: Map<string, T[]> = new Map();\n constructor(kpuzzle: KPuzzle, defaultValue: T) {\n for (const [orbitName, orbitDef] of Object.entries(\n kpuzzle.definition.orbits,\n )) {\n this.stickerings.set(\n orbitName,\n new Array(orbitDef.numPieces).fill(defaultValue),\n );\n }\n }\n}\n\nconst regular = \"regular\";\nconst ignored = \"ignored\";\nconst oriented = \"oriented\";\nconst invisible = \"invisible\";\nconst dim = \"dim\";\n\n// regular\nconst r: PieceAppearance = {\n facelets: [regular, regular, regular, regular, regular],\n};\n\n// ignored\nconst i: PieceAppearance = {\n facelets: [ignored, ignored, ignored, ignored, ignored],\n};\n\n// oriented stickers\nconst o: PieceAppearance = {\n facelets: [oriented, oriented, oriented, oriented, oriented],\n};\n\n// invisible\nconst invisiblePiece: PieceAppearance = {\n facelets: [invisible, invisible, invisible, invisible], // TODO: 4th entry is for void cube. Should be handled properly for all stickerings.\n};\n\n// \"OLL\"\nconst riiii: PieceAppearance = {\n facelets: [regular, ignored, ignored, ignored, ignored],\n};\n\n// \"PLL\"\nconst drrrr: PieceAppearance = {\n facelets: [dim, regular, regular, regular, regular],\n};\n\n// ignored\nconst d: PieceAppearance = {\n facelets: [dim, dim, dim, dim, dim],\n};\n\n// \"OLL\"\nconst diiii: PieceAppearance = {\n facelets: [dim, ignored, ignored, ignored, ignored],\n};\n\n// oriented\nconst oiiii: PieceAppearance = {\n facelets: [oriented, ignored, ignored, ignored, ignored],\n};\n\nexport function getPieceAppearance(\n pieceStickering: PieceStickering,\n): PieceAppearance {\n switch (pieceStickering) {\n case PieceStickering.Regular:\n return r;\n case PieceStickering.Dim:\n return d;\n case PieceStickering.Ignored:\n return i;\n case PieceStickering.OrientationStickers: // TODO: Hack for centers. This shouldn't be needed.\n return o;\n case PieceStickering.Invisible: // TODO: Hack for centers. This shouldn't be needed.\n return invisiblePiece;\n case PieceStickering.IgnoreNonPrimary:\n return riiii;\n case PieceStickering.PermuteNonPrimary:\n return drrrr;\n case PieceStickering.Ignoriented:\n return diiii;\n case PieceStickering.OrientationWithoutPermutation:\n return oiiii;\n }\n}\n\nexport class PuzzleStickering extends PieceAnnotation<PieceStickering> {\n constructor(kpuzzle: KPuzzle) {\n super(kpuzzle, PieceStickering.Regular);\n }\n\n set(pieceSet: PieceSet, pieceStickering: PieceStickering): PuzzleStickering {\n for (const [orbitName, pieces] of this.stickerings.entries()) {\n for (let i = 0; i < pieces.length; i++) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n pieces[i] = pieceStickering;\n }\n }\n }\n return this;\n }\n\n toAppearance(): PuzzleAppearance {\n const appearance: PuzzleAppearance = { orbits: {} };\n for (const [orbitName, pieceStickerings] of this.stickerings.entries()) {\n const pieces: PieceAppearance[] = [];\n const orbitAppearance: OrbitAppearance = {\n pieces,\n };\n appearance.orbits[orbitName] = orbitAppearance;\n for (const pieceStickering of pieceStickerings) {\n pieces.push(getPieceAppearance(pieceStickering));\n }\n }\n return appearance;\n }\n}\n\nexport type PieceSet = PieceAnnotation<boolean>;\n\nexport class StickeringManager {\n constructor(private kpuzzle: KPuzzle) {}\n\n and(pieceSets: PieceSet[]): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n for (const pieceSet of pieceSets) {\n if (!pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n or(pieceSets: PieceSet[]): PieceSet {\n // TODO: unify impl with and?\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n for (const pieceSet of pieceSets) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n not(pieceSet: PieceSet): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] =\n !pieceSet.stickerings.get(orbitName)![i];\n }\n }\n return newPieceSet;\n }\n\n all(): PieceSet {\n return this.and(this.moves([])); // TODO: are the degenerate cases for and/or the wrong way around\n }\n\n move(moveSource: Move | string): PieceSet {\n const transformation = this.kpuzzle.moveToTransformation(moveSource);\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n if (\n transformation.transformationData[orbitName].permutation[i] !== i ||\n transformation.transformationData[orbitName].orientation[i] !== 0\n ) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n }\n }\n }\n return newPieceSet;\n }\n\n moves(moveSources: (Move | string)[]): PieceSet[] {\n return moveSources.map((moveSource) => this.move(moveSource));\n }\n\n // orbits(orbitNames: string[]): PieceSet {\n // const pieceSet = new PieceAnnotation<boolean>(this.def, false);\n // for (const orbitName of orbitNames) {\n // pieceSet.stickerings.get(orbitName)!.fill(true);\n // }\n // return pieceSet;\n // }\n\n // trueCounts(pieceSet: PieceSet): Record<string, number> {\n // const counts: Record<string, number> = {};\n // for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n // let count = 0;\n // for (let i = 0; i < orbitDef.numPieces; i++) {\n // if (pieceSet.stickerings.get(orbitName)![i]) {\n // count++;\n // }\n // }\n // counts[orbitName] = count;\n // }\n // return counts;\n // }\n}\n", "import type { TwistyPlayer } from \"../../twisty\";\nimport {\n PieceStickering,\n PuzzleStickering,\n StickeringManager,\n} from \"./appearance\";\n\ntype Stickerer = (\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n) => void;\n\nlet globalCustomStickerer: Stickerer = () => {};\n\nfunction setGlobalCustomStickerer(stickerer: Stickerer): void {\n (async () => {\n globalCustomStickerer = stickerer;\n\n const players: TwistyPlayer[] = Array.from(\n document.body.querySelectorAll(\"twisty-player\"),\n );\n console.log(`Setting the custom stickering for ${players.length} players!`);\n const successPromises = [];\n for (const player of players) {\n successPromises.push(\n (async () => {\n const stickering =\n await player.experimentalModel.twistySceneModel.stickering.get();\n player.experimentalStickering =\n stickering === \"experimental-global-custom-1\"\n ? \"experimental-global-custom-2\"\n : \"experimental-global-custom-1\";\n })(),\n );\n }\n await Promise.all(successPromises);\n console.log(\"Success!\");\n })();\n}\n\nexport function useGlobalCustomStickerer(\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n): void {\n globalCustomStickerer(puzzleStickering, m);\n}\n\nif (\n globalThis.location &&\n new URL(location.href).searchParams.get(\"global-custom-stickerer\") === \"true\"\n) {\n (window as any).setGlobalCustomStickerer = setGlobalCustomStickerer;\n (window as any).PieceStickering = PieceStickering;\n console.log(\n \"Global custom stickerer enabled! (using: global-custom-stickerer=true)\",\n );\n console.log(\n \"Look here for inspiration:\",\n \"https://github.com/cubing/cubing.js/blob/81b5cab3e27d8defb39dd1e0a10bc9e8ba894d26/src/cubing/puzzles/stickerings/cube-stickerings.ts#L67\",\n );\n}\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\nimport { useGlobalCustomStickerer } from \"./global-custom-stickering-hack\";\n\n// TODO: cache calculations?\nexport async function cubeAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const kpuzzle = await puzzleLoader.kpuzzle();\n const puzzleStickering = new PuzzleStickering(kpuzzle);\n const m = new StickeringManager(kpuzzle);\n\n const LL = (): PieceSet => m.move(\"U\");\n const orUD = (): PieceSet => m.or(m.moves([\"U\", \"D\"]));\n const E = (): PieceSet => m.not(orUD());\n const orLR = (): PieceSet => m.or(m.moves([\"L\", \"R\"]));\n const M = (): PieceSet => m.not(orLR());\n const orFB = (): PieceSet => m.or(m.moves([\"F\", \"B\"]));\n const S = (): PieceSet => m.not(orFB());\n\n const F2L = (): PieceSet => m.not(LL());\n\n const centerU = (): PieceSet => m.and([LL(), M(), S()]);\n\n const edgeFR = (): PieceSet =>\n m.and([m.and(m.moves([\"F\", \"R\"])), m.not(orUD())]);\n const cornerDFR = (): PieceSet => m.and(m.moves([\"D\", \"R\", \"F\"]));\n const slotFR = (): PieceSet => m.or([cornerDFR(), edgeFR()]);\n\n const CENTERS = (): PieceSet =>\n m.or([m.and([M(), E()]), m.and([M(), S()]), m.and([E(), S()])]);\n const EDGES = (): PieceSet =>\n m.or([\n m.and([M(), orUD(), orFB()]),\n m.and([E(), orLR(), orFB()]),\n m.and([S(), orUD(), orLR()]),\n ]);\n const CORNERS = (): PieceSet => m.not(m.or([CENTERS(), EDGES()]));\n const L6E = (): PieceSet => m.or([M(), m.and([LL(), EDGES()])]);\n\n function dimF2L(): void {\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n }\n\n function setPLL(): void {\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n function setOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.IgnoreNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Regular); // TODO: why is this needed?\n }\n\n function dimOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n switch (stickering) {\n case \"full\":\n break;\n case \"PLL\":\n dimF2L();\n setPLL();\n break;\n case \"CLS\":\n dimF2L();\n puzzleStickering.set(\n m.and(m.moves([\"D\", \"R\", \"F\"])),\n PieceStickering.Regular,\n );\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(m.and([LL(), M(), S()]), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"OLL\":\n dimF2L();\n setOLL();\n break;\n case \"COLL\":\n dimF2L();\n setPLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"OCLL\":\n dimF2L();\n dimOLL();\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"CLL\":\n dimF2L();\n puzzleStickering.set(\n m.not(m.and([CORNERS(), LL()])),\n PieceStickering.Dim,\n );\n break;\n case \"ELL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.Dim);\n puzzleStickering.set(m.and([LL(), EDGES()]), PieceStickering.Regular);\n break;\n case \"ELS\":\n dimF2L();\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n puzzleStickering.set(edgeFR(), PieceStickering.Regular);\n puzzleStickering.set(cornerDFR(), PieceStickering.Ignored);\n break;\n case \"LL\":\n dimF2L();\n break;\n case \"F2L\":\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n break;\n case \"ZBLL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // why is this needed?\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"ZBLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n break;\n case \"WVLS\":\n // fallthrough\n case \"VLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n break;\n case \"LS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n puzzleStickering.set(centerU(), PieceStickering.Dim);\n break;\n case \"EO\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n break;\n case \"EOline\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(m.and(m.moves([\"D\", \"M\"])), PieceStickering.Regular);\n break;\n case \"EOcross\":\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(m.move(\"D\"), PieceStickering.Regular);\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n break;\n case \"CMLL\":\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n puzzleStickering.set(L6E(), PieceStickering.Ignored);\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"L6E\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n break;\n case \"L6EO\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n puzzleStickering.set(\n L6E(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(\n m.and([CENTERS(), orUD()]),\n PieceStickering.OrientationStickers,\n ); // TODO: why is this needed?\n break;\n case \"Daisy\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"U\"), EDGES()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"Cross\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"D\"), EDGES()]),\n PieceStickering.Regular,\n );\n break;\n case \"2x2x2\":\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n break;\n case \"2x2x3\":\n puzzleStickering.set(m.all(), PieceStickering.Dim);\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n puzzleStickering.set(\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"R\"])))]),\n PieceStickering.Regular,\n );\n break;\n case \"Void Cube\":\n puzzleStickering.set(CENTERS(), PieceStickering.Invisible);\n break;\n case \"picture\":\n // fallthrough\n case \"invisible\":\n puzzleStickering.set(m.all(), PieceStickering.Invisible);\n break;\n case \"centers-only\":\n puzzleStickering.set(m.not(CENTERS()), PieceStickering.Ignored);\n break;\n case \"experimental-global-custom-1\":\n // fallthrough\n case \"experimental-global-custom-2\":\n useGlobalCustomStickerer(puzzleStickering, m);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function cubeStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"PLL\",\n \"CLS\",\n \"OLL\",\n \"COLL\",\n \"OCLL\",\n \"ELL\",\n \"ELS\",\n \"LL\",\n \"F2L\",\n \"ZBLL\",\n \"ZBLS\",\n \"WVLS\",\n \"VLS\",\n \"LS\",\n \"EO\",\n \"EOline\",\n \"EOcross\",\n \"CMLL\",\n \"L6E\",\n \"L6EO\",\n \"Daisy\",\n \"Cross\",\n \"2x2x2\",\n \"2x2x3\",\n \"Void Cube\",\n \"picture\",\n \"invisible\",\n \"centers-only\",\n ];\n}\n", "export function getCached<T>(getValue: () => Promise<T>): () => Promise<T> {\n let cachedPromise: Promise<T> | null = null;\n return (): Promise<T> => {\n return (cachedPromise ??= getValue());\n };\n}\n", "import { KPuzzle, KPuzzleDefinition } from \"../../kpuzzle\";\nimport type { PuzzleGeometry } from \"../../puzzle-geometry\";\nimport type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../stickerings/cube-stickerings\";\nimport { getCached } from \"./lazy-cached\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function asyncGetPuzzleGeometry(\n puzzleName: string,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByName(puzzleName, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function asyncGetKPuzzle(\n pgPromise: Promise<PuzzleGeometry>,\n puzzleName: string,\n): Promise<KPuzzle> {\n const pg = await pgPromise;\n const kpuzzleDefinition: KPuzzleDefinition = pg.getKPuzzleDefinition(true);\n kpuzzleDefinition.name = puzzleName;\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n const pgNotation = new puzzleGeometry.ExperimentalPGNotation(\n pg,\n pg.getOrbitsDef(true),\n );\n return new KPuzzle(kpuzzleDefinition, {\n experimentalPGNotation: pgNotation,\n });\n}\n\nexport function asyncLazyKPuzzleGetter(\n pgPromise: Promise<PuzzleGeometry>,\n puzzleName: string,\n): () => Promise<KPuzzle> {\n return getCached(() => asyncGetKPuzzle(pgPromise, puzzleName));\n}\n\ntype PuzzleLoaderConstructorArgs = {\n pgID?: string;\n id: string;\n fullName: string;\n inventedBy?: string[];\n inventionYear?: number;\n};\n\nexport class PGPuzzleLoader implements PuzzleLoader {\n pgId?: string;\n id: string;\n fullName: string;\n inventedBy?: string[];\n inventionYear?: number;\n constructor(info: PuzzleLoaderConstructorArgs) {\n this.pgId = info.pgID;\n this.id = info.id;\n this.fullName = info.fullName;\n this.inventedBy = info.inventedBy;\n this.inventionYear = info.inventionYear;\n }\n\n #cachedPG: Promise<PuzzleGeometry> | undefined;\n pg(): Promise<PuzzleGeometry> {\n return (this.#cachedPG ??= asyncGetPuzzleGeometry(this.pgId ?? this.id));\n }\n\n #cachedKPuzzle: Promise<KPuzzle> | undefined;\n kpuzzle(): Promise<KPuzzle> {\n return (this.#cachedKPuzzle ??= asyncGetKPuzzle(this.pg(), this.id));\n }\n\n #cachedSVG: Promise<string> | undefined;\n svg(): Promise<string> {\n return (this.#cachedSVG ??= (async () =>\n (await this.pg()).generatesvg())());\n }\n}\n\nexport class CubePGPuzzleLoader extends PGPuzzleLoader {\n appearance(stickering: ExperimentalStickering): Promise<PuzzleAppearance> {\n return cubeAppearance(this, stickering);\n }\n stickerings = cubeStickerings;\n}\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube2x2x2: PuzzleLoader = {\n id: \"2x2x2\",\n fullName: \"2\u00D72\u00D72 Cube\",\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"./2x2x2.kpuzzle.json\")).cube2x2x2KPuzzleDefinition,\n ),\n ),\n svg: async () => {\n return (await import(\"./2x2x2.kpuzzle.svg\")).default;\n },\n pg: getCached(async () => {\n return asyncGetPuzzleGeometry(\"2x2x2\");\n }),\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube2x2x2, stickering),\n stickerings: cubeStickerings,\n};\n", "// Include 3x3x3 in the main bundle for better performance.\nimport { experimental3x3x3KPuzzle } from \"../../../kpuzzle\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube3x3x3: PuzzleLoader = {\n id: \"3x3x3\",\n fullName: \"3\u00D73\u00D73 Cube\",\n inventedBy: [\"Ern\u0151 Rubik\"],\n inventionYear: 1974, // https://en.wikipedia.org/wiki/Rubik%27s_Cube#Conception_and_development\n kpuzzle: getCached(async () => {\n return experimental3x3x3KPuzzle;\n }),\n svg: getCached(async () => {\n return (await import(\"./3x3x3.kpuzzle.svg\")).default;\n }),\n llSVG: getCached(async () => {\n return (await import(\"./3x3x3-ll.kpuzzle.svg\")).default;\n }),\n pg: getCached(async () => {\n return asyncGetPuzzleGeometry(\"3x3x3\");\n }),\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube3x3x3, stickering),\n stickerings: cubeStickerings,\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const clock: PuzzleLoader = {\n id: \"clock\",\n fullName: \"Clock\",\n inventedBy: [\"Christopher C. Wiggs\", \"Christopher J. Taylor\"],\n inventionYear: 1988, // Patent application year: https://www.jaapsch.net/puzzles/patents/us4869506.pdf\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"./clock.kpuzzle.json\")).clockKPuzzleDefinition,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"./clock.kpuzzle.svg\")).default;\n }),\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\n\nexport async function ftoStickering(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const kpuzzle = await puzzleLoader.kpuzzle();\n const puzzleStickering = new PuzzleStickering(kpuzzle);\n const m = new StickeringManager(kpuzzle);\n\n const experimentalFTO_FC = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.or(m.moves([\"F\", \"BL\", \"BR\"])))]);\n const experimentalFTO_F2T = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.move(\"F\"))]);\n const experimentalFTO_SC = (): PieceSet =>\n m.or([\n experimentalFTO_F2T(),\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"BL\", \"BR\"])))]),\n ]);\n const experimentalFTO_L2C = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"U\"), m.move(\"F\")]),\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n const experimentalFTO_LBT = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n\n switch (stickering) {\n case \"full\":\n break;\n case \"experimental-fto-fc\":\n puzzleStickering.set(\n m.not(experimentalFTO_FC()),\n PieceStickering.Ignored,\n );\n break;\n case \"experimental-fto-f2t\":\n puzzleStickering.set(\n m.not(experimentalFTO_F2T()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_FC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-sc\":\n puzzleStickering.set(\n m.not(experimentalFTO_SC()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_F2T(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l2c\":\n puzzleStickering.set(\n m.not(experimentalFTO_L2C()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_SC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-lbt\":\n puzzleStickering.set(\n m.not(experimentalFTO_LBT()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_L2C(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l3t\":\n puzzleStickering.set(experimentalFTO_LBT(), PieceStickering.Dim);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function ftoStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"experimental-fto-fc\",\n \"experimental-fto-f2t\",\n \"experimental-fto-sc\",\n \"experimental-fto-l2c\",\n \"experimental-fto-lbt\",\n \"experimental-fto-l3t\",\n ];\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n ftoStickering,\n ftoStickerings,\n} from \"../../stickerings/fto-stickerings\";\n\nclass FTOPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n pgID: \"FTO\",\n id: \"fto\",\n fullName: \"Face-Turning Octahedron\",\n inventedBy: [\"Karl Rohrbach\", \"David Pitcher\"], // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n inventionYear: 1983, // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n });\n }\n appearance(stickering: ExperimentalStickering): Promise<PuzzleAppearance> {\n return ftoStickering(this, stickering);\n }\n stickerings = ftoStickerings;\n svg = getCached(async () => {\n return (await import(\"./fto.kpuzzle.svg\")).ftoSVG;\n });\n}\n\nexport const fto = new FTOPuzzleLoader();\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"./appearance\";\nimport { cubeAppearance } from \"./cube-stickerings\";\n\n// TODO: cache calculations?\nexport async function megaminxAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n switch (stickering) {\n case \"full\":\n case \"F2L\":\n case \"LL\":\n return cubeAppearance(puzzleLoader, stickering);\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n }\n return cubeAppearance(puzzleLoader, \"full\");\n}\n\nexport async function megaminxStickerings(): Promise<ExperimentalStickering[]> {\n return [\"full\", \"F2L\", \"LL\"];\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n megaminxAppearance,\n megaminxStickerings,\n} from \"../../stickerings/megaminx-stickerings\";\n\nclass MegaminxPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n id: \"megaminx\",\n fullName: \"Megaminx\",\n // Too many simultaneous inventors to name.\n inventionYear: 1981, // Earliest date from https://www.jaapsch.net/puzzles/megaminx.htm\n });\n }\n appearance(stickering: ExperimentalStickering): Promise<PuzzleAppearance> {\n return megaminxAppearance(this, stickering);\n }\n stickerings = megaminxStickerings;\n}\n\nexport const megaminx = new MegaminxPuzzleLoader();\n", "import { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\n\nclass PyraminxPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n id: \"pyraminx\",\n fullName: \"Pyraminx\",\n inventedBy: [\"Uwe Meffert\"],\n });\n }\n svg = getCached(async () => {\n return (await import(\"./pyraminx.kpuzzle.svg\")).default;\n });\n}\n\nexport const pyraminx = new PyraminxPuzzleLoader();\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const square1: PuzzleLoader = {\n id: \"square1\",\n fullName: \"Square-1\",\n inventedBy: [\"Karel Hr\u0161el\", \"Vojtech Kopsk\u00FD\"],\n inventionYear: 1990, // Czech patent application year: http://spisy.upv.cz/Patents/FullDocuments/277/277266.pdf\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (\n await import(\"./sq1-hyperorbit.kpuzzle.json\")\n ).sq1HyperOrbitKPuzzleDefinition,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"./sq1-hyperorbit.kpuzzle.svg\")).default;\n }),\n};\n", "import type { PuzzleLoader } from \"../..\";\nimport type { Move } from \"../../../alg\";\nimport { KPuzzle, KTransformationData } from \"../../../kpuzzle\";\nimport type { ExperimentalPGNotation } from \"../../../puzzle-geometry\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\n\n// TODO: Make this consistent with Megaminx corners\nexport const kilominx: PuzzleLoader = {\n id: \"kilominx\",\n fullName: \"Kilominx\",\n kpuzzle: getCached(async () => {\n const pg = await asyncGetPuzzleGeometry(\"megaminx + chopasaurus\");\n const kpuzzleDefinition = JSON.parse(\n JSON.stringify(pg.getKPuzzleDefinition(true)),\n );\n delete kpuzzleDefinition.orbits.CENTERS;\n delete kpuzzleDefinition.orbits.CENTERS2;\n delete kpuzzleDefinition.startStateData.CENTERS;\n delete kpuzzleDefinition.startStateData.CENTERS2;\n for (const moveDefinition of Object.values(kpuzzleDefinition.moves)) {\n delete (moveDefinition as any).CENTERS;\n delete (moveDefinition as any).CENTERS2;\n }\n kpuzzleDefinition.name = \"kilominx\";\n delete kpuzzleDefinition.experimentalPuzzleDescription;\n const puzzleGeometry = await import(\"../../../puzzle-geometry\");\n const pgNotation = new puzzleGeometry.ExperimentalPGNotation(\n pg,\n pg.getOrbitsDef(true),\n );\n const kpuzzle = new KPuzzle(kpuzzleDefinition, {\n experimentalPGNotation: {\n lookupMove: (move: Move): KTransformationData | null => {\n if (move.toString() === \"x2\" || move.toString() === \"x2'\") {\n return x2Transformation.transformationData;\n }\n return pgNotation.lookupMove(move);\n },\n } as ExperimentalPGNotation,\n });\n const x2Transformation = kpuzzle.algToTransformation(\"Rv2 Fv Uv'\");\n kpuzzleDefinition.moves[\"x2\"] = x2Transformation;\n return kpuzzle;\n }),\n svg: getCached(async () => {\n return (await import(\"./kilominx.kpuzzle.svg\")).kilominxSVG;\n }),\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const rediCube: PuzzleLoader = {\n id: \"redi_cube\",\n fullName: \"Redi Cube\",\n // Announced 2009-07-21: https://www.youtube.com/watch?v=cjfMzA1u3vM\n // https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1520\n inventedBy: [\"Oskar van Deventer\"],\n inventionYear: 2009,\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"./redi_cube.kpuzzle.json\")).rediCubeKPuzzleDefinition,\n ),\n ),\n svg: async () => {\n return (await import(\"./redi_cube.kpuzzle.svg\")).rediCubeSVG;\n },\n};\n", "export { experimental3x3x3KPuzzle } from \"../kpuzzle\";\nexport { customPGPuzzleLoader as experimentalCustomPGPuzzleLoader } from \"./customPGPuzzleLoader\";\nexport { eventInfo, wcaEventInfo } from \"./events\";\nexport { getFaceletAppearance as experimentalGetFaceletAppearance } from \"./stickerings/appearance\";\nexport type {\n FaceletMeshAppearance as ExperimentalFaceletMeshAppearance,\n PuzzleAppearance as ExperimentalPuzzleAppearance,\n} from \"./stickerings/appearance\";\nexport { cubeAppearance as experimentalCubeAppearance } from \"./stickerings/cube-stickerings\";\nexport type { PuzzleLoader };\nexport { cube2x2x2, cube3x3x3 };\n\nimport { CubePGPuzzleLoader, PGPuzzleLoader } from \"./async/async-pg3d\";\nimport { cube2x2x2 } from \"./implementations/2x2x2\";\nimport { cube3x3x3 } from \"./implementations/3x3x3\";\nimport { clock } from \"./implementations/clock\";\nimport { fto } from \"./implementations/fto\";\nimport { megaminx } from \"./implementations/megaminx\";\nimport { pyraminx } from \"./implementations/pyraminx\";\nimport { square1 } from \"./implementations/square1\";\nimport { kilominx } from \"./implementations/kilominx\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\nimport { rediCube } from \"./implementations/redi-cube\";\n\nexport const puzzles: Record<string, PuzzleLoader> = {\n /******** Start of WCA Puzzles *******/\n \"3x3x3\": cube3x3x3,\n \"2x2x2\": cube2x2x2,\n \"4x4x4\": new CubePGPuzzleLoader({ id: \"4x4x4\", fullName: \"4\u00D74\u00D74 Cube\" }),\n \"5x5x5\": new CubePGPuzzleLoader({ id: \"5x5x5\", fullName: \"5\u00D75\u00D75 Cube\" }),\n \"6x6x6\": new CubePGPuzzleLoader({ id: \"6x6x6\", fullName: \"6\u00D76\u00D76 Cube\" }),\n \"7x7x7\": new CubePGPuzzleLoader({ id: \"7x7x7\", fullName: \"7\u00D77\u00D77 Cube\" }),\n \"40x40x40\": new CubePGPuzzleLoader({\n id: \"40x40x40\",\n fullName: \"40\u00D740\u00D740 Cube\",\n }),\n // 3x3x3 Blindfolded\n // 3x3x3 Fewest Moves\n // 3x3x3 One-Handed\n clock,\n \"megaminx\": megaminx,\n pyraminx,\n \"skewb\": new PGPuzzleLoader({\n id: \"skewb\",\n fullName: \"Skewb\",\n inventedBy: [\"Tony Durham\"], // https://www.jaapsch.net/puzzles/skewb.htm\n // inventionYear: 1982, // 1982 is actually the year of Hofstadter's column.\n }),\n square1,\n // 4x4x4 Blindfolded\n // 5x5x5 Blindfolded\n /******** End of WCA puzzles ********/\n \"fto\": fto,\n \"gigaminx\": new PGPuzzleLoader({\n id: \"gigaminx\",\n fullName: \"Gigaminx\",\n inventedBy: [\"Tyler Fox\"],\n inventionYear: 2006, // Earliest date from https://www.twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1475\n }),\n \"master_tetraminx\": new PGPuzzleLoader({\n pgID: \"master tetraminx\",\n id: \"master_tetraminx\",\n fullName: \"Master Tetraminx\",\n inventedBy: [\"Katsuhiko Okamoto\"], // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n inventionYear: 2002, // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n }),\n kilominx,\n \"redi_cube\": rediCube,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|