add progress to solver and introduce solver cli
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# dependencies (bun install)
|
||||
node_modules
|
||||
|
||||
# output
|
||||
out
|
||||
dist
|
||||
*.tgz
|
||||
|
||||
# code coverage
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# logs
|
||||
logs
|
||||
_.log
|
||||
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
||||
|
||||
# dotenv environment variable files
|
||||
.env
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# caches
|
||||
.eslintcache
|
||||
.cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# IntelliJ based IDEs
|
||||
.idea
|
||||
|
||||
# Finder (MacOS) folder config
|
||||
.DS_Store
|
||||
@@ -0,0 +1,15 @@
|
||||
# solver-cli
|
||||
|
||||
To install dependencies:
|
||||
|
||||
```bash
|
||||
bun install
|
||||
```
|
||||
|
||||
To run:
|
||||
|
||||
```bash
|
||||
bun run index.js
|
||||
```
|
||||
|
||||
This project was created using `bun init` in bun v1.2.10. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"lockfileVersion": 1,
|
||||
"workspaces": {
|
||||
"": {
|
||||
"name": "solver-cli",
|
||||
"dependencies": {
|
||||
"@cap.js/solver": "^0.0.3",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bun": "latest",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "^5",
|
||||
},
|
||||
},
|
||||
},
|
||||
"packages": {
|
||||
"@cap.js/solver": ["@cap.js/solver@0.0.3", "", {}, "sha512-J/Vso8LllJGBmVuj68mXalSsOg8a+Ry0/lnOYu63srk37UFlbQVWdcm63hARnEdOduR33DWS0Ot/yGHPliJhqw=="],
|
||||
|
||||
"@types/bun": ["@types/bun@1.2.10", "", { "dependencies": { "bun-types": "1.2.10" } }, "sha512-eilv6WFM3M0c9ztJt7/g80BDusK98z/FrFwseZgT4bXCq2vPhXD4z8R3oddmAn+R/Nmz9vBn4kweJKmGTZj+lg=="],
|
||||
|
||||
"@types/node": ["@types/node@22.14.1", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw=="],
|
||||
|
||||
"bun-types": ["bun-types@1.2.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-b5ITZMnVdf3m1gMvJHG+gIfeJHiQPJak0f7925Hxu6ZN5VKA8AGy4GZ4lM+Xkn6jtWxg5S3ldWvfmXdvnkp3GQ=="],
|
||||
|
||||
"typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
|
||||
|
||||
"undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bun
|
||||
|
||||
import solver from "@cap.js/solver";
|
||||
import kleur from "kleur";
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
|
||||
(async () => {
|
||||
if (args.length === 0) {
|
||||
console.log(`\n${kleur.cyan("@cap.js/cli")} ${kleur.gray(
|
||||
"cli solver for cap challenges"
|
||||
)}
|
||||
|
||||
Usage:
|
||||
${kleur.dim("$")} bunx ${kleur.bold("@cap.js/cli")} <challenges>
|
||||
|
||||
Options:
|
||||
<challenges> The challenges to solve in
|
||||
format \`salt:target\``);
|
||||
return;
|
||||
}
|
||||
|
||||
const challenges = args.map((arg) => {
|
||||
const [salt, target] = arg.split(":");
|
||||
|
||||
if (!salt || !target) {
|
||||
console.error(
|
||||
`${kleur.red("Error:")} ${kleur.yellow(arg)} is not a valid challenge`
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
return [salt, target];
|
||||
});
|
||||
|
||||
console.log(`\n${kleur.cyan("@cap.js/cli")} ${kleur.dim(`${challenges.length} challenges`)}\n\n\n`);
|
||||
|
||||
const solutions = await solver(challenges, {
|
||||
onProgress: (status) => {
|
||||
process.stdout.moveCursor(0, -2);
|
||||
process.stdout.clearScreenDown();
|
||||
console.log(
|
||||
`${status.result.salt}:${status.result.target}:${status.result.nonce}`
|
||||
);
|
||||
console.log(kleur.dim("\nSolving challenges… " + status.progress + "%"));
|
||||
},
|
||||
});
|
||||
|
||||
process.stdout.moveCursor(0, -2);
|
||||
process.stdout.clearScreenDown();
|
||||
})();
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "@cap.js/cli",
|
||||
"module": "index.js",
|
||||
"type": "module",
|
||||
"private": false,
|
||||
"devDependencies": {
|
||||
"@types/bun": "latest"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "^5"
|
||||
},
|
||||
"dependencies": {
|
||||
"@cap.js/solver": "^0.0.3"
|
||||
},
|
||||
"bin": {
|
||||
"cli": "./index.js"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user