@cubingcenter/scrambler 0.6.0 → 0.6.1

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 (50) hide show
  1. package/dist/core/types.d.ts +1 -1
  2. package/dist/core/types.d.ts.map +1 -1
  3. package/dist/puzzles/cube3/solver/browser-loader.d.ts.map +1 -1
  4. package/dist/puzzles/cube3/solver/browser-loader.js +26 -1
  5. package/dist/puzzles/cube3/solver/generated/manifest.json +14 -0
  6. package/dist/puzzles/cube3/solver/generated/phase1-udco.bin +1 -0
  7. package/dist/puzzles/cube3/solver/generated/phase1-udeo.bin +1 -0
  8. package/dist/puzzles/cube3/solver/generated-assets.d.ts.map +1 -1
  9. package/dist/puzzles/cube3/solver/generated-assets.js +2 -1
  10. package/dist/puzzles/cube3/solver/node-loader.d.ts.map +1 -1
  11. package/dist/puzzles/cube3/solver/node-loader.js +22 -0
  12. package/dist/puzzles/cube3/solver/pair-browser-loader.d.ts +11 -0
  13. package/dist/puzzles/cube3/solver/pair-browser-loader.d.ts.map +1 -0
  14. package/dist/puzzles/cube3/solver/pair-browser-loader.js +93 -0
  15. package/dist/puzzles/cube3/solver/pair-node-loader.d.ts +6 -0
  16. package/dist/puzzles/cube3/solver/pair-node-loader.d.ts.map +1 -0
  17. package/dist/puzzles/cube3/solver/pair-node-loader.js +79 -0
  18. package/dist/puzzles/cube3/solver/pair-tables-types.d.ts +37 -0
  19. package/dist/puzzles/cube3/solver/pair-tables-types.d.ts.map +1 -0
  20. package/dist/puzzles/cube3/solver/pair-tables-types.js +29 -0
  21. package/dist/puzzles/cube3/solver/pair-tables.d.ts +29 -0
  22. package/dist/puzzles/cube3/solver/pair-tables.d.ts.map +1 -0
  23. package/dist/puzzles/cube3/solver/pair-tables.js +64 -0
  24. package/dist/puzzles/cube3/solver/phase1.d.ts +3 -1
  25. package/dist/puzzles/cube3/solver/phase1.d.ts.map +1 -1
  26. package/dist/puzzles/cube3/solver/phase1.js +32 -2
  27. package/dist/puzzles/cube3/solver/phase2.d.ts +3 -0
  28. package/dist/puzzles/cube3/solver/phase2.d.ts.map +1 -1
  29. package/dist/puzzles/cube3/solver/phase2.js +63 -5
  30. package/dist/puzzles/cube3/solver/tables.d.ts +16 -0
  31. package/dist/puzzles/cube3/solver/tables.d.ts.map +1 -1
  32. package/dist/puzzles/cube3/solver/tables.js +4 -2
  33. package/dist/puzzles/cube4/scrambler.d.ts +4 -1
  34. package/dist/puzzles/cube4/scrambler.d.ts.map +1 -1
  35. package/dist/puzzles/cube4/scrambler.js +101 -14
  36. package/dist-cjs/puzzles/cube3/solver/browser-loader.js +26 -1
  37. package/dist-cjs/puzzles/cube3/solver/generated/manifest.json +14 -0
  38. package/dist-cjs/puzzles/cube3/solver/generated/phase1-udco.bin +1 -0
  39. package/dist-cjs/puzzles/cube3/solver/generated/phase1-udeo.bin +1 -0
  40. package/dist-cjs/puzzles/cube3/solver/generated-assets.js +2 -1
  41. package/dist-cjs/puzzles/cube3/solver/node-loader.js +22 -0
  42. package/dist-cjs/puzzles/cube3/solver/pair-browser-loader.js +96 -0
  43. package/dist-cjs/puzzles/cube3/solver/pair-node-loader.js +85 -0
  44. package/dist-cjs/puzzles/cube3/solver/pair-tables-types.js +33 -0
  45. package/dist-cjs/puzzles/cube3/solver/pair-tables.js +102 -0
  46. package/dist-cjs/puzzles/cube3/solver/phase1.js +32 -2
  47. package/dist-cjs/puzzles/cube3/solver/phase2.js +63 -5
  48. package/dist-cjs/puzzles/cube3/solver/tables.js +4 -2
  49. package/dist-cjs/puzzles/cube4/scrambler.js +101 -15
  50. package/package.json +4 -1
@@ -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>;
@@ -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,EAKV,iBAAiB,EAClB,MAAM,aAAa,CAAC;AA0CrB,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,CA0CpF"}
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
  }