cubing 0.36.1 → 0.36.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.
Files changed (43) hide show
  1. package/dist/esm/bluetooth/index.js +3 -3
  2. package/dist/esm/{chunk-PY6UOVLX.js → chunk-BT4N5EGX.js} +3 -3
  3. package/dist/esm/{chunk-XVAB7A2O.js → chunk-CS3NN22U.js} +7 -5
  4. package/dist/esm/chunk-CS3NN22U.js.map +7 -0
  5. package/dist/esm/{chunk-RZEN653J.js → chunk-EODSL4J7.js} +3 -3
  6. package/dist/esm/{chunk-MHS6WQK3.js → chunk-HNCNLZCQ.js} +2 -2
  7. package/dist/esm/{chunk-U45QP7V5.js → chunk-IKK6NEES.js} +2 -2
  8. package/dist/esm/{chunk-P6BKQJQU.js → chunk-KPYYHLXC.js} +2 -2
  9. package/dist/esm/{chunk-PRIRJZQ6.js → chunk-QWQ3WKAJ.js} +1 -1
  10. package/dist/esm/{chunk-GNCANY6Y.js → chunk-Z4KB5H3Q.js} +9 -9
  11. package/dist/esm/notation/index.js +2 -2
  12. package/dist/esm/protocol/index.js +2 -2
  13. package/dist/esm/puzzle-geometry/index.js +67 -67
  14. package/dist/esm/puzzle-geometry/index.js.map +2 -2
  15. package/dist/esm/puzzles/index.js +2 -2
  16. package/dist/esm/scramble/index.js +6 -6
  17. package/dist/esm/search/index.js +6 -6
  18. package/dist/esm/{search-dynamic-sgs-side-events-UBB6BCFU.js → search-dynamic-sgs-side-events-X3HJIH2M.js} +3 -3
  19. package/dist/esm/{search-dynamic-sgs-unofficial-BTJQTYIB.js → search-dynamic-sgs-unofficial-4DTLRYXW.js} +3 -3
  20. package/dist/esm/{search-dynamic-solve-4x4x4-AJIQM7XH.js → search-dynamic-solve-4x4x4-KOSBPTFL.js} +4 -4
  21. package/dist/esm/{search-worker-inside-generated-string-S4N5JFZV.js → search-worker-inside-generated-string-EFAMJBWG.js} +2 -2
  22. package/dist/esm/search-worker-inside-generated-string-EFAMJBWG.js.map +7 -0
  23. package/dist/esm/{search-worker-js-entry-DMVNDNGG.js → search-worker-js-entry-Z7ZJHXOP.js} +6 -6
  24. package/dist/esm/{search-worker-ts-entry-CSGPRXKH.js → search-worker-ts-entry-7OR7E6EC.js} +2 -2
  25. package/dist/esm/twisty/index.js +8 -5
  26. package/dist/esm/twisty/index.js.map +2 -2
  27. package/dist/esm/{twisty-dynamic-3d-SGTMU2OZ.js → twisty-dynamic-3d-XRLWOI7Y.js} +4 -4
  28. package/package.json +2 -2
  29. package/dist/esm/chunk-XVAB7A2O.js.map +0 -7
  30. package/dist/esm/search-worker-inside-generated-string-S4N5JFZV.js.map +0 -7
  31. /package/dist/esm/{chunk-PY6UOVLX.js.map → chunk-BT4N5EGX.js.map} +0 -0
  32. /package/dist/esm/{chunk-RZEN653J.js.map → chunk-EODSL4J7.js.map} +0 -0
  33. /package/dist/esm/{chunk-MHS6WQK3.js.map → chunk-HNCNLZCQ.js.map} +0 -0
  34. /package/dist/esm/{chunk-U45QP7V5.js.map → chunk-IKK6NEES.js.map} +0 -0
  35. /package/dist/esm/{chunk-P6BKQJQU.js.map → chunk-KPYYHLXC.js.map} +0 -0
  36. /package/dist/esm/{chunk-PRIRJZQ6.js.map → chunk-QWQ3WKAJ.js.map} +0 -0
  37. /package/dist/esm/{chunk-GNCANY6Y.js.map → chunk-Z4KB5H3Q.js.map} +0 -0
  38. /package/dist/esm/{search-dynamic-sgs-side-events-UBB6BCFU.js.map → search-dynamic-sgs-side-events-X3HJIH2M.js.map} +0 -0
  39. /package/dist/esm/{search-dynamic-sgs-unofficial-BTJQTYIB.js.map → search-dynamic-sgs-unofficial-4DTLRYXW.js.map} +0 -0
  40. /package/dist/esm/{search-dynamic-solve-4x4x4-AJIQM7XH.js.map → search-dynamic-solve-4x4x4-KOSBPTFL.js.map} +0 -0
  41. /package/dist/esm/{search-worker-js-entry-DMVNDNGG.js.map → search-worker-js-entry-Z7ZJHXOP.js.map} +0 -0
  42. /package/dist/esm/{search-worker-ts-entry-CSGPRXKH.js.map → search-worker-ts-entry-7OR7E6EC.js.map} +0 -0
  43. /package/dist/esm/{twisty-dynamic-3d-SGTMU2OZ.js.map → twisty-dynamic-3d-XRLWOI7Y.js.map} +0 -0
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  binaryComponentsToReid3x3x3,
3
3
  twizzleBinaryToBinaryComponents
