cubing 0.23.0 → 0.24.0-pre1

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 (1040) hide show
  1. package/dist/esm/{2x2x2.kpuzzle.json-JOGUSQ4N.js → 2x2x2.kpuzzle.json-U5KOZCMU.js} +11 -11
  2. package/dist/esm/2x2x2.kpuzzle.json-U5KOZCMU.js.map +7 -0
  3. package/dist/esm/{2x2x2.sgs.json-FRBWMMA7.js → 2x2x2.sgs.json-VLYEQLNB.js} +5 -5
  4. package/dist/esm/2x2x2.sgs.json-VLYEQLNB.js.map +7 -0
  5. package/dist/esm/{3d-Q4WSD4BC.js → 3d-KAC5GXA4.js} +4 -4
  6. package/dist/esm/{3d-Q4WSD4BC.js.map → 3d-KAC5GXA4.js.map} +0 -0
  7. package/dist/esm/bluetooth/index.js +39 -33
  8. package/dist/esm/bluetooth/index.js.map +2 -2
  9. package/dist/esm/{chunk-FK2SCC3Z.js → chunk-23FEDDYH.js} +33 -27
  10. package/dist/esm/chunk-23FEDDYH.js.map +7 -0
  11. package/dist/esm/{chunk-DK6PXBB2.js → chunk-25PPOENI.js} +66 -56
  12. package/dist/esm/chunk-25PPOENI.js.map +7 -0
  13. package/dist/esm/{chunk-XVZOMB6J.js → chunk-27KJGD3S.js} +15 -20
  14. package/dist/esm/chunk-27KJGD3S.js.map +7 -0
  15. package/dist/esm/{chunk-DPMEZY7V.js → chunk-DBWASN5Q.js} +19 -10
  16. package/dist/esm/chunk-DBWASN5Q.js.map +7 -0
  17. package/dist/esm/{chunk-PUPUQWJC.js → chunk-J2U2GRS4.js} +27 -32
  18. package/dist/esm/chunk-J2U2GRS4.js.map +7 -0
  19. package/dist/esm/{chunk-Z6X7HTPP.js → chunk-MQYHOXEK.js} +4 -4
  20. package/dist/esm/{chunk-Z6X7HTPP.js.map → chunk-MQYHOXEK.js.map} +2 -2
  21. package/dist/esm/chunk-PMAQZQHL.js +810 -0
  22. package/dist/esm/chunk-PMAQZQHL.js.map +7 -0
  23. package/dist/esm/{chunk-N3RNWU5T.js → chunk-PQKDEV4Z.js} +36 -51
  24. package/dist/esm/chunk-PQKDEV4Z.js.map +7 -0
  25. package/dist/esm/{chunk-JZWB7AIU.js → chunk-PYOHTUEC.js} +17 -10
  26. package/dist/esm/chunk-PYOHTUEC.js.map +7 -0
  27. package/dist/esm/chunk-W6AA6TVR.js +274 -0
  28. package/dist/esm/chunk-W6AA6TVR.js.map +7 -0
  29. package/dist/esm/{chunk-MLOCDLUF.js → chunk-YLKDBBMW.js} +13 -13
  30. package/dist/esm/{chunk-MLOCDLUF.js.map → chunk-YLKDBBMW.js.map} +2 -2
  31. package/dist/esm/{clock.kpuzzle.json-EKWRMHJM.js → clock.kpuzzle.json-J3YBOI3G.js} +7 -45
  32. package/dist/esm/clock.kpuzzle.json-J3YBOI3G.js.map +7 -0
  33. package/dist/esm/{entry-L6CE2HLF.js → entry-ZLEDRTCM.js} +172 -167
  34. package/dist/esm/entry-ZLEDRTCM.js.map +7 -0
  35. package/dist/esm/{fto.sgs.json-62YNULOK.js → fto.sgs.json-PUAEKD7W.js} +6 -14
  36. package/dist/esm/fto.sgs.json-PUAEKD7W.js.map +7 -0
  37. package/dist/esm/kpuzzle/index.js +5 -35
  38. package/dist/esm/megaminx.sgs.json-DPQBIFB6.js +16 -0
  39. package/dist/esm/{megaminx.sgs.json-PRL46G5J.js.map → megaminx.sgs.json-DPQBIFB6.js.map} +0 -0
  40. package/dist/esm/{module-entry-J2N3UZP7.js → module-entry-UAGINHYL.js} +2 -2
  41. package/dist/esm/{module-entry-J2N3UZP7.js.map → module-entry-UAGINHYL.js.map} +0 -0
  42. package/dist/esm/protocol/index.js +2 -1
  43. package/dist/esm/puzzle-geometry/index.js +3 -1
  44. package/dist/esm/puzzles/index.js +4 -4
  45. package/dist/esm/{pyraminx.sgs.json-7QMPT5XP.js → pyraminx.sgs.json-5UKE76QP.js} +5 -5
  46. package/dist/esm/{pyraminx.sgs.json-7QMPT5XP.js.map → pyraminx.sgs.json-5UKE76QP.js.map} +0 -0
  47. package/dist/esm/scramble/index.js +4 -4
  48. package/dist/esm/{scramble_444-JP3CWLJM.js → scramble_444-ZNWCGUX5.js} +4 -4
  49. package/dist/esm/{scramble_444-JP3CWLJM.js.map → scramble_444-ZNWCGUX5.js.map} +0 -0
  50. package/dist/esm/search/index.js +4 -4
  51. package/dist/esm/skewb.sgs.json-O2CG5ALM.js +16 -0
  52. package/dist/esm/{skewb.sgs.json-FWHYACJG.js.map → skewb.sgs.json-O2CG5ALM.js.map} +0 -0
  53. package/dist/esm/{sq1-hyperorbit.kpuzzle.json-N3FGCPML.js → sq1-hyperorbit.kpuzzle.json-AWDGN4ZW.js} +6 -6
  54. package/dist/esm/sq1-hyperorbit.kpuzzle.json-AWDGN4ZW.js.map +7 -0
  55. package/dist/esm/twisty/index.js +334 -227
  56. package/dist/esm/twisty/index.js.map +3 -3
  57. package/dist/esm/worker-inside-generated-string-K4KJGMPV.js +3447 -0
  58. package/dist/esm/worker-inside-generated-string-K4KJGMPV.js.map +7 -0
  59. package/dist/types/alg/Alg.d.ts +0 -1
  60. package/dist/types/alg/Alg.spec.d.ts +0 -1
  61. package/dist/types/alg/AlgBuilder.d.ts +0 -1
  62. package/dist/types/alg/Serializable.d.ts +0 -1
  63. package/dist/types/alg/common.d.ts +0 -1
  64. package/dist/types/alg/debug.d.ts +0 -1
  65. package/dist/types/alg/example.d.ts +0 -1
  66. package/dist/types/alg/index.d.ts +0 -1
  67. package/dist/types/alg/is.d.ts +0 -1
  68. package/dist/types/alg/iteration.d.ts +0 -1
  69. package/dist/types/alg/keyboard.d.ts +0 -1
  70. package/dist/types/alg/limits.d.ts +0 -1
  71. package/dist/types/alg/operation.d.ts +0 -1
  72. package/dist/types/alg/operation.spec.d.ts +0 -1
  73. package/dist/types/alg/parse.d.ts +0 -1
  74. package/dist/types/alg/parse.spec.d.ts +0 -1
  75. package/dist/types/alg/test/alg-comparison.d.ts +0 -1
  76. package/dist/types/alg/test/alg.spec.d.ts +0 -1
  77. package/dist/types/alg/traversal.d.ts +0 -1
  78. package/dist/types/alg/units/QuantumWithAmount.d.ts +0 -1
  79. package/dist/types/alg/units/Unit.d.ts +0 -1
  80. package/dist/types/alg/units/containers/Commutator.d.ts +0 -1
  81. package/dist/types/alg/units/containers/Conjugate.d.ts +0 -1
  82. package/dist/types/alg/units/containers/Grouping.d.ts +0 -1
  83. package/dist/types/alg/units/index.d.ts +0 -1
  84. package/dist/types/alg/units/leaves/LineComment.d.ts +0 -1
  85. package/dist/types/alg/units/leaves/LineComment.spec.d.ts +0 -1
  86. package/dist/types/alg/units/leaves/Move.d.ts +0 -1
  87. package/dist/types/alg/units/leaves/Move.spec.d.ts +0 -1
  88. package/dist/types/alg/units/leaves/Newline.d.ts +0 -1
  89. package/dist/types/alg/units/leaves/Pause.d.ts +0 -1
  90. package/dist/types/alg/url.d.ts +0 -1
  91. package/dist/types/alg/url.spec.d.ts +0 -1
  92. package/dist/types/alg/validation.d.ts +0 -1
  93. package/dist/types/alg/warnOnce.d.ts +0 -1
  94. package/dist/types/bluetooth/connect/index.d.ts +0 -1
  95. package/dist/types/bluetooth/debug.d.ts +0 -1
  96. package/dist/types/bluetooth/index.d.ts +0 -1
  97. package/dist/types/bluetooth/keyboard.d.ts +5 -5
  98. package/dist/types/bluetooth/smart-puzzle/Heykube.d.ts +3 -3
  99. package/dist/types/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts +3 -5
  100. package/dist/types/bluetooth/smart-puzzle/connect.d.ts +0 -1
  101. package/dist/types/bluetooth/smart-puzzle/endianness.d.ts +0 -1
  102. package/dist/types/bluetooth/smart-puzzle/gan.d.ts +5 -4
  103. package/dist/types/bluetooth/smart-puzzle/giiker.d.ts +3 -3
  104. package/dist/types/bluetooth/smart-puzzle/giiker.spec.d.ts +0 -1
  105. package/dist/types/bluetooth/smart-puzzle/gocube.d.ts +0 -1
  106. package/dist/types/bluetooth/smart-robot/GanRobot.d.ts +0 -1
  107. package/dist/types/bluetooth/smart-robot/index.d.ts +0 -1
  108. package/dist/types/bluetooth/smart-timer/GanTimer.d.ts +0 -1
  109. package/dist/types/bluetooth/smart-timer/index.d.ts +0 -1
  110. package/dist/types/bluetooth/transformer.d.ts +0 -1
  111. package/dist/types/cubing.bundle-global.d.ts +0 -1
  112. package/dist/types/cubing.bundle-global.exports.d.ts +0 -1
  113. package/dist/types/esm-test-worker.d.ts +0 -1
  114. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.d.ts +2 -3
  115. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.d.ts +0 -1
  116. package/dist/types/kpuzzle/3x3x3/puzzle-orientation.d.ts +4 -0
  117. package/dist/types/kpuzzle/KPuzzle.d.ts +21 -0
  118. package/dist/types/kpuzzle/KPuzzleDefinition.d.ts +20 -0
  119. package/dist/types/kpuzzle/KState.d.ts +16 -0
  120. package/dist/types/kpuzzle/KTransformation.d.ts +20 -0
  121. package/dist/types/kpuzzle/calculate.d.ts +16 -0
  122. package/dist/types/kpuzzle/combine.d.ts +3 -0
  123. package/dist/types/kpuzzle/construct.d.ts +5 -0
  124. package/dist/types/kpuzzle/index.d.ts +6 -10
  125. package/dist/types/notation/CountAnimatedLeaves.d.ts +0 -1
  126. package/dist/types/notation/CountMoves.d.ts +0 -1
  127. package/dist/types/notation/index.d.ts +0 -1
  128. package/dist/types/protocol/binary/binary3x3x3.d.ts +5 -6
  129. package/dist/types/protocol/binary/binary3x3x3.spec.d.ts +0 -1
  130. package/dist/types/protocol/binary/hex.d.ts +0 -1
  131. package/dist/types/protocol/binary/hex.spec.d.ts +0 -1
  132. package/dist/types/protocol/binary/orbit-indexing.d.ts +0 -1
  133. package/dist/types/protocol/binary/orbit-indexing.spec.d.ts +0 -1
  134. package/dist/types/protocol/binary/puzzle-orientation.d.ts +4 -5
  135. package/dist/types/protocol/index.d.ts +0 -1
  136. package/dist/types/puzzle-geometry/FaceNameSwizzler.d.ts +0 -1
  137. package/dist/types/puzzle-geometry/Options.d.ts +0 -1
  138. package/dist/types/puzzle-geometry/PGPuzzles.d.ts +0 -1
  139. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts +0 -1
  140. package/dist/types/puzzle-geometry/Perm.d.ts +0 -1
  141. package/dist/types/puzzle-geometry/PermOriSet.d.ts +4 -5
  142. package/dist/types/puzzle-geometry/PlatonicGenerator.d.ts +0 -1
  143. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts +9 -3
  144. package/dist/types/puzzle-geometry/Quat.d.ts +0 -1
  145. package/dist/types/puzzle-geometry/Quat.spec.d.ts +0 -1
  146. package/dist/types/puzzle-geometry/SchreierSims.d.ts +0 -1
  147. package/dist/types/puzzle-geometry/index.d.ts +1 -1
  148. package/dist/types/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts +0 -1
  149. package/dist/types/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts +0 -1
  150. package/dist/types/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts +0 -1
  151. package/dist/types/puzzle-geometry/notation-mapping/NotationMapper.d.ts +3 -2
  152. package/dist/types/puzzle-geometry/notation-mapping/NullMapper.d.ts +0 -1
  153. package/dist/types/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts +0 -1
  154. package/dist/types/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts +0 -1
  155. package/dist/types/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts +0 -1
  156. package/dist/types/puzzle-geometry/notation-mapping/index.d.ts +0 -1
  157. package/dist/types/puzzle-geometry/orientcenters.spec.d.ts +0 -1
  158. package/dist/types/puzzles/PuzzleLoader.d.ts +3 -3
  159. package/dist/types/puzzles/async/async-pg3d.d.ts +3 -3
  160. package/dist/types/puzzles/async/lazy-cached-kpuzzle.d.ts +2 -0
  161. package/dist/types/puzzles/customPGPuzzleLoader.d.ts +2 -3
  162. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.d.ts +1 -2
  163. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.d.ts +0 -1
  164. package/dist/types/puzzles/implementations/2x2x2/index.d.ts +0 -1
  165. package/dist/types/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts +0 -1
  166. package/dist/types/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.d.ts +0 -1
  167. package/dist/types/puzzles/implementations/3x3x3/index.d.ts +0 -1
  168. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.json.d.ts +1 -2
  169. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.svg.d.ts +0 -1
  170. package/dist/types/puzzles/implementations/clock/index.d.ts +0 -1
  171. package/dist/types/puzzles/implementations/fto/index.d.ts +0 -1
  172. package/dist/types/puzzles/implementations/megaminx/index.d.ts +0 -1
  173. package/dist/types/puzzles/implementations/pyraminx/index.d.ts +0 -1
  174. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.d.ts +0 -1
  175. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.d.ts +0 -1
  176. package/dist/types/puzzles/implementations/square1/index.d.ts +0 -1
  177. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.d.ts +1 -2
  178. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.d.ts +0 -1
  179. package/dist/types/puzzles/index.d.ts +1 -2
  180. package/dist/types/puzzles/stickerings/appearance.d.ts +6 -7
  181. package/dist/types/puzzles/stickerings/cube-stickerings.d.ts +0 -1
  182. package/dist/types/puzzles/stickerings/fto-stickerings.d.ts +0 -1
  183. package/dist/types/puzzles/stickerings/global-custom-stickering-hack.d.ts +0 -1
  184. package/dist/types/puzzles/stickerings/megaminx-stickerings.d.ts +0 -1
  185. package/dist/types/scramble/index.d.ts +0 -1
  186. package/dist/types/search/esm-test-worker.d.ts +0 -1
  187. package/dist/types/search/index.d.ts +0 -1
  188. package/dist/types/search/inside/api.d.ts +6 -7
  189. package/dist/types/search/inside/api.spec.d.ts +0 -1
  190. package/dist/types/search/inside/entry.d.ts +0 -1
  191. package/dist/types/search/inside/inside-worker.d.ts +0 -1
  192. package/dist/types/search/inside/module-entry-path-getter.d.ts +0 -1
  193. package/dist/types/search/inside/module-entry.d.ts +0 -1
  194. package/dist/types/search/inside/solve/addOrientationSuffix.d.ts +0 -1
  195. package/dist/types/search/inside/solve/parseSGS.d.ts +3 -4
  196. package/dist/types/search/inside/solve/puzzles/2x2x2.d.ts +3 -4
  197. package/dist/types/search/inside/solve/puzzles/2x2x2.sgs.json.d.ts +0 -1
  198. package/dist/types/search/inside/solve/puzzles/3x3x3/convert.d.ts +2 -3
  199. package/dist/types/search/inside/solve/puzzles/3x3x3/filter.d.ts +4 -4
  200. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts +3 -4
  201. package/dist/types/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts +0 -1
  202. package/dist/types/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.d.ts +0 -1
  203. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts +0 -1
  204. package/dist/types/search/inside/solve/puzzles/5x5x5.d.ts +0 -1
  205. package/dist/types/search/inside/solve/puzzles/big-cubes.d.ts +0 -1
  206. package/dist/types/search/inside/solve/puzzles/clock.d.ts +0 -1
  207. package/dist/types/search/inside/solve/puzzles/fto.d.ts +2 -3
  208. package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts +0 -3
  209. package/dist/types/search/inside/solve/puzzles/megaminx.d.ts +2 -3
  210. package/dist/types/search/inside/solve/puzzles/megaminx.sgs.json.d.ts +2 -3
  211. package/dist/types/search/inside/solve/puzzles/pyraminx.d.ts +3 -4
  212. package/dist/types/search/inside/solve/puzzles/pyraminx.sgs.json.d.ts +0 -1
  213. package/dist/types/search/inside/solve/puzzles/sgs-defs.spec.d.ts +0 -1
  214. package/dist/types/search/inside/solve/puzzles/skewb.d.ts +3 -4
  215. package/dist/types/search/inside/solve/puzzles/skewb.sgs.json.d.ts +2 -3
  216. package/dist/types/search/inside/solve/puzzles/sq1.d.ts +0 -1
  217. package/dist/types/search/inside/solve/puzzles/wca-minx.d.ts +0 -1
  218. package/dist/types/search/inside/solve/tremble.d.ts +6 -6
  219. package/dist/types/search/instantiator.d.ts +0 -1
  220. package/dist/types/search/outside.d.ts +6 -7
  221. package/dist/types/search/worker-inside-generated-string.d.ts +1 -2
  222. package/dist/types/stream/index.d.ts +0 -1
  223. package/dist/types/stream/process/ReorientedStream.d.ts +1 -3
  224. package/dist/types/stream/proxy-event.d.ts +0 -1
  225. package/dist/types/stream/twizzle/TwizzleStream.d.ts +0 -1
  226. package/dist/types/stream/twizzle/stream-types.d.ts +0 -1
  227. package/dist/types/stream/websocket-proxy.d.ts +0 -1
  228. package/dist/types/twisty/controllers/AnimationTypes.d.ts +2 -3
  229. package/dist/types/twisty/controllers/RenderScheduler.d.ts +0 -1
  230. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts +0 -1
  231. package/dist/types/twisty/controllers/TwistyPlayerController.d.ts +0 -1
  232. package/dist/types/twisty/controllers/easing.d.ts +0 -1
  233. package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts +0 -1
  234. package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts +6 -6
  235. package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts +7 -7
  236. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts +8 -8
  237. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts +9 -9
  238. package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts +0 -1
  239. package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts +36 -37
  240. package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts +7 -7
  241. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts +0 -1
  242. package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts +0 -1
  243. package/dist/types/twisty/heavy-code-imports/3d.d.ts +0 -1
  244. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d.d.ts +0 -1
  245. package/dist/types/twisty/index.d.ts +1 -2
  246. package/dist/types/twisty/model/PromiseFreshener.d.ts +0 -1
  247. package/dist/types/twisty/model/TwistyPlayerModel.d.ts +6 -7
  248. package/dist/types/twisty/model/UserVisibleErrorTracker.d.ts +0 -1
  249. package/dist/types/twisty/model/helpers.d.ts +0 -1
  250. package/dist/types/twisty/model/props/TwistyProp.d.ts +0 -1
  251. package/dist/types/twisty/model/props/TwistyProp.spec.d.ts +0 -1
  252. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts +0 -1
  253. package/dist/types/twisty/model/props/general/URLProp.d.ts +0 -1
  254. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts +0 -1
  255. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts +0 -1
  256. package/dist/types/twisty/model/props/puzzle/display/SpriteProp.d.ts +0 -1
  257. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts +0 -1
  258. package/dist/types/twisty/model/props/puzzle/state/AlgProp.d.ts +0 -1
  259. package/dist/types/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts +5 -8
  260. package/dist/types/twisty/model/props/puzzle/state/AnchoredStartProp.d.ts +5 -7
  261. package/dist/types/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts +0 -1
  262. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts +0 -1
  263. package/dist/types/twisty/model/props/puzzle/state/{CurrentLeavesProp.d.ts → CurrentMoveInfoProp.d.ts} +2 -3
  264. package/dist/types/twisty/model/props/puzzle/state/CurrentStateProp.d.ts +14 -0
  265. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts +7 -8
  266. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts +0 -1
  267. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts +5 -6
  268. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts +2 -3
  269. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +0 -1
  270. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts +0 -1
  271. package/dist/types/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts +4 -5
  272. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts +0 -1
  273. package/dist/types/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts +10 -0
  274. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts +0 -1
  275. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts +0 -1
  276. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +0 -1
  277. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts +0 -1
  278. package/dist/types/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts +0 -1
  279. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts +0 -1
  280. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts +0 -1
  281. package/dist/types/twisty/model/props/timeline/TempoScaleProp.d.ts +0 -1
  282. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts +0 -1
  283. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts +0 -1
  284. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts +0 -1
  285. package/dist/types/twisty/model/props/viewer/ButtonAppearanceProp.d.ts +0 -1
  286. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts +0 -1
  287. package/dist/types/twisty/model/props/viewer/LatitudeLimit.d.ts +0 -1
  288. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts +0 -1
  289. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts +0 -1
  290. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts +2 -3
  291. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts +0 -1
  292. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts +0 -1
  293. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts +0 -1
  294. package/dist/types/twisty/views/2D/KPuzzleSVGWrapper.d.ts +17 -0
  295. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts +0 -1
  296. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts +4 -4
  297. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts +0 -1
  298. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts +0 -1
  299. package/dist/types/twisty/views/3D/DragTracker.d.ts +0 -1
  300. package/dist/types/twisty/views/3D/RendererPool.d.ts +0 -1
  301. package/dist/types/twisty/views/3D/TAU.d.ts +0 -1
  302. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts +0 -1
  303. package/dist/types/twisty/views/3D/Twisty3DRenderTarget.d.ts +0 -1
  304. package/dist/types/twisty/views/3D/Twisty3DScene.d.ts +0 -1
  305. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts +0 -1
  306. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts +0 -1
  307. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts +0 -1
  308. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts +0 -1
  309. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts +0 -1
  310. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts +4 -5
  311. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts +5 -6
  312. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts +0 -1
  313. package/dist/types/twisty/views/ClassListManager.d.ts +0 -1
  314. package/dist/types/twisty/views/ManagedCustomElement.d.ts +0 -1
  315. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts +0 -1
  316. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts +0 -1
  317. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts +0 -1
  318. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts +0 -1
  319. package/dist/types/twisty/views/TwistyAlgEditor/model.d.ts +0 -1
  320. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts +0 -1
  321. package/dist/types/twisty/views/TwistyAlgViewer.d.ts +0 -1
  322. package/dist/types/twisty/views/TwistyPlayer.css.d.ts +0 -1
  323. package/dist/types/twisty/views/TwistyPlayer.d.ts +0 -1
  324. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts +0 -1
  325. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts +0 -1
  326. package/dist/types/twisty/views/canvas.d.ts +0 -1
  327. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.css.d.ts +0 -1
  328. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.d.ts +0 -1
  329. package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts +0 -1
  330. package/dist/types/twisty/views/control-panel/TwistyScrubberV2.d.ts +0 -1
  331. package/dist/types/twisty/views/control-panel/webkit-fullscreen.d.ts +0 -1
  332. package/dist/types/twisty/views/document.d.ts +0 -1
  333. package/dist/types/twisty/views/node-custom-element-shims.d.ts +0 -1
  334. package/dist/types/twisty/views/screenshot.d.ts +0 -1
  335. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts +0 -1
  336. package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts +0 -1
  337. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts +0 -1
  338. package/dist/types/vendor/comlink-everywhere/inside/node.d.ts +0 -1
  339. package/dist/types/vendor/comlink-everywhere/outside/index.d.ts +0 -1
  340. package/dist/types/vendor/comlink-everywhere/outside/node.d.ts +0 -1
  341. package/dist/types/vendor/cstimer/src/js/lib/mathlib.d.ts +0 -1
  342. package/dist/types/vendor/cstimer/src/js/scramble/scramble_444.d.ts +0 -1
  343. package/dist/types/vendor/min2phase/gwt.d.ts +0 -1
  344. package/dist/types/vendor/p-lazy/p-lazy.d.ts +0 -1
  345. package/dist/types/vendor/random-uint-below/get-random-values.d.ts +0 -1
  346. package/dist/types/vendor/random-uint-below/index.d.ts +0 -1
  347. package/dist/types/vendor/random-uint-below/random-choice.d.ts +0 -1
  348. package/dist/types/vendor/random-uint-below/random53BitValue.d.ts +0 -1
  349. package/dist/types/vendor/sq12phase/scramble_sq1.d.ts +0 -1
  350. package/dist/types/vendor/three/examples/jsm/libs/stats.modified.module.d.ts +0 -1
  351. package/dist/types/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts +0 -1
  352. package/package.json +3 -4
  353. package/dist/bin/order.js +0 -16675
  354. package/dist/bin/order.js.map +0 -7
  355. package/dist/bin/puzzle-geometry-bin.js +0 -5444
  356. package/dist/bin/puzzle-geometry-bin.js.map +0 -7
  357. package/dist/bundle-global/cubing.bundle-global.js +0 -10432
  358. package/dist/esm/2x2x2.kpuzzle.json-JOGUSQ4N.js.map +0 -7
  359. package/dist/esm/2x2x2.sgs.json-FRBWMMA7.js.map +0 -7
  360. package/dist/esm/chunk-DK6PXBB2.js.map +0 -7
  361. package/dist/esm/chunk-DPMEZY7V.js.map +0 -7
  362. package/dist/esm/chunk-FK2SCC3Z.js.map +0 -7
  363. package/dist/esm/chunk-JZWB7AIU.js.map +0 -7
  364. package/dist/esm/chunk-N3RNWU5T.js.map +0 -7
  365. package/dist/esm/chunk-PUPUQWJC.js.map +0 -7
  366. package/dist/esm/chunk-X6JHXPDX.js +0 -2359
  367. package/dist/esm/chunk-X6JHXPDX.js.map +0 -7
  368. package/dist/esm/chunk-XVZOMB6J.js.map +0 -7
  369. package/dist/esm/clock.kpuzzle.json-EKWRMHJM.js.map +0 -7
  370. package/dist/esm/entry-L6CE2HLF.js.map +0 -7
  371. package/dist/esm/fto.sgs.json-62YNULOK.js.map +0 -7
  372. package/dist/esm/megaminx.sgs.json-PRL46G5J.js +0 -16
  373. package/dist/esm/skewb.sgs.json-FWHYACJG.js +0 -16
  374. package/dist/esm/sq1-hyperorbit.kpuzzle.json-N3FGCPML.js.map +0 -7
  375. package/dist/esm/worker-inside-generated-string-OWJA5IIQ.js +0 -3450
  376. package/dist/esm/worker-inside-generated-string-OWJA5IIQ.js.map +0 -7
  377. package/dist/types/alg/Alg.d.ts.map +0 -1
  378. package/dist/types/alg/Alg.spec.d.ts.map +0 -1
  379. package/dist/types/alg/AlgBuilder.d.ts.map +0 -1
  380. package/dist/types/alg/Serializable.d.ts.map +0 -1
  381. package/dist/types/alg/common.d.ts.map +0 -1
  382. package/dist/types/alg/debug.d.ts.map +0 -1
  383. package/dist/types/alg/example.d.ts.map +0 -1
  384. package/dist/types/alg/index.d.ts.map +0 -1
  385. package/dist/types/alg/is.d.ts.map +0 -1
  386. package/dist/types/alg/iteration.d.ts.map +0 -1
  387. package/dist/types/alg/keyboard.d.ts.map +0 -1
  388. package/dist/types/alg/limits.d.ts.map +0 -1
  389. package/dist/types/alg/operation.d.ts.map +0 -1
  390. package/dist/types/alg/operation.spec.d.ts.map +0 -1
  391. package/dist/types/alg/parse.d.ts.map +0 -1
  392. package/dist/types/alg/parse.spec.d.ts.map +0 -1
  393. package/dist/types/alg/test/alg-comparison.d.ts.map +0 -1
  394. package/dist/types/alg/test/alg.spec.d.ts.map +0 -1
  395. package/dist/types/alg/traversal.d.ts.map +0 -1
  396. package/dist/types/alg/units/QuantumWithAmount.d.ts.map +0 -1
  397. package/dist/types/alg/units/Unit.d.ts.map +0 -1
  398. package/dist/types/alg/units/containers/Commutator.d.ts.map +0 -1
  399. package/dist/types/alg/units/containers/Conjugate.d.ts.map +0 -1
  400. package/dist/types/alg/units/containers/Grouping.d.ts.map +0 -1
  401. package/dist/types/alg/units/index.d.ts.map +0 -1
  402. package/dist/types/alg/units/leaves/LineComment.d.ts.map +0 -1
  403. package/dist/types/alg/units/leaves/LineComment.spec.d.ts.map +0 -1
  404. package/dist/types/alg/units/leaves/Move.d.ts.map +0 -1
  405. package/dist/types/alg/units/leaves/Move.spec.d.ts.map +0 -1
  406. package/dist/types/alg/units/leaves/Newline.d.ts.map +0 -1
  407. package/dist/types/alg/units/leaves/Pause.d.ts.map +0 -1
  408. package/dist/types/alg/url.d.ts.map +0 -1
  409. package/dist/types/alg/url.spec.d.ts.map +0 -1
  410. package/dist/types/alg/validation.d.ts.map +0 -1
  411. package/dist/types/alg/warnOnce.d.ts.map +0 -1
  412. package/dist/types/bluetooth/connect/index.d.ts.map +0 -1
  413. package/dist/types/bluetooth/debug.d.ts.map +0 -1
  414. package/dist/types/bluetooth/index.d.ts.map +0 -1
  415. package/dist/types/bluetooth/keyboard.d.ts.map +0 -1
  416. package/dist/types/bluetooth/smart-puzzle/Heykube.d.ts.map +0 -1
  417. package/dist/types/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts.map +0 -1
  418. package/dist/types/bluetooth/smart-puzzle/connect.d.ts.map +0 -1
  419. package/dist/types/bluetooth/smart-puzzle/endianness.d.ts.map +0 -1
  420. package/dist/types/bluetooth/smart-puzzle/gan.d.ts.map +0 -1
  421. package/dist/types/bluetooth/smart-puzzle/giiker.d.ts.map +0 -1
  422. package/dist/types/bluetooth/smart-puzzle/giiker.spec.d.ts.map +0 -1
  423. package/dist/types/bluetooth/smart-puzzle/gocube.d.ts.map +0 -1
  424. package/dist/types/bluetooth/smart-robot/GanRobot.d.ts.map +0 -1
  425. package/dist/types/bluetooth/smart-robot/index.d.ts.map +0 -1
  426. package/dist/types/bluetooth/smart-timer/GanTimer.d.ts.map +0 -1
  427. package/dist/types/bluetooth/smart-timer/index.d.ts.map +0 -1
  428. package/dist/types/bluetooth/transformer.d.ts.map +0 -1
  429. package/dist/types/cubing.bundle-global.d.ts.map +0 -1
  430. package/dist/types/cubing.bundle-global.exports.d.ts.map +0 -1
  431. package/dist/types/esm-test-worker.d.ts.map +0 -1
  432. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.d.ts.map +0 -1
  433. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.d.ts.map +0 -1
  434. package/dist/types/kpuzzle/canon.spec.d.ts +0 -2
  435. package/dist/types/kpuzzle/canon.spec.d.ts.map +0 -1
  436. package/dist/types/kpuzzle/canonicalize.d.ts +0 -55
  437. package/dist/types/kpuzzle/canonicalize.d.ts.map +0 -1
  438. package/dist/types/kpuzzle/definition_types.d.ts +0 -19
  439. package/dist/types/kpuzzle/definition_types.d.ts.map +0 -1
  440. package/dist/types/kpuzzle/index.d.ts.map +0 -1
  441. package/dist/types/kpuzzle/kpuzzle.d.ts +0 -17
  442. package/dist/types/kpuzzle/kpuzzle.d.ts.map +0 -1
  443. package/dist/types/kpuzzle/kpuzzle.spec.d.ts +0 -2
  444. package/dist/types/kpuzzle/kpuzzle.spec.d.ts.map +0 -1
  445. package/dist/types/kpuzzle/move_notation.d.ts +0 -6
  446. package/dist/types/kpuzzle/move_notation.d.ts.map +0 -1
  447. package/dist/types/kpuzzle/parser/index.d.ts +0 -2
  448. package/dist/types/kpuzzle/parser/index.d.ts.map +0 -1
  449. package/dist/types/kpuzzle/parser/parser-peggy.d.ts +0 -15
  450. package/dist/types/kpuzzle/parser/parser-peggy.d.ts.map +0 -1
  451. package/dist/types/kpuzzle/parser/parser-shim.d.ts +0 -4
  452. package/dist/types/kpuzzle/parser/parser-shim.d.ts.map +0 -1
  453. package/dist/types/kpuzzle/parser/parser.d.ts +0 -1
  454. package/dist/types/kpuzzle/parser/parser.d.ts.map +0 -1
  455. package/dist/types/kpuzzle/prunetable.spec.d.ts +0 -2
  456. package/dist/types/kpuzzle/prunetable.spec.d.ts.map +0 -1
  457. package/dist/types/kpuzzle/pruningtable.d.ts +0 -16
  458. package/dist/types/kpuzzle/pruningtable.d.ts.map +0 -1
  459. package/dist/types/kpuzzle/puzzle-orientation.d.ts +0 -5
  460. package/dist/types/kpuzzle/puzzle-orientation.d.ts.map +0 -1
  461. package/dist/types/kpuzzle/svg.d.ts +0 -18
  462. package/dist/types/kpuzzle/svg.d.ts.map +0 -1
  463. package/dist/types/kpuzzle/transformations.d.ts +0 -13
  464. package/dist/types/kpuzzle/transformations.d.ts.map +0 -1
  465. package/dist/types/kpuzzle/transformations.spec.d.ts +0 -2
  466. package/dist/types/kpuzzle/transformations.spec.d.ts.map +0 -1
  467. package/dist/types/notation/CountAnimatedLeaves.d.ts.map +0 -1
  468. package/dist/types/notation/CountMoves.d.ts.map +0 -1
  469. package/dist/types/notation/index.d.ts.map +0 -1
  470. package/dist/types/protocol/binary/binary3x3x3.d.ts.map +0 -1
  471. package/dist/types/protocol/binary/binary3x3x3.spec.d.ts.map +0 -1
  472. package/dist/types/protocol/binary/hex.d.ts.map +0 -1
  473. package/dist/types/protocol/binary/hex.spec.d.ts.map +0 -1
  474. package/dist/types/protocol/binary/orbit-indexing.d.ts.map +0 -1
  475. package/dist/types/protocol/binary/orbit-indexing.spec.d.ts.map +0 -1
  476. package/dist/types/protocol/binary/puzzle-orientation.d.ts.map +0 -1
  477. package/dist/types/protocol/index.d.ts.map +0 -1
  478. package/dist/types/puzzle-geometry/FaceNameSwizzler.d.ts.map +0 -1
  479. package/dist/types/puzzle-geometry/Options.d.ts.map +0 -1
  480. package/dist/types/puzzle-geometry/PGPuzzles.d.ts.map +0 -1
  481. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts.map +0 -1
  482. package/dist/types/puzzle-geometry/Perm.d.ts.map +0 -1
  483. package/dist/types/puzzle-geometry/PermOriSet.d.ts.map +0 -1
  484. package/dist/types/puzzle-geometry/PlatonicGenerator.d.ts.map +0 -1
  485. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts.map +0 -1
  486. package/dist/types/puzzle-geometry/Quat.d.ts.map +0 -1
  487. package/dist/types/puzzle-geometry/Quat.spec.d.ts.map +0 -1
  488. package/dist/types/puzzle-geometry/SchreierSims.d.ts.map +0 -1
  489. package/dist/types/puzzle-geometry/index.d.ts.map +0 -1
  490. package/dist/types/puzzle-geometry/interfaces.d.ts +0 -6
  491. package/dist/types/puzzle-geometry/interfaces.d.ts.map +0 -1
  492. package/dist/types/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts.map +0 -1
  493. package/dist/types/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts.map +0 -1
  494. package/dist/types/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts.map +0 -1
  495. package/dist/types/puzzle-geometry/notation-mapping/NotationMapper.d.ts.map +0 -1
  496. package/dist/types/puzzle-geometry/notation-mapping/NullMapper.d.ts.map +0 -1
  497. package/dist/types/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts.map +0 -1
  498. package/dist/types/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts.map +0 -1
  499. package/dist/types/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts.map +0 -1
  500. package/dist/types/puzzle-geometry/notation-mapping/index.d.ts.map +0 -1
  501. package/dist/types/puzzle-geometry/orientcenters.spec.d.ts.map +0 -1
  502. package/dist/types/puzzles/PuzzleLoader.d.ts.map +0 -1
  503. package/dist/types/puzzles/async/async-pg3d.d.ts.map +0 -1
  504. package/dist/types/puzzles/customPGPuzzleLoader.d.ts.map +0 -1
  505. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.d.ts.map +0 -1
  506. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.d.ts.map +0 -1
  507. package/dist/types/puzzles/implementations/2x2x2/index.d.ts.map +0 -1
  508. package/dist/types/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts.map +0 -1
  509. package/dist/types/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.d.ts.map +0 -1
  510. package/dist/types/puzzles/implementations/3x3x3/index.d.ts.map +0 -1
  511. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.json.d.ts.map +0 -1
  512. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.svg.d.ts.map +0 -1
  513. package/dist/types/puzzles/implementations/clock/index.d.ts.map +0 -1
  514. package/dist/types/puzzles/implementations/fto/index.d.ts.map +0 -1
  515. package/dist/types/puzzles/implementations/megaminx/index.d.ts.map +0 -1
  516. package/dist/types/puzzles/implementations/pyraminx/index.d.ts.map +0 -1
  517. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.d.ts.map +0 -1
  518. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.d.ts.map +0 -1
  519. package/dist/types/puzzles/implementations/square1/index.d.ts.map +0 -1
  520. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.d.ts.map +0 -1
  521. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.d.ts.map +0 -1
  522. package/dist/types/puzzles/index.d.ts.map +0 -1
  523. package/dist/types/puzzles/stickerings/appearance.d.ts.map +0 -1
  524. package/dist/types/puzzles/stickerings/cube-stickerings.d.ts.map +0 -1
  525. package/dist/types/puzzles/stickerings/fto-stickerings.d.ts.map +0 -1
  526. package/dist/types/puzzles/stickerings/global-custom-stickering-hack.d.ts.map +0 -1
  527. package/dist/types/puzzles/stickerings/megaminx-stickerings.d.ts.map +0 -1
  528. package/dist/types/scramble/index.d.ts.map +0 -1
  529. package/dist/types/search/esm-test-worker.d.ts.map +0 -1
  530. package/dist/types/search/index.d.ts.map +0 -1
  531. package/dist/types/search/inside/api.d.ts.map +0 -1
  532. package/dist/types/search/inside/api.spec.d.ts.map +0 -1
  533. package/dist/types/search/inside/entry.d.ts.map +0 -1
  534. package/dist/types/search/inside/inside-worker.d.ts.map +0 -1
  535. package/dist/types/search/inside/module-entry-path-getter.d.ts.map +0 -1
  536. package/dist/types/search/inside/module-entry.d.ts.map +0 -1
  537. package/dist/types/search/inside/solve/addOrientationSuffix.d.ts.map +0 -1
  538. package/dist/types/search/inside/solve/parseSGS.d.ts.map +0 -1
  539. package/dist/types/search/inside/solve/puzzles/2x2x2.d.ts.map +0 -1
  540. package/dist/types/search/inside/solve/puzzles/2x2x2.sgs.json.d.ts.map +0 -1
  541. package/dist/types/search/inside/solve/puzzles/3x3x3/convert.d.ts.map +0 -1
  542. package/dist/types/search/inside/solve/puzzles/3x3x3/filter.d.ts.map +0 -1
  543. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts.map +0 -1
  544. package/dist/types/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts.map +0 -1
  545. package/dist/types/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.d.ts.map +0 -1
  546. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts.map +0 -1
  547. package/dist/types/search/inside/solve/puzzles/5x5x5.d.ts.map +0 -1
  548. package/dist/types/search/inside/solve/puzzles/big-cubes.d.ts.map +0 -1
  549. package/dist/types/search/inside/solve/puzzles/clock.d.ts.map +0 -1
  550. package/dist/types/search/inside/solve/puzzles/fto.d.ts.map +0 -1
  551. package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts.map +0 -1
  552. package/dist/types/search/inside/solve/puzzles/megaminx.d.ts.map +0 -1
  553. package/dist/types/search/inside/solve/puzzles/megaminx.sgs.json.d.ts.map +0 -1
  554. package/dist/types/search/inside/solve/puzzles/pyraminx.d.ts.map +0 -1
  555. package/dist/types/search/inside/solve/puzzles/pyraminx.sgs.json.d.ts.map +0 -1
  556. package/dist/types/search/inside/solve/puzzles/sgs-defs.spec.d.ts.map +0 -1
  557. package/dist/types/search/inside/solve/puzzles/skewb.d.ts.map +0 -1
  558. package/dist/types/search/inside/solve/puzzles/skewb.sgs.json.d.ts.map +0 -1
  559. package/dist/types/search/inside/solve/puzzles/sq1.d.ts.map +0 -1
  560. package/dist/types/search/inside/solve/puzzles/wca-minx.d.ts.map +0 -1
  561. package/dist/types/search/inside/solve/tremble.d.ts.map +0 -1
  562. package/dist/types/search/instantiator.d.ts.map +0 -1
  563. package/dist/types/search/outside.d.ts.map +0 -1
  564. package/dist/types/search/worker-inside-generated-string.d.ts.map +0 -1
  565. package/dist/types/stream/index.d.ts.map +0 -1
  566. package/dist/types/stream/process/ReorientedStream.d.ts.map +0 -1
  567. package/dist/types/stream/proxy-event.d.ts.map +0 -1
  568. package/dist/types/stream/twizzle/TwizzleStream.d.ts.map +0 -1
  569. package/dist/types/stream/twizzle/stream-types.d.ts.map +0 -1
  570. package/dist/types/stream/websocket-proxy.d.ts.map +0 -1
  571. package/dist/types/twisty/controllers/AnimationTypes.d.ts.map +0 -1
  572. package/dist/types/twisty/controllers/RenderScheduler.d.ts.map +0 -1
  573. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts.map +0 -1
  574. package/dist/types/twisty/controllers/TwistyPlayerController.d.ts.map +0 -1
  575. package/dist/types/twisty/controllers/easing.d.ts.map +0 -1
  576. package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts.map +0 -1
  577. package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts.map +0 -1
  578. package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts.map +0 -1
  579. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts.map +0 -1
  580. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts.map +0 -1
  581. package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts.map +0 -1
  582. package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts.map +0 -1
  583. package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts.map +0 -1
  584. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts.map +0 -1
  585. package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts.map +0 -1
  586. package/dist/types/twisty/heavy-code-imports/3d.d.ts.map +0 -1
  587. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d.d.ts.map +0 -1
  588. package/dist/types/twisty/index.d.ts.map +0 -1
  589. package/dist/types/twisty/model/PromiseFreshener.d.ts.map +0 -1
  590. package/dist/types/twisty/model/TwistyPlayerModel.d.ts.map +0 -1
  591. package/dist/types/twisty/model/UserVisibleErrorTracker.d.ts.map +0 -1
  592. package/dist/types/twisty/model/helpers.d.ts.map +0 -1
  593. package/dist/types/twisty/model/props/TwistyProp.d.ts.map +0 -1
  594. package/dist/types/twisty/model/props/TwistyProp.spec.d.ts.map +0 -1
  595. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts.map +0 -1
  596. package/dist/types/twisty/model/props/general/URLProp.d.ts.map +0 -1
  597. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts.map +0 -1
  598. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts.map +0 -1
  599. package/dist/types/twisty/model/props/puzzle/display/SpriteProp.d.ts.map +0 -1
  600. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts.map +0 -1
  601. package/dist/types/twisty/model/props/puzzle/state/AlgProp.d.ts.map +0 -1
  602. package/dist/types/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts.map +0 -1
  603. package/dist/types/twisty/model/props/puzzle/state/AnchoredStartProp.d.ts.map +0 -1
  604. package/dist/types/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts.map +0 -1
  605. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesProp.d.ts.map +0 -1
  606. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts.map +0 -1
  607. package/dist/types/twisty/model/props/puzzle/state/CurrentTransformationProp.d.ts +0 -15
  608. package/dist/types/twisty/model/props/puzzle/state/CurrentTransformationProp.d.ts.map +0 -1
  609. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts.map +0 -1
  610. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts.map +0 -1
  611. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts.map +0 -1
  612. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts.map +0 -1
  613. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts.map +0 -1
  614. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts.map +0 -1
  615. package/dist/types/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts.map +0 -1
  616. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts.map +0 -1
  617. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDefProp.d.ts +0 -11
  618. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDefProp.d.ts.map +0 -1
  619. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts.map +0 -1
  620. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts.map +0 -1
  621. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts.map +0 -1
  622. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts.map +0 -1
  623. package/dist/types/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts.map +0 -1
  624. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts.map +0 -1
  625. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts.map +0 -1
  626. package/dist/types/twisty/model/props/timeline/TempoScaleProp.d.ts.map +0 -1
  627. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts.map +0 -1
  628. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts.map +0 -1
  629. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts.map +0 -1
  630. package/dist/types/twisty/model/props/viewer/ButtonAppearanceProp.d.ts.map +0 -1
  631. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts.map +0 -1
  632. package/dist/types/twisty/model/props/viewer/LatitudeLimit.d.ts.map +0 -1
  633. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts.map +0 -1
  634. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts.map +0 -1
  635. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts.map +0 -1
  636. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts.map +0 -1
  637. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts.map +0 -1
  638. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts.map +0 -1
  639. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts.map +0 -1
  640. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts.map +0 -1
  641. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts.map +0 -1
  642. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts.map +0 -1
  643. package/dist/types/twisty/views/3D/DragTracker.d.ts.map +0 -1
  644. package/dist/types/twisty/views/3D/RendererPool.d.ts.map +0 -1
  645. package/dist/types/twisty/views/3D/TAU.d.ts.map +0 -1
  646. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts.map +0 -1
  647. package/dist/types/twisty/views/3D/Twisty3DRenderTarget.d.ts.map +0 -1
  648. package/dist/types/twisty/views/3D/Twisty3DScene.d.ts.map +0 -1
  649. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts.map +0 -1
  650. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts.map +0 -1
  651. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts.map +0 -1
  652. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts.map +0 -1
  653. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts.map +0 -1
  654. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts.map +0 -1
  655. package/dist/types/twisty/views/3D/puzzles/KPuzzleWrapper.d.ts +0 -48
  656. package/dist/types/twisty/views/3D/puzzles/KPuzzleWrapper.d.ts.map +0 -1
  657. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts.map +0 -1
  658. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts.map +0 -1
  659. package/dist/types/twisty/views/ClassListManager.d.ts.map +0 -1
  660. package/dist/types/twisty/views/ManagedCustomElement.d.ts.map +0 -1
  661. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts.map +0 -1
  662. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts.map +0 -1
  663. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts.map +0 -1
  664. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts.map +0 -1
  665. package/dist/types/twisty/views/TwistyAlgEditor/model.d.ts.map +0 -1
  666. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts.map +0 -1
  667. package/dist/types/twisty/views/TwistyAlgViewer.d.ts.map +0 -1
  668. package/dist/types/twisty/views/TwistyPlayer.css.d.ts.map +0 -1
  669. package/dist/types/twisty/views/TwistyPlayer.d.ts.map +0 -1
  670. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts.map +0 -1
  671. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts.map +0 -1
  672. package/dist/types/twisty/views/canvas.d.ts.map +0 -1
  673. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.css.d.ts.map +0 -1
  674. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.d.ts.map +0 -1
  675. package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts.map +0 -1
  676. package/dist/types/twisty/views/control-panel/TwistyScrubberV2.d.ts.map +0 -1
  677. package/dist/types/twisty/views/control-panel/webkit-fullscreen.d.ts.map +0 -1
  678. package/dist/types/twisty/views/document.d.ts.map +0 -1
  679. package/dist/types/twisty/views/node-custom-element-shims.d.ts.map +0 -1
  680. package/dist/types/twisty/views/screenshot.d.ts.map +0 -1
  681. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts.map +0 -1
  682. package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts.map +0 -1
  683. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts.map +0 -1
  684. package/dist/types/vendor/comlink-everywhere/inside/node.d.ts.map +0 -1
  685. package/dist/types/vendor/comlink-everywhere/outside/index.d.ts.map +0 -1
  686. package/dist/types/vendor/comlink-everywhere/outside/node.d.ts.map +0 -1
  687. package/dist/types/vendor/cstimer/src/js/lib/mathlib.d.ts.map +0 -1
  688. package/dist/types/vendor/cstimer/src/js/scramble/scramble_444.d.ts.map +0 -1
  689. package/dist/types/vendor/min2phase/gwt.d.ts.map +0 -1
  690. package/dist/types/vendor/p-lazy/p-lazy.d.ts.map +0 -1
  691. package/dist/types/vendor/random-uint-below/get-random-values.d.ts.map +0 -1
  692. package/dist/types/vendor/random-uint-below/index.d.ts.map +0 -1
  693. package/dist/types/vendor/random-uint-below/random-choice.d.ts.map +0 -1
  694. package/dist/types/vendor/random-uint-below/random53BitValue.d.ts.map +0 -1
  695. package/dist/types/vendor/sq12phase/scramble_sq1.d.ts.map +0 -1
  696. package/dist/types/vendor/three/examples/jsm/libs/stats.modified.module.d.ts.map +0 -1
  697. package/dist/types/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts.map +0 -1
  698. package/docs/.DS_Store +0 -0
  699. package/docs/CNAME +0 -1
  700. package/docs/cubing/.DS_Store +0 -0
  701. package/docs/cubing/alg/index.html +0 -174
  702. package/docs/cubing/api/index.html +0 -158
  703. package/docs/cubing/index.html +0 -191
  704. package/docs/cubing/scramble/index.html +0 -138
  705. package/docs/cubing/twisty/index.html +0 -329
  706. package/docs/favicon.ico +0 -0
  707. package/docs/index.html +0 -20
  708. package/docs/main.css +0 -193
  709. package/src/cubing/.DS_Store +0 -0
  710. package/src/cubing/alg/Alg.spec.ts +0 -10
  711. package/src/cubing/alg/Alg.ts +0 -290
  712. package/src/cubing/alg/AlgBuilder.ts +0 -33
  713. package/src/cubing/alg/Serializable.ts +0 -29
  714. package/src/cubing/alg/common.ts +0 -59
  715. package/src/cubing/alg/debug.ts +0 -27
  716. package/src/cubing/alg/example.ts +0 -152
  717. package/src/cubing/alg/index.ts +0 -21
  718. package/src/cubing/alg/is.ts +0 -38
  719. package/src/cubing/alg/iteration.ts +0 -45
  720. package/src/cubing/alg/keyboard.ts +0 -48
  721. package/src/cubing/alg/limits.ts +0 -4
  722. package/src/cubing/alg/operation.spec.ts +0 -48
  723. package/src/cubing/alg/operation.ts +0 -36
  724. package/src/cubing/alg/parse.spec.ts +0 -75
  725. package/src/cubing/alg/parse.ts +0 -408
  726. package/src/cubing/alg/test/alg-comparison.ts +0 -23
  727. package/src/cubing/alg/test/alg.spec.ts +0 -348
  728. package/src/cubing/alg/traversal.ts +0 -284
  729. package/src/cubing/alg/units/QuantumWithAmount.ts +0 -55
  730. package/src/cubing/alg/units/Unit.ts +0 -11
  731. package/src/cubing/alg/units/containers/Commutator.ts +0 -85
  732. package/src/cubing/alg/units/containers/Conjugate.ts +0 -53
  733. package/src/cubing/alg/units/containers/Grouping.ts +0 -116
  734. package/src/cubing/alg/units/index.ts +0 -8
  735. package/src/cubing/alg/units/leaves/LineComment.spec.ts +0 -35
  736. package/src/cubing/alg/units/leaves/LineComment.ts +0 -48
  737. package/src/cubing/alg/units/leaves/Move.spec.ts +0 -15
  738. package/src/cubing/alg/units/leaves/Move.ts +0 -265
  739. package/src/cubing/alg/units/leaves/Newline.ts +0 -24
  740. package/src/cubing/alg/units/leaves/Pause.ts +0 -24
  741. package/src/cubing/alg/url.spec.ts +0 -10
  742. package/src/cubing/alg/url.ts +0 -133
  743. package/src/cubing/alg/validation.ts +0 -62
  744. package/src/cubing/alg/warnOnce.ts +0 -7
  745. package/src/cubing/bluetooth/connect/index.ts +0 -93
  746. package/src/cubing/bluetooth/debug.ts +0 -18
  747. package/src/cubing/bluetooth/docs/gan-robot.md +0 -60
  748. package/src/cubing/bluetooth/docs/gan356i.md +0 -309
  749. package/src/cubing/bluetooth/index.ts +0 -19
  750. package/src/cubing/bluetooth/keyboard.ts +0 -55
  751. package/src/cubing/bluetooth/smart-puzzle/Heykube.ts +0 -165
  752. package/src/cubing/bluetooth/smart-puzzle/bluetooth-puzzle.ts +0 -95
  753. package/src/cubing/bluetooth/smart-puzzle/connect.ts +0 -19
  754. package/src/cubing/bluetooth/smart-puzzle/endianness.ts +0 -15
  755. package/src/cubing/bluetooth/smart-puzzle/gan.ts +0 -484
  756. package/src/cubing/bluetooth/smart-puzzle/giiker.spec.ts +0 -28
  757. package/src/cubing/bluetooth/smart-puzzle/giiker.ts +0 -277
  758. package/src/cubing/bluetooth/smart-puzzle/gocube.ts +0 -167
  759. package/src/cubing/bluetooth/smart-robot/GanRobot.ts +0 -311
  760. package/src/cubing/bluetooth/smart-robot/index.ts +0 -13
  761. package/src/cubing/bluetooth/smart-timer/GanTimer.ts +0 -141
  762. package/src/cubing/bluetooth/smart-timer/index.ts +0 -13
  763. package/src/cubing/bluetooth/transformer.ts +0 -74
  764. package/src/cubing/cubing.bundle-global.exports.ts +0 -25
  765. package/src/cubing/cubing.bundle-global.ts +0 -7
  766. package/src/cubing/esm-test-worker.js +0 -5
  767. package/src/cubing/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.ts +0 -40
  768. package/src/cubing/kpuzzle/3x3x3/3x3x3.kpuzzle.json.ts +0 -339
  769. package/src/cubing/kpuzzle/canon.spec.ts +0 -48
  770. package/src/cubing/kpuzzle/canonicalize.ts +0 -325
  771. package/src/cubing/kpuzzle/definition_types.ts +0 -23
  772. package/src/cubing/kpuzzle/index.ts +0 -33
  773. package/src/cubing/kpuzzle/kpuzzle.spec.ts +0 -12
  774. package/src/cubing/kpuzzle/kpuzzle.ts +0 -124
  775. package/src/cubing/kpuzzle/move_notation.ts +0 -9
  776. package/src/cubing/kpuzzle/parser/index.ts +0 -1
  777. package/src/cubing/kpuzzle/parser/parser-peggy.js +0 -1221
  778. package/src/cubing/kpuzzle/parser/parser-peggy.peggy +0 -72
  779. package/src/cubing/kpuzzle/parser/parser-shim.ts +0 -11
  780. package/src/cubing/kpuzzle/parser/parser.js +0 -0
  781. package/src/cubing/kpuzzle/prunetable.spec.ts +0 -19
  782. package/src/cubing/kpuzzle/pruningtable.ts +0 -99
  783. package/src/cubing/kpuzzle/puzzle-orientation.ts +0 -34
  784. package/src/cubing/kpuzzle/svg.ts +0 -290
  785. package/src/cubing/kpuzzle/transformations.spec.ts +0 -75
  786. package/src/cubing/kpuzzle/transformations.ts +0 -258
  787. package/src/cubing/notation/CountAnimatedLeaves.ts +0 -56
  788. package/src/cubing/notation/CountMoves.ts +0 -89
  789. package/src/cubing/notation/index.ts +0 -4
  790. package/src/cubing/protocol/binary/binary3x3x3.spec.ts +0 -143
  791. package/src/cubing/protocol/binary/binary3x3x3.ts +0 -226
  792. package/src/cubing/protocol/binary/hex.spec.ts +0 -17
  793. package/src/cubing/protocol/binary/hex.ts +0 -12
  794. package/src/cubing/protocol/binary/orbit-indexing.spec.ts +0 -49
  795. package/src/cubing/protocol/binary/orbit-indexing.ts +0 -68
  796. package/src/cubing/protocol/binary/puzzle-orientation.ts +0 -69
  797. package/src/cubing/protocol/index.ts +0 -12
  798. package/src/cubing/puzzle-geometry/FaceNameSwizzler.ts +0 -148
  799. package/src/cubing/puzzle-geometry/Options.ts +0 -179
  800. package/src/cubing/puzzle-geometry/PGPuzzles.spec.ts +0 -127
  801. package/src/cubing/puzzle-geometry/PGPuzzles.ts +0 -80
  802. package/src/cubing/puzzle-geometry/Perm.ts +0 -154
  803. package/src/cubing/puzzle-geometry/PermOriSet.ts +0 -765
  804. package/src/cubing/puzzle-geometry/PlatonicGenerator.ts +0 -146
  805. package/src/cubing/puzzle-geometry/PuzzleGeometry.ts +0 -3013
  806. package/src/cubing/puzzle-geometry/Quat.spec.ts +0 -10
  807. package/src/cubing/puzzle-geometry/Quat.ts +0 -325
  808. package/src/cubing/puzzle-geometry/SchreierSims.ts +0 -144
  809. package/src/cubing/puzzle-geometry/index.ts +0 -17
  810. package/src/cubing/puzzle-geometry/interfaces.ts +0 -6
  811. package/src/cubing/puzzle-geometry/notation-mapping/FTONotationMapper.ts +0 -38
  812. package/src/cubing/puzzle-geometry/notation-mapping/FaceRenamingMapper.ts +0 -59
  813. package/src/cubing/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.ts +0 -50
  814. package/src/cubing/puzzle-geometry/notation-mapping/NotationMapper.ts +0 -6
  815. package/src/cubing/puzzle-geometry/notation-mapping/NullMapper.ts +0 -12
  816. package/src/cubing/puzzle-geometry/notation-mapping/NxNxNCubeMapper.ts +0 -77
  817. package/src/cubing/puzzle-geometry/notation-mapping/PyraminxNotationMapper.ts +0 -121
  818. package/src/cubing/puzzle-geometry/notation-mapping/SkewbNotationMapper.ts +0 -103
  819. package/src/cubing/puzzle-geometry/notation-mapping/index.ts +0 -13
  820. package/src/cubing/puzzle-geometry/orientcenters.spec.ts +0 -55
  821. package/src/cubing/puzzles/PuzzleLoader.ts +0 -20
  822. package/src/cubing/puzzles/async/async-pg3d.ts +0 -73
  823. package/src/cubing/puzzles/customPGPuzzleLoader.ts +0 -60
  824. package/src/cubing/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.ts +0 -92
  825. package/src/cubing/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.ts +0 -45
  826. package/src/cubing/puzzles/implementations/2x2x2/index.ts +0 -25
  827. package/src/cubing/puzzles/implementations/2x2x2/svg/2x2x2.kpuzzle.svg +0 -45
  828. package/src/cubing/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.ts +0 -108
  829. package/src/cubing/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.ts +0 -128
  830. package/src/cubing/puzzles/implementations/3x3x3/index.ts +0 -33
  831. package/src/cubing/puzzles/implementations/3x3x3/src/3x3x3-ll.kpuzzle.svg +0 -108
  832. package/src/cubing/puzzles/implementations/3x3x3/src/3x3x3.kpuzzle.svg +0 -128
  833. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.original.svg +0 -128
  834. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.outlined.svg +0 -486
  835. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.spaced.svg +0 -128
  836. package/src/cubing/puzzles/implementations/clock/clock.kpuzzle.json.ts +0 -241
  837. package/src/cubing/puzzles/implementations/clock/clock.kpuzzle.svg.ts +0 -369
  838. package/src/cubing/puzzles/implementations/clock/index.ts +0 -14
  839. package/src/cubing/puzzles/implementations/clock/src/clock.kpuzzle.svg +0 -369
  840. package/src/cubing/puzzles/implementations/fto/index.ts +0 -28
  841. package/src/cubing/puzzles/implementations/megaminx/index.ts +0 -20
  842. package/src/cubing/puzzles/implementations/pyraminx/index.ts +0 -18
  843. package/src/cubing/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.ts +0 -84
  844. package/src/cubing/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.ts +0 -88
  845. package/src/cubing/puzzles/implementations/pyraminx/src/pyraminx.kpuzzle.svg +0 -87
  846. package/src/cubing/puzzles/implementations/square1/index.ts +0 -14
  847. package/src/cubing/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.ts +0 -62
  848. package/src/cubing/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.ts +0 -295
  849. package/src/cubing/puzzles/implementations/square1/src/sq1-hyperorbit.kpuzzle.svg +0 -295
  850. package/src/cubing/puzzles/implementations/square1/src/sq1-simple.svg +0 -60
  851. package/src/cubing/puzzles/index.ts +0 -92
  852. package/src/cubing/puzzles/stickerings/appearance.ts +0 -292
  853. package/src/cubing/puzzles/stickerings/cube-stickerings.ts +0 -304
  854. package/src/cubing/puzzles/stickerings/fto-stickerings.ts +0 -105
  855. package/src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts +0 -61
  856. package/src/cubing/puzzles/stickerings/megaminx-stickerings.ts +0 -26
  857. package/src/cubing/scramble/index.ts +0 -1
  858. package/src/cubing/search/.DS_Store +0 -0
  859. package/src/cubing/search/.gitignore +0 -1
  860. package/src/cubing/search/esm-test-worker.js +0 -14
  861. package/src/cubing/search/index.ts +0 -12
  862. package/src/cubing/search/inside/.DS_Store +0 -0
  863. package/src/cubing/search/inside/api.spec.ts +0 -37
  864. package/src/cubing/search/inside/api.ts +0 -174
  865. package/src/cubing/search/inside/entry.js +0 -4
  866. package/src/cubing/search/inside/inside-worker.ts +0 -13
  867. package/src/cubing/search/inside/module-entry-path-getter.ts +0 -5
  868. package/src/cubing/search/inside/module-entry.ts +0 -20
  869. package/src/cubing/search/inside/solve/addOrientationSuffix.ts +0 -17
  870. package/src/cubing/search/inside/solve/parseSGS.ts +0 -119
  871. package/src/cubing/search/inside/solve/puzzles/2x2x2.sgs.json.ts +0 -114
  872. package/src/cubing/search/inside/solve/puzzles/2x2x2.ts +0 -92
  873. package/src/cubing/search/inside/solve/puzzles/3x3x3/convert.ts +0 -137
  874. package/src/cubing/search/inside/solve/puzzles/3x3x3/filter.ts +0 -60
  875. package/src/cubing/search/inside/solve/puzzles/3x3x3/index.ts +0 -67
  876. package/src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.ts +0 -291
  877. package/src/cubing/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.ts +0 -272
  878. package/src/cubing/search/inside/solve/puzzles/4x4x4.ts +0 -30
  879. package/src/cubing/search/inside/solve/puzzles/5x5x5.ts +0 -12
  880. package/src/cubing/search/inside/solve/puzzles/big-cubes.ts +0 -78
  881. package/src/cubing/search/inside/solve/puzzles/clock.ts +0 -48
  882. package/src/cubing/search/inside/solve/puzzles/fto.sgs.json.ts +0 -643
  883. package/src/cubing/search/inside/solve/puzzles/fto.ts +0 -58
  884. package/src/cubing/search/inside/solve/puzzles/megaminx.sgs.json.ts +0 -1549
  885. package/src/cubing/search/inside/solve/puzzles/megaminx.ts +0 -51
  886. package/src/cubing/search/inside/solve/puzzles/pyraminx.sgs.json.ts +0 -98
  887. package/src/cubing/search/inside/solve/puzzles/pyraminx.ts +0 -48
  888. package/src/cubing/search/inside/solve/puzzles/sgs-defs.spec.ts +0 -27
  889. package/src/cubing/search/inside/solve/puzzles/skewb.sgs.json.ts +0 -113
  890. package/src/cubing/search/inside/solve/puzzles/skewb.ts +0 -65
  891. package/src/cubing/search/inside/solve/puzzles/sq1.ts +0 -16
  892. package/src/cubing/search/inside/solve/puzzles/wca-minx.ts +0 -32
  893. package/src/cubing/search/inside/solve/tremble.ts +0 -213
  894. package/src/cubing/search/instantiator.ts +0 -95
  895. package/src/cubing/search/outside.ts +0 -110
  896. package/src/cubing/search/worker-inside-generated-string.js +0 -1
  897. package/src/cubing/stream/index.ts +0 -12
  898. package/src/cubing/stream/process/ReorientedStream.ts +0 -93
  899. package/src/cubing/stream/proxy-event.ts +0 -16
  900. package/src/cubing/stream/twizzle/TwizzleStream.ts +0 -53
  901. package/src/cubing/stream/twizzle/stream-types.ts +0 -45
  902. package/src/cubing/stream/websocket-proxy.ts +0 -73
  903. package/src/cubing/twisty/controllers/AnimationTypes.ts +0 -50
  904. package/src/cubing/twisty/controllers/RenderScheduler.ts +0 -28
  905. package/src/cubing/twisty/controllers/TwistyAnimationController.ts +0 -325
  906. package/src/cubing/twisty/controllers/TwistyPlayerController.ts +0 -38
  907. package/src/cubing/twisty/controllers/easing.ts +0 -3
  908. package/src/cubing/twisty/controllers/indexer/AlgDuration.ts +0 -94
  909. package/src/cubing/twisty/controllers/indexer/AlgIndexer.ts +0 -87
  910. package/src/cubing/twisty/controllers/indexer/SimpleAlgIndexer.ts +0 -76
  911. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.ts +0 -181
  912. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.ts +0 -243
  913. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/simul-moves.ts +0 -193
  914. package/src/cubing/twisty/controllers/indexer/tree/AlgWalker.ts +0 -439
  915. package/src/cubing/twisty/controllers/indexer/tree/TreeAlgIndexer.ts +0 -97
  916. package/src/cubing/twisty/controllers/indexer/tree/chunkAlgs.ts +0 -81
  917. package/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.spec.ts.TODO +0 -59
  918. package/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.ts +0 -162
  919. package/src/cubing/twisty/heavy-code-imports/3d.ts +0 -18
  920. package/src/cubing/twisty/heavy-code-imports/dynamic-entries/3d.ts +0 -31
  921. package/src/cubing/twisty/index.ts +0 -24
  922. package/src/cubing/twisty/model/PromiseFreshener.ts +0 -49
  923. package/src/cubing/twisty/model/TwistyPlayerModel.ts +0 -256
  924. package/src/cubing/twisty/model/UserVisibleErrorTracker.ts +0 -22
  925. package/src/cubing/twisty/model/helpers.ts +0 -47
  926. package/src/cubing/twisty/model/props/TwistyProp.spec.ts +0 -38
  927. package/src/cubing/twisty/model/props/TwistyProp.ts +0 -366
  928. package/src/cubing/twisty/model/props/TwistyPropDebugger.ts +0 -370
  929. package/src/cubing/twisty/model/props/general/URLProp.ts +0 -14
  930. package/src/cubing/twisty/model/props/puzzle/display/FoundationDisplayProp.ts +0 -9
  931. package/src/cubing/twisty/model/props/puzzle/display/HintFaceletProp.ts +0 -15
  932. package/src/cubing/twisty/model/props/puzzle/display/SpriteProp.ts +0 -43
  933. package/src/cubing/twisty/model/props/puzzle/display/StickeringProp.ts +0 -56
  934. package/src/cubing/twisty/model/props/puzzle/state/AlgProp.ts +0 -91
  935. package/src/cubing/twisty/model/props/puzzle/state/AlgTransformationProp.ts +0 -28
  936. package/src/cubing/twisty/model/props/puzzle/state/AnchoredStartProp.ts +0 -44
  937. package/src/cubing/twisty/model/props/puzzle/state/CatchUpMoveProp.ts +0 -17
  938. package/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesProp.ts +0 -109
  939. package/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesSimplified.ts +0 -48
  940. package/src/cubing/twisty/model/props/puzzle/state/CurrentTransformationProp.ts +0 -46
  941. package/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorProp.ts +0 -53
  942. package/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.ts +0 -15
  943. package/src/cubing/twisty/model/props/puzzle/state/IndexerProp.ts +0 -24
  944. package/src/cubing/twisty/model/props/puzzle/state/LegacyPositionProp.ts +0 -22
  945. package/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.ts +0 -14
  946. package/src/cubing/twisty/model/props/puzzle/state/NaiveMoveCountProp.ts +0 -20
  947. package/src/cubing/twisty/model/props/puzzle/state/PuzzleAlgProp.ts +0 -28
  948. package/src/cubing/twisty/model/props/puzzle/state/SetupAnchorProp.ts +0 -14
  949. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleDefProp.ts +0 -14
  950. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.ts +0 -14
  951. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDProp.ts +0 -12
  952. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.ts +0 -36
  953. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleLoaderProp.ts +0 -38
  954. package/src/cubing/twisty/model/props/timeline/CoarseTimelineInfoProp.ts +0 -45
  955. package/src/cubing/twisty/model/props/timeline/DetailedTimelineInfoProp.ts +0 -78
  956. package/src/cubing/twisty/model/props/timeline/PlayingInfoProp.ts +0 -48
  957. package/src/cubing/twisty/model/props/timeline/TempoScaleProp.ts +0 -13
  958. package/src/cubing/twisty/model/props/timeline/TimestampRequestProp.ts +0 -38
  959. package/src/cubing/twisty/model/props/viewer/BackViewProp.ts +0 -16
  960. package/src/cubing/twisty/model/props/viewer/BackgroundProp.ts +0 -15
  961. package/src/cubing/twisty/model/props/viewer/ButtonAppearanceProp.ts +0 -86
  962. package/src/cubing/twisty/model/props/viewer/ControlPanelProp.ts +0 -14
  963. package/src/cubing/twisty/model/props/viewer/LatitudeLimit.ts +0 -11
  964. package/src/cubing/twisty/model/props/viewer/OrbitCoordinatesProp.ts +0 -127
  965. package/src/cubing/twisty/model/props/viewer/OrbitCoordinatesRequestProp.ts +0 -69
  966. package/src/cubing/twisty/model/props/viewer/TimeRangeProp.ts +0 -15
  967. package/src/cubing/twisty/model/props/viewer/ViewerLinkProp.ts +0 -14
  968. package/src/cubing/twisty/model/props/viewer/VisualizationProp.ts +0 -17
  969. package/src/cubing/twisty/model/props/viewer/VisualizationStrategyProp.ts +0 -45
  970. package/src/cubing/twisty/views/2D/Twisty2DPuzzle.css.ts +0 -26
  971. package/src/cubing/twisty/views/2D/Twisty2DPuzzle.ts +0 -146
  972. package/src/cubing/twisty/views/2D/Twisty2DPuzzleWrapper.ts +0 -52
  973. package/src/cubing/twisty/views/2D/Twisty2DSceneWrapper.ts +0 -77
  974. package/src/cubing/twisty/views/3D/DragTracker.ts +0 -184
  975. package/src/cubing/twisty/views/3D/RendererPool.ts +0 -54
  976. package/src/cubing/twisty/views/3D/TAU.ts +0 -2
  977. package/src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.ts +0 -214
  978. package/src/cubing/twisty/views/3D/Twisty3DRenderTarget.ts +0 -5
  979. package/src/cubing/twisty/views/3D/Twisty3DScene.ts +0 -42
  980. package/src/cubing/twisty/views/3D/Twisty3DSceneWrapper.ts +0 -189
  981. package/src/cubing/twisty/views/3D/Twisty3DVantage.css.ts +0 -32
  982. package/src/cubing/twisty/views/3D/Twisty3DVantage.ts +0 -312
  983. package/src/cubing/twisty/views/3D/TwistyOrbitControls.spec.ts +0 -213
  984. package/src/cubing/twisty/views/3D/TwistyOrbitControls.ts +0 -176
  985. package/src/cubing/twisty/views/3D/puzzles/Cube3D.ts +0 -966
  986. package/src/cubing/twisty/views/3D/puzzles/KPuzzleWrapper.ts +0 -142
  987. package/src/cubing/twisty/views/3D/puzzles/PG3D.ts +0 -1078
  988. package/src/cubing/twisty/views/3D/puzzles/Twisty3DPuzzle.ts +0 -6
  989. package/src/cubing/twisty/views/ClassListManager.ts +0 -34
  990. package/src/cubing/twisty/views/ManagedCustomElement.ts +0 -76
  991. package/src/cubing/twisty/views/TwistyAlgEditor/LeafTokens.ts +0 -116
  992. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.ts +0 -72
  993. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.ts +0 -57
  994. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.ts +0 -368
  995. package/src/cubing/twisty/views/TwistyAlgEditor/model.ts +0 -179
  996. package/src/cubing/twisty/views/TwistyAlgViewer.css.ts +0 -25
  997. package/src/cubing/twisty/views/TwistyAlgViewer.ts +0 -502
  998. package/src/cubing/twisty/views/TwistyPlayer.css.ts +0 -73
  999. package/src/cubing/twisty/views/TwistyPlayer.ts +0 -362
  1000. package/src/cubing/twisty/views/TwistyPlayerSettable.ts +0 -115
  1001. package/src/cubing/twisty/views/TwistyViewerWrapper.css.ts +0 -41
  1002. package/src/cubing/twisty/views/canvas.ts +0 -9
  1003. package/src/cubing/twisty/views/control-panel/TwistyButtonsV2.css.ts +0 -127
  1004. package/src/cubing/twisty/views/control-panel/TwistyButtonsV2.ts +0 -156
  1005. package/src/cubing/twisty/views/control-panel/TwistyScrubber.css.ts +0 -48
  1006. package/src/cubing/twisty/views/control-panel/TwistyScrubberV2.ts +0 -145
  1007. package/src/cubing/twisty/views/control-panel/webkit-fullscreen.ts +0 -44
  1008. package/src/cubing/twisty/views/document.ts +0 -4
  1009. package/src/cubing/twisty/views/node-custom-element-shims.ts +0 -30
  1010. package/src/cubing/twisty/views/screenshot.ts +0 -90
  1011. package/src/cubing/twisty/views/stream/TwistyStreamSource.css.ts +0 -17
  1012. package/src/cubing/twisty/views/stream/TwistyStreamSource.ts +0 -155
  1013. package/src/cubing/vendor/.DS_Store +0 -0
  1014. package/src/cubing/vendor/comlink-everywhere/.DS_Store +0 -0
  1015. package/src/cubing/vendor/comlink-everywhere/comlink-everywhere.webloc +0 -8
  1016. package/src/cubing/vendor/comlink-everywhere/inside/index.d.ts +0 -1
  1017. package/src/cubing/vendor/comlink-everywhere/inside/index.js +0 -16
  1018. package/src/cubing/vendor/comlink-everywhere/inside/node.js +0 -6
  1019. package/src/cubing/vendor/comlink-everywhere/outside/index.d.ts +0 -6
  1020. package/src/cubing/vendor/comlink-everywhere/outside/index.js +0 -31
  1021. package/src/cubing/vendor/comlink-everywhere/outside/node.js +0 -42
  1022. package/src/cubing/vendor/cstimer/.DS_Store +0 -0
  1023. package/src/cubing/vendor/cstimer/LICENSE +0 -674
  1024. package/src/cubing/vendor/cstimer/src/.DS_Store +0 -0
  1025. package/src/cubing/vendor/cstimer/src/js/lib/mathlib.ts +0 -54
  1026. package/src/cubing/vendor/cstimer/src/js/scramble/scramble_444.ts +0 -2791
  1027. package/src/cubing/vendor/min2phase/gwt.d.ts +0 -2
  1028. package/src/cubing/vendor/min2phase/gwt.js +0 -2699
  1029. package/src/cubing/vendor/p-lazy/license +0 -9
  1030. package/src/cubing/vendor/p-lazy/p-lazy.ts +0 -52
  1031. package/src/cubing/vendor/p-lazy/readme.md +0 -54
  1032. package/src/cubing/vendor/random-uint-below/get-random-values.ts +0 -23
  1033. package/src/cubing/vendor/random-uint-below/index.ts +0 -12
  1034. package/src/cubing/vendor/random-uint-below/random-choice.ts +0 -9
  1035. package/src/cubing/vendor/random-uint-below/random53BitValue.ts +0 -64
  1036. package/src/cubing/vendor/sq12phase/scramble_sq1.js +0 -853
  1037. package/src/cubing/vendor/three/.DS_Store +0 -0
  1038. package/src/cubing/vendor/three/examples/.DS_Store +0 -0
  1039. package/src/cubing/vendor/three/examples/jsm/libs/stats.modified.module.ts +0 -179
  1040. package/src/cubing/vendor/unsafe-raw-aes/unsafe-raw-aes.ts +0 -64
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/search/inside/inside-worker.ts", "../../src/cubing/search/inside/solve/addOrientationSuffix.ts", "../../src/cubing/search/inside/solve/puzzles/3x3x3/convert.ts", "../../src/cubing/search/inside/solve/puzzles/3x3x3/filter.ts", "../../src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.ts", "../../src/cubing/search/inside/solve/puzzles/3x3x3/index.ts"],
4
+ "sourcesContent": ["let isInsideWorker = false;\n\nexport function setIsInsideWorker(inside: boolean) {\n isInsideWorker = inside;\n}\n\nexport function mustBeInsideWorker(): void {\n if (!isInsideWorker) {\n throw new Error(\n \"Must be called from inside a worker, to avoid impact on page performance. Try importing from the top level of `cubing/solve`?\",\n );\n }\n}\n", "import { Alg, AlgBuilder, Move } from \"../../../alg\";\nimport { randomChoiceFactory } from \"../../../vendor/random-uint-below\";\n\nexport async function addOrientationSuffix(\n alg: Alg,\n suffixSpec: (null | string)[][],\n): Promise<Alg> {\n const algBuilder = new AlgBuilder();\n algBuilder.experimentalPushAlg(alg);\n for (const suffix of suffixSpec) {\n const choice = ((await randomChoiceFactory()) as any)(suffix);\n if (choice !== null) {\n algBuilder.push(Move.fromString(choice));\n }\n }\n return algBuilder.toAlg();\n}\n", "/*\n\nFace order:\n\n U\nLFRB\n D\n\n | 0| 1| 2|\n | 3| 4| 5|\n | 6| 7| 8|\n| 9|10|11|18|19|20|27|28|29|36|37|38|\n|12|13|14|21|22|23|30|31|32|39|40|41|\n|15|16|17|24|25|26|33|34|35|42|43|44|\n |45|46|47|\n |48|49|50|\n |51|52|53|\n*/\n\nimport type { KState } from \"../../../../../kpuzzle/KState\";\n\nconst reidEdgeOrder = \"UF UR UB UL DF DR DB DL FR FL BR BL\".split(\" \");\nconst reidCornerOrder = \"UFR URB UBL ULF DRF DFL DLB DBR\".split(\" \");\nconst centerOrder = \"U L F R B D\".split(\" \");\n\n// const stickers = [reidEdgeOrder, reidCornerOrder, centerOrder];\n\n// /*\n// |1 20|0 20|1 10|\n// |0 30|2 00|0 10|\n// |1 30|0 00|1 00|\n// |1 22|0 31|1 31|1 32|0 01|1 01|1 02|0 11|1 11|1 12|0 21|1 21|\n// |0111|2 10|0 91|0 90|2 20|0 80|0 81|2 30|0101|0100|2 40|0110|\n// |1 61|0 71|1 52|1 51|0 41|1 42|1 41|0 51|1 72|1 71|0 61|1 62|\n// |1 50|0 40|1 40|\n// |0 70|2 50|0 50|\n// |1 60|0 60|1 70|\n// */\n\nconst map: [number, number, number][] = [\n [1, 2, 0],\n [0, 2, 0],\n [1, 1, 0],\n [0, 3, 0],\n [2, 0, 0],\n [0, 1, 0],\n [1, 3, 0],\n [0, 0, 0],\n [1, 0, 0],\n [1, 0, 2],\n [0, 1, 1],\n [1, 1, 1],\n [0, 8, 1],\n [2, 3, 0],\n [0, 10, 1],\n [1, 4, 1],\n [0, 5, 1],\n [1, 7, 2],\n [1, 3, 2],\n [0, 0, 1],\n [1, 0, 1],\n [0, 9, 0],\n [2, 2, 0],\n [0, 8, 0],\n [1, 5, 1],\n [0, 4, 1],\n [1, 4, 2],\n [1, 5, 0],\n [0, 4, 0],\n [1, 4, 0],\n [0, 7, 0],\n [2, 5, 0],\n [0, 5, 0],\n [1, 6, 0],\n [0, 6, 0],\n [1, 7, 0],\n [1, 2, 2],\n [0, 3, 1],\n [1, 3, 1],\n [0, 11, 1],\n [2, 1, 0],\n [0, 9, 1],\n [1, 6, 1],\n [0, 7, 1],\n [1, 5, 2],\n [1, 1, 2],\n [0, 2, 1],\n [1, 2, 1],\n [0, 10, 0],\n [2, 4, 0],\n [0, 11, 0],\n [1, 7, 1],\n [0, 6, 1],\n [1, 6, 2],\n];\n\nfunction rotateLeft(s: string, i: number): string {\n return s.slice(i) + s.slice(0, i);\n}\n\nfunction toReid333Struct(state: KState): string[][] {\n const output: string[][] = [[], []];\n for (let i = 0; i < 6; i++) {\n if (state.stateData[\"CENTERS\"].pieces[i] !== i) {\n throw new Error(\"non-oriented puzzles are not supported\");\n }\n }\n for (let i = 0; i < 12; i++) {\n output[0].push(\n rotateLeft(\n reidEdgeOrder[state.stateData[\"EDGES\"].pieces[i]],\n state.stateData[\"EDGES\"].orientation[i],\n ),\n );\n }\n for (let i = 0; i < 8; i++) {\n output[1].push(\n rotateLeft(\n reidCornerOrder[state.stateData[\"CORNERS\"].pieces[i]],\n state.stateData[\"CORNERS\"].orientation[i],\n ),\n );\n }\n output.push(centerOrder);\n return output;\n}\n\n// function toReid333String(state: Transformation): string {\n// return toReid333Struct(state)\n// .map((l) => l.join(\" \"))\n// .join(\" \");\n// }\n\nexport function toMin2PhaseState(state: KState): string {\n const reid = toReid333Struct(state);\n return map.map(([orbit, perm, ori]) => reid[orbit][perm][ori]).join(\"\");\n}\n", "import { Move } from \"../../../../../alg\";\nimport type { KPuzzle } from \"../../../../../kpuzzle\";\nimport { KState } from \"../../../../../kpuzzle\";\n\nexport function isEquivalentTranformationIgnoringCENTERS(\n t1: KState,\n t2: KState,\n): boolean {\n const t1NoCenterOri = new KState(t1.kpuzzle, {\n EDGES: t1.stateData.EDGES,\n CORNERS: t1.stateData.CORNERS,\n CENTERS: {\n pieces: t1.stateData.CENTERS.pieces,\n orientation: new Array(6).fill(0),\n },\n }).experimentalToTransformation()!;\n const t2NoCenterOri = new KState(t2.kpuzzle, {\n EDGES: t2.stateData.EDGES,\n CORNERS: t2.stateData.CORNERS,\n CENTERS: {\n pieces: t2.stateData.CENTERS.pieces,\n orientation: new Array(6).fill(0),\n },\n }).experimentalToTransformation()!;\n return t1NoCenterOri.isIdentical(t2NoCenterOri);\n}\n\nexport function passesFilter(kpuzzle: KPuzzle, state: KState): boolean {\n if (isEquivalentTranformationIgnoringCENTERS(kpuzzle.startState(), state)) {\n return false;\n }\n\n for (const face of \"ULFRBD\") {\n for (let amount = 1; amount < 4; amount++) {\n const transformation = kpuzzle\n .moveToTransformation(new Move(face, amount))\n .toKState();\n if (isEquivalentTranformationIgnoringCENTERS(transformation, state)) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n// TODO: implement tests\n// {\n// const def = await puzzles[\"3x3x3\"].def();\n// const kpuzzle = new KPuzzle(def);\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.applyAlg(parse(\"R\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.applyAlg(parse(\"D\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// kpuzzle.reset();\n// kpuzzle.applyAlg(parse(\"(R' U' R U')5\"));\n// console.log(passesFilter(def, kpuzzle.state));\n// }\n", "// TODO: Verify\nexport const sgs3x3x3: string[][] = [\n [\n \"R U'\",\n \"R2 B\", //\n \"D2 B2\",\n \"D' L B'\", //\n \"R' U'\",\n \"B\", //\n \"D B2\",\n \"R' B\", //\n \"L' U\",\n \"L2 B'\", //\n \"B2\",\n \"D L B'\", //\n \"L U\",\n \"B'\", //\n \"U'\",\n \"R B\", //\n \"D' B2\",\n \"L B'\", //\n \"U2\",\n \"U L' B'\", //\n \"\",\n \"U' L' B'\", //\n \"U\",\n \"L' B'\",\n ],\n [\n \"F2 L2\",\n \"F' L'\",\n \"R' F L2\", //\n \"D' L2\",\n \"F L2\",\n \"F2 L'\", //\n \"R' F' L'\",\n \"R2 F L2\",\n \"R2 F2 L'\", //\n \"L2\",\n \"F L'\",\n \"D' L\", //\n \"D2 L2\",\n \"R2 F' L'\",\n \"D L\", //\n \"\",\n \"L2 F L'\",\n \"L F' L2\", //\n \"L F L'\",\n \"F' L2\",\n \"L'\", //\n \"D L2\",\n \"D F L'\",\n \"L\",\n ],\n [\n \"R B U2 B'\",\n \"R2 B U' B'\", //\n \"F2 B U B'\",\n \"F B2 L' B2\", //\n \"B2 L B2\",\n \"B U' B'\", //\n \"R2 B U2 B'\",\n \"R' B U' B'\", //\n \"B2 L' B2\",\n \"F B U B'\", //\n \"B2 U' B2\",\n \"B' L B\", //\n \"L F' B D' B'\",\n \"B' U' B2 D B'\", //\n \"B U2 B'\",\n \"R B U' B'\", //\n \"B2 L2 B2\",\n \"D' B' L B\", //\n \"B U B'\",\n \"F' B2 L' B2\", //\n \"\",\n \"B2 L' B' U' B'\",\n ],\n [\n \"U F2 L2 U'\",\n \"F' U L' U'\", //\n \"F2 U L' U'\",\n \"U F L2 U'\", //\n \"U2 B2 U2\",\n \"R' U' B U\", //\n \"D2 U L U'\",\n \"D U2 B' U2\", //\n \"U L2 U'\",\n \"F U L' U'\", //\n \"D U L U'\",\n \"U2 B' U2\", //\n \"\",\n \"U2 B' U' L' U'\", //\n \"U2 L' U2\",\n \"U' B U\", //\n \"U L U'\",\n \"D' U2 B' U2\", //\n \"U L' U'\",\n \"U2 B U2\",\n ],\n [\n \"R' D' F2\",\n \"F'\", //\n \"F2\",\n \"D R F'\", //\n \"R D' F2\",\n \"R2 F'\", //\n \"D' F2\",\n \"R F'\", //\n \"F2 R' D' F2\",\n \"F\", //\n \"D2 F2\",\n \"D' R F'\", //\n \"R2 D' F2\",\n \"R' F'\", //\n \"D F2\",\n \"D2 R F'\", //\n \"\",\n \"F R' D' F2\",\n ],\n [\n \"R' D2 F' D F\",\n \"R F2 R2 F2\",\n \"R2 F' D2 F\", //\n \"F' R2 D2 F\",\n \"L D' L'\",\n \"D F' D2 F\", //\n \"F2 R2 F2\",\n \"R F' D2 F\",\n \"F' R2 D' F\", //\n \"F' R' D2 F\",\n \"F2 R' F2\",\n \"L D L'\", //\n \"F' R D' F\",\n \"F2 R F2\",\n \"F' D2 F\", //\n \"\",\n \"L D2 R D' L'\",\n \"F' D2 F' R F2\", //\n \"D2 R2 F2 R2 F2\",\n \"D F' D' F\",\n \"F' D F\",\n ],\n [\n \"U F2 U'\",\n \"R U F' U'\", //\n \"D R U F2 U'\",\n \"U F U'\", //\n \"R2 U F2 U'\",\n \"R' U F' U'\", //\n \"R U F2 U'\",\n \"R2 U F' U'\", //\n \"\",\n \"U L D L' F U'\", //\n \"F2 D' R D F2\",\n \"D2 U F U'\", //\n \"R' U F2 U'\",\n \"U F' U'\", //\n \"F2 D2 R D2 F2\",\n \"D U F U'\",\n ],\n [\n \"R2\",\n \"R' B' D B\", //\n \"D R'\",\n \"F' R2 F\", //\n \"\",\n \"R B' D B\", //\n \"R'\",\n \"B' D B\", //\n \"D' R'\",\n \"D2 F' R2 F\", //\n \"R\",\n \"R2 B' D B\", //\n \"D2 R'\",\n \"B' D' B\",\n ],\n [\n \"R2 D' R2\",\n \"F' R' F R\",\n \"R D' R2 D R'\", //\n \"D2 R2 D2 R2\",\n \"R' D' F' R F\",\n \"U F D F' U'\", //\n \"\",\n \"R2 D2 B R' B' R'\",\n \"R' F D' F2 R F\", //\n \"R2 D R2\",\n \"F2 U F U' F\",\n \"R' D F' R F\", //\n \"D R2 D2 R2\",\n \"U F D' F' U'\",\n \"D R' D2 F' R F\", //\n \"R2 D2 R2\",\n \"U F D2 F' U'\",\n \"R' D2 F' R F\",\n ],\n [\n \"B R B'\",\n \"F D F' B R2 B'\", //\n \"D B R2 B'\",\n \"D2 B R' B'\", //\n \"B R2 B'\",\n \"D B R' B'\", //\n \"D' B R2 B'\",\n \"B R' B'\", //\n \"\",\n \"B R2 B' D B R' B'\", //\n \"D2 B R2 B'\",\n \"D' B R' B'\",\n ],\n [\n \"\",\n \"R' D R F D2 F'\", //\n \"R' D R\",\n \"D F D' F'\", //\n \"R F' R' F\",\n \"F D' F'\", //\n \"R' D' R\",\n \"F D2 F'\", //\n \"R' D2 R\",\n \"F D F'\",\n ],\n [\n \"\",\n \"F2 D2 R F' R' D2 F' D2 F'\",\n \"F2 D2 F' D' F D' F' D2 F'\", //\n \"F2 D F2 D F2 D2 F2\",\n \"D2 F L D2 L' D2 F'\",\n \"D F D2 L D2 L' F'\", //\n \"R' D B' D2 B D' R\",\n \"R' D2 B' D2 B R\",\n \"F D2 F' D F D F'\", //\n \"F D' L D2 L' D F'\",\n \"B D' F D B' D' F'\",\n \"F D2 L D2 L' F'\", //\n \"F D' L D L' D F'\",\n \"F L D2 L' D2 F'\",\n \"R' B' D2 B D2 R\",\n ],\n [\n \"D'\",\n \"F L D L' D' F'\", //\n \"D2\",\n \"L B D B' D' L'\", //\n \"D\",\n \"B' L' D' L D B\", //\n \"\",\n \"D F L D L' D' F'\",\n ],\n [\n \"F' D2 F D F' D F\",\n \"F' D' R' D R F\", //\n \"F' R' D' R D F\",\n \"B D R D' R' B'\", //\n \"\",\n \"D B' D' L' D L B\",\n ],\n [\n \"D F D F' D F D2 F'\",\n \"F' U2 B' R' B U2 F' L F' L' F'\", //\n \"\",\n \"D2 L D L2 F L F2 D F\",\n ],\n [\n \"L B' L' F L B L' F'\",\n \"F2 U F' D2 F U' F' D2 F'\",\n \"D' F' D B D' F D B'\", //\n \"F L2 F R2 F' L2 F R2 F2\",\n \"D B D' F' D B' D' F\",\n \"R F L F' R' F L' F'\", //\n \"\",\n \"D2 B L' U2 L B' D2 B L' U2 L B'\",\n \"D2 F R' U2 R F' D2 F R' U2 R F'\", //\n \"R F L' F' R' F L F'\",\n \"D F D' B' D F' D' B\",\n \"L2 F2 L' B2 L F2 L' B2 L'\",\n ],\n [\n \"L B R' B' L' B R B'\",\n \"R' B R F' R' B' R F\",\n \"L D2 L U L' D2 L U' L2\", //\n \"\",\n \"D2 B' D2 F D' L2 F L2 F' D2 B D' F'\",\n \"D2 F' R' F R2 B' D2 B D2 R' F D2 F'\", //\n \"L B L' F L B' L' F'\",\n \"F' D2 F' U' F D2 F' U F2\",\n \"D' B' D F D' B D F'\",\n ],\n [\"\", \"D2 F' L U2 L' F D2 F' L U2 L' F\", \"D2 B' R U2 R' B D2 B' R U2 R' B\"],\n];\n", "import { Alg, AlgBuilder } from \"../../../../../alg\";\nimport type { KState } from \"../../../../../kpuzzle/KState\";\nimport { puzzles } from \"../../../../../puzzles\";\nimport { randomChoiceFactory } from \"../../../../../vendor/random-uint-below\";\nimport { mustBeInsideWorker } from \"../../../inside-worker\";\nimport { addOrientationSuffix } from \"../../addOrientationSuffix\";\nimport { toMin2PhaseState } from \"./convert\";\nimport { passesFilter } from \"./filter\";\nimport { sgs3x3x3 } from \"./legacy-sgs\";\n\nexport async function random333State(): Promise<KState> {\n const kpuzzle = await puzzles[\"3x3x3\"].kpuzzle();\n let state = kpuzzle.startState();\n for (const piece of sgs3x3x3) {\n state = state.applyAlg(\n Alg.fromString(((await randomChoiceFactory()) as any)(piece)),\n );\n }\n if (!passesFilter(kpuzzle, state)) {\n return random333State();\n }\n return state;\n}\n\nlet cachedImport: Promise<\n typeof import(\"../../../../../vendor/min2phase/gwt\")\n> | null = null;\nfunction dynamicMin2phaseGWT(): Promise<\n typeof import(\"../../../../../vendor/min2phase/gwt\")\n> {\n return (cachedImport ??= import(\"../../../../../vendor/min2phase/gwt\"));\n}\n\nexport async function solve333(s: KState): Promise<Alg> {\n mustBeInsideWorker();\n return Alg.fromString(\n (await dynamicMin2phaseGWT()).solveState(toMin2PhaseState(s)),\n );\n}\n\nexport async function random333Scramble(): Promise<Alg> {\n return solve333(await random333State());\n}\n\nexport async function initialize333(): Promise<void> {\n (await dynamicMin2phaseGWT()).initialize();\n}\n\nconst randomSuffixes = [\n [null, \"Rw\", \"Rw2\", \"Rw'\", \"Fw\", \"Fw'\"],\n [null, \"Dw\", \"Dw2\", \"Dw'\"],\n];\n\nexport async function random333OrientedScramble(): Promise<Alg> {\n return addOrientationSuffix(await random333Scramble(), randomSuffixes);\n}\n\nconst extraBit = new Alg(\"R' U' F\");\nexport async function random333FewestMovesScramble(): Promise<Alg> {\n const algBuilder = new AlgBuilder();\n const unorientedScramble = await random333Scramble();\n algBuilder.experimentalPushAlg(extraBit);\n // TODO:Avoid cancellable moves.\n algBuilder.experimentalPushAlg(unorientedScramble);\n algBuilder.experimentalPushAlg(extraBit);\n return algBuilder.toAlg();\n}\n"],
5
+ "mappings": "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;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,CAAC,IAAI,mCAAmC;AAAA;;;ACvR1C,gCAAwD;AACtD,QAAM,UAAU,MAAM,QAAQ,SAAS;AACvC,MAAI,QAAQ,QAAQ;AACpB,aAAW,SAAS,UAAU;AAC5B,YAAQ,MAAM,SACZ,IAAI,WAAa,OAAM,uBAA+B;AAAA;AAG1D,MAAI,CAAC,aAAa,SAAS,QAAQ;AACjC,WAAO;AAAA;AAET,SAAO;AAAA;AAGT,IAAI,eAEO;AACX,+BAEE;AACA,SAAQ,gCAAiB,OAAO;AAAA;AAGlC,wBAA+B,GAAyB;AACtD;AACA,SAAO,IAAI,WACR,OAAM,uBAAuB,WAAW,iBAAiB;AAAA;AAI9D,mCAAwD;AACtD,SAAO,SAAS,MAAM;AAAA;AAGxB,+BAAqD;AACnD,EAAC,OAAM,uBAAuB;AAAA;AAGhC,IAAM,iBAAiB;AAAA,EACrB,CAAC,MAAM,MAAM,OAAO,OAAO,MAAM;AAAA,EACjC,CAAC,MAAM,MAAM,OAAO;AAAA;AAGtB,2CAAgE;AAC9D,SAAO,qBAAqB,MAAM,qBAAqB;AAAA;AAGzD,IAAM,WAAW,IAAI,IAAI;AACzB,8CAAmE;AACjE,QAAM,aAAa,IAAI;AACvB,QAAM,qBAAqB,MAAM;AACjC,aAAW,oBAAoB;AAE/B,aAAW,oBAAoB;AAC/B,aAAW,oBAAoB;AAC/B,SAAO,WAAW;AAAA;",
6
+ "names": []
7
+ }
@@ -1,11 +1,7 @@
1
1
  import {
2
- cube3x3x3KPuzzle,
3
- transformationForMove
4
- } from "./chunk-X6JHXPDX.js";
5
- import {
6
- Move,
7
- experimentalIs
8
- } from "./chunk-EWRBHQFX.js";
2
+ KPuzzle,
3
+ experimental3x3x3KPuzzle
4
+ } from "./chunk-PMAQZQHL.js";
9
5
 
