cubing 0.58.0 → 0.58.2
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/lib/cubing/{PuzzleLoader-B7Ly-OAs.d.ts → PuzzleLoader-BskBhUgu.d.ts} +11 -1
- package/dist/lib/cubing/alg/index.d.ts +2 -2
- package/dist/lib/cubing/alg/index.js +1 -1
- package/dist/lib/cubing/bluetooth/index.d.ts +3 -3
- package/dist/lib/cubing/bluetooth/index.js +7 -8
- package/dist/lib/cubing/bluetooth/index.js.map +2 -2
- package/dist/lib/cubing/{bluetooth-puzzle-nh-dCXPL.d.ts → bluetooth-puzzle-BIDZuWiS.d.ts} +1 -1
- package/dist/lib/cubing/chunks/{big-puzzle-orientation-SKZG73EB.js → big-puzzle-orientation-CQUVRARW.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-SWKNZGJF.js → chunk-3MMNI5O2.js} +7 -1
- package/dist/lib/cubing/chunks/chunk-3MMNI5O2.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-GKM2CK6T.js → chunk-7M7ZAS5G.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-7HQOMRBY.js → chunk-BDJ57WFX.js} +3 -3
- package/dist/lib/cubing/chunks/{chunk-7CZZRWBJ.js → chunk-C6NCOBGN.js} +3 -3
- package/dist/lib/cubing/chunks/{chunk-3YVVF3KK.js → chunk-CZGLT7LF.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-3U3UEVVD.js → chunk-DOOLIV56.js} +3 -3
- package/dist/lib/cubing/chunks/{chunk-666TWRT6.js → chunk-GTMMBSYI.js} +469 -69
- package/dist/lib/cubing/chunks/chunk-GTMMBSYI.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-F7UESNJD.js → chunk-KRRCGESD.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-H75BKRPQ.js → chunk-LLQHQ7KT.js} +5 -5
- package/dist/lib/cubing/chunks/{chunk-NJFJ3OMF.js → chunk-SR66SYE2.js} +2 -2
- package/dist/lib/cubing/chunks/chunk-SR66SYE2.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-2H2XY6KQ.js → chunk-XWYOASV3.js} +48 -298
- package/dist/lib/cubing/chunks/chunk-XWYOASV3.js.map +7 -0
- package/dist/lib/cubing/chunks/{inside-AYMLD6IQ.js → inside-Q4UKUE5C.js} +14 -14
- package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-T4N6YHT7.js → search-dynamic-sgs-side-events-KFGZMHFE.js} +6 -6
- package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-EQIJODP7.js → search-dynamic-sgs-unofficial-MWWB3OYG.js} +6 -6
- package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-NT5XKSLV.js → search-dynamic-solve-4x4x4-AOHNELZ2.js} +7 -7
- package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-NKAFVO65.js → search-dynamic-solve-fto-BHX3R6ZT.js} +2 -2
- package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-EDGE5SP4.js → search-dynamic-solve-kilominx-SAJCQILQ.js} +2 -2
- package/dist/lib/cubing/chunks/search-worker-entry.js +1 -1
- package/dist/lib/cubing/chunks/{twisty-dynamic-3d-FRZJG7S6.js → twisty-dynamic-3d-OY64TJYU.js} +7 -8
- package/dist/lib/cubing/chunks/{twisty-dynamic-3d-FRZJG7S6.js.map → twisty-dynamic-3d-OY64TJYU.js.map} +1 -1
- package/dist/lib/cubing/chunks/{twsearch-WDBATGZX.js → twsearch-T3W5T5WE.js} +4 -4
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-Q5AYUFKA-AHAAY6HU.js +10 -0
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-Q5AYUFKA-AHAAY6HU.js.map +7 -0
- package/dist/lib/cubing/{index-BOJwUPsI.d.ts → index-1uDGfzzz.d.ts} +1 -1
- package/dist/lib/cubing/kpuzzle/index.d.ts +1 -1
- package/dist/lib/cubing/kpuzzle/index.js +2 -2
- package/dist/lib/cubing/notation/index.d.ts +1 -1
- package/dist/lib/cubing/notation/index.js +4 -4
- package/dist/lib/cubing/protocol/index.d.ts +1 -1
- package/dist/lib/cubing/protocol/index.js +4 -4
- package/dist/lib/cubing/puzzle-geometry/index.d.ts +2 -2
- package/dist/lib/cubing/puzzle-geometry/index.js +1 -1
- package/dist/lib/cubing/puzzles/index.d.ts +2 -1
- package/dist/lib/cubing/puzzles/index.js +6 -5
- package/dist/lib/cubing/scramble/index.d.ts +2 -2
- package/dist/lib/cubing/scramble/index.js +6 -6
- package/dist/lib/cubing/search/index.d.ts +2 -2
- package/dist/lib/cubing/search/index.js +6 -6
- package/dist/lib/cubing/stream/index.d.ts +2 -2
- package/dist/lib/cubing/stream/index.js +1 -1
- package/dist/lib/cubing/twisty/index.d.ts +2 -2
- package/dist/lib/cubing/twisty/index.js +7 -7
- package/package.json +1 -1
- package/dist/lib/cubing/chunks/chunk-2H2XY6KQ.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-666TWRT6.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-NJFJ3OMF.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-SWKNZGJF.js.map +0 -7
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-WOVCK52S-RP4VI7OV.js +0 -10
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-WOVCK52S-RP4VI7OV.js.map +0 -7
- /package/dist/lib/cubing/chunks/{big-puzzle-orientation-SKZG73EB.js.map → big-puzzle-orientation-CQUVRARW.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-GKM2CK6T.js.map → chunk-7M7ZAS5G.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-7HQOMRBY.js.map → chunk-BDJ57WFX.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-7CZZRWBJ.js.map → chunk-C6NCOBGN.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-3YVVF3KK.js.map → chunk-CZGLT7LF.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-3U3UEVVD.js.map → chunk-DOOLIV56.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-F7UESNJD.js.map → chunk-KRRCGESD.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-H75BKRPQ.js.map → chunk-LLQHQ7KT.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{inside-AYMLD6IQ.js.map → inside-Q4UKUE5C.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-T4N6YHT7.js.map → search-dynamic-sgs-side-events-KFGZMHFE.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-EQIJODP7.js.map → search-dynamic-sgs-unofficial-MWWB3OYG.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-NT5XKSLV.js.map → search-dynamic-solve-4x4x4-AOHNELZ2.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-NKAFVO65.js.map → search-dynamic-solve-fto-BHX3R6ZT.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-EDGE5SP4.js.map → search-dynamic-solve-kilominx-SAJCQILQ.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{twsearch-WDBATGZX.js.map → twsearch-T3W5T5WE.js.map} +0 -0
|
@@ -6,22 +6,23 @@ import {
|
|
|
6
6
|
asyncGetKPuzzleByDesc,
|
|
7
7
|
asyncGetPuzzleGeometry,
|
|
8
8
|
bigCubePuzzleOrientation,
|
|
9
|
+
cube3x3x3,
|
|
10
|
+
cube3x3x3KeyMapping,
|
|
9
11
|
cubeLikeStickeringList,
|
|
10
12
|
cubeLikeStickeringMask,
|
|
13
|
+
cubeMirrorTransforms,
|
|
11
14
|
descAsyncGetPuzzleGeometry,
|
|
12
|
-
experimental3x3x3KPuzzle,
|
|
13
15
|
experimentalIs2x2x2Solved,
|
|
14
16
|
from,
|
|
15
17
|
getCached
|
|
16
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-GTMMBSYI.js";
|
|
17
19
|
import {
|
|
18
20
|
KPuzzle
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-CZGLT7LF.js";
|
|
20
22
|
import {
|
|
21
23
|
Move,
|
|
22
|
-
Pause
|
|
23
|
-
|
|
24
|
-
} from "./chunk-SWKNZGJF.js";
|
|
24
|
+
Pause
|
|
25
|
+
} from "./chunk-3MMNI5O2.js";
|
|
25
26
|
|
|
26
27
|
// src/cubing/puzzles/events.ts
|
|
27
28
|
var wcaEvents = {
|
|
@@ -170,296 +171,8 @@ var cube2x2x2 = {
|
|
|
170
171
|
return asyncGetPuzzleGeometry("2x2x2");
|
|
171
172
|
}),
|
|
172
173
|
stickeringMask: (stickering) => cubeLikeStickeringMask(cube2x2x2, stickering),
|
|
173
|
-
stickerings: () => cubeLikeStickeringList("2x2x2", { use3x3x3Fallbacks: true })
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
// src/cubing/puzzles/implementations/3x3x3/cube3x3x3KeyMapping.ts
|
|
177
|
-
var cube3x3x3KeyMapping = {
|
|
178
|
-
KeyI: new Move("R"),
|
|
179
|
-
KeyK: new Move("R'"),
|
|
180
|
-
KeyW: new Move("B"),
|
|
181
|
-
KeyO: new Move("B'"),
|
|
182
|
-
KeyS: new Move("D"),
|
|
183
|
-
KeyL: new Move("D'"),
|
|
184
|
-
KeyD: new Move("L"),
|
|
185
|
-
KeyE: new Move("L'"),
|
|
186
|
-
KeyJ: new Move("U"),
|
|
187
|
-
KeyF: new Move("U'"),
|
|
188
|
-
KeyH: new Move("F"),
|
|
189
|
-
KeyG: new Move("F'"),
|
|
190
|
-
KeyC: new Move("l"),
|
|
191
|
-
KeyR: new Move("l'"),
|
|
192
|
-
KeyU: new Move("r"),
|
|
193
|
-
KeyM: new Move("r'"),
|
|
194
|
-
KeyX: new Move("d"),
|
|
195
|
-
Comma: new Move("d'"),
|
|
196
|
-
KeyT: new Move("x"),
|
|
197
|
-
KeyY: new Move("x"),
|
|
198
|
-
KeyV: new Move("x'"),
|
|
199
|
-
KeyN: new Move("x'"),
|
|
200
|
-
Semicolon: new Move("y"),
|
|
201
|
-
KeyA: new Move("y'"),
|
|
202
|
-
KeyP: new Move("z"),
|
|
203
|
-
KeyQ: new Move("z'"),
|
|
204
|
-
KeyZ: new Move("M'"),
|
|
205
|
-
KeyB: new Move("M"),
|
|
206
|
-
Period: new Move("M'"),
|
|
207
|
-
Backquote: new Pause()
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
// src/cubing/puzzles/implementations/3x3x3/puzzle-specific-simplifications.ts
|
|
211
|
-
function makeSourceInfo(moveStrings, type, from2, to) {
|
|
212
|
-
const output = [];
|
|
213
|
-
for (const moveString of moveStrings) {
|
|
214
|
-
const move = Move.fromString(moveString);
|
|
215
|
-
const { family, amount: direction } = move;
|
|
216
|
-
if (![-1, 1].includes(direction)) {
|
|
217
|
-
throw new Error("Invalid config move");
|
|
218
|
-
}
|
|
219
|
-
output.push({ family, direction, type, from: from2, to });
|
|
220
|
-
}
|
|
221
|
-
return output;
|
|
222
|
-
}
|
|
223
|
-
var axisInfos = {
|
|
224
|
-
["x axis" /* X */]: {
|
|
225
|
-
sliceDiameter: 3,
|
|
226
|
-
extendsThroughEntirePuzzle: true,
|
|
227
|
-
moveSourceInfos: [
|
|
228
|
-
...makeSourceInfo(["R"], 0 /* INDEXABLE_SLICE_NEAR */, 0, 3),
|
|
229
|
-
...makeSourceInfo(["L'"], 1 /* INDEXABLE_SLICE_FAR */, 0, 3),
|
|
230
|
-
...makeSourceInfo(["r", "Rw"], 2 /* INDEXABLE_WIDE_NEAR */, 0, 2),
|
|
231
|
-
...makeSourceInfo(["l'", "Lw'"], 3 /* INDEXABLE_WIDE_FAR */, 0, 2),
|
|
232
|
-
...makeSourceInfo(["M'"], 4 /* SPECIFIC_SLICE */, 1, 2),
|
|
233
|
-
// TODO: remove some indices?
|
|
234
|
-
...makeSourceInfo(["x", "Uv", "Dv'"], 5 /* ROTATION */, 0, 3)
|
|
235
|
-
// TODO: remove some indices?
|
|
236
|
-
]
|
|
237
|
-
},
|
|
238
|
-
["y axis" /* Y */]: {
|
|
239
|
-
sliceDiameter: 3,
|
|
240
|
-
extendsThroughEntirePuzzle: true,
|
|
241
|
-
moveSourceInfos: [
|
|
242
|
-
...makeSourceInfo(["U"], 0 /* INDEXABLE_SLICE_NEAR */, 0, 3),
|
|
243
|
-
...makeSourceInfo(["D'"], 1 /* INDEXABLE_SLICE_FAR */, 0, 3),
|
|
244
|
-
...makeSourceInfo(["u", "Uw"], 2 /* INDEXABLE_WIDE_NEAR */, 0, 2),
|
|
245
|
-
...makeSourceInfo(["d'", "Dw'"], 3 /* INDEXABLE_WIDE_FAR */, 0, 2),
|
|
246
|
-
...makeSourceInfo(["E'"], 4 /* SPECIFIC_SLICE */, 1, 2),
|
|
247
|
-
// TODO: remove some indices?
|
|
248
|
-
...makeSourceInfo(["y", "Uv", "Dv'"], 5 /* ROTATION */, 0, 3)
|
|
249
|
-
// TODO: remove some indices?
|
|
250
|
-
]
|
|
251
|
-
},
|
|
252
|
-
["z axis" /* Z */]: {
|
|
253
|
-
sliceDiameter: 3,
|
|
254
|
-
extendsThroughEntirePuzzle: true,
|
|
255
|
-
moveSourceInfos: [
|
|
256
|
-
...makeSourceInfo(["F"], 0 /* INDEXABLE_SLICE_NEAR */, 0, 3),
|
|
257
|
-
...makeSourceInfo(["B'"], 1 /* INDEXABLE_SLICE_FAR */, 0, 3),
|
|
258
|
-
...makeSourceInfo(["f", "Fw"], 2 /* INDEXABLE_WIDE_NEAR */, 0, 3),
|
|
259
|
-
...makeSourceInfo(["b'", "Bw'"], 3 /* INDEXABLE_WIDE_FAR */, 0, 3),
|
|
260
|
-
...makeSourceInfo(["S"], 4 /* SPECIFIC_SLICE */, 1, 2),
|
|
261
|
-
// TODO: remove some indices?
|
|
262
|
-
...makeSourceInfo(["z", "Fv", "Bv'"], 5 /* ROTATION */, 0, 3)
|
|
263
|
-
// TODO: remove some indices?
|
|
264
|
-
]
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
var byFamily = {};
|
|
268
|
-
for (const [axis, info] of Object.entries(axisInfos)) {
|
|
269
|
-
for (const moveSourceInfo of info.moveSourceInfos) {
|
|
270
|
-
byFamily[moveSourceInfo.family] = { axis, moveSourceInfo };
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
var byAxisThenType = {};
|
|
274
|
-
for (const axis of Object.keys(axisInfos)) {
|
|
275
|
-
const entry = {};
|
|
276
|
-
byAxisThenType[axis] = entry;
|
|
277
|
-
for (const moveSourceInfo of axisInfos[axis].moveSourceInfos) {
|
|
278
|
-
(entry[moveSourceInfo.type] ??= []).push(moveSourceInfo);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
var byAxisThenSpecificSlices = {};
|
|
282
|
-
for (const axis of Object.keys(axisInfos)) {
|
|
283
|
-
const entry = /* @__PURE__ */ new Map();
|
|
284
|
-
byAxisThenSpecificSlices[axis] = entry;
|
|
285
|
-
for (const moveSourceInfo of axisInfos[axis].moveSourceInfos) {
|
|
286
|
-
if (!entry.get(moveSourceInfo.from)) {
|
|
287
|
-
entry.set(moveSourceInfo.from, moveSourceInfo);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
function firstOfType(axis, moveSourceType) {
|
|
292
|
-
const entry = byAxisThenType[axis][moveSourceType]?.[0];
|
|
293
|
-
if (!entry) {
|
|
294
|
-
throw new Error(
|
|
295
|
-
`Could not find a reference move (axis: ${axis}, move source type: ${moveSourceType})`
|
|
296
|
-
);
|
|
297
|
-
}
|
|
298
|
-
return entry;
|
|
299
|
-
}
|
|
300
|
-
var areQuantumMovesSameAxis = (quantumMove1, quantumMove2) => {
|
|
301
|
-
return byFamily[quantumMove1.family].axis === byFamily[quantumMove2.family].axis;
|
|
302
|
-
};
|
|
303
|
-
function simplestMove(axis, from2, to, directedAmount) {
|
|
304
|
-
if (from2 + 1 === to) {
|
|
305
|
-
const sliceSpecificInfo = byAxisThenSpecificSlices[axis].get(from2);
|
|
306
|
-
if (sliceSpecificInfo) {
|
|
307
|
-
return new Move(
|
|
308
|
-
new QuantumMove(sliceSpecificInfo.family),
|
|
309
|
-
directedAmount * sliceSpecificInfo.direction
|
|
310
|
-
);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
const axisInfo = axisInfos[axis];
|
|
314
|
-
const { sliceDiameter } = axisInfo;
|
|
315
|
-
if (from2 === 0 && to === sliceDiameter) {
|
|
316
|
-
const moveSourceInfo2 = firstOfType(axis, 5 /* ROTATION */);
|
|
317
|
-
return new Move(
|
|
318
|
-
new QuantumMove(moveSourceInfo2.family),
|
|
319
|
-
directedAmount * moveSourceInfo2.direction
|
|
320
|
-
);
|
|
321
|
-
}
|
|
322
|
-
const far = from2 + to > sliceDiameter;
|
|
323
|
-
if (far) {
|
|
324
|
-
[from2, to] = [sliceDiameter - to, sliceDiameter - from2];
|
|
325
|
-
}
|
|
326
|
-
let outerLayer = from2 + 1;
|
|
327
|
-
let innerLayer = to;
|
|
328
|
-
const slice = outerLayer === innerLayer;
|
|
329
|
-
if (slice) {
|
|
330
|
-
innerLayer = null;
|
|
331
|
-
}
|
|
332
|
-
if (outerLayer === 1) {
|
|
333
|
-
outerLayer = null;
|
|
334
|
-
}
|
|
335
|
-
if (slice && outerLayer === 1) {
|
|
336
|
-
innerLayer = null;
|
|
337
|
-
}
|
|
338
|
-
if (!slice && innerLayer === 2) {
|
|
339
|
-
innerLayer = null;
|
|
340
|
-
}
|
|
341
|
-
const moveSourceType = slice ? far ? 1 /* INDEXABLE_SLICE_FAR */ : 0 /* INDEXABLE_SLICE_NEAR */ : far ? 3 /* INDEXABLE_WIDE_FAR */ : 2 /* INDEXABLE_WIDE_NEAR */;
|
|
342
|
-
const moveSourceInfo = firstOfType(axis, moveSourceType);
|
|
343
|
-
return new Move(
|
|
344
|
-
new QuantumMove(moveSourceInfo.family, innerLayer, outerLayer),
|
|
345
|
-
directedAmount * moveSourceInfo.direction
|
|
346
|
-
);
|
|
347
|
-
}
|
|
348
|
-
function simplifySameAxisMoves(moves, quantumMod = true) {
|
|
349
|
-
if (moves.length === 0) {
|
|
350
|
-
return [];
|
|
351
|
-
}
|
|
352
|
-
const axis = byFamily[moves[0].family].axis;
|
|
353
|
-
const axisInfo = axisInfos[axis];
|
|
354
|
-
const { sliceDiameter } = axisInfo;
|
|
355
|
-
const sliceDeltas = /* @__PURE__ */ new Map();
|
|
356
|
-
let lastCandidateRange = null;
|
|
357
|
-
function adjustValue(idx, relativeDelta) {
|
|
358
|
-
let newDelta = (sliceDeltas.get(idx) ?? 0) + relativeDelta;
|
|
359
|
-
if (quantumMod) {
|
|
360
|
-
newDelta = newDelta % 4 + 5 % 4 - 1;
|
|
361
|
-
}
|
|
362
|
-
if (newDelta === 0) {
|
|
363
|
-
sliceDeltas.delete(idx);
|
|
364
|
-
} else {
|
|
365
|
-
sliceDeltas.set(idx, newDelta);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
let suffixLength = 0;
|
|
369
|
-
for (const move of Array.from(moves).reverse()) {
|
|
370
|
-
suffixLength++;
|
|
371
|
-
const { moveSourceInfo } = byFamily[move.family];
|
|
372
|
-
const directedAmount2 = move.amount * moveSourceInfo.direction;
|
|
373
|
-
switch (moveSourceInfo.type) {
|
|
374
|
-
case 0 /* INDEXABLE_SLICE_NEAR */: {
|
|
375
|
-
const idx = (move.innerLayer ?? 1) - 1;
|
|
376
|
-
adjustValue(idx, directedAmount2);
|
|
377
|
-
adjustValue(idx + 1, -directedAmount2);
|
|
378
|
-
break;
|
|
379
|
-
}
|
|
380
|
-
case 1 /* INDEXABLE_SLICE_FAR */: {
|
|
381
|
-
const idx = sliceDiameter - (move.innerLayer ?? 1);
|
|
382
|
-
adjustValue(idx, directedAmount2);
|
|
383
|
-
adjustValue(idx + 1, -directedAmount2);
|
|
384
|
-
break;
|
|
385
|
-
}
|
|
386
|
-
case 2 /* INDEXABLE_WIDE_NEAR */: {
|
|
387
|
-
adjustValue((move.outerLayer ?? 1) - 1, directedAmount2);
|
|
388
|
-
adjustValue(move.innerLayer ?? 2, -directedAmount2);
|
|
389
|
-
break;
|
|
390
|
-
}
|
|
391
|
-
case 3 /* INDEXABLE_WIDE_FAR */: {
|
|
392
|
-
adjustValue(sliceDiameter - (move.innerLayer ?? 2), directedAmount2);
|
|
393
|
-
adjustValue(
|
|
394
|
-
sliceDiameter - ((move.outerLayer ?? 1) - 1),
|
|
395
|
-
-directedAmount2
|
|
396
|
-
);
|
|
397
|
-
break;
|
|
398
|
-
}
|
|
399
|
-
case 4 /* SPECIFIC_SLICE */: {
|
|
400
|
-
adjustValue(moveSourceInfo.from, directedAmount2);
|
|
401
|
-
adjustValue(moveSourceInfo.to, -directedAmount2);
|
|
402
|
-
break;
|
|
403
|
-
}
|
|
404
|
-
case 5 /* ROTATION */: {
|
|
405
|
-
adjustValue(0, directedAmount2);
|
|
406
|
-
adjustValue(sliceDiameter, -directedAmount2);
|
|
407
|
-
break;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
if ([0, 2].includes(sliceDeltas.size)) {
|
|
411
|
-
lastCandidateRange = { suffixLength, sliceDeltas: new Map(sliceDeltas) };
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
if (sliceDeltas.size === 0) {
|
|
415
|
-
return [];
|
|
416
|
-
}
|
|
417
|
-
if (!lastCandidateRange) {
|
|
418
|
-
return moves;
|
|
419
|
-
}
|
|
420
|
-
let [from2, to] = lastCandidateRange.sliceDeltas.keys();
|
|
421
|
-
if (from2 > to) {
|
|
422
|
-
[from2, to] = [to, from2];
|
|
423
|
-
}
|
|
424
|
-
const directedAmount = lastCandidateRange.sliceDeltas.get(from2);
|
|
425
|
-
return [
|
|
426
|
-
...moves.slice(0, -lastCandidateRange.suffixLength),
|
|
427
|
-
...directedAmount !== 0 ? [simplestMove(axis, from2, to, directedAmount)] : []
|
|
428
|
-
];
|
|
429
|
-
}
|
|
430
|
-
var puzzleSpecificSimplifyOptions333 = {
|
|
431
|
-
quantumMoveOrder: () => 4,
|
|
432
|
-
// doQuantumMovesCommute: areQuantumMovesSameAxis,
|
|
433
|
-
axis: { areQuantumMovesSameAxis, simplifySameAxisMoves }
|
|
434
|
-
};
|
|
435
|
-
|
|
436
|
-
// src/cubing/puzzles/implementations/3x3x3/index.ts
|
|
437
|
-
var cube3x3x3 = {
|
|
438
|
-
id: "3x3x3",
|
|
439
|
-
fullName: "3\xD73\xD73 Cube",
|
|
440
|
-
inventedBy: ["Ern\u0151 Rubik"],
|
|
441
|
-
inventionYear: 1974,
|
|
442
|
-
// https://en.wikipedia.org/wiki/Rubik%27s_Cube#Conception_and_development
|
|
443
|
-
kpuzzle: getCached(async () => {
|
|
444
|
-
return experimental3x3x3KPuzzle;
|
|
445
|
-
}),
|
|
446
|
-
svg: getCached(async () => {
|
|
447
|
-
return (await import("./puzzles-dynamic-3x3x3-JWIWLLZA.js")).cube3x3x3SVG;
|
|
448
|
-
}),
|
|
449
|
-
llSVG: getCached(async () => {
|
|
450
|
-
return (await import("./puzzles-dynamic-3x3x3-JWIWLLZA.js")).cube3x3x3LLSVG;
|
|
451
|
-
}),
|
|
452
|
-
llFaceSVG: getCached(async () => {
|
|
453
|
-
return (await import("./puzzles-dynamic-3x3x3-JWIWLLZA.js")).cube3x3x3LLFaceSVG;
|
|
454
|
-
}),
|
|
455
|
-
pg: getCached(async () => {
|
|
456
|
-
return asyncGetPuzzleGeometry("3x3x3");
|
|
457
|
-
}),
|
|
458
|
-
stickeringMask: (stickering) => cubeLikeStickeringMask(cube3x3x3, stickering),
|
|
459
|
-
stickerings: () => cubeLikeStickeringList("3x3x3"),
|
|
460
|
-
puzzleSpecificSimplifyOptions: puzzleSpecificSimplifyOptions333,
|
|
461
|
-
keyMapping: async () => cube3x3x3KeyMapping
|
|
462
|
-
// TODO: async loading
|
|
174
|
+
stickerings: () => cubeLikeStickeringList("2x2x2", { use3x3x3Fallbacks: true }),
|
|
175
|
+
algTransformData: cubeMirrorTransforms
|
|
463
176
|
};
|
|
464
177
|
|
|
465
178
|
// src/cubing/puzzles/implementations/4x4x4/cube4x4x4And5x5x5KeyMapping.ts
|
|
@@ -758,6 +471,29 @@ var FTOPuzzleLoader = class extends PGPuzzleLoader {
|
|
|
758
471
|
return (await import("./puzzles-dynamic-unofficial-P3TW433I.js")).ftoSVG;
|
|
759
472
|
});
|
|
760
473
|
keyMapping = async () => ftoKeyMapping;
|
|
474
|
+
algTransformData = {
|
|
475
|
+
"\u2194 Mirror (x)": {
|
|
476
|
+
replaceMovesByFamily: {
|
|
477
|
+
L: "R",
|
|
478
|
+
R: "L",
|
|
479
|
+
l: "r",
|
|
480
|
+
r: "l",
|
|
481
|
+
Lw: "Rw",
|
|
482
|
+
Rw: "Lw",
|
|
483
|
+
Lv: "Rv",
|
|
484
|
+
Rv: "Lv",
|
|
485
|
+
BL: "BR",
|
|
486
|
+
BR: "BL",
|
|
487
|
+
bl: "br",
|
|
488
|
+
br: "bl",
|
|
489
|
+
BLw: "BRw",
|
|
490
|
+
BRw: "BLw",
|
|
491
|
+
BLv: "BRv",
|
|
492
|
+
BRv: "BLv"
|
|
493
|
+
},
|
|
494
|
+
invertExceptByFamily: /* @__PURE__ */ new Set(["x"])
|
|
495
|
+
}
|
|
496
|
+
};
|
|
761
497
|
};
|
|
762
498
|
var fto = new FTOPuzzleLoader();
|
|
763
499
|
|
|
@@ -899,6 +635,21 @@ var PyraminxPuzzleLoader = class extends PGPuzzleLoader {
|
|
|
899
635
|
svg = getCached(async () => {
|
|
900
636
|
return (await import("./puzzles-dynamic-side-events-BOGUHF4Q.js")).pyraminxSVG;
|
|
901
637
|
});
|
|
638
|
+
algTransformData = {
|
|
639
|
+
"\u2194 Mirror (x)": {
|
|
640
|
+
replaceMovesByFamily: {
|
|
641
|
+
L: "R",
|
|
642
|
+
R: "L",
|
|
643
|
+
l: "r",
|
|
644
|
+
r: "l",
|
|
645
|
+
Lw: "Rw",
|
|
646
|
+
Rw: "Lw",
|
|
647
|
+
Lv: "Rv",
|
|
648
|
+
Rv: "Lv"
|
|
649
|
+
},
|
|
650
|
+
invertExceptByFamily: /* @__PURE__ */ new Set([])
|
|
651
|
+
}
|
|
652
|
+
};
|
|
902
653
|
};
|
|
903
654
|
var pyraminx = new PyraminxPuzzleLoader();
|
|
904
655
|
|
|
@@ -1015,7 +766,6 @@ export {
|
|
|
1015
766
|
twizzleEvents,
|
|
1016
767
|
eventInfo,
|
|
1017
768
|
cube2x2x2,
|
|
1018
|
-
cube3x3x3,
|
|
1019
769
|
puzzles
|
|
1020
770
|
};
|
|
1021
|
-
//# sourceMappingURL=chunk-
|
|
771
|
+
//# sourceMappingURL=chunk-XWYOASV3.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cubing/puzzles/events.ts", "../../../../src/cubing/puzzles/implementations/2x2x2/index.ts", "../../../../src/cubing/puzzles/implementations/4x4x4/cube4x4x4And5x5x5KeyMapping.ts", "../../../../src/cubing/puzzles/implementations/4x4x4/index.ts", "../../../../src/cubing/puzzles/implementations/5x5x5/index.ts", "../../../../src/cubing/puzzles/stickerings/fto-stickerings.ts", "../../../../src/cubing/puzzles/implementations/fto/ftoKeyMapping.ts", "../../../../src/cubing/puzzles/implementations/baby_fto/index.ts", "../../../../src/cubing/puzzles/implementations/clock/index.ts", "../../../../src/cubing/puzzles/implementations/fto/index.ts", "../../../../src/cubing/puzzles/implementations/kilominx/index.ts", "../../../../src/cubing/puzzles/implementations/loopover/index.ts", "../../../../src/cubing/puzzles/stickerings/megaminx-stickerings.ts", "../../../../src/cubing/puzzles/implementations/megaminx/megaminxKeyMapping.ts", "../../../../src/cubing/puzzles/implementations/megaminx/index.ts", "../../../../src/cubing/puzzles/implementations/melindas2x2x2x2/index.ts", "../../../../src/cubing/puzzles/implementations/pyraminx/index.ts", "../../../../src/cubing/puzzles/implementations/redi-cube/index.ts", "../../../../src/cubing/puzzles/implementations/square1/index.ts", "../../../../src/cubing/puzzles/implementations/tri_quad/index.ts", "../../../../src/cubing/puzzles/index.ts"],
|
|
4
|
+
"sourcesContent": ["import type { PuzzleID } from \"../twisty\";\n\ninterface EventInfo {\n puzzleID: PuzzleID;\n eventName: string;\n /** Whether/how scrambles are implemented in `randomScrambleForEvent(\u2026)` in this version of `cubing.js` */\n scramblesImplemented: null | \"random-state\" | \"random-moves\";\n}\n\nexport const wcaEvents: Record<string, EventInfo> = {\n \"333\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 Cube\",\n scramblesImplemented: \"random-state\",\n },\n \"222\": {\n puzzleID: \"2x2x2\",\n eventName: \"2x2x2 Cube\",\n scramblesImplemented: \"random-state\",\n },\n \"444\": {\n puzzleID: \"4x4x4\",\n eventName: \"4x4x4 Cube\",\n scramblesImplemented: \"random-state\",\n },\n \"555\": {\n puzzleID: \"5x5x5\",\n eventName: \"5x5x5 Cube\",\n scramblesImplemented: \"random-moves\",\n },\n \"666\": {\n puzzleID: \"6x6x6\",\n eventName: \"6x6x6 Cube\",\n scramblesImplemented: \"random-moves\",\n },\n \"777\": {\n puzzleID: \"7x7x7\",\n eventName: \"7x7x7 Cube\",\n scramblesImplemented: \"random-moves\",\n },\n \"333bf\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 Blindfolded\",\n scramblesImplemented: \"random-state\",\n },\n \"333fm\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 Fewest Moves\",\n scramblesImplemented: \"random-state\",\n },\n \"333oh\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 One-Handed\",\n scramblesImplemented: \"random-state\",\n },\n clock: {\n puzzleID: \"clock\",\n eventName: \"Clock\",\n scramblesImplemented: \"random-state\",\n },\n minx: {\n puzzleID: \"megaminx\",\n eventName: \"Megaminx\",\n scramblesImplemented: \"random-moves\",\n },\n pyram: {\n puzzleID: \"pyraminx\",\n eventName: \"Pyraminx\",\n scramblesImplemented: \"random-state\",\n },\n skewb: {\n puzzleID: \"skewb\",\n eventName: \"Skewb\",\n scramblesImplemented: \"random-state\",\n },\n sq1: {\n puzzleID: \"square1\",\n eventName: \"Square-1\",\n scramblesImplemented: \"random-state\",\n },\n \"444bf\": {\n puzzleID: \"4x4x4\",\n eventName: \"4x4x4 Blindfolded\",\n scramblesImplemented: \"random-state\",\n },\n \"555bf\": {\n puzzleID: \"5x5x5\",\n eventName: \"5x5x5 Blindfolded\",\n scramblesImplemented: \"random-moves\",\n },\n \"333mbf\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 Multi-Blind\",\n scramblesImplemented: \"random-state\",\n },\n};\n\n/** @category Event Info */\nexport function wcaEventInfo(event: string): EventInfo | null {\n return wcaEvents[event] ?? null;\n}\n\nexport const twizzleEvents: Record<string, EventInfo> = {\n ...wcaEvents,\n fto: {\n puzzleID: \"fto\",\n eventName: \"Face-Turning Octahedron\",\n scramblesImplemented: \"random-state\",\n },\n master_tetraminx: {\n puzzleID: \"master_tetraminx\",\n eventName: \"Master Tetraminx\",\n scramblesImplemented: \"random-state\",\n },\n kilominx: {\n puzzleID: \"kilominx\",\n eventName: \"Kilominx\",\n scramblesImplemented: \"random-state\",\n },\n redi_cube: {\n puzzleID: \"redi_cube\",\n eventName: \"Redi Cube\",\n scramblesImplemented: \"random-state\",\n },\n baby_fto: {\n puzzleID: \"baby_fto\",\n eventName: \"Baby FTO\",\n scramblesImplemented: \"random-state\",\n },\n loopover: {\n puzzleID: \"loopover\",\n eventName: \"Loopover\",\n scramblesImplemented: null,\n },\n};\n\n/** @category Event Info */\nexport function eventInfo(event: string): EventInfo | null {\n return twizzleEvents[event] ?? null;\n}\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { experimentalIs2x2x2Solved } from \"../../../puzzles/cubing-private\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport {\n cubeLikeStickeringList,\n cubeLikeStickeringMask,\n} from \"../../stickerings/cube-like-stickerings\";\nimport type { StickeringMask } from \"../../stickerings/mask\";\nimport { cubeMirrorTransforms } from \"../3x3x3\";\n\n/** @category Specific Puzzles */\nexport const cube2x2x2: PuzzleLoader = {\n id: \"2x2x2\",\n fullName: \"2\u00D72\u00D72 Cube\",\n kpuzzle: getCached(async () => {\n const kpuzzle = new KPuzzle(\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .cube2x2x2JSON,\n );\n kpuzzle.definition.experimentalIsPatternSolved = experimentalIs2x2x2Solved;\n return kpuzzle;\n }),\n svg: async () =>\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .cube2x2x2SVG,\n llSVG: getCached(\n async () =>\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .cube2x2x2LLSVG,\n ),\n pg: getCached(async () => {\n return asyncGetPuzzleGeometry(\"2x2x2\");\n }),\n stickeringMask: (\n stickering: ExperimentalStickering,\n ): Promise<StickeringMask> => cubeLikeStickeringMask(cube2x2x2, stickering),\n stickerings: () =>\n cubeLikeStickeringList(\"2x2x2\", { use3x3x3Fallbacks: true }),\n algTransformData: cubeMirrorTransforms,\n};\n", "import { type AlgLeaf, Move } from \"../../../alg\";\nimport { cube3x3x3KeyMapping } from \"../3x3x3/cube3x3x3KeyMapping\";\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code\n\n// TODO: place this definition in a more shared location.\nexport const cube4x4x4And5x5x5KeyMapping: { [key: number | string]: AlgLeaf } =\n {\n ...cube3x3x3KeyMapping,\n KeyZ: new Move(\"m'\"),\n KeyB: new Move(\"m\"),\n Period: new Move(\"m'\"),\n };\n", "import { CubePGPuzzleLoader, PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport { bigCubePuzzleOrientation } from \"../../cubing-private\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport { cube4x4x4And5x5x5KeyMapping } from \"./cube4x4x4And5x5x5KeyMapping\";\n\nconst cube4x4x4: PuzzleLoader = new CubePGPuzzleLoader({\n id: \"4x4x4\",\n fullName: \"4\u00D74\u00D74 Cube\",\n inventedBy: [\"Peter Sebest\u00E9ny\"],\n inventionYear: 1981,\n});\n\ncube4x4x4.llSVG = getCached(async () => {\n return (await import(\"../dynamic/4x4x4/puzzles-dynamic-4x4x4\"))\n .cube4x4x4LLSVG;\n});\ncube4x4x4.keyMapping = async () => cube4x4x4And5x5x5KeyMapping; // TODO: async loading\n\ncube4x4x4.kpuzzle = getCached(async () => {\n const kpuzzle = await PGPuzzleLoader.prototype.kpuzzle.call(cube4x4x4);\n // TODO: pass up an option to do this instead.\n kpuzzle.definition.defaultPattern[\"CENTERS\"].pieces = [\n // U\n 0, 0, 0, 0,\n // L\n 4, 4, 4, 4,\n // F\n 8, 8, 8, 8,\n // R\n 12, 12, 12, 12,\n // B\n 16, 16, 16, 16,\n // D\n 20, 20, 20, 20,\n ];\n const { experimentalIsBigCubeSolved } = await bigCubePuzzleOrientation();\n kpuzzle.definition.experimentalIsPatternSolved = experimentalIsBigCubeSolved;\n return kpuzzle;\n});\n\nexport { cube4x4x4 };\n", "import { CubePGPuzzleLoader, PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport { bigCubePuzzleOrientation } from \"../../cubing-private\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport { cube4x4x4And5x5x5KeyMapping } from \"../4x4x4/cube4x4x4And5x5x5KeyMapping\";\n\nconst cube5x5x5: PuzzleLoader = new CubePGPuzzleLoader({\n id: \"5x5x5\",\n fullName: \"5\u00D75\u00D75 Cube\",\n inventedBy: [\"Udo Krell\"],\n inventionYear: 1981,\n});\n\ncube5x5x5.keyMapping = async () => cube4x4x4And5x5x5KeyMapping; // TODO: async loading\n\ncube5x5x5.kpuzzle = getCached(async () => {\n const kpuzzle = await PGPuzzleLoader.prototype.kpuzzle.call(cube5x5x5);\n\n const speffzDistinguishableCenters = [\n // U\n 0, 0, 0, 0,\n // L\n 4, 4, 4, 4,\n // F\n 8, 8, 8, 8,\n // R\n 12, 12, 12, 12,\n // B\n 16, 16, 16, 16,\n // D\n 20, 20, 20, 20,\n ];\n // TODO: pass up an option to do this instead.\n kpuzzle.definition.defaultPattern[\"CENTERS\"].pieces =\n speffzDistinguishableCenters;\n kpuzzle.definition.defaultPattern[\"CENTERS2\"].pieces =\n speffzDistinguishableCenters;\n kpuzzle.definition.defaultPattern[\"CENTERS3\"].orientationMod = new Array(\n 6,\n ).fill(1);\n const { experimentalIsBigCubeSolved } = await bigCubePuzzleOrientation();\n kpuzzle.definition.experimentalIsPatternSolved = experimentalIsBigCubeSolved;\n return kpuzzle;\n});\n\nexport { cube5x5x5 };\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n type PieceSet,\n PieceStickering,\n PuzzleStickering,\n StickeringManager,\n type StickeringMask,\n} from \"./mask\";\n\nexport async function ftoStickering(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<StickeringMask> {\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 }\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 }\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 }\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 }\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 }\n case \"experimental-fto-l3t\": {\n puzzleStickering.set(experimentalFTO_LBT(), PieceStickering.Dim);\n break;\n }\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.toStickeringMask();\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 AlgLeaf, Move, Pause } from \"../../../alg\";\n\nexport const ftoKeyMapping: { [key: number | string]: AlgLeaf } = {\n KeyI: new Move(\"R\"),\n KeyK: new Move(\"R'\"),\n KeyW: new Move(\"B\"),\n KeyO: new Move(\"B'\"),\n KeyS: new Move(\"D\"),\n KeyL: new Move(\"D'\"),\n KeyD: new Move(\"L\"),\n KeyE: new Move(\"L'\"),\n KeyJ: new Move(\"U\"),\n KeyF: new Move(\"U'\"),\n KeyH: new Move(\"F\"),\n KeyG: new Move(\"F'\"),\n\n KeyN: new Move(\"Rv'\"),\n KeyC: new Move(\"l\"),\n KeyR: new Move(\"l'\"),\n KeyU: new Move(\"r\"),\n KeyM: new Move(\"r'\"),\n\n KeyX: new Move(\"d\"),\n Comma: new Move(\"d'\"),\n\n KeyT: new Move(\"Lv'\"),\n KeyY: new Move(\"Rv\"),\n KeyV: new Move(\"Lv\"),\n Semicolon: new Move(\"Uv\"),\n KeyA: new Move(\"Uv'\"),\n KeyP: new Move(\"BR'\"),\n KeyQ: new Move(\"BL\"),\n\n KeyZ: new Move(\"BL'\"),\n KeyB: new Move(\"T\"),\n Period: new Move(\"BR\"),\n\n Backquote: new Pause(),\n};\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport { ftoStickering } from \"../../stickerings/fto-stickerings\";\nimport type { StickeringMask } from \"../../stickerings/mask\";\nimport { ftoKeyMapping } from \"../fto/ftoKeyMapping\";\n\nclass BabyFTOPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n pgID: \"skewb diamond\",\n id: \"baby_fto\",\n fullName: \"Baby FTO\",\n inventedBy: [\"Uwe M\u00E8ffert\"],\n // inventionYear: TODO\n setOrientationModTo1ForPiecesOfOrbits: [\"CENTERS\"],\n });\n }\n stickeringMask(stickering: ExperimentalStickering): Promise<StickeringMask> {\n return ftoStickering(this, stickering);\n }\n override svg = getCached(async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .babyFTOSVG;\n });\n keyMapping = async () => ftoKeyMapping;\n}\n\nexport const baby_fto = new BabyFTOPuzzleLoader();\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(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .clockJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .clockSVG;\n }),\n};\n", "import type { AlgTransformData } from \"cubing/puzzles/cubing-private\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport {\n ftoStickering,\n ftoStickerings,\n} from \"../../stickerings/fto-stickerings\";\nimport type { StickeringMask } from \"../../stickerings/mask\";\nimport { ftoKeyMapping } from \"./ftoKeyMapping\";\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 stickeringMask(stickering: ExperimentalStickering): Promise<StickeringMask> {\n return ftoStickering(this, stickering);\n }\n stickerings = ftoStickerings;\n override svg = getCached(async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .ftoSVG;\n });\n keyMapping = async () => ftoKeyMapping;\n algTransformData: AlgTransformData = {\n \"\u2194 Mirror (x)\": {\n replaceMovesByFamily: {\n L: \"R\",\n R: \"L\",\n l: \"r\",\n r: \"l\",\n Lw: \"Rw\",\n Rw: \"Lw\",\n Lv: \"Rv\",\n Rv: \"Lv\",\n BL: \"BR\",\n BR: \"BL\",\n bl: \"br\",\n br: \"bl\",\n BLw: \"BRw\",\n BRw: \"BLw\",\n BLv: \"BRv\",\n BRv: \"BLv\",\n },\n invertExceptByFamily: new Set([\"x\"]),\n },\n };\n}\n\nexport const fto = new FTOPuzzleLoader();\n", "import type { PuzzleLoader } from \"../..\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport {\n asyncGetKPuzzleByDesc,\n descAsyncGetPuzzleGeometry,\n} from \"../../customPGPuzzleLoader\";\n\nconst KILOMINX_PUZZLE_DESCRIPTION = \"d f 0.56\";\n\n// TODO: Make this consistent with Megaminx corners\nexport const kilominx: PuzzleLoader = {\n id: \"kilominx\",\n fullName: \"Kilominx\",\n kpuzzle: getCached(() =>\n asyncGetKPuzzleByDesc(KILOMINX_PUZZLE_DESCRIPTION, {\n includeCenterOrbits: false,\n includeEdgeOrbits: false,\n }),\n ),\n pg: () =>\n descAsyncGetPuzzleGeometry(KILOMINX_PUZZLE_DESCRIPTION, {\n includeCenterOrbits: false,\n includeEdgeOrbits: false,\n }),\n svg: getCached(async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .kilominxSVG;\n }),\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const loopover: PuzzleLoader = {\n id: \"loopover\",\n fullName: \"Loopover\",\n inventedBy: [\"Cary Huang\"],\n inventionYear: 2018,\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .loopoverJSON,\n ),\n ),\n svg: async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .loopoverSVG;\n },\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport { from } from \"../../vendor/mit/p-lazy/p-lazy\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n cubeLikeStickeringList,\n cubeLikeStickeringMask,\n} from \"./cube-like-stickerings\";\nimport type { StickeringMask } from \"./mask\";\n\n// TODO: cache calculations?\nexport async function megaminxStickeringMask(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<StickeringMask> {\n // TODO: optimize lookup instead of looking through a list\n if ((await megaminxStickerings()).includes(stickering)) {\n return cubeLikeStickeringMask(puzzleLoader, stickering);\n }\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n return cubeLikeStickeringMask(puzzleLoader, \"full\");\n}\n\nconst megaminxStickeringListPromise: Promise<string[]> = from(() =>\n cubeLikeStickeringList(\"megaminx\"),\n);\nexport function megaminxStickerings(): Promise<string[]> {\n return megaminxStickeringListPromise;\n}\n", "import { type AlgLeaf, Move, Pause } from \"../../../alg\";\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code\n\nexport const megaminxKeyMapping: { [key: number | string]: AlgLeaf } = {\n KeyI: new Move(\"R\"),\n KeyK: new Move(\"R'\"),\n KeyW: new Move(\"B\"),\n KeyO: new Move(\"B'\"),\n KeyS: new Move(\"FR\"),\n KeyL: new Move(\"FR'\"),\n KeyD: new Move(\"L\"),\n KeyE: new Move(\"L'\"),\n KeyJ: new Move(\"U\"),\n KeyF: new Move(\"U'\"),\n KeyH: new Move(\"F\"),\n KeyG: new Move(\"F'\"),\n\n KeyC: new Move(\"Lw\"),\n KeyR: new Move(\"Lw'\"),\n KeyU: new Move(\"Rw\"),\n KeyM: new Move(\"Rw'\"),\n\n KeyX: new Move(\"d\"),\n Comma: new Move(\"d'\"),\n\n KeyT: new Move(\"Rv\"),\n KeyY: new Move(\"Rv\"),\n KeyV: new Move(\"Rv'\"),\n KeyN: new Move(\"Rv'\"),\n Semicolon: new Move(\"y\"),\n KeyA: new Move(\"y'\"),\n KeyP: new Move(\"z\"),\n KeyQ: new Move(\"z'\"),\n\n KeyZ: new Move(\"2L'\"),\n KeyB: new Move(\"2R\"),\n Period: new Move(\"2R'\"),\n\n Backquote: new Pause(),\n};\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { StickeringMask } from \"../../stickerings/mask\";\nimport {\n megaminxStickeringMask,\n megaminxStickerings,\n} from \"../../stickerings/megaminx-stickerings\";\nimport { megaminxKeyMapping } from \"./megaminxKeyMapping\";\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 stickeringMask(stickering: ExperimentalStickering): Promise<StickeringMask> {\n return megaminxStickeringMask(this, stickering);\n }\n stickerings = megaminxStickerings;\n\n llSVG = getCached(async () => {\n return (await import(\"../dynamic/megaminx/puzzles-dynamic-megaminx\"))\n .megaminxLLSVG;\n });\n\n keyMapping = async () => megaminxKeyMapping; // TODO: async loading\n}\n\nexport const megaminx = new MegaminxPuzzleLoader();\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const melindas2x2x2x2: PuzzleLoader = {\n id: \"melindas2x2x2x2\",\n fullName: \"Melinda's 2\u00D72\u00D72\u00D72\",\n inventedBy: [\"Melinda Green\"],\n // inventionYear: 20__, // TODO\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .melindas2x2x2x2OrbitJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .melindas2x2x2x2OrbitSVG;\n }),\n};\n", "import type { AlgTransformData } from \"cubing/puzzles/cubing-private\";\nimport { 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 override svg = getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .pyraminxSVG;\n });\n algTransformData: AlgTransformData = {\n \"\u2194 Mirror (x)\": {\n replaceMovesByFamily: {\n L: \"R\",\n R: \"L\",\n l: \"r\",\n r: \"l\",\n Lw: \"Rw\",\n Rw: \"Lw\",\n Lv: \"Rv\",\n Rv: \"Lv\",\n },\n invertExceptByFamily: new Set([]),\n },\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 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(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .rediCubeJSON,\n ),\n ),\n svg: async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .rediCubeSVG;\n },\n};\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 (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .sq1HyperOrbitJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .sq1HyperOrbitSVG;\n }),\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const tri_quad: PuzzleLoader = {\n id: \"tri_quad\",\n fullName: \"TriQuad\",\n inventedBy: [\"Bram Cohen\", \"Carl Hoff\"],\n inventionYear: 2018, // https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=6809\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .triQuadJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .triQuadSVG;\n }),\n};\n", "export { eventInfo, twizzleEvents, wcaEventInfo, wcaEvents } from \"./events\";\nexport { cube2x2x2, cube3x3x3 };\nexport type { PuzzleLoader };\n\nimport { CubePGPuzzleLoader, PGPuzzleLoader } from \"./async/async-pg3d\";\nimport { cube2x2x2 } from \"./implementations/2x2x2\";\nimport { cube3x3x3 } from \"./implementations/3x3x3\";\nimport { cube4x4x4 } from \"./implementations/4x4x4\";\nimport { cube5x5x5 } from \"./implementations/5x5x5\";\nimport { baby_fto } from \"./implementations/baby_fto\";\nimport { clock } from \"./implementations/clock\";\nimport { fto } from \"./implementations/fto\";\nimport { kilominx } from \"./implementations/kilominx\";\nimport { loopover } from \"./implementations/loopover\";\nimport { megaminx } from \"./implementations/megaminx\";\nimport { melindas2x2x2x2 } from \"./implementations/melindas2x2x2x2\";\nimport { pyraminx } from \"./implementations/pyraminx\";\nimport { rediCube } from \"./implementations/redi-cube\";\nimport { square1 } from \"./implementations/square1\";\nimport { tri_quad } from \"./implementations/tri_quad\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\n/** @category All Puzzles */\nexport const puzzles: Record<string, PuzzleLoader> = {\n /******** Start of WCA Puzzles *******/\n \"3x3x3\": cube3x3x3,\n \"2x2x2\": cube2x2x2,\n \"4x4x4\": cube4x4x4,\n \"5x5x5\": cube5x5x5,\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,\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 melindas2x2x2x2,\n loopover,\n tri_quad,\n baby_fto,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-6WYRN27C.js";
|
|
4
4
|
import {
|
|
5
5
|
countMoves
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-C6NCOBGN.js";
|
|
7
7
|
import {
|
|
8
8
|
addOrientationSuffix,
|
|
9
9
|
initialize333,
|
|
@@ -12,24 +12,24 @@ import {
|
|
|
12
12
|
random333Scramble,
|
|
13
13
|
setIsInsideWorker,
|
|
14
14
|
solve333
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-LLQHQ7KT.js";
|
|
16
16
|
import "./chunk-RDSQRW3G.js";
|
|
17
17
|
import {
|
|
18
18
|
cube2x2x2,
|
|
19
19
|
puzzles
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-XWYOASV3.js";
|
|
21
21
|
import {
|
|
22
22
|
from
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-GTMMBSYI.js";
|
|
24
24
|
import {
|
|
25
25
|
KPattern,
|
|
26
26
|
KPuzzle
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-CZGLT7LF.js";
|
|
28
28
|
import {
|
|
29
29
|
Alg,
|
|
30
30
|
AlgBuilder,
|
|
31
31
|
Move
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-3MMNI5O2.js";
|
|
33
33
|
|
|
34
34
|
// src/cubing/search/inside/solve/puzzles/2x2x2.ts
|
|
35
35
|
import { randomPermuteInPlace, randomUIntBelow } from "random-uint-below";
|
|
@@ -164,7 +164,7 @@ var TrembleSolver = class {
|
|
|
164
164
|
};
|
|
165
165
|
|
|
166
166
|
// src/cubing/search/inside/solve/twsearch.ts
|
|
167
|
-
var twsearchPromise = from(async () => import("./twsearch-
|
|
167
|
+
var twsearchPromise = from(async () => import("./twsearch-T3W5T5WE.js"));
|
|
168
168
|
async function wasmTwsearch(def, pattern, options) {
|
|
169
169
|
const { wasmTwsearch: wasmTwsearch2 } = await twsearchPromise;
|
|
170
170
|
return wasmTwsearch2(def, pattern, options);
|
|
@@ -175,7 +175,7 @@ async function wasmRandomScrambleForEvent(eventID) {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
// src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.ts
|
|
178
|
-
var searchDynamicSideEvents = from(() => import("./search-dynamic-sgs-side-events-
|
|
178
|
+
var searchDynamicSideEvents = from(() => import("./search-dynamic-sgs-side-events-KFGZMHFE.js"));
|
|
179
179
|
|
|
180
180
|
// src/cubing/search/inside/solve/puzzles/2x2x2.ts
|
|
181
181
|
var cachedTrembleSolver = null;
|
|
@@ -200,7 +200,7 @@ async function solve222(pattern) {
|
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
// src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.ts
|
|
203
|
-
var dynamic4x4x4Solver = from(() => import("./search-dynamic-solve-4x4x4-
|
|
203
|
+
var dynamic4x4x4Solver = from(() => import("./search-dynamic-solve-4x4x4-AOHNELZ2.js"));
|
|
204
204
|
|
|
205
205
|
// src/cubing/search/inside/solve/puzzles/4x4x4.ts
|
|
206
206
|
var randomSuffixes = [
|
|
@@ -220,18 +220,18 @@ async function random444OrientedScramble() {
|
|
|
220
220
|
|
|
221
221
|
// src/cubing/search/inside/solve/puzzles/dynamic/fto/index.ts
|
|
222
222
|
var dynamicFTO = from(
|
|
223
|
-
() => import("./search-dynamic-solve-fto-
|
|
223
|
+
() => import("./search-dynamic-solve-fto-BHX3R6ZT.js")
|
|
224
224
|
);
|
|
225
225
|
|
|
226
226
|
// src/cubing/search/inside/solve/puzzles/fto.ts
|
|
227
|
-
var dynamic = from(() => import("./search-dynamic-sgs-unofficial-
|
|
227
|
+
var dynamic = from(() => import("./search-dynamic-sgs-unofficial-MWWB3OYG.js"));
|
|
228
228
|
async function randomFTOScramble() {
|
|
229
229
|
mustBeInsideWorker();
|
|
230
230
|
return new Alg(await (await dynamicFTO).getRandomFTOScramble());
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
// src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.ts
|
|
234
|
-
var dynamicKilominxSolver = from(() => import("./search-dynamic-solve-kilominx-
|
|
234
|
+
var dynamicKilominxSolver = from(() => import("./search-dynamic-solve-kilominx-SAJCQILQ.js"));
|
|
235
235
|
|
|
236
236
|
// src/cubing/search/inside/solve/puzzles/kilominx.ts
|
|
237
237
|
async function randomKilominxScramble() {
|
|
@@ -304,7 +304,7 @@ async function solvePyraminx(pattern) {
|
|
|
304
304
|
}
|
|
305
305
|
|
|
306
306
|
// src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.ts
|
|
307
|
-
var searchDynamicUnofficial = from(() => import("./search-dynamic-sgs-unofficial-
|
|
307
|
+
var searchDynamicUnofficial = from(() => import("./search-dynamic-sgs-unofficial-MWWB3OYG.js"));
|
|
308
308
|
|
|
309
309
|
// src/cubing/search/inside/solve/puzzles/redi_cube.ts
|
|
310
310
|
async function randomRediCubeScramble() {
|
|
@@ -550,4 +550,4 @@ var insideAPI = {
|
|
|
550
550
|
|
|
551
551
|
// src/cubing/search/inside/index.ts
|
|
552
552
|
expose(insideAPI);
|
|
553
|
-
//# sourceMappingURL=inside-
|
|
553
|
+
//# sourceMappingURL=inside-Q4UKUE5C.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseSGS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7M7ZAS5G.js";
|
|
4
4
|
import {
|
|
5
5
|
cube2x2x2,
|
|
6
6
|
puzzles
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-XWYOASV3.js";
|
|
8
|
+
import "./chunk-GTMMBSYI.js";
|
|
9
9
|
import {
|
|
10
10
|
KPuzzle
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-CZGLT7LF.js";
|
|
12
|
+
import "./chunk-3MMNI5O2.js";
|
|
13
13
|
|
|
14
14
|
// src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/2x2x2.sgs.ts
|
|
15
15
|
var cachedData = null;
|
|
@@ -1888,4 +1888,4 @@ export {
|
|
|
1888
1888
|
sgsDataSkewbFixedCorner,
|
|
1889
1889
|
skewbKPuzzleWithoutMOCached
|
|
1890
1890
|
};
|
|
1891
|
-
//# sourceMappingURL=search-dynamic-sgs-side-events-
|
|
1891
|
+
//# sourceMappingURL=search-dynamic-sgs-side-events-KFGZMHFE.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseSGS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7M7ZAS5G.js";
|
|
4
4
|
import {
|
|
5
5
|
puzzles
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-XWYOASV3.js";
|
|
7
|
+
import "./chunk-GTMMBSYI.js";
|
|
8
|
+
import "./chunk-CZGLT7LF.js";
|
|
9
9
|
import {
|
|
10
10
|
Alg
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-3MMNI5O2.js";
|
|
12
12
|
|
|
13
13
|
// src/cubing/vendor/mpl/xyzzy/redi_cube.js
|
|
14
14
|
import { randomUIntBelow } from "random-uint-below";
|
|
@@ -1265,4 +1265,4 @@ export {
|
|
|
1265
1265
|
getRandomRediCubeScramble,
|
|
1266
1266
|
sgsDataFTO
|
|
1267
1267
|
};
|
|
1268
|
-
//# sourceMappingURL=search-dynamic-sgs-unofficial-
|
|
1268
|
+
//# sourceMappingURL=search-dynamic-sgs-unofficial-MWWB3OYG.js.map
|