cubing 0.34.5 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1011) hide show
  1. package/dist/esm/alg/index.js +1 -1
  2. package/dist/esm/bluetooth/index.js +6 -6
  3. package/dist/esm/bluetooth/index.js.map +3 -3
  4. package/dist/esm/{chunk-XNFY5XVP.js → chunk-6SLFKBHE.js} +8 -12
  5. package/dist/esm/chunk-6SLFKBHE.js.map +7 -0
  6. package/dist/esm/{chunk-P7STLPTG.js → chunk-DR2VL2TJ.js} +3 -3
  7. package/dist/esm/{chunk-P7STLPTG.js.map → chunk-DR2VL2TJ.js.map} +0 -0
  8. package/dist/esm/{chunk-KJUHIZ2G.js → chunk-EV25IJFC.js} +2 -2
  9. package/dist/esm/{chunk-KJUHIZ2G.js.map → chunk-EV25IJFC.js.map} +1 -1
  10. package/dist/esm/{chunk-SXI3BVQT.js → chunk-IBO5KL3F.js} +4 -4
  11. package/dist/esm/chunk-IBO5KL3F.js.map +7 -0
  12. package/dist/esm/{chunk-P6GSDAYY.js → chunk-IN66QSRW.js} +2 -2
  13. package/dist/esm/{chunk-P6GSDAYY.js.map → chunk-IN66QSRW.js.map} +0 -0
  14. package/dist/esm/{chunk-JXIKYWF4.js → chunk-KHUSW5UE.js} +16 -16
  15. package/dist/esm/chunk-KHUSW5UE.js.map +7 -0
  16. package/dist/esm/{chunk-HBJNS3VF.js → chunk-KLI2E737.js} +2 -2
  17. package/dist/esm/{chunk-HBJNS3VF.js.map → chunk-KLI2E737.js.map} +0 -0
  18. package/dist/esm/{chunk-YUBK6NHL.js → chunk-NB7Q5BQU.js} +18 -17
  19. package/dist/esm/chunk-NB7Q5BQU.js.map +7 -0
  20. package/dist/esm/{chunk-WN53PIUG.js → chunk-UETKZMZ2.js} +6 -6
  21. package/dist/esm/{chunk-WN53PIUG.js.map → chunk-UETKZMZ2.js.map} +1 -1
  22. package/dist/esm/{chunk-STXBFKP7.js → chunk-UMKR43AG.js} +2 -2
  23. package/dist/esm/{chunk-STXBFKP7.js.map → chunk-UMKR43AG.js.map} +0 -0
  24. package/dist/esm/{chunk-RMIAXF22.js → chunk-VHWWAFLV.js} +42 -9
  25. package/dist/esm/chunk-VHWWAFLV.js.map +7 -0
  26. package/dist/esm/{chunk-ELZ5WICP.js → chunk-VZP3KFTU.js} +6 -6
  27. package/dist/esm/chunk-VZP3KFTU.js.map +7 -0
  28. package/dist/esm/{chunk-DFZ2CYSE.js → chunk-Z6WT2ASL.js} +4 -7
  29. package/dist/esm/{chunk-DFZ2CYSE.js.map → chunk-Z6WT2ASL.js.map} +2 -2
  30. package/dist/esm/kpuzzle/index.js +2 -2
  31. package/dist/esm/notation/index.js +2 -2
  32. package/dist/esm/protocol/index.js +4 -4
  33. package/dist/esm/puzzle-geometry/index.js +1 -1
  34. package/dist/esm/puzzle-geometry/index.js.map +1 -1
  35. package/dist/esm/puzzles/index.js +4 -4
  36. package/dist/esm/{puzzles-dynamic-side-events-T2YVO2CD.js → puzzles-dynamic-side-events-D2VNVUXH.js} +62 -60
  37. package/dist/esm/puzzles-dynamic-side-events-D2VNVUXH.js.map +7 -0
  38. package/dist/esm/scramble/index.js +9 -9
  39. package/dist/esm/search/index.js +9 -9
  40. package/dist/esm/{search-dynamic-sgs-side-events-RBT77KLU.js → search-dynamic-sgs-side-events-6N5XFNFV.js} +6 -6
  41. package/dist/esm/{search-dynamic-sgs-side-events-RBT77KLU.js.map → search-dynamic-sgs-side-events-6N5XFNFV.js.map} +0 -0
  42. package/dist/esm/{search-dynamic-sgs-unofficial-XVCNTLBX.js → search-dynamic-sgs-unofficial-KUQPD44L.js} +7 -7
  43. package/dist/esm/{search-dynamic-sgs-unofficial-XVCNTLBX.js.map → search-dynamic-sgs-unofficial-KUQPD44L.js.map} +2 -2
  44. package/dist/esm/{search-dynamic-solve-3x3x3-QAWYKBYP.js → search-dynamic-solve-3x3x3-VY7R3CDP.js} +2 -2
  45. package/dist/esm/{search-dynamic-solve-3x3x3-QAWYKBYP.js.map → search-dynamic-solve-3x3x3-VY7R3CDP.js.map} +2 -2
  46. package/dist/esm/{search-dynamic-solve-4x4x4-6D3X6JPU.js → search-dynamic-solve-4x4x4-YFSKEFQT.js} +8 -8
  47. package/dist/esm/search-dynamic-solve-4x4x4-YFSKEFQT.js.map +7 -0
  48. package/dist/esm/{search-dynamic-solve-fto-L5CX2BTQ.js → search-dynamic-solve-fto-JJ32OJVM.js} +2 -2
  49. package/dist/esm/{search-dynamic-solve-fto-L5CX2BTQ.js.map → search-dynamic-solve-fto-JJ32OJVM.js.map} +1 -1
  50. package/dist/esm/{search-dynamic-solve-kilominx-ACTR53H2.js → search-dynamic-solve-kilominx-5GTXKEAX.js} +3 -3
  51. package/dist/esm/search-dynamic-solve-kilominx-5GTXKEAX.js.map +7 -0
  52. package/dist/esm/{search-dynamic-solve-master_tetraminx-4R5R7LC5.js → search-dynamic-solve-master_tetraminx-UF5FKJW6.js} +2 -2
  53. package/dist/esm/{search-dynamic-solve-master_tetraminx-4R5R7LC5.js.map → search-dynamic-solve-master_tetraminx-UF5FKJW6.js.map} +1 -1
  54. package/dist/esm/{search-dynamic-solve-sq1-CBPKRTVA.js → search-dynamic-solve-sq1-S6V3FTO2.js} +2 -2
  55. package/dist/esm/{search-dynamic-solve-sq1-CBPKRTVA.js.map → search-dynamic-solve-sq1-S6V3FTO2.js.map} +1 -1
  56. package/dist/esm/search-worker-inside-generated-string-QNTWOW3E.js +4110 -0
  57. package/dist/esm/search-worker-inside-generated-string-QNTWOW3E.js.map +7 -0
  58. package/dist/esm/search-worker-js-entry-EM5PNXKC.js +17 -0
  59. package/dist/esm/search-worker-js-entry-EM5PNXKC.js.map +7 -0
  60. package/dist/esm/{search-worker-ts-entry-JODGBUUR.js → search-worker-ts-entry-WJXJ5FQI.js} +4 -4
  61. package/dist/esm/search-worker-ts-entry-WJXJ5FQI.js.map +7 -0
  62. package/dist/esm/stream/index.js +1 -1
  63. package/dist/esm/twisty/index.js +58 -24
  64. package/dist/esm/twisty/index.js.map +2 -2
  65. package/dist/esm/{twisty-dynamic-3d-ANH7V4CU.js → twisty-dynamic-3d-26UAWO4J.js} +6 -6
  66. package/dist/esm/{twisty-dynamic-3d-ANH7V4CU.js.map → twisty-dynamic-3d-26UAWO4J.js.map} +1 -1
  67. package/dist/esm/{twsearch-T6KOUE6W.js → twsearch-H72D4ZDN.js} +6 -5
  68. package/dist/esm/twsearch-H72D4ZDN.js.map +7 -0
  69. package/dist/esm/twsearch-VUC3P72V-BNSTYRDR.js +3155 -0
  70. package/dist/esm/twsearch-VUC3P72V-BNSTYRDR.js.map +7 -0
  71. package/dist/types/{Alg-8b4e9255.d.ts → Alg-c6770822.d.ts} +6 -6
  72. package/dist/types/{KState-0da22515.d.ts → KState-fa1880c8.d.ts} +17 -17
  73. package/dist/types/{TwizzleLink-f790571d.d.ts → TwizzleLink-9873b9f1.d.ts} +82 -61
  74. package/dist/types/alg/index.d.ts +5 -5
  75. package/dist/types/bluetooth/index.d.ts +6 -6
  76. package/dist/types/{bluetooth-puzzle-62e2b423.d.ts → bluetooth-puzzle-1cb7db76.d.ts} +2 -2
  77. package/dist/types/kpuzzle/index.d.ts +2 -2
  78. package/dist/types/notation/index.d.ts +1 -1
  79. package/dist/types/{outside-074a0f79.d.ts → outside-f29a27bc.d.ts} +2 -2
  80. package/dist/types/parseAlg-d2c83795.d.ts +9 -0
  81. package/dist/types/protocol/index.d.ts +3 -3
  82. package/dist/types/puzzle-geometry/index.d.ts +3 -3
  83. package/dist/types/puzzles/index.d.ts +5 -5
  84. package/dist/types/scramble/index.d.ts +3 -3
  85. package/dist/types/search/index.d.ts +3 -3
  86. package/dist/types/stream/index.d.ts +5 -5
  87. package/dist/types/twisty/index.d.ts +5 -5
  88. package/package.json +23 -23
  89. package/src/README.md +10 -0
  90. package/dist/esm/chunk-ELZ5WICP.js.map +0 -7
  91. package/dist/esm/chunk-JXIKYWF4.js.map +0 -7
  92. package/dist/esm/chunk-RMIAXF22.js.map +0 -7
  93. package/dist/esm/chunk-SXI3BVQT.js.map +0 -7
  94. package/dist/esm/chunk-XNFY5XVP.js.map +0 -7
  95. package/dist/esm/chunk-YUBK6NHL.js.map +0 -7
  96. package/dist/esm/puzzles-dynamic-side-events-T2YVO2CD.js.map +0 -7
  97. package/dist/esm/search-dynamic-solve-4x4x4-6D3X6JPU.js.map +0 -7
  98. package/dist/esm/search-dynamic-solve-kilominx-ACTR53H2.js.map +0 -7
  99. package/dist/esm/search-worker-inside-generated-string-A5J72AEN.js +0 -4068
  100. package/dist/esm/search-worker-inside-generated-string-A5J72AEN.js.map +0 -7
  101. package/dist/esm/search-worker-js-entry-6JKK757U.js +0 -17
  102. package/dist/esm/search-worker-js-entry-6JKK757U.js.map +0 -7
  103. package/dist/esm/search-worker-ts-entry-JODGBUUR.js.map +0 -7
  104. package/dist/esm/twsearch-PTN3QM26-XSTDBYFP.js +0 -3163
  105. package/dist/esm/twsearch-PTN3QM26-XSTDBYFP.js.map +0 -7
  106. package/dist/esm/twsearch-T6KOUE6W.js.map +0 -7
  107. package/dist/types/parseAlg-2dd4194b.d.ts +0 -9
  108. package/dist/types/script/bin/screenshot-src/main.d.ts +0 -2
  109. package/dist/types/script/bin/screenshot-src/main.d.ts.map +0 -1
  110. package/dist/types/script/bin/screenshot.d.ts +0 -3
  111. package/dist/types/script/bin/screenshot.d.ts.map +0 -1
  112. package/dist/types/script/build/main.d.ts +0 -2
  113. package/dist/types/script/build/main.d.ts.map +0 -1
  114. package/dist/types/script/build/targets.d.ts +0 -241
  115. package/dist/types/script/build/targets.d.ts.map +0 -1
  116. package/dist/types/script/build/temp.d.ts +0 -3
  117. package/dist/types/script/build/temp.d.ts.map +0 -1
  118. package/dist/types/script/deploy/experiments.d.ts +0 -2
  119. package/dist/types/script/deploy/experiments.d.ts.map +0 -1
  120. package/dist/types/script/deploy/rsync.d.ts +0 -2
  121. package/dist/types/script/deploy/rsync.d.ts.map +0 -1
  122. package/dist/types/script/deploy/twizzle.d.ts +0 -2
  123. package/dist/types/script/deploy/twizzle.d.ts.map +0 -1
  124. package/dist/types/script/deploy/typedoc.d.ts +0 -2
  125. package/dist/types/script/deploy/typedoc.d.ts.map +0 -1
  126. package/dist/types/script/fix-vendored-twsearch.d.ts +0 -2
  127. package/dist/types/script/fix-vendored-twsearch.d.ts.map +0 -1
  128. package/dist/types/script/initial-setup/main.d.ts +0 -2
  129. package/dist/types/script/initial-setup/main.d.ts.map +0 -1
  130. package/dist/types/script/lib/execPromise.d.ts +0 -5
  131. package/dist/types/script/lib/execPromise.d.ts.map +0 -1
  132. package/dist/types/script/lib/experiments-server/index.d.ts +0 -2
  133. package/dist/types/script/lib/experiments-server/index.d.ts.map +0 -1
  134. package/dist/types/script/lib/need-folder.d.ts +0 -2
  135. package/dist/types/script/lib/need-folder.d.ts.map +0 -1
  136. package/dist/types/script/lib/packages.d.ts +0 -3
  137. package/dist/types/script/lib/packages.d.ts.map +0 -1
  138. package/dist/types/script/quick-setup/main.d.ts +0 -2
  139. package/dist/types/script/quick-setup/main.d.ts.map +0 -1
  140. package/dist/types/script/test/dist/experiments/main.d.ts +0 -2
  141. package/dist/types/script/test/dist/experiments/main.d.ts.map +0 -1
  142. package/dist/types/script/test/src/does-not-import-dist/expected-import-prefixes.d.ts +0 -2
  143. package/dist/types/script/test/src/does-not-import-dist/expected-import-prefixes.d.ts.map +0 -1
  144. package/dist/types/script/test/src/does-not-import-dist/main.d.ts +0 -2
  145. package/dist/types/script/test/src/does-not-import-dist/main.d.ts.map +0 -1
  146. package/dist/types/script/test/src/internal-import-restrictions/main.d.ts +0 -2
  147. package/dist/types/script/test/src/internal-import-restrictions/main.d.ts.map +0 -1
  148. package/dist/types/script/test/src/internal-import-restrictions/target-infos.d.ts +0 -70
  149. package/dist/types/script/test/src/internal-import-restrictions/target-infos.d.ts.map +0 -1
  150. package/dist/types/script/test/src/scripts-consistency/main.d.ts +0 -2
  151. package/dist/types/script/test/src/scripts-consistency/main.d.ts.map +0 -1
  152. package/dist/types/src/bin/import-restrictions-mermaid-diagram.d.ts +0 -2
  153. package/dist/types/src/bin/import-restrictions-mermaid-diagram.d.ts.map +0 -1
  154. package/dist/types/src/bin/order.d.ts +0 -2
  155. package/dist/types/src/bin/order.d.ts.map +0 -1
  156. package/dist/types/src/bin/puzzle-geometry-bin.d.ts +0 -2
  157. package/dist/types/src/bin/puzzle-geometry-bin.d.ts.map +0 -1
  158. package/dist/types/src/cubing/alg/Alg.d.ts +0 -176
  159. package/dist/types/src/cubing/alg/Alg.d.ts.map +0 -1
  160. package/dist/types/src/cubing/alg/Alg.spec.d.ts +0 -2
  161. package/dist/types/src/cubing/alg/Alg.spec.d.ts.map +0 -1
  162. package/dist/types/src/cubing/alg/AlgBuilder.d.ts +0 -13
  163. package/dist/types/src/cubing/alg/AlgBuilder.d.ts.map +0 -1
  164. package/dist/types/src/cubing/alg/Serializable.d.ts +0 -1
  165. package/dist/types/src/cubing/alg/Serializable.d.ts.map +0 -1
  166. package/dist/types/src/cubing/alg/alg-nodes/AlgNode.d.ts +0 -14
  167. package/dist/types/src/cubing/alg/alg-nodes/AlgNode.d.ts.map +0 -1
  168. package/dist/types/src/cubing/alg/alg-nodes/QuantumWithAmount.d.ts +0 -12
  169. package/dist/types/src/cubing/alg/alg-nodes/QuantumWithAmount.d.ts.map +0 -1
  170. package/dist/types/src/cubing/alg/alg-nodes/containers/Commutator.d.ts +0 -16
  171. package/dist/types/src/cubing/alg/alg-nodes/containers/Commutator.d.ts.map +0 -1
  172. package/dist/types/src/cubing/alg/alg-nodes/containers/Conjugate.d.ts +0 -16
  173. package/dist/types/src/cubing/alg/alg-nodes/containers/Conjugate.d.ts.map +0 -1
  174. package/dist/types/src/cubing/alg/alg-nodes/containers/Grouping.d.ts +0 -23
  175. package/dist/types/src/cubing/alg/alg-nodes/containers/Grouping.d.ts.map +0 -1
  176. package/dist/types/src/cubing/alg/alg-nodes/index.d.ts +0 -12
  177. package/dist/types/src/cubing/alg/alg-nodes/index.d.ts.map +0 -1
  178. package/dist/types/src/cubing/alg/alg-nodes/leaves/LineComment.d.ts +0 -14
  179. package/dist/types/src/cubing/alg/alg-nodes/leaves/LineComment.d.ts.map +0 -1
  180. package/dist/types/src/cubing/alg/alg-nodes/leaves/LineComment.spec.d.ts +0 -2
  181. package/dist/types/src/cubing/alg/alg-nodes/leaves/LineComment.spec.d.ts.map +0 -1
  182. package/dist/types/src/cubing/alg/alg-nodes/leaves/Move.d.ts +0 -52
  183. package/dist/types/src/cubing/alg/alg-nodes/leaves/Move.d.ts.map +0 -1
  184. package/dist/types/src/cubing/alg/alg-nodes/leaves/Move.spec.d.ts +0 -2
  185. package/dist/types/src/cubing/alg/alg-nodes/leaves/Move.spec.d.ts.map +0 -1
  186. package/dist/types/src/cubing/alg/alg-nodes/leaves/Newline.d.ts +0 -11
  187. package/dist/types/src/cubing/alg/alg-nodes/leaves/Newline.d.ts.map +0 -1
  188. package/dist/types/src/cubing/alg/alg-nodes/leaves/Pause.d.ts +0 -13
  189. package/dist/types/src/cubing/alg/alg-nodes/leaves/Pause.d.ts.map +0 -1
  190. package/dist/types/src/cubing/alg/common.d.ts +0 -20
  191. package/dist/types/src/cubing/alg/common.d.ts.map +0 -1
  192. package/dist/types/src/cubing/alg/cubing-private/index.d.ts +0 -3
  193. package/dist/types/src/cubing/alg/cubing-private/index.d.ts.map +0 -1
  194. package/dist/types/src/cubing/alg/debug.d.ts +0 -11
  195. package/dist/types/src/cubing/alg/debug.d.ts.map +0 -1
  196. package/dist/types/src/cubing/alg/example.d.ts +0 -15
  197. package/dist/types/src/cubing/alg/example.d.ts.map +0 -1
  198. package/dist/types/src/cubing/alg/index.d.ts +0 -23
  199. package/dist/types/src/cubing/alg/index.d.ts.map +0 -1
  200. package/dist/types/src/cubing/alg/is.d.ts +0 -5
  201. package/dist/types/src/cubing/alg/is.d.ts.map +0 -1
  202. package/dist/types/src/cubing/alg/iteration.d.ts +0 -10
  203. package/dist/types/src/cubing/alg/iteration.d.ts.map +0 -1
  204. package/dist/types/src/cubing/alg/keyboard.d.ts +0 -3
  205. package/dist/types/src/cubing/alg/keyboard.d.ts.map +0 -1
  206. package/dist/types/src/cubing/alg/limits.d.ts +0 -5
  207. package/dist/types/src/cubing/alg/limits.d.ts.map +0 -1
  208. package/dist/types/src/cubing/alg/parseAlg.d.ts +0 -13
  209. package/dist/types/src/cubing/alg/parseAlg.d.ts.map +0 -1
  210. package/dist/types/src/cubing/alg/parseAlg.spec.d.ts +0 -2
  211. package/dist/types/src/cubing/alg/parseAlg.spec.d.ts.map +0 -1
  212. package/dist/types/src/cubing/alg/simplify/append.d.ts +0 -7
  213. package/dist/types/src/cubing/alg/simplify/append.d.ts.map +0 -1
  214. package/dist/types/src/cubing/alg/simplify/append.spec.d.ts +0 -2
  215. package/dist/types/src/cubing/alg/simplify/append.spec.d.ts.map +0 -1
  216. package/dist/types/src/cubing/alg/simplify/index.d.ts +0 -4
  217. package/dist/types/src/cubing/alg/simplify/index.d.ts.map +0 -1
  218. package/dist/types/src/cubing/alg/simplify/options.d.ts +0 -36
  219. package/dist/types/src/cubing/alg/simplify/options.d.ts.map +0 -1
  220. package/dist/types/src/cubing/alg/simplify/simplify.d.ts +0 -5
  221. package/dist/types/src/cubing/alg/simplify/simplify.d.ts.map +0 -1
  222. package/dist/types/src/cubing/alg/simplify/simplify.spec.d.ts +0 -2
  223. package/dist/types/src/cubing/alg/simplify/simplify.spec.d.ts.map +0 -1
  224. package/dist/types/src/cubing/alg/traversal.d.ts +0 -37
  225. package/dist/types/src/cubing/alg/traversal.d.ts.map +0 -1
  226. package/dist/types/src/cubing/alg/url.d.ts +0 -13
  227. package/dist/types/src/cubing/alg/url.d.ts.map +0 -1
  228. package/dist/types/src/cubing/alg/url.spec.d.ts +0 -2
  229. package/dist/types/src/cubing/alg/url.spec.d.ts.map +0 -1
  230. package/dist/types/src/cubing/alg/validation.d.ts +0 -20
  231. package/dist/types/src/cubing/alg/validation.d.ts.map +0 -1
  232. package/dist/types/src/cubing/alg/warnOnce.d.ts +0 -2
  233. package/dist/types/src/cubing/alg/warnOnce.d.ts.map +0 -1
  234. package/dist/types/src/cubing/bluetooth/connect/index.d.ts +0 -7
  235. package/dist/types/src/cubing/bluetooth/connect/index.d.ts.map +0 -1
  236. package/dist/types/src/cubing/bluetooth/debug.d.ts +0 -3
  237. package/dist/types/src/cubing/bluetooth/debug.d.ts.map +0 -1
  238. package/dist/types/src/cubing/bluetooth/index.d.ts +0 -12
  239. package/dist/types/src/cubing/bluetooth/index.d.ts.map +0 -1
  240. package/dist/types/src/cubing/bluetooth/keyboard.d.ts +0 -17
  241. package/dist/types/src/cubing/bluetooth/keyboard.d.ts.map +0 -1
  242. package/dist/types/src/cubing/bluetooth/smart-puzzle/Heykube.d.ts +0 -19
  243. package/dist/types/src/cubing/bluetooth/smart-puzzle/Heykube.d.ts.map +0 -1
  244. package/dist/types/src/cubing/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts +0 -45
  245. package/dist/types/src/cubing/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts.map +0 -1
  246. package/dist/types/src/cubing/bluetooth/smart-puzzle/connect.d.ts +0 -5
  247. package/dist/types/src/cubing/bluetooth/smart-puzzle/connect.d.ts.map +0 -1
  248. package/dist/types/src/cubing/bluetooth/smart-puzzle/endianness.d.ts +0 -2
  249. package/dist/types/src/cubing/bluetooth/smart-puzzle/endianness.d.ts.map +0 -1
  250. package/dist/types/src/cubing/bluetooth/smart-puzzle/gan.d.ts +0 -36
  251. package/dist/types/src/cubing/bluetooth/smart-puzzle/gan.d.ts.map +0 -1
  252. package/dist/types/src/cubing/bluetooth/smart-puzzle/giiker.d.ts +0 -23
  253. package/dist/types/src/cubing/bluetooth/smart-puzzle/giiker.d.ts.map +0 -1
  254. package/dist/types/src/cubing/bluetooth/smart-puzzle/giiker.spec.d.ts +0 -2
  255. package/dist/types/src/cubing/bluetooth/smart-puzzle/giiker.spec.d.ts.map +0 -1
  256. package/dist/types/src/cubing/bluetooth/smart-puzzle/gocube.d.ts +0 -24
  257. package/dist/types/src/cubing/bluetooth/smart-puzzle/gocube.d.ts.map +0 -1
  258. package/dist/types/src/cubing/bluetooth/smart-robot/GanRobot.d.ts +0 -37
  259. package/dist/types/src/cubing/bluetooth/smart-robot/GanRobot.d.ts.map +0 -1
  260. package/dist/types/src/cubing/bluetooth/smart-robot/index.d.ts +0 -7
  261. package/dist/types/src/cubing/bluetooth/smart-robot/index.d.ts.map +0 -1
  262. package/dist/types/src/cubing/bluetooth/smart-timer/GanTimer.d.ts +0 -21
  263. package/dist/types/src/cubing/bluetooth/smart-timer/GanTimer.d.ts.map +0 -1
  264. package/dist/types/src/cubing/bluetooth/smart-timer/index.d.ts +0 -7
  265. package/dist/types/src/cubing/bluetooth/smart-timer/index.d.ts.map +0 -1
  266. package/dist/types/src/cubing/bluetooth/transformer.d.ts +0 -10
  267. package/dist/types/src/cubing/bluetooth/transformer.d.ts.map +0 -1
  268. package/dist/types/src/cubing/kpuzzle/KPuzzle.d.ts +0 -23
  269. package/dist/types/src/cubing/kpuzzle/KPuzzle.d.ts.map +0 -1
  270. package/dist/types/src/cubing/kpuzzle/KPuzzleDefinition.d.ts +0 -27
  271. package/dist/types/src/cubing/kpuzzle/KPuzzleDefinition.d.ts.map +0 -1
  272. package/dist/types/src/cubing/kpuzzle/KState.d.ts +0 -24
  273. package/dist/types/src/cubing/kpuzzle/KState.d.ts.map +0 -1
  274. package/dist/types/src/cubing/kpuzzle/KTransformation.d.ts +0 -25
  275. package/dist/types/src/cubing/kpuzzle/KTransformation.d.ts.map +0 -1
  276. package/dist/types/src/cubing/kpuzzle/calculate.d.ts +0 -16
  277. package/dist/types/src/cubing/kpuzzle/calculate.d.ts.map +0 -1
  278. package/dist/types/src/cubing/kpuzzle/calculate.spec.d.ts +0 -2
  279. package/dist/types/src/cubing/kpuzzle/calculate.spec.d.ts.map +0 -1
  280. package/dist/types/src/cubing/kpuzzle/combine.d.ts +0 -4
  281. package/dist/types/src/cubing/kpuzzle/combine.d.ts.map +0 -1
  282. package/dist/types/src/cubing/kpuzzle/construct.d.ts +0 -6
  283. package/dist/types/src/cubing/kpuzzle/construct.d.ts.map +0 -1
  284. package/dist/types/src/cubing/kpuzzle/index.d.ts +0 -5
  285. package/dist/types/src/cubing/kpuzzle/index.d.ts.map +0 -1
  286. package/dist/types/src/cubing/notation/CountAnimatedLeaves.d.ts +0 -3
  287. package/dist/types/src/cubing/notation/CountAnimatedLeaves.d.ts.map +0 -1
  288. package/dist/types/src/cubing/notation/CountMoves.d.ts +0 -5
  289. package/dist/types/src/cubing/notation/CountMoves.d.ts.map +0 -1
  290. package/dist/types/src/cubing/notation/index.d.ts +0 -3
  291. package/dist/types/src/cubing/notation/index.d.ts.map +0 -1
  292. package/dist/types/src/cubing/protocol/binary/binary3x3x3.d.ts +0 -25
  293. package/dist/types/src/cubing/protocol/binary/binary3x3x3.d.ts.map +0 -1
  294. package/dist/types/src/cubing/protocol/binary/binary3x3x3.spec.d.ts +0 -2
  295. package/dist/types/src/cubing/protocol/binary/binary3x3x3.spec.d.ts.map +0 -1
  296. package/dist/types/src/cubing/protocol/binary/hex.d.ts +0 -3
  297. package/dist/types/src/cubing/protocol/binary/hex.d.ts.map +0 -1
  298. package/dist/types/src/cubing/protocol/binary/hex.spec.d.ts +0 -2
  299. package/dist/types/src/cubing/protocol/binary/hex.spec.d.ts.map +0 -1
  300. package/dist/types/src/cubing/protocol/binary/orbit-indexing.d.ts +0 -6
  301. package/dist/types/src/cubing/protocol/binary/orbit-indexing.d.ts.map +0 -1
  302. package/dist/types/src/cubing/protocol/binary/orbit-indexing.spec.d.ts +0 -2
  303. package/dist/types/src/cubing/protocol/binary/orbit-indexing.spec.d.ts.map +0 -1
  304. package/dist/types/src/cubing/protocol/index.d.ts +0 -3
  305. package/dist/types/src/cubing/protocol/index.d.ts.map +0 -1
  306. package/dist/types/src/cubing/puzzle-geometry/FaceNameSwizzler.d.ts +0 -13
  307. package/dist/types/src/cubing/puzzle-geometry/FaceNameSwizzler.d.ts.map +0 -1
  308. package/dist/types/src/cubing/puzzle-geometry/Options.d.ts +0 -46
  309. package/dist/types/src/cubing/puzzle-geometry/Options.d.ts.map +0 -1
  310. package/dist/types/src/cubing/puzzle-geometry/PGPuzzles.d.ts +0 -6
  311. package/dist/types/src/cubing/puzzle-geometry/PGPuzzles.d.ts.map +0 -1
  312. package/dist/types/src/cubing/puzzle-geometry/PGPuzzles.spec.d.ts +0 -2
  313. package/dist/types/src/cubing/puzzle-geometry/PGPuzzles.spec.d.ts.map +0 -1
  314. package/dist/types/src/cubing/puzzle-geometry/Perm.d.ts +0 -19
  315. package/dist/types/src/cubing/puzzle-geometry/Perm.d.ts.map +0 -1
  316. package/dist/types/src/cubing/puzzle-geometry/PermOriSet.d.ts +0 -75
  317. package/dist/types/src/cubing/puzzle-geometry/PermOriSet.d.ts.map +0 -1
  318. package/dist/types/src/cubing/puzzle-geometry/PlatonicGenerator.d.ts +0 -11
  319. package/dist/types/src/cubing/puzzle-geometry/PlatonicGenerator.d.ts.map +0 -1
  320. package/dist/types/src/cubing/puzzle-geometry/PuzzleGeometry.d.ts +0 -181
  321. package/dist/types/src/cubing/puzzle-geometry/PuzzleGeometry.d.ts.map +0 -1
  322. package/dist/types/src/cubing/puzzle-geometry/Quat.d.ts +0 -44
  323. package/dist/types/src/cubing/puzzle-geometry/Quat.d.ts.map +0 -1
  324. package/dist/types/src/cubing/puzzle-geometry/Quat.spec.d.ts +0 -2
  325. package/dist/types/src/cubing/puzzle-geometry/Quat.spec.d.ts.map +0 -1
  326. package/dist/types/src/cubing/puzzle-geometry/SchreierSims.d.ts +0 -3
  327. package/dist/types/src/cubing/puzzle-geometry/SchreierSims.d.ts.map +0 -1
  328. package/dist/types/src/cubing/puzzle-geometry/index.d.ts +0 -8
  329. package/dist/types/src/cubing/puzzle-geometry/index.d.ts.map +0 -1
  330. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts +0 -11
  331. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts.map +0 -1
  332. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts +0 -13
  333. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts.map +0 -1
  334. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts +0 -9
  335. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts.map +0 -1
  336. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NotationMapper.d.ts +0 -8
  337. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NotationMapper.d.ts.map +0 -1
  338. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NullMapper.d.ts +0 -7
  339. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NullMapper.d.ts.map +0 -1
  340. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts +0 -9
  341. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts.map +0 -1
  342. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts +0 -16
  343. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts.map +0 -1
  344. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts +0 -10
  345. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts.map +0 -1
  346. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/index.d.ts +0 -9
  347. package/dist/types/src/cubing/puzzle-geometry/notation-mapping/index.d.ts.map +0 -1
  348. package/dist/types/src/cubing/puzzle-geometry/orientcenters.spec.d.ts +0 -2
  349. package/dist/types/src/cubing/puzzle-geometry/orientcenters.spec.d.ts.map +0 -1
  350. package/dist/types/src/cubing/puzzles/PuzzleLoader.d.ts +0 -24
  351. package/dist/types/src/cubing/puzzles/PuzzleLoader.d.ts.map +0 -1
  352. package/dist/types/src/cubing/puzzles/async/async-pg3d.d.ts +0 -37
  353. package/dist/types/src/cubing/puzzles/async/async-pg3d.d.ts.map +0 -1
  354. package/dist/types/src/cubing/puzzles/async/lazy-cached.d.ts +0 -2
  355. package/dist/types/src/cubing/puzzles/async/lazy-cached.d.ts.map +0 -1
  356. package/dist/types/src/cubing/puzzles/cubing-private/index.d.ts +0 -14
  357. package/dist/types/src/cubing/puzzles/cubing-private/index.d.ts.map +0 -1
  358. package/dist/types/src/cubing/puzzles/customPGPuzzleLoader.d.ts +0 -12
  359. package/dist/types/src/cubing/puzzles/customPGPuzzleLoader.d.ts.map +0 -1
  360. package/dist/types/src/cubing/puzzles/events.d.ts +0 -13
  361. package/dist/types/src/cubing/puzzles/events.d.ts.map +0 -1
  362. package/dist/types/src/cubing/puzzles/implementations/2x2x2/index.d.ts +0 -4
  363. package/dist/types/src/cubing/puzzles/implementations/2x2x2/index.d.ts.map +0 -1
  364. package/dist/types/src/cubing/puzzles/implementations/3x3x3/index.d.ts +0 -4
  365. package/dist/types/src/cubing/puzzles/implementations/3x3x3/index.d.ts.map +0 -1
  366. package/dist/types/src/cubing/puzzles/implementations/3x3x3/puzzle-specific-simplifications.d.ts +0 -3
  367. package/dist/types/src/cubing/puzzles/implementations/3x3x3/puzzle-specific-simplifications.d.ts.map +0 -1
  368. package/dist/types/src/cubing/puzzles/implementations/4x4x4/index.d.ts +0 -4
  369. package/dist/types/src/cubing/puzzles/implementations/4x4x4/index.d.ts.map +0 -1
  370. package/dist/types/src/cubing/puzzles/implementations/clock/index.d.ts +0 -3
  371. package/dist/types/src/cubing/puzzles/implementations/clock/index.d.ts.map +0 -1
  372. package/dist/types/src/cubing/puzzles/implementations/dynamic/2x2x2/puzzle-orientation.d.ts +0 -17
  373. package/dist/types/src/cubing/puzzles/implementations/dynamic/2x2x2/puzzle-orientation.d.ts.map +0 -1
  374. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts +0 -2
  375. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts.map +0 -1
  376. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.d.ts +0 -3
  377. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.d.ts.map +0 -1
  378. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.spec.d.ts +0 -2
  379. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.spec.d.ts.map +0 -1
  380. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.svg.d.ts +0 -2
  381. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.svg.d.ts.map +0 -1
  382. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/puzzle-orientation.d.ts +0 -9
  383. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/puzzle-orientation.d.ts.map +0 -1
  384. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/puzzles-dynamic-3x3x3.d.ts +0 -3
  385. package/dist/types/src/cubing/puzzles/implementations/dynamic/3x3x3/puzzles-dynamic-3x3x3.d.ts.map +0 -1
  386. package/dist/types/src/cubing/puzzles/implementations/dynamic/4x4x4/4x4x4-ll.kpuzzle.svg.d.ts +0 -2
  387. package/dist/types/src/cubing/puzzles/implementations/dynamic/4x4x4/4x4x4-ll.kpuzzle.svg.d.ts.map +0 -1
  388. package/dist/types/src/cubing/puzzles/implementations/dynamic/4x4x4/puzzles-dynamic-4x4x4.d.ts +0 -2
  389. package/dist/types/src/cubing/puzzles/implementations/dynamic/4x4x4/puzzles-dynamic-4x4x4.d.ts.map +0 -1
  390. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/2x2x2.kpuzzle.json.d.ts +0 -3
  391. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/2x2x2.kpuzzle.json.d.ts.map +0 -1
  392. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/2x2x2.kpuzzle.svg.d.ts +0 -2
  393. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/2x2x2.kpuzzle.svg.d.ts.map +0 -1
  394. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/clock.kpuzzle.json.d.ts +0 -3
  395. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/clock.kpuzzle.json.d.ts.map +0 -1
  396. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/clock.kpuzzle.svg.d.ts +0 -2
  397. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/clock.kpuzzle.svg.d.ts.map +0 -1
  398. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/melindas2x2x2x2.kpuzzle.json.d.ts +0 -3
  399. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/melindas2x2x2x2.kpuzzle.json.d.ts.map +0 -1
  400. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/melindas2x2x2x2.kpuzzle.svg.d.ts +0 -2
  401. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/melindas2x2x2x2.kpuzzle.svg.d.ts.map +0 -1
  402. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/puzzles-dynamic-side-events.d.ts +0 -10
  403. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/puzzles-dynamic-side-events.d.ts.map +0 -1
  404. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/pyraminx.kpuzzle.svg.d.ts +0 -2
  405. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/pyraminx.kpuzzle.svg.d.ts.map +0 -1
  406. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/sq1-hyperorbit.kpuzzle.json.d.ts +0 -3
  407. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/sq1-hyperorbit.kpuzzle.json.d.ts.map +0 -1
  408. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/sq1-hyperorbit.kpuzzle.svg.d.ts +0 -2
  409. package/dist/types/src/cubing/puzzles/implementations/dynamic/side-events/sq1-hyperorbit.kpuzzle.svg.d.ts.map +0 -1
  410. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/fto.kpuzzle.svg.d.ts +0 -2
  411. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/fto.kpuzzle.svg.d.ts.map +0 -1
  412. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/kilominx.kpuzzle.svg.d.ts +0 -2
  413. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/kilominx.kpuzzle.svg.d.ts.map +0 -1
  414. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/puzzles-dynamic-unofficial.d.ts +0 -5
  415. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/puzzles-dynamic-unofficial.d.ts.map +0 -1
  416. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/redi_cube.kpuzzle.json.d.ts +0 -3
  417. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/redi_cube.kpuzzle.json.d.ts.map +0 -1
  418. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/redi_cube.kpuzzle.svg.d.ts +0 -2
  419. package/dist/types/src/cubing/puzzles/implementations/dynamic/unofficial/redi_cube.kpuzzle.svg.d.ts.map +0 -1
  420. package/dist/types/src/cubing/puzzles/implementations/fto/index.d.ts +0 -13
  421. package/dist/types/src/cubing/puzzles/implementations/fto/index.d.ts.map +0 -1
  422. package/dist/types/src/cubing/puzzles/implementations/kilominx/index.d.ts +0 -3
  423. package/dist/types/src/cubing/puzzles/implementations/kilominx/index.d.ts.map +0 -1
  424. package/dist/types/src/cubing/puzzles/implementations/megaminx/index.d.ts +0 -12
  425. package/dist/types/src/cubing/puzzles/implementations/megaminx/index.d.ts.map +0 -1
  426. package/dist/types/src/cubing/puzzles/implementations/melindas2x2x2x2/index.d.ts +0 -3
  427. package/dist/types/src/cubing/puzzles/implementations/melindas2x2x2x2/index.d.ts.map +0 -1
  428. package/dist/types/src/cubing/puzzles/implementations/pyraminx/index.d.ts +0 -8
  429. package/dist/types/src/cubing/puzzles/implementations/pyraminx/index.d.ts.map +0 -1
  430. package/dist/types/src/cubing/puzzles/implementations/redi-cube/index.d.ts +0 -3
  431. package/dist/types/src/cubing/puzzles/implementations/redi-cube/index.d.ts.map +0 -1
  432. package/dist/types/src/cubing/puzzles/implementations/square1/index.d.ts +0 -3
  433. package/dist/types/src/cubing/puzzles/implementations/square1/index.d.ts.map +0 -1
  434. package/dist/types/src/cubing/puzzles/index.d.ts +0 -9
  435. package/dist/types/src/cubing/puzzles/index.d.ts.map +0 -1
  436. package/dist/types/src/cubing/puzzles/stickerings/cube-like-stickerings.d.ts +0 -6
  437. package/dist/types/src/cubing/puzzles/stickerings/cube-like-stickerings.d.ts.map +0 -1
  438. package/dist/types/src/cubing/puzzles/stickerings/fto-stickerings.d.ts +0 -6
  439. package/dist/types/src/cubing/puzzles/stickerings/fto-stickerings.d.ts.map +0 -1
  440. package/dist/types/src/cubing/puzzles/stickerings/mask.d.ts +0 -54
  441. package/dist/types/src/cubing/puzzles/stickerings/mask.d.ts.map +0 -1
  442. package/dist/types/src/cubing/puzzles/stickerings/megaminx-stickerings.d.ts +0 -6
  443. package/dist/types/src/cubing/puzzles/stickerings/megaminx-stickerings.d.ts.map +0 -1
  444. package/dist/types/src/cubing/puzzles/stickerings/puzzle-stickerings.d.ts +0 -5
  445. package/dist/types/src/cubing/puzzles/stickerings/puzzle-stickerings.d.ts.map +0 -1
  446. package/dist/types/src/cubing/scramble/index.d.ts +0 -9
  447. package/dist/types/src/cubing/scramble/index.d.ts.map +0 -1
  448. package/dist/types/src/cubing/search/cubing-private/index.d.ts +0 -2
  449. package/dist/types/src/cubing/search/cubing-private/index.d.ts.map +0 -1
  450. package/dist/types/src/cubing/search/index.d.ts +0 -3
  451. package/dist/types/src/cubing/search/index.d.ts.map +0 -1
  452. package/dist/types/src/cubing/search/inside/api.d.ts +0 -24
  453. package/dist/types/src/cubing/search/inside/api.d.ts.map +0 -1
  454. package/dist/types/src/cubing/search/inside/api.spec.d.ts +0 -2
  455. package/dist/types/src/cubing/search/inside/api.spec.d.ts.map +0 -1
  456. package/dist/types/src/cubing/search/inside/inside-worker.d.ts +0 -3
  457. package/dist/types/src/cubing/search/inside/inside-worker.d.ts.map +0 -1
  458. package/dist/types/src/cubing/search/inside/search-worker-js-entry.d.ts +0 -2
  459. package/dist/types/src/cubing/search/inside/search-worker-js-entry.d.ts.map +0 -1
  460. package/dist/types/src/cubing/search/inside/search-worker-ts-entry-path-getter.d.ts +0 -2
  461. package/dist/types/src/cubing/search/inside/search-worker-ts-entry-path-getter.d.ts.map +0 -1
  462. package/dist/types/src/cubing/search/inside/search-worker-ts-entry.d.ts +0 -2
  463. package/dist/types/src/cubing/search/inside/search-worker-ts-entry.d.ts.map +0 -1
  464. package/dist/types/src/cubing/search/inside/solve/addOrientationSuffix.d.ts +0 -3
  465. package/dist/types/src/cubing/search/inside/solve/addOrientationSuffix.d.ts.map +0 -1
  466. package/dist/types/src/cubing/search/inside/solve/parseSGS.d.ts +0 -19
  467. package/dist/types/src/cubing/search/inside/solve/parseSGS.d.ts.map +0 -1
  468. package/dist/types/src/cubing/search/inside/solve/puzzles/2x2x2.d.ts +0 -9
  469. package/dist/types/src/cubing/search/inside/solve/puzzles/2x2x2.d.ts.map +0 -1
  470. package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/convert.d.ts +0 -3
  471. package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/convert.d.ts.map +0 -1
  472. package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/filter.d.ts +0 -5
  473. package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/filter.d.ts.map +0 -1
  474. package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/index.d.ts +0 -9
  475. package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/index.d.ts.map +0 -1
  476. package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts +0 -2
  477. package/dist/types/src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts.map +0 -1
  478. package/dist/types/src/cubing/search/inside/solve/puzzles/4x4x4.d.ts +0 -5
  479. package/dist/types/src/cubing/search/inside/solve/puzzles/4x4x4.d.ts.map +0 -1
  480. package/dist/types/src/cubing/search/inside/solve/puzzles/5x5x5.d.ts +0 -3
  481. package/dist/types/src/cubing/search/inside/solve/puzzles/5x5x5.d.ts.map +0 -1
  482. package/dist/types/src/cubing/search/inside/solve/puzzles/big-cubes.d.ts +0 -3
  483. package/dist/types/src/cubing/search/inside/solve/puzzles/big-cubes.d.ts.map +0 -1
  484. package/dist/types/src/cubing/search/inside/solve/puzzles/clock.d.ts +0 -2
  485. package/dist/types/src/cubing/search/inside/solve/puzzles/clock.d.ts.map +0 -1
  486. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/index.d.ts +0 -2
  487. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/index.d.ts.map +0 -1
  488. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/search-dynamic-solve-3x3x3.d.ts +0 -2
  489. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/3x3x3/search-dynamic-solve-3x3x3.d.ts.map +0 -1
  490. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.d.ts +0 -2
  491. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.d.ts.map +0 -1
  492. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/search-dynamic-solve-4x4x4.d.ts +0 -2
  493. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/search-dynamic-solve-4x4x4.d.ts.map +0 -1
  494. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/fto/index.d.ts +0 -2
  495. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/fto/index.d.ts.map +0 -1
  496. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/fto/search-dynamic-solve-fto.d.ts +0 -2
  497. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/fto/search-dynamic-solve-fto.d.ts.map +0 -1
  498. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.d.ts +0 -2
  499. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.d.ts.map +0 -1
  500. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/kilominx/search-dynamic-solve-kilominx.d.ts +0 -2
  501. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/kilominx/search-dynamic-solve-kilominx.d.ts.map +0 -1
  502. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/index.d.ts +0 -2
  503. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/index.d.ts.map +0 -1
  504. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/search-dynamic-solve-master_tetraminx.d.ts +0 -2
  505. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/search-dynamic-solve-master_tetraminx.d.ts.map +0 -1
  506. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-defs.spec.d.ts +0 -2
  507. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-defs.spec.d.ts.map +0 -1
  508. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/2x2x2.sgs.d.ts +0 -4
  509. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/2x2x2.sgs.d.ts.map +0 -1
  510. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.d.ts +0 -2
  511. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.d.ts.map +0 -1
  512. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/megaminx.sgs.d.ts +0 -6
  513. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/megaminx.sgs.d.ts.map +0 -1
  514. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/pyraminx.sgs.d.ts +0 -4
  515. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/pyraminx.sgs.d.ts.map +0 -1
  516. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/search-dynamic-sgs-side-events.d.ts +0 -5
  517. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/search-dynamic-sgs-side-events.d.ts.map +0 -1
  518. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/skewb.sgs.d.ts +0 -6
  519. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/skewb.sgs.d.ts.map +0 -1
  520. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/fto.sgs.d.ts +0 -3
  521. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/fto.sgs.d.ts.map +0 -1
  522. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.d.ts +0 -2
  523. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.d.ts.map +0 -1
  524. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/search-dynamic-sgs-unofficial.d.ts +0 -3
  525. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/search-dynamic-sgs-unofficial.d.ts.map +0 -1
  526. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sq1/index.d.ts +0 -2
  527. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sq1/index.d.ts.map +0 -1
  528. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sq1/search-dynamic-solve-sq1.d.ts +0 -2
  529. package/dist/types/src/cubing/search/inside/solve/puzzles/dynamic/sq1/search-dynamic-solve-sq1.d.ts.map +0 -1
  530. package/dist/types/src/cubing/search/inside/solve/puzzles/fto.d.ts +0 -6
  531. package/dist/types/src/cubing/search/inside/solve/puzzles/fto.d.ts.map +0 -1
  532. package/dist/types/src/cubing/search/inside/solve/puzzles/kilominx.d.ts +0 -3
  533. package/dist/types/src/cubing/search/inside/solve/puzzles/kilominx.d.ts.map +0 -1
  534. package/dist/types/src/cubing/search/inside/solve/puzzles/master_tetraminx.d.ts +0 -3
  535. package/dist/types/src/cubing/search/inside/solve/puzzles/master_tetraminx.d.ts.map +0 -1
  536. package/dist/types/src/cubing/search/inside/solve/puzzles/megaminx.d.ts +0 -5
  537. package/dist/types/src/cubing/search/inside/solve/puzzles/megaminx.d.ts.map +0 -1
  538. package/dist/types/src/cubing/search/inside/solve/puzzles/pyraminx.d.ts +0 -7
  539. package/dist/types/src/cubing/search/inside/solve/puzzles/pyraminx.d.ts.map +0 -1
  540. package/dist/types/src/cubing/search/inside/solve/puzzles/redi_cube.d.ts +0 -3
  541. package/dist/types/src/cubing/search/inside/solve/puzzles/redi_cube.d.ts.map +0 -1
  542. package/dist/types/src/cubing/search/inside/solve/puzzles/skewb.d.ts +0 -7
  543. package/dist/types/src/cubing/search/inside/solve/puzzles/skewb.d.ts.map +0 -1
  544. package/dist/types/src/cubing/search/inside/solve/puzzles/sq1.d.ts +0 -3
  545. package/dist/types/src/cubing/search/inside/solve/puzzles/sq1.d.ts.map +0 -1
  546. package/dist/types/src/cubing/search/inside/solve/puzzles/wca-minx.d.ts +0 -2
  547. package/dist/types/src/cubing/search/inside/solve/puzzles/wca-minx.d.ts.map +0 -1
  548. package/dist/types/src/cubing/search/inside/solve/tremble.d.ts +0 -14
  549. package/dist/types/src/cubing/search/inside/solve/tremble.d.ts.map +0 -1
  550. package/dist/types/src/cubing/search/inside/solve/twsearch.d.ts +0 -11
  551. package/dist/types/src/cubing/search/inside/solve/twsearch.d.ts.map +0 -1
  552. package/dist/types/src/cubing/search/inside/worker-guard.d.ts +0 -4
  553. package/dist/types/src/cubing/search/inside/worker-guard.d.ts.map +0 -1
  554. package/dist/types/src/cubing/search/instantiator.d.ts +0 -13
  555. package/dist/types/src/cubing/search/instantiator.d.ts.map +0 -1
  556. package/dist/types/src/cubing/search/outside.d.ts +0 -29
  557. package/dist/types/src/cubing/search/outside.d.ts.map +0 -1
  558. package/dist/types/src/cubing/search/search-worker-inside-generated-string.d.ts +0 -2
  559. package/dist/types/src/cubing/search/search-worker-inside-generated-string.d.ts.map +0 -1
  560. package/dist/types/src/cubing/stream/index.d.ts +0 -9
  561. package/dist/types/src/cubing/stream/index.d.ts.map +0 -1
  562. package/dist/types/src/cubing/stream/process/ReorientedStream.d.ts +0 -21
  563. package/dist/types/src/cubing/stream/process/ReorientedStream.d.ts.map +0 -1
  564. package/dist/types/src/cubing/stream/proxy-event.d.ts +0 -14
  565. package/dist/types/src/cubing/stream/proxy-event.d.ts.map +0 -1
  566. package/dist/types/src/cubing/stream/twizzle/TwizzleStream.d.ts +0 -19
  567. package/dist/types/src/cubing/stream/twizzle/TwizzleStream.d.ts.map +0 -1
  568. package/dist/types/src/cubing/stream/twizzle/stream-types.d.ts +0 -33
  569. package/dist/types/src/cubing/stream/twizzle/stream-types.d.ts.map +0 -1
  570. package/dist/types/src/cubing/stream/websocket-proxy.d.ts +0 -22
  571. package/dist/types/src/cubing/stream/websocket-proxy.d.ts.map +0 -1
  572. package/dist/types/src/cubing/twisty/controllers/AnimationTypes.d.ts +0 -33
  573. package/dist/types/src/cubing/twisty/controllers/AnimationTypes.d.ts.map +0 -1
  574. package/dist/types/src/cubing/twisty/controllers/RenderScheduler.d.ts +0 -14
  575. package/dist/types/src/cubing/twisty/controllers/RenderScheduler.d.ts.map +0 -1
  576. package/dist/types/src/cubing/twisty/controllers/TwistyAnimationController.d.ts +0 -37
  577. package/dist/types/src/cubing/twisty/controllers/TwistyAnimationController.d.ts.map +0 -1
  578. package/dist/types/src/cubing/twisty/controllers/TwistyPlayerController.d.ts +0 -16
  579. package/dist/types/src/cubing/twisty/controllers/TwistyPlayerController.d.ts.map +0 -1
  580. package/dist/types/src/cubing/twisty/controllers/easing.d.ts +0 -2
  581. package/dist/types/src/cubing/twisty/controllers/easing.d.ts.map +0 -1
  582. package/dist/types/src/cubing/twisty/controllers/indexer/AlgDuration.d.ts +0 -18
  583. package/dist/types/src/cubing/twisty/controllers/indexer/AlgDuration.d.ts.map +0 -1
  584. package/dist/types/src/cubing/twisty/controllers/indexer/AlgIndexer.d.ts +0 -37
  585. package/dist/types/src/cubing/twisty/controllers/indexer/AlgIndexer.d.ts.map +0 -1
  586. package/dist/types/src/cubing/twisty/controllers/indexer/SimpleAlgIndexer.d.ts +0 -20
  587. package/dist/types/src/cubing/twisty/controllers/indexer/SimpleAlgIndexer.d.ts.map +0 -1
  588. package/dist/types/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts +0 -23
  589. package/dist/types/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts.map +0 -1
  590. package/dist/types/src/cubing/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts +0 -26
  591. package/dist/types/src/cubing/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts.map +0 -1
  592. package/dist/types/src/cubing/twisty/controllers/indexer/tree/AlgWalker.d.ts +0 -64
  593. package/dist/types/src/cubing/twisty/controllers/indexer/tree/AlgWalker.d.ts.map +0 -1
  594. package/dist/types/src/cubing/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts +0 -21
  595. package/dist/types/src/cubing/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts.map +0 -1
  596. package/dist/types/src/cubing/twisty/controllers/indexer/tree/chunkAlgs.d.ts +0 -3
  597. package/dist/types/src/cubing/twisty/controllers/indexer/tree/chunkAlgs.d.ts.map +0 -1
  598. package/dist/types/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.d.ts +0 -16
  599. package/dist/types/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.d.ts.map +0 -1
  600. package/dist/types/src/cubing/twisty/cubing-private/index.d.ts +0 -2
  601. package/dist/types/src/cubing/twisty/cubing-private/index.d.ts.map +0 -1
  602. package/dist/types/src/cubing/twisty/debug.d.ts +0 -6
  603. package/dist/types/src/cubing/twisty/debug.d.ts.map +0 -1
  604. package/dist/types/src/cubing/twisty/heavy-code-imports/3d.d.ts +0 -3
  605. package/dist/types/src/cubing/twisty/heavy-code-imports/3d.d.ts.map +0 -1
  606. package/dist/types/src/cubing/twisty/heavy-code-imports/dynamic-entries/twisty-dynamic-3d.d.ts +0 -12
  607. package/dist/types/src/cubing/twisty/heavy-code-imports/dynamic-entries/twisty-dynamic-3d.d.ts.map +0 -1
  608. package/dist/types/src/cubing/twisty/index.d.ts +0 -24
  609. package/dist/types/src/cubing/twisty/index.d.ts.map +0 -1
  610. package/dist/types/src/cubing/twisty/model/PromiseFreshener.d.ts +0 -14
  611. package/dist/types/src/cubing/twisty/model/PromiseFreshener.d.ts.map +0 -1
  612. package/dist/types/src/cubing/twisty/model/TwistyPlayerModel.d.ts +0 -90
  613. package/dist/types/src/cubing/twisty/model/TwistyPlayerModel.d.ts.map +0 -1
  614. package/dist/types/src/cubing/twisty/model/TwistyPlayerModel.spec.d.ts +0 -2
  615. package/dist/types/src/cubing/twisty/model/TwistyPlayerModel.spec.d.ts.map +0 -1
  616. package/dist/types/src/cubing/twisty/model/TwistySceneModel.d.ts +0 -46
  617. package/dist/types/src/cubing/twisty/model/TwistySceneModel.d.ts.map +0 -1
  618. package/dist/types/src/cubing/twisty/model/TwistySceneModel.spec.d.ts +0 -2
  619. package/dist/types/src/cubing/twisty/model/TwistySceneModel.spec.d.ts.map +0 -1
  620. package/dist/types/src/cubing/twisty/model/UserVisibleErrorTracker.d.ts +0 -11
  621. package/dist/types/src/cubing/twisty/model/UserVisibleErrorTracker.d.ts.map +0 -1
  622. package/dist/types/src/cubing/twisty/model/helpers.d.ts +0 -5
  623. package/dist/types/src/cubing/twisty/model/helpers.d.ts.map +0 -1
  624. package/dist/types/src/cubing/twisty/model/props/TwistyProp.d.ts +0 -62
  625. package/dist/types/src/cubing/twisty/model/props/TwistyProp.d.ts.map +0 -1
  626. package/dist/types/src/cubing/twisty/model/props/TwistyProp.spec.d.ts +0 -2
  627. package/dist/types/src/cubing/twisty/model/props/TwistyProp.spec.d.ts.map +0 -1
  628. package/dist/types/src/cubing/twisty/model/props/general/ArbitraryStringProp.d.ts +0 -5
  629. package/dist/types/src/cubing/twisty/model/props/general/ArbitraryStringProp.d.ts.map +0 -1
  630. package/dist/types/src/cubing/twisty/model/props/general/URLProp.d.ts +0 -6
  631. package/dist/types/src/cubing/twisty/model/props/general/URLProp.d.ts.map +0 -1
  632. package/dist/types/src/cubing/twisty/model/props/puzzle/display/FaceletScaleProp.d.ts +0 -6
  633. package/dist/types/src/cubing/twisty/model/props/puzzle/display/FaceletScaleProp.d.ts.map +0 -1
  634. package/dist/types/src/cubing/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts +0 -6
  635. package/dist/types/src/cubing/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts.map +0 -1
  636. package/dist/types/src/cubing/twisty/model/props/puzzle/display/HintFaceletProp.d.ts +0 -11
  637. package/dist/types/src/cubing/twisty/model/props/puzzle/display/HintFaceletProp.d.ts.map +0 -1
  638. package/dist/types/src/cubing/twisty/model/props/puzzle/display/InitialHintFaceletsAnimationProp.d.ts +0 -6
  639. package/dist/types/src/cubing/twisty/model/props/puzzle/display/InitialHintFaceletsAnimationProp.d.ts.map +0 -1
  640. package/dist/types/src/cubing/twisty/model/props/puzzle/display/SpriteProp.d.ts +0 -10
  641. package/dist/types/src/cubing/twisty/model/props/puzzle/display/SpriteProp.d.ts.map +0 -1
  642. package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringMaskProp.d.ts +0 -15
  643. package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringMaskProp.d.ts.map +0 -1
  644. package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringMaskRequestProp.d.ts +0 -7
  645. package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringMaskRequestProp.d.ts.map +0 -1
  646. package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringRequestProp.d.ts +0 -9
  647. package/dist/types/src/cubing/twisty/model/props/puzzle/display/StickeringRequestProp.d.ts.map +0 -1
  648. package/dist/types/src/cubing/twisty/model/props/puzzle/display/parseSerializedStickeringMask.d.ts +0 -3
  649. package/dist/types/src/cubing/twisty/model/props/puzzle/display/parseSerializedStickeringMask.d.ts.map +0 -1
  650. package/dist/types/src/cubing/twisty/model/props/puzzle/state/AlgProp.d.ts +0 -27
  651. package/dist/types/src/cubing/twisty/model/props/puzzle/state/AlgProp.d.ts.map +0 -1
  652. package/dist/types/src/cubing/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts +0 -12
  653. package/dist/types/src/cubing/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts.map +0 -1
  654. package/dist/types/src/cubing/twisty/model/props/puzzle/state/AnchorTransformationProp.d.ts +0 -15
  655. package/dist/types/src/cubing/twisty/model/props/puzzle/state/AnchorTransformationProp.d.ts.map +0 -1
  656. package/dist/types/src/cubing/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts +0 -11
  657. package/dist/types/src/cubing/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts.map +0 -1
  658. package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts +0 -17
  659. package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts.map +0 -1
  660. package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentMoveInfoProp.d.ts +0 -14
  661. package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentMoveInfoProp.d.ts.map +0 -1
  662. package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentStateProp.d.ts +0 -15
  663. package/dist/types/src/cubing/twisty/model/props/puzzle/state/CurrentStateProp.d.ts.map +0 -1
  664. package/dist/types/src/cubing/twisty/model/props/puzzle/state/DragInputProp.d.ts +0 -10
  665. package/dist/types/src/cubing/twisty/model/props/puzzle/state/DragInputProp.d.ts.map +0 -1
  666. package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts +0 -20
  667. package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts.map +0 -1
  668. package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts +0 -12
  669. package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts.map +0 -1
  670. package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerProp.d.ts +0 -15
  671. package/dist/types/src/cubing/twisty/model/props/puzzle/state/IndexerProp.d.ts.map +0 -1
  672. package/dist/types/src/cubing/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts +0 -12
  673. package/dist/types/src/cubing/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts.map +0 -1
  674. package/dist/types/src/cubing/twisty/model/props/puzzle/state/MovePressCancelOptions.d.ts +0 -6
  675. package/dist/types/src/cubing/twisty/model/props/puzzle/state/MovePressCancelOptions.d.ts.map +0 -1
  676. package/dist/types/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +0 -11
  677. package/dist/types/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.d.ts.map +0 -1
  678. package/dist/types/src/cubing/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts +0 -10
  679. package/dist/types/src/cubing/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts.map +0 -1
  680. package/dist/types/src/cubing/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts +0 -14
  681. package/dist/types/src/cubing/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts.map +0 -1
  682. package/dist/types/src/cubing/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts +0 -10
  683. package/dist/types/src/cubing/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts.map +0 -1
  684. package/dist/types/src/cubing/twisty/model/props/puzzle/state/SetupTransformationProp.d.ts +0 -6
  685. package/dist/types/src/cubing/twisty/model/props/puzzle/state/SetupTransformationProp.d.ts.map +0 -1
  686. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts +0 -11
  687. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts.map +0 -1
  688. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts +0 -6
  689. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts.map +0 -1
  690. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts +0 -11
  691. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts.map +0 -1
  692. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +0 -27
  693. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts.map +0 -1
  694. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts +0 -13
  695. package/dist/types/src/cubing/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts.map +0 -1
  696. package/dist/types/src/cubing/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts +0 -25
  697. package/dist/types/src/cubing/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts.map +0 -1
  698. package/dist/types/src/cubing/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts +0 -24
  699. package/dist/types/src/cubing/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts.map +0 -1
  700. package/dist/types/src/cubing/twisty/model/props/timeline/PlayingInfoProp.d.ts +0 -15
  701. package/dist/types/src/cubing/twisty/model/props/timeline/PlayingInfoProp.d.ts.map +0 -1
  702. package/dist/types/src/cubing/twisty/model/props/timeline/TempoScaleProp.d.ts +0 -6
  703. package/dist/types/src/cubing/twisty/model/props/timeline/TempoScaleProp.d.ts.map +0 -1
  704. package/dist/types/src/cubing/twisty/model/props/timeline/TimestampRequestProp.d.ts +0 -17
  705. package/dist/types/src/cubing/twisty/model/props/timeline/TimestampRequestProp.d.ts.map +0 -1
  706. package/dist/types/src/cubing/twisty/model/props/viewer/BackViewProp.d.ts +0 -12
  707. package/dist/types/src/cubing/twisty/model/props/viewer/BackViewProp.d.ts.map +0 -1
  708. package/dist/types/src/cubing/twisty/model/props/viewer/BackgroundProp.d.ts +0 -12
  709. package/dist/types/src/cubing/twisty/model/props/viewer/BackgroundProp.d.ts.map +0 -1
  710. package/dist/types/src/cubing/twisty/model/props/viewer/ButtonAppearanceProp.d.ts +0 -22
  711. package/dist/types/src/cubing/twisty/model/props/viewer/ButtonAppearanceProp.d.ts.map +0 -1
  712. package/dist/types/src/cubing/twisty/model/props/viewer/ControlPanelProp.d.ts +0 -11
  713. package/dist/types/src/cubing/twisty/model/props/viewer/ControlPanelProp.d.ts.map +0 -1
  714. package/dist/types/src/cubing/twisty/model/props/viewer/DOMElementReferenceProp.d.ts +0 -5
  715. package/dist/types/src/cubing/twisty/model/props/viewer/DOMElementReferenceProp.d.ts.map +0 -1
  716. package/dist/types/src/cubing/twisty/model/props/viewer/DarkModeProp.d.ts +0 -10
  717. package/dist/types/src/cubing/twisty/model/props/viewer/DarkModeProp.d.ts.map +0 -1
  718. package/dist/types/src/cubing/twisty/model/props/viewer/DarkModeRequestProp.d.ts +0 -11
  719. package/dist/types/src/cubing/twisty/model/props/viewer/DarkModeRequestProp.d.ts.map +0 -1
  720. package/dist/types/src/cubing/twisty/model/props/viewer/LatitudeLimit.d.ts +0 -6
  721. package/dist/types/src/cubing/twisty/model/props/viewer/LatitudeLimit.d.ts.map +0 -1
  722. package/dist/types/src/cubing/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts +0 -29
  723. package/dist/types/src/cubing/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts.map +0 -1
  724. package/dist/types/src/cubing/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts +0 -15
  725. package/dist/types/src/cubing/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts.map +0 -1
  726. package/dist/types/src/cubing/twisty/model/props/viewer/TimeRangeProp.d.ts +0 -11
  727. package/dist/types/src/cubing/twisty/model/props/viewer/TimeRangeProp.d.ts.map +0 -1
  728. package/dist/types/src/cubing/twisty/model/props/viewer/ViewerLinkProp.d.ts +0 -12
  729. package/dist/types/src/cubing/twisty/model/props/viewer/ViewerLinkProp.d.ts.map +0 -1
  730. package/dist/types/src/cubing/twisty/model/props/viewer/VisualizationProp.d.ts +0 -13
  731. package/dist/types/src/cubing/twisty/model/props/viewer/VisualizationProp.d.ts.map +0 -1
  732. package/dist/types/src/cubing/twisty/model/props/viewer/VisualizationStrategyProp.d.ts +0 -13
  733. package/dist/types/src/cubing/twisty/model/props/viewer/VisualizationStrategyProp.d.ts.map +0 -1
  734. package/dist/types/src/cubing/twisty/views/2D/KPuzzleSVGWrapper.d.ts +0 -19
  735. package/dist/types/src/cubing/twisty/views/2D/KPuzzleSVGWrapper.d.ts.map +0 -1
  736. package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzle.css.d.ts +0 -3
  737. package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzle.css.d.ts.map +0 -1
  738. package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzle.d.ts +0 -28
  739. package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzle.d.ts.map +0 -1
  740. package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts +0 -16
  741. package/dist/types/src/cubing/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts.map +0 -1
  742. package/dist/types/src/cubing/twisty/views/2D/Twisty2DSceneWrapper.d.ts +0 -20
  743. package/dist/types/src/cubing/twisty/views/2D/Twisty2DSceneWrapper.d.ts.map +0 -1
  744. package/dist/types/src/cubing/twisty/views/3D/DragTracker.d.ts +0 -31
  745. package/dist/types/src/cubing/twisty/views/3D/DragTracker.d.ts.map +0 -1
  746. package/dist/types/src/cubing/twisty/views/3D/RendererPool.d.ts +0 -5
  747. package/dist/types/src/cubing/twisty/views/3D/RendererPool.d.ts.map +0 -1
  748. package/dist/types/src/cubing/twisty/views/3D/TAU.d.ts +0 -3
  749. package/dist/types/src/cubing/twisty/views/3D/TAU.d.ts.map +0 -1
  750. package/dist/types/src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts +0 -22
  751. package/dist/types/src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts.map +0 -1
  752. package/dist/types/src/cubing/twisty/views/3D/Twisty3DRenderTarget.d.ts +0 -4
  753. package/dist/types/src/cubing/twisty/views/3D/Twisty3DRenderTarget.d.ts.map +0 -1
  754. package/dist/types/src/cubing/twisty/views/3D/Twisty3DScene.d.ts +0 -15
  755. package/dist/types/src/cubing/twisty/views/3D/Twisty3DScene.d.ts.map +0 -1
  756. package/dist/types/src/cubing/twisty/views/3D/Twisty3DSceneWrapper.d.ts +0 -36
  757. package/dist/types/src/cubing/twisty/views/3D/Twisty3DSceneWrapper.d.ts.map +0 -1
  758. package/dist/types/src/cubing/twisty/views/3D/Twisty3DVantage.css.d.ts +0 -3
  759. package/dist/types/src/cubing/twisty/views/3D/Twisty3DVantage.css.d.ts.map +0 -1
  760. package/dist/types/src/cubing/twisty/views/3D/Twisty3DVantage.d.ts +0 -37
  761. package/dist/types/src/cubing/twisty/views/3D/Twisty3DVantage.d.ts.map +0 -1
  762. package/dist/types/src/cubing/twisty/views/3D/TwistyOrbitControls.d.ts +0 -24
  763. package/dist/types/src/cubing/twisty/views/3D/TwistyOrbitControls.d.ts.map +0 -1
  764. package/dist/types/src/cubing/twisty/views/3D/TwistyOrbitControls.spec.d.ts +0 -2
  765. package/dist/types/src/cubing/twisty/views/3D/TwistyOrbitControls.spec.d.ts.map +0 -1
  766. package/dist/types/src/cubing/twisty/views/3D/puzzles/Cube3D.d.ts +0 -61
  767. package/dist/types/src/cubing/twisty/views/3D/puzzles/Cube3D.d.ts.map +0 -1
  768. package/dist/types/src/cubing/twisty/views/3D/puzzles/PG3D.d.ts +0 -67
  769. package/dist/types/src/cubing/twisty/views/3D/puzzles/PG3D.d.ts.map +0 -1
  770. package/dist/types/src/cubing/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts +0 -8
  771. package/dist/types/src/cubing/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts.map +0 -1
  772. package/dist/types/src/cubing/twisty/views/ClassListManager.d.ts +0 -11
  773. package/dist/types/src/cubing/twisty/views/ClassListManager.d.ts.map +0 -1
  774. package/dist/types/src/cubing/twisty/views/InitialValueTracker.d.ts +0 -7
  775. package/dist/types/src/cubing/twisty/views/InitialValueTracker.d.ts.map +0 -1
  776. package/dist/types/src/cubing/twisty/views/ManagedCustomElement.d.ts +0 -20
  777. package/dist/types/src/cubing/twisty/views/ManagedCustomElement.d.ts.map +0 -1
  778. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/LeafTokens.d.ts +0 -18
  779. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/LeafTokens.d.ts.map +0 -1
  780. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts +0 -3
  781. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts.map +0 -1
  782. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts +0 -47
  783. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts.map +0 -1
  784. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts +0 -2
  785. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts.map +0 -1
  786. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/model.d.ts +0 -61
  787. package/dist/types/src/cubing/twisty/views/TwistyAlgEditor/model.d.ts.map +0 -1
  788. package/dist/types/src/cubing/twisty/views/TwistyAlgViewer.css.d.ts +0 -3
  789. package/dist/types/src/cubing/twisty/views/TwistyAlgViewer.css.d.ts.map +0 -1
  790. package/dist/types/src/cubing/twisty/views/TwistyAlgViewer.d.ts +0 -59
  791. package/dist/types/src/cubing/twisty/views/TwistyAlgViewer.d.ts.map +0 -1
  792. package/dist/types/src/cubing/twisty/views/TwistyPlayer.css.d.ts +0 -3
  793. package/dist/types/src/cubing/twisty/views/TwistyPlayer.css.d.ts.map +0 -1
  794. package/dist/types/src/cubing/twisty/views/TwistyPlayer.d.ts +0 -173
  795. package/dist/types/src/cubing/twisty/views/TwistyPlayer.d.ts.map +0 -1
  796. package/dist/types/src/cubing/twisty/views/TwistyPlayerSettable.d.ts +0 -99
  797. package/dist/types/src/cubing/twisty/views/TwistyPlayerSettable.d.ts.map +0 -1
  798. package/dist/types/src/cubing/twisty/views/TwistyViewerWrapper.css.d.ts +0 -3
  799. package/dist/types/src/cubing/twisty/views/TwistyViewerWrapper.css.d.ts.map +0 -1
  800. package/dist/types/src/cubing/twisty/views/canvas.d.ts +0 -3
  801. package/dist/types/src/cubing/twisty/views/canvas.d.ts.map +0 -1
  802. package/dist/types/src/cubing/twisty/views/control-panel/TwistyButtons.css.d.ts +0 -4
  803. package/dist/types/src/cubing/twisty/views/control-panel/TwistyButtons.css.d.ts.map +0 -1
  804. package/dist/types/src/cubing/twisty/views/control-panel/TwistyButtons.d.ts +0 -36
  805. package/dist/types/src/cubing/twisty/views/control-panel/TwistyButtons.d.ts.map +0 -1
  806. package/dist/types/src/cubing/twisty/views/control-panel/TwistyScrubber.css.d.ts +0 -3
  807. package/dist/types/src/cubing/twisty/views/control-panel/TwistyScrubber.css.d.ts.map +0 -1
  808. package/dist/types/src/cubing/twisty/views/control-panel/TwistyScrubber.d.ts +0 -19
  809. package/dist/types/src/cubing/twisty/views/control-panel/TwistyScrubber.d.ts.map +0 -1
  810. package/dist/types/src/cubing/twisty/views/control-panel/webkit-fullscreen.d.ts +0 -15
  811. package/dist/types/src/cubing/twisty/views/control-panel/webkit-fullscreen.d.ts.map +0 -1
  812. package/dist/types/src/cubing/twisty/views/document.d.ts +0 -2
  813. package/dist/types/src/cubing/twisty/views/document.d.ts.map +0 -1
  814. package/dist/types/src/cubing/twisty/views/node-custom-element-shims.d.ts +0 -5
  815. package/dist/types/src/cubing/twisty/views/node-custom-element-shims.d.ts.map +0 -1
  816. package/dist/types/src/cubing/twisty/views/screenshot.d.ts +0 -12
  817. package/dist/types/src/cubing/twisty/views/screenshot.d.ts.map +0 -1
  818. package/dist/types/src/cubing/twisty/views/stream/TwistyStreamSource.css.d.ts +0 -3
  819. package/dist/types/src/cubing/twisty/views/stream/TwistyStreamSource.css.d.ts.map +0 -1
  820. package/dist/types/src/cubing/twisty/views/stream/TwistyStreamSource.d.ts +0 -18
  821. package/dist/types/src/cubing/twisty/views/stream/TwistyStreamSource.d.ts.map +0 -1
  822. package/dist/types/src/cubing/twisty/views/twizzle/TwizzleLink.css.d.ts +0 -4
  823. package/dist/types/src/cubing/twisty/views/twizzle/TwizzleLink.css.d.ts.map +0 -1
  824. package/dist/types/src/cubing/twisty/views/twizzle/TwizzleLink.d.ts +0 -22
  825. package/dist/types/src/cubing/twisty/views/twizzle/TwizzleLink.d.ts.map +0 -1
  826. package/dist/types/src/cubing/twisty/views/twizzle/url-params.d.ts +0 -20
  827. package/dist/types/src/cubing/twisty/views/twizzle/url-params.d.ts.map +0 -1
  828. package/dist/types/src/cubing/vendor/comlink-everywhere/inside/index.d.ts +0 -5
  829. package/dist/types/src/cubing/vendor/comlink-everywhere/inside/index.d.ts.map +0 -1
  830. package/dist/types/src/cubing/vendor/comlink-everywhere/node-adapter.d.ts +0 -7
  831. package/dist/types/src/cubing/vendor/comlink-everywhere/node-adapter.d.ts.map +0 -1
  832. package/dist/types/src/cubing/vendor/comlink-everywhere/outside/index.d.ts +0 -6
  833. package/dist/types/src/cubing/vendor/comlink-everywhere/outside/index.d.ts.map +0 -1
  834. package/dist/types/src/cubing/vendor/cstimer/src/js/lib/mathlib.d.ts +0 -5
  835. package/dist/types/src/cubing/vendor/cstimer/src/js/lib/mathlib.d.ts.map +0 -1
  836. package/dist/types/src/cubing/vendor/cstimer/src/js/scramble/444-solver.d.ts +0 -4
  837. package/dist/types/src/cubing/vendor/cstimer/src/js/scramble/444-solver.d.ts.map +0 -1
  838. package/dist/types/src/cubing/vendor/min2phase/3x3x3-min2phase.d.ts +0 -3
  839. package/dist/types/src/cubing/vendor/min2phase/3x3x3-min2phase.d.ts.map +0 -1
  840. package/dist/types/src/cubing/vendor/p-lazy/p-lazy.d.ts +0 -10
  841. package/dist/types/src/cubing/vendor/p-lazy/p-lazy.d.ts.map +0 -1
  842. package/dist/types/src/cubing/vendor/sq12phase/sq1-solver.d.ts +0 -2
  843. package/dist/types/src/cubing/vendor/sq12phase/sq1-solver.d.ts.map +0 -1
  844. package/dist/types/src/cubing/vendor/three/examples/jsm/libs/stats.modified.module.d.ts +0 -33
  845. package/dist/types/src/cubing/vendor/three/examples/jsm/libs/stats.modified.module.d.ts.map +0 -1
  846. package/dist/types/src/cubing/vendor/twsearch/index.d.ts +0 -24
  847. package/dist/types/src/cubing/vendor/twsearch/index.d.ts.map +0 -1
  848. package/dist/types/src/cubing/vendor/twsearch/twsearch-PTN3QM26.d.ts +0 -3
  849. package/dist/types/src/cubing/vendor/twsearch/twsearch-PTN3QM26.d.ts.map +0 -1
  850. package/dist/types/src/cubing/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts +0 -4
  851. package/dist/types/src/cubing/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts.map +0 -1
  852. package/dist/types/src/cubing/vendor/xyzzy/fto-solver-original.d.ts +0 -149
  853. package/dist/types/src/cubing/vendor/xyzzy/fto-solver-original.d.ts.map +0 -1
  854. package/dist/types/src/cubing/vendor/xyzzy/fto-solver.d.ts +0 -2
  855. package/dist/types/src/cubing/vendor/xyzzy/fto-solver.d.ts.map +0 -1
  856. package/dist/types/src/cubing/vendor/xyzzy/kilosolver.d.ts +0 -3
  857. package/dist/types/src/cubing/vendor/xyzzy/kilosolver.d.ts.map +0 -1
  858. package/dist/types/src/cubing/vendor/xyzzy/master_tetraminx-solver.d.ts +0 -2
  859. package/dist/types/src/cubing/vendor/xyzzy/master_tetraminx-solver.d.ts.map +0 -1
  860. package/dist/types/src/cubing/vendor/xyzzy/redi_cube.d.ts +0 -3
  861. package/dist/types/src/cubing/vendor/xyzzy/redi_cube.d.ts.map +0 -1
  862. package/dist/types/src/sites/alpha.twizzle.net/edit/app.d.ts +0 -55
  863. package/dist/types/src/sites/alpha.twizzle.net/edit/app.d.ts.map +0 -1
  864. package/dist/types/src/sites/alpha.twizzle.net/edit/dom.d.ts +0 -3
  865. package/dist/types/src/sites/alpha.twizzle.net/edit/dom.d.ts.map +0 -1
  866. package/dist/types/src/sites/alpha.twizzle.net/edit/examples.d.ts +0 -3
  867. package/dist/types/src/sites/alpha.twizzle.net/edit/examples.d.ts.map +0 -1
  868. package/dist/types/src/sites/alpha.twizzle.net/edit/main.d.ts +0 -2
  869. package/dist/types/src/sites/alpha.twizzle.net/edit/main.d.ts.map +0 -1
  870. package/dist/types/src/sites/alpha.twizzle.net/edit/strings.d.ts +0 -2
  871. package/dist/types/src/sites/alpha.twizzle.net/edit/strings.d.ts.map +0 -1
  872. package/dist/types/src/sites/alpha.twizzle.net/edit/supported-puzzles.d.ts +0 -32
  873. package/dist/types/src/sites/alpha.twizzle.net/edit/supported-puzzles.d.ts.map +0 -1
  874. package/dist/types/src/sites/alpha.twizzle.net/explore/TwistyPuzzleDescriptionInput.d.ts +0 -19
  875. package/dist/types/src/sites/alpha.twizzle.net/explore/TwistyPuzzleDescriptionInput.d.ts.map +0 -1
  876. package/dist/types/src/sites/alpha.twizzle.net/explore/app.d.ts +0 -35
  877. package/dist/types/src/sites/alpha.twizzle.net/explore/app.d.ts.map +0 -1
  878. package/dist/types/src/sites/alpha.twizzle.net/explore/main.d.ts +0 -2
  879. package/dist/types/src/sites/alpha.twizzle.net/explore/main.d.ts.map +0 -1
  880. package/dist/types/src/sites/alpha.twizzle.net/explore/prop-inputs.d.ts +0 -3
  881. package/dist/types/src/sites/alpha.twizzle.net/explore/prop-inputs.d.ts.map +0 -1
  882. package/dist/types/src/sites/alpha.twizzle.net/explore/twisty-player.d.ts +0 -3
  883. package/dist/types/src/sites/alpha.twizzle.net/explore/twisty-player.d.ts.map +0 -1
  884. package/dist/types/src/sites/alpha.twizzle.net/explore/url-params.d.ts +0 -25
  885. package/dist/types/src/sites/alpha.twizzle.net/explore/url-params.d.ts.map +0 -1
  886. package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/convert.d.ts +0 -9
  887. package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/convert.d.ts.map +0 -1
  888. package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/index.d.ts +0 -3
  889. package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/index.d.ts.map +0 -1
  890. package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/tests.d.ts +0 -2
  891. package/dist/types/src/sites/experiments.cubing.net/cubing.js/3x3x3-formats/tests.d.ts.map +0 -1
  892. package/dist/types/src/sites/experiments.cubing.net/cubing.js/alg/extractor.d.ts +0 -3
  893. package/dist/types/src/sites/experiments.cubing.net/cubing.js/alg/extractor.d.ts.map +0 -1
  894. package/dist/types/src/sites/experiments.cubing.net/cubing.js/alg/inspector.d.ts +0 -2
  895. package/dist/types/src/sites/experiments.cubing.net/cubing.js/alg/inspector.d.ts.map +0 -1
  896. package/dist/types/src/sites/experiments.cubing.net/cubing.js/applet-wrappers/AnimCube/TwistyAnimCube.d.ts +0 -9
  897. package/dist/types/src/sites/experiments.cubing.net/cubing.js/applet-wrappers/AnimCube/TwistyAnimCube.d.ts.map +0 -1
  898. package/dist/types/src/sites/experiments.cubing.net/cubing.js/bluetooth/index.d.ts +0 -2
  899. package/dist/types/src/sites/experiments.cubing.net/cubing.js/bluetooth/index.d.ts.map +0 -1
  900. package/dist/types/src/sites/experiments.cubing.net/cubing.js/console/index.d.ts +0 -25
  901. package/dist/types/src/sites/experiments.cubing.net/cubing.js/console/index.d.ts.map +0 -1
  902. package/dist/types/src/sites/experiments.cubing.net/cubing.js/flag/index.d.ts +0 -1
  903. package/dist/types/src/sites/experiments.cubing.net/cubing.js/flag/index.d.ts.map +0 -1
  904. package/dist/types/src/sites/experiments.cubing.net/cubing.js/kpuzzle/svg.d.ts +0 -2
  905. package/dist/types/src/sites/experiments.cubing.net/cubing.js/kpuzzle/svg.d.ts.map +0 -1
  906. package/dist/types/src/sites/experiments.cubing.net/cubing.js/mark3/index.d.ts +0 -2
  907. package/dist/types/src/sites/experiments.cubing.net/cubing.js/mark3/index.d.ts.map +0 -1
  908. package/dist/types/src/sites/experiments.cubing.net/cubing.js/multi-alg/index.d.ts +0 -2
  909. package/dist/types/src/sites/experiments.cubing.net/cubing.js/multi-alg/index.d.ts.map +0 -1
  910. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/index.d.ts +0 -2
  911. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/index.d.ts.map +0 -1
  912. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeGrid.d.ts +0 -25
  913. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeGrid.d.ts.map +0 -1
  914. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeTracker.d.ts +0 -21
  915. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeTracker.d.ts.map +0 -1
  916. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeyPuzzle.d.ts +0 -22
  917. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/input/SwipeyPuzzle.d.ts.map +0 -1
  918. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/url-params.d.ts +0 -20
  919. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/url-params.d.ts.map +0 -1
  920. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/websocket-proxy.d.ts +0 -7
  921. package/dist/types/src/sites/experiments.cubing.net/cubing.js/play/websocket-proxy.d.ts.map +0 -1
  922. package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/index.d.ts +0 -2
  923. package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/index.d.ts.map +0 -1
  924. package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/logs/index.d.ts +0 -2
  925. package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/logs/index.d.ts.map +0 -1
  926. package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/logs/normalize.d.ts +0 -3
  927. package/dist/types/src/sites/experiments.cubing.net/cubing.js/robot/logs/normalize.d.ts.map +0 -1
  928. package/dist/types/src/sites/experiments.cubing.net/cubing.js/scramble/index.d.ts +0 -2
  929. package/dist/types/src/sites/experiments.cubing.net/cubing.js/scramble/index.d.ts.map +0 -1
  930. package/dist/types/src/sites/experiments.cubing.net/cubing.js/screenshot/index.d.ts +0 -2
  931. package/dist/types/src/sites/experiments.cubing.net/cubing.js/screenshot/index.d.ts.map +0 -1
  932. package/dist/types/src/sites/experiments.cubing.net/cubing.js/spec/binary/index.d.ts +0 -4
  933. package/dist/types/src/sites/experiments.cubing.net/cubing.js/spec/binary/index.d.ts.map +0 -1
  934. package/dist/types/src/sites/experiments.cubing.net/cubing.js/speechcubing/index.d.ts +0 -2
  935. package/dist/types/src/sites/experiments.cubing.net/cubing.js/speechcubing/index.d.ts.map +0 -1
  936. package/dist/types/src/sites/experiments.cubing.net/cubing.js/stream/reorient.d.ts +0 -3
  937. package/dist/types/src/sites/experiments.cubing.net/cubing.js/stream/reorient.d.ts.map +0 -1
  938. package/dist/types/src/sites/experiments.cubing.net/cubing.js/stress-tests/2x2x2-devils-alg.d.ts +0 -2
  939. package/dist/types/src/sites/experiments.cubing.net/cubing.js/stress-tests/2x2x2-devils-alg.d.ts.map +0 -1
  940. package/dist/types/src/sites/experiments.cubing.net/cubing.js/stress-tests/40x40x40.d.ts +0 -2
  941. package/dist/types/src/sites/experiments.cubing.net/cubing.js/stress-tests/40x40x40.d.ts.map +0 -1
  942. package/dist/types/src/sites/experiments.cubing.net/cubing.js/stub/stub.d.ts +0 -2
  943. package/dist/types/src/sites/experiments.cubing.net/cubing.js/stub/stub.d.ts.map +0 -1
  944. package/dist/types/src/sites/experiments.cubing.net/cubing.js/svg-state-editor/index.d.ts +0 -2
  945. package/dist/types/src/sites/experiments.cubing.net/cubing.js/svg-state-editor/index.d.ts.map +0 -1
  946. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/2d-stickering.d.ts +0 -2
  947. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/2d-stickering.d.ts.map +0 -1
  948. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/attributes.d.ts +0 -2
  949. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/attributes.d.ts.map +0 -1
  950. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/cube3d-stickering.d.ts +0 -2
  951. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/cube3d-stickering.d.ts.map +0 -1
  952. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/demo-player.d.ts +0 -2
  953. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/demo-player.d.ts.map +0 -1
  954. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/demo-spin-camera.d.ts +0 -4
  955. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/demo-spin-camera.d.ts.map +0 -1
  956. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/inline.d.ts +0 -2
  957. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/inline.d.ts.map +0 -1
  958. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/ll.d.ts +0 -2
  959. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/ll.d.ts.map +0 -1
  960. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/puzzle-description.d.ts +0 -2
  961. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/puzzle-description.d.ts.map +0 -1
  962. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/simultaneous.d.ts +0 -2
  963. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/simultaneous.d.ts.map +0 -1
  964. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/stickering-demo-algs.d.ts +0 -3
  965. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/stickering-demo-algs.d.ts.map +0 -1
  966. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/svg.d.ts +0 -2
  967. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/svg.d.ts.map +0 -1
  968. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-alg-editor/index.d.ts +0 -2
  969. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-alg-editor/index.d.ts.map +0 -1
  970. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-alg-viewer.d.ts +0 -2
  971. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-alg-viewer.d.ts.map +0 -1
  972. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-config.d.ts +0 -2
  973. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-config.d.ts.map +0 -1
  974. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-props/TwistyPropDebugger.d.ts +0 -27
  975. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-props/TwistyPropDebugger.d.ts.map +0 -1
  976. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-props/index.d.ts +0 -2
  977. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty-player-props/index.d.ts.map +0 -1
  978. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty.d.ts +0 -2
  979. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twisty/twisty.d.ts.map +0 -1
  980. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/index.d.ts +0 -1
  981. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/index.d.ts.map +0 -1
  982. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/jszip-wrapper.d.ts +0 -2
  983. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/jszip-wrapper.d.ts.map +0 -1
  984. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/svg/index.d.ts +0 -12
  985. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twizzle-diaries/intro/svg/index.d.ts.map +0 -1
  986. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twsearch/benchmark.d.ts +0 -2
  987. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twsearch/benchmark.d.ts.map +0 -1
  988. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twsearch/index.d.ts +0 -2
  989. package/dist/types/src/sites/experiments.cubing.net/cubing.js/twsearch/index.d.ts.map +0 -1
  990. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/config.d.ts +0 -7
  991. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/config.d.ts.map +0 -1
  992. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/index.d.ts +0 -1
  993. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/index.d.ts.map +0 -1
  994. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/proxy/index.d.ts +0 -2
  995. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/proxy/index.d.ts.map +0 -1
  996. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/room.d.ts +0 -12
  997. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/room.d.ts.map +0 -1
  998. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-cube.d.ts +0 -1
  999. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-cube.d.ts.map +0 -1
  1000. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-input.d.ts +0 -35
  1001. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-input.d.ts.map +0 -1
  1002. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-pg3d.d.ts +0 -1
  1003. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-pg3d.d.ts.map +0 -1
  1004. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-puzzle.d.ts +0 -6
  1005. package/dist/types/src/sites/experiments.cubing.net/cubing.js/vr/vr-puzzle.d.ts.map +0 -1
  1006. package/dist/types/src/test/chai-workarounds/Alg.chai.d.ts +0 -22
  1007. package/dist/types/src/test/chai-workarounds/Alg.chai.d.ts.map +0 -1
  1008. package/dist/types/src/test/chai-workarounds/chai.d.ts +0 -4
  1009. package/dist/types/src/test/chai-workarounds/chai.d.ts.map +0 -1
  1010. package/dist/types/src/test/chai-workarounds/index.d.ts +0 -11
  1011. package/dist/types/src/test/chai-workarounds/index.d.ts.map +0 -1