4
- } from "../chunk-U45QP7V5.js";
4
+ } from "../chunk-IKK6NEES.js";
5
5
  import {
6
6
  cube3x3x3,
7
7
  puzzles
8
- } from "../chunk-P6BKQJQU.js";
8
+ } from "../chunk-KPYYHLXC.js";
9
9
  import {
10
10
  experimental3x3x3KPuzzle
11
- } from "../chunk-PRIRJZQ6.js";
11
+ } from "../chunk-QWQ3WKAJ.js";
12
12
  import {
13
13
  KState
14
14
  } from "../chunk-UIGRNWPE.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  from
3
- } from "./chunk-PRIRJZQ6.js";
3
+ } from "./chunk-QWQ3WKAJ.js";
4
4
 
5
5
  // src/cubing/twisty/debug.ts
6
6
  var twistyDebugGlobals = {
@@ -541,7 +541,7 @@ var StatsPanel = class {
541
541
  // src/cubing/twisty/heavy-code-imports/3d.ts
542
542
  var cachedConstructorProxy = null;
543
543
  async function proxy3D() {
544
- return cachedConstructorProxy ?? (cachedConstructorProxy = import("./twisty-dynamic-3d-SGTMU2OZ.js"));
544
+ return cachedConstructorProxy ?? (cachedConstructorProxy = import("./twisty-dynamic-3d-XRLWOI7Y.js"));
545
545
  }
546
546
  var THREEJS = from(
547
547
  async () => (await proxy3D()).T3I
@@ -1175,4 +1175,4 @@ export {
1175
1175
  proxy3D,
1176
1176
  THREEJS
1177
1177
  };
1178
- //# sourceMappingURL=chunk-PY6UOVLX.js.map
1178
+ //# sourceMappingURL=chunk-BT4N5EGX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  insideAPI
3
- } from "./chunk-GNCANY6Y.js";
3
+ } from "./chunk-Z4KB5H3Q.js";
4
4
  import {
5
5
  exposeAPI
6
6
  } from "./chunk-RHC3DIN3.js";
@@ -110,7 +110,7 @@ async function constructWorker(source, options) {
110
110
  // src/cubing/search/inside/search-worker-ts-entry-path-getter.ts
111
111
  exposeAPI.expose = false;
112
112
  async function getWorkerEntryFileURL() {
113
- return (await import("./search-worker-ts-entry-CSGPRXKH.js")).WORKER_ENTRY_FILE_URL;
113
+ return (await import("./search-worker-ts-entry-7OR7E6EC.js")).WORKER_ENTRY_FILE_URL;
114
114
  }
115
115
 
116
116
  // src/cubing/search/instantiator.ts
@@ -127,7 +127,9 @@ async function instantiateModuleWorker() {
127
127
  }
128
128
  let url;
129
129
  if (globalThis.Worker) {
130
- const importSrc = `import "${workerEntryFileURL}";`;
130
+ const importSrc = `import ${JSON.stringify(
131
+ workerEntryFileURL.toString()
132
+ )};`;
131
133
  const blob = new Blob([importSrc], {
132
134
  type: "text/javascript"
133
135
  });
@@ -174,7 +176,7 @@ function wrapWithTerminate(worker) {
174
176
  return { insideAPI: insideAPI2, outsideAPI: { terminate } };
175
177
  }
176
178
  async function instantiateClassicWorker() {
177
- const { workerSource } = await import("./search-worker-inside-generated-string-S4N5JFZV.js");
179
+ const { workerSource } = await import("./search-worker-inside-generated-string-EFAMJBWG.js");
178
180
  const worker = await constructWorker(workerSource, { eval: true });
179
181
  return wrapWithTerminate(worker);
180
182
  }
@@ -328,4 +330,4 @@ export {
328
330
  solveTwsearch,
329
331
  setDebug
330
332
  };
331
- //# sourceMappingURL=chunk-XVAB7A2O.js.map
333
+ //# sourceMappingURL=chunk-CS3NN22U.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/search/inside/solve/puzzles/clock.ts", "../../src/cubing/search/inside/solve/puzzles/wca-minx.ts", "../../src/cubing/vendor/apache/comlink-everywhere/outside/index.ts", "../../src/cubing/search/inside/search-worker-ts-entry-path-getter.ts", "../../src/cubing/search/instantiator.ts", "../../src/cubing/search/outside.ts"],
4
+ "sourcesContent": ["import { randomUIntBelow } from \"random-uint-below\";\n\nconst pins = [\"UR\", \"DR\", \"DL\", \"UL\"];\nconst backMoves = [\"U\", \"R\", \"D\", \"L\", \"ALL\"];\nconst frontMoves = pins.concat(backMoves);\n\nexport function randomClockScrambleString(): string {\n let filteringMoveCount = 0;\n\n function randomSuffix() {\n const amount = randomUIntBelow(12);\n if (amount !== 0) {\n filteringMoveCount++;\n }\n if (amount <= 6) {\n return `${amount}+`;\n } else {\n return `${12 - amount}-`;\n }\n }\n\n const moves = [];\n function side(families: string[]): void {\n for (const family of families) {\n moves.push(`${family}${randomSuffix()}`);\n }\n }\n\n side(frontMoves);\n moves.push(\"y2\");\n side(backMoves);\n\n // https://www.worldcubeassociation.org/regulations/#4b3\n if (filteringMoveCount < 2) {\n return randomClockScrambleString();\n }\n\n for (const pin of pins) {\n if (randomUIntBelow(2) === 0) {\n moves.push(pin);\n }\n }\n return moves.join(\" \");\n}\n", "import { randomUIntBelow } from \"random-uint-below\";\n\nconst suffixes = [\"++\", \"--\"];\n\nexport function randomMegaminxScrambleString(): string {\n function rdPair(): string {\n return `R${suffixes[randomUIntBelow(2)]} D${suffixes[randomUIntBelow(2)]}`;\n }\n\n function randomU(): string {\n return `U${[\"\", \"'\"][randomUIntBelow(2)]}`;\n }\n\n function row(): string {\n const chunks = [];\n for (let i = 0; i < 5; i++) {\n chunks.push(rdPair());\n }\n chunks.push(randomU());\n return chunks.join(\" \");\n }\n\n const chunks = [];\n for (let i = 0; i < 6; i++) {\n chunks.push(row());\n }\n return chunks.join(\"\\n\");\n}\n", "import nodeEndpoint from \"../node-adapter\";\n\nexport { wrap } from \"comlink\";\n// Mangled so that bundlers don't try to inline the source.\n\nconst worker_threads_mangled = \"node:w-orker-_threa-ds\";\nconst worker_threads_unmangled = () => worker_threads_mangled.replace(/-/g, \"\");\n\nconst useNodeWorkarounds =\n typeof globalThis.Worker === \"undefined\" &&\n typeof (globalThis as any).WorkerNavigator === \"undefined\";\n\nasync function nodeWorker(\n source: string | URL,\n options?: { eval?: boolean },\n): Promise<Worker> {\n const { Worker: NodeWorker } = await import(\n /* @vite-ignore */ worker_threads_unmangled()\n );\n const worker = new NodeWorker(source, options);\n worker.unref();\n return nodeEndpoint(worker);\n}\n\nexport async function constructWorker(\n source: string | URL,\n options?: { eval?: boolean; type?: WorkerType },\n): Promise<Worker> {\n let worker;\n if (useNodeWorkarounds) {\n return nodeWorker(source, { eval: options?.eval });\n } else {\n if (options?.eval) {\n const blob = new Blob([source as string], {\n type: \"application/javascript\",\n });\n source = URL.createObjectURL(blob);\n }\n worker = new globalThis.Worker(source, {\n type: options ? options.type : undefined, // TODO: Is it safe to use `options?.type`?\n });\n }\n return worker;\n}\n", "import { exposeAPI } from \"./worker-guard\";\n\nexposeAPI.expose = false;\nexport async function getWorkerEntryFileURL() {\n return (await import(\"./search-worker-ts-entry\")).WORKER_ENTRY_FILE_URL;\n}\n", "import {\n constructWorker,\n wrap,\n} from \"../vendor/apache/comlink-everywhere/outside\";\nimport { insideAPI, type WorkerInsideAPI } from \"./inside/api\";\nimport { getWorkerEntryFileURL } from \"./inside/search-worker-ts-entry-path-getter\";\nimport { searchOutsideDebugGlobals } from \"./outside\";\n\nconst MODULE_WORKER_TIMEOUT_MILLISECONDS = 5000;\n\nexport interface WorkerOutsideAPI {\n terminate: () => void; // `node` can return a `Promise` with an exit code, but we match the web worker API.\n}\nexport interface InsideOutsideAPI {\n insideAPI: WorkerInsideAPI;\n outsideAPI: WorkerOutsideAPI;\n}\n\nexport async function instantiateModuleWorker(): Promise<InsideOutsideAPI> {\n // rome-ignore lint/suspicious/noAsyncPromiseExecutor: TODO\n return new Promise<InsideOutsideAPI>(async (resolve, reject) => {\n const timeoutID = setTimeout(() => {\n reject(new Error(\"module instantiation timeout\"));\n }, MODULE_WORKER_TIMEOUT_MILLISECONDS);\n\n try {\n const workerEntryFileURL = await getWorkerEntryFileURL();\n if (!workerEntryFileURL) {\n reject(new Error(\"Could not get worker entry file URL.\"));\n }\n let url: string | URL;\n if (globalThis.Worker) {\n // Standard browser-like environment.\n const importSrc = `import ${JSON.stringify(\n workerEntryFileURL.toString(),\n )};`;\n const blob = new Blob([importSrc], {\n type: \"text/javascript\",\n });\n url = URL.createObjectURL(blob);\n } else {\n // We need to keep the original entry file URL, but we have to wrap it in the `URL` class.\n url = new URL(workerEntryFileURL);\n }\n\n const worker = (await constructWorker(url, {\n type: \"module\",\n })) as Worker & {\n nodeWorker?: import(\"worker_threads\").Worker;\n };\n\n const onError = (e: ErrorEvent) => {\n // TODO: Remove fallback when Firefox implements module workers: https://bugzilla.mozilla.org/show_bug.cgi?id=1247687\n if (e.message?.startsWith(\"SyntaxError\")) {\n reject(e);\n }\n };\n\n const onFirstMessage = (messageData: string) => {\n if (messageData === \"comlink-exposed\") {\n // We need to clear the timeout so that we don't prevent `node` from exiting in the meantime.\n clearTimeout(timeoutID);\n resolve(wrapWithTerminate(worker));\n } else {\n reject(\n new Error(`wrong module instantiation message ${messageData}`),\n );\n }\n };\n\n if (worker.nodeWorker) {\n // We have to use `once` so the `unref()` from `comlink-everywhere` allows the process to quit as expected.\n worker.nodeWorker.once(\"message\", onFirstMessage);\n } else {\n worker.addEventListener(\"error\", onError, {\n once: true,\n });\n worker.addEventListener(\"message\", (e) => onFirstMessage(e.data), {\n once: true,\n });\n }\n } catch (e) {\n reject(e);\n }\n });\n}\n\nfunction wrapWithTerminate(worker: Worker): InsideOutsideAPI {\n const insideAPI = wrap<WorkerInsideAPI>(worker);\n const terminate = worker.terminate.bind(worker);\n return { insideAPI, outsideAPI: { terminate } };\n}\n\nasync function instantiateClassicWorker(): Promise<InsideOutsideAPI> {\n const { workerSource } = await import(\n \"./search-worker-inside-generated-string.js\"\n );\n const worker = await constructWorker(workerSource, { eval: true });\n return wrapWithTerminate(worker);\n}\n\nexport const allInsideOutsideAPIPromises: Promise<InsideOutsideAPI>[] = [];\n\nexport async function instantiateWorker(): Promise<InsideOutsideAPI> {\n const insideOutsideAPIPromise = instantiateWorkerImplementation();\n allInsideOutsideAPIPromises.push(insideOutsideAPIPromise);\n insideAPI.setDebugMeasurePerf(searchOutsideDebugGlobals.logPerf);\n insideAPI.setScramblePrefetchLevel(\n searchOutsideDebugGlobals.scramblePrefetchLevel,\n );\n return insideOutsideAPIPromise;\n}\n\nexport async function mapToAllWorkers(\n f: (worker: InsideOutsideAPI) => void,\n): Promise<void> {\n await Promise.all(\n allInsideOutsideAPIPromises.map((worker) => worker.then(f)),\n );\n}\n\nasync function instantiateWorkerImplementation(): Promise<InsideOutsideAPI> {\n if (searchOutsideDebugGlobals.forceStringWorker) {\n console.warn(\n \"Using the `forceStringWorker` workaround for search worker instantiation. This will require downloading significantly more code than necessary, but the functionality will be the same.\",\n );\n return instantiateClassicWorker();\n }\n try {\n // `await` is important for `catch` to work.\n return await instantiateModuleWorker();\n } catch (e) {\n const commonErrorPrefix =\n \"Could not instantiate module worker (this may happen in Firefox, or when using Parcel).\";\n if (searchOutsideDebugGlobals.disableStringWorker) {\n console.error(\n `${commonErrorPrefix} Fallback to string worker is disabled.`,\n e,\n );\n throw new Error(\"Module worker instantiation failed.\");\n }\n console.warn(`${commonErrorPrefix} Falling back to string worker.`, e);\n return instantiateClassicWorker();\n }\n}\n", "import { Alg } from \"../alg\";\nimport type { KPuzzle } from \"../kpuzzle\";\n// import { preInitialize222 } from \"../implementations/2x2x2\";\nimport type { KState } from \"../kpuzzle/KState\";\nimport type { PrefetchLevel } from \"./inside/api\";\nimport { randomClockScrambleString } from \"./inside/solve/puzzles/clock\"; // TODO: don't reach into `inside` code.\nimport { randomMegaminxScrambleString } from \"./inside/solve/puzzles/wca-minx\"; // TODO: don't reach into `inside` code.\nimport type { TwsearchOptions } from \"./inside/solve/twsearch\";\nimport {\n type InsideOutsideAPI,\n instantiateWorker,\n mapToAllWorkers,\n} from \"./instantiator\";\n\nlet cachedWorkerInstance: Promise<InsideOutsideAPI> | null = null;\nasync function getCachedWorkerInstance(): Promise<InsideOutsideAPI> {\n return await (cachedWorkerInstance ??= instantiateWorker());\n}\n\n// Pre-initialize the scrambler for the given event. (Otherwise, an event is\n// initialized the first time you ask for a scramble for that event.)\n//\n// Some typical numbers for a fast computer:\n// - 3x3x3 initialization: 200ms\n// - Each 3x3x3 scramble: 50ms\n// - 4x4x4 initialization: 2500ms\n// - Each 4x4x4 scramble: 300ms to 800ms\n//\n// It is safe to immediately call for a scramble\n// any time after starting pre-initialization, or to call for them without\n// pre-initializing. Pre-initializing essentially gives the scramble worker a\n// head start in case a scramble doesn't get requested immediately.\n//\n// Note that events cannot be pre-initialized in parallel. Attempting to\n// pre-initialize multiple events will initialize them consecutively. Scrambles\n// for a given event cannot be computed while another event is being initialized.\nexport function _preInitializationHintForEvent(\n eventID: string,\n // callback?: () => void\n): void {\n switch (eventID) {\n case \"clock\":\n case \"minx\":\n return;\n case \"333oh\":\n _preInitializationHintForEvent(\"333\");\n return;\n }\n (async () => {\n await (await getCachedWorkerInstance()).insideAPI.initialize(eventID);\n })();\n}\n\nexport async function randomScrambleForEvent(eventID: string): Promise<Alg> {\n switch (eventID) {\n case \"clock\":\n return Alg.fromString(await randomClockScrambleString());\n case \"minx\":\n return Alg.fromString(await randomMegaminxScrambleString());\n }\n const prom = _randomScrambleStringForEvent(eventID);\n const wat = await prom;\n return Alg.fromString(wat);\n}\n\nexport async function _randomScrambleStringForEvent(\n eventID: string,\n): Promise<string> {\n if (searchOutsideDebugGlobals.forceNewWorkerForEveryScramble) {\n }\n const worker = searchOutsideDebugGlobals.forceNewWorkerForEveryScramble\n ? await instantiateWorker()\n : await getCachedWorkerInstance();\n return worker.insideAPI.randomScrambleStringForEvent(eventID);\n}\n\nexport async function randomScrambleStringForEvent(\n eventID: string,\n): Promise<string> {\n switch (eventID) {\n case \"clock\":\n return randomClockScrambleString();\n case \"minx\":\n return randomMegaminxScrambleString();\n }\n return await _randomScrambleStringForEvent(eventID);\n}\n\nexport async function experimentalSolve3x3x3IgnoringCenters(\n state: KState,\n): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.insideAPI.solve333ToString(state.stateData));\n}\n\nexport async function experimentalSolve2x2x2(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(await cwi.insideAPI.solve222ToString(state.stateData));\n}\n\nexport async function solveSkewb(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(\n await cwi.insideAPI.solveSkewbToString(state.stateData),\n );\n}\n\nexport async function solvePyraminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(\n await cwi.insideAPI.solvePyraminxToString(state.stateData),\n );\n}\n\nexport async function solveMegaminx(state: KState): Promise<Alg> {\n const cwi = await getCachedWorkerInstance();\n return Alg.fromString(\n await cwi.insideAPI.solveMegaminxToString(state.stateData),\n );\n}\n\nexport async function solveTwsearch(\n kpuzzle: KPuzzle,\n state: KState,\n options?: { moveSubset?: string[]; startState?: KState; minDepth?: number },\n): Promise<Alg> {\n const { startState, ...otherOptions } = options ?? {};\n const apiOptions: TwsearchOptions = otherOptions;\n if (startState) {\n apiOptions.startState =\n startState.experimentalToTransformation()!.transformationData;\n }\n const { ...def } = kpuzzle.definition;\n delete def.experimentalIsStateSolved;\n // delete def.experimentalDerivedMoves;\n const dedicatedWorker = await instantiateWorker();\n try {\n return Alg.fromString(\n await dedicatedWorker.insideAPI.solveTwsearchToString(\n def,\n state.stateData,\n apiOptions,\n ),\n );\n } finally {\n console.log(\"Search ended, terminating dedicated `twsearch` worker.\");\n // TODO: support re-using the same worker for multiple searches..\n await dedicatedWorker.outsideAPI.terminate();\n }\n}\n\ninterface SearchOutsideDebugGlobals {\n logPerf: boolean;\n scramblePrefetchLevel: `${PrefetchLevel}`;\n forceStringWorker: boolean;\n disableStringWorker: boolean;\n forceNewWorkerForEveryScramble: boolean;\n}\nexport const searchOutsideDebugGlobals: SearchOutsideDebugGlobals = {\n logPerf: false,\n scramblePrefetchLevel: \"auto\",\n forceStringWorker: false,\n disableStringWorker: false,\n forceNewWorkerForEveryScramble: false,\n};\n\nexport function setDebug(options: Partial<SearchOutsideDebugGlobals>): void {\n const { logPerf, scramblePrefetchLevel } = options;\n if (typeof logPerf !== \"undefined\") {\n searchOutsideDebugGlobals.logPerf = logPerf;\n mapToAllWorkers((worker) => worker.insideAPI.setDebugMeasurePerf(logPerf));\n }\n if (typeof scramblePrefetchLevel !== \"undefined\") {\n searchOutsideDebugGlobals.scramblePrefetchLevel = scramblePrefetchLevel;\n mapToAllWorkers((worker) =>\n worker.insideAPI.setScramblePrefetchLevel(\n scramblePrefetchLevel as PrefetchLevel,\n ),\n );\n }\n if (\"forceStringWorker\" in options) {\n searchOutsideDebugGlobals.forceStringWorker = !!options.forceStringWorker;\n }\n if (\"disableStringWorker\" in options) {\n searchOutsideDebugGlobals.disableStringWorker =\n !!options.disableStringWorker;\n }\n if (\"forceNewWorkerForEveryScramble\" in options) {\n searchOutsideDebugGlobals.forceNewWorkerForEveryScramble =\n !!options.forceNewWorkerForEveryScramble;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["randomUIntBelow", "chunks", "insideAPI"]
7
+ }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  puzzles
3
- } from "./chunk-P6BKQJQU.js";
3
+ } from "./chunk-KPYYHLXC.js";
4
4
  import {
5
5
  from
6
- } from "./chunk-PRIRJZQ6.js";
6
+ } from "./chunk-QWQ3WKAJ.js";
7
7
  import {
8
8
  KState
9
9
  } from "./chunk-UIGRNWPE.js";
