Commit Graph
3 Commits
Author SHA1 Message Date
tiennm99 aeb3900f85 chore(deps): override cubejs's bundled npm@6 → npm@11 to clear all 39 audit alerts
cubejs@1.3.2 declares `npm@^6.0.0` as a runtime dependency (vestigial — the
solver never requires('npm') at runtime). The bundled npm@6 transitively
pulls in 39 vulnerable subpackages (1 critical, 27 high, 10 moderate)
flagged by Dependabot.

Force the override to npm@^11.14.1 which has all CVEs patched. Verified:
solver test still passes (cubejs Kociemba API unchanged), full suite green,
build clean, `npm audit` reports 0 vulnerabilities.

Downgrading cubejs to 1.1.0 was tried and rejected — that version predates
the Kociemba solver (no Cube.initSolver / cube.solve API).
2026-05-09 11:41:24 +07:00
tiennm99 eb592e5c98 feat: add kociemba solver and vitest unit tests
- Solver: cubejs-backed two-phase solver, lazy-loaded chunk so the ~80 KB
  table-init cost stays out of the main bundle. New cube-to-facelets
  converter (3D model -> 54-char URFDLB string) verified bit-for-bit
  against cubejs's own move() output.
- Solve button in ControlsPanel with disabled "Solving..." state, wired
  through the CubeView controller; animates each move sequentially.
- Rewrite solved-check to the WCA face-uniformity definition. The old
  strict "identity quaternion per cubie" check rejected center spins
  (invisible) and whole-cube rotations, both of which are still solved
  per WCA / Kociemba.
- Vitest specs under tests/ cover cubie-model, move-definitions,
  move-parser, apply-move (4x turns, inverses, sune order=6, R2 == R R),
  scrambler, solved-check, algorithm-runner, cube-to-facelets, solver.
  39 tests, ~3 s. Adds npm test / npm run test:watch scripts.
2026-04-27 10:25:28 +07:00
tiennm99 996a07a7bf feat: initial 3x3 rubik cube simulator (svelte + three.js) 2026-04-27 09:13:43 +07:00