cubing 0.25.2 → 0.25.6

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 (98) hide show
  1. package/README.md +12 -30
  2. package/dist/esm/{2x2x2.sgs.json-NUOQFJWU.js → 2x2x2.sgs.json-GQVTWF7L.js} +3 -3
  3. package/dist/esm/{2x2x2.sgs.json-NUOQFJWU.js.map → 2x2x2.sgs.json-GQVTWF7L.js.map} +0 -0
  4. package/dist/esm/{3d-dynamic-AKACURPM.js → 3d-dynamic-DKWMBHRS.js} +19 -17
  5. package/dist/esm/{3d-dynamic-AKACURPM.js.map → 3d-dynamic-DKWMBHRS.js.map} +2 -2
  6. package/dist/esm/{444-solver-GNQ5BHCL.js → 444-solver-ZBJQH3QR.js} +4 -4
  7. package/dist/esm/{444-solver-GNQ5BHCL.js.map → 444-solver-ZBJQH3QR.js.map} +0 -0
  8. package/dist/esm/bluetooth/index.js +3 -3
  9. package/dist/esm/chunk-BEXHMXCT.js +9 -0
  10. package/dist/esm/chunk-BEXHMXCT.js.map +7 -0
  11. package/dist/esm/{chunk-SNWS6JXI.js → chunk-BOKO2BWT.js} +101 -27
  12. package/dist/esm/chunk-BOKO2BWT.js.map +7 -0
  13. package/dist/esm/{chunk-KRL5KQQK.js → chunk-F5WNHV7V.js} +2 -2
  14. package/dist/esm/{chunk-KRL5KQQK.js.map → chunk-F5WNHV7V.js.map} +2 -2
  15. package/dist/esm/{chunk-Y32HHZUY.js → chunk-FE3HTWQK.js} +8 -2
  16. package/dist/esm/chunk-FE3HTWQK.js.map +7 -0
  17. package/dist/esm/{chunk-CYKV7QC5.js → chunk-HTPDDD3Q.js} +2 -2
  18. package/dist/esm/{chunk-CYKV7QC5.js.map → chunk-HTPDDD3Q.js.map} +0 -0
  19. package/dist/esm/chunk-IVQ4ITE2.js +33 -0
  20. package/dist/esm/chunk-IVQ4ITE2.js.map +7 -0
  21. package/dist/esm/{chunk-QMZKTP7F.js → chunk-L73RWUDG.js} +3 -3
  22. package/dist/esm/{chunk-QMZKTP7F.js.map → chunk-L73RWUDG.js.map} +0 -0
  23. package/dist/esm/{chunk-TXTMBIUR.js → chunk-L7AOT5LY.js} +2 -2
  24. package/dist/esm/{chunk-TXTMBIUR.js.map → chunk-L7AOT5LY.js.map} +0 -0
  25. package/dist/esm/{chunk-T5KQKRR3.js → chunk-LZGPOT2V.js} +3 -3
  26. package/dist/esm/{chunk-T5KQKRR3.js.map → chunk-LZGPOT2V.js.map} +0 -0
  27. package/dist/esm/{chunk-ASJ2DADD.js → chunk-ME2QTCHN.js} +3 -3
  28. package/dist/esm/{chunk-ASJ2DADD.js.map → chunk-ME2QTCHN.js.map} +0 -0
  29. package/dist/esm/{chunk-FZJDXPAH.js → chunk-T2BDGTK3.js} +11 -34
  30. package/dist/esm/chunk-T2BDGTK3.js.map +7 -0
  31. package/dist/esm/{chunk-L3PZ4XAT.js → chunk-TG5KP5IL.js} +7 -2
  32. package/dist/esm/{chunk-L3PZ4XAT.js.map → chunk-TG5KP5IL.js.map} +2 -2
  33. package/dist/esm/{chunk-5O24MNND.js → chunk-WDJDRVZZ.js} +6 -3
  34. package/dist/esm/chunk-WDJDRVZZ.js.map +7 -0
  35. package/dist/esm/{fto.dynamic-A3AASYQ6.js → fto.dynamic-ZH5IVUKX.js} +3 -3
  36. package/dist/esm/{fto.dynamic-A3AASYQ6.js.map → fto.dynamic-ZH5IVUKX.js.map} +0 -0
  37. package/dist/esm/kilominx.kpuzzle.svg-7XJBOKFU.js +83 -0
  38. package/dist/esm/kilominx.kpuzzle.svg-7XJBOKFU.js.map +7 -0
  39. package/dist/esm/kilosolver-N6JM5PUY.js +713 -0
  40. package/dist/esm/kilosolver-N6JM5PUY.js.map +7 -0
  41. package/dist/esm/kpuzzle/index.js +1 -1
  42. package/dist/esm/{megaminx.sgs.json-KKR4VPHV.js → megaminx.sgs.json-JXXOXGQE.js} +4 -4
  43. package/dist/esm/{megaminx.sgs.json-KKR4VPHV.js.map → megaminx.sgs.json-JXXOXGQE.js.map} +0 -0
  44. package/dist/esm/protocol/index.js +2 -2
  45. package/dist/esm/puzzle-geometry/index.js +1 -1
  46. package/dist/esm/puzzles/index.js +4 -2
  47. package/dist/esm/{pyraminx.sgs.json-X37XL7MA.js → pyraminx.sgs.json-EHYGSC7B.js} +4 -4
  48. package/dist/esm/{pyraminx.sgs.json-X37XL7MA.js.map → pyraminx.sgs.json-EHYGSC7B.js.map} +0 -0
  49. package/dist/esm/redi_cube-E5F64NIQ.js +564 -0
  50. package/dist/esm/redi_cube-E5F64NIQ.js.map +7 -0
  51. package/dist/esm/redi_cube.kpuzzle.json-EPBKWOMV.js +66 -0
  52. package/dist/esm/redi_cube.kpuzzle.json-EPBKWOMV.js.map +7 -0
  53. package/dist/esm/redi_cube.kpuzzle.svg-BSHCMC2Z.js +160 -0
  54. package/dist/esm/redi_cube.kpuzzle.svg-BSHCMC2Z.js.map +7 -0
  55. package/dist/esm/scramble/index.js +6 -4
  56. package/dist/esm/search/index.js +6 -4
  57. package/dist/esm/{entry-2KUJYJBJ.js → search-worker-js-entry-BDMABBZV.js} +42 -20
  58. package/dist/esm/search-worker-js-entry-BDMABBZV.js.map +7 -0
  59. package/dist/esm/search-worker-ts-entry-3B5U6XER.js +22 -0
  60. package/dist/esm/search-worker-ts-entry-3B5U6XER.js.map +7 -0
  61. package/dist/esm/{skewb.sgs.json-MWONK6HT.js → skewb.sgs.json-F5FL7533.js} +4 -4
  62. package/dist/esm/{skewb.sgs.json-MWONK6HT.js.map → skewb.sgs.json-F5FL7533.js.map} +0 -0
  63. package/dist/esm/twisty/index.js +8 -3
  64. package/dist/esm/twisty/index.js.map +2 -2
  65. package/dist/esm/worker-inside-generated-string-AHMSHHSF.js +3674 -0
  66. package/dist/esm/worker-inside-generated-string-AHMSHHSF.js.map +7 -0
  67. package/dist/types/kpuzzle/KPuzzleDefinition.d.ts +1 -0
  68. package/dist/types/puzzles/events.d.ts +8 -0
  69. package/dist/types/puzzles/implementations/kilominx/index.d.ts +2 -0
  70. package/dist/types/puzzles/implementations/kilominx/kilominx.kpuzzle.svg.d.ts +1 -0
  71. package/dist/types/puzzles/implementations/redi-cube/index.d.ts +2 -0
  72. package/dist/types/puzzles/implementations/redi-cube/redi_cube.kpuzzle.json.d.ts +2 -0
  73. package/dist/types/puzzles/implementations/redi-cube/redi_cube.kpuzzle.svg.d.ts +1 -0
  74. package/dist/types/puzzles/index.d.ts +6 -11
  75. package/dist/types/search/inside/{entry.d.ts → search-worker-js-entry.d.ts} +0 -0
  76. package/dist/types/search/inside/{search-worker-entry-path-getter.d.ts → search-worker-ts-entry-path-getter.d.ts} +0 -0
  77. package/dist/types/search/inside/{search-worker-entry.d.ts → search-worker-ts-entry.d.ts} +0 -0
  78. package/dist/types/search/inside/solve/puzzles/kilominx.d.ts +2 -0
  79. package/dist/types/search/inside/solve/puzzles/redi_cube.d.ts +2 -0
  80. package/dist/types/search/inside/worker-guard.d.ts +3 -0
  81. package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
  82. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +2 -0
  83. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts +3 -1
  84. package/dist/types/vendor/xyzzy/fto-solver-original.d.ts +1 -56
  85. package/dist/types/vendor/xyzzy/kilosolver.d.ts +2 -140
  86. package/dist/types/vendor/xyzzy/redi_cube.d.ts +2 -0
  87. package/package.json +65 -70
  88. package/dist/esm/chunk-5O24MNND.js.map +0 -7
  89. package/dist/esm/chunk-FZJDXPAH.js.map +0 -7
  90. package/dist/esm/chunk-SNWS6JXI.js.map +0 -7
  91. package/dist/esm/chunk-Y32HHZUY.js.map +0 -7
  92. package/dist/esm/entry-2KUJYJBJ.js.map +0 -7
  93. package/dist/esm/search-worker-entry-ZJAXYGSH.js +0 -18
  94. package/dist/esm/search-worker-entry-ZJAXYGSH.js.map +0 -7
  95. package/dist/esm/worker-inside-generated-string-OBSDMXAS.js +0 -3447
  96. package/dist/esm/worker-inside-generated-string-OBSDMXAS.js.map +0 -7
  97. package/dist/types/search/esm-test-worker.d.ts +0 -3
  98. package/dist/types/vendor/xyzzy/rediscrambler.d.ts +0 -94
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/puzzles/implementations/redi-cube/redi_cube.kpuzzle.json.ts"],
4
+ "sourcesContent": ["import type { KPuzzleDefinition } from \"../../../kpuzzle\";\n\nexport const rediCubeKPuzzleDefinition: KPuzzleDefinition = {\n name: \"redi_cube\",\n orbits: {\n EDGES: { numPieces: 12, numOrientations: 2 },\n CORNERS: { numPieces: 8, numOrientations: 3 },\n },\n startStateData: {\n EDGES: {\n pieces: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n pieces: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n },\n moves: {\n F: {\n EDGES: {\n permutation: [8, 0, 2, 3, 4, 5, 6, 7, 1, 9, 10, 11],\n orientation: [0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [1, 0, 0, 0, 0, 0, 0, 0],\n },\n },\n x: {\n EDGES: {\n permutation: [4, 8, 0, 9, 6, 10, 2, 11, 5, 7, 1, 3],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [4, 0, 3, 5, 7, 6, 2, 1],\n orientation: [2, 1, 2, 1, 1, 2, 1, 2],\n },\n },\n y: {\n EDGES: {\n permutation: [1, 2, 3, 0, 5, 6, 7, 4, 10, 8, 11, 9],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [1, 2, 3, 0, 7, 4, 5, 6],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n },\n },\n experimentalDerivedMoves: {\n z: \"[x: y]\",\n UR: \"[y: F]\",\n U: \"[y2: F]\",\n UL: \"[y': F]\",\n D: \"[x: F]\",\n L: \"[z2: F]\",\n R: \"[x2: F]\",\n B: \"[y2 x: F]\",\n },\n};\n"],
5
+ "mappings": ";;;AAEO,IAAM,4BAA+C;AAAA,EAC1D,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,OAAO,EAAE,WAAW,IAAI,iBAAiB;AAAA,IACzC,SAAS,EAAE,WAAW,GAAG,iBAAiB;AAAA;AAAA,EAE5C,gBAAgB;AAAA,IACd,OAAO;AAAA,MACL,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,MAC3C,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA,IAEjD,SAAS;AAAA,MACP,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA,MAC9B,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA;AAAA,EAGvC,OAAO;AAAA,IACL,GAAG;AAAA,MACD,OAAO;AAAA,QACL,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QAChD,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA,MAEjD,SAAS;AAAA,QACP,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA,QACnC,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA;AAAA,IAGvC,GAAG;AAAA,MACD,OAAO;AAAA,QACL,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG;AAAA,QACjD,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA,MAEjD,SAAS;AAAA,QACP,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA,QACnC,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA;AAAA,IAGvC,GAAG;AAAA,MACD,OAAO;AAAA,QACL,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI;AAAA,QACjD,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA,MAEjD,SAAS;AAAA,QACP,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA,QACnC,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA;AAAA;AAAA,EAIzC,0BAA0B;AAAA,IACxB,GAAG;AAAA,IACH,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,160 @@
1
+ import "./chunk-WO2AXYFE.js";
2
+
3
+ // src/cubing/puzzles/implementations/redi-cube/redi_cube.kpuzzle.svg.ts
4
+ var rediCubeSVG = `<?xml version="1.0" encoding="UTF-8"?>
5
+ <svg width="546px" height="418px" viewBox="-20 -20 546 418" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
6
+ <title>redi-cube</title>
7
+ <g istroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g transform="translate(1.000000, 1.000000)" fill-rule="nonzero" stroke="#000000" stroke-width="1.6">
9
+ <g id="CORNERS-l0-o0" transform="translate(208.000000, 80.000000)" style="fill: #FFFFFF;">
10
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
11
+ </g>
12
+ <g id="CORNERS-l0-o1" transform="translate(256.000000, 128.000000)" style="fill: #FF0000;">
13
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
14
+ </g>
15
+ <g id="CORNERS-l0-o2" transform="translate(208.000000, 128.000000)" style="fill: #32CD32;">
16
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
17
+ </g>
18
+ <g id="CORNERS-l1-o0" transform="translate(208.000000, 0.000000)" style="fill: #FFFFFF;">
19
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
20
+ </g>
21
+ <g id="CORNERS-l1-o1" transform="translate(384.000000, 128.000000)" style="fill: #2266FF;">
22
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
23
+ </g>
24
+ <g id="CORNERS-l1-o2" transform="translate(336.000000, 128.000000)" style="fill: #FF0000;">
25
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
26
+ </g>
27
+ <g id="CORNERS-l2-o0" transform="translate(128.000000, 0.000000)" style="fill: #FFFFFF;">
28
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
29
+ </g>
30
+ <g id="CORNERS-l2-o1" transform="translate(0.000000, 128.000000)" style="fill: #FFA500;">
31
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
32
+ </g>
33
+ <g id="CORNERS-l2-o2" transform="translate(464.000000, 128.000000)" style="fill: #2266FF;">
34
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
35
+ </g>
36
+ <g id="CORNERS-l3-o0" transform="translate(128.000000, 80.000000)" style="fill: #FFFFFF;">
37
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
38
+ </g>
39
+ <g id="CORNERS-l3-o1" transform="translate(128.000000, 128.000000)" style="fill: #32CD32;">
40
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
41
+ </g>
42
+ <g id="CORNERS-l3-o2" transform="translate(80.000000, 128.000000)" style="fill: #FFA500;">
43
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
44
+ </g>
45
+ <g id="CORNERS-l4-o0" transform="translate(208.000000, 256.000000)" style="fill: #FFFF00;">
46
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
47
+ </g>
48
+ <g id="CORNERS-l4-o1" transform="translate(208.000000, 208.000000)" style="fill: #32CD32;">
49
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
50
+ </g>
51
+ <g id="CORNERS-l4-o2" transform="translate(256.000000, 208.000000)" style="fill: #FF0000;">
52
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
53
+ </g>
54
+ <g id="CORNERS-l5-o0" transform="translate(128.000000, 256.000000)" style="fill: #FFFF00;">
55
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
56
+ </g>
57
+ <g id="CORNERS-l5-o1" transform="translate(80.000000, 208.000000)" style="fill: #FFA500;">
58
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
59
+ </g>
60
+ <g id="CORNERS-l5-o2" transform="translate(128.000000, 208.000000)" style="fill: #32CD32;">
61
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
62
+ </g>
63
+ <g id="CORNERS-l6-o0" transform="translate(128.000000, 336.000000)" style="fill: #FFFF00;">
64
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
65
+ </g>
66
+ <g id="CORNERS-l6-o1" transform="translate(464.000000, 208.000000)" style="fill: #2266FF;">
67
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
68
+ </g>
69
+ <g id="CORNERS-l6-o2" transform="translate(0.000000, 208.000000)" style="fill: #FFA500;">
70
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
71
+ </g>
72
+ <g id="CORNERS-l7-o0" transform="translate(208.000000, 336.000000)" style="fill: #FFFF00;">
73
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
74
+ </g>
75
+ <g id="CORNERS-l7-o1" transform="translate(336.000000, 208.000000)" style="fill: #FF0000;">
76
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
77
+ </g>
78
+ <g id="CORNERS-l7-o2" transform="translate(384.000000, 208.000000)" style="fill: #2266FF;">
79
+ <rect id="Rectangle" x="0" y="0" width="40" height="40"></rect>
80
+ </g>
81
+ <g id="EDGES-l0-o0" transform="translate(168.000000, 60.000000)" style="fill: #FFFFFF;">
82
+ <polygon id="Rectangle" points="0 20 20 -8.8817842e-16 40 20 40 60 0 60"></polygon>
83
+ </g>
84
+ <g id="EDGES-l0-o1" transform="translate(168.000000, 128.000000)" style="fill: #32CD32;">
85
+ <polygon id="Rectangle" points="0 0 40 0 40 40 20 60 0 40"></polygon>
86
+ </g>
87
+ <g id="EDGES-l1-o0" transform="translate(188.000000, 40.000000)" style="fill: #FFFFFF;">
88
+ <polygon id="Rectangle" points="20 0 60 0 60 40 20 40 0 20"></polygon>
89
+ </g>
90
+ <g id="EDGES-l1-o1" transform="translate(296.000000, 128.000000)" style="fill: #FF0000;">
91
+ <polygon id="Rectangle" points="0 0 40 0 40 40 20 60 0 40"></polygon>
92
+ </g>
93
+ <g id="EDGES-l2-o0" transform="translate(168.000000, 0.000000)" style="fill: #FFFFFF;">
94
+ <polygon id="Rectangle" points="0 0 40 0 40 40 20 60 0 40"></polygon>
95
+ </g>
96
+ <g id="EDGES-l2-o1" transform="translate(424.000000, 128.000000)" style="fill: #2266FF;">
97
+ <polygon id="Rectangle" points="0 0 40 0 40 40 20 60 0 40"></polygon>
98
+ </g>
99
+ <g id="EDGES-l3-o0" transform="translate(128.000000, 40.000000)" style="fill: #FFFFFF;">
100
+ <polygon id="Rectangle" points="0 0 40 0 60 20 40 40 0 40"></polygon>
101
+ </g>
102
+ <g id="EDGES-l3-o1" transform="translate(40.000000, 128.000000)" style="fill: #FFA500;">
103
+ <polygon id="Rectangle" points="0 0 40 0 40 40 20 60 0 40"></polygon>
104
+ </g>
105
+ <g id="EDGES-l4-o0" transform="translate(168.000000, 256.000000)" style="fill: #FFFF00;">
106
+ <polygon id="Rectangle" points="0 0 40 0 40 40 20 60 0 40"></polygon>
107
+ </g>
108
+ <g id="EDGES-l4-o1" transform="translate(168.000000, 188.000000)" style="fill: #32CD32;">
109
+ <polygon id="Rectangle" points="0 20 20 0 40 20 40 60 0 60"></polygon>
110
+ </g>
111
+ <g id="EDGES-l5-o0" transform="translate(188.000000, 296.000000)" style="fill: #FFFF00;">
112
+ <polygon id="Rectangle" points="20 0 60 0 60 40 20 40 0 20"></polygon>
113
+ </g>
114
+ <g id="EDGES-l5-o1" transform="translate(296.000000, 188.000000)" style="fill: #FF0000;">
115
+ <polygon id="Rectangle" points="0 20 20 0 40 20 40 60 0 60"></polygon>
116
+ </g>
117
+ <g id="EDGES-l6-o0" transform="translate(168.000000, 316.000000)" style="fill: #FFFF00;">
118
+ <polygon id="Rectangle" points="0 20 20 -5.32907052e-14 40 20 40 60 0 60"></polygon>
119
+ </g>
120
+ <g id="EDGES-l6-o1" transform="translate(424.000000, 188.000000)" style="fill: #2266FF;">
121
+ <polygon id="Rectangle" points="0 20 20 -1.77635684e-15 40 20 40 60 0 60"></polygon>
122
+ </g>
123
+ <g id="EDGES-l7-o0" transform="translate(128.000000, 296.000000)" style="fill: #FFFF00;">
124
+ <polygon id="Rectangle" points="0 0 40 0 60 20 40 40 0 40"></polygon>
125
+ </g>
126
+ <g id="EDGES-l7-o1" transform="translate(40.000000, 188.000000)" style="fill: #FFA500;">
127
+ <polygon id="Rectangle" points="0 20 20 0 40 20 40 60 0 60"></polygon>
128
+ </g>
129
+ <g id="EDGES-l8-o0" transform="translate(188.000000, 168.000000)" style="fill: #32CD32;">
130
+ <polygon id="Rectangle" points="20 0 60 0 60 40 20 40 2.66453526e-14 20"></polygon>
131
+ </g>
132
+ <g id="EDGES-l8-o1" transform="translate(256.000000, 168.000000)" style="fill: #FF0000;">
133
+ <polygon id="Rectangle" points="0 0 40 0 60 20 40 40 0 40"></polygon>
134
+ </g>
135
+ <g id="EDGES-l9-o0" transform="translate(128.000000, 168.000000)" style="fill: #32CD32;">
136
+ <polygon id="Rectangle" points="0 0 40 0 60 20 40 40 0 40"></polygon>
137
+ </g>
138
+ <g id="EDGES-l9-o1" transform="translate(60.000000, 168.000000)" style="fill: #FFA500;">
139
+ <polygon id="Rectangle" points="20 0 60 0 60 40 20 40 0 20"></polygon>
140
+ </g>
141
+ <g id="EDGES-l10-o0" transform="translate(384.000000, 168.000000)" style="fill: #2266FF;">
142
+ <polygon id="Rectangle" points="0 0 40 0 60 20 40 40 0 40"></polygon>
143
+ </g>
144
+ <g id="EDGES-l10-o1" transform="translate(316.000000, 168.000000)" style="fill: #FF0000;">
145
+ <polygon id="Rectangle" points="20 0 60 0 60 40 20 40 5.32907052e-14 20"></polygon>
146
+ </g>
147
+ <g id="EDGES-l11-o0" transform="translate(444.000000, 168.000000)" style="fill: #2266FF;">
148
+ <polygon id="Rectangle" points="20 0 60 0 60 40 20 40 -3.55271368e-15 20"></polygon>
149
+ </g>
150
+ <g id="EDGES-l11-o1" transform="translate(0.000000, 168.000000)" style="fill: #FFA500;">
151
+ <polygon id="Rectangle" points="0 0 40 0 60 20 40 40 0 40"></polygon>
152
+ </g>
153
+ </g>
154
+ </g>
155
+ </svg>
156
+ `;
157
+ export {
158
+ rediCubeSVG
159
+ };
160
+ //# sourceMappingURL=redi_cube.kpuzzle.svg-BSHCMC2Z.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/puzzles/implementations/redi-cube/redi_cube.kpuzzle.svg.ts"],
4
+ "sourcesContent": ["export const rediCubeSVG = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg width=\"546px\" height=\"418px\" viewBox=\"-20 -20 546 418\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<title>redi-cube</title>\n<g istroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1.000000, 1.000000)\" fill-rule=\"nonzero\" stroke=\"#000000\" stroke-width=\"1.6\">\n <g id=\"CORNERS-l0-o0\" transform=\"translate(208.000000, 80.000000)\" style=\"fill: #FFFFFF;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l0-o1\" transform=\"translate(256.000000, 128.000000)\" style=\"fill: #FF0000;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l0-o2\" transform=\"translate(208.000000, 128.000000)\" style=\"fill: #32CD32;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l1-o0\" transform=\"translate(208.000000, 0.000000)\" style=\"fill: #FFFFFF;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l1-o1\" transform=\"translate(384.000000, 128.000000)\" style=\"fill: #2266FF;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l1-o2\" transform=\"translate(336.000000, 128.000000)\" style=\"fill: #FF0000;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l2-o0\" transform=\"translate(128.000000, 0.000000)\" style=\"fill: #FFFFFF;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l2-o1\" transform=\"translate(0.000000, 128.000000)\" style=\"fill: #FFA500;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l2-o2\" transform=\"translate(464.000000, 128.000000)\" style=\"fill: #2266FF;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l3-o0\" transform=\"translate(128.000000, 80.000000)\" style=\"fill: #FFFFFF;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l3-o1\" transform=\"translate(128.000000, 128.000000)\" style=\"fill: #32CD32;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l3-o2\" transform=\"translate(80.000000, 128.000000)\" style=\"fill: #FFA500;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l4-o0\" transform=\"translate(208.000000, 256.000000)\" style=\"fill: #FFFF00;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l4-o1\" transform=\"translate(208.000000, 208.000000)\" style=\"fill: #32CD32;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l4-o2\" transform=\"translate(256.000000, 208.000000)\" style=\"fill: #FF0000;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l5-o0\" transform=\"translate(128.000000, 256.000000)\" style=\"fill: #FFFF00;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l5-o1\" transform=\"translate(80.000000, 208.000000)\" style=\"fill: #FFA500;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l5-o2\" transform=\"translate(128.000000, 208.000000)\" style=\"fill: #32CD32;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l6-o0\" transform=\"translate(128.000000, 336.000000)\" style=\"fill: #FFFF00;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l6-o1\" transform=\"translate(464.000000, 208.000000)\" style=\"fill: #2266FF;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l6-o2\" transform=\"translate(0.000000, 208.000000)\" style=\"fill: #FFA500;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l7-o0\" transform=\"translate(208.000000, 336.000000)\" style=\"fill: #FFFF00;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l7-o1\" transform=\"translate(336.000000, 208.000000)\" style=\"fill: #FF0000;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"CORNERS-l7-o2\" transform=\"translate(384.000000, 208.000000)\" style=\"fill: #2266FF;\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"></rect>\n </g>\n <g id=\"EDGES-l0-o0\" transform=\"translate(168.000000, 60.000000)\" style=\"fill: #FFFFFF;\">\n <polygon id=\"Rectangle\" points=\"0 20 20 -8.8817842e-16 40 20 40 60 0 60\"></polygon>\n </g>\n <g id=\"EDGES-l0-o1\" transform=\"translate(168.000000, 128.000000)\" style=\"fill: #32CD32;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 40 40 20 60 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l1-o0\" transform=\"translate(188.000000, 40.000000)\" style=\"fill: #FFFFFF;\">\n <polygon id=\"Rectangle\" points=\"20 0 60 0 60 40 20 40 0 20\"></polygon>\n </g>\n <g id=\"EDGES-l1-o1\" transform=\"translate(296.000000, 128.000000)\" style=\"fill: #FF0000;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 40 40 20 60 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l2-o0\" transform=\"translate(168.000000, 0.000000)\" style=\"fill: #FFFFFF;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 40 40 20 60 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l2-o1\" transform=\"translate(424.000000, 128.000000)\" style=\"fill: #2266FF;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 40 40 20 60 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l3-o0\" transform=\"translate(128.000000, 40.000000)\" style=\"fill: #FFFFFF;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 60 20 40 40 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l3-o1\" transform=\"translate(40.000000, 128.000000)\" style=\"fill: #FFA500;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 40 40 20 60 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l4-o0\" transform=\"translate(168.000000, 256.000000)\" style=\"fill: #FFFF00;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 40 40 20 60 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l4-o1\" transform=\"translate(168.000000, 188.000000)\" style=\"fill: #32CD32;\">\n <polygon id=\"Rectangle\" points=\"0 20 20 0 40 20 40 60 0 60\"></polygon>\n </g>\n <g id=\"EDGES-l5-o0\" transform=\"translate(188.000000, 296.000000)\" style=\"fill: #FFFF00;\">\n <polygon id=\"Rectangle\" points=\"20 0 60 0 60 40 20 40 0 20\"></polygon>\n </g>\n <g id=\"EDGES-l5-o1\" transform=\"translate(296.000000, 188.000000)\" style=\"fill: #FF0000;\">\n <polygon id=\"Rectangle\" points=\"0 20 20 0 40 20 40 60 0 60\"></polygon>\n </g>\n <g id=\"EDGES-l6-o0\" transform=\"translate(168.000000, 316.000000)\" style=\"fill: #FFFF00;\">\n <polygon id=\"Rectangle\" points=\"0 20 20 -5.32907052e-14 40 20 40 60 0 60\"></polygon>\n </g>\n <g id=\"EDGES-l6-o1\" transform=\"translate(424.000000, 188.000000)\" style=\"fill: #2266FF;\">\n <polygon id=\"Rectangle\" points=\"0 20 20 -1.77635684e-15 40 20 40 60 0 60\"></polygon>\n </g>\n <g id=\"EDGES-l7-o0\" transform=\"translate(128.000000, 296.000000)\" style=\"fill: #FFFF00;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 60 20 40 40 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l7-o1\" transform=\"translate(40.000000, 188.000000)\" style=\"fill: #FFA500;\">\n <polygon id=\"Rectangle\" points=\"0 20 20 0 40 20 40 60 0 60\"></polygon>\n </g>\n <g id=\"EDGES-l8-o0\" transform=\"translate(188.000000, 168.000000)\" style=\"fill: #32CD32;\">\n <polygon id=\"Rectangle\" points=\"20 0 60 0 60 40 20 40 2.66453526e-14 20\"></polygon>\n </g>\n <g id=\"EDGES-l8-o1\" transform=\"translate(256.000000, 168.000000)\" style=\"fill: #FF0000;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 60 20 40 40 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l9-o0\" transform=\"translate(128.000000, 168.000000)\" style=\"fill: #32CD32;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 60 20 40 40 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l9-o1\" transform=\"translate(60.000000, 168.000000)\" style=\"fill: #FFA500;\">\n <polygon id=\"Rectangle\" points=\"20 0 60 0 60 40 20 40 0 20\"></polygon>\n </g>\n <g id=\"EDGES-l10-o0\" transform=\"translate(384.000000, 168.000000)\" style=\"fill: #2266FF;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 60 20 40 40 0 40\"></polygon>\n </g>\n <g id=\"EDGES-l10-o1\" transform=\"translate(316.000000, 168.000000)\" style=\"fill: #FF0000;\">\n <polygon id=\"Rectangle\" points=\"20 0 60 0 60 40 20 40 5.32907052e-14 20\"></polygon>\n </g>\n <g id=\"EDGES-l11-o0\" transform=\"translate(444.000000, 168.000000)\" style=\"fill: #2266FF;\">\n <polygon id=\"Rectangle\" points=\"20 0 60 0 60 40 20 40 -3.55271368e-15 20\"></polygon>\n </g>\n <g id=\"EDGES-l11-o1\" transform=\"translate(0.000000, 168.000000)\" style=\"fill: #FFA500;\">\n <polygon id=\"Rectangle\" points=\"0 0 40 0 60 20 40 40 0 40\"></polygon>\n </g>\n </g>\n</g>\n</svg>\n`;\n"],
5
+ "mappings": ";;;AAAO,IAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,10 +1,12 @@
1
1
  import {
2
2
  randomScrambleForEvent
3
- } from "../chunk-FZJDXPAH.js";
4
- import "../chunk-ASJ2DADD.js";
3
+ } from "../chunk-T2BDGTK3.js";
4
+ import "../chunk-BEXHMXCT.js";
5
+ import "../chunk-IVQ4ITE2.js";
6
+ import "../chunk-ME2QTCHN.js";
5
7
  import "../chunk-RENZB7QN.js";