@@ -1,9 +1,9 @@
1
- import { P as PuzzleID, a as PuzzleLoader } from '../TwizzleLink-f790571d.js';
2
- export { a as PuzzleLoader } from '../TwizzleLink-f790571d.js';
1
+ import { P as PuzzleID, a as PuzzleLoader } from '../TwizzleLink-9873b9f1.js';
2
+ export { a as PuzzleLoader } from '../TwizzleLink-9873b9f1.js';
3
3
  import 'three';
4
- import '../Alg-8b4e9255.js';
5
- import '../parseAlg-2dd4194b.js';
6
- import '../KState-0da22515.js';
4
+ import '../Alg-c6770822.js';
5
+ import '../parseAlg-d2c83795.js';
6
+ import '../KState-fa1880c8.js';
7
7
 
8
8
  interface EventInfo {
9
9
  puzzleID: PuzzleID;
@@ -1,3 +1,3 @@
1
- export { r as randomScrambleForEvent } from '../outside-074a0f79.js';
2
- import '../Alg-8b4e9255.js';
3
- import '../KState-0da22515.js';
1
+ export { r as randomScrambleForEvent } from '../outside-f29a27bc.js';
2
+ import '../Alg-c6770822.js';
3
+ import '../KState-fa1880c8.js';
@@ -1,6 +1,6 @@
1
- export { a as experimentalSolve2x2x2, e as experimentalSolve3x3x3IgnoringCenters, f as experimentalSolveTwsearch, d as setDebug, c as solveMegaminx, b as solvePyraminx, s as solveSkewb } from '../outside-074a0f79.js';
2
- import { K as KState } from '../KState-0da22515.js';
3
- import '../Alg-8b4e9255.js';
1
+ export { a as experimentalSolve2x2x2, e as experimentalSolve3x3x3IgnoringCenters, f as experimentalSolveTwsearch, d as setDebug, c as solveMegaminx, b as solvePyraminx, s as solveSkewb } from '../outside-f29a27bc.js';
2
+ import { K as KState } from '../KState-fa1880c8.js';
3
+ import '../Alg-c6770822.js';
4
4
 
5
5
  declare function random333State(): Promise<KState>;
6
6
 
@@ -1,6 +1,6 @@
1
- import { A as AlgLeafEvent, O as OrientationEvent } from '../bluetooth-puzzle-62e2b423.js';
2
- import '../Alg-8b4e9255.js';
3
- import '../KState-0da22515.js';
1
+ import { A as AlgLeafEvent, O as OrientationEvent } from '../bluetooth-puzzle-1cb7db76.js';
2
+ import '../Alg-c6770822.js';
3
+ import '../KState-fa1880c8.js';
4
4
 
5
5
  interface ProxyMoveEvent {
6
6
  event: "move";
@@ -13,7 +13,7 @@ interface ProxyOrientationEvent {
13
13
  interface ProxyResetEvent {
14
14
  event: "reset";
15
15
  }
16
- declare type ProxyEvent = ProxyMoveEvent | ProxyOrientationEvent | ProxyResetEvent;
16
+ type ProxyEvent = ProxyMoveEvent | ProxyOrientationEvent | ProxyResetEvent;
17
17
 
18
18
  declare class WebSocketProxySender {
19
19
  protected websocket: WebSocket;
@@ -40,7 +40,7 @@ declare class TwizzleStream extends EventTarget {
40
40
  constructor(url: string);
41
41
  onMessage(msg: MessageEvent): void;
42
42
  }
43
- declare type StreamsField = {
43
+ type StreamsField = {
44
44
  streamID: string;
45
45
  senders: {
46
46
  name: string;
@@ -1,9 +1,9 @@
1
- import { A as AlgIndexer, T as Timestamp, D as Duration, S as StickeringMask } from '../TwizzleLink-f790571d.js';
2
- export { A as AlgIndexer, B as BackViewLayout, N as EXPERIMENTAL_PROP_NO_VALUE, M as ExperimentalMillisecondTimestamp, E as ExperimentalStickering, P as PuzzleID, d as TwistyAlgEditor, c as TwistyAlgViewer, b as TwistyPlayer, e as TwistyPlayerConfig, g as TwizzleLink, V as VisualizationFormat, f as backViewLayouts } from '../TwizzleLink-f790571d.js';
3
- import { a as Alg, M as Move } from '../Alg-8b4e9255.js';
4
- import { a as KPuzzle, K as KState, e as KTransformation } from '../KState-0da22515.js';
1
+ import { A as AlgIndexer, T as Timestamp, D as Duration, S as StickeringMask } from '../TwizzleLink-9873b9f1.js';
2
+ export { A as AlgIndexer, B as BackViewLayout, N as EXPERIMENTAL_PROP_NO_VALUE, M as ExperimentalMillisecondTimestamp, E as ExperimentalStickering, P as PuzzleID, d as TwistyAlgEditor, c as TwistyAlgViewer, b as TwistyPlayer, e as TwistyPlayerConfig, g as TwizzleLink, V as VisualizationFormat, f as backViewLayouts } from '../TwizzleLink-9873b9f1.js';
3
+ import { a as Alg, M as Move } from '../Alg-c6770822.js';
4
+ import { a as KPuzzle, K as KState, e as KTransformation } from '../KState-fa1880c8.js';
5
5
  import 'three';
6
- import '../parseAlg-2dd4194b.js';
6
+ import '../parseAlg-d2c83795.js';
7
7
 
8
8
  declare const twistyDebugGlobals: {
9
9
  shareAllNewRenderers: "auto" | "always" | "never";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cubing",
3
- "version": "0.34.5",
3
+ "version": "0.35.0",
4
4
  "description": "A collection of JavaScript cubing libraries.",
5
5
  "author": "The js.cubing.net team",
6
6
  "type": "module",
@@ -53,36 +53,36 @@
53
53
  }
54
54
  },
55
55
  "dependencies": {
56
- "@types/three": "^0.144.0",
57
- "@types/web-bluetooth": "^0.0.15",
56
+ "@types/three": "^0.146.0",
57
+ "@types/web-bluetooth": "^0.0.16",
58
58
  "comlink": "^4.3.1",
59
59
  "random-uint-below": "^2.0.0",
60
- "three": "^0.144.0"
60
+ "three": "^0.147.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@esm-bundle/chai": "^4.3.4-fix.0",
64
- "@types/chai": "^4.3.3",
64
+ "@types/chai": "^4.3.4",
65
65
  "@types/dom-speech-recognition": "^0.0.1",
66
- "@types/mocha": "^9.1.1",
67
- "@types/node": "^18.7.2",
66
+ "@types/mocha": "^10.0.1",
67
+ "@types/node": "^18.11.13",
68
68
  "@types/node-fetch": "^2.6.2",
69
- "@types/yargs": "^17.0.12",
70
- "@web/dev-server-esbuild": "^0.3.2",
71
- "@web/test-runner": "^0.14.0",
72
- "@web/test-runner-playwright": "^0.8.10",
73
- "barely-a-dev-server": "^0.4.3",
74
- "chai": "^4.3.6",
75
- "esbuild": "^0.15.3",
69
+ "@types/yargs": "^17.0.17",
70
+ "@web/dev-server-esbuild": "^0.3.3",
71
+ "@web/test-runner": "^0.15.0",
72
+ "@web/test-runner-playwright": "^0.9.0",
73
+ "barely-a-dev-server": "^0.4.7",
74
+ "chai": "^4.3.7",
75
+ "esbuild": "^0.16.4",
76
76
  "jszip": "^3.10.1",
77
- "mocha": "^10.0.0",
78
- "node-fetch": "^3.2.10",
77
+ "mocha": "^10.2.0",
78
+ "node-fetch": "^3.3.0",
79
79
  "peggy": "^2.0.1",
80
- "playwright": "^1.25.1",
81
- "rome": "^11.0.0",
82
- "tsup": "^6.2.2",
83
- "typedoc": "^0.23.18",
84
- "typescript": "^4.7.4",
85
- "yargs": "^17.5.1"
80
+ "playwright": "^1.28.1",
81
+ "rome": "^11.0.0-nightly.fab5440",
82
+ "tsup": "^6.5.0",
83
+ "typedoc": "^0.23.22",
84
+ "typescript": "^4.9.4",
85
+ "yargs": "^17.6.2"
86
86
  },
87
87
  "minimalDevDependencies": [
88
88
  "barely-a-dev-server",
@@ -152,7 +152,7 @@
152
152
  "deploy": "make deploy",
153
153
  "deploy-twizzle": "make deploy-twizzle",
154
154
  "deploy-experiments": "make deploy-experiments",
155
- "vendor-twsearch": "make vendor-twsearch",
155
+ "roll-vendored-twsearch": "make roll-vendored-twsearch",
156
156
  "update-cdn": "make update-cdn"
157
157
  },
158
158
  "keywords": [
package/src/README.md ADDED
@@ -0,0 +1,10 @@
1
+ This folder contains:
2
+
3
+ | Folder | Contents |
4
+ | --------------------------------------------------------------------------------------- | --------------------------------------------------------- |
5
+ | [`./cubing`](./cubing/) | Source code for all `cubing/*` modules |
6
+ | [`./sites/alpha.twizzle.net`](./sites/alpha.twizzle.net/) | Twizzle source. |
7
+ | [`./sites/experiments.cubing.net/cubing.js`](./sites/experiments.cubing.net/cubing.js/) | Dev experiments. |
8
+ | [`./bin`](./bin/) | Code for binaries developed in sync with the library code |
9
+ | [`./docs`](./docs/) | Source for published documentation |
10
+ | [`./test`](./test/) | Code needed for testing. |
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/cubing/alg/common.ts", "../../src/cubing/alg/iteration.ts", "../../src/cubing/alg/limits.ts", "../../src/cubing/alg/AlgBuilder.ts", "../../src/cubing/alg/debug.ts", "../../src/cubing/alg/alg-nodes/containers/Commutator.ts", "../../src/cubing/alg/alg-nodes/containers/Conjugate.ts", "../../src/cubing/alg/alg-nodes/leaves/LineComment.ts", "../../src/cubing/alg/alg-nodes/leaves/Newline.ts", "../../src/cubing/alg/alg-nodes/leaves/Pause.ts", "../../src/cubing/alg/parseAlg.ts", "../../src/cubing/alg/warnOnce.ts", "../../src/cubing/alg/alg-nodes/QuantumWithAmount.ts", "../../src/cubing/alg/alg-nodes/leaves/Move.ts", "../../src/cubing/alg/alg-nodes/containers/Grouping.ts", "../../src/cubing/alg/is.ts", "../../src/cubing/alg/traversal.ts", "../../src/cubing/alg/simplify/options.ts", "../../src/cubing/alg/simplify/append.ts", "../../src/cubing/alg/simplify/simplify.ts", "../../src/cubing/alg/Alg.ts", "../../src/cubing/alg/example.ts", "../../src/cubing/alg/keyboard.ts", "../../src/cubing/alg/url.ts"],
4
- "sourcesContent": ["import type { Alg } from \"./Alg\";\nimport type { IterationDirection } from \"./iteration\";\nimport type { AlgLeaf, AlgNode } from \"./alg-nodes/AlgNode\";\n\nlet writeAlgDebugField = false;\nexport function setAlgDebugField(debug: boolean): void {\n writeAlgDebugField = debug;\n}\n\nexport abstract class Comparable {\n is(c: any): boolean {\n return this instanceof c;\n }\n\n as<T>(c: new (...args: any) => T): T | null {\n return this instanceof c ? this : null;\n }\n\n abstract isIdentical(other: Comparable): boolean;\n}\n\nexport interface Repeatable extends Comparable {\n experimentalExpand(\n iterDir?: IterationDirection,\n depth?: number,\n ): Generator<AlgLeaf>;\n}\n\n// Common to `Alg` or `AlgNode` classes.\nexport abstract class AlgCommon<T extends Alg | AlgNode>\n extends Comparable\n implements Repeatable\n{\n constructor() {\n super();\n if (writeAlgDebugField) {\n Object.defineProperty(this, \"_debugStr\", {\n get: () => {\n return this.toString();\n },\n });\n }\n }\n\n get log(): (message?: any) => void {\n // By returning a (bound) version of `console.log`, we ensure that DevTools\n // logs the call site instead of this function.\n return console.log.bind(console, this, this.toString()) as (\n message?: any,\n ) => void;\n }\n\n abstract override toString(): string;\n\n abstract invert(): T;\n\n abstract experimentalExpand(iterDir: IterationDirection): Generator<AlgLeaf>;\n}\n", "export enum IterationDirection {\n Forwards = 1,\n Backwards = -1,\n}\n\nexport function toggleDirection(\n iterationDirection: IterationDirection,\n flip: boolean = true,\n): IterationDirection {\n if (!flip) {\n return iterationDirection;\n }\n switch (iterationDirection) {\n case IterationDirection.Forwards:\n return IterationDirection.Backwards;\n case IterationDirection.Backwards:\n return IterationDirection.Forwards;\n }\n}\n\nexport function direct<T>(\n g: Iterable<T>,\n iterDir: IterationDirection,\n): Iterable<T> {\n return iterDir === IterationDirection.Backwards ? Array.from(g).reverse() : g;\n}\n\nexport function reverse<T>(g: Iterable<T>): Iterable<T> {\n return Array.from(g).reverse();\n}\n\nexport function* directedGenerator<T>(\n g: Generator<T>,\n direction: IterationDirection,\n): Generator<T> {\n direction === IterationDirection.Backwards\n ? yield* reverseGenerator(g)\n : yield* g;\n}\n\nexport function* reverseGenerator<T>(g: Generator<T>): Generator<T> {\n for (const t of Array.from(g).reverse()) {\n yield t;\n }\n}\n", "export const MAX_INT = 0x7fffffff; // 2^31-1, the max value for signed 32-bit ints.\nexport const MAX_INT_DESCRIPTION = \"2^31 - 1\";\nexport const MIN_INT = -0x80000000;\nexport const MIN_INT_DESCRIPTION = \"-2^31\";\n", "import { Alg } from \"./Alg\";\nimport type { AlgNode } from \"./alg-nodes/AlgNode\";\n\n/** @category Alg */\nexport class AlgBuilder {\n #algNode: AlgNode[] = [];\n\n push(u: AlgNode): void {\n this.#algNode.push(u);\n }\n\n // TODO: Allow FlexibleAlgSource?\n /** @deprecated */\n experimentalPushAlg(alg: Alg): void {\n // TODO: Optimize?\n for (const u of alg.childAlgNodes()) {\n this.push(u);\n }\n }\n\n // TODO: can we guarantee this to be fast in the permanent API?\n experimentalNumAlgNodes(): number {\n return this.#algNode.length;\n }\n\n // can be called multiple times, even if you push alg nodes inbetween.\n toAlg(): Alg {\n return new Alg(this.#algNode);\n }\n\n reset(): void {\n this.#algNode = [];\n }\n}\n", "type ReportingLevel = \"none\" | \"warn\" | \"error\";\nlet currentReportingLevel = \"warn\";\n\nconst MAX_NUMBER_OF_TIMES_TO_WARN = 10;\nlet numWarned = 0;\n\n// TODO: Avoid creating the string message if it won't be used (e.g. by taking a function?).\nexport function reportTypeMismatch(msg: string): void {\n switch (currentReportingLevel) {\n case \"error\":\n throw new Error(msg);\n case \"warn\": {\n numWarned++;\n if (numWarned < MAX_NUMBER_OF_TIMES_TO_WARN) {\n if (numWarned + 1 === MAX_NUMBER_OF_TIMES_TO_WARN) {\n console.warn(msg);\n }\n }\n return;\n }\n }\n}\n\nexport function setAlgPartTypeMismatchReportingLevel(\n level: ReportingLevel,\n): void {\n currentReportingLevel = level;\n}\n\nexport const algDebugGlobals: { caratNISSNotationEnabled: boolean } = {\n caratNISSNotationEnabled: false,\n};\n\nexport function setAlgDebug(options: {\n caratNISSNotationEnabled?: boolean;\n}): void {\n if (\"caratNISSNotationEnabled\" in options) {\n algDebugGlobals.caratNISSNotationEnabled =\n !!options.caratNISSNotationEnabled;\n }\n}\n", "import { Alg, experimentalEnsureAlg, FlexibleAlgSource } from \"../../Alg\";\nimport { AlgCommon, Comparable } from \"../../common\";\nimport { IterationDirection } from \"../../iteration\";\nimport type { AlgLeaf } from \"../AlgNode\";\n\n/** @category Alg Nodes */\nexport class Commutator extends AlgCommon<Commutator> {\n readonly #A: Alg;\n readonly #B: Alg;\n\n constructor(aSource: FlexibleAlgSource, bSource: FlexibleAlgSource) {\n super();\n this.#A = experimentalEnsureAlg(aSource);\n this.#B = experimentalEnsureAlg(bSource);\n }\n\n get A(): Alg {\n return this.#A;\n }\n\n get B(): Alg {\n return this.#B;\n }\n\n isIdentical(other: Comparable): boolean {\n const otherAsCommutator = other.as(Commutator);\n return !!(\n otherAsCommutator?.A.isIdentical(this.A) &&\n otherAsCommutator?.B.isIdentical(this.B)\n );\n }\n\n invert(): Commutator {\n return new Commutator(this.#B, this.#A);\n }\n\n *experimentalExpand(\n iterDir: IterationDirection = IterationDirection.Forwards,\n depth?: number,\n ): Generator<AlgLeaf> {\n depth ??= Infinity;\n if (depth === 0) {\n yield iterDir === IterationDirection.Forwards ? this : this.invert();\n } else {\n if (iterDir === IterationDirection.Forwards) {\n yield* this.A.experimentalExpand(\n IterationDirection.Forwards,\n depth - 1,\n );\n yield* this.B.experimentalExpand(\n IterationDirection.Forwards,\n depth - 1,\n );\n yield* this.A.experimentalExpand(\n IterationDirection.Backwards,\n depth - 1,\n );\n yield* this.B.experimentalExpand(\n IterationDirection.Backwards,\n depth - 1,\n );\n } else {\n yield* this.B.experimentalExpand(\n IterationDirection.Forwards,\n depth - 1,\n );\n yield* this.A.experimentalExpand(\n IterationDirection.Forwards,\n depth - 1,\n );\n yield* this.B.experimentalExpand(\n IterationDirection.Backwards,\n depth - 1,\n );\n yield* this.A.experimentalExpand(\n IterationDirection.Backwards,\n depth - 1,\n );\n }\n }\n }\n\n toString(): string {\n return `[${this.#A.toString()}, ${this.#B.toString()}]`;\n }\n}\n", "import { Alg, experimentalEnsureAlg, FlexibleAlgSource } from \"../../Alg\";\nimport { AlgCommon, Comparable } from \"../../common\";\nimport { IterationDirection } from \"../../iteration\";\nimport type { AlgLeaf } from \"../AlgNode\";\n\n/** @category Alg Nodes */\nexport class Conjugate extends AlgCommon<Conjugate> {\n readonly #A: Alg;\n readonly #B: Alg;\n\n constructor(aSource: FlexibleAlgSource, bSource: FlexibleAlgSource) {\n super();\n this.#A = experimentalEnsureAlg(aSource);\n this.#B = experimentalEnsureAlg(bSource);\n }\n\n get A(): Alg {\n return this.#A;\n }\n\n get B(): Alg {\n return this.#B;\n }\n\n isIdentical(other: Comparable): boolean {\n const otherAsConjugate = other.as(Conjugate);\n return !!(\n otherAsConjugate?.A.isIdentical(this.A) &&\n otherAsConjugate?.B.isIdentical(this.B)\n );\n }\n\n invert(): Conjugate {\n return new Conjugate(this.#A, this.#B.invert());\n }\n\n *experimentalExpand(\n iterDir: IterationDirection,\n depth?: number,\n ): Generator<AlgLeaf> {\n depth ??= Infinity;\n if (depth === 0) {\n yield iterDir === IterationDirection.Forwards ? this : this.invert();\n } else {\n yield* this.A.experimentalExpand(IterationDirection.Forwards, depth - 1);\n yield* this.B.experimentalExpand(iterDir, depth - 1);\n yield* this.A.experimentalExpand(IterationDirection.Backwards, depth - 1);\n }\n }\n\n toString(): string {\n return `[${this.A}: ${this.B}]`;\n }\n}\n", "import { AlgCommon, Comparable } from \"../../common\";\nimport { IterationDirection } from \"../../iteration\";\nimport type { AlgLeaf } from \"../AlgNode\";\n\n// TODO: hash\n// TODO: this conflicts with the HTML `LineComment` class\n/** @category Alg Nodes */\nexport class LineComment extends AlgCommon<LineComment> {\n readonly #text: string;\n\n constructor(commentText: string) {\n super();\n if (commentText.includes(\"\\n\") || commentText.includes(\"\\r\")) {\n throw new Error(\"LineComment cannot contain newline\");\n }\n this.#text = commentText;\n }\n\n get text(): string {\n return this.#text;\n }\n\n isIdentical(other: Comparable): boolean {\n const otherAsLineComment = other as LineComment;\n return other.is(LineComment) && this.#text === otherAsLineComment.#text;\n }\n\n invert(): LineComment {\n return this;\n }\n\n *experimentalExpand(\n _iterDir: IterationDirection = IterationDirection.Forwards,\n _depth: number = Infinity,\n ): Generator<AlgLeaf> {\n yield this;\n }\n\n toString(): string {\n return `//${this.#text}`;\n }\n // toJSON(): LineCommentJSON {\n // return {\n // type: \"comment\",\n // text: this.#text,\n // };\n // }\n}\n", "import { AlgCommon, Comparable } from \"../../common\";\nimport { IterationDirection } from \"../../iteration\";\nimport type { AlgLeaf } from \"../AlgNode\";\n\n/** @category Alg Nodes */\nexport class Newline extends AlgCommon<Newline> {\n toString(): string {\n return \"\\n\";\n }\n\n isIdentical(other: Comparable): boolean {\n return other.is(Newline);\n }\n\n invert(): Newline {\n return this;\n }\n\n *experimentalExpand(\n _iterDir: IterationDirection = IterationDirection.Forwards,\n _depth: number = Infinity,\n ): Generator<AlgLeaf> {\n yield this;\n }\n}\n", "import type { Grouping } from \"..\";\nimport { AlgCommon, Comparable } from \"../../common\";\nimport { IterationDirection } from \"../../iteration\";\nimport type { AlgLeaf } from \"../AlgNode\";\n\n/** @category Alg Nodes */\nexport class Pause extends AlgCommon<Pause> {\n experimentalNISSGrouping?: Grouping; // TODO: tie this to the alg\n\n toString(): string {\n return \".\";\n }\n\n isIdentical(other: Comparable): boolean {\n return other.is(Pause);\n }\n\n invert(): Pause {\n return this;\n }\n\n *experimentalExpand(\n _iterDir: IterationDirection = IterationDirection.Forwards,\n _depth: number = Infinity,\n ): Generator<AlgLeaf> {\n yield this;\n }\n}\n", "import { Alg } from \"./Alg\";\nimport { AlgBuilder } from \"./AlgBuilder\";\nimport { algDebugGlobals } from \"./debug\";\nimport type { AlgNode } from \"./alg-nodes\";\nimport { Commutator } from \"./alg-nodes/containers/Commutator\";\nimport { Conjugate } from \"./alg-nodes/containers/Conjugate\";\nimport { Grouping } from \"./alg-nodes/containers/Grouping\";\nimport { LineComment } from \"./alg-nodes/leaves/LineComment\";\nimport { Move, QuantumMove } from \"./alg-nodes/leaves/Move\";\nimport { Newline } from \"./alg-nodes/leaves/Newline\";\nimport { Pause } from \"./alg-nodes/leaves/Pause\";\n\ntype StoppingChar = \",\" | \":\" | \"]\" | \")\";\n\nfunction parseIntWithEmptyFallback<T>(n: string, emptyFallback: T): number | T {\n return n ? parseInt(n) : emptyFallback;\n}\n\nconst AMOUNT_REGEX = /^(\\d+)?('?)/;\nconst MOVE_START_REGEX = /^[_\\dA-Za-z]/; // TODO: Handle slash\nconst QUANTUM_MOVE_REGEX = /^((([1-9]\\d*)-)?([1-9]\\d*))?([_A-Za-z]+)?/;\nconst COMMENT_TEXT_REGEX = /^[^\\n]*/;\nconst SQUARE1_PAIR_START_REGEX = /^(-?\\d+), ?/; // TODO: match up with other whitespace handling?\nconst SQUARE1_PAIR_END_REGEX = /^(-?\\d+)\\)/; // TODO: match up with other whitespace handling?\n\nexport function parseAlg(s: string): Alg {\n return new AlgParser().parseAlg(s);\n}\n\nexport function parseMove(s: string): Move {\n return new AlgParser().parseMove(s);\n}\n\nexport function parseQuantumMove(s: string): QuantumMove {\n return new AlgParser().parseQuantumMove(s);\n}\n\nexport interface ParserIndexed {\n startCharIndex: number;\n endCharIndex: number;\n}\n\nexport type Parsed<T extends Alg | AlgNode> = T & ParserIndexed;\n\n// TODO: attach to parser so the end char index can default to `this.#idx`?\nfunction addCharIndices<T extends Alg | AlgNode>(\n t: T,\n startCharIndex: number,\n endCharIndex: number,\n): Parsed<T> {\n const parsedT = t as ParserIndexed & T;\n parsedT.startCharIndex = startCharIndex;\n parsedT.endCharIndex = endCharIndex;\n return parsedT;\n}\n\nexport function transferCharIndex<T extends Alg | AlgNode>(from: T, to: T): T {\n if (\"startCharIndex\" in from) {\n (to as Parsed<T>).startCharIndex = (from as Parsed<T>).startCharIndex;\n }\n if (\"endCharIndex\" in from) {\n (to as Parsed<T>).endCharIndex = (from as Parsed<T>).endCharIndex;\n }\n return to;\n}\n\ntype MoveSuffix = \"+\" | \"++\" | \"-\" | \"--\";\n\n// TODO: support recording string locations for moves.\nclass AlgParser {\n #input: string = \"\";\n #idx: number = 0;\n #nissQueue: Grouping[] = [];\n\n parseAlg(input: string): Parsed<Alg> {\n this.#input = input;\n this.#idx = 0;\n const alg = this.parseAlgWithStopping([]);\n this.mustBeAtEndOfInput();\n const algNodes = Array.from(alg.childAlgNodes());\n if (this.#nissQueue.length > 0) {\n for (const nissGrouping of this.#nissQueue.reverse()) {\n algNodes.push(nissGrouping);\n }\n }\n const newAlg = new Alg(algNodes) as Parsed<Alg>;\n const { startCharIndex, endCharIndex } = alg;\n addCharIndices(newAlg, startCharIndex, endCharIndex);\n return newAlg;\n }\n\n parseMove(input: string): Parsed<Move> {\n this.#input = input;\n this.#idx = 0;\n const move = this.parseMoveImpl();\n this.mustBeAtEndOfInput();\n return move;\n }\n\n parseQuantumMove(input: string): QuantumMove {\n this.#input = input;\n this.#idx = 0;\n const quantumMove = this.parseQuantumMoveImpl();\n this.mustBeAtEndOfInput();\n return quantumMove;\n }\n\n private mustBeAtEndOfInput() {\n if (this.#idx !== this.#input.length) {\n throw new Error(\"parsing unexpectedly ended early\");\n }\n }\n\n private parseAlgWithStopping(stopBefore: StoppingChar[]): Parsed<Alg> {\n let algStartIdx = this.#idx;\n let algEndIdx = this.#idx;\n const algBuilder = new AlgBuilder();\n\n // We're \"crowded\" if there was not a space or newline since the last alg node.\n let crowded = false;\n\n const mustNotBeCrowded = (idx: number): void => {\n if (crowded) {\n throw new Error(\n `Unexpected character at index ${idx}. Are you missing a space?`,\n ); // TODO better error message\n }\n };\n\n mainLoop: while (this.#idx < this.#input.length) {\n const savedCharIndex = this.#idx;\n if ((stopBefore as string[]).includes(this.#input[this.#idx])) {\n return addCharIndices(algBuilder.toAlg(), algStartIdx, algEndIdx);\n }\n if (this.tryConsumeNext(\" \")) {\n crowded = false;\n if (algBuilder.experimentalNumAlgNodes() === 0) {\n algStartIdx = this.#idx;\n }\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n } else if (MOVE_START_REGEX.test(this.#input[this.#idx])) {\n mustNotBeCrowded(savedCharIndex);\n const move = this.parseMoveImpl();\n algBuilder.push(move);\n crowded = true;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n } else if (this.tryConsumeNext(\"(\")) {\n mustNotBeCrowded(savedCharIndex);\n const sq1PairStartMatch = this.tryRegex(SQUARE1_PAIR_START_REGEX);\n if (sq1PairStartMatch) {\n const topAmountString = sq1PairStartMatch[1];\n const savedCharIndexD = this.#idx;\n const sq1PairEndMatch = this.parseRegex(SQUARE1_PAIR_END_REGEX);\n const uMove = addCharIndices(\n new Move(new QuantumMove(\"U_SQ_\"), parseInt(topAmountString)),\n savedCharIndex + 1,\n savedCharIndex + 1 + topAmountString.length,\n );\n const dMove = addCharIndices(\n new Move(new QuantumMove(\"D_SQ_\"), parseInt(sq1PairEndMatch[1])),\n savedCharIndexD,\n this.#idx - 1,\n );\n const alg = addCharIndices(\n new Alg([uMove, dMove]),\n savedCharIndex + 1,\n this.#idx - 1,\n );\n algBuilder.push(\n addCharIndices(new Grouping(alg), savedCharIndex, this.#idx),\n );\n crowded = true;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n } else {\n const alg = this.parseAlgWithStopping([\")\"]);\n this.mustConsumeNext(\")\");\n const amount = this.parseAmount();\n algBuilder.push(\n addCharIndices(\n new Grouping(alg, amount),\n savedCharIndex,\n this.#idx,\n ),\n );\n crowded = true;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n }\n } else if (this.tryConsumeNext(\"^\")) {\n if (!algDebugGlobals.caratNISSNotationEnabled) {\n throw new Error(\n \"Alg contained a carat but carat NISS notation is not enabled.\",\n );\n }\n\n this.mustConsumeNext(\"(\");\n const alg = this.parseAlgWithStopping([\")\"]);\n this.popNext();\n\n const grouping = new Grouping(alg, -1);\n const placeholder = new Pause();\n\n grouping.experimentalNISSPlaceholder = placeholder;\n placeholder.experimentalNISSGrouping = grouping;\n\n this.#nissQueue.push(grouping);\n algBuilder.push(placeholder);\n } else if (this.tryConsumeNext(\"[\")) {\n mustNotBeCrowded(savedCharIndex);\n const A = this.parseAlgWithStopping([\",\", \":\"]);\n const separator = this.popNext();\n const B = this.parseAlgWithStopping([\"]\"]);\n this.mustConsumeNext(\"]\");\n switch (separator) {\n case \":\": {\n algBuilder.push(\n addCharIndices(new Conjugate(A, B), savedCharIndex, this.#idx),\n );\n crowded = true;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n }\n case \",\": {\n algBuilder.push(\n addCharIndices(new Commutator(A, B), savedCharIndex, this.#idx),\n );\n crowded = true;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n }\n default:\n throw new Error(\"unexpected parsing error\");\n }\n } else if (this.tryConsumeNext(\"\\n\")) {\n algBuilder.push(\n addCharIndices(new Newline(), savedCharIndex, this.#idx),\n );\n crowded = false;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n } else if (this.tryConsumeNext(\"/\")) {\n if (this.tryConsumeNext(\"/\")) {\n mustNotBeCrowded(savedCharIndex);\n const [text] = this.parseRegex(COMMENT_TEXT_REGEX);\n algBuilder.push(\n addCharIndices(new LineComment(text), savedCharIndex, this.#idx),\n );\n crowded = false;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n } else {\n // We allow crowding here to account for csTimer scrambles, which don't have a space between a Square-1 tuple and the following slash.\n algBuilder.push(\n addCharIndices(new Move(\"_SLASH_\"), savedCharIndex, this.#idx),\n );\n crowded = true;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n }\n } else if (this.tryConsumeNext(\".\")) {\n mustNotBeCrowded(savedCharIndex);\n algBuilder.push(addCharIndices(new Pause(), savedCharIndex, this.#idx));\n crowded = true;\n algEndIdx = this.#idx;\n\n // rome-ignore lint/correctness/noUnnecessaryContinue: This line allows for more robust refactoring.\n continue mainLoop;\n } else {\n throw new Error(`Unexpected character: ${this.popNext()}`);\n }\n }\n\n if (this.#idx !== this.#input.length) {\n throw new Error(\"did not finish parsing?\");\n }\n if (stopBefore.length > 0) {\n throw new Error(\"expected stopping\");\n }\n return addCharIndices(algBuilder.toAlg(), algStartIdx, algEndIdx);\n }\n\n private parseQuantumMoveImpl(): QuantumMove {\n const [, , , outerLayerStr, innerLayerStr, family] =\n this.parseRegex(QUANTUM_MOVE_REGEX);\n\n return new QuantumMove(\n family,\n parseIntWithEmptyFallback(innerLayerStr, undefined),\n parseIntWithEmptyFallback(outerLayerStr, undefined),\n );\n }\n\n private parseMoveImpl(): Parsed<Move> {\n const savedCharIndex = this.#idx;\n\n if (this.tryConsumeNext(\"/\")) {\n return addCharIndices(new Move(\"_SLASH_\"), savedCharIndex, this.#idx);\n }\n\n let quantumMove = this.parseQuantumMoveImpl();\n // Only `hadEmptyAbsAmount` is `const`.\n // rome-ignore lint/nursery/useConst: TODO: https://github.com/rome/tools/issues/4006\n let [amount, hadEmptyAbsAmount] = this.parseAmountAndTrackEmptyAbsAmount();\n const suffix = this.parseMoveSuffix();\n\n if (suffix) {\n if (amount < 0) {\n throw new Error(\"uh-oh\");\n }\n if ((suffix === \"++\" || suffix === \"--\") && amount !== 1) {\n // TODO: Handle 1 vs. null\n throw new Error(\n \"Pochmann ++ or -- moves cannot have an amount other than 1.\",\n );\n }\n if ((suffix === \"++\" || suffix === \"--\") && !hadEmptyAbsAmount) {\n throw new Error(\n \"Pochmann ++ or -- moves cannot have an amount written as a number.\",\n );\n }\n if ((suffix === \"+\" || suffix === \"-\") && hadEmptyAbsAmount) {\n throw new Error(\n \"Clock dial moves must have an amount written as a natural number followed by + or -.\",\n );\n }\n if (suffix.startsWith(\"+\")) {\n quantumMove = quantumMove.modified({\n family: `${quantumMove.family}_${\n suffix === \"+\" ? \"PLUS\" : \"PLUSPLUS\"\n }_`, // TODO\n });\n }\n if (suffix.startsWith(\"-\")) {\n quantumMove = quantumMove.modified({\n family: `${quantumMove.family}_${\n suffix === \"-\" ? \"PLUS\" : \"PLUSPLUS\"\n }_`, // TODO\n });\n amount *= -1;\n }\n }\n\n const move = addCharIndices(\n new Move(quantumMove, amount),\n savedCharIndex,\n this.#idx,\n );\n return move;\n }\n\n private parseMoveSuffix(): MoveSuffix | null {\n if (this.tryConsumeNext(\"+\")) {\n if (this.tryConsumeNext(\"+\")) {\n return \"++\";\n }\n return \"+\";\n }\n if (this.tryConsumeNext(\"-\")) {\n if (this.tryConsumeNext(\"-\")) {\n return \"--\";\n }\n return \"-\";\n }\n return null;\n }\n\n private parseAmountAndTrackEmptyAbsAmount(): [number, boolean] {\n const savedIdx = this.#idx;\n const [, absAmountStr, primeStr] = this.parseRegex(AMOUNT_REGEX);\n if (absAmountStr?.startsWith(\"0\") && absAmountStr !== \"0\") {\n throw new Error(\n `Error at char index ${savedIdx}: An amount can only start with 0 if it's exactly the digit 0.`,\n );\n }\n return [\n parseIntWithEmptyFallback(absAmountStr, 1) * (primeStr === \"'\" ? -1 : 1),\n !absAmountStr,\n ];\n }\n\n private parseAmount(): number {\n const savedIdx = this.#idx;\n const [, absAmountStr, primeStr] = this.parseRegex(AMOUNT_REGEX);\n if (absAmountStr?.startsWith(\"0\") && absAmountStr !== \"0\") {\n throw new Error(\n `Error at char index ${savedIdx}: An amount number can only start with 0 if it's exactly the digit 0.`,\n );\n }\n return (\n parseIntWithEmptyFallback(absAmountStr, 1) * (primeStr === \"'\" ? -1 : 1)\n );\n }\n\n private parseRegex(regex: RegExp): RegExpExecArray {\n const arr = regex.exec(this.remaining());\n if (arr === null) {\n throw new Error(\"internal parsing error\"); // TODO\n }\n this.#idx += arr[0].length;\n return arr;\n }\n\n // TOD: can we avoid this?\n private tryRegex(regex: RegExp): RegExpExecArray | null {\n const arr = regex.exec(this.remaining());\n if (arr === null) {\n return null;\n }\n this.#idx += arr[0].length;\n return arr;\n }\n\n private remaining(): string {\n return this.#input.slice(this.#idx);\n }\n\n private popNext(): string {\n const next = this.#input[this.#idx];\n this.#idx++;\n return next;\n }\n\n private tryConsumeNext(expected: string): boolean {\n if (this.#input[this.#idx] === expected) {\n this.#idx++;\n return true;\n }\n return false;\n }\n\n private mustConsumeNext(expected: string): string {\n const next = this.popNext();\n if (next !== expected) {\n throw new Error(\n `expected \\`${expected}\\` while parsing, encountered ${next}`,\n ); // TODO: be more helpful\n }\n return next;\n }\n}\n", "const warned = new Set<string>();\nexport function warnOnce(s: string): void {\n if (!warned.has(s)) {\n console.warn(s);\n warned.add(s);\n }\n}\n", "import type { Repeatable } from \"../common\";\nimport { IterationDirection, toggleDirection } from \"../iteration\";\nimport { MAX_INT, MAX_INT_DESCRIPTION, MIN_INT } from \"../limits\";\nimport type { AlgLeaf } from \"./AlgNode\";\n\nexport class QuantumWithAmount<Q extends Repeatable> {\n readonly quantum: Q;\n readonly amount: number;\n\n constructor(quantum: Q, amount: number = 1) {\n this.quantum = quantum;\n this.amount = amount;\n\n if (\n !Number.isInteger(this.amount) ||\n this.amount < MIN_INT ||\n this.amount > MAX_INT\n ) {\n throw new Error(\n `AlgNode amount absolute value must be a non-negative integer below ${MAX_INT_DESCRIPTION}.`,\n );\n }\n }\n\n suffix(): string {\n let s: string = \"\";\n // TODO\n const absAmount = Math.abs(this.amount);\n if (absAmount !== 1) {\n s += absAmount;\n }\n if (this.amount < 0) {\n s += \"'\";\n }\n return s;\n }\n\n isIdentical(other: QuantumWithAmount<Q>): boolean {\n return (\n this.quantum.isIdentical(other.quantum) && this.amount === other.amount\n );\n }\n\n // TODO: `Conjugate` and `Commutator` decrement `depth` inside the quantum, `Grouping` has to do it outside the quantum.\n *experimentalExpand(\n iterDir: IterationDirection,\n depth: number,\n ): Generator<AlgLeaf> {\n const absAmount = Math.abs(this.amount);\n const newIterDir = toggleDirection(iterDir, this.amount < 0);\n for (let i = 0; i < absAmount; i++) {\n yield* this.quantum.experimentalExpand(newIterDir, depth);\n }\n }\n}\n", "import { AlgCommon, Comparable } from \"../../common\";\nimport { IterationDirection } from \"../../iteration\";\nimport { MAX_INT, MAX_INT_DESCRIPTION } from \"../../limits\";\nimport { parseMove, parseQuantumMove, transferCharIndex } from \"../../parseAlg\";\nimport { warnOnce } from \"../../warnOnce\";\nimport { QuantumWithAmount } from \"../QuantumWithAmount\";\nimport type { AlgLeaf } from \"../AlgNode\";\n\ninterface QuantumMoveModifications {\n outerLayer?: number;\n innerLayer?: number;\n family?: string;\n}\n\nexport class QuantumMove extends Comparable {\n readonly #family: string;\n readonly #innerLayer: number | null;\n readonly #outerLayer: number | null;\n\n constructor(\n family: string,\n innerLayer?: number | null,\n outerLayer?: number | null,\n ) {\n super();\n this.#family = family;\n this.#innerLayer = innerLayer ?? null;\n this.#outerLayer = outerLayer ?? null;\n Object.freeze(this);\n\n if (\n this.#innerLayer !== null &&\n (!Number.isInteger(this.#innerLayer) ||\n this.#innerLayer < 1 ||\n this.#innerLayer > MAX_INT)\n ) {\n throw new Error(\n `QuantumMove inner layer must be a positive integer below ${MAX_INT_DESCRIPTION}.`,\n );\n }\n\n if (\n this.#outerLayer !== null &&\n (!Number.isInteger(this.#outerLayer) ||\n this.#outerLayer < 1 ||\n this.#outerLayer > MAX_INT)\n ) {\n throw new Error(\n `QuantumMove outer layer must be a positive integer below ${MAX_INT_DESCRIPTION}.`,\n );\n }\n\n if (\n this.#outerLayer !== null &&\n this.#innerLayer !== null &&\n this.#innerLayer <= this.#outerLayer\n ) {\n throw new Error(\n \"QuantumMove outer layer must be smaller than inner layer.\",\n );\n }\n\n if (this.#outerLayer !== null && this.#innerLayer === null) {\n throw new Error(\n \"QuantumMove with an outer layer must have an inner layer\",\n ); // TODO: test\n }\n }\n\n static fromString(s: string): QuantumMove {\n return parseQuantumMove(s);\n }\n\n // TODO: `modify`?\n modified(modifications: QuantumMoveModifications): QuantumMove {\n return new QuantumMove(\n modifications.family ?? this.#family,\n modifications.innerLayer ?? this.#innerLayer,\n modifications.outerLayer ?? this.#outerLayer,\n );\n }\n\n isIdentical(other: QuantumMove): boolean {\n const otherAsQuantumMove = other;\n return (\n other.is(QuantumMove) &&\n this.#family === otherAsQuantumMove.#family &&\n this.#innerLayer === otherAsQuantumMove.#innerLayer &&\n this.#outerLayer === otherAsQuantumMove.#outerLayer\n );\n }\n\n // TODO: provide something more useful on average.\n /** @deprecated */\n get family(): string {\n return this.#family;\n }\n\n // TODO: provide something more useful on average.\n /** @deprecated */\n get outerLayer(): number | null {\n return this.#outerLayer;\n }\n\n // TODO: provide something more useful on average.\n /** @deprecated */\n get innerLayer(): number | null {\n return this.#innerLayer;\n }\n\n experimentalExpand(): Generator<AlgLeaf> {\n throw new Error(\n \"experimentalExpand() cannot be called on a `QuantumMove` directly.\",\n );\n }\n\n override toString(): string {\n let s = this.#family;\n if (this.#innerLayer !== null) {\n s = String(this.#innerLayer) + s;\n if (this.#outerLayer !== null) {\n s = `${String(this.#outerLayer)}-${s}`;\n }\n }\n return s;\n }\n}\n\nexport interface MoveModifications {\n outerLayer?: number;\n innerLayer?: number;\n family?: string;\n amount?: number;\n}\n\n/** @category Alg Nodes */\nexport class Move extends AlgCommon<Move> {\n readonly #quantumWithAmount: QuantumWithAmount<QuantumMove>;\n\n constructor(\n ...args: [QuantumMove] | [QuantumMove, number] | [string] | [string, number]\n ) {\n super();\n if (typeof args[0] === \"string\") {\n if (args[1] ?? null) {\n this.#quantumWithAmount = new QuantumWithAmount(\n QuantumMove.fromString(args[0]),\n args[1],\n );\n return;\n } else {\n // rome-ignore lint/nursery/noConstructorReturn: https://github.com/rome/tools/issues/4005\n return Move.fromString(args[0]);\n }\n }\n this.#quantumWithAmount = new QuantumWithAmount<QuantumMove>(\n args[0],\n args[1],\n );\n }\n\n isIdentical(other: Comparable): boolean {\n const otherAsMove = other.as(Move);\n return (\n !!otherAsMove &&\n this.#quantumWithAmount.isIdentical(otherAsMove.#quantumWithAmount)\n );\n }\n\n invert(): Move {\n // TODO: handle char indices more consistently among alg nodes.\n return transferCharIndex(\n this,\n new Move(this.#quantumWithAmount.quantum, -this.amount),\n );\n }\n\n *experimentalExpand(\n iterDir: IterationDirection = IterationDirection.Forwards,\n ): Generator<AlgLeaf> {\n if (iterDir === IterationDirection.Forwards) {\n yield this;\n } else {\n yield this.modified({\n amount: -this.amount,\n });\n }\n }\n\n get quantum(): QuantumMove {\n return this.#quantumWithAmount.quantum;\n }\n\n // TODO: `modify`?\n modified(modifications: MoveModifications): Move {\n // TODO: Avoid creating a new quantum move\n return new Move(\n this.#quantumWithAmount.quantum.modified(modifications),\n modifications.amount ?? this.amount,\n );\n }\n\n static fromString(s: string): Move {\n return parseMove(s);\n }\n\n get amount(): number {\n return this.#quantumWithAmount.amount;\n }\n\n /** @deprecated */\n get type(): string {\n warnOnce(\"deprecated: type\");\n return \"blockMove\";\n }\n\n /** @deprecated */\n get family(): string {\n return this.#quantumWithAmount.quantum.family ?? undefined;\n }\n\n /** @deprecated */\n get outerLayer(): number | undefined {\n return this.#quantumWithAmount.quantum.outerLayer ?? undefined;\n }\n\n /** @deprecated */\n get innerLayer(): number | undefined {\n return this.#quantumWithAmount.quantum.innerLayer ?? undefined;\n }\n\n toString(): string {\n if (this.family === \"_SLASH_\") {\n return \"/\"; // TODO: validate no amount\n }\n if (this.family.endsWith(\"_PLUS_\")) {\n return (\n this.#quantumWithAmount.quantum.toString().slice(0, -6) +\n Math.abs(this.amount) +\n (this.amount < 0 ? \"-\" : \"+\")\n ); // TODO\n }\n if (this.family.endsWith(\"_PLUSPLUS_\")) {\n const absAmount = Math.abs(this.amount);\n return (\n this.#quantumWithAmount.quantum.toString().slice(0, -10) +\n (absAmount === 1 ? \"\" : absAmount) +\n (this.amount < 0 ? \"--\" : \"++\")\n ); // TODO\n }\n\n return (\n this.#quantumWithAmount.quantum.toString() +\n this.#quantumWithAmount.suffix()\n );\n }\n // // TODO: Serialize as a string?\n // toJSON(): MoveJSON {\n // return {\n // type: \"move\",\n // family: this.family,\n // innerLayer: this.innerLayer,\n // outerLayer: this.outerLayer,\n // };\n // }\n}\n", "import { Alg, experimentalEnsureAlg, FlexibleAlgSource } from \"../../Alg\";\nimport { AlgCommon, Comparable } from \"../../common\";\nimport { IterationDirection } from \"../../iteration\";\nimport { Move, QuantumMove } from \"../leaves/Move\";\nimport type { Pause } from \"../leaves/Pause\";\nimport { QuantumWithAmount } from \"../QuantumWithAmount\";\nimport type { AlgLeaf } from \"../AlgNode\";\n\n// This is a workaround for `jest`, which doesn't handle cycles of imports inside `cubing/alg`.\n// We need to lazy-initialize the reusable quantum moves for Square-1, so we create this wrapper for it.\nclass Square1TupleFormatter {\n quantumU_SQ_: QuantumMove | null = null;\n quantumD_SQ_: QuantumMove | null = null;\n\n format(grouping: Grouping): string | null {\n const amounts = this.tuple(grouping);\n if (!amounts) {\n return null;\n }\n return `(${amounts.map((move) => move.amount).join(\", \")})`;\n }\n\n tuple(grouping: Grouping): [moveU: Move, moveD: Move] | null {\n this.quantumU_SQ_ ||= new QuantumMove(\"U_SQ_\");\n this.quantumD_SQ_ ||= new QuantumMove(\"D_SQ_\");\n\n const quantumAlg = grouping.alg;\n if (quantumAlg.experimentalNumChildAlgNodes() === 2) {\n const [U, D] = quantumAlg.childAlgNodes();\n if (\n U.as(Move)?.quantum.isIdentical(this.quantumU_SQ_) &&\n D.as(Move)?.quantum.isIdentical(this.quantumD_SQ_)\n ) {\n if (grouping.amount !== 1) {\n throw new Error(\n \"Square-1 tuples cannot have an amount other than 1.\",\n );\n }\n return [U as Move, D as Move]; // TODO: can we reuse the casting from above?\n }\n }\n return null;\n }\n}\nconst square1TupleFormatterInstance = new Square1TupleFormatter();\n\n/** @category Alg Nodes */\nexport class Grouping extends AlgCommon<Grouping> {\n readonly #quantumWithAmount: QuantumWithAmount<Alg>;\n experimentalNISSPlaceholder?: Pause; // TODO: tie this to the alg\n\n constructor(algSource: FlexibleAlgSource, amount?: number) {\n super();\n const alg = experimentalEnsureAlg(algSource);\n this.#quantumWithAmount = new QuantumWithAmount(alg, amount);\n }\n\n isIdentical(other: Comparable): boolean {\n const otherAsGrouping = other as Grouping;\n return (\n other.is(Grouping) &&\n this.#quantumWithAmount.isIdentical(otherAsGrouping.#quantumWithAmount)\n );\n }\n\n get alg(): Alg {\n return this.#quantumWithAmount.quantum;\n }\n\n get amount(): number {\n return this.#quantumWithAmount.amount;\n }\n\n /** @deprecated */\n get experimentalRepetitionSuffix(): string {\n return this.#quantumWithAmount.suffix();\n }\n\n invert(): Grouping {\n return new Grouping(\n this.#quantumWithAmount.quantum,\n -this.#quantumWithAmount.amount,\n );\n }\n\n *experimentalExpand(\n iterDir: IterationDirection = IterationDirection.Forwards,\n depth?: number,\n ): Generator<AlgLeaf> {\n depth ??= Infinity;\n if (depth === 0) {\n yield iterDir === IterationDirection.Forwards ? this : this.invert();\n } else {\n yield* this.#quantumWithAmount.experimentalExpand(iterDir, depth - 1);\n }\n }\n\n static fromString(): Grouping {\n throw new Error(\"unimplemented\");\n }\n\n toString(): string {\n return (\n square1TupleFormatterInstance.format(this) ??\n `(${this.#quantumWithAmount.quantum.toString()})${this.#quantumWithAmount.suffix()}`\n );\n }\n\n experimentalAsSquare1Tuple(): [moveU: Move, moveD: Move] | null {\n return square1TupleFormatterInstance.tuple(this);\n }\n // toJSON(): GroupingJSON {\n // return {\n // type: \"grouping\",\n // alg: this.#quanta.quantum.toJSON(),\n // };\n // }\n}\n", "import type { Alg } from \"./Alg\";\nimport {\n Commutator,\n Conjugate,\n Grouping,\n LineComment,\n Move,\n Newline,\n Pause,\n} from \"./alg-nodes\";\n\nexport function experimentalIs(\n v: any,\n c:\n | typeof Alg\n | typeof Grouping\n | typeof LineComment\n | typeof Commutator\n | typeof Conjugate\n | typeof Move\n | typeof Newline\n | typeof Pause,\n): boolean {\n return v instanceof c;\n}\nexport function experimentalIsAlgNode(v: any): boolean {\n return (\n experimentalIs(v, Grouping) ||\n experimentalIs(v, LineComment) ||\n experimentalIs(v, Commutator) ||\n experimentalIs(v, Conjugate) ||\n experimentalIs(v, Move) ||\n experimentalIs(v, Newline) ||\n experimentalIs(v, Pause)\n );\n}\n", "import type { Alg } from \"./Alg\";\nimport type { AlgNode } from \"./alg-nodes/AlgNode\";\nimport { Commutator } from \"./alg-nodes/containers/Commutator\";\nimport { Conjugate } from \"./alg-nodes/containers/Conjugate\";\nimport { Grouping } from \"./alg-nodes/containers/Grouping\";\nimport { LineComment } from \"./alg-nodes/leaves/LineComment\";\nimport { Move } from \"./alg-nodes/leaves/Move\";\nimport { Newline } from \"./alg-nodes/leaves/Newline\";\nimport { Pause } from \"./alg-nodes/leaves/Pause\";\nimport type { Comparable } from \"./common\";\n\nfunction dispatch<DataDown, DataAlgUp, DataAlgNodeUp>(\n t: TraversalDownUp<DataDown, DataAlgUp, DataAlgNodeUp>,\n algNode: AlgNode,\n dataDown: DataDown,\n): DataAlgNodeUp {\n // TODO: Can we turn this back into a `switch` or something more efficiently?\n if (algNode.is(Grouping)) {\n return t.traverseGrouping(algNode as Grouping, dataDown);\n }\n if (algNode.is(Move)) {\n return t.traverseMove(algNode as Move, dataDown);\n }\n if (algNode.is(Commutator)) {\n return t.traverseCommutator(algNode as Commutator, dataDown);\n }\n if (algNode.is(Conjugate)) {\n return t.traverseConjugate(algNode as Conjugate, dataDown);\n }\n if (algNode.is(Pause)) {\n return t.traversePause(algNode as Pause, dataDown);\n }\n if (algNode.is(Newline)) {\n return t.traverseNewline(algNode as Newline, dataDown);\n }\n if (algNode.is(LineComment)) {\n return t.traverseLineComment(algNode as LineComment, dataDown);\n }\n throw new Error(\"unknown AlgNode\");\n}\n\nfunction mustBeAlgNode(t: Comparable): AlgNode {\n if (\n t.is(Grouping) ||\n t.is(Move) ||\n t.is(Commutator) ||\n t.is(Conjugate) ||\n t.is(Pause) ||\n t.is(Newline) ||\n t.is(LineComment)\n ) {\n return t as AlgNode;\n }\n throw new Error(\"internal error: expected AlgNode\"); // TODO: Make more helpful, add tests\n}\n\nexport abstract class TraversalDownUp<\n DataDown,\n DataAlgUp,\n DataAlgNodeUp = DataAlgUp,\n> {\n // Immediate subclasses should overwrite this.\n public traverseAlgNode(algNode: AlgNode, dataDown: DataDown): DataAlgNodeUp {\n return dispatch(this, algNode, dataDown);\n }\n\n public traverseIntoAlgNode(algNode: AlgNode, dataDown: DataDown): AlgNode {\n return mustBeAlgNode(this.traverseAlgNode(algNode, dataDown) as any);\n }\n\n public abstract traverseAlg(alg: Alg, dataDown: DataDown): DataAlgUp;\n\n public abstract traverseGrouping(\n grouping: Grouping,\n dataDown: DataDown,\n ): DataAlgNodeUp;\n\n public abstract traverseMove(move: Move, dataDown: DataDown): DataAlgNodeUp;\n\n public abstract traverseCommutator(\n commutator: Commutator,\n dataDown: DataDown,\n ): DataAlgNodeUp;\n\n public abstract traverseConjugate(\n conjugate: Conjugate,\n dataDown: DataDown,\n ): DataAlgNodeUp;\n\n public abstract traversePause(\n pause: Pause,\n dataDown: DataDown,\n ): DataAlgNodeUp;\n public abstract traverseNewline(\n newline: Newline,\n dataDown: DataDown,\n ): DataAlgNodeUp;\n\n public abstract traverseLineComment(\n comment: LineComment,\n dataDown: DataDown,\n ): DataAlgNodeUp;\n}\n\nexport abstract class TraversalUp<\n DataAlgUp,\n DataAlgNodeUp = DataAlgUp,\n> extends TraversalDownUp<undefined, DataAlgUp, DataAlgNodeUp> {\n public override traverseAlgNode(algNode: AlgNode): DataAlgNodeUp {\n return dispatch<unknown, DataAlgUp, DataAlgNodeUp>(\n this,\n algNode,\n undefined,\n );\n }\n\n public override traverseIntoAlgNode(algNode: AlgNode): AlgNode {\n return mustBeAlgNode(this.traverseAlgNode(algNode) as any);\n }\n\n public abstract override traverseAlg(alg: Alg): DataAlgUp;\n public abstract override traverseGrouping(grouping: Grouping): DataAlgNodeUp;\n public abstract override traverseMove(move: Move): DataAlgNodeUp;\n public abstract override traverseCommutator(\n commutator: Commutator,\n ): DataAlgNodeUp;\n public abstract override traverseConjugate(\n conjugate: Conjugate,\n ): DataAlgNodeUp;\n public abstract override traversePause(pause: Pause): DataAlgNodeUp;\n public abstract override traverseNewline(newline: Newline): DataAlgNodeUp;\n public abstract override traverseLineComment(\n comment: LineComment,\n ): DataAlgNodeUp;\n}\n\nexport function functionFromTraversal<\n DataDown,\n DataAlgUp,\n ConstructorArgs extends unknown[],\n>(\n traversalConstructor: {\n new (...args: ConstructorArgs): TraversalDownUp<DataDown, DataAlgUp, any>;\n },\n constructorArgs?: ConstructorArgs,\n): undefined extends DataDown\n ? (alg: Alg) => DataAlgUp\n : (alg: Alg, v: DataDown) => DataAlgUp {\n const instance = new traversalConstructor(\n ...(constructorArgs ?? ([] as any)),\n );\n return instance.traverseAlg.bind(instance);\n}\n", "import type { Move, QuantumMove } from \"../alg-nodes\";\n\n// TODO: enums?\nconst DEFAULT_DIRECTIONAL = \"any-direction\";\nDEFAULT_DIRECTIONAL;\nexport type QuantumDirectionalCancellation =\n | typeof DEFAULT_DIRECTIONAL // Cancel any moves with the same quantum.\n | \"same-direction\" // Cancel two quantums when have non-zero amounts of the same sign (positive/negative). An amount of 0 always counts as the same direction as any other amount.\n | \"none\";\n\n// Example input: `R7' . R6' . R5' . R6` on a cube.\nexport type ModWrap =\n | \"none\" // R7' . R6' . R5' . R6\n | \"gravity\" // R . R2' . R' . R2\n | \"canonical-centered\" // R . R2 . R' . R2\n | \"canonical-positive\" // R . R2 . R3 . R2\n | \"preserve-sign\"; // R3' . R2' . R' . R2\n\nexport interface AppendCancelOptions {\n directional?: QuantumDirectionalCancellation;\n puzzleSpecificModWrap?: ModWrap; // Default depends on `directional`\n}\n\n// TODO: preserve single moves even when amount is 0?\nexport interface AppendOptions {\n cancel?: boolean | AppendCancelOptions; // Set to `true` to use future-proof defaults.\n // Takes precedence over the direct `puzzleSpecificSimplifyOptions` field.\n puzzleLoader?: {\n puzzleSpecificSimplifyOptions?: PuzzleSpecificSimplifyOptions;\n };\n puzzleSpecificSimplifyOptions?: PuzzleSpecificSimplifyOptions;\n}\n\nexport class AppendOptionsHelper {\n constructor(private config: AppendOptions = {}) {}\n\n cancelQuantum(): QuantumDirectionalCancellation {\n const { cancel } = this.config;\n if (cancel === true) {\n return DEFAULT_DIRECTIONAL;\n }\n if (cancel === false) {\n return \"none\";\n }\n return cancel?.directional ?? \"none\";\n }\n\n cancelAny() {\n return this.config.cancel && this.cancelQuantum() !== \"none\";\n }\n\n cancelPuzzleSpecificModWrap(): ModWrap {\n const { cancel } = this.config;\n if (cancel === true || cancel === false) {\n return \"canonical-centered\";\n }\n if (cancel?.puzzleSpecificModWrap) {\n return cancel?.puzzleSpecificModWrap;\n }\n return cancel?.directional === \"same-direction\"\n ? \"preserve-sign\"\n : \"canonical-centered\";\n }\n\n puzzleSpecificSimplifyOptions(): PuzzleSpecificSimplifyOptions | undefined {\n return (\n this.config.puzzleLoader?.puzzleSpecificSimplifyOptions ??\n this.config.puzzleSpecificSimplifyOptions\n );\n }\n}\n\nexport interface SimplifyOptions extends AppendOptions {\n depth?: number | null; // TODO: test\n}\n\nexport interface PuzzleSpecificAxisSimplifyInfo {\n // All moves on the same axis *must* commute.\n areQuantumMovesSameAxis: (\n quantumMove1: QuantumMove,\n quantumMove2: QuantumMove,\n ) => boolean;\n simplifySameAxisMoves: (moves: Move[], quantumMod: boolean) => Move[];\n}\n\n// TOOD: allow \"normal\" \"twisty\" puzzles to hardcode axis concepts without hardcoding too much in `Alg` that's not relevant to all puzzles.\nexport interface PuzzleSpecificSimplifyOptions {\n quantumMoveOrder?: (quantumMove: QuantumMove) => number;\n // TODO: implement cancellation for non-axis commuting moves (e.g. Megaminx: `BL R BL'` \u2192 `R`)\n // // Commutation is not transitive. For example, on Megaminx: BR and BL both commute with F, but not with each other.\n // doQuantumMovesCommute?: (\n // quantumMove1: QuantumMove,\n // quantumMove2: QuantumMove,\n // ) => boolean;\n axis?: PuzzleSpecificAxisSimplifyInfo;\n}\n", "import { Alg } from \"../Alg\";\nimport type { AlgNode } from \"../alg-nodes\";\nimport type { AlgLeaf } from \"../alg-nodes/AlgNode\";\nimport { Move } from \"../alg-nodes/leaves/Move\";\nimport { AppendOptions, AppendOptionsHelper } from \"./options\";\n\nfunction areSameDirection(direction: -1 | 1, move2: Move): boolean {\n // This multiplication has two properties:\n // - If either amount is 0, returns true.\n // - Otherwise, the signs have to match.\n return direction * Math.sign(move2.amount) >= 0;\n}\n\nfunction offsetMod(x: number, positiveMod: number, offset: number): number {\n return ((((x - offset) % positiveMod) + positiveMod) % positiveMod) + offset;\n}\n\nexport function experimentalAppendMove(\n alg: Alg,\n addedMove: Move,\n options?: AppendOptions,\n): Alg {\n const optionsHelper = new AppendOptionsHelper(options);\n\n const outputPrefix: AlgNode[] = Array.from(alg.childAlgNodes());\n let outputSuffix: Move[] = [addedMove];\n function output() {\n return new Alg([...outputPrefix, ...outputSuffix]); // TODO: What's the most efficient way to do this?\n }\n\n function modMove(move: Move): Move {\n if (optionsHelper.cancelPuzzleSpecificModWrap() === \"none\") {\n return move;\n }\n const quantumMoveOrder =\n optionsHelper.puzzleSpecificSimplifyOptions()?.quantumMoveOrder;\n if (!quantumMoveOrder) {\n return move;\n }\n const mod = quantumMoveOrder(addedMove.quantum)!; // TODO: throw if `undefined`?\n let offset: number;\n switch (optionsHelper.cancelPuzzleSpecificModWrap()) {\n case \"gravity\": {\n offset = -Math.floor((mod - (move.amount < 0 ? 0 : 1)) / 2); // TODO: dedup this calculation for the most common path?\n break;\n }\n case \"canonical-centered\": {\n offset = -Math.floor((mod - 1) / 2); // TODO: dedup this calculation for the most common path?\n break;\n }\n case \"canonical-positive\": {\n offset = 0;\n break;\n }\n case \"preserve-sign\": {\n offset = move.amount < 0 ? 1 - mod : 0;\n break;\n }\n default: {\n throw new Error(\"Unknown mod wrap\");\n }\n }\n const offsetAmount = offsetMod(move.amount, mod, offset);\n return move.modified({ amount: offsetAmount });\n }\n\n if (optionsHelper.cancelAny()) {\n let canCancelMoveBasedOnQuantum: (move: Move) => boolean;\n const axis = optionsHelper.puzzleSpecificSimplifyOptions()?.axis;\n if (axis) {\n canCancelMoveBasedOnQuantum = (move: Move): boolean =>\n axis.areQuantumMovesSameAxis(addedMove.quantum, move.quantum);\n } else {\n const newMoveQuantumString = addedMove.quantum.toString();\n canCancelMoveBasedOnQuantum = (move: Move): boolean =>\n move.quantum.toString() === newMoveQuantumString;\n }\n\n const sameDirectionOnly =\n optionsHelper.cancelQuantum() === \"same-direction\";\n\n const quantumDirections = new Map<string, 1 | 0 | -1>();\n quantumDirections.set(\n addedMove.quantum.toString(),\n Math.sign(addedMove.amount) as -1 | 0 | 1,\n );\n let i: number;\n for (i = outputPrefix.length - 1; i >= 0; i--) {\n const move = outputPrefix[i].as(Move);\n if (!move) {\n break;\n }\n if (!canCancelMoveBasedOnQuantum(move)) {\n break;\n }\n const quantumKey = move.quantum.toString();\n if (sameDirectionOnly) {\n const existingQuantumDirectionOnAxis =\n quantumDirections.get(quantumKey);\n if (\n existingQuantumDirectionOnAxis && // Short-circuits, but that's actually okay here.\n !areSameDirection(existingQuantumDirectionOnAxis, move)\n ) {\n break;\n }\n quantumDirections.set(quantumKey, Math.sign(move.amount) as -1 | 0 | 1);\n }\n }\n const suffix = [...(outputPrefix.splice(i + 1) as Move[]), addedMove];\n\n if (axis) {\n // TODO: pass down quantum mod\n outputSuffix = axis.simplifySameAxisMoves(\n suffix,\n optionsHelper.cancelPuzzleSpecificModWrap() !== \"none\",\n );\n } else {\n const amount = suffix.reduce(\n (sum: number, move: Move) => sum + move.amount,\n 0,\n );\n if (quantumDirections.size !== 1) {\n throw new Error(\n \"Internal error: multiple quantums when one was expected\",\n );\n }\n outputSuffix = [new Move(addedMove.quantum, amount)];\n }\n }\n outputSuffix = outputSuffix\n .map((m) => modMove(m))\n .filter((move: Move) => move.amount !== 0);\n return output();\n}\n\nexport function experimentalAppendNode(\n alg: Alg,\n leaf: AlgLeaf,\n options: AppendOptions,\n): Alg {\n const maybeMove = leaf.as(Move);\n if (maybeMove) {\n return experimentalAppendMove(alg, maybeMove, options);\n } else {\n return new Alg([...alg.childAlgNodes(), leaf]);\n }\n}\n", "import { Alg } from \"../Alg\";\nimport type { AlgNode } from \"../alg-nodes/AlgNode\";\nimport { Commutator } from \"../alg-nodes/containers/Commutator\";\nimport { Conjugate } from \"../alg-nodes/containers/Conjugate\";\nimport { Grouping } from \"../alg-nodes/containers/Grouping\";\nimport type { LineComment } from \"../alg-nodes/leaves/LineComment\";\nimport { Move } from \"../alg-nodes/leaves/Move\";\nimport type { Newline } from \"../alg-nodes/leaves/Newline\";\nimport { Pause } from \"../alg-nodes/leaves/Pause\";\nimport { functionFromTraversal, TraversalDownUp } from \"../traversal\";\nimport { experimentalAppendNode } from \"./append\";\nimport { AppendOptionsHelper, SimplifyOptions } from \"./options\";\n\n// TODO: Test that inverses are bijections.\nclass Simplify extends TraversalDownUp<SimplifyOptions, Generator<AlgNode>> {\n #newPlaceholderAssociationsMap?: Map<Grouping, Pause>;\n #newPlaceholderAssociations(): Map<Grouping, Pause> {\n return (this.#newPlaceholderAssociationsMap ??= new Map<Grouping, Pause>());\n }\n\n // TODO: avoid allocations?\n #descendOptions(options: SimplifyOptions): SimplifyOptions {\n return {\n ...options,\n depth: options.depth ? options.depth - 1 : null,\n };\n }\n\n // TODO: Handle\n public *traverseAlg(alg: Alg, options: SimplifyOptions): Generator<AlgNode> {\n if (options.depth === 0) {\n yield* alg.childAlgNodes();\n return;\n }\n\n let output: AlgNode[] = [];\n\n const newOptions: SimplifyOptions = this.#descendOptions(options); // TODO: avoid allocations?\n for (const algNode of alg.childAlgNodes()) {\n for (const traversedNode of this.traverseAlgNode(algNode, newOptions)) {\n output = Array.from(\n experimentalAppendNode(\n new Alg(output),\n traversedNode,\n newOptions,\n ).childAlgNodes(),\n );\n }\n }\n\n // TODO: try to use `yield* output[Symbol.iterator]();`?\n for (const newAlgNode of output) {\n yield newAlgNode;\n }\n }\n\n public *traverseGrouping(\n grouping: Grouping,\n options: SimplifyOptions,\n ): Generator<AlgNode> {\n if (options.depth === 0) {\n yield grouping;\n return;\n }\n if (grouping.amount === 0) {\n // TODO: Are we okay with throwing away nested comments?\n return;\n }\n const newGrouping = new Grouping(\n this.traverseAlg(grouping.alg, this.#descendOptions(options)),\n grouping.amount,\n );\n if (newGrouping.alg.experimentalIsEmpty()) {\n return;\n }\n\n const newPlaceholder = this.#newPlaceholderAssociations().get(grouping);\n if (newPlaceholder) {\n newGrouping.experimentalNISSPlaceholder = newPlaceholder;\n newPlaceholder.experimentalNISSGrouping = newGrouping;\n }\n\n yield newGrouping;\n }\n\n public *traverseMove(\n move: Move,\n _options: SimplifyOptions,\n ): Generator<AlgNode> {\n yield move;\n }\n\n #doChildrenCommute(A: Alg, B: Alg, options: SimplifyOptions): boolean {\n if (\n A.experimentalNumChildAlgNodes() === 1 &&\n B.experimentalNumChildAlgNodes() === 1\n ) {\n // Handle the special case where each side has been reduced to a single move.\n const aMove = Array.from(A.childAlgNodes())[0]?.as(Move);\n const bMove = Array.from(B.childAlgNodes())[0]?.as(Move);\n if (!(aMove && bMove)) {\n return false;\n }\n if (bMove.quantum.isIdentical(aMove.quantum)) {\n return true;\n }\n const appendOptionsHelper = new AppendOptionsHelper(options); // TODO: avoid re-allocating every time.\n if (\n appendOptionsHelper\n .puzzleSpecificSimplifyOptions()\n ?.axis?.areQuantumMovesSameAxis(aMove.quantum, bMove.quantum)\n ) {\n return true;\n }\n }\n return false;\n }\n\n public *traverseCommutator(\n commutator: Commutator,\n options: SimplifyOptions,\n ): Generator<AlgNode> {\n if (options.depth === 0) {\n yield commutator;\n return;\n }\n const newOptions = this.#descendOptions(options);\n const newCommutator = new Commutator(\n this.traverseAlg(commutator.A, newOptions),\n this.traverseAlg(commutator.B, newOptions),\n );\n if (\n newCommutator.A.experimentalIsEmpty() ||\n newCommutator.B.experimentalIsEmpty() ||\n newCommutator.A.isIdentical(newCommutator.B) ||\n newCommutator.A.isIdentical(newCommutator.B.invert()) ||\n this.#doChildrenCommute(newCommutator.A, newCommutator.B, options)\n ) {\n return;\n }\n yield newCommutator;\n }\n\n public *traverseConjugate(\n conjugate: Conjugate,\n options: SimplifyOptions,\n ): Generator<AlgNode> {\n if (options.depth === 0) {\n yield conjugate;\n return;\n }\n const newOptions = this.#descendOptions(options);\n const newConjugate = new Conjugate(\n this.traverseAlg(conjugate.A, newOptions),\n this.traverseAlg(conjugate.B, newOptions),\n );\n if (newConjugate.B.experimentalIsEmpty()) {\n return;\n }\n if (\n newConjugate.A.experimentalIsEmpty() ||\n newConjugate.A.isIdentical(newConjugate.B) ||\n newConjugate.A.isIdentical(newConjugate.B.invert()) ||\n this.#doChildrenCommute(newConjugate.A, newConjugate.B, options)\n ) {\n yield* conjugate.B.childAlgNodes();\n return;\n }\n yield newConjugate;\n }\n\n public *traversePause(\n pause: Pause,\n _options: SimplifyOptions,\n ): Generator<AlgNode> {\n if (pause.experimentalNISSGrouping) {\n const newPause = new Pause();\n this.#newPlaceholderAssociations().set(\n pause.experimentalNISSGrouping,\n newPause,\n );\n yield newPause;\n } else {\n yield pause;\n }\n }\n\n public *traverseNewline(\n newline: Newline,\n _options: SimplifyOptions,\n ): Generator<AlgNode> {\n yield newline;\n }\n\n public *traverseLineComment(\n comment: LineComment,\n _options: SimplifyOptions,\n ): Generator<AlgNode> {\n yield comment;\n }\n}\n\nexport const simplify = functionFromTraversal(Simplify);\n", "// https://js.cubing.net/cubing/alg/\n\nimport { AlgCommon, Comparable } from \"./common\";\nimport { experimentalIs, experimentalIsAlgNode } from \"./is\";\nimport { direct, IterationDirection, reverse } from \"./iteration\";\nimport { parseAlg } from \"./parseAlg\";\nimport { simplify, SimplifyOptions } from \"./simplify\";\nimport { Grouping, Pause } from \"./alg-nodes\";\nimport { LineComment } from \"./alg-nodes/leaves/LineComment\";\nimport { Move } from \"./alg-nodes/leaves/Move\";\nimport { Newline } from \"./alg-nodes/leaves/Newline\";\nimport type { AlgLeaf, AlgNode } from \"./alg-nodes/AlgNode\";\nimport { warnOnce } from \"./warnOnce\";\n\nexport type FlexibleAlgSource = string | Iterable<AlgNode> | Alg;\n\n// TODO: validate\nfunction toIterable(input?: FlexibleAlgSource): Iterable<AlgNode> {\n if (!input) {\n return [];\n }\n\n if (experimentalIs(input, Alg)) {\n return (input as Alg).childAlgNodes();\n }\n\n if (typeof input === \"string\") {\n return parseAlg(input).childAlgNodes(); // TODO: something more direct?\n }\n\n const iter = input as Iterable<AlgNode>;\n if (typeof iter[Symbol.iterator] === \"function\") {\n return iter; // TODO: avoid allocations\n }\n\n throw new Error(\"Invalid AlgNode\");\n}\n\n// Preserves the alg if it's already an `Alg`.\nexport function experimentalEnsureAlg(alg: FlexibleAlgSource): Alg {\n if (experimentalIs(alg, Alg)) {\n return alg as Alg;\n }\n return new Alg(alg);\n}\n\n/**\n * `Alg` is a class that encapsulates a structured alg. To create an `Alg` from a string, use:\n *\n * new Alg(\"R U R'\"); // Convenient\n * Alg.fromString(dynamicString); // Recommended when the string input is user-provided.\n *\n * Once you have an `Alg`, you can call methods to transform it:\n *\n * new Alg(\"[[R: U], R U R2']\").expand().experimentalSimplify({cancel: true}).invert().log()\n *\n * To convert an `Alg` to a string, use .toString():\n *\n * new Alg(\"R U F\").invert().toString();\n *\n * If you need to debug, you may also find it convenient to use .log():\n *\n * if (alg.isIdentical(alg.invert())) {\n * alg.log(\"A self-inverse!\")\n * }\n *\n * For more information, see: {@link https://js.cubing.net/cubing/alg/}\n *\n * @category Alg\n */\nexport class Alg extends AlgCommon<Alg> {\n // #debugString: string;\n #algNodes: Iterable<AlgNode>; // TODO: freeze?\n constructor(alg?: FlexibleAlgSource) {\n super();\n this.#algNodes = Array.from(toIterable(alg)); // TODO: can we avoid array-casting?\n // this.#debugString = this.toString();\n\n for (const algNode of this.#algNodes) {\n if (!experimentalIsAlgNode(algNode)) {\n throw new Error(\"An alg can only contain alg nodes.\");\n }\n }\n }\n\n /**\n * Checks whether this Alg is structurally identical to another Alg. This\n * essentially means that they are written identically apart from whitespace.\n *\n * const alg1 = new Alg(\"R U L'\");\n * const alg2 = new Alg(\"L U' R'\").invert();\n * // true\n * alg1.isIdentical(alg2);\n *\n * // false\n * new Alg(\"[R, U]\").isIdentical(new Alg(\"R U R' U'\"));\n * // true\n * new Alg(\"[R, U]\").expand().isIdentical(new Alg(\"R U R' U'\"));\n *\n * Note that .isIdentical() efficiently compares algorithms, but mainly exists\n * to help optimize code when the structure of an algorithm hasn't changed.\n * There are many ways to write the \"same\" alg on most puzzles, but is\n * *highly* recommended to avoid expanding two Alg instances to compare them,\n * since that can easily slow your program to a crawl if someone inputs an alg\n * containing a large repetition. In general, you should use `cubing/kpuzzle`\n * to compare if two algs have the same effect on a puzzle.\n *\n * Also note that parser annotations are not taken into account while comparing\n * algs:\n *\n * const alg = new Alg([new Move(\"R\"), new Move(\"U2\")]);\n * // true, even though one of the algs has parser annotations\n * alg.isIdentical(new Alg(\"R U2\"))\n *\n */\n isIdentical(other: Comparable): boolean {\n const otherAsAlg = other as Alg;\n if (!other.is(Alg)) {\n return false;\n }\n\n // TODO: avoid converting to array\n const l1 = Array.from(this.#algNodes);\n const l2 = Array.from(otherAsAlg.#algNodes);\n if (l1.length !== l2.length) {\n return false;\n }\n for (let i = 0; i < l1.length; i++) {\n if (!l1[i].isIdentical(l2[i])) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Returns the inverse of the given alg.\n *\n * Note that that this does not make any assumptions about what puzzle the alg\n * is for. For example, U2 is its own inverse on a cube, but U2' has the same\n * effect U3 (and not U2) on Megaminx:\n *\n * // Outputs: R U2' L'\n * new Alg(\"L U2 R'\").invert().log();\n */\n invert(): Alg {\n // TODO: Handle newLines and comments correctly\n // TODO: Make more efficient.\n return new Alg(reverse(Array.from(this.#algNodes).map((u) => u.invert())));\n }\n\n /** @deprecated Use {@link Alg.expand} instead. */\n *experimentalExpand(\n iterDir: IterationDirection = IterationDirection.Forwards,\n depth?: number,\n ): Generator<AlgLeaf> {\n depth ??= Infinity;\n for (const algNode of direct(this.#algNodes, iterDir)) {\n yield* algNode.experimentalExpand(iterDir, depth);\n }\n }\n\n /**\n * Expands all Grouping, Commutator, and Conjugate parts nested inside the\n * alg.\n *\n * // F R U R' U' F'\n * new Alg(\"[F: [R, U]]\").expand().log();\n *\n * // F [R, U] F'\n * new Alg(\"[F: [R, U]]\").expand(({ depth: 1 }).log();\n *\n * Avoid calling this on a user-provided alg unless the user explicitly asks\n * to see the expanded alg. Otherwise, it's easy to make your program freeze\n * when someone passes in an alg like: (R U)10000000\n *\n * Generally, if you want to perform an operation on an entire alg, you'll\n * want to use something based on the `Traversal` mechanism, like countMoves()\n * from `cubing/notation`.\n */\n expand(options?: { depth?: number }): Alg {\n return new Alg(\n this.experimentalExpand(\n IterationDirection.Forwards,\n options?.depth ?? Infinity,\n ),\n );\n }\n\n /** @deprecated */\n *experimentalLeafMoves(): Generator<Move> {\n for (const leaf of this.experimentalExpand()) {\n if (leaf.is(Move)) {\n yield leaf as Move;\n }\n }\n }\n\n concat(input: FlexibleAlgSource): Alg {\n return new Alg(\n Array.from(this.#algNodes).concat(Array.from(toIterable(input))),\n );\n }\n\n /** @deprecated */\n experimentalIsEmpty(): boolean {\n for (const _ of this.#algNodes) {\n return false;\n }\n return true;\n }\n\n static fromString(s: string): Alg {\n return parseAlg(s);\n }\n\n /** @deprecated */\n units(): Generator<AlgNode> {\n return this.childAlgNodes();\n }\n\n *childAlgNodes(): Generator<AlgNode> {\n for (const algNode of this.#algNodes) {\n yield algNode;\n }\n }\n\n /** @deprecated */\n experimentalNumUnits(): number {\n return this.experimentalNumChildAlgNodes();\n }\n\n experimentalNumChildAlgNodes(): number {\n return Array.from(this.#algNodes).length;\n }\n\n /** @deprecated */\n get type(): string {\n warnOnce(\"deprecated: type\");\n return \"sequence\";\n }\n\n /**\n * Converts the Alg to a string:\n *\n * const alg = new Alg([new Move(\"R\"), new Move(\"U2\"), new Move(\"L\")])\n * // R U2 L\n * console.log(alg.toString())\n */\n toString(): string {\n let output = \"\";\n let previousVisibleAlgNode: AlgNode | null = null;\n for (const algNode of this.#algNodes) {\n if (previousVisibleAlgNode) {\n output += spaceBetween(previousVisibleAlgNode, algNode);\n }\n const nissGrouping = algNode.as(Pause)?.experimentalNISSGrouping;\n if (nissGrouping) {\n if (nissGrouping.amount !== -1) {\n throw new Error(\"Invalid NISS Grouping amount!\");\n }\n output += `^(${nissGrouping.alg.toString()})`;\n } else if (algNode.as(Grouping)?.experimentalNISSPlaceholder) {\n // do not serialize (rely on the placeholder instead)\n } else {\n output += algNode.toString();\n }\n previousVisibleAlgNode = algNode;\n }\n return output;\n }\n\n /**\n * `experimentalSimplify` can perform several mostly-syntactic simplifications on an alg:\n *\n * // Logs: R' U3\n * import { Alg } from \"cubing/alg\";\n * new Alg(\"R R2' U U2\").experimentalSimplify({ cancel: true }).log()\n *\n * You can pass in a `PuzzleLoader` (currently only for 3x3x3) for puzzle-specific simplifications:\n *\n * // Logs: R' U'\n * import { Alg } from \"cubing/alg\";\n * import { cube3x3x3 } from \"cubing/puzzles\";\n * new Alg(\"R R2' U U2\").experimentalSimplify({ cancel: true, puzzleLoader: cube3x3x3 }).log()\n *\n * You can also cancel only moves that are in the same direction:\n *\n * // Logs: R R2' U'\n * import { Alg } from \"cubing/alg\";\n * import { cube3x3x3 } from \"cubing/puzzles\";\n * new Alg(\"R R2' U U2\").experimentalSimplify({\n * cancel: { directional: \"same-direction\" },\n * puzzleLoader: cube3x3x3\n * }).log()\n *\n * Additionally, you can specify how moves are \"wrapped\":\n *\n * import { Alg } from \"cubing/alg\";\n * import { cube3x3x3 } from \"cubing/puzzles\";\n *\n * function example(puzzleSpecificModWrap) {\n * alg.experimentalSimplify({\n * cancel: { puzzleSpecificModWrap },\n * puzzleLoader: cube3x3x3\n * }).log()\n * }\n *\n * const alg = new Alg(\"R7' . R6' . R5' . R6\")\n * example(\"none\") // R7' . R6' . R5' . R6\n * example(\"gravity\") // R . R2' . R' . R2\n * example(\"canonical-centered\") // R . R2 . R' . R2\n * example(\"canonical-positive\") // R . R2 . R3 . R2\n * example(\"preserve-sign\") // R3' . R2' . R' . R2\n *\n * Same-axis and simultaneous move canonicalization is not implemented yet:\n *\n * // Logs: R L R\n * import { Alg } from \"cubing/alg\";\n * import { cube3x3x3 } from \"cubing/puzzles\";\n * new Alg(\"R L R\").experimentalSimplify({ cancel: true, puzzleLoader: cube3x3x3 }).log()\n */\n experimentalSimplify(options?: SimplifyOptions): Alg {\n return new Alg(simplify(this, options ?? {}));\n }\n\n /** @deprecated See {@link experimentalSimplify} */\n simplify(options?: SimplifyOptions): Alg {\n return this.experimentalSimplify(options);\n }\n}\n\nfunction spaceBetween(u1: AlgNode, u2: AlgNode): string {\n if (u1.is(Newline) || u2.is(Newline)) {\n return \"\";\n }\n if (u2.as(Grouping)?.experimentalNISSPlaceholder) {\n return \"\";\n }\n if (u1.is(LineComment) && !u2.is(Newline)) {\n return \"\\n\"; /// TODO\n }\n return \" \";\n}\n", "// tslint:disable-next-line no-namespace // TODO: nested module\n\nimport { Alg } from \"./Alg\";\nimport { Grouping } from \"./alg-nodes\";\nimport { Commutator } from \"./alg-nodes/containers/Commutator\";\nimport { Conjugate } from \"./alg-nodes/containers/Conjugate\";\nimport { Move } from \"./alg-nodes/leaves/Move\";\nimport { Pause } from \"./alg-nodes/leaves/Pause\";\n\nexport const Example = {\n Sune: new Alg([\n new Move(\"R\", 1),\n new Move(\"U\", 1),\n new Move(\"R\", -1),\n new Move(\"U\", 1),\n new Move(\"R\", 1),\n new Move(\"U\", -2),\n new Move(\"R\", -1),\n ]),\n\n AntiSune: new Alg([\n new Move(\"R\", 1),\n new Move(\"U\", 2),\n new Move(\"R\", -1),\n new Move(\"U\", -1),\n new Move(\"R\", 1),\n new Move(\"U\", -1),\n new Move(\"R\", -1),\n ]),\n\n SuneCommutator: new Alg([\n new Commutator(\n new Alg([new Move(\"R\", 1), new Move(\"U\", 1), new Move(\"R\", -2)]),\n new Alg([\n new Conjugate(new Alg([new Move(\"R\", 1)]), new Alg([new Move(\"U\", 1)])),\n ]),\n ),\n ]),\n\n Niklas: new Alg([\n new Move(\"R\", 1),\n new Move(\"U\", -1),\n new Move(\"L\", -1),\n new Move(\"U\", 1),\n new Move(\"R\", -1),\n new Move(\"U\", -1),\n new Move(\"L\", 1),\n new Move(\"U\", 1),\n ]),\n\n EPerm: new Alg([\n new Move(\"x\", -1),\n new Commutator(\n new Alg([\n new Conjugate(\n new Alg([new Move(\"R\", 1)]),\n new Alg([new Move(\"U\", -1)]),\n ),\n ]),\n new Alg([new Move(\"D\", 1)]),\n ),\n new Commutator(\n new Alg([\n new Conjugate(new Alg([new Move(\"R\", 1)]), new Alg([new Move(\"U\", 1)])),\n ]),\n new Alg([new Move(\"D\", 1)]),\n ),\n new Move(\"x\", 1),\n ]),\n\n FURURFCompact: new Alg([\n new Conjugate(\n new Alg([new Move(\"F\", 1)]),\n new Alg([\n new Commutator(\n new Alg([new Move(\"U\", 1)]),\n new Alg([new Move(\"R\", 1)]),\n ),\n ]),\n ),\n ]),\n\n APermCompact: new Alg([\n new Conjugate(\n new Alg([new Move(\"R\", 2)]),\n new Alg([\n new Commutator(\n new Alg([new Move(\"F\", 2)]),\n new Alg([new Move(\"R\", -1), new Move(\"B\", -1), new Move(\"R\", 1)]),\n ),\n ]),\n ),\n ]),\n\n FURURFMoves: new Alg([\n new Move(\"F\", 1),\n new Move(\"U\", 1),\n new Move(\"R\", 1),\n new Move(\"U\", -1),\n new Move(\"R\", -1),\n new Move(\"F\", -1),\n ]),\n\n TPerm: new Alg([\n new Move(\"R\", 1),\n new Move(\"U\", 1),\n new Move(\"R\", -1),\n new Move(\"U\", -1),\n new Move(\"R\", -1),\n new Move(\"F\", 1),\n new Move(\"R\", 2),\n new Move(\"U\", -1),\n new Move(\"R\", -1),\n new Move(\"U\", -1),\n new Move(\"R\", 1),\n new Move(\"U\", 1),\n new Move(\"R\", -1),\n new Move(\"F\", -1),\n ]),\n\n HeadlightSwaps: new Alg([\n new Conjugate(\n new Alg([new Move(\"F\", 1)]),\n new Alg([\n new Grouping(\n new Alg([\n new Commutator(\n new Alg([new Move(\"R\", 1)]),\n new Alg([new Move(\"U\", 1)]),\n ),\n ]),\n 3,\n ),\n ]),\n ),\n ]),\n\n TriplePause: new Alg([new Pause(), new Pause(), new Pause()]),\n // AllAlgParts: [\n // new Alg([new Move(\"R\", 1), new Move(\"U\", -1)]),\n // new Grouping(new Alg([new Move(\"F\", 1)]), 2),\n // // new Rotation(\"y\", -1),\n // new Move(\"R\", 2),\n // new Commutator(new Alg([new Move(\"R\", 2)]), new Alg([new Move(\"U\", 2)]), 2),\n // new Conjugate(new Alg([new Move(\"L\", 2)]), new Alg([new Move(\"D\", -1)]), 2),\n // new Pause(),\n // new Newline(),\n // new LineComment(\"line comment\"),\n // ],\n};\n", "import { Pause } from \"./alg-nodes\";\nimport type { AlgLeaf } from \"./alg-nodes/AlgNode\";\nimport { Move } from \"./alg-nodes/leaves/Move\";\n\nconst cubeKeyMapping: { [key: number]: AlgLeaf } = {\n 73: new Move(\"R\"),\n 75: new Move(\"R'\"),\n 87: new Move(\"B\"),\n 79: new Move(\"B'\"),\n 83: new Move(\"D\"),\n 76: new Move(\"D'\"),\n 68: new Move(\"L\"),\n 69: new Move(\"L'\"),\n 74: new Move(\"U\"),\n 70: new Move(\"U'\"),\n 72: new Move(\"F\"),\n 71: new Move(\"F'\"),\n\n 78: new Move(\"x'\"),\n 67: new Move(\"l\"),\n 82: new Move(\"l'\"),\n 85: new Move(\"r\"),\n 77: new Move(\"r'\"),\n\n 88: new Move(\"d\"),\n 188: new Move(\"d'\"),\n\n 84: new Move(\"x\"),\n 89: new Move(\"x\"),\n 66: new Move(\"x'\"),\n 186: new Move(\"y\"),\n 59: new Move(\"y\"),\n 65: new Move(\"y'\"), // 186 is WebKit, 59 is Mozilla; see http://unixpapa.com/js/key.html\n 80: new Move(\"z\"),\n 81: new Move(\"z'\"),\n\n 90: new Move(\"M'\"),\n 190: new Move(\"M'\"),\n\n 192: new Pause(),\n};\n\n// TODO: options about whether to ignore modifier keys (e.g. alt, ctrl).\n// TODO: Support different mappings.\n// TODO: Return BaseMove instead?\nexport function keyToMove(e: KeyboardEvent): AlgLeaf | null {\n if (e.altKey || e.ctrlKey) {\n return null;\n }\n\n return cubeKeyMapping[e.keyCode] || null;\n}\n", "import type { Alg } from \"./Alg\";\n\n// This is not the most sophisticated scheme, but it has been used in production\n// at alg.cubing.net for years.\nfunction serializeURLParam(a: Alg): string {\n let escaped = a.toString();\n escaped = escaped.replace(/_/g, \"&#95;\").replace(/ /g, \"_\");\n escaped = escaped.replace(/\\+/g, \"&#2b;\");\n escaped = escaped.replace(/-/g, \"&#45;\").replace(/'/g, \"-\");\n return escaped;\n}\n\nexport interface AlgCubingNetOptions {\n alg?: Alg;\n setup?: Alg;\n title?: string;\n puzzle?:\n | \"1x1x1\"\n | \"2x2x2\"\n | \"3x3x3\"\n | \"4x4x4\"\n | \"5x5x5\"\n | \"6x6x6\"\n | \"7x7x7\"\n | \"8x8x8\"\n | \"9x9x9\"\n | \"10x10x10\"\n | \"11x11x11\"\n | \"12x12x12\"\n | \"13x13x13\"\n | \"14x14x14\"\n | \"16x16x16\"\n | \"17x17x17\";\n stage?:\n | \"full\"\n | \"cross\"\n | \"F2L\"\n | \"LL\"\n | \"OLL\"\n | \"PLL\"\n | \"CLS\"\n | \"ELS\"\n | \"L6E\"\n | \"CMLL\"\n | \"WV\"\n | \"ZBLL\"\n | \"void\";\n view?: \"editor\" | \"playback\" | \"fullscreen\";\n type?: \"moves\" | \"reconstruction\" | \"alg\" | \"reconstruction-end-with-setup\";\n}\n\n// TODO: runtime validation?\n/** @deprecated */\nexport function experimentalAlgCubingNetLink(\n options: AlgCubingNetOptions,\n): string {\n const url = new URL(\"https://alg.cubing.net\");\n if (!options.alg) {\n throw new Error(\"An alg parameter is required.\");\n }\n url.searchParams.set(\"alg\", serializeURLParam(options.alg));\n\n if (options.setup) {\n url.searchParams.set(\"setup\", serializeURLParam(options.setup));\n }\n if (options.title) {\n url.searchParams.set(\"title\", options.title);\n }\n if (options.puzzle) {\n if (\n ![\n \"1x1x1\",\n \"2x2x2\",\n \"3x3x3\",\n \"4x4x4\",\n \"5x5x5\",\n \"6x6x6\",\n \"7x7x7\",\n \"8x8x8\",\n \"9x9x9\",\n \"10x10x10\",\n \"11x11x11\",\n \"12x12x12\",\n \"13x13x13\",\n \"14x14x14\",\n \"16x16x16\",\n \"17x17x17\",\n ].includes(options.puzzle)\n ) {\n throw new Error(`Invalid puzzle parameter: ${options.puzzle}`);\n }\n url.searchParams.set(\"puzzle\", options.puzzle);\n }\n if (options.stage) {\n if (\n ![\n \"full\",\n \"cross\",\n \"F2L\",\n \"LL\",\n \"OLL\",\n \"PLL\",\n \"CLS\",\n \"ELS\",\n \"L6E\",\n \"CMLL\",\n \"WV\",\n \"ZBLL\",\n \"void\",\n ].includes(options.stage)\n ) {\n throw new Error(`Invalid stage parameter: ${options.stage}`);\n }\n url.searchParams.set(\"stage\", options.stage);\n }\n if (options.view) {\n if (![\"editor\", \"playback\", \"fullscreen\"].includes(options.view)) {\n throw new Error(`Invalid view parameter: ${options.view}`);\n }\n url.searchParams.set(\"view\", options.view);\n }\n if (options.type) {\n if (\n ![\n \"moves\",\n \"reconstruction\",\n \"alg\",\n \"reconstruction-end-with-setup\",\n ].includes(options.type)\n ) {\n throw new Error(`Invalid type parameter: ${options.type}`);\n }\n url.searchParams.set(\"type\", options.type);\n }\n return url.toString();\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }