cubing 0.22.0 → 0.24.0-pre2

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 (1061) hide show
  1. package/README.md +5 -8
  2. package/alg/package.json +1 -3
  3. package/bluetooth/package.json +1 -3
  4. package/dist/esm/{2x2x2.kpuzzle.json-JOGUSQ4N.js → 2x2x2.kpuzzle.json-U5KOZCMU.js} +11 -11
  5. package/dist/esm/2x2x2.kpuzzle.json-U5KOZCMU.js.map +7 -0
  6. package/{src/cubing/search/inside/solve/puzzles/2x2x2.sgs.json.ts → dist/esm/2x2x2.sgs.json-UAYPCQVL.js} +21 -13
  7. package/dist/esm/2x2x2.sgs.json-UAYPCQVL.js.map +7 -0
  8. package/dist/esm/{3d-3WQVOHX5.js → 3d-NFF7OGTI.js} +4 -4
  9. package/dist/esm/{3d-3WQVOHX5.js.map → 3d-NFF7OGTI.js.map} +0 -0
  10. package/dist/esm/bluetooth/index.d.ts +1 -1
  11. package/dist/esm/bluetooth/index.js +46 -38
  12. package/dist/esm/bluetooth/index.js.map +3 -3
  13. package/dist/esm/chunk-27KJGD3S.js +84 -0
  14. package/dist/esm/chunk-27KJGD3S.js.map +7 -0
  15. package/dist/esm/chunk-37EHU3GZ.js +66 -0
  16. package/dist/esm/chunk-37EHU3GZ.js.map +7 -0
  17. package/dist/esm/chunk-7OPCF2OL.js +274 -0
  18. package/dist/esm/chunk-7OPCF2OL.js.map +7 -0
  19. package/dist/esm/chunk-BJIOROQC.js +18 -0
  20. package/dist/esm/chunk-BJIOROQC.js.map +7 -0
  21. package/dist/{bin/puzzle-geometry-bin.js → esm/chunk-J2U2GRS4.js} +104 -1488
  22. package/dist/esm/chunk-J2U2GRS4.js.map +7 -0
  23. package/dist/esm/chunk-KCRFOAR4.js +122 -0
  24. package/dist/esm/chunk-KCRFOAR4.js.map +7 -0
  25. package/{src/cubing/search/inside/solve/puzzles/pyraminx.sgs.json.ts → dist/esm/chunk-NPK6Z4AU.js} +22 -17
  26. package/dist/esm/chunk-NPK6Z4AU.js.map +7 -0
  27. package/dist/esm/chunk-NV5ESXTN.js +505 -0
  28. package/dist/esm/chunk-NV5ESXTN.js.map +7 -0
  29. package/dist/esm/{chunk-DLN5QS4V.js → chunk-REMJV2GO.js} +38 -51
  30. package/dist/esm/chunk-REMJV2GO.js.map +7 -0
  31. package/dist/esm/chunk-TB4D4E2W.js +226 -0
  32. package/dist/esm/chunk-TB4D4E2W.js.map +7 -0
  33. package/dist/esm/chunk-TNRZDNGH.js +822 -0
  34. package/dist/esm/chunk-TNRZDNGH.js.map +7 -0
  35. package/{src/cubing/search/inside/solve/puzzles/megaminx.sgs.json.ts → dist/esm/chunk-YN7E5RGM.js} +36 -24
  36. package/dist/esm/chunk-YN7E5RGM.js.map +7 -0
  37. package/dist/esm/{chunk-HXKINJ7U.js → chunk-ZLIK3DZT.js} +79 -57
  38. package/dist/esm/chunk-ZLIK3DZT.js.map +7 -0
  39. package/dist/esm/{clock.kpuzzle.json-EKWRMHJM.js → clock.kpuzzle.json-J3YBOI3G.js} +7 -45
  40. package/dist/esm/clock.kpuzzle.json-J3YBOI3G.js.map +7 -0
  41. package/dist/esm/entry-PHAJAE4E.js +536 -0
  42. package/dist/esm/entry-PHAJAE4E.js.map +7 -0
  43. package/dist/esm/esm-test-worker.js +3 -14
  44. package/dist/esm/esm-test-worker.js.map +3 -3
  45. package/dist/esm/fto.sgs.json-VO6HST2V.js +641 -0
  46. package/dist/esm/fto.sgs.json-VO6HST2V.js.map +7 -0
  47. package/{src/cubing/search/inside/solve/vendor/min2phase/gwt.js → dist/esm/gwt-B7CBESZR.js} +350 -1380
  48. package/dist/esm/gwt-B7CBESZR.js.map +7 -0
  49. package/dist/esm/kpuzzle/index.js +5 -35
  50. package/dist/esm/megaminx.sgs.json-R3MK4HXM.js +16 -0
  51. package/dist/esm/megaminx.sgs.json-R3MK4HXM.js.map +7 -0
  52. package/dist/esm/module-entry-UYTOFYBC.js +18 -0
  53. package/dist/esm/module-entry-UYTOFYBC.js.map +7 -0
  54. package/dist/esm/{node-BSAQKO3G.js → node-SP4L2AKI.js} +2 -2
  55. package/dist/esm/{node-BSAQKO3G.js.map → node-SP4L2AKI.js.map} +1 -1
  56. package/dist/esm/{node-WEHVBEKP.js → node-W3AD4HBK.js} +3 -2
  57. package/dist/esm/node-W3AD4HBK.js.map +7 -0
  58. package/dist/esm/protocol/index.js +2 -1
  59. package/dist/esm/puzzle-geometry/index.js +15 -4053
  60. package/dist/esm/puzzle-geometry/index.js.map +3 -3
  61. package/dist/esm/puzzles/index.js +4 -4
  62. package/dist/esm/pyraminx.sgs.json-R3J3JHMV.js +14 -0
  63. package/dist/esm/pyraminx.sgs.json-R3J3JHMV.js.map +7 -0
  64. package/dist/esm/scramble/index.js +5 -3
  65. package/{src/cubing/search/inside/solve/vendor/cstimer/src/js/scramble/scramble_444.ts → dist/esm/scramble_444-F3YANDPO.js} +367 -586
  66. package/dist/esm/scramble_444-F3YANDPO.js.map +7 -0
  67. package/{src/cubing/search/inside/solve/vendor/sq12phase/scramble_sq1.js → dist/esm/scramble_sq1-PQ2AYBFW.js} +143 -290
  68. package/dist/esm/scramble_sq1-PQ2AYBFW.js.map +7 -0
  69. package/dist/esm/search/index.js +7 -4
  70. package/dist/esm/skewb.sgs.json-T6CO36WU.js +16 -0
  71. package/dist/esm/skewb.sgs.json-T6CO36WU.js.map +7 -0
  72. package/dist/esm/{sq1-hyperorbit.kpuzzle.json-N3FGCPML.js → sq1-hyperorbit.kpuzzle.json-AWDGN4ZW.js} +6 -6
  73. package/dist/esm/sq1-hyperorbit.kpuzzle.json-AWDGN4ZW.js.map +7 -0
  74. package/dist/esm/twisty/index.js +342 -231
  75. package/dist/esm/twisty/index.js.map +3 -3
  76. package/dist/esm/worker-inside-generated-string-6YDSDSRJ.js +3447 -0
  77. package/dist/esm/worker-inside-generated-string-6YDSDSRJ.js.map +7 -0
  78. package/dist/{esm → types}/.DS_Store +0 -0
  79. package/dist/types/alg/Alg.d.ts +0 -1
  80. package/dist/types/alg/Alg.spec.d.ts +0 -1
  81. package/dist/types/alg/AlgBuilder.d.ts +0 -1
  82. package/dist/types/alg/Serializable.d.ts +0 -1
  83. package/dist/types/alg/common.d.ts +0 -1
  84. package/dist/types/alg/debug.d.ts +0 -1
  85. package/dist/types/alg/example.d.ts +0 -1
  86. package/dist/types/alg/index.d.ts +0 -1
  87. package/dist/types/alg/is.d.ts +0 -1
  88. package/dist/types/alg/iteration.d.ts +0 -1
  89. package/dist/types/alg/keyboard.d.ts +0 -1
  90. package/dist/types/alg/limits.d.ts +0 -1
  91. package/dist/types/alg/operation.d.ts +0 -1
  92. package/dist/types/alg/operation.spec.d.ts +0 -1
  93. package/dist/types/alg/parse.d.ts +0 -1
  94. package/dist/types/alg/parse.spec.d.ts +0 -1
  95. package/dist/types/alg/test/alg-comparison.d.ts +0 -1
  96. package/dist/types/alg/test/alg.spec.d.ts +0 -1
  97. package/dist/types/alg/traversal.d.ts +0 -1
  98. package/dist/types/alg/units/QuantumWithAmount.d.ts +0 -1
  99. package/dist/types/alg/units/Unit.d.ts +0 -1
  100. package/dist/types/alg/units/containers/Commutator.d.ts +0 -1
  101. package/dist/types/alg/units/containers/Conjugate.d.ts +0 -1
  102. package/dist/types/alg/units/containers/Grouping.d.ts +0 -1
  103. package/dist/types/alg/units/index.d.ts +0 -1
  104. package/dist/types/alg/units/leaves/LineComment.d.ts +0 -1
  105. package/dist/types/alg/units/leaves/LineComment.spec.d.ts +0 -1
  106. package/dist/types/alg/units/leaves/Move.d.ts +0 -1
  107. package/dist/types/alg/units/leaves/Move.spec.d.ts +0 -1
  108. package/dist/types/alg/units/leaves/Newline.d.ts +0 -1
  109. package/dist/types/alg/units/leaves/Pause.d.ts +0 -1
  110. package/dist/types/alg/url.d.ts +0 -1
  111. package/dist/types/alg/url.spec.d.ts +0 -1
  112. package/dist/types/alg/validation.d.ts +0 -1
  113. package/dist/types/alg/warnOnce.d.ts +0 -1
  114. package/dist/types/bluetooth/connect/index.d.ts +0 -1
  115. package/dist/types/bluetooth/debug.d.ts +0 -1
  116. package/dist/types/bluetooth/index.d.ts +0 -1
  117. package/dist/types/bluetooth/keyboard.d.ts +5 -5
  118. package/dist/types/bluetooth/smart-puzzle/Heykube.d.ts +3 -3
  119. package/dist/types/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts +3 -5
  120. package/dist/types/bluetooth/smart-puzzle/connect.d.ts +0 -1
  121. package/dist/types/bluetooth/smart-puzzle/endianness.d.ts +0 -1
  122. package/dist/types/bluetooth/smart-puzzle/gan.d.ts +5 -4
  123. package/dist/types/bluetooth/smart-puzzle/giiker.d.ts +3 -3
  124. package/dist/types/bluetooth/smart-puzzle/giiker.spec.d.ts +0 -1
  125. package/dist/types/bluetooth/smart-puzzle/gocube.d.ts +0 -1
  126. package/dist/types/bluetooth/smart-robot/GanRobot.d.ts +0 -1
  127. package/dist/types/bluetooth/smart-robot/index.d.ts +0 -1
  128. package/dist/types/bluetooth/smart-timer/GanTimer.d.ts +0 -1
  129. package/dist/types/bluetooth/smart-timer/index.d.ts +0 -1
  130. package/dist/types/bluetooth/transformer.d.ts +0 -1
  131. package/dist/types/cubing.bundle-global.d.ts +0 -1
  132. package/{src/cubing/cubing.bundle-global.ts → dist/types/cubing.bundle-global.exports.d.ts} +12 -19
  133. package/dist/types/esm-test-worker.d.ts +0 -1
  134. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.d.ts +2 -3
  135. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.d.ts +0 -1
  136. package/dist/types/kpuzzle/3x3x3/puzzle-orientation.d.ts +4 -0
  137. package/dist/types/kpuzzle/KPuzzle.d.ts +25 -0
  138. package/dist/types/kpuzzle/KPuzzleDefinition.d.ts +20 -0
  139. package/dist/types/kpuzzle/KState.d.ts +16 -0
  140. package/dist/types/kpuzzle/KTransformation.d.ts +20 -0
  141. package/dist/types/kpuzzle/calculate.d.ts +16 -0
  142. package/dist/types/kpuzzle/combine.d.ts +3 -0
  143. package/dist/types/kpuzzle/construct.d.ts +5 -0
  144. package/dist/types/kpuzzle/index.d.ts +6 -10
  145. package/dist/types/notation/CountAnimatedLeaves.d.ts +0 -1
  146. package/dist/types/notation/CountMoves.d.ts +0 -1
  147. package/dist/types/notation/index.d.ts +0 -1
  148. package/dist/types/protocol/binary/binary3x3x3.d.ts +5 -6
  149. package/dist/types/protocol/binary/binary3x3x3.spec.d.ts +0 -1
  150. package/dist/types/protocol/binary/hex.d.ts +0 -1
  151. package/dist/types/protocol/binary/hex.spec.d.ts +0 -1
  152. package/dist/types/protocol/binary/orbit-indexing.d.ts +0 -1
  153. package/dist/types/protocol/binary/orbit-indexing.spec.d.ts +0 -1
  154. package/dist/types/protocol/binary/puzzle-orientation.d.ts +4 -5
  155. package/dist/types/protocol/index.d.ts +0 -1
  156. package/dist/types/puzzle-geometry/FaceNameSwizzler.d.ts +0 -1
  157. package/dist/types/puzzle-geometry/Options.d.ts +0 -1
  158. package/dist/types/puzzle-geometry/PGPuzzles.d.ts +0 -1
  159. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts +0 -1
  160. package/dist/types/puzzle-geometry/Perm.d.ts +0 -1
  161. package/dist/types/puzzle-geometry/PermOriSet.d.ts +4 -5
  162. package/dist/types/puzzle-geometry/PlatonicGenerator.d.ts +0 -1
  163. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts +11 -5
  164. package/dist/types/puzzle-geometry/Quat.d.ts +0 -1
  165. package/dist/types/puzzle-geometry/Quat.spec.d.ts +0 -1
  166. package/dist/types/puzzle-geometry/SchreierSims.d.ts +0 -1
  167. package/dist/types/puzzle-geometry/index.d.ts +2 -2
  168. package/dist/types/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts +0 -1
  169. package/dist/types/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts +0 -1
  170. package/dist/types/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts +0 -1
  171. package/dist/types/puzzle-geometry/notation-mapping/NotationMapper.d.ts +3 -2
  172. package/dist/types/puzzle-geometry/notation-mapping/NullMapper.d.ts +0 -1
  173. package/dist/types/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts +0 -1
  174. package/dist/types/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts +0 -1
  175. package/dist/types/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts +0 -1
  176. package/dist/types/puzzle-geometry/notation-mapping/index.d.ts +0 -1
  177. package/dist/types/puzzle-geometry/orientcenters.spec.d.ts +0 -1
  178. package/dist/types/puzzles/PuzzleLoader.d.ts +3 -3
  179. package/dist/types/puzzles/async/async-pg3d.d.ts +3 -3
  180. package/dist/types/puzzles/async/lazy-cached-kpuzzle.d.ts +2 -0
  181. package/dist/types/puzzles/customPGPuzzleLoader.d.ts +2 -3
  182. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.d.ts +1 -2
  183. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.d.ts +0 -1
  184. package/dist/types/puzzles/implementations/2x2x2/index.d.ts +0 -1
  185. package/dist/types/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts +0 -1
  186. package/dist/types/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.d.ts +0 -1
  187. package/dist/types/puzzles/implementations/3x3x3/index.d.ts +0 -1
  188. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.json.d.ts +1 -2
  189. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.svg.d.ts +0 -1
  190. package/dist/types/puzzles/implementations/clock/index.d.ts +0 -1
  191. package/dist/types/puzzles/implementations/fto/index.d.ts +0 -1
  192. package/dist/types/puzzles/implementations/megaminx/index.d.ts +0 -1
  193. package/dist/types/puzzles/implementations/pyraminx/index.d.ts +0 -1
  194. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.d.ts +0 -1
  195. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.d.ts +0 -1
  196. package/dist/types/puzzles/implementations/square1/index.d.ts +0 -1
  197. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.d.ts +1 -2
  198. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.d.ts +0 -1
  199. package/dist/types/puzzles/index.d.ts +1 -2
  200. package/dist/types/puzzles/stickerings/appearance.d.ts +6 -7
  201. package/dist/types/puzzles/stickerings/cube-stickerings.d.ts +0 -1
  202. package/dist/types/puzzles/stickerings/fto-stickerings.d.ts +0 -1
  203. package/dist/types/puzzles/stickerings/global-custom-stickering-hack.d.ts +0 -1
  204. package/dist/types/puzzles/stickerings/megaminx-stickerings.d.ts +0 -1
  205. package/dist/types/scramble/index.d.ts +0 -1
  206. package/dist/types/search/esm-test-worker.d.ts +0 -1
  207. package/dist/types/search/index.d.ts +0 -1
  208. package/dist/types/search/inside/api.d.ts +6 -7
  209. package/dist/types/search/inside/api.spec.d.ts +0 -1
  210. package/dist/types/search/inside/entry.d.ts +0 -1
  211. package/dist/types/search/inside/inside-worker.d.ts +0 -1
  212. package/dist/types/search/inside/module-entry-path-getter.d.ts +1 -0
  213. package/dist/types/search/inside/module-entry.d.ts +1 -0
  214. package/dist/types/search/inside/solve/addOrientationSuffix.d.ts +0 -1
  215. package/dist/types/search/inside/solve/parseSGS.d.ts +3 -4
  216. package/dist/types/search/inside/solve/puzzles/2x2x2.d.ts +3 -4
  217. package/dist/types/search/inside/solve/puzzles/2x2x2.sgs.json.d.ts +0 -1
  218. package/dist/types/search/inside/solve/puzzles/3x3x3/convert.d.ts +2 -3
  219. package/dist/types/search/inside/solve/puzzles/3x3x3/filter.d.ts +4 -4
  220. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts +3 -4
  221. package/dist/types/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts +0 -1
  222. package/dist/types/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.d.ts +0 -1
  223. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts +2 -2
  224. package/dist/types/search/inside/solve/puzzles/5x5x5.d.ts +0 -1
  225. package/dist/types/search/inside/solve/puzzles/big-cubes.d.ts +0 -1
  226. package/dist/types/search/inside/solve/puzzles/clock.d.ts +0 -1
  227. package/dist/types/search/inside/solve/puzzles/fto.d.ts +5 -0
  228. package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts +2 -0
  229. package/dist/types/search/inside/solve/puzzles/megaminx.d.ts +2 -3
  230. package/dist/types/search/inside/solve/puzzles/megaminx.sgs.json.d.ts +2 -3
  231. package/dist/types/search/inside/solve/puzzles/pyraminx.d.ts +3 -4
  232. package/dist/types/search/inside/solve/puzzles/pyraminx.sgs.json.d.ts +0 -1
  233. package/dist/types/search/inside/solve/puzzles/sgs-defs.spec.d.ts +0 -1
  234. package/dist/types/search/inside/solve/puzzles/skewb.d.ts +3 -4
  235. package/dist/types/search/inside/solve/puzzles/skewb.sgs.json.d.ts +2 -3
  236. package/dist/types/search/inside/solve/puzzles/sq1.d.ts +0 -1
  237. package/dist/types/search/inside/solve/puzzles/wca-minx.d.ts +0 -1
  238. package/dist/types/search/inside/solve/tremble.d.ts +6 -6
  239. package/dist/types/search/instantiator.d.ts +1 -3
  240. package/dist/types/search/outside.d.ts +6 -7
  241. package/dist/types/search/worker-inside-generated-string.d.ts +1 -2
  242. package/dist/types/stream/index.d.ts +0 -1
  243. package/dist/types/stream/process/ReorientedStream.d.ts +1 -3
  244. package/dist/types/stream/proxy-event.d.ts +0 -1
  245. package/dist/types/stream/twizzle/TwizzleStream.d.ts +0 -1
  246. package/dist/types/stream/twizzle/stream-types.d.ts +0 -1
  247. package/dist/types/stream/websocket-proxy.d.ts +0 -1
  248. package/dist/types/twisty/controllers/AnimationTypes.d.ts +2 -3
  249. package/dist/types/twisty/controllers/RenderScheduler.d.ts +0 -1
  250. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts +0 -1
  251. package/dist/types/twisty/controllers/TwistyPlayerController.d.ts +0 -1
  252. package/dist/types/twisty/controllers/easing.d.ts +0 -1
  253. package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts +0 -1
  254. package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts +6 -6
  255. package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts +7 -7
  256. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts +8 -8
  257. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts +9 -9
  258. package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts +0 -1
  259. package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts +36 -37
  260. package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts +7 -7
  261. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts +0 -1
  262. package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts +0 -1
  263. package/dist/types/twisty/heavy-code-imports/3d.d.ts +0 -1
  264. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d.d.ts +0 -1
  265. package/dist/types/twisty/index.d.ts +1 -2
  266. package/dist/types/twisty/model/PromiseFreshener.d.ts +0 -1
  267. package/dist/types/twisty/model/TwistyPlayerModel.d.ts +6 -7
  268. package/dist/types/twisty/model/UserVisibleErrorTracker.d.ts +0 -1
  269. package/dist/types/twisty/model/helpers.d.ts +0 -1
  270. package/dist/types/twisty/model/props/TwistyProp.d.ts +0 -1
  271. package/dist/types/twisty/model/props/TwistyProp.spec.d.ts +0 -1
  272. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts +0 -1
  273. package/dist/types/twisty/model/props/general/URLProp.d.ts +0 -1
  274. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts +0 -1
  275. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts +0 -1
  276. package/dist/types/twisty/model/props/puzzle/display/SpriteProp.d.ts +0 -1
  277. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts +2 -1
  278. package/dist/types/twisty/model/props/puzzle/state/AlgProp.d.ts +0 -1
  279. package/dist/types/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts +5 -8
  280. package/dist/types/twisty/model/props/puzzle/state/AnchoredStartProp.d.ts +5 -7
  281. package/dist/types/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts +0 -1
  282. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts +0 -1
  283. package/dist/types/twisty/model/props/puzzle/state/{CurrentLeavesProp.d.ts → CurrentMoveInfoProp.d.ts} +2 -3
  284. package/dist/types/twisty/model/props/puzzle/state/CurrentStateProp.d.ts +14 -0
  285. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts +7 -8
  286. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts +0 -1
  287. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts +5 -6
  288. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts +2 -3
  289. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +6 -2
  290. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts +0 -1
  291. package/dist/types/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts +4 -5
  292. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts +0 -1
  293. package/dist/types/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts +10 -0
  294. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts +0 -1
  295. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts +0 -1
  296. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +0 -1
  297. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts +0 -1
  298. package/dist/types/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts +0 -1
  299. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts +0 -1
  300. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts +0 -1
  301. package/dist/types/twisty/model/props/timeline/TempoScaleProp.d.ts +0 -1
  302. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts +0 -1
  303. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts +0 -1
  304. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts +0 -1
  305. package/dist/types/twisty/model/props/viewer/ButtonAppearanceProp.d.ts +0 -1
  306. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts +0 -1
  307. package/dist/types/twisty/model/props/viewer/LatitudeLimit.d.ts +0 -1
  308. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts +0 -1
  309. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts +0 -1
  310. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts +2 -3
  311. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts +0 -1
  312. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts +0 -1
  313. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts +0 -1
  314. package/dist/types/twisty/views/2D/KPuzzleSVGWrapper.d.ts +17 -0
  315. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts +0 -1
  316. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts +4 -4
  317. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts +0 -1
  318. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts +0 -1
  319. package/dist/types/twisty/views/3D/DragTracker.d.ts +0 -1
  320. package/dist/types/twisty/views/3D/RendererPool.d.ts +0 -1
  321. package/dist/types/twisty/views/3D/TAU.d.ts +0 -1
  322. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts +0 -1
  323. package/dist/types/twisty/views/3D/Twisty3DRenderTarget.d.ts +0 -1
  324. package/dist/types/twisty/views/3D/Twisty3DScene.d.ts +0 -1
  325. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts +0 -1
  326. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts +0 -1
  327. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts +0 -1
  328. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts +0 -1
  329. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts +0 -1
  330. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts +4 -5
  331. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts +5 -6
  332. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts +0 -1
  333. package/dist/types/twisty/views/ClassListManager.d.ts +0 -1
  334. package/dist/types/twisty/views/ManagedCustomElement.d.ts +0 -1
  335. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts +0 -1
  336. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts +0 -1
  337. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts +0 -1
  338. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts +0 -1
  339. package/dist/types/twisty/views/TwistyAlgEditor/model.d.ts +0 -1
  340. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts +0 -1
  341. package/dist/types/twisty/views/TwistyAlgViewer.d.ts +0 -1
  342. package/dist/types/twisty/views/TwistyPlayer.css.d.ts +0 -1
  343. package/dist/types/twisty/views/TwistyPlayer.d.ts +0 -1
  344. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts +0 -1
  345. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts +0 -1
  346. package/dist/types/twisty/views/canvas.d.ts +0 -1
  347. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.css.d.ts +0 -1
  348. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.d.ts +0 -1
  349. package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts +0 -1
  350. package/dist/types/twisty/views/control-panel/TwistyScrubberV2.d.ts +0 -1
  351. package/dist/types/twisty/views/control-panel/webkit-fullscreen.d.ts +0 -1
  352. package/dist/types/twisty/views/document.d.ts +0 -1
  353. package/dist/types/twisty/views/node-custom-element-shims.d.ts +0 -1
  354. package/dist/types/twisty/views/screenshot.d.ts +0 -1
  355. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts +0 -1
  356. package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts +0 -1
  357. package/{src/cubing/search → dist/types}/vendor/comlink-everywhere/inside/index.d.ts +0 -0
  358. package/dist/types/{search/vendor → vendor}/comlink-everywhere/inside/node.d.ts +0 -1
  359. package/dist/types/{search/vendor → vendor}/comlink-everywhere/outside/index.d.ts +0 -1
  360. package/dist/types/{search/vendor → vendor}/comlink-everywhere/outside/node.d.ts +0 -1
  361. package/dist/types/{search/inside/solve/vendor → vendor}/cstimer/src/js/lib/mathlib.d.ts +0 -1
  362. package/dist/types/{search/inside/solve/vendor → vendor}/cstimer/src/js/scramble/scramble_444.d.ts +1 -2
  363. package/dist/types/{search/inside/solve/vendor → vendor}/min2phase/gwt.d.ts +0 -1
  364. package/dist/types/vendor/p-lazy/p-lazy.d.ts +0 -1
  365. package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/get-random-values.d.ts +0 -1
  366. package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/index.d.ts +1 -2
  367. package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/random-choice.d.ts +0 -1
  368. package/dist/types/{search/inside/solve/vendor/random-uint-below/random-int.d.ts → vendor/random-uint-below/random53BitValue.d.ts} +0 -1
  369. package/dist/types/{search/inside/solve/vendor → vendor}/sq12phase/scramble_sq1.d.ts +0 -1
  370. package/dist/types/vendor/three/examples/jsm/libs/stats.modified.module.d.ts +0 -1
  371. package/dist/types/{bluetooth/smart-puzzle → vendor/unsafe-raw-aes}/unsafe-raw-aes.d.ts +0 -1
  372. package/kpuzzle/package.json +1 -3
  373. package/notation/package.json +1 -3
  374. package/package.json +11 -17
  375. package/protocol/package.json +1 -3
  376. package/puzzle-geometry/package.json +1 -3
  377. package/puzzles/package.json +1 -3
  378. package/scramble/package.json +1 -3
  379. package/search/package.json +1 -3
  380. package/stream/package.json +1 -3
  381. package/twisty/package.json +1 -3
  382. package/alg/index.d.ts +0 -1
  383. package/bluetooth/index.d.ts +0 -1
  384. package/dist/.DS_Store +0 -0
  385. package/dist/bin/puzzle-geometry-bin.js.map +0 -7
  386. package/dist/bundle-global/cubing.bundle-global.js +0 -7419
  387. package/dist/esm/2x2x2.kpuzzle.json-JOGUSQ4N.js.map +0 -7
  388. package/dist/esm/chunk-7KI3I3Y7.js +0 -1379
  389. package/dist/esm/chunk-7KI3I3Y7.js.map +0 -7
  390. package/dist/esm/chunk-DLN5QS4V.js.map +0 -7
  391. package/dist/esm/chunk-HXKINJ7U.js.map +0 -7
  392. package/dist/esm/chunk-X6JHXPDX.js +0 -2359
  393. package/dist/esm/chunk-X6JHXPDX.js.map +0 -7
  394. package/dist/esm/clock.kpuzzle.json-EKWRMHJM.js.map +0 -7
  395. package/dist/esm/index.d.ts +0 -1
  396. package/dist/esm/node-WEHVBEKP.js.map +0 -7
  397. package/dist/esm/sq1-hyperorbit.kpuzzle.json-N3FGCPML.js.map +0 -7
  398. package/dist/esm/worker-inside-generated-string-ZA6E6672.js +0 -2831
  399. package/dist/esm/worker-inside-generated-string-ZA6E6672.js.map +0 -7
  400. package/dist/types/alg/Alg.d.ts.map +0 -1
  401. package/dist/types/alg/Alg.spec.d.ts.map +0 -1
  402. package/dist/types/alg/AlgBuilder.d.ts.map +0 -1
  403. package/dist/types/alg/Serializable.d.ts.map +0 -1
  404. package/dist/types/alg/common.d.ts.map +0 -1
  405. package/dist/types/alg/debug.d.ts.map +0 -1
  406. package/dist/types/alg/example.d.ts.map +0 -1
  407. package/dist/types/alg/index.d.ts.map +0 -1
  408. package/dist/types/alg/is.d.ts.map +0 -1
  409. package/dist/types/alg/iteration.d.ts.map +0 -1
  410. package/dist/types/alg/keyboard.d.ts.map +0 -1
  411. package/dist/types/alg/limits.d.ts.map +0 -1
  412. package/dist/types/alg/operation.d.ts.map +0 -1
  413. package/dist/types/alg/operation.spec.d.ts.map +0 -1
  414. package/dist/types/alg/parse.d.ts.map +0 -1
  415. package/dist/types/alg/parse.spec.d.ts.map +0 -1
  416. package/dist/types/alg/test/alg-comparison.d.ts.map +0 -1
  417. package/dist/types/alg/test/alg.spec.d.ts.map +0 -1
  418. package/dist/types/alg/traversal.d.ts.map +0 -1
  419. package/dist/types/alg/units/QuantumWithAmount.d.ts.map +0 -1
  420. package/dist/types/alg/units/Unit.d.ts.map +0 -1
  421. package/dist/types/alg/units/containers/Commutator.d.ts.map +0 -1
  422. package/dist/types/alg/units/containers/Conjugate.d.ts.map +0 -1
  423. package/dist/types/alg/units/containers/Grouping.d.ts.map +0 -1
  424. package/dist/types/alg/units/index.d.ts.map +0 -1
  425. package/dist/types/alg/units/leaves/LineComment.d.ts.map +0 -1
  426. package/dist/types/alg/units/leaves/LineComment.spec.d.ts.map +0 -1
  427. package/dist/types/alg/units/leaves/Move.d.ts.map +0 -1
  428. package/dist/types/alg/units/leaves/Move.spec.d.ts.map +0 -1
  429. package/dist/types/alg/units/leaves/Newline.d.ts.map +0 -1
  430. package/dist/types/alg/units/leaves/Pause.d.ts.map +0 -1
  431. package/dist/types/alg/url.d.ts.map +0 -1
  432. package/dist/types/alg/url.spec.d.ts.map +0 -1
  433. package/dist/types/alg/validation.d.ts.map +0 -1
  434. package/dist/types/alg/warnOnce.d.ts.map +0 -1
  435. package/dist/types/bluetooth/connect/index.d.ts.map +0 -1
  436. package/dist/types/bluetooth/debug.d.ts.map +0 -1
  437. package/dist/types/bluetooth/index.d.ts.map +0 -1
  438. package/dist/types/bluetooth/keyboard.d.ts.map +0 -1
  439. package/dist/types/bluetooth/smart-puzzle/Heykube.d.ts.map +0 -1
  440. package/dist/types/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts.map +0 -1
  441. package/dist/types/bluetooth/smart-puzzle/connect.d.ts.map +0 -1
  442. package/dist/types/bluetooth/smart-puzzle/endianness.d.ts.map +0 -1
  443. package/dist/types/bluetooth/smart-puzzle/gan.d.ts.map +0 -1
  444. package/dist/types/bluetooth/smart-puzzle/giiker.d.ts.map +0 -1
  445. package/dist/types/bluetooth/smart-puzzle/giiker.spec.d.ts.map +0 -1
  446. package/dist/types/bluetooth/smart-puzzle/gocube.d.ts.map +0 -1
  447. package/dist/types/bluetooth/smart-puzzle/unsafe-raw-aes.d.ts.map +0 -1
  448. package/dist/types/bluetooth/smart-robot/GanRobot.d.ts.map +0 -1
  449. package/dist/types/bluetooth/smart-robot/index.d.ts.map +0 -1
  450. package/dist/types/bluetooth/smart-timer/GanTimer.d.ts.map +0 -1
  451. package/dist/types/bluetooth/smart-timer/index.d.ts.map +0 -1
  452. package/dist/types/bluetooth/transformer.d.ts.map +0 -1
  453. package/dist/types/cubing.bundle-global.d.ts.map +0 -1
  454. package/dist/types/esm-test-worker.d.ts.map +0 -1
  455. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.d.ts.map +0 -1
  456. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.d.ts.map +0 -1
  457. package/dist/types/kpuzzle/canon.spec.d.ts +0 -2
  458. package/dist/types/kpuzzle/canon.spec.d.ts.map +0 -1
  459. package/dist/types/kpuzzle/canonicalize.d.ts +0 -55
  460. package/dist/types/kpuzzle/canonicalize.d.ts.map +0 -1
  461. package/dist/types/kpuzzle/definition_types.d.ts +0 -19
  462. package/dist/types/kpuzzle/definition_types.d.ts.map +0 -1
  463. package/dist/types/kpuzzle/index.d.ts.map +0 -1
  464. package/dist/types/kpuzzle/kpuzzle.d.ts +0 -17
  465. package/dist/types/kpuzzle/kpuzzle.d.ts.map +0 -1
  466. package/dist/types/kpuzzle/kpuzzle.spec.d.ts +0 -2
  467. package/dist/types/kpuzzle/kpuzzle.spec.d.ts.map +0 -1
  468. package/dist/types/kpuzzle/move_notation.d.ts +0 -6
  469. package/dist/types/kpuzzle/move_notation.d.ts.map +0 -1
  470. package/dist/types/kpuzzle/parser/index.d.ts +0 -2
  471. package/dist/types/kpuzzle/parser/index.d.ts.map +0 -1
  472. package/dist/types/kpuzzle/parser/parser-peggy.d.ts +0 -15
  473. package/dist/types/kpuzzle/parser/parser-peggy.d.ts.map +0 -1
  474. package/dist/types/kpuzzle/parser/parser-shim.d.ts +0 -4
  475. package/dist/types/kpuzzle/parser/parser-shim.d.ts.map +0 -1
  476. package/dist/types/kpuzzle/parser/parser.d.ts +0 -1
  477. package/dist/types/kpuzzle/parser/parser.d.ts.map +0 -1
  478. package/dist/types/kpuzzle/prunetable.spec.d.ts +0 -2
  479. package/dist/types/kpuzzle/prunetable.spec.d.ts.map +0 -1
  480. package/dist/types/kpuzzle/pruningtable.d.ts +0 -16
  481. package/dist/types/kpuzzle/pruningtable.d.ts.map +0 -1
  482. package/dist/types/kpuzzle/puzzle-orientation.d.ts +0 -5
  483. package/dist/types/kpuzzle/puzzle-orientation.d.ts.map +0 -1
  484. package/dist/types/kpuzzle/svg.d.ts +0 -18
  485. package/dist/types/kpuzzle/svg.d.ts.map +0 -1
  486. package/dist/types/kpuzzle/transformations.d.ts +0 -13
  487. package/dist/types/kpuzzle/transformations.d.ts.map +0 -1
  488. package/dist/types/kpuzzle/transformations.spec.d.ts +0 -2
  489. package/dist/types/kpuzzle/transformations.spec.d.ts.map +0 -1
  490. package/dist/types/notation/CountAnimatedLeaves.d.ts.map +0 -1
  491. package/dist/types/notation/CountMoves.d.ts.map +0 -1
  492. package/dist/types/notation/index.d.ts.map +0 -1
  493. package/dist/types/protocol/binary/binary3x3x3.d.ts.map +0 -1
  494. package/dist/types/protocol/binary/binary3x3x3.spec.d.ts.map +0 -1
  495. package/dist/types/protocol/binary/hex.d.ts.map +0 -1
  496. package/dist/types/protocol/binary/hex.spec.d.ts.map +0 -1
  497. package/dist/types/protocol/binary/orbit-indexing.d.ts.map +0 -1
  498. package/dist/types/protocol/binary/orbit-indexing.spec.d.ts.map +0 -1
  499. package/dist/types/protocol/binary/puzzle-orientation.d.ts.map +0 -1
  500. package/dist/types/protocol/index.d.ts.map +0 -1
  501. package/dist/types/puzzle-geometry/FaceNameSwizzler.d.ts.map +0 -1
  502. package/dist/types/puzzle-geometry/Options.d.ts.map +0 -1
  503. package/dist/types/puzzle-geometry/PGPuzzles.d.ts.map +0 -1
  504. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts.map +0 -1
  505. package/dist/types/puzzle-geometry/Perm.d.ts.map +0 -1
  506. package/dist/types/puzzle-geometry/PermOriSet.d.ts.map +0 -1
  507. package/dist/types/puzzle-geometry/PlatonicGenerator.d.ts.map +0 -1
  508. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts.map +0 -1
  509. package/dist/types/puzzle-geometry/Quat.d.ts.map +0 -1
  510. package/dist/types/puzzle-geometry/Quat.spec.d.ts.map +0 -1
  511. package/dist/types/puzzle-geometry/SchreierSims.d.ts.map +0 -1
  512. package/dist/types/puzzle-geometry/index.d.ts.map +0 -1
  513. package/dist/types/puzzle-geometry/interfaces.d.ts +0 -6
  514. package/dist/types/puzzle-geometry/interfaces.d.ts.map +0 -1
  515. package/dist/types/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts.map +0 -1
  516. package/dist/types/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts.map +0 -1
  517. package/dist/types/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts.map +0 -1
  518. package/dist/types/puzzle-geometry/notation-mapping/NotationMapper.d.ts.map +0 -1
  519. package/dist/types/puzzle-geometry/notation-mapping/NullMapper.d.ts.map +0 -1
  520. package/dist/types/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts.map +0 -1
  521. package/dist/types/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts.map +0 -1
  522. package/dist/types/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts.map +0 -1
  523. package/dist/types/puzzle-geometry/notation-mapping/index.d.ts.map +0 -1
  524. package/dist/types/puzzle-geometry/orientcenters.spec.d.ts.map +0 -1
  525. package/dist/types/puzzles/PuzzleLoader.d.ts.map +0 -1
  526. package/dist/types/puzzles/async/async-pg3d.d.ts.map +0 -1
  527. package/dist/types/puzzles/customPGPuzzleLoader.d.ts.map +0 -1
  528. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.d.ts.map +0 -1
  529. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.d.ts.map +0 -1
  530. package/dist/types/puzzles/implementations/2x2x2/index.d.ts.map +0 -1
  531. package/dist/types/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts.map +0 -1
  532. package/dist/types/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.d.ts.map +0 -1
  533. package/dist/types/puzzles/implementations/3x3x3/index.d.ts.map +0 -1
  534. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.json.d.ts.map +0 -1
  535. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.svg.d.ts.map +0 -1
  536. package/dist/types/puzzles/implementations/clock/index.d.ts.map +0 -1
  537. package/dist/types/puzzles/implementations/fto/index.d.ts.map +0 -1
  538. package/dist/types/puzzles/implementations/megaminx/index.d.ts.map +0 -1
  539. package/dist/types/puzzles/implementations/pyraminx/index.d.ts.map +0 -1
  540. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.d.ts.map +0 -1
  541. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.d.ts.map +0 -1
  542. package/dist/types/puzzles/implementations/square1/index.d.ts.map +0 -1
  543. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.d.ts.map +0 -1
  544. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.d.ts.map +0 -1
  545. package/dist/types/puzzles/index.d.ts.map +0 -1
  546. package/dist/types/puzzles/stickerings/appearance.d.ts.map +0 -1
  547. package/dist/types/puzzles/stickerings/cube-stickerings.d.ts.map +0 -1
  548. package/dist/types/puzzles/stickerings/fto-stickerings.d.ts.map +0 -1
  549. package/dist/types/puzzles/stickerings/global-custom-stickering-hack.d.ts.map +0 -1
  550. package/dist/types/puzzles/stickerings/megaminx-stickerings.d.ts.map +0 -1
  551. package/dist/types/scramble/index.d.ts.map +0 -1
  552. package/dist/types/search/esm-test-worker.d.ts.map +0 -1
  553. package/dist/types/search/index.d.ts.map +0 -1
  554. package/dist/types/search/inside/api.d.ts.map +0 -1
  555. package/dist/types/search/inside/api.spec.d.ts.map +0 -1
  556. package/dist/types/search/inside/entry.d.ts.map +0 -1
  557. package/dist/types/search/inside/inside-worker.d.ts.map +0 -1
  558. package/dist/types/search/inside/solve/addOrientationSuffix.d.ts.map +0 -1
  559. package/dist/types/search/inside/solve/parseSGS.d.ts.map +0 -1
  560. package/dist/types/search/inside/solve/puzzles/2x2x2.d.ts.map +0 -1
  561. package/dist/types/search/inside/solve/puzzles/2x2x2.sgs.json.d.ts.map +0 -1
  562. package/dist/types/search/inside/solve/puzzles/3x3x3/convert.d.ts.map +0 -1
  563. package/dist/types/search/inside/solve/puzzles/3x3x3/filter.d.ts.map +0 -1
  564. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts.map +0 -1
  565. package/dist/types/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts.map +0 -1
  566. package/dist/types/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.d.ts.map +0 -1
  567. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts.map +0 -1
  568. package/dist/types/search/inside/solve/puzzles/5x5x5.d.ts.map +0 -1
  569. package/dist/types/search/inside/solve/puzzles/big-cubes.d.ts.map +0 -1
  570. package/dist/types/search/inside/solve/puzzles/clock.d.ts.map +0 -1
  571. package/dist/types/search/inside/solve/puzzles/megaminx.d.ts.map +0 -1
  572. package/dist/types/search/inside/solve/puzzles/megaminx.sgs.json.d.ts.map +0 -1
  573. package/dist/types/search/inside/solve/puzzles/pyraminx.d.ts.map +0 -1
  574. package/dist/types/search/inside/solve/puzzles/pyraminx.sgs.json.d.ts.map +0 -1
  575. package/dist/types/search/inside/solve/puzzles/sgs-defs.spec.d.ts.map +0 -1
  576. package/dist/types/search/inside/solve/puzzles/skewb.d.ts.map +0 -1
  577. package/dist/types/search/inside/solve/puzzles/skewb.sgs.json.d.ts.map +0 -1
  578. package/dist/types/search/inside/solve/puzzles/sq1.d.ts.map +0 -1
  579. package/dist/types/search/inside/solve/puzzles/wca-minx.d.ts.map +0 -1
  580. package/dist/types/search/inside/solve/tremble.d.ts.map +0 -1
  581. package/dist/types/search/inside/solve/vendor/cstimer/src/js/lib/mathlib.d.ts.map +0 -1
  582. package/dist/types/search/inside/solve/vendor/cstimer/src/js/scramble/scramble_444.d.ts.map +0 -1
  583. package/dist/types/search/inside/solve/vendor/min2phase/gwt.d.ts.map +0 -1
  584. package/dist/types/search/inside/solve/vendor/random-uint-below/get-random-values.d.ts.map +0 -1
  585. package/dist/types/search/inside/solve/vendor/random-uint-below/index.d.ts.map +0 -1
  586. package/dist/types/search/inside/solve/vendor/random-uint-below/random-choice.d.ts.map +0 -1
  587. package/dist/types/search/inside/solve/vendor/random-uint-below/random-int.d.ts.map +0 -1
  588. package/dist/types/search/inside/solve/vendor/sq12phase/scramble_sq1.d.ts.map +0 -1
  589. package/dist/types/search/instantiator.d.ts.map +0 -1
  590. package/dist/types/search/outside.d.ts.map +0 -1
  591. package/dist/types/search/vendor/comlink-everywhere/inside/index.d.ts +0 -2
  592. package/dist/types/search/vendor/comlink-everywhere/inside/index.d.ts.map +0 -1
  593. package/dist/types/search/vendor/comlink-everywhere/inside/node.d.ts.map +0 -1
  594. package/dist/types/search/vendor/comlink-everywhere/outside/index.d.ts.map +0 -1
  595. package/dist/types/search/vendor/comlink-everywhere/outside/node.d.ts.map +0 -1
  596. package/dist/types/search/worker-inside-generated-string.d.ts.map +0 -1
  597. package/dist/types/stream/index.d.ts.map +0 -1
  598. package/dist/types/stream/process/ReorientedStream.d.ts.map +0 -1
  599. package/dist/types/stream/proxy-event.d.ts.map +0 -1
  600. package/dist/types/stream/twizzle/TwizzleStream.d.ts.map +0 -1
  601. package/dist/types/stream/twizzle/stream-types.d.ts.map +0 -1
  602. package/dist/types/stream/websocket-proxy.d.ts.map +0 -1
  603. package/dist/types/twisty/controllers/AnimationTypes.d.ts.map +0 -1
  604. package/dist/types/twisty/controllers/RenderScheduler.d.ts.map +0 -1
  605. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts.map +0 -1
  606. package/dist/types/twisty/controllers/TwistyPlayerController.d.ts.map +0 -1
  607. package/dist/types/twisty/controllers/easing.d.ts.map +0 -1
  608. package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts.map +0 -1
  609. package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts.map +0 -1
  610. package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts.map +0 -1
  611. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts.map +0 -1
  612. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts.map +0 -1
  613. package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts.map +0 -1
  614. package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts.map +0 -1
  615. package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts.map +0 -1
  616. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts.map +0 -1
  617. package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts.map +0 -1
  618. package/dist/types/twisty/heavy-code-imports/3d.d.ts.map +0 -1
  619. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d.d.ts.map +0 -1
  620. package/dist/types/twisty/index.d.ts.map +0 -1
  621. package/dist/types/twisty/model/PromiseFreshener.d.ts.map +0 -1
  622. package/dist/types/twisty/model/TwistyPlayerModel.d.ts.map +0 -1
  623. package/dist/types/twisty/model/UserVisibleErrorTracker.d.ts.map +0 -1
  624. package/dist/types/twisty/model/helpers.d.ts.map +0 -1
  625. package/dist/types/twisty/model/props/TwistyProp.d.ts.map +0 -1
  626. package/dist/types/twisty/model/props/TwistyProp.spec.d.ts.map +0 -1
  627. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts.map +0 -1
  628. package/dist/types/twisty/model/props/general/URLProp.d.ts.map +0 -1
  629. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts.map +0 -1
  630. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts.map +0 -1
  631. package/dist/types/twisty/model/props/puzzle/display/SpriteProp.d.ts.map +0 -1
  632. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts.map +0 -1
  633. package/dist/types/twisty/model/props/puzzle/state/AlgProp.d.ts.map +0 -1
  634. package/dist/types/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts.map +0 -1
  635. package/dist/types/twisty/model/props/puzzle/state/AnchoredStartProp.d.ts.map +0 -1
  636. package/dist/types/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts.map +0 -1
  637. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesProp.d.ts.map +0 -1
  638. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts.map +0 -1
  639. package/dist/types/twisty/model/props/puzzle/state/CurrentTransformationProp.d.ts +0 -15
  640. package/dist/types/twisty/model/props/puzzle/state/CurrentTransformationProp.d.ts.map +0 -1
  641. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts.map +0 -1
  642. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts.map +0 -1
  643. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts.map +0 -1
  644. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts.map +0 -1
  645. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts.map +0 -1
  646. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts.map +0 -1
  647. package/dist/types/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts.map +0 -1
  648. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts.map +0 -1
  649. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDefProp.d.ts +0 -11
  650. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDefProp.d.ts.map +0 -1
  651. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts.map +0 -1
  652. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts.map +0 -1
  653. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts.map +0 -1
  654. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts.map +0 -1
  655. package/dist/types/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts.map +0 -1
  656. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts.map +0 -1
  657. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts.map +0 -1
  658. package/dist/types/twisty/model/props/timeline/TempoScaleProp.d.ts.map +0 -1
  659. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts.map +0 -1
  660. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts.map +0 -1
  661. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts.map +0 -1
  662. package/dist/types/twisty/model/props/viewer/ButtonAppearanceProp.d.ts.map +0 -1
  663. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts.map +0 -1
  664. package/dist/types/twisty/model/props/viewer/LatitudeLimit.d.ts.map +0 -1
  665. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts.map +0 -1
  666. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts.map +0 -1
  667. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts.map +0 -1
  668. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts.map +0 -1
  669. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts.map +0 -1
  670. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts.map +0 -1
  671. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts.map +0 -1
  672. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts.map +0 -1
  673. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts.map +0 -1
  674. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts.map +0 -1
  675. package/dist/types/twisty/views/3D/DragTracker.d.ts.map +0 -1
  676. package/dist/types/twisty/views/3D/RendererPool.d.ts.map +0 -1
  677. package/dist/types/twisty/views/3D/TAU.d.ts.map +0 -1
  678. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts.map +0 -1
  679. package/dist/types/twisty/views/3D/Twisty3DRenderTarget.d.ts.map +0 -1
  680. package/dist/types/twisty/views/3D/Twisty3DScene.d.ts.map +0 -1
  681. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts.map +0 -1
  682. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts.map +0 -1
  683. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts.map +0 -1
  684. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts.map +0 -1
  685. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts.map +0 -1
  686. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts.map +0 -1
  687. package/dist/types/twisty/views/3D/puzzles/KPuzzleWrapper.d.ts +0 -48
  688. package/dist/types/twisty/views/3D/puzzles/KPuzzleWrapper.d.ts.map +0 -1
  689. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts.map +0 -1
  690. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts.map +0 -1
  691. package/dist/types/twisty/views/ClassListManager.d.ts.map +0 -1
  692. package/dist/types/twisty/views/ManagedCustomElement.d.ts.map +0 -1
  693. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts.map +0 -1
  694. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts.map +0 -1
  695. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts.map +0 -1
  696. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts.map +0 -1
  697. package/dist/types/twisty/views/TwistyAlgEditor/model.d.ts.map +0 -1
  698. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts.map +0 -1
  699. package/dist/types/twisty/views/TwistyAlgViewer.d.ts.map +0 -1
  700. package/dist/types/twisty/views/TwistyPlayer.css.d.ts.map +0 -1
  701. package/dist/types/twisty/views/TwistyPlayer.d.ts.map +0 -1
  702. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts.map +0 -1
  703. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts.map +0 -1
  704. package/dist/types/twisty/views/canvas.d.ts.map +0 -1
  705. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.css.d.ts.map +0 -1
  706. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.d.ts.map +0 -1
  707. package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts.map +0 -1
  708. package/dist/types/twisty/views/control-panel/TwistyScrubberV2.d.ts.map +0 -1
  709. package/dist/types/twisty/views/control-panel/webkit-fullscreen.d.ts.map +0 -1
  710. package/dist/types/twisty/views/document.d.ts.map +0 -1
  711. package/dist/types/twisty/views/node-custom-element-shims.d.ts.map +0 -1
  712. package/dist/types/twisty/views/screenshot.d.ts.map +0 -1
  713. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts.map +0 -1
  714. package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts.map +0 -1
  715. package/dist/types/vendor/p-lazy/p-lazy.d.ts.map +0 -1
  716. package/dist/types/vendor/three/examples/jsm/libs/stats.modified.module.d.ts.map +0 -1
  717. package/docs/.DS_Store +0 -0
  718. package/docs/CNAME +0 -1
  719. package/docs/cubing/.DS_Store +0 -0
  720. package/docs/cubing/alg/index.html +0 -174
  721. package/docs/cubing/api/index.html +0 -158
  722. package/docs/cubing/index.html +0 -151
  723. package/docs/cubing/scramble/index.html +0 -138
  724. package/docs/cubing/twisty/index.html +0 -329
  725. package/docs/favicon.ico +0 -0
  726. package/docs/index.html +0 -20
  727. package/docs/main.css +0 -192
  728. package/kpuzzle/index.d.ts +0 -1
  729. package/notation/index.d.ts +0 -1
  730. package/protocol/index.d.ts +0 -1
  731. package/puzzle-geometry/index.d.ts +0 -1
  732. package/puzzles/index.d.ts +0 -1
  733. package/scramble/index.d.ts +0 -1
  734. package/search/index.d.ts +0 -1
  735. package/src/cubing/.DS_Store +0 -0
  736. package/src/cubing/alg/Alg.spec.ts +0 -10
  737. package/src/cubing/alg/Alg.ts +0 -290
  738. package/src/cubing/alg/AlgBuilder.ts +0 -33
  739. package/src/cubing/alg/Serializable.ts +0 -29
  740. package/src/cubing/alg/common.ts +0 -59
  741. package/src/cubing/alg/debug.ts +0 -27
  742. package/src/cubing/alg/example.ts +0 -152
  743. package/src/cubing/alg/index.ts +0 -21
  744. package/src/cubing/alg/is.ts +0 -38
  745. package/src/cubing/alg/iteration.ts +0 -45
  746. package/src/cubing/alg/keyboard.ts +0 -48
  747. package/src/cubing/alg/limits.ts +0 -4
  748. package/src/cubing/alg/operation.spec.ts +0 -48
  749. package/src/cubing/alg/operation.ts +0 -36
  750. package/src/cubing/alg/parse.spec.ts +0 -75
  751. package/src/cubing/alg/parse.ts +0 -408
  752. package/src/cubing/alg/test/alg-comparison.ts +0 -23
  753. package/src/cubing/alg/test/alg.spec.ts +0 -348
  754. package/src/cubing/alg/traversal.ts +0 -284
  755. package/src/cubing/alg/units/QuantumWithAmount.ts +0 -55
  756. package/src/cubing/alg/units/Unit.ts +0 -11
  757. package/src/cubing/alg/units/containers/Commutator.ts +0 -85
  758. package/src/cubing/alg/units/containers/Conjugate.ts +0 -53
  759. package/src/cubing/alg/units/containers/Grouping.ts +0 -116
  760. package/src/cubing/alg/units/index.ts +0 -8
  761. package/src/cubing/alg/units/leaves/LineComment.spec.ts +0 -35
  762. package/src/cubing/alg/units/leaves/LineComment.ts +0 -48
  763. package/src/cubing/alg/units/leaves/Move.spec.ts +0 -15
  764. package/src/cubing/alg/units/leaves/Move.ts +0 -265
  765. package/src/cubing/alg/units/leaves/Newline.ts +0 -24
  766. package/src/cubing/alg/units/leaves/Pause.ts +0 -24
  767. package/src/cubing/alg/url.spec.ts +0 -10
  768. package/src/cubing/alg/url.ts +0 -133
  769. package/src/cubing/alg/validation.ts +0 -62
  770. package/src/cubing/alg/warnOnce.ts +0 -7
  771. package/src/cubing/bluetooth/connect/index.ts +0 -93
  772. package/src/cubing/bluetooth/debug.ts +0 -18
  773. package/src/cubing/bluetooth/docs/gan-robot.md +0 -60
  774. package/src/cubing/bluetooth/docs/gan356i.md +0 -309
  775. package/src/cubing/bluetooth/index.ts +0 -19
  776. package/src/cubing/bluetooth/keyboard.ts +0 -55
  777. package/src/cubing/bluetooth/smart-puzzle/Heykube.ts +0 -165
  778. package/src/cubing/bluetooth/smart-puzzle/bluetooth-puzzle.ts +0 -95
  779. package/src/cubing/bluetooth/smart-puzzle/connect.ts +0 -19
  780. package/src/cubing/bluetooth/smart-puzzle/endianness.ts +0 -15
  781. package/src/cubing/bluetooth/smart-puzzle/gan.ts +0 -481
  782. package/src/cubing/bluetooth/smart-puzzle/giiker.spec.ts +0 -28
  783. package/src/cubing/bluetooth/smart-puzzle/giiker.ts +0 -277
  784. package/src/cubing/bluetooth/smart-puzzle/gocube.ts +0 -167
  785. package/src/cubing/bluetooth/smart-puzzle/unsafe-raw-aes.ts +0 -66
  786. package/src/cubing/bluetooth/smart-robot/GanRobot.ts +0 -311
  787. package/src/cubing/bluetooth/smart-robot/index.ts +0 -13
  788. package/src/cubing/bluetooth/smart-timer/GanTimer.ts +0 -141
  789. package/src/cubing/bluetooth/smart-timer/index.ts +0 -13
  790. package/src/cubing/bluetooth/transformer.ts +0 -74
  791. package/src/cubing/esm-test-worker.js +0 -5
  792. package/src/cubing/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.ts +0 -40
  793. package/src/cubing/kpuzzle/3x3x3/3x3x3.kpuzzle.json.ts +0 -339
  794. package/src/cubing/kpuzzle/canon.spec.ts +0 -48
  795. package/src/cubing/kpuzzle/canonicalize.ts +0 -325
  796. package/src/cubing/kpuzzle/definition_types.ts +0 -23
  797. package/src/cubing/kpuzzle/index.ts +0 -33
  798. package/src/cubing/kpuzzle/kpuzzle.spec.ts +0 -12
  799. package/src/cubing/kpuzzle/kpuzzle.ts +0 -124
  800. package/src/cubing/kpuzzle/move_notation.ts +0 -9
  801. package/src/cubing/kpuzzle/parser/index.ts +0 -1
  802. package/src/cubing/kpuzzle/parser/parser-peggy.js +0 -1221
  803. package/src/cubing/kpuzzle/parser/parser-peggy.peggy +0 -72
  804. package/src/cubing/kpuzzle/parser/parser-shim.ts +0 -11
  805. package/src/cubing/kpuzzle/parser/parser.js +0 -0
  806. package/src/cubing/kpuzzle/prunetable.spec.ts +0 -19
  807. package/src/cubing/kpuzzle/pruningtable.ts +0 -99
  808. package/src/cubing/kpuzzle/puzzle-orientation.ts +0 -34
  809. package/src/cubing/kpuzzle/svg.ts +0 -290
  810. package/src/cubing/kpuzzle/transformations.spec.ts +0 -75
  811. package/src/cubing/kpuzzle/transformations.ts +0 -258
  812. package/src/cubing/notation/CountAnimatedLeaves.ts +0 -56
  813. package/src/cubing/notation/CountMoves.ts +0 -89
  814. package/src/cubing/notation/index.ts +0 -4
  815. package/src/cubing/protocol/binary/binary3x3x3.spec.ts +0 -143
  816. package/src/cubing/protocol/binary/binary3x3x3.ts +0 -226
  817. package/src/cubing/protocol/binary/hex.spec.ts +0 -17
  818. package/src/cubing/protocol/binary/hex.ts +0 -12
  819. package/src/cubing/protocol/binary/orbit-indexing.spec.ts +0 -49
  820. package/src/cubing/protocol/binary/orbit-indexing.ts +0 -68
  821. package/src/cubing/protocol/binary/puzzle-orientation.ts +0 -69
  822. package/src/cubing/protocol/index.ts +0 -12
  823. package/src/cubing/puzzle-geometry/FaceNameSwizzler.ts +0 -148
  824. package/src/cubing/puzzle-geometry/Options.ts +0 -179
  825. package/src/cubing/puzzle-geometry/PGPuzzles.spec.ts +0 -127
  826. package/src/cubing/puzzle-geometry/PGPuzzles.ts +0 -80
  827. package/src/cubing/puzzle-geometry/Perm.ts +0 -154
  828. package/src/cubing/puzzle-geometry/PermOriSet.ts +0 -765
  829. package/src/cubing/puzzle-geometry/PlatonicGenerator.ts +0 -146
  830. package/src/cubing/puzzle-geometry/PuzzleGeometry.ts +0 -3009
  831. package/src/cubing/puzzle-geometry/Quat.spec.ts +0 -10
  832. package/src/cubing/puzzle-geometry/Quat.ts +0 -325
  833. package/src/cubing/puzzle-geometry/SchreierSims.ts +0 -144
  834. package/src/cubing/puzzle-geometry/index.ts +0 -17
  835. package/src/cubing/puzzle-geometry/interfaces.ts +0 -6
  836. package/src/cubing/puzzle-geometry/notation-mapping/FTONotationMapper.ts +0 -38
  837. package/src/cubing/puzzle-geometry/notation-mapping/FaceRenamingMapper.ts +0 -59
  838. package/src/cubing/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.ts +0 -50
  839. package/src/cubing/puzzle-geometry/notation-mapping/NotationMapper.ts +0 -6
  840. package/src/cubing/puzzle-geometry/notation-mapping/NullMapper.ts +0 -12
  841. package/src/cubing/puzzle-geometry/notation-mapping/NxNxNCubeMapper.ts +0 -77
  842. package/src/cubing/puzzle-geometry/notation-mapping/PyraminxNotationMapper.ts +0 -121
  843. package/src/cubing/puzzle-geometry/notation-mapping/SkewbNotationMapper.ts +0 -103
  844. package/src/cubing/puzzle-geometry/notation-mapping/index.ts +0 -13
  845. package/src/cubing/puzzle-geometry/orientcenters.spec.ts +0 -55
  846. package/src/cubing/puzzles/PuzzleLoader.ts +0 -20
  847. package/src/cubing/puzzles/async/async-pg3d.ts +0 -73
  848. package/src/cubing/puzzles/customPGPuzzleLoader.ts +0 -60
  849. package/src/cubing/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.ts +0 -92
  850. package/src/cubing/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.ts +0 -45
  851. package/src/cubing/puzzles/implementations/2x2x2/index.ts +0 -25
  852. package/src/cubing/puzzles/implementations/2x2x2/svg/2x2x2.kpuzzle.svg +0 -45
  853. package/src/cubing/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.ts +0 -108
  854. package/src/cubing/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.ts +0 -128
  855. package/src/cubing/puzzles/implementations/3x3x3/index.ts +0 -33
  856. package/src/cubing/puzzles/implementations/3x3x3/src/3x3x3-ll.kpuzzle.svg +0 -108
  857. package/src/cubing/puzzles/implementations/3x3x3/src/3x3x3.kpuzzle.svg +0 -128
  858. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.original.svg +0 -128
  859. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.outlined.svg +0 -486
  860. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.spaced.svg +0 -128
  861. package/src/cubing/puzzles/implementations/clock/clock.kpuzzle.json.ts +0 -241
  862. package/src/cubing/puzzles/implementations/clock/clock.kpuzzle.svg.ts +0 -369
  863. package/src/cubing/puzzles/implementations/clock/index.ts +0 -14
  864. package/src/cubing/puzzles/implementations/clock/src/clock.kpuzzle.svg +0 -369
  865. package/src/cubing/puzzles/implementations/fto/index.ts +0 -28
  866. package/src/cubing/puzzles/implementations/megaminx/index.ts +0 -20
  867. package/src/cubing/puzzles/implementations/pyraminx/index.ts +0 -18
  868. package/src/cubing/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.ts +0 -84
  869. package/src/cubing/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.ts +0 -88
  870. package/src/cubing/puzzles/implementations/pyraminx/src/pyraminx.kpuzzle.svg +0 -87
  871. package/src/cubing/puzzles/implementations/square1/index.ts +0 -14
  872. package/src/cubing/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.ts +0 -62
  873. package/src/cubing/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.ts +0 -295
  874. package/src/cubing/puzzles/implementations/square1/src/sq1-hyperorbit.kpuzzle.svg +0 -295
  875. package/src/cubing/puzzles/implementations/square1/src/sq1-simple.svg +0 -60
  876. package/src/cubing/puzzles/index.ts +0 -92
  877. package/src/cubing/puzzles/stickerings/appearance.ts +0 -292
  878. package/src/cubing/puzzles/stickerings/cube-stickerings.ts +0 -286
  879. package/src/cubing/puzzles/stickerings/fto-stickerings.ts +0 -105
  880. package/src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts +0 -61
  881. package/src/cubing/puzzles/stickerings/megaminx-stickerings.ts +0 -26
  882. package/src/cubing/scramble/index.ts +0 -1
  883. package/src/cubing/search/.gitignore +0 -1
  884. package/src/cubing/search/esm-test-worker.js +0 -14
  885. package/src/cubing/search/index.ts +0 -12
  886. package/src/cubing/search/inside/api.spec.ts +0 -37
  887. package/src/cubing/search/inside/api.ts +0 -171
  888. package/src/cubing/search/inside/entry.js +0 -4
  889. package/src/cubing/search/inside/inside-worker.ts +0 -13
  890. package/src/cubing/search/inside/solve/addOrientationSuffix.ts +0 -17
  891. package/src/cubing/search/inside/solve/parseSGS.ts +0 -119
  892. package/src/cubing/search/inside/solve/puzzles/2x2x2.ts +0 -92
  893. package/src/cubing/search/inside/solve/puzzles/3x3x3/convert.ts +0 -137
  894. package/src/cubing/search/inside/solve/puzzles/3x3x3/filter.ts +0 -60
  895. package/src/cubing/search/inside/solve/puzzles/3x3x3/index.ts +0 -57
  896. package/src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.ts +0 -291
  897. package/src/cubing/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.ts +0 -272
  898. package/src/cubing/search/inside/solve/puzzles/4x4x4.ts +0 -16
  899. package/src/cubing/search/inside/solve/puzzles/5x5x5.ts +0 -12
  900. package/src/cubing/search/inside/solve/puzzles/FTO.sgs +0 -264
  901. package/src/cubing/search/inside/solve/puzzles/big-cubes.ts +0 -78
  902. package/src/cubing/search/inside/solve/puzzles/clock.ts +0 -48
  903. package/src/cubing/search/inside/solve/puzzles/megaminx.ts +0 -51
  904. package/src/cubing/search/inside/solve/puzzles/pyraminx.ts +0 -48
  905. package/src/cubing/search/inside/solve/puzzles/sgs-defs.spec.ts +0 -27
  906. package/src/cubing/search/inside/solve/puzzles/skewb.sgs.json.ts +0 -113
  907. package/src/cubing/search/inside/solve/puzzles/skewb.ts +0 -65
  908. package/src/cubing/search/inside/solve/puzzles/sq1.ts +0 -6
  909. package/src/cubing/search/inside/solve/puzzles/wca-minx.ts +0 -32
  910. package/src/cubing/search/inside/solve/tremble.ts +0 -212
  911. package/src/cubing/search/inside/solve/vendor/cstimer/LICENSE +0 -674
  912. package/src/cubing/search/inside/solve/vendor/cstimer/src/js/lib/mathlib.ts +0 -54
  913. package/src/cubing/search/inside/solve/vendor/min2phase/gwt.d.ts +0 -2
  914. package/src/cubing/search/inside/solve/vendor/random-uint-below/get-random-values.ts +0 -38
  915. package/src/cubing/search/inside/solve/vendor/random-uint-below/index.ts +0 -12
  916. package/src/cubing/search/inside/solve/vendor/random-uint-below/random-choice.ts +0 -9
  917. package/src/cubing/search/inside/solve/vendor/random-uint-below/random-int.ts +0 -64
  918. package/src/cubing/search/instantiator.ts +0 -60
  919. package/src/cubing/search/outside.ts +0 -110
  920. package/src/cubing/search/vendor/comlink-everywhere/comlink-everywhere.webloc +0 -8
  921. package/src/cubing/search/vendor/comlink-everywhere/inside/index.js +0 -16
  922. package/src/cubing/search/vendor/comlink-everywhere/inside/node.js +0 -6
  923. package/src/cubing/search/vendor/comlink-everywhere/outside/index.d.ts +0 -6
  924. package/src/cubing/search/vendor/comlink-everywhere/outside/index.js +0 -31
  925. package/src/cubing/search/vendor/comlink-everywhere/outside/node.js +0 -41
  926. package/src/cubing/search/worker-inside-generated-string.js +0 -1
  927. package/src/cubing/stream/index.ts +0 -12
  928. package/src/cubing/stream/process/ReorientedStream.ts +0 -93
  929. package/src/cubing/stream/proxy-event.ts +0 -16
  930. package/src/cubing/stream/twizzle/TwizzleStream.ts +0 -53
  931. package/src/cubing/stream/twizzle/stream-types.ts +0 -45
  932. package/src/cubing/stream/websocket-proxy.ts +0 -73
  933. package/src/cubing/twisty/.DS_Store +0 -0
  934. package/src/cubing/twisty/controllers/.DS_Store +0 -0
  935. package/src/cubing/twisty/controllers/AnimationTypes.ts +0 -50
  936. package/src/cubing/twisty/controllers/RenderScheduler.ts +0 -28
  937. package/src/cubing/twisty/controllers/TwistyAnimationController.ts +0 -325
  938. package/src/cubing/twisty/controllers/TwistyPlayerController.ts +0 -38
  939. package/src/cubing/twisty/controllers/animation/.DS_Store +0 -0
  940. package/src/cubing/twisty/controllers/easing.ts +0 -3
  941. package/src/cubing/twisty/controllers/indexer/.DS_Store +0 -0
  942. package/src/cubing/twisty/controllers/indexer/AlgDuration.ts +0 -94
  943. package/src/cubing/twisty/controllers/indexer/AlgIndexer.ts +0 -87
  944. package/src/cubing/twisty/controllers/indexer/SimpleAlgIndexer.ts +0 -76
  945. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.ts +0 -181
  946. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.ts +0 -243
  947. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/simul-moves.ts +0 -193
  948. package/src/cubing/twisty/controllers/indexer/tree/AlgWalker.ts +0 -439
  949. package/src/cubing/twisty/controllers/indexer/tree/TreeAlgIndexer.ts +0 -97
  950. package/src/cubing/twisty/controllers/indexer/tree/chunkAlgs.ts +0 -81
  951. package/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.spec.ts.TODO +0 -59
  952. package/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.ts +0 -162
  953. package/src/cubing/twisty/heavy-code-imports/.DS_Store +0 -0
  954. package/src/cubing/twisty/heavy-code-imports/3d.ts +0 -18
  955. package/src/cubing/twisty/heavy-code-imports/dynamic-entries/3d.ts +0 -31
  956. package/src/cubing/twisty/index.ts +0 -24
  957. package/src/cubing/twisty/model/.DS_Store +0 -0
  958. package/src/cubing/twisty/model/PromiseFreshener.ts +0 -49
  959. package/src/cubing/twisty/model/TwistyPlayerModel.ts +0 -254
  960. package/src/cubing/twisty/model/UserVisibleErrorTracker.ts +0 -22
  961. package/src/cubing/twisty/model/helpers.ts +0 -47
  962. package/src/cubing/twisty/model/props/.DS_Store +0 -0
  963. package/src/cubing/twisty/model/props/TwistyProp.spec.ts +0 -38
  964. package/src/cubing/twisty/model/props/TwistyProp.ts +0 -366
  965. package/src/cubing/twisty/model/props/TwistyPropDebugger.ts +0 -370
  966. package/src/cubing/twisty/model/props/general/URLProp.ts +0 -14
  967. package/src/cubing/twisty/model/props/puzzle/.DS_Store +0 -0
  968. package/src/cubing/twisty/model/props/puzzle/display/FoundationDisplayProp.ts +0 -9
  969. package/src/cubing/twisty/model/props/puzzle/display/HintFaceletProp.ts +0 -15
  970. package/src/cubing/twisty/model/props/puzzle/display/SpriteProp.ts +0 -43
  971. package/src/cubing/twisty/model/props/puzzle/display/StickeringProp.ts +0 -54
  972. package/src/cubing/twisty/model/props/puzzle/state/AlgProp.ts +0 -91
  973. package/src/cubing/twisty/model/props/puzzle/state/AlgTransformationProp.ts +0 -28
  974. package/src/cubing/twisty/model/props/puzzle/state/AnchoredStartProp.ts +0 -44
  975. package/src/cubing/twisty/model/props/puzzle/state/CatchUpMoveProp.ts +0 -17
  976. package/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesProp.ts +0 -109
  977. package/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesSimplified.ts +0 -48
  978. package/src/cubing/twisty/model/props/puzzle/state/CurrentTransformationProp.ts +0 -46
  979. package/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorProp.ts +0 -53
  980. package/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.ts +0 -15
  981. package/src/cubing/twisty/model/props/puzzle/state/IndexerProp.ts +0 -24
  982. package/src/cubing/twisty/model/props/puzzle/state/LegacyPositionProp.ts +0 -22
  983. package/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.ts +0 -9
  984. package/src/cubing/twisty/model/props/puzzle/state/NaiveMoveCountProp.ts +0 -20
  985. package/src/cubing/twisty/model/props/puzzle/state/PuzzleAlgProp.ts +0 -28
  986. package/src/cubing/twisty/model/props/puzzle/state/SetupAnchorProp.ts +0 -14
  987. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleDefProp.ts +0 -14
  988. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.ts +0 -14
  989. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDProp.ts +0 -12
  990. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.ts +0 -36
  991. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleLoaderProp.ts +0 -38
  992. package/src/cubing/twisty/model/props/timeline/CoarseTimelineInfoProp.ts +0 -45
  993. package/src/cubing/twisty/model/props/timeline/DetailedTimelineInfoProp.ts +0 -78
  994. package/src/cubing/twisty/model/props/timeline/PlayingInfoProp.ts +0 -48
  995. package/src/cubing/twisty/model/props/timeline/TempoScaleProp.ts +0 -13
  996. package/src/cubing/twisty/model/props/timeline/TimestampRequestProp.ts +0 -38
  997. package/src/cubing/twisty/model/props/viewer/BackViewProp.ts +0 -16
  998. package/src/cubing/twisty/model/props/viewer/BackgroundProp.ts +0 -15
  999. package/src/cubing/twisty/model/props/viewer/ButtonAppearanceProp.ts +0 -86
  1000. package/src/cubing/twisty/model/props/viewer/ControlPanelProp.ts +0 -14
  1001. package/src/cubing/twisty/model/props/viewer/LatitudeLimit.ts +0 -11
  1002. package/src/cubing/twisty/model/props/viewer/OrbitCoordinatesProp.ts +0 -127
  1003. package/src/cubing/twisty/model/props/viewer/OrbitCoordinatesRequestProp.ts +0 -69
  1004. package/src/cubing/twisty/model/props/viewer/TimeRangeProp.ts +0 -15
  1005. package/src/cubing/twisty/model/props/viewer/ViewerLinkProp.ts +0 -14
  1006. package/src/cubing/twisty/model/props/viewer/VisualizationProp.ts +0 -17
  1007. package/src/cubing/twisty/model/props/viewer/VisualizationStrategyProp.ts +0 -45
  1008. package/src/cubing/twisty/old/.DS_Store +0 -0
  1009. package/src/cubing/twisty/old/animation/.DS_Store +0 -0
  1010. package/src/cubing/twisty/old/dom/.DS_Store +0 -0
  1011. package/src/cubing/twisty/views/.DS_Store +0 -0
  1012. package/src/cubing/twisty/views/2D/Twisty2DPuzzle.css.ts +0 -26
  1013. package/src/cubing/twisty/views/2D/Twisty2DPuzzle.ts +0 -146
  1014. package/src/cubing/twisty/views/2D/Twisty2DPuzzleWrapper.ts +0 -52
  1015. package/src/cubing/twisty/views/2D/Twisty2DSceneWrapper.ts +0 -77
  1016. package/src/cubing/twisty/views/3D/.DS_Store +0 -0
  1017. package/src/cubing/twisty/views/3D/DragTracker.ts +0 -184
  1018. package/src/cubing/twisty/views/3D/RendererPool.ts +0 -54
  1019. package/src/cubing/twisty/views/3D/TAU.ts +0 -2
  1020. package/src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.ts +0 -214
  1021. package/src/cubing/twisty/views/3D/Twisty3DRenderTarget.ts +0 -5
  1022. package/src/cubing/twisty/views/3D/Twisty3DScene.ts +0 -42
  1023. package/src/cubing/twisty/views/3D/Twisty3DSceneWrapper.ts +0 -189
  1024. package/src/cubing/twisty/views/3D/Twisty3DVantage.css.ts +0 -32
  1025. package/src/cubing/twisty/views/3D/Twisty3DVantage.ts +0 -312
  1026. package/src/cubing/twisty/views/3D/TwistyOrbitControls.spec.ts +0 -213
  1027. package/src/cubing/twisty/views/3D/TwistyOrbitControls.ts +0 -176
  1028. package/src/cubing/twisty/views/3D/puzzles/Cube3D.ts +0 -966
  1029. package/src/cubing/twisty/views/3D/puzzles/KPuzzleWrapper.ts +0 -142
  1030. package/src/cubing/twisty/views/3D/puzzles/PG3D.ts +0 -1078
  1031. package/src/cubing/twisty/views/3D/puzzles/Twisty3DPuzzle.ts +0 -6
  1032. package/src/cubing/twisty/views/ClassListManager.ts +0 -34
  1033. package/src/cubing/twisty/views/ManagedCustomElement.ts +0 -76
  1034. package/src/cubing/twisty/views/TwistyAlgEditor/LeafTokens.ts +0 -116
  1035. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.ts +0 -72
  1036. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.ts +0 -57
  1037. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.ts +0 -368
  1038. package/src/cubing/twisty/views/TwistyAlgEditor/model.ts +0 -179
  1039. package/src/cubing/twisty/views/TwistyAlgViewer.css.ts +0 -25
  1040. package/src/cubing/twisty/views/TwistyAlgViewer.ts +0 -502
  1041. package/src/cubing/twisty/views/TwistyPlayer.css.ts +0 -73
  1042. package/src/cubing/twisty/views/TwistyPlayer.ts +0 -362
  1043. package/src/cubing/twisty/views/TwistyPlayerSettable.ts +0 -115
  1044. package/src/cubing/twisty/views/TwistyViewerWrapper.css.ts +0 -41
  1045. package/src/cubing/twisty/views/canvas.ts +0 -9
  1046. package/src/cubing/twisty/views/control-panel/TwistyButtonsV2.css.ts +0 -127
  1047. package/src/cubing/twisty/views/control-panel/TwistyButtonsV2.ts +0 -156
  1048. package/src/cubing/twisty/views/control-panel/TwistyScrubber.css.ts +0 -48
  1049. package/src/cubing/twisty/views/control-panel/TwistyScrubberV2.ts +0 -145
  1050. package/src/cubing/twisty/views/control-panel/webkit-fullscreen.ts +0 -44
  1051. package/src/cubing/twisty/views/document.ts +0 -4
  1052. package/src/cubing/twisty/views/node-custom-element-shims.ts +0 -30
  1053. package/src/cubing/twisty/views/screenshot.ts +0 -90
  1054. package/src/cubing/twisty/views/stream/TwistyStreamSource.css.ts +0 -17
  1055. package/src/cubing/twisty/views/stream/TwistyStreamSource.ts +0 -155
  1056. package/src/cubing/vendor/p-lazy/license +0 -9
  1057. package/src/cubing/vendor/p-lazy/p-lazy.ts +0 -52
  1058. package/src/cubing/vendor/p-lazy/readme.md +0 -54
  1059. package/src/cubing/vendor/three/examples/jsm/libs/stats.modified.module.ts +0 -179
  1060. package/stream/index.d.ts +0 -1
  1061. package/twisty/index.d.ts +0 -1
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/cubing/protocol/binary/orbit-indexing.ts", "../../src/cubing/kpuzzle/transformations.ts", "../../src/cubing/kpuzzle/kpuzzle.ts", "../../src/cubing/kpuzzle/canonicalize.ts", "../../src/cubing/kpuzzle/parser/parser-peggy.js", "../../src/cubing/kpuzzle/parser/parser-shim.ts", "../../src/cubing/kpuzzle/svg.ts", "../../src/cubing/kpuzzle/3x3x3/3x3x3.kpuzzle.json.ts", "../../src/cubing/kpuzzle/puzzle-orientation.ts", "../../src/cubing/protocol/binary/puzzle-orientation.ts", "../../src/cubing/protocol/binary/binary3x3x3.ts", "../../src/cubing/protocol/binary/hex.ts"],
4
- "sourcesContent": ["export function identityPermutation(numElems: number): number[] {\n const arr = new Array<number>(numElems);\n for (let i = 0; i < numElems; i++) {\n arr[i] = i;\n }\n return arr;\n}\n\n// Inclusive start, exclusive end (similar to `Array.prototype.slice`)\nexport function orientationsToMask(\n radix: number,\n orientations: number[],\n): number {\n let val = 0;\n for (const orientation of orientations) {\n val *= radix;\n val += orientation;\n }\n return val;\n}\n\n// Inclusive start, exclusive end (similar to `Array.prototype.slice`)\nexport function maskToOrientations(\n radix: number,\n numElems: number,\n mask: number,\n): number[] {\n const arr = [];\n while (mask > 0) {\n arr.push(mask % radix);\n mask = Math.floor(mask / radix);\n }\n return new Array<number>(numElems - arr.length).fill(0).concat(arr.reverse());\n}\n\n// From https://www.jaapsch.net/puzzles/compindx.htm#perm\nexport function permutationToLex(permutation: number[]): number {\n const n = permutation.length;\n let lexicographicIdx = 0;\n for (let i = 0; i < n - 1; i++) {\n lexicographicIdx = lexicographicIdx * (n - i);\n for (let j = i + 1; j < n; j++) {\n if (permutation[i] > permutation[j]) {\n lexicographicIdx += 1;\n }\n }\n }\n return lexicographicIdx;\n}\n\n// From https://www.jaapsch.net/puzzles/compindx.htm#perm\nexport function lexToPermutation(\n numPieces: number,\n lexicographicIdx: number,\n): number[] {\n const permutation: number[] = new Array(numPieces);\n permutation[numPieces - 1] = 0;\n for (let i = numPieces - 2; i >= 0; i--) {\n permutation[i] = lexicographicIdx % (numPieces - i);\n lexicographicIdx = Math.floor(lexicographicIdx / (numPieces - i));\n for (let j = i + 1; j < numPieces; j++) {\n if (permutation[j] >= permutation[i]) {\n permutation[j] = permutation[j] + 1;\n }\n }\n }\n return permutation;\n}\n", "import type {\n KPuzzleDefinition,\n OrbitTransformation,\n Transformation,\n} from \"./definition_types\";\n\n// this is the last identity orbit transformation we saw or looked at.\nlet lasto: OrbitTransformation | null;\n\nfunction isIdentity(omod: number, o: OrbitTransformation): boolean {\n if (o === lasto) {\n return true;\n }\n const perm = o.permutation;\n const n = perm.length;\n for (let idx = 0; idx < n; idx++) {\n if (perm[idx] !== idx) {\n return false;\n }\n }\n if (omod > 1) {\n const ori = o.orientation;\n for (let idx = 0; idx < n; idx++) {\n if (ori[idx] !== 0) {\n return false;\n }\n }\n }\n lasto = o;\n return true;\n}\n\nexport function combineTransformations(\n def: KPuzzleDefinition,\n t1: Transformation,\n t2: Transformation,\n): Transformation {\n const newTrans: Transformation = {} as Transformation;\n for (const orbitName in def.orbits) {\n const oDef = def.orbits[orbitName];\n const o1 = t1[orbitName];\n const o2 = t2[orbitName];\n if (isIdentity(oDef.orientations, o2)) {\n // common case for big cubes\n newTrans[orbitName] = o1;\n } else if (isIdentity(oDef.orientations, o1)) {\n newTrans[orbitName] = o2;\n } else {\n const newPerm = new Array(oDef.numPieces);\n if (oDef.orientations === 1) {\n for (let idx = 0; idx < oDef.numPieces; idx++) {\n newPerm[idx] = o1.permutation[o2.permutation[idx]];\n }\n newTrans[orbitName] = {\n permutation: newPerm,\n orientation: o1.orientation,\n };\n } else {\n const newOri = new Array(oDef.numPieces);\n for (let idx = 0; idx < oDef.numPieces; idx++) {\n newOri[idx] =\n (o1.orientation[o2.permutation[idx]] + o2.orientation[idx]) %\n oDef.orientations;\n newPerm[idx] = o1.permutation[o2.permutation[idx]];\n }\n newTrans[orbitName] = { permutation: newPerm, orientation: newOri };\n }\n }\n }\n return newTrans;\n}\n\nexport function multiplyTransformations(\n def: KPuzzleDefinition,\n t: Transformation,\n amount: number,\n): Transformation {\n if (amount < 0) {\n return multiplyTransformations(def, invertTransformation(def, t), -amount);\n }\n if (amount === 0) {\n return identityTransformation(def);\n }\n if (amount === 1) {\n return t;\n }\n let halfish = t;\n if (amount !== 2) {\n halfish = multiplyTransformations(def, t, Math.floor(amount / 2));\n }\n const twiceHalfish = combineTransformations(def, halfish, halfish);\n if (amount % 2 === 0) {\n return twiceHalfish;\n } else {\n return combineTransformations(def, t, twiceHalfish);\n }\n}\nexport function identityTransformation(\n definition: KPuzzleDefinition,\n): Transformation {\n const transformation = {} as Transformation;\n for (const orbitName in definition.orbits) {\n const orbitDefinition = definition.orbits[orbitName];\n if (!lasto || lasto.permutation.length !== orbitDefinition.numPieces) {\n const newPermutation = new Array(orbitDefinition.numPieces);\n const newOrientation = new Array(orbitDefinition.numPieces);\n for (let i = 0; i < orbitDefinition.numPieces; i++) {\n newPermutation[i] = i;\n newOrientation[i] = 0;\n }\n const orbitTransformation = {\n permutation: newPermutation,\n orientation: newOrientation,\n };\n lasto = orbitTransformation;\n // Object.freeze(newPermutation); // TODO\n // Object.freeze(newOrientation); // TODO\n }\n transformation[orbitName] = lasto;\n\n // Object.freeze(orbitDefinition); // TODO\n }\n // Object.freeze(transformation); // TODO\n return transformation;\n}\n\nexport function invertTransformation(\n def: KPuzzleDefinition,\n t: Transformation,\n): Transformation {\n const newTrans: Transformation = {} as Transformation;\n for (const orbitName in def.orbits) {\n const oDef = def.orbits[orbitName];\n const o = t[orbitName];\n if (isIdentity(oDef.orientations, o)) {\n newTrans[orbitName] = o;\n } else if (oDef.orientations === 1) {\n const newPerm = new Array(oDef.numPieces);\n for (let idx = 0; idx < oDef.numPieces; idx++) {\n newPerm[o.permutation[idx]] = idx;\n }\n newTrans[orbitName] = {\n permutation: newPerm,\n orientation: o.orientation,\n };\n } else {\n const newPerm = new Array(oDef.numPieces);\n const newOri = new Array(oDef.numPieces);\n for (let idx = 0; idx < oDef.numPieces; idx++) {\n const fromIdx = o.permutation[idx];\n newPerm[fromIdx] = idx;\n newOri[fromIdx] =\n (oDef.orientations - o.orientation[idx] + oDef.orientations) %\n oDef.orientations;\n }\n newTrans[orbitName] = { permutation: newPerm, orientation: newOri };\n }\n }\n return newTrans;\n}\n\nfunction gcd(a: number, b: number): number {\n if (b) {\n return gcd(b, a % b);\n }\n return a;\n}\n\n/* calculate the order of a particular transformation. */\nexport function transformationOrder(\n def: KPuzzleDefinition,\n t: Transformation,\n): number {\n let r: number = 1;\n for (const orbitName in def.orbits) {\n const oDef = def.orbits[orbitName];\n const o = t[orbitName];\n const d = new Array(oDef.numPieces);\n for (let idx = 0; idx < oDef.numPieces; idx++) {\n if (!d[idx]) {\n let w = idx;\n let om = 0;\n let pm = 0;\n for (;;) {\n d[w] = true;\n om = om + o.orientation[w];\n pm = pm + 1;\n w = o.permutation[w];\n if (w === idx) {\n break;\n }\n }\n if (om !== 0) {\n pm = (pm * oDef.orientations) / gcd(oDef.orientations, om);\n }\n r = (r * pm) / gcd(r, pm);\n }\n }\n }\n return r;\n}\n\nexport function areOrbitTransformationsEquivalent(\n def: KPuzzleDefinition,\n orbitName: string,\n t1: Transformation,\n t2: Transformation,\n options: {\n ignoreOrientation?: boolean;\n ignorePermutation?: boolean;\n } = {},\n): boolean {\n const oDef = def.orbits[orbitName];\n const o1 = t1[orbitName];\n const o2 = t2[orbitName];\n for (let idx = 0; idx < oDef.numPieces; idx++) {\n if (\n !options?.ignoreOrientation &&\n o1.orientation[idx] !== o2.orientation[idx]\n ) {\n return false;\n }\n if (\n !options?.ignorePermutation &&\n o1.permutation[idx] !== o2.permutation[idx]\n ) {\n return false;\n }\n }\n return true;\n}\n\nexport function areTransformationsEquivalent(\n def: KPuzzleDefinition,\n t1: Transformation,\n t2: Transformation,\n): boolean {\n for (const orbitName in def.orbits) {\n if (!areOrbitTransformationsEquivalent(def, orbitName, t1, t2)) {\n return false;\n }\n }\n return true;\n}\n\nexport function areStatesEquivalent(\n def: KPuzzleDefinition,\n t1: Transformation,\n t2: Transformation,\n): boolean {\n // Turn transformations into states.\n // This accounts for indistinguishable pieces.\n return areTransformationsEquivalent(\n def,\n combineTransformations(def, def.startPieces, t1),\n combineTransformations(def, def.startPieces, t2),\n );\n}\n", "import { Alg, Move } from \"../alg\";\nimport type { QuantumMove } from \"../alg/units/leaves/Move\";\nimport type { KPuzzleDefinition, Transformation } from \"./definition_types\";\nimport type { MoveNotation } from \"./move_notation\";\nimport {\n combineTransformations,\n identityTransformation,\n multiplyTransformations,\n} from \"./transformations\";\n\n// TODO: Move other helpers into the definition.\nexport function transformationForQuantumMove(\n def: KPuzzleDefinition,\n quantumMove: QuantumMove,\n): Transformation {\n const transformation = getNotationLayer(def).lookupMove(\n new Move(quantumMove), // TODO\n );\n if (!transformation) {\n throw new Error(\"Unknown move: \" + quantumMove.toString());\n }\n return transformation;\n}\n\n// TODO: Move other helpers into the definition.\nexport function transformationForMove(\n def: KPuzzleDefinition,\n move: Move,\n): Transformation {\n const transformation = getNotationLayer(def).lookupMove(move);\n if (!transformation) {\n throw new Error(\"Unknown move: \" + move.toString());\n }\n return transformation;\n}\n\nexport function getNotationLayer(def: KPuzzleDefinition): MoveNotation {\n if (!def.moveNotation) {\n def.moveNotation = new KPuzzleMoveNotation(def);\n }\n return def.moveNotation;\n}\n\nclass KPuzzleMoveNotation implements MoveNotation {\n private cache: { [key: string]: Transformation } = {};\n constructor(public def: KPuzzleDefinition) {}\n\n public lookupMove(move: Move): Transformation | undefined {\n const key = move.toString();\n let r: Transformation | undefined = this.cache[key];\n if (r) {\n return r;\n }\n const quantumKey = move.quantum.toString();\n r = this.def.moves[quantumKey];\n if (r) {\n r = multiplyTransformations(this.def, r, move.amount);\n this.cache[key] = r;\n } else {\n // Handle e.g. `y2` if `y2` is defined.\n // Note: this doesn't handle multiples.\n // TODO: Should this be defined in a special place in the KPuzzle def instead of mixed with normal moves?\n r = this.def.moves[move.toString()];\n if (r) {\n this.cache[key] = r;\n } else {\n // Handle e.g. `y2'` if `y2` is defined.\n // Note: this doesn't handle multiples.\n // TODO: Should this be defined in a special place in the KPuzzle def instead of mixed with normal moves?\n r = this.def.moves[move.invert().toString()];\n if (r) {\n r = multiplyTransformations(this.def, r, -1);\n this.cache[key] = r;\n }\n }\n }\n\n return r;\n }\n}\n\nexport class KPuzzle {\n public state: Transformation;\n constructor(public definition: KPuzzleDefinition) {\n this.state = identityTransformation(definition);\n }\n\n public reset(): void {\n this.state = identityTransformation(this.definition);\n }\n\n public serialize(): string {\n let output = \"\";\n for (const orbitName in this.definition.orbits) {\n output += orbitName + \"\\n\";\n output += this.state[orbitName].permutation.join(\" \") + \"\\n\";\n output += this.state[orbitName].orientation.join(\" \") + \"\\n\";\n }\n output = output.slice(0, output.length - 1); // Trim last newline.\n return output;\n }\n\n public applyMove(move: Move): void {\n this.state = combineTransformations(\n this.definition,\n this.state,\n transformationForMove(this.definition, move),\n );\n }\n\n public applyAlg(alg: Alg): void {\n // TODO: use indexer instead of full expansion.\n for (const move of alg.experimentalLeafMoves()) {\n this.applyMove(move);\n }\n }\n // TODO: Implement\n // parseState(): this {}\n\n // TODO: Alg parsing\n\n // TODO: Implement.\n // invert(): this {}\n}\n", "/**\n * This module manages canonical sequences. You can merge sequences\n * combining moves (fully respecting commuting moves), and you can\n * generate canonical sequences efficiently.\n */\nimport type { Alg, Move } from \"../alg\";\nimport type { KPuzzleDefinition, Transformation } from \"./definition_types\";\nimport {\n areTransformationsEquivalent,\n combineTransformations,\n identityTransformation,\n} from \"./transformations\";\n\nclass InternalMove {\n constructor(public base: number, public twist: number) {}\n public getTransformation(canon: Canonicalizer): Transformation {\n return canon.transforms[this.base][this.twist];\n }\n\n public asString(canon: Canonicalizer): string {\n const mod = canon.moveorder[this.base];\n let tw = this.twist % mod;\n while (tw + tw > mod) {\n tw -= mod;\n }\n while (tw + tw <= -mod) {\n tw += mod;\n }\n const nam = canon.movenames[this.base];\n if (tw === 1) {\n return nam;\n } else if (tw === -1) {\n return nam + \"'\";\n } else if (tw > 0) {\n return nam + tw;\n } else if (tw < 0) {\n return nam + -tw + \"'\";\n } else {\n throw new Error(\"Stringifying null move?\");\n }\n }\n}\n\n// represents puzzle move data and its commuting structure\nexport class Canonicalizer {\n public commutes: boolean[][] = [];\n public moveorder: number[] = [];\n public movenames: string[] = [];\n public transforms: Transformation[][] = [];\n public moveindex: { [key: string]: number } = {};\n public baseMoveCount: number;\n constructor(public def: KPuzzleDefinition) {\n const basemoves = def.moves;\n const id = identityTransformation(def);\n for (const mv1 in basemoves) {\n this.moveindex[mv1] = this.movenames.length;\n this.movenames.push(mv1);\n this.transforms.push([id, basemoves[mv1]]);\n }\n this.baseMoveCount = this.movenames.length;\n for (let i = 0; i < this.baseMoveCount; i++) {\n this.commutes.push([]);\n const t1 = this.transforms[i][1];\n for (let j = 0; j < this.baseMoveCount; j++) {\n const t2 = this.transforms[j][1];\n const ab = combineTransformations(def, t1, t2);\n const ba = combineTransformations(def, t2, t1);\n this.commutes[i][j] = areTransformationsEquivalent(def, ab, ba);\n }\n }\n for (let i = 0; i < this.baseMoveCount; i++) {\n const t1 = this.transforms[i][1];\n let ct = t1;\n let order = 1;\n for (let mult = 2; !areTransformationsEquivalent(def, id, ct); mult++) {\n order++;\n ct = combineTransformations(def, ct, t1);\n this.transforms[i].push(ct);\n }\n this.moveorder[i] = order;\n }\n }\n\n public blockMoveToInternalMove(move: Move): InternalMove {\n const quantumMoveStr = move.quantum.toString();\n if (!(quantumMoveStr in this.def.moves)) {\n throw new Error(\"! move \" + quantumMoveStr + \" not in def.\");\n }\n const ind = this.moveindex[quantumMoveStr];\n const mod = this.moveorder[ind];\n let tw = move.amount % mod; // TODO\n if (tw < 0) {\n tw = (tw + mod) % mod;\n }\n return new InternalMove(ind, tw);\n }\n\n // Sequence must be simple sequence of block moves\n // this one does not attempt to merge.\n public sequenceToSearchSequence(\n alg: Alg,\n tr?: Transformation,\n ): SearchSequence {\n const ss = new SearchSequence(this, tr);\n for (const move of alg.experimentalLeafMoves()) {\n ss.appendOneMove(this.blockMoveToInternalMove(move));\n }\n return ss;\n }\n\n // Sequence to simple sequence, with merging.\n public mergeSequenceToSearchSequence(\n alg: Alg,\n tr?: Transformation,\n ): SearchSequence {\n const ss = new SearchSequence(this, tr);\n for (const move of alg.experimentalLeafMoves()) {\n ss.mergeOneMove(this.blockMoveToInternalMove(move));\n }\n return ss;\n }\n}\n\n// represents a single sequence we are working on\n// this can be a search sequence, or it can be a\n// \"cooked\" sequence that we want to use efficiently.\nexport class SearchSequence {\n public moveseq: InternalMove[] = [];\n public trans: Transformation;\n constructor(private canon: Canonicalizer, tr?: Transformation) {\n if (tr) {\n this.trans = tr;\n } else {\n this.trans = identityTransformation(canon.def);\n }\n }\n\n /*\n * A common use for search sequences is to extend them, but\n * sometimes we shouldn't modify the returned one. This\n * method gives you a copy you can do whatever you want with.\n */\n public clone(): SearchSequence {\n const r = new SearchSequence(this.canon, this.trans);\n r.moveseq = [...this.moveseq];\n return r;\n }\n\n // returns 1 if the move is added, 0 if it is merged, -1 if it cancels a move\n public mergeOneMove(mv: InternalMove): number {\n const r = this.onlyMergeOneMove(mv);\n this.trans = combineTransformations(\n this.canon.def,\n this.trans,\n mv.getTransformation(this.canon),\n );\n return r;\n }\n\n // does not do merge work; just slaps the new move on\n public appendOneMove(mv: InternalMove): number {\n this.moveseq.push(mv);\n this.trans = combineTransformations(\n this.canon.def,\n this.trans,\n mv.getTransformation(this.canon),\n );\n return 1;\n }\n\n // pop a move off.\n public popMove(): number {\n const mv = this.moveseq.pop();\n if (!mv) {\n throw new Error(\"Can't pop an empty sequence\");\n }\n this.trans = combineTransformations(\n this.canon.def,\n this.trans,\n this.canon.transforms[mv.base][this.canon.moveorder[mv.base] - mv.twist],\n );\n return 1;\n }\n\n // do one more twist of the last move\n public oneMoreTwist(): number {\n const lastmv = this.moveseq[this.moveseq.length - 1];\n this.trans = combineTransformations(\n this.canon.def,\n this.trans,\n this.canon.transforms[lastmv.base][1],\n );\n this.moveseq[this.moveseq.length - 1] = new InternalMove(\n lastmv.base,\n lastmv.twist + 1,\n );\n return 0;\n }\n\n private onlyMergeOneMove(mv: InternalMove): number {\n let j = this.moveseq.length - 1;\n while (j >= 0) {\n if (mv.base === this.moveseq[j].base) {\n const mo = this.canon.moveorder[mv.base];\n let twist = (mv.twist + this.moveseq[j].twist) % mo;\n if (twist < 0) {\n twist = (twist + mo) % mo;\n }\n if (twist === 0) {\n // this splice should not be a performance problem because the\n // typical number of following moves should be small\n this.moveseq.splice(j, 1);\n return -1;\n } else {\n this.moveseq[j] = new InternalMove(mv.base, twist);\n return 0;\n }\n } else if (this.canon.commutes[mv.base][this.moveseq[j].base]) {\n j--;\n } else {\n break;\n }\n }\n this.moveseq.push(mv);\n return 1;\n }\n\n // returns the length of the merged sequence.\n public mergeSequence(seq: SearchSequence): number {\n let r = this.moveseq.length;\n for (let i = 0; i < seq.moveseq.length; i++) {\n const mv = seq.moveseq[i];\n const d = this.onlyMergeOneMove(mv);\n r += d;\n }\n this.trans = combineTransformations(this.canon.def, this.trans, seq.trans);\n return r;\n }\n\n public getSequenceAsString(): string {\n const r: string[] = [];\n for (const mv of this.moveseq) {\n r.push(mv.asString(this.canon));\n }\n return r.join(\" \");\n }\n}\n\n/*\n * Iterate through canonical sequences by length. This version\n * uses generators.\n */\nexport class CanonicalSequenceIterator {\n public ss: SearchSequence;\n public targetLength: number;\n constructor(public canon: Canonicalizer, state?: Transformation) {\n this.ss = new SearchSequence(canon, state);\n this.targetLength = 0;\n }\n\n public nextState(base: number, canonstate: number[]): null | number[] {\n const newstate: number[] = [];\n for (const prevbase of canonstate) {\n if (prevbase === base) {\n return null;\n } else if (!this.canon.commutes[prevbase][base]) {\n // don't do anything in this case\n } else if (base < prevbase) {\n return null;\n } else {\n newstate.push(prevbase);\n }\n }\n return newstate;\n }\n\n public *genSequence(\n togo: number,\n canonstate: number[],\n ): Generator<SearchSequence, null, void> {\n if (togo === 0) {\n yield this.ss;\n } else {\n for (let base = 0; base < this.canon.baseMoveCount; base++) {\n const newstate = this.nextState(base, canonstate);\n if (newstate) {\n newstate.push(base);\n for (let tw = 1; tw < this.canon.moveorder[base]; tw++) {\n this.ss.appendOneMove(new InternalMove(base, tw));\n yield* this.genSequence(togo - 1, newstate);\n this.ss.popMove();\n }\n }\n }\n }\n return null;\n }\n\n public *generator(): Generator<SearchSequence, SearchSequence, void> {\n for (let d = 0; ; d++) {\n yield* this.genSequence(d, []);\n }\n }\n\n public *genSequenceTree(\n canonstate: number[],\n ): Generator<SearchSequence, null, number> {\n const r = yield this.ss;\n if (r > 0) {\n return null;\n }\n for (let base = 0; base < this.canon.baseMoveCount; base++) {\n const newstate = this.nextState(base, canonstate);\n if (newstate) {\n newstate.push(base);\n for (let tw = 1; tw < this.canon.moveorder[base]; tw++) {\n this.ss.appendOneMove(new InternalMove(base, tw));\n yield* this.genSequenceTree(newstate);\n this.ss.popMove();\n }\n }\n }\n return null;\n }\n}\n", "// Generated by Peggy 1.1.0.\n//\n// https://peggyjs.org/\n\nfunction peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n}\n\nfunction peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n}\n\npeg$subclass(peg$SyntaxError, Error);\n\npeg$SyntaxError.buildMessage = function (expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function (expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n\n class: function (expectation) {\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n },\n\n any: function () {\n return \"any character\";\n },\n\n end: function () {\n return \"end of input\";\n },\n\n other: function (expectation) {\n return expectation.description;\n },\n };\n\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, '\\\\\"')\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) {\n return \"\\\\x0\" + hex(ch);\n })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) {\n return \"\\\\x0\" + hex(ch);\n })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n\n function describeExpected(expected) {\n var descriptions = expected.map(describeExpectation);\n var i, j;\n\n descriptions.sort();\n\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n\n default:\n return (\n descriptions.slice(0, -1).join(\", \") +\n \", or \" +\n descriptions[descriptions.length - 1]\n );\n }\n }\n\n function describeFound(found) {\n return found ? '\"' + literalEscape(found) + '\"' : \"end of input\";\n }\n\n return (\n \"Expected \" +\n describeExpected(expected) +\n \" but \" +\n describeFound(found) +\n \" found.\"\n );\n};\n\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n\n var peg$FAILED = {};\n\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n\n var peg$c0 = function (def) {\n return fixMoves(def);\n };\n var peg$c1 = /^[A-Za-z0-9<>]/;\n var peg$c2 = peg$classExpectation(\n [[\"A\", \"Z\"], [\"a\", \"z\"], [\"0\", \"9\"], \"<\", \">\"],\n false,\n false,\n );\n var peg$c3 = function (characters) {\n return characters.join(\"\");\n };\n var peg$c4 = /^[A-Za-z]/;\n var peg$c5 = peg$classExpectation(\n [\n [\"A\", \"Z\"],\n [\"a\", \"z\"],\n ],\n false,\n false,\n );\n var peg$c6 = /^[A-Za-z0-9]/;\n var peg$c7 = peg$classExpectation(\n [\n [\"A\", \"Z\"],\n [\"a\", \"z\"],\n [\"0\", \"9\"],\n ],\n false,\n false,\n );\n var peg$c8 = function (first, rest) {\n return [first].concat(rest).join(\"\");\n };\n var peg$c9 = /^[0-9]/;\n var peg$c10 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c11 = function (characters) {\n return parseInt(characters.join(\"\"), 10);\n };\n var peg$c12 = \" \";\n var peg$c13 = peg$literalExpectation(\" \", false);\n var peg$c14 = \"Name\";\n var peg$c15 = peg$literalExpectation(\"Name\", false);\n var peg$c16 = function (identifier) {\n return identifier;\n };\n var peg$c17 = \"Set\";\n var peg$c18 = peg$literalExpectation(\"Set\", false);\n var peg$c19 = function (set_identifier, num_pieces, num_orientations) {\n return [\n set_identifier,\n { numPieces: num_pieces, orientations: num_orientations },\n ];\n };\n var peg$c20 = function (orbit, orbits) {\n orbits[orbit[0]] = orbit[1];\n return orbits;\n };\n var peg$c21 = function (orbit) {\n const orbits = {};\n orbits[orbit[0]] = orbit[1];\n return orbits;\n };\n var peg$c22 = \"\\n\";\n var peg$c23 = peg$literalExpectation(\"\\n\", false);\n var peg$c24 = function (num, nums) {\n return [num].concat(nums);\n };\n var peg$c25 = function (num) {\n return [num];\n };\n var peg$c26 = function (nums) {\n return fixPermutation(nums);\n };\n var peg$c27 = function (set_identifier, permutation, nums) {\n return [set_identifier, { permutation: permutation, orientation: nums }];\n };\n var peg$c28 = function (set_identifier, permutation) {\n return [\n set_identifier,\n {\n permutation: permutation,\n orientation: new Array(permutation.length).fill(0),\n },\n ];\n };\n var peg$c29 = function (definition, definitions) {\n definitions[definition[0]] = definition[1];\n return definitions;\n };\n var peg$c30 = function (definition) {\n const definitions = {};\n definitions[definition[0]] = definition[1];\n return definitions;\n };\n var peg$c31 = \"Solved\";\n var peg$c32 = peg$literalExpectation(\"Solved\", false);\n var peg$c33 = \"End\";\n var peg$c34 = peg$literalExpectation(\"End\", false);\n var peg$c35 = function (definitions) {\n return definitions;\n };\n var peg$c36 = \"Move\";\n var peg$c37 = peg$literalExpectation(\"Move\", false);\n var peg$c38 = function (identifier, definitions) {\n return [identifier, definitions];\n };\n var peg$c39 = function (move, moves) {\n moves[move[0]] = move[1];\n return moves;\n };\n var peg$c40 = function (move) {\n const moves = {};\n moves[move[0]] = move[1];\n return moves;\n };\n var peg$c41 = function (name, orbits, start_pieces, moves) {\n return {\n name: name,\n orbits: orbits,\n moves: moves,\n startPieces: start_pieces,\n };\n };\n\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n\n var peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\n \"Can't start parsing from rule \\\"\" + options.startRule + '\".',\n );\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description, location) {\n location =\n location !== undefined\n ? location\n : peg$computeLocation(peg$savedPos, peg$currPos);\n\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location,\n );\n }\n\n function error(message, location) {\n location =\n location !== undefined\n ? location\n : peg$computeLocation(peg$savedPos, peg$currPos);\n\n throw peg$buildSimpleError(message, location);\n }\n\n function peg$literalExpectation(text, ignoreCase) {\n return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n }\n\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return {\n type: \"class\",\n parts: parts,\n inverted: inverted,\n ignoreCase: ignoreCase,\n };\n }\n\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column,\n };\n\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n } else {\n details.column++;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column,\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column,\n },\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildSimpleError(message, location) {\n return new peg$SyntaxError(message, null, null, location);\n }\n\n function peg$buildStructuredError(expected, found, location) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected, found),\n expected,\n found,\n location,\n );\n }\n\n function peg$parsestart() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parseDEFINITION_FILE();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseIDENTIFIER() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c1.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c2);\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c1.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c2);\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseSET_IDENTIFIER() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (peg$c4.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c5);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c6.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c6.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c8(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseNUMBER() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c9.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c10);\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c9.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c10);\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseSPACE() {\n var s0;\n\n if (input.charCodeAt(peg$currPos) === 32) {\n s0 = peg$c12;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n\n return s0;\n }\n\n function peg$parseNAME() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 4) === peg$c14) {\n s1 = peg$c14;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseSPACE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseIDENTIFIER();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseORBIT() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 3) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 3;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c18);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseSPACE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseSET_IDENTIFIER();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseSPACE();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseNUMBER();\n if (s5 !== peg$FAILED) {\n s6 = peg$parseSPACE();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseNUMBER();\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c19(s3, s5, s7);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseORBITS() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parseORBIT();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNEWLINE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseORBITS();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseORBIT();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseNEWLINE() {\n var s0;\n\n if (input.charCodeAt(peg$currPos) === 10) {\n s0 = peg$c22;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n\n return s0;\n }\n\n function peg$parseNEWLINES() {\n var s0, s1;\n\n s0 = [];\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c22;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c22;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseOPTIONAL_NEWLINES() {\n var s0, s1;\n\n s0 = [];\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c22;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c22;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n }\n\n return s0;\n }\n\n function peg$parseNUMBERS() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parseNUMBER();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseSPACE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseNUMBERS();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseNUMBER();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c25(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsePERMUTATION() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parseNUMBERS();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseDEFINITION() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parseSET_IDENTIFIER();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNEWLINE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsePERMUTATION();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseNEWLINE();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseNUMBERS();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c27(s1, s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseSET_IDENTIFIER();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNEWLINE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsePERMUTATION();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c28(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseDEFINITIONS() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parseDEFINITION();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNEWLINE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseDEFINITIONS();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c29(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseDEFINITION();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c30(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseSTART_PIECES() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c31) {\n s1 = peg$c31;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c32);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNEWLINE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseDEFINITIONS();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseNEWLINE();\n if (s4 !== peg$FAILED) {\n if (input.substr(peg$currPos, 3) === peg$c33) {\n s5 = peg$c33;\n peg$currPos += 3;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c34);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c35(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseMOVE() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 4) === peg$c36) {\n s1 = peg$c36;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseSPACE();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseIDENTIFIER();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseNEWLINE();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseDEFINITIONS();\n if (s5 !== peg$FAILED) {\n s6 = peg$parseNEWLINE();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 3) === peg$c33) {\n s7 = peg$c33;\n peg$currPos += 3;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c34);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c38(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseMOVES() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parseMOVE();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNEWLINES();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseMOVES();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseMOVE();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseDEFINITION_FILE() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parseNAME();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNEWLINES();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseORBITS();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseNEWLINES();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseSTART_PIECES();\n if (s5 !== peg$FAILED) {\n s6 = peg$parseNEWLINES();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseMOVES();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseOPTIONAL_NEWLINES();\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c41(s1, s3, s5, s7);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function fixPermutation(permutation) {\n return permutation.map((x) => x - 1);\n }\n\n function fixMoves(def) {\n for (const moveName in def.moves) {\n const move = def.moves[moveName];\n for (const orbitName in def.orbits) {\n const moveOrbit = move[orbitName];\n const oldOrientation = moveOrbit.orientation;\n const perm = moveOrbit.permutation;\n const newOrientation = new Array(oldOrientation.length);\n for (let i = 0; i < perm.length; i++) {\n newOrientation[i] = oldOrientation[perm[i]];\n }\n moveOrbit.orientation = newOrientation;\n }\n }\n return def;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos),\n );\n }\n}\n\nexport { peg$SyntaxError as SyntaxError, peg$parse as parse };\n", "// Note: this file exists so that `parse` doesn't show up for autocompletion (by\n// avoiding a `parser-pegjs.d.ts` file that exports `parse`.)\n\nimport type { KPuzzleDefinition } from \"../definition_types\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { parse } from \"./parser-peggy\";\n\nconst pegParseKPuzzleDefinition: (s: string) => KPuzzleDefinition = parse;\n\nexport { pegParseKPuzzleDefinition };\n", "import type {\n FaceletMeshAppearance,\n PuzzleAppearance,\n} from \"../puzzles/stickerings/appearance\"; // TODO\nimport type { KPuzzleDefinition, Transformation } from \"./definition_types\";\nimport type { KPuzzle } from \"./kpuzzle\";\n\nconst xmlns = \"http://www.w3.org/2000/svg\";\n\n// Unique ID mechanism to keep SVG gradient element IDs unique. TODO: Is there\n// something more performant, and that can't be broken by other elements of the\n// page? (And also doesn't break if this library is run in parallel.)\nlet svgCounter = 0;\nfunction nextSVGID(): string {\n svgCounter += 1;\n return \"svg\" + svgCounter.toString();\n}\n\n// TODO: This is hardcoded to 3x3x3 SVGs\nconst colorMaps: Partial<\n Record<FaceletMeshAppearance, Record<string, string>>\n> = {\n dim: {\n \"white\": \"#dddddd\",\n \"orange\": \"#884400\",\n \"limegreen\": \"#008800\",\n \"red\": \"#660000\",\n \"rgb(34, 102, 255)\": \"#000088\", // TODO\n \"yellow\": \"#888800\",\n },\n oriented: {\n \"white\": \"#ff88ff\",\n \"orange\": \"#ff88ff\",\n \"limegreen\": \"#ff88ff\",\n \"red\": \"#ff88ff\",\n \"rgb(34, 102, 255)\": \"#ff88ff\", // TODO\n \"yellow\": \"#ff88ff\",\n },\n ignored: {\n \"white\": \"#444444\",\n \"orange\": \"#444444\",\n \"limegreen\": \"#444444\",\n \"red\": \"#444444\",\n \"rgb(34, 102, 255)\": \"#444444\", // TODO\n \"yellow\": \"#444444\",\n },\n invisible: {\n \"white\": \"#00000000\",\n \"orange\": \"#00000000\",\n \"limegreen\": \"#00000000\",\n \"red\": \"#00000000\",\n \"rgb(34, 102, 255)\": \"#00000000\", // TODO\n \"yellow\": \"#00000000\",\n },\n};\n\nexport class KPuzzleSVGWrapper {\n public element: HTMLElement;\n public gradientDefs: SVGDefsElement;\n private originalColors: { [type: string]: string } = {};\n private gradients: { [type: string]: SVGGradientElement } = {};\n private svgID: string;\n constructor(\n public kPuzzleDefinition: KPuzzleDefinition,\n svgSource: string,\n experimentalAppearance?: PuzzleAppearance,\n ) {\n if (!svgSource) {\n throw new Error(\n `No SVG definition for puzzle type: ${kPuzzleDefinition.name}`,\n );\n }\n\n this.svgID = nextSVGID();\n\n this.element = document.createElement(\"div\");\n this.element.classList.add(\"svg-wrapper\");\n // TODO: Sanitization.\n this.element.innerHTML = svgSource;\n\n const svgElem = this.element.querySelector(\"svg\");\n if (!svgElem) {\n throw new Error(\"Could not get SVG element\");\n }\n if (xmlns !== svgElem.namespaceURI) {\n throw new Error(\"Unexpected XML namespace\");\n }\n svgElem.style.maxWidth = \"100%\";\n svgElem.style.maxHeight = \"100%\";\n this.gradientDefs = document.createElementNS(xmlns, \"defs\");\n svgElem.insertBefore(this.gradientDefs, svgElem.firstChild);\n\n for (const orbitName in kPuzzleDefinition.orbits) {\n const orbitDefinition = kPuzzleDefinition.orbits[orbitName];\n\n for (let idx = 0; idx < orbitDefinition.numPieces; idx++) {\n for (\n let orientation = 0;\n orientation < orbitDefinition.orientations;\n orientation++\n ) {\n const id = this.elementID(orbitName, idx, orientation);\n const elem = this.elementByID(id);\n let originalColor: string = elem.style.fill;\n /// TODO: Allow setting appearance dynamically.\n if (experimentalAppearance) {\n (() => {\n // TODO: dedup with Cube3D,,factor out fallback calculations\n const a = experimentalAppearance.orbits;\n if (!a) {\n return;\n }\n const orbitAppearance = a[orbitName];\n if (!orbitAppearance) {\n return;\n }\n const pieceAppearance = orbitAppearance.pieces[idx];\n if (!pieceAppearance) {\n return;\n }\n const faceletAppearance = pieceAppearance.facelets[orientation];\n if (!faceletAppearance) {\n return;\n }\n const appearance =\n typeof faceletAppearance === \"string\"\n ? faceletAppearance\n : faceletAppearance?.appearance;\n const colorMap = colorMaps[appearance];\n if (colorMap) {\n originalColor = colorMap[originalColor];\n }\n })();\n } else {\n originalColor = elem.style.fill;\n }\n this.originalColors[id] = originalColor;\n this.gradients[id] = this.newGradient(id, originalColor);\n this.gradientDefs.appendChild(this.gradients[id]);\n elem.setAttribute(\"style\", `fill: url(#grad-${this.svgID}-${id})`);\n }\n }\n }\n }\n\n public drawKPuzzle(\n kpuzzle: KPuzzle,\n nextState?: Transformation,\n fraction?: number,\n ): void {\n this.draw(kpuzzle.definition, kpuzzle.state, nextState, fraction);\n }\n\n // TODO: save definition in the constructor?\n public draw(\n definition: KPuzzleDefinition,\n state: Transformation,\n nextState?: Transformation,\n fraction?: number,\n ): void {\n for (const orbitName in definition.orbits) {\n const orbitDefinition = definition.orbits[orbitName];\n\n const curOrbitState = state[orbitName];\n const nextOrbitState = nextState ? nextState[orbitName] : null;\n for (let idx = 0; idx < orbitDefinition.numPieces; idx++) {\n for (\n let orientation = 0;\n orientation < orbitDefinition.orientations;\n orientation++\n ) {\n const id = this.elementID(orbitName, idx, orientation);\n const fromCur = this.elementID(\n orbitName,\n curOrbitState.permutation[idx],\n (orbitDefinition.orientations -\n curOrbitState.orientation[idx] +\n orientation) %\n orbitDefinition.orientations,\n );\n let singleColor = false;\n if (nextOrbitState) {\n const fromNext = this.elementID(\n orbitName,\n nextOrbitState.permutation[idx],\n (orbitDefinition.orientations -\n nextOrbitState.orientation[idx] +\n orientation) %\n orbitDefinition.orientations,\n );\n if (fromCur === fromNext) {\n singleColor = true; // TODO: Avoid redundant work during move.\n }\n fraction = fraction || 0; // TODO Use the type system to tie this to nextState?\n const easedBackwardsPercent =\n 100 * (1 - fraction * fraction * (2 - fraction * fraction)); // TODO: Move easing up the stack.\n this.gradients[id].children[0].setAttribute(\n \"stop-color\",\n this.originalColors[fromCur],\n );\n this.gradients[id].children[1].setAttribute(\n \"stop-color\",\n this.originalColors[fromCur],\n );\n this.gradients[id].children[1].setAttribute(\n \"offset\",\n `${Math.max(easedBackwardsPercent - 5, 0)}%`,\n );\n this.gradients[id].children[2].setAttribute(\n \"offset\",\n `${Math.max(easedBackwardsPercent - 5, 0)}%`,\n );\n this.gradients[id].children[3].setAttribute(\n \"offset\",\n `${easedBackwardsPercent}%`,\n );\n this.gradients[id].children[4].setAttribute(\n \"offset\",\n `${easedBackwardsPercent}%`,\n );\n this.gradients[id].children[4].setAttribute(\n \"stop-color\",\n this.originalColors[fromNext],\n );\n this.gradients[id].children[5].setAttribute(\n \"stop-color\",\n this.originalColors[fromNext],\n );\n } else {\n singleColor = true; // TODO: Avoid redundant work during move.\n }\n if (singleColor) {\n this.gradients[id].children[0].setAttribute(\n \"stop-color\",\n this.originalColors[fromCur],\n );\n this.gradients[id].children[1].setAttribute(\n \"stop-color\",\n this.originalColors[fromCur],\n );\n this.gradients[id].children[1].setAttribute(\"offset\", `100%`);\n this.gradients[id].children[2].setAttribute(\"offset\", `100%`);\n this.gradients[id].children[3].setAttribute(\"offset\", `100%`);\n this.gradients[id].children[4].setAttribute(\"offset\", `100%`);\n }\n // this.gradients[id]\n // this.elementByID(id).style.fill = this.originalColors[from];\n }\n }\n }\n }\n\n private newGradient(id: string, originalColor: string): SVGGradientElement {\n const grad = document.createElementNS(\n xmlns,\n \"radialGradient\",\n ) as SVGGradientElement;\n grad.setAttribute(\"id\", `grad-${this.svgID}-${id}`);\n grad.setAttribute(\"r\", `70.7107%`); // TODO: Adapt to puzzle.\n const stopDefs = [\n { offset: 0, color: originalColor },\n { offset: 0, color: originalColor },\n { offset: 0, color: \"black\" },\n { offset: 0, color: \"black\" },\n { offset: 0, color: originalColor },\n { offset: 100, color: originalColor },\n ];\n for (const stopDef of stopDefs) {\n const stop = document.createElementNS(xmlns, \"stop\");\n stop.setAttribute(\"offset\", `${stopDef.offset}%`);\n stop.setAttribute(\"stop-color\", stopDef.color);\n stop.setAttribute(\"stop-opacity\", \"1\");\n grad.appendChild(stop);\n }\n return grad;\n }\n\n private elementID(\n orbitName: string,\n idx: number,\n orientation: number,\n ): string {\n return orbitName + \"-l\" + idx + \"-o\" + orientation;\n }\n\n private elementByID(id: string): HTMLElement {\n // TODO: Use classes and scope selector to SVG element.\n return this.element.querySelector(\"#\" + id) as HTMLElement;\n }\n}\n", "// TODO: This file is here to avoid dependency loops, but it should eventually\n// move back into `cubing/puzzles`. We currently have a few functions that are\n// hardcoded to require synchronous access to this definition, and we need to\n// find a better way to do that.\n\n// TODO: this would be a raw `.json` file, but Parcel runs into an error from\n\nimport type { KPuzzleDefinition } from \"..\";\n\n// using that as both a sync and async import. Probably https://github.com/parcel-bundler/parcel/issues/2546\nexport const cube3x3x3KPuzzle: KPuzzleDefinition = {\n name: \"3x3x3\",\n orbits: {\n EDGES: { numPieces: 12, orientations: 2 },\n CORNERS: { numPieces: 8, orientations: 3 },\n CENTERS: { numPieces: 6, orientations: 4 },\n },\n startPieces: {\n EDGES: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 0, 0, 0, 0],\n },\n },\n moves: {\n U: {\n EDGES: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [1, 0, 0, 0, 0, 0],\n },\n },\n y: {\n EDGES: {\n permutation: [1, 2, 3, 0, 5, 6, 7, 4, 10, 8, 11, 9],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [1, 2, 3, 0, 7, 4, 5, 6],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 2, 3, 4, 1, 5],\n orientation: [1, 0, 0, 0, 0, 3],\n },\n },\n x: {\n EDGES: {\n permutation: [4, 8, 0, 9, 6, 10, 2, 11, 5, 7, 1, 3],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [4, 0, 3, 5, 7, 6, 2, 1],\n orientation: [2, 1, 2, 1, 1, 2, 1, 2],\n },\n CENTERS: {\n permutation: [2, 1, 5, 3, 0, 4],\n orientation: [0, 3, 0, 1, 2, 2],\n },\n },\n L: {\n EDGES: {\n permutation: [0, 1, 2, 11, 4, 5, 6, 9, 8, 3, 10, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 6, 2, 4, 3, 5, 7],\n orientation: [0, 0, 2, 1, 0, 2, 1, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 1, 0, 0, 0, 0],\n },\n },\n F: {\n EDGES: {\n permutation: [9, 1, 2, 3, 8, 5, 6, 7, 0, 4, 10, 11],\n orientation: [1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0],\n },\n CORNERS: {\n permutation: [3, 1, 2, 5, 0, 4, 6, 7],\n orientation: [1, 0, 0, 2, 2, 1, 0, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 1, 0, 0, 0],\n },\n },\n R: {\n EDGES: {\n permutation: [0, 8, 2, 3, 4, 10, 6, 7, 5, 9, 1, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [4, 0, 2, 3, 7, 5, 6, 1],\n orientation: [2, 1, 0, 0, 1, 0, 0, 2],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 0, 1, 0, 0],\n },\n },\n B: {\n EDGES: {\n permutation: [0, 1, 10, 3, 4, 5, 11, 7, 8, 9, 6, 2],\n orientation: [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1],\n },\n CORNERS: {\n permutation: [0, 7, 1, 3, 4, 5, 2, 6],\n orientation: [0, 2, 1, 0, 0, 0, 2, 1],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 0, 0, 1, 0],\n },\n },\n D: {\n EDGES: {\n permutation: [0, 1, 2, 3, 7, 4, 5, 6, 8, 9, 10, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 5, 6, 7, 4],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 0, 0, 0, 1],\n },\n },\n z: {\n EDGES: {\n permutation: [9, 3, 11, 7, 8, 1, 10, 5, 0, 4, 2, 6],\n orientation: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [3, 2, 6, 5, 0, 4, 7, 1],\n orientation: [1, 2, 1, 2, 2, 1, 2, 1],\n },\n CENTERS: {\n permutation: [1, 5, 2, 0, 4, 3],\n orientation: [1, 1, 1, 1, 3, 1],\n },\n },\n M: {\n EDGES: {\n permutation: [2, 1, 6, 3, 0, 5, 4, 7, 8, 9, 10, 11],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [4, 1, 0, 3, 5, 2],\n orientation: [2, 0, 0, 0, 2, 0],\n },\n },\n E: {\n EDGES: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 8, 10],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 4, 1, 2, 3, 5],\n orientation: [0, 0, 0, 0, 0, 0],\n },\n },\n S: {\n EDGES: {\n permutation: [0, 3, 2, 7, 4, 1, 6, 5, 8, 9, 10, 11],\n orientation: [0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [1, 5, 2, 0, 4, 3],\n orientation: [1, 1, 0, 1, 0, 1],\n },\n },\n u: {\n EDGES: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7, 10, 8, 11, 9],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 2, 3, 4, 1, 5],\n orientation: [1, 0, 0, 0, 0, 0],\n },\n },\n l: {\n EDGES: {\n permutation: [2, 1, 6, 11, 0, 5, 4, 9, 8, 3, 10, 7],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 6, 2, 4, 3, 5, 7],\n orientation: [0, 0, 2, 1, 0, 2, 1, 0],\n },\n CENTERS: {\n permutation: [4, 1, 0, 3, 5, 2],\n orientation: [2, 1, 0, 0, 2, 0],\n },\n },\n f: {\n EDGES: {\n permutation: [9, 3, 2, 7, 8, 1, 6, 5, 0, 4, 10, 11],\n orientation: [1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0],\n },\n CORNERS: {\n permutation: [3, 1, 2, 5, 0, 4, 6, 7],\n orientation: [1, 0, 0, 2, 2, 1, 0, 0],\n },\n CENTERS: {\n permutation: [1, 5, 2, 0, 4, 3],\n orientation: [1, 1, 1, 1, 0, 1],\n },\n },\n r: {\n EDGES: {\n permutation: [4, 8, 0, 3, 6, 10, 2, 7, 5, 9, 1, 11],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [4, 0, 2, 3, 7, 5, 6, 1],\n orientation: [2, 1, 0, 0, 1, 0, 0, 2],\n },\n CENTERS: {\n permutation: [2, 1, 5, 3, 0, 4],\n orientation: [0, 0, 0, 1, 2, 2],\n },\n },\n b: {\n EDGES: {\n permutation: [0, 5, 10, 1, 4, 7, 11, 3, 8, 9, 6, 2],\n orientation: [0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1],\n },\n CORNERS: {\n permutation: [0, 7, 1, 3, 4, 5, 2, 6],\n orientation: [0, 2, 1, 0, 0, 0, 2, 1],\n },\n CENTERS: {\n permutation: [3, 0, 2, 5, 4, 1],\n orientation: [3, 3, 0, 3, 1, 3],\n },\n },\n d: {\n EDGES: {\n permutation: [0, 1, 2, 3, 7, 4, 5, 6, 9, 11, 8, 10],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 5, 6, 7, 4],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 4, 1, 2, 3, 5],\n orientation: [0, 0, 0, 0, 0, 1],\n },\n },\n },\n};\n\ncube3x3x3KPuzzle.moves[\"Uw\"] = cube3x3x3KPuzzle.moves[\"u\"];\ncube3x3x3KPuzzle.moves[\"Lw\"] = cube3x3x3KPuzzle.moves[\"l\"];\ncube3x3x3KPuzzle.moves[\"Fw\"] = cube3x3x3KPuzzle.moves[\"f\"];\ncube3x3x3KPuzzle.moves[\"Rw\"] = cube3x3x3KPuzzle.moves[\"r\"];\ncube3x3x3KPuzzle.moves[\"Bw\"] = cube3x3x3KPuzzle.moves[\"b\"];\ncube3x3x3KPuzzle.moves[\"Dw\"] = cube3x3x3KPuzzle.moves[\"d\"];\n\ncube3x3x3KPuzzle.moves[\"Rv\"] = cube3x3x3KPuzzle.moves[\"x\"];\ncube3x3x3KPuzzle.moves[\"Uv\"] = cube3x3x3KPuzzle.moves[\"y\"];\ncube3x3x3KPuzzle.moves[\"Fv\"] = cube3x3x3KPuzzle.moves[\"z\"];\ncube3x3x3KPuzzle.moves[\"Lv\"] = {\n EDGES: {\n permutation: [2, 10, 6, 11, 0, 8, 4, 9, 1, 3, 5, 7],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [1, 7, 6, 2, 0, 3, 5, 4],\n orientation: [2, 1, 2, 1, 1, 2, 1, 2],\n },\n CENTERS: {\n permutation: [4, 1, 0, 3, 5, 2],\n orientation: [2, 1, 0, 3, 2, 0],\n },\n};\ncube3x3x3KPuzzle.moves[\"Dv\"] = {\n EDGES: {\n permutation: [3, 0, 1, 2, 7, 4, 5, 6, 9, 11, 8, 10],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [3, 0, 1, 2, 5, 6, 7, 4],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 4, 1, 2, 3, 5],\n orientation: [3, 0, 0, 0, 0, 1],\n },\n};\ncube3x3x3KPuzzle.moves[\"Bv\"] = {\n EDGES: {\n permutation: [8, 5, 10, 1, 9, 7, 11, 3, 4, 0, 6, 2],\n orientation: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [4, 7, 1, 0, 5, 3, 2, 6],\n orientation: [1, 2, 1, 2, 2, 1, 2, 1],\n },\n CENTERS: {\n permutation: [3, 0, 2, 5, 4, 1],\n orientation: [3, 3, 3, 3, 1, 3],\n },\n};\n", "import { experimentalNormalizePuzzleOrientation as normalize3x3x3Orientation } from \"../protocol\";\nimport type { Transformation } from \"./definition_types\";\nimport { cube3x3x3KPuzzle as def } from \"./3x3x3/3x3x3.kpuzzle.json\";\nimport {\n areOrbitTransformationsEquivalent,\n areTransformationsEquivalent,\n} from \"./transformations\";\n\n// The `options` argument is required for now, because we haven't yet come up\n// with a general way to specify different kinds of solved for the same puzle.\nexport function experimentalIs3x3x3Solved(\n transformation: Transformation,\n options: { ignoreCenterOrientation: boolean },\n): boolean {\n const normalized = normalize3x3x3Orientation(transformation);\n if (options.ignoreCenterOrientation) {\n return (\n areOrbitTransformationsEquivalent(\n def,\n \"EDGES\",\n normalized,\n def.startPieces,\n ) &&\n areOrbitTransformationsEquivalent(\n def,\n \"CORNERS\",\n normalized,\n def.startPieces,\n )\n );\n } else {\n return areTransformationsEquivalent(def, normalized, def.startPieces);\n }\n}\n", "import { Alg } from \"../../alg\";\nimport {\n combineTransformations,\n invertTransformation,\n KPuzzle,\n Transformation,\n} from \"../../kpuzzle\";\n// TODO: Should we expose this directly in the `puzzles` package for sync uses?\nimport { experimentalCube3x3x3KPuzzle as def } from \"../../kpuzzle\";\n\nexport function puzzleOrientationIdx(state: Transformation): [number, number] {\n const idxU = state[\"CENTERS\"].permutation[0];\n const idxD = state[\"CENTERS\"].permutation[5];\n const unadjustedIdxL = state[\"CENTERS\"].permutation[1];\n let idxL = unadjustedIdxL;\n if (idxU < unadjustedIdxL) {\n idxL--;\n }\n if (idxD < unadjustedIdxL) {\n idxL--;\n }\n return [idxU, idxL];\n}\n\nconst puzzleOrientationCache: Transformation[][] = new Array(6)\n .fill(0)\n .map(() => {\n return new Array<Transformation>(6);\n });\n\n// We use a new block to avoid keeping a reference to temporary vars.\n{\n const orientationKpuzzle = new KPuzzle(def);\n const uAlgs: Alg[] = [\"\", \"z\", \"x\", \"z'\", \"x'\", \"x2\"].map((s) =>\n Alg.fromString(s),\n );\n const yAlg = new Alg(\"y\");\n for (const uAlg of uAlgs) {\n orientationKpuzzle.reset();\n orientationKpuzzle.applyAlg(uAlg);\n for (let i = 0; i < 4; i++) {\n orientationKpuzzle.applyAlg(yAlg);\n const [idxU, idxL] = puzzleOrientationIdx(orientationKpuzzle.state);\n puzzleOrientationCache[idxU][idxL] = invertTransformation(\n def,\n orientationKpuzzle.state,\n );\n }\n }\n}\n\nexport function normalizePuzzleOrientation(s: Transformation): Transformation {\n const [idxU, idxL] = puzzleOrientationIdx(s);\n const orientationTransformation = puzzleOrientationCache[idxU][idxL];\n return combineTransformations(def, s, orientationTransformation);\n}\n\n// TODO: combine with `orientPuzzle`?\nexport function reorientPuzzle(\n s: Transformation,\n idxU: number,\n idxL: number,\n): Transformation {\n const orientationTransformation = invertTransformation(\n def,\n puzzleOrientationCache[idxU][idxL],\n );\n return combineTransformations(def, s, orientationTransformation);\n}\n", "import type { Transformation } from \"../../kpuzzle\";\nimport {\n identityPermutation,\n lexToPermutation,\n maskToOrientations,\n orientationsToMask,\n permutationToLex,\n} from \"./orbit-indexing\";\nimport {\n normalizePuzzleOrientation,\n puzzleOrientationIdx,\n reorientPuzzle,\n} from \"./puzzle-orientation\";\n\ntype Binary3x3x3State = ArrayBuffer;\n\n// Bit lengths of the encoded components, in order.\nconst BIT_LENGTHS = [29, 12, 16, 13, 3, 2, 1, 12];\n\n// These fields are sorted by the order in which they appear in the binary format.\nexport interface Binary3x3x3Components {\n epLex: number; // 29 bits, edge permutation\n eoMask: number; // 12 bits, edge orientation\n cpLex: number; // 16 bits, corner permutation\n coMask: number; // 13 bits, corner orientation\n poIdxU: number; // 3 bits, puzzle orientation (U face)\n poIdxL: number; // 2 bits, puzzle orientation (L face)\n moSupport: number; // 1 bit, center orientation support\n moMask: number; // 12 bits, center orientation\n}\n\n// There are various clever ways to do this, but this is simple and efficient.\nfunction arraySum(arr: number[]): number {\n let total = 0;\n for (const entry of arr) {\n total += entry;\n }\n return total;\n}\n\n// Due to limitations in JS bit operations, this is unsafe if any of the bit lengths span across the contents of more than 4 bytes.\n// - Safe: [8, 32]\n// - Unsafe: [4, 32, 4]\n// - Unsafe: [40, 4]\nfunction splitBinary(bitLengths: number[], buffy: ArrayBuffer): number[] {\n const u8buffy = new Uint8Array(buffy);\n let at = 0;\n let bits = 0;\n let accum = 0;\n const values: number[] = [];\n for (const bitLength of bitLengths) {\n while (bits < bitLength) {\n accum = (accum << 8) | u8buffy[at++];\n bits += 8;\n }\n values.push((accum >> (bits - bitLength)) & ((1 << bitLength) - 1));\n bits -= bitLength;\n }\n return values;\n}\n\n// See above for safety notes.\nfunction concatBinary(bitLengths: number[], values: number[]): ArrayBuffer {\n const buffy = new Uint8Array(Math.ceil(arraySum(bitLengths) / 8));\n let at = 0;\n let bits = 0;\n let accum = 0;\n for (let i = 0; i < bitLengths.length; i++) {\n accum = (accum << bitLengths[i]) | values[i];\n bits += bitLengths[i];\n while (bits >= 8) {\n buffy[at++] = accum >> (bits - 8);\n bits -= 8;\n }\n }\n if (bits > 0) {\n buffy[at++] = accum << (8 - bits);\n }\n return buffy;\n}\n\n// 0x111 (for idxU) means \"not supported\"\nfunction supportsPuzzleOrientation(components: Binary3x3x3Components): boolean {\n return components.poIdxU !== 7;\n}\n\nexport function reid3x3x3ToBinaryComponents(\n state: Transformation,\n): Binary3x3x3Components {\n const normedState = normalizePuzzleOrientation(state);\n\n const epLex = permutationToLex(normedState[\"EDGES\"].permutation);\n const eoMask = orientationsToMask(2, normedState[\"EDGES\"].orientation);\n const cpLex = permutationToLex(normedState[\"CORNERS\"].permutation);\n const coMask = orientationsToMask(3, normedState[\"CORNERS\"].orientation);\n const [poIdxU, poIdxL] = puzzleOrientationIdx(state);\n const moSupport = 1; // Required for now.\n const moMask = orientationsToMask(4, normedState[\"CENTERS\"].orientation);\n\n return {\n epLex,\n eoMask,\n cpLex,\n coMask,\n poIdxU,\n poIdxL,\n moSupport,\n moMask,\n };\n}\n\nexport function binaryComponentsToTwizzleBinary(\n components: Binary3x3x3Components,\n): Binary3x3x3State {\n const { epLex, eoMask, cpLex, coMask, poIdxU, poIdxL, moSupport, moMask } =\n components;\n\n return concatBinary(BIT_LENGTHS, [\n epLex,\n eoMask,\n cpLex,\n coMask,\n poIdxU,\n poIdxL,\n moSupport,\n moMask,\n ]);\n}\n\nexport function reid3x3x3ToTwizzleBinary(\n state: Transformation,\n): Binary3x3x3State {\n const components: Binary3x3x3Components = reid3x3x3ToBinaryComponents(state);\n return binaryComponentsToTwizzleBinary(components);\n}\n\nexport function twizzleBinaryToBinaryComponents(\n buffer: ArrayBuffer,\n): Binary3x3x3Components {\n const [epLex, eoMask, cpLex, coMask, poIdxU, poIdxL, moSupport, moMask] =\n splitBinary(BIT_LENGTHS, buffer);\n\n return {\n epLex,\n eoMask,\n cpLex,\n coMask,\n poIdxU,\n poIdxL,\n moSupport,\n moMask,\n };\n}\n\nexport function binaryComponentsToReid3x3x3(\n components: Binary3x3x3Components,\n): Transformation {\n if (components.moSupport !== 1) {\n throw new Error(\"Must support center orientation.\");\n }\n\n const normedState = {\n EDGES: {\n permutation: lexToPermutation(12, components.epLex),\n orientation: maskToOrientations(2, 12, components.eoMask),\n },\n CORNERS: {\n permutation: lexToPermutation(8, components.cpLex),\n orientation: maskToOrientations(3, 8, components.coMask),\n },\n CENTERS: {\n permutation: identityPermutation(6),\n orientation: maskToOrientations(4, 6, components.moMask),\n },\n };\n\n if (!supportsPuzzleOrientation(components)) {\n return normedState;\n }\n\n return reorientPuzzle(normedState, components.poIdxU, components.poIdxL);\n}\n\n// Returns a list of error string.\n// An empty list means validation success.\nfunction validateComponents(components: Binary3x3x3Components): string[] {\n const errors = [];\n if (components.epLex < 0 || components.epLex >= 479001600) {\n errors.push(`epLex (${components.epLex}) out of range`);\n }\n if (components.cpLex < 0 || components.cpLex >= 40320) {\n errors.push(`cpLex (${components.cpLex}) out of range`);\n }\n if (components.coMask < 0 || components.coMask >= 6561) {\n errors.push(`coMask (${components.coMask}) out of range`);\n }\n if (components.poIdxU < 0 || components.poIdxU >= 6) {\n // 0x111 (for idxU) means \"not supported\"\n if (supportsPuzzleOrientation(components)) {\n errors.push(`poIdxU (${components.poIdxU}) out of range`);\n }\n }\n // The following cannot be (f decoded from binary properl) out of rangey.\n if (components.eoMask < 0 || components.eoMask >= 4096) {\n errors.push(`eoMask (${components.eoMask}) out of range`);\n }\n if (components.moMask < 0 || components.moMask >= 4096) {\n errors.push(`moMask (${components.moMask}) out of range`);\n }\n if (components.poIdxL < 0 || components.poIdxL >= 4) {\n errors.push(`poIdxL (${components.poIdxL}) out of range`);\n }\n if (components.moSupport < 0 || components.moSupport >= 2) {\n errors.push(`moSupport (${components.moSupport}) out of range`);\n }\n return errors;\n}\n\nexport function twizzleBinaryToReid3x3x3(buffy: ArrayBuffer): Transformation {\n const components = twizzleBinaryToBinaryComponents(buffy);\n const errors = validateComponents(components);\n if (errors.length !== 0) {\n throw new Error(`Invalid binary state components: ${errors.join(\", \")}`);\n }\n return binaryComponentsToReid3x3x3(components);\n}\n", "export function bufferToSpacedHex(buffer: ArrayBuffer): string {\n // buffer is an ArrayBuffer\n return (\n Array.prototype.map.call(new Uint8Array(buffer), (x: number) =>\n (\"00\" + x.toString(16)).slice(-2),\n ) as string[]\n ).join(\" \");\n}\n\nexport function spacedHexToBuffer(hex: string): Uint8Array {\n return new Uint8Array(hex.split(\" \").map((c) => parseInt(c, 16)));\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/cubing/puzzles/implementations/clock/clock.kpuzzle.json.ts"],
4
- "sourcesContent": ["import type { KPuzzleDefinition } from \"../../../kpuzzle\";\n\nexport const clockKPuzzle: KPuzzleDefinition = {\n name: \"Clock\",\n orbits: {\n DIALS: { numPieces: 18, orientations: 12 },\n FACES: { numPieces: 18, orientations: 1 },\n FRAME: { numPieces: 1, orientations: 2 },\n },\n startPieces: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n moves: {\n UR_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 1, 1, 0, 1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n DR_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n DL_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n UL_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n U_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n R_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 1, 1, 0, 1, 1, 0, 1, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n D_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n L_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n ALL_PLUS_: {\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, -1, 0, 0, 0, -1, 0, -1],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n y2: {\n DIALS: {\n permutation: [\n 9, 10, 11, 12, 13, 14, 15, 16, 17, 0, 1, 2, 3, 4, 5, 6, 7, 8,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 9, 10, 11, 12, 13, 14, 15, 16, 17, 0, 1, 2, 3, 4, 5, 6, 7, 8,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [1] },\n },\n UL: {\n // TODO: define \"pin up\" as something other than a normal move.\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n UR: {\n // TODO: define \"pin up\" as something other than a normal move.\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n DL: {\n // TODO: define \"pin up\" as something other than a normal move.\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n DR: {\n // TODO: define \"pin up\" as something other than a normal move.\n DIALS: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FACES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n ],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n FRAME: { permutation: [0], orientation: [0] },\n },\n },\n};\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- export * from "../types";
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/cubing/search/vendor/comlink-everywhere/outside/node.js"],
4
- "sourcesContent": ["async function getImports() {\n return {\n NodeWorker: (await import(\"worker_threads\")).Worker,\n nodeEndpoint: (await import(\"comlink/dist/esm/node-adapter.mjs\")).default,\n };\n}\n\nfunction construct(imports, url, nodeOptions) {\n const worker = new imports.NodeWorker(url, nodeOptions);\n // Avoid holding up the entire program exit if only workers are running.\n // https://nodejs.org/api/worker_threads.html#worker_threads_broadcastchannel_unref\n worker.unref();\n const wrappedWorker = imports.nodeEndpoint(worker);\n return wrappedWorker;\n}\n\nlet cachedNodeWorkerWrapper = null;\nexport async function NodeWorkerWrapper() {\n const imports = await getImports();\n return (\n cachedNodeWorkerWrapper ||\n (cachedNodeWorkerWrapper = class {\n constructor(url, _options) {\n return construct(imports, url);\n }\n })\n );\n}\n\nlet cachedNodeWorkerStringWrapper = null;\nexport async function NodeWorkerStringWrapper() {\n const imports = await getImports();\n return (\n cachedNodeWorkerStringWrapper ||\n (cachedNodeWorkerStringWrapper = class {\n constructor(url, _options) {\n return construct(imports, url, { eval: true });\n }\n })\n );\n}\n"],
5
- "mappings": ";;;AAAA,4BAA4B;AAC1B,SAAO;AAAA,IACL,YAAa,OAAM,OAAO,mBAAmB;AAAA,IAC7C,cAAe,OAAM,OAAO,sCAAsC;AAAA;AAAA;AAItE,mBAAmB,SAAS,KAAK,aAAa;AAC5C,QAAM,SAAS,IAAI,QAAQ,WAAW,KAAK;AAG3C,SAAO;AACP,QAAM,gBAAgB,QAAQ,aAAa;AAC3C,SAAO;AAAA;AAGT,IAAI,0BAA0B;AAC9B,mCAA0C;AACxC,QAAM,UAAU,MAAM;AACtB,SACE,2BACC,2BAA0B,MAAM;AAAA,IAC/B,YAAY,KAAK,UAAU;AACzB,aAAO,UAAU,SAAS;AAAA;AAAA;AAAA;AAMlC,IAAI,gCAAgC;AACpC,yCAAgD;AAC9C,QAAM,UAAU,MAAM;AACtB,SACE,iCACC,iCAAgC,MAAM;AAAA,IACrC,YAAY,KAAK,UAAU;AACzB,aAAO,UAAU,SAAS,KAAK,EAAE,MAAM;AAAA;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/cubing/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.ts"],
4
- "sourcesContent": ["import type { KPuzzleDefinition } from \"../../../kpuzzle\";\n\nexport const sq1HyperOrbitKPuzzle: KPuzzleDefinition = {\n name: \"Square-1\",\n orbits: {\n WEDGES: { numPieces: 24, orientations: 9 },\n EQUATOR: { numPieces: 2, orientations: 6 },\n },\n startPieces: {\n WEDGES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23,\n ],\n orientation: [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ],\n },\n EQUATOR: { permutation: [0, 1], orientation: [0, 0] },\n },\n moves: {\n U_SQ_: {\n WEDGES: {\n permutation: [\n 11, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23,\n ],\n orientation: [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0,\n ],\n },\n EQUATOR: { permutation: [0, 1], orientation: [0, 0] },\n },\n D_SQ_: {\n WEDGES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23, 12, 13, 14, 15, 16, 17, 18,\n 19, 20, 21, 22,\n ],\n orientation: [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0,\n ],\n },\n EQUATOR: { permutation: [0, 1], orientation: [0, 0] },\n },\n _SLASH_: {\n WEDGES: {\n permutation: [\n 0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 6, 7, 8, 9, 10, 11, 18, 19,\n 20, 21, 22, 23,\n ],\n orientation: [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0,\n ],\n },\n EQUATOR: { permutation: [0, 1], orientation: [0, 3] },\n },\n },\n};\n"],
5
- "mappings": "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",
6
- "names": []
7
- }