6
- import "../chunk-SNWS6JXI.js";
7
- import "../chunk-Y32HHZUY.js";
8
+ import "../chunk-BOKO2BWT.js";
9
+ import "../chunk-FE3HTWQK.js";
8
10
  import "../chunk-EWRBHQFX.js";
9
11
  import "../chunk-WO2AXYFE.js";
10
12
  export {
@@ -6,13 +6,15 @@ import {
6
6
  solveMegaminx,
7
7
  solvePyraminx,
8
8
  solveSkewb
9
- } from "../chunk-FZJDXPAH.js";
9
+ } from "../chunk-T2BDGTK3.js";
10
+ import "../chunk-BEXHMXCT.js";
11
+ import "../chunk-IVQ4ITE2.js";
10
12
  import {
11
13
  random333State
12
- } from "../chunk-ASJ2DADD.js";
14
+ } from "../chunk-ME2QTCHN.js";
13
15
  import "../chunk-RENZB7QN.js";
14
- import "../chunk-SNWS6JXI.js";
15
- import "../chunk-Y32HHZUY.js";
16
+ import "../chunk-BOKO2BWT.js";
17
+ import "../chunk-FE3HTWQK.js";
16
18
  import "../chunk-EWRBHQFX.js";
17
19
  import "../chunk-WO2AXYFE.js";