@@ -612,4 +612,4 @@ export {
612
612
  random333OrientedScramble,
613
613
  random333FewestMovesScramble
614
614
  };
615
- //# sourceMappingURL=chunk-RZEN653J.js.map
615
+ //# sourceMappingURL=chunk-EODSL4J7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cube3x3x3KPuzzleDefinition
3
- } from "./chunk-PRIRJZQ6.js";
3
+ } from "./chunk-QWQ3WKAJ.js";
4
4
  import {
5
5
  TraversalUp,
6
6
  functionFromTraversal
@@ -217,4 +217,4 @@ export {
217
217
  countMetricMoves,
218
218
  countAnimatedLeaves
219
219
  };
220
- //# sourceMappingURL=chunk-MHS6WQK3.js.map
220
+ //# sourceMappingURL=chunk-HNCNLZCQ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  normalize3x3x3Orientation,
4
4
  puzzleOrientation3x3x3Cache,
5
5
  puzzleOrientation3x3x3Idx
6
- } from "./chunk-PRIRJZQ6.js";
6
+ } from "./chunk-QWQ3WKAJ.js";
7
7
  import {
8
8
  KState
9
9
  } from "./chunk-UIGRNWPE.js";
@@ -251,4 +251,4 @@ export {
251
251
  bufferToSpacedHex,
252
252
  spacedHexToBuffer
253
253
  };
