cubing 0.25.5 → 0.25.9

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.
Files changed (126) hide show
  1. package/dist/esm/{2x2x2.kpuzzle.json-RUB44MJV.js → 2x2x2.kpuzzle.json-BHTFIME6.js} +2 -2
  2. package/dist/esm/{2x2x2.kpuzzle.json-RUB44MJV.js.map → 2x2x2.kpuzzle.json-BHTFIME6.js.map} +0 -0
  3. package/dist/esm/{2x2x2.kpuzzle.svg-CQF2FTV7.js → 2x2x2.kpuzzle.svg-CYX37VBY.js} +2 -2
  4. package/dist/esm/{2x2x2.kpuzzle.svg-CQF2FTV7.js.map → 2x2x2.kpuzzle.svg-CYX37VBY.js.map} +0 -0
  5. package/dist/esm/{2x2x2.sgs.json-FBJ4RQ4C.js → 2x2x2.sgs.json-IO3JG72M.js} +6 -6
  6. package/dist/esm/{2x2x2.sgs.json-FBJ4RQ4C.js.map → 2x2x2.sgs.json-IO3JG72M.js.map} +0 -0
  7. package/dist/esm/{3d-dynamic-TNYERP4O.js → 3d-dynamic-HS4RJWAT.js} +8 -8
  8. package/dist/esm/{3d-dynamic-TNYERP4O.js.map → 3d-dynamic-HS4RJWAT.js.map} +1 -1
  9. package/dist/esm/{3x3x3-ll.kpuzzle.svg-53CBPG5O.js → 3x3x3-ll.kpuzzle.svg-KZNSV76X.js} +2 -2
  10. package/dist/esm/{3x3x3-ll.kpuzzle.svg-53CBPG5O.js.map → 3x3x3-ll.kpuzzle.svg-KZNSV76X.js.map} +0 -0
  11. package/dist/esm/{3x3x3-min2phase-FPRJ5PCJ.js → 3x3x3-min2phase-UBW46KDU.js} +2 -2
  12. package/dist/esm/{3x3x3-min2phase-FPRJ5PCJ.js.map → 3x3x3-min2phase-UBW46KDU.js.map} +0 -0
  13. package/dist/esm/{3x3x3.kpuzzle.svg-ERSSH66P.js → 3x3x3.kpuzzle.svg-5U7LUACF.js} +2 -2
  14. package/dist/esm/{3x3x3.kpuzzle.svg-ERSSH66P.js.map → 3x3x3.kpuzzle.svg-5U7LUACF.js.map} +0 -0
  15. package/dist/esm/{444-solver-YZ6PC54L.js → 444-solver-4R3P6TGG.js} +6 -6
  16. package/dist/esm/{444-solver-YZ6PC54L.js.map → 444-solver-4R3P6TGG.js.map} +0 -0
  17. package/dist/esm/alg/index.js +2 -2
  18. package/dist/esm/bluetooth/index.js +5 -5
  19. package/dist/esm/{chunk-JLNFWJIT.js → chunk-2YDIR5JL.js} +9 -6
  20. package/dist/esm/{chunk-JLNFWJIT.js.map → chunk-2YDIR5JL.js.map} +2 -2
  21. package/dist/esm/{chunk-LGM2HUUG.js → chunk-33FD473T.js} +5 -5
  22. package/dist/esm/{chunk-LGM2HUUG.js.map → chunk-33FD473T.js.map} +0 -0
  23. package/dist/esm/{chunk-TXTMBIUR.js → chunk-6BUCXDZU.js} +3 -3
  24. package/dist/esm/{chunk-TXTMBIUR.js.map → chunk-6BUCXDZU.js.map} +0 -0
  25. package/dist/esm/{chunk-QEDC2QTN.js → chunk-C6I4KFI2.js} +4 -4
  26. package/dist/esm/{chunk-QEDC2QTN.js.map → chunk-C6I4KFI2.js.map} +0 -0
  27. package/dist/esm/{chunk-WDJDRVZZ.js → chunk-CS6S3OZ5.js} +2 -2
  28. package/dist/esm/{chunk-WDJDRVZZ.js.map → chunk-CS6S3OZ5.js.map} +0 -0
  29. package/dist/esm/{chunk-EWRBHQFX.js → chunk-DO7GZAW4.js} +35 -35
  30. package/dist/esm/{chunk-EWRBHQFX.js.map → chunk-DO7GZAW4.js.map} +1 -1
  31. package/dist/esm/{chunk-27KJGD3S.js → chunk-FB7SFELN.js} +2 -2
  32. package/dist/esm/{chunk-27KJGD3S.js.map → chunk-FB7SFELN.js.map} +0 -0
  33. package/dist/esm/{chunk-IVQ4ITE2.js → chunk-GBMX6FHY.js} +2 -2
  34. package/dist/esm/{chunk-IVQ4ITE2.js.map → chunk-GBMX6FHY.js.map} +1 -1
  35. package/dist/esm/{chunk-RJSX2HO4.js → chunk-LYU3GNBG.js} +3 -3
  36. package/dist/esm/{chunk-RJSX2HO4.js.map → chunk-LYU3GNBG.js.map} +0 -0
  37. package/dist/esm/{chunk-WO2AXYFE.js → chunk-MGJA5U5O.js} +1 -1
  38. package/dist/esm/{chunk-WO2AXYFE.js.map → chunk-MGJA5U5O.js.map} +0 -0
  39. package/dist/esm/{chunk-U2TSTTDG.js → chunk-NSLR2SC4.js} +2 -2
  40. package/dist/esm/{chunk-U2TSTTDG.js.map → chunk-NSLR2SC4.js.map} +0 -0
  41. package/dist/esm/{chunk-F5WNHV7V.js → chunk-ODQRVWJB.js} +3 -3
  42. package/dist/esm/{chunk-F5WNHV7V.js.map → chunk-ODQRVWJB.js.map} +1 -1
  43. package/dist/esm/{chunk-KJZNEDOV.js → chunk-OFGQQQBY.js} +4 -4
  44. package/dist/esm/{chunk-KJZNEDOV.js.map → chunk-OFGQQQBY.js.map} +0 -0
  45. package/dist/esm/{chunk-4VNM5SER.js → chunk-Q7QSEHWH.js} +6 -6
  46. package/dist/esm/{chunk-4VNM5SER.js.map → chunk-Q7QSEHWH.js.map} +1 -1
  47. package/dist/esm/{chunk-Y32HHZUY.js → chunk-YAOUFM4D.js} +24 -6
  48. package/dist/esm/chunk-YAOUFM4D.js.map +7 -0
  49. package/dist/esm/{chunk-V5K5JN2N.js → chunk-YCLG3ZLR.js} +119 -102
  50. package/dist/esm/chunk-YCLG3ZLR.js.map +7 -0
  51. package/dist/esm/{clock.kpuzzle.json-BQKNKV3G.js → clock.kpuzzle.json-PYHONPBY.js} +2 -2
  52. package/dist/esm/{clock.kpuzzle.json-BQKNKV3G.js.map → clock.kpuzzle.json-PYHONPBY.js.map} +0 -0
  53. package/dist/esm/{clock.kpuzzle.svg-B7TMN3SY.js → clock.kpuzzle.svg-JSRDCSQF.js} +2 -2
  54. package/dist/esm/{clock.kpuzzle.svg-B7TMN3SY.js.map → clock.kpuzzle.svg-JSRDCSQF.js.map} +0 -0
  55. package/dist/esm/{fto-solver-HI6NIV74.js → fto-solver-E6YEK26S.js} +2 -2
  56. package/dist/esm/{fto-solver-HI6NIV74.js.map → fto-solver-E6YEK26S.js.map} +0 -0
  57. package/dist/esm/{fto.dynamic-RAXDXLKL.js → fto.dynamic-TCAH2G3H.js} +7 -7
  58. package/dist/esm/{fto.dynamic-RAXDXLKL.js.map → fto.dynamic-TCAH2G3H.js.map} +0 -0
  59. package/dist/esm/{kilominx.kpuzzle.svg-7XJBOKFU.js → kilominx.kpuzzle.svg-ZLRTRUTM.js} +2 -2
  60. package/dist/esm/{kilominx.kpuzzle.svg-7XJBOKFU.js.map → kilominx.kpuzzle.svg-ZLRTRUTM.js.map} +0 -0
  61. package/dist/esm/{kilosolver-N6JM5PUY.js → kilosolver-IQ4LB7VP.js} +5 -4
  62. package/dist/esm/{kilosolver-N6JM5PUY.js.map → kilosolver-IQ4LB7VP.js.map} +1 -1
  63. package/dist/esm/kpuzzle/index.js +3 -3
  64. package/dist/esm/{master_tetraminx-solver-KBQJGW4A.js → master_tetraminx-solver-JQSMYUQN.js} +5 -4
  65. package/dist/esm/{master_tetraminx-solver-KBQJGW4A.js.map → master_tetraminx-solver-JQSMYUQN.js.map} +1 -1
  66. package/dist/esm/megaminx.sgs.json-O2B5OU3T.js +16 -0
  67. package/dist/esm/{megaminx.sgs.json-3ZEDZMWF.js.map → megaminx.sgs.json-O2B5OU3T.js.map} +0 -0
  68. package/dist/esm/notation/index.js +3 -3
  69. package/dist/esm/protocol/index.js +4 -4
  70. package/dist/esm/puzzle-geometry/index.js +3 -3
  71. package/dist/esm/puzzles/index.js +4 -4
  72. package/dist/esm/{pyraminx.kpuzzle.svg-QBBMZVDY.js → pyraminx.kpuzzle.svg-UHDZCBET.js} +2 -2
  73. package/dist/esm/{pyraminx.kpuzzle.svg-QBBMZVDY.js.map → pyraminx.kpuzzle.svg-UHDZCBET.js.map} +0 -0
  74. package/dist/esm/pyraminx.sgs.json-Z5KUYMLD.js +14 -0
  75. package/dist/esm/{pyraminx.sgs.json-AUUH6ELM.js.map → pyraminx.sgs.json-Z5KUYMLD.js.map} +0 -0
  76. package/dist/esm/redi_cube-S63AVKYL.js +565 -0
  77. package/dist/esm/redi_cube-S63AVKYL.js.map +7 -0
  78. package/dist/esm/redi_cube.kpuzzle.json-43CP47Z6.js +66 -0
  79. package/dist/esm/redi_cube.kpuzzle.json-43CP47Z6.js.map +7 -0
  80. package/dist/esm/redi_cube.kpuzzle.svg-3DWDYE3O.js +160 -0
  81. package/dist/esm/redi_cube.kpuzzle.svg-3DWDYE3O.js.map +7 -0
  82. package/dist/esm/scramble/index.js +7 -7
  83. package/dist/esm/search/index.js +7 -7
  84. package/dist/esm/{search-worker-js-entry-B76LGKC2.js → search-worker-js-entry-YV4TZPNY.js} +120 -69
  85. package/dist/esm/search-worker-js-entry-YV4TZPNY.js.map +7 -0
  86. package/dist/esm/{search-worker-ts-entry-JZTMF3AC.js → search-worker-ts-entry-ZHRSIMXB.js} +5 -5
  87. package/dist/esm/{search-worker-ts-entry-JZTMF3AC.js.map → search-worker-ts-entry-ZHRSIMXB.js.map} +0 -0
  88. package/dist/esm/skewb.sgs.json-GISOONJZ.js +16 -0
  89. package/dist/esm/{skewb.sgs.json-6NDFH63U.js.map → skewb.sgs.json-GISOONJZ.js.map} +0 -0
  90. package/dist/esm/{sq1-hyperorbit.kpuzzle.json-4XS5YACO.js → sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js} +2 -2
  91. package/dist/esm/{sq1-hyperorbit.kpuzzle.json-4XS5YACO.js.map → sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js.map} +0 -0
  92. package/dist/esm/{sq1-hyperorbit.kpuzzle.svg-ID57EER7.js → sq1-hyperorbit.kpuzzle.svg-MNHJTJ6V.js} +2 -2
  93. package/dist/esm/{sq1-hyperorbit.kpuzzle.svg-ID57EER7.js.map → sq1-hyperorbit.kpuzzle.svg-MNHJTJ6V.js.map} +0 -0
  94. package/dist/esm/{sq1-solver-P3IWWET7.js → sq1-solver-NJ7B44MA.js} +2 -2
  95. package/dist/esm/{sq1-solver-P3IWWET7.js.map → sq1-solver-NJ7B44MA.js.map} +0 -0
  96. package/dist/esm/stream/index.js +2 -2
  97. package/dist/esm/twisty/index.js +542 -534
  98. package/dist/esm/twisty/index.js.map +3 -3
  99. package/dist/esm/worker-inside-generated-string-JYZKHSA6.js +3674 -0
  100. package/dist/esm/worker-inside-generated-string-JYZKHSA6.js.map +7 -0
  101. package/dist/types/kpuzzle/KPuzzleDefinition.d.ts +1 -0
  102. package/dist/types/kpuzzle/KState.d.ts +1 -0
  103. package/dist/types/kpuzzle/KTransformation.d.ts +1 -0
  104. package/dist/types/puzzles/implementations/redi-cube/index.d.ts +2 -0
  105. package/dist/types/puzzles/implementations/redi-cube/redi_cube.kpuzzle.json.d.ts +2 -0
  106. package/dist/types/puzzles/implementations/redi-cube/redi_cube.kpuzzle.svg.d.ts +1 -0
  107. package/dist/types/search/inside/api.d.ts +6 -0
  108. package/dist/types/search/inside/solve/puzzles/redi_cube.d.ts +2 -0
  109. package/dist/types/search/outside.d.ts +2 -0
  110. package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
  111. package/dist/types/twisty/model/TwistyPlayerModel.d.ts +27 -46
  112. package/dist/types/twisty/model/TwistySceneModel.d.ts +27 -0
  113. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +1 -0
  114. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts +3 -3
  115. package/dist/types/vendor/xyzzy/fto-solver-original.d.ts +1 -30
  116. package/dist/types/vendor/xyzzy/redi_cube.d.ts +2 -0
  117. package/package.json +21 -22
  118. package/dist/esm/chunk-V5K5JN2N.js.map +0 -7
  119. package/dist/esm/chunk-Y32HHZUY.js.map +0 -7
  120. package/dist/esm/megaminx.sgs.json-3ZEDZMWF.js +0 -16
  121. package/dist/esm/pyraminx.sgs.json-AUUH6ELM.js +0 -14
  122. package/dist/esm/search-worker-js-entry-B76LGKC2.js.map +0 -7
  123. package/dist/esm/skewb.sgs.json-6NDFH63U.js +0 -16
  124. package/dist/esm/worker-inside-generated-string-QVH4RRM7.js +0 -3522
  125. package/dist/esm/worker-inside-generated-string-QVH4RRM7.js.map +0 -7
  126. package/dist/types/vendor/xyzzy/rediscrambler.d.ts +0 -72
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cubing/search/inside/solve/puzzles/clock.ts", "../../src/cubing/search/inside/solve/puzzles/wca-minx.ts", "../../src/cubing/vendor/comlink-everywhere/outside/index.ts", "../../src/cubing/search/inside/search-worker-ts-entry-path-getter.ts", "../../src/cubing/search/instantiator.ts", "../../src/cubing/search/outside.ts"],
4
- "sourcesContent": ["import { randomUIntBelowFactory } from \"../../../../vendor/random-uint-below\";\n\nconst pins = [\"UR\", \"DR\", \"DL\", \"UL\"];\nconst backMoves = [\"U\", \"R\", \"D\", \"L\", \"ALL\"];\nconst frontMoves = pins.concat(backMoves);\n\nconst randomUIntBelowPromise = randomUIntBelowFactory();\n\nexport async function randomClockScrambleString(): Promise<string> {\n const randomUIntBelow = await randomUIntBelowPromise;\n\n let filteringMoveCount = 0;\n\n async function randomSuffix(randomUIntBelow: (max: number) => number) {\n const amount = randomUIntBelow(12);\n if (amount !== 0) {\n filteringMoveCount++;\n }\n if (amount <= 6) {\n return `${amount}+`;\n } else {\n return `${12 - amount}-`;\n }\n }\n\n const moves = [];\n async function side(families: string[]): Promise<void> {\n for (const family of families) {\n moves.push(`${family}${await randomSuffix(randomUIntBelow)}`);\n }\n }\n\n await side(frontMoves);\n moves.push(\"y2\");\n await side(backMoves);\n\n // https://www.worldcubeassociation.org/regulations/#4b3\n if (filteringMoveCount < 2) {\n return randomClockScrambleString();\n }\n\n for (const pin of pins) {\n if (randomUIntBelow(2) === 0) {\n moves.push(pin);\n }\n }\n return moves.join(\" \");\n}\n", "import { randomUIntBelowFactory } from \"../../../../vendor/random-uint-below\";\n\nconst randomUIntBelowPromise = randomUIntBelowFactory();\n\nconst suffixes = [\"++\", \"--\"];\n\nexport async function randomMegaminxScrambleString(): Promise<string> {\n const randomUIntBelow = await randomUIntBelowPromise;\n\n function rdPair(): string {\n return `R${suffixes[randomUIntBelow(2)]} D${suffixes[randomUIntBelow(2)]}`;\n }\n\n function randomU(): string {\n return `U${[\"\", \"'\"][randomUIntBelow(2)]}`;\n }\n\n function row(): string {\n const chunks = [];\n for (let i = 0; i < 5; i++) {\n chunks.push(rdPair());\n }\n chunks.push(randomU());\n return chunks.join(\" \");\n }\n\n const chunks = [];\n for (let i = 0; i < 6; i++) {\n chunks.push(row());\n }\n return chunks.join(\"\\n\");\n}\n", "import nodeEndpoint from \"../node-adapter\";\n\nexport { wrap } from \"comlink\";\n// Mangled so that bundlers don't try to inline the source.\n\nconst worker_threads_mangled = \"w-orker-_threa-ds\";\nconst worker_threads_unmangled = () => worker_threads_mangled.replace(/-/g, \"\");\n\nconst useNodeWorkarounds =\n typeof globalThis.Worker === \"undefined\" &&\n typeof (globalThis as any).WorkerNavigator === \"undefined\";\n\nasync function nodeWorker(\n source: string | URL,\n options?: { eval?: boolean },\n): Promise<Worker> {\n const { Worker: NodeWorker } = await import(worker_threads_unmangled());\n const worker = new NodeWorker(source, options);\n worker.unref();\n return nodeEndpoint(worker);\n}\n\nexport async function constructWorker(\n source: string | URL,\n options?: { eval?: boolean; type?: WorkerType },\n): Promise<Worker> {\n let worker;\n if (useNodeWorkarounds) {\n return nodeWorker(source, { eval: options?.eval });\n } else {\n if (options?.eval) {\n const blob = new Blob([source as string], {\n type: \"application/javascript\",\n });\n source = URL.createObjectURL(blob);\n }\n worker = new globalThis.Worker(source, {\n type: options ? options.type : undefined, // TODO: Is it safe to use `options?.type`?\n });\n }\n return worker;\n}\n", "import { exposeAPI } from \"./worker-guard\";\n\nexposeAPI.expose = false;\nexport async function getWorkerEntryFileURL() {\n return (await import(\"./search-worker-ts-entry\")).WORKER_ENTRY_FILE_URL;\n}\n", "import { constructWorker, wrap } from \"../vendor/comlink-everywhere/outside\";\nimport type { WorkerInsideAPI } from \"./inside/api\";\nimport { getWorkerEntryFileURL } from \"./inside/search-worker-ts-entry-path-getter\";\n\nconst MODULE_WORKER_TIMEOUT_MILLISECONDS = 5000;\nexport async function instantiateModuleWorker(): Promise<WorkerInsideAPI> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<WorkerInsideAPI>(async (resolve, reject) => {\n const timeoutID = setTimeout(() => {\n reject(new Error(\"module instantiation timeout\"));\n }, MODULE_WORKER_TIMEOUT_MILLISECONDS);\n\n try {\n const workerEntryFileURL = await getWorkerEntryFileURL();\n if (!workerEntryFileURL) {\n // This happens in `bundle-global`.\n reject(new Error(\"Could not get worker entry file URL.\"));\n }\n let url: string | URL;\n if (globalThis.Blob) {\n // Standard browser-like environment.\n const importSrc = `import \"${workerEntryFileURL}\";`;\n const blob = new Blob([importSrc], {\n type: \"text/javascript\",\n });\n url = URL.createObjectURL(blob);\n } else {\n // `node` doesn't have `Blob`. We can keep the original entry file URL there, but we have to wrap it.\n // Needed for `node`\n url = new URL(workerEntryFileURL);\n }\n\n const worker = (await constructWorker(url, {\n type: \"module\",\n })) as Worker & {\n nodeWorker?: import(\"worker_threads\").Worker;\n };\n\n const onError = (e: ErrorEvent) => {\n // TODO: Remove fallback when Firefox implements module workers: https://bugzilla.mozilla.org/show_bug.cgi?id=1247687\n if (e.message?.startsWith(\"SyntaxError\")) {\n reject(e);\n }\n };\n\n const onFirstMessage = (messageData: string) => {\n if (messageData === \"comlink-exposed\") {\n // We need to clear the timeout so that we don't prevent `node` from exiting in the meantime.\n clearTimeout(timeoutID);\n resolve(wrap<WorkerInsideAPI>(worker));\n } else {\n reject(\n new Error(\"wrong module instantiation message \" + messageData),\n );\n }\n };\n\n if (worker.nodeWorker) {\n // We have to use `once` so the `unref()` from `comlink-everywhere` allows the process to quite as expected.\n worker.nodeWorker.once(\"message\", onFirstMessage);\n } else {\n worker.addEventListener(\"error\", onError, {\n once: true,\n });\n worker.addEventListener(\"message\", (e) => onFirstMessage(e.data), {\n once: true,\n });\n }\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport async function instantiateWorker(): Promise<WorkerInsideAPI> {\n try {\n // `await` is important for `catch` to work.\n return await instantiateModuleWorker();\n } catch (e) {\n console.warn(\n \"Could not instantiate module worker (this is expected in Firefox and `bundle-global`). Falling back to string worker.\",\n e,\n );\n const { workerSource } = await import(\n \"./worker-inside-generated-string.js\"\n );\n const worker = await constructWorker(workerSource, { eval: true });\n return wrap(worker);\n }\n}\n", "import { Alg } from \"../alg\";\n// import { preInitialize222 } from \"../implementations/2x2x2\";\nimport { randomClockScrambleString } from \"./inside/solve/puzzles/clock\"; // TODO: don't reach into `inside` code.\nimport { randomMegaminxScrambleString } from \"./inside/solve/puzzles/wca-minx\"; // TODO: don't reach into `inside` code.\nimport { instantiateWorker } from \"./instantiator\";\nimport type { WorkerInsideAPI } from \"./inside/api\";\nimport type { KState } from \"../kpuzzle/KState\";\n\nlet cachedWorkerInstance: Promise<WorkerInsideAPI> | null = null;\nasync function getCachedWorkerInstance(): Promise<WorkerInsideAPI> {\n return await (cachedWorkerInstance ??= instantiateWorker());\n}\n\n// Pre-initialize the scrambler for the given event. (Otherwise, an event is\n// initialized the first time you ask for a scramble for that event.)\n//\n// Some typical numbers for a fast computer:\n// - 3x3x3 initialization: 200ms\n// - Each 3x3x3 scramble: 50ms\n// - 4x4x4 initialization: 2500ms\n// - Each 4x4x4 scramble: 300ms to 800ms\n//\n// It is safe to immediately call for a scramble\n// any time after starting pre-initialization, or to call for them without\n// pre-initializing. Pre-initializing essentially gives the scramble worker a\n// head start in case a scramble doesn't get requested immediately.\n//\n// Note that events cannot be pre-initialized in parallel. Attempting to\n// pre-initialize multiple events will initialize them consecutively. Scrambles\n// for a given event cannot be computed while another event is being initialized.\nexport function _preInitializationHintForEvent(\n eventID: string,\n // callback?: () => void\n): void {\n switch (eventID) {\n case \"clock\":\n case \"minx\":\n return;\n case \"333oh\":\n return _preInitializationHintForEvent(\"333\");\n }\n (async () => {\n await (await getCachedWorkerInstance()).initialize(eventID);\n })();\n}\n\nexport async function randomScrambleForEvent(eventID: string): Promise<Alg> {\n switch (eventID) {\n case \"clock\":\n return Alg.fromString(await randomClockScrambleString());\n case \"minx\":\n return Alg.fromString(await randomMegaminxScrambleString());\n }\n const prom = _randomScrambleStringForEvent(eventID);\n const wat = await prom;\n return Alg.fromString(wat);\n}\n\nexport async function _randomScrambleStringForEvent(\n eventID: string,\n): Promise<string> {\n const cwi = await getCachedWorkerInstance();\n return cwi.randomScrambleStringForEvent(eventID);\n}\n\nexport async function randomScrambleStringForEvent(\n eventID: string,\n): Promise<string> {\n switch (eventID) {\n case \"clock\":\n return randomClockScrambleString();\n case \"minx\":\n return randomMegaminxScrambleString();\n }\n return await _randomScrambleStringForEvent(eventID);\n}\n\nexport async function experimentalSolve3x3x3IgnoringCenters(\n state: KState,\n): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solve333ToString(state.stateData));\n}\n\nexport async function experimentalSolve2x2x2(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solve222ToString(state.stateData));\n}\n\nexport async function solveSkewb(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solveSkewbToString(state.stateData));\n}\n\nexport async function solvePyraminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solvePyraminxToString(state.stateData));\n}\n\nexport async function solveMegaminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solveMegaminxToString(state.stateData));\n}\n\nexport function setDebug(options: { logPerf?: boolean }): void {\n const { logPerf } = options;\n if (typeof logPerf !== \"undefined\") {\n getCachedWorkerInstance().then((cwi) => cwi.setDebugMeasurePerf(logPerf));\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { randomUIntBelowFactory } from \"../../../../vendor/random-uint-below\";\n\nconst pins = [\"UR\", \"DR\", \"DL\", \"UL\"];\nconst backMoves = [\"U\", \"R\", \"D\", \"L\", \"ALL\"];\nconst frontMoves = pins.concat(backMoves);\n\nconst randomUIntBelowPromise = randomUIntBelowFactory();\n\nexport async function randomClockScrambleString(): Promise<string> {\n const randomUIntBelow = await randomUIntBelowPromise;\n\n let filteringMoveCount = 0;\n\n async function randomSuffix(randomUIntBelow: (max: number) => number) {\n const amount = randomUIntBelow(12);\n if (amount !== 0) {\n filteringMoveCount++;\n }\n if (amount <= 6) {\n return `${amount}+`;\n } else {\n return `${12 - amount}-`;\n }\n }\n\n const moves = [];\n async function side(families: string[]): Promise<void> {\n for (const family of families) {\n moves.push(`${family}${await randomSuffix(randomUIntBelow)}`);\n }\n }\n\n await side(frontMoves);\n moves.push(\"y2\");\n await side(backMoves);\n\n // https://www.worldcubeassociation.org/regulations/#4b3\n if (filteringMoveCount < 2) {\n return randomClockScrambleString();\n }\n\n for (const pin of pins) {\n if (randomUIntBelow(2) === 0) {\n moves.push(pin);\n }\n }\n return moves.join(\" \");\n}\n", "import { randomUIntBelowFactory } from \"../../../../vendor/random-uint-below\";\n\nconst randomUIntBelowPromise = randomUIntBelowFactory();\n\nconst suffixes = [\"++\", \"--\"];\n\nexport async function randomMegaminxScrambleString(): Promise<string> {\n const randomUIntBelow = await randomUIntBelowPromise;\n\n function rdPair(): string {\n return `R${suffixes[randomUIntBelow(2)]} D${suffixes[randomUIntBelow(2)]}`;\n }\n\n function randomU(): string {\n return `U${[\"\", \"'\"][randomUIntBelow(2)]}`;\n }\n\n function row(): string {\n const chunks = [];\n for (let i = 0; i < 5; i++) {\n chunks.push(rdPair());\n }\n chunks.push(randomU());\n return chunks.join(\" \");\n }\n\n const chunks = [];\n for (let i = 0; i < 6; i++) {\n chunks.push(row());\n }\n return chunks.join(\"\\n\");\n}\n", "import nodeEndpoint from \"../node-adapter\";\n\nexport { wrap } from \"comlink\";\n// Mangled so that bundlers don't try to inline the source.\n\nconst worker_threads_mangled = \"w-orker-_threa-ds\";\nconst worker_threads_unmangled = () => worker_threads_mangled.replace(/-/g, \"\");\n\nconst useNodeWorkarounds =\n typeof globalThis.Worker === \"undefined\" &&\n typeof (globalThis as any).WorkerNavigator === \"undefined\";\n\nasync function nodeWorker(\n source: string | URL,\n options?: { eval?: boolean },\n): Promise<Worker> {\n const { Worker: NodeWorker } = await import(worker_threads_unmangled());\n const worker = new NodeWorker(source, options);\n worker.unref();\n return nodeEndpoint(worker);\n}\n\nexport async function constructWorker(\n source: string | URL,\n options?: { eval?: boolean; type?: WorkerType },\n): Promise<Worker> {\n let worker;\n if (useNodeWorkarounds) {\n return nodeWorker(source, { eval: options?.eval });\n } else {\n if (options?.eval) {\n const blob = new Blob([source as string], {\n type: \"application/javascript\",\n });\n source = URL.createObjectURL(blob);\n }\n worker = new globalThis.Worker(source, {\n type: options ? options.type : undefined, // TODO: Is it safe to use `options?.type`?\n });\n }\n return worker;\n}\n", "import { exposeAPI } from \"./worker-guard\";\n\nexposeAPI.expose = false;\nexport async function getWorkerEntryFileURL() {\n return (await import(\"./search-worker-ts-entry\")).WORKER_ENTRY_FILE_URL;\n}\n", "import { constructWorker, wrap } from \"../vendor/comlink-everywhere/outside\";\nimport type { WorkerInsideAPI } from \"./inside/api\";\nimport { getWorkerEntryFileURL } from \"./inside/search-worker-ts-entry-path-getter\";\n\nconst MODULE_WORKER_TIMEOUT_MILLISECONDS = 5000;\nexport async function instantiateModuleWorker(): Promise<WorkerInsideAPI> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<WorkerInsideAPI>(async (resolve, reject) => {\n const timeoutID = setTimeout(() => {\n reject(new Error(\"module instantiation timeout\"));\n }, MODULE_WORKER_TIMEOUT_MILLISECONDS);\n\n try {\n const workerEntryFileURL = await getWorkerEntryFileURL();\n if (!workerEntryFileURL) {\n // This happens in `bundle-global`.\n reject(new Error(\"Could not get worker entry file URL.\"));\n }\n let url: string | URL;\n if (globalThis.Blob) {\n // Standard browser-like environment.\n const importSrc = `import \"${workerEntryFileURL}\";`;\n const blob = new Blob([importSrc], {\n type: \"text/javascript\",\n });\n url = URL.createObjectURL(blob);\n } else {\n // `node` doesn't have `Blob`. We can keep the original entry file URL there, but we have to wrap it.\n // Needed for `node`\n url = new URL(workerEntryFileURL);\n }\n\n const worker = (await constructWorker(url, {\n type: \"module\",\n })) as Worker & {\n nodeWorker?: import(\"worker_threads\").Worker;\n };\n\n const onError = (e: ErrorEvent) => {\n // TODO: Remove fallback when Firefox implements module workers: https://bugzilla.mozilla.org/show_bug.cgi?id=1247687\n if (e.message?.startsWith(\"SyntaxError\")) {\n reject(e);\n }\n };\n\n const onFirstMessage = (messageData: string) => {\n if (messageData === \"comlink-exposed\") {\n // We need to clear the timeout so that we don't prevent `node` from exiting in the meantime.\n clearTimeout(timeoutID);\n resolve(wrap<WorkerInsideAPI>(worker));\n } else {\n reject(\n new Error(\"wrong module instantiation message \" + messageData),\n );\n }\n };\n\n if (worker.nodeWorker) {\n // We have to use `once` so the `unref()` from `comlink-everywhere` allows the process to quite as expected.\n worker.nodeWorker.once(\"message\", onFirstMessage);\n } else {\n worker.addEventListener(\"error\", onError, {\n once: true,\n });\n worker.addEventListener(\"message\", (e) => onFirstMessage(e.data), {\n once: true,\n });\n }\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport async function instantiateWorker(): Promise<WorkerInsideAPI> {\n try {\n // `await` is important for `catch` to work.\n return await instantiateModuleWorker();\n } catch (e) {\n console.warn(\n \"Could not instantiate module worker (this is expected in Firefox and `bundle-global`). Falling back to string worker.\",\n e,\n );\n const { workerSource } = await import(\n \"./worker-inside-generated-string.js\"\n );\n const worker = await constructWorker(workerSource, { eval: true });\n return wrap(worker);\n }\n}\n", "import { Alg } from \"../alg\";\n// import { preInitialize222 } from \"../implementations/2x2x2\";\nimport { randomClockScrambleString } from \"./inside/solve/puzzles/clock\"; // TODO: don't reach into `inside` code.\nimport { randomMegaminxScrambleString } from \"./inside/solve/puzzles/wca-minx\"; // TODO: don't reach into `inside` code.\nimport { instantiateWorker } from \"./instantiator\";\nimport type { PrefetchLevel, WorkerInsideAPI } from \"./inside/api\";\nimport type { KState } from \"../kpuzzle/KState\";\n\nlet cachedWorkerInstance: Promise<WorkerInsideAPI> | null = null;\nasync function getCachedWorkerInstance(): Promise<WorkerInsideAPI> {\n return await (cachedWorkerInstance ??= instantiateWorker());\n}\n\n// Pre-initialize the scrambler for the given event. (Otherwise, an event is\n// initialized the first time you ask for a scramble for that event.)\n//\n// Some typical numbers for a fast computer:\n// - 3x3x3 initialization: 200ms\n// - Each 3x3x3 scramble: 50ms\n// - 4x4x4 initialization: 2500ms\n// - Each 4x4x4 scramble: 300ms to 800ms\n//\n// It is safe to immediately call for a scramble\n// any time after starting pre-initialization, or to call for them without\n// pre-initializing. Pre-initializing essentially gives the scramble worker a\n// head start in case a scramble doesn't get requested immediately.\n//\n// Note that events cannot be pre-initialized in parallel. Attempting to\n// pre-initialize multiple events will initialize them consecutively. Scrambles\n// for a given event cannot be computed while another event is being initialized.\nexport function _preInitializationHintForEvent(\n eventID: string,\n // callback?: () => void\n): void {\n switch (eventID) {\n case \"clock\":\n case \"minx\":\n return;\n case \"333oh\":\n return _preInitializationHintForEvent(\"333\");\n }\n (async () => {\n await (await getCachedWorkerInstance()).initialize(eventID);\n })();\n}\n\nexport async function randomScrambleForEvent(eventID: string): Promise<Alg> {\n switch (eventID) {\n case \"clock\":\n return Alg.fromString(await randomClockScrambleString());\n case \"minx\":\n return Alg.fromString(await randomMegaminxScrambleString());\n }\n const prom = _randomScrambleStringForEvent(eventID);\n const wat = await prom;\n return Alg.fromString(wat);\n}\n\nexport async function _randomScrambleStringForEvent(\n eventID: string,\n): Promise<string> {\n const cwi = await getCachedWorkerInstance();\n return cwi.randomScrambleStringForEvent(eventID);\n}\n\nexport async function randomScrambleStringForEvent(\n eventID: string,\n): Promise<string> {\n switch (eventID) {\n case \"clock\":\n return randomClockScrambleString();\n case \"minx\":\n return randomMegaminxScrambleString();\n }\n return await _randomScrambleStringForEvent(eventID);\n}\n\nexport async function experimentalSolve3x3x3IgnoringCenters(\n state: KState,\n): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solve333ToString(state.stateData));\n}\n\nexport async function experimentalSolve2x2x2(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solve222ToString(state.stateData));\n}\n\nexport async function solveSkewb(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solveSkewbToString(state.stateData));\n}\n\nexport async function solvePyraminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solvePyraminxToString(state.stateData));\n}\n\nexport async function solveMegaminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solveMegaminxToString(state.stateData));\n}\n\nexport function setDebug(options: {\n logPerf?: boolean;\n scramblePrefetchLevel?: `${PrefetchLevel}`;\n}): void {\n const { logPerf, scramblePrefetchLevel } = options;\n if (typeof logPerf !== \"undefined\") {\n getCachedWorkerInstance().then((cwi) => cwi.setDebugMeasurePerf(logPerf));\n }\n if (typeof scramblePrefetchLevel !== \"undefined\") {\n getCachedWorkerInstance().then((cwi) =>\n cwi.setScramblePrefetchLevel(scramblePrefetchLevel as PrefetchLevel),\n );\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -3,15 +3,15 @@ import {
3
3
  } from "./chunk-RENZB7QN.js";
