@cubingcenter/scrambler 0.6.0 → 0.6.2
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/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/puzzles/cube3/solver/browser-loader.d.ts.map +1 -1
- package/dist/puzzles/cube3/solver/browser-loader.js +26 -1
- package/dist/puzzles/cube3/solver/generated/manifest.json +14 -0
- package/dist/puzzles/cube3/solver/generated/phase1-udco.bin +1 -0
- package/dist/puzzles/cube3/solver/generated/phase1-udeo.bin +1 -0
- package/dist/puzzles/cube3/solver/generated-assets.d.ts.map +1 -1
- package/dist/puzzles/cube3/solver/generated-assets.js +2 -1
- package/dist/puzzles/cube3/solver/node-loader.d.ts.map +1 -1
- package/dist/puzzles/cube3/solver/node-loader.js +22 -0
- package/dist/puzzles/cube3/solver/pair-browser-loader.d.ts +11 -0
- package/dist/puzzles/cube3/solver/pair-browser-loader.d.ts.map +1 -0
- package/dist/puzzles/cube3/solver/pair-browser-loader.js +93 -0
- package/dist/puzzles/cube3/solver/pair-node-loader.d.ts +6 -0
- package/dist/puzzles/cube3/solver/pair-node-loader.d.ts.map +1 -0
- package/dist/puzzles/cube3/solver/pair-node-loader.js +79 -0
- package/dist/puzzles/cube3/solver/pair-tables-types.d.ts +37 -0
- package/dist/puzzles/cube3/solver/pair-tables-types.d.ts.map +1 -0
- package/dist/puzzles/cube3/solver/pair-tables-types.js +29 -0
- package/dist/puzzles/cube3/solver/pair-tables.d.ts +29 -0
- package/dist/puzzles/cube3/solver/pair-tables.d.ts.map +1 -0
- package/dist/puzzles/cube3/solver/pair-tables.js +69 -0
- package/dist/puzzles/cube3/solver/phase1.d.ts +3 -1
- package/dist/puzzles/cube3/solver/phase1.d.ts.map +1 -1
- package/dist/puzzles/cube3/solver/phase1.js +32 -2
- package/dist/puzzles/cube3/solver/phase2.d.ts +3 -0
- package/dist/puzzles/cube3/solver/phase2.d.ts.map +1 -1
- package/dist/puzzles/cube3/solver/phase2.js +63 -5
- package/dist/puzzles/cube3/solver/tables.d.ts +16 -0
- package/dist/puzzles/cube3/solver/tables.d.ts.map +1 -1
- package/dist/puzzles/cube3/solver/tables.js +4 -2
- package/dist/puzzles/cube4/scrambler.d.ts +4 -1
- package/dist/puzzles/cube4/scrambler.d.ts.map +1 -1
- package/dist/puzzles/cube4/scrambler.js +101 -14
- package/dist-cjs/puzzles/cube3/solver/browser-loader.js +26 -1
- package/dist-cjs/puzzles/cube3/solver/generated/manifest.json +14 -0
- package/dist-cjs/puzzles/cube3/solver/generated/phase1-udco.bin +1 -0
- package/dist-cjs/puzzles/cube3/solver/generated/phase1-udeo.bin +1 -0
- package/dist-cjs/puzzles/cube3/solver/generated-assets.js +2 -1
- package/dist-cjs/puzzles/cube3/solver/node-loader.js +22 -0
- package/dist-cjs/puzzles/cube3/solver/pair-browser-loader.js +96 -0
- package/dist-cjs/puzzles/cube3/solver/pair-node-loader.js +85 -0
- package/dist-cjs/puzzles/cube3/solver/pair-tables-types.js +33 -0
- package/dist-cjs/puzzles/cube3/solver/pair-tables.js +107 -0
- package/dist-cjs/puzzles/cube3/solver/phase1.js +32 -2
- package/dist-cjs/puzzles/cube3/solver/phase2.js +63 -5
- package/dist-cjs/puzzles/cube3/solver/tables.js +4 -2
- package/dist-cjs/puzzles/cube4/scrambler.js +101 -15
- package/package.json +4 -1
package/dist/core/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type EventId = string;
|
|
2
2
|
export type SupportedEventId = "222" | "333" | "444" | "555" | "666" | "777" | "pymx" | "skwb" | "clck" | "mgmx" | "fto" | "sq1";
|
|
3
|
-
export type ScrambleQuality = "random-state" | "random-move" | "training" | "placeholder";
|
|
3
|
+
export type ScrambleQuality = "random-state" | "random-move" | "random-moves" | "training" | "placeholder";
|
|
4
4
|
export interface ScrambleOptions {
|
|
5
5
|
seed?: string | number;
|
|
6
6
|
metadata?: Record<string, unknown>;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAG7B,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,aAAa,GACb,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACrD,IAAI,IAAI,SAAS,EAAE,CAAC;IACpB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CAChC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAG7B,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,aAAa,GACb,cAAc,GACd,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACrD,IAAI,IAAI,SAAS,EAAE,CAAC;IACpB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-loader.d.ts","sourceRoot":"","sources":["../../../../src/puzzles/cube3/solver/browser-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"browser-loader.d.ts","sourceRoot":"","sources":["../../../../src/puzzles/cube3/solver/browser-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAMV,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAsDrB,wBAAgB,sBAAsB,IAAI,iBAAiB,GAAG,SAAS,CAEtE;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2CpF"}
|
|
@@ -48,10 +48,35 @@ export async function loadBrowserTables(baseUrl) {
|
|
|
48
48
|
slicePermutation: await fetchPruningTable(resolvedBase, manifest.pruningTables.slicePermutation),
|
|
49
49
|
cornerPermutationSlicePermutation: await fetchPruningTable(resolvedBase, manifest.pruningTables.cornerPermutationSlicePermutation),
|
|
50
50
|
udEdgePermutationSlicePermutation: await fetchPruningTable(resolvedBase, manifest.pruningTables.udEdgePermutationSlicePermutation)
|
|
51
|
-
}
|
|
51
|
+
},
|
|
52
|
+
jointTables: await fetchJointTables(resolvedBase, manifest.jointTables)
|
|
52
53
|
};
|
|
53
54
|
return browserTables;
|
|
54
55
|
}
|
|
56
|
+
async function fetchJointTables(baseUrl, entries) {
|
|
57
|
+
if (!entries?.udCo || !entries.udEo) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
const fetchJoint = async (entry) => {
|
|
61
|
+
const buffer = await fetchTableBuffer(baseUrl, TABLES_DIR, entry.file, {
|
|
62
|
+
cacheName: CACHE_NAME,
|
|
63
|
+
compressed: entry.compressed !== false
|
|
64
|
+
});
|
|
65
|
+
const expectedBytes = Math.ceil((entry.rangeA * entry.rangeB) / 2);
|
|
66
|
+
if (buffer.byteLength !== expectedBytes) {
|
|
67
|
+
throw new Error(`Invalid byte size for ${entry.file}.`);
|
|
68
|
+
}
|
|
69
|
+
const values = new Uint8Array(buffer);
|
|
70
|
+
if (checksum(values) !== entry.checksum) {
|
|
71
|
+
throw new Error(`Checksum mismatch for ${entry.file}.`);
|
|
72
|
+
}
|
|
73
|
+
return values;
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
jointUdCo: await fetchJoint(entries.udCo),
|
|
77
|
+
jointUdEo: await fetchJoint(entries.udEo)
|
|
78
|
+
};
|
|
79
|
+
}
|
|
55
80
|
async function fetchManifest(baseUrl) {
|
|
56
81
|
const url = `${baseUrl}/puzzles/cube3/solver/generated/manifest.json`;
|
|
57
82
|
const response = await fetch(url);
|
|
@@ -400,5 +400,19 @@
|
|
|
400
400
|
"checksum": 2840452350,
|
|
401
401
|
"maxDepth": 12
|
|
402
402
|
}
|
|
403
|
+
},
|
|
404
|
+
"jointTables": {
|
|
405
|
+
"udCo": {
|
|
406
|
+
"file": "phase1-udco.bin",
|
|
407
|
+
"rangeA": 495,
|
|
408
|
+
"rangeB": 2187,
|
|
409
|
+
"checksum": 1999233281
|
|
410
|
+
},
|
|
411
|
+
"udEo": {
|
|
412
|
+
"file": "phase1-udeo.bin",
|
|
413
|
+
"rangeA": 495,
|
|
414
|
+
"rangeB": 2048,
|
|
415
|
+
"checksum": 4017545214
|
|
416
|
+
}
|
|
403
417
|
}
|
|
404
418
|
}
|