cubing 0.63.2 → 0.63.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -1
- package/alg/index.d.ts +1 -1
- package/bluetooth/index.d.ts +1 -1
- package/dist/bin/chunks/{chunk-52ODPET6.js → chunk-E6RYEKYL.js} +2 -2
- package/dist/bin/order.js +8 -4
- package/dist/bin/order.js.map +2 -2
- package/dist/bin/puzzle-geometry-bin.js +8 -4
- package/dist/bin/puzzle-geometry-bin.js.map +2 -2
- package/dist/bin/scramble.js +8 -4
- package/dist/bin/scramble.js.map +2 -2
- package/dist/bin/svg.js +56 -0
- package/dist/bin/svg.js.map +7 -0
- package/dist/lib/cubing/alg/index.d.ts +2 -84
- package/dist/lib/cubing/alg/index.js +1 -1
- package/dist/lib/cubing/bluetooth/index.d.ts +147 -134
- package/dist/lib/cubing/bluetooth/index.js +29 -5
- package/dist/lib/cubing/bluetooth/index.js.map +2 -2
- package/dist/lib/cubing/chunks/{big-puzzle-orientation-ZVZQJEF5.js → big-puzzle-orientation-ADWIOX6S.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-M7YKTETT.js → chunk-53SI7XS4.js} +14 -4
- package/dist/lib/cubing/chunks/chunk-53SI7XS4.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-RINY3U6G.js → chunk-5ONX3JVC.js} +7 -2
- package/dist/lib/cubing/chunks/{chunk-RINY3U6G.js.map → chunk-5ONX3JVC.js.map} +1 -1
- package/dist/lib/cubing/chunks/{chunk-ROB5TROI.js → chunk-7LXHWXCO.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-E3YLQC45.js → chunk-GHFBZYSV.js} +2 -2
- package/dist/lib/cubing/chunks/chunk-GHFBZYSV.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-ZU7PSGX4.js → chunk-JCCXEYXU.js} +4 -3
- package/dist/lib/cubing/chunks/{chunk-ZU7PSGX4.js.map → chunk-JCCXEYXU.js.map} +1 -1
- package/dist/lib/cubing/chunks/{chunk-LWCBAAHO.js → chunk-LD4XJTCU.js} +28 -13
- package/dist/lib/cubing/chunks/chunk-LD4XJTCU.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-O6HEZXGY.js → chunk-N5FJ5YIA.js} +4 -3
- package/dist/lib/cubing/chunks/{chunk-O6HEZXGY.js.map → chunk-N5FJ5YIA.js.map} +1 -1
- package/dist/lib/cubing/chunks/{chunk-NGW52SHR.js → chunk-S74APGTK.js} +3 -3
- package/dist/lib/cubing/chunks/{chunk-FLK6AZKB.js → chunk-VYAO5FCM.js} +7 -7
- package/dist/lib/cubing/chunks/{chunk-FLK6AZKB.js.map → chunk-VYAO5FCM.js.map} +2 -2
- package/dist/lib/cubing/chunks/{chunk-FUHYAW74.js → chunk-WBMKMQAL.js} +49 -63
- package/dist/lib/cubing/chunks/chunk-WBMKMQAL.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-V27EM5TJ.js → chunk-XVZLWT3A.js} +44 -49
- package/dist/lib/cubing/chunks/chunk-XVZLWT3A.js.map +7 -0
- package/dist/lib/cubing/chunks/{inside-Q56GLXG4.js → inside-VUJSPBRA.js} +64 -28
- package/dist/lib/cubing/chunks/inside-VUJSPBRA.js.map +7 -0
- package/dist/lib/cubing/chunks/puzzles-dynamic-4x4x4-AIGABOAR.js +132 -0
- package/dist/lib/cubing/chunks/puzzles-dynamic-4x4x4-AIGABOAR.js.map +7 -0
- package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-GB4WAJ7I.js → search-dynamic-sgs-side-events-LHAMZP5J.js} +6 -6
- package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-2CECFBP3.js → search-dynamic-sgs-unofficial-GXKMVR4W.js} +6 -6
- package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-E576AITS.js → search-dynamic-solve-4x4x4-N2X3RMYU.js} +7 -7
- package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-UZMNOI6U.js → search-dynamic-solve-fto-I5ID5LXD.js} +2 -2
- package/dist/lib/cubing/chunks/search-dynamic-solve-kilominx-Y2D3C74Y.js +771 -0
- package/dist/lib/cubing/chunks/search-dynamic-solve-kilominx-Y2D3C74Y.js.map +7 -0
- package/dist/lib/cubing/chunks/search-worker-entry.js +7 -6
- package/dist/lib/cubing/chunks/search-worker-entry.js.map +2 -2
- package/dist/lib/cubing/chunks/{twips-YHXBF55O.js → twips-ZNMKGC5U.js} +4 -4
- package/dist/lib/cubing/chunks/twips_wasm_bg-TJNYGA2C-AP2O4LGG.js +10 -0
- package/dist/lib/cubing/chunks/twips_wasm_bg-TJNYGA2C-AP2O4LGG.js.map +7 -0
- package/dist/lib/cubing/chunks/{twisty-dynamic-3d-IKE4BUQG.js → twisty-dynamic-3d-LSRGWTXG.js} +105 -46
- package/dist/lib/cubing/chunks/twisty-dynamic-3d-LSRGWTXG.js.map +7 -0
- package/dist/lib/cubing/index-BXHm_6gm.d.ts +2626 -0
- package/dist/lib/cubing/index-Cvk652Bd.d.ts +76 -0
- package/dist/lib/cubing/kpuzzle/index.d.ts +2 -3
- package/dist/lib/cubing/kpuzzle/index.js +2 -2
- package/dist/lib/cubing/notation/index.d.ts +18 -17
- package/dist/lib/cubing/notation/index.js +4 -4
- package/dist/lib/cubing/outside-CwNOEuJJ.d.ts +38 -0
- package/dist/lib/cubing/protocol/index.d.ts +14 -14
- package/dist/lib/cubing/protocol/index.js +4 -4
- package/dist/lib/cubing/puzzle-geometry/index.d.ts +2 -8
- package/dist/lib/cubing/puzzle-geometry/index.js +33 -1
- package/dist/lib/cubing/puzzle-geometry/index.js.map +1 -1
- package/dist/lib/cubing/puzzles/index.d.ts +2 -45
- package/dist/lib/cubing/puzzles/index.js +4 -4
- package/dist/lib/cubing/scramble/index.d.ts +2 -4
- package/dist/lib/cubing/scramble/index.js +6 -6
- package/dist/lib/cubing/search/index.d.ts +4 -9
- package/dist/lib/cubing/search/index.js +6 -6
- package/dist/lib/cubing/stream/index.d.ts +2 -45
- package/dist/lib/cubing/stream/index.js +1 -1
- package/dist/lib/cubing/twisty/index.d.ts +2 -60
- package/dist/lib/cubing/twisty/index.js +101 -20
- package/dist/lib/cubing/twisty/index.js.map +3 -3
- package/kpuzzle/index.d.ts +1 -1
- package/notation/index.d.ts +1 -1
- package/package.json +19 -20
- package/protocol/index.d.ts +1 -1
- package/puzzle-geometry/index.d.ts +1 -1
- package/puzzles/index.d.ts +1 -1
- package/scramble/index.d.ts +1 -1
- package/search/index.d.ts +1 -1
- package/stream/index.d.ts +1 -1
- package/twisty/index.d.ts +1 -1
- package/dist/lib/cubing/PuzzleLoader-R-puDLmC.d.ts +0 -2352
- package/dist/lib/cubing/chunks/chunk-E3YLQC45.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-FUHYAW74.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-LWCBAAHO.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-M7YKTETT.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-V27EM5TJ.js.map +0 -7
- package/dist/lib/cubing/chunks/inside-Q56GLXG4.js.map +0 -7
- package/dist/lib/cubing/chunks/puzzles-dynamic-4x4x4-REUXFQJ4.js +0 -124
- package/dist/lib/cubing/chunks/puzzles-dynamic-4x4x4-REUXFQJ4.js.map +0 -7
- package/dist/lib/cubing/chunks/twips_wasm_bg-RWVQBVBA-5YCKA6O5.js +0 -10
- package/dist/lib/cubing/chunks/twips_wasm_bg-RWVQBVBA-5YCKA6O5.js.map +0 -7
- package/dist/lib/cubing/chunks/twisty-dynamic-3d-IKE4BUQG.js.map +0 -7
- package/dist/lib/cubing/events-IfSwQLYm.d.ts +0 -35
- package/dist/lib/cubing/index-btIxbuNp.d.ts +0 -33
- /package/dist/bin/chunks/{chunk-52ODPET6.js.map → chunk-E6RYEKYL.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{big-puzzle-orientation-ZVZQJEF5.js.map → big-puzzle-orientation-ADWIOX6S.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-ROB5TROI.js.map → chunk-7LXHWXCO.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-NGW52SHR.js.map → chunk-S74APGTK.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-GB4WAJ7I.js.map → search-dynamic-sgs-side-events-LHAMZP5J.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-2CECFBP3.js.map → search-dynamic-sgs-unofficial-GXKMVR4W.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-E576AITS.js.map → search-dynamic-solve-4x4x4-N2X3RMYU.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-UZMNOI6U.js.map → search-dynamic-solve-fto-I5ID5LXD.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{twips-YHXBF55O.js.map → twips-ZNMKGC5U.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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 { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { AlgTransformData } from \"../../cubing-private\";\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 { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { AlgTransformData } from \"../../cubing-private\";\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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",
|
|
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 { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { AlgTransformData } from \"../../cubing-private\";\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 { LazyPromise } from \"@cubing/lazy-promise\";\nimport type { ExperimentalStickering } from \"../../twisty\";\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[]> = new LazyPromise(() =>\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 { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { AlgTransformData } from \"../../cubing-private\";\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 type { PuzzleLoader };\nexport { cube2x2x2, cube3x3x3 };\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
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KPattern,
|
|
3
3
|
KPuzzle
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5ONX3JVC.js";
|
|
5
5
|
import {
|
|
6
6
|
Alg,
|
|
7
7
|
Commutator,
|
|
@@ -11,46 +11,35 @@ import {
|
|
|
11
11
|
QuantumMove,
|
|
12
12
|
TraversalDownUp,
|
|
13
13
|
functionFromTraversal
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-N5FJ5YIA.js";
|
|
15
15
|
|
|
16
|
-
//
|
|
17
|
-
var
|
|
16
|
+
// node_modules/.bun/@cubing+lazy-promise@0.1.1/node_modules/@cubing/lazy-promise/src/LazyPromise.ts
|
|
17
|
+
var LazyPromise = class {
|
|
18
|
+
#executor;
|
|
18
19
|
constructor(executor) {
|
|
19
|
-
|
|
20
|
-
resolve();
|
|
21
|
-
});
|
|
22
|
-
this._executor = executor;
|
|
20
|
+
this.#executor = executor;
|
|
23
21
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
22
|
+
#cached;
|
|
23
|
+
async #getCached() {
|
|
24
|
+
return this.#cached ??= Promise.resolve(this.#executor());
|
|
28
25
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
// Type signature from TypeScript
|
|
27
|
+
// biome-ignore lint/suspicious/noThenProperty: We're implementing the `Promise` API!
|
|
28
|
+
async then(onfulfilled, onrejected) {
|
|
29
|
+
return this.#getCached().then(onfulfilled, onrejected);
|
|
33
30
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
});
|
|
31
|
+
// Type signature from TypeScript
|
|
32
|
+
catch(onrejected) {
|
|
33
|
+
return this.#getCached().catch(onrejected);
|
|
38
34
|
}
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return this._promise.then(onFulfilled, onRejected);
|
|
35
|
+
// Type signature from TypeScript
|
|
36
|
+
async finally(onfinally) {
|
|
37
|
+
return this.#getCached().finally(onfinally);
|
|
43
38
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return this._promise.catch(onRejected);
|
|
39
|
+
get [Symbol.toStringTag]() {
|
|
40
|
+
return "LazyPromise";
|
|
47
41
|
}
|
|
48
42
|
};
|
|
49
|
-
function from(function_) {
|
|
50
|
-
return new PLazy((resolve) => {
|
|
51
|
-
resolve(function_());
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
43
|
|
|
55
44
|
// src/cubing/puzzles/stickerings/mask.ts
|
|
56
45
|
function getFaceletStickeringMask(stickeringMask, orbitName, pieceIdx, faceletIdx, hint) {
|
|
@@ -180,6 +169,7 @@ var StickeringManager = class {
|
|
|
180
169
|
constructor(kpuzzle) {
|
|
181
170
|
this.kpuzzle = kpuzzle;
|
|
182
171
|
}
|
|
172
|
+
kpuzzle;
|
|
183
173
|
and(pieceSets) {
|
|
184
174
|
const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
|
|
185
175
|
for (const orbitDefinition of this.kpuzzle.definition.orbits) {
|
|
@@ -771,10 +761,8 @@ async function cubeLikeStickeringList(puzzleID, options) {
|
|
|
771
761
|
|
|
772
762
|
// src/cubing/puzzles/async/lazy-cached.ts
|
|
773
763
|
function getCached(getValue) {
|
|
774
|
-
|
|
775
|
-
return () =>
|
|
776
|
-
return cachedPromise ??= getValue();
|
|
777
|
-
};
|
|
764
|
+
const lazyPromise = new LazyPromise(getValue);
|
|
765
|
+
return () => lazyPromise;
|
|
778
766
|
}
|
|
779
767
|
|
|
780
768
|
// src/cubing/puzzles/async/async-pg3d.ts
|
|
@@ -868,16 +856,14 @@ var CubePGPuzzleLoader = class extends PGPuzzleLoader {
|
|
|
868
856
|
algTransformData = cubeMirrorTransforms;
|
|
869
857
|
};
|
|
870
858
|
function puzzleSpecificSimplifyOptionsPromise(kpuzzlePromiseFn) {
|
|
871
|
-
return new
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
}
|
|
880
|
-
);
|
|
859
|
+
return new LazyPromise(async () => {
|
|
860
|
+
const kpuzzle = await kpuzzlePromiseFn();
|
|
861
|
+
return {
|
|
862
|
+
quantumMoveOrder: (m) => {
|
|
863
|
+
return kpuzzle.moveToTransformation(new Move(m)).repetitionOrder();
|
|
864
|
+
}
|
|
865
|
+
};
|
|
866
|
+
});
|
|
881
867
|
}
|
|
882
868
|
|
|
883
869
|
// src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.ts
|
|
@@ -1401,7 +1387,7 @@ var experimental3x3x3KPuzzle = new KPuzzle(
|
|
|
1401
1387
|
);
|
|
1402
1388
|
cube3x3x3KPuzzleDefinition.experimentalIsPatternSolved = experimentalIs3x3x3Solved;
|
|
1403
1389
|
var bigCubePuzzleOrientation = getCached(
|
|
1404
|
-
() => import("./big-puzzle-orientation-
|
|
1390
|
+
() => import("./big-puzzle-orientation-ADWIOX6S.js")
|
|
1405
1391
|
);
|
|
1406
1392
|
|
|
1407
1393
|
// src/cubing/puzzles/implementations/3x3x3/cube3x3x3KeyMapping.ts
|
|
@@ -1439,7 +1425,7 @@ var cube3x3x3KeyMapping = {
|
|
|
1439
1425
|
};
|
|
1440
1426
|
|
|
1441
1427
|
// src/cubing/puzzles/implementations/3x3x3/puzzle-specific-simplifications.ts
|
|
1442
|
-
function makeSourceInfo(moveStrings, type,
|
|
1428
|
+
function makeSourceInfo(moveStrings, type, from, to) {
|
|
1443
1429
|
const output = [];
|
|
1444
1430
|
for (const moveString of moveStrings) {
|
|
1445
1431
|
const move = Move.fromString(moveString);
|
|
@@ -1447,7 +1433,7 @@ function makeSourceInfo(moveStrings, type, from2, to) {
|
|
|
1447
1433
|
if (![-1, 1].includes(direction)) {
|
|
1448
1434
|
throw new Error("Invalid config move");
|
|
1449
1435
|
}
|
|
1450
|
-
output.push({ family, direction, type, from
|
|
1436
|
+
output.push({ family, direction, type, from, to });
|
|
1451
1437
|
}
|
|
1452
1438
|
return output;
|
|
1453
1439
|
}
|
|
@@ -1531,9 +1517,9 @@ function firstOfType(axis, moveSourceType) {
|
|
|
1531
1517
|
var areQuantumMovesSameAxis = (quantumMove1, quantumMove2) => {
|
|
1532
1518
|
return byFamily[quantumMove1.family].axis === byFamily[quantumMove2.family].axis;
|
|
1533
1519
|
};
|
|
1534
|
-
function simplestMove(axis,
|
|
1535
|
-
if (
|
|
1536
|
-
const sliceSpecificInfo = byAxisThenSpecificSlices[axis].get(
|
|
1520
|
+
function simplestMove(axis, from, to, directedAmount) {
|
|
1521
|
+
if (from + 1 === to) {
|
|
1522
|
+
const sliceSpecificInfo = byAxisThenSpecificSlices[axis].get(from);
|
|
1537
1523
|
if (sliceSpecificInfo) {
|
|
1538
1524
|
return new Move(
|
|
1539
1525
|
new QuantumMove(sliceSpecificInfo.family),
|
|
@@ -1543,18 +1529,18 @@ function simplestMove(axis, from2, to, directedAmount) {
|
|
|
1543
1529
|
}
|
|
1544
1530
|
const axisInfo = axisInfos[axis];
|
|
1545
1531
|
const { sliceDiameter } = axisInfo;
|
|
1546
|
-
if (
|
|
1532
|
+
if (from === 0 && to === sliceDiameter) {
|
|
1547
1533
|
const moveSourceInfo2 = firstOfType(axis, 5 /* ROTATION */);
|
|
1548
1534
|
return new Move(
|
|
1549
1535
|
new QuantumMove(moveSourceInfo2.family),
|
|
1550
1536
|
directedAmount * moveSourceInfo2.direction
|
|
1551
1537
|
);
|
|
1552
1538
|
}
|
|
1553
|
-
const far =
|
|
1539
|
+
const far = from + to > sliceDiameter;
|
|
1554
1540
|
if (far) {
|
|
1555
|
-
[
|
|
1541
|
+
[from, to] = [sliceDiameter - to, sliceDiameter - from];
|
|
1556
1542
|
}
|
|
1557
|
-
let outerLayer =
|
|
1543
|
+
let outerLayer = from + 1;
|
|
1558
1544
|
let innerLayer = to;
|
|
1559
1545
|
const slice = outerLayer === innerLayer;
|
|
1560
1546
|
if (slice) {
|
|
@@ -1648,14 +1634,14 @@ function simplifySameAxisMoves(moves, quantumMod = true) {
|
|
|
1648
1634
|
if (!lastCandidateRange) {
|
|
1649
1635
|
return moves;
|
|
1650
1636
|
}
|
|
1651
|
-
let [
|
|
1652
|
-
if (
|
|
1653
|
-
[
|
|
1637
|
+
let [from, to] = lastCandidateRange.sliceDeltas.keys();
|
|
1638
|
+
if (from > to) {
|
|
1639
|
+
[from, to] = [to, from];
|
|
1654
1640
|
}
|
|
1655
|
-
const directedAmount = lastCandidateRange.sliceDeltas.get(
|
|
1641
|
+
const directedAmount = lastCandidateRange.sliceDeltas.get(from);
|
|
1656
1642
|
return [
|
|
1657
1643
|
...moves.slice(0, -lastCandidateRange.suffixLength),
|
|
1658
|
-
...directedAmount !== 0 ? [simplestMove(axis,
|
|
1644
|
+
...directedAmount !== 0 ? [simplestMove(axis, from, to, directedAmount)] : []
|
|
1659
1645
|
];
|
|
1660
1646
|
}
|
|
1661
1647
|
var puzzleSpecificSimplifyOptions333 = {
|
|
@@ -1736,7 +1722,7 @@ var cube3x3x3 = {
|
|
|
1736
1722
|
};
|
|
1737
1723
|
|
|
1738
1724
|
export {
|
|
1739
|
-
|
|
1725
|
+
LazyPromise,
|
|
1740
1726
|
getCached,
|
|
1741
1727
|
cube3x3x3KPuzzleDefinition,
|
|
1742
1728
|
puzzleOrientation3x3x3Idx,
|
|
@@ -1762,4 +1748,4 @@ export {
|
|
|
1762
1748
|
PGPuzzleLoader,
|
|
1763
1749
|
CubePGPuzzleLoader
|
|
1764
1750
|
};
|
|
1765
|
-
//# sourceMappingURL=chunk-
|
|
1751
|
+
//# sourceMappingURL=chunk-WBMKMQAL.js.map
|