cubing 0.60.1 → 0.61.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.
- package/dist/lib/cubing/alg/index.d.ts +2 -2
- package/dist/lib/cubing/bluetooth/index.d.ts +3 -3
- package/dist/lib/cubing/{bluetooth-puzzle-CN0X1-Rm.d.ts → bluetooth-puzzle-gTRbIRyj.d.ts} +1 -1
- package/dist/lib/cubing/chunks/{chunk-QDEGPHPS.js → chunk-FKKRSXUI.js} +2 -2
- package/dist/lib/cubing/chunks/chunk-FKKRSXUI.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-UWBMBZER.js → chunk-RKTO4CAU.js} +5 -5
- package/dist/lib/cubing/chunks/{chunk-UWBMBZER.js.map → chunk-RKTO4CAU.js.map} +2 -2
- package/dist/lib/cubing/chunks/{inside-7R2QE4L7.js → inside-PM6546BQ.js} +12 -12
- package/dist/lib/cubing/chunks/inside-PM6546BQ.js.map +7 -0
- package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-YZ3W3BZR.js → search-dynamic-solve-4x4x4-IE5W637Q.js} +2 -2
- package/dist/lib/cubing/chunks/search-worker-entry.js +1 -1
- package/dist/lib/cubing/chunks/{twsearch-SXB7BAMF.js → twips-UDB2NAAU.js} +37 -37
- package/dist/lib/cubing/chunks/twips-UDB2NAAU.js.map +7 -0
- package/dist/lib/cubing/chunks/twips_wasm_bg-TPXD7W4R-2BXON3G5.js +10 -0
- package/dist/lib/cubing/chunks/twips_wasm_bg-TPXD7W4R-2BXON3G5.js.map +7 -0
- package/dist/lib/cubing/{index-BFw0u55q.d.ts → index-CORXpckt.d.ts} +4 -4
- package/dist/lib/cubing/kpuzzle/index.d.ts +1 -1
- package/dist/lib/cubing/notation/index.d.ts +1 -1
- package/dist/lib/cubing/protocol/index.d.ts +1 -1
- package/dist/lib/cubing/puzzle-geometry/index.d.ts +2 -2
- package/dist/lib/cubing/puzzles/index.d.ts +1 -1
- package/dist/lib/cubing/scramble/index.d.ts +2 -2
- package/dist/lib/cubing/scramble/index.js +1 -1
- package/dist/lib/cubing/search/index.d.ts +7 -3
- package/dist/lib/cubing/search/index.js +12 -3
- package/dist/lib/cubing/search/index.js.map +3 -3
- package/dist/lib/cubing/stream/index.d.ts +2 -2
- package/dist/lib/cubing/twisty/index.d.ts +2 -2
- package/package.json +9 -7
- package/dist/lib/cubing/chunks/chunk-QDEGPHPS.js.map +0 -7
- package/dist/lib/cubing/chunks/inside-7R2QE4L7.js.map +0 -7
- package/dist/lib/cubing/chunks/twsearch-SXB7BAMF.js.map +0 -7
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-2J7XXRGI-WOU3FVAE.js +0 -10
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-2J7XXRGI-WOU3FVAE.js.map +0 -7
- package/dist/lib/cubing/{PuzzleLoader-ApHCdGgn.d.ts → KPattern-CU9Suh1T.d.ts} +20 -20
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-YZ3W3BZR.js.map → search-dynamic-solve-4x4x4-IE5W637Q.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as Alg,
|
|
1
|
+
import { s as Alg, v as KPuzzle, K as KPattern } from './KPattern-CU9Suh1T.js';
|
|
2
2
|
|
|
3
3
|
declare enum PrefetchLevel {
|
|
4
4
|
Auto = "auto",
|
|
@@ -13,13 +13,13 @@ declare function experimentalSolve2x2x2(pattern: KPattern): Promise<Alg>;
|
|
|
13
13
|
declare function solveSkewb(pattern: KPattern): Promise<Alg>;
|
|
14
14
|
declare function solvePyraminx(pattern: KPattern): Promise<Alg>;
|
|
15
15
|
declare function solveMegaminx(pattern: KPattern): Promise<Alg>;
|
|
16
|
-
interface
|
|
16
|
+
interface SolveTwipsOptions {
|
|
17
17
|
generatorMoves?: string[];
|
|
18
18
|
targetPattern?: KPattern;
|
|
19
19
|
minDepth?: number;
|
|
20
20
|
maxDepth?: number;
|
|
21
21
|
}
|
|
22
|
-
declare function
|
|
22
|
+
declare function solveTwips(kpuzzle: KPuzzle, pattern: KPattern, options?: SolveTwipsOptions): Promise<Alg>;
|
|
23
23
|
interface SearchOutsideDebugGlobals {
|
|
24
24
|
logPerf: boolean;
|
|
25
25
|
scramblePrefetchLevel: `${PrefetchLevel}`;
|
|
@@ -30,4 +30,4 @@ interface SearchOutsideDebugGlobals {
|
|
|
30
30
|
}
|
|
31
31
|
declare function setSearchDebug(options: Partial<SearchOutsideDebugGlobals>): void;
|
|
32
32
|
|
|
33
|
-
export { experimentalSolve3x3x3IgnoringCenters as a,
|
|
33
|
+
export { experimentalSolve3x3x3IgnoringCenters as a, setSearchDebug as b, solveMegaminx as c, solvePyraminx as d, experimentalSolve2x2x2 as e, solveSkewb as f, deriveScrambleForEvent as g, randomScrambleForEvent as r, solveTwips as s };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { K as KPattern, ab as KPatternData, ac as KPatternOrbitData, v as KPuzzle, ad as KPuzzleDefinition, D as KTransformation, ae as KTransformationData, af as KTransformationOrbitData } from '../
|
|
1
|
+
export { K as KPattern, ab as KPatternData, ac as KPatternOrbitData, v as KPuzzle, ad as KPuzzleDefinition, D as KTransformation, ae as KTransformationData, af as KTransformationOrbitData } from '../KPattern-CU9Suh1T.js';
|
|
2
2
|
import 'type-fest';
|
|
3
3
|
import 'three/src/Three.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as Perm } from '../
|
|
2
|
-
export { j as EXPERIMENTAL_PUZZLE_BASE_SHAPES, k as EXPERIMENTAL_PUZZLE_CUT_TYPES, i as ExperimentalPGNotation, l as ExperimentalPuzzleBaseShape, m as ExperimentalPuzzleCutDescription, n as ExperimentalPuzzleCutType, o as ExperimentalPuzzleDescription, a as ExperimentalPuzzleGeometryOptions, q as PuzzleGeometry, Q as Quat, S as StickerDat, b as StickerDatAxis, c as StickerDatFace, d as StickerDatSticker, g as getPG3DNamedPuzzles, e as getPuzzleDescriptionString, f as getPuzzleGeometryByDesc, h as getPuzzleGeometryByName, p as parseOptions, r as parsePuzzleDescription } from '../
|
|
1
|
+
import { P as Perm } from '../KPattern-CU9Suh1T.js';
|
|
2
|
+
export { j as EXPERIMENTAL_PUZZLE_BASE_SHAPES, k as EXPERIMENTAL_PUZZLE_CUT_TYPES, i as ExperimentalPGNotation, l as ExperimentalPuzzleBaseShape, m as ExperimentalPuzzleCutDescription, n as ExperimentalPuzzleCutType, o as ExperimentalPuzzleDescription, a as ExperimentalPuzzleGeometryOptions, q as PuzzleGeometry, Q as Quat, S as StickerDat, b as StickerDatAxis, c as StickerDatFace, d as StickerDatSticker, g as getPG3DNamedPuzzles, e as getPuzzleDescriptionString, f as getPuzzleGeometryByDesc, h as getPuzzleGeometryByName, p as parseOptions, r as parsePuzzleDescription } from '../KPattern-CU9Suh1T.js';
|
|
3
3
|
import 'type-fest';
|
|
4
4
|
import 'three/src/Three.js';
|
|
5
5
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as PuzzleID, t as PuzzleLoader, v as KPuzzle, q as PuzzleGeometry, E as ExperimentalStickering, w as StickeringMask, x as PuzzleSpecificSimplifyOptions, A as AlgLeaf, y as AlgTransformData } from '../
|
|
1
|
+
import { u as PuzzleID, t as PuzzleLoader, v as KPuzzle, q as PuzzleGeometry, E as ExperimentalStickering, w as StickeringMask, x as PuzzleSpecificSimplifyOptions, A as AlgLeaf, y as AlgTransformData } from '../KPattern-CU9Suh1T.js';
|
|
2
2
|
import 'type-fest';
|
|
3
3
|
import 'three/src/Three.js';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '../
|
|
2
|
-
export { g as experimentalDeriveScrambleForEvent, r as randomScrambleForEvent } from '../index-
|
|
1
|
+
import '../KPattern-CU9Suh1T.js';
|
|
2
|
+
export { g as experimentalDeriveScrambleForEvent, r as randomScrambleForEvent } from '../index-CORXpckt.js';
|
|
3
3
|
import 'type-fest';
|
|
4
4
|
import 'three/src/Three.js';
|
|
@@ -2,7 +2,7 @@ import "../chunks/chunk-NAPITA3L.js";
|
|
|
2
2
|
import {
|
|
3
3
|
deriveScrambleForEvent,
|
|
4
4
|
randomScrambleForEvent
|
|
5
|
-
} from "../chunks/chunk-
|
|
5
|
+
} from "../chunks/chunk-RKTO4CAU.js";
|
|
6
6
|
import "../chunks/chunk-OJI4YUWF.js";
|
|
7
7
|
import "../chunks/chunk-7GUL3OBQ.js";
|
|
8
8
|
import "../chunks/chunk-NX2Q6B7Y.js";
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { K as KPattern } from '../
|
|
2
|
-
|
|
1
|
+
import { K as KPattern } from '../KPattern-CU9Suh1T.js';
|
|
2
|
+
import { s as solveTwips } from '../index-CORXpckt.js';
|
|
3
|
+
export { e as experimentalSolve2x2x2, a as experimentalSolve3x3x3IgnoringCenters, b as setSearchDebug, c as solveMegaminx, d as solvePyraminx, f as solveSkewb } from '../index-CORXpckt.js';
|
|
3
4
|
import 'type-fest';
|
|
4
5
|
import 'three/src/Three.js';
|
|
5
6
|
|
|
6
7
|
declare function random333Pattern(): Promise<KPattern>;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
/** @deprecated */
|
|
10
|
+
declare const experimentalSolveTwsearch: typeof solveTwips;
|
|
11
|
+
|
|
12
|
+
export { solveTwips as experimentalSolveTwips, experimentalSolveTwsearch, random333Pattern };
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
solveMegaminx,
|
|
6
6
|
solvePyraminx,
|
|
7
7
|
solveSkewb,
|
|
8
|
-
|
|
9
|
-
} from "../chunks/chunk-
|
|
8
|
+
solveTwips
|
|
9
|
+
} from "../chunks/chunk-RKTO4CAU.js";
|
|
10
10
|
import {
|
|
11
11
|
random333Pattern
|
|
12
12
|
} from "../chunks/chunk-OJI4YUWF.js";
|
|
@@ -16,10 +16,19 @@ import "../chunks/chunk-WIZJQ7QS.js";
|
|
|
16
16
|
import "../chunks/chunk-RUSWM2KK.js";
|
|
17
17
|
import "../chunks/chunk-PSQEELP4.js";
|
|
18
18
|
import "../chunks/chunk-7D7ZUWUK.js";
|
|
19
|
+
|
|
20
|
+
// src/cubing/search/index.ts
|
|
21
|
+
var experimentalSolveTwsearch = (...args) => {
|
|
22
|
+
console.error(
|
|
23
|
+
"`experimentalSolveTwsearch(\u2026)` is deprecated. Please call `experimentalSolveTwips(\u2026)` instead."
|
|
24
|
+
);
|
|
25
|
+
return solveTwips(...args);
|
|
26
|
+
};
|
|
19
27
|
export {
|
|
20
28
|
experimentalSolve2x2x2,
|
|
21
29
|
experimentalSolve3x3x3IgnoringCenters,
|
|
22
|
-
|
|
30
|
+
solveTwips as experimentalSolveTwips,
|
|
31
|
+
experimentalSolveTwsearch,
|
|
23
32
|
random333Pattern,
|
|
24
33
|
setSearchDebug,
|
|
25
34
|
solveMegaminx,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [],
|
|
4
|
-
"sourcesContent": [],
|
|
5
|
-
"mappings": "",
|
|
3
|
+
"sources": ["../../../../src/cubing/search/index.ts"],
|
|
4
|
+
"sourcesContent": ["// TODO: handle centers properly.\nexport { random333Pattern } from \"./inside/solve/puzzles/3x3x3\";\nexport {\n experimentalSolve2x2x2,\n experimentalSolve3x3x3IgnoringCenters,\n setSearchDebug,\n solveMegaminx,\n solvePyraminx,\n solveSkewb,\n solveTwips as experimentalSolveTwips,\n} from \"./outside\";\n\nimport { solveTwips as experimentalSolveTwips } from \"./outside\";\n\n/** @deprecated */\nexport const experimentalSolveTwsearch: typeof experimentalSolveTwips = (\n ...args\n) => {\n console.error(\n \"`experimentalSolveTwsearch(\u2026)` is deprecated. Please call `experimentalSolveTwips(\u2026)` instead.\",\n );\n return experimentalSolveTwips(...args);\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAeO,IAAM,4BAA2D,IACnE,SACA;AACH,UAAQ;AAAA,IACN;AAAA,EACF;AACA,SAAO,WAAuB,GAAG,IAAI;AACvC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import '../
|
|
2
|
-
import { A as AlgLeafEvent, O as OrientationEvent } from '../bluetooth-puzzle-
|
|
1
|
+
import '../KPattern-CU9Suh1T.js';
|
|
2
|
+
import { A as AlgLeafEvent, O as OrientationEvent } from '../bluetooth-puzzle-gTRbIRyj.js';
|
|
3
3
|
import 'type-fest';
|
|
4
4
|
import 'three/src/Three.js';
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { z as AlgIndexer, v as KPuzzle, s as Alg, M as Move, B as MillisecondTimestamp, C as LeafIndex, K as KPattern, D as KTransformation, F as MillisecondDuration, L as LeafCount, w as StickeringMask } from '../
|
|
2
|
-
export { G as BackViewLayout, N as EXPERIMENTAL_PROP_NO_VALUE, E as ExperimentalStickering, u as PuzzleID, T as TwistyAlgEditor, I as TwistyAlgViewer, O as TwistyPlayer, J as TwistyPlayerConfig, R as TwizzleLink, V as VisualizationFormat, H as backViewLayouts } from '../
|
|
1
|
+
import { z as AlgIndexer, v as KPuzzle, s as Alg, M as Move, B as MillisecondTimestamp, C as LeafIndex, K as KPattern, D as KTransformation, F as MillisecondDuration, L as LeafCount, w as StickeringMask } from '../KPattern-CU9Suh1T.js';
|
|
2
|
+
export { G as BackViewLayout, N as EXPERIMENTAL_PROP_NO_VALUE, E as ExperimentalStickering, u as PuzzleID, T as TwistyAlgEditor, I as TwistyAlgViewer, O as TwistyPlayer, J as TwistyPlayerConfig, R as TwizzleLink, V as VisualizationFormat, H as backViewLayouts } from '../KPattern-CU9Suh1T.js';
|
|
3
3
|
import 'type-fest';
|
|
4
4
|
import 'three/src/Three.js';
|
|
5
5
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cubing",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"description": "A collection of JavaScript cubing libraries.",
|
|
5
5
|
"author": "The js.cubing.net team",
|
|
6
6
|
"type": "module",
|
|
@@ -66,9 +66,10 @@
|
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@biomejs/biome": "^2.3.1",
|
|
69
|
-
"@cubing/deploy": "
|
|
69
|
+
"@cubing/deploy": ">=0.4.6",
|
|
70
70
|
"@cubing/dev-config": "^0.5.0",
|
|
71
71
|
"@esm-bundle/chai": "^4.3.4-fix.0",
|
|
72
|
+
"@schemastore/package": "^0.0.10",
|
|
72
73
|
"@types/bun": "^1.2.23",
|
|
73
74
|
"@types/chai": "^5.0.0",
|
|
74
75
|
"@types/dom-speech-recognition": "^0.0.4",
|
|
@@ -82,9 +83,9 @@
|
|
|
82
83
|
"esbuild": "^0.25.0",
|
|
83
84
|
"jszip": "^3.10.1",
|
|
84
85
|
"mocha": "^10.7.3",
|
|
85
|
-
"path-class": "
|
|
86
|
+
"path-class": ">=0.8.1",
|
|
86
87
|
"playwright": "^1.47.2",
|
|
87
|
-
"printable-shell-command": "^
|
|
88
|
+
"printable-shell-command": "^2.7.0",
|
|
88
89
|
"tsup": "^8.3.0",
|
|
89
90
|
"typedoc": "^0.28.10",
|
|
90
91
|
"typescript": "^5.9.3"
|
|
@@ -160,7 +161,7 @@
|
|
|
160
161
|
"deploy": "make deploy",
|
|
161
162
|
"deploy-twizzle": "make deploy-twizzle",
|
|
162
163
|
"deploy-experiments": "make deploy-experiments",
|
|
163
|
-
"roll-vendored-
|
|
164
|
+
"roll-vendored-twips": "make roll-vendored-twips",
|
|
164
165
|
"update-cdn": "make update-cdn",
|
|
165
166
|
"update-create-cubing-app": "make update-create-cubing-app"
|
|
166
167
|
},
|
|
@@ -176,9 +177,10 @@
|
|
|
176
177
|
"rubik's"
|
|
177
178
|
],
|
|
178
179
|
"@cubing/deploy": {
|
|
179
|
-
"$schema": "./node_modules/@cubing/deploy/config-schema.json",
|
|
180
180
|
"https://experiments.cubing.net/cubing.js/": {
|
|
181
|
+
"username": "cubing_deploy",
|
|
181
182
|
"fromLocalDir": "./dist/sites/experiments.cubing.net/cubing.js/"
|
|
182
183
|
}
|
|
183
|
-
}
|
|
184
|
+
},
|
|
185
|
+
"$schema": "./node_modules/@cubing/deploy/config-schema.package.json"
|
|
184
186
|
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/cubing/vendor/mpl/twsearch/chunks/chunk-SGKLIGZK.js"],
|
|
4
|
-
"sourcesContent": ["// @ts-nocheck\n\n// Generated from `twsearch` v0.9.0\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++) table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == \"=\") - (base64[n - 2] == \"=\")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\nexport {\n __toBinary\n};\n//# sourceMappingURL=chunk-SGKLIGZK.js.map\n"],
|
|
5
|
-
"mappings": ";AAGA,IAAI,aAA8B,uBAAM;AACtC,MAAI,QAAQ,IAAI,WAAW,GAAG;AAC9B,WAAS,IAAI,GAAG,IAAI,IAAI,IAAK,OAAM,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI;AACvG,SAAO,CAAC,WAAW;AACjB,QAAI,IAAI,OAAO,QAAQ,QAAQ,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,KAAK,QAAQ,OAAO,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC;AAC/G,aAAS,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK;AAChC,UAAI,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC;AAC3E,UAAI,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC;AAC3E,YAAM,GAAG,IAAI,MAAM,IAAI,MAAM;AAC7B,YAAM,GAAG,IAAI,MAAM,IAAI,MAAM;AAC7B,YAAM,GAAG,IAAI,MAAM,IAAI;AAAA,IACzB;AACA,WAAO;AAAA,EACT;AACF,GAAG;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/cubing/search/inside/solve/puzzles/2x2x2.ts", "../../../../src/cubing/search/inside/solve/tremble.ts", "../../../../src/cubing/search/inside/solve/twsearch.ts", "../../../../src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.ts", "../../../../src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.ts", "../../../../src/cubing/search/inside/solve/puzzles/4x4x4.ts", "../../../../src/cubing/search/inside/solve/puzzles/dynamic/fto/index.ts", "../../../../src/cubing/search/inside/solve/puzzles/fto.ts", "../../../../src/cubing/search/inside/solve/puzzles/dynamic/kilominx/index.ts", "../../../../src/cubing/search/inside/solve/puzzles/kilominx.ts", "../../../../src/cubing/search/inside/solve/puzzles/dynamic/master_tetraminx/index.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/dynamic/sgs-unofficial/index.ts", "../../../../src/cubing/search/inside/solve/puzzles/redi_cube.ts", "../../../../src/cubing/search/inside/solve/puzzles/skewb.ts", "../../../../src/cubing/search/inside/api.ts", "../../../../src/cubing/search/inside/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { randomPermuteInPlace, randomUIntBelow } from \"random-uint-below\";\nimport type { Alg } from \"../../../../alg\";\nimport type { KPuzzle } from \"../../../../kpuzzle\";\nimport { KPattern } from \"../../../../kpuzzle\";\nimport { cube2x2x2, puzzles } from \"../../../../puzzles\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\nimport { wasmTwsearch } from \"../twsearch\";\nimport { searchDynamicSideEvents } from \"./dynamic/sgs-side-events\";\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 searchDynamicSideEvents\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(pattern: KPattern): Promise<Alg> {\n mustBeInsideWorker();\n return wasmTwsearch((await cube2x2x2.kpuzzle()).definition, pattern, {\n generatorMoves: \"UFLR\".split(\"\"),\n });\n}\n\n// TODO: factor out and test.\nfunction mutatingRandomizeOrbit(\n kpuzzle: KPuzzle,\n orbitName: string,\n pattern: KPattern,\n options?: { orientationSum?: number },\n): void {\n randomPermuteInPlace(pattern.patternData[orbitName].pieces);\n\n const orbitDefinition = kpuzzle.lookupOrbitDefinition(orbitName);\n const ori = pattern.patternData[orbitName].orientation;\n\n let sum = 0;\n for (let i = 0; i < orbitDefinition.numPieces; i++) {\n const o = randomUIntBelow(orbitDefinition.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) %\n orbitDefinition.numOrientations) +\n orbitDefinition.numOrientations) %\n orbitDefinition.numOrientations;\n }\n}\n\n// TODO: Use SGS?\nexport async function random222Pattern(): Promise<KPattern> {\n const kpuzzle = await puzzles[\"2x2x2\"].kpuzzle();\n const patternCopy: KPattern = new KPattern(\n kpuzzle,\n structuredClone(kpuzzle.defaultPattern().patternData),\n ); // TODO\n mutatingRandomizeOrbit(kpuzzle, \"CORNERS\", patternCopy, {\n orientationSum: 0,\n });\n return patternCopy;\n}\n", "import { randomChoice } from \"random-uint-below\";\nimport { Alg, AlgBuilder, Move, type QuantumMove } from \"../../../alg\";\nimport type { KPuzzle, KTransformation } from \"../../../kpuzzle\";\nimport type { KPattern } from \"../../../kpuzzle/KPattern\";\nimport { experimentalCountMoves } from \"../../../notation\";\nimport type { 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 for (const moveName of moveNames) {\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 for (let i = 1; ; 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 pattern: KPattern,\n stage1DepthLimit: number = DEFAULT_STAGE1_DEPTH_LIMIT,\n quantumMoveOrder?: (quantumMove: QuantumMove) => number,\n ): Promise<Alg> {\n const transformation = pattern.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.concat(sgsAlg).experimentalSimplify({\n cancel: {\n directional: \"any-direction\",\n puzzleSpecificModWrap: \"canonical-centered\",\n },\n puzzleSpecificSimplifyOptions: { quantumMoveOrder },\n });\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 KPattern\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].orientationDelta[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.experimentalNumAlgNodes() >= 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].orientationDelta[\n idx\n ] !== 0\n ) {\n throw new Error(\"bad SGS :-(\");\n }\n }\n }\n }\n return algBuilder.toAlg();\n }\n}\n\nexport function randomPatternFromSGS(\n kpuzzle: KPuzzle,\n sgs: SGSCachedData,\n): KPattern {\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.toKPattern();\n}\n", "import type { Alg } from \"../../../alg\";\nimport type {\n KPattern,\n KPatternData,\n KPuzzleDefinition,\n} from \"../../../kpuzzle\";\nimport { from } from \"../../../vendor/mit/p-lazy/p-lazy\";\n\nexport const twsearchPromise: Promise<\n typeof import(\"../../../vendor/mpl/twsearch\")\n> = from(async () => import(\"../../../vendor/mpl/twsearch\"));\n\nexport interface TwsearchOptions {\n // TODO: start prune depth?\n generatorMoves?: string[];\n targetPattern?: KPatternData;\n minDepth?: number;\n maxDepth?: number;\n}\n\nexport async function wasmTwsearch(\n def: KPuzzleDefinition,\n pattern: KPattern,\n options?: TwsearchOptions,\n): Promise<Alg> {\n const { wasmTwsearch } = await twsearchPromise;\n return wasmTwsearch(def, pattern, options);\n}\n\nexport async function wasmRandomScrambleForEvent(\n eventID: string,\n): Promise<Alg> {\n const { wasmRandomScrambleForEvent } = await twsearchPromise;\n return wasmRandomScrambleForEvent(eventID);\n}\n\nexport async function wasmDeriveScrambleForEvent(\n derivationSeedHex: string,\n derivationSaltHierarchy: string[],\n eventID: string,\n): Promise<Alg> {\n const { wasmDeriveScrambleForEvent } = await twsearchPromise;\n return wasmDeriveScrambleForEvent(\n derivationSeedHex,\n derivationSaltHierarchy,\n eventID,\n );\n}\n", "import { from } from \"../../../../../../vendor/mit/p-lazy/p-lazy\";\n\nexport const searchDynamicSideEvents = from<\n typeof import(\"./search-dynamic-sgs-side-events\")\n>(() => import(\"./search-dynamic-sgs-side-events\"));\n", "import { from } from \"../../../../../../vendor/mit/p-lazy/p-lazy\";\n\nexport const dynamic4x4x4Solver = from<\n typeof import(\"./search-dynamic-solve-4x4x4\")\n>(() => import(\"./search-dynamic-solve-4x4x4\"));\n", "import type { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport { addOrientationSuffix } from \"../addOrientationSuffix\";\nimport { dynamic4x4x4Solver } from \"./dynamic/4x4x4\";\n\nconst randomSuffixes = [\n [null, \"x\", \"x2\", \"x'\", \"z\", \"z'\"],\n [null, \"y\", \"y2\", \"y'\"],\n];\n\nexport async function initialize444(): Promise<void> {\n return (await dynamic4x4x4Solver).initialize();\n}\n\nexport async function random444Scramble(): Promise<Alg> {\n mustBeInsideWorker();\n return (await dynamic4x4x4Solver).random444Scramble();\n}\n\nexport async function random444OrientedScramble(): Promise<Alg> {\n return addOrientationSuffix(await random444Scramble(), randomSuffixes);\n}\n", "import { from } from \"../../../../../../vendor/mit/p-lazy/p-lazy\";\n\nexport const dynamicFTO = from<typeof import(\"./search-dynamic-solve-fto\")>(\n () => import(\"./search-dynamic-solve-fto\"),\n);\n", "import { Alg } from \"../../../../alg\";\nimport type { KPattern } from \"../../../../kpuzzle/KPattern\";\nimport { puzzles } from \"../../../../puzzles\";\nimport { from } from \"../../../../vendor/mit/p-lazy/p-lazy\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\nimport { dynamicFTO } from \"./dynamic/fto\";\n\nconst dynamic = from<\n typeof import(\"./dynamic/sgs-unofficial/search-dynamic-sgs-unofficial\")\n>(() => import(\"./dynamic/sgs-unofficial/search-dynamic-sgs-unofficial\"));\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 json: SGSCachedData = await (await dynamic).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(pattern: KPattern): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(\n pattern,\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 return new Alg(await (await dynamicFTO).getRandomFTOScramble());\n}\n", "import { from } from \"../../../../../../vendor/mit/p-lazy/p-lazy\";\n\nexport const dynamicKilominxSolver = from<\n typeof import(\"./search-dynamic-solve-kilominx\")\n>(() => import(\"./search-dynamic-solve-kilominx\"));\n", "import type { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport { dynamicKilominxSolver } from \"./dynamic/kilominx\";\n\nexport async function randomKilominxScramble(): Promise<Alg> {\n mustBeInsideWorker();\n return (await dynamicKilominxSolver).getRandomKilominxScramble();\n}\n", "import { from } from \"../../../../../../vendor/mit/p-lazy/p-lazy\";\n\nexport const dynamicMasterTetraminxSolver = from<\n typeof import(\"./search-dynamic-solve-master_tetraminx\")\n>(() => import(\"./search-dynamic-solve-master_tetraminx\"));\n", "import { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport { dynamicMasterTetraminxSolver } from \"./dynamic/master_tetraminx\";\n\nexport async function randomMasterTetraminxScramble(): Promise<Alg> {\n mustBeInsideWorker();\n return new Alg(\n await (\n await dynamicMasterTetraminxSolver\n ).randomMasterTetraminxScrambleString(),\n );\n}\n", "import type { Alg } from \"../../../../alg\";\nimport type { KPatternData } from \"../../../../kpuzzle\";\nimport { KPattern } from \"../../../../kpuzzle\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\nimport { searchDynamicSideEvents } from \"./dynamic/sgs-side-events\";\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 json: SGSCachedData = await (\n await searchDynamicSideEvents\n ).cachedSGSDataMegaminx();\n return new TrembleSolver(\n await (await searchDynamicSideEvents).cachedMegaminxKPuzzleWithoutMO(),\n json,\n [\"U\", \"R\", \"F\", \"L\", \"BR\", \"BL\", \"FR\", \"FL\", \"DR\", \"DL\", \"B\", \"D\"],\n );\n })())\n );\n}\n\nexport async function preInitializeMegaminx(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\n// TODO: centers\nexport async function solveMegaminx(pattern: KPattern): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const patternDataWithoutMO: KPatternData = structuredClone(\n pattern.patternData,\n );\n patternDataWithoutMO[\"CENTERS\"].orientation = new Array(12).fill(0);\n const patternWithoutMO = new KPattern(\n await (await searchDynamicSideEvents).cachedMegaminxKPuzzleWithoutMO(),\n patternDataWithoutMO,\n );\n const alg = await trembleSolver.solve(\n patternWithoutMO,\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 { KPattern } from \"../../../../kpuzzle/KPattern\";\nimport { puzzles } from \"../../../../puzzles\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { randomPatternFromSGS, TrembleSolver } from \"../tremble\";\nimport { searchDynamicSideEvents } from \"./dynamic/sgs-side-events\";\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 json: SGSCachedData = await (\n await searchDynamicSideEvents\n ).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(pattern: KPattern): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(pattern, TREMBLE_DEPTH, () => 3); // TODO: Attach quantum move order lookup to puzzle.\n return alg;\n}\n\nexport async function randomPyraminxPatternFixedOrientation(): Promise<KPattern> {\n mustBeInsideWorker();\n // Note: this sets all center orientations to 0.\n return randomPatternFromSGS(\n await puzzles[\"pyraminx\"].kpuzzle(),\n await (await searchDynamicSideEvents).sgsDataPyraminxFixedOrientation(),\n );\n}\n", "import { from } from \"../../../../../../vendor/mit/p-lazy/p-lazy\";\n\nexport const searchDynamicUnofficial = from<\n typeof import(\"./search-dynamic-sgs-unofficial\")\n>(() => import(\"./search-dynamic-sgs-unofficial\"));\n", "import type { Alg } from \"../../../../alg\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport { searchDynamicUnofficial } from \"./dynamic/sgs-unofficial\";\n\nexport async function randomRediCubeScramble(): Promise<Alg> {\n mustBeInsideWorker();\n return (await searchDynamicUnofficial).getRandomRediCubeScramble();\n}\n", "import type { Alg, QuantumMove } from \"../../../../alg\";\nimport { KPattern } from \"../../../../kpuzzle\";\nimport { mustBeInsideWorker } from \"../../inside-worker\";\nimport type { SGSCachedData } from \"../parseSGS\";\nimport { TrembleSolver } from \"../tremble\";\nimport { searchDynamicSideEvents } from \"./dynamic/sgs-side-events\";\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 json: SGSCachedData = await (\n await searchDynamicSideEvents\n ).sgsDataSkewb();\n return new TrembleSolver(\n await (await searchDynamicSideEvents).skewbKPuzzleWithoutMOCached(),\n json,\n \"RLUB\".split(\"\"),\n );\n })())\n );\n}\n\nexport async function preInitializeSkewb(): Promise<void> {\n await getCachedTrembleSolver();\n}\n\nasync function resetCenterOrientation(pattern: KPattern): Promise<KPattern> {\n return new KPattern(\n await (await searchDynamicSideEvents).skewbKPuzzleWithoutMOCached(),\n {\n CORNERS: pattern.patternData[\"CORNERS\"],\n CENTERS: {\n pieces: pattern.patternData[\"CENTERS\"].pieces,\n orientation: new Array(6).fill(0),\n },\n },\n );\n}\n\n// TODO: fix def consistency.\nexport async function solveSkewb(pattern: KPattern): Promise<Alg> {\n mustBeInsideWorker();\n const trembleSolver = await getCachedTrembleSolver();\n const alg = await trembleSolver.solve(\n await resetCenterOrientation(pattern),\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", "import type { Alg } from \"../../alg\";\nimport {\n KPattern,\n type KPatternData,\n KPuzzle,\n type KPuzzleDefinition,\n} from \"../../kpuzzle\";\nimport { puzzles } from \"../../puzzles\";\nimport { setIsInsideWorker } from \"./inside-worker\";\nimport { preInitialize222, solve222 } from \"./solve/puzzles/2x2x2\";\nimport {\n initialize333,\n random333OrientedScramble,\n random333Scramble,\n solve333,\n} from \"./solve/puzzles/3x3x3\";\nimport {\n initialize444,\n random444OrientedScramble,\n random444Scramble,\n} from \"./solve/puzzles/4x4x4\";\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 { solvePyraminx } from \"./solve/puzzles/pyraminx\";\nimport { randomRediCubeScramble } from \"./solve/puzzles/redi_cube\";\nimport { solveSkewb } from \"./solve/puzzles/skewb\";\nimport {\n type TwsearchOptions,\n wasmDeriveScrambleForEvent,\n wasmRandomScrambleForEvent,\n wasmTwsearch,\n} from \"./solve/twsearch\";\n\nconst IDLE_PREFETCH_TIMEOUT_MS = 1000;\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 options?: { isPrefetch?: boolean },\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(\n `${name}${options?.isPrefetch ? \" (prefetched)\" : \"\"}: ${Math.round(\n end - start,\n )}ms`,\n );\n return result;\n}\n\nconst prefetchPromises: Map<string, Promise<Alg>> = new Map();\n// This would just be a number, except `node` is extremely silly and returns an object instead.\n// https://nodejs.org/api/timers.html#settimeoutcallback-delay-args\nlet queuedPrefetchTimeoutID: ReturnType<typeof setTimeout> | null = null;\n\n// This is used to ensure only one scramble is running (and measured) at a time, as interleaving scrambles within a single worker isn't supported (yet).\n// Scrambles may perform async work (e.g. loading code), and this guard this prevents unintended interleaving.\nlet scrambleActivityLock: Promise<Alg>;\n\nasync function randomScrambleForEvent(\n eventID: string,\n options?: { isPrefetch?: boolean },\n): Promise<Alg> {\n return (scrambleActivityLock = (async () => {\n await scrambleActivityLock;\n function wasm(): Promise<Alg> {\n return measurePerf(\n `wasmRandomScrambleForEvent(${JSON.stringify(eventID)})`,\n () => wasmRandomScrambleForEvent(eventID),\n {\n isPrefetch: options?.isPrefetch,\n },\n );\n }\n\n switch (eventID) {\n // case \"333\":\n case \"222\":\n return (await wasm()).experimentalSimplify({\n puzzleSpecificSimplifyOptions: {\n quantumMoveOrder: () => 4,\n },\n });\n // case \"444\":\n case \"555\":\n case \"666\":\n case \"777\":\n // case \"333bf\":\n case \"333fm\":\n // case \"333oh\":\n case \"clock\":\n case \"minx\":\n case \"pyram\":\n case \"skewb\":\n case \"sq1\":\n // case \"444bf\":\n case \"555bf\":\n // case \"333mbf\":\n // case \"fto\":\n // case \"master_tetraminx\":\n // case \"kilominx\":\n // case \"redi_cube\":\n case \"baby_fto\":\n return wasm();\n case \"333\":\n case \"333oh\":\n case \"333ft\":\n return measurePerf(\"random333Scramble\", random333Scramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"333bf\":\n case \"333mbf\":\n return measurePerf(\n \"random333OrientedScramble\",\n random333OrientedScramble,\n );\n case \"444\":\n return measurePerf(\"random444Scramble\", random444Scramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"444bf\":\n return measurePerf(\n \"random444OrientedScramble\",\n random444OrientedScramble,\n );\n case \"fto\":\n return measurePerf(\"randomFTOScramble\", randomFTOScramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"master_tetraminx\":\n return measurePerf(\n \"randomMasterTetraminxScramble\",\n randomMasterTetraminxScramble,\n );\n case \"kilominx\":\n return measurePerf(\"randomKilominxScramble\", randomKilominxScramble, {\n isPrefetch: options?.isPrefetch,\n });\n case \"redi_cube\":\n return measurePerf(\"randomRediCubeScramble\", randomRediCubeScramble, {\n isPrefetch: options?.isPrefetch,\n });\n default:\n throw new Error(`unsupported event: ${eventID}`);\n }\n })());\n}\n\nexport enum PrefetchLevel {\n Auto = \"auto\",\n None = \"none\",\n Immediate = \"immediate\",\n}\n\nlet currentPrefetchLevel = PrefetchLevel.Auto;\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 setScramblePrefetchLevel(prefetchLevel: `${PrefetchLevel}`) {\n currentPrefetchLevel = prefetchLevel as PrefetchLevel;\n },\n\n randomScrambleForEvent: async (eventID: string): Promise<Alg> => {\n let promise = prefetchPromises.get(eventID);\n if (promise) {\n prefetchPromises.delete(eventID);\n } else {\n promise = randomScrambleForEvent(eventID);\n }\n if (currentPrefetchLevel !== PrefetchLevel.None) {\n promise.then(() => {\n // `queuedPrefetch` could be 0, but:\n // > Passing an invalid ID to clearTimeout() silently does nothing; no exception is thrown.\n // https://developer.mozilla.org/en-US/docs/Web/API/clearTimeout#notes\n if (queuedPrefetchTimeoutID) {\n clearTimeout(queuedPrefetchTimeoutID);\n }\n queuedPrefetchTimeoutID = setTimeout(\n () => {\n prefetchPromises.set(\n eventID,\n randomScrambleForEvent(eventID, {\n isPrefetch: true,\n }),\n );\n },\n currentPrefetchLevel === PrefetchLevel.Immediate\n ? 0\n : IDLE_PREFETCH_TIMEOUT_MS,\n );\n });\n }\n return promise;\n },\n\n randomScrambleStringForEvent: async (eventID: string): Promise<string> => {\n return (await insideAPI.randomScrambleForEvent(eventID)).toString();\n },\n\n deriveScrambleStringForEvent: async (\n derivationSeedHex: string,\n derivationSaltHierarchy: string[],\n eventID: string,\n ): Promise<string> => {\n const scramble = await measurePerf(\n `deriveScrambleForEvent(\u2026, ${JSON.stringify(eventID)})`,\n () =>\n wasmDeriveScrambleForEvent(\n derivationSeedHex,\n derivationSaltHierarchy,\n eventID,\n ),\n );\n return scramble.toString();\n },\n\n solve333ToString: async (patternData: KPatternData): Promise<string> => {\n const pattern = new KPattern(await puzzles[\"3x3x3\"].kpuzzle(), patternData);\n return (await solve333(pattern)).toString();\n },\n\n solve222ToString: async (patternData: KPatternData): Promise<string> => {\n const pattern = new KPattern(await puzzles[\"2x2x2\"].kpuzzle(), patternData);\n return (await solve222(pattern)).toString();\n },\n\n solveSkewbToString: async (patternData: KPatternData): Promise<string> => {\n const pattern = new KPattern(await puzzles[\"skewb\"].kpuzzle(), patternData);\n return (await solveSkewb(pattern)).toString();\n },\n\n solvePyraminxToString: async (patternData: KPatternData): Promise<string> => {\n const pattern = new KPattern(\n await puzzles[\"pyraminx\"].kpuzzle(),\n patternData,\n );\n return (await solvePyraminx(pattern)).toString();\n },\n\n solveMegaminxToString: async (patternData: KPatternData): Promise<string> => {\n const pattern = new KPattern(\n await puzzles[\"megaminx\"].kpuzzle(),\n patternData,\n );\n return (await solveMegaminx(pattern)).toString();\n },\n\n setDebugMeasurePerf: async (measure: boolean): Promise<void> => {\n setDebugMeasurePerf(measure);\n },\n\n solveTwsearchToString: async (\n def: KPuzzleDefinition,\n patternData: KPatternData,\n options?: TwsearchOptions,\n ): Promise<string> => {\n const kpuzzle = new KPuzzle(def);\n const pattern = new KPattern(kpuzzle, patternData);\n return (await wasmTwsearch(def, pattern, options)).toString();\n },\n};\n\nexport type WorkerInsideAPI = typeof insideAPI;\n", "import { expose } from \"../../vendor/apache/comlink-everywhere/inside\";\nimport { insideAPI } from \"./api\";\n\nexpose(insideAPI);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["wasmTwsearch", "wasmRandomScrambleForEvent", "wasmDeriveScrambleForEvent", "cachedTrembleSolver", "getCachedTrembleSolver", "getCachedTrembleSolver", "TREMBLE_DEPTH", "cachedTrembleSolver", "getCachedTrembleSolver", "getCachedTrembleSolver", "TREMBLE_DEPTH", "TREMBLE_DEPTH", "cachedTrembleSolver", "getCachedTrembleSolver", "getCachedTrembleSolver", "TREMBLE_DEPTH"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/cubing/vendor/src/wasm-package/index.ts", "../../../../src/cubing/vendor/.temp/rust-wasm/twsearch_wasm.js"],
|
|
4
|
-
"sourcesContent": ["import { Alg } from \"cubing/alg\";\nimport type { KPattern, KPuzzleDefinition } from \"cubing/kpuzzle\";\nimport {\n default as init,\n wasmDeriveScrambleForEvent as rawWasmDeriveScrambleForEvent,\n wasmFreeMemoryForAllScrambleFinders as rawWasmFreeMemoryForAllScrambleFinders,\n wasmRandomScrambleForEvent as rawWasmRandomScrambleForEvent,\n wasmTwsearch as rawWasmTwsearch,\n} from \"../../.temp/rust-wasm/twsearch_wasm\";\n\nlet cachedInitWrapper: Promise<void> | undefined;\nasync function initWrapper(): Promise<void> {\n // biome-ignore lint/suspicious/noAssignInExpressions: This is a caching pattern.\n await (cachedInitWrapper ??= (async () => {\n // TODO: keep this as a `.wasm` file (instead of embedding it in JS) as soon as `esbuild` supports it out of the box.\n // - https://github.com/evanw/esbuild/issues/795\n // - https://github.com/evanw/esbuild/issues/2866\n const wasmUint8Array = (\n await import(\"../../.temp/rust-wasm/twsearch_wasm_bg.wasm\")\n ).default as unknown as Uint8Array;\n await init({ module_or_path: wasmUint8Array.buffer as BufferSource });\n })());\n}\n\nexport async function wasmRandomScrambleForEvent(\n eventID: string,\n): Promise<Alg> {\n await initWrapper();\n return new Alg(rawWasmRandomScrambleForEvent(eventID));\n}\n\nexport async function wasmDeriveScrambleForEvent(\n hexDerivationSeed: string,\n derivationSaltHierarchy: string[],\n eventId: string,\n): Promise<Alg> {\n for (const derivationSalt of derivationSaltHierarchy) {\n if (derivationSalt.includes(\"/\")) {\n throw new Error(\"Derivation salts cannot contain slashes.\");\n }\n }\n await initWrapper();\n return new Alg(\n rawWasmDeriveScrambleForEvent(\n hexDerivationSeed,\n derivationSaltHierarchy.join(\"/\"),\n eventId,\n ),\n );\n}\n\nexport async function wasmTwsearch(\n kpuzzleDefinition: KPuzzleDefinition,\n searchPattern: KPattern,\n options?: { minDepth?: number },\n): Promise<Alg> {\n await initWrapper();\n return new Alg(\n rawWasmTwsearch(\n JSON.stringify(kpuzzleDefinition),\n // biome-ignore lint/complexity/useLiteralKeys: JSON field access\n JSON.stringify(searchPattern.toJSON()[\"patternData\"]),\n JSON.stringify(options),\n ),\n );\n}\n\nexport function wasmFreeMemoryForAllScrambleFinders(): number {\n return rawWasmFreeMemoryForAllScrambleFinders();\n}\n", "let wasm;\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n/**\n * @returns {number}\n */\nexport function wasmFreeMemoryForAllScrambleFinders() {\n const ret = wasm.wasmFreeMemoryForAllScrambleFinders();\n return ret >>> 0;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n/**\n * @param {string} hex_derivation_seed_str\n * @param {string} derivation_salt_hierarchy_str\n * @param {string} event_str\n * @returns {string}\n */\nexport function wasmDeriveScrambleForEvent(hex_derivation_seed_str, derivation_salt_hierarchy_str, event_str) {\n let deferred5_0;\n let deferred5_1;\n try {\n const ptr0 = passStringToWasm0(hex_derivation_seed_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(derivation_salt_hierarchy_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(event_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.wasmDeriveScrambleForEvent(ptr0, len0, ptr1, len1, ptr2, len2);\n var ptr4 = ret[0];\n var len4 = ret[1];\n if (ret[3]) {\n ptr4 = 0; len4 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);\n }\n}\n\n/**\n * @param {string} event_str\n * @returns {string}\n */\nexport function wasmRandomScrambleForEvent(event_str) {\n let deferred3_0;\n let deferred3_1;\n try {\n const ptr0 = passStringToWasm0(event_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.wasmRandomScrambleForEvent(ptr0, len0);\n var ptr2 = ret[0];\n var len2 = ret[1];\n if (ret[3]) {\n ptr2 = 0; len2 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * @param {string} kpuzzle_json\n * @param {string} search_pattern_json\n * @param {string} options_json\n * @returns {string}\n */\nexport function wasmTwsearch(kpuzzle_json, search_pattern_json, options_json) {\n let deferred5_0;\n let deferred5_1;\n try {\n const ptr0 = passStringToWasm0(kpuzzle_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(search_pattern_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(options_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.wasmTwsearch(ptr0, len0, ptr1, len1, ptr2, len2);\n var ptr4 = ret[0];\n var len4 = ret[1];\n if (ret[3]) {\n ptr4 = 0; len4 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);\n }\n}\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg___wbindgen_debug_string_df47ffb5e35e6763 = function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_is_undefined_2d472862bd29a478 = function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_throw_b855445ff6a94295 = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg_call_e762c39fa8ea36bf = function() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n };\n imports.wbg.__wbg_getRandomValues_1c61fac11405ffdc = function() { return handleError(function (arg0, arg1) {\n globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));\n }, arguments) };\n imports.wbg.__wbg_get_efcb449f58ec27c2 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {\n const ret = new Error();\n return ret;\n };\n imports.wbg.__wbg_new_no_args_ee98eee5275000a4 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return ret;\n };\n imports.wbg.__wbg_now_f5ba683d8ce2c571 = function(arg0) {\n const ret = arg0.now();\n return ret;\n };\n imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_89e1d9ac6a1b250e = function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_GLOBAL_THIS_8b530f326a9e48ac = function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_SELF_6fdf4b64710cc91b = function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbg_static_accessor_WINDOW_b45bfc5a37f6cfa2 = function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n };\n imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n };\n imports.wbg.__wbindgen_init_externref_table = function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n ;\n };\n\n return imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n wasm.__wbindgen_start();\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('twsearch_wasm_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["ptr", "wasmDeriveScrambleForEvent"]
|
|
7
|
-
}
|