{"_id":"@odion-cloud/capacitor-volume-control","_rev":"16-47b0ec200b5a088500f471158f507a48","name":"@odion-cloud/capacitor-volume-control","dist-tags":{"latest":"2.0.3"},"versions":{"1.0.0":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.0","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.0","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"0bc5d908089abd9aa8efa1319e2675f88324ff26","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.0.tgz","fileCount":19,"integrity":"sha512-3nViFG5P4MZmZqEsKh8oh6SNnIFIrmNhoXtkCQGffv9Vq2N4Y1eFviF+E4N7Uy+Csm9ELp9xmup+CI1w0Hso/w==","signatures":[{"sig":"MEQCIA2JQngeI9LbTZXfTVQDy0ihivxkJbjQqoQZ4uattreYAiBibKqhfYO7WfUCkrA1LunJnpulryb9UiZD7RJoP3IIeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57271},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"1ab4350dbca96de98ddde325c5881af1c1795d6d","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"11.4.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^27.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^27.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.0_1751975875114_0.33625573624212945","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.1","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.1","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"3c76cfc62ff5060d6f8bbd836f87d5507c9c2c48","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.1.tgz","fileCount":19,"integrity":"sha512-qIHqHM9az11jZ2HvXyPWsdpLGx9sgp4YIn2BeY0UOBRCb3XFEEz/xjzanszmaVmZk1O/Z8UIsUBTh+VD0S4tRQ==","signatures":[{"sig":"MEYCIQDIvSw/bsjCtYon6/sKWh31QtI/MAc1J8VtVSwy9uGdsQIhAJ7TnNL/PtAzAiNp0HroWaIQkkFCAeXwAeaYLb0cuF+q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57271},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"f6d11c72fa4c447766dcb232a46e3539a191b8e9","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.1_1751977433778_0.12347675094330524","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.4","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.4","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"f6692c776b8ef152258c99f80e43908cc7e36c15","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.4.tgz","fileCount":19,"integrity":"sha512-InjyDCq5evAF0bg67VwkxHUKZqBCOElNJoK3s9oSKjmzyfUn66DZ6zihXCHG0WWRMWZHoyqTmwJXdRtRmWsG8Q==","signatures":[{"sig":"MEUCIHfBY7/rRUxBX7GL6XerQ+RVwSdmKxX2lB2q0FUpRIBpAiEA6Cax+JHELuiCvwnN99epCml//VzbjtIoBKL8pjAqZDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57315},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"7563cb265a1e53991930046968f8156cd79e27cb","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.4_1751992472796_0.1046314068961558","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.5","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.5","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"8e3d9aac365a8e1a6f427822ef9cda46a7667788","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.5.tgz","fileCount":19,"integrity":"sha512-c4NsoMEjPS08/1Hr4fiHflRBnTgfejvPcsHLog8r3eEt640Q7CkxktCgtLIvuLZv21m53Mh3TdDL+6kW5ZU1eg==","signatures":[{"sig":"MEYCIQDzHhCCr0PeL5HrvfNhNeZfddTA4EKWo8x4zfXaeGtC0QIhAMtHFaQ7oQrIQdmxzHs9Y1jqGzbf+rS4uT58tvqFyxuD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72275},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"fa14bd416ed6c94769be40f6402961d8092666f7","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.5_1752049410096_0.33041427101505416","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.6","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.6","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"d436d6ba263d2e5f00e22ee50297e43e93cbd008","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.6.tgz","fileCount":19,"integrity":"sha512-//4zVY01kwarJFMHJpRCjLPHSftLrHA0Oo746i8MBSXkxkABnu08Q9S62nhfYnK/sQxmlVtgwwS7sGIp7jBjGQ==","signatures":[{"sig":"MEUCIBD4o7fow2VM4gIex/5L5oRHkVc7E6HXzjQ09VSPGYpqAiEAzbugopaoAs4TZXSoEnJhJNgF6+v+nsJYmnf1l2odbSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72412},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"ecca4a84bf1847b63687c1da3e2e062d6b0faedf","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.6_1752052386329_0.6842435093569805","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.7","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.7","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"4a10cd74a78886bf3996909383a9027d47c06200","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.7.tgz","fileCount":19,"integrity":"sha512-yvrIu3GoVSAELoUaWhS2s/HBTjGDKthYAxSTEToLCyoKM6wSbimRc9KbW/ciDSFgwwXyQPFd5VDJVffsUnvXaA==","signatures":[{"sig":"MEQCID0awDtgfzuWmA18v6RwLCV1ZpY7FHvqM11Zd9vFdlPKAiBXK1X9I7WA9yCGk1elH0X+8wUhx8NU8BJacnmoCB+L+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78282},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"e5b8938f383e5ed03c8883a52325e20248062eff","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.7_1752057630440_0.3773562487952218","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.8","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.8","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"b8958fdee49b97eba77f52bce56ab0621e8eb8e9","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.8.tgz","fileCount":19,"integrity":"sha512-fpdpMe9nXqg/0GBLPg2E3Qc5oNdFBMXGEaeqlC1XAk/pVMYpMl2aby0I+tS3xVEWRaKGdMlPXHl5KAItBc4z0g==","signatures":[{"sig":"MEUCIAwKgYWh3xhOvEGVBdO3txEmlB+LFpzIl6LeZwgbpzapAiEAhRpt98b4UPbE3WQDQbGy2DpTOr4Esv9wQTqS3xvMiWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70076},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"8dbf6e25c433fd6b50c197f6bd68dcd3567ecadc","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.8_1752069150211_0.7493031196755946","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.9","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.9","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"73c94a93f810eedd6fc03430a44a74e1e5cac6fe","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.9.tgz","fileCount":19,"integrity":"sha512-G4iWrZB5dBNE4RwX9HIqi7y51axyZKqMJBwqkzg57HxMvES4EeUE10HWYXNTC1P8j9jRj1BQ70kr2iL822rCBQ==","signatures":[{"sig":"MEUCIQC7ZqS9/GdfOnnm+KmBQb72QxBS2VnKUZaKiFwUMMPvyQIgJ0YQge5+8YOWHb+I9uSYkvX7vi6GAJfUP5jprM8WPwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68984},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"12d1e413d7f521aa57047b0623e467b40abd00b2","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.9_1752087466607_0.5345961137876818","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.10","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.10","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"a3f8dacacb6514d8b43b20e27944337661a5c4cd","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.10.tgz","fileCount":19,"integrity":"sha512-FcLlgsfkuhilx+4ShJEcuu2sWBRipf9FcObCcreVL5W9fkoHvb+OgRyWf1p0uTD+LSTdoHHNlUbWTUmEZ07NHQ==","signatures":[{"sig":"MEUCIBQ9kLqJTiiMLqXxjv0V3/5+sbh0OeELLJBObm1SVtddAiEAhSz917qEibqD22wrfHgQ90WJxbYg/jRwKBLh3rvGnQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68714},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"7ccb65241abf7fa276bb2b47e47289a9d2239905","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","actor":{"name":"odion-cloud","type":"user","email":"liwizyk@gmail.com"},"email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.10_1752088629821_0.7910227808533334","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.11","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.11","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"bf2f135ebdd36e7f49a4cc431df9c9c6fefe381d","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.11.tgz","fileCount":19,"integrity":"sha512-uvKTYZCXv5yoHyCcy5gHUO/FkfkBl13rSGgAxw5v8+1KTlyFmKAtE4us7gbmJDuRziYYdKGvSLIAH7Vw+/dG2A==","signatures":[{"sig":"MEYCIQDzt1uktYMbATpI3Xez78Zb+VhKPbe8qRLFlDmuF40mGgIhAIzD6PJCremf8mBGVKtqBZOO69cE6uPEiwy4DKfeXGMb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71149},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"b802e4964cba28511983685b21fc149ab27e3162","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.11_1752237568141_0.6440932962202541","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.12","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.12","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"05f9d5f0fd95ac0dc0d32a31f48e3998301260ac","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.12.tgz","fileCount":19,"integrity":"sha512-5jRpsPx3Wu2aUdx4KYjHQE4fdey+B2LkxAPJfqUa1gqhYl9txLnHIv2WvWVNr6raRtbQCR5inzXiirMe6uBf9w==","signatures":[{"sig":"MEQCIB1aFpr3cBXAIp46IgvP+slqMbKtNDTufk7vS1wMEGsJAiBCWSMMQ+Wsn2kuBuN1+jfKlPQCndIeXy29XLqh8Z3qJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69864},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"3a84351f3fd2503223296b8d089057b686fefadf","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.12_1752333821366_0.015554526153393367","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@odion-cloud/capacitor-volume-control","version":"1.0.13","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@1.0.13","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"816e8cca747d38805226e92b046488a83c64dddc","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-1.0.13.tgz","fileCount":19,"integrity":"sha512-IaZWLSPunmF6IwLDPx5a9tubVtXtok6ZS9R9b0YyIJiexn62t5rEzLD9pM7Udp6ARbyXAOWgn3+8ohB5sokQdw==","signatures":[{"sig":"MEUCIFDe3TQVP04JiFwTSPlhh0GO0fxDvjLHDXNvmlEwzhoJAiEA87tUov7iT5usMoGlbiMVljjOf9M5CMkc1iqpXZf5+z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69100},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"1aeff53503c1fec143fbe2c57e0d2c51c7f013cf","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@capacitor/core":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_1.0.13_1752335622365_0.32068042573881694","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@odion-cloud/capacitor-volume-control","version":"2.0.0","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@2.0.0","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"5c26e7330a13e971fbd66973a647aeedbdf1b40d","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-2.0.0.tgz","fileCount":19,"integrity":"sha512-ihC6YQuFp6AWStNllZlaUfV5EkFBVEiBUtW1yLizsZBzHRJvQYjUGmCI08T9kHrtPrJS3H1m1beB+2tMt1+3uA==","signatures":[{"sig":"MEQCICwTAeNyXyEsPiz0s0EJvi7ZbqE+LvODTKvr9n5ZOwd+AiB2+8b5OHIrYn4Vfbsgcv40+qAiArviJNaWYgpnuTX0hA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73425},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"06b26de4c289a269c3f7381d4808f718149bd909","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"11.5.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"22.14.0","dependencies":{"http-server":"^14.1.1","@capacitor/core":"^5.0.0","jest-environment-jsdom":"^30.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_2.0.0_1762463360843_0.9826033113703103","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@odion-cloud/capacitor-volume-control","version":"2.0.1","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@2.0.1","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"4c7ae3b1d4e96951479445b9c40c0cbe3193e071","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-2.0.1.tgz","fileCount":17,"integrity":"sha512-HG1Zrymezz+aqY7qVFF2YLmcv+Sb7EYBMUT5XKLxYffT3yaEHnJXrgtG1j/TlNCEhigdVE2b77v4RQMUS1mA5A==","signatures":[{"sig":"MEUCIGCd2dboqvuzuaD0eBTzF8TvPM4loRR0k+N4LiuS1KIaAiEAuMQzl8iqfQkiQousJOnl+Kj8B1pOn/ErQqpaa8Zj1ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81218},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"82654e100a58ee858581457b05dfb9f208a5fcd4","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@capacitor-community/volume-buttons":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","http-server":"^14.1.1","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","jest-environment-jsdom":"^30.2.0","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"@capacitor/core":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_2.0.1_1762628974839_0.7137077587179361","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@odion-cloud/capacitor-volume-control","version":"2.0.2","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","_id":"@odion-cloud/capacitor-volume-control@2.0.2","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"dist":{"shasum":"daf84c5a2c4aa3edb0969b981d5f0cf1be018293","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-2.0.2.tgz","fileCount":17,"integrity":"sha512-8HQjnpFcg/s3KdTviTx7cwX6EWaTVRF0QYwQmzxOvswUfPrFGfJY3CM36h87cisnzNBa9ZhmA4pQGAPT/tSkjQ==","signatures":[{"sig":"MEUCIQCXhenO41muh0xYaIW9x5eBHu9MALfb57/AlBxEfU9+WQIgUegYYAT+3o7w+MP+9xk+5cx4Ppaoquh9NGTzvAisT2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74541},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"8ceba5bbe7d86debd1e9dec25b853a3eafe1b021","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","test":"jest","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api VolumeControlPlugin --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","release":"node release-helper.js","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","verify:web":"npm run build","release:major":"node release-helper.js major","release:minor":"node release-helper.js minor","release:patch":"node release-helper.js patch","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"odion-cloud","email":"liwizyk@gmail.com"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/odion-cloud/capacitor-volume-control.git","type":"git"},"_npmVersion":"10.8.2","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@capacitor-community/volume-buttons":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^7.11.0","rimraf":"^3.0.2","rollup":"^2.32.0","ts-jest":"^29.0.0","prettier":"~2.3.0","swiftlint":"^1.0.1","typescript":"^5.8.3","@types/jest":"^29.0.0","http-server":"^14.1.1","@capacitor/cli":"^5.0.0","@capacitor/ios":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/android":"^5.0.0","@ionic/eslint-config":"^0.3.0","prettier-plugin-java":"~1.0.2","@ionic/prettier-config":"^1.0.1","jest-environment-jsdom":"^30.2.0","@ionic/swiftlint-config":"^1.1.2","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"@capacitor/core":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-volume-control_2.0.2_1770737658040_0.533471418946206","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@odion-cloud/capacitor-volume-control","version":"2.0.3","description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","main":"dist/plugin.cjs.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"scripts":{"verify":"npm run verify:ios && npm run verify:android && npm run verify:web","verify:android":"cd android && ./gradlew clean build test && cd ..","verify:ios":"cd ios && xcodebuild -scheme Plugin -destination generic/platform=iOS","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 VolumeControlPlugin --output-readme README.md --output-json dist/docs.json","build":"npm run clean && tsc && rollup -c rollup.config.js","clean":"rimraf ./dist","watch":"tsc --watch","prepublishOnly":"npm run build","test":"jest","release:patch":"node release-helper.js patch","release:minor":"node release-helper.js minor","release:major":"node release-helper.js major","release":"node release-helper.js"},"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","dependencies":{"@capacitor-community/volume-buttons":"^1.0.2"},"peerDependencies":{"@capacitor/core":">=5.0.0"},"devDependencies":{"@capacitor/android":"^5.0.0","@capacitor/cli":"^5.0.0","@capacitor/docgen":"^0.0.18","@capacitor/ios":"^5.0.0","@ionic/eslint-config":"^0.3.0","@ionic/prettier-config":"^1.0.1","@ionic/swiftlint-config":"^1.1.2","@rollup/plugin-node-resolve":"^16.0.1","@types/jest":"^29.0.0","@typescript-eslint/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"^5.0.0","eslint":"^7.11.0","http-server":"^14.1.1","jest":"^29.0.0","jest-environment-jsdom":"^30.2.0","prettier":"~2.3.0","prettier-plugin-java":"~1.0.2","rimraf":"^3.0.2","rollup":"^2.32.0","swiftlint":"^1.0.1","ts-jest":"^29.0.0","typescript":"^5.8.3"},"repository":{"type":"git","url":"git+https://github.com/odion-cloud/capacitor-volume-control.git"},"bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"_id":"@odion-cloud/capacitor-volume-control@2.0.3","gitHead":"60bef4111fa0a1f66c65a33f7332d020e1b58264","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Sg5+8k7b3dLGWnD8Bv+ZDRDUskmbr/O1ktXZDGDZszUNkHXPFjX4U6LQpr16XSjC53+bcy6IRo3rRd00CF6XBA==","shasum":"48dd836f85ea1c1621a629ba8b8413cc46d8439f","tarball":"https://registry.npmjs.org/@odion-cloud/capacitor-volume-control/-/capacitor-volume-control-2.0.3.tgz","fileCount":17,"unpackedSize":74986,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAQoRYyT4zTIapT+x9R0fSQJ8NH8qzW7tBcB6/HavdkbAiBAeU6ttlnGG+7ptEXQi9Ule31hQHnS3zlzvkYhvYT9aw=="}]},"_npmUser":{"name":"odion-cloud","email":"liwizyk@gmail.com"},"directories":{},"maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-volume-control_2.0.3_1770738682658_0.6297863356428808"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-08T11:57:55.061Z","modified":"2026-02-10T15:51:22.911Z","1.0.0":"2025-07-08T11:57:55.360Z","1.0.1":"2025-07-08T12:23:54.003Z","1.0.4":"2025-07-08T16:34:32.984Z","1.0.5":"2025-07-09T08:23:30.303Z","1.0.6":"2025-07-09T09:13:06.525Z","1.0.7":"2025-07-09T10:40:30.618Z","1.0.8":"2025-07-09T13:52:30.386Z","1.0.9":"2025-07-09T18:57:46.821Z","1.0.10":"2025-07-09T19:17:09.993Z","1.0.11":"2025-07-11T12:39:28.405Z","1.0.12":"2025-07-12T15:23:41.549Z","1.0.13":"2025-07-12T15:53:42.551Z","2.0.0":"2025-11-06T21:09:21.044Z","2.0.1":"2025-11-08T19:09:35.014Z","2.0.2":"2026-02-10T15:34:18.179Z","2.0.3":"2026-02-10T15:51:22.793Z"},"bugs":{"url":"https://github.com/odion-cloud/capacitor-volume-control/issues"},"author":{"name":"Kelly Igiogbe","email":"liwizyk@gmail.com"},"license":"MIT","homepage":"https://github.com/odion-cloud/capacitor-volume-control#readme","keywords":["capacitor","plugin","volume","audio","android","ios","native"],"repository":{"type":"git","url":"git+https://github.com/odion-cloud/capacitor-volume-control.git"},"description":"Capacitor plugin for advanced volume control with native Android and iOS implementations","maintainers":[{"name":"odion-cloud","email":"liwizyk@gmail.com"}],"readme":"# Capacitor Volume Control Plugin\n\nA Capacitor plugin for advanced volume control with native Android and iOS implementations. This plugin provides comprehensive volume management capabilities including volume level control, volume change monitoring, and platform-specific features.\n\n**Published on npm** · [@odion-cloud/capacitor-volume-control](https://www.npmjs.com/package/@odion-cloud/capacitor-volume-control) · **Supports Capacitor 5, 6, 7, and 8**\n\n## Features\n\n- 🔊 **Volume Level Control**: Get and set volume levels for different audio streams\n- 👂 **Volume Change Monitoring**: Watch for volume changes in real-time\n- 📱 **Platform-Specific Features**: \n  - Android: Suppress volume indicator, control different volume types\n  - iOS: Disable system volume handler, voice call volume control\n- 🎯 **Type Safety**: Full TypeScript support with comprehensive type definitions\n- 🔧 **Easy Integration**: Simple API that works seamlessly with Capacitor apps\n\n---\n\n## ⚠️ Migration Notice\n\n**v2.0+ Breaking Change:**\n- The callback parameter in `watchVolume(options, callback)` is no longer supported.\n- Use the event listener pattern `addListener('volumeButtonPressed', callback)` instead.\n- The callback receives `{ direction: 'up' | 'down' }`.\n\n---\n\n## Installation\n\n```bash\nnpm install @odion-cloud/capacitor-volume-control\nnpx cap sync\n```\n\n### ✅ No MainActivity Integration Required!\n\nThis plugin uses `@capacitor-community/volume-buttons` for hardware button detection, which means **no MainActivity code changes needed**. Just install and use!\n\n## Setup\n\n1. Install dependencies:\n```bash\nnpm install\n```\n\n2. Add the plugin:\n```bash\nnpm install @odion-cloud/capacitor-volume-control\n```\n\n3. Sync with native platforms:\n```bash\nnpx cap sync\n```\n\n## Usage Examples\n\n### Basic Volume Control\n\n```typescript\nimport { VolumeControl, VolumeType } from '@odion-cloud/capacitor-volume-control';\n\n// Get current volume\nconst volume = await VolumeControl.getVolumeLevel();\nconsole.log('Current volume:', volume.value);\n\n// Set volume to 50%\nawait VolumeControl.setVolumeLevel({ value: 0.5 });\n```\n\n### Volume Watching\n\n```typescript\n// First, add the event listener\nawait VolumeControl.addListener('volumeButtonPressed', (event) => {\n  console.log('Volume button pressed:', event.direction); // 'up' or 'down'\n});\n\n// Then start watching\nawait VolumeControl.watchVolume({\n  disableSystemVolumeHandler: true, // iOS only\n  suppressVolumeIndicator: true,    // Android only\n});\n\n// Stop watching when done\nawait VolumeControl.clearWatch();\n```\n\n### Advanced Usage\n\n```typescript\nimport { VolumeControl, VolumeType } from '@odion-cloud/capacitor-volume-control';\n\nclass VolumeService {\n  private isWatching = false;\n\n  async initializeVolume() {\n    try {\n      // Get current music volume\n      const musicVolume = await VolumeControl.getVolumeLevel({\n        type: VolumeType.MUSIC\n      });\n      \n      console.log('Music volume:', musicVolume.value);\n      \n      // Set system volume\n      await VolumeControl.setVolumeLevel({\n        value: 0.8,\n        type: VolumeType.SYSTEM\n      });\n      \n    } catch (error) {\n      console.error('Volume initialization error:', error);\n    }\n  }\n\n  async startWatching() {\n    if (this.isWatching) return;\n\n    try {\n      // Add listener first\n      await VolumeControl.addListener('volumeButtonPressed', this.handleVolumeChange.bind(this));\n      \n      // Then start watching\n      await VolumeControl.watchVolume({\n        disableSystemVolumeHandler: true,\n        suppressVolumeIndicator: true\n      });\n      \n      this.isWatching = true;\n      console.log('Started volume watching');\n      \n    } catch (error) {\n      console.error('Volume watching error:', error);\n    }\n  }\n\n  async stopWatching() {\n    try {\n      await VolumeControl.clearWatch();\n      this.isWatching = false;\n      console.log('Stopped volume watching');\n      \n    } catch (error) {\n      console.error('Stop watching error:', error);\n    }\n  }\n\n  private handleVolumeChange(event: { direction: 'up' | 'down' }) {\n    console.log(`Volume ${event.direction}`);\n    // Custom volume handling logic\n  }\n\n  async getWatchStatus() {\n    const status = await VolumeControl.isWatching();\n    return status.value;\n  }\n}\n\n// Usage\nconst volumeService = new VolumeService();\n\n// Initialize\nawait volumeService.initializeVolume();\n\n// Start watching\nawait volumeService.startWatching();\n\n// Check status\nconst isWatching = await volumeService.getWatchStatus();\nconsole.log('Is watching:', isWatching);\n\n// Stop watching\nawait volumeService.stopWatching();\n```\n\n## Platform-Specific Examples\n\n### Android Specific\n\n```typescript\n// Add listener\nawait VolumeControl.addListener('volumeButtonPressed', (event) => {\n  console.log('Volume button pressed:', event.direction);\n});\n\n// Suppress volume indicator on Android\nawait VolumeControl.watchVolume({\n  suppressVolumeIndicator: true\n});\n\n// Control different volume types\nawait VolumeControl.setVolumeLevel({\n  value: 0.7,\n  type: VolumeType.NOTIFICATION\n});\n```\n\n### iOS Specific\n\n```typescript\n// Add listener\nawait VolumeControl.addListener('volumeButtonPressed', (event) => {\n  console.log('Volume button pressed:', event.direction);\n});\n\n// Disable system volume handler on iOS\nawait VolumeControl.watchVolume({\n  disableSystemVolumeHandler: true\n});\n\n// Control voice call volume\nawait VolumeControl.setVolumeLevel({\n  value: 0.9,\n  type: VolumeType.VOICE_CALL\n});\n```\n\n## Error Handling\n\n```typescript\ntry {\n  await VolumeControl.setVolumeLevel({ value: 1.5 });\n} catch (error) {\n  if (error.message.includes('between 0.0 and 1.0')) {\n    console.error('Invalid volume value');\n  } else {\n    console.error('Unexpected error:', error);\n  }\n}\n\ntry {\n  await VolumeControl.watchVolume({});\n  await VolumeControl.watchVolume({}); // This will fail\n} catch (error) {\n  if (error.message.includes('already been watched')) {\n    console.error('Volume watching is already active');\n  }\n}\n```\n\n## React Hook Example\n\n```typescript\nimport { useEffect, useState } from 'react';\nimport { VolumeControl } from '@odion-cloud/capacitor-volume-control';\n\nexport function useVolumeControl() {\n  const [volume, setVolume] = useState(0.5);\n  const [isWatching, setIsWatching] = useState(false);\n\n  useEffect(() => {\n    // Get initial volume\n    VolumeControl.getVolumeLevel().then(result => {\n      setVolume(result.value);\n    });\n\n    // Cleanup on unmount\n    return () => {\n      VolumeControl.clearWatch();\n    };\n  }, []);\n\n  const startWatching = async () => {\n    if (isWatching) return;\n\n    try {\n      // Add listener first\n      await VolumeControl.addListener('volumeButtonPressed', (event) => {\n        console.log('Volume button pressed:', event.direction);\n        // You may want to update UI or state here\n      });\n      \n      // Then start watching\n      await VolumeControl.watchVolume({\n        disableSystemVolumeHandler: true,\n        suppressVolumeIndicator: true\n      });\n      \n      setIsWatching(true);\n    } catch (error) {\n      console.error('Failed to start watching:', error);\n    }\n  };\n\n  const stopWatching = async () => {\n    try {\n      await VolumeControl.clearWatch();\n      setIsWatching(false);\n    } catch (error) {\n      console.error('Failed to stop watching:', error);\n    }\n  };\n\n  const setVolumeLevel = async (value: number) => {\n    try {\n      await VolumeControl.setVolumeLevel({ value });\n      setVolume(value);\n    } catch (error) {\n      console.error('Failed to set volume:', error);\n    }\n  };\n\n  return {\n    volume,\n    isWatching,\n    startWatching,\n    stopWatching,\n    setVolumeLevel\n  };\n}\n```\n\n## Vue Composition API Example\n\n```typescript\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport { VolumeControl } from '@odion-cloud/capacitor-volume-control';\n\nexport function useVolumeControl() {\n  const volume = ref(0.5);\n  const isWatching = ref(false);\n\n  onMounted(async () => {\n    // Get initial volume\n    try {\n      const result = await VolumeControl.getVolumeLevel();\n      volume.value = result.value;\n    } catch (error) {\n      console.error('Failed to get initial volume:', error);\n    }\n  });\n\n  onUnmounted(async () => {\n    await stopWatching();\n  });\n\n  const startWatching = async () => {\n    if (isWatching.value) return;\n\n    try {\n      // Add listener first\n      await VolumeControl.addListener('volumeButtonPressed', (event) => {\n        console.log('Volume button pressed:', event.direction);\n      });\n      \n      // Then start watching\n      await VolumeControl.watchVolume({\n        disableSystemVolumeHandler: true,\n        suppressVolumeIndicator: true\n      });\n      \n      isWatching.value = true;\n    } catch (error) {\n      console.error('Failed to start watching:', error);\n    }\n  };\n\n  const stopWatching = async () => {\n    try {\n      await VolumeControl.clearWatch();\n      isWatching.value = false;\n    } catch (error) {\n      console.error('Failed to stop watching:', error);\n    }\n  };\n\n  const setVolumeLevel = async (value: number) => {\n    try {\n      await VolumeControl.setVolumeLevel({ value });\n      volume.value = value;\n    } catch (error) {\n      console.error('Failed to set volume:', error);\n    }\n  };\n\n  return {\n    volume,\n    isWatching,\n    startWatching,\n    stopWatching,\n    setVolumeLevel\n  };\n}\n```\n\n## Angular Service Example\n\n```typescript\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { VolumeControl } from '@odion-cloud/capacitor-volume-control';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class VolumeService {\n  private volumeSubject = new BehaviorSubject<number>(0.5);\n  private isWatchingSubject = new BehaviorSubject<boolean>(false);\n\n  public volume$ = this.volumeSubject.asObservable();\n  public isWatching$ = this.isWatchingSubject.asObservable();\n\n  constructor() {\n    this.initializeVolume();\n  }\n\n  private async initializeVolume() {\n    try {\n      const result = await VolumeControl.getVolumeLevel();\n      this.volumeSubject.next(result.value);\n    } catch (error) {\n      console.error('Failed to get initial volume:', error);\n    }\n  }\n\n  async startWatching(): Promise<void> {\n    if (this.isWatchingSubject.value) return;\n\n    try {\n      // Add listener first\n      await VolumeControl.addListener('volumeButtonPressed', (event) => {\n        console.log('Volume button pressed:', event.direction);\n        // You may want to update with actual logic\n      });\n      \n      // Then start watching\n      await VolumeControl.watchVolume({\n        disableSystemVolumeHandler: true,\n        suppressVolumeIndicator: true\n      });\n      \n      this.isWatchingSubject.next(true);\n    } catch (error) {\n      console.error('Failed to start watching:', error);\n      throw error;\n    }\n  }\n\n  async stopWatching(): Promise<void> {\n    try {\n      await VolumeControl.clearWatch();\n      this.isWatchingSubject.next(false);\n    } catch (error) {\n      console.error('Failed to stop watching:', error);\n      throw error;\n    }\n  }\n\n  async setVolumeLevel(value: number): Promise<void> {\n    try {\n      await VolumeControl.setVolumeLevel({ value });\n      this.volumeSubject.next(value);\n    } catch (error) {\n      console.error('Failed to set volume:', error);\n      throw error;\n    }\n  }\n}\n```\n\n## Testing\n\nRun the example:\n\n```bash\nnpm start\n```\n\nBuild for production:\n\n```bash\nnpm run build\n```\n\nTest on device:\n\n```bash\nnpx cap run android\nnpx cap run ios\n```\n\n## Platform Support\n\n### 📦 Capacitor & npm\n\n- **Capacitor**: Compatible with Capacitor **5**, **6**, **7**, and **8**.\n- **npm**: Package is published to [npm](https://www.npmjs.com/package/@odion-cloud/capacitor-volume-control); releases are pushed to GitHub and then published to npm.\n\n### 📱 Supported Devices\n\n| Platform | Support Level | Minimum Version | Features |\n|----------|---------------|-----------------|----------|\n| **Android** | ✅ Full Support | Android 6.0+ (API 23+) | All volume types, hardware buttons, real-time monitoring |\n| **iOS** | ✅ Full Support | iOS 13.0+ | Volume control, hardware buttons, audio session management |\n| **Web** | ⚠️ Development Only | All modern browsers | Mock implementation for testing |\n\n### 🏆 Android Version Compatibility\n\n| Android Version | API Level | Support Level | Features |\n|-----------------|-----------|---------------|----------|\n| Android 14+ | API 34+ | ✅ Full | All features, visual media permissions |\n| Android 13 | API 33 | ✅ Full | Granular media permissions |\n| Android 10-12 | API 29-32 | ✅ Full | Scoped storage, external volumes |\n| Android 6-9 | API 23-28 | ✅ Full | Runtime permissions, SD card access |\n| Android 5 | API 21-22 | ⚠️ Basic | Limited external storage access |\n\n### 🎯 Volume Types Support\n\n| Volume Type | Android | iOS | Description |\n|-------------|---------|-----|-------------|\n| `VolumeType.MUSIC` | ✅ | ✅ | Music, videos, games, and other media |\n| `VolumeType.SYSTEM` | ✅ | ❌ | System sounds and notifications |\n| `VolumeType.RING` | ✅ | ❌ | Phone ringtone volume |\n| `VolumeType.NOTIFICATION` | ✅ | ❌ | Notification sounds |\n| `VolumeType.ALARM` | ✅ | ❌ | Alarm clock volume |\n| `VolumeType.VOICE_CALL` | ✅ | ✅ | Voice call volume |\n| `VolumeType.DTMF` | ✅ | ❌ | DTMF tones |\n\n## API Reference\n\n### Methods\n\n#### `getVolumeLevel(options?)`\nGet the current volume level for a specific audio stream.\n\n```typescript\ngetVolumeLevel({\n  type?: VolumeType;        // Volume type to get (default: 'music')\n}): Promise<VolumeResult>\n\n// Returns: { value: number } (0.0 to 1.0)\n```\n\n#### `setVolumeLevel(options)`\nSet the volume level for a specific audio stream.\n\n```typescript\nsetVolumeLevel({\n  value: number;            // Volume level (0.0 to 1.0)\n  type?: VolumeType;        // Volume type to set (default: 'music')\n}): Promise<VolumeResult>\n\n// Returns: { value: number } (the new volume level)\n```\n\n#### `watchVolume(options)`\nStart watching for volume button presses.\n\n```typescript\nwatchVolume({\n  disableSystemVolumeHandler?: boolean;  // iOS: disable system UI\n  suppressVolumeIndicator?: boolean;     // Android: hide volume UI\n}): Promise<void>\n```\n\n#### `addListener(eventName, callback)`\nListen for volume button press events.\n\n```typescript\naddListener(\n  'volumeButtonPressed',\n  callback: (event: { direction: 'up' | 'down' }) => void\n): Promise<PluginListenerHandle>\n\n// Event data: { direction: 'up' | 'down' }\n```\n\n#### `clearWatch()`\nStop watching for volume changes.\n\n```typescript\nclearWatch(): Promise<void>\n```\n\n#### `isWatching()`\nCheck if volume watching is currently active.\n\n```typescript\nisWatching(): Promise<{ value: boolean }>\n```\n\n### Configuration Options\n\n| Option | Platform | Description |\n|--------|----------|-------------|\n| `suppressVolumeIndicator` | Android | Hide system volume UI when changing volume |\n| `disableSystemVolumeHandler` | iOS | Disable system volume UI and intercept hardware buttons |\n| `type` | Both | Specify volume type (MUSIC, SYSTEM, RING, etc.) |\n| `value` | Both | Volume level between 0.0 and 1.0 |\n\n### Error Handling\n\nCommon errors and their solutions:\n\n| Error Message | Cause | Solution |\n|---------------|-------|----------|\n| `Volume value must be between 0.0 and 1.0` | Invalid volume level | Ensure volume is between 0.0 and 1.0 |\n| `Volume buttons has already been watched` | Multiple watch calls | Call `clearWatch()` before starting new watch |\n| `Volume slider not available` | iOS setup issue | Check audio session configuration |\n| `Failed to get volume level` | Permission or system error | Verify permissions and device compatibility |\n| `Volume observer registration failed` | Android system issue | Restart app or check system permissions |\n| `Audio session setup failed` | iOS audio session issue | Check audio session category and options |\n\n### Best Practices\n\n1. **Always clean up listeners**: Remove event listeners when components unmount with `removeAllListeners()`\n2. **Add listener before watching**: Call `addListener()` before `watchVolume()` to ensure events are captured\n3. **Handle errors gracefully**: Wrap volume operations in try-catch blocks\n4. **Check watch status**: Use `isWatching()` to avoid duplicate watch calls\n5. **Test on real devices**: Volume watching requires physical hardware\n\n## Support This Project\n\nHelp me improve this plugin and build better tools for the community!\n\n### 🤝 GitHub Sponsors\nSupport through GitHub's official sponsorship program:\n- **[GitHub Sponsors](https://github.com/sponsors/odion-cloud)** - Most transparent and developer-friendly way to support\n\n### ₿ Cryptocurrency Support\nSupport via crypto donations across multiple networks:\n\n| Network | Address |\n|---------|---------|\n| **Bitcoin (BTC)** | `bc1q2k0ftm2fgst22kzj683e8gpau3spfa23ttkg26` |\n| **USDT (Ethereum)** | `0xd6f4d8733c8C23e7bEC8Aeba37F4b3D2e93172d1` |\n| **USDT (BNB Chain)** | `0xd6f4d8733c8C23e7bEC8Aeba37F4b3D2e93172d1` |\n| **USDT (TRON/TRC20)** | `TXVy781mQ2tCuQ1BrattXWueUHp1wB5fwt` |\n| **USDT (Solana)** | `GZ8jmSUUzc4dQF7Cthj2atomvpBZWqccR81N9DL4o1Be` |\n| **USDT (TON)** | `UQAthXSNIlauj3SrzpDAU4VYxgEVV3niOSmeTPCtMBKGfEAE` |\n\n### 💻 Why Support?\nYour contributions help me:\n- Upgrade to better development hardware\n- Improve workspace and productivity\n- Dedicate more time to open source projects\n- Add new features faster\n- Provide better documentation and examples\n\n### 🤝 Other Ways to Help\n\n- **⭐ Star the Project** - Give us a star on [GitHub](https://github.com/odion-cloud/capacitor-volume-control) to show your support!\n- **🐛 Report Issues** - Help improve the plugin by reporting bugs and suggesting features\n- **📖 Improve Docs** - Contribute to documentation, examples, and tutorials\n- **💬 Spread the Word** - Share the plugin with other developers who might find it useful\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](https://github.com/odion-cloud/capacitor-volume-control/blob/main/CONTRIBUTING.md) for details.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/odion-cloud/capacitor-volume-control/blob/main/LICENSE) file for details.\n\n## Troubleshooting\n\n### Android: Kotlin Version Incompatibility\n\nIf you encounter the error:\n```\nModule was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1\n```\n\n**Solution**: Update your project's Kotlin version in `android/build.gradle`:\n\n```groovy\nbuildscript {\n    ext.kotlin_version = '1.9.10'  // Update from older version\n    dependencies {\n        classpath \"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version\"\n    }\n}\n```\n\nThis plugin requires Kotlin 1.9.0+ and Android Gradle Plugin 7.4.2+.\n\n### iOS: Pod Name Mismatch\n\nIf you're using the scoped npm package name and encounter pod installation issues:\n\n**Symptom**: Pod name in Podfile (`OdionCloudCapacitorVolumeControl`) doesn't match the podspec file name (`CapacitorVolumeControl`)\n\n**Solution**: Reference the package with an alias in `package.json`:\n\n```json\n{\n  \"dependencies\": {\n    \"capacitor-volume-control\": \"npm:@odion-cloud/capacitor-volume-control@^1.0.13\"\n  }\n}\n```\n\nThen run:\n```bash\nnpm install\nnpx cap sync ios\n```\n\n### Other Common Issues\n\n**Volume watching not working on emulators/simulators**\n- Volume watching requires physical hardware buttons\n- Test on real devices for volume button detection\n\n**Permission denied errors**\n- Ensure you've added the required permissions to your AndroidManifest.xml or Info.plist\n- Request permissions at runtime before calling volume control methods\n\n**Build errors after updating**\n- Clean your build folders:\n  ```bash\n  cd android && ./gradlew clean\n  # or\n  cd ios && rm -rf Pods && pod install\n  ```\n- Invalidate caches in Android Studio: File → Invalidate Caches → Restart\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/odion-cloud/capacitor-volume-control/blob/main/CHANGELOG.md) for a list of changes and version history.","readmeFilename":"README.md"}