{"_id":"@ankitp5/capacitor-ssl-pinning","_rev":"6-2aee620aeeefec2ea00114be7a5dedd3","name":"@ankitp5/capacitor-ssl-pinning","dist-tags":{"latest":"0.0.19"},"versions":{"0.0.14":{"name":"@ankitp5/capacitor-ssl-pinning","version":"0.0.14","keywords":["capacitor","plugin","native","ssl","pinning","certificate","cert","ssl","https"],"author":{"name":"ankitp5","email":"ankitp5@users.noreply.github.com"},"license":"MIT","_id":"@ankitp5/capacitor-ssl-pinning@0.0.14","maintainers":[{"name":"ankitp5","email":"ankitp@eccentricengine.com"}],"homepage":"https://github.com/ankitp5/Capacitor-SSL-Pinning#readme","bugs":{"url":"https://github.com/ankitp5/Capacitor-SSL-Pinning/issues"},"bin":{"ssl-fingerprint":"dist/cli/fingerprint.js","capacitor-ssl-fingerprint":"dist/cli/fingerprint.js"},"dist":{"shasum":"032d79b44255ed3729820234d264b743ff79adc0","tarball":"https://registry.npmjs.org/@ankitp5/capacitor-ssl-pinning/-/capacitor-ssl-pinning-0.0.14.tgz","fileCount":36,"integrity":"sha512-k6Sd7Zm8eSNHTvWJ0qv3/Rfl10YPmFMJ/fUp/12NuNMLtTC3YD9k4Zxt4uM0QkQ+qz+eO+d/YnJhRA0OhK2p3Q==","signatures":[{"sig":"MEQCIBAwwNysQtVCr1/LVgeXJBRwsLFyaUzXUpOpRk15YqePAiAwCOUmoLBdorOGmZX+wZBKAm5O2kL29S+aUBUYN5ilFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89273},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"36263624ab12015d273df39fbb66f48d4a1469d9","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs && npm run chmod-cli","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SSLCertificateCheckerPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","chmod-cli":"node scripts/chmod.js","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapacitorSslPinning -destination generic/platform=iOS","verify:web":"npm run build","debug-build":"tsc --listFiles && npm run build","postinstall":"node scripts/chmod.js","removePacked":"rimraf -g capacitor-ssl-pinning-*.tgz","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","publish:locally":"npm run removePacked && npm run build && npm pack"},"_npmUser":{"name":"ankitp5","email":"ankitp@eccentricengine.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/ankitp5/Capacitor-SSL-Pinning.git","type":"git"},"_npmVersion":"10.9.2","description":"Check/pin SSL certificates","directories":{},"_nodeVersion":"22.14.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"yargs":"^17.7.2","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.29.1","prettier":"~3.4.2","swiftlint":"^2.0.0","typescript":"~5.4.5","@types/yargs":"^17.0.33","@capacitor/ios":"7.4.3","@capacitor/core":"7.4.3","@capacitor/docgen":"^0.3.0","@capacitor/android":"7.4.3","@ionic/eslint-config":"^0.4.0","prettier-plugin-java":"~2.6.5","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.4.3"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-ssl-pinning_0.0.14_1755761785818_0.8643363193939775","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@ankitp5/capacitor-ssl-pinning","version":"0.0.15","keywords":["capacitor","plugin","native","ssl","pinning","certificate","cert","ssl","https"],"author":{"name":"ankitp5","email":"ankitp5@users.noreply.github.com"},"license":"MIT","_id":"@ankitp5/capacitor-ssl-pinning@0.0.15","maintainers":[{"name":"ankitp5","email":"ankitp@eccentricengine.com"}],"homepage":"https://github.com/ankitp5/Capacitor-SSL-Pinning#readme","bugs":{"url":"https://github.com/ankitp5/Capacitor-SSL-Pinning/issues"},"bin":{"ssl-fingerprint":"dist/cli/fingerprint.js","capacitor-ssl-fingerprint":"dist/cli/fingerprint.js"},"dist":{"shasum":"13d54c1e1156848cfe013d46a0b234ec9bf68b06","tarball":"https://registry.npmjs.org/@ankitp5/capacitor-ssl-pinning/-/capacitor-ssl-pinning-0.0.15.tgz","fileCount":36,"integrity":"sha512-Gyahkr5irpmaDQDj8wDWXHG4mIXIaR1/VeniIUY4C3Ad/5krIhpXOa4kpvOmektmc31L0kAZJbu8WLjceh8iiQ==","signatures":[{"sig":"MEQCIBhp4MTrzZBxYSs++I1y3fjeg17PizfGLdWZl4aUwuUMAiATWEF4ziQVZmR6WPQmF0dx50DqKfzhWUZFaRm9USA9OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89277},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"3b2ab7e63e69e8149dbe6cb4a66809555e1815ee","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs && npm run chmod-cli","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SSLCertificateCheckerPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","chmod-cli":"node scripts/chmod.js","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapacitorSslPinning -destination generic/platform=iOS","verify:web":"npm run build","debug-build":"tsc --listFiles && npm run build","postinstall":"node scripts/chmod.js","removePacked":"rimraf -g capacitor-ssl-pinning-*.tgz","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","publish:locally":"npm run removePacked && npm run build && npm pack"},"_npmUser":{"name":"ankitp5","email":"ankitp@eccentricengine.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/ankitp5/Capacitor-SSL-Pinning.git","type":"git"},"_npmVersion":"10.9.2","description":"Check/pin SSL certificates","directories":{},"_nodeVersion":"22.14.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"yargs":"^17.7.2","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.29.1","prettier":"~3.4.2","swiftlint":"^2.0.0","typescript":"~5.4.5","@types/yargs":"^17.0.33","@capacitor/ios":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/android":"^7.0.0","@ionic/eslint-config":"^0.4.0","prettier-plugin-java":"~2.6.5","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-ssl-pinning_0.0.15_1755762072534_0.1935877572712772","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@ankitp5/capacitor-ssl-pinning","version":"0.0.16","keywords":["capacitor","plugin","native","ssl","pinning","certificate","cert","ssl","https"],"author":{"name":"ankitp5","email":"ankitp5@users.noreply.github.com"},"license":"MIT","_id":"@ankitp5/capacitor-ssl-pinning@0.0.16","maintainers":[{"name":"ankitp5","email":"ankitp@eccentricengine.com"}],"homepage":"https://github.com/ankitp5/Capacitor-SSL-Pinning#readme","bugs":{"url":"https://github.com/ankitp5/Capacitor-SSL-Pinning/issues"},"bin":{"ssl-fingerprint":"dist/cli/fingerprint.js","capacitor-ssl-fingerprint":"dist/cli/fingerprint.js"},"dist":{"shasum":"4841df539620242befbc264f61ff9cbe84450e9f","tarball":"https://registry.npmjs.org/@ankitp5/capacitor-ssl-pinning/-/capacitor-ssl-pinning-0.0.16.tgz","fileCount":36,"integrity":"sha512-MV+g7aXqCRn8KAUDbOMCCBWk+mqmygihSsaWRt5BifEwyzDL4U9d1KTeTsB+YZtDPyV6i0C42IB1SJUfegO7aw==","signatures":[{"sig":"MEUCIBLycdNVKwKEclI/oVk6RbHhsj11ttCYniqpiDTFy+xaAiEA5/D00jq6e+BsF9whz1UkDeFM+XmMesHTW2IQjhgnA2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89276},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"e076fec9a94398143e2ae5dc3ce1db042df2bea4","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs && npm run chmod-cli","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SSLCertificateCheckerPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","chmod-cli":"node scripts/chmod.js","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapacitorSslPinning -destination generic/platform=iOS","verify:web":"npm run build","debug-build":"tsc --listFiles && npm run build","postinstall":"node scripts/chmod.js","removePacked":"rimraf -g capacitor-ssl-pinning-*.tgz","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","publish:locally":"npm run removePacked && npm run build && npm pack"},"_npmUser":{"name":"ankitp5","email":"ankitp@eccentricengine.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/ankitp5/Capacitor-SSL-Pinning.git","type":"git"},"_npmVersion":"10.9.2","description":"Check/pin SSL certificates","directories":{},"_nodeVersion":"22.14.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"yargs":"^17.7.2","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.29.1","prettier":"~3.4.2","swiftlint":"^2.0.0","typescript":"~5.4.5","@types/yargs":"^17.0.33","@capacitor/ios":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/android":"^7.0.0","@ionic/eslint-config":"^0.4.0","prettier-plugin-java":"~2.6.5","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-ssl-pinning_0.0.16_1755762349056_0.8538849675885121","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@ankitp5/capacitor-ssl-pinning","version":"0.0.17","keywords":["capacitor","plugin","native","ssl","pinning","certificate","cert","ssl","https"],"author":{"name":"ankitp5","email":"ankitp5@users.noreply.github.com"},"license":"MIT","_id":"@ankitp5/capacitor-ssl-pinning@0.0.17","maintainers":[{"name":"ankitp5","email":"ankitp@eccentricengine.com"}],"homepage":"https://github.com/ankitp5/Capacitor-SSL-Pinning#readme","bugs":{"url":"https://github.com/ankitp5/Capacitor-SSL-Pinning/issues"},"bin":{"ssl-fingerprint":"dist/cli/fingerprint.js","capacitor-ssl-fingerprint":"dist/cli/fingerprint.js"},"dist":{"shasum":"4012aa19189b4750713795180542a3df0e731c2d","tarball":"https://registry.npmjs.org/@ankitp5/capacitor-ssl-pinning/-/capacitor-ssl-pinning-0.0.17.tgz","fileCount":35,"integrity":"sha512-BY7QFvDb+GeZt9GtFML6SXlLtmPJVTkua+E7PqfIdD7++hujjpGBAEQBPguL+YYWtal4oCMoUXDkIZUvfasjaA==","signatures":[{"sig":"MEUCIAmOppHT1IXVsukUOYC5Ld7Aw2iydR8zys2PIrefkjxdAiEAlOxdm8koquJactckIkUmKxe2aRzynTF1By3GQnZHmNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88726},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"c82e7e608704483ae69540e29262f025b0aeb547","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs && npm run chmod-cli","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SSLCertificateCheckerPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","chmod-cli":"node scripts/chmod.js","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapacitorSslPinning -destination generic/platform=iOS","verify:web":"npm run build","debug-build":"tsc --listFiles && npm run build","postinstall":"node scripts/chmod.js","removePacked":"rimraf -g capacitor-ssl-pinning-*.tgz","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","publish:locally":"npm run removePacked && npm run build && npm pack"},"_npmUser":{"name":"ankitp5","email":"ankitp@eccentricengine.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/ankitp5/Capacitor-SSL-Pinning.git","type":"git"},"_npmVersion":"10.9.2","description":"Check/pin SSL certificates","directories":{},"_nodeVersion":"22.14.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"yargs":"^17.7.2","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.29.1","prettier":"~3.4.2","swiftlint":"^2.0.0","typescript":"~5.4.5","@types/yargs":"^17.0.33","@capacitor/ios":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/android":"^7.0.0","@ionic/eslint-config":"^0.4.0","prettier-plugin-java":"~2.6.5","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-ssl-pinning_0.0.17_1755765829460_0.6248720073852647","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@ankitp5/capacitor-ssl-pinning","version":"0.0.18","keywords":["capacitor","plugin","native","ssl","pinning","certificate","cert","ssl","https"],"author":{"name":"ankitp5","email":"ankitp5@users.noreply.github.com"},"license":"MIT","_id":"@ankitp5/capacitor-ssl-pinning@0.0.18","maintainers":[{"name":"ankitp5","email":"ankitp@eccentricengine.com"}],"homepage":"https://github.com/ankitp5/Capacitor-SSL-Pinning#readme","bugs":{"url":"https://github.com/ankitp5/Capacitor-SSL-Pinning/issues"},"bin":{"ssl-fingerprint":"dist/cli/fingerprint.js","capacitor-ssl-fingerprint":"dist/cli/fingerprint.js"},"dist":{"shasum":"f441d18aa2b1561a660edcb118cf7d48d2b111a3","tarball":"https://registry.npmjs.org/@ankitp5/capacitor-ssl-pinning/-/capacitor-ssl-pinning-0.0.18.tgz","fileCount":36,"integrity":"sha512-Q5hgEBhyZWEAa4eYfdFNBTBkgOuoYxMEeYlCjIoHu8EevpdKBP1kwnJ3+yhzinqXhn2KqKK9MxEY3OYprPAgHA==","signatures":[{"sig":"MEUCIQCQSKM1I+FvGikBVJbFZukKGsB2xfkWsbxHQ+LBEX/aaQIgag6n6A3RUHo9dwpSKL5ZjjneHdn8pXjhtMvY9nRXfew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89290},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"f8cb0902bafa2fb4cdc11a4400d18ac21c50e2d5","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs && npm run chmod-cli","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SSLCertificateCheckerPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","chmod-cli":"node scripts/chmod.js","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapacitorSslPinning -destination generic/platform=iOS","verify:web":"npm run build","debug-build":"tsc --listFiles && npm run build","postinstall":"node scripts/chmod.js","removePacked":"rimraf -g capacitor-ssl-pinning-*.tgz","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","publish:locally":"npm run removePacked && npm run build && npm pack"},"_npmUser":{"name":"ankitp5","email":"ankitp@eccentricengine.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/ankitp5/Capacitor-SSL-Pinning.git","type":"git"},"_npmVersion":"10.9.2","description":"Check/pin SSL certificates","directories":{},"_nodeVersion":"22.14.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"yargs":"^17.7.2","eslint":"^9.17.0","rimraf":"^6.0.1","rollup":"^4.29.1","prettier":"~3.4.2","swiftlint":"^2.0.0","typescript":"~5.4.5","@types/yargs":"^17.0.33","@capacitor/ios":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/android":"^7.0.0","@ionic/eslint-config":"^0.4.0","prettier-plugin-java":"~2.6.5","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-ssl-pinning_0.0.18_1755766390242_0.3152568555551385","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@ankitp5/capacitor-ssl-pinning","version":"0.0.19","description":"Check/pin SSL certificates","main":"dist/plugin.cjs.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"ankitp5","email":"ankitp5@users.noreply.github.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ankitp5/Capacitor-SSL-Pinning.git"},"bugs":{"url":"https://github.com/ankitp5/Capacitor-SSL-Pinning/issues"},"keywords":["capacitor","plugin","native","ssl","pinning","certificate","cert","ssl","https"],"scripts":{"verify":"npm run verify:ios && npm run verify:android && npm run verify:web","verify:ios":"xcodebuild -scheme CapacitorSslPinning -destination generic/platform=iOS","verify:android":"cd android && ./gradlew clean build test && cd ..","verify:web":"npm run build","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","eslint":"eslint . --ext ts","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","docgen":"docgen --api SSLCertificateCheckerPlugin --output-readme README.md --output-json dist/docs.json","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs && npm run chmod-cli","clean":"rimraf ./dist","watch":"tsc --watch","removePacked":"rimraf -g capacitor-ssl-pinning-*.tgz","publish:locally":"npm run removePacked && npm run build && npm pack","prepublishOnly":"npm run build","debug-build":"tsc --listFiles && npm run build","chmod-cli":"node scripts/chmod.js","postinstall":"node scripts/chmod.js"},"devDependencies":{"@capacitor/android":"^7.0.0","@capacitor/core":"^7.0.0","@capacitor/docgen":"^0.3.0","@capacitor/ios":"^7.0.0","@ionic/eslint-config":"^0.4.0","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0","@types/yargs":"^17.0.33","eslint":"^9.17.0","prettier":"~3.4.2","prettier-plugin-java":"~2.6.5","rimraf":"^6.0.1","rollup":"^4.29.1","swiftlint":"^2.0.0","typescript":"~5.4.5","yargs":"^17.7.2"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"prettier":"@ionic/prettier-config","swiftlint":"@ionic/swiftlint-config","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"bin":{"ssl-fingerprint":"dist/cli/fingerprint.js","capacitor-ssl-fingerprint":"dist/cli/fingerprint.js"},"_id":"@ankitp5/capacitor-ssl-pinning@0.0.19","gitHead":"7b3f093ca4538309c3a25177cdc071fbe4aa3647","homepage":"https://github.com/ankitp5/Capacitor-SSL-Pinning#readme","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-dyzHgSR8nDs0lWaa2/4OkQce9SGhv5mRsTavLhyUZJdOB4p5eHUZlh6qRIpqsSN6hqcuTsJLRPgz/ym5PHThOA==","shasum":"c0c8581b48ed5687fc5035eb7c09eca31d48eab7","tarball":"https://registry.npmjs.org/@ankitp5/capacitor-ssl-pinning/-/capacitor-ssl-pinning-0.0.19.tgz","fileCount":36,"unpackedSize":89290,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDlAWoJ962UN2+cdklp8lC8in6sf0DH9CK7TCokz0sbpgIhAKspcAkP5cRUJoQXz2kysAG9UUYe1vkiFhR/O6+jLJfS"}]},"_npmUser":{"name":"ankitp5","email":"ankitp@eccentricengine.com"},"directories":{},"maintainers":[{"name":"ankitp5","email":"ankitp@eccentricengine.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-ssl-pinning_0.0.19_1755766699083_0.3766017306912408"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-21T07:36:25.720Z","modified":"2025-08-21T08:58:19.452Z","0.0.14":"2025-08-21T07:36:25.991Z","0.0.15":"2025-08-21T07:41:12.724Z","0.0.16":"2025-08-21T07:45:49.233Z","0.0.17":"2025-08-21T08:43:49.649Z","0.0.18":"2025-08-21T08:53:10.430Z","0.0.19":"2025-08-21T08:58:19.285Z"},"bugs":{"url":"https://github.com/ankitp5/Capacitor-SSL-Pinning/issues"},"author":{"name":"ankitp5","email":"ankitp5@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/ankitp5/Capacitor-SSL-Pinning#readme","keywords":["capacitor","plugin","native","ssl","pinning","certificate","cert","ssl","https"],"repository":{"type":"git","url":"git+https://github.com/ankitp5/Capacitor-SSL-Pinning.git"},"description":"Check/pin SSL certificates","maintainers":[{"name":"ankitp5","email":"ankitp@eccentricengine.com"}],"readme":"# Capacitor SSL Pinning\n\n> **Supports Capacitor 7.x (latest tested: 7.4.3)**\n# Capacitor SSL Pinning\n\nIonic Capacitor Plugin to perform SSL certificate checking/pinning.  \nThis plugin validates the SHA256 fingerprint of a server's SSL certificate and compares it to a provided fingerprint.  \nOn Android, the plugin also provides additional certificate information.\n\nThis software implements SSL (Secure Sockets Layer) pinning as a security measure. It is provided under the MIT License. The SSL pinning code included in this project is provided \"as is\" without any warranty, express or implied.\n\n## Important Notes\n\n- **Security Measure**: SSL pinning enhances security by validating server certificates against known, trusted certificates or public keys. However, it does not guarantee absolute security.\n- **Implementation Responsibility**: The effectiveness of SSL pinning depends on correct implementation and maintenance. Users are responsible for proper setup and regular updates to pinned certificates or keys.\n- **Maintenance Requirements**: SSL pinning requires ongoing maintenance. Failure to update pinned certificates before they expire can result in app failure or loss of connectivity.\n- **No Warranty**: The authors and copyright holders of this software provide it without warranty and do not guarantee it will meet your requirements or operate error-free.\n- **Limitation of Liability**: The authors and copyright holders are not liable for claims, damages, or liabilities arising from the use or performance of this software.\n- **Testing and Verification**: Users must thoroughly test SSL pinning in their specific environment.\n- **Compliance**: Ensure your use of SSL pinning complies with all applicable laws, regulations, and platform policies.\n- **No Guarantee Against All Attacks**: While SSL pinning can mitigate certain attacks, it cannot protect against all security threats.\n- **Potential Impact on Functionality**: SSL pinning may interfere with development tools, debugging, or network inspection. Ensure you have a way to disable pinning during development and testing.\n\nBy using this SSL pinning code, you acknowledge reading this disclaimer and agreeing to its terms. Seek professional security advice for critical implementations and follow best practices for mobile and network security.\n\n## Notes\n\n- **On Fingerprints**: Fingerprints can be expressed in different formats (e.g., with or without colons). This plugin normalizes fingerprints to lowercase and removes colons for comparison. While uppercase is preferred, colons are optional. Use the format recommended in the documentation.\n- **On Subject**: The \"subject\" represents the hostname of the certificate. On Android, the plugin returns the certificate hostname; on iOS, it returns the provided URL.\n- **On Issuer**: The \"issuer\" represents the certificate authority. Formats differ between iOS and Android, and results may not match exactly.\n\n[![HitCount](https://hits.dwyl.com/mchl18/capacitor-ssl-pinning.svg)](https://hits.dwyl.com/mchl18/capacitor-ssl-pinning)  \n[![npm](https://nodei.co/npm/capacitor-ssl-pinning.png?downloads=true&downloadRank=true&stars=true)](https://www.npmjs.com/package/capacitor-ssl-pinning)\n\n## Installation\n\nUsing npm:\n\n```bash\nnpm install capacitor-ssl-pinning\n```\n\nUsing yarn:\n\n```bash\nnpm install capacitor-ssl-pinning\n```\n\nSync native files:\n\n```bash\nnpx cap sync\n```\n\n## Obtain Fingerprint\n\n### Via Website\n\n1. Obtain the certificate using a browser. See: [How to get a certificate](https://superuser.com/questions/1833063/how-to-get-a-certificate-out-of-chrome-now-the-padlock-has-gone).\n2. Open the certificate in a text editor and copy the public key to the clipboard.\n3. Visit [SAML Tool](https://www.samltool.com/fingerprint.php).\n4. Paste the public key into the text area.\n5. Select `SHA-256` as the algorithm.\n6. Copy the fingerprint (with colons).\n\n### Via Command Line\n\n1. Obtain the certificate using a browser. See: [How to get a certificate](https://superuser.com/questions/1833063/how-to-get-a-certificate-out-of-chrome-now-the-padlock-has-gone).\n2. Generate the fingerprint:\n\n```bash\nopenssl x509 -noout -fingerprint -sha256 -inform pem -in /path/to/cert.pem\n```\n\n### Via Built-in CLI Tool\n\nThis package includes a CLI tool that can fetch and display SSL certificate information for any domain.\n\nInstall globally:\n```bash\nnpm install -g capacitor-ssl-pinning\n# or\nyarn global add capacitor-ssl-pinning\n```\n\nOr use it in your project:\n```bash\nnpm install capacitor-ssl-pinning\n# or\nyarn add capacitor-ssl-pinning\n```\n\nUsage:\n```bash\n# Using npx command\nnpx ssl-fingerprint example.com\n\n# Multiple domains\nnpx ssl-fingerprint example.com example.org example.net\n\n# Or if installed globally\nssl-fingerprint example.com\n\n# Save output to a file\nssl-fingerprint example.com --out certs.json\n\n# Save multiple domains to file\nssl-fingerprint example.com example.org example.net --out certs.json\n\n# Save just the fingerprints in TypeScript format\nssl-fingerprint example.com --out fingerprints.ts --format fingerprints\n```\n\nYou can also add it as a script in your package.json:\n```json\n{\n  \"scripts\": {\n    \"generate-fingerprint\": \"ssl-fingerprint example.com\",\n    \"generate-all-fingerprints\": \"ssl-fingerprint example.com example.org example.net\"\n  }\n}\n```\n\nThen run it with:\n```bash\nnpm run generate-fingerprint\n# or for multiple domains\nnpm run generate-all-fingerprints\n```\n\nThe tool will display:\n- Domain name\n- Certificate subject\n- Certificate issuer\n- Valid from date\n- Valid to date\n- SHA256 fingerprint\n\nExample output:\n```json\n[\n  {\n    \"domain\": \"example.com\",\n    \"subject\": {\n      \"C\": \"US\",\n      \"ST\": \"California\",\n      \"L\": \"Los Angeles\",\n      \"O\": \"Internet Corporation for Assigned Names and Numbers\",\n      \"CN\": \"www.example.org\"\n    },\n    \"issuer\": {\n      \"C\": \"US\",\n    - Capacitor 7.x (latest tested: 7.4.3)\n      \"CN\": \"DigiCert Global G2 TLS RSA SHA256 2020 CA1\"\n    },\n    \"validFrom\": \"Jan 30 00:00:00 2024 GMT\",\n    \"validTo\": \"Mar  1 23:59:59 2025 GMT\",\n    \"fingerprint\": \"EF:BA:26:D8:C1:CE:37:79:AC:77:63:0A:90:F8:21:63:A3:D6:89:2E:D6:AF:EE:40:86:72:CF:19:EB:A7:A3:62\"\n  }\n]\n```\n\nWhen using `--format fingerprints`, the output will be in TypeScript format:\n```typescript\nexport const fingerprints = [\n  \"EF:BA:26:D8:C1:CE:37:79:AC:77:63:0A:90:F8:21:63:A3:D6:89:2E:D6:AF:EE:40:86:72:CF:19:EB:A7:A3:62\"\n];\n```\n\n## API\n\n### `checkCertificate`\n\n```typescript\n/**\n * Checks the SSL certificate for a given domain or IP address.\n *\n * @param options - Configuration options that determine the behavior of the SSL check.\n * These options may include properties such as the target domain, port,\n * and other settings required for certificate validation.\n *\n * @returns A promise that resolves to an SSLCertificateCheckerResult object,\n * which contains information about the certificate, including its validity,\n * expiration date, and potential issues.\n */\ncheckCertificate(options: SSLCertificateCheckerOptions) => Promise<SSLCertificateCheckerResult>\n```\n\n#### SSLCertificateCheckerResult\n\n```typescript\nexport type SSLCertificateCheckerResult = {\n  /**\n   * The subject of the certificate, representing the entity the certificate is issued to.\n   * @platform Android\n   * Example: \"CN=example.com, O=Example Corp, C=US\"\n   */\n  subject?: string;\n  /**\n   * The issuer of the certificate, indicating the certificate authority that issued it.\n   * Results may vary slightly between iOS and Android platforms.\n   * Example: \"CN=Example CA, O=Example Corp, C=US\"\n   */\n  issuer?: string;\n  /**\n   * The start date from which the certificate is valid.\n   * Format: ISO 8601 string or platform-specific date representation.\n   * @platform Android\n   * Example: \"2023-01-01T00:00:00Z\"\n   */\n  validFrom?: string;\n  /**\n   * The end date until which the certificate is valid.\n   * Format: ISO 8601 string or platform-specific date representation.\n   * @platform Android\n   * Example: \"2024-01-01T00:00:00Z\"\n   */\n  validTo?: string;\n  /**\n   * The fingerprint that is expected to match the certificate's actual fingerprint.\n   * This is typically provided in the SSLCertificateCheckerOptions.\n   */\n  expectedFingerprint?: string;\n  /**\n   * The actual fingerprint of the SSL certificate retrieved from the server.\n   * Example: \"50:4B:A1:B5:48:96:71:F3:9F:87:7E:0A:09:FD:3E:1B:C0:4F:AA:9F:FC:83:3E:A9:3A:00:78:88:F8:BA:60:26\"\n   */\n  actualFingerprint?: string;\n  /**\n   * Indicates whether the actual fingerprint matches the expected fingerprint.\n   * `true` if they match, `false` otherwise.\n   */\n  fingerprintMatched?: boolean;\n  /**\n   * A descriptive error message if an issue occurred during the SSL certificate check.\n   * Example: \"Unable to retrieve certificate from the server.\"\n   */\n  error?: string;\n};\n```\n\n#### SSLCertificateCheckerOptions\n\n```typescript\nexport type SSLCertificateCheckerOptions = {\n  /**\n   * The URL of the server whose SSL certificate needs to be checked.\n   * Example: \"https://example.com\"\n   */\n  url: string;\n  /**\n   * The expected fingerprint of the SSL certificate to validate against.\n   * This is typically a hash string such as SHA-256.\n   */\n  fingerprint: string;\n};\n```\n\n## Usage\n\nExample:\n\n```typescript\nSSLCertificateChecker.checkCertificate({\n  url: 'https://example.com', // Replace with your server URL\n  fingerprint:\n    '50:4B:A1:B5:48:96:71:F3:9F:87:7E:0A:09:FD:3E:1B:C0:4F:AA:9F:FC:83:3E:A9:3A:00:78:88:F8:BA:60:26', // Replace with your server fingerprint\n}).then(res => {\n  console.log(res.fingerprintMatched);\n});\n```\n\n## Example Interceptor\n\n```typescript\n// src/app/interceptors/ssl-pinning.interceptor.ts\n\nimport { Injectable } from '@angular/core';\nimport {\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpInterceptor,\n} from '@angular/common/http';\nimport { from, Observable, switchMap, throwError } from 'rxjs';\nimport { SSLCertificateChecker } from 'capacitor-ssl-pinning';\nimport { environment } from 'src/environments/environment';\nimport { Capacitor } from '@capacitor/core';\n\n@Injectable()\nexport class SslPinningInterceptor implements HttpInterceptor {\n  intercept(\n    request: HttpRequest<any>,\n    next: HttpHandler\n  ): Observable<HttpEvent<any>> {\n    // Only available on Android/iOS\n    if (Capacitor.getPlatform() === 'web') {\n      return next.handle(request);\n    }\n    return from(\n      SSLCertificateChecker.checkCertificate({\n        url: environment.baseUrlBase,\n        fingerprint: environment.fingerprint,\n      })\n    ).pipe(\n      switchMap((res) => {\n        if (res.fingerprintMatched) {\n          return next.handle(request);\n        }\n        return throwError(() => new Error('Fingerprint not matched'));\n      })\n    );\n  }\n}\n```","readmeFilename":"README.md"}