cubing 0.22.1 → 0.23.0

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 (141) hide show
  1. package/README.md +1 -1
  2. package/alg/package.json +1 -3
  3. package/bluetooth/package.json +1 -3
  4. package/dist/bundle-global/cubing.bundle-global.js +2979 -242
  5. package/dist/esm/2x2x2.sgs.json-FRBWMMA7.js +122 -0
  6. package/dist/esm/2x2x2.sgs.json-FRBWMMA7.js.map +7 -0
  7. package/dist/esm/{3d-M7GBIT3X.js → 3d-Q4WSD4BC.js} +3 -3
  8. package/dist/esm/{3d-M7GBIT3X.js.map → 3d-Q4WSD4BC.js.map} +0 -0
  9. package/dist/esm/bluetooth/index.d.ts +1 -1
  10. package/dist/esm/bluetooth/index.js +1 -1
  11. package/dist/esm/chunk-37EHU3GZ.js +66 -0
  12. package/dist/esm/chunk-37EHU3GZ.js.map +7 -0
  13. package/dist/esm/chunk-BJIOROQC.js +18 -0
  14. package/dist/esm/chunk-BJIOROQC.js.map +7 -0
  15. package/dist/esm/{chunk-R3HRHYIW.js → chunk-DK6PXBB2.js} +1 -1
  16. package/dist/esm/{chunk-R3HRHYIW.js.map → chunk-DK6PXBB2.js.map} +0 -0
  17. package/dist/esm/chunk-DPMEZY7V.js +1552 -0
  18. package/dist/esm/chunk-DPMEZY7V.js.map +7 -0
  19. package/dist/esm/chunk-FK2SCC3Z.js +499 -0
  20. package/dist/esm/chunk-FK2SCC3Z.js.map +7 -0
  21. package/dist/esm/chunk-JZWB7AIU.js +115 -0
  22. package/dist/esm/chunk-JZWB7AIU.js.map +7 -0
  23. package/dist/esm/chunk-MLOCDLUF.js +226 -0
  24. package/dist/esm/chunk-MLOCDLUF.js.map +7 -0
  25. package/dist/esm/{chunk-GF76PWEV.js → chunk-N3RNWU5T.js} +2 -2
  26. package/dist/esm/{chunk-GF76PWEV.js.map → chunk-N3RNWU5T.js.map} +0 -0
  27. package/dist/esm/chunk-PUPUQWJC.js +4065 -0
  28. package/dist/esm/chunk-PUPUQWJC.js.map +7 -0
  29. package/dist/esm/chunk-XVZOMB6J.js +89 -0
  30. package/dist/esm/chunk-XVZOMB6J.js.map +7 -0
  31. package/dist/esm/chunk-Z6X7HTPP.js +103 -0
  32. package/dist/esm/chunk-Z6X7HTPP.js.map +7 -0
  33. package/dist/esm/entry-L6CE2HLF.js +531 -0
  34. package/dist/esm/entry-L6CE2HLF.js.map +7 -0
  35. package/dist/esm/esm-test-worker.js +3 -14
  36. package/dist/esm/esm-test-worker.js.map +3 -3
  37. package/dist/esm/fto.sgs.json-62YNULOK.js +649 -0
  38. package/dist/esm/fto.sgs.json-62YNULOK.js.map +7 -0
  39. package/dist/esm/gwt-B7CBESZR.js +1669 -0
  40. package/dist/esm/gwt-B7CBESZR.js.map +7 -0
  41. package/dist/esm/megaminx.sgs.json-PRL46G5J.js +16 -0
  42. package/dist/esm/megaminx.sgs.json-PRL46G5J.js.map +7 -0
  43. package/dist/esm/module-entry-J2N3UZP7.js +18 -0
  44. package/dist/esm/module-entry-J2N3UZP7.js.map +7 -0
  45. package/dist/esm/{node-HFBX5WHK.js → node-W3AD4HBK.js} +2 -1
  46. package/dist/esm/node-W3AD4HBK.js.map +7 -0
  47. package/dist/esm/puzzle-geometry/index.js +11 -4051
  48. package/dist/esm/puzzle-geometry/index.js.map +3 -3
  49. package/dist/esm/puzzles/index.js +1 -1
  50. package/dist/esm/pyraminx.sgs.json-7QMPT5XP.js +14 -0
  51. package/dist/esm/pyraminx.sgs.json-7QMPT5XP.js.map +7 -0
  52. package/dist/esm/scramble/index.js +4 -2
  53. package/dist/esm/scramble_444-JP3CWLJM.js +2572 -0
  54. package/dist/esm/scramble_444-JP3CWLJM.js.map +7 -0
  55. package/dist/esm/scramble_sq1-PQ2AYBFW.js +706 -0
  56. package/dist/esm/scramble_sq1-PQ2AYBFW.js.map +7 -0
  57. package/dist/esm/search/index.js +6 -3
  58. package/dist/esm/skewb.sgs.json-FWHYACJG.js +16 -0
  59. package/dist/esm/skewb.sgs.json-FWHYACJG.js.map +7 -0
  60. package/dist/esm/twisty/index.js +3 -3
  61. package/dist/esm/worker-inside-generated-string-OWJA5IIQ.js +3450 -0
  62. package/dist/esm/worker-inside-generated-string-OWJA5IIQ.js.map +7 -0
  63. package/dist/types/search/inside/module-entry-path-getter.d.ts +2 -0
  64. package/dist/types/search/inside/module-entry-path-getter.d.ts.map +1 -0
  65. package/dist/types/search/inside/module-entry.d.ts +2 -0
  66. package/dist/types/search/inside/module-entry.d.ts.map +1 -0
  67. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts.map +1 -1
  68. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts +2 -1
  69. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts.map +1 -1
  70. package/dist/types/search/inside/solve/puzzles/sq1.d.ts.map +1 -1
  71. package/dist/types/search/instantiator.d.ts +1 -2
  72. package/dist/types/search/instantiator.d.ts.map +1 -1
  73. package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
  74. package/dist/types/search/worker-inside-generated-string.d.ts.map +1 -1
  75. package/dist/types/vendor/comlink-everywhere/outside/node.d.ts.map +1 -1
  76. package/docs/.DS_Store +0 -0
  77. package/docs/cubing/.DS_Store +0 -0
  78. package/docs/cubing/index.html +1 -1
  79. package/kpuzzle/package.json +1 -3
  80. package/notation/package.json +1 -3
  81. package/package.json +2 -6
  82. package/protocol/package.json +1 -3
  83. package/puzzle-geometry/package.json +1 -3
  84. package/puzzles/package.json +1 -3
  85. package/scramble/package.json +1 -3
  86. package/search/package.json +1 -3
  87. package/src/cubing/.DS_Store +0 -0
  88. package/src/cubing/search/.DS_Store +0 -0
  89. package/src/cubing/search/inside/.DS_Store +0 -0
  90. package/src/cubing/search/inside/module-entry-path-getter.ts +5 -0
  91. package/src/cubing/search/inside/module-entry.ts +20 -0
  92. package/src/cubing/search/inside/solve/puzzles/3x3x3/index.ts +13 -3
  93. package/src/cubing/search/inside/solve/puzzles/4x4x4.ts +19 -5
  94. package/src/cubing/search/inside/solve/puzzles/fto.sgs.json.ts +356 -13
  95. package/src/cubing/search/inside/solve/puzzles/sq1.ts +12 -2
  96. package/src/cubing/search/instantiator.ts +75 -40
  97. package/src/cubing/search/worker-inside-generated-string.js +1 -1
  98. package/src/cubing/vendor/.DS_Store +0 -0
  99. package/src/cubing/vendor/comlink-everywhere/.DS_Store +0 -0
  100. package/src/cubing/vendor/comlink-everywhere/outside/node.js +1 -0
  101. package/src/cubing/vendor/cstimer/.DS_Store +0 -0
  102. package/src/cubing/{search/inside/solve/puzzles → vendor/cstimer/src}/.DS_Store +0 -0
  103. package/src/cubing/vendor/random-uint-below/random53BitValue.ts +1 -1
  104. package/src/cubing/vendor/sq12phase/scramble_sq1.js +2 -2
  105. package/src/cubing/{twisty/heavy-code-imports → vendor/three}/.DS_Store +0 -0
  106. package/src/cubing/{twisty/old/animation → vendor/three/examples}/.DS_Store +0 -0
  107. package/stream/package.json +1 -3
  108. package/twisty/package.json +1 -3
  109. package/alg/index.d.ts +0 -1
  110. package/bluetooth/index.d.ts +0 -1
  111. package/dist/.DS_Store +0 -0
  112. package/dist/esm/chunk-6BZSKSG7.js +0 -1368
  113. package/dist/esm/chunk-6BZSKSG7.js.map +0 -7
  114. package/dist/esm/index.d.ts +0 -1
  115. package/dist/esm/node-HFBX5WHK.js.map +0 -7
  116. package/dist/esm/worker-inside-generated-string-RQYYANYQ.js +0 -3107
  117. package/dist/esm/worker-inside-generated-string-RQYYANYQ.js.map +0 -7
  118. package/kpuzzle/index.d.ts +0 -1
  119. package/notation/index.d.ts +0 -1
  120. package/protocol/index.d.ts +0 -1
  121. package/puzzle-geometry/index.d.ts +0 -1
  122. package/puzzles/index.d.ts +0 -1
  123. package/scramble/index.d.ts +0 -1
  124. package/search/index.d.ts +0 -1
  125. package/src/cubing/puzzles/.DS_Store +0 -0
  126. package/src/cubing/puzzles/implementations/.DS_Store +0 -0
  127. package/src/cubing/search/inside/solve/.DS_Store +0 -0
  128. package/src/cubing/search/inside/solve/vendor/.DS_Store +0 -0
  129. package/src/cubing/twisty/.DS_Store +0 -0
  130. package/src/cubing/twisty/controllers/.DS_Store +0 -0
  131. package/src/cubing/twisty/controllers/animation/.DS_Store +0 -0
  132. package/src/cubing/twisty/controllers/indexer/.DS_Store +0 -0
  133. package/src/cubing/twisty/model/.DS_Store +0 -0
  134. package/src/cubing/twisty/model/props/.DS_Store +0 -0
  135. package/src/cubing/twisty/model/props/puzzle/.DS_Store +0 -0
  136. package/src/cubing/twisty/old/.DS_Store +0 -0
  137. package/src/cubing/twisty/old/dom/.DS_Store +0 -0
  138. package/src/cubing/twisty/views/.DS_Store +0 -0
  139. package/src/cubing/twisty/views/3D/.DS_Store +0 -0
  140. package/stream/index.d.ts +0 -1
  141. package/twisty/index.d.ts +0 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/search/inside/inside-worker.ts", "../../src/cubing/search/inside/solve/addOrientationSuffix.ts", "../../src/cubing/search/inside/solve/puzzles/3x3x3/convert.ts", "../../src/cubing/search/inside/solve/puzzles/3x3x3/filter.ts", "../../src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.ts", "../../src/cubing/search/inside/solve/puzzles/3x3x3/index.ts"],