18
20
  export {
@@ -1,21 +1,22 @@
1
- import {
2
- cachedMegaminxKPuzzleWithoutMO
3
- } from "./chunk-T5KQKRR3.js";
4
- import {
5
- sgsDataPyraminxFixedOrientation
6
- } from "./chunk-CYKV7QC5.js";
7
1
  import {
8
2
  sgsDataSkewbFixedCorner,
9
3
  skewbKPuzzleWithoutMOCached
10
- } from "./chunk-QMZKTP7F.js";
4
+ } from "./chunk-L73RWUDG.js";
11
5
  import {
12
6
  expose
13
- } from "./chunk-5O24MNND.js";
7
+ } from "./chunk-WDJDRVZZ.js";
8
+ import {
9
+ cachedMegaminxKPuzzleWithoutMO
10
+ } from "./chunk-LZGPOT2V.js";
11
+ import {
12
+ sgsDataPyraminxFixedOrientation
13
+ } from "./chunk-HTPDDD3Q.js";
14
14
  import "./chunk-27KJGD3S.js";
15
15
  import {
16
16
  countMoves
17
17
  } from "./chunk-U2TSTTDG.js";
18
- import "./chunk-KRL5KQQK.js";
18
+ import "./chunk-F5WNHV7V.js";
19
+ import "./chunk-IVQ4ITE2.js";
19
20
  import {
20
21
  addOrientationSuffix,
21
22
  initialize333,
@@ -25,7 +26,7 @@ import {
25
26
  random333Scramble,
26
27
  setIsInsideWorker,
27
28
  solve333
28
- } from "./chunk-ASJ2DADD.js";
29
+ } from "./chunk-ME2QTCHN.js";
29
30
  import {
30
31
  randomChoiceFactory,
31
32
  randomPermute,
@@ -33,10 +34,10 @@ import {
33
34
  } from "./chunk-RENZB7QN.js";
34
35
  import {
35
36
  puzzles
36
- } from "./chunk-SNWS6JXI.js";
37
+ } from "./chunk-BOKO2BWT.js";
37
38
  import {
38
39
  KState
39
- } from "./chunk-Y32HHZUY.js";
40
+ } from "./chunk-FE3HTWQK.js";
40
41
  import {
41
42
  Alg,
42
43
  AlgBuilder,
@@ -164,7 +165,7 @@ var TREMBLE_DEPTH = 3;
164
165
  var cachedTrembleSolver = null;
165
166
  async function getCachedTrembleSolver() {
166
167
  return cachedTrembleSolver || (cachedTrembleSolver = (async () => {
167
- const sgsCachedData = await (await import("./2x2x2.sgs.json-NUOQFJWU.js")).cachedData222();
168
+ const sgsCachedData = await (await import("./2x2x2.sgs.json-GQVTWF7L.js")).cachedData222();
168
169
  return new TrembleSolver(await puzzles["2x2x2"].kpuzzle(), sgsCachedData, "URFLBD".split(""));
169
170
  })());
170
171
  }
@@ -211,7 +212,7 @@ var randomSuffixes = [
211
212
  ];
212
213
  var cachedImport = null;
213
214
  function dynamicScramble444() {
214
- return cachedImport ?? (cachedImport = import("./444-solver-GNQ5BHCL.js"));
215
+ return cachedImport ?? (cachedImport = import("./444-solver-ZBJQH3QR.js"));
215
216
  }
216
217
  async function initialize444() {
217
218
  return (await dynamicScramble444()).initialize();
@@ -299,13 +300,22 @@ async function oriented555RandomMoves() {
299
300
 
300
301
  // src/cubing/search/inside/solve/puzzles/fto.ts
301
302
  async function randomFTOScramble() {
302
- const { randomFTOScrambleString } = await import("./fto.dynamic-A3AASYQ6.js");
303
+ mustBeInsideWorker();
304
+ const { randomFTOScrambleString } = await import("./fto.dynamic-ZH5IVUKX.js");
303
305
  return new Alg(await randomFTOScrambleString());
304
306
  }
305
307
 
308
+ // src/cubing/search/inside/solve/puzzles/kilominx.ts
309
+ async function randomKilominxScramble() {
310
+ mustBeInsideWorker();
311
+ const { getRandomKilominxScramble } = await import("./kilosolver-N6JM5PUY.js");
312
+ return getRandomKilominxScramble();
313
+ }
314
+
306
315
  // src/cubing/search/inside/solve/puzzles/master_tetraminx.ts
307
316
  async function randomMasterTetraminxScramble() {
308
317
  const { randomMasterTetraminxScrambleString } = await import("./master_tetraminx-solver-KBQJGW4A.js");
318
+ mustBeInsideWorker();
309
319
  return new Alg(await randomMasterTetraminxScrambleString());
310
320
  }
311
321
 
@@ -314,7 +324,7 @@ var TREMBLE_DEPTH2 = 2;
314
324
  var cachedTrembleSolver2 = null;
315
325
  async function getCachedTrembleSolver2() {
316
326
  return cachedTrembleSolver2 || (cachedTrembleSolver2 = (async () => {
317
- const sgs = await import("./megaminx.sgs.json-KKR4VPHV.js");
327
+ const sgs = await import("./megaminx.sgs.json-JXXOXGQE.js");
318
328
  const json = await sgs.cachedSGSDataMegaminx();
319
329
  return new TrembleSolver(await cachedMegaminxKPuzzleWithoutMO(), json, [
320
330
  "U",
@@ -347,7 +357,7 @@ var TREMBLE_DEPTH3 = 3;
347
357
  var cachedTrembleSolver3 = null;
348
358
  async function getCachedTrembleSolver3() {
349
359
  return cachedTrembleSolver3 || (cachedTrembleSolver3 = (async () => {
350
- const sgs = await import("./pyraminx.sgs.json-X37XL7MA.js");
360
+ const sgs = await import("./pyraminx.sgs.json-EHYGSC7B.js");
351
361
  const json = await sgs.sgsDataPyraminx();
352
362
  return new TrembleSolver(await puzzles.pyraminx.kpuzzle(), json, "RLUB".split(""));
353
363
  })());
@@ -359,18 +369,26 @@ async function solvePyraminx(state) {
359
369
  return alg;
360
370
  }
361
371
  async function randomPyraminxStateFixedOrientation() {
372
+ mustBeInsideWorker();
362
373
  return randomStateFromSGS(await puzzles.pyraminx.kpuzzle(), await sgsDataPyraminxFixedOrientation());
363
374
  }
364
375
  async function randomPyraminxScrambleFixedOrientation() {
365
376
  return solvePyraminx(await randomPyraminxStateFixedOrientation());
366
377
  }
367
378
 
379
+ // src/cubing/search/inside/solve/puzzles/redi_cube.ts
380
+ async function randomRediCubeScramble() {
381
+ mustBeInsideWorker();
382
+ const { getRandomRediCubeScramble } = await import("./redi_cube-E5F64NIQ.js");
383
+ return getRandomRediCubeScramble();
384
+ }
385
+
368
386
  // src/cubing/search/inside/solve/puzzles/skewb.ts
369
387
  var TREMBLE_DEPTH4 = 3;
370
388
  var cachedTrembleSolver4 = null;
371
389
  async function getCachedTrembleSolver4() {
372
390
  return cachedTrembleSolver4 || (cachedTrembleSolver4 = (async () => {
373
- const sgs = await import("./skewb.sgs.json-MWONK6HT.js");
391
+ const sgs = await import("./skewb.sgs.json-F5FL7533.js");
374
392
  const json = await sgs.sgsDataSkewb();
375
393
  return new TrembleSolver(await sgs.skewbKPuzzleWithoutMOCached(), json, "RLUB".split(""));
376
394
  })());
@@ -478,6 +496,10 @@ var insideAPI = {
478
496
  return measurePerf("randomFTOScramble", randomFTOScramble);
479
497
  case "master_tetraminx":
480
498
  return measurePerf("randomMasterTetraminxScramble", randomMasterTetraminxScramble);
499
+ case "kilominx":
500
+ return measurePerf("randomKilominxScramble", randomKilominxScramble);
501
+ case "redi_cube":
502
+ return measurePerf("randomRediCubeScramble", randomRediCubeScramble);
481
503
  default:
482
504
  throw new Error(`unsupported event: ${eventID}`);
483
505
  }
@@ -510,6 +532,6 @@ var insideAPI = {
510
532
  }
511
533
  };
512
534
 
513
- // src/cubing/search/inside/entry.js
535
+ // src/cubing/search/inside/search-worker-js-entry.js
514
536
  expose(insideAPI);
515
- //# sourceMappingURL=entry-2KUJYJBJ.js.map
537
+ //# sourceMappingURL=search-worker-js-entry-BDMABBZV.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/search/inside/solve/tremble.ts", "../../src/cubing/search/inside/solve/puzzles/2x2x2.ts", "../../src/cubing/search/inside/solve/puzzles/4x4x4.ts", "../../src/cubing/search/inside/solve/puzzles/big-cubes.ts", "../../src/cubing/search/inside/solve/puzzles/5x5x5.ts", "../../src/cubing/search/inside/solve/puzzles/fto.ts", "../../src/cubing/search/inside/solve/puzzles/kilominx.ts", "../../src/cubing/search/inside/solve/puzzles/master_tetraminx.ts", "../../src/cubing/search/inside/solve/puzzles/megaminx.ts", "../../src/cubing/search/inside/solve/puzzles/pyraminx.ts", "../../src/cubing/search/inside/solve/puzzles/redi_cube.ts", "../../src/cubing/search/inside/solve/puzzles/skewb.ts", "../../src/cubing/search/inside/solve/puzzles/sq1.ts", "../../src/cubing/search/inside/api.ts", "../../src/cubing/search/inside/search-worker-js-entry.js"],
4
+ "sourcesContent": ["import { Alg, AlgBuilder, Move, QuantumMove } from \"../../../alg\";\nimport type { KPuzzle, KTransformation } from \"../../../kpuzzle\";\nimport type { KState } from \"../../../kpuzzle/KState\";\nimport { experimentalCountMoves } from \"../../../notation\";\nimport { randomChoiceFactory } from \"../../../vendor/random-uint-below\";\nimport type { SGSAction, SGSCachedData } from \"./parseSGS\";\n\nconst DEFAULT_STAGE1_DEPTH_LIMIT = 2; // Moderately performant default.\n\nconst DOUBLECHECK_PLACED_PIECES = true;\nconst DEBUG = false;\n\n// TODO: Take moves instead of move names?\nfunction calculateMoves(\n kpuzzle: KPuzzle,\n moveNames: string[],\n): {\n move: Move;\n transformation: KTransformation;\n}[] {\n const searchMoves: {\n move: Move;\n transformation: KTransformation;\n }[] = [];\n // const identity = identityTransformation(def); // TODO\n // TODO: Make it easy to filter moves.\n moveNames.forEach(function (moveName) {\n const rootMove = new Move(moveName);\n if (rootMove.amount !== 1) {\n throw new Error(\n \"SGS cannot handle def moves with an amount other than 1 yet.\",\n );\n }\n let transformation = kpuzzle.identityTransformation();\n // eslint-disable-next-line no-constant-condition\n for (let i = 1; true; i++) {\n transformation = transformation.applyMove(rootMove);\n if (transformation.isIdentityTransformation()) {\n break;\n }\n searchMoves.push({\n move: rootMove.modified({ amount: i }),\n transformation,\n });\n }\n });\n return searchMoves;\n}\n\n// function badRandomMoves(moves: string[], ksp: KSolvePuzzle): KSolvePuzzleState {\n// // var sum = 0;\n// var scramble = \"\";\n// for (var i = 0; i < 1000; i++) {\n// scramble = scramble + \" \" + moves[Math.floor(moves.length * Math.random())];\n// }\n// // var sol = \"\";\n// const indexer = new TreeAlgIndexer(ksp, Alg.fromString(scramble));\n// return indexer.transformAtIndex(indexer.numMoves()) as any; // TODO\n// }\n\nexport class TrembleSolver {\n private searchMoves: {\n move: Move;\n transformation: KTransformation;\n }[];\n\n constructor(\n private kpuzzle: KPuzzle,\n private sgs: SGSCachedData,\n trembleMoveNames?: string[],\n ) {\n this.searchMoves = calculateMoves(\n this.kpuzzle,\n trembleMoveNames ?? Object.keys(this.kpuzzle.definition.moves),\n );\n }\n\n // public badRandomMoves(): KSolvePuzzleState {\n // return badRandomMoves(this.moves, this.ksp);\n // }\n\n public async solve(\n state: KState,\n stage1DepthLimit: number = DEFAULT_STAGE1_DEPTH_LIMIT,\n quantumMoveOrder?: (quantumMove: QuantumMove) => number,\n ): Promise<Alg> {\n const transformation = state.experimentalToTransformation();\n if (!transformation) {\n throw new Error(\n \"distinguishable pieces are not supported in tremble solver yt\",\n );\n }\n let bestAlg: Alg | null = null;\n let bestLen = 1000000;\n const recur = (\n recursiveTransformation: KTransformation, // TODO: Support KStatq1\n togo: number,\n sofar: Alg,\n ) => {\n // console.log(\"recur\");\n if (togo === 0) {\n const sgsAlg = this.sgsPhaseSolve(recursiveTransformation, bestLen);\n if (!sgsAlg) {\n return;\n }\n // console.log(\"sgs done!\", sofar.toString(), \"|\", sgsAlg.toString());\n const newAlg = sofar\n .concat(sgsAlg)\n .simplify({ collapseMoves: true, quantumMoveOrder });\n\n const len = experimentalCountMoves(newAlg);\n if (bestAlg === null || len < bestLen) {\n if (DEBUG) {\n console.log(`New best (${len} moves): ${newAlg.toString()}`);\n console.log(`Tremble moves are: ${sofar.toString()}`);\n }\n bestAlg = newAlg;\n bestLen = len;\n }\n return;\n }\n for (const searchMove of this.searchMoves) {\n recur(\n recursiveTransformation.applyTransformation(\n searchMove.transformation,\n ),\n togo - 1,\n sofar.concat([searchMove.move]),\n );\n }\n };\n for (let d = 0; d <= stage1DepthLimit; d++) {\n recur(transformation, d, new Alg());\n }\n if (bestAlg === null) {\n throw new Error(\"SGS search failed.\");\n }\n return bestAlg;\n }\n\n private sgsPhaseSolve(\n initialTransformation: KTransformation, // TODO: Handle KState\n bestLenSofar: number,\n ): Alg | null {\n // const pieceNames = \"UFR URB UBL ULF DRF DFL DLB DBR\".split(\" \");\n\n // function loggo(s: string) {\n // // console.warn(s);\n // // document.body.appendChild(document.createElement(\"div\")).textContent = s;\n // }\n\n // console.log(\"sgsPhaseSolve\");\n const algBuilder = new AlgBuilder();\n let transformation = initialTransformation;\n for (const step of this.sgs.ordering) {\n const cubieSeq = step.pieceOrdering;\n let key = \"\";\n const inverseTransformation = transformation.invert();\n for (let i = 0; i < cubieSeq.length; i++) {\n const loc = cubieSeq[i];\n const orbitName = loc.orbitName;\n const idx = loc.permutationIdx;\n key += ` ${inverseTransformation.transformationData[orbitName].permutation[idx]} ${inverseTransformation.transformationData[orbitName].orientation[idx]}`;\n }\n // console.log(key, step.lookup);\n const info = step.lookup[key];\n if (!info) {\n throw new Error(\"Missing algorithm in sgs or esgs?\");\n }\n algBuilder.experimentalPushAlg(info.alg);\n if (algBuilder.experimentalNumUnits() >= bestLenSofar) {\n return null;\n }\n transformation = transformation.applyTransformation(info.transformation);\n if (DOUBLECHECK_PLACED_PIECES) {\n for (let i = 0; i < cubieSeq.length; i++) {\n const location = cubieSeq[i];\n const orbitName = location.orbitName;\n const idx = location.permutationIdx;\n if (\n transformation.transformationData[orbitName].permutation[idx] !==\n idx ||\n transformation.transformationData[orbitName].orientation[idx] !== 0\n ) {\n throw new Error(\"bad SGS :-(\");\n }\n }\n }\n }\n return algBuilder.toAlg();\n }\n}\n\nexport async function randomStateFromSGS(\n kpuzzle: KPuzzle,\n sgs: SGSCachedData,\n): Promise<KState> {\n const randomChoice = await randomChoiceFactory<SGSAction>(); // TODO: make this sync by putting the factory into a TLA\n\n let transformation = kpuzzle.identityTransformation();\n for (const step of sgs.ordering) {\n const sgsAction = randomChoice(Object.values(step.lookup));\n transformation = transformation.applyTransformation(\n sgsAction.transformation,\n );\n }\n return transformation.toKState();\n}\n", "import type { Alg } from \"../../../../alg\";\nimport type { KPuzzle } from \"../../../../kpuzzle\";\nimport { KState } from \"../../../../kpuzzle\";\nimport { puzzles } from \"../../../../puzzles\";\nimport {\n randomPermute,\n randomUIntBelowFactory,\n} from \"../../../../vendor/random-uint-below\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\n\n// Empirical ly determined depth:\n// - \u224811 moves on average (as opposed to >13 moves for depth 2),\n// - in close to 40ms(on a MacBook Pro).\nconst TREMBLE_DEPTH = 3;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const sgsCachedData: SGSCachedData = await (\n await import(\"./2x2x2.sgs.json\")\n ).cachedData222();\n return new TrembleSolver(\n await puzzles[\"2x2x2\"].kpuzzle(),\n sgsCachedData,\n \"URFLBD\".split(\"\"),\n );\n })())\n );\n}\n\nexport async function preInitialize222(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\n// TODO: fix def consistency.\nexport async function solve222(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(state, TREMBLE_DEPTH, () => 4); // TODO: Attach quantum move order lookup to puzzle.\n return alg;\n}\n\n// TODO: factor out and test.\nasync function mutatingRandomizeOrbit(\n kpuzzle: KPuzzle,\n orbitName: string,\n state: KState,\n options?: { orientationSum?: number },\n): Promise<void> {\n const randomUIntBelow = await randomUIntBelowFactory();\n await randomPermute(state.stateData[orbitName].pieces);\n\n const orbitDef = kpuzzle.definition.orbits[orbitName];\n const ori = state.stateData[orbitName].orientation;\n\n let sum = 0;\n for (let i = 0; i < orbitDef.numPieces; i++) {\n const o = randomUIntBelow(orbitDef.numOrientations);\n ori[i] = o;\n sum += o;\n }\n\n // console.log(\"aaaa\", options && \"orientationSum\" in options);\n if (options && \"orientationSum\" in options) {\n // console.log(\"sfdsf\", options!.orientationSum),\n ori[0] =\n (((ori[0] + options.orientationSum! - sum) % orbitDef.numOrientations) +\n orbitDef.numOrientations) %\n orbitDef.numOrientations;\n }\n}\n\n// TODO: Use SGS?\nexport async function random222State(): Promise<KState> {\n const kpuzzle = await puzzles[\"2x2x2\"].kpuzzle();\n const stateCopy: KState = new KState(\n kpuzzle,\n JSON.parse(JSON.stringify(kpuzzle.startState().stateData)),\n ); // TODO\n await mutatingRandomizeOrbit(kpuzzle, \"CORNERS\", stateCopy, {\n orientationSum: 0,\n });\n return stateCopy;\n}\n\nexport async function random222Scramble(): Promise<Alg> {\n return await solve222(await random222State());\n}\n", "import type { Alg } from \"../../../../alg\";\nimport { addOrientationSuffix } from \"../addOrientationSuffix\";\n\nconst randomSuffixes = [\n [null, \"x\", \"x2\", \"x'\", \"z\", \"z'\"],\n [null, \"y\", \"y2\", \"y'\"],\n];\n\nlet cachedImport: Promise<\n typeof import(\"../../../../vendor/cstimer/src/js/scramble/444-solver\")\n> | null = null;\nfunction dynamicScramble444(): Promise<\n typeof import(\"../../../../vendor/cstimer/src/js/scramble/444-solver\")\n> {\n return (cachedImport ??= import(\n \"../../../../vendor/cstimer/src/js/scramble/444-solver\"\n ));\n}\n\nexport async function initialize444(): Promise<void> {\n return (await dynamicScramble444()).initialize();\n}\n\nexport async function random444Scramble(): Promise<Alg> {\n return (await dynamicScramble444()).random444Scramble();\n}\n\nexport async function random444OrientedScramble(): Promise<Alg> {\n return addOrientationSuffix(await random444Scramble(), randomSuffixes);\n}\n", "import { Alg, AlgBuilder, Move, QuantumMove } from \"../../../../alg\";\nimport {\n randomChoiceFactory,\n randomUIntBelowFactory,\n} from \"../../../../vendor/random-uint-below\";\n\nfunction numMoves(n: number): number {\n switch (n) {\n case 5:\n return 60;\n case 6:\n return 80;\n default:\n return 100;\n }\n}\n\nconst axesFaces = [\n [\"U\", \"D\"],\n [\"L\", \"R\"],\n [\"F\", \"B\"],\n];\nconst axesMovesCache: Map<number, QuantumMove[][]> = new Map();\nfunction cachedAxesMoves(n: number): QuantumMove[][] {\n const existing = axesMovesCache.get(n);\n if (existing) {\n return existing;\n }\n const axesMoves = [];\n for (const faces of axesFaces) {\n const axisMoveFamilies: QuantumMove[] = [];\n axesMoves.push(axisMoveFamilies);\n\n for (const face of faces) {\n axisMoveFamilies.push(new QuantumMove(face));\n if (n > 3) {\n axisMoveFamilies.push(new QuantumMove(`${face}w`));\n }\n for (let i = 3; i <= n / 2; i++) {\n axisMoveFamilies.push(new QuantumMove(`${face}w`, i));\n }\n }\n }\n axesMovesCache.set(n, axesMoves);\n return axesMoves;\n}\n\n// TODO: Document this algorithm and compare to TNoodle.\nexport async function bigCubeRandomMoves(n: number): Promise<Alg> {\n const randomUintBelow = await randomUIntBelowFactory();\n const randomChoice = await randomChoiceFactory<QuantumMove>();\n const randomNumChoice = randomChoice as any as (arr: Array<number>) => number; // TODO: Avoid needing multiple instantiations or recasting.\n\n const axesMoves = cachedAxesMoves(n);\n\n const cachedNumMoves = numMoves(n);\n const algBuilder = new AlgBuilder();\n let currentAxisIdx = 0;\n const currentAxisQuantumMoves = new Set();\n while (algBuilder.experimentalNumUnits() < cachedNumMoves) {\n const newAxisIdx = randomUintBelow(3);\n if (newAxisIdx !== currentAxisIdx) {\n currentAxisQuantumMoves.clear();\n }\n currentAxisIdx = newAxisIdx;\n\n const quantumMove = randomChoice(axesMoves[currentAxisIdx]);\n const quantumMoveStr = quantumMove.toString();\n if (currentAxisQuantumMoves.has(quantumMoveStr)) {\n // Skip duplicates and resample with replacement.\n continue;\n }\n currentAxisQuantumMoves.add(quantumMoveStr);\n algBuilder.push(new Move(quantumMove, randomNumChoice([1, 2, -1])));\n }\n\n return algBuilder.toAlg();\n}\n", "import type { Alg } from \"../../../../alg\";\nimport { addOrientationSuffix } from \"../addOrientationSuffix\";\nimport { bigCubeRandomMoves } from \"./big-cubes\";\n\nconst randomSuffixes = [\n [null, \"3Rw\", \"3Rw2\", \"3Rw'\", \"3Fw\", \"3Fw'\"],\n [null, \"3Dw\", \"3Dw2\", \"3Dw'\"],\n];\n\nexport async function oriented555RandomMoves(): Promise<Alg> {\n return addOrientationSuffix(await bigCubeRandomMoves(5), randomSuffixes);\n}\n", "import { Alg } from \"../../../../alg\";\nimport type { KState } from \"../../../../kpuzzle/KState\";\nimport { puzzles } from \"../../../../puzzles\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\n\nconst TREMBLE_DEPTH = 3;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const sgs = await import(\"./fto.dynamic\");\n const json: SGSCachedData = await sgs.sgsDataFTO();\n return new TrembleSolver(await puzzles[\"fto\"].kpuzzle(), json, [\n \"U\",\n \"R\",\n \"F\",\n \"L\",\n \"D\",\n \"B\",\n \"BR\",\n \"BL\",\n ]);\n })())\n );\n}\n\nexport async function preInitializeFTO(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\n// TODO: centers\nexport async function solveFTO(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(\n state,\n TREMBLE_DEPTH,\n () => 3, // TODO: Attach quantum move order lookup to puzzle.\n );\n return alg;\n}\n\nexport async function randomFTOScramble(): Promise<Alg> {\n mustBeInsideWorker();\n const { randomFTOScrambleString } = await import(\"./fto.dynamic\");\n return new Alg(await randomFTOScrambleString());\n}\n", "import type { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\n\nexport async function randomKilominxScramble(): Promise<Alg> {\n mustBeInsideWorker();\n const { getRandomKilominxScramble } = await import(\n \"../../../../vendor/xyzzy/kilosolver\"\n );\n return getRandomKilominxScramble();\n}\n", "import { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\n\nexport async function randomMasterTetraminxScramble(): Promise<Alg> {\n const { randomMasterTetraminxScrambleString } = await import(\n \"../../../../vendor/xyzzy/master_tetraminx-solver.js\"\n );\n mustBeInsideWorker();\n return new Alg(await randomMasterTetraminxScrambleString());\n}\n", "import type { Alg } from \"../../../../alg\";\nimport type { KStateData } from \"../../../../kpuzzle\";\nimport { KState } from \"../../../../kpuzzle\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\nimport { cachedMegaminxKPuzzleWithoutMO } from \"./megaminx.sgs.json\";\n\nconst TREMBLE_DEPTH = 2;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const sgs = await import(\"./megaminx.sgs.json\");\n const json: SGSCachedData = await sgs.cachedSGSDataMegaminx();\n return new TrembleSolver(await cachedMegaminxKPuzzleWithoutMO(), json, [\n \"U\",\n \"R\",\n \"F\",\n \"L\",\n \"BR\",\n \"BL\",\n \"FR\",\n \"FL\",\n \"DR\",\n \"DL\",\n \"B\",\n \"D\",\n ]);\n })())\n );\n}\n\nexport async function preInitializeMegaminx(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\n// TODO: centers\nexport async function solveMegaminx(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const stateDataWithoutMO: KStateData = JSON.parse(\n JSON.stringify(state.stateData),\n );\n stateDataWithoutMO.CENTERS.orientation = new Array(12).fill(0);\n const stateWithoutMO = new KState(\n await cachedMegaminxKPuzzleWithoutMO(),\n stateDataWithoutMO,\n );\n const alg = await trembleSolver.solve(\n stateWithoutMO,\n TREMBLE_DEPTH,\n () => 5, // TODO: Attach quantum move order lookup to puzzle.\n );\n return alg;\n}\n", "import type { Alg } from \"../../../../alg\";\nimport type { KState } from \"../../../../kpuzzle/KState\";\nimport { puzzles } from \"../../../../puzzles\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { randomStateFromSGS, TrembleSolver } from \"../tremble\";\nimport { sgsDataPyraminxFixedOrientation } from \"./pyraminx.sgs.json\";\n\nconst TREMBLE_DEPTH = 3;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const sgs = await import(\"./pyraminx.sgs.json\");\n const json: SGSCachedData = await sgs.sgsDataPyraminx();\n return new TrembleSolver(\n await puzzles.pyraminx.kpuzzle(),\n json,\n \"RLUB\".split(\"\"),\n );\n })())\n );\n}\n\nexport async function preInitializePyraminx(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\nexport async function solvePyraminx(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(state, TREMBLE_DEPTH, () => 3); // TODO: Attach quantum move order lookup to puzzle.\n return alg;\n}\n\nexport async function randomPyraminxStateFixedOrientation(): Promise<KState> {\n mustBeInsideWorker();\n // Note: this sets all center orientations to 0.\n return randomStateFromSGS(\n await puzzles.pyraminx.kpuzzle(),\n await sgsDataPyraminxFixedOrientation(),\n );\n}\n\nexport async function randomPyraminxScrambleFixedOrientation(): Promise<Alg> {\n return solvePyraminx(await randomPyraminxStateFixedOrientation());\n}\n", "import type { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\n\nexport async function randomRediCubeScramble(): Promise<Alg> {\n mustBeInsideWorker();\n const { getRandomRediCubeScramble } = await import(\n \"../../../../vendor/xyzzy/redi_cube\"\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return getRandomRediCubeScramble();\n}\n", "import type { Alg, QuantumMove } from \"../../../../alg\";\nimport { KState } from \"../../../../kpuzzle\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { randomStateFromSGS, TrembleSolver } from \"../tremble\";\nimport {\n sgsDataSkewbFixedCorner,\n skewbKPuzzleWithoutMOCached,\n} from \"./skewb.sgs.json\";\n\nconst TREMBLE_DEPTH = 3;\n\nlet cachedTrembleSolver: Promise<TrembleSolver> | null = null;\nasync function getCachedTrembleSolver(): Promise<TrembleSolver> {\n return (\n cachedTrembleSolver ||\n (cachedTrembleSolver = (async (): Promise<TrembleSolver> => {\n const sgs = await import(\"./skewb.sgs.json\");\n const json: SGSCachedData = await sgs.sgsDataSkewb();\n return new TrembleSolver(\n await sgs.skewbKPuzzleWithoutMOCached(),\n json,\n \"RLUB\".split(\"\"),\n );\n })())\n );\n}\n\nexport async function preInitializeSkewb(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\nfunction resetCenterOrientation(state: KState): KState {\n return new KState(state.kpuzzle, {\n CORNERS: state.stateData.CORNERS,\n CENTERS: {\n pieces: state.stateData.CENTERS.pieces,\n orientation: new Array(6).fill(0),\n },\n });\n}\n\n// TODO: fix def consistency.\nexport async function solveSkewb(state: KState): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(\n resetCenterOrientation(state),\n TREMBLE_DEPTH,\n (quantumMove: QuantumMove) => (quantumMove.family === \"y\" ? 4 : 3), // TODO: Attach quantum move order lookup to puzzle.\n );\n return alg;\n}\n\nexport async function randomSkewbFixedCornerState(): Promise<KState> {\n // Note: this sets all center orientations to 0.\n return randomStateFromSGS(\n await skewbKPuzzleWithoutMOCached(),\n await sgsDataSkewbFixedCorner(),\n );\n}\n\nexport async function randomSkewbFixedCornerScramble(): Promise<Alg> {\n return solveSkewb(await randomSkewbFixedCornerState());\n}\n", "import { Alg } from \"../../../../alg\";\n\nlet cachedImport: Promise<\n typeof import(\"../../../../vendor/sq12phase/sq1-solver\")\n> | null = null;\nfunction dynamicScrambleSq1(): Promise<\n typeof import(\"../../../../vendor/sq12phase/sq1-solver\")\n> {\n return (cachedImport ??= import(\"../../../../vendor/sq12phase/sq1-solver\"));\n}\n\nexport async function getRandomSquare1Scramble(): Promise<Alg> {\n return Alg.fromString(\n await (await dynamicScrambleSq1()).getRandomSquare1ScrambleString(),\n );\n}\n", "import type { Alg } from \"../../alg\";\nimport type { KStateData } from \"../../kpuzzle\";\nimport { KState } from \"../../kpuzzle\";\nimport { puzzles } from \"../../puzzles\";\nimport { setIsInsideWorker } from \"./inside-worker\";\nimport {\n preInitialize222,\n random222Scramble,\n solve222,\n} from \"./solve/puzzles/2x2x2\";\nimport {\n initialize333,\n random333FewestMovesScramble,\n random333OrientedScramble,\n random333Scramble,\n solve333,\n} from \"./solve/puzzles/3x3x3\";\nimport {\n initialize444,\n random444OrientedScramble,\n random444Scramble,\n} from \"./solve/puzzles/4x4x4\";\nimport { oriented555RandomMoves } from \"./solve/puzzles/5x5x5\";\nimport { bigCubeRandomMoves } from \"./solve/puzzles/big-cubes\";\nimport { randomFTOScramble } from \"./solve/puzzles/fto\";\nimport { randomKilominxScramble } from \"./solve/puzzles/kilominx\";\nimport { randomMasterTetraminxScramble } from \"./solve/puzzles/master_tetraminx\";\nimport { solveMegaminx } from \"./solve/puzzles/megaminx\";\nimport {\n randomPyraminxScrambleFixedOrientation,\n solvePyraminx,\n} from \"./solve/puzzles/pyraminx\";\nimport { randomRediCubeScramble } from \"./solve/puzzles/redi_cube\";\nimport {\n randomSkewbFixedCornerScramble,\n solveSkewb,\n} from \"./solve/puzzles/skewb\";\nimport { getRandomSquare1Scramble } from \"./solve/puzzles/sq1\";\n\nsetIsInsideWorker(true);\n\nlet DEBUG_MEASURE_PERF = true;\nexport function setDebugMeasurePerf(newDebugMeasurePerf: boolean): void {\n DEBUG_MEASURE_PERF = newDebugMeasurePerf;\n}\n\nfunction now() {\n return (typeof performance === \"undefined\" ? Date : performance).now();\n}\n\nasync function measurePerf<T>(\n name: string,\n f: () => T | Promise<T>,\n): Promise<T> {\n if (!DEBUG_MEASURE_PERF) {\n return f();\n }\n\n const start = now();\n const result = f();\n if ((result as any)?.then) {\n await result;\n }\n const end = now();\n console.warn(`${name}: ${Math.round(end - start)}ms`);\n return result;\n}\n\nexport const insideAPI = {\n initialize: async (eventID: string) => {\n switch (eventID) {\n case \"222\":\n return measurePerf(\"preInitialize222\", preInitialize222);\n case \"333\":\n case \"333oh\":\n case \"333ft\":\n return measurePerf(\"initialize333\", initialize333);\n case \"444\":\n return measurePerf(\"initialize444\", initialize444);\n default:\n throw new Error(`unsupported event: ${eventID}`);\n }\n },\n\n randomScrambleForEvent: async (eventID: string): Promise<Alg> => {\n switch (eventID) {\n case \"222\":\n return measurePerf(\"random222Scramble\", random222Scramble);\n case \"333\":\n case \"333oh\":\n case \"333ft\":\n return measurePerf(\"random333Scramble\", random333Scramble);\n case \"333fm\":\n return measurePerf(\n \"random333FewestMovesScramble\",\n random333FewestMovesScramble,\n );\n case \"333bf\":\n case \"333mb\":\n return measurePerf(\n \"random333OrientedScramble\",\n random333OrientedScramble,\n );\n case \"444\":\n return measurePerf(\"random444Scramble\", random444Scramble);\n case \"444bf\":\n return measurePerf(\n \"random444OrientedScramble\",\n random444OrientedScramble,\n );\n case \"555\":\n return measurePerf(\n \"bigCubeScramble(5)\",\n bigCubeRandomMoves.bind(bigCubeRandomMoves, 5),\n );\n case \"555bf\":\n return measurePerf(\"oriented555RandomMoves\", oriented555RandomMoves);\n case \"666\":\n return measurePerf(\n \"bigCubeScramble(6)\",\n bigCubeRandomMoves.bind(bigCubeRandomMoves, 6),\n );\n case \"777\":\n return measurePerf(\n \"bigCubeScramble(7)\",\n bigCubeRandomMoves.bind(bigCubeRandomMoves, 7),\n );\n case \"skewb\":\n return measurePerf(\n \"randomSkewbFixedCornerScramble\",\n randomSkewbFixedCornerScramble,\n );\n case \"pyram\":\n return measurePerf(\n \"randomPyraminxScrambleFixedOrientation\",\n randomPyraminxScrambleFixedOrientation,\n );\n case \"sq1\":\n return measurePerf(\n \"getRandomSquare1Scramble\",\n getRandomSquare1Scramble,\n );\n case \"fto\":\n return measurePerf(\"randomFTOScramble\", randomFTOScramble);\n case \"master_tetraminx\":\n return measurePerf(\n \"randomMasterTetraminxScramble\",\n randomMasterTetraminxScramble,\n );\n case \"kilominx\":\n return measurePerf(\"randomKilominxScramble\", randomKilominxScramble);\n case \"redi_cube\":\n return measurePerf(\"randomRediCubeScramble\", randomRediCubeScramble);\n default:\n throw new Error(`unsupported event: ${eventID}`);\n }\n },\n\n randomScrambleStringForEvent: async (eventID: string): Promise<string> => {\n return (await insideAPI.randomScrambleForEvent(eventID)).toString();\n },\n\n solve333ToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"3x3x3\"].kpuzzle(), stateData);\n return (await solve333(state)).toString();\n },\n\n solve222ToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"2x2x2\"].kpuzzle(), stateData);\n return (await solve222(state)).toString();\n },\n\n solveSkewbToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"skewb\"].kpuzzle(), stateData);\n return (await solveSkewb(state)).toString();\n },\n\n solvePyraminxToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"pyraminx\"].kpuzzle(), stateData);\n return (await solvePyraminx(state)).toString();\n },\n\n solveMegaminxToString: async (stateData: KStateData): Promise<string> => {\n const state = new KState(await puzzles[\"megaminx\"].kpuzzle(), stateData);\n return (await solveMegaminx(state)).toString();\n },\n\n setDebugMeasurePerf: async (measure: boolean): Promise<void> => {\n setDebugMeasurePerf(measure);\n },\n};\n\nexport type WorkerInsideAPI = typeof insideAPI;\n", "import { expose } from \"../../vendor/comlink-everywhere/inside\";\nimport { insideAPI } from \"./api\";\n\nexpose(insideAPI);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,22 @@
1
+ import {
2
+ nodeEndpointPort
3
+ } from "./chunk-WDJDRVZZ.js";
4
+ import {
5
+ exposeAPI
6
+ } from "./chunk-BEXHMXCT.js";
7
+ import "./chunk-IVQ4ITE2.js";
8
+ import "./chunk-WO2AXYFE.js";
9
+
10
+ // src/cubing/search/inside/search-worker-ts-entry.ts
11
+ if (exposeAPI.expose) {
12
+ (async () => {
13
+ await import("./search-worker-js-entry-BDMABBZV.js");
14
+ const messagePort = globalThis.postMessage ? globalThis : await nodeEndpointPort();
15
+ messagePort.postMessage("comlink-exposed");
16
+ })();
17
+ }
18
+ var WORKER_ENTRY_FILE_URL = import.meta.url;
19
+ export {
20
+ WORKER_ENTRY_FILE_URL
21
+ };
22
+ //# sourceMappingURL=search-worker-ts-entry-3B5U6XER.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/search/inside/search-worker-ts-entry.ts"],
4
+ "sourcesContent": ["import { nodeEndpointPort } from \"../../vendor/comlink-everywhere/inside/index\";\nimport { exposeAPI } from \"./worker-guard\";\n\nif (exposeAPI.expose) {\n (async () => {\n await import(\"./search-worker-js-entry.js\");\n\n // // Workaround for `node`\n const messagePort = (globalThis as any).postMessage\n ? globalThis\n : await nodeEndpointPort();\n messagePort.postMessage(\"comlink-exposed\");\n })();\n}\n\nexport const WORKER_ENTRY_FILE_URL = import.meta.url;\n"],
5
+ "mappings": ";;;;;;;;;;AAGA,IAAI,UAAU,QAAQ;AACpB,EAAC,aAAY;AACX,UAAM,OAAO;AAGb,UAAM,cAAe,WAAmB,cACpC,aACA,MAAM;AACV,gBAAY,YAAY;AAAA;AAAA;AAIrB,IAAM,wBAAwB,YAAY;",
6
+ "names": []
7
+ }
@@ -2,10 +2,10 @@ import {
2
2
  sgsDataSkewb,
3
3
  sgsDataSkewbFixedCorner,
4
4
  skewbKPuzzleWithoutMOCached
5
- } from "./chunk-QMZKTP7F.js";
5
+ } from "./chunk-L73RWUDG.js";
6
6
  import "./chunk-27KJGD3S.js";
7
- import "./chunk-KRL5KQQK.js";
8
- import "./chunk-Y32HHZUY.js";
7
+ import "./chunk-F5WNHV7V.js";
8
+ import "./chunk-FE3HTWQK.js";
9
9
  import "./chunk-EWRBHQFX.js";
10
10
  import "./chunk-WO2AXYFE.js";
11
11
  export {
@@ -13,4 +13,4 @@ export {
13
13
  sgsDataSkewbFixedCorner,
14
14
  skewbKPuzzleWithoutMOCached
15
15
  };
16
- //# sourceMappingURL=skewb.sgs.json-MWONK6HT.js.map
16
+ //# sourceMappingURL=skewb.sgs.json-F5FL7533.js.map
@@ -10,7 +10,7 @@ import {
10
10
  TwistyPropDerived,
11
11
  TwistyPropSource,
12
12
  proxy3D
13
- } from "../chunk-L3PZ4XAT.js";
13
+ } from "../chunk-TG5KP5IL.js";
14
14
  import {
15
15
  countAnimatedLeaves,
16
16
  countMoves
@@ -20,8 +20,8 @@ import {
20
20
  cubeAppearance,
21
21
  customPGPuzzleLoader,
22
22
  puzzles
23
- } from "../chunk-SNWS6JXI.js";
24
- import "../chunk-Y32HHZUY.js";
23
+ } from "../chunk-BOKO2BWT.js";
24
+ import "../chunk-FE3HTWQK.js";
25
25
  import {
26
26
  Alg,
27
27
  AlgBuilder,
@@ -1713,6 +1713,9 @@ var Twisty3DSceneWrapper = class extends ManagedCustomElement {
1713
1713
  }
1714
1714
  }
1715
1715
  async onPuzzle(inputs) {
1716
+ if (inputs[1] === "2D") {
1717
+ return;
1718
+ }
1716
1719
  __privateGet(this, _currentTwisty3DPuzzleWrapper)?.disconnect();
1717
1720
  const [scene, twisty3DPuzzleWrapper] = await __privateGet(this, _twisty3DStaleDropper).queue(Promise.all([
1718
1721
  this.scene(),
@@ -2654,6 +2657,8 @@ var VisualizationStrategyProp = class extends TwistyPropDerived {
2654
2657
  switch (inputs.puzzleID) {
2655
2658
  case "clock":
2656
2659
  case "square1":
2660
+ case "kilominx":
2661
+ case "redi_cube":
2657
2662
  return "2D";
2658
2663
  case "3x3x3":
2659
2664
  switch (inputs.visualizationRequest) {