cubing 0.53.2 → 0.53.3
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.
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/bin/guards/cmd-ts-guard.ts
|
|
4
|
+
import { exit } from "node:process";
|
|
5
|
+
try {
|
|
6
|
+
await import("cmd-ts");
|
|
7
|
+
} catch (e) {
|
|
8
|
+
console.error(
|
|
9
|
+
`Could not import \`cmd-ts\`. This is not automatically installed as a regular dependency of \`cubing\`.
|
|
10
|
+
|
|
11
|
+
If you are installing globally, consider using \`bun\`: https://bun.sh/
|
|
12
|
+
|
|
13
|
+
bun install --global cubing
|
|
14
|
+
|
|
15
|
+
If you are installing using \`npx\` globally, run:
|
|
16
|
+
|
|
17
|
+
npm install --global cubing cmd-ts
|
|
18
|
+
|
|
19
|
+
If you are using \`npx\` within a repo, run:
|
|
20
|
+
|
|
21
|
+
npm install cubing cmd-ts
|
|
22
|
+
`
|
|
23
|
+
);
|
|
24
|
+
exit(1);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=chunk-G7T6VCO5.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/bin/guards/cmd-ts-guard.ts"],
|
|
4
|
+
"sourcesContent": ["import { exit } from \"node:process\";\n\ntry {\n await import(\"cmd-ts\");\n} catch (e) {\n // Note that this doesn't fail when installed using `bun install --global`, as `bun` automatically loads deps.\n console.error(\n `Could not import \\`cmd-ts\\`. This is not automatically installed as a regular dependency of \\`cubing\\`.\n\nIf you are installing globally, consider using \\`bun\\`: https://bun.sh/\n\n bun install --global cubing\n\nIf you are installing using \\`npx\\` globally, run:\n\n npm install --global cubing cmd-ts\n\nIf you are using \\`npx\\` within a repo, run:\n\n npm install cubing cmd-ts\n`,\n );\n exit(1);\n}\n"],
|
|
5
|
+
"mappings": ";;;AAAA,SAAS,YAAY;AAErB,IAAI;AACF,QAAM,OAAO,QAAQ;AACvB,SAAS,GAAG;AAEV,UAAQ;AAAA,IACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcF;AACA,OAAK,CAAC;AACR;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/bin/order.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import "./chunks/chunk-G7T6VCO5.js";
|
|
2
3
|
|
|
3
4
|
// src/bin/order.ts
|
|
4
|
-
import {
|
|
5
|
-
binary,
|
|
6
|
-
string as cmdString,
|
|
7
|
-
command,
|
|
8
|
-
positional,
|
|
9
|
-
run
|
|
10
|
-
} from "cmd-ts";
|
|
11
5
|
import { Alg } from "cubing/alg";
|
|
12
6
|
import { KPuzzle } from "cubing/kpuzzle";
|
|
13
7
|
import { getPuzzleGeometryByName } from "cubing/puzzle-geometry";
|
|
14
8
|
import { puzzles } from "cubing/puzzles";
|
|
9
|
+
var {
|
|
10
|
+
binary,
|
|
11
|
+
string: cmdString,
|
|
12
|
+
command,
|
|
13
|
+
positional,
|
|
14
|
+
run
|
|
15
|
+
} = await import("cmd-ts");
|
|
15
16
|
var ReadAlg = {
|
|
16
17
|
async from(str) {
|
|
17
18
|
return Alg.fromString(str);
|
package/dist/bin/order.js.map
CHANGED
|
@@ -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 {
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["// To run this file directly:\n// bun run src/bin/order.ts -- 3x3x3 \"R U R' U R U2' R'\"\n\nimport { Alg } from \"cubing/alg\";\nimport { KPuzzle } from \"cubing/kpuzzle\";\nimport { getPuzzleGeometryByName } from \"cubing/puzzle-geometry\";\nimport { puzzles } from \"cubing/puzzles\";\n\nimport type { Type } from \"cmd-ts\";\nimport \"./guards/cmd-ts-guard\";\n\nconst {\n binary,\n string: cmdString,\n command,\n positional,\n run,\n} = await import(\"cmd-ts\");\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": ";;;;AAGA,SAAS,WAAW;AACpB,SAAS,eAAe;AACxB,SAAS,+BAA+B;AACxC,SAAS,eAAe;AAKxB,IAAM;AAAA,EACJ;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AACF,IAAI,MAAM,OAAO,QAAQ;AAGzB,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;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/bin/scramble.js
CHANGED
|
@@ -1,32 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// src/bin/guards/cmd-ts-guard.ts
|
|
4
|
-
try {
|
|
5
|
-
await import("cmd-ts");
|
|
6
|
-
} catch (e) {
|
|
7
|
-
throw new Error(
|
|
8
|
-
`Could not import \`cmd-ts\`. This is not automatically installed as a regular dependency of \`cubing\`.
|
|
9
|
-
|
|
10
|
-
If you are installing globally, consider using \`bun\`: https://bun.sh/
|
|
11
|
-
|
|
12
|
-
bun install --global cubing
|
|
13
|
-
|
|
14
|
-
If you are installing using \`npx\` globally, run:
|
|
15
|
-
|
|
16
|
-
npm install --global cubing cmd-ts
|
|
17
|
-
|
|
18
|
-
If you are using \`npx\` within a repo, run:
|
|
19
|
-
|
|
20
|
-
npm install cubing cmd-ts
|
|
21
|
-
`
|
|
22
|
-
);
|
|
23
|
-
}
|
|
2
|
+
import "./chunks/chunk-G7T6VCO5.js";
|
|
24
3
|
|
|
25
4
|
// src/bin/scramble.ts
|
|
26
|
-
import {
|
|
5
|
+
import { eventInfo } from "cubing/puzzles";
|
|
6
|
+
import { randomScrambleForEvent } from "cubing/scramble";
|
|
7
|
+
import { setSearchDebug } from "cubing/search";
|
|
8
|
+
var {
|
|
27
9
|
binary,
|
|
28
|
-
number
|
|
29
|
-
string
|
|
10
|
+
number: cmdNumber,
|
|
11
|
+
string: cmdString,
|
|
30
12
|
command,
|
|
31
13
|
flag,
|
|
32
14
|
oneOf,
|
|
@@ -34,10 +16,7 @@ import {
|
|
|
34
16
|
optional,
|
|
35
17
|
positional,
|
|
36
18
|
run
|
|
37
|
-
}
|
|
38
|
-
import { eventInfo } from "cubing/puzzles";
|
|
39
|
-
import { randomScrambleForEvent } from "cubing/scramble";
|
|
40
|
-
import { setSearchDebug } from "cubing/search";
|
|
19
|
+
} = await import("cmd-ts");
|
|
41
20
|
var outputFormats = ["text", "link", "json-text"];
|
|
42
21
|
var notationTypes = ["auto", "LGN"];
|
|
43
22
|
var app = command({
|
package/dist/bin/scramble.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/bin/
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
3
|
+
"sources": ["../../src/bin/scramble.ts"],
|
|
4
|
+
"sourcesContent": ["// To run this file directly:\n// bun run src/bin/scramble.ts -- 333\n\n// TODO: completions for `bash`, `zsh`, and `fish`: https://github.com/loilo/completarr\n\n// Important! We import this instead of inlining, because `esbuild` preserves import order semantics but hoists imports above any code inlined here.\n\nimport type { Alg } from \"cubing/alg\";\nimport { eventInfo } from \"cubing/puzzles\";\nimport { randomScrambleForEvent } from \"cubing/scramble\";\nimport { setSearchDebug } from \"cubing/search\";\nimport \"./guards/cmd-ts-guard\";\n\nconst {\n binary,\n number: cmdNumber,\n string: cmdString,\n command,\n flag,\n oneOf,\n option,\n optional,\n positional,\n run,\n} = await import(\"cmd-ts\");\n\n// TODO: file an issue about printing these values.\nconst outputFormats = [\"text\", \"link\", \"json-text\"] as const;\nconst notationTypes = [\"auto\", \"LGN\"] as const;\n\nconst app = command({\n name: \"scramble\",\n args: {\n amount: option({\n description: \"Amount of scrambles\",\n type: cmdNumber,\n long: \"amount\",\n short: \"n\",\n defaultValue: () => 1,\n defaultValueIsSerializable: true,\n }),\n format: option({\n description: `Output format. One of: ${outputFormats.join(\", \")}`,\n type: optional(oneOf(outputFormats)),\n long: \"format\",\n short: \"f\",\n }),\n notation: option({\n description: `Notation type. One of: ${notationTypes.join(\", \")}`,\n type: optional(oneOf([\"auto\", \"LGN\"])),\n long: \"notation\",\n }),\n text: flag({\n description: \"Convenient shorthand for `--format text`.\",\n long: \"t\", // TODO: https://github.com/Schniz/cmd-ts/issues/221\n short: \"t\",\n }),\n eventID: positional({\n type: cmdString,\n displayName: \"WCA or unofficial event ID\",\n }),\n },\n handler: async ({ amount, format: argsFormat, notation, text, eventID }) => {\n const format =\n argsFormat ?? (text || !process.stdout.isTTY ? \"text\" : \"auto\");\n\n setSearchDebug({ logPerf: false, showWorkerInstantiationWarnings: false });\n\n function scrambleText(scramble: Alg): string {\n return scramble.toString({\n // TODO: any\n notation: notation as (typeof notationTypes)[number], // TODO: handle type conversion at arg parse time.\n });\n }\n\n function scrambleLink(scramble: Alg): string {\n const url = new URL(\"https://alpha.twizzle.net/edit/\");\n const puzzleID = eventInfo(eventID)?.puzzleID;\n puzzleID && url.searchParams.set(\"puzzle\", puzzleID);\n url.searchParams.set(\"alg\", scrambleText(scramble));\n return url.toString();\n }\n\n class JSONListPrinter<T> {\n #finished = false;\n #firstValuePrintedAlready = false;\n constructor() {\n process.stdout.write(\"[\\n \");\n }\n\n push(value: T) {\n if (this.#firstValuePrintedAlready) {\n process.stdout.write(\",\\n \");\n }\n this.#firstValuePrintedAlready = true;\n process.stdout.write(JSON.stringify(value));\n }\n\n finish() {\n if (this.#finished) {\n throw new Error(\"Tried to finish JSON list printing multiple times.\");\n }\n this.#finished = true;\n console.log(\"\\n]\");\n }\n }\n\n if (format !== \"json-text\" && amount === 1) {\n const scramble = await randomScrambleForEvent(eventID);\n\n switch (format) {\n case \"text\": {\n console.log(scrambleText(scramble));\n break;\n }\n case \"link\": {\n console.log(scrambleLink(scramble));\n break;\n }\n // @ts-ignore This is a code guard for future refactoring.\n case \"json-text\": {\n throw new Error(\n \"Encountered `json` format in code that is not expected to handle it.\",\n );\n }\n case \"auto\": {\n console.log(`${scrambleText(scramble)}\n\n\uD83D\uDD17 ${scrambleLink(scramble)}`);\n break;\n }\n default: {\n throw new Error(\"Unknown format!\");\n }\n }\n } else {\n const jsonListPrinter: JSONListPrinter<string> | undefined =\n format === \"json-text\" ? new JSONListPrinter() : undefined;\n for (let i = 0; i < amount; i++) {\n // @ts-ignore: Top-level await is okay because this is not part of the main library.\n const scramble = await randomScrambleForEvent(eventID);\n switch (format) {\n case \"text\": {\n console.log(`// Scramble #${i + 1}`);\n console.log(`${scrambleText(scramble)}\\n`);\n break;\n }\n case \"link\": {\n console.log(`// Scramble #${i + 1}`);\n console.log(`${scrambleLink(scramble)}\\n`);\n break;\n }\n case \"json-text\": {\n jsonListPrinter?.push(scramble.toString());\n break;\n }\n case \"auto\": {\n console.log(`// Scramble #${i + 1}\n${scrambleText(scramble)}\n\n\uD83D\uDD17 ${scrambleLink(scramble)}\n`);\n break;\n }\n default: {\n throw new Error(\"Unknown format!\");\n }\n }\n }\n jsonListPrinter?.finish();\n }\n },\n});\n\nawait run(binary(app), process.argv);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|