{"_id":"@gfean/react-native-bundle-drop","_rev":"40-ea3c3e8d56318a8a46cf1b9fd223d04e","name":"@gfean/react-native-bundle-drop","dist-tags":{"latest":"0.9.0"},"versions":{"0.1.31":{"name":"@gfean/react-native-bundle-drop","version":"0.1.31","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.31","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"http://#readme","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"ce078c07ace9196ec6094c9aca9a97bac7e57a36","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.31.tgz","fileCount":47,"integrity":"sha512-KTyVqlVhdg5/a1Gj7bAEtZrop5VOBEH0fpVTm/cPLVJgAywdO+gaQXBSLrzEC8KV3U6po2DiJ2076mwiPjGN2A==","signatures":[{"sig":"MEQCIEg6cHfXyw0N8PYFlH1l4Bsngt33qwxZOLNW0zBtdbm1AiAj92ctM+zPETVlUx+FlNBe6sXcRAN3aGQ0P9Zh8kO5zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111665},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"a772920d950bb497f8a22f162eee603ee8750bf7","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.31_1767526148981_0.39029086528447143","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.32":{"name":"@gfean/react-native-bundle-drop","version":"0.1.32","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.32","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"832bcaeea7be59b2071a140f7c26619a98f81c8b","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.32.tgz","fileCount":47,"integrity":"sha512-kq69WTFMT0zxdSDkYsAuy5h7nA+InGDleKrAjVNxs0lP2+0tFBfOl9685krVVgbCSMUhQud0dut6zbI8Je5l6w==","signatures":[{"sig":"MEYCIQDzCyweduRODZgg6fk62ht0rE1DdmA+RdvOl3hQWLfC/gIhAMXzmwAs5JFGZKm7oBFRmzWY3vZm7wyrcfY3cc0b7EEU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111485},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"a772920d950bb497f8a22f162eee603ee8750bf7","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.32_1767527029386_0.34615410799416924","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.33":{"name":"@gfean/react-native-bundle-drop","version":"0.1.33","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.33","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"67cd39a1c3df2f52552c5c2ef8fdb05b16ecf3ed","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.33.tgz","fileCount":47,"integrity":"sha512-RbHAqlqzhJ0kTtJIIhGdqYB/lJUtnrnAX63LrHc9rru8iM8U3zeVxuPUNeZ/gyq6sC6CDbpBX//Xw99W2jJJvg==","signatures":[{"sig":"MEQCIBtGQLqF3TbJGbAWqhvSThNiLGfmPI16wVMzMsrTMzC3AiAL5x2PXDbQD9NJdXyWFM7k7Aulk2V78eS3hpv0FCcJig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111836},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"75979442b54385c832fc74f3a4b6b1666b8adaea","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.33_1767528018585_0.01447640854216159","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.34":{"name":"@gfean/react-native-bundle-drop","version":"0.1.34","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.34","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"e3cf10d39327c0bc8046f5907aead184b9e5b31a","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.34.tgz","fileCount":49,"integrity":"sha512-YR6nXZ/OYYTN4BgVn1vXaC0Pw+A1gfExlwACITm918CkeSQy3TibvABAT7jmp2Urq1WMLUIvj0BGPa0nwVdhiA==","signatures":[{"sig":"MEUCIQCh412gWrI37rqByMGjIEL9+KbAzbjJeMfGZ2ySeDkfOwIgBNkaUZJv8b8KiI9/f55Z+/HD/R4mcoh5FKqx7yPOtsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112651},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"97268de3723e03de1f4ee70253adc78bae3eb101","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.34_1767528631625_0.5284990267428575","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.35":{"name":"@gfean/react-native-bundle-drop","version":"0.1.35","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.35","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"f91cc0df780d23c122698927f759fe9200eca6b8","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.35.tgz","fileCount":49,"integrity":"sha512-f93s9/sa4PCvJJNXYUYi1c88ox1w03V2EiHTinJrfmy9vDgMAHbGZe3sBEXqLYwrkYTVraYQRKH0ntBew6GJxQ==","signatures":[{"sig":"MEUCIQD5MGy+PwVzLjM9sHcpknkTD4dkNa2noGAQoLT51+4lzgIgJPYxouPr2CZDHh1TW7Stzb7sLBu8n5jzIkGLPc95S9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113202},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"97268de3723e03de1f4ee70253adc78bae3eb101","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.35_1767530351658_0.13076803452035057","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.36":{"name":"@gfean/react-native-bundle-drop","version":"0.1.36","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.36","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"bfa4dea4551f7572f4a540b4a70eb180f13f0080","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.36.tgz","fileCount":49,"integrity":"sha512-ZPRI+6xg/70inxdVmhIoWXx+xGxDZjJXO6VpKVy/gRhuAkyPHPf5oyr+Iw4eW3R/1OYSm32lemv8Udw9hI2e7g==","signatures":[{"sig":"MEQCIBz9EsndVZOWefp5eBxcsOoJca3RrkACpZjxgcYXVZexAiAMRDHFdsQgrH+aV17Tt0fJveVcGeEbeznwgzcSHqSF5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113796},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"97268de3723e03de1f4ee70253adc78bae3eb101","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.36_1767531798771_0.15316949703028349","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.37":{"name":"@gfean/react-native-bundle-drop","version":"0.1.37","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.37","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"bcb0bdaec96ce36c9e02ff5d8267e526308a4eeb","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.37.tgz","fileCount":49,"integrity":"sha512-3W3RFKDMq+GFQfrlINYxpeGDAp3TORYEKTjUxI8GjrFQKV5NQBr1BMoIDBU2FMJUzpHszmkyv0SeHY4XcUe16w==","signatures":[{"sig":"MEUCICZvrh9EDf2rWo7NLyeN4PJUVZc4I2bhpuAm5ZVU442gAiEAr6mXbXBbFz7llCocBFW8TDc13i9wmi1xLQFpPzYNu6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116230},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"97268de3723e03de1f4ee70253adc78bae3eb101","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.37_1767557981684_0.33841858248926204","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.38":{"name":"@gfean/react-native-bundle-drop","version":"0.1.38","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.38","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"206c75b17f8184b38bb5d8d762d56cabf148c3d4","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.38.tgz","fileCount":49,"integrity":"sha512-NXorzvtfNcXV0oyhBoIS/wZ5sbWyEoPj8XdbloakGIWVqS1mR7AfvaZVHBwfTiNqh7f6TAs5kVBCUoBXZrDDqQ==","signatures":[{"sig":"MEUCIDazwSLU7DbNgQ7W6jDBVLmKZKzZ8i1H/Kt35szJiWV1AiEAmBHcaeHCMJRxpTEWXK6W3qNgg2kT+8cKnHD0nOD43hM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117682},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"97268de3723e03de1f4ee70253adc78bae3eb101","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.38_1767565857408_0.25592319010968767","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.39":{"name":"@gfean/react-native-bundle-drop","version":"0.1.39","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.39","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"c20fa02c77111e7a35f1fcb2ed88d17f4518519e","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.39.tgz","fileCount":49,"integrity":"sha512-6OYOxPPAvnV+Btg9v9dhZCm3CB68PHDHwCMXJtrK6IERauoAkhdOYOSlSd2b8qtPNE4GL8tAnLwpojaBN/5Gog==","signatures":[{"sig":"MEUCIQClvxe8uVTZqQeq0Hii1FAAGiFC9+0Gsn7cSAkbaBdtZgIgHacdW1zRivABgwHO9xYSDzhphmfP+aeyN+v7hMYVBMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117741},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"61c92342dd653e98efb9d362f4a96d3d8631d725","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.39_1767633793481_0.3854322058263302","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.47":{"name":"@gfean/react-native-bundle-drop","version":"0.1.47","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.47","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"0c1b308790dd44aef956bc3c3fe07390a880fbb9","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.47.tgz","fileCount":81,"integrity":"sha512-jbqKum23wBDX3MFA6VGhB80/Mh2HX/ERjXqrNsQ7OSpgd5ExnZW8ky1RYw5cEuqnH9hcBEO0RytHrlK4xKYlYg==","signatures":[{"sig":"MEUCIQCb1qWj3UNxuyRHAOEfMycdEe9qpO/vXdANxFEh4gtFJgIgQyVl51O2Ukd5dRIkArFa7hmu9JgpGn+hYPuLX2gdUPg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134360},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"0716c9626245e25f1180bdb179113b83c920e9cb","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.47_1767786149529_0.14250552164745378","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.48":{"name":"@gfean/react-native-bundle-drop","version":"0.1.48","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.48","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"1374b1619c31cc97f46747fbeed813913ef9eacd","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.48.tgz","fileCount":81,"integrity":"sha512-PQQMrfTdn0L84yi6n9VUn1E/OYpXvzfZs89p50HrAftR4sPXOj0dBnU8PuJX5lI4/VA/OnZBAjd3OsayvEuG5w==","signatures":[{"sig":"MEUCIQDeGFnHk+fzB1Q4dBhFkiP24d0UIS9LuGbRHEoZHsk45AIgYZGem90f6u+/JoSoudieyfryG/p8bKzn445U9cWzGZg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134332},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"18fb3cff44faa76c4c8cc0d72b95ea92d8ed9568","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0","react-native-zip-archive":"^7.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.48_1767844629011_0.7244241836920675","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.82":{"name":"@gfean/react-native-bundle-drop","version":"0.1.82","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.82","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"d8b6bdc358d8c6496ec0226b970cbfe10de72e91","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.82.tgz","fileCount":87,"integrity":"sha512-6TqebGm2ji3HHARxoAwpRIeDH4MumiD6VoyYP2jC/n/77fdVv7d6c1ArbIFoJFZs6ANdEDDizqTwSCZgsqAQgw==","signatures":[{"sig":"MEUCIQCM2Jsb3Wp3ilrA0C9o0lYVlsAPw9VWm+Rz4nQWIbU/VQIgMVt9hlrFh/pq8hKZ3AUEFdyKyyCq2qACONxc6ws3Nq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186639},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"08b7fd0e973fe31fb88a95fb3769f9d1623be4e0","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3","react-native-fs":"^2.20.0"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.82_1772722554809_0.6032481819711883","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.85":{"name":"@gfean/react-native-bundle-drop","version":"0.1.85","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.85","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"e1ec449e8a43565034c61b646e0d0f0a8007a698","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.85.tgz","fileCount":89,"integrity":"sha512-uKHfsqXXdnrsKlYrxDNqt7H7wbvGL3cIijMp0cTOhwz/gUPtSHOwvYkAJPix1CGfEwN7ix88F7bMHVexiuZIgA==","signatures":[{"sig":"MEUCIHOv4Y9hCwfmYjUBpkIaNsPlB+LOoW6ypPVHiCb+7vEVAiEAtHYlQEaJF5nycx0ZZWYOy8WqK0Ih9/VGhqU6pSVywXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194648},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"fc281528b24370828c34f76f35f8dab9dbdbe0bb","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.85_1772898889437_0.3868811723592436","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.91":{"name":"@gfean/react-native-bundle-drop","version":"0.1.91","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.91","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"a62fbd642f27672e6341ac5a68cdb9b7b3961113","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.91.tgz","fileCount":89,"integrity":"sha512-3jBd4k3UO0fTYeaEtZ+Fr4imRKbTp1V5sMmnjUv4MiZLvwQv4mcRSTs0gNeupeN1ykyq2HuZgc6BSO0zmwOk/A==","signatures":[{"sig":"MEUCIDvJFknqOFc5+X8MrjJ6Ac+HmtjFYs/8YnjmjZOoJ13VAiEA/3TrXU8h8Fv3g1+CnxeyIrsvH8whSxgljYhAQ+YGJWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202732},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"83bfc42d7e47cb248651eb4b8bd3c0d4e0bcc311","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.91_1773385064254_0.940240538803224","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.94":{"name":"@gfean/react-native-bundle-drop","version":"0.1.94","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.94","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"f7388b57547759a93de67e7aa4e4c9dbb1e505c0","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.94.tgz","fileCount":89,"integrity":"sha512-2E4U1/qFCTJnMTmj1MMCU+8cMEG2Da+KE7EjmG30EP6KPzjQU2KtPqZJAS08fQwZgZmYx/2MCtM7lh5gTMjQTA==","signatures":[{"sig":"MEQCIE7AS9+SbZweEkDMgZh8KDw4fQtPMF++igPl74k6JE8dAiAX1gLUd9XEIDZXpxOublOcLUv28YgrqltRQp9nXZQOeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203647},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"83bfc42d7e47cb248651eb4b8bd3c0d4e0bcc311","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.94_1773493529777_0.02996246020146054","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.95":{"name":"@gfean/react-native-bundle-drop","version":"0.1.95","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.95","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"23d1dd58a533c1e2f8a75cf0da8a911069be02a0","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.95.tgz","fileCount":89,"integrity":"sha512-TsvXcwd9uWGXZ80XJCD7ZDQJbe6nnO6IAhfm5bEXy6p/BJCjIWlWZ7bpDyboPwCk/yw2WakqNlDeFMpnpV93AQ==","signatures":[{"sig":"MEYCIQCYtCjlxDvkEPN9MtWKColB6iYPu7rRFyDbl+gyzcQpaAIhAKwNOxjcjRgtzlo9w76+YYIZuzU7OoFfvIaF/0y8IiUJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203647},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"83bfc42d7e47cb248651eb4b8bd3c0d4e0bcc311","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.95_1773493656844_0.38028150212709244","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.1.97":{"name":"@gfean/react-native-bundle-drop","version":"0.1.97","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.1.97","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"405bf16d30f0510baf90b7a09ceacdb3a3213c42","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.1.97.tgz","fileCount":89,"integrity":"sha512-zN2bZJFcnCsg0CJ1/CLx247hP5EZE/lJK52DSyvqtXZFNn02ZnXJFyFLtvmbDfj82dfySEdrtdSdiWttjEZPOw==","signatures":[{"sig":"MEYCIQDW8LYLBXuP6Jt83IU1Wksgki4k8lVqrJaxNLt4yBfkrQIhAPE6ZTmLQQI+RLBsUTxT0HPgXnQx8I89LfnhySUkMokN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204985},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"9776874593b7ac65b5de38c00fd9361c739e6223","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.1.97_1773497925273_0.3527118350150906","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.2.0":{"name":"@gfean/react-native-bundle-drop","version":"0.2.0","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.2.0","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"37e699548bff607ebd0e8599aaef2d94f00bc6f6","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.2.0.tgz","fileCount":89,"integrity":"sha512-qNB4kv47XhB94Nf9MQSjFdEKgEIRvlhQapsj8ttDQTeDrpaWZpYNDhc8WghKDmhx8j3bnV9wAX3dlUiup/3DXw==","signatures":[{"sig":"MEUCIQCIH/Ysm0Ih/etjIUgwwXeCtDuAbJoojTKe4KrAvt76GwIgWoPZBbRSyVlnw+QvotfSnym1tJvfT6Ro+8+PlAF305A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213704},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"9776874593b7ac65b5de38c00fd9361c739e6223","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.2.0_1773512414787_0.09124621613063577","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.2.1":{"name":"@gfean/react-native-bundle-drop","version":"0.2.1","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.2.1","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"6d8e3d537e3b7a59ed6921260871c261be18252e","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.2.1.tgz","fileCount":89,"integrity":"sha512-iP5d6JAaKlPZTB7H58ZOT5AP5sTE/vh6/zl5sNETvVrHfB+q0fisPU96lrnp0gr5GzaFzYYJCM0TO1E0eu6UgQ==","signatures":[{"sig":"MEYCIQCW804m57e8vKJ2rflSOlKZ6zL8zzq9XWC8GztpISoZTAIhAI0e4MECwSme4L9wB3UCstWApMAKo0DyfynRmnjPxiFE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220806},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"7179b2bdf15941bb4ab77f0fa173bf3cdbd14c0d","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.2.1_1774301557511_0.8974931094344392","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.2.2":{"name":"@gfean/react-native-bundle-drop","version":"0.2.2","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.2.2","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"c662232e568aaf7789084c1bb9667bdf63e030d2","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.2.2.tgz","fileCount":89,"integrity":"sha512-mjZjz3gls8Q9V/hq7hIO3BpiJNkNX3wTC2hSb9ktr79tz36fY+TCwlldft8wOlcURlKy2IqlIHRGV30lKrq70g==","signatures":[{"sig":"MEQCIFg+N5CPie91h4WcPAkgvsTQgliMSOxNgsJ4OX+HkiExAiA9KvahkAoLeidmUiHfphPakZq6XAbKhkTFXOXtxjNe9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222085},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"f75d887bfd01bb508403b9c2e6c08e3e89aff389","scripts":{"build":"tsc -p tsconfig.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","publish:local":"yalc publish --private","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.2.2_1774305305199_0.00218070047585206","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.3.2":{"name":"@gfean/react-native-bundle-drop","version":"0.3.2","author":{},"license":"UNLICENSED","_id":"@gfean/react-native-bundle-drop@0.3.2","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://github.com/GFean/react-native-bundle-drop","bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"b3837707e88bfa9ccea0763c85b9a2e7712a0901","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.3.2.tgz","fileCount":91,"integrity":"sha512-2Wcf8hfC22B/R0/tAeVABd4YT9jwgj9V2QY3Ohr3CsTnxU/s0oVTtV2ALkBrzSdhKMJd9J4HH8+zL5hIvJxm2g==","signatures":[{"sig":"MEQCIFpHztBt4z4Z9UFKtrUHZ5BFhxyU6wC4TB2mneUX08MPAiAYFH/y6quvmcb3aHbQ1uB9f2gA2nEPjRBiLGjXgHth2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256996},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"c0b24f863cd00363ec877ccf369f44dec67366ac","scripts":{"test":"jest --runInBand","build":"tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_npmVersion":"10.7.0","description":"react native ota by gFean","directories":{},"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.3.2_1774793563896_0.6491209112442435","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.3.3":{"name":"@gfean/react-native-bundle-drop","version":"0.3.3","keywords":["react-native","react-native-ota","ota-updates","over-the-air","react-native-update","react-native-updates","bundle-updates","hot-update","codepush-alternative","expo-eas-update-alternative","react-native-deployment","mobile-updates","app-updates","live-updates","feature-rollout","staged-rollout","rollback","react-native-ci","react-native-release","react-native-production"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.3.3","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"035f65009a780b4261e7ab43e6b11d612d6e4604","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.3.3.tgz","fileCount":91,"integrity":"sha512-fvJ0M+z4tIf68V2iwZquvzk+Gz27Wg2Z5slGUH/dt+huvYW+QkJ84Jq6D8ZZCY1Kl71mdYMBXSNsN2pPV4v27Q==","signatures":[{"sig":"MEUCIF7Y33fwHJ8gR0Hwi9KbrU5vkx0VdiL4Kw0WQQXI2pd6AiEAvVYfGBhHpqvFIU36xFCgjH4DnecO3YGgsXmc+G6cq0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239282},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"4d97909ecfb975d3159b01ca772b653e52095804","scripts":{"test":"jest --runInBand","build":"tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air (OTA) updates for React Native — ship fixes instantly, no App Store or Play Store delays","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","fflate":"^0.8.2","undici":"^7.8.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","archiver":"^7.0.1","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2","formdata-node":"^6.0.3"},"nativeVersion":"0.3.2","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.3.3_1776730690817_0.009675899946871791","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.3.5":{"name":"@gfean/react-native-bundle-drop","version":"0.3.5","keywords":["react-native","react-native-ota","ota-updates","over-the-air","react-native-update","react-native-updates","bundle-updates","hot-update","codepush-alternative","expo-eas-update-alternative","react-native-deployment","mobile-updates","app-updates","live-updates","feature-rollout","staged-rollout","rollback","react-native-ci","react-native-release","react-native-production"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.3.5","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"4dea06237143f9b2419aa7bf0668a20032f8145f","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.3.5.tgz","fileCount":99,"integrity":"sha512-tPuLqdDqgtEoMTDV6ljmxzWrNIYzOFVLhicLkVSHqP7HZBIwdkyWtcu+zkEbUPFnssUOI3Ka5fuWfjPl5yqwxg==","signatures":[{"sig":"MEQCIGdO4nGXcqqjwJR6TqMGpLBm5jHvho5ArBqZEpuJDPB3AiBe2HJS+K+cfwOCaX+Z5S3IWfD9F7ribEQWZKvBWDff5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278705},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"ee12e81ebcbbec75e2cdc7fb249faa30477a185c","scripts":{"test":"jest --runInBand","build":"tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","test:ios":"node scripts/run-ios-tests.cjs","test:native":"yarn test:android && yarn test:ios","test:android":"node scripts/run-android-tests.cjs","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air (OTA) updates for React Native — ship fixes instantly, no App Store or Play Store delays","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"axios":"^1.8.4","chalk":"4","plist":"^3.1.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2"},"nativeVersion":"0.3.5","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.3.5_1777239995205_0.1322985511055157","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.3.6":{"name":"@gfean/react-native-bundle-drop","version":"0.3.6","keywords":["react-native","react-native-ota","ota-updates","over-the-air","react-native-update","react-native-updates","bundle-updates","hot-update","codepush-alternative","expo-eas-update-alternative","react-native-deployment","mobile-updates","app-updates","live-updates","feature-rollout","staged-rollout","rollback","react-native-ci","react-native-release","react-native-production"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.3.6","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"9c2df3461cbe9a9d771a8985d69e1f7e2d24a445","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.3.6.tgz","fileCount":116,"integrity":"sha512-02AipKLU9X8O+3k+BmlIdCzvrL2H5BvPXCbWM7TGaoUxfB2Efk9IZPNXjRPCZ9V5pHrx9TI2/PMz9vRFkYmiwQ==","signatures":[{"sig":"MEYCIQDNHOKRG+9aPwKR6HKFDDqgEX5WDNDMIBh5+k7UEvvPnQIhAMTogtu1I7JxCBfriZk6J0ONtuWblT0YSoTCyMhjlbRv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337479},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"a85ddbdbd9611d99fc159f435db02058b43f6315","scripts":{"test":"jest --runInBand","build":"tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","test:ios":"node scripts/run-ios-tests.cjs","test:native":"yarn test:android && yarn test:ios","test:android":"node scripts/run-android-tests.cjs","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air (OTA) updates for React Native — ship fixes instantly, no App Store or Play Store delays","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"diff":"^9.0.0","axios":"^1.8.4","chalk":"4","plist":"^3.1.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2"},"nativeVersion":"0.3.6","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.3.6_1778265307107_0.18547530403794243","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.3.7":{"name":"@gfean/react-native-bundle-drop","version":"0.3.7","keywords":["react-native","react-native-ota","ota-updates","over-the-air","react-native-update","react-native-updates","bundle-updates","hot-update","codepush-alternative","expo-eas-update-alternative","react-native-deployment","mobile-updates","app-updates","live-updates","feature-rollout","staged-rollout","rollback","react-native-ci","react-native-release","react-native-production"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.3.7","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"e646d5ce56216fc451b26f31a35a43c87c66eafd","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.3.7.tgz","fileCount":118,"integrity":"sha512-NRoSJ2fA4Nq62Iwq7VIts05LZJ/j7HDU5crl/xUdOaziJvQnWbK/12dlB63+lPVn5qiR9LUrsuF+wyzBVyfjug==","signatures":[{"sig":"MEUCIQDy/jaisw4PN+gOTIItUdG+kNPRTSvQVUws1qmhrVmhVwIgHTfGPgW/By4YWW9BEY+IJ64Y5AgR+fUslwYU7SMJ+W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342515},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"84900676873e14723083a5831284101b48064acc","scripts":{"test":"jest --runInBand","build":"tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","test:ios":"node scripts/run-ios-tests.cjs","test:native":"yarn test:android && yarn test:ios","test:android":"node scripts/run-android-tests.cjs","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air (OTA) updates for React Native — ship fixes instantly, no App Store or Play Store delays","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"diff":"^9.0.0","axios":"^1.8.4","chalk":"4","plist":"^3.1.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2"},"nativeVersion":"0.3.7","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.3.7_1778490142941_0.5098448953312802","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.3.8":{"name":"@gfean/react-native-bundle-drop","version":"0.3.8","keywords":["react-native","react-native-ota","ota-updates","over-the-air","react-native-update","react-native-updates","bundle-updates","hot-update","codepush-alternative","expo-eas-update-alternative","react-native-deployment","mobile-updates","app-updates","live-updates","feature-rollout","staged-rollout","rollback","react-native-ci","react-native-release","react-native-production"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.3.8","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"90cc7470e9da0dffbc79e49758ba0c0d2f3827e5","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.3.8.tgz","fileCount":119,"integrity":"sha512-+0DgmqPzs9yGRIsrjuggyYYieGMGamk/+Mlszl7pVI32lB3uXy86QRdwUQfxtRo8zvNb9L2bXj3v4GacRMrn5g==","signatures":[{"sig":"MEYCIQCneNidtDtEf6BU22QWJktVRlUgr5+SRsApkFrBaIlv2wIhAM73w52WghNmjIB6DARB/4bUnBpDP0j+LAC3cinas9Os","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343005},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"5a5639edbc0e3e922ead62cddb11ccaa587c3250","scripts":{"test":"jest --runInBand","build":"tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","test:ios":"node scripts/run-ios-tests.cjs","test:native":"yarn test:android && yarn test:ios","test:android":"node scripts/run-android-tests.cjs","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air (OTA) updates for React Native — ship fixes instantly, no App Store or Play Store delays","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"diff":"^9.0.0","axios":"^1.8.4","chalk":"4","plist":"^3.1.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2"},"nativeVersion":"0.3.8","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.3.8_1778503756814_0.303380924776425","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.3.9":{"name":"@gfean/react-native-bundle-drop","version":"0.3.9","keywords":["react-native","react-native-ota","ota-updates","over-the-air","react-native-update","react-native-updates","bundle-updates","hot-update","codepush-alternative","expo-eas-update-alternative","react-native-deployment","mobile-updates","app-updates","live-updates","feature-rollout","staged-rollout","rollback","react-native-ci","react-native-release","react-native-production"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.3.9","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"0022a360f503f623065703fda32ea2709bd2508f","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.3.9.tgz","fileCount":121,"integrity":"sha512-zJE8QDFVcf/CmTarcVM6fn5ZQtKVcQ+qMbSZZ0n6405R0yE6GDlTWO2KkNuAp71F7ZhzJUL81CRtvAMulspY2A==","signatures":[{"sig":"MEQCIDtwXMSSc0sR0RMTOUh9gq8EYnExpHhbls+BpwOoqoxAAiBpaIJdU2H9nAja7RvIc6Be7BEV8U4MbevubiIvL5MP6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349173},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"d2a5c298f0831af799b7fa70709975588ebe330e","scripts":{"test":"jest --runInBand","build":"tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","test:ios":"node scripts/run-ios-tests.cjs","test:native":"yarn test:android && yarn test:ios","test:android":"node scripts/run-android-tests.cjs","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air (OTA) updates for React Native — ship fixes instantly, no App Store or Play Store delays","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"diff":"^9.0.0","axios":"^1.8.4","chalk":"4","plist":"^3.1.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2"},"nativeVersion":"0.3.8","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.3.9_1778838700793_0.23256259410824698","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.4.1":{"name":"@gfean/react-native-bundle-drop","version":"0.4.1","keywords":["react-native","react-native-ota","ota-updates","over-the-air","react-native-update","react-native-updates","bundle-updates","hot-update","codepush-alternative","expo-eas-update-alternative","react-native-deployment","mobile-updates","app-updates","live-updates","feature-rollout","staged-rollout","rollback","react-native-ci","react-native-release","react-native-production"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.4.1","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"714f7bf32b5930e08bf34bca5296394f37346b47","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.4.1.tgz","fileCount":149,"integrity":"sha512-AWF+84GuFPIlLQ8TvfinTpmBGcvtp1R0CPXw08MgHqNhyAahoW1+24Il0fgleCRWzZSrMzJAxWsJWjXA0E6yUw==","signatures":[{"sig":"MEUCIQD97cw8Ud/hOOOZ1qXew3RnVKavhUlYtAgDl4dyABGeuQIgHp4GLtf/B4qe1Vie4aHExRk7Dr4nquGacrN96k+Oj6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694325},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"12acd270430bbcbc8f151da41df57228a6c919c2","scripts":{"test":"jest --runInBand","build":"tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","test:ios":"node scripts/run-ios-tests.cjs","harness:ios":"node scripts/harness/run-app-harness.cjs ios","test:native":"yarn verify:native","harness:pack":"node scripts/harness/pack-dry-run.cjs","test:android":"yarn test:android:unit","test:harness":"jest --runInBand src/tests/harness","verify:quick":"yarn coverage:gate && yarn harness:pack","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build && yarn harness:pack","verify:release":"yarn verify:quick && yarn verify:native","harness:android":"node scripts/harness/run-app-harness.cjs android","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted","test:android:unit":"node scripts/run-android-tests.cjs","harness:app:install":"node scripts/harness/install-app-deps.cjs","test:android:device":"node scripts/run-android-instrumented-tests.cjs","harness:backend:live":"node scripts/harness/live-backend-smoke.cjs","harness:ios:rn71:old":"node scripts/harness/run-app-harness.cjs ios rn-0.71-old-arch","harness:ios:rn74:old":"node scripts/harness/run-app-harness.cjs ios rn-0.74-old-arch","harness:ios:rn78:old":"node scripts/harness/run-app-harness.cjs ios rn-0.78-old-arch","harness:ios:rn85:new":"node scripts/harness/run-app-harness.cjs ios rn-0.85-new-arch","harness:android:rn71:old":"node scripts/harness/run-app-harness.cjs android rn-0.71-old-arch","harness:android:rn74:old":"node scripts/harness/run-app-harness.cjs android rn-0.74-old-arch","harness:android:rn78:old":"node scripts/harness/run-app-harness.cjs android rn-0.78-old-arch","harness:android:rn85:new":"node scripts/harness/run-app-harness.cjs android rn-0.85-new-arch","harness:app:install:rn71:old":"node scripts/harness/install-app-deps.cjs rn-0.71-old-arch","harness:app:install:rn74:old":"node scripts/harness/install-app-deps.cjs rn-0.74-old-arch","harness:app:install:rn78:old":"node scripts/harness/install-app-deps.cjs rn-0.78-old-arch","harness:app:install:rn85:new":"node scripts/harness/install-app-deps.cjs rn-0.85-new-arch"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air (OTA) updates for React Native — ship fixes instantly, no App Store or Play Store delays","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"diff":"^9.0.0","axios":"^1.8.4","chalk":"4","plist":"^3.1.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2"},"nativeVersion":"0.4.1","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.4.1_1780004087054_0.8500383983651634","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.4.2":{"name":"@gfean/react-native-bundle-drop","version":"0.4.2","keywords":["react-native","react-native-ota","ota-updates","over-the-air","react-native-update","react-native-updates","bundle-updates","hot-update","codepush-alternative","expo-eas-update-alternative","react-native-deployment","mobile-updates","app-updates","live-updates","feature-rollout","staged-rollout","rollback","react-native-ci","react-native-release","react-native-production"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.4.2","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"a89e1f25ed0f625d2d9ac4f0de5f3477e07e2d48","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.4.2.tgz","fileCount":147,"integrity":"sha512-+EmLDM53PGd85OjaFTJF+pH0oezn3VSLBWKIjxkuovpr+C8nfIsNW6CDXZAGHZj/cALf5840XhyVP0RGDCJm+Q==","signatures":[{"sig":"MEUCIQC83FsXHBj/m7NDJXI6yCCLagmxIz3v4Qk5blJSCvkqdgIgdYXtPB9dOjIq00BA9uBdCFixvAh8FcmMrpo9Y+ZMM0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":684382},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"cc238a63cee551cbb187d6bd60a12705268c63f9","scripts":{"test":"jest --runInBand","build":"yarn clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","test:ios":"node scripts/run-ios-tests.cjs","harness:ios":"node scripts/harness/run-app-harness.cjs ios","test:native":"yarn verify:native","harness:pack":"node scripts/harness/pack-dry-run.cjs","test:android":"yarn test:android:unit","test:harness":"jest --runInBand src/tests/harness","verify:quick":"yarn coverage:gate && yarn harness:pack","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build && yarn harness:pack","verify:release":"yarn verify:quick && yarn verify:native","harness:android":"node scripts/harness/run-app-harness.cjs android","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted","test:android:unit":"node scripts/run-android-tests.cjs","harness:app:install":"node scripts/harness/install-app-deps.cjs","test:android:device":"node scripts/run-android-instrumented-tests.cjs","harness:backend:live":"node scripts/harness/live-backend-smoke.cjs","harness:ios:rn71:old":"node scripts/harness/run-app-harness.cjs ios rn-0.71-old-arch","harness:ios:rn74:old":"node scripts/harness/run-app-harness.cjs ios rn-0.74-old-arch","harness:ios:rn78:old":"node scripts/harness/run-app-harness.cjs ios rn-0.78-old-arch","harness:ios:rn85:new":"node scripts/harness/run-app-harness.cjs ios rn-0.85-new-arch","harness:android:rn71:old":"node scripts/harness/run-app-harness.cjs android rn-0.71-old-arch","harness:android:rn74:old":"node scripts/harness/run-app-harness.cjs android rn-0.74-old-arch","harness:android:rn78:old":"node scripts/harness/run-app-harness.cjs android rn-0.78-old-arch","harness:android:rn85:new":"node scripts/harness/run-app-harness.cjs android rn-0.85-new-arch","harness:app:install:rn71:old":"node scripts/harness/install-app-deps.cjs rn-0.71-old-arch","harness:app:install:rn74:old":"node scripts/harness/install-app-deps.cjs rn-0.74-old-arch","harness:app:install:rn78:old":"node scripts/harness/install-app-deps.cjs rn-0.78-old-arch","harness:app:install:rn85:new":"node scripts/harness/install-app-deps.cjs rn-0.85-new-arch"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air (OTA) updates for React Native — ship fixes instantly, no App Store or Play Store delays","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"diff":"^9.0.0","axios":"^1.8.4","chalk":"4","plist":"^3.1.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2"},"nativeVersion":"0.4.2","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.4.2_1784625572677_0.36024848616154315","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.4.3":{"name":"@gfean/react-native-bundle-drop","version":"0.4.3","keywords":["react-native","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.4.3","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"79163197e13a3b238fa017dde89d3fb4ef58a9e7","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.4.3.tgz","fileCount":149,"integrity":"sha512-t3bMUf/vLImus+nqzcJskPAcIa8PPDyNVUpTxWYShqYfsbldpeVTYd/gb7ztnzYSZj22Www6ucDtWiQCcHsaew==","signatures":[{"sig":"MEQCIAPQmqyxcrqhR7dJF1823/GNBbwegxZrZFszHCO2uhF6AiAtC8FR+8lsYoo8bz15NNOJieBk+raDGB88WMOWdTZFVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":722208},"main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./bootstrap":{"types":"./lib/bootstrap.d.ts","default":"./lib/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"b204a15facd4885c56f4594217bda127b1239825","scripts":{"test":"jest --runInBand","build":"yarn clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepare":"husky","test:ios":"node scripts/run-ios-tests.cjs","harness:ios":"node scripts/harness/run-app-harness.cjs ios","test:native":"yarn verify:native","harness:pack":"node scripts/harness/pack-dry-run.cjs","test:android":"yarn test:android:unit","test:harness":"jest --runInBand src/tests/harness","verify:quick":"yarn coverage:gate && yarn harness:pack","coverage:gate":"yarn test:coverage && yarn coverage:check","publish:local":"yalc publish --private","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"yarn clean && yarn build && yarn harness:pack","verify:release":"yarn verify:quick && yarn verify:native","harness:android":"node scripts/harness/run-app-harness.cjs android","build-and-publish":"yarn clean && yarn build && npm publish --access=restricted","test:android:unit":"node scripts/run-android-tests.cjs","harness:app:install":"node scripts/harness/install-app-deps.cjs","test:android:device":"node scripts/run-android-instrumented-tests.cjs","harness:backend:live":"node scripts/harness/live-backend-smoke.cjs","harness:ios:rn71:old":"node scripts/harness/run-app-harness.cjs ios rn-0.71-old-arch","harness:ios:rn74:old":"node scripts/harness/run-app-harness.cjs ios rn-0.74-old-arch","harness:ios:rn78:old":"node scripts/harness/run-app-harness.cjs ios rn-0.78-old-arch","harness:ios:rn85:new":"node scripts/harness/run-app-harness.cjs ios rn-0.85-new-arch","harness:android:rn71:old":"node scripts/harness/run-app-harness.cjs android rn-0.71-old-arch","harness:android:rn74:old":"node scripts/harness/run-app-harness.cjs android rn-0.74-old-arch","harness:android:rn78:old":"node scripts/harness/run-app-harness.cjs android rn-0.78-old-arch","harness:android:rn85:new":"node scripts/harness/run-app-harness.cjs android rn-0.85-new-arch","harness:app:install:rn71:old":"node scripts/harness/install-app-deps.cjs rn-0.71-old-arch","harness:app:install:rn74:old":"node scripts/harness/install-app-deps.cjs rn-0.74-old-arch","harness:app:install:rn78:old":"node scripts/harness/install-app-deps.cjs rn-0.78-old-arch","harness:app:install:rn85:new":"node scripts/harness/install-app-deps.cjs rn-0.85-new-arch"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Instant over-the-air (OTA) updates for React Native — ship JavaScript & asset fixes with no App Store or Play Store review. Channels, staged rollouts, instant rollback, and hybrid patch-sized delivery. A drop-in CodePush alternative for bare React Native.","directories":{},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"diff":"^9.0.0","axios":"^1.8.4","chalk":"4","plist":"^3.1.0","adm-zip":"^0.5.16","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^13.1.0","form-data":"^4.0.2"},"nativeVersion":"0.4.2","publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1"},"peerDependencies":{"react":">=17.0.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.4.3_1785354288120_0.3647499053528829","host":"s3://npm-registry-packages-npm-production"},"create-react-native-library":{"type":"legacy-module","version":"0.49.6","languages":"kotlin-swift"}},"0.4.4":{"name":"@gfean/react-native-bundle-drop","version":"0.4.4","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.4.4","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"adcf81e15e9926bd37960f4063d9ae557800ea2f","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.4.4.tgz","fileCount":222,"integrity":"sha512-v3/PmEFsRJllp8ZN6eoQoWiBqDOYXWIqKaBhPsuw/IBIdFz35za44LxmRjqNJSsJGvUz0833IL3SCXP9VaSWMw==","signatures":[{"sig":"MEUCIEjtoef4OVvaYknVKSLO17vnyvCTlwlEd0X1jC/LW7ZzAiEAynpWzSBUabttX45kkYv1bLaJCELhJHK3kdXS5o27YS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":966379},"main":"lib/index.js","_from":"file:gfean-react-native-bundle-drop-0.4.4.tgz","types":"lib/index.d.ts","engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","test:android:device":"node scripts/run-android-instrumented-tests.cjs"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_resolved":"/Users/localadmin/Desktop/NPM/bundle-drop-release-0.4.4/gfean-react-native-bundle-drop-0.4.4.tgz","_integrity":"sha512-v3/PmEFsRJllp8ZN6eoQoWiBqDOYXWIqKaBhPsuw/IBIdFz35za44LxmRjqNJSsJGvUz0833IL3SCXP9VaSWMw==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.7.0","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"20.14.0","dependencies":{"diff":"^9.0.0","axios":"^1.19.0","chalk":"4","plist":"^3.1.0","adm-zip":"^0.6.0","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^7.2.0","form-data":"^4.0.6"},"nativeVersion":"0.4.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.4.4_1785782297100_0.9654675212407999","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@gfean/react-native-bundle-drop","version":"0.4.5","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.4.5","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"aa0aab77ffc1b19da6f5777a222ae6d76366dbf9","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.4.5.tgz","fileCount":220,"integrity":"sha512-tv9XJkjaO4Ujh7t2/zr74lK8Z7+4OrVsvIgrO04RT6Gm8HYSThRwhwLEujZBerUvJZ6rkOKloiHiaUm3+6bDkA==","signatures":[{"sig":"MEUCIQDK8rO69/aEh6UWIMm1CMasCYNCiU9MNPl7w8TLK2VobgIgSrVJ8UJ2lICbAe9qqhGt7uxffa0A/6PCw01IggkIZXU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":944975},"main":"lib/index.js","_from":"file:/Users/localadmin/Desktop/BundleDropReleaseArtifacts/gfean-react-native-bundle-drop-0.4.5.tgz","types":"lib/index.d.ts","engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","test:android:device":"node scripts/run-android-instrumented-tests.cjs"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_resolved":"/Users/localadmin/Desktop/BundleDropReleaseArtifacts/gfean-react-native-bundle-drop-0.4.5.tgz","_integrity":"sha512-tv9XJkjaO4Ujh7t2/zr74lK8Z7+4OrVsvIgrO04RT6Gm8HYSThRwhwLEujZBerUvJZ6rkOKloiHiaUm3+6bDkA==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.9.2","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^9.0.0","axios":"^1.19.0","chalk":"4","plist":"^3.1.0","adm-zip":"^0.6.0","figures":"3","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^7.2.0","form-data":"^4.0.6"},"nativeVersion":"0.4.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.0.1","ts-jest":"^29.4.4","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^24.10.1","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.4.5_1785802029145_0.13441786434222602","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@gfean/react-native-bundle-drop","version":"0.4.6","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.4.6","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"097120ed583afa7c575f396c61766215a9c87cf1","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.4.6.tgz","fileCount":220,"integrity":"sha512-Tah9c++8IE6MnOU9cgpqLVSBqixO1AmaOrfKoHAmELSRyt6t2QcyZzu++LhVvC39W03oUKlADv1PQuC2CnUA3w==","signatures":[{"sig":"MEQCIF1YhtLjKqNLX3LPkvIbnbnRwVoAKBCq0dxj1E2LP2lYAiA5WGnuOjS3YOHXyaWmJ5dmwtSshkFKnyhidiTo27skow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":945158},"main":"lib/index.js","_from":"file:gfean-react-native-bundle-drop-0.4.6.tgz","types":"lib/index.d.ts","engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","test:android:device":"node scripts/run-android-instrumented-tests.cjs"},"_npmUser":{"name":"gfean","email":"george.fean@gmail.com"},"_resolved":"/Users/localadmin/Desktop/NPM/react-native-bundle-drop-public-launch/gfean-react-native-bundle-drop-0.4.6.tgz","_integrity":"sha512-Tah9c++8IE6MnOU9cgpqLVSBqixO1AmaOrfKoHAmELSRyt6t2QcyZzu++LhVvC39W03oUKlADv1PQuC2CnUA3w==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"10.9.2","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^9.0.0","axios":"^1.19.0","chalk":"4","plist":"^3.1.1","adm-zip":"^0.6.0","figures":"3","prompts":"^2.4.2","fs-extra":"^11.4.0","commander":"^7.2.0","form-data":"^4.0.6"},"nativeVersion":"0.4.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.1.3","ts-jest":"^29.4.12","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.13.3","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.4.6_1785850618735_0.38758648273246155","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@gfean/react-native-bundle-drop","version":"0.5.1","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.5.1","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"e763113a0f3e1372756e1bc3642b85b2626e24a4","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.5.1.tgz","fileCount":226,"integrity":"sha512-yQ4SumkycV0zRP4f1x4dVKrGGw5LgQLE8YpSZNTxq3sqBiDiZzhlm+6n1bdne6FLcC+TanFjzyZlnGApO3qZhQ==","signatures":[{"sig":"MEQCIFMEUNr63h+rFo++9ypa3DrvqIrv8TJj7IjjLLEUaFdqAiAcPdQjfBz+GILcmhs3PeqWI2UQHsQmeeVakJbcaGOwNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfean%2freact-native-bundle-drop@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":972347},"main":"lib/index.js","_from":"file:release-artifact/gfean-react-native-bundle-drop-0.5.1.tgz","types":"lib/index.d.ts","engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","test:android:device":"node scripts/run-android-instrumented-tests.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d91cb494-5c2b-4081-8f8c-bf9453e46b94"}},"_resolved":"/home/runner/work/react-native-bundle-drop/react-native-bundle-drop/release-artifact/gfean-react-native-bundle-drop-0.5.1.tgz","_integrity":"sha512-yQ4SumkycV0zRP4f1x4dVKrGGw5LgQLE8YpSZNTxq3sqBiDiZzhlm+6n1bdne6FLcC+TanFjzyZlnGApO3qZhQ==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"12.0.2","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"24.19.0","dependencies":{"diff":"^9.0.0","axios":"^1.19.0","chalk":"4","plist":"^3.1.1","adm-zip":"^0.6.0","figures":"3","prompts":"^2.4.2","fs-extra":"^11.4.0","commander":"^7.2.0","form-data":"^4.0.6"},"nativeVersion":"0.4.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.1.3","ts-jest":"^29.4.12","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.13.3","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.5.1_1786291695964_0.27813586650799693","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@gfean/react-native-bundle-drop","version":"0.6.0","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.6.0","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"62f155fcfd2f384d2013854b8f9bcefb277627f9","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.6.0.tgz","fileCount":265,"integrity":"sha512-EuN0OgIGWmPYL3YDLDA9uwzo2IEJE+r+DS4TMJfyVWFF0t7a/uZ9+jxAGGm7bdA6JJ4LB3aAqn6rIsIUniYbaw==","signatures":[{"sig":"MEQCIDr3aIWeZS3U+NNRfpMmPNj2QO0cgUvMrivRu2He6B/XAiB4l/oFSWg1XxR1k806IlTVd84ZWYlldj7ETXmCIV+1JA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfean%2freact-native-bundle-drop@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1284681},"main":"lib/index.js","_from":"file:release-artifact/gfean-react-native-bundle-drop-0.6.0.tgz","types":"lib/index.d.ts","engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","test:android:device":"node scripts/run-android-instrumented-tests.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d91cb494-5c2b-4081-8f8c-bf9453e46b94"}},"_resolved":"/home/runner/work/react-native-bundle-drop/react-native-bundle-drop/release-artifact/gfean-react-native-bundle-drop-0.6.0.tgz","_integrity":"sha512-EuN0OgIGWmPYL3YDLDA9uwzo2IEJE+r+DS4TMJfyVWFF0t7a/uZ9+jxAGGm7bdA6JJ4LB3aAqn6rIsIUniYbaw==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"12.0.2","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"24.19.0","dependencies":{"diff":"^9.0.0","axios":"^1.19.0","chalk":"4","plist":"^3.1.1","adm-zip":"^0.6.0","figures":"3","prompts":"^2.4.2","fs-extra":"^11.4.0","commander":"^7.2.0","form-data":"^4.0.6"},"nativeVersion":"0.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.1.3","ts-jest":"^29.4.12","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.13.3","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.6.0_1787370336280_0.3938799303444769","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@gfean/react-native-bundle-drop","version":"0.7.0","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.7.0","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"61cf7dc664a549829a9e68ccd433f17b029b3f2f","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.7.0.tgz","fileCount":274,"integrity":"sha512-1SjUWMoi8XfkiHqTvEbzYcwFfahMntjTzukm6BS9OnmNxREUadcfwJZHhftADv2lLZ1PCek7SkQmrDrhvE3cIQ==","signatures":[{"sig":"MEQCIH7KpP2E78y4h78JfZF8pobOD92zknV3R7EJgaq9NL4lAiBotVfO89ZtdV/+Qj+XY8mjX+b2dd4saitSsxwVIswdaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfean%2freact-native-bundle-drop@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1427042},"main":"lib/index.js","_from":"file:release-artifact/gfean-react-native-bundle-drop-0.7.0.tgz","types":"lib/index.d.ts","engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","codeql:local:fast":"node scripts/run-codeql-local.cjs fast","codeql:local:full":"node scripts/run-codeql-local.cjs full","test:android:device":"node scripts/run-android-instrumented-tests.cjs","codeql:local:compare":"node scripts/run-codeql-local.cjs compare"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d91cb494-5c2b-4081-8f8c-bf9453e46b94"}},"_resolved":"/home/runner/work/react-native-bundle-drop/react-native-bundle-drop/release-artifact/gfean-react-native-bundle-drop-0.7.0.tgz","_integrity":"sha512-1SjUWMoi8XfkiHqTvEbzYcwFfahMntjTzukm6BS9OnmNxREUadcfwJZHhftADv2lLZ1PCek7SkQmrDrhvE3cIQ==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"12.0.2","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"24.19.0","dependencies":{"diff":"^9.0.0","axios":"^1.19.0","chalk":"4","plist":"^3.1.1","adm-zip":"^0.6.0","figures":"3","prompts":"^2.4.2","fs-extra":"^11.4.0","commander":"^7.2.0","form-data":"^4.0.6"},"nativeVersion":"0.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.1.3","ts-jest":"^29.4.12","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.13.3","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.7.0_1788044642310_0.7639624799168478","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@gfean/react-native-bundle-drop","version":"0.8.0","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.8.0","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"8c81bce72869c6e8c24b1a9afc0c634e6eb2c3b4","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.8.0.tgz","fileCount":296,"integrity":"sha512-IlYZc3qf6xXSX7o3f+IAkeb0KzE6+rPX0JZo38PvlvoDz+3LbY8OGKGioSitzPItBgDlmf9mjwqUcUl2fk7zeg==","signatures":[{"sig":"MEQCIDuY2sKFCDgkouHKLBDhNmPRNtC2y4JCY5zNXi+uUiQ5AiA/SXo4GmgHX4ycTC6xWHDK3Ek8Jypr0zRBPp+Ya33D3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfean%2freact-native-bundle-drop@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1559770},"main":"lib/index.js","_from":"file:release-artifact/gfean-react-native-bundle-drop-0.8.0.tgz","types":"lib/index.d.ts","engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","codeql:local:fast":"node scripts/run-codeql-local.cjs fast","codeql:local:full":"node scripts/run-codeql-local.cjs full","test:android:device":"node scripts/run-android-instrumented-tests.cjs","codeql:local:compare":"node scripts/run-codeql-local.cjs compare"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d91cb494-5c2b-4081-8f8c-bf9453e46b94"}},"_resolved":"/home/runner/work/react-native-bundle-drop/react-native-bundle-drop/release-artifact/gfean-react-native-bundle-drop-0.8.0.tgz","_integrity":"sha512-IlYZc3qf6xXSX7o3f+IAkeb0KzE6+rPX0JZo38PvlvoDz+3LbY8OGKGioSitzPItBgDlmf9mjwqUcUl2fk7zeg==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"12.0.2","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"24.19.0","dependencies":{"diff":"^9.0.0","axios":"^1.19.0","chalk":"4","plist":"^3.1.1","adm-zip":"^0.6.0","figures":"3","prompts":"^2.4.2","fs-extra":"^11.4.0","commander":"^7.2.0","form-data":"^4.0.6"},"nativeVersion":"0.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.1.3","ts-jest":"^29.4.12","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.13.3","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.8.0_1788984163305_0.48045313190024297","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@gfean/react-native-bundle-drop","version":"0.8.1","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","_id":"@gfean/react-native-bundle-drop@0.8.1","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"homepage":"https://bundledrop.app","bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"bin":{"bundle-drop":"lib/CLI/cli.js"},"dist":{"shasum":"92e8c1aac6210d9b28e2647686c9add22ab3475b","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.8.1.tgz","fileCount":296,"integrity":"sha512-7uuyaHDnXh7621rZf76l2cXEhgOsEbAHsxQm7nQPIsrlL+oDd77Nt+56BV0BPveTBmerbngXP8nBqwOc7fhPwA==","signatures":[{"sig":"MEUCIQDsHlrsy57xlQWecOLJCxFkZr8A2HyllJLw3Sg6bie6iQIgP9d4QuPXiGDr0B7RYUp92CCqPVDJJfql7OBEdu5ZVd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDqoRejyqZ47zL44u/RoJ+D4/d4TxToYUJD+UR7uzyimQIhAK1KBA3TUrIn0vqdfHKw2F+eriiW9bjnKTn0XqWgAV0I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfean%2freact-native-bundle-drop@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1559770},"main":"lib/index.js","_from":"file:release-artifact/gfean-react-native-bundle-drop-0.8.1.tgz","types":"lib/index.d.ts","engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","codeql:local:fast":"node scripts/run-codeql-local.cjs fast","codeql:local:full":"node scripts/run-codeql-local.cjs full","test:android:device":"node scripts/run-android-instrumented-tests.cjs","codeql:local:compare":"node scripts/run-codeql-local.cjs compare"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d91cb494-5c2b-4081-8f8c-bf9453e46b94"}},"_resolved":"/home/runner/work/react-native-bundle-drop/react-native-bundle-drop/release-artifact/gfean-react-native-bundle-drop-0.8.1.tgz","_integrity":"sha512-7uuyaHDnXh7621rZf76l2cXEhgOsEbAHsxQm7nQPIsrlL+oDd77Nt+56BV0BPveTBmerbngXP8nBqwOc7fhPwA==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"12.0.2","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"24.19.0","dependencies":{"diff":"9.0.0","axios":"1.20.0","chalk":"4.1.2","plist":"3.1.1","adm-zip":"0.6.1","figures":"3.2.0","prompts":"2.4.2","fs-extra":"11.4.0","commander":"7.2.0","form-data":"4.0.6"},"nativeVersion":"0.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.1.3","ts-jest":"^29.4.12","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.13.4","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-bundle-drop_0.8.1_1789333948332_0.8401096118560816","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"@gfean/react-native-bundle-drop@0.9.0","bin":{"bundle-drop":"lib/CLI/cli.js"},"bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"dist":{"shasum":"e175604bbdb79ac6bf6955af37b282da2bc336ee","tarball":"https://registry.npmjs.org/@gfean/react-native-bundle-drop/-/react-native-bundle-drop-0.9.0.tgz","fileCount":300,"integrity":"sha512-WkBcGhmLA4CSs9Cd6wSDuUQV5uVx3JGJoq10Us2IE7qxO5ntqKGHmgu2wUoa4i0JIeQIRiZmZe27hHh3gbXxSA==","signatures":[{"sig":"MEQCIAySbkQkpw0W4k+u32miAWAXobUIz3KrRHzogeTy1+2bAiAesSQ9/xKI4ZAxcLqCtJ8oSB+GWXdPglgdns5E+md4+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDvJg602w9NN2Z8rVEoH3SONGcDAJ5Hwxk5V+u6GVjffwIhANFrU4udroBMQuV6v61Eh7kCKg9rrNvLMtUDTZs58Uta"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gfean%2freact-native-bundle-drop@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1568024},"main":"lib/index.js","name":"@gfean/react-native-bundle-drop","_from":"file:release-artifact/gfean-react-native-bundle-drop-0.9.0.tgz","types":"lib/index.d.ts","author":{"url":"https://github.com/GFean","name":"George Fean"},"engines":{"node":">=20.19.4"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./metro":{"types":"./lib/metro.d.ts","default":"./lib/metro.js"},"./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"license":"ISC","scripts":{"test":"jest --runInBand","build":"npm run clean && tsc -p tsconfig.build.json && node scripts/make-cli-executable.js","clean":"rimraf lib dist","prepack":"npm run build","test:ios":"node scripts/run-ios-tests.cjs","typecheck":"tsc --noEmit -p tsconfig.json","test:android":"node scripts/run-android-tests.cjs","verify:quick":"yarn typecheck && yarn build && yarn coverage:gate && yarn test:expo:plugin && yarn package:check","coverage:gate":"yarn test:coverage && yarn coverage:check","package:check":"node scripts/check-package-contents.cjs","test:coverage":"jest --runInBand --coverage","verify:native":"yarn test:android && yarn test:ios","coverage:check":"node scripts/check-coverage-thresholds.cjs","prepublishOnly":"npm run verify:release","verify:release":"yarn verify:quick && yarn verify:native && yarn audit:production","test:cli:compat":"node scripts/check-cli-compatibility.cjs","audit:production":"yarn npm audit --environment production --recursive --severity high","test:expo:plugin":"node --test plugin/__tests__/*.test.js","codeql:local:fast":"node scripts/run-codeql-local.cjs fast","codeql:local:full":"node scripts/run-codeql-local.cjs full","test:android:device":"node scripts/run-android-instrumented-tests.cjs","codeql:local:compare":"node scripts/run-codeql-local.cjs compare"},"version":"0.9.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d91cb494-5c2b-4081-8f8c-bf9453e46b94"}},"homepage":"https://bundledrop.app","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"_resolved":"/home/runner/work/react-native-bundle-drop/react-native-bundle-drop/release-artifact/gfean-react-native-bundle-drop-0.9.0.tgz","_integrity":"sha512-WkBcGhmLA4CSs9Cd6wSDuUQV5uVx3JGJoq10Us2IE7qxO5ntqKGHmgu2wUoa4i0JIeQIRiZmZe27hHh3gbXxSA==","repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"_npmVersion":"12.0.2","description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","directories":{},"maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"resolutions":{"diff@^4.0.1":"4.0.4","@xmldom/xmldom@^0.8.8":"0.8.13"},"sideEffects":["./lib/bootstrap.js","./lib/index.js"],"_nodeVersion":"24.19.0","dependencies":{"diff":"9.0.0","axios":"1.20.0","chalk":"4.1.2","plist":"5.0.0","adm-zip":"0.6.1","figures":"3.2.0","prompts":"2.4.2","fs-extra":"11.4.0","commander":"14.0.3","form-data":"4.0.6"},"nativeVersion":"0.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@3.8.3+sha512.154080e749d50325f4df31bc341cd5ea2dc2c3ca9b2cfb8591c831ddefc8025084d9500223f61f4f73086f6d9faa746cbbf39bb988b41dfc042907687e8e7d7a","devDependencies":{"jest":"^29.7.0","react":"^18.3.1","rimraf":"^6.1.3","ts-jest":"^29.4.12","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.13.5","@types/react":"^18.2.66","react-native":">=0.71.0","@types/adm-zip":"^0.5.8","@types/react-native":"^0.73.0","react-test-renderer":"^18.3.1","expo-autolinking-sdk55":"npm:expo-modules-autolinking@55.0.8","expo-autolinking-sdk56":"npm:expo-modules-autolinking@56.0.9","expo-autolinking-sdk57":"npm:expo-modules-autolinking@57.0.2","rn-cli-platform-android-078":"npm:@react-native-community/cli-platform-android@15.0.1"},"peerDependencies":{"expo":">=54.0.0 <58.0.0","react":">=17.0.0","react-native":">=0.71.0"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-bundle-drop_0.9.0_1790105520641_0.5735265684828472"}}},"time":{"created":"2026-01-04T11:29:08.883Z","modified":"2026-09-22T19:32:01.058Z","0.1.31":"2026-01-04T11:29:09.128Z","0.1.32":"2026-01-04T11:43:49.528Z","0.1.33":"2026-01-04T12:00:18.750Z","0.1.34":"2026-01-04T12:10:31.794Z","0.1.35":"2026-01-04T12:39:11.855Z","0.1.36":"2026-01-04T13:03:18.914Z","0.1.37":"2026-01-04T20:19:41.824Z","0.1.38":"2026-01-04T22:30:57.544Z","0.1.39":"2026-01-05T17:23:13.616Z","0.1.47":"2026-01-07T11:42:29.677Z","0.1.48":"2026-01-08T03:57:09.162Z","0.1.82":"2026-03-05T14:55:54.967Z","0.1.85":"2026-03-07T15:54:49.647Z","0.1.91":"2026-03-13T06:57:44.440Z","0.1.94":"2026-03-14T13:05:29.952Z","0.1.95":"2026-03-14T13:07:36.986Z","0.1.97":"2026-03-14T14:18:45.412Z","0.2.0":"2026-03-14T18:20:14.932Z","0.2.1":"2026-03-23T21:32:37.635Z","0.2.2":"2026-03-23T22:35:05.362Z","0.3.2":"2026-03-29T14:12:44.054Z","0.3.3":"2026-04-21T00:18:10.973Z","0.3.5":"2026-04-26T21:46:35.351Z","0.3.6":"2026-05-08T18:35:07.256Z","0.3.7":"2026-05-11T09:02:23.083Z","0.3.8":"2026-05-11T12:49:16.984Z","0.3.9":"2026-05-15T09:51:40.971Z","0.4.1":"2026-05-28T21:34:47.267Z","0.4.2":"2026-07-21T09:19:32.818Z","0.4.3":"2026-07-29T19:44:48.276Z","0.4.4":"2026-08-03T18:38:17.259Z","0.4.5":"2026-08-04T00:07:09.274Z","0.4.6":"2026-08-04T13:36:58.907Z","0.5.1":"2026-08-09T16:08:16.153Z","0.6.0":"2026-08-22T03:45:36.426Z","0.7.0":"2026-08-29T23:04:02.487Z","0.8.0":"2026-09-09T20:02:43.509Z","0.8.1":"2026-09-13T21:12:28.442Z","0.9.0":"2026-09-22T19:32:00.731Z"},"bugs":{"url":"https://github.com/GFean/react-native-bundle-drop/issues"},"author":{"url":"https://github.com/GFean","name":"George Fean"},"license":"ISC","homepage":"https://bundledrop.app","keywords":["react-native","expo","expo-sdk","expo-router","react-native-ota","ota","ota-updates","over-the-air","over-the-air-updates","codepush","codepush-alternative","react-native-code-push","app-center-codepush","eas-update-alternative","expo-updates-alternative","expo-eas-update-alternative","react-native-update","react-native-updates","hot-update","live-updates","instant-updates","hotfix","bundle-updates","js-bundle","delta-updates","patch-updates","staged-rollout","feature-rollout","rollback","react-native-deployment","react-native-release","react-native-ci","react-native-production","mobile-updates","app-updates","react-native-ios","react-native-android"],"repository":{"url":"git+https://github.com/GFean/react-native-bundle-drop.git","type":"git"},"description":"Over-the-air updates for Expo and bare React Native apps, with channels, staged rollouts, patch delivery, and rollback.","maintainers":[{"name":"gfean","email":"george.fean@gmail.com"}],"readme":"# Bundle Drop\n\n[![npm version](https://img.shields.io/npm/v/%40gfean%2Freact-native-bundle-drop?color=2b7fff&label=npm)](https://www.npmjs.com/package/@gfean/react-native-bundle-drop)\n[![CI](https://github.com/GFean/react-native-bundle-drop/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/GFean/react-native-bundle-drop/actions/workflows/ci.yml)\n[![license](https://img.shields.io/badge/license-ISC-84cc16)](#license)\n[![website](https://img.shields.io/badge/website-bundledrop.app-2563eb)](https://bundledrop.app)\n[![docs](https://img.shields.io/badge/docs-bundledrop.app%2Fdocs-0f766e)](https://bundledrop.app/docs)\n[![dashboard](https://img.shields.io/badge/dashboard-developer.bundledrop.app-111827)](https://developer.bundledrop.app)\n\n**Ship reliable over-the-air updates to Expo and bare React Native apps.**\n\nBundle Drop delivers JavaScript and asset updates to compatible iOS and Android\nbinaries, with channel-based releases, targeted rollouts, rollback safety, and\npatch-sized downloads.\n\n[Website](https://bundledrop.app) • [Docs](https://bundledrop.app/docs) • [Dashboard](https://developer.bundledrop.app) • [Coming from CodePush?](https://bundledrop.app/codepush-alternative)\n\n---\n\n## Why Bundle Drop?\n\nShipping a JavaScript or asset fix should not always require a new native build.\n\n| Native release workflow | With Bundle Drop |\n| --- | --- |\n| Rebuild the app for every JavaScript or asset change. | Publish OTA-compatible changes from your machine or CI. |\n| Wait for users to install the next store version. | Compatible devices can receive an update on their next check. |\n| Leave a faulty release active until another binary ships. | Stop a rollout or return to a verified bundle quickly. |\n\nBundle Drop only delivers updates that match the installed app's native and\nruntime identity. Native changes still require a new App Store or Play Store build.\n\n---\n\n## Features\n\n- **Expo and bare React Native support** — use the Expo config plugin or native\n  React Native autolinking.\n- **Channel-based distribution** — ship to `develop`, `production`, `beta`, or any channel you define.\n- **Targeted rollouts** — stage releases and target specific cohorts with user properties.\n- **Rollback safety** — every install is a verified, immutable bundle; rollback is a local pointer switch.\n- **Hybrid OTA transport** — keep full-bundle integrity while supported devices download patch-sized changes.\n- **Runtime gating** — updates only reach compatible native binaries.\n- **Observability metadata** — bundle hashes and source maps keep crash reports attributable to the correct release.\n- **CI/CD support** — upload with a Personal Access Token from any pipeline.\n- **Bundle Drop Sight** — inspect JavaScript bundle sizes locally, including\n  working-tree comparisons against a Git baseline.\n\n## Compatibility\n\n| Surface | Supported versions |\n| --- | --- |\n| Expo | SDK 54, 55, 56, and 57 |\n| Bare React Native | React Native 0.71 and newer |\n| Platforms | iOS and Android |\n| Architectures | Legacy architecture and New Architecture |\n| Node.js | 20.19.4 or newer |\n| React | 17 or newer |\n\nThe Node requirement applies to installation of the package, including projects\nthat use only the mobile SDK. Development and\npackage builds use Node 22.13.0, as specified in `.nvmrc`.\n\nRun `bundle-drop --help` to browse commands grouped into Setup, Analysis,\nReleases, and Account. Existing command names and flags remain unchanged.\nFor iOS metadata, `--plist-file` and Sight accept XML Info.plist files; binary\nand OpenStep property lists are not supported.\n\n## Installation\n\n### Expo\n\nInstall the package with Expo's version-aware installer:\n\n```bash\nnpx expo install @gfean/react-native-bundle-drop\n```\n\nBundle Drop's setup command registers the config plugin and preserves your existing\nExpo Metro configuration.\n\n### Bare React Native\n\nInstall with your package manager:\n\n```bash\nnpm install @gfean/react-native-bundle-drop\n# or\nyarn add @gfean/react-native-bundle-drop\n```\n\nThen install the iOS pod:\n\n```bash\ncd ios && pod install\n```\n\nReact Native autolinking handles the package on both platforms. The setup command\nadds the app-entry integration that allows a Release build to start an installed OTA.\n\n## Bundle Drop Sight\n\nSight analyzes production JavaScript bundles and emitted assets in your browser. It\ndoes not require a Bundle Drop account, OTA project configuration, login, or native\nintegration. Run it from the app directory containing `package.json`:\n\n```bash\nnpx bundle-drop sight --platform android\nnpx bundle-drop sight --compare main --platform android\nnpx bundle-drop sight --compare origin/main --fetch --platform ios\n```\n\nThe first command analyzes the current app using its installed dependencies and\nincludes emitted assets through the automatic CLI handoff.\n`--compare` builds both an explicit Git baseline and a captured copy of your current\nworking tree. Both builds run locally, including when the baseline is a remote\ntracking branch. Sight compares **raw UTF-8 bytes in minified JavaScript** and uses\nsource maps to attribute changes to packages and files. Both CLI modes include a\n**Bundled assets** breakdown for files emitted by the same Metro/Expo build, such as\nimages and fonts. Assets do not change the JavaScript totals or treemap.\n\n**Bundle Drop OTA size** measures a locally generated full OTA archive using Bundle Drop's\ncanonical packaging. Each revision uses its own JavaScript engine configuration:\nHermes is compiled with project-local tooling when enabled. JavaScript attribution\nand raw asset sizes remain separate; they are not bytecode attribution.\n\nBare iOS upload and Sight honor explicit Bundle Drop and native Hermes settings first.\nFor the standard React Native **0.81.x** template, they also recognize the installed\nReact Native helpers' implicit Hermes default when those helpers match the verified\n0.81.5 files. This conservative fallback is skipped\nfor custom engine configuration, community JSC indicators, or unfamiliar templates\nand versions. For a custom project, set `hermesBytecode: { ios: true }` (or `false`\nfor JavaScript) in `bundle.drop.config.js` to match the engine in your native app.\nThe fallback does not evaluate Ruby or change your Podfile.\n\nMeasurement adds compilation and archive compression after the JavaScript build, once\nper side in a comparison. Expo's Hermes path also performs a separate bytecode\nexport to preserve its upload-specific minification behavior. It requires a resolvable app/runtime identity. When that\nidentity or required compiler is unavailable, Sight keeps the JavaScript and asset\nanalysis and marks the OTA measurement unavailable with a reason. It never fills in\nan estimated archive size. Comparing this metric requires Bundle Drop to be configured\non both branches with a resolvable app/runtime identity. The archive describes the selected Sight entry and build\nenvironment; upload overrides or different inputs can produce another size.\n\nAsset sizes count each emitted output file once, including emitted density variants.\nIdentical contents at different output paths count separately; a changed hash at the\nsame path is a change even when the byte size is unchanged. Only emitted files are\ncounted, not every asset in the repository. Native-only resources and network-loaded\nassets are outside this measurement. The OTA archive includes delivery metadata and asset\nmanifests, and excludes source maps. It is not APK/IPA size. File size changes do\nnot measure startup time or memory use.\n\nNo native app build is needed for asset analysis or comparison. The existing JavaScript bundling\nstep emits the files into private temporary directories; the CLI records relative\noutput paths, byte lengths, and SHA-256 hashes, then removes the emitted asset copies.\nOnly the inventory is passed to Sight, with no image previews or binary asset uploads.\nThis collection code stays in the CLI and adds no runtime dependencies or mobile SDK\ncode.\n\nThe CLI transfers the generated files to Sight through a short-lived loopback\nsession. Source code, bundles, source maps, and comparison metadata are not uploaded\nto Bundle Drop servers. Loading the Sight web page still needs browser access to\n`bundledrop.app`.\n\n### Comparison options\n\n| Option | Behavior |\n| --- | --- |\n| `--compare <ref>` | Resolve a branch, tag, or commit to an immutable baseline commit before building. |\n| `--fetch` | Refresh the explicitly named remote branch, such as `origin/main`, using ordinary Git credentials. Requires `--compare`. |\n| `--platform ios\\|android` | Compare one platform per invocation. If ambiguous, interactive use prompts; noninteractive use requires the flag. |\n| `--project-type bare\\|expo` | Override project detection consistently for both sides. |\n| `--entry-file <path>` | Choose an app-relative entry file that must exist in both snapshots. |\n| `--include <path>` | Copy an extra local file or directory identically into both snapshots; repeat for multiple inputs. |\n| `--no-open` | Keep the generated files and print manual browser instructions. |\n| `--keep` | Keep the comparison files after a successful browser transfer. |\n| `--output <path>` | Write persistent output to an empty directory. |\n\nWithout `--fetch`, Sight uses locally available refs and does not contact a Git\nremote. `main` is never silently substituted with `origin/main`. Explicit refresh\nrequires a configured remote branch; use normal Git commands first to obtain a\nmissing tag, commit, or additional shallow history. Sight neither requests nor\nstores repository credentials.\n\n### What each side builds\n\nThe current snapshot contains tracked working-tree contents, including uncommitted\nedits and deletions, plus nonignored untracked files. Ignored inputs such as local\nenvironment files are excluded unless explicitly included:\n\n```bash\nnpx bundle-drop sight --compare main --platform android \\\n  --include .env.production --include local-build-config\n```\n\nIncluded paths must stay inside the repository. They cannot overwrite files\ntracked on either side or supply dependency manifests, lockfiles, or installed\ndependencies. The same captured contents are added to both sides, so the baseline\nremains a comparison under the same explicitly supplied local configuration.\n\nSight creates private temporary Git worktrees for the two builds. Both have a\ndetached `HEAD`: baseline points at the resolved baseline commit, and current\npoints at your original `HEAD` with captured working-tree files overlaid. Your\noriginal staging partition is not reproduced; scripts that distinguish staged\nfrom unstaged changes, or depend on an attached branch name, may behave differently.\nSight does not switch, stash, reset, or stage your original checkout.\n\nThe private repository has independent object storage and preserves the captured\nlocal branch/tag/remote-tracking refs and available history. `git rev-parse HEAD`\nand ancestry queries use each side's own commit. `git describe` evaluates the\ncaptured tags from that commit; these are today's locally available refs, not\ntheir historical state at the baseline date. Missing shallow history or tags may\nchange its output, and Sight does not fetch them implicitly. Branch-name queries\nobserve detached HEAD; the original branch label is metadata only.\n\n`git describe --dirty` reflects each private worktree, including explicit includes\nand build-script changes. Original dirty status is recorded separately. Builds\ndepending on attached branches or staging partitions must accommodate these\nsemantics through their existing configuration/environment. Sight verifies pinned\nHEADs and refs around build phases and rejects mutations that invalidate provenance.\nIt rechecks captured files, modes, symlinks, HEAD, and index for observed concurrent\nchanges; the copy is not an atomic filesystem snapshot.\n\nBoth sides use the same Node executable, platform, production/minification settings,\nand logical entrypoint. Each revision retains its own dependencies and bundler\nconfiguration. Sight records framework/package-manager versions and warns when\nrelevant inputs differ. A framework upgrade or configuration change can legitimately\naffect the result. Required environment variables must be available to both builds;\nthere is no automatic fallback from a failed build to the other revision's output.\n\n### Dependencies and supported repository layouts\n\nComparison installs fresh dependencies for each side from its own lockfile. It\nsupports npm, pnpm, Yarn Classic, and modern Yarn with `nodeLinker: node-modules`.\nAn exact `packageManager` declaration must match the available executable; tracked\n`yarnPath` configurations are honored. Without a declaration, a unique lockfile\nfamily selects the available manager and its actual version is recorded. Sight\ndoes not automatically download package-manager binaries or change a lockfile to\nmake installation succeed.\n\nDependency installation can access package registries and execute project lifecycle\nscripts. Existing script policies are preserved. For declared `engines.node` ranges,\nSight uses the installed `npm` executable to check a temporary dependency-free\nmanifest with an offline, script-disabled dry run before the real installs. This\ncheck also requires npm when the project uses Yarn or pnpm. Build/configuration\nscripts execute as ordinary local processes; the temporary worktrees are not a\nsecurity sandbox for untrusted project code.\n\nApps in a single npm, Yarn, or pnpm workspace root can use other packages inside\nthe same Git repository. Installation runs at the workspace root; bundling runs\nfrom the app directory. Nested/ambiguous workspace roots, nested app lockfiles,\nexternal local dependencies or symlinks, Bun, and Plug'n'Play installations are not\nsupported. npm workspaces require a v2 or newer lockfile. Unresolved Git conflicts,\nsparse/partial clones, required Git submodules, Git LFS/checkout filters, and tracked\n`node_modules` are also unsupported. There is no comparison build or dependency-tree\ncache in this version.\n\nActual workspace frozen installs have been verified on macOS arm64 with Node\n22.13.0 using npm 10.9.2, pnpm 11.24.0, Yarn 1.22.22, and Yarn 3.8.3. These installer\nchecks cover a registry dependency, a local workspace dependency, lifecycle scripts,\nand unchanged manifests/lockfiles. Real comparisons were also verified with npm\n10.9.2, React Native 0.83.1, and Expo 55.0.0: dirty source capture, package additions,\nidentical inputs, and automatic browser attribution after source cleanup.\nAn Expo Router 55.0.18 app also passed a real comparison using `expo-router/entry`.\nWindows/Linux hosts and full framework builds with pnpm or Yarn remain unverified;\nthe installer checks alone do not establish those combinations.\n\n### Keeping files and opening Sight manually\n\n```bash\nnpx bundle-drop sight --platform android --no-open --output ./sight-analysis\nnpx bundle-drop sight --compare main --platform android \\\n  --no-open --output ./sight-comparison\n```\n\nSingle analysis keeps a bundle/source-map pair and `analysis-assets.json`, a local\nrecord of emitted paths, sizes, hashes, and the exact bundle/map hashes. The automatic\nCLI handoff verifies this binding before including assets in the analysis.\n\nComparison output contains `baseline/` and `current/` bundle/source-map pairs plus\n`comparison.json` and `comparison-assets.json` as local records. Automatic CLI\nloading verifies these files and includes Git labels, build context, and asset\nsizes. The browser does not expose metadata or inventory upload controls.\n\nFor a manual JavaScript-only comparison, open\n[Bundle Drop Sight](https://bundledrop.app/sight), select Compare, and attach the\nfour bundle/map files. Manual Analyze still takes one bundle and its matching map;\nmanual Compare still takes two pairs. Neither requires the Bundle Drop SDK or extra\nJSON files. Git labels and asset sizes appear only through the CLI handoff. Changing\na file after a CLI handoff clears its comparison context.\n\nComparison metadata remains limited to 64 KiB. Each asset inventory is limited to\n4 MiB and 10,000 files per build; oversized inventories fail explicitly\ninstead of producing partial totals. Inventory paths are output-relative and are\nnever opened by the browser.\n\nTemporary worktrees and dependencies are removed after success, failure, or\ncancellation. Completed files from either CLI mode are retained when browser handoff\nfails; the CLI prints their location, and comparisons also print the diagnostics\ndirectory. `--keep`, `--no-open`, and `--output` retain the requested artifacts,\nincluding the local asset record. A failure before complete artifacts\nexist removes owned temporary output; explicitly requested output directories are\nkept for inspection.\n\nThe metadata contains local temporary source roots so unchanged source maps remain\nattributable after cleanup. Sight excludes those roots from displayed/exported\nprovenance and analytics. Manual file loading uses ordinary JavaScript comparison\nbehavior without the CLI source-path context.\n\nRemoval failures report the owned directory for manual recovery. An uncatchable\ntermination, such as a forced process kill or power loss, can leave temporary\n`bundle-drop-sight-*` directories. After confirming the invocation and its build\nprocesses have stopped, remove only those reported/identified temporary directories;\nkeep completed comparison output if it is still needed.\n\nOn macOS/Linux, Sight stops ordinary child process groups before removing the\nworktrees, including background children left after a command exits. On Windows,\ncancellation uses `taskkill` for the active process tree, but this version has no\nJob Object containment: background descendants can survive if their parent has\nalready exited. Scripts that deliberately detach into a separate process group\nalso fall outside process-group cleanup.\n\n## First-Time Setup\n\nRun these commands from your app's project root:\n\n```bash\nnpx bundle-drop login\nnpx bundle-drop doctor\n```\n\n`login` signs you in, creates `bundle.drop.config.js` when needed, pins the\nauthenticated runtime-delivery bootstrap under `.bundle-drop/`, detects Expo or\nbare React Native, previews the integration changes, and completes setup. `doctor`\nthen validates configuration, runtime identity, native integration, and startup\nownership.\n\nRun `init` when you need to review or rerun setup. You can force project detection\nfor unusual repository layouts:\n\n```bash\nnpx bundle-drop init\nnpx bundle-drop init --project-type expo\nnpx bundle-drop init --project-type bare\n```\n\nRun `npx bundle-drop doctor` again after changing native integration, Metro, Expo\nconfiguration, or runtime versions.\n\nWhen Bundle Drop rotates manifest verification keys or changes the public manifest\nroute, refresh the pinned client-visible bootstrap explicitly:\n\n```bash\nnpx bundle-drop sync\nnpx bundle-drop doctor\n```\n\nApps upgrading from an inline `runtimeDelivery` block or a direct Metro alias should\nremove that stale block and run `npx bundle-drop init` once to install the\npackage-managed Metro wrapper. Inline delivery data is ignored: the validated\nruntime-delivery lockfile is the sole trust source. After that one-time migration, `sync`\nis the narrow command for refreshing trust data.\n\nThe runtime-delivery lockfile is not a secret and should be committed. Setup keeps the\ngenerated Metro wrapper, build receipts, and other transient `.bundle-drop` files\nignored while allowing `.bundle-drop/runtime-delivery.lock.json` into source\ncontrol. Projects with the former `runtime-delivery.generated.json` filename remain\nreadable; run `bundle-drop sync` to migrate and remove that legacy file.\n\n### Manual setup without AI planning\n\nYou can configure Bundle Drop without sending project files to the AI setup planner.\nCreate `bundle.drop.config.js` with the project identity and public project API key\nshown in the developer dashboard:\n\n```js\nmodule.exports = {\n  serverUrl: 'https://api.bundledrop.app',\n  defaultChannel: 'develop',\n  runtimeVersion: { ios: '1.0.0', android: '1.0.0' },\n  org: { slug: 'your-org' },\n  project: {\n    name: 'Your App',\n    slug: 'your-app',\n    apiKey: 'your-public-project-key',\n  },\n};\n```\n\nWrap the final exported Metro config. For bare React Native:\n\n```js\nconst { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');\nconst { withBundleDrop } = require('@gfean/react-native-bundle-drop/metro');\n\nconst config = mergeConfig(getDefaultConfig(__dirname), {});\nmodule.exports = withBundleDrop(config, { projectRoot: __dirname });\n```\n\nFor Expo:\n\n```js\nconst { getDefaultConfig } = require('expo/metro-config');\nconst { withBundleDropExpo } = require('@gfean/react-native-bundle-drop/metro');\n\nmodule.exports = withBundleDropExpo(getDefaultConfig(__dirname), {\n  projectRoot: __dirname,\n});\n```\n\nExpo projects must also add `@gfean/react-native-bundle-drop` to the app config's\n`plugins` array. Bare projects must connect Bundle Drop to the Release bundle URL in\ntheir Android and iOS entrypoints. Follow the\n[manual native setup guide](https://bundledrop.app/docs/manual-setup) because the\nentrypoint shape varies across React Native versions.\n\nFinish every manual setup by authenticating, generating the public trust bootstrap,\nand validating the complete integration:\n\n```bash\nnpx bundle-drop login\nnpx bundle-drop sync\nnpx bundle-drop doctor\n```\n\n`sync` creates `.bundle-drop/runtime-delivery.lock.json`, recreates it if it or\nthe entire `.bundle-drop` directory was deleted, and repairs the corresponding\n`.gitignore` rules. The lockfile contains public identity and verification material,\nnot secrets, so commit it with the application.\n\n## Initialize the Runtime\n\nCall `BundleDrop.init` once, as early as possible in the app process.\n\n### Expo Router\n\nInitialize in `app/_layout.tsx`, before rendering the root layout:\n\n```tsx\nimport { BundleDrop } from '@gfean/react-native-bundle-drop';\nimport { Stack } from 'expo-router';\n\nBundleDrop.init({\n  enabled: !__DEV__,\n  environment: __DEV__ ? 'development' : 'production',\n  channelName: 'develop',\n  policy: 'on-next-launch',\n});\n\nexport default function RootLayout() {\n  return <Stack />;\n}\n```\n\n### Conventional React Native entrypoint\n\nInitialize near the top of your entry file, before registering the root component:\n\n```tsx\nimport { AppRegistry } from 'react-native';\nimport { BundleDrop } from '@gfean/react-native-bundle-drop';\n\nimport App from './App';\nimport { name as appName } from './app.json';\n\nBundleDrop.init({\n  enabled: !__DEV__,\n  environment: __DEV__ ? 'development' : 'production',\n  channelName: 'develop',\n  policy: 'on-next-launch',\n});\n\nAppRegistry.registerComponent(appName, () => App);\n```\n\n## Expo Builds and Development\n\nBundle Drop needs its native integration in the installed app. Expo Go does not\ncontain that native adapter, so the SDK remains disabled there and your app can keep\nusing Expo Go for normal development.\n\nDebug builds and development clients also keep Metro as the JavaScript authority;\nthey do not start an installed OTA bundle. Test the OTA lifecycle with a non-Debug\nRelease build.\n\nFor managed/CNG projects, setup can leave `ios/` and `android/` absent. The config\nplugin generates the native integration during a later prebuild, `expo run:*`, or\nEAS Build. Typical local Release builds are:\n\n```bash\nnpx expo run:ios --configuration Release\nnpx expo run:android --variant release\n```\n\nFor remote builds, use your normal EAS profiles:\n\n```bash\neas build --platform ios\neas build --platform android\n```\n\nWith the default literal runtime configuration, the plugin embeds the platform's\nliteral in the native build and Expo uploads resolve that same literal directly from\n`bundle.drop.config.js`. This normal workflow does not require a build receipt.\n\nAn advanced Expo project can explicitly make its Expo runtime policy authoritative\nwith `runtimeVersion: { source: 'expo' }`. In that opt-in mode, uploads require an\nexact receipt from the matching local native build. For a remote EAS build, create an\nauthenticated receipt from the completed build and pass the returned path to upload:\n\n```bash\nnpx bundle-drop eas-receipt ios --build-id <eas-build-id>\nnpx bundle-drop upload ios --channel develop --build-receipt <receipt-path>\n```\n\nRebuild the native app whenever the config plugin, native dependencies, permissions,\nor runtime compatibility boundary changes.\n\n### `expo-updates` startup ownership\n\nAn active `expo-updates` installation can also own native startup, so it cannot be\nactive in the same binary as Bundle Drop. Setup and `doctor` stop when they detect\nthat conflict. To migrate intentionally, review the proposed changes and run:\n\n```bash\nnpx bundle-drop init --project-type expo --migrate-expo-updates\n```\n\nThis removes the active `expo-updates` integration and requires a new native binary.\nDo not publish a Bundle Drop update until that replacement binary has been built and\ndistributed.\n\n## Runtime Versions\n\n`bundle.drop.config.js` defines literal runtime versions shared by Expo and bare\nReact Native projects:\n\n```js\nmodule.exports = {\n  // ...project configuration\n  runtimeVersion: {\n    ios: '1.0.0',\n    android: '1.0.0',\n  },\n};\n```\n\nKeep a platform's literal unchanged for OTA-compatible JavaScript and asset updates.\nThe upload will then target binaries built with that same runtime value.\n\nWhen native code or native configuration changes, bump the affected platform's\nliteral and build a new binary before uploading updates for that runtime. For\nexample, an iOS-only native change should bump `runtimeVersion.ios`; Android can keep\nits existing value. This makes the compatibility boundary explicit and prevents an\nupdate from reaching a binary that cannot run it.\n\n## Native Startup Recovery\n\nBundle Drop records every OTA startup attempt in native storage before React Native\nreceives the bundle path. If an attempt does not reach its configured health boundary,\nthe next distinct app launch counts it as incomplete. The candidate is retried until\n`rollback.maxCrashCount` is reached, then quarantined locally and replaced with the\nprevious native-proven healthy OTA bundle. If that bundle is missing, corrupt,\nincompatible, or locally revoked, startup falls back to the bundle embedded in the app.\n\nAutomatic health waits for React content to appear and then applies\n`rollback.healthyAfterSec`. Apps with a stronger readiness boundary can opt into\n`healthCheckMode: 'manual'` and call `BundleDrop.reportHealthy()` after hydration,\nmigrations, authentication bootstrap, or navigation setup completes. Health is committed\nagainst the exact native launch attempt, so a delayed callback from an older React runtime\ncannot approve a newer launch.\n\nRecovery is local and offline; it never waits for a network request during startup. With\n`maxCrashCount: 0`, launch-health counting and automatic crash-loop rollback are disabled,\nwhile integrity, runtime compatibility, quarantine, and locally persisted revocation checks\nstill apply. Native startup recovery requires a binary built with the corresponding SDK\n`nativeVersion`; it cannot be added to an older installed binary through OTA JavaScript.\nCrashes after an attempt is healthy do not trigger this rollback path and should use normal\ncrash reporting plus fix-forward or explicit rollback controls.\n\n## Managed Runtime Delivery\n\nRuntime delivery is package-managed. `bundle.drop.config.js` stays focused on\napplication-owned values such as project identity, channel, runtime versions, and\nrollback policy; it does not contain manifest hosts, access routes, public keys, or\na delivery-mode switch.\n\n`bundle-drop login` and `bundle-drop init` synchronize the trust bootstrap during\nsetup. `bundle-drop sync` performs the same narrow operation later for repair or key\nrotation. Each command validates authenticated project credentials and writes the\nidentity-bound `.bundle-drop/runtime-delivery.lock.json`. Metro confirms that\nthe bootstrap belongs to the same server, organization, and project before merging\nit into the runtime module. Malformed, copied, unsupported, or private-key-bearing\ndata is rejected.\n\nOlder apps with an inline `runtimeDelivery` block keep their ordinary project\nconfiguration, but the inline block is ignored and should be removed during\nmigration. Only the identity-bound runtime-delivery lockfile can enable managed delivery.\nIf the server explicitly disables delivery for a project, synchronization removes a\nstale bootstrap and the SDK continues through the compatible `/ota/resolve` path.\n\nThe SDK resolves a complete public lane locally. Invalid, expired, incomplete,\ndynamic, unavailable, or network-failed manifests safely fall back to `/ota/resolve`.\nArtifact download authorization remains API-key authenticated and uses opaque\nrelease and artifact references rather than URLs embedded in the manifest.\n\nLane manifests are signed state and are not themselves the revocation clock. Every\nlocal check also fetches a small environment-wide signed publisher lease. The SDK\nverifies its key, exact manifest origin, issue time, and short absolute expiry before\nit verifies or persists lane generation state. A missing, invalid, expired, or\noperator-disabled lease therefore falls back to `/ota/resolve`, even when cached\nmanifest bytes remain cryptographically valid.\n\nArtifact download capabilities are intentionally short-lived. If an artifact URL is\nrejected with HTTP 401 or 403 during download, the SDK reauthorizes the original\nsigned selection once and retries only when its generation, target, transport,\nartifact references, and signed hashes are unchanged. Verification, reconstruction,\nand installation failures are never retried this way.\n\nWith managed delivery, install through `downloadUpdate`, or use the React hook's\n`fetchBundles` and `installBundle(bundle)` list-item flow. Direct named\n`installBundle(hash, url, ...)` calls are rejected because they bypass the fresh\nresolve and artifact-authorization decision.\n\nUnchanged install state is reported at most once every seven days. A current bundle\nhash, app environment, or user-property change is reported immediately; successful\ninstalls continue to use the separate idempotent installed receipt.\n\nThe manifest URL is derived from `manifestBaseUrl`, `manifestAccessId`, channel,\nplatform, and runtime version. `manifestAccessId` is an opaque URL-routing value,\nnot a signing secret. `publicKeys` contains public P-256 JWK coordinates keyed by\nthe manifest JWS `kid`, which permits signing-key rotation.\n\nPass `onRuntimeDeliveryDiagnostic` to `BundleDrop.init` to export the fast-path\nsignals to your metrics system. Events contain a bounded counter name, cumulative\nprocess count, timestamp, and optional channel/reason/status metadata; they never\ncontain access IDs, install IDs, JWS bodies, user properties, or artifact URLs.\n`getRuntimeDeliveryDiagnosticCounters()` returns a process-local snapshot. The\ncounter names are `manifest_hit`, `dynamic_manifest`, `origin_fallback`,\n`invalid_signature`, `unknown_key`, `lane_mismatch`,\n`generation_regression`, `generation_equivocation`,\n`manifest_http_error`, `manifest_network_error`, `manifest_timeout`,\n`manifest_too_large`, `manifest_invalid`, `manifest_stream_unavailable`,\n`authority_lease_http_error`, `authority_lease_network_error`,\n`authority_lease_timeout`, `authority_lease_too_large`,\n`authority_lease_invalid`, `authority_lease_invalid_signature`,\n`authority_lease_unknown_key`, `authority_lease_expired`,\n`authority_lease_origin_mismatch`, and `authority_lease_disabled`.\n\nManifest responses are read incrementally and cancelled as soon as they exceed\n1 MiB. A runtime without a readable response stream fails closed to `/ota/resolve`\ninstead of buffering an unbounded body.\n\nManaged runtime delivery uses native SHA-256 and ES256 verification. After upgrading to\nan SDK release whose `nativeVersion` includes this support (`0.5.0` or newer), run\nPods/prebuild as appropriate and ship a new native binary before enabling runtime\ndelivery for the project. Bundle Drop's native-version validation will reject a JavaScript/native\nadapter mismatch.\n\n## Upload an Update\n\nWith the default literal runtime configuration, Expo uploads resolve the app version\nthrough the Expo project and the runtime through `bundle.drop.config.js`. They do not\nneed `--version`, `--plist-file`, or Gradle-path options:\n\n```bash\nnpx bundle-drop upload ios --channel develop\nnpx bundle-drop upload android --channel develop\n```\n\nBare React Native uploads specify or resolve the app version explicitly:\n\n```bash\nnpx bundle-drop upload android --version 1.2.3 --channel develop\nnpx bundle-drop upload ios --plist-file ios/Info.plist --channel develop\n```\n\nAdd `--sourcemap` to produce source maps for error tracking. In CI/CD, pass a\nPersonal Access Token with `--token <PAT>` instead of using an interactive login.\n\n## Update Policies\n\n`policy` controls what happens after Bundle Drop hydrates its local state on startup:\n\n| Policy | Behavior |\n| --- | --- |\n| `manual` | Check only when you call the APIs yourself. Default. |\n| `immediate` | Download and apply a new bundle right away. |\n| `on-next-launch` | Stage the update now, then apply it on the next cold launch. |\n\n`on-next-launch` is a good default for most apps: users do not see a reload in the\nmiddle of a session, and the update is ready for the next launch.\n\n## Driving Updates Manually\n\nFor custom update UI, use the `useBundleDrop()` hook. It subscribes to the singleton\nruntime and exposes actions plus live state:\n\n```tsx\nimport { Button } from 'react-native';\nimport { useBundleDrop } from '@gfean/react-native-bundle-drop';\n\nfunction UpdateBanner() {\n  const { checkLatest, downloadUpdate, applyUpdate, pendingApply, isBusy } =\n    useBundleDrop();\n\n  if (pendingApply) {\n    return <Button title=\"Restart to update\" onPress={applyUpdate} />;\n  }\n\n  return (\n    <Button\n      title=\"Check for updates\"\n      disabled={isBusy}\n      onPress={async () => {\n        await checkLatest();\n        await downloadUpdate();\n      }}\n    />\n  );\n}\n```\n\nThe same actions are available as standalone functions (`checkForUpdate`,\n`downloadUpdate`, `applyUpdate`, `setChannel`, `reportHealthy`, and others) for use\noutside React.\n\n## Targeted Rollouts\n\nAttach user properties to target specific cohorts when you stage a release:\n\n```ts\nimport { setUserProperty } from '@gfean/react-native-bundle-drop';\n\nawait setUserProperty('plan', 'pro');\nawait setUserProperty('age', 33);\nawait setUserProperty('beta', true);\n```\n\nProperty values must be strings, finite numbers, or booleans. Keys are trimmed and\nmust be non-empty, 128 characters or fewer, and cannot start with `$`, contain `.`,\ncontain a null byte, or use reserved prototype names.\n\n## Hybrid OTA Delivery\n\nBundle Drop installs complete, immutable bundle folders, each identified by a\ncanonical `bundleHash` for the reconstructed file tree. Patch transport is a download\noptimization: the SDK reconstructs the complete target folder, validates the\nmanifest, verifies file hashes and sizes, and only then promotes the bundle.\n\n- The SDK supports `asset-only-v1` patch sets and advertises `xdelta3-vcdiff` when\n  native xdelta support passes its probe.\n- If patch transport is unavailable or fails, the SDK falls back to the signed\n  full ZIP.\n- Rollback remains a local pointer switch between verified bundle hashes.\n\nThe production manifest contract is `manifestVersion: 1`. `jsBundleHash` is retained\nas metadata only.\n\n## Observability\n\nEvery bundle has a unique hash, and `bundle-drop upload --sourcemap` produces source\nmaps so stack traces remain attributable across updates. Use\n`getObservabilityContext()` to tag error reports with the running bundle:\n\n```ts\nimport { getObservabilityContext } from '@gfean/react-native-bundle-drop';\n\nconst context = await getObservabilityContext();\n```\n\nThis works with Sentry, Bugsnag, Datadog, and other error trackers. See the\n[observability guide](https://bundledrop.app/docs/observability). Apps on\n`@sentry/react-native` 7.8.x that combine Sentry's Metro wrapper with Hermes should\nfollow the guide's\n[Sentry/Hermes OTA setup](https://bundledrop.app/docs/observability#sentry-and-hermes-ota-builds)\nto keep content-derived Debug IDs from inflating binary patches.\n\n## API Reference\n\nImport the runtime API from `@gfean/react-native-bundle-drop`.\n\n**Runtime controller**\n\n| Export | Description |\n| --- | --- |\n| `BundleDrop.init(options)` | Initialize the runtime for the app process. |\n| `BundleDrop.setChannel(name)` / `setChannel` | Change the active channel for singleton actions. |\n| `BundleDrop.getChannelName()` / `getChannelName` | Read the active channel. |\n| `BundleDrop.reportHealthy()` / `reportHealthy` | In manual health mode, ask native recovery to mark the exact running OTA attempt healthy. |\n\n**`BundleDrop.init(options)`**\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `environment` | `string` | Required | App environment shown in analytics, such as `production`, `staging`, or `development`. |\n| `enabled` | `boolean` | `true` | When `false`, the SDK stays configured but does not check, download, or apply. |\n| `channelName` | `string` | Config `defaultChannel` (`develop`) | Initial OTA channel for this process. |\n| `policy` | `'manual' \\| 'immediate' \\| 'on-next-launch'` | `'manual'` | Startup behavior after hydration. |\n| `checkOnly` | `boolean` | `false` | Startup resolves updates without downloading or applying them. |\n| `onStatusUpdate` | `(status: string) => void` | — | Listener for human-readable status messages. |\n| `onRuntimeDeliveryDiagnostic` | `(event: RuntimeDeliveryDiagnosticEvent) => void` | — | Listener for bounded runtime-delivery counter events suitable for metrics export. |\n\n**Update actions** — `checkForUpdate`, `downloadUpdate`, `installBundle`,\n`applyUpdate`, `getUpdateState`, `getInstalledBundleInfo`, `getAvailableBundles`,\n`getAvailableChannels`.\n\n**React** — `useBundleDrop()` returns live state (`status`, `isEnabled`, `isBusy`,\n`channelName`, `installedInfo`, `pendingApply`, `hasBundle`, `availableChannels`)\nplus update actions.\n\n**User properties** — `setUserProperty`, `removeUserProperty`, `getUserProperties`,\n`getCurrentUserProperties`, `resetUserProperties`.\n\n**Errors** — `BundleDropError`, `isBundleDropError`.\n\n**Runtime delivery diagnostics** — `getRuntimeDeliveryDiagnosticCounters` returns\nthe current process-local counter snapshot.\n\n**Metro** — import `withBundleDropExpo` for Expo or `withBundleDrop` for bare React\nNative from `@gfean/react-native-bundle-drop/metro` when configuring Metro manually.\n\n**CLI** (`npx bundle-drop <command>`) — `login`, `logout`, `whoami`, `init`, `sync`,\n`doctor`, `eas-receipt <ios|android>`, and `upload <ios|android>`.\n\n## Good to Know\n\n- **OTA covers JavaScript and assets, not native code.** Native modules, native\n  dependency upgrades, permissions, native configuration, and React Native upgrades\n  require a new store binary.\n- **Follow store policies.** Use OTA delivery for changes that remain within Apple\n  and Google requirements and the purpose of the reviewed app.\n- **Compatibility checks are deliberate.** A device does not receive an update\n  built for a different app or runtime version.\n- **Release builds run installed OTAs.** Expo Go, Debug builds, and development\n  clients continue to use their development JavaScript source.\n- **Bundle Drop complements crash reporting.** It provides release identity and\n  source-map support; it does not replace an error tracker.\n\n## Docs and Links\n\n- Website: [bundledrop.app](https://bundledrop.app)\n- Docs: [bundledrop.app/docs](https://bundledrop.app/docs)\n- Dashboard: [developer.bundledrop.app](https://developer.bundledrop.app)\n- Migrating from CodePush: [bundledrop.app/codepush-alternative](https://bundledrop.app/codepush-alternative)\n- Issues: [github.com/GFean/react-native-bundle-drop/issues](https://github.com/GFean/react-native-bundle-drop/issues)\n- Security: [SECURITY.md](SECURITY.md)\n- Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## License\n\nISC\n","readmeFilename":"README.md"}