torch-it 2.5.3 → 2.5.4
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.
- package/dist/torch-it.js +10 -10
- package/package.json +5 -5
package/dist/torch-it.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var De=Object.create;var Y=Object.defineProperty;var Ee=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Se=Object.prototype.hasOwnProperty;var Oe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var xe=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Te(t))!Se.call(e,r)&&r!==n&&Y(e,r,{get:()=>t[r],enumerable:!(s=Ee(t,r))||s.enumerable});return e};var g=(e,t,n)=>(n=e!=null?De(_e(e)):{},xe(t||!e||!e.__esModule?Y(n,"default",{value:e,enumerable:!0}):n,e));var le=Oe((lo,Ae)=>{Ae.exports={name:"torch-it",version:"2.5.4",description:"CLI to reset, clean, and rebuild Node.js project environments.",keywords:["cleanup","cli","docker","node"],homepage:"https://github.com/piyook/torch-it#readme",bugs:{url:"https://github.com/piyook/torch-it/issues"},license:"ISC",author:"",repository:{type:"git",url:"git+https://github.com/piyook/torch-it.git"},bin:{"torch-it":"dist/torch-it.js"},files:["dist","README.md"],type:"commonjs",main:"dist/torch-it.js",scripts:{build:'esbuild src/torch.ts --bundle --outfile=dist/torch-it.js --platform=node --format=cjs --minify --banner:js="#!/usr/bin/env node"',"torch-it":"npm run build && node dist/torch-it.js","torch-it:ts":"ts-node src/torch.ts",lint:"oxlint .","lint:fix":"oxlint . --fix",format:"prettier --check src/**/*.{ts,js,json} tests/**/*.{ts,js,json} package.json package-lock.json .commitlintrc.json","format:write":"prettier --write src/**/*.{ts,js,json} tests/**/*.{ts,js,json} package.json package-lock.json .commitlintrc.json",quality:"npm run lint && npm run format && npm test","validate-branch-name":"validate-branch-name",prepare:"husky",prepublishOnly:"npm run build",test:"tsc --noEmit && vitest run","test:watch":"vitest"},dependencies:{},devDependencies:{"@commitlint/cli":"^20.5.0","@commitlint/config-conventional":"^20.5.0","@types/node":"^25.6.0",esbuild:"^0.28.0",husky:"^9.1.7","lint-staged":"^16.4.0",oxlint:"^1.61.0",prettier:"^3.8.3","ts-node":"^10.9.2",typescript:"^6.0.3","validate-branch-name":"^1.3.2",vitest:"^4.1.5"},"lint-staged":{"*.{ts,tsx,js,jsx,mjs,cjs,json}":["oxlint --fix","prettier --write"]},"validate-branch-name":{pattern:"^(main|dev){1}$|^(feat|fix|hotfix|release|chore)/.+$",errorMsg:"INVALID BRANCH NAME: use format 'feat|fix|hotfix|release|core/your-branch-name'"}}});var D=(e,t)=>n=>`\x1B[${e}m${n}\x1B[${t}m`,l={BOLD:D("1","22"),CYAN:D("36","39"),GREEN:D("32","39"),RED:D("31","39"),YELLOW:D("33","39"),PURPLE:D("35","39"),RESET:e=>`\x1B[0m${e}`},a={INFO:"\u{1F525}",SUCCESS:"\u2705",FAIL:"\u274C",EXCLAMATION:"\u2757",WARN:"\u26A0\uFE0F",ROCKET:"\u{1F525}",CLEAN:"\u{1F525}",PHOENIX:"\u{1F525}",BUILD:"\u{1F528}",TARGET:"\u{1F525}",CELEBRATE:"\u{1F525}",STARS:"\u2728",BOX:"\u{1F4E6}",CLIPBOARD:"\u{1F4CB}",DOCKER:"\u{1F433}"};var j=g(require("fs")),U=!0;function $e(e){let t=new RegExp("\x1B\\[[0-9;]*m","g");return e.replace(t,"")}var E=e=>{U=e},q=()=>{U&&j.default.writeFileSync("torch-it.log","")},$=e=>{if(!U)return;let t=$e(e).replace(/^\n/,""),n=new Date().toISOString();j.default.appendFileSync("torch-it.log",`[${n}] ${t}
|
|
3
3
|
`)};function o(e,t){let n;switch(t){case"info":n=`${l.CYAN(a.INFO)} ${l.BOLD(e)}${l.RESET("")}`;break;case"success":n=`${l.GREEN(a.SUCCESS)} ${e}${l.RESET("")}`;break;case"warn":n=`${l.YELLOW(a.WARN)} ${e}${l.RESET("")}`;break;case"fail":n=`${l.RED(a.FAIL)} ${e}${l.RESET("")}`;break;case"step":n=`
|
|
4
|
-
${l.PURPLE("\u25B6")} ${l.BOLD(e)}${l.RESET("")}`;break;default:n=e}console.log(n)
|
|
4
|
+
${l.PURPLE("\u25B6")} ${l.BOLD(e)}${l.RESET("")}`;break;default:n=e}console.log(n),$(n)}function V(){v([` ${a.TARGET} TORCH LIT ${a.ROCKET}`],l.PURPLE);let e=`
|
|
5
5
|
) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
|
|
6
6
|
(( (( (( (( (( (( (( (( (( (( (( (( (( ((
|
|
7
7
|
) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
|
|
@@ -12,7 +12,7 @@ ${l.PURPLE("\u25B6")} ${l.BOLD(e)}${l.RESET("")}`;break;default:n=e}console.log(
|
|
|
12
12
|
| _ \\| | | | |_) | \\| || || \\| | | _
|
|
13
13
|
| |_) | |_| | _ <| |\\ || || |\\ | |_| |
|
|
14
14
|
|____/ \\___/|_| \\_\\_| \\_|___|_| \\_|\\____|
|
|
15
|
-
`;console.log(e)
|
|
15
|
+
`;console.log(e),$(e)}function J(){console.log(""),v([` ${a.PHOENIX} RISING FROM THE ASHES ${a.PHOENIX}`],l.PURPLE)}function X(e){let t=new RegExp("\x1B\\[[0-9;]*m","g");return e.replace(t,"").length}function v(e,t=l.GREEN){let n=Math.max(56,...e.map(r=>X(r))),s=t("\u2550".repeat(n));console.log(t("\u2554"+s+"\u2557")),e.forEach(r=>{if($(r),r.trim()==="")console.log(t("\u2551"+" ".repeat(n)+"\u2551"));else{let f=n-X(r);console.log(t("\u2551"+r+" ".repeat(f)+"\u2551"))}}),console.log(t("\u255A"+s+"\u255D"))}var w=g(require("fs"));var P=["node_modules","dist","build",".svelte-kit",".svelte",".next",".nuxt","out",".output",".vercel",".netlify",".astro",".angular",".angular/cache",".solid",".docusaurus",".vite",".cache",".parcel-cache",".webpack",".rollup.cache",".rpt2_cache",".swc",".eslintcache",".stylelintcache",".sass-cache",".tmp","tmp","temp","coverage",".nyc_output","storybook-static",".storybook-out",".turbo",".rush",".firebase",".serverless","android/.gradle","android/build","android/app/build","ios/Pods","ios/build",".expo",".expo-shared","lib","es","cjs","umd",".remix",".qwik",".nitro",".wrangler",".amplify",".sst",".babel-cache",".cache-loader","jspm_packages",".typings"],A=["*.log","*.tgz","*.tar.gz","tsconfig.tsbuildinfo"],I=[".pnpm-store",".pnpm-debug.log",".yarn/cache",".yarn/unplugged",".yarn/install-state.gz",".yarn/build-state.yml",".npm","node_modules/.cache",".yalc",".lerna",".nx/cache",".vite/deps",".turbo","tsconfig.tsbuildinfo",".hardhat",".foundry",".anchor"],L=[];var Q=g(require("fs"));var N=require("child_process"),z=g(require("os"));function h(e,t={}){try{return(0,N.execSync)(e,{stdio:t.silent?"pipe":"inherit"}),!0}catch{return t.silent||o(`Command failed: ${e}`,"fail"),!1}}function u(e){try{return z.platform()==="win32"?(0,N.execSync)(`where ${e}`,{stdio:"ignore"}):(0,N.execSync)(`command -v ${e}`,{stdio:"ignore"}),!0}catch{return!1}}var F={npm:{name:"npm",lockFile:"package-lock.json",installCommand:"npm install",cacheCleanCommand:"npm cache clean --force"},yarn:{name:"yarn",lockFile:"yarn.lock",installCommand:"yarn install",cacheCleanCommand:"yarn cache clean"},pnpm:{name:"pnpm",lockFile:"pnpm-lock.yaml",installCommand:"pnpm install",cacheCleanCommand:"pnpm store prune"}};function H(){for(let e of["pnpm","yarn","npm"])if(Q.existsSync(F[e].lockFile)&&u(e))return e;for(let e of["npm","yarn","pnpm"])if(u(e))return e;return null}function Z(e){let t=process.env.TORCH_DRY_RUN==="1",n=F[e],s=e===H()?`Using ${e} (detected ${n.lockFile})...`:`Using ${e} (fallback)...`;return o(s,"step"),t||h(n.installCommand)?(o(`Dependencies ${t?"would be installed":"installed successfully"} with ${e}`,"success"),!0):(o(`${e} install failed`,"fail"),!1)}function ee(e){let t=process.env.TORCH_DRY_RUN==="1",n=F[e];return t||h(n.cacheCleanCommand)?(o(t?`Dry-run: would clean ${e} cache`:`${e} cache cleaned`,"success"),!0):!1}function oe(){return Object.keys(F).filter(u)}var R={customPaths:[],customDirs:[],customFiles:[],protectedPaths:[],dockerMode:!0,logfile:!1,rebuild:!0};var m=g(require("fs")),te=g(require("path"));function ne(e){let{isDryRun:t,protectedPaths:n}=e,s=0;return{removedCount:()=>s,cleanupTarget:r=>{if(m.existsSync(r)){o(`${t?"Would remove":"Removing"} ${r}...`,"step");try{t||m.rmSync(r,{recursive:!0,force:!0}),o(`${r} ${t?"marked for removal (dry-run)":"removed"}`,"success"),s++}catch{o(`Failed to remove ${r}`,"fail")}}},cleanupFile:r=>{if(m.existsSync(r)&&m.statSync(r).isFile()&&!n.some(d=>r===d||r.startsWith(d+"/"))){o(`${t?"Would remove":"Removing"} ${r}...`,"step");try{t||m.unlinkSync(r),o(`${r} ${t?"marked for removal (dry-run)":"removed"}`,"success"),s++}catch{o(`Failed to remove ${r}`,"fail")}}},isPathProtected:r=>n.some(f=>r===f||r.startsWith(f+"/"))}}function B(e,t){return e.filter(n=>!t.some(s=>n===s||n.startsWith(s+"/")))}function re(e,t){try{let n=m.readdirSync(".",{withFileTypes:!0}).filter(s=>s.name.match(e.replace("*",".*"))).map(s=>s.name);for(let s of n){let r=te.join(".",s);t.cleanupFile(r)}}catch(n){o(`Failed to process pattern ${e}: ${n}`,"warn")}}var ve=e=>{let t={};for(let n of e){if(!n.startsWith("--"))continue;let[s,r]=n.slice(2).split("=",2);if(!(!s||!r))try{let f=JSON.parse(r);t[s]=f}catch{r==="true"?t[s]=!0:r==="false"?t[s]=!1:t[s]=r}}return t},Pe=()=>{let e="torchrc.json";if(!w.existsSync(e))return{};try{return JSON.parse(w.readFileSync(e,"utf8"))}catch{return o("Invalid torchrc.json (must be valid JSON) - skipping custom config","warn"),{}}},O=()=>{let e=Pe();return{customPaths:e.customPaths??R.customPaths,customDirs:e.customDirs??R.customDirs,customFiles:e.customFiles??R.customFiles,protectedPaths:e.protectedPaths??R.protectedPaths,dockerMode:e.dockerMode??R.dockerMode,logfile:e.logfile??R.logfile,rebuild:e.rebuild??R.rebuild}};var T=(e=[])=>{let t=O(),n=ve(e);return{...t,...n}},K=()=>{let e=O();return[...e.customPaths,...e.customDirs,...e.customFiles].filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0)},se=()=>{let e=process.env.TORCH_DRY_RUN==="1",t=O(),n=K(),s=t.protectedPaths,r=[...new Set([...P,...I,...L])],f=[...new Set(n)],d=[...A],_=B(r,s),S=B(f,s),C=ne({isDryRun:e,protectedPaths:s});o("Scanning for build artifacts and cache directories...","step"),_.forEach(C.cleanupTarget),o("Scanning for log files and temporary files...","step");for(let i of d)i.includes("*")?re(i,C):C.cleanupTarget(i);S.length>0&&(o("Deleting user defined custom directories and files","step"),S.forEach(C.cleanupTarget));let b=r.length-_.length+(f.length-S.length);b>0&&o(`Skipped ${b} protected path(s) from torchrc.json`,"info");let y=C.removedCount();return y===0?(o("No build artifacts or cache directories found (project already clean)","info"),!1):(o(`Removed ${y} build/cache directories`,"success"),!0)},ie=()=>{let e=oe(),t=!1;for(let n of e)ee(n)&&(t=!0);return t||o("No package manager caches cleaned (tools not available)","info"),t};var ae=()=>{o(`
|
|
16
16
|
\u{1F525} Torch It - Project Environment Reset Tool
|
|
17
17
|
|
|
18
18
|
USAGE:
|
|
@@ -51,12 +51,12 @@ CONFIGURATION:
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
For more information, visit: https://github.com/piyook/torch-it
|
|
54
|
-
`.trim(),"info")};var
|
|
54
|
+
`.trim(),"info")};var p=g(require("fs"));var ce=()=>{let e=O(),t=K(),n=e.protectedPaths;o("=".repeat(60),"info"),o("TORCH-IT CONFIGURATION","info"),o("=".repeat(60),"info"),o(`
|
|
55
55
|
BASIC SETTINGS:`,"info"),o(` Docker Mode: ${e.dockerMode}`,"info"),o(` Rebuild: ${e.rebuild}`,"info"),o(` Logfile: ${e.logfile}`,"info"),o(`
|
|
56
|
-
PACKAGE MANAGER DETECTION:`,"info");let s=[];
|
|
57
|
-
DOCKER DETECTION:`,"info");let f=["Dockerfile","docker-compose.yml","docker-compose.yaml"].filter(i=>
|
|
58
|
-
FILES/DIRECTORIES THAT WILL BE DELETED:`,"info");let _=[...new Set([...
|
|
59
|
-
PROTECTED PATHS (will NOT be deleted):`,"info"),n.forEach(i=>{let c=
|
|
56
|
+
PACKAGE MANAGER DETECTION:`,"info");let s=[];p.existsSync("package-lock.json")&&u("npm")?s.push("npm (package-lock.json)"):u("npm")&&s.push("npm (fallback)"),p.existsSync("yarn.lock")&&u("yarn")?s.push("yarn (yarn.lock)"):u("yarn")&&s.push("yarn (fallback)"),p.existsSync("pnpm-lock.yaml")&&u("pnpm")?s.push("pnpm (pnpm-lock.yaml)"):u("pnpm")&&s.push("pnpm (fallback)"),s.length>0?s.forEach(i=>o(` ${i}`,"info")):o(" No package manager detected","warn"),o(`
|
|
57
|
+
DOCKER DETECTION:`,"info");let f=["Dockerfile","docker-compose.yml","docker-compose.yaml"].filter(i=>p.existsSync(i));f.length>0?f.forEach(i=>o(` ${i}`,"info")):o(" No Docker configuration found","info"),o(`
|
|
58
|
+
FILES/DIRECTORIES THAT WILL BE DELETED:`,"info");let _=[...new Set([...P,...I,...L,...A])].filter(i=>!n.some(c=>i===c||i.startsWith(c+"/"))),S=t.filter(i=>!n.some(c=>i===c||i.startsWith(c+"/"))),C=_.filter(i=>!i.includes("*")&&p.existsSync(i)),b=_.filter(i=>i.includes("*")),y=S.filter(i=>p.existsSync(i));C.length>0&&(o(" Default targets:","info"),C.forEach(i=>{let c=p.statSync(i).isDirectory()?"DIR":"FILE";o(` ${i} (${c})`,"info")})),b.length>0&&(o(" Glob patterns:","info"),b.forEach(i=>{try{let c=p.readdirSync(".",{withFileTypes:!0}).filter(k=>k.name.match(i.replace("*",".*"))).map(k=>k.name);c.length>0?(o(` ${i} (matches ${c.length} file${c.length===1?"":"s"}):`,"info"),c.forEach(k=>{o(` ${k} (FILE)`,"info")})):o(` ${i} (no matches)`,"info")}catch(c){o(` ${i} (error: ${c})`,"warn")}})),y.length>0&&(o(" Custom targets:","info"),y.forEach(i=>{let c=p.statSync(i).isDirectory()?"DIR":"FILE";o(` ${i} (${c})`,"info")})),C.length===0&&b.length===0&&y.length===0&&o(" No targets found (nothing to delete)","info"),n.length>0?(o(`
|
|
59
|
+
PROTECTED PATHS (will NOT be deleted):`,"info"),n.forEach(i=>{let c=p.existsSync(i),k=c&&p.statSync(i).isDirectory()?"DIR":"FILE",x=c?`(${k})`:"(not found)";o(` ${i} ${x}`,"info")})):o(`
|
|
60
60
|
PROTECTED PATHS: None`,"info"),t.length>0&&(o(`
|
|
61
|
-
CUSTOM PATHS FROM torchrc.json:`,"info"),t.forEach(i=>{let c=
|
|
62
|
-
`+"=".repeat(60),"info"),o("Use 'torch-it --help' for available options","info"),o("=".repeat(60),"info")};function fe(e){let t=e.includes("--help"),n=e.includes("--version")||e.includes("-v"),s=e.includes("--config"),r=e.includes("--test"),f=e.filter(d=>d!=="--test"&&d!=="--help"&&d!=="--version"&&d!=="-v"&&d!=="--config");return{isHelp:t,isVersion:n,isConfig:s,isDryRun:r,filteredArgs:f}}function
|
|
61
|
+
CUSTOM PATHS FROM torchrc.json:`,"info"),t.forEach(i=>{let c=p.existsSync(i),k=c&&p.statSync(i).isDirectory()?"DIR":"FILE",x=c?`(${k})`:"(not found)";o(` ${i} ${x}`,"info")})),o(`
|
|
62
|
+
`+"=".repeat(60),"info"),o("Use 'torch-it --help' for available options","info"),o("=".repeat(60),"info")};function fe(e){let t=e.includes("--help"),n=e.includes("--version")||e.includes("-v"),s=e.includes("--config"),r=e.includes("--test"),f=e.filter(d=>d!=="--test"&&d!=="--help"&&d!=="--version"&&d!=="-v"&&d!=="--config");return{isHelp:t,isVersion:n,isConfig:s,isDryRun:r,filteredArgs:f}}function pe(e){if(e.isHelp&&(E(!1),ae(),process.exit(0)),e.isVersion){E(!1);let t=le();o(`torch-it v${t.version}`,"info"),process.exit(0)}e.isConfig&&(E(!1),ce(),process.exit(0)),e.isDryRun&&(process.env.TORCH_DRY_RUN="1")}var M=g(require("fs"));function ue(){return M.existsSync("Dockerfile")||M.existsSync("docker-compose.yml")||M.existsSync("docker-compose.yaml")}function de(){if(T().dockerMode===!1)return o("Docker mode disabled in torchrc.json - skipping Docker operations","info"),"NO_DOCKER";let t=process.env.TORCH_DRY_RUN==="1";return ue()?(o("Stopping Docker services and removing all resources...","info"),u("docker")?h("docker info",{silent:!0})?h("docker compose ps",{silent:!0})?t?(o("Dry-run: would run 'docker compose down --rmi all --volumes'","info"),"OK"):h("docker compose down --rmi all --volumes")?(o("Docker services stopped and resources cleaned","success"),"OK"):(o("Docker cleanup encountered issues","warn"),o("Continuing with the rest of the script...","info"),"DOCKER_FAIL"):(o("No Docker Compose services found - skipping Docker cleanup","warn"),o("This is normal if no services were previously running","info"),"DOCKER_FAIL"):(o("Docker daemon is not running - skipping Docker cleanup","warn"),o("You may need to start Docker manually and run cleanup later","info"),"NO_DOCKER"):(o("Docker is not installed - skipping Docker cleanup","warn"),"NO_DOCKER")):(o("No Docker configuration found - skipping Docker operations","info"),"NO_DOCKER")}function me(){let e=T();if(e.dockerMode===!1)return!1;if(e.rebuild===!1)return o("Rebuild disabled in torchrc.json - skipping Docker rebuild","info"),!1;let t=process.env.TORCH_DRY_RUN==="1";return ue()?u("docker")?h("docker info",{silent:!0})?(o("Building Docker resources (this may take a while...)...","step"),console.log(` ${l.YELLOW("\u23F3 Please be patient - pulling fresh images and building...")}`),t?(o("Dry-run: would run 'docker-compose build --pull --no-cache'","info"),!0):h("docker-compose build --pull --no-cache")?!0:(o("Docker build encountered issues - check torch-it.log for details","fail"),!1)):(o("Docker daemon is not running - skipping Docker rebuild","warn"),o("Start Docker manually and run 'docker-compose build --pull --no-cache' later","info"),!1):(o("Docker is not installed - skipping Docker rebuild","warn"),!1):!1}function ge(){if(T().dockerMode===!1)return!1;let t=process.env.TORCH_DRY_RUN==="1";return o("Starting Docker services in detached mode...","step"),t?(o("Dry-run: would run 'docker compose up -d'","info"),!0):h("docker compose up -d")?!0:(o("Failed to start Docker services - check torch-it.log for details","fail"),!1)}var he=()=>{o("Detecting package manager and installing dependencies...","step");let e=H();return e?Z(e):(o("No package manager found (npm/yarn/pnpm). Please install dependencies manually.","fail"),!1)};var Ce=e=>{let t="",n="",s="";e.dockerClean==="NO_DOCKER"?t=`${a.DOCKER} No Docker containers found`:e.dockerClean==="DOCKER_FAIL"&&(t=`${a.FAIL} Failed to remove Docker containers`),e.dockerClean==="OK"&&(e.dockerRebuild?n=`${a.DOCKER} Docker containers rebuilt from scratch`:n=`${a.FAIL} Failed to rebuild Docker containers`,e.dockerLaunch&&e.dockerRebuild?s=`${a.ROCKET} Services running in detached mode`:s=`${a.FAIL} Failed to start Docker containers`);let r=e.buildAndCacheClean&&e.packageManagerClean?`${a.CLEAN} All build artifacts & caches removed`:`${a.FAIL} Build artifacts or cache directories not found`,f=e.dependencyInstall?`${a.BOX} Dependencies freshly installed`:`${a.FAIL} Failed to install dependencies`;console.log(""),v(["\u{1F525} PROJECT SUCCESSFULLY TORCHED! \u{1F525}","",`${r}`,`${f}`,`${t}`,`${n}`,`${s}`,"",e.logfile===!1?`${a.CLIPBOARD} Logging to torch-it.log is disabled; set "logfile": true in torchrc.json to enable it`:`${a.CLIPBOARD} Check torch-it.log for detailed logs`])};function ke(e){let t={dockerClean:"NO_DOCKER",buildAndCacheClean:!1,packageManagerClean:!1,dependencyInstall:!1,dockerRebuild:!1,dockerLaunch:!1,logfile:e.logfile};return o(`${a.CLEAN} DOCKER CLEANUP`,"step"),t.dockerClean=de(),o(`${a.CLEAN} BUILD ARTIFACTS & CACHE CLEANUP`,"step"),t.buildAndCacheClean=se(),o("Cleaning package manager caches...","step"),t.packageManagerClean=ie(),e.rebuild!==!1?(J(),o(`${a.BUILD} DEPENDENCY INSTALLATION`,"step"),t.dependencyInstall=he()):(o("Rebuild disabled - skipping dependency installation","info"),t.dependencyInstall=!1),t.dockerClean!=="NO_DOCKER"&&e.rebuild!==!1?(o(`${a.BUILD} DOCKER REBUILD`,"step"),t.dockerRebuild=me()):t.dockerClean!=="NO_DOCKER"&&e.rebuild===!1&&(o("Rebuild disabled - skipping Docker rebuild","info"),t.dockerRebuild=!1),t.dockerRebuild&&(t.dockerLaunch=ge(),o(`${a.ROCKET} LAUNCH`,"step")),Ce(t),t}var Re=g(require("fs")),be=g(require("path"));function Ie(){return["package.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json"].some(t=>Re.existsSync(be.join(process.cwd(),t)))}function ye(){Ie()||(o("This directory does not contain a Node.js project.","fail"),o("Please create a Node.js project (with package.json) before using torch-it.","info"),process.exit(1))}var Le=process.argv.slice(2),G=fe(Le);pe(G);var W=T(G.filteredArgs);E(W.logfile);W.logfile&&q();V();ye();G.isDryRun&&o("Running in --test dry-run mode (no files or services will be changed)","warn");ke(W);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "torch-it",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.4",
|
|
4
4
|
"description": "CLI to reset, clean, and rebuild Node.js project environments.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cleanup",
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
"esbuild": "^0.28.0",
|
|
51
51
|
"husky": "^9.1.7",
|
|
52
52
|
"lint-staged": "^16.4.0",
|
|
53
|
-
"oxlint": "^1.
|
|
54
|
-
"prettier": "^3.8.
|
|
53
|
+
"oxlint": "^1.61.0",
|
|
54
|
+
"prettier": "^3.8.3",
|
|
55
55
|
"ts-node": "^10.9.2",
|
|
56
|
-
"typescript": "^6.0.
|
|
56
|
+
"typescript": "^6.0.3",
|
|
57
57
|
"validate-branch-name": "^1.3.2",
|
|
58
|
-
"vitest": "^4.1.
|
|
58
|
+
"vitest": "^4.1.5"
|
|
59
59
|
},
|
|
60
60
|
"lint-staged": {
|
|
61
61
|
"*.{ts,tsx,js,jsx,mjs,cjs,json}": [
|