4
4
  import {
5
5
  puzzles
6
- } from "./chunk-V5K5JN2N.js";
6
+ } from "./chunk-YCLG3ZLR.js";
7
7
  import {
8
8
  KState
9
- } from "./chunk-Y32HHZUY.js";
9
+ } from "./chunk-YAOUFM4D.js";
10
10
  import {
11
11
  Alg,
12
12
  AlgBuilder,
13
13
  Move
14
- } from "./chunk-EWRBHQFX.js";
14
+ } from "./chunk-DO7GZAW4.js";
15
15
 
16
16
  // src/cubing/search/inside/inside-worker.ts
17
17
  var isInsideWorker = false;
@@ -462,7 +462,7 @@ async function random333State() {
462
462
  }
463
463
  var cachedImport = null;
464
464
  function dynamicMin2phaseGWT() {
465
- return cachedImport ?? (cachedImport = import("./3x3x3-min2phase-FPRJ5PCJ.js"));
465
+ return cachedImport ?? (cachedImport = import("./3x3x3-min2phase-UBW46KDU.js"));
466
466
  }
467
467
  async function solve333(s) {
468
468
  mustBeInsideWorker();
@@ -502,4 +502,4 @@ export {
502
502
  random333OrientedScramble,
503
503
  random333FewestMovesScramble
504
504
  };
505
- //# sourceMappingURL=chunk-LGM2HUUG.js.map
505
+ //# sourceMappingURL=chunk-33FD473T.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  KState,
3
3
  experimental3x3x3KPuzzle
4
- } from "./chunk-Y32HHZUY.js";
4
+ } from "./chunk-YAOUFM4D.js";
5
5
  import {
6
6
  Alg
7
- } from "./chunk-EWRBHQFX.js";
7
+ } from "./chunk-DO7GZAW4.js";
8
8
 
9
9
  // src/cubing/protocol/binary/orbit-indexing.ts
10
10
  function identityPermutation(numElems) {
@@ -271,4 +271,4 @@ export {
271
271
  bufferToSpacedHex,
272
272
  spacedHexToBuffer
273
273
  };
274
- //# sourceMappingURL=chunk-TXTMBIUR.js.map
274
+ //# sourceMappingURL=chunk-6BUCXDZU.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  parseSGS
3
- } from "./chunk-27KJGD3S.js";
3
+ } from "./chunk-FB7SFELN.js";
4
4
  import {
5
5
  PGNotation,
6
6
  getPuzzleGeometryByName
7
- } from "./chunk-F5WNHV7V.js";
7
+ } from "./chunk-ODQRVWJB.js";
8
8
  import {
9
9
  KPuzzle
10
- } from "./chunk-Y32HHZUY.js";
10
+ } from "./chunk-YAOUFM4D.js";
11
11
 
12
12
  // src/cubing/search/inside/solve/puzzles/skewb.sgs.json.ts
13
13
  async function skewbKPuzzleWithoutMO() {
@@ -119,4 +119,4 @@ export {
119
119
  sgsDataSkewb,
120
120
  sgsDataSkewbFixedCorner
121
121
  };
122
- //# sourceMappingURL=chunk-QEDC2QTN.js.map
122
+ //# sourceMappingURL=chunk-C6I4KFI2.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  node_adapter_default
3
- } from "./chunk-IVQ4ITE2.js";
3
+ } from "./chunk-GBMX6FHY.js";
4
4
 
5
5
  // src/cubing/vendor/comlink-everywhere/inside/index.ts
6
6
  import { expose as comlinkExpose } from "comlink";
@@ -25,4 +25,4 @@ export {
25
25
  nodeEndpointPort,
26
26
  expose
27
27
  };
28
- //# sourceMappingURL=chunk-WDJDRVZZ.js.map
28
+ //# sourceMappingURL=chunk-CS6S3OZ5.js.map
@@ -4,7 +4,7 @@ import {
4
4
  __privateMethod,
5
5
  __privateSet,
6
6
  __privateWrapper
7
- } from "./chunk-WO2AXYFE.js";
7
+ } from "./chunk-MGJA5U5O.js";
8
8
 
9
9
  // src/cubing/alg/common.ts
10
10
  var writeAlgDebugField = false;
@@ -33,30 +33,30 @@ var AlgCommon = class extends Comparable {
33
33
  };
34
34
 
35
35
  // src/cubing/alg/iteration.ts
36
- var IterationDirection;
37
- (function(IterationDirection3) {
36
+ var IterationDirection = /* @__PURE__ */ ((IterationDirection3) => {
38
37
  IterationDirection3[IterationDirection3["Forwards"] = 1] = "Forwards";
39
38
  IterationDirection3[IterationDirection3["Backwards"] = -1] = "Backwards";
40
- })(IterationDirection || (IterationDirection = {}));
39
+ return IterationDirection3;
40
+ })(IterationDirection || {});
41
41
  function toggleDirection(iterationDirection, flip = true) {
42
42
  if (!flip) {
43
43
  return iterationDirection;
44
44
  }
45
45
  switch (iterationDirection) {
46
- case 1:
47
- return -1;
48
- case -1:
49
- return 1;
46
+ case 1 /* Forwards */:
47
+ return -1 /* Backwards */;
48
+ case -1 /* Backwards */:
49
+ return 1 /* Forwards */;
50
50
  }
51
51
  }
