cubing 0.32.1 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/esm/{chunk-JVM7R4NB.js → chunk-ILVYXTHD.js} +6 -7
  2. package/dist/esm/{chunk-JVM7R4NB.js.map → chunk-ILVYXTHD.js.map} +2 -2
  3. package/dist/esm/{chunk-PXAYHEVD.js → chunk-OEHG3BF3.js} +6 -5
  4. package/dist/esm/chunk-OEHG3BF3.js.map +7 -0
  5. package/dist/esm/scramble/index.js +1 -2
  6. package/dist/esm/search/index.js +2 -3
  7. package/dist/esm/{search-dynamic-sgs-unofficial-2V7VKWGI.js → search-dynamic-sgs-unofficial-LORSO7LF.js} +2 -4
  8. package/dist/esm/{search-dynamic-sgs-unofficial-2V7VKWGI.js.map → search-dynamic-sgs-unofficial-LORSO7LF.js.map} +1 -1
  9. package/dist/esm/{search-dynamic-solve-4x4x4-RCBTBQF3.js → search-dynamic-solve-4x4x4-BJLOSTR2.js} +3 -5
  10. package/dist/esm/{search-dynamic-solve-4x4x4-RCBTBQF3.js.map → search-dynamic-solve-4x4x4-BJLOSTR2.js.map} +1 -1
  11. package/dist/esm/{search-dynamic-solve-fto-PZSGTVO7.js → search-dynamic-solve-fto-L5CX2BTQ.js} +2 -5
  12. package/dist/esm/{search-dynamic-solve-fto-PZSGTVO7.js.map → search-dynamic-solve-fto-L5CX2BTQ.js.map} +1 -1
  13. package/dist/esm/{search-dynamic-solve-kilominx-VRIE77AN.js → search-dynamic-solve-kilominx-FBEDWIPR.js} +2 -4
  14. package/dist/esm/{search-dynamic-solve-kilominx-VRIE77AN.js.map → search-dynamic-solve-kilominx-FBEDWIPR.js.map} +1 -1
  15. package/dist/esm/{search-dynamic-solve-master_tetraminx-EPWI375K.js → search-dynamic-solve-master_tetraminx-4R5R7LC5.js} +2 -5
  16. package/dist/esm/{search-dynamic-solve-master_tetraminx-EPWI375K.js.map → search-dynamic-solve-master_tetraminx-4R5R7LC5.js.map} +1 -1
  17. package/dist/esm/{search-dynamic-solve-sq1-PXS5SUQJ.js → search-dynamic-solve-sq1-CBPKRTVA.js} +2 -5
  18. package/dist/esm/{search-dynamic-solve-sq1-PXS5SUQJ.js.map → search-dynamic-solve-sq1-CBPKRTVA.js.map} +1 -1
  19. package/dist/esm/{search-worker-js-entry-Y6RQKL2N.js → search-worker-js-entry-M6ECI442.js} +17 -17
  20. package/dist/esm/{search-worker-js-entry-Y6RQKL2N.js.map → search-worker-js-entry-M6ECI442.js.map} +4 -4
  21. package/dist/esm/{search-worker-ts-entry-Q6HRXMHV.js → search-worker-ts-entry-TZANLWZL.js} +2 -2
  22. package/dist/esm/{search-worker-ts-entry-Q6HRXMHV.js.map → search-worker-ts-entry-TZANLWZL.js.map} +0 -0
  23. package/dist/esm/twisty/index.js +253 -32
  24. package/dist/esm/twisty/index.js.map +4 -4
  25. package/dist/types/{TwizzleLink-b28e5d4f.d.ts → TwizzleLink-3b4382cf.d.ts} +57 -11
  26. package/dist/types/puzzles/index.d.ts +2 -2
  27. package/dist/types/twisty/index.d.ts +2 -2
  28. package/package.json +2 -2
  29. package/dist/esm/alg/index.d.ts +0 -1
  30. package/dist/esm/bluetooth/index.d.ts +0 -1
  31. package/dist/esm/chunk-5AILXG4K.js +0 -60
  32. package/dist/esm/chunk-5AILXG4K.js.map +0 -7
  33. package/dist/esm/chunk-PXAYHEVD.js.map +0 -7
  34. package/dist/esm/kpuzzle/index.d.ts +0 -1
  35. package/dist/esm/notation/index.d.ts +0 -1
  36. package/dist/esm/protocol/index.d.ts +0 -1
  37. package/dist/esm/puzzle-geometry/index.d.ts +0 -1
  38. package/dist/esm/puzzles/index.d.ts +0 -1
  39. package/dist/esm/scramble/index.d.ts +0 -1
  40. package/dist/esm/search/index.d.ts +0 -1
  41. package/dist/esm/stream/index.d.ts +0 -1
  42. package/dist/esm/twisty/index.d.ts +0 -1
  43. package/dist/types/.DS_Store +0 -0