10
6
  // src/cubing/puzzles/customPGPuzzleLoader.ts
11
7
  async function descAsyncGetPuzzleGeometry(desc) {
@@ -16,17 +12,25 @@ async function descAsyncGetPuzzleGeometry(desc) {
16
12
  addRotations: true
17
13
  });
18
14
  }
19
- async function dsecAsyncGetDef(desc) {
20
- return (await descAsyncGetPuzzleGeometry(desc)).writekpuzzle(true);
15
+ async function asyncGetKPuzzle(desc) {
16
+ const pg = await descAsyncGetPuzzleGeometry(desc);
17
+ const kpuzzleDefinition = pg.getKPuzzleDefinition(true);
18
+ kpuzzleDefinition.name = `description: ${desc}`;
19
+ const puzzleGeometry = await import("./puzzle-geometry/index.js");
20
+ const pgNotation = new puzzleGeometry.ExperimentalPGNotation(pg, pg.getOrbitsDef(true));
21
+ return new KPuzzle(kpuzzleDefinition, {
22
+ experimentalPGNotation: pgNotation
23
+ });
21
24
  }
22
25
  var nextCustomID = 1;
23
26
  function customPGPuzzleLoader(desc, info) {
24
27
  const customID = nextCustomID++;
28
+ let cachedKPuzzle = null;
25
29
  const puzzleLoader = {
26
30
  id: `custom-${customID}`,
27
31
  fullName: info?.fullName ?? `Custom Puzzle (instance #${customID})`,
28
- def: async () => {
29
- return dsecAsyncGetDef(desc);
32
+ kpuzzle: async () => {
33
+ return cachedKPuzzle ?? (cachedKPuzzle = asyncGetKPuzzle(desc));
30
34
  },
31
35
  svg: async () => {
32
36
  const pg = await descAsyncGetPuzzleGeometry(desc);
@@ -77,9 +81,9 @@ var PieceStickering;
77
81
  PieceStickering2["OrientationWithoutPermutation"] = "OrientationWithoutPermutation";
78
82
  })(PieceStickering || (PieceStickering = {}));
79
83
  var PieceAnnotation = class {
80
- constructor(def, defaultValue) {
84
+ constructor(kpuzzle, defaultValue) {
81
85
  this.stickerings = new Map();
82
- for (const [orbitName, orbitDef] of Object.entries(def.orbits)) {
86
+ for (const [orbitName, orbitDef] of Object.entries(kpuzzle.definition.orbits)) {
83
87
  this.stickerings.set(orbitName, new Array(orbitDef.numPieces).fill(defaultValue));
84
88
  }
85
89
  }
@@ -139,8 +143,8 @@ function getPieceAppearance(pieceStickering) {
139
143
  }
140
144
  }
141
145
  var PuzzleStickering = class extends PieceAnnotation {
142
- constructor(def) {
143
- super(def, PieceStickering.Regular);
146
+ constructor(kpuzzle) {
147
+ super(kpuzzle, PieceStickering.Regular);
144
148
  }
145
149
  set(pieceSet, pieceStickering) {
146
150
  for (const [orbitName, pieces] of this.stickerings.entries()) {
@@ -168,12 +172,12 @@ var PuzzleStickering = class extends PieceAnnotation {
168
172
  }
169
173
  };
170
174
  var StickeringManager = class {
171
- constructor(def) {
172
- this.def = def;
175
+ constructor(kpuzzle) {
176
+ this.kpuzzle = kpuzzle;
173
177
  }
174
178
  and(pieceSets) {
175
- const newPieceSet = new PieceAnnotation(this.def, false);
176
- for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {
179
+ const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
180
+ for (const [orbitName, orbitDef] of Object.entries(this.kpuzzle.definition.orbits)) {
177
181
  pieceLoop:
178
182
  for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
179
183
  newPieceSet.stickerings.get(orbitName)[i2] = true;
@@ -188,8 +192,8 @@ var StickeringManager = class {
188
192
  return newPieceSet;
189
193
  }
190
194
  or(pieceSets) {
191
- const newPieceSet = new PieceAnnotation(this.def, false);
192
- for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {
195
+ const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
196
+ for (const [orbitName, orbitDef] of Object.entries(this.kpuzzle.definition.orbits)) {
193
197
  pieceLoop:
194
198
  for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
195
199
  newPieceSet.stickerings.get(orbitName)[i2] = false;
@@ -204,8 +208,8 @@ var StickeringManager = class {
204
208
  return newPieceSet;
205
209
  }
206
210
  not(pieceSet) {
207
- const newPieceSet = new PieceAnnotation(this.def, false);
208
- for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {
211
+ const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
212
+ for (const [orbitName, orbitDef] of Object.entries(this.kpuzzle.definition.orbits)) {
209
213
  for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
210
214
  newPieceSet.stickerings.get(orbitName)[i2] = !pieceSet.stickerings.get(orbitName)[i2];
211
215
  }
@@ -216,11 +220,11 @@ var StickeringManager = class {
216
220
  return this.and(this.moves([]));
217
221
  }
218
222
  move(moveSource) {
219
- const transformation = transformationForMove(this.def, experimentalIs(moveSource, Move) ? moveSource : Move.fromString(moveSource));
220
- const newPieceSet = new PieceAnnotation(this.def, false);
221
- for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {
223
+ const transformation = this.kpuzzle.moveToTransformation(moveSource);
224
+ const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
225
+ for (const [orbitName, orbitDef] of Object.entries(this.kpuzzle.definition.orbits)) {
222
226
  for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
223
- if (transformation[orbitName].permutation[i2] !== i2 || transformation[orbitName].orientation[i2] !== 0) {
227
+ if (transformation.transformationData[orbitName].permutation[i2] !== i2 || transformation.transformationData[orbitName].orientation[i2] !== 0) {
224
228
  newPieceSet.stickerings.get(orbitName)[i2] = true;
225
229
  }
226
230
  }
@@ -263,9 +267,9 @@ if (globalThis.location && new URL(location.href).searchParams.get("global-custo
263
267
 
264
268
  // src/cubing/puzzles/stickerings/cube-stickerings.ts
265
269
  async function cubeAppearance(puzzleLoader, stickering) {
266
- const def = await puzzleLoader.def();
267
- const puzzleStickering = new PuzzleStickering(def);
268
- const m = new StickeringManager(def);
270
+ const kpuzzle = await puzzleLoader.kpuzzle();
271
+ const puzzleStickering = new PuzzleStickering(kpuzzle);
272
+ const m = new StickeringManager(kpuzzle);
269
273
  const LL = () => m.move("U");
270
274
  const orUD = () => m.or(m.moves(["U", "D"]));
271
275
  const E = () => m.not(orUD());
@@ -479,6 +483,14 @@ async function cubeStickerings() {
479
483
  ];
480
484
  }
481
485
 
486
+ // src/cubing/puzzles/async/lazy-cached-kpuzzle.ts
487
+ function lazyKPuzzle(getKPuzzle) {
488
+ let cachedKPuzzlePromise = null;
489
+ return () => {
490
+ return cachedKPuzzlePromise ?? (cachedKPuzzlePromise = getKPuzzle());
491
+ };
492
+ }
493
+
482
494
  // src/cubing/puzzles/async/async-pg3d.ts
483
495
  async function asyncGetPuzzleGeometry(puzzleName) {
484
496
  const puzzleGeometry = await import("./puzzle-geometry/index.js");
@@ -488,16 +500,24 @@ async function asyncGetPuzzleGeometry(puzzleName) {
488
500
  addRotations: true
489
501
  });
490
502
  }
491
- async function asyncGetDef(puzzleName) {
492
- return (await asyncGetPuzzleGeometry(puzzleName)).writekpuzzle(true);
503
+ async function asyncGetKPuzzle2(puzzleName) {
504
+ const pg = await asyncGetPuzzleGeometry(puzzleName);
505
+ const kpuzzleDefinition = pg.getKPuzzleDefinition(true);
506
+ kpuzzleDefinition.name = puzzleName;
507
+ const puzzleGeometry = await import("./puzzle-geometry/index.js");
508
+ const pgNotation = new puzzleGeometry.ExperimentalPGNotation(pg, pg.getOrbitsDef(true));
509
+ return new KPuzzle(kpuzzleDefinition, {
510
+ experimentalPGNotation: pgNotation
511
+ });
512
+ }
513
+ function asyncLazyKPuzzleGetter(puzzleName) {
514
+ return lazyKPuzzle(() => asyncGetKPuzzle2(puzzleName));
493
515
  }
494
516
  function genericPGPuzzleLoader(id, fullName, info) {
495
517
  const puzzleLoader = {
496
518
  id,
497
519
  fullName,
498
- def: async () => {
499
- return asyncGetDef(id);
500
- },
520
+ kpuzzle: asyncLazyKPuzzleGetter(id),
501
521
  svg: async () => {
502
522
  const pg = await asyncGetPuzzleGeometry(id);
503
523
  return pg.generatesvg();
@@ -525,9 +545,7 @@ function cubePGPuzzleLoader(id, fullName, info) {
525
545
  var cube2x2x2 = {
526
546
  id: "2x2x2",
527
547
  fullName: "2\xD72\xD72 Cube",
528
- def: async () => {
529
- return (await import("./2x2x2.kpuzzle.json-JOGUSQ4N.js")).cube2x2x2KPuzzle;
530
- },
548
+ kpuzzle: lazyKPuzzle(async () => new KPuzzle((await import("./2x2x2.kpuzzle.json-U5KOZCMU.js")).cube2x2x2KPuzzleDefinition)),
531
549
  svg: async () => {
532
550
  return (await import("./2x2x2.kpuzzle.svg-CQF2FTV7.js")).default;
533
551
  },
@@ -544,8 +562,8 @@ var cube3x3x3 = {
544
562
  fullName: "3\xD73\xD73 Cube",
545
563
  inventedBy: ["Ern\u0151 Rubik"],
546
564
  inventionYear: 1974,
547
- def: async () => {
548
- return cube3x3x3KPuzzle;
565
+ kpuzzle: async () => {
566
+ return experimental3x3x3KPuzzle;
549
567
  },
550
568
  svg: async () => {
551
569
  return (await import("./3x3x3.kpuzzle.svg-ERSSH66P.js")).default;
@@ -566,9 +584,7 @@ var clock = {
566
584
  fullName: "Clock",
567
585
  inventedBy: ["Christopher C. Wiggs", "Christopher J. Taylor"],
568
586
  inventionYear: 1988,
569
- def: async () => {
570
- return (await import("./clock.kpuzzle.json-EKWRMHJM.js")).clockKPuzzle;
571
- },
587
+ kpuzzle: lazyKPuzzle(async () => new KPuzzle((await import("./clock.kpuzzle.json-J3YBOI3G.js")).clockKPuzzleDefinition)),
572
588
  svg: async () => {
573
589
  return (await import("./clock.kpuzzle.svg-B7TMN3SY.js")).default;
574
590
  }
@@ -576,9 +592,9 @@ var clock = {
576
592
 
577
593
  // src/cubing/puzzles/stickerings/fto-stickerings.ts
578
594
  async function ftoStickering(puzzleLoader, stickering) {
579
- const def = await puzzleLoader.def();
580
- const puzzleStickering = new PuzzleStickering(def);
581
- const m = new StickeringManager(def);
595
+ const kpuzzle = await puzzleLoader.kpuzzle();
596
+ const puzzleStickering = new PuzzleStickering(kpuzzle);
597
+ const m = new StickeringManager(kpuzzle);
582
598
  const experimentalFTO_FC = () => m.and([m.move("U"), m.not(m.or(m.moves(["F", "BL", "BR"])))]);
583
599
  const experimentalFTO_F2T = () => m.and([m.move("U"), m.not(m.move("F"))]);
584
600
  const experimentalFTO_SC = () => m.or([
@@ -645,9 +661,7 @@ var fto = {
645
661
  fullName: "Face-Turning Octahedron",
646
662
  inventedBy: ["Karl Rohrbach", "David Pitcher"],
647
663
  inventionYear: 1983,
648
- def: async () => {
649
- return asyncGetDef("FTO");
650
- },
664
+ kpuzzle: asyncLazyKPuzzleGetter("FTO"),
651
665
  svg: async () => {
652
666
  const pg = await asyncGetPuzzleGeometry("FTO");
653
667
  return pg.generatesvg();
@@ -688,9 +702,7 @@ var pyraminx = {
688
702
  fullName: "Pyraminx",
689
703
  inventedBy: ["Uwe Meffert"],
690
704
  inventionYear: 1970,
691
- def: async () => {
692
- return asyncGetDef("pyraminx");
693
- },
705
+ kpuzzle: asyncLazyKPuzzleGetter("pyraminx"),
694
706
  svg: async () => {
695
707
  return (await import("./pyraminx.kpuzzle.svg-QBBMZVDY.js")).default;
696
708
  },
@@ -705,9 +717,7 @@ var square1 = {
705
717
  fullName: "Square-1",
706
718
  inventedBy: ["Karel Hr\u0161el", "Vojtech Kopsk\xFD"],
707
719
  inventionYear: 1990,
708
- def: async () => {
709
- return (await import("./sq1-hyperorbit.kpuzzle.json-N3FGCPML.js")).sq1HyperOrbitKPuzzle;
710
- },
720
+ kpuzzle: lazyKPuzzle(async () => new KPuzzle((await import("./sq1-hyperorbit.kpuzzle.json-AWDGN4ZW.js")).sq1HyperOrbitKPuzzleDefinition)),
711
721
  svg: async () => {
712
722
  return (await import("./sq1-hyperorbit.kpuzzle.svg-ID57EER7.js")).default;
713
723
  }
@@ -771,4 +781,4 @@ export {
771
781
  puzzles,
772
782
  wcaEventInfo
773
783
  };
774
- //# sourceMappingURL=chunk-DK6PXBB2.js.map
784
+ //# sourceMappingURL=chunk-25PPOENI.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/puzzles/customPGPuzzleLoader.ts", "../../src/cubing/puzzles/stickerings/appearance.ts", "../../src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts", "../../src/cubing/puzzles/stickerings/cube-stickerings.ts", "../../src/cubing/puzzles/async/lazy-cached-kpuzzle.ts", "../../src/cubing/puzzles/async/async-pg3d.ts", "../../src/cubing/puzzles/implementations/2x2x2/index.ts", "../../src/cubing/puzzles/implementations/3x3x3/index.ts", "../../src/cubing/puzzles/implementations/clock/index.ts", "../../src/cubing/puzzles/stickerings/fto-stickerings.ts", "../../src/cubing/puzzles/implementations/fto/index.ts", "../../src/cubing/puzzles/stickerings/megaminx-stickerings.ts", "../../src/cubing/puzzles/implementations/megaminx/index.ts", "../../src/cubing/puzzles/implementations/pyraminx/index.ts", "../../src/cubing/puzzles/implementations/square1/index.ts", "../../src/cubing/puzzles/index.ts"],
4
+ "sourcesContent": ["import { KPuzzle, KPuzzleDefinition } from \"../kpuzzle\";\nimport type { PuzzleGeometry } from \"../puzzle-geometry\";\nimport type { PuzzleDescriptionString } from \"../puzzle-geometry/PGPuzzles\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function descAsyncGetPuzzleGeometry(\n desc: PuzzleDescriptionString,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByDesc(desc, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: dedup with `cubing/puzzles`\nexport async function asyncGetKPuzzle(\n desc: PuzzleDescriptionString,\n): Promise<KPuzzle> {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n const kpuzzleDefinition: KPuzzleDefinition = pg.getKPuzzleDefinition(true);\n kpuzzleDefinition.name = `description: ${desc}`;\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n const pgNotation = new puzzleGeometry.ExperimentalPGNotation(\n pg,\n pg.getOrbitsDef(true),\n );\n return new KPuzzle(kpuzzleDefinition, {\n experimentalPGNotation: pgNotation,\n });\n}\n\n// TODO: Can we avoid relying on IDs to deduplicate work at higher levels?\nlet nextCustomID = 1;\n\nexport function customPGPuzzleLoader(\n desc: PuzzleDescriptionString,\n info?: {\n fullName?: string;\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const customID = nextCustomID++;\n let cachedKPuzzle: Promise<KPuzzle> | null = null;\n const puzzleLoader: PuzzleLoader = {\n id: `custom-${customID}`,\n fullName: info?.fullName ?? `Custom Puzzle (instance #${customID})`,\n kpuzzle: async () => {\n return (cachedKPuzzle ??= asyncGetKPuzzle(desc));\n },\n svg: async () => {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n return pg.generatesvg();\n },\n pg: async () => {\n return descAsyncGetPuzzleGeometry(desc);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n", "// TODO: figure out where to house this permanently.\n\nimport type { Move } from \"../../alg\";\nimport type { KPuzzle } from \"../../kpuzzle\";\n\nexport type FaceletMeshAppearance =\n | \"regular\"\n | \"dim\"\n | \"oriented\"\n | \"ignored\"\n | \"invisible\";\n\nexport type FaceletAppearance = {\n appearance: FaceletMeshAppearance;\n hintAppearance?: FaceletMeshAppearance;\n};\n\nexport type PieceAppearance = {\n // TODO: foundation?\n facelets: (FaceletMeshAppearance | FaceletAppearance | null)[];\n};\n\nexport type OrbitAppearance = {\n pieces: (PieceAppearance | null)[];\n};\n\nexport type PuzzleAppearance = {\n name?: string; // TODO\n orbits: Record<string, OrbitAppearance>;\n};\n\nexport function getFaceletAppearance(\n appearance: PuzzleAppearance,\n orbitName: string,\n pieceIdx: number,\n faceletIdx: number,\n hint: boolean,\n): FaceletMeshAppearance {\n const orbitAppearance = appearance.orbits[orbitName];\n const pieceAppearance: PieceAppearance | null =\n orbitAppearance.pieces[pieceIdx];\n if (pieceAppearance === null) {\n return regular;\n }\n const faceletAppearance: FaceletMeshAppearance | FaceletAppearance | null =\n pieceAppearance.facelets[faceletIdx];\n if (faceletAppearance === null) {\n return regular;\n }\n if (typeof faceletAppearance === \"string\") {\n return faceletAppearance;\n }\n if (hint) {\n return faceletAppearance.hintAppearance ?? faceletAppearance.appearance;\n }\n return faceletAppearance.appearance;\n}\n\n// TODO: Revert this to a normal enum, or write a standard to codify the names?\nexport enum PieceStickering {\n Regular = \"Regular\",\n Dim = \"Dim\",\n Ignored = \"Ignored\",\n OrientationStickers = \"OrientationStickers\",\n Invisible = \"Invisible\",\n Ignoriented = \"Ignoriented\",\n IgnoreNonPrimary = \"IgnoreNonPrimary\",\n PermuteNonPrimary = \"PermuteNonPrimary\",\n OrientationWithoutPermutation = \"OrientationWithoutPermutation\",\n}\n\nexport class PieceAnnotation<T> {\n stickerings: Map<string, T[]> = new Map();\n constructor(kpuzzle: KPuzzle, defaultValue: T) {\n for (const [orbitName, orbitDef] of Object.entries(\n kpuzzle.definition.orbits,\n )) {\n this.stickerings.set(\n orbitName,\n new Array(orbitDef.numPieces).fill(defaultValue),\n );\n }\n }\n}\n\nconst regular = \"regular\";\nconst ignored = \"ignored\";\nconst oriented = \"oriented\";\nconst invisible = \"invisible\";\nconst dim = \"dim\";\n\n// regular\nconst r: PieceAppearance = {\n facelets: [regular, regular, regular, regular, regular],\n};\n\n// ignored\nconst i: PieceAppearance = {\n facelets: [ignored, ignored, ignored, ignored, ignored],\n};\n\n// oriented stickers\nconst o: PieceAppearance = {\n facelets: [oriented, oriented, oriented, oriented, oriented],\n};\n\n// invisible\nconst invisiblePiece: PieceAppearance = {\n facelets: [invisible, invisible, invisible, invisible], // TODO: 4th entry is for void cube. Should be handled properly for all stickerings.\n};\n\n// \"OLL\"\nconst riiii: PieceAppearance = {\n facelets: [regular, ignored, ignored, ignored, ignored],\n};\n\n// \"PLL\"\nconst drrrr: PieceAppearance = {\n facelets: [dim, regular, regular, regular, regular],\n};\n\n// ignored\nconst d: PieceAppearance = {\n facelets: [dim, dim, dim, dim, dim],\n};\n\n// \"OLL\"\nconst diiii: PieceAppearance = {\n facelets: [dim, ignored, ignored, ignored, ignored],\n};\n\n// oriented\nconst oiiii: PieceAppearance = {\n facelets: [oriented, ignored, ignored, ignored, ignored],\n};\n\nexport function getPieceAppearance(\n pieceStickering: PieceStickering,\n): PieceAppearance {\n switch (pieceStickering) {\n case PieceStickering.Regular:\n return r;\n case PieceStickering.Dim:\n return d;\n case PieceStickering.Ignored:\n return i;\n case PieceStickering.OrientationStickers: // TODO: Hack for centers. This shouldn't be needed.\n return o;\n case PieceStickering.Invisible: // TODO: Hack for centers. This shouldn't be needed.\n return invisiblePiece;\n case PieceStickering.IgnoreNonPrimary:\n return riiii;\n case PieceStickering.PermuteNonPrimary:\n return drrrr;\n case PieceStickering.Ignoriented:\n return diiii;\n case PieceStickering.OrientationWithoutPermutation:\n return oiiii;\n }\n}\n\nexport class PuzzleStickering extends PieceAnnotation<PieceStickering> {\n constructor(kpuzzle: KPuzzle) {\n super(kpuzzle, PieceStickering.Regular);\n }\n\n set(pieceSet: PieceSet, pieceStickering: PieceStickering): PuzzleStickering {\n for (const [orbitName, pieces] of this.stickerings.entries()) {\n for (let i = 0; i < pieces.length; i++) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n pieces[i] = pieceStickering;\n }\n }\n }\n return this;\n }\n\n toAppearance(): PuzzleAppearance {\n const appearance: PuzzleAppearance = { orbits: {} };\n for (const [orbitName, pieceStickerings] of this.stickerings.entries()) {\n const pieces: PieceAppearance[] = [];\n const orbitAppearance: OrbitAppearance = {\n pieces,\n };\n appearance.orbits[orbitName] = orbitAppearance;\n for (const pieceStickering of pieceStickerings) {\n pieces.push(getPieceAppearance(pieceStickering));\n }\n }\n return appearance;\n }\n}\n\nexport type PieceSet = PieceAnnotation<boolean>;\n\nexport class StickeringManager {\n constructor(private kpuzzle: KPuzzle) {}\n\n and(pieceSets: PieceSet[]): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n for (const pieceSet of pieceSets) {\n if (!pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n or(pieceSets: PieceSet[]): PieceSet {\n // TODO: unify impl with and?\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n for (const pieceSet of pieceSets) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n not(pieceSet: PieceSet): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] =\n !pieceSet.stickerings.get(orbitName)![i];\n }\n }\n return newPieceSet;\n }\n\n all(): PieceSet {\n return this.and(this.moves([])); // TODO: are the degenerate cases for and/or the wrong way around\n }\n\n move(moveSource: Move | string): PieceSet {\n const transformation = this.kpuzzle.moveToTransformation(moveSource);\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n if (\n transformation.transformationData[orbitName].permutation[i] !== i ||\n transformation.transformationData[orbitName].orientation[i] !== 0\n ) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n }\n }\n }\n return newPieceSet;\n }\n\n moves(moveSources: (Move | string)[]): PieceSet[] {\n return moveSources.map((moveSource) => this.move(moveSource));\n }\n\n // orbits(orbitNames: string[]): PieceSet {\n // const pieceSet = new PieceAnnotation<boolean>(this.def, false);\n // for (const orbitName of orbitNames) {\n // pieceSet.stickerings.get(orbitName)!.fill(true);\n // }\n // return pieceSet;\n // }\n\n // trueCounts(pieceSet: PieceSet): Record<string, number> {\n // const counts: Record<string, number> = {};\n // for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n // let count = 0;\n // for (let i = 0; i < orbitDef.numPieces; i++) {\n // if (pieceSet.stickerings.get(orbitName)![i]) {\n // count++;\n // }\n // }\n // counts[orbitName] = count;\n // }\n // return counts;\n // }\n}\n", "import type { TwistyPlayer } from \"../../twisty\";\nimport {\n PieceStickering,\n PuzzleStickering,\n StickeringManager,\n} from \"./appearance\";\n\ntype Stickerer = (\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n) => void;\n\nlet globalCustomStickerer: Stickerer = () => {};\n\nfunction setGlobalCustomStickerer(stickerer: Stickerer): void {\n (async () => {\n globalCustomStickerer = stickerer;\n\n const players: TwistyPlayer[] = Array.from(\n document.body.querySelectorAll(\"twisty-player\"),\n );\n console.log(`Setting the custom stickering for ${players.length} players!`);\n const successPromises = [];\n for (const player of players) {\n successPromises.push(\n (async () => {\n const stickering =\n await player.experimentalModel.stickeringProp.get();\n player.experimentalStickering =\n stickering === \"experimental-global-custom-1\"\n ? \"experimental-global-custom-2\"\n : \"experimental-global-custom-1\";\n })(),\n );\n }\n await Promise.all(successPromises);\n console.log(\"Success!\");\n })();\n}\n\nexport function useGlobalCustomStickerer(\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n): void {\n globalCustomStickerer(puzzleStickering, m);\n}\n\nif (\n globalThis.location &&\n new URL(location.href).searchParams.get(\"global-custom-stickerer\") === \"true\"\n) {\n (window as any).setGlobalCustomStickerer = setGlobalCustomStickerer;\n (window as any).PieceStickering = PieceStickering;\n console.log(\n \"Global custom stickerer enabled! (using: global-custom-stickerer=true)\",\n );\n console.log(\n \"Look here for inspiration:\",\n \"https://github.com/cubing/cubing.js/blob/81b5cab3e27d8defb39dd1e0a10bc9e8ba894d26/src/cubing/puzzles/stickerings/cube-stickerings.ts#L67\",\n );\n}\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\nimport { useGlobalCustomStickerer } from \"./global-custom-stickering-hack\";\n\n// TODO: cache calculations?\nexport async function cubeAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const kpuzzle = await puzzleLoader.kpuzzle();\n const puzzleStickering = new PuzzleStickering(kpuzzle);\n const m = new StickeringManager(kpuzzle);\n\n const LL = (): PieceSet => m.move(\"U\");\n const orUD = (): PieceSet => m.or(m.moves([\"U\", \"D\"]));\n const E = (): PieceSet => m.not(orUD());\n const orLR = (): PieceSet => m.or(m.moves([\"L\", \"R\"]));\n const M = (): PieceSet => m.not(orLR());\n const orFB = (): PieceSet => m.or(m.moves([\"F\", \"B\"]));\n const S = (): PieceSet => m.not(orFB());\n\n const F2L = (): PieceSet => m.not(LL());\n\n const centerU = (): PieceSet => m.and([LL(), M(), S()]);\n\n const edgeFR = (): PieceSet =>\n m.and([m.and(m.moves([\"F\", \"R\"])), m.not(orUD())]);\n const cornerDFR = (): PieceSet => m.and(m.moves([\"D\", \"R\", \"F\"]));\n const slotFR = (): PieceSet => m.or([cornerDFR(), edgeFR()]);\n\n const CENTERS = (): PieceSet =>\n m.or([m.and([M(), E()]), m.and([M(), S()]), m.and([E(), S()])]);\n const EDGES = (): PieceSet =>\n m.or([\n m.and([M(), orUD(), orFB()]),\n m.and([E(), orLR(), orFB()]),\n m.and([S(), orUD(), orLR()]),\n ]);\n const CORNERS = (): PieceSet => m.not(m.or([CENTERS(), EDGES()]));\n const L6E = (): PieceSet => m.or([M(), m.and([LL(), EDGES()])]);\n\n function dimF2L(): void {\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n }\n\n function setPLL(): void {\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n function setOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.IgnoreNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Regular); // TODO: why is this needed?\n }\n\n function dimOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n switch (stickering) {\n case \"full\":\n break;\n case \"PLL\":\n dimF2L();\n setPLL();\n break;\n case \"CLS\":\n dimF2L();\n puzzleStickering.set(\n m.and(m.moves([\"D\", \"R\", \"F\"])),\n PieceStickering.Regular,\n );\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"OLL\":\n dimF2L();\n setOLL();\n break;\n case \"COLL\":\n dimF2L();\n setPLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"OCLL\":\n dimF2L();\n dimOLL();\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"CLL\":\n dimF2L();\n puzzleStickering.set(\n m.not(m.and([CORNERS(), LL()])),\n PieceStickering.Dim,\n );\n break;\n case \"ELL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.Dim);\n puzzleStickering.set(m.and([LL(), EDGES()]), PieceStickering.Regular);\n break;\n case \"ELS\":\n dimF2L();\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n puzzleStickering.set(edgeFR(), PieceStickering.Regular);\n puzzleStickering.set(cornerDFR(), PieceStickering.Ignored);\n break;\n case \"LL\":\n dimF2L();\n break;\n case \"F2L\":\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n break;\n case \"ZBLL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // why is this needed?\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"ZBLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n break;\n case \"WVLS\":\n // fallthrough\n case \"VLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n break;\n case \"LS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n puzzleStickering.set(centerU(), PieceStickering.Dim);\n break;\n case \"EO\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n break;\n case \"EOline\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(m.and(m.moves([\"D\", \"M\"])), PieceStickering.Regular);\n break;\n case \"EOcross\":\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(m.move(\"D\"), PieceStickering.Regular);\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n break;\n case \"CMLL\":\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n puzzleStickering.set(L6E(), PieceStickering.Ignored);\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"L6E\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n break;\n case \"L6EO\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n puzzleStickering.set(\n L6E(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(\n m.and([CENTERS(), orUD()]),\n PieceStickering.OrientationStickers,\n ); // TODO: why is this needed?\n break;\n case \"Daisy\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"U\"), EDGES()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"Cross\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"D\"), EDGES()]),\n PieceStickering.Regular,\n );\n break;\n case \"2x2x2\":\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n break;\n case \"2x2x3\":\n puzzleStickering.set(m.all(), PieceStickering.Dim);\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n puzzleStickering.set(\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"R\"])))]),\n PieceStickering.Regular,\n );\n break;\n case \"Void Cube\":\n puzzleStickering.set(CENTERS(), PieceStickering.Invisible);\n break;\n case \"picture\":\n // fallthrough\n case \"invisible\":\n puzzleStickering.set(m.all(), PieceStickering.Invisible);\n break;\n case \"centers-only\":\n puzzleStickering.set(m.not(CENTERS()), PieceStickering.Ignored);\n break;\n case \"experimental-global-custom-1\":\n // fallthrough\n case \"experimental-global-custom-2\":\n useGlobalCustomStickerer(puzzleStickering, m);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function cubeStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"PLL\",\n \"CLS\",\n \"OLL\",\n \"COLL\",\n \"OCLL\",\n \"ELL\",\n \"ELS\",\n \"LL\",\n \"F2L\",\n \"ZBLL\",\n \"ZBLS\",\n \"WVLS\",\n \"VLS\",\n \"LS\",\n \"EO\",\n \"EOline\",\n \"EOcross\",\n \"CMLL\",\n \"L6E\",\n \"L6EO\",\n \"Daisy\",\n \"Cross\",\n \"2x2x2\",\n \"2x2x3\",\n \"Void Cube\",\n \"picture\",\n \"invisible\",\n \"centers-only\",\n \"experimental-global-custom-1\",\n \"experimental-global-custom-2\",\n ];\n}\n", "import type { KPuzzle } from \"../../kpuzzle\";\n\n// TODO\nexport function lazyKPuzzle(\n getKPuzzle: () => Promise<KPuzzle>,\n): () => Promise<KPuzzle> {\n let cachedKPuzzlePromise: Promise<KPuzzle> | null = null;\n return (): Promise<KPuzzle> => {\n return (cachedKPuzzlePromise ??= getKPuzzle());\n };\n}\n", "import { KPuzzle, KPuzzleDefinition } from \"../../kpuzzle\";\nimport type { PuzzleGeometry } from \"../../puzzle-geometry\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../stickerings/cube-stickerings\";\nimport { lazyKPuzzle } from \"./lazy-cached-kpuzzle\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function asyncGetPuzzleGeometry(\n puzzleName: string,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByName(puzzleName, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function asyncGetKPuzzle(puzzleName: string): Promise<KPuzzle> {\n const pg = await asyncGetPuzzleGeometry(puzzleName);\n const kpuzzleDefinition: KPuzzleDefinition = pg.getKPuzzleDefinition(true);\n kpuzzleDefinition.name = puzzleName;\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n const pgNotation = new puzzleGeometry.ExperimentalPGNotation(\n pg,\n pg.getOrbitsDef(true),\n );\n return new KPuzzle(kpuzzleDefinition, {\n experimentalPGNotation: pgNotation,\n });\n}\n\nexport function asyncLazyKPuzzleGetter(\n puzzleName: string,\n): () => Promise<KPuzzle> {\n return lazyKPuzzle(() => asyncGetKPuzzle(puzzleName));\n}\n\nexport function genericPGPuzzleLoader(\n id: string,\n fullName: string,\n info?: {\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const puzzleLoader: PuzzleLoader = {\n id: id,\n fullName: fullName,\n kpuzzle: asyncLazyKPuzzleGetter(id),\n svg: async () => {\n const pg = await asyncGetPuzzleGeometry(id);\n return pg.generatesvg();\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(id);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n\nexport function cubePGPuzzleLoader(\n id: string,\n fullName: string,\n info?: {\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const puzzleLoader: PuzzleLoader = genericPGPuzzleLoader(id, fullName, info);\n puzzleLoader.appearance = cubeAppearance.bind(cubeAppearance, puzzleLoader);\n puzzleLoader.stickerings = cubeStickerings;\n return puzzleLoader;\n}\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { lazyKPuzzle } from \"../../async/lazy-cached-kpuzzle\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube2x2x2: PuzzleLoader = {\n id: \"2x2x2\",\n fullName: \"2\u00D72\u00D72 Cube\",\n kpuzzle: lazyKPuzzle(\n async () =>\n new KPuzzle(\n (await import(\"./2x2x2.kpuzzle.json\")).cube2x2x2KPuzzleDefinition,\n ),\n ),\n svg: async () => {\n return (await import(\"./2x2x2.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"2x2x2\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube2x2x2, stickering),\n stickerings: cubeStickerings,\n};\n", "// Include 3x3x3 in the main bundle for better performance.\nimport { experimental3x3x3KPuzzle } from \"../../../kpuzzle\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube3x3x3: PuzzleLoader = {\n id: \"3x3x3\",\n fullName: \"3\u00D73\u00D73 Cube\",\n inventedBy: [\"Ern\u0151 Rubik\"],\n inventionYear: 1974, // https://en.wikipedia.org/wiki/Rubik%27s_Cube#Conception_and_development\n kpuzzle: async () => {\n return experimental3x3x3KPuzzle;\n },\n svg: async () => {\n return (await import(\"./3x3x3.kpuzzle.svg\")).default;\n },\n llSVG: async () => {\n return (await import(\"./3x3x3-ll.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"3x3x3\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube3x3x3, stickering),\n stickerings: cubeStickerings,\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { lazyKPuzzle } from \"../../async/lazy-cached-kpuzzle\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const clock: PuzzleLoader = {\n id: \"clock\",\n fullName: \"Clock\",\n inventedBy: [\"Christopher C. Wiggs\", \"Christopher J. Taylor\"],\n inventionYear: 1988, // Patent application year: https://www.jaapsch.net/puzzles/patents/us4869506.pdf\n kpuzzle: lazyKPuzzle(\n async () =>\n new KPuzzle(\n (await import(\"./clock.kpuzzle.json\")).clockKPuzzleDefinition,\n ),\n ),\n svg: async () => {\n return (await import(\"./clock.kpuzzle.svg\")).default;\n },\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\n\nexport async function ftoStickering(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const kpuzzle = await puzzleLoader.kpuzzle();\n const puzzleStickering = new PuzzleStickering(kpuzzle);\n const m = new StickeringManager(kpuzzle);\n\n const experimentalFTO_FC = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.or(m.moves([\"F\", \"BL\", \"BR\"])))]);\n const experimentalFTO_F2T = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.move(\"F\"))]);\n const experimentalFTO_SC = (): PieceSet =>\n m.or([\n experimentalFTO_F2T(),\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"BL\", \"BR\"])))]),\n ]);\n const experimentalFTO_L2C = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"U\"), m.move(\"F\")]),\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n const experimentalFTO_LBT = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n\n switch (stickering) {\n case \"full\":\n break;\n case \"experimental-fto-fc\":\n puzzleStickering.set(\n m.not(experimentalFTO_FC()),\n PieceStickering.Ignored,\n );\n break;\n case \"experimental-fto-f2t\":\n puzzleStickering.set(\n m.not(experimentalFTO_F2T()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_FC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-sc\":\n puzzleStickering.set(\n m.not(experimentalFTO_SC()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_F2T(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l2c\":\n puzzleStickering.set(\n m.not(experimentalFTO_L2C()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_SC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-lbt\":\n puzzleStickering.set(\n m.not(experimentalFTO_LBT()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_L2C(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l3t\":\n puzzleStickering.set(experimentalFTO_LBT(), PieceStickering.Dim);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function ftoStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"experimental-fto-fc\",\n \"experimental-fto-f2t\",\n \"experimental-fto-sc\",\n \"experimental-fto-l2c\",\n \"experimental-fto-lbt\",\n \"experimental-fto-l3t\",\n ];\n}\n", "import type { PuzzleLoader } from \"../..\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport {\n asyncGetPuzzleGeometry,\n asyncLazyKPuzzleGetter,\n} from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n ftoStickering,\n ftoStickerings,\n} from \"../../stickerings/fto-stickerings\";\n\nexport const fto: PuzzleLoader = {\n id: \"fto\",\n fullName: \"Face-Turning Octahedron\",\n inventedBy: [\"Karl Rohrbach\", \"David Pitcher\"], // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n inventionYear: 1983, // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n kpuzzle: asyncLazyKPuzzleGetter(\"FTO\"),\n svg: async () => {\n const pg = await asyncGetPuzzleGeometry(\"FTO\");\n return pg.generatesvg();\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"FTO\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n ftoStickering(fto, stickering),\n stickerings: ftoStickerings,\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"./appearance\";\nimport { cubeAppearance } from \"./cube-stickerings\";\n\n// TODO: cache calculations?\nexport async function megaminxAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n switch (stickering) {\n case \"full\":\n case \"F2L\":\n case \"LL\":\n return cubeAppearance(puzzleLoader, stickering);\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n }\n return cubeAppearance(puzzleLoader, \"full\");\n}\n\nexport async function megaminxStickerings(): Promise<ExperimentalStickering[]> {\n return [\"full\", \"F2L\", \"LL\"];\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { genericPGPuzzleLoader } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n megaminxAppearance,\n megaminxStickerings,\n} from \"../../stickerings/megaminx-stickerings\";\n\nconst megaminx = genericPGPuzzleLoader(\"megaminx\", \"Megaminx\", {\n // Too many simultaneous inventors to name.\n inventionYear: 1981, // Earliest date from https://www.jaapsch.net/puzzles/megaminx.htm\n});\n\n// TODO: loading the stickering code async.\nmegaminx.appearance = (\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> => megaminxAppearance(megaminx, stickering);\nmegaminx.stickerings = megaminxStickerings;\n\nexport { megaminx };\n", "import {\n asyncGetPuzzleGeometry,\n asyncLazyKPuzzleGetter,\n} from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const pyraminx: PuzzleLoader = {\n id: \"pyraminx\",\n fullName: \"Pyraminx\",\n inventedBy: [\"Uwe Meffert\"],\n inventionYear: 1970, // https://en.wikipedia.org/wiki/Pyraminx#Description\n kpuzzle: asyncLazyKPuzzleGetter(\"pyraminx\"),\n svg: async () => {\n return (await import(\"./pyraminx.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"pyraminx\");\n },\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { lazyKPuzzle } from \"../../async/lazy-cached-kpuzzle\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const square1: PuzzleLoader = {\n id: \"square1\",\n fullName: \"Square-1\",\n inventedBy: [\"Karel Hr\u0161el\", \"Vojtech Kopsk\u00FD\"],\n inventionYear: 1990, // Czech patent application year: http://spisy.upv.cz/Patents/FullDocuments/277/277266.pdf\n kpuzzle: lazyKPuzzle(\n async () =>\n new KPuzzle(\n (\n await import(\"./sq1-hyperorbit.kpuzzle.json\")\n ).sq1HyperOrbitKPuzzleDefinition,\n ),\n ),\n svg: async () => {\n return (await import(\"./sq1-hyperorbit.kpuzzle.svg\")).default;\n },\n};\n", "export { customPGPuzzleLoader as experimentalCustomPGPuzzleLoader } from \"./customPGPuzzleLoader\";\nexport { experimental3x3x3KPuzzle } from \"../kpuzzle\";\n\nexport { cubeAppearance as experimentalCubeAppearance } from \"./stickerings/cube-stickerings\";\n\nimport type { PuzzleID } from \"../twisty\";\nimport { cubePGPuzzleLoader, genericPGPuzzleLoader } from \"./async/async-pg3d\";\nimport { cube2x2x2 } from \"./implementations/2x2x2\";\nimport { cube3x3x3 } from \"./implementations/3x3x3\";\nimport { clock } from \"./implementations/clock\";\nimport { fto } from \"./implementations/fto\";\nimport { megaminx } from \"./implementations/megaminx\";\nimport { pyraminx } from \"./implementations/pyraminx\";\nimport { square1 } from \"./implementations/square1\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\nexport type { PuzzleLoader };\n\nexport const puzzles: Record<string, PuzzleLoader> = {\n /******** Start of WCA Puzzles *******/\n \"3x3x3\": cube3x3x3,\n \"2x2x2\": cube2x2x2,\n \"4x4x4\": cubePGPuzzleLoader(\"4x4x4\", \"4\u00D74\u00D74 Cube\"),\n \"5x5x5\": cubePGPuzzleLoader(\"5x5x5\", \"5\u00D75\u00D75 Cube\"),\n \"6x6x6\": cubePGPuzzleLoader(\"6x6x6\", \"6\u00D76\u00D76 Cube\"),\n \"7x7x7\": cubePGPuzzleLoader(\"7x7x7\", \"7\u00D77\u00D77 Cube\"),\n \"40x40x40\": cubePGPuzzleLoader(\"40x40x40\", \"40\u00D740\u00D740 Cube\"),\n // 3x3x3 Blindfolded\n // 3x3x3 Fewest Moves\n // 3x3x3 One-Handed\n clock,\n \"megaminx\": megaminx,\n pyraminx,\n \"skewb\": genericPGPuzzleLoader(\"skewb\", \"Skewb\", {\n inventedBy: [\"Tony Durham\"], // https://www.jaapsch.net/puzzles/skewb.htm\n // inventionYear: 1982, // 1982 is actually the year of Hofstadter's column.\n }),\n square1,\n // 4x4x4 Blindfolded\n // 5x5x5 Blindfolded\n /******** End of WCA puzzles ********/\n \"fto\": fto,\n \"gigaminx\": genericPGPuzzleLoader(\"gigaminx\", \"Gigaminx\", {\n inventedBy: [\"Tyler Fox\"],\n inventionYear: 2006, // Earliest date from https://www.twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1475\n }),\n \"master_tetraminx\": genericPGPuzzleLoader(\n \"master tetraminx\",\n \"Master Tetraminx\",\n {\n inventedBy: [\"Katsuhiko Okamoto\"], // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n inventionYear: 2002, // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n },\n ),\n};\n\nexport { cube2x2x2, cube3x3x3 };\n\nexport { getFaceletAppearance as experimentalGetFaceletAppearance } from \"./stickerings/appearance\";\nexport type {\n FaceletMeshAppearance as ExperimentalFaceletMeshAppearance,\n PuzzleAppearance as ExperimentalPuzzleAppearance,\n} from \"./stickerings/appearance\";\n\ninterface WCAEventInfo {\n puzzleID: PuzzleID;\n eventName: string;\n}\n\nconst wcaEvents: Record<string, WCAEventInfo> = {\n \"333\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Cube\" },\n \"222\": { puzzleID: \"2x2x2\", eventName: \"2x2x2 Cube\" },\n \"444\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Cube\" },\n \"555\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Cube\" },\n \"666\": { puzzleID: \"6x6x6\", eventName: \"6x6x6 Cube\" },\n \"777\": { puzzleID: \"7x7x7\", eventName: \"7x7x7 Cube\" },\n \"333bf\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Blindfolded\" },\n \"333fm\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Fewest Moves\" },\n \"333oh\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 One-Handed\" },\n \"clock\": { puzzleID: \"clock\", eventName: \"Clock\" },\n \"minx\": { puzzleID: \"megaminx\", eventName: \"Megaminx\" },\n \"pyram\": { puzzleID: \"pyraminx\", eventName: \"Pyraminx\" },\n \"skewb\": { puzzleID: \"skewb\", eventName: \"Skewb\" },\n \"sq1\": { puzzleID: \"square1\", eventName: \"Square-1\" },\n \"444bf\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Blindfolded\" },\n \"555bf\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Blindfolded\" },\n \"333mb\": { puzzleID: \"3x3x3\", eventName: \" 3x3x3 Multi-Blind\" },\n};\n\nexport function wcaEventInfo(event: string): WCAEventInfo | null {\n return wcaEvents[event] ?? null;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,14 +1,9 @@
1
- import {
2
- KPuzzle,
3
- identityTransformation,
4
- invertTransformation
5
- } from "./chunk-X6JHXPDX.js";
6
1
  import {
7
2
  Alg
8
3
  } from "./chunk-EWRBHQFX.js";
9
4
 
10
5
  // src/cubing/search/inside/solve/parseSGS.ts
11
- function parseSGS(def, sgs) {
6
+ function parseSGS(kpuzzle, sgs) {
12
7
  const subgroupSizes = [];
13
8
  const sgsActions = [];
14
9
  for (const line of sgs.split("\n")) {
@@ -16,10 +11,10 @@ function parseSGS(def, sgs) {
16
11
  if (line.startsWith("SetOrder ")) {
17
12
  } else if (line.startsWith("Alg ")) {
18
13
  const alg = Alg.fromString(line.substring(4));
19
- const kpuzzle = new KPuzzle(def);
20
- kpuzzle.reset();
21
- kpuzzle.applyAlg(alg);
22
- sgsActions.push({ alg, transformation: kpuzzle.state });
14
+ sgsActions.push({
15
+ alg,
16
+ transformation: kpuzzle.algToTransformation(alg)
17
+ });
23
18
  } else if (line.startsWith("SubgroupSizes ")) {
24
19
  for (let j = 1; j < lineTokens.length; j++) {
25
20
  subgroupSizes.push(parseInt(lineTokens[j]));
@@ -33,7 +28,7 @@ function parseSGS(def, sgs) {
33
28
  let sum = 0;
34
29
  subgroupAlgOffsets.push(0);
35
30
  const emptyAlg = Alg.fromString("");
36
- const identity = identityTransformation(def);
31
+ const identity = kpuzzle.identityTransformation();
37
32
  for (let i = 0; i < subgroupSizes.length; i++) {
38
33
  sum += subgroupSizes[i];
39
34
  subgroupAlgOffsets.push(sum);
@@ -43,18 +38,18 @@ function parseSGS(def, sgs) {
43
38
  throw Error(`Bad sgs; expected ${sum - subgroupSizes.length} algs but saw ${sgsActions.length - subgroupSizes.length}`);
44
39
  }
45
40
  const processedPieces = {};
46
- for (const orbitName in def.orbits) {
47
- const orbitDefinition = def.orbits[orbitName];
41
+ for (const orbitName in kpuzzle.definition.orbits) {
42
+ const orbitDefinition = kpuzzle.definition.orbits[orbitName];
48
43
  processedPieces[orbitName] = new Array(orbitDefinition.numPieces).fill(false);
49
44
  }
50
45
  for (let i = subgroupSizes.length - 1; i >= 0; i--) {
51
46
  const pieceOrdering = [];
52
47
  for (let j = subgroupAlgOffsets[i]; j < subgroupAlgOffsets[i + 1]; j++) {
53
48
  const transformation = sgsActions[j].transformation;
54
- for (const orbitName in def.orbits) {
55
- const orbitDefinition = def.orbits[orbitName];
49
+ for (const orbitName in kpuzzle.definition.orbits) {
50
+ const orbitDefinition = kpuzzle.definition.orbits[orbitName];
56
51
  for (let idx = 0; idx < orbitDefinition.numPieces; idx++) {
57
- if (transformation[orbitName].permutation[idx] !== idx || transformation[orbitName].orientation[idx] !== 0) {
52
+ if (transformation.transformationData[orbitName].permutation[idx] !== idx || transformation.transformationData[orbitName].orientation[idx] !== 0) {
58
53
  if (!processedPieces[orbitName][idx]) {
59
54
  pieceOrdering.push({ orbitName, permutationIdx: idx });
60
55
  processedPieces[orbitName][idx] = true;
@@ -65,15 +60,15 @@ function parseSGS(def, sgs) {
65
60
  }
66
61
  const lookup = {};
67
62
  for (let j = subgroupAlgOffsets[i]; j < subgroupAlgOffsets[i + 1]; j++) {
68
- const transformation = invertTransformation(def, sgsActions[j].transformation);
63
+ const transformation = sgsActions[j].transformation.invert();
69
64
  let key = "";
70
65
  for (let k = 0; k < pieceOrdering.length; k++) {
71
66
  const loc = pieceOrdering[k];
72
- key = `${key} ${transformation[loc.orbitName].permutation[loc.permutationIdx]} ${transformation[loc.orbitName].orientation[loc.permutationIdx]}`;
67
+ key = `${key} ${transformation.transformationData[loc.orbitName].permutation[loc.permutationIdx]} ${transformation.transformationData[loc.orbitName].orientation[loc.permutationIdx]}`;
73
68
  }
74
69
  lookup[key] = sgsActions[j];
75
70
  sgsActions[j].alg = sgsActions[j].alg.invert();
76
- sgsActions[j].transformation = invertTransformation(def, sgsActions[j].transformation);
71
+ sgsActions[j].transformation = sgsActions[j].transformation.invert();
77
72
  }
78
73
  sgsCachedData.ordering[i] = {
79
74
  pieceOrdering,
@@ -86,4 +81,4 @@ function parseSGS(def, sgs) {
86
81
  export {
87
82
  parseSGS
88
83
  };
89
- //# sourceMappingURL=chunk-XVZOMB6J.js.map
84
+ //# sourceMappingURL=chunk-27KJGD3S.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/search/inside/solve/parseSGS.ts"],
4
+ "sourcesContent": ["import { Alg } from \"../../../alg\";\nimport type { KPuzzle, KTransformation } from \"../../../kpuzzle\";\n\ninterface PieceReference {\n orbitName: string;\n permutationIdx: number;\n}\n\nexport interface SGSAction {\n alg: Alg;\n transformation: KTransformation;\n}\n\nexport interface SGSCachedData {\n ordering: {\n pieceOrdering: PieceReference[];\n lookup: Record<string, SGSAction>;\n }[];\n}\n\nexport function parseSGS(kpuzzle: KPuzzle, sgs: string): SGSCachedData {\n const subgroupSizes: number[] = [];\n const sgsActions: SGSAction[] = [];\n for (const line of sgs.split(\"\\n\")) {\n const lineTokens = line.split(\" \");\n if (line.startsWith(\"SetOrder \")) {\n // ignore\n } else if (line.startsWith(\"Alg \")) {\n const alg = Alg.fromString(line.substring(4));\n sgsActions.push({\n alg: alg,\n transformation: kpuzzle.algToTransformation(alg),\n });\n } else if (line.startsWith(\"SubgroupSizes \")) {\n for (let j = 1; j < lineTokens.length; j++) {\n subgroupSizes.push(parseInt(lineTokens[j]));\n }\n }\n }\n\n const sgsCachedData: SGSCachedData = {\n ordering: new Array(subgroupSizes.length),\n };\n const subgroupAlgOffsets: number[] = [];\n let sum = 0;\n subgroupAlgOffsets.push(0);\n const emptyAlg = Alg.fromString(\"\");\n const identity = kpuzzle.identityTransformation();\n for (let i = 0; i < subgroupSizes.length; i++) {\n sum += subgroupSizes[i];\n subgroupAlgOffsets.push(sum);\n sgsActions.splice(sum - 1, 0, { alg: emptyAlg, transformation: identity });\n }\n if (sgsActions.length !== sum) {\n throw Error(\n `Bad sgs; expected ${sum - subgroupSizes.length} algs but saw ${\n sgsActions.length - subgroupSizes.length\n }`,\n );\n }\n const processedPieces: Record<string, boolean[]> = {};\n for (const orbitName in kpuzzle.definition.orbits) {\n const orbitDefinition = kpuzzle.definition.orbits[orbitName];\n processedPieces[orbitName] = new Array(orbitDefinition.numPieces).fill(\n false,\n );\n }\n for (let i = subgroupSizes.length - 1; i >= 0; i--) {\n const pieceOrdering: PieceReference[] = [];\n for (let j = subgroupAlgOffsets[i]; j < subgroupAlgOffsets[i + 1]; j++) {\n const transformation = sgsActions[j].transformation;\n for (const orbitName in kpuzzle.definition.orbits) {\n const orbitDefinition = kpuzzle.definition.orbits[orbitName];\n for (let idx = 0; idx < orbitDefinition.numPieces; idx++) {\n if (\n transformation.transformationData[orbitName].permutation[idx] !==\n idx ||\n transformation.transformationData[orbitName].orientation[idx] !== 0\n ) {\n if (!processedPieces[orbitName][idx]) {\n pieceOrdering.push({ orbitName: orbitName, permutationIdx: idx });\n processedPieces[orbitName][idx] = true;\n }\n }\n }\n }\n }\n const lookup: Record<string, SGSAction> = {};\n for (let j = subgroupAlgOffsets[i]; j < subgroupAlgOffsets[i + 1]; j++) {\n const transformation = sgsActions[j].transformation.invert();\n let key = \"\";\n for (let k = 0; k < pieceOrdering.length; k++) {\n const loc = pieceOrdering[k];\n key = `${key} ${\n transformation.transformationData[loc.orbitName].permutation[\n loc.permutationIdx\n ]\n } ${\n transformation.transformationData[loc.orbitName].orientation[\n loc.permutationIdx\n ]\n }`;\n }\n lookup[key] = sgsActions[j];\n sgsActions[j].alg = sgsActions[j].alg.invert();\n sgsActions[j].transformation = sgsActions[j].transformation.invert();\n }\n sgsCachedData.ordering[i] = {\n pieceOrdering: pieceOrdering,\n lookup: lookup,\n };\n }\n return sgsCachedData;\n}\n"],
5
+ "mappings": ";;;;;AAoBO,kBAAkB,SAAkB,KAA4B;AACrE,QAAM,gBAA0B;AAChC,QAAM,aAA0B;AAChC,aAAW,QAAQ,IAAI,MAAM,OAAO;AAClC,UAAM,aAAa,KAAK,MAAM;AAC9B,QAAI,KAAK,WAAW,cAAc;AAAA,eAEvB,KAAK,WAAW,SAAS;AAClC,YAAM,MAAM,IAAI,WAAW,KAAK,UAAU;AAC1C,iBAAW,KAAK;AAAA,QACd;AAAA,QACA,gBAAgB,QAAQ,oBAAoB;AAAA;AAAA,eAErC,KAAK,WAAW,mBAAmB;AAC5C,eAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,sBAAc,KAAK,SAAS,WAAW;AAAA;AAAA;AAAA;AAK7C,QAAM,gBAA+B;AAAA,IACnC,UAAU,IAAI,MAAM,cAAc;AAAA;AAEpC,QAAM,qBAA+B;AACrC,MAAI,MAAM;AACV,qBAAmB,KAAK;AACxB,QAAM,WAAW,IAAI,WAAW;AAChC,QAAM,WAAW,QAAQ;AACzB,WAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,WAAO,cAAc;AACrB,uBAAmB,KAAK;AACxB,eAAW,OAAO,MAAM,GAAG,GAAG,EAAE,KAAK,UAAU,gBAAgB;AAAA;AAEjE,MAAI,WAAW,WAAW,KAAK;AAC7B,UAAM,MACJ,qBAAqB,MAAM,cAAc,uBACvC,WAAW,SAAS,cAAc;AAAA;AAIxC,QAAM,kBAA6C;AACnD,aAAW,aAAa,QAAQ,WAAW,QAAQ;AACjD,UAAM,kBAAkB,QAAQ,WAAW,OAAO;AAClD,oBAAgB,aAAa,IAAI,MAAM,gBAAgB,WAAW,KAChE;AAAA;AAGJ,WAAS,IAAI,cAAc,SAAS,GAAG,KAAK,GAAG,KAAK;AAClD,UAAM,gBAAkC;AACxC,aAAS,IAAI,mBAAmB,IAAI,IAAI,mBAAmB,IAAI,IAAI,KAAK;AACtE,YAAM,iBAAiB,WAAW,GAAG;AACrC,iBAAW,aAAa,QAAQ,WAAW,QAAQ;AACjD,cAAM,kBAAkB,QAAQ,WAAW,OAAO;AAClD,iBAAS,MAAM,GAAG,MAAM,gBAAgB,WAAW,OAAO;AACxD,cACE,eAAe,mBAAmB,WAAW,YAAY,SACvD,OACF,eAAe,mBAAmB,WAAW,YAAY,SAAS,GAClE;AACA,gBAAI,CAAC,gBAAgB,WAAW,MAAM;AACpC,4BAAc,KAAK,EAAE,WAAsB,gBAAgB;AAC3D,8BAAgB,WAAW,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAM5C,UAAM,SAAoC;AAC1C,aAAS,IAAI,mBAAmB,IAAI,IAAI,mBAAmB,IAAI,IAAI,KAAK;AACtE,YAAM,iBAAiB,WAAW,GAAG,eAAe;AACpD,UAAI,MAAM;AACV,eAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,cAAM,MAAM,cAAc;AAC1B,cAAM,GAAG,OACP,eAAe,mBAAmB,IAAI,WAAW,YAC/C,IAAI,mBAGN,eAAe,mBAAmB,IAAI,WAAW,YAC/C,IAAI;AAAA;AAIV,aAAO,OAAO,WAAW;AACzB,iBAAW,GAAG,MAAM,WAAW,GAAG,IAAI;AACtC,iBAAW,GAAG,iBAAiB,WAAW,GAAG,eAAe;AAAA;AAE9D,kBAAc,SAAS,KAAK;AAAA,MAC1B;AAAA,MACA;AAAA;AAAA;AAGJ,SAAO;AAAA;",
6
+ "names": []
7
+ }