{"_id":"@codemagic/patch-cli","_rev":"7-13439a76d7cadaaa47d0ff9c977279de","name":"@codemagic/patch-cli","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@codemagic/patch-cli","version":"0.1.0","keywords":["cmpatch","react-native","ota","over-the-air","cli","deployment"],"license":"Apache-2.0","_id":"@codemagic/patch-cli@0.1.0","maintainers":[{"name":"kimminsik","email":"kmsbernard@gmail.com"},{"name":"tokarev","email":"team@nevercode.io"},{"name":"choiminseok","email":"cms3718@gmail.com"}],"homepage":"https://github.com/codemagic-ci-cd/codemagic-patch/tree/main/cli#readme","bugs":{"url":"https://github.com/codemagic-ci-cd/codemagic-patch/issues"},"bin":{"cmpatch":"dist/cmpatch.js"},"dist":{"shasum":"14e891c0ec0cc8249d110b87b8721183896e363c","tarball":"https://registry.npmjs.org/@codemagic/patch-cli/-/patch-cli-0.1.0.tgz","fileCount":5,"integrity":"sha512-eXMm6Yafi3L9VoOsv2Mdp+icuzhPmY8RSnBnpjSK7XBnuegs+K9N24m5MyiKdYtle+4aIMDOiDTxyw/bloqtdQ==","signatures":[{"sig":"MEUCIQCVhxuhnPHxXLBEryTLqXARtgzRDDhjLUp9iyhVnd+bQwIgPVv5HZ6Q1WkZ5m6FlOJqiFnNIpGCcVlMOB8Jm3QR4N8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1285144},"engines":{"node":">=20.0.0"},"gitHead":"67025343310bcf145b1a0bc1ef126efba08b9305","scripts":{"dev":"yarn exec tsx src/bin/cmpatch.ts","lint":"yarn exec eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run","build":"yarn exec node scripts/build.mjs","clean":"yarn exec rimraf dist node_modules/.cache","prepack":"node scripts/build.mjs","test:http":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-contract.test.ts","typecheck":"yarn workspace @codemagic/patch-shared build && yarn exec tsc -p tsconfig.json","test:http:smoke":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-smoke.e2e.test.ts"},"_npmUser":{"name":"kimminsik","email":"kmsbernard@gmail.com"},"repository":{"url":"git+https://github.com/codemagic-ci-cd/codemagic-patch.git","type":"git","directory":"cli"},"_npmVersion":"10.8.2","description":"Codemagic Patch CLI for releasing and managing over-the-air React Native updates","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fzstd":"^0.1.1","plist":"^3.0.6","xcode":"^3.0.1","fflate":"^0.8.2","prompts":"^2.4.2","gradle-to-js":"2.0.1","fast-xml-parser":"^5.0.0","@expo/fingerprint":"^0.16.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^9.36.0","rimraf":"^6.0.1","vitest":"^3.2.4","esbuild":"^0.25.0","typescript":"^5.9.3","@types/prompts":"^2.4.9","@codemagic/patch-server":"workspace:*","@codemagic/patch-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/patch-cli_0.1.0_1784685040111_0.29953196893189316","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@codemagic/patch-cli","version":"0.1.1","keywords":["cmpatch","react-native","ota","over-the-air","cli","deployment"],"license":"Apache-2.0","_id":"@codemagic/patch-cli@0.1.1","maintainers":[{"name":"kimminsik","email":"kmsbernard@gmail.com"},{"name":"tokarev","email":"team@nevercode.io"},{"name":"choiminseok","email":"cms3718@gmail.com"}],"homepage":"https://github.com/codemagic-ci-cd/codemagic-patch/tree/main/cli#readme","bugs":{"url":"https://github.com/codemagic-ci-cd/codemagic-patch/issues"},"bin":{"cmpatch":"dist/cmpatch.js"},"dist":{"shasum":"85bb249f9105d2d5be7ec82cf5695767f18c47d8","tarball":"https://registry.npmjs.org/@codemagic/patch-cli/-/patch-cli-0.1.1.tgz","fileCount":5,"integrity":"sha512-HT6vOqlYOGYYgOzrjBgKATVdbxUWQuHfL+rKUpIf8UGX8LM7GB7HjcGfZroMaQhxwrYr9sWvjRxnhofmMT0lyg==","signatures":[{"sig":"MEQCIBLxHjkldFIg9TZEJJucmnBO4BoMsRfogma6XnKQFJpoAiBbcHZvEkhFfMBn+Ip+LBIUrRwXPkEW/vqkKYuqchuCRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1285311},"engines":{"node":">=20.0.0"},"gitHead":"ff0848b98a2ce16d675567c93cc560c7146f2b81","scripts":{"dev":"yarn exec tsx src/bin/cmpatch.ts","lint":"yarn exec eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run","build":"yarn exec node scripts/build.mjs","clean":"yarn exec rimraf dist node_modules/.cache","prepack":"node scripts/build.mjs","test:http":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-contract.test.ts","typecheck":"yarn workspace @codemagic/patch-shared build && yarn exec tsc -p tsconfig.json","test:http:smoke":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-smoke.e2e.test.ts"},"_npmUser":{"name":"kimminsik","email":"kmsbernard@gmail.com"},"repository":{"url":"git+https://github.com/codemagic-ci-cd/codemagic-patch.git","type":"git","directory":"cli"},"_npmVersion":"10.9.3","description":"Codemagic Patch CLI for releasing and managing over-the-air React Native updates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"fzstd":"^0.1.1","plist":"^3.0.6","xcode":"^3.0.1","fflate":"^0.8.2","prompts":"^2.4.2","gradle-to-js":"2.0.1","fast-xml-parser":"^5.0.0","@expo/fingerprint":"^0.16.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^9.36.0","rimraf":"^6.0.1","vitest":"^3.2.4","esbuild":"^0.25.0","typescript":"^5.9.3","@types/prompts":"^2.4.9","@codemagic/patch-server":"workspace:*","@codemagic/patch-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/patch-cli_0.1.1_1784696595108_0.0515949583588986","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@codemagic/patch-cli","version":"0.1.2","keywords":["cmpatch","react-native","ota","over-the-air","cli","deployment"],"license":"Apache-2.0","_id":"@codemagic/patch-cli@0.1.2","maintainers":[{"name":"kimminsik","email":"kmsbernard@gmail.com"},{"name":"tokarev","email":"team@nevercode.io"},{"name":"choiminseok","email":"cms3718@gmail.com"}],"homepage":"https://github.com/codemagic-ci-cd/codemagic-patch/tree/main/cli#readme","bugs":{"url":"https://github.com/codemagic-ci-cd/codemagic-patch/issues"},"bin":{"cmpatch":"dist/cmpatch.js"},"dist":{"shasum":"278808e7f0508a5c5deba07d537f209f8780463b","tarball":"https://registry.npmjs.org/@codemagic/patch-cli/-/patch-cli-0.1.2.tgz","fileCount":5,"integrity":"sha512-yod/fr341N9lzTCVA3+2SEE9m9x0j7LKbRL+ksUcidNCqNDpEePz2yuLFebx8LR959sLSEr6CF/LK4bZ8wuW5A==","signatures":[{"sig":"MEUCIHtCEoDcUya6cF57gl+myK0qk49Qr2kjqbUQebGM8i52AiEAvyCcvhDfBPUo8ge1sofJK66HjjQYXwLHaL5E/Wu3Qcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1306324},"engines":{"node":">=20.0.0"},"gitHead":"5e4ae8a1ebe2c28350184532d3e360d505dccb69","scripts":{"dev":"yarn exec tsx src/bin/cmpatch.ts","lint":"yarn exec eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run","build":"yarn exec node scripts/build.mjs","clean":"yarn exec rimraf dist node_modules/.cache","prepack":"node scripts/build.mjs","test:http":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-contract.test.ts","typecheck":"yarn workspace @codemagic/patch-shared build && yarn exec tsc -p tsconfig.json","test:http:smoke":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-smoke.e2e.test.ts"},"_npmUser":{"name":"kimminsik","email":"kmsbernard@gmail.com"},"repository":{"url":"git+https://github.com/codemagic-ci-cd/codemagic-patch.git","type":"git","directory":"cli"},"_npmVersion":"10.8.2","description":"Codemagic Patch CLI for releasing and managing over-the-air React Native updates","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fzstd":"^0.1.1","plist":"^3.0.6","xcode":"^3.0.1","fflate":"^0.8.2","prompts":"^2.4.2","gradle-to-js":"2.0.1","fast-xml-parser":"^5.0.0","@expo/fingerprint":"^0.16.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^9.36.0","rimraf":"^6.0.1","vitest":"^3.2.4","esbuild":"^0.25.0","typescript":"^5.9.3","@types/prompts":"^2.4.9","@codemagic/patch-server":"workspace:*","@codemagic/patch-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/patch-cli_0.1.2_1785602857215_0.7716266202455084","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@codemagic/patch-cli","version":"0.1.3","keywords":["cmpatch","react-native","ota","over-the-air","cli","deployment"],"license":"Apache-2.0","_id":"@codemagic/patch-cli@0.1.3","maintainers":[{"name":"kimminsik","email":"kmsbernard@gmail.com"},{"name":"tokarev","email":"team@nevercode.io"},{"name":"choiminseok","email":"cms3718@gmail.com"}],"homepage":"https://github.com/codemagic-ci-cd/codemagic-patch/tree/main/cli#readme","bugs":{"url":"https://github.com/codemagic-ci-cd/codemagic-patch/issues"},"bin":{"cmpatch":"dist/cmpatch.js"},"dist":{"shasum":"b8435504a297f647f1e2e0281456dd030cfc48f3","tarball":"https://registry.npmjs.org/@codemagic/patch-cli/-/patch-cli-0.1.3.tgz","fileCount":5,"integrity":"sha512-8Agsp8FLGgtAIofqphbHKzPZyPTjVwJe1YcaiHTcKghM0g+czsPB+5xRqXpAp7oDGNhunoN0667NjD7RJuRBPQ==","signatures":[{"sig":"MEQCIE8B57Z0zgTAW4YUd16f+NpaOnWvvNen4FHf7yAoqQhoAiAVifXHUFF2B3d1I0T5zHgiJsorQrCcwkhZQ7OiG0kOJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1318150},"engines":{"node":">=20.0.0"},"gitHead":"c64b686ec6b29bddaaf89cb2313ac8cd9d3e8903","scripts":{"dev":"yarn exec tsx src/bin/cmpatch.ts","lint":"yarn exec eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run","build":"yarn exec node scripts/build.mjs","clean":"yarn exec rimraf dist node_modules/.cache","prepack":"node scripts/build.mjs","test:http":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-contract.test.ts","typecheck":"yarn workspace @codemagic/patch-shared build && yarn exec tsc -p tsconfig.json","test:http:smoke":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-smoke.e2e.test.ts"},"_npmUser":{"name":"kimminsik","email":"kmsbernard@gmail.com"},"repository":{"url":"git+https://github.com/codemagic-ci-cd/codemagic-patch.git","type":"git","directory":"cli"},"_npmVersion":"10.8.2","description":"Codemagic Patch CLI for releasing and managing over-the-air React Native updates","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fzstd":"^0.1.1","plist":"^3.0.6","xcode":"^3.0.1","fflate":"^0.8.2","prompts":"^2.4.2","gradle-to-js":"2.0.1","fast-xml-parser":"^5.0.0","@expo/fingerprint":"^0.16.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^9.36.0","rimraf":"^6.0.1","vitest":"^3.2.4","esbuild":"^0.25.0","typescript":"^5.9.3","@types/prompts":"^2.4.9","@codemagic/patch-server":"workspace:*","@codemagic/patch-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/patch-cli_0.1.3_1786342198521_0.9361623795660086","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@codemagic/patch-cli","version":"0.2.0","keywords":["cmpatch","react-native","ota","over-the-air","cli","deployment"],"license":"Apache-2.0","_id":"@codemagic/patch-cli@0.2.0","maintainers":[{"name":"kimminsik","email":"kmsbernard@gmail.com"},{"name":"tokarev","email":"team@nevercode.io"},{"name":"choiminseok","email":"cms3718@gmail.com"}],"homepage":"https://github.com/codemagic-ci-cd/codemagic-patch/tree/main/cli#readme","bugs":{"url":"https://github.com/codemagic-ci-cd/codemagic-patch/issues"},"bin":{"cmpatch":"dist/cmpatch.js"},"dist":{"shasum":"7710b5e2785e52281293ba481bd2ac6f016a006a","tarball":"https://registry.npmjs.org/@codemagic/patch-cli/-/patch-cli-0.2.0.tgz","fileCount":5,"integrity":"sha512-oL+oXPcTQBuidECYcUcCuTQP4MS6yd9OLpVbojPpwV37GAdfJeqNZR8XzCUaZMJgwuWaIA6ee8qBT5Nc34sj7Q==","signatures":[{"sig":"MEUCIQDMYQiuN896TSNQtIQWIpExgWyq1i4yGA4AdNVkHgIFFgIgW3Jd1Krsbd+2Dz3u+ovGwbgnoTkwyclyeo6CoTkXxLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1575842},"engines":{"node":"^20.19.0 || >=22.12.0"},"gitHead":"0e462734ee63a83157e749ead1d641cd3511f644","scripts":{"dev":"yarn exec tsx src/bin/cmpatch.ts","lint":"yarn exec eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run","build":"yarn exec node scripts/build.mjs","clean":"yarn exec rimraf dist node_modules/.cache","prepack":"node scripts/build.mjs","test:http":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-contract.test.ts","typecheck":"yarn workspace @codemagic/patch-shared build && yarn exec tsc -p tsconfig.json","test:http:smoke":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-smoke.e2e.test.ts"},"_npmUser":{"name":"kimminsik","email":"kmsbernard@gmail.com"},"repository":{"url":"git+https://github.com/codemagic-ci-cd/codemagic-patch.git","type":"git","directory":"cli"},"_npmVersion":"10.8.2","description":"Codemagic Patch CLI for releasing and managing over-the-air React Native updates","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fzstd":"^0.1.1","plist":"^3.0.6","xcode":"^3.0.1","fflate":"^0.8.2","picocolors":"^1.1.1","gradle-to-js":"2.0.1","@clack/prompts":"^1.7.0","fast-xml-parser":"^5.0.0","@expo/fingerprint":"^0.16.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^9.36.0","rimraf":"^6.0.1","vitest":"^3.2.4","esbuild":"^0.25.0","typescript":"^5.9.3","@codemagic/patch-server":"workspace:*","@codemagic/patch-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/patch-cli_0.2.0_1787622076883_0.9224511153205484","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@codemagic/patch-cli","version":"0.3.0","keywords":["cmpatch","react-native","ota","over-the-air","cli","deployment"],"license":"Apache-2.0","_id":"@codemagic/patch-cli@0.3.0","maintainers":[{"name":"kimminsik","email":"kmsbernard@gmail.com"},{"name":"tokarev","email":"team@nevercode.io"},{"name":"choiminseok","email":"cms3718@gmail.com"}],"homepage":"https://github.com/codemagic-ci-cd/codemagic-patch/tree/main/cli#readme","bugs":{"url":"https://github.com/codemagic-ci-cd/codemagic-patch/issues"},"bin":{"cmpatch":"dist/cmpatch.js"},"dist":{"shasum":"956f6b56253862fcbffe0c465faf8d9be3cedd6c","tarball":"https://registry.npmjs.org/@codemagic/patch-cli/-/patch-cli-0.3.0.tgz","fileCount":5,"integrity":"sha512-ilp0lH3BnQ92/+q63TqdZAaWCgXS9x1TsIwc3PL1PjHULiMraxMOKitIWm/SR+iFsf6g1iekbuwAwvRxpIiybA==","signatures":[{"sig":"MEQCIEd9sv7AutndKGaJBEmHMTVRBLOfx0EhRSH/P0uwLheWAiArJEPIOLbLlfhlCQthYRQHwA84MDc++cIa/BoTupHiJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2712661},"engines":{"node":"^20.19.0 || >=22.12.0"},"gitHead":"f22294f7c2599b79979b8620e5cb6db4bf3bdf0a","scripts":{"dev":"yarn exec tsx src/bin/cmpatch.ts","lint":"yarn exec eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run","build":"yarn exec node scripts/build.mjs","clean":"yarn exec rimraf dist node_modules/.cache","prepack":"node scripts/build.mjs","test:http":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-contract.test.ts","typecheck":"yarn workspace @codemagic/patch-shared build && yarn exec tsc -p tsconfig.json","prepublishOnly":"node -e \"if (require('node:fs').existsSync('dist/source.bundle')) { throw new Error('dist/source.bundle is the internal-test source snapshot and must never be published; rebuild dist/ first'); }\"","test:http:smoke":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-smoke.e2e.test.ts"},"_npmUser":{"name":"kimminsik","email":"kmsbernard@gmail.com"},"repository":{"url":"git+https://github.com/codemagic-ci-cd/codemagic-patch.git","type":"git","directory":"cli"},"_npmVersion":"10.8.2","description":"Codemagic Patch CLI for releasing and managing over-the-air React Native updates","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fzstd":"^0.1.1","plist":"^3.0.6","xcode":"^3.0.1","fflate":"^0.8.2","picocolors":"^1.1.1","gradle-to-js":"2.0.1","@clack/prompts":"^1.7.0","fast-xml-parser":"^5.0.0","@expo/fingerprint":"^0.16.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^9.36.0","rimraf":"^6.0.1","vitest":"^3.2.4","esbuild":"^0.25.0","typescript":"^5.9.3","@codemagic/patch-server":"workspace:*","@codemagic/patch-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/patch-cli_0.3.0_1788775606150_0.08029128685675291","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@codemagic/patch-cli","version":"0.4.0","description":"Codemagic Patch CLI for releasing and managing over-the-air React Native updates","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/codemagic-ci-cd/codemagic-patch.git","directory":"cli"},"homepage":"https://github.com/codemagic-ci-cd/codemagic-patch/tree/main/cli#readme","bugs":{"url":"https://github.com/codemagic-ci-cd/codemagic-patch/issues"},"keywords":["cmpatch","react-native","ota","over-the-air","cli","deployment"],"engines":{"node":"^20.19.0 || >=22.12.0"},"publishConfig":{"access":"public"},"bin":{"cmpatch":"dist/cmpatch.js"},"dependencies":{"@aws-sdk/credential-providers":"3.1031.0","@babel/parser":"^7.29.7","@babel/traverse":"^7.29.7","@clack/prompts":"^1.7.0","@expo/fingerprint":"^0.16.7","fast-xml-parser":"^5.0.0","fflate":"^0.8.2","fzstd":"^0.1.1","gradle-to-js":"2.0.1","picocolors":"^1.1.1","plist":"^3.0.6","xcode":"^3.0.1"},"devDependencies":{"@codemagic/patch-server":"workspace:*","@codemagic/patch-shared":"workspace:*","@types/babel__traverse":"^7.28.0","esbuild":"^0.25.0","eslint":"^9.36.0","rimraf":"^6.0.1","tsx":"^4.20.5","typescript":"^5.9.3","vitest":"^3.2.4"},"scripts":{"build":"yarn exec node scripts/build.mjs","clean":"yarn exec rimraf dist node_modules/.cache","dev":"yarn exec tsx src/bin/cmpatch.ts","lint":"yarn exec eslint \"src/**/*.ts\" \"test/**/*.ts\"","prepack":"node scripts/build.mjs","prepublishOnly":"node -e \"if (require('node:fs').existsSync('dist/source.bundle')) { throw new Error('dist/source.bundle is the internal-test source snapshot and must never be published; rebuild dist/ first'); }\"","test":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run","test:http":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-contract.test.ts","test:http:smoke":"yarn workspace @codemagic/patch-shared build && yarn workspace @codemagic/patch-server build && yarn exec vitest run test/http-smoke.e2e.test.ts","typecheck":"yarn workspace @codemagic/patch-shared build && yarn exec tsc -p tsconfig.json"},"gitHead":"df4fc68817c925c9006d43b3ce77b1cf72116d8e","_id":"@codemagic/patch-cli@0.4.0","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-tarAWowuEWpWGKlFHz47SxrXSVPxD1cJxXJRrARVmwpegC8xySiFqgfo/AD7K86zP8uJ4ylSE/unDnCCPhLD+A==","shasum":"e1b2146d4250580f57c6a36abc7373271fdaf51b","tarball":"https://registry.npmjs.org/@codemagic/patch-cli/-/patch-cli-0.4.0.tgz","fileCount":5,"unpackedSize":3450339,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwbTFCIz20UV6V4nn9uGt7nWVlliXNtHGJW1tNfJrLLgIgKGDWTll12kYZOV7xYHV9V9U1h1V37S7I7527nRdl348="}]},"_npmUser":{"name":"kimminsik","email":"kmsbernard@gmail.com"},"directories":{},"maintainers":[{"name":"kimminsik","email":"kmsbernard@gmail.com"},{"name":"tokarev","email":"team@nevercode.io"},{"name":"choiminseok","email":"cms3718@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/patch-cli_0.4.0_1789373385267_0.6151937907018148"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-22T01:50:39.944Z","modified":"2026-09-14T08:09:45.637Z","0.1.0":"2026-07-22T01:50:40.303Z","0.1.1":"2026-07-22T05:03:15.300Z","0.1.2":"2026-08-01T16:47:37.383Z","0.1.3":"2026-08-10T06:09:58.673Z","0.2.0":"2026-08-25T01:41:17.045Z","0.3.0":"2026-09-07T10:06:46.345Z","0.4.0":"2026-09-14T08:09:45.433Z"},"bugs":{"url":"https://github.com/codemagic-ci-cd/codemagic-patch/issues"},"license":"Apache-2.0","homepage":"https://github.com/codemagic-ci-cd/codemagic-patch/tree/main/cli#readme","keywords":["cmpatch","react-native","ota","over-the-air","cli","deployment"],"repository":{"type":"git","url":"git+https://github.com/codemagic-ci-cd/codemagic-patch.git","directory":"cli"},"description":"Codemagic Patch CLI for releasing and managing over-the-air React Native updates","maintainers":[{"name":"kimminsik","email":"kmsbernard@gmail.com"},{"name":"tokarev","email":"team@nevercode.io"},{"name":"choiminseok","email":"cms3718@gmail.com"}],"readme":"# @codemagic/patch-cli\n\nCommand-line interface for releasing and managing over-the-air (OTA) React Native updates with [Codemagic Patch](https://github.com/codemagic-ci-cd/codemagic-patch). Provides the `cmpatch` command.\n\n## Requirements\n\n- Node.js `20.19+` or `22.12+`\n\n## Install\n\n```sh\nnpm install -g @codemagic/patch-cli\n```\n\n## Quick start\n\nFrom your React Native project root, let the CLI connect the project to a Patch\nserver and create or select the platform apps and deployment:\n\n```sh\ncmpatch init\n\n# Preview, then publish an OTA release\ncmpatch release-react --deployment Staging --dry-run\ncmpatch release-react --deployment Staging\n```\n\n`cmpatch init` guides you to install a server or enter an existing server URL,\nsign in when needed, and writes the selected context to\n`codemagic-patch.config.json`.\n\n### Try the full service locally\n\nTo evaluate Patch before provisioning a server, start the full stack on your\nmachine:\n\n```sh\ncmpatch selfhost local-eval\n```\n\n`cmpatch selfhost local-eval` checks Docker (and offers to install or start it),\nkeeps its own checkout of Codemagic Patch, and starts the server, worker, Postgres, MinIO, and dashboard\non localhost. It requires `git`, `curl`, and Docker with Compose v2, and runs on\nmacOS, Linux, or WSL 2. Use `cmpatch selfhost local-eval status` to see the\nservices, checkout, and sample publish command; stop it with\n`cmpatch selfhost local-eval down`.\n\nOnce the stack is ready, you can [connect your own app](https://patch.codemagic.io/docs/#5-try-it-with-your-own-app). If you want to try an OTA with a ready-made app first, run the optional demo:\n\n```sh\ncmpatch demo\n```\n\nIt reuses the evaluation checkout, signs you in if needed, and builds and launches the demo app. After you see the broken product\ncards, approve publishing the fix; the CLI makes the change and the app applies\nit over the air automatically. No separate clone or source editing is needed.\nThe demo requires Node.js ≥ 22.20, Yarn via Corepack, and an iOS Simulator with\nXcode and CocoaPods or Bundler on macOS, or an Android emulator with the Android\nSDK, Java, and `adb` on PATH. Follow the [Local quickstart](https://patch.codemagic.io/docs/)\nfor dashboard exploration or connecting your own app.\n\nIf Docker retains unusable evaluation container records, the command\nautomatically recreates the evaluation environment. Evaluation data may be\nreset during recovery; other Docker projects are left alone.\n\n## Commands\n\n| Group | Description |\n| --- | --- |\n| `release` | Publish, inspect, patch, promote, and roll back OTA releases. |\n| `management` | Manage apps, deployments, and deployment history. |\n| `auth` | Authenticate, manage tokens, and manage team members. |\n| `diagnostics` | Diagnose local setup and OTA readiness (`cmpatch doctor`). |\n| `config` | Store defaults and inspect the effective local context. |\n| `fingerprint` | Compute fingerprints and inspect device update logs. |\n| `selfhost` | Run the local evaluation stack or install and maintain a self-hosted server. |\n\nUse `cmpatch help <group>` for the commands in a group, `cmpatch help <command>` for per-command usage and examples, and `cmpatch --version` to print the CLI version.\n\n## Output formats\n\nMost commands accept `--format json|table`. When stdout is a terminal, output defaults to a human-readable table; when piped, it defaults to JSON, so the CLI is directly scriptable:\n\n```sh\ncmpatch app list --format json | jq '.apps[].name'\n```\n\n## Exit codes\n\n| Code | Meaning |\n| --- | --- |\n| 0 | Success |\n| 1 | Server or runtime error (not found, conflict, rate limited, …) |\n| 2 | Authentication required or usage error |\n| 3 | Validation error |\n| 4 | Account disabled |\n| 130 | Interactive prompt aborted (Ctrl-C) |\n\n## Configuration\n\n- **User config:** `~/.codemagic-patch/config.json` — CLI-wide defaults such as `serverUrl`. Credentials are stored per server in `~/.codemagic-patch/credentials.json`. Set the `CODEMAGIC_PATCH_HOME` environment variable to relocate this directory.\n- **Project config:** `codemagic-patch.config.json` at your project root (or a `codemagicPatch` key in `package.json`) — per-project defaults such as `app`, `deployment`, and platform-specific overrides. Created by `cmpatch init`.\n\nExplicit flags always take precedence over configured defaults. Run `cmpatch context` to inspect the effective configuration, and `cmpatch doctor` to diagnose setup issues.\n\n`cmpatch doctor` checks application SDK settings, server configuration, and download endpoint connectivity without requiring an existing OTA release. To additionally inspect delivery manifests and advertised bundle/patch accessibility, run:\n\n```sh\ncmpatch doctor --verify-delivery\ncmpatch doctor --verify-delivery --platform ios --target-binary-version 1.2.3\n```\n\nUse `--current-package-hash <hash>` with `--verify-delivery` to simulate an OTA-active baseline. A missing primary manifest follows the fallback path. No eligible release or an explicit embedded-bundle target is reported as unverified artifact coverage, not an installation failure. Publication status alone cannot prove CDN propagation.\n\nFor a global `--app`/`--app-id` selector in a two-platform project, include `--platform ios` or `--platform android`; use `apps.ios`/`apps.android` mappings to inspect both. Explicit app IDs are verified directly without automatic team selection, while an explicitly selected team and the deployment's app membership are still checked. Authenticated control-plane redirects are reported without forwarding credentials: verify the canonical server URL and rerun with `--server-url`.\n\nNative discovery follows a unique iOS app target's plist and source membership when an Xcode project is available. Android checks SDK values across resource XML files, separating unrelated translations from actual overrides. `--platform android --gradle-file <module>/build.gradle` selects a custom module's adjacent source tree. JS source checks follow bounded local imports and re-exports separately for each platform.\n\nA passing resource/source check does not certify the final build. When Patch resource settings are resolved without conflicts, an unevaluated external Gradle build is shown as information and does not prevent setup checks from passing. External Gradle scripts, dynamic Expo configuration, unresolved Xcode configuration, custom JS aliases, and external package entries can still require additional inspection. Doctor does not execute these configurations or run prebuild automatically.\n\nJSON output includes separate `coverage.setup` and `coverage.delivery` results. Exit code 0 means no confirmed diagnostic failure; inspect coverage for incomplete verification. Accessibility checks do not verify file integrity, signatures, installation, or behavior on a device. Default doctor is read-only and does not publish releases. The optional configuration fix below is the only write it supports.\n\n### Optional doctor configuration fix\n\n`cmpatch doctor --fix --server-url https://patch.example.com` can offer to create a missing `codemagic-patch.config.json` with that explicit URL after a successful readiness check. The prompt shows the file and value; existing files and package-level server settings are preserved. This saves the CLI server default, not native SDK settings. Diagnostics run again after applying.\n\nUse `--fix --yes` to apply this limited fix without prompting in CI or JSON mode. Without `--yes`, noninteractive runs report the proposal without writing. Plain `doctor` remains read-only. Native integration edits, login, dependencies, prebuild and publication remain manual actions.\n\n## Install with external storage\n\n`cmpatch selfhost install` offers bundled MinIO (default), Cloudflare R2 when\nAPI DNS uses Cloudflare, Amazon S3, and Google Cloud Storage. External storage\nuses separate public and private buckets. Choose automatic new-resource setup\nor guided console setup; existing complete runtime settings skip provisioning.\n\n```sh\ncmpatch selfhost install user@vps --storage-mode s3\ncmpatch selfhost install user@vps --storage-mode gcs --storage-setup guided\n```\n\nS3/GCS need accounts that permit public artifact reads; GCS also needs a usable\nservice-account key. AWS profiles/gcloud accounts are selected explicitly.\nDisposable setup credentials are separate from runtime credentials and cleaned\nup best effort. Failed setup prints resources and a guided reuse command; it\nnever rolls back cloud resources. Read/write, public download, privacy and\nselected CDN cache/purge probes run before deployment. A signed-in release smoke\ncheck and actual device use remain separate checks.\n\nCloudFront and S3/GCS Cloudflare Cloud Connector (Beta) are guided console\nwalkthroughs. See [external storage setup](../docs/self-hosting-compose.md#external-storage-in-the-install-wizard)\nfor prerequisites, unattended flags, cleanup and credential replacement.\n\n## License\n\n[Apache-2.0](./LICENSE)\n","readmeFilename":"README.md"}