52
52
  function direct(g, iterDir) {
53
- return iterDir === -1 ? Array.from(g).reverse() : g;
53
+ return iterDir === -1 /* Backwards */ ? Array.from(g).reverse() : g;
54
54
  }
55
55
  function reverse(g) {
56
56
  return Array.from(g).reverse();
57
57
  }
58
58
  function* directedGenerator(g, direction) {
59
- direction === -1 ? yield* reverseGenerator(g) : yield* g;
59
+ direction === -1 /* Backwards */ ? yield* reverseGenerator(g) : yield* g;
60
60
  }
61
61
  function* reverseGenerator(g) {
62
62
  for (const t of Array.from(g).reverse()) {
@@ -118,21 +118,21 @@ var _Commutator = class extends AlgCommon {
118
118
  invert() {
119
119
  return new _Commutator(__privateGet(this, _B), __privateGet(this, _A));
120
120
  }
121
- *experimentalExpand(iterDir = IterationDirection.Forwards, depth) {
121
+ *experimentalExpand(iterDir = 1 /* Forwards */, depth) {
122
122
  depth ?? (depth = Infinity);
123
123
  if (depth === 0) {
124
- yield iterDir === IterationDirection.Forwards ? this : this.invert();
124
+ yield iterDir === 1 /* Forwards */ ? this : this.invert();
125
125
  } else {
126
- if (iterDir === IterationDirection.Forwards) {
127
- yield* this.A.experimentalExpand(IterationDirection.Forwards, depth - 1);
128
- yield* this.B.experimentalExpand(IterationDirection.Forwards, depth - 1);
129
- yield* this.A.experimentalExpand(IterationDirection.Backwards, depth - 1);
130
- yield* this.B.experimentalExpand(IterationDirection.Backwards, depth - 1);
126
+ if (iterDir === 1 /* Forwards */) {
127
+ yield* this.A.experimentalExpand(1 /* Forwards */, depth - 1);
128
+ yield* this.B.experimentalExpand(1 /* Forwards */, depth - 1);
129
+ yield* this.A.experimentalExpand(-1 /* Backwards */, depth - 1);
130
+ yield* this.B.experimentalExpand(-1 /* Backwards */, depth - 1);
131
131
  } else {
132
- yield* this.B.experimentalExpand(IterationDirection.Forwards, depth - 1);
133
- yield* this.A.experimentalExpand(IterationDirection.Forwards, depth - 1);
134
- yield* this.B.experimentalExpand(IterationDirection.Backwards, depth - 1);
135
- yield* this.A.experimentalExpand(IterationDirection.Backwards, depth - 1);
132
+ yield* this.B.experimentalExpand(1 /* Forwards */, depth - 1);
133
+ yield* this.A.experimentalExpand(1 /* Forwards */, depth - 1);
134
+ yield* this.B.experimentalExpand(-1 /* Backwards */, depth - 1);
135
+ yield* this.A.experimentalExpand(-1 /* Backwards */, depth - 1);
136
136
  }
137
137
  }
138
138
  }
@@ -170,11 +170,11 @@ var _Conjugate = class extends AlgCommon {
170
170
  *experimentalExpand(iterDir, depth) {
171
171
  depth ?? (depth = Infinity);
172
172
  if (depth === 0) {
173
- yield iterDir === IterationDirection.Forwards ? this : this.invert();
173
+ yield iterDir === 1 /* Forwards */ ? this : this.invert();
174
174
  } else {
175
- yield* this.A.experimentalExpand(IterationDirection.Forwards, depth - 1);
175
+ yield* this.A.experimentalExpand(1 /* Forwards */, depth - 1);
176
176
  yield* this.B.experimentalExpand(iterDir, depth - 1);
177
- yield* this.A.experimentalExpand(IterationDirection.Backwards, depth - 1);
177
+ yield* this.A.experimentalExpand(-1 /* Backwards */, depth - 1);
178
178
  }
179
179
  }
180
180
  toString() {
@@ -206,7 +206,7 @@ var _LineComment = class extends AlgCommon {
206
206
  invert() {
207
207
  return this;
208
208
  }
209
- *experimentalExpand(_iterDir = IterationDirection.Forwards, _depth = Infinity) {
209
+ *experimentalExpand(_iterDir = 1 /* Forwards */, _depth = Infinity) {
210
210
  yield this;
211
211
  }
212
212
  toString() {
@@ -228,7 +228,7 @@ var Newline = class extends AlgCommon {
228
228
  invert() {
229
229
  return this;
230
230
  }
231
- *experimentalExpand(_iterDir = IterationDirection.Forwards, _depth = Infinity) {
231
+ *experimentalExpand(_iterDir = 1 /* Forwards */, _depth = Infinity) {
232
232
  yield this;
233
233
  }
234
234
  };
@@ -244,7 +244,7 @@ var Pause = class extends AlgCommon {
244
244
  invert() {
245
245
  return this;
246
246
  }
247
- *experimentalExpand(_iterDir = IterationDirection.Forwards, _depth = Infinity) {
247
+ *experimentalExpand(_iterDir = 1 /* Forwards */, _depth = Infinity) {
248
248
  yield this;
249
249
  }
250
250
  };
@@ -541,7 +541,7 @@ _input = new WeakMap();
541
541
  _idx = new WeakMap();
542
542
 
543
543
  // src/cubing/alg/warnOnce.ts
544
- var warned = new Set();
544
+ var warned = /* @__PURE__ */ new Set();
545
545
  function warnOnce(s) {
546
546
  if (!warned.has(s)) {
547
547
  console.warn(s);
@@ -665,8 +665,8 @@ var _Move = class extends AlgCommon {
665
665
  invert() {
666
666
  return transferCharIndex(this, new _Move(__privateGet(this, _quantumWithAmount).quantum, -this.amount));
667
667
  }
668
- *experimentalExpand(iterDir = IterationDirection.Forwards) {
669
- if (iterDir === IterationDirection.Forwards) {
668
+ *experimentalExpand(iterDir = 1 /* Forwards */) {
669
+ if (iterDir === 1 /* Forwards */) {
670
670
  yield this;
671
671
  } else {
672
672
  yield this.modified({
@@ -770,10 +770,10 @@ var _Grouping = class extends AlgCommon {
770
770
  invert() {
771
771
  return new _Grouping(__privateGet(this, _quantumWithAmount2).quantum, -__privateGet(this, _quantumWithAmount2).amount);
772
772
  }
773
- *experimentalExpand(iterDir = IterationDirection.Forwards, depth) {
773
+ *experimentalExpand(iterDir = 1 /* Forwards */, depth) {
774
774
  depth ?? (depth = Infinity);
775
775
  if (depth === 0) {
776
- yield iterDir === IterationDirection.Forwards ? this : this.invert();
776
+ yield iterDir === 1 /* Forwards */ ? this : this.invert();
777
777
  } else {
778
778
  yield* __privateGet(this, _quantumWithAmount2).experimentalExpand(iterDir, depth - 1);
779
779
  }
@@ -1007,14 +1007,14 @@ var _Alg = class extends AlgCommon {
1007
1007
  invert() {
1008
1008
  return new _Alg(reverse(Array.from(__privateGet(this, _units2)).map((u) => u.invert())));
1009
1009
  }
1010
- *experimentalExpand(iterDir = IterationDirection.Forwards, depth) {
1010
+ *experimentalExpand(iterDir = 1 /* Forwards */, depth) {
1011
1011
  depth ?? (depth = Infinity);
1012
1012
  for (const unit of direct(__privateGet(this, _units2), iterDir)) {
1013
1013
  yield* unit.experimentalExpand(iterDir, depth);
1014
1014
  }
1015
1015
  }
1016
1016
  expand(options) {
1017
- return new _Alg(this.experimentalExpand(IterationDirection.Forwards, options?.depth ?? Infinity));
1017
+ return new _Alg(this.experimentalExpand(1 /* Forwards */, options?.depth ?? Infinity));
1018
1018
  }
1019
1019
  *experimentalLeafMoves() {
1020
1020
  for (const leaf of this.experimentalExpand()) {
@@ -1331,4 +1331,4 @@ export {
1331
1331
  algCubingNetLink,
1332
1332
  experimentalAppendMove
1333
1333
  };
1334
- //# sourceMappingURL=chunk-EWRBHQFX.js.map
1334
+ //# sourceMappingURL=chunk-DO7GZAW4.js.map