{"_id":"@astralyn/minicpa","_rev":"14-d32070cff4536731fb22fe3c780fb8e8","name":"@astralyn/minicpa","dist-tags":{"latest":"0.4.3"},"versions":{"0.1.3-rc.0":{"name":"@astralyn/minicpa","version":"0.1.3-rc.0","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.1.3-rc.0","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"8784948123811e0766f901efa57bffa1f9763666","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.1.3-rc.0.tgz","fileCount":69,"integrity":"sha512-Vxb7DQeO8wDLw2rDaPLQhtVjqrEpA1g/dQfyBAMf6oGGpU3iO89OTldDwnn1ims3BbInfRAFy2VxAHRINROB7Q==","signatures":[{"sig":"MEUCIQD+0mRToPDH+oKeEp5yIvdkZQmJ3ewOxY1SMBIvWOedYAIgYItAAtHjw9ynaSwjnPpNtWOFS9vfcLRbG/JMlZGBUl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366240},"type":"module","_from":"file:C:/Users/Asterin/AppData/Local/Temp/minicpa-bootstrap-ea3ab9a/astralyn-minicpa-0.1.3-rc.0.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"astralyn","email":"mingkang.fang@gmail.com"},"_resolved":"C:\\Users\\Asterin\\AppData\\Local\\Temp\\minicpa-bootstrap-ea3ab9a\\astralyn-minicpa-0.1.3-rc.0.tgz","_integrity":"sha512-Vxb7DQeO8wDLw2rDaPLQhtVjqrEpA1g/dQfyBAMf6oGGpU3iO89OTldDwnn1ims3BbInfRAFy2VxAHRINROB7Q==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Thin cpa CLI: layout, lifecycle, and updates for CLIProxyAPI","directories":{},"_nodeVersion":"24.13.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.1.3-rc.0_1787419958860_0.9611443056166638","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@astralyn/minicpa","version":"0.1.3","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.1.3","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"a99fd0b96e4b85fbaac3a51540f32ddd9cc7c60f","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.1.3.tgz","fileCount":69,"integrity":"sha512-ThF+F4CqNpI3wHERbnSL0adGI1ikNEB8G/S3Md8ya7HYmWhQm/a05N3TZdFODambZFcpjp/7Jynr/Ay2IHKciQ==","signatures":[{"sig":"MEYCIQDra7bPVKcAdk3oJoupbt2/Ubqxnnb93lsP3tKTGf8yjAIhANRZretGn9I0+3P2LfKqb5AhhdffJRtYYJAmgVs+2XAS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366235},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package-32588408133-1/astralyn-minicpa-0.1.3.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package-32588408133-1/astralyn-minicpa-0.1.3.tgz","_integrity":"sha512-ThF+F4CqNpI3wHERbnSL0adGI1ikNEB8G/S3Md8ya7HYmWhQm/a05N3TZdFODambZFcpjp/7Jynr/Ay2IHKciQ==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Thin cpa CLI: layout, lifecycle, and updates for CLIProxyAPI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.1.3_1787420426950_0.8257606150527574","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@astralyn/minicpa","version":"0.1.4","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.1.4","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"97850b1dd0a7fdb9225db8fb0f1d38026043f5f7","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.1.4.tgz","fileCount":69,"integrity":"sha512-75XE0e6iymYuFEs1yhSaznESWGpXQEVvRIbHW7o3ASfo3CMAFHFVSWpytPbTS5npD3gicsWtVGdtxbOP3U89Fg==","signatures":[{"sig":"MEUCIQDrwOqDyKKN3edmm+kwvvHzS8LI0NyoR6S+YmS9OZ0c1QIgJceRTuMtJoC+ljpEsOQOT9zQwt3Si6YsZLmWanNgdcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382733},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.1.4.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.1.4.tgz","_integrity":"sha512-75XE0e6iymYuFEs1yhSaznESWGpXQEVvRIbHW7o3ASfo3CMAFHFVSWpytPbTS5npD3gicsWtVGdtxbOP3U89Fg==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.1.4_1787457789647_0.7049101070431536","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@astralyn/minicpa","version":"0.2.0","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.2.0","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"83992c0e48de743ab30bab31e52862582d587a21","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.2.0.tgz","fileCount":69,"integrity":"sha512-cYvafYoYi+n399+nMIdp+oG+ruFcKRXPO8gVF2XJ5ILHTKCfA+LufhF7cnSRAq+iblZ/O6Kv2Y1JYdZeu/D1/g==","signatures":[{"sig":"MEQCIBra4jm0GvS9Yd1iRRptjUqREX4mho4QikAaJ3cyNmlvAiBUOMFPklXoRLelkcVTbvAbFr2TVhzTPdD/BfhgjPD/sQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":381793},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.2.0.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.2.0.tgz","_integrity":"sha512-cYvafYoYi+n399+nMIdp+oG+ruFcKRXPO8gVF2XJ5ILHTKCfA+LufhF7cnSRAq+iblZ/O6Kv2Y1JYdZeu/D1/g==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.2.0_1787468436540_0.1235049146036058","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@astralyn/minicpa","version":"0.2.1","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.2.1","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"1da7d31c12e64f663a5010373047174b55d26834","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.2.1.tgz","fileCount":69,"integrity":"sha512-KVfP3j2dMa5THvifiD6DPjK9gi7ppd2sEJ8YXs92vsQU8dIVpYMaMIZ6HeMw9yby2Tpa8EaowjsGFNQv+0ZitQ==","signatures":[{"sig":"MEUCIF4jDGpM1/tBfAxIPqfAHLECY+YyFzaZhJ7y1qVBm0xvAiEAt6gRLbdmrLSK9/YNIvtqfpLCY68r3WD/FtSuGEuhM+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379168},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.2.1.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.2.1.tgz","_integrity":"sha512-KVfP3j2dMa5THvifiD6DPjK9gi7ppd2sEJ8YXs92vsQU8dIVpYMaMIZ6HeMw9yby2Tpa8EaowjsGFNQv+0ZitQ==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.2.1_1787502984218_0.36947049510463637","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@astralyn/minicpa","version":"0.3.0","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.3.0","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"fbcf8de2e040303dbbd1fff29dcb98587b99ce9b","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.3.0.tgz","fileCount":73,"integrity":"sha512-17dRsVajqlzR07mNdgMpTFKf1HwRoMKK85H4CxrQrdIkBvlsiArfMpbFsxuxEQ00vfxgEYZ1awso1ZFLvDoSXQ==","signatures":[{"sig":"MEQCICXhOdigMYnOtRw6D4XKHwIsOXIcTBw3mFnaMz/15qtsAiAfO+jfaj5BTdHM3yPuA3berRB2l25WIUKWGsAxBtourw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":410962},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.3.0.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.3.0.tgz","_integrity":"sha512-17dRsVajqlzR07mNdgMpTFKf1HwRoMKK85H4CxrQrdIkBvlsiArfMpbFsxuxEQ00vfxgEYZ1awso1ZFLvDoSXQ==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.3.0_1787572751025_0.657430587692158","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@astralyn/minicpa","version":"0.3.1","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.3.1","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"b1ce0a4c956360b340aea24f008a6a4aef73913d","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.3.1.tgz","fileCount":73,"integrity":"sha512-jRgttHVCfHyGm4Xq3/8xS5tUnvrUltV4gm/8Xs524Sm/u0uXuBkbNhgzFQzgMnshVjLgtpWPekDuI+WpJLcR1A==","signatures":[{"sig":"MEUCICe3cWb3sP3jBOVF+a9FtNZh+CmV3WMQy+Bv5VqohFSRAiEAvv0yLqFCIBQRq3JOyE4oWmrGNwJsRjJsi0bmLjy+0ME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":421909},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.3.1.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.3.1.tgz","_integrity":"sha512-jRgttHVCfHyGm4Xq3/8xS5tUnvrUltV4gm/8Xs524Sm/u0uXuBkbNhgzFQzgMnshVjLgtpWPekDuI+WpJLcR1A==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.3.1_1787669213071_0.006511288492710099","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@astralyn/minicpa","version":"0.3.2","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.3.2","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"5cf8249178547b3cdd095b35dcc3212a3c88c8cc","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.3.2.tgz","fileCount":87,"integrity":"sha512-YYQnUOKAg9ucaR73vfDOtKVYC0xr9TbrAvPFp/KYaj/39FdCaBMxJ7g9/paYcmya2AnsF/IGDbokmFeKL7yF/Q==","signatures":[{"sig":"MEUCIQCiTIjO1F7790AAkjDIm5UMQ+IO+6It+UWM6fD2g7vHtgIgCSeafbdfQAis/ATL+Ys3Q+O46Z7DYwvqThpuquJJaV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":445602},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.3.2.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.3.2.tgz","_integrity":"sha512-YYQnUOKAg9ucaR73vfDOtKVYC0xr9TbrAvPFp/KYaj/39FdCaBMxJ7g9/paYcmya2AnsF/IGDbokmFeKL7yF/Q==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.3.2_1787733284870_0.6226378442026523","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@astralyn/minicpa","version":"0.3.3","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.3.3","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"e3db042a7b22d10d7a85c30406766a52093b412a","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.3.3.tgz","fileCount":89,"integrity":"sha512-dCYKrGb3uB9ILZqSPm+u4EzOfYhryoeNQP9uZ2L7gP8mqeFgnwpkykdozTsdPJX8U1z+/5YpXu0QtOQOXhoPFA==","signatures":[{"sig":"MEYCIQDUlLIYzswmiCBfo97vxns0AmQjDmqJUJBRIMBGX5ficAIhANIXqs6sbHLrfmiw+Xj4tjHpTBPp5S2xlN9aQZhk93cm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":452675},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.3.3.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package":"node scripts/verify-package.mjs","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.3.3.tgz","_integrity":"sha512-dCYKrGb3uB9ILZqSPm+u4EzOfYhryoeNQP9uZ2L7gP8mqeFgnwpkykdozTsdPJX8U1z+/5YpXu0QtOQOXhoPFA==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.3.3_1788240882685_0.15874349892725204","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@astralyn/minicpa","version":"0.4.0","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.4.0","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"cd8cf46965e27288d9260d7a924f8250f2b67062","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.4.0.tgz","fileCount":87,"integrity":"sha512-gftHPNxIslNDnkNIZx8Tiwg+byjSQUwr0uIj2DqvdJGavT6g2KVol8SpYrkkMw/lPHYaP0eBkl9xka2DqmCUPg==","signatures":[{"sig":"MEYCIQD7G71//yR3sh+u47ecD2+hNVnHADuOkk4bYTVeLxQK3QIhANnsIuPWKBtbSVfAQb2Qxdwo8n1SsWgyTAeiQo+zHpZY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":434834},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.4.0.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package":"node scripts/verify-package.mjs","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.4.0.tgz","_integrity":"sha512-gftHPNxIslNDnkNIZx8Tiwg+byjSQUwr0uIj2DqvdJGavT6g2KVol8SpYrkkMw/lPHYaP0eBkl9xka2DqmCUPg==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.4.0_1788331442001_0.6342789680257161","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@astralyn/minicpa","version":"0.4.1","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.4.1","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"a3e513336ad8a1eec46e3af68915aeff85504fc6","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.4.1.tgz","fileCount":90,"integrity":"sha512-JBEBk8CS/75Nf7HAKW/Fwe6qfN5ENeo4NJBtCk64BG+pPAalHQ62iiq1rumNguAcSYY8OBJ4NOaD9eCiNcUA0A==","signatures":[{"sig":"MEQCIERYSSOKIoo4OTDrhB5jZJeRoRLMo87t4WzfZ5u3I0a4AiAT+z858LbkZ2va6Y8NY6KvUD4Yc5SInj9s5xPzrbodsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":509560},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.4.1.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package":"node scripts/verify-package.mjs","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.4.1.tgz","_integrity":"sha512-JBEBk8CS/75Nf7HAKW/Fwe6qfN5ENeo4NJBtCk64BG+pPAalHQ62iiq1rumNguAcSYY8OBJ4NOaD9eCiNcUA0A==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.4.1_1788365748582_0.7797828214564824","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@astralyn/minicpa","version":"0.4.2","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"author":{"name":"ming-kang"},"license":"MIT","_id":"@astralyn/minicpa@0.4.2","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"homepage":"https://github.com/ming-kang/MiniCPA#readme","bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"bin":{"cpa":"dist/cli.js"},"dist":{"shasum":"596cdad4e0d457534b57a064bc32dc3b6c0caeca","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.4.2.tgz","fileCount":90,"integrity":"sha512-QRmHMHjQTNa6zX/9QFqMjUwnVJZly7mZMBW0p2sxvD4tOieCaaBZMBIXoN1YKfipXGuIo+Q1M1bT5340HNp+oA==","signatures":[{"sig":"MEUCIQCsfFlo7GpaGufNaD1xjNFjRDtMIN27x0g339QAbEQcQAIgQ/TreOxILs+CJJBQukVsusOGW8v8PAy18qISeJnnwCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":509934},"type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.4.2.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package":"node scripts/verify-package.mjs","verify:package-install":"node scripts/verify-package-install.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a5024aa-5419-405b-84f1-b4b744a93a40"}},"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.4.2.tgz","_integrity":"sha512-QRmHMHjQTNa6zX/9QFqMjUwnVJZly7mZMBW0p2sxvD4tOieCaaBZMBIXoN1YKfipXGuIo+Q1M1bT5340HNp+oA==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","semver":"^7.8.5","undici":"^7.29.0","adm-zip":"^0.6.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^24.0.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"tmp":"tmp/minicpa_0.4.2_1788406324751_0.9111460160521059","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"_id":"@astralyn/minicpa@0.4.3","bin":{"cpa":"dist/cli.js"},"bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"dist":{"shasum":"c27062ce4e0cc83b0407dbeae4413e919e5f1259","tarball":"https://registry.npmjs.org/@astralyn/minicpa/-/minicpa-0.4.3.tgz","fileCount":102,"integrity":"sha512-hizltkZ7wDQ/lBJhrehpl2q5pmrtMX2h7NPNX6+hB9kXiU9y02njLS0RgNhanfMjfhsYK+IAMIJVIgJN5fu9Pg==","signatures":[{"sig":"MEUCIE/MxcN7rwyyqLu1NTTY/6YKbl5XDH6/qwPhW156qNqOAiEAzbPsvN+Og6+04NjcwBWNVxZP7TRilfLIuAad+RTMzNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCv0BzW9s7xIKJSWzPgR5ado3xMc1vPgZkuYyc7TNqe6gIhAMxbQ0O6l7CXNEcXagAUYQTN5lHEGIXTnms1PNRkhQrP"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@astralyn%2fminicpa@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":533996},"name":"@astralyn/minicpa","type":"module","_from":"file:/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.4.3.tgz","author":{"name":"ming-kang"},"engines":{"node":">=24"},"license":"MIT","scripts":{"dev":"tsx src/cli.ts","lint":"biome check .","test":"tsc --noEmit && node scripts/run-tests.mjs","build":"npm run clean:build && tsc -p tsconfig.build.json","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","audit:prod":"npm audit --omit=dev --audit-level=moderate","clean:build":"node scripts/clean-build.mjs","prepublishOnly":"npm run audit:prod && npm test && npm run build","verify:package":"node scripts/verify-package.mjs","verify:package-install":"node scripts/verify-package-install.mjs"},"version":"0.4.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a5024aa-5419-405b-84f1-b4b744a93a40"}},"homepage":"https://github.com/ming-kang/MiniCPA#readme","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"_resolved":"/home/runner/work/_temp/minicpa-package/astralyn-minicpa-0.4.3.tgz","_integrity":"sha512-hizltkZ7wDQ/lBJhrehpl2q5pmrtMX2h7NPNX6+hB9kXiU9y02njLS0RgNhanfMjfhsYK+IAMIJVIgJN5fu9Pg==","repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"_npmVersion":"11.15.0","description":"Manage, run, and update one local CLIProxyAPI instance","directories":{},"maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"tar":"^7.5.22","yaml":"^2.7.0","yauzl":"^3.4.0","semver":"^7.8.5","undici":"^7.30.0","commander":"^13.1.0","cross-spawn":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","adm-zip":"^0.6.1","typescript":"^5.8.2","@types/node":"^24.0.0","@types/yauzl":"^3.4.0","@types/semver":"^7.8.0","@biomejs/biome":"^2.5.5","@types/cross-spawn":"^6.0.6"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/minicpa_0.4.3_1790687620770_0.9541479665944046"}}},"time":{"created":"2026-08-22T17:32:38.714Z","modified":"2026-09-29T13:13:41.244Z","0.1.3-rc.0":"2026-08-22T17:32:39.018Z","0.1.3":"2026-08-22T17:40:27.102Z","0.1.4":"2026-08-23T04:03:09.826Z","0.2.0":"2026-08-23T07:00:36.757Z","0.2.1":"2026-08-23T16:36:24.368Z","0.3.0":"2026-08-24T11:59:11.173Z","0.3.1":"2026-08-25T14:46:53.212Z","0.3.2":"2026-08-26T08:34:45.089Z","0.3.3":"2026-09-01T05:34:42.832Z","0.4.0":"2026-09-02T06:44:02.156Z","0.4.1":"2026-09-02T16:15:48.761Z","0.4.2":"2026-09-03T03:32:04.927Z","0.4.3":"2026-09-29T13:13:40.935Z"},"bugs":{"url":"https://github.com/ming-kang/MiniCPA/issues"},"author":{"name":"ming-kang"},"license":"MIT","homepage":"https://github.com/ming-kang/MiniCPA#readme","keywords":["cli","cpa","cliproxyapi","cli-proxy-api","proxy","management","update"],"repository":{"url":"git+https://github.com/ming-kang/MiniCPA.git","type":"git"},"description":"Manage, run, and update one local CLIProxyAPI instance","maintainers":[{"name":"astralyn","email":"mingkang.fang@gmail.com"}],"readme":"# MiniCPA\n\nMiniCPA provides one cross-platform **`cpa`** command to set up, run, inspect, and update a local [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) instance.\n\nIt manages **one instance**. Configuration, provider authentication, and the Web panel asset remain in CLIProxyAPI; MiniCPA handles the instance files, background process, interface launchers, binary updates, and diagnostics.\n\n## Install\n\nRequires **Node.js 24+**.\n\n```bash\nnpm install -g @astralyn/minicpa\n```\n\nOr run it without a global installation:\n\n```bash\nnpx @astralyn/minicpa --help\n```\n\nRunning `cpa`, `cpa -h`, or `cpa --help` prints the same help. `cpa -v`, `cpa -V`, and `cpa --version` all print the MiniCPA version.\n\n## Quick start\n\n```bash\ncpa init   # create config.yaml and install the latest CLIProxyAPI binary\ncpa start  # start CLIProxyAPI; it provisions and updates its own Web panel\ncpa web    # open the web management panel\n```\n\n`cpa init` generates a random `api-keys` entry in `config.yaml` without printing it, then downloads and integrity-checks the latest CLIProxyAPI binary. Rotate the key before exposing the API publicly. If the binary download fails, the initialized configuration remains in place and `cpa init` can be retried. `cpa init --force` backs up and replaces only `config.yaml`; use `cpa update --force` to reinstall the binary.\n\nMiniCPA always uses the one directory printed by `cpa home`: `<cpa root>/instance`. `--home` and `CPA_HOME` are intentionally unsupported.\n\n## Update CLIProxyAPI or MiniCPA\n\nThe two update commands have separate targets:\n\n- **`cpa update`** synchronizes `config.yaml` with MiniCPA's bundled template, then updates the managed CLIProxyAPI binary.\n- **`cpa upgrade`** upgrades the globally installed MiniCPA npm package.\n\nCLIProxyAPI itself owns `management.html`: it checks the configured panel repository when the service starts and periodically while running, and it provisions a missing panel on first access. `disable-auto-update-panel: true` stops startup/periodic replacement but still permits that first missing-file download; `disable-control-panel: true` disables both the asset and route. MiniCPA opens the panel but never downloads, versions, or replaces it. See the upstream [Web UI documentation](https://github.com/router-for-me/CLIProxyAPIDocs/blob/main/docs/en/management/webui.md).\n\n### CLIProxyAPI binary updates\n\nBefore checking the binary, `cpa update` rebuilds an existing `config.yaml` from the bundled [`docs/config.example.yaml`](docs/config.example.yaml). The template is authoritative for operational settings, including logging limits, retries, routing, and feature switches. Machine-local endpoint settings (`host`, `port`, `tls`, `proxy-url`), credentials/secrets, `auth-dir`, and `plugins.configs` keep their existing values; extra keys are retained; missing keys are added; comments/order follow the current template. A changed file is backed up as `config.yaml.bak.<timestamp>` and written atomically. A missing config is left for `cpa init`; invalid YAML aborts before the binary update. Synchronization still runs when the binary is already current.\n\nDownloads and integrity checks finish before a running CLIProxyAPI process is stopped; it is restarted only when its binary is replaced. An already-current binary is skipped unless `--force` is used. If only the config changed, MiniCPA prints that it will take effect on the next `cpa start` or `cpa restart`.\n\nBinary rollback uses only the backup created by that update. A leftover backup from an earlier update cannot replace an untouched current binary. If install metadata cannot be written during recovery, MiniCPA still attempts to restart the previous binary and reports the metadata error. SHA-256 verification and ZIP extraction stream data with bounded buffers.\n\nMutating commands hold a kernel-owned lease for their entire operation, including lock-file recovery. Windows uses a named pipe, Linux an abstract Unix socket, and macOS an exclusive loopback TCP listener derived from the application path. The lease disappears when the command exits or crashes; `state/cpa.lock` remains the diagnostic record. A busy endpoint is never taken over. On macOS, an unrelated listener can cause a lock conflict; the error includes the endpoint. Avoid running different MiniCPA versions concurrently during an upgrade.\n\n```bash\ncpa update check       # check the binary without installing\ncpa update             # update the binary\ncpa update --version 7.2.66\n```\n\nBinary archives are verified against upstream `checksums.txt`. `--insecure` skips that verification and is unsafe. `cpa update check` exits 1 when a binary update is available or the check fails.\n\n### MiniCPA upgrades\n\nFor a writable, direct npm-global installation:\n\n```bash\ncpa upgrade check\ncpa upgrade\n```\n\nAfter comparing the current version with npm `latest`, `cpa upgrade` verifies the active installation and runs the safe equivalent of:\n\n```bash\nnpm update -g @astralyn/minicpa\n```\n\nThe npm process uses the detected global prefix, the official registry, fixed argument boundaries, disabled install scripts, and a credential-safe environment. MiniCPA verifies the installed package manifest afterwards. A locally newer MiniCPA version is never downgraded. `cpa upgrade --force` is the explicit exception that reinstalls the exact npm `latest` version when a reinstall is needed.\n\nAutomatic upgrade refuses npx caches, `npm link`, source checkouts, project dependencies, pnpm/yarn/bun layouts, ambiguous prefixes, and read-only installations. Follow the reported reason and update with the package manager that owns the installation; for a direct npm installation the recovery command is:\n\n```bash\nnpm install -g @astralyn/minicpa@latest\n```\n\nUpgrading MiniCPA does not stop, restart, or modify the managed CLIProxyAPI process.\n\n## Commands\n\n| Command | Purpose |\n|---------|---------|\n| `cpa init` | Set up `config.yaml` and install the latest CLIProxyAPI binary |\n| `cpa start` | Start CLIProxyAPI in the background; waits until HTTP/HTTPS is ready |\n| `cpa stop` | Stop CLIProxyAPI |\n| `cpa restart` | Restart CLIProxyAPI |\n| `cpa auto [on\\|off]` | Toggle or explicitly set automatic startup for the current user |\n| `cpa status` | Show runtime and autostart status, versions, and API/web endpoints; exits 1 when stopped or unreachable |\n| `cpa web` | Open the web management panel; prints the URL when no browser launcher is available |\n| `cpa tui` | Open the CLIProxyAPI terminal UI; CLIProxyAPI must already be running |\n| `cpa logs` | Show logs; supports `-n`, `--err`, and `-f` |\n| `cpa update` / `cpa update check` | Synchronize config and update the binary, or inspect the binary only |\n| `cpa upgrade` / `cpa upgrade check` | Upgrade or inspect the MiniCPA npm package |\n| `cpa doctor` | Run installation, autostart, runtime, network, and integrity diagnostics |\n| `cpa version` | Show MiniCPA, CLIProxyAPI, and home information |\n| `cpa home` | Print the managed instance directory |\n\n`cpa open` remains a compatibility alias for `cpa web`. Advanced recovery/path commands (`clean`, `root`, and `temp`) remain callable but are intentionally omitted from root help.\n\n`cpa auto` toggles login autostart; `cpa auto on` and `cpa auto off` set it explicitly. Use the explicit `off` form for deterministic cleanup even when inspection is unavailable. Enabling requires a stable, direct npm-global MiniCPA installation; npx caches, local/source installs, and links are rejected. It changes only future automatic startup and does not start or stop the current CLIProxyAPI process. On Windows it registers a hidden WScript launcher (`wscript.exe` plus a generated `.vbs` under `%LOCALAPPDATA%\\MiniCPA`), so `cpa start --no-wait` no longer flashes a console window at logon. Linux uses a systemd user unit and records the effective `XDG_DATA_HOME` so the login service selects the same MiniCPA instance; that unit starts at login, so a headless machine also needs `loginctl enable-linger` (an argument-free `cpa auto` prints this hint when linger is off).\n\n`cpa status` shows aligned configuration, version, download transport, and runtime details. `Download Via` reflects the environment proxy used for HTTPS downloads, with credentials redacted and any `NO_PROXY` rules noted. API and configuration paths are shown even while the instance is stopped.\n\n```text\nSource           Local File\nMiniCPA Version  0.4.3\nCore Version     7.2.92\nDownload Via     Environment Proxy · http://127.0.0.1:7890\nLocal API        http://127.0.0.1:8317\nWeb Panel        http://127.0.0.1:8317/management.html\nCore Config      C:\\Users\\Asterin\\AppData\\Local\\MiniCPA\\instance\\config.yaml\nHome             C:\\Users\\Asterin\\AppData\\Local\\MiniCPA\\instance\nAutostart        off\nStatus           stopped\n```\n\nAutostart is reported as `on`, `off`, `stale`, or `disabled`. `stale` means an OS registration exists but targets a different launcher; an argument-free `cpa auto` repairs it. `disabled` means the registration is present but disabled by the OS; an argument-free `cpa auto` re-enables it. Inspection failures are reported as `unknown` without hiding runtime status. Read-only commands report the CLIProxyAPI version last recorded after a healthy install/restart and never execute the active binary, so they cannot hold a Windows image lock against `cpa update`.\n\n`cpa auto on` only schedules `cpa start --no-wait`; it installs nothing. Enabling it before `cpa init` or `cpa update` still succeeds, but prints a `Note:` naming the missing config or binary — otherwise that start would fail at every login without anyone seeing it. Every `cpa start` records its outcome in `<cpa home>/logs/minicpa.log`, since a login launch discards its own output and pre-spawn failures never reach CLIProxyAPI's logs; `cpa doctor` replays the last record when it was a failure.\n\n`cpa logs` prints the last `-n, --lines <n>` lines from stdout and stderr logs (default `80`; positive whole numbers only). `--err` selects the error log, while `-f`/`--follow` streams new output and ignores `--lines`.\n\nLog following detects file replacement, waits for slow output consumers, and reports file-access failures through the normal CLI error handler. In combined stdout/stderr output, very long lines are emitted in bounded fragments to keep memory usage bounded.\n\nErrors print a short message. Set `DEBUG=1` to include stack traces.\n\n## Network and security\n\nMiniCPA honors `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` (upper or lower case) for GitHub and npm requests. `ALL_PROXY` is an HTTP/HTTPS fallback only when its URL uses `http://` or `https://`; a `socks5://` value is reported but not applied. `cpa doctor` shows the detected proxy environment.\n\nLocal readiness probes bypass proxy variables. With `tls.enable: true`, those isolated probes use HTTPS and accept a self-signed local certificate; GitHub and npm retain normal certificate validation.\n\n`GITHUB_TOKEN` or `GH_TOKEN` can increase GitHub API quota for MiniCPA's binary-release fallback and doctor probe. GitHub/npm credential environment variables are removed from CLIProxyAPI child processes, version probes, and npm upgrade processes; CLIProxyAPI's panel updater still inherits the configured HTTP proxy settings.\n\nMutating lifecycle commands, `cpa auto`, `cpa update`, `cpa clean`, and the installing phase of `cpa upgrade` share one exclusive MiniCPA lock. A blocked command reports the in-flight command and PID.\n\n## Paths and uninstall\n\n| Command | Windows | macOS | Linux |\n|---------|---------|-------|-------|\n| `cpa root` | `%LOCALAPPDATA%\\MiniCPA` | `~/Library/Application Support/MiniCPA` | `$XDG_DATA_HOME/MiniCPA` or `~/.local/share/MiniCPA` |\n| `cpa home` | `…\\MiniCPA\\instance` | same under root | same under root |\n| `cpa temp` | `<cpa root>\\temp` | `<cpa root>/temp` | `<cpa root>/temp` |\n\nCLIProxyAPI runs detached and remains running if MiniCPA is uninstalled. Stop it first and record the data paths:\n\n```bash\ncpa auto off  # remove active, stale, or OS-disabled autostart registrations\ncpa stop\ncpa home\ncpa root\nnpm uninstall -g @astralyn/minicpa\n```\n\nIf MiniCPA was removed first, use the PID in `<cpa home>/state/cpa.pid` with `taskkill /PID <pid> /F` on Windows or `kill <pid>` elsewhere. Uninstalling MiniCPA never deletes `config.yaml`, API keys, provider OAuth tokens under `auths/`, logs, or other instance data. Remove `cpa root` manually only after CLIProxyAPI has stopped.\n\nUninstalling also leaves any autostart registration in place, and it keeps firing at every login against a CLI that no longer exists — silently on Windows. If you skipped `cpa auto off` above, remove it by hand: the `MiniCPA` value under `HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run` plus `%LOCALAPPDATA%\\MiniCPA\\minicpa-autostart.vbs` on Windows, `~/Library/LaunchAgents/com.astralyn.minicpa.plist` on macOS, or `systemctl --user disable minicpa.service` and `~/.config/systemd/user/minicpa.service` on Linux.\n\nSee [docs/cpa-reference.md](docs/cpa-reference.md) for detailed lifecycle, locking, update, and troubleshooting behavior. Release notes are in [CHANGELOG.md](CHANGELOG.md).\n\n## Develop\n\n```bash\ngit clone https://github.com/ming-kang/MiniCPA.git\ncd MiniCPA\nnpm install\nnpm run lint\nnpm test\nnpm run build\nnpm run verify:package\nnpm link   # optional: expose the local build as cpa\n```\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}