254
- //# sourceMappingURL=chunk-U45QP7V5.js.map
254
+ //# sourceMappingURL=chunk-IKK6NEES.js.map
@@ -11,7 +11,7 @@ import {
11
11
  experimental3x3x3KPuzzle,
12
12
  from,
13
13
  getCached
14
- } from "./chunk-PRIRJZQ6.js";
14
+ } from "./chunk-QWQ3WKAJ.js";
15
15
  import {
16
16
  KPuzzle
17
17
  } from "./chunk-UIGRNWPE.js";
@@ -660,4 +660,4 @@ export {
660
660
  cube3x3x3,
661
661
  puzzles
662
662
  };
663
- //# sourceMappingURL=chunk-P6BKQJQU.js.map
663
+ //# sourceMappingURL=chunk-KPYYHLXC.js.map
@@ -1230,4 +1230,4 @@ export {
1230
1230
  customPGPuzzleLoader,
1231
1231
  experimental3x3x3KPuzzle
1232
1232
  };
1233
- //# sourceMappingURL=chunk-PRIRJZQ6.js.map
1233
+ //# sourceMappingURL=chunk-QWQ3WKAJ.js.map
@@ -7,18 +7,18 @@ import {
7
7
  random333Scramble,
8
8
  setIsInsideWorker,
9
9
  solve333
10
- } from "./chunk-RZEN653J.js";
10
+ } from "./chunk-EODSL4J7.js";
11
11
  import {
12
12
  countMoves
13
- } from "./chunk-MHS6WQK3.js";
13
+ } from "./chunk-HNCNLZCQ.js";
14
14
  import {
15
15
  cube2x2x2,
16
16
  puzzles
17
- } from "./chunk-P6BKQJQU.js";
17
+ } from "./chunk-KPYYHLXC.js";
18
18
  import {
19
19
  from,
20
20
  normalize2x2x2Orientation
21
- } from "./chunk-PRIRJZQ6.js";
21
+ } from "./chunk-QWQ3WKAJ.js";
22
22
  import {
23
23
  KPuzzle,
24
24
  KState
@@ -172,7 +172,7 @@ function randomStateFromSGS(kpuzzle, sgs) {
172
172
  }
173
173
 
174
174
  // src/cubing/search/inside/solve/puzzles/dynamic/sgs-side-events/index.ts
175
- var searchDynamicSideEvents = from(() => import("./search-dynamic-sgs-side-events-UBB6BCFU.js"));
175
+ var searchDynamicSideEvents = from(() => import("./search-dynamic-sgs-side-events-X3HJIH2M.js"));
176
176
 
177
177
  // src/cubing/search/inside/solve/twsearch.ts
178
178
  var twsearchPromise = from(async () => import("./twsearch-FMALADRY.js"));
@@ -359,7 +359,7 @@ async function random222Scramble() {
359
359
  }
360
360
 
361
361
  // src/cubing/search/inside/solve/puzzles/dynamic/4x4x4/index.ts
362
- var dynamic4x4x4Solver = from(() => import("./search-dynamic-solve-4x4x4-AJIQM7XH.js"));
362
+ var dynamic4x4x4Solver = from(() => import("./search-dynamic-solve-4x4x4-KOSBPTFL.js"));
363
363
 
364
364
  // src/cubing/search/inside/solve/puzzles/4x4x4.ts
365
365
  var randomSuffixes = [
@@ -452,7 +452,7 @@ async function oriented555RandomMoves() {
452
452
  var dynamicFTOSolver = from(() => import("./search-dynamic-solve-fto-IDE3JR5R.js"));
453
453
 
454
454
  // src/cubing/search/inside/solve/puzzles/fto.ts
455
- var dynamic = from(() => import("./search-dynamic-sgs-unofficial-BTJQTYIB.js"));
455
+ var dynamic = from(() => import("./search-dynamic-sgs-unofficial-4DTLRYXW.js"));
456
456
  async function randomFTOScramble() {
457
457
  mustBeInsideWorker();
458
458
  return new Alg(await (await dynamicFTOSolver).randomFTOScrambleString());
@@ -540,7 +540,7 @@ async function randomPyraminxScrambleFixedOrientation() {
540
540
  }
541
541
 
542
542
  // src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/index.ts
543
- var searchDynamicUnofficial = from(() => import("./search-dynamic-sgs-unofficial-BTJQTYIB.js"));
543
+ var searchDynamicUnofficial = from(() => import("./search-dynamic-sgs-unofficial-4DTLRYXW.js"));
544
544
 
545
545
  // src/cubing/search/inside/solve/puzzles/redi_cube.ts
546
546
  async function randomRediCubeScramble() {
@@ -797,4 +797,4 @@ var insideAPI = {
797
797
  export {
798
798
  insideAPI
799
799
  };
800
- //# sourceMappingURL=chunk-GNCANY6Y.js.map
800
+ //# sourceMappingURL=chunk-Z4KB5H3Q.js.map
@@ -6,8 +6,8 @@ import {
6
6
  countMoves,
7
7
  countMovesETM,
8
8
  countQuantumMoves
9
- } from "../chunk-MHS6WQK3.js";
10
- import "../chunk-PRIRJZQ6.js";
9
+ } from "../chunk-HNCNLZCQ.js";
10
+ import "../chunk-QWQ3WKAJ.js";
11
11
  import "../chunk-UIGRNWPE.js";
12
12
  import "../chunk-2OZSC5I6.js";
13
13
  export {
@@ -5,8 +5,8 @@ import {
5
5
  spacedHexToBuffer,
6
6
  twizzleBinaryToBinaryComponents,
7
7
  twizzleBinaryToReid3x3x3
8
- } from "../chunk-U45QP7V5.js";
9
- import "../chunk-PRIRJZQ6.js";
8
+ } from "../chunk-IKK6NEES.js";
9
+ import "../chunk-QWQ3WKAJ.js";
10
10
  import "../chunk-UIGRNWPE.js";
11
11
  import "../chunk-2OZSC5I6.js";
12
12
  export {
@@ -262,20 +262,20 @@ var MegaminxScramblingNotationMapper = class {
262
262
  return new Move("Uv", move.amount);
263
263
  }
264
264
  if (move.family === "x" && Math.abs(move.amount) === 2) {
265
- return new Move("DRRv", move.amount / 2);
265
+ return new Move("ERv", move.amount / 2);
266
266
  }
267
267
  }
268
268
  return this.child.notationToInternal(move);
269
269
  }
270
270
  // we never rewrite click moves to these moves.
271
271
  notationToExternal(move) {
272
- if (move.family === "DRRv" && Math.abs(move.amount) === 1) {
272
+ if (move.family === "ERv" && Math.abs(move.amount) === 1) {
273
273
  return new Move(
274
274
  new QuantumMove("x", move.innerLayer, move.outerLayer),
275
275
  move.amount * 2
276
276
  );
277
277
  }
278
- if (move.family === "DLLv" && Math.abs(move.amount) === 1) {
278
+ if (move.family === "ILv" && Math.abs(move.amount) === 1) {
279
279
  return new Move(
280
280
  new QuantumMove("x", move.innerLayer, move.outerLayer),
281
281
  -move.amount * 2
@@ -287,7 +287,7 @@ var MegaminxScramblingNotationMapper = class {
287
287
  move.amount
288
288
  );
289
289
  }
290
- if (move.family === "DDv") {
290
+ if (move.family === "Dv") {
291
291
  return new Move("y", -move.amount);
292
292
  }
293
293
  return this.child.notationToExternal(move);
@@ -2147,11 +2147,11 @@ function defaultnets() {
2147
2147
  ],
2148
2148
  // twelve faces: dodecahedron; U/F/R/F/BL/BR from megaminx
2149
2149
  12: [
2150
- ["U", "FF", "", "", "", ""],
2151
- ["FF", "U", "R", "FR", "FL", "L"],
2152
- ["R", "FF", "", "", "DR", ""],
2153
- ["DR", "R", "", "BB", "", ""],
2154
- ["BB", "DR", "BR", "BL", "DL", "DD"]
2150
+ ["U", "F", "", "", "", ""],
2151
+ ["F", "U", "R", "C", "A", "L"],
2152
+ ["R", "F", "", "", "E", ""],
2153
+ ["E", "R", "", "BF", "", ""],
2154
+ ["BF", "E", "BR", "BL", "I", "D"]
2155
2155
  ],
2156
2156
  // twenty faces: icosahedron
2157
2157
  20: [
@@ -2197,17 +2197,17 @@ function defaultcolors() {
2197
2197
  },
2198
2198
  12: {
2199
2199
  U: "#ffffff" /* White */,
2200
- FF: "#008800" /* DarkGreen */,
2200
+ F: "#008800" /* DarkGreen */,
2201
2201
  R: "#ff0000" /* Red */,
2202
- FR: "#ffffd0" /* Cream */,
2203
- FL: "#3399ff" /* Aqua */,
2202
+ C: "#ffffd0" /* Cream */,
2203
+ A: "#3399ff" /* Aqua */,
2204
2204
  L: "#8800dd" /* Purple */,
2205
- DR: "#ff66cc" /* Pink */,
2206
- BB: "#99ff00" /* Lime */,
2205
+ E: "#ff66cc" /* Pink */,
2206
+ BF: "#99ff00" /* Lime */,
2207
2207
  BR: "#0000ff" /* DarkBlue */,
2208
2208
  BL: "#ffff00" /* Yellow */,
2209
- DL: "#ff8000" /* Orange */,
2210
- DD: "#aaaaaa" /* Gray */
2209
+ I: "#ff8000" /* Orange */,
2210
+ D: "#aaaaaa" /* Gray */
2211
2211
  },
2212
2212
  20: {
2213
2213
  R: "#db69f0",
@@ -2264,72 +2264,72 @@ var orientationDefaults = {
2264
2264
  },
2265
2265
  12: {
2266
2266
  v: [
2267
- "URFF",
2268
- "UFFL",
2267
+ "URF",
2268
+ "UFL",
2269
2269
  "ULBL",
2270
2270
  "UBLBR",
2271
2271
  "UBRR",
2272
- "DDDRBB",
2273
- "DDBBDL",
2274
- "DDDLFL",
2275
- "DDFLFR",
2276
- "DDFRDR",
2277
- "LFLDL",
2278
- "FLLFF",
2279
- "FFFRFL",
2280
- "FRFFR",
2281
- "RDRFR",
2282
- "DRRBR",
2283
- "BRBBDR",
2284
- "BBBRBL",
2285
- "BLDLBB",
2286
- "DLBLL"
2272
+ "DEBF",
2273
+ "DBFI",
2274
+ "DIA",
2275
+ "DAC",
2276
+ "DCE",
2277
+ "LAI",
2278
+ "ALF",
2279
+ "FCA",
2280
+ "CFR",
2281
+ "REC",
2282
+ "ERBR",
2283
+ "BRBFE",
2284
+ "BFBRBL",
2285
+ "BLIBF",
2286
+ "IBLL"
2287
2287
  ],
2288
2288
  e: [
2289
- "UFF",
2289
+ "UF",
2290
2290
  "UR",
2291
2291
  "UBR",
2292
2292
  "UBL",
2293
2293
  "UL",
2294
- "DRR",
2295
- "DRBR",
2296
- "DRBB",
2297
- "DRDD",
2298
- "DRFR",
2299
- "DLBB",
2300
- "DLBL",
2301
- "DLL",
2302
- "DLFL",
2303
- "DLDD",
2304
- "FLFR",
2305
- "FRFF",
2306
- "FFFL",
2307
- "BBBR",
2294
+ "ER",
2295
+ "EBR",
2296
+ "EBF",
2297
+ "ED",
2298
+ "EC",
2299
+ "IBF",
2300
+ "IBL",
2301
+ "IL",
2302
+ "IA",
2303
+ "ID",
2304
+ "AC",
2305
+ "CF",
2306
+ "FA",
2307
+ "BFBR",
2308
2308
  "BRBL",
2309
- "BLBB",
2310
- "FRDD",
2311
- "FLDD",
2312
- "FLL",
2313
- "FFL",
2314
- "FFR",
2315
- "FRR",
2316
- "BBDD",
2309
+ "BLBF",
2310
+ "CD",
2311
+ "AD",
2312
+ "AL",
2313
+ "FL",
2314
+ "FR",
2315
+ "CR",
2316
+ "BFD",
2317
2317
  "BRR",
2318
2318
  "BLL"
2319
2319
  ],
2320
2320
  c: [
2321
- "UFF",
2322
- "FFU",
2323
- "DDBB",
2324
- "BBDD",
2325
- "FLDD",
2326
- "FRDD",
2321
+ "UF",
2322
+ "FU",
2323
+ "DBF",
2324
+ "BFD",
2325
+ "AD",
2326
+ "CD",
2327
2327
  "BRU",
2328
2328
  "BLU",
2329
- "LFL",
2330
- "RFL",
2331
- "DRBR",
2332
- "DLBL"
2329
+ "LA",
2330
+ "RA",
2331
+ "EBR",
2332
+ "IBL"
2333
2333
  ]
2334
2334
  },
2335
2335
  20: {
@@ -2422,7 +2422,7 @@ function defaultOrientations() {
2422
2422
  // FLUR towards viewer
2423
2423
  12: [
2424
2424
  ["U", [0, 1, 0]],
2425
- ["FF", [0, 0, 1]]
2425
+ ["F", [0, 0, 1]]
2426
2426
  ],
2427
2427
  // F towards viewer
2428
2428
  20: [