cubing 0.61.0 → 0.61.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 (77) hide show
  1. package/dist/bin/chunks/chunk-BIRBVHTR.js +14 -0
  2. package/dist/bin/chunks/chunk-BIRBVHTR.js.map +7 -0
  3. package/dist/bin/order.js +46 -42
  4. package/dist/bin/order.js.map +2 -2
  5. package/dist/bin/puzzle-geometry-bin.js +379 -257
  6. package/dist/bin/puzzle-geometry-bin.js.map +3 -3
  7. package/dist/bin/scramble.js +124 -102
  8. package/dist/bin/scramble.js.map +3 -3
  9. package/dist/lib/cubing/{KPattern-CU9Suh1T.d.ts → PuzzleLoader-CkghxdIL.d.ts} +186 -179
  10. package/dist/lib/cubing/alg/index.d.ts +2 -2
  11. package/dist/lib/cubing/bluetooth/index.d.ts +3 -3
  12. package/dist/lib/cubing/bluetooth/index.js +4 -4
  13. package/dist/lib/cubing/{bluetooth-puzzle-gTRbIRyj.d.ts → bluetooth-puzzle-c-_IBAdu.d.ts} +1 -1
  14. package/dist/lib/cubing/chunks/{chunk-PVOSBZRD.js → chunk-3PS5LIPR.js} +3 -3
  15. package/dist/lib/cubing/chunks/{chunk-PVOSBZRD.js.map → chunk-3PS5LIPR.js.map} +1 -1
  16. package/dist/lib/cubing/chunks/{chunk-RKTO4CAU.js → chunk-IHFKNNCV.js} +2 -2
  17. package/dist/lib/cubing/chunks/{chunk-BUZPONAW.js → chunk-LCJT5ROJ.js} +2 -2
  18. package/dist/lib/cubing/chunks/{chunk-WIZJQ7QS.js → chunk-MZKROP74.js} +15 -15
  19. package/dist/lib/cubing/chunks/{chunk-RUSWM2KK.js → chunk-QSGI7DXX.js} +5 -5
  20. package/dist/lib/cubing/chunks/{chunk-RUSWM2KK.js.map → chunk-QSGI7DXX.js.map} +1 -1
  21. package/dist/lib/cubing/chunks/{chunk-REBGU5ET.js → chunk-T3SF7NHB.js} +2 -2
  22. package/dist/lib/cubing/chunks/{chunk-PSQEELP4.js → chunk-WAYEJXCG.js} +1 -1
  23. package/dist/lib/cubing/chunks/chunk-WAYEJXCG.js.map +7 -0
  24. package/dist/lib/cubing/chunks/{chunk-ABQAUY7H.js → chunk-WI337PMF.js} +3 -3
  25. package/dist/lib/cubing/chunks/{chunk-OJI4YUWF.js → chunk-ZGT5MZSV.js} +4 -4
  26. package/dist/lib/cubing/chunks/{chunk-NX2Q6B7Y.js → chunk-ZKJKRQKY.js} +2 -2
  27. package/dist/lib/cubing/chunks/{chunk-NX2Q6B7Y.js.map → chunk-ZKJKRQKY.js.map} +2 -2
  28. package/dist/lib/cubing/chunks/{inside-PM6546BQ.js → inside-UAY7NCJR.js} +12 -12
  29. package/dist/lib/cubing/chunks/{puzzles-dynamic-3x3x3-JWIWLLZA.js → puzzles-dynamic-3x3x3-FYXD7SIU.js} +14 -13
  30. package/dist/lib/cubing/chunks/puzzles-dynamic-3x3x3-FYXD7SIU.js.map +7 -0
  31. package/dist/lib/cubing/chunks/{puzzles-dynamic-side-events-BOGUHF4Q.js → puzzles-dynamic-side-events-IMYJ533P.js} +1 -1
  32. package/dist/lib/cubing/chunks/puzzles-dynamic-side-events-IMYJ533P.js.map +7 -0
  33. package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-SYC27DSG.js → search-dynamic-sgs-side-events-E5KVBK2Y.js} +4 -4
  34. package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-QGGV4PCJ.js → search-dynamic-sgs-unofficial-IFHNOIEL.js} +4 -4
  35. package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-IE5W637Q.js → search-dynamic-solve-4x4x4-QVAXVZBA.js} +7 -7
  36. package/dist/lib/cubing/chunks/search-worker-entry.js +3 -3
  37. package/dist/lib/cubing/chunks/{twisty-dynamic-3d-LPZQIDD2.js → twisty-dynamic-3d-O6UL3R7C.js} +5 -5
  38. package/dist/lib/cubing/{index-CORXpckt.d.ts → index-B_8W-2zR.d.ts} +1 -1
  39. package/dist/lib/cubing/kpuzzle/index.d.ts +1 -1
  40. package/dist/lib/cubing/kpuzzle/index.js +1 -1
  41. package/dist/lib/cubing/notation/index.d.ts +1 -1
  42. package/dist/lib/cubing/notation/index.js +3 -3
  43. package/dist/lib/cubing/protocol/index.d.ts +1 -1
  44. package/dist/lib/cubing/protocol/index.js +3 -3
  45. package/dist/lib/cubing/puzzle-geometry/index.d.ts +2 -2
  46. package/dist/lib/cubing/puzzle-geometry/index.js +138 -179
  47. package/dist/lib/cubing/puzzle-geometry/index.js.map +3 -3
  48. package/dist/lib/cubing/puzzles/index.d.ts +1 -1
  49. package/dist/lib/cubing/puzzles/index.js +3 -3
  50. package/dist/lib/cubing/scramble/index.d.ts +2 -2
  51. package/dist/lib/cubing/scramble/index.js +6 -6
  52. package/dist/lib/cubing/search/index.d.ts +3 -3
  53. package/dist/lib/cubing/search/index.js +6 -6
  54. package/dist/lib/cubing/stream/index.d.ts +2 -2
  55. package/dist/lib/cubing/twisty/index.d.ts +2 -2
  56. package/dist/lib/cubing/twisty/index.js +26 -5
  57. package/dist/lib/cubing/twisty/index.js.map +2 -2
  58. package/experimental-json-schema/kpuzzle/KPatternData.schema.json +22 -30
  59. package/experimental-json-schema/kpuzzle/KPuzzleDefinition.schema.json +72 -89
  60. package/experimental-json-schema/kpuzzle/KTransformationData.schema.json +17 -26
  61. package/package.json +55 -100
  62. package/dist/bin/chunks/chunk-J53ID3VX.js +0 -26
  63. package/dist/bin/chunks/chunk-J53ID3VX.js.map +0 -7
  64. package/dist/lib/cubing/chunks/chunk-PSQEELP4.js.map +0 -7
  65. package/dist/lib/cubing/chunks/puzzles-dynamic-3x3x3-JWIWLLZA.js.map +0 -7
  66. package/dist/lib/cubing/chunks/puzzles-dynamic-side-events-BOGUHF4Q.js.map +0 -7
  67. /package/dist/lib/cubing/chunks/{chunk-RKTO4CAU.js.map → chunk-IHFKNNCV.js.map} +0 -0
  68. /package/dist/lib/cubing/chunks/{chunk-BUZPONAW.js.map → chunk-LCJT5ROJ.js.map} +0 -0
  69. /package/dist/lib/cubing/chunks/{chunk-WIZJQ7QS.js.map → chunk-MZKROP74.js.map} +0 -0
  70. /package/dist/lib/cubing/chunks/{chunk-REBGU5ET.js.map → chunk-T3SF7NHB.js.map} +0 -0
  71. /package/dist/lib/cubing/chunks/{chunk-ABQAUY7H.js.map → chunk-WI337PMF.js.map} +0 -0
  72. /package/dist/lib/cubing/chunks/{chunk-OJI4YUWF.js.map → chunk-ZGT5MZSV.js.map} +0 -0
  73. /package/dist/lib/cubing/chunks/{inside-PM6546BQ.js.map → inside-UAY7NCJR.js.map} +0 -0
  74. /package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-SYC27DSG.js.map → search-dynamic-sgs-side-events-E5KVBK2Y.js.map} +0 -0
  75. /package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-QGGV4PCJ.js.map → search-dynamic-sgs-unofficial-IFHNOIEL.js.map} +0 -0
  76. /package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-IE5W637Q.js.map → search-dynamic-solve-4x4x4-QVAXVZBA.js.map} +0 -0
  77. /package/dist/lib/cubing/chunks/{twisty-dynamic-3d-LPZQIDD2.js.map → twisty-dynamic-3d-O6UL3R7C.js.map} +0 -0
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env -S node --
2
+
3
+ // src/metadata/packageVersion.ts
4
+ import "path-class";
5
+ var packageVersion = (
6
+ // biome-ignore lint/suspicious/noTsIgnore: This comment is stil present in the compiled file, where an error is *not* expected.
7
+ /** @ts-ignore Populated by `esbuild` at compile time. */
8
+ "0.61.2"
9
+ );
10
+
11
+ export {
12
+ packageVersion
13
+ };
14
+ //# sourceMappingURL=chunk-BIRBVHTR.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/metadata/packageVersion.ts"],
4
+ "sourcesContent": ["import type { JSONSchemaForNPMPackageJsonFiles } from \"@schemastore/package\";\nimport { Path } from \"path-class\";\n\nexport const packageVersion: string =\n // biome-ignore lint/suspicious/noTsIgnore: This comment is stil present in the compiled file, where an error is *not* expected.\n /** @ts-ignore Populated by `esbuild` at compile time. */\n globalThis.PACKAGE_VERSION ??\n // We don't want `package.json` in the import graph (because this will trip up `esbuild` by default), so we load JSON instead using a dynamic import here.\n // This entire fallback expression should get compiled out by `esbuild`.\n (\n (await Path.resolve(\n \"../../package.json\",\n import.meta.url,\n ).readJSON()) as JSONSchemaForNPMPackageJsonFiles\n ).version;\n"],
5
+ "mappings": ";;;AACA,OAAqB;AAEd,IAAM;AAAA;AAAA;AAAA,EAGX;AAAA;",
6
+ "names": []
7
+ }
package/dist/bin/order.js CHANGED
@@ -1,51 +1,55 @@
1
- #!/usr/bin/env node
2
- import "./chunks/chunk-J53ID3VX.js";
1
+ #!/usr/bin/env -S node --
2
+ import {
3
+ packageVersion
4
+ } from "./chunks/chunk-BIRBVHTR.js";
3
5
 