@@ -255,6 +255,7 @@ declare class CurrentLeavesSimplifiedProp extends TwistyPropDerived<CurrentLeave
255
255
  }
256
256
 
257
257
  declare const smartTimestamps: {
258
+ auto: boolean;
258
259
  start: boolean;
259
260
  end: boolean;
260
261
  anchor: boolean;
@@ -271,6 +272,7 @@ interface DetailedTimelineInfoInputs {
271
272
  timestampRequest: TimestampRequest;
272
273
  timeRange: TimeRange;
273
274
  setupAnchor: SetupToLocation;
275
+ setupAlg: AlgWithIssues;
274
276
  }
275
277
  interface DetailedTimelineInfo {
276
278
  timestamp: MillisecondTimestamp;
@@ -500,6 +502,16 @@ declare class TwistyPlayerController {
500
502
  visitTwizzleLink(): Promise<void>;
501
503
  }
502
504
 
505
+ declare const darkModeThemes: {
506
+ light: boolean;
507
+ dark: boolean;
508
+ };
509
+ declare type DarkModeTheme = keyof typeof darkModeThemes;
510
+ declare type DarkModeThemeWithAuto = DarkModeTheme | "auto";
511
+ declare class DarkModeRequstProp extends SimpleTwistyPropSource<DarkModeThemeWithAuto> {
512
+ getDefaultValue(): DarkModeThemeWithAuto;
513
+ }
514
+
503
515
  declare const buttonCommands: {
504
516
  fullscreen: boolean;
505
517
  "jump-to-start": boolean;
@@ -514,16 +526,18 @@ declare class TwistyButtons extends ManagedCustomElement {
514
526
  #private;
515
527
  model?: TwistyPlayerModel | undefined;
516
528
  controller?: TwistyPlayerController | undefined;
517
- private fullscreenElement?;
529
+ private defaultFullscreenElement?;
518
530
  buttons: Record<ButtonCommand, TwistyButton> | null;
519
- constructor(model?: TwistyPlayerModel | undefined, controller?: TwistyPlayerController | undefined, fullscreenElement?: HTMLElement | undefined);
531
+ constructor(model?: TwistyPlayerModel | undefined, controller?: TwistyPlayerController | undefined, defaultFullscreenElement?: HTMLElement | undefined);
520
532
  connectedCallback(): void;
521
533
  onFullscreenButton(): Promise<void>;
522
534
  update(buttonAppearances: ButtonAppearances): Promise<void>;
535
+ updateDarkMode(darkMode: DarkModeTheme): void;
523
536
  }
524
537
  declare class TwistyButton extends ManagedCustomElement {
525
538
  #private;
526
539
  htmlButton: HTMLButtonElement;
540
+ updateDarkMode(darkMode: DarkModeTheme): void;
527
541
  connectedCallback(): void;
528
542
  setIcon(iconName: ButtonIcon): void;
529
543
  }
@@ -576,6 +590,11 @@ declare class TimeRangeProp extends TwistyPropDerived<{
576
590
  }): TimeRange;
577
591
  }
578
592
 
593
+ declare type FaceletScale = "auto" | number;
594
+ declare class FaceletScaleProp extends SimpleTwistyPropSource<FaceletScale> {
595
+ getDefaultValue(): FaceletScale;
596
+ }
597
+
579
598
  declare type FoundationDisplay = "auto" | "opaque" | "none";
580
599
  declare class FoundationDisplayProp extends SimpleTwistyPropSource<FoundationDisplay> {
581
600
  getDefaultValue(): FoundationDisplay;
@@ -623,11 +642,6 @@ declare class StickeringMaskRequestProp extends TwistyPropSource<StickeringMask
623
642
  derive(input: string | StickeringMask | null): StickeringMask | null;
624
643
  }
625
644
 
626
- declare type FaceletScale = "auto" | number;
627
- declare class FaceletScaleProp extends SimpleTwistyPropSource<FaceletScale> {
628
- getDefaultValue(): FaceletScale;
629
- }
630
-
631
645
  declare const dragInputModes: {
632
646
  auto: boolean;
633
647
  none: boolean;
@@ -653,6 +667,7 @@ declare class MovePressInputProp extends SimpleTwistyPropSource<MovePressInput>
653
667
 
654
668
  declare const backgroundThemes: {
655
669
  checkered: boolean;
670
+ "checkered-transparent": boolean;
656
671
  none: boolean;
657
672
  };
658
673
  declare type BackgroundTheme = keyof typeof backgroundThemes;
@@ -661,6 +676,17 @@ declare class BackgroundProp extends SimpleTwistyPropSource<BackgroundThemeWithA
661
676
  getDefaultValue(): BackgroundThemeWithAuto;
662
677
  }
663
678
 
679
+ interface DarkModePropInputs {
680
+ darkModeRequest: DarkModeThemeWithAuto;
681
+ }
682
+ declare class DarkModeProp extends TwistyPropDerived<DarkModePropInputs, DarkModeTheme> {
683
+ protected derive(inputs: DarkModePropInputs): DarkModeTheme;
684
+ }
685
+
686
+ declare class DOMElementReferenceProp extends SimpleTwistyPropSource<Element | null> {
687
+ getDefaultValue(): Element | null;
688
+ }
689
+
664
690
  declare type CoordinateDegrees = number;
665
691
  interface OrbitCoordinates {
666
692
  latitude: CoordinateDegrees;
@@ -692,9 +718,11 @@ declare class OrbitCoordinatesProp extends TwistyPropDerived<OrbitCoordinatesPro
692
718
  declare class TwistySceneModel {
693
719
  twistyPlayerModel: TwistyPlayerModel;
694
720
  background: BackgroundProp;
721
+ darkModeRequest: DarkModeRequstProp;
695
722
  dragInput: DragInputProp;
696
723
  foundationDisplay: FoundationDisplayProp;
697
724
  foundationStickerSpriteURL: URLProp;
725
+ fullscreenElement: DOMElementReferenceProp;
698
726
  hintFacelet: HintFaceletProp;
699
727
  hintStickerSpriteURL: URLProp;
700
728
  initialHintFaceletsAnimation: InitialHintFaceletsAnimationProp;
@@ -705,6 +733,7 @@ declare class TwistySceneModel {
705
733
  stickeringMaskRequest: StickeringMaskRequestProp;
706
734
  stickeringRequest: StickeringRequestProp;
707
735
  faceletScale: FaceletScaleProp;
736
+ darkMode: DarkModeProp;
708
737
  foundationStickerSprite: SpriteProp;
709
738
  hintStickerSprite: SpriteProp;
710
739
  orbitCoordinates: OrbitCoordinatesProp;
@@ -979,6 +1008,8 @@ declare abstract class TwistyPlayerSettable extends ManagedCustomElement {
979
1008
  get backView(): never;
980
1009
  set background(backgroundTheme: BackgroundThemeWithAuto);
981
1010
  get background(): never;
1011
+ set darkMode(darkMode: DarkModeThemeWithAuto);
1012
+ get darkMode(): never;
982
1013
  set controlPanel(newControlPanel: ControlPanelThemeWithAuto);
983
1014
  get controlPanel(): never;
984
1015
  set visualization(visualizationFormat: VisualizationFormatWithAuto);
@@ -1011,6 +1042,8 @@ declare abstract class TwistyPlayerSettable extends ManagedCustomElement {
1011
1042
  get experimentalSprite(): never;
1012
1043
  set experimentalHintSprite(url: string | URL);
1013
1044
  get experimentalHintSprite(): never;
1045
+ set fullscreenElement(element: Element | null);
1046
+ get fullscreenElement(): never;
1014
1047
  set experimentalInitialHintFaceletsAnimation(anim: InitialHintFaceletsAnimation);
1015
1048
  get experimentalInitialHintFaceletsAnimation(): never;
1016
1049
  set experimentalDragInput(dragInputMode: DragInputMode);
@@ -1066,7 +1099,8 @@ interface TwistyPlayerConfig {
1066
1099
  hintFacelets?: HintFaceletStyleWithAuto;
1067
1100
  experimentalStickering?: ExperimentalStickering;
1068
1101
  experimentalStickeringMaskOrbits?: StickeringMask | string;
1069
- background?: BackViewLayoutWithAuto;
1102
+ background?: BackgroundThemeWithAuto;
1103
+ darkMode?: DarkModeThemeWithAuto;
1070
1104
  controlPanel?: ControlPanelThemeWithAuto;
1071
1105
  backView?: BackViewLayoutWithAuto;
1072
1106
  experimentalInitialHintFaceletsAnimation?: InitialHintFaceletsAnimation;
@@ -1304,17 +1338,29 @@ declare global {
1304
1338
  /** @category Other Custom Elements */
1305
1339
  declare class TwizzleLink extends ManagedCustomElement {
1306
1340
  #private;
1341
+ private options?;
1307
1342
  twistyPlayer: TwistyPlayer | null;
1308
1343
  a: HTMLAnchorElement | null;
1309
- constructor();
1344
+ constructor(options?: {
1345
+ cdnForumTweaks?: boolean | undefined;
1346
+ darkMode: boolean;
1347
+ } | undefined);
1310
1348
  fallback(): void;
1311
1349
  connectedCallback(): Promise<void>;
1312
- addHeading(text: string): HTMLElement;
1350
+ addHeading(text: string, getTextToCopy?: () => Promise<string | null>): HTMLElement;
1313
1351
  }
1314
1352
  declare global {
1315
1353
  interface HTMLElementTagNameMap {
1316
1354
  "twizzle-link": TwizzleLink;
1317
1355
  }
1318
1356
  }
1357
+ declare class TwizzleForumLink extends TwizzleLink {
1358
+ constructor();
1359
+ }
1360
+ declare global {
1361
+ interface HTMLElementTagNameMap {
1362
+ "twizzle-forum-link": TwizzleForumLink;
1363
+ }
1364
+ }
1319
1365
 
1320
- export { AlgIndexer as A, BackViewLayout as B, Duration as D, ExperimentalStickering as E, MillisecondTimestamp as M, NO_VALUE as N, PuzzleID as P, StickeringMask as S, Timestamp as T, VisualizationFormat as V, PuzzleLoader as a, TwistyPlayer as b, TwistyAlgViewer as c, TwistyAlgEditor as d, TwistyPlayerConfig as e, backViewLayouts as f, TwizzleLink as g };
1366
+ export { AlgIndexer as A, BackViewLayout as B, Duration as D, ExperimentalStickering as E, MillisecondTimestamp as M, NO_VALUE as N, PuzzleID as P, StickeringMask as S, Timestamp as T, VisualizationFormat as V, PuzzleLoader as a, TwistyPlayer as b, TwistyAlgViewer as c, TwistyAlgEditor as d, TwistyPlayerConfig as e, backViewLayouts as f, TwizzleForumLink as g };
@@ -1,5 +1,5 @@
1
- import { P as PuzzleID, a as PuzzleLoader } from '../TwizzleLink-b28e5d4f.js';
2
- export { a as PuzzleLoader } from '../TwizzleLink-b28e5d4f.js';
1
+ import { P as PuzzleID, a as PuzzleLoader } from '../TwizzleLink-3b4382cf.js';
2
+ export { a as PuzzleLoader } from '../TwizzleLink-3b4382cf.js';
3
3
  import 'three';
4
4
  import '../Alg-8b4e9255.js';
5
5
  import '../parseAlg-2dd4194b.js';
@@ -1,5 +1,5 @@
1
- import { A as AlgIndexer, T as Timestamp, D as Duration, S as StickeringMask } from '../TwizzleLink-b28e5d4f.js';
2
- export { A as AlgIndexer, B as BackViewLayout, N as EXPERIMENTAL_PROP_NO_VALUE, M as ExperimentalMillisecondTimestamp, E as ExperimentalStickering, P as PuzzleID, d as TwistyAlgEditor, c as TwistyAlgViewer, b as TwistyPlayer, e as TwistyPlayerConfig, g as TwizzleLink, V as VisualizationFormat, f as backViewLayouts } from '../TwizzleLink-b28e5d4f.js';
1
+ import { A as AlgIndexer, T as Timestamp, D as Duration, S as StickeringMask } from '../TwizzleLink-3b4382cf.js';
2
+ export { A as AlgIndexer, B as BackViewLayout, N as EXPERIMENTAL_PROP_NO_VALUE, M as ExperimentalMillisecondTimestamp, E as ExperimentalStickering, P as PuzzleID, d as TwistyAlgEditor, c as TwistyAlgViewer, b as TwistyPlayer, e as TwistyPlayerConfig, g as TwizzleLink, V as VisualizationFormat, f as backViewLayouts } from '../TwizzleLink-3b4382cf.js';
3
3
  import { a as Alg, M as Move } from '../Alg-8b4e9255.js';
4
4
  import { a as KPuzzle, K as KState, e as KTransformation } from '../KState-0da22515.js';
5
5
  import 'three';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cubing",
3
- "version": "0.32.1",
3
+ "version": "0.33.0",
4
4
  "description": "A collection of JavaScript cubing libraries.",
5
5
  "author": "The js.cubing.net team",
6
6
  "type": "module",
@@ -70,7 +70,7 @@
70
70
  "@web/dev-server-esbuild": "^0.3.2",
71
71
  "@web/test-runner": "^0.14.0",
72
72
  "@web/test-runner-playwright": "^0.8.10",
73
- "barely-a-dev-server": "^0.3.6",
73
+ "barely-a-dev-server": "^0.4.0",
74
74
  "chai": "^4.3.6",
75
75
  "esbuild": "^0.15.3",
76
76
  "jszip": "^3.10.1",
@@ -1 +0,0 @@
1
- export * from "../../types/alg";
@@ -1 +0,0 @@
1
- export * from "../../types/bluetooth";
@@ -1,60 +0,0 @@
1
- // node_modules/random-uint-below/dist/esm/index.js
2
- var MAX_JS_PRECISE_INT = 9007199254740992;
3
- var UPPER_HALF_MULTIPLIER = 2097152;
4
- var LOWER_HALF_DIVIDER = 2048;
5
- function crypto() {
6
- const { crypto: crypto2 } = globalThis;
7
- if (!crypto2) {
8
- const { node: nodeVersion } = globalThis.process?.versions;
9
- if (nodeVersion && parseInt(nodeVersion.split(".")[0]) < 19) {
10
- throw new Error(
11
- "`node` 19 or above is required for randomization using `random-uint-below`"
12
- );
13
- }
14
- }
15
- return crypto2;
16
- }
17
- function random53BitNumber() {
18
- const arr = new Uint32Array(2);
19
- crypto().getRandomValues(arr);
20
- const upper = arr[0];
21
- const lower = arr[1];
22
- return Math.floor(upper * UPPER_HALF_MULTIPLIER) + Math.floor(lower / LOWER_HALF_DIVIDER);
23
- }
24
- function validateMax(max) {
25
- if (typeof max !== "number" || max < 0 || Math.floor(max) !== max) {
26
- throw new Error(
27
- "randomUIntBelow() not called with a positive integer value."
28
- );
29
- }
30
- if (max > MAX_JS_PRECISE_INT) {
31
- throw new Error(
32
- `Called randomUIntBelow() with max === ${max}, which is larger than JavaScript can handle with integer precision.`
33
- );
34
- }
35
- }
36
- function randomUIntBelow(max) {
37
- validateMax(max);
38
- let val = random53BitNumber();
39
- const maxUniformSamplingRange = Math.floor(MAX_JS_PRECISE_INT / max) * max;
40
- while (val >= maxUniformSamplingRange) {
41
- return val = random53BitNumber();
42
- }
43
- return val % max;
44
- }
45
- function randomChoice(arr) {
46
- return arr[randomUIntBelow(arr.length)];
47
- }
48
- async function randomPermuteInPlace(arr) {
49
- for (let i = 1; i < arr.length; i++) {
50
- const j = randomUIntBelow(i);
51
- [arr[i], arr[j]] = [arr[j], arr[i]];
52
- }
53
- }
54
-
55
- export {
56
- randomUIntBelow,
57
- randomChoice,
58
- randomPermuteInPlace
59
- };
60
- //# sourceMappingURL=chunk-5AILXG4K.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../node_modules/random-uint-below/dist/esm/index.js"],
4
- "sourcesContent": ["// src/random-uint-below/randomUIntBelow.ts\nvar MAX_JS_PRECISE_INT = 9007199254740992;\nvar UPPER_HALF_MULTIPLIER = 2097152;\nvar LOWER_HALF_DIVIDER = 2048;\nfunction crypto() {\n const { crypto: crypto2 } = globalThis;\n if (!crypto2) {\n const { node: nodeVersion } = globalThis.process?.versions;\n if (nodeVersion && parseInt(nodeVersion.split(\".\")[0]) < 19) {\n throw new Error(\n \"`node` 19 or above is required for randomization using `random-uint-below`\"\n );\n }\n }\n return crypto2;\n}\nfunction random53BitNumber() {\n const arr = new Uint32Array(2);\n crypto().getRandomValues(arr);\n const upper = arr[0];\n const lower = arr[1];\n return Math.floor(upper * UPPER_HALF_MULTIPLIER) + Math.floor(lower / LOWER_HALF_DIVIDER);\n}\nfunction validateMax(max) {\n if (typeof max !== \"number\" || max < 0 || Math.floor(max) !== max) {\n throw new Error(\n \"randomUIntBelow() not called with a positive integer value.\"\n );\n }\n if (max > MAX_JS_PRECISE_INT) {\n throw new Error(\n `Called randomUIntBelow() with max === ${max}, which is larger than JavaScript can handle with integer precision.`\n );\n }\n}\nfunction randomUIntBelow(max) {\n validateMax(max);\n let val = random53BitNumber();\n const maxUniformSamplingRange = Math.floor(MAX_JS_PRECISE_INT / max) * max;\n while (val >= maxUniformSamplingRange) {\n return val = random53BitNumber();\n }\n return val % max;\n}\n\n// src/random-uint-below/array-operations.ts\nfunction randomChoice(arr) {\n return arr[randomUIntBelow(arr.length)];\n}\nasync function randomPermuteInPlace(arr) {\n for (let i = 1; i < arr.length; i++) {\n const j = randomUIntBelow(i);\n [arr[i], arr[j]] = [arr[j], arr[i]];\n }\n}\nexport {\n randomChoice,\n randomPermuteInPlace,\n randomUIntBelow\n};\n"],
5
- "mappings": ";AACA,IAAI,qBAAqB;AACzB,IAAI,wBAAwB;AAC5B,IAAI,qBAAqB;AACzB,SAAS,SAAS;AAChB,QAAM,EAAE,QAAQ,QAAQ,IAAI;AAC5B,MAAI,CAAC,SAAS;AACZ,UAAM,EAAE,MAAM,YAAY,IAAI,WAAW,SAAS;AAClD,QAAI,eAAe,SAAS,YAAY,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI;AAC3D,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,oBAAoB;AAC3B,QAAM,MAAM,IAAI,YAAY,CAAC;AAC7B,SAAO,EAAE,gBAAgB,GAAG;AAC5B,QAAM,QAAQ,IAAI;AAClB,QAAM,QAAQ,IAAI;AAClB,SAAO,KAAK,MAAM,QAAQ,qBAAqB,IAAI,KAAK,MAAM,QAAQ,kBAAkB;AAC1F;AACA,SAAS,YAAY,KAAK;AACxB,MAAI,OAAO,QAAQ,YAAY,MAAM,KAAK,KAAK,MAAM,GAAG,MAAM,KAAK;AACjE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,MAAM,oBAAoB;AAC5B,UAAM,IAAI;AAAA,MACR,yCAAyC;AAAA,IAC3C;AAAA,EACF;AACF;AACA,SAAS,gBAAgB,KAAK;AAC5B,cAAY,GAAG;AACf,MAAI,MAAM,kBAAkB;AAC5B,QAAM,0BAA0B,KAAK,MAAM,qBAAqB,GAAG,IAAI;AACvE,SAAO,OAAO,yBAAyB;AACrC,WAAO,MAAM,kBAAkB;AAAA,EACjC;AACA,SAAO,MAAM;AACf;AAGA,SAAS,aAAa,KAAK;AACzB,SAAO,IAAI,gBAAgB,IAAI,MAAM;AACvC;AACA,eAAe,qBAAqB,KAAK;AACvC,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,UAAM,IAAI,gBAAgB,CAAC;AAC3B,KAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,EACpC;AACF;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
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/dynamic/3x3x3/index.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 { randomChoice } from \"random-uint-below\";\n\nexport function addOrientationSuffix(\n alg: Alg,\n suffixSpec: (null | string)[][],\n): Alg {\n const algBuilder = new AlgBuilder();\n algBuilder.experimentalPushAlg(alg);\n for (const suffix of suffixSpec) {\n const choice = randomChoice(suffix);\n if (choice !== null) {\n algBuilder.push(Move.fromString(choice));\n }\n }\n return algBuilder.toAlg();\n}\n", "import { from } from \"../../../../../../vendor/p-lazy/p-lazy\";\n\nexport const dynamic3x3x3min2phase = from<\n typeof import(\"./search-dynamic-solve-3x3x3\")\n>(() => import(\"./search-dynamic-solve-3x3x3\"));\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// 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 { randomChoice } from \"random-uint-below\";\nimport { mustBeInsideWorker } from \"../../../inside-worker\";\nimport { addOrientationSuffix } from \"../../addOrientationSuffix\";\nimport { dynamic3x3x3min2phase } from \"../dynamic/3x3x3\";\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(Alg.fromString(randomChoice(piece)));\n }\n if (!passesFilter(kpuzzle, state)) {\n return random333State();\n }\n return state;\n}\n\nexport async function solve333(s: KState): Promise<Alg> {\n mustBeInsideWorker();\n return Alg.fromString(\n (await dynamic3x3x3min2phase).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 dynamic3x3x3min2phase).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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A;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,EACF;AAAA,EACA;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,EACF;AAAA,EACA;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,EACF;AAAA,EACA;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,EACF;AAAA,EACA;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,EACF;AAAA,EACA;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,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;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,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;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,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,CAAC,IAAI,mCAAmC,iCAAiC;AAC3E;;;ACvRA,eAAsB,iBAAkC;AACtD,QAAM,UAAU,MAAM,QAAQ,SAAS,QAAQ;AAC/C,MAAI,QAAQ,QAAQ,WAAW;AAC/B,aAAW,SAAS,UAAU;AAC5B,YAAQ,MAAM,SAAS,IAAI,WAAW,aAAa,KAAK,CAAC,CAAC;AAAA,EAC5D;AACA,MAAI,CAAC,aAAa,SAAS,KAAK,GAAG;AACjC,WAAO,eAAe;AAAA,EACxB;AACA,SAAO;AACT;AAEA,eAAsB,SAAS,GAAyB;AACtD,qBAAmB;AACnB,SAAO,IAAI;AAAA,KACR,MAAM,uBAAuB,WAAW,iBAAiB,CAAC,CAAC;AAAA,EAC9D;AACF;AAEA,eAAsB,oBAAkC;AACtD,SAAO,SAAS,MAAM,eAAe,CAAC;AACxC;AAEA,eAAsB,gBAA+B;AACnD,GAAC,MAAM,uBAAuB,WAAW;AAC3C;AAEA,IAAM,iBAAiB;AAAA,EACrB,CAAC,MAAM,MAAM,OAAO,OAAO,MAAM,KAAK;AAAA,EACtC,CAAC,MAAM,MAAM,OAAO,KAAK;AAC3B;AAEA,eAAsB,4BAA0C;AAC9D,SAAO,qBAAqB,MAAM,kBAAkB,GAAG,cAAc;AACvE;AAEA,IAAM,WAAW,IAAI,IAAI,SAAS;AAClC,eAAsB,+BAA6C;AACjE,QAAM,aAAa,IAAI,WAAW;AAClC,QAAM,qBAAqB,MAAM,kBAAkB;AACnD,aAAW,oBAAoB,QAAQ;AAEvC,aAAW,oBAAoB,kBAAkB;AACjD,aAAW,oBAAoB,QAAQ;AACvC,SAAO,WAAW,MAAM;AAC1B;",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- export * from "../../types/kpuzzle";
@@ -1 +0,0 @@
1
- export * from "../../types/notation";
@@ -1 +0,0 @@
1
- export * from "../../types/protocol";
@@ -1 +0,0 @@
1
- export * from "../../types/puzzle-geometry";
@@ -1 +0,0 @@
1
- export * from "../../types/puzzles";
@@ -1 +0,0 @@
1
- export * from "../../types/scramble";
@@ -1 +0,0 @@
1
- export * from "../../types/search";
@@ -1 +0,0 @@
1
- export * from "../../types/stream";
@@ -1 +0,0 @@
1
- export * from "../../types/twisty";
Binary file