cubing 0.25.14 → 0.26.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/dist/esm/.DS_Store +0 -0
  2. package/dist/esm/bluetooth/index.js +1 -1
  3. package/dist/esm/{chunk-AT7N3AOZ.js → chunk-3ADPLDWG.js} +17 -9
  4. package/dist/esm/chunk-3ADPLDWG.js.map +7 -0
  5. package/dist/esm/{chunk-KIVNYU5K.js → chunk-3NFDCQI2.js} +5 -40
  6. package/dist/esm/chunk-3NFDCQI2.js.map +7 -0
  7. package/dist/esm/{chunk-XA4PIJ26.js → chunk-4OCHKVLJ.js} +6 -6
  8. package/dist/esm/{chunk-XA4PIJ26.js.map → chunk-4OCHKVLJ.js.map} +2 -2
  9. package/dist/esm/{chunk-QYQUT5N5.js → chunk-ESSOEWR6.js} +14 -14
  10. package/dist/esm/{chunk-QYQUT5N5.js.map → chunk-ESSOEWR6.js.map} +2 -2
  11. package/dist/esm/{chunk-EQO3X3CR.js → chunk-RGEST6KF.js} +10 -8
  12. package/dist/esm/chunk-RGEST6KF.js.map +7 -0
  13. package/dist/esm/chunk-YBDBUTYE.js +42 -0
  14. package/dist/esm/chunk-YBDBUTYE.js.map +7 -0
  15. package/dist/esm/puzzle-geometry/index.js +5 -1
  16. package/dist/esm/puzzles/index.js +1 -1
  17. package/dist/esm/{3x3x3.kpuzzle.svg-5U7LUACF.js → puzzles-dynamic-3x3x3-NB2PEZTV.js} +115 -4
  18. package/dist/esm/puzzles-dynamic-3x3x3-NB2PEZTV.js.map +7 -0
  19. package/dist/esm/puzzles-dynamic-side-events-CXNWDLKD.js +1855 -0
  20. package/dist/esm/puzzles-dynamic-side-events-CXNWDLKD.js.map +7 -0
  21. package/dist/esm/puzzles-dynamic-unofficial-CKTRIKMY.js +399 -0
  22. package/dist/esm/puzzles-dynamic-unofficial-CKTRIKMY.js.map +7 -0
  23. package/dist/esm/scramble/index.js +5 -4
  24. package/dist/esm/search/index.js +6 -5
  25. package/dist/esm/{chunk-ZII44VO5.js → search-dynamic-sgs-side-events-ZDPMZ4Y7.js} +320 -6
  26. package/dist/esm/search-dynamic-sgs-side-events-ZDPMZ4Y7.js.map +7 -0
  27. package/dist/esm/{fto.dynamic-SV2AUQBH.js → search-dynamic-sgs-unofficial-RAGEBTDP.js} +562 -9
  28. package/dist/esm/search-dynamic-sgs-unofficial-RAGEBTDP.js.map +7 -0
  29. package/dist/esm/{3x3x3-min2phase-UBW46KDU.js → search-dynamic-solve-3x3x3-K4TG7P3X.js} +1 -1
  30. package/dist/esm/{3x3x3-min2phase-UBW46KDU.js.map → search-dynamic-solve-3x3x3-K4TG7P3X.js.map} +0 -0
  31. package/dist/esm/{444-solver-EWF7OHAQ.js → search-dynamic-solve-4x4x4-W455FUFG.js} +4 -3
  32. package/dist/esm/{444-solver-EWF7OHAQ.js.map → search-dynamic-solve-4x4x4-W455FUFG.js.map} +1 -1
  33. package/dist/esm/{fto-solver-QFOR6LKK.js → search-dynamic-solve-fto-ZM45FTCO.js} +1 -1
  34. package/dist/esm/{fto-solver-QFOR6LKK.js.map → search-dynamic-solve-fto-ZM45FTCO.js.map} +0 -0
  35. package/dist/esm/{kilosolver-QN5CWSPC.js → search-dynamic-solve-kilominx-PAW6HKT5.js} +1 -3
  36. package/dist/esm/{kilosolver-QN5CWSPC.js.map → search-dynamic-solve-kilominx-PAW6HKT5.js.map} +1 -1
  37. package/dist/esm/{master_tetraminx-solver-4JXXIBVR.js → search-dynamic-solve-master_tetraminx-3R2CJUKW.js} +1 -3
  38. package/dist/esm/{master_tetraminx-solver-4JXXIBVR.js.map → search-dynamic-solve-master_tetraminx-3R2CJUKW.js.map} +1 -1
  39. package/dist/esm/{sq1-solver-E4EE73CO.js → search-dynamic-solve-sq1-RS5HN6AH.js} +1 -1
  40. package/dist/esm/{sq1-solver-E4EE73CO.js.map → search-dynamic-solve-sq1-RS5HN6AH.js.map} +0 -0
  41. package/dist/esm/{worker-inside-generated-string-NGQ24QDC.js → search-worker-inside-generated-string-VBEHCGJ6.js} +1335 -1335
  42. package/dist/esm/search-worker-inside-generated-string-VBEHCGJ6.js.map +7 -0
  43. package/dist/esm/{search-worker-js-entry-Z6HIC5BI.js → search-worker-js-entry-5IIKIMTU.js} +45 -60
  44. package/dist/esm/search-worker-js-entry-5IIKIMTU.js.map +7 -0
  45. package/dist/esm/{search-worker-ts-entry-PS4HBLXL.js → search-worker-ts-entry-BV3J54MW.js} +2 -2
  46. package/dist/esm/{search-worker-ts-entry-PS4HBLXL.js.map → search-worker-ts-entry-BV3J54MW.js.map} +0 -0
  47. package/dist/esm/twisty/index.js +71 -15
  48. package/dist/esm/twisty/index.js.map +3 -3
  49. package/dist/esm/{3d-dynamic-BOMV4HRU.js → twisty-dynamic-3d-KFFJZNMZ.js} +6 -5
  50. package/dist/esm/{3d-dynamic-BOMV4HRU.js.map → twisty-dynamic-3d-KFFJZNMZ.js.map} +2 -2
  51. package/dist/types/Alg-6f3dc52c.d.ts +278 -0
  52. package/dist/types/KPuzzleDefinition-121e85a8.d.ts +353 -0
  53. package/dist/types/KState-73482114.d.ts +70 -0
  54. package/dist/types/PuzzleLoader-9243f44d.d.ts +1177 -0
  55. package/dist/types/alg/index.d.ts +49 -13
  56. package/dist/types/bluetooth/index.d.ts +147 -11
  57. package/dist/types/{bluetooth/smart-puzzle/bluetooth-puzzle.d.ts → bluetooth-puzzle-679d8ca3.d.ts} +14 -8
  58. package/dist/types/kpuzzle/index.d.ts +8 -6
  59. package/dist/types/notation/index.d.ts +8 -2
  60. package/dist/types/outside-f7ba9c00.d.ts +22 -0
  61. package/dist/types/parse-6d363160.d.ts +9 -0
  62. package/dist/types/protocol/index.d.ts +26 -4
  63. package/dist/types/puzzle-geometry/index.d.ts +7 -6
  64. package/dist/types/puzzles/index.d.ts +31 -12
  65. package/dist/types/scramble/index.d.ts +4 -1
  66. package/dist/types/search/index.d.ts +8 -2
  67. package/dist/types/stream/index.d.ts +57 -3
  68. package/dist/types/twisty/index.d.ts +58 -16
  69. package/package.json +7 -4
  70. package/dist/esm/2x2x2.kpuzzle.json-BHTFIME6.js +0 -96
  71. package/dist/esm/2x2x2.kpuzzle.json-BHTFIME6.js.map +0 -7
  72. package/dist/esm/2x2x2.kpuzzle.svg-CYX37VBY.js +0 -52
  73. package/dist/esm/2x2x2.kpuzzle.svg-CYX37VBY.js.map +0 -7
  74. package/dist/esm/2x2x2.sgs.json-EFZFDZSW.js +0 -122
  75. package/dist/esm/2x2x2.sgs.json-EFZFDZSW.js.map +0 -7
  76. package/dist/esm/3x3x3-ll.kpuzzle.svg-KZNSV76X.js +0 -115
  77. package/dist/esm/3x3x3-ll.kpuzzle.svg-KZNSV76X.js.map +0 -7
  78. package/dist/esm/3x3x3.kpuzzle.svg-5U7LUACF.js.map +0 -7
  79. package/dist/esm/chunk-74BT3ZNM.js +0 -122
  80. package/dist/esm/chunk-74BT3ZNM.js.map +0 -7
  81. package/dist/esm/chunk-AT7N3AOZ.js.map +0 -7
  82. package/dist/esm/chunk-AWBXZ43I.js +0 -103
  83. package/dist/esm/chunk-AWBXZ43I.js.map +0 -7
  84. package/dist/esm/chunk-EQO3X3CR.js.map +0 -7
  85. package/dist/esm/chunk-KIVNYU5K.js.map +0 -7
  86. package/dist/esm/chunk-ZII44VO5.js.map +0 -7
  87. package/dist/esm/clock.kpuzzle.json-PYHONPBY.js +0 -714
  88. package/dist/esm/clock.kpuzzle.json-PYHONPBY.js.map +0 -7
  89. package/dist/esm/clock.kpuzzle.svg-JSRDCSQF.js +0 -376
  90. package/dist/esm/clock.kpuzzle.svg-JSRDCSQF.js.map +0 -7
  91. package/dist/esm/fto.dynamic-SV2AUQBH.js.map +0 -7
  92. package/dist/esm/fto.kpuzzle.svg-H2RJX6UR.js +0 -102
  93. package/dist/esm/fto.kpuzzle.svg-H2RJX6UR.js.map +0 -7
  94. package/dist/esm/kilominx.kpuzzle.svg-ZLRTRUTM.js +0 -83
  95. package/dist/esm/kilominx.kpuzzle.svg-ZLRTRUTM.js.map +0 -7
  96. package/dist/esm/megaminx.sgs.json-2JJOMDGZ.js +0 -16
  97. package/dist/esm/megaminx.sgs.json-2JJOMDGZ.js.map +0 -7
  98. package/dist/esm/pyraminx.kpuzzle.svg-UHDZCBET.js +0 -95
  99. package/dist/esm/pyraminx.kpuzzle.svg-UHDZCBET.js.map +0 -7
  100. package/dist/esm/pyraminx.sgs.json-53OXF5I4.js +0 -14
  101. package/dist/esm/pyraminx.sgs.json-53OXF5I4.js.map +0 -7
  102. package/dist/esm/redi_cube-6LJBQEBD.js +0 -565
  103. package/dist/esm/redi_cube-6LJBQEBD.js.map +0 -7
  104. package/dist/esm/redi_cube.kpuzzle.json-43CP47Z6.js +0 -66
  105. package/dist/esm/redi_cube.kpuzzle.json-43CP47Z6.js.map +0 -7
  106. package/dist/esm/redi_cube.kpuzzle.svg-3DWDYE3O.js +0 -160
  107. package/dist/esm/redi_cube.kpuzzle.svg-3DWDYE3O.js.map +0 -7
  108. package/dist/esm/search-worker-js-entry-Z6HIC5BI.js.map +0 -7
  109. package/dist/esm/skewb.sgs.json-3EF2HRKU.js +0 -16
  110. package/dist/esm/skewb.sgs.json-3EF2HRKU.js.map +0 -7
  111. package/dist/esm/sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js +0 -244
  112. package/dist/esm/sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js.map +0 -7
  113. package/dist/esm/sq1-hyperorbit.kpuzzle.svg-MNHJTJ6V.js +0 -302
  114. package/dist/esm/sq1-hyperorbit.kpuzzle.svg-MNHJTJ6V.js.map +0 -7
  115. package/dist/esm/worker-inside-generated-string-NGQ24QDC.js.map +0 -7
  116. package/dist/types/alg/Alg.d.ts +0 -118
  117. package/dist/types/alg/Alg.spec.d.ts +0 -1
  118. package/dist/types/alg/AlgBuilder.d.ts +0 -11
  119. package/dist/types/alg/Serializable.d.ts +0 -0
  120. package/dist/types/alg/common.d.ts +0 -19
  121. package/dist/types/alg/debug.d.ts +0 -4
  122. package/dist/types/alg/example.d.ts +0 -14
  123. package/dist/types/alg/is.d.ts +0 -4
  124. package/dist/types/alg/iteration.d.ts +0 -9
  125. package/dist/types/alg/keyboard.d.ts +0 -2
  126. package/dist/types/alg/limits.d.ts +0 -4
  127. package/dist/types/alg/operation.d.ts +0 -6
  128. package/dist/types/alg/operation.spec.d.ts +0 -1
  129. package/dist/types/alg/parse.d.ts +0 -12
  130. package/dist/types/alg/parse.spec.d.ts +0 -1
  131. package/dist/types/alg/test/alg-comparison.d.ts +0 -10
  132. package/dist/types/alg/test/alg.spec.d.ts +0 -1
  133. package/dist/types/alg/traversal.d.ts +0 -39
  134. package/dist/types/alg/units/QuantumWithAmount.d.ts +0 -11
  135. package/dist/types/alg/units/Unit.d.ts +0 -9
  136. package/dist/types/alg/units/containers/Commutator.d.ts +0 -14
  137. package/dist/types/alg/units/containers/Conjugate.d.ts +0 -14
  138. package/dist/types/alg/units/containers/Grouping.d.ts +0 -19
  139. package/dist/types/alg/units/index.d.ts +0 -8
  140. package/dist/types/alg/units/leaves/LineComment.d.ts +0 -12
  141. package/dist/types/alg/units/leaves/LineComment.spec.d.ts +0 -1
  142. package/dist/types/alg/units/leaves/Move.d.ts +0 -50
  143. package/dist/types/alg/units/leaves/Move.spec.d.ts +0 -1
  144. package/dist/types/alg/units/leaves/Newline.d.ts +0 -9
  145. package/dist/types/alg/units/leaves/Pause.d.ts +0 -9
  146. package/dist/types/alg/url.d.ts +0 -11
  147. package/dist/types/alg/url.spec.d.ts +0 -1
  148. package/dist/types/alg/validation.d.ts +0 -19
  149. package/dist/types/alg/warnOnce.d.ts +0 -1
  150. package/dist/types/bluetooth/connect/index.d.ts +0 -6
  151. package/dist/types/bluetooth/debug.d.ts +0 -2
  152. package/dist/types/bluetooth/keyboard.d.ts +0 -14
  153. package/dist/types/bluetooth/smart-puzzle/Heykube.d.ts +0 -17
  154. package/dist/types/bluetooth/smart-puzzle/connect.d.ts +0 -3
  155. package/dist/types/bluetooth/smart-puzzle/endianness.d.ts +0 -1
  156. package/dist/types/bluetooth/smart-puzzle/gan.d.ts +0 -34
  157. package/dist/types/bluetooth/smart-puzzle/giiker.d.ts +0 -21
  158. package/dist/types/bluetooth/smart-puzzle/giiker.spec.d.ts +0 -4
  159. package/dist/types/bluetooth/smart-puzzle/gocube.d.ts +0 -22
  160. package/dist/types/bluetooth/smart-robot/GanRobot.d.ts +0 -35
  161. package/dist/types/bluetooth/smart-robot/index.d.ts +0 -4
  162. package/dist/types/bluetooth/smart-timer/GanTimer.d.ts +0 -19
  163. package/dist/types/bluetooth/smart-timer/index.d.ts +0 -4
  164. package/dist/types/bluetooth/transformer.d.ts +0 -9
  165. package/dist/types/cubing.bundle-global.d.ts +0 -1
  166. package/dist/types/cubing.bundle-global.exports.d.ts +0 -24
  167. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.d.ts +0 -2
  168. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.d.ts +0 -1
  169. package/dist/types/kpuzzle/3x3x3/puzzle-orientation.d.ts +0 -5
  170. package/dist/types/kpuzzle/KPuzzle.d.ts +0 -30
  171. package/dist/types/kpuzzle/KPuzzleDefinition.d.ts +0 -21
  172. package/dist/types/kpuzzle/KState.d.ts +0 -23
  173. package/dist/types/kpuzzle/KTransformation.d.ts +0 -24
  174. package/dist/types/kpuzzle/calculate.d.ts +0 -16
  175. package/dist/types/kpuzzle/combine.d.ts +0 -3
  176. package/dist/types/kpuzzle/construct.d.ts +0 -5
  177. package/dist/types/notation/CountAnimatedLeaves.d.ts +0 -2
  178. package/dist/types/notation/CountMoves.d.ts +0 -3
  179. package/dist/types/protocol/binary/binary3x3x3.d.ts +0 -19
  180. package/dist/types/protocol/binary/binary3x3x3.spec.d.ts +0 -1
  181. package/dist/types/protocol/binary/hex.d.ts +0 -2
  182. package/dist/types/protocol/binary/hex.spec.d.ts +0 -1
  183. package/dist/types/protocol/binary/orbit-indexing.d.ts +0 -5
  184. package/dist/types/protocol/binary/orbit-indexing.spec.d.ts +0 -1
  185. package/dist/types/protocol/binary/puzzle-orientation.d.ts +0 -4
  186. package/dist/types/puzzle-geometry/FaceNameSwizzler.d.ts +0 -12
  187. package/dist/types/puzzle-geometry/Options.d.ts +0 -45
  188. package/dist/types/puzzle-geometry/PGPuzzles.d.ts +0 -5
  189. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts +0 -4
  190. package/dist/types/puzzle-geometry/Perm.d.ts +0 -18
  191. package/dist/types/puzzle-geometry/PermOriSet.d.ts +0 -71
  192. package/dist/types/puzzle-geometry/PlatonicGenerator.d.ts +0 -10
  193. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts +0 -176
  194. package/dist/types/puzzle-geometry/Quat.d.ts +0 -43
  195. package/dist/types/puzzle-geometry/Quat.spec.d.ts +0 -1
  196. package/dist/types/puzzle-geometry/SchreierSims.d.ts +0 -2
  197. package/dist/types/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts +0 -10
  198. package/dist/types/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts +0 -12
  199. package/dist/types/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts +0 -8
  200. package/dist/types/puzzle-geometry/notation-mapping/NotationMapper.d.ts +0 -7
  201. package/dist/types/puzzle-geometry/notation-mapping/NullMapper.d.ts +0 -6
  202. package/dist/types/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts +0 -8
  203. package/dist/types/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts +0 -15
  204. package/dist/types/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts +0 -9
  205. package/dist/types/puzzle-geometry/notation-mapping/index.d.ts +0 -8
  206. package/dist/types/puzzle-geometry/orientcenters.spec.d.ts +0 -1
  207. package/dist/types/puzzles/PuzzleLoader.d.ts +0 -18
  208. package/dist/types/puzzles/async/async-pg3d.d.ts +0 -33
  209. package/dist/types/puzzles/async/lazy-cached.d.ts +0 -1
  210. package/dist/types/puzzles/customPGPuzzleLoader.d.ts +0 -11
  211. package/dist/types/puzzles/events.d.ts +0 -8
  212. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.d.ts +0 -2
  213. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.d.ts +0 -2
  214. package/dist/types/puzzles/implementations/2x2x2/index.d.ts +0 -2
  215. package/dist/types/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts +0 -2
  216. package/dist/types/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.d.ts +0 -2
  217. package/dist/types/puzzles/implementations/3x3x3/index.d.ts +0 -2
  218. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.json.d.ts +0 -2
  219. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.svg.d.ts +0 -2
  220. package/dist/types/puzzles/implementations/clock/index.d.ts +0 -2
  221. package/dist/types/puzzles/implementations/fto/fto.kpuzzle.svg.d.ts +0 -1
  222. package/dist/types/puzzles/implementations/fto/index.d.ts +0 -12
  223. package/dist/types/puzzles/implementations/kilominx/index.d.ts +0 -2
  224. package/dist/types/puzzles/implementations/kilominx/kilominx.kpuzzle.svg.d.ts +0 -1
  225. package/dist/types/puzzles/implementations/megaminx/index.d.ts +0 -11
  226. package/dist/types/puzzles/implementations/pyraminx/index.d.ts +0 -7
  227. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.d.ts +0 -2
  228. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.d.ts +0 -2
  229. package/dist/types/puzzles/implementations/redi-cube/index.d.ts +0 -2
  230. package/dist/types/puzzles/implementations/redi-cube/redi_cube.kpuzzle.json.d.ts +0 -2
  231. package/dist/types/puzzles/implementations/redi-cube/redi_cube.kpuzzle.svg.d.ts +0 -1
  232. package/dist/types/puzzles/implementations/square1/index.d.ts +0 -2
  233. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.d.ts +0 -2
  234. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.d.ts +0 -2
  235. package/dist/types/puzzles/stickerings/appearance.d.ts +0 -50
  236. package/dist/types/puzzles/stickerings/cube-stickerings.d.ts +0 -5
  237. package/dist/types/puzzles/stickerings/fto-stickerings.d.ts +0 -5
  238. package/dist/types/puzzles/stickerings/global-custom-stickering-hack.d.ts +0 -2
  239. package/dist/types/puzzles/stickerings/megaminx-stickerings.d.ts +0 -5
  240. package/dist/types/search/inside/api.d.ts +0 -21
  241. package/dist/types/search/inside/api.spec.d.ts +0 -1
  242. package/dist/types/search/inside/inside-worker.d.ts +0 -2
  243. package/dist/types/search/inside/search-worker-js-entry.d.ts +0 -1
  244. package/dist/types/search/inside/search-worker-ts-entry-path-getter.d.ts +0 -1
  245. package/dist/types/search/inside/search-worker-ts-entry.d.ts +0 -1
  246. package/dist/types/search/inside/solve/addOrientationSuffix.d.ts +0 -2
  247. package/dist/types/search/inside/solve/parseSGS.d.ts +0 -18
  248. package/dist/types/search/inside/solve/puzzles/2x2x2.d.ts +0 -6
  249. package/dist/types/search/inside/solve/puzzles/2x2x2.sgs.json.d.ts +0 -3
  250. package/dist/types/search/inside/solve/puzzles/3x3x3/convert.d.ts +0 -2
  251. package/dist/types/search/inside/solve/puzzles/3x3x3/filter.d.ts +0 -4
  252. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts +0 -8
  253. package/dist/types/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts +0 -1
  254. package/dist/types/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.d.ts +0 -3
  255. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts +0 -4
  256. package/dist/types/search/inside/solve/puzzles/5x5x5.d.ts +0 -2
  257. package/dist/types/search/inside/solve/puzzles/big-cubes.d.ts +0 -2
  258. package/dist/types/search/inside/solve/puzzles/clock.d.ts +0 -1
  259. package/dist/types/search/inside/solve/puzzles/fto.d.ts +0 -5
  260. package/dist/types/search/inside/solve/puzzles/fto.dynamic.d.ts +0 -3
  261. package/dist/types/search/inside/solve/puzzles/kilominx.d.ts +0 -2
  262. package/dist/types/search/inside/solve/puzzles/master_tetraminx.d.ts +0 -2
  263. package/dist/types/search/inside/solve/puzzles/megaminx.d.ts +0 -4
  264. package/dist/types/search/inside/solve/puzzles/megaminx.sgs.json.d.ts +0 -5
  265. package/dist/types/search/inside/solve/puzzles/pyraminx.d.ts +0 -6
  266. package/dist/types/search/inside/solve/puzzles/pyraminx.sgs.json.d.ts +0 -3
  267. package/dist/types/search/inside/solve/puzzles/redi_cube.d.ts +0 -2
  268. package/dist/types/search/inside/solve/puzzles/sgs-defs.spec.d.ts +0 -1
  269. package/dist/types/search/inside/solve/puzzles/skewb.d.ts +0 -6
  270. package/dist/types/search/inside/solve/puzzles/skewb.sgs.json.d.ts +0 -5
  271. package/dist/types/search/inside/solve/puzzles/sq1.d.ts +0 -2
  272. package/dist/types/search/inside/solve/puzzles/wca-minx.d.ts +0 -1
  273. package/dist/types/search/inside/solve/tremble.d.ts +0 -13
  274. package/dist/types/search/inside/worker-guard.d.ts +0 -3
  275. package/dist/types/search/instantiator.d.ts +0 -4
  276. package/dist/types/search/outside.d.ts +0 -17
  277. package/dist/types/search/worker-inside-generated-string.d.ts +0 -1
  278. package/dist/types/stream/process/ReorientedStream.d.ts +0 -20
  279. package/dist/types/stream/proxy-event.d.ts +0 -13
  280. package/dist/types/stream/twizzle/TwizzleStream.d.ts +0 -18
  281. package/dist/types/stream/twizzle/stream-types.d.ts +0 -32
  282. package/dist/types/stream/websocket-proxy.d.ts +0 -21
  283. package/dist/types/twisty/controllers/AnimationTypes.d.ts +0 -32
  284. package/dist/types/twisty/controllers/RenderScheduler.d.ts +0 -12
  285. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts +0 -36
  286. package/dist/types/twisty/controllers/TwistyPlayerController.d.ts +0 -15
  287. package/dist/types/twisty/controllers/easing.d.ts +0 -1
  288. package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts +0 -17
  289. package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts +0 -36
  290. package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts +0 -19
  291. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts +0 -22
  292. package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts +0 -25
  293. package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts +0 -63
  294. package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts +0 -20
  295. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts +0 -2
  296. package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts +0 -15
  297. package/dist/types/twisty/heavy-code-imports/3d.d.ts +0 -2
  298. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d-dynamic.d.ts +0 -10
  299. package/dist/types/twisty/model/PromiseFreshener.d.ts +0 -13
  300. package/dist/types/twisty/model/TwistyPlayerModel.d.ts +0 -85
  301. package/dist/types/twisty/model/TwistySceneModel.d.ts +0 -27
  302. package/dist/types/twisty/model/UserVisibleErrorTracker.d.ts +0 -10
  303. package/dist/types/twisty/model/helpers.d.ts +0 -4
  304. package/dist/types/twisty/model/props/TwistyProp.d.ts +0 -59
  305. package/dist/types/twisty/model/props/TwistyProp.spec.d.ts +0 -4
  306. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts +0 -26
  307. package/dist/types/twisty/model/props/general/ArbitraryStringProp.d.ts +0 -4
  308. package/dist/types/twisty/model/props/general/URLProp.d.ts +0 -5
  309. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts +0 -5
  310. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts +0 -10
  311. package/dist/types/twisty/model/props/puzzle/display/SpriteProp.d.ts +0 -9
  312. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts +0 -50
  313. package/dist/types/twisty/model/props/puzzle/state/AlgProp.d.ts +0 -26
  314. package/dist/types/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts +0 -11
  315. package/dist/types/twisty/model/props/puzzle/state/AnchorTransformationProp.d.ts +0 -14
  316. package/dist/types/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts +0 -10
  317. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts +0 -16
  318. package/dist/types/twisty/model/props/puzzle/state/CurrentMoveInfoProp.d.ts +0 -13
  319. package/dist/types/twisty/model/props/puzzle/state/CurrentStateProp.d.ts +0 -14
  320. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts +0 -19
  321. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts +0 -11
  322. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts +0 -14
  323. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts +0 -11
  324. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +0 -10
  325. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts +0 -9
  326. package/dist/types/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts +0 -13
  327. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts +0 -9
  328. package/dist/types/twisty/model/props/puzzle/state/SetupTransformationProp.d.ts +0 -5
  329. package/dist/types/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts +0 -10
  330. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts +0 -5
  331. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts +0 -10
  332. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +0 -25
  333. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts +0 -12
  334. package/dist/types/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts +0 -24
  335. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts +0 -21
  336. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts +0 -14
  337. package/dist/types/twisty/model/props/timeline/TempoScaleProp.d.ts +0 -5
  338. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts +0 -15
  339. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts +0 -11
  340. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts +0 -10
  341. package/dist/types/twisty/model/props/viewer/ButtonAppearanceProp.d.ts +0 -21
  342. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts +0 -10
  343. package/dist/types/twisty/model/props/viewer/LatitudeLimit.d.ts +0 -5
  344. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts +0 -28
  345. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts +0 -14
  346. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts +0 -10
  347. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts +0 -11
  348. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts +0 -12
  349. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts +0 -12
  350. package/dist/types/twisty/views/2D/KPuzzleSVGWrapper.d.ts +0 -17
  351. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts +0 -2
  352. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts +0 -27
  353. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts +0 -15
  354. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts +0 -19
  355. package/dist/types/twisty/views/3D/DragTracker.d.ts +0 -27
  356. package/dist/types/twisty/views/3D/RendererPool.d.ts +0 -3
  357. package/dist/types/twisty/views/3D/TAU.d.ts +0 -2
  358. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts +0 -21
  359. package/dist/types/twisty/views/3D/Twisty3DRenderTarget.d.ts +0 -3
  360. package/dist/types/twisty/views/3D/Twisty3DScene.d.ts +0 -14
  361. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts +0 -33
  362. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts +0 -2
  363. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts +0 -36
  364. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts +0 -23
  365. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts +0 -4
  366. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts +0 -58
  367. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts +0 -64
  368. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts +0 -5
  369. package/dist/types/twisty/views/ClassListManager.d.ts +0 -10
  370. package/dist/types/twisty/views/ManagedCustomElement.d.ts +0 -19
  371. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts +0 -17
  372. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts +0 -2
  373. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts +0 -40
  374. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts +0 -4
  375. package/dist/types/twisty/views/TwistyAlgEditor/model.d.ts +0 -60
  376. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts +0 -2
  377. package/dist/types/twisty/views/TwistyAlgViewer.d.ts +0 -51
  378. package/dist/types/twisty/views/TwistyPlayer.css.d.ts +0 -2
  379. package/dist/types/twisty/views/TwistyPlayer.d.ts +0 -112
  380. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts +0 -79
  381. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts +0 -2
  382. package/dist/types/twisty/views/canvas.d.ts +0 -2
  383. package/dist/types/twisty/views/control-panel/TwistyButtons.css.d.ts +0 -3
  384. package/dist/types/twisty/views/control-panel/TwistyButtons.d.ts +0 -32
  385. package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts +0 -2
  386. package/dist/types/twisty/views/control-panel/TwistyScrubber.d.ts +0 -13
  387. package/dist/types/twisty/views/control-panel/webkit-fullscreen.d.ts +0 -14
  388. package/dist/types/twisty/views/document.d.ts +0 -1
  389. package/dist/types/twisty/views/node-custom-element-shims.d.ts +0 -4
  390. package/dist/types/twisty/views/screenshot.d.ts +0 -11
  391. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts +0 -2
  392. package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts +0 -12
  393. package/dist/types/twisty/views/twizzle/TwizzleLink.css.d.ts +0 -2
  394. package/dist/types/twisty/views/twizzle/TwizzleLink.d.ts +0 -11
  395. package/dist/types/twisty/views/twizzle/url-params.d.ts +0 -18
  396. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts +0 -4
  397. package/dist/types/vendor/comlink-everywhere/node-adapter.d.ts +0 -6
  398. package/dist/types/vendor/comlink-everywhere/outside/index.d.ts +0 -5
  399. package/dist/types/vendor/cstimer/src/js/lib/mathlib.d.ts +0 -4
  400. package/dist/types/vendor/cstimer/src/js/scramble/444-solver.d.ts +0 -3
  401. package/dist/types/vendor/min2phase/3x3x3-min2phase.d.ts +0 -2
  402. package/dist/types/vendor/p-lazy/p-lazy.d.ts +0 -9
  403. package/dist/types/vendor/random-uint-below/get-random-values.d.ts +0 -2
  404. package/dist/types/vendor/random-uint-below/index.d.ts +0 -3
  405. package/dist/types/vendor/random-uint-below/random-choice.d.ts +0 -1
  406. package/dist/types/vendor/random-uint-below/random53BitValue.d.ts +0 -1
  407. package/dist/types/vendor/sq12phase/sq1-solver.d.ts +0 -1
  408. package/dist/types/vendor/three/examples/jsm/libs/stats.modified.module.d.ts +0 -32
  409. package/dist/types/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts +0 -3
  410. package/dist/types/vendor/xyzzy/fto-solver-original.d.ts +0 -148
  411. package/dist/types/vendor/xyzzy/fto-solver.d.ts +0 -1
  412. package/dist/types/vendor/xyzzy/kilosolver.d.ts +0 -2
  413. package/dist/types/vendor/xyzzy/master_tetraminx-solver.d.ts +0 -1
  414. package/dist/types/vendor/xyzzy/redi_cube.d.ts +0 -2