4
6
  // src/bin/order.ts
7
+ import { argv } from "node:process";
8
+ import { argument, map, message, object, string } from "@optique/core";
9
+ import { run } from "@optique/run";
5
10
  import { Alg } from "cubing/alg";
6
11
  import { KPuzzle } from "cubing/kpuzzle";
7
12
  import { getPuzzleGeometryByName } from "cubing/puzzle-geometry";
8
13
  import { puzzles } from "cubing/puzzles";
9
- var {
10
- binary,
11
- string: cmdString,
12
- command,
13
- positional,
14
- run
15
- } = await import("cmd-ts-too");
16
- var ReadAlg = {
17
- async from(str) {
18
- return Alg.fromString(str);
19
- }
20
- };
21
- var app = command({
22
- name: "order",
23
- description: `Example: order 3x3x3 "R U R' U R U2' R'"`,
24
- args: {
25
- puzzleGeometryID: positional({
26
- type: cmdString,
27
- displayName: "Puzzle geometry ID"
14
+ import { Path } from "path-class";
15
+ var args = run(
16
+ object({
17
+ puzzleGeometryID: argument(string({ metavar: "PUZZLE" }), {
18
+ description: message`Puzzle geometry ID`
28
19
  }),
29
- alg: positional({
30
- type: ReadAlg,
31
- displayName: "Alg"
32
- })
33
- },
34
- handler: async ({ puzzleGeometryID, alg }) => {
35
- const puzzleLoader = puzzles[puzzleGeometryID];
36
- const kpuzzle = await (async () => {
37
- if (puzzleLoader) {
38
- return await puzzles[puzzleGeometryID].kpuzzle();
39
- } else {
40
- const pg = getPuzzleGeometryByName(puzzleGeometryID, {
41
- allMoves: true
42
- });
43
- return new KPuzzle(pg.getKPuzzleDefinition(true));
44
- }
45
- })();
46
- const order = kpuzzle.algToTransformation(alg).repetitionOrder();
47
- console.log(order);
20
+ alg: map(
21
+ argument(string({ metavar: "ALG" }), {
22
+ description: message`Alg`
23
+ }),
24
+ Alg.fromString
25
+ )
26
+ }),
27
+ {
28
+ programName: new Path(argv[1]).basename.path,
29
+ description: message`Example: order 3x3x3 "R U R' U R U2' R'"`,
30
+ help: "option",
31
+ completion: {
32
+ mode: "option",
33
+ name: "plural"
34
+ },
35
+ version: {
36
+ mode: "option",
37
+ value: packageVersion
38
+ }
39
+ }
40
+ );
41
+ var { puzzleGeometryID, alg } = args;
42
+ var puzzleLoader = puzzles[puzzleGeometryID];
43
+ var kpuzzle = await (async () => {
44
+ if (puzzleLoader) {
45
+ return await puzzles[puzzleGeometryID].kpuzzle();
46
+ } else {
47
+ const pg = getPuzzleGeometryByName(puzzleGeometryID, {
48
+ allMoves: true
49
+ });
50
+ return new KPuzzle(pg.getKPuzzleDefinition(true));
48
51
  }
49
- });
50
- await run(binary(app), process.argv);
52
+ })();
53
+ var order = kpuzzle.algToTransformation(alg).repetitionOrder();
54
+ console.log(order);
51
55
  //# sourceMappingURL=order.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/bin/order.ts"],
4
- "sourcesContent": ["// To run this file directly:\n// bun run src/bin/order.ts -- 3x3x3 \"R U R' U R U2' R'\"\n\nimport type { Type } from \"cmd-ts-too\";\nimport { Alg } from \"cubing/alg\";\nimport { KPuzzle } from \"cubing/kpuzzle\";\nimport { getPuzzleGeometryByName } from \"cubing/puzzle-geometry\";\nimport { puzzles } from \"cubing/puzzles\";\nimport \"./guards/cmd-ts-too-guard\";\n\nconst {\n binary,\n string: cmdString,\n command,\n positional,\n run,\n} = await import(\"cmd-ts-too\");\n\n// TODO: dedup with `screenshot` implementation.\nconst ReadAlg: Type<string, Alg> = {\n async from(str) {\n return Alg.fromString(str);\n },\n};\n\nconst app = command({\n name: \"order\",\n description: \"Example: order 3x3x3 \\\"R U R' U R U2' R'\\\"\",\n args: {\n puzzleGeometryID: positional({\n type: cmdString,\n displayName: \"Puzzle geometry ID\",\n }),\n alg: positional({\n type: ReadAlg,\n displayName: \"Alg\",\n }),\n },\n handler: async ({ puzzleGeometryID, alg }) => {\n /*\n * Turn a name into a geometry.\n */\n\n const puzzleLoader = puzzles[puzzleGeometryID];\n const kpuzzle = await (async () => {\n if (puzzleLoader) {\n return await puzzles[puzzleGeometryID].kpuzzle();\n } else {\n const pg = getPuzzleGeometryByName(puzzleGeometryID, {\n allMoves: true,\n });\n return new KPuzzle(pg.getKPuzzleDefinition(true));\n }\n })();\n const order = kpuzzle.algToTransformation(alg).repetitionOrder();\n console.log(order);\n },\n});\n\nawait run(binary(app), process.argv);\n"],
5
- "mappings": ";;;;AAIA,SAAS,WAAW;AACpB,SAAS,eAAe;AACxB,SAAS,+BAA+B;AACxC,SAAS,eAAe;AAGxB,IAAM;AAAA,EACJ;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AACF,IAAI,MAAM,OAAO,YAAY;AAG7B,IAAM,UAA6B;AAAA,EACjC,MAAM,KAAK,KAAK;AACd,WAAO,IAAI,WAAW,GAAG;AAAA,EAC3B;AACF;AAEA,IAAM,MAAM,QAAQ;AAAA,EAClB,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,IACJ,kBAAkB,WAAW;AAAA,MAC3B,MAAM;AAAA,MACN,aAAa;AAAA,IACf,CAAC;AAAA,IACD,KAAK,WAAW;AAAA,MACd,MAAM;AAAA,MACN,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,SAAS,OAAO,EAAE,kBAAkB,IAAI,MAAM;AAK5C,UAAM,eAAe,QAAQ,gBAAgB;AAC7C,UAAM,UAAU,OAAO,YAAY;AACjC,UAAI,cAAc;AAChB,eAAO,MAAM,QAAQ,gBAAgB,EAAE,QAAQ;AAAA,MACjD,OAAO;AACL,cAAM,KAAK,wBAAwB,kBAAkB;AAAA,UACnD,UAAU;AAAA,QACZ,CAAC;AACD,eAAO,IAAI,QAAQ,GAAG,qBAAqB,IAAI,CAAC;AAAA,MAClD;AAAA,IACF,GAAG;AACH,UAAM,QAAQ,QAAQ,oBAAoB,GAAG,EAAE,gBAAgB;AAC/D,YAAQ,IAAI,KAAK;AAAA,EACnB;AACF,CAAC;AAED,MAAM,IAAI,OAAO,GAAG,GAAG,QAAQ,IAAI;",
4
+ "sourcesContent": ["/**\n\nTo run this file directly:\n\n```shell\nbun run ./src/bin/order.ts -- 3x3x3 \"R U R' U R U2' R'\"\n```\n\nTo test completions:\n\n```shell\n# fish (from repo root)\nset PATH (pwd)/src/test/bin-path $PATH\norder --completions fish | source\n```\n\n```shell\n# zsh (from repo root)\nautoload -Uz compinit\ncompinit\nexport PATH=$(pwd)/src/test/bin-path:$PATH\nsource <(order --completions zsh)\n```\n\n*/\n\nimport { argv } from \"node:process\";\nimport { argument, map, message, object, string } from \"@optique/core\";\nimport { run } from \"@optique/run\";\nimport { Alg } from \"cubing/alg\";\nimport { KPuzzle } from \"cubing/kpuzzle\";\nimport { getPuzzleGeometryByName } from \"cubing/puzzle-geometry\";\nimport { puzzles } from \"cubing/puzzles\";\nimport { Path } from \"path-class\";\nimport { packageVersion } from \"../metadata/packageVersion\";\n\nconst args = run(\n object({\n puzzleGeometryID: argument(string({ metavar: \"PUZZLE\" }), {\n description: message`Puzzle geometry ID`,\n }),\n alg: map(\n argument(string({ metavar: \"ALG\" }), {\n description: message`Alg`,\n }),\n Alg.fromString,\n ),\n }),\n {\n programName: new Path(argv[1]).basename.path,\n description: message`Example: order 3x3x3 \"R U R' U R U2' R'\"`,\n help: \"option\",\n completion: {\n mode: \"option\",\n name: \"plural\",\n },\n version: {\n mode: \"option\",\n value: packageVersion,\n },\n },\n);\n\nconst { puzzleGeometryID, alg } = args;\n\n/*\n * Turn a name into a geometry.\n */\nconst puzzleLoader = puzzles[puzzleGeometryID];\nconst kpuzzle = await (async () => {\n if (puzzleLoader) {\n return await puzzles[puzzleGeometryID].kpuzzle();\n } else {\n const pg = getPuzzleGeometryByName(puzzleGeometryID, {\n allMoves: true,\n });\n return new KPuzzle(pg.getKPuzzleDefinition(true));\n }\n})();\n\nconst order = kpuzzle.algToTransformation(alg).repetitionOrder();\nconsole.log(order);\n"],
5
+ "mappings": ";;;;;;AA0BA,SAAS,YAAY;AACrB,SAAS,UAAU,KAAK,SAAS,QAAQ,cAAc;AACvD,SAAS,WAAW;AACpB,SAAS,WAAW;AACpB,SAAS,eAAe;AACxB,SAAS,+BAA+B;AACxC,SAAS,eAAe;AACxB,SAAS,YAAY;AAGrB,IAAM,OAAO;AAAA,EACX,OAAO;AAAA,IACL,kBAAkB,SAAS,OAAO,EAAE,SAAS,SAAS,CAAC,GAAG;AAAA,MACxD,aAAa;AAAA,IACf,CAAC;AAAA,IACD,KAAK;AAAA,MACH,SAAS,OAAO,EAAE,SAAS,MAAM,CAAC,GAAG;AAAA,QACnC,aAAa;AAAA,MACf,CAAC;AAAA,MACD,IAAI;AAAA,IACN;AAAA,EACF,CAAC;AAAA,EACD;AAAA,IACE,aAAa,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA,IACxC,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,EAAE,kBAAkB,IAAI,IAAI;AAKlC,IAAM,eAAe,QAAQ,gBAAgB;AAC7C,IAAM,UAAU,OAAO,YAAY;AACjC,MAAI,cAAc;AAChB,WAAO,MAAM,QAAQ,gBAAgB,EAAE,QAAQ;AAAA,EACjD,OAAO;AACL,UAAM,KAAK,wBAAwB,kBAAkB;AAAA,MACnD,UAAU;AAAA,IACZ,CAAC;AACD,WAAO,IAAI,QAAQ,GAAG,qBAAqB,IAAI,CAAC;AAAA,EAClD;AACF,GAAG;AAEH,IAAM,QAAQ,QAAQ,oBAAoB,GAAG,EAAE,gBAAgB;AAC/D,QAAQ,IAAI,KAAK;",
6
6
  "names": []
7
7
  }