4
+ "sourcesContent": ["let isInsideWorker = false;\n\nexport function setIsInsideWorker(inside: boolean) {\n isInsideWorker = inside;\n}\n\nexport function mustBeInsideWorker(): void {\n if (!isInsideWorker) {\n throw new Error(\n \"Must be called from inside a worker, to avoid impact on page performance. Try importing from the top level of `cubing/solve`?\",\n );\n }\n}\n", "import { Alg, AlgBuilder, Move } from \"../../../alg\";\nimport { randomChoiceFactory } from \"../../../vendor/random-uint-below\";\n\nexport async function addOrientationSuffix(\n alg: Alg,\n suffixSpec: (null | string)[][],\n): Promise<Alg> {\n const algBuilder = new AlgBuilder();\n algBuilder.experimentalPushAlg(alg);\n for (const suffix of suffixSpec) {\n const choice = ((await randomChoiceFactory()) as any)(suffix);\n if (choice !== null) {\n algBuilder.push(Move.fromString(choice));\n }\n }\n return algBuilder.toAlg();\n}\n", "/*\n\nFace order:\n\n U\nLFRB\n D\n\n | 0| 1| 2|\n | 3| 4| 5|\n | 6| 7| 8|\n| 9|10|11|18|19|20|27|28|29|36|37|38|\n|12|13|14|21|22|23|30|31|32|39|40|41|\n|15|16|17|24|25|26|33|34|35|42|43|44|\n |45|46|47|\n |48|49|50|\n |51|52|53|\n*/\n\nimport type { Transformation } from \"../../../../../kpuzzle\";\n\nconst reidEdgeOrder = \"UF UR UB UL DF DR DB DL FR FL BR BL\".split(\" \");\nconst reidCornerOrder = \"UFR URB UBL ULF DRF DFL DLB DBR\".split(\" \");\nconst centerOrder = \"U L F R B D\".split(\" \");\n\n// const stickers = [reidEdgeOrder, reidCornerOrder, centerOrder];\n\n// /*\n// |1 20|0 20|1 10|\n// |0 30|2 00|0 10|\n// |1 30|0 00|1 00|\n// |1 22|0 31|1 31|1 32|0 01|1 01|1 02|0 11|1 11|1 12|0 21|1 21|\n// |0111|2 10|0 91|0 90|2 20|0 80|0 81|2 30|0101|0100|2 40|0110|\n// |1 61|0 71|1 52|1 51|0 41|1 42|1 41|0 51|1 72|1 71|0 61|1 62|\n// |1 50|0 40|1 40|\n// |0 70|2 50|0 50|\n// |1 60|0 60|1 70|\n// */\n\nconst map: [number, number, number][] = [\n [1, 2, 0],\n [0, 2, 0],\n [1, 1, 0],\n [0, 3, 0],\n [2, 0, 0],\n [0, 1, 0],\n [1, 3, 0],\n [0, 0, 0],\n [1, 0, 0],\n [1, 0, 2],\n [0, 1, 1],\n [1, 1, 1],\n [0, 8, 1],\n [2, 3, 0],\n [0, 10, 1],\n [1, 4, 1],\n [0, 5, 1],\n [1, 7, 2],\n [1, 3, 2],\n [0, 0, 1],\n [1, 0, 1],\n [0, 9, 0],\n [2, 2, 0],\n [0, 8, 0],\n [1, 5, 1],\n [0, 4, 1],\n [1, 4, 2],\n [1, 5, 0],\n [0, 4, 0],\n [1, 4, 0],\n [0, 7, 0],\n [2, 5, 0],\n [0, 5, 0],\n [1, 6, 0],\n [0, 6, 0],\n [1, 7, 0],\n [1, 2, 2],\n [0, 3, 1],\n [1, 3, 1],\n [0, 11, 1],\n [2, 1, 0],\n [0, 9, 1],\n [1, 6, 1],\n [0, 7, 1],\n [1, 5, 2],\n [1, 1, 2],\n [0, 2, 1],\n [1, 2, 1],\n [0, 10, 0],\n [2, 4, 0],\n [0, 11, 0],\n [1, 7, 1],\n [0, 6, 1],\n [1, 6, 2],\n];\n\nfunction rotateLeft(s: string, i: number): string {\n return s.slice(i) + s.slice(0, i);\n}\n\nfunction toReid333Struct(state: Transformation): string[][] {\n const output: string[][] = [[], []];\n for (let i = 0; i < 6; i++) {\n if (state[\"CENTERS\"].permutation[i] !== i) {\n throw new Error(\"non-oriented puzzles are not supported\");\n }\n }\n for (let i = 0; i < 12; i++) {\n output[0].push(\n rotateLeft(\n reidEdgeOrder[state[\"EDGES\"].permutation[i]],\n state[\"EDGES\"].orientation[i],\n ),\n );\n }\n for (let i = 0; i < 8; i++) {\n output[1].push(\n rotateLeft(\n reidCornerOrder[state[\"CORNERS\"].permutation[i]],\n state[\"CORNERS\"].orientation[i],\n ),\n );\n }\n output.push(centerOrder);\n return output;\n}\n\n// function toReid333String(state: Transformation): string {\n// return toReid333Struct(state)\n// .map((l) => l.join(\" \"))\n// .join(\" \");\n// }\n\nexport function toMin2PhaseState(state: Transformation): string {\n const reid = toReid333Struct(state);\n return map.map(([orbit, perm, ori]) => reid[orbit][perm][ori]).join(\"\");\n}\n", "import { Move } from \"../../../../../alg\";\nimport {\n KPuzzle,\n areOrbitTransformationsEquivalent,\n KPuzzleDefinition,\n Transformation,\n} from \"../../../../../kpuzzle\";\n\nexport function isEquivalentTranformationIgnoringCENTERS(\n def: KPuzzleDefinition,\n t1: Transformation,\n t2: Transformation,\n): boolean {\n for (const orbitName in def.orbits) {\n if (\n !areOrbitTransformationsEquivalent(def, orbitName, t1, t2, {\n ignoreOrientation: orbitName === \"CENTERS\",\n })\n ) {\n return false;\n }\n }\n return true;\n}\n\nexport function passesFilter(\n def: KPuzzleDefinition,\n state: Transformation,\n): boolean {\n const kpuzzle = new KPuzzle(def);\n if (isEquivalentTranformationIgnoringCENTERS(def, kpuzzle.state, state)) {\n return false;\n }\n\n for (const face of \"ULFRBD\") {\n for (let amount = 1; amount < 4; amount++) {\n kpuzzle.reset();\n kpuzzle.applyMove(new Move(face, amount));\n if (isEquivalentTranformationIgnoringCENTERS(def, kpuzzle.state, state)) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n// TODO: implement tests\n// {\n// const def = await puzzles[\"3x3x3\"].def();\n// const kpuzzle = new KPuzzle(def);\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.applyAlg(parse(\"R\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.applyAlg(parse(\"D\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.reset();\n// kpuzzle.applyAlg(parse(\"(R' U' R U')5\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// }\n", "// TODO: Verify\nexport const sgs3x3x3: string[][] = [\n [\n \"R U'\",\n \"R2 B\", //\n \"D2 B2\",\n \"D' L B'\", //\n \"R' U'\",\n \"B\", //\n \"D B2\",\n \"R' B\", //\n \"L' U\",\n \"L2 B'\", //\n \"B2\",\n \"D L B'\", //\n \"L U\",\n \"B'\", //\n \"U'\",\n \"R B\", //\n \"D' B2\",\n \"L B'\", //\n \"U2\",\n \"U L' B'\", //\n \"\",\n \"U' L' B'\", //\n \"U\",\n \"L' B'\",\n ],\n [\n \"F2 L2\",\n \"F' L'\",\n \"R' F L2\", //\n \"D' L2\",\n \"F L2\",\n \"F2 L'\", //\n \"R' F' L'\",\n \"R2 F L2\",\n \"R2 F2 L'\", //\n \"L2\",\n \"F L'\",\n \"D' L\", //\n \"D2 L2\",\n \"R2 F' L'\",\n \"D L\", //\n \"\",\n \"L2 F L'\",\n \"L F' L2\", //\n \"L F L'\",\n \"F' L2\",\n \"L'\", //\n \"D L2\",\n \"D F L'\",\n \"L\",\n ],\n [\n \"R B U2 B'\",\n \"R2 B U' B'\", //\n \"F2 B U B'\",\n \"F B2 L' B2\", //\n \"B2 L B2\",\n \"B U' B'\", //\n \"R2 B U2 B'\",\n \"R' B U' B'\", //\n \"B2 L' B2\",\n \"F B U B'\", //\n \"B2 U' B2\",\n \"B' L B\", //\n \"L F' B D' B'\",\n \"B' U' B2 D B'\", //\n \"B U2 B'\",\n \"R B U' B'\", //\n \"B2 L2 B2\",\n \"D' B' L B\", //\n \"B U B'\",\n \"F' B2 L' B2\", //\n \"\",\n \"B2 L' B' U' B'\",\n ],\n [\n \"U F2 L2 U'\",\n \"F' U L' U'\", //\n \"F2 U L' U'\",\n \"U F L2 U'\", //\n \"U2 B2 U2\",\n \"R' U' B U\", //\n \"D2 U L U'\",\n \"D U2 B' U2\", //\n \"U L2 U'\",\n \"F U L' U'\", //\n \"D U L U'\",\n \"U2 B' U2\", //\n \"\",\n \"U2 B' U' L' U'\", //\n \"U2 L' U2\",\n \"U' B U\", //\n \"U L U'\",\n \"D' U2 B' U2\", //\n \"U L' U'\",\n \"U2 B U2\",\n ],\n [\n \"R' D' F2\",\n \"F'\", //\n \"F2\",\n \"D R F'\", //\n \"R D' F2\",\n \"R2 F'\", //\n \"D' F2\",\n \"R F'\", //\n \"F2 R' D' F2\",\n \"F\", //\n \"D2 F2\",\n \"D' R F'\", //\n \"R2 D' F2\",\n \"R' F'\", //\n \"D F2\",\n \"D2 R F'\", //\n \"\",\n \"F R' D' F2\",\n ],\n [\n \"R' D2 F' D F\",\n \"R F2 R2 F2\",\n \"R2 F' D2 F\", //\n \"F' R2 D2 F\",\n \"L D' L'\",\n \"D F' D2 F\", //\n \"F2 R2 F2\",\n \"R F' D2 F\",\n \"F' R2 D' F\", //\n \"F' R' D2 F\",\n \"F2 R' F2\",\n \"L D L'\", //\n \"F' R D' F\",\n \"F2 R F2\",\n \"F' D2 F\", //\n \"\",\n \"L D2 R D' L'\",\n \"F' D2 F' R F2\", //\n \"D2 R2 F2 R2 F2\",\n \"D F' D' F\",\n \"F' D F\",\n ],\n [\n \"U F2 U'\",\n \"R U F' U'\", //\n \"D R U F2 U'\",\n \"U F U'\", //\n \"R2 U F2 U'\",\n \"R' U F' U'\", //\n \"R U F2 U'\",\n \"R2 U F' U'\", //\n \"\",\n \"U L D L' F U'\", //\n \"F2 D' R D F2\",\n \"D2 U F U'\", //\n \"R' U F2 U'\",\n \"U F' U'\", //\n \"F2 D2 R D2 F2\",\n \"D U F U'\",\n ],\n [\n \"R2\",\n \"R' B' D B\", //\n \"D R'\",\n \"F' R2 F\", //\n \"\",\n \"R B' D B\", //\n \"R'\",\n \"B' D B\", //\n \"D' R'\",\n \"D2 F' R2 F\", //\n \"R\",\n \"R2 B' D B\", //\n \"D2 R'\",\n \"B' D' B\",\n ],\n [\n \"R2 D' R2\",\n \"F' R' F R\",\n \"R D' R2 D R'\", //\n \"D2 R2 D2 R2\",\n \"R' D' F' R F\",\n \"U F D F' U'\", //\n \"\",\n \"R2 D2 B R' B' R'\",\n \"R' F D' F2 R F\", //\n \"R2 D R2\",\n \"F2 U F U' F\",\n \"R' D F' R F\", //\n \"D R2 D2 R2\",\n \"U F D' F' U'\",\n \"D R' D2 F' R F\", //\n \"R2 D2 R2\",\n \"U F D2 F' U'\",\n \"R' D2 F' R F\",\n ],\n [\n \"B R B'\",\n \"F D F' B R2 B'\", //\n \"D B R2 B'\",\n \"D2 B R' B'\", //\n \"B R2 B'\",\n \"D B R' B'\", //\n \"D' B R2 B'\",\n \"B R' B'\", //\n \"\",\n \"B R2 B' D B R' B'\", //\n \"D2 B R2 B'\",\n \"D' B R' B'\",\n ],\n [\n \"\",\n \"R' D R F D2 F'\", //\n \"R' D R\",\n \"D F D' F'\", //\n \"R F' R' F\",\n \"F D' F'\", //\n \"R' D' R\",\n \"F D2 F'\", //\n \"R' D2 R\",\n \"F D F'\",\n ],\n [\n \"\",\n \"F2 D2 R F' R' D2 F' D2 F'\",\n \"F2 D2 F' D' F D' F' D2 F'\", //\n \"F2 D F2 D F2 D2 F2\",\n \"D2 F L D2 L' D2 F'\",\n \"D F D2 L D2 L' F'\", //\n \"R' D B' D2 B D' R\",\n \"R' D2 B' D2 B R\",\n \"F D2 F' D F D F'\", //\n \"F D' L D2 L' D F'\",\n \"B D' F D B' D' F'\",\n \"F D2 L D2 L' F'\", //\n \"F D' L D L' D F'\",\n \"F L D2 L' D2 F'\",\n \"R' B' D2 B D2 R\",\n ],\n [\n \"D'\",\n \"F L D L' D' F'\", //\n \"D2\",\n \"L B D B' D' L'\", //\n \"D\",\n \"B' L' D' L D B\", //\n \"\",\n \"D F L D L' D' F'\",\n ],\n [\n \"F' D2 F D F' D F\",\n \"F' D' R' D R F\", //\n \"F' R' D' R D F\",\n \"B D R D' R' B'\", //\n \"\",\n \"D B' D' L' D L B\",\n ],\n [\n \"D F D F' D F D2 F'\",\n \"F' U2 B' R' B U2 F' L F' L' F'\", //\n \"\",\n \"D2 L D L2 F L F2 D F\",\n ],\n [\n \"L B' L' F L B L' F'\",\n \"F2 U F' D2 F U' F' D2 F'\",\n \"D' F' D B D' F D B'\", //\n \"F L2 F R2 F' L2 F R2 F2\",\n \"D B D' F' D B' D' F\",\n \"R F L F' R' F L' F'\", //\n \"\",\n \"D2 B L' U2 L B' D2 B L' U2 L B'\",\n \"D2 F R' U2 R F' D2 F R' U2 R F'\", //\n \"R F L' F' R' F L F'\",\n \"D F D' B' D F' D' B\",\n \"L2 F2 L' B2 L F2 L' B2 L'\",\n ],\n [\n \"L B R' B' L' B R B'\",\n \"R' B R F' R' B' R F\",\n \"L D2 L U L' D2 L U' L2\", //\n \"\",\n \"D2 B' D2 F D' L2 F L2 F' D2 B D' F'\",\n \"D2 F' R' F R2 B' D2 B D2 R' F D2 F'\", //\n \"L B L' F L B' L' F'\",\n \"F' D2 F' U' F D2 F' U F2\",\n \"D' B' D F D' B D F'\",\n ],\n [\"\", \"D2 F' L U2 L' F D2 F' L U2 L' F\", \"D2 B' R U2 R' B D2 B' R U2 R' B\"],\n];\n", "import { Alg, AlgBuilder } from \"../../../../../alg\";\nimport { KPuzzle, Transformation } from \"../../../../../kpuzzle\";\nimport { puzzles } from \"../../../../../puzzles\";\nimport { mustBeInsideWorker } from \"../../../inside-worker\";\nimport { addOrientationSuffix } from \"../../addOrientationSuffix\";\nimport { randomChoiceFactory } from \"../../../../../vendor/random-uint-below\";\nimport { toMin2PhaseState } from \"./convert\";\nimport { passesFilter } from \"./filter\";\nimport { sgs3x3x3 } from \"./legacy-sgs\";\n\nexport async function random333State(): Promise<Transformation> {\n const def = await puzzles[\"3x3x3\"].def();\n const kpuzzle = new KPuzzle(def);\n for (const piece of sgs3x3x3) {\n kpuzzle.applyAlg(\n Alg.fromString(((await randomChoiceFactory()) as any)(piece)),\n );\n }\n if (!passesFilter(def, kpuzzle.state)) {\n return random333State();\n }\n return kpuzzle.state;\n}\n\nlet cachedImport: Promise<\n typeof import(\"../../../../../vendor/min2phase/gwt\")\n> | null = null;\nfunction dynamicMin2phaseGWT(): Promise<\n typeof import(\"../../../../../vendor/min2phase/gwt\")\n> {\n return (cachedImport ??= import(\"../../../../../vendor/min2phase/gwt\"));\n}\n\nexport async function solve333(s: Transformation): Promise<Alg> {\n mustBeInsideWorker();\n return Alg.fromString(\n (await dynamicMin2phaseGWT()).solveState(toMin2PhaseState(s)),\n );\n}\n\nexport async function random333Scramble(): Promise<Alg> {\n return solve333(await random333State());\n}\n\nexport async function initialize333(): Promise<void> {\n (await dynamicMin2phaseGWT()).initialize();\n}\n\nconst randomSuffixes = [\n [null, \"Rw\", \"Rw2\", \"Rw'\", \"Fw\", \"Fw'\"],\n [null, \"Dw\", \"Dw2\", \"Dw'\"],\n];\n\nexport async function random333OrientedScramble(): Promise<Alg> {\n return addOrientationSuffix(await random333Scramble(), randomSuffixes);\n}\n\nconst extraBit = new Alg(\"R' U' F\");\nexport async function random333FewestMovesScramble(): Promise<Alg> {\n const algBuilder = new AlgBuilder();\n const unorientedScramble = await random333Scramble();\n algBuilder.experimentalPushAlg(extraBit);\n // TODO:Avoid cancellable moves.\n algBuilder.experimentalPushAlg(unorientedScramble);\n algBuilder.experimentalPushAlg(extraBit);\n return algBuilder.toAlg();\n}\n"],
5
+ "mappings": "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AAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,CAAC,IAAI,mCAAmC;AAAA;;;ACvR1C,gCAAgE;AAC9D,QAAM,MAAM,MAAM,QAAQ,SAAS;AACnC,QAAM,UAAU,IAAI,QAAQ;AAC5B,aAAW,SAAS,UAAU;AAC5B,YAAQ,SACN,IAAI,WAAa,OAAM,uBAA+B;AAAA;AAG1D,MAAI,CAAC,aAAa,KAAK,QAAQ,QAAQ;AACrC,WAAO;AAAA;AAET,SAAO,QAAQ;AAAA;AAGjB,IAAI,eAEO;AACX,+BAEE;AACA,SAAQ,gCAAiB,OAAO;AAAA;AAGlC,wBAA+B,GAAiC;AAC9D;AACA,SAAO,IAAI,WACR,OAAM,uBAAuB,WAAW,iBAAiB;AAAA;AAI9D,mCAAwD;AACtD,SAAO,SAAS,MAAM;AAAA;AAGxB,+BAAqD;AACnD,EAAC,OAAM,uBAAuB;AAAA;AAGhC,IAAM,iBAAiB;AAAA,EACrB,CAAC,MAAM,MAAM,OAAO,OAAO,MAAM;AAAA,EACjC,CAAC,MAAM,MAAM,OAAO;AAAA;AAGtB,2CAAgE;AAC9D,SAAO,qBAAqB,MAAM,qBAAqB;AAAA;AAGzD,IAAM,WAAW,IAAI,IAAI;AACzB,8CAAmE;AACjE,QAAM,aAAa,IAAI;AACvB,QAAM,qBAAqB,MAAM;AACjC,aAAW,oBAAoB;AAE/B,aAAW,oBAAoB;AAC/B,aAAW,oBAAoB;AAC/B,SAAO,WAAW;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,115 @@
1
+ import {
2
+ parseSGS
3
+ } from "./chunk-XVZOMB6J.js";
4
+ import {
5
+ getPuzzleGeometryByName
6
+ } from "./chunk-PUPUQWJC.js";
7
+
8
+ // src/cubing/search/inside/solve/puzzles/skewb.sgs.json.ts
9
+ async function skewbDefWithoutMO() {
10
+ return getPuzzleGeometryByName("skewb", {
11
+ allMoves: true,
12
+ addRotations: true
13
+ }).writekpuzzle(true);
14
+ }
15
+ var defCache = null;
16
+ async function skewbDefWithoutMOCached() {
17
+ return defCache ?? (defCache = skewbDefWithoutMO());
18
+ }
19
+ var cachedData = null;
20
+ async function sgsDataSkewb() {
21
+ return cachedData ?? (cachedData = uncachedSGSDataSkewb());
22
+ }
23
+ async function sgsDataSkewbFixedCorner() {
24
+ return {
25
+ ordering: (await sgsDataSkewb()).ordering.slice(1)
26
+ };
27
+ }
28
+ async function uncachedSGSDataSkewb() {
29
+ return parseSGS(await skewbDefWithoutMOCached(), `SubgroupSizes 24 6 5 12 9 3 4 9 3 3
30
+
31
+ Alg y
32
+ Alg y2
33
+ Alg y'
34
+ Alg F
35
+ Alg F'
36
+ Alg y U
37
+ Alg y U'
38
+ Alg y L
39
+ Alg y L'
40
+ Alg y F
41
+ Alg y F'
42
+ Alg y2 U
43
+ Alg y2 U'
44
+ Alg y2 B
45
+ Alg y2 B'
46
+ Alg y' U
47
+ Alg y' F'
48
+ Alg y U L'
49
+ Alg y U B
50
+ Alg y2 U B
51
+ Alg y2 U B'
52
+ Alg y2 U' B
53
+ Alg y2 U' B'
54
+
55
+ Alg U
56
+ Alg U'
57
+ Alg U L
58
+ Alg U L'
59
+ Alg U' R'
60
+
61
+ Alg R
62
+ Alg R'
63
+ Alg R B
64
+ Alg R' L'
65
+
66
+ Alg U B' U
67
+ Alg U' L U
68
+ Alg U' L' U
69
+ Alg U' B U'
70
+ Alg R L R'
71
+ Alg R B' R
72
+ Alg U B L U'
73
+ Alg U B' U B'
74
+ Alg U B' L' U
75
+ Alg U' L B U'
76
+ Alg R' B L' R'
77
+
78
+ Alg L
79
+ Alg L'
80
+ Alg L B
81
+ Alg L B'
82
+ Alg L B L
83
+ Alg L B L'
84
+ Alg L B' L
85
+ Alg L B' L'
86
+
87
+ Alg B
88
+ Alg B'
89
+
90
+ Alg L' B L
91
+ Alg L' B' L
92
+ Alg R' L' B L R
93
+
94
+ Alg B L' B L B'
95
+ Alg B L' B' L B'
96
+ Alg U L U B U' L' U'
97
+ Alg R L R' B' R L' R'
98
+ Alg U B' R L R' B' U B
99
+ Alg U' B U L U' B' U L'
100
+ Alg L U' B U L' U' B' U
101
+ Alg R B' U R B L U' B
102
+
103
+ Alg U L U' B' U L' U' B
104
+ Alg U' B L U L B' U' L'
105
+
106
+ Alg U R' U' L B R' B' R
107
+ Alg R' U' R U B' U' B L`);
108
+ }
109
+
110
+ export {
111
+ skewbDefWithoutMOCached,
112
+ sgsDataSkewb,
113
+ sgsDataSkewbFixedCorner
114
+ };
115
+ //# sourceMappingURL=chunk-JZWB7AIU.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/search/inside/solve/puzzles/skewb.sgs.json.ts"],
4
+ "sourcesContent": ["import type { KPuzzleDefinition } from \"../../../../kpuzzle\";\nimport { getPuzzleGeometryByName } from \"../../../../puzzle-geometry\";\nimport { parseSGS, SGSCachedData } from \"../parseSGS\";\n\nasync function skewbDefWithoutMO(): Promise<KPuzzleDefinition> {\n return getPuzzleGeometryByName(\"skewb\", {\n allMoves: true,\n addRotations: true,\n }).writekpuzzle(true);\n}\n\n// TODO: Implement a general lazy Promise/ Promise cache wrapper\nlet defCache: Promise<KPuzzleDefinition> | null = null;\nexport async function skewbDefWithoutMOCached(): Promise<KPuzzleDefinition> {\n return (defCache ??= skewbDefWithoutMO());\n}\n\nlet cachedData: Promise<SGSCachedData> | null = null;\nexport async function sgsDataSkewb() {\n return (cachedData ??= uncachedSGSDataSkewb());\n}\n\nexport async function sgsDataSkewbFixedCorner(): Promise<SGSCachedData> {\n return {\n ordering: (await sgsDataSkewb()).ordering.slice(1),\n };\n}\n\n// TODO: Reduce info.\nasync function uncachedSGSDataSkewb(): Promise<SGSCachedData> {\n return parseSGS(\n await skewbDefWithoutMOCached(),\n `SubgroupSizes 24 6 5 12 9 3 4 9 3 3\n\nAlg y\nAlg y2\nAlg y'\nAlg F\nAlg F'\nAlg y U\nAlg y U'\nAlg y L\nAlg y L'\nAlg y F\nAlg y F'\nAlg y2 U\nAlg y2 U'\nAlg y2 B\nAlg y2 B'\nAlg y' U\nAlg y' F'\nAlg y U L'\nAlg y U B\nAlg y2 U B\nAlg y2 U B'\nAlg y2 U' B\nAlg y2 U' B'\n\nAlg U\nAlg U'\nAlg U L\nAlg U L'\nAlg U' R'\n\nAlg R\nAlg R'\nAlg R B\nAlg R' L'\n\nAlg U B' U\nAlg U' L U\nAlg U' L' U\nAlg U' B U'\nAlg R L R'\nAlg R B' R\nAlg U B L U'\nAlg U B' U B'\nAlg U B' L' U\nAlg U' L B U'\nAlg R' B L' R'\n\nAlg L\nAlg L'\nAlg L B\nAlg L B'\nAlg L B L\nAlg L B L'\nAlg L B' L\nAlg L B' L'\n\nAlg B\nAlg B'\n\nAlg L' B L\nAlg L' B' L\nAlg R' L' B L R\n\nAlg B L' B L B'\nAlg B L' B' L B'\nAlg U L U B U' L' U'\nAlg R L R' B' R L' R'\nAlg U B' R L R' B' U B\nAlg U' B U L U' B' U L'\nAlg L U' B U L' U' B' U\nAlg R B' U R B L U' B\n\nAlg U L U' B' U L' U' B\nAlg U' B L U L B' U' L'\n\nAlg U R' U' L B R' B' R\nAlg R' U' R U B' U' B L`,\n );\n}\n"],
5
+ "mappings": ";;;;;;;;AAIA,mCAA+D;AAC7D,SAAO,wBAAwB,SAAS;AAAA,IACtC,UAAU;AAAA,IACV,cAAc;AAAA,KACb,aAAa;AAAA;AAIlB,IAAI,WAA8C;AAClD,yCAA4E;AAC1E,SAAQ,wBAAa;AAAA;AAGvB,IAAI,aAA4C;AAChD,8BAAqC;AACnC,SAAQ,4BAAe;AAAA;AAGzB,yCAAwE;AACtE,SAAO;AAAA,IACL,UAAW,OAAM,gBAAgB,SAAS,MAAM;AAAA;AAAA;AAKpD,sCAA8D;AAC5D,SAAO,SACL,MAAM,2BACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,226 @@
1
+ import {
2
+ randomUIntBelowFactory
3
+ } from "./chunk-37EHU3GZ.js";
4
+ import {
5
+ Alg
6
+ } from "./chunk-EWRBHQFX.js";
7
+
8
+ // src/cubing/search/inside/solve/puzzles/clock.ts
9
+ var pins = ["UR", "DR", "DL", "UL"];
10
+ var backMoves = ["U", "R", "D", "L", "ALL"];
11
+ var frontMoves = pins.concat(backMoves);
12
+ var randomUIntBelowPromise = randomUIntBelowFactory();
13
+ async function randomClockScrambleString() {
14
+ const randomUIntBelow = await randomUIntBelowPromise;
15
+ let filteringMoveCount = 0;
16
+ async function randomSuffix(randomUIntBelow2) {
17
+ const amount = randomUIntBelow2(12);
18
+ if (amount !== 0) {
19
+ filteringMoveCount++;
20
+ }
21
+ if (amount <= 6) {
22
+ return `${amount}+`;
23
+ } else {
24
+ return `${12 - amount}-`;
25
+ }
26
+ }
27
+ const moves = [];
28
+ async function side(families) {
29
+ for (const family of families) {
30
+ moves.push(`${family}${await randomSuffix(randomUIntBelow)}`);
31
+ }
32
+ }
33
+ await side(frontMoves);
34
+ moves.push("y2");
35
+ await side(backMoves);
36
+ if (filteringMoveCount < 2) {
37
+ return randomClockScrambleString();
38
+ }
39
+ for (const pin of pins) {
40
+ if (randomUIntBelow(2) === 0) {
41
+ moves.push(pin);
42
+ }
43
+ }
44
+ return moves.join(" ");
45
+ }
46
+
47
+ // src/cubing/search/inside/solve/puzzles/wca-minx.ts
48
+ var randomUIntBelowPromise2 = randomUIntBelowFactory();
49
+ var suffixes = ["++", "--"];
50
+ async function randomMegaminxScrambleString() {
51
+ const randomUIntBelow = await randomUIntBelowPromise2;
52
+ function rdPair() {
53
+ return `R${suffixes[randomUIntBelow(2)]} D${suffixes[randomUIntBelow(2)]}`;
54
+ }
55
+ function randomU() {
56
+ return `U${["", "'"][randomUIntBelow(2)]}`;
57
+ }
58
+ function row() {
59
+ const chunks2 = [];
60
+ for (let i = 0; i < 5; i++) {
61
+ chunks2.push(rdPair());
62
+ }
63
+ chunks2.push(randomU());
64
+ return chunks2.join(" ");
65
+ }
66
+ const chunks = [];
67
+ for (let i = 0; i < 6; i++) {
68
+ chunks.push(row());
69
+ }
70
+ return chunks.join("\n");
71
+ }
72
+
73
+ // src/cubing/vendor/comlink-everywhere/outside/index.js
74
+ import { wrap } from "comlink";
75
+ var useNodeWorkarounds = typeof globalThis.Worker === "undefined" && typeof globalThis.WorkerNavigator === "undefined";
76
+ async function workerFileConstructor() {
77
+ if (useNodeWorkarounds) {
78
+ return await (await import("./node-W3AD4HBK.js")).NodeWorkerWrapper();
79
+ } else {
80
+ return globalThis.Worker;
81
+ }
82
+ }
83
+ async function constructWorkerFromString(stringSource, options) {
84
+ let worker;
85
+ if (useNodeWorkarounds) {
86
+ const constructor = await (await import("./node-W3AD4HBK.js")).NodeWorkerStringWrapper();
87
+ const worker2 = new constructor(stringSource);
88
+ return worker2;
89
+ } else {
90
+ const blob = new Blob([stringSource], { type: "application/javascript" });
91
+ const workerURL = URL.createObjectURL(blob);
92
+ worker = new globalThis.Worker(workerURL, {
93
+ type: options ? options.type : void 0
94
+ });
95
+ }
96
+ return worker;
97
+ }
98
+
99
+ // src/cubing/search/inside/module-entry-path-getter.ts
100
+ globalThis.DO_NOT_EXPOSE_API = true;
101
+ async function getWorkerEntryFileURL() {
102
+ return (await import("./module-entry-J2N3UZP7.js")).WORKER_ENTRY_FILE_URL;
103
+ }
104
+
105
+ // src/cubing/search/instantiator.ts
106
+ var MODULE_WORKER_TIMEOUT_MILLISECONDS = 5e3;
107
+ async function instantiateModuleWorker() {
108
+ return new Promise(async (resolve, reject) => {
109
+ const timeoutID = setTimeout(() => {
110
+ reject(new Error("module instantiation timeout"));
111
+ }, MODULE_WORKER_TIMEOUT_MILLISECONDS);
112
+ try {
113
+ const workerEntryFileURL = await getWorkerEntryFileURL();
114
+ if (!workerEntryFileURL) {
115
+ reject(new Error("Could not get worker entry file URL."));
116
+ }
117
+ let url;
118
+ if (globalThis.Blob) {
119
+ const importSrc = `import "${workerEntryFileURL}";`;
120
+ const blob = new Blob([importSrc], {
121
+ type: "text/javascript"
122
+ });
123
+ url = URL.createObjectURL(blob);
124
+ } else {
125
+ url = new URL(workerEntryFileURL);
126
+ }
127
+ const constructor = await workerFileConstructor();
128
+ const worker = new constructor(url, {
129
+ type: "module"
130
+ });
131
+ const onError = (e) => {
132
+ if (e.message?.startsWith("SyntaxError")) {
133
+ reject(e);
134
+ }
135
+ };
136
+ const onFirstMessage = (messageData) => {
137
+ if (messageData === "comlink-exposed") {
138
+ clearTimeout(timeoutID);
139
+ resolve(wrap(worker));
140
+ } else {
141
+ reject(new Error("wrong module instantiation message " + messageData));
142
+ }
143
+ };
144
+ if (worker.nodeWorker) {
145
+ worker.nodeWorker.once("message", onFirstMessage);
146
+ } else {
147
+ worker.addEventListener("error", onError, {
148
+ once: true
149
+ });
150
+ worker.addEventListener("message", (e) => onFirstMessage(e.data), {
151
+ once: true
152
+ });
153
+ }
154
+ } catch (e) {
155
+ reject(e);
156
+ }
157
+ });
158
+ }
159
+ async function instantiateWorker() {
160
+ try {
161
+ return await instantiateModuleWorker();
162
+ } catch (e) {
163
+ console.warn("Could not instantiate module worker (this is expected in Firefox and `bundle-global`). Falling back to string worker.", e);
164
+ const { workerSource } = await import("./worker-inside-generated-string-OWJA5IIQ.js");
165
+ const worker = await constructWorkerFromString(workerSource);
166
+ return wrap(worker);
167
+ }
168
+ }
169
+
170
+ // src/cubing/search/outside.ts
171
+ var cachedWorkerInstance = null;
172
+ async function getCachedWorkerInstance() {
173
+ return await (cachedWorkerInstance ?? (cachedWorkerInstance = instantiateWorker()));
174
+ }
175
+ async function randomScrambleForEvent(eventID) {
176
+ switch (eventID) {
177
+ case "clock":
178
+ return Alg.fromString(await randomClockScrambleString());
179
+ case "minx":
180
+ return Alg.fromString(await randomMegaminxScrambleString());
181
+ }
182
+ const prom = _randomScrambleStringForEvent(eventID);
183
+ const wat = await prom;
184
+ return Alg.fromString(wat);
185
+ }
186
+ async function _randomScrambleStringForEvent(eventID) {
187
+ const cwi = await getCachedWorkerInstance();
188
+ return cwi.randomScrambleStringForEvent(eventID);
189
+ }
190
+ async function experimentalSolve3x3x3IgnoringCenters(s) {
191
+ const cwi = await getCachedWorkerInstance();
192
+ return Alg.fromString(await cwi.solve333ToString(s));
193
+ }
194
+ async function experimentalSolve2x2x2(s) {
195
+ const cwi = await getCachedWorkerInstance();
196
+ return Alg.fromString(await cwi.solve222ToString(s));
197
+ }
198
+ async function solveSkewb(s) {
199
+ const cwi = await getCachedWorkerInstance();
200
+ return Alg.fromString(await cwi.solveSkewbToString(s));
201
+ }
202
+ async function solvePyraminx(s) {
203
+ const cwi = await getCachedWorkerInstance();
204
+ return Alg.fromString(await cwi.solvePyraminxToString(s));
205
+ }
206
+ async function solveMegaminx(s) {
207
+ const cwi = await getCachedWorkerInstance();
208
+ return Alg.fromString(await cwi.solveMegaminxToString(s));
209
+ }
210
+ function setDebug(options) {
211
+ const { logPerf } = options;
212
+ if (typeof logPerf !== "undefined") {
213
+ getCachedWorkerInstance().then((cwi) => cwi.setDebugMeasurePerf(logPerf));
214
+ }
215
+ }
216
+
217
+ export {
218
+ randomScrambleForEvent,
219
+ experimentalSolve3x3x3IgnoringCenters,
220
+ experimentalSolve2x2x2,
221
+ solveSkewb,
222
+ solvePyraminx,
223
+ solveMegaminx,
224
+ setDebug
225
+ };
226
+ //# sourceMappingURL=chunk-MLOCDLUF.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/search/inside/solve/puzzles/clock.ts", "../../src/cubing/search/inside/solve/puzzles/wca-minx.ts", "../../src/cubing/vendor/comlink-everywhere/outside/index.js", "../../src/cubing/search/inside/module-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", "export { wrap } from \"comlink\";\n\nconst useNodeWorkarounds =\n typeof globalThis.Worker === \"undefined\" &&\n typeof globalThis.WorkerNavigator === \"undefined\";\n\nexport async function workerFileConstructor() {\n if (useNodeWorkarounds) {\n return await (await import(\"./node.js\")).NodeWorkerWrapper();\n } else {\n return globalThis.Worker;\n }\n}\n\nexport async function constructWorkerFromString(stringSource, options) {\n let worker;\n if (useNodeWorkarounds) {\n const constructor = await (\n await import(\"./node.js\")\n ).NodeWorkerStringWrapper();\n const worker = new constructor(stringSource);\n return worker;\n } else {\n const blob = new Blob([stringSource], { type: \"application/javascript\" });\n const workerURL = URL.createObjectURL(blob);\n worker = new globalThis.Worker(workerURL, {\n type: options ? options.type : undefined, // TODO: Is it safe to use `options?.type`?\n });\n }\n return worker;\n}\n", "(globalThis as any).DO_NOT_EXPOSE_API = true;\n\nexport async function getWorkerEntryFileURL() {\n return (await import(\"./module-entry\")).WORKER_ENTRY_FILE_URL\n}\n", "import {\n constructWorkerFromString,\n workerFileConstructor,\n wrap,\n} from \"../vendor/comlink-everywhere/outside\";\nimport type { WorkerInsideAPI } from \"./inside/api\";\nimport { getWorkerEntryFileURL } from \"./inside/module-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 constructor = await workerFileConstructor();\n const worker = new constructor(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 constructWorkerFromString(workerSource);\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 { Transformation } from \"../kpuzzle\";\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 s: Transformation,\n): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solve333ToString(s));\n}\n\nexport async function experimentalSolve2x2x2(s: Transformation): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solve222ToString(s));\n}\n\nexport async function solveSkewb(s: Transformation): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solveSkewbToString(s));\n}\n\nexport async function solvePyraminx(s: Transformation): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solvePyraminxToString(s));\n}\n\nexport async function solveMegaminx(s: Transformation): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.solveMegaminxToString(s));\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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",
6
+ "names": []
7
+ }
@@ -2,7 +2,7 @@ import {
2
2
  cube3x3x3,
3
3
  getFaceletAppearance,
4
4
  puzzles
5
- } from "./chunk-R3HRHYIW.js";
5
+ } from "./chunk-DK6PXBB2.js";
6
6
  import {
7
7
  KPuzzle,
8
8
  areTransformationsEquivalent,
@@ -1907,4 +1907,4 @@ export {
1907
1907
  pg3dShim,
1908
1908
  T3I
1909
1909
  };
1910
- //# sourceMappingURL=chunk-GF76PWEV.js.map
1910
+ //# sourceMappingURL=chunk-N3RNWU5T.js.map