@@ -1,18 +1,19 @@
1
1
  import {
2
2
  parseSGS
3
3
  } from "./chunk-FB7SFELN.js";
4
+ import {
5
+ randomUIntBelowFactory
6
+ } from "./chunk-NYAPGKCW.js";
4
7
  import {
5
8
  puzzles
6
- } from "./chunk-QYQUT5N5.js";
9
+ } from "./chunk-ESSOEWR6.js";
7
10
  import "./chunk-HD2CMNE4.js";
8
- import "./chunk-DO7GZAW4.js";
11
+ import {
12
+ Alg
13
+ } from "./chunk-DO7GZAW4.js";
9
14
  import "./chunk-MGJA5U5O.js";
10
15
 
11
- // src/cubing/search/inside/solve/puzzles/fto.dynamic.ts
12
- async function randomFTOScrambleString() {
13
- const { randomFTOScrambleString: randomFTOScrambleString2 } = await import("./fto-solver-QFOR6LKK.js");
14
- return randomFTOScrambleString2();
15
- }
16
+ // src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/fto.sgs.ts
16
17
  var cachedData = null;
17
18
  async function sgsDataFTO() {
18
19
  return cachedData ?? (cachedData = uncachedSGSDataFTO());
@@ -639,8 +640,560 @@ Alg BR L' BL BR' BL' BR' L U BR U'
639
640
  Alg U BR' U' BR BL' BR BL BR'
640
641
  `);
641
642
  }
643
+
644
+ // src/cubing/vendor/xyzzy/redi_cube.js
645
+ function factorial(n) {
646
+ if (n < 2)
647
+ return n;
648
+ let f = 1;
649
+ for (let i = 2; i <= n; i++)
650
+ f *= i;
651
+ return f;
652
+ }
653
+ function C(n, k) {
654
+ if (k < 0 || k > n)
655
+ return 0;
656
+ if (k === 0 || k === n)
657
+ return 1;
658
+ let c = 1;
659
+ for (let i = 0; i < k; i++) {
660
+ c = c * (n - i) / (i + 1) | 0;
661
+ }
662
+ return c;
663
+ }
664
+ function permutation_to_index(perm) {
665
+ perm = perm.slice();
666
+ let n = perm.length;
667
+ let f = factorial(n - 1);
668
+ let ind = 0;
669
+ while (n > 1) {
670
+ n--;
671
+ let e = perm[0];
672
+ ind += e * f;
673
+ for (let i = 0; i < n; i++) {
674
+ let x = perm[i + 1];
675
+ perm[i] = x - (x > e);
676
+ }
677
+ f /= n;
678
+ }
679
+ return ind;
680
+ }
681
+ function index_to_permutation(ind, n) {
682
+ let perm = [];
683
+ let f = factorial(n - 1);
684
+ for (let i = 0; i < n; i++) {
685
+ perm[i] = ind / f | 0;
686
+ ind %= f;
687
+ f /= n - 1 - i;
688
+ }
689
+ for (let i = n - 2; i >= 0; i--) {
690
+ for (let j = i + 1; j < n; j++) {
691
+ perm[j] += +(perm[j] >= perm[i]);
692
+ }
693
+ }
694
+ return perm;
695
+ }
696
+ function permutation_parity(A) {
697
+ let n = A.length;
698
+ let parity = 0;
699
+ for (let i = 0; i < n - 1; i++) {
700
+ for (let j = i; j < n; j++) {
701
+ if (A[i] > A[j])
702
+ parity ^= 1;
703
+ }
704
+ }
705
+ return parity;
706
+ }
707
+ function index_to_evenpermutation(ind, n) {
708
+ let perm = [];
709
+ let f = factorial(n - 1) / 2;
710
+ let parity = 0;
711
+ for (let i = 0; i < n - 1; i++) {
712
+ perm[i] = ind / f | 0;
713
+ ind %= f;
714
+ f /= n - 1 - i;
715
+ }
716
+ perm[n - 1] = 0;
717
+ for (let i = n - 2; i >= 0; i--) {
718
+ for (let j = i + 1; j < n; j++) {
719
+ if (perm[j] >= perm[i])
720
+ perm[j]++;
721
+ else
722
+ parity ^= 1;
723
+ }
724
+ }
725
+ if (parity === 1)
726
+ [perm[n - 2], perm[n - 1]] = [perm[n - 1], perm[n - 2]];
727
+ return perm;
728
+ }
729
+ function evenpermutation_to_index(perm) {
730
+ return permutation_to_index(perm) >> 1;
731
+ }
732
+ function comb_to_index(l) {
733
+ let bits = l.length;
734
+ let ones = 0;
735
+ for (let i = 0; i < bits; i++)
736
+ ones += +(l[i] === 1);
737
+ let zeros = bits - ones;
738
+ if (zeros === 0 || ones === 0 || bits === 1)
739
+ return 0;
740
+ let b = C(bits - 1, ones);
741
+ let ind = 0;
742
+ for (let i = 0; zeros > 0 && ones > 0 && bits > 1; i++) {
743
+ bits--;
744
+ if (l[i] === 0) {
745
+ b = b * --zeros / bits;
746
+ } else {
747
+ ind += b;
748
+ b = b * ones-- / bits;
749
+ }
750
+ }
751
+ return ind;
752
+ }
753
+ function index_to_comb(ind, ones, bits) {
754
+ let zeros = bits - ones;
755
+ let b = C(bits - 1, ones);
756
+ let l = [];
757
+ let n = bits - 1;
758
+ for (let i = 0; i < n; i++) {
759
+ bits--;
760
+ if (ind < b) {
761
+ l.push(0);
762
+ b = b * --zeros / bits;
763
+ } else {
764
+ l.push(1);
765
+ ind -= b;
766
+ b = b * ones-- / bits;
767
+ }
768
+ }
769
+ l.push(ones);
770
+ return l;
771
+ }
772
+ function compose(A, B) {
773
+ let C2 = [];
774
+ for (let i = 0; i < B.length; i++)
775
+ C2[i] = A[B[i]];
776
+ return C2;
777
+ }
778
+ function permutation_from_cycle(cycle, n) {
779
+ let perm = [];
780
+ for (let i = 0; i < n; i++)
781
+ perm[i] = i;
782
+ for (let i = 0; i < cycle.length; i++) {
783
+ perm[cycle[i]] = cycle[(i + 1) % cycle.length];
784
+ }
785
+ return perm;
786
+ }
787
+ function unsparsify_list(d, n) {
788
+ let l = Array(n).fill(0);
789
+ for (let k in d)
790
+ l[k] = d[k];
791
+ return l;
792
+ }
793
+ function compose_state(state1, state2) {
794
+ let o = Array(8).fill(0);
795
+ for (let i = 0; i < 8; i++)
796
+ o[i] = (state1[1][i] + state2[1][i]) % 3;
797
+ return [compose(state1[0], state2[0]), o];
798
+ }
799
+ var move_UL = [
800
+ permutation_from_cycle([0, 1, 4], 12),
801
+ unsparsify_list({ 0: 2 }, 8)
802
+ ];
803
+ var move_U = [
804
+ permutation_from_cycle([1, 2, 5], 12),
805
+ unsparsify_list({ 1: 2 }, 8)
806
+ ];
807
+ var move_UR = [
808
+ permutation_from_cycle([2, 3, 6], 12),
809
+ unsparsify_list({ 2: 2 }, 8)
810
+ ];
811
+ var move_F = [
812
+ permutation_from_cycle([3, 0, 7], 12),
813
+ unsparsify_list({ 3: 2 }, 8)
814
+ ];
815
+ var move_L = [
816
+ permutation_from_cycle([9, 8, 4], 12),
817
+ unsparsify_list({ 4: 2 }, 8)
818
+ ];
819
+ var move_B = [
820
+ permutation_from_cycle([10, 9, 5], 12),
821
+ unsparsify_list({ 5: 2 }, 8)
822
+ ];
823
+ var move_R = [
824
+ permutation_from_cycle([11, 10, 6], 12),
825
+ unsparsify_list({ 6: 2 }, 8)
826
+ ];
827
+ var move_D = [
828
+ permutation_from_cycle([8, 11, 7], 12),
829
+ unsparsify_list({ 7: 2 }, 8)
830
+ ];
831
+ var solved = [index_to_permutation(0, 12), Array(8).fill(0)];
832
+ var moves = [move_UL, move_U, move_UR, move_F, move_L, move_B, move_R, move_D];
833
+ var move_names = ["UL", "U", "UR", "F", "L", "B", "R", "D"];
834
+ var tetrad = [0, 1, 0, 1, 1, 0, 1, 0];
835
+ function stringify_move_sequence(move_sequence) {
836
+ let suffixes = ["0", "", "'"];
837
+ let s = move_sequence.map(([m, r]) => move_names[m] + suffixes[r]);
838
+ return s.join(" ");
839
+ }
840
+ function generate_random_state(randomUintBelow2) {
841
+ let p = index_to_evenpermutation(Math.floor(randomUintBelow2(factorial(12)) / 2), 12);
842
+ let o = Array(8);
843
+ for (let i = 0; i < 8; i++)
844
+ o[i] = randomUintBelow2(3);
845
+ return [p, o];
846
+ }
847
+ function generate_random_state_scramble(randomUintBelow2) {
848
+ return solve(generate_random_state(randomUintBelow2));
849
+ }
850
+ function solve(state) {
851
+ let phase1_indices = index_phase1(state);
852
+ let phase1_mtables = [
853
+ generate_phase1_edge_mtable(),
854
+ generate_phase1_separate_mtable()
855
+ ];
856
+ let phase1_ptables = [
857
+ generate_phase1_edge_ptable(),
858
+ generate_phase1_separate_ptable()
859
+ ];
860
+ let phase2_mtables = [
861
+ generate_phase2_edge_mtable(),
862
+ generate_phase2_corner_mtable()
863
+ ];
864
+ let phase2_ptables = [
865
+ generate_phase2_edge_ptable(),
866
+ generate_phase1_corner_ptable()
867
+ ];
868
+ let phase1gen = ida_solve_gen(phase1_indices, phase1_mtables, phase1_ptables);
869
+ let best = void 0;
870
+ let intermediate_states = /* @__PURE__ */ new Set();
871
+ let start_time = +new Date();
872
+ for (let i = 0; i < 25; i++) {
873
+ let { value: sol1, done } = phase1gen.next();
874
+ let new_state = state;
875
+ for (let [m, r] of sol1) {
876
+ for (let i2 = 0; i2 < r; i2++)
877
+ new_state = compose_state(new_state, moves[m]);
878
+ }
879
+ if (intermediate_states.has(new_state.toString())) {
880
+ continue;
881
+ } else
882
+ intermediate_states.add(new_state.toString());
883
+ let edge_ind = evenpermutation_to_index(new_state[0].slice(0, 8));
884
+ let corner_ind = 0;
885
+ for (let i2 = 0; i2 < 4; i2++)
886
+ corner_ind += new_state[1][i2] * 3 ** i2;
887
+ let phase2_indices = [edge_ind, corner_ind];
888
+ let moves_left = best ? best.length - sol1.length - 1 : 999999;
889
+ let sol2 = ida_solve(phase2_indices, phase2_mtables, phase2_ptables, moves_left);
890
+ if (sol2 === void 0) {
891
+ continue;
892
+ }
893
+ if (best === void 0 || best.length > sol1.length + sol2.length) {
894
+ best = sol1.concat(sol2);
895
+ }
896
+ if (new Date() - start_time > 300)
897
+ break;
898
+ }
899
+ return best;
900
+ }
901
+ function index_phase1(state) {
902
+ let edge_ind = 0;
903
+ for (let i = 0; i < 4; i++)
904
+ edge_ind += state[0].indexOf(i + 8) * 12 ** i;
905
+ let corner_ind = 0;
906
+ for (let i = 0; i < 4; i++)
907
+ corner_ind += state[1][i + 4] * 3 ** i;
908
+ let filtered = state[0].map((x) => Math.max(-1, x - 8));
909
+ let separate_ind = comb_to_index(filtered.map((x) => +(x >= 0))) * 2 + permutation_parity(filtered.filter((x) => x >= 0));
910
+ return [edge_ind, corner_ind + 81 * separate_ind];
911
+ }
912
+ var tables = {};
913
+ function generate_phase1_corner_mtable() {
914
+ if (tables.phase1cm)
915
+ return tables.phase1cm;
916
+ let mtable = [];
917
+ for (let i = 0; i < 81; i++) {
918
+ mtable[i] = Array(8);
919
+ let o = [
920
+ i % 3,
921
+ Math.floor(i / 3) % 3,
922
+ Math.floor(i / 9) % 3,
923
+ Math.floor(i / 27)
924
+ ];
925
+ mtable[i][0] = mtable[i][1] = mtable[i][2] = mtable[i][3] = i;
926
+ for (let j = 0; j < 4; j++) {
927
+ o[j] = (o[j] + 2) % 3;
928
+ mtable[i][4 + j] = o[0] + o[1] * 3 + o[2] * 9 + o[3] * 27;
929
+ o[j] = (o[j] + 1) % 3;
930
+ }
931
+ }
932
+ return tables.phase1cm = mtable;
933
+ }
934
+ function generate_phase1_corner_ptable() {
935
+ if (tables.phase1cp)
936
+ return tables.phase1cp;
937
+ let ptable = Array(81);
938
+ for (let i = 0; i < 81; i++) {
939
+ let o = [
940
+ i % 3,
941
+ Math.floor(i / 3) % 3,
942
+ Math.floor(i / 9) % 3,
943
+ Math.floor(i / 27)
944
+ ];
945
+ ptable[i] = (o[0] !== 0) + (o[1] !== 0) + (o[2] !== 0) + (o[3] !== 0);
946
+ }
947
+ return tables.phase1cp = ptable;
948
+ }
949
+ function generate_phase1_edge_mtable() {
950
+ if (tables.phase1em)
951
+ return tables.phase1em;
952
+ let mtable_single = [];
953
+ for (let i = 0; i < 12; i++) {
954
+ mtable_single[i] = [];
955
+ for (let m = 0; m < 8; m++) {
956
+ mtable_single[i][m] = moves[m][0].indexOf(i);
957
+ }
958
+ }
959
+ let mtable = Array(12 ** 4);
960
+ for (let i = 0; i < 12 ** 4; i++) {
961
+ mtable[i] = Array(8);
962
+ for (let m = 0; m < 8; m++) {
963
+ let I = 0;
964
+ for (let j = 0; j < 4; j++) {
965
+ I += mtable_single[Math.floor(i / 12 ** j) % 12][m] * 12 ** j;
966
+ }
967
+ mtable[i][m] = I;
968
+ }
969
+ }
970
+ return tables.phase1em = mtable;
971
+ }
972
+ function generate_phase1_edge_ptable() {
973
+ if (tables.phase1ep)
974
+ return tables.phase1ep;
975
+ return tables.phase1ep = bfs(generate_phase1_edge_mtable(), [
976
+ 8 + 12 * (9 + 12 * (10 + 12 * 11))
977
+ ]);
978
+ }
979
+ function generate_phase1_separate_mtable() {
980
+ if (tables.phase1sm)
981
+ return tables.phase1sm;
982
+ const C12_4 = C(12, 4);
983
+ let mtable_c = [];
984
+ for (let i = 0; i < C12_4; i++) {
985
+ mtable_c[i] = [];
986
+ let comb = index_to_comb(i, 4, 12), perm = [];
987
+ for (let j = 0, k = 0; j < 12; j++) {
988
+ if (comb[j] === 0)
989
+ perm[j] = -1;
990
+ else
991
+ perm[j] = k++;
992
+ }
993
+ for (let m = 0; m < 8; m++) {
994
+ let new_perm = compose(perm, moves[m][0]);
995
+ let new_comb = compose(comb, moves[m][0]);
996
+ let parity = permutation_parity(new_perm.filter((x) => x >= 0));
997
+ mtable_c[i][m] = comb_to_index(new_comb) * 2 + parity;
998
+ }
999
+ }
1000
+ let mtable_co = generate_phase1_corner_mtable();
1001
+ let mtable = [];
1002
+ for (let j = 0; j < C12_4; j++) {
1003
+ for (let i = 0; i < 81; i++) {
1004
+ let m0 = mtable[i + 81 * (2 * j)] = [];
1005
+ let m1 = mtable[i + 81 * (2 * j + 1)] = [];
1006
+ for (let m = 0; m < 8; m++) {
1007
+ m0[m] = mtable_co[i][m] + 81 * mtable_c[j][m];
1008
+ m1[m] = mtable_co[i][m] + 81 * (mtable_c[j][m] ^ 1);
1009
+ }
1010
+ }
1011
+ }
1012
+ return tables.phase1sm = mtable;
1013
+ }
1014
+ function generate_phase1_separate_ptable() {
1015
+ if (tables.phase1sp)
1016
+ return tables.phase1sp;
1017
+ return tables.phase1sp = bfs(generate_phase1_separate_mtable(), [0]);
1018
+ }
1019
+ function generate_phase2_corner_mtable() {
1020
+ if (tables.phase2cm)
1021
+ return tables.phase2cm;
1022
+ let phase1_mtable = generate_phase1_corner_mtable();
1023
+ let mtable = Array(81);
1024
+ for (let i = 0; i < 81; i++) {
1025
+ mtable[i] = phase1_mtable[i].slice(4, 8);
1026
+ }
1027
+ return tables.phase2cm = mtable;
1028
+ }
1029
+ function generate_phase2_edge_mtable() {
1030
+ if (tables.phase2em)
1031
+ return tables.phase2em;
1032
+ const n = 8;
1033
+ const HALFFACT8 = factorial(n) / 2;
1034
+ let mtable = Array(HALFFACT8);
1035
+ let perm = [0, 1, 2, 3, 4, 5, 6, 7];
1036
+ for (let i = 0; i < HALFFACT8; i++) {
1037
+ mtable[i] = Array(4);
1038
+ for (let m = 0; m < 4; m++) {
1039
+ let new_perm = compose(perm, moves[m][0].slice(0, 8));
1040
+ mtable[i][m] = evenpermutation_to_index(new_perm);
1041
+ }
1042
+ if (i === HALFFACT8 - 1)
1043
+ break;
1044
+ let parity = 0;
1045
+ do {
1046
+ for (let k = n - 2; k >= 0; k--) {
1047
+ if (perm[k] > perm[k + 1])
1048
+ continue;
1049
+ let l = k + 1;
1050
+ for (let L = l; L < n; L++)
1051
+ if (perm[L] > perm[k])
1052
+ l = L;
1053
+ [perm[k], perm[l]] = [perm[l], perm[k]];
1054
+ parity ^= 1;
1055
+ for (let j = 0; k + 1 + j < n - 1 - j; j++, parity ^= 1) {
1056
+ [perm[k + 1 + j], perm[n - 1 - j]] = [
1057
+ perm[n - 1 - j],
1058
+ perm[k + 1 + j]
1059
+ ];
1060
+ }
1061
+ break;
1062
+ }
1063
+ } while (parity !== 0);
1064
+ }
1065
+ return tables.phase2em = mtable;
1066
+ }
1067
+ function generate_phase2_edge_ptable() {
1068
+ if (tables.phase2ep)
1069
+ return tables.phase2ep;
1070
+ return tables.phase2ep = bfs(generate_phase2_edge_mtable(), [0]);
1071
+ }
1072
+ function bfs(mtable, goal_states) {
1073
+ let N = mtable.length;
1074
+ let nmoves = mtable[0].length;
1075
+ let ptable = Array(N).fill(-1);
1076
+ let queue = goal_states.slice(), new_queue = [];
1077
+ let depth = 0;
1078
+ while (queue.length > 0) {
1079
+ new_queue.length = 0;
1080
+ for (let state of queue) {
1081
+ if (ptable[state] !== -1)
1082
+ continue;
1083
+ ptable[state] = depth;
1084
+ for (let move_index = 0; move_index < nmoves; move_index++) {
1085
+ let new_state = mtable[state][move_index];
1086
+ while (new_state != state) {
1087
+ new_queue.push(new_state);
1088
+ new_state = mtable[new_state][move_index];
1089
+ }
1090
+ }
1091
+ }
1092
+ [queue, new_queue] = [new_queue, queue];
1093
+ depth += 1;
1094
+ }
1095
+ return ptable;
1096
+ }
1097
+ function ida_solve(indices, mtables, ptables, max_bound) {
1098
+ max_bound = max_bound || 999999;
1099
+ let ncoords = indices.length;
1100
+ let bound = 0;
1101
+ for (let i = 0; i < ncoords; i++)
1102
+ bound = Math.max(bound, ptables[i][indices[i]]);
1103
+ while (bound <= max_bound) {
1104
+ let path = ida_search(indices, mtables, ptables, bound, -1);
1105
+ if (path !== void 0)
1106
+ return path;
1107
+ bound++;
1108
+ }
1109
+ }
1110
+ function ida_search(indices, mtables, ptables, bound, last) {
1111
+ let ncoords = indices.length;
1112
+ let nmoves = mtables[0][0].length;
1113
+ let heuristic = 0;
1114
+ for (let i = 0; i < ncoords; i++)
1115
+ heuristic = Math.max(heuristic, ptables[i][indices[i]]);
1116
+ if (heuristic > bound)
1117
+ return;
1118
+ if (bound === 0)
1119
+ return [];
1120
+ if (heuristic === 0 && bound === 1)
1121
+ return;
1122
+ for (let m = 0; m < nmoves; m++) {
1123
+ if (m === last)
1124
+ continue;
1125
+ if (m < last && tetrad[m] == tetrad[last])
1126
+ continue;
1127
+ let new_indices = indices.slice();
1128
+ for (let c = 0; c < ncoords; c++)
1129
+ new_indices[c] = mtables[c][indices[c]][m];
1130
+ let r = 1;
1131
+ while (indices.some((_, i) => indices[i] != new_indices[i])) {
1132
+ let subpath = ida_search(new_indices, mtables, ptables, bound - 1, m);
1133
+ if (subpath !== void 0)
1134
+ return [[m, r]].concat(subpath);
1135
+ for (let c = 0; c < ncoords; c++) {
1136
+ new_indices[c] = mtables[c][new_indices[c]][m];
1137
+ }
1138
+ r++;
1139
+ }
1140
+ }
1141
+ return;
1142
+ }
1143
+ function* ida_solve_gen(indices, mtables, ptables) {
1144
+ let ncoords = indices.length;
1145
+ let bound = 0;
1146
+ for (let i = 0; i < ncoords; i++)
1147
+ bound = Math.max(bound, ptables[i][indices[i]]);
1148
+ while (true) {
1149
+ yield* ida_search_gen(indices, mtables, ptables, bound, -1);
1150
+ bound++;
1151
+ }
1152
+ }
1153
+ function* ida_search_gen(indices, mtables, ptables, bound, last) {
1154
+ let ncoords = indices.length;
1155
+ let nmoves = mtables[0][0].length;
1156
+ let heuristic = 0;
1157
+ for (let i = 0; i < ncoords; i++)
1158
+ heuristic = Math.max(heuristic, ptables[i][indices[i]]);
1159
+ if (heuristic > bound)
1160
+ return;
1161
+ if (bound === 0) {
1162
+ yield [];
1163
+ return;
1164
+ }
1165
+ if (heuristic === 0 && bound === 1)
1166
+ return;
1167
+ for (let m = 0; m < nmoves; m++) {
1168
+ if (m === last)
1169
+ continue;
1170
+ if (m < last && tetrad[m] == tetrad[last])
1171
+ continue;
1172
+ let new_indices = indices.slice();
1173
+ for (let c = 0; c < ncoords; c++)
1174
+ new_indices[c] = mtables[c][indices[c]][m];
1175
+ let r = 1;
1176
+ while (indices.some((_, i) => indices[i] != new_indices[i])) {
1177
+ let subpath_gen = ida_search_gen(new_indices, mtables, ptables, bound - 1, m);
1178
+ while (true) {
1179
+ let { value: subpath, done } = subpath_gen.next();
1180
+ if (done)
1181
+ break;
1182
+ yield [[m, r]].concat(subpath);
1183
+ }
1184
+ for (let c = 0; c < ncoords; c++) {
1185
+ new_indices[c] = mtables[c][new_indices[c]][m];
1186
+ }
1187
+ r++;
1188
+ }
1189
+ }
1190
+ }
1191
+ var randomUintBelow = randomUIntBelowFactory();
1192
+ async function getRandomRediCubeScramble() {
1193
+ return new Alg(stringify_move_sequence(generate_random_state_scramble(await randomUintBelow)));
1194
+ }
642
1195
  export {
643
- randomFTOScrambleString,
1196
+ getRandomRediCubeScramble,
644
1197
  sgsDataFTO
645
1198
  };
646
- //# sourceMappingURL=fto.dynamic-SV2AUQBH.js.map
1199
+ //# sourceMappingURL=search-dynamic-sgs-unofficial-RAGEBTDP.js.map