{"_id":"elsapiens-background-location","_rev":"27-75981138d933f486f8dfe01b82a5144c","name":"elsapiens-background-location","dist-tags":{"latest":"0.5.0"},"versions":{"0.0.1":{"name":"elsapiens-background-location","version":"0.0.1","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.1","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"e20cd225d455164b9e363ce88cc6ee214777edca","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.1.tgz","fileCount":27,"integrity":"sha512-aXlhqLe9/Ee615+AtTS/WQxs4hhwOBtl5CVooC5YX6XBYpeMfFc38iphB69VvTAHkx4bxeY7u7qIFeKlnffPuQ==","signatures":[{"sig":"MEUCIQCeM7/6YaV5QUqmSndi+Y2b2vx5VzZHsMpqhtTYLdOUFQIgVXOhXWymMpeZKJfF24ETNexLejIMc/ZQ8ShGCR9Io8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27051},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"8143db1353fa94ad283da94a94097f70969f962f","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"23.6.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.1_1738203007499_0.44558004289035824","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"elsapiens-background-location","version":"0.0.2","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.2","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"76cd20dce84d6dfeda38c48a45c37affcb3c4592","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.2.tgz","fileCount":29,"integrity":"sha512-G1VUi47Dpx9FsYUeg0rQ2MHAILu2bZoa8yZfFhxvPfylvvNuVjZyRIVbB0KmBKvxh+26xzA0O+oGtMrc9nH/rg==","signatures":[{"sig":"MEYCIQDt4rTbbde9g0MxxyXSKdMp7NerhRCTqI4CV3x3DO+IeAIhAKbRnzCzliFxNoM5E7AK1V8Smk5po/MG0rpZTNQeEOpJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64596},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"8143db1353fa94ad283da94a94097f70969f962f","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"23.6.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.2_1738281053341_0.1999932026554161","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"elsapiens-background-location","version":"0.0.3","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.3","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"f76bfa933d395cca605f85c28b1bbd4c23ec099b","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.3.tgz","fileCount":29,"integrity":"sha512-nNqnFpZTA0wGutO3hGuzu/XjGAOn/hIh5/phQBdQZzqy5luEhWPB5DFqdWca1QfXvDe5Zrsym9RpG9NBsUlcKw==","signatures":[{"sig":"MEQCIAkWAWlw8H1pHDEXREhpXaEHez4CoVk3K2SFdXqRg8E5AiBkN1ypdEIdrv5q0wDakWVdIH6zolf5OlJ2Pw/bTgZk7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64596},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"8143db1353fa94ad283da94a94097f70969f962f","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.3_1738297214122_0.5114513599071069","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"elsapiens-background-location","version":"0.0.4","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.4","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"f4402589da249925171351d5d44f48dc1972a5f3","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.4.tgz","fileCount":29,"integrity":"sha512-5F5QPBFHWXrBbzC19sNbN8knNhru/xu4Y3ZnvjIpovoe3GArIomNUBju+5PgfNhH0Ocwf8R7VKaGDeEt4Z84Pw==","signatures":[{"sig":"MEUCIHELSemsNs+oFKm50LQUG+f0/nDnXYZQWv4kZpwb33kKAiEAgqI8OiOwc/3LtU7zQV5ocCLH7VDHKD+5DhPmxz6YCuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64246},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"8143db1353fa94ad283da94a94097f70969f962f","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.4_1738297499159_0.05430061491087823","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"elsapiens-background-location","version":"0.0.5","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.5","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"81c0f435dd995e3f49cadbe1f1fdf882426b8100","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.5.tgz","fileCount":29,"integrity":"sha512-gjt5aO1y2vjl5Kg/C6Sf9GMT44h0maZioPIFwdBjCSMMWka8B+QanZDDrcVSDj1xiVBxDHKl4zBbXGXJj/M0Jw==","signatures":[{"sig":"MEYCIQD6127/CLHZ8cGAH+Hjc6n6SfwWT+xhCjx6NlUkfz9Q0gIhAOBZgK6TLP2e5N9r5dAslA3aZtSzaDuJa7H38k2pcPaE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64246},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"8143db1353fa94ad283da94a94097f70969f962f","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.5_1738297606580_0.8250575870185715","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"elsapiens-background-location","version":"0.0.6","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.6","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"337f8691f17536a4ad9b8fc374c00ef3e7dc21f5","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.6.tgz","fileCount":30,"integrity":"sha512-9gOzOl6wlQBUVdAjW2LkudDhoGvgUdBpqIjb6CxKVnsmUaWWRfnswohDvDpwjbwrtE1wEnuWQoSvakyDCDT94w==","signatures":[{"sig":"MEYCIQDWwzdGNXunQUx2zAnZF+7ICKdu0hi9kDgQ9TCNf0035QIhANUbTqvkRboEe306noOmxyTLj6cs0SrJzJCgzFQjulMS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66490},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"d756b4567aa497d00df63df5824fe400a978e2d1","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.6_1738737075787_0.2845997324627523","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"elsapiens-background-location","version":"0.0.7","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.7","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"d50aabd6012f89869b4ab173e825c48e59042c57","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.7.tgz","fileCount":30,"integrity":"sha512-SjTLUagbd/WmSP8XAcHdJmNmLcSqgVqql8F+8AntJFgO013+CnMzVF8nqBP74j3s3VRoREuwx0xDjCrm9TfzfQ==","signatures":[{"sig":"MEQCIEere/1tfDwylvUKJ8sHwgyOJW1Qo/1q0AQALOlN0yutAiAzhdCThxNr2eR9PocbmvbBKHqtXuxkTp2GaGlZ8Ots1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66519},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"5374993d0606520a7653188d4801dfacfc5920a8","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.7_1738818702948_0.46168840249506227","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"elsapiens-background-location","version":"0.0.8","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.8","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"5b4da596cfa1f9b4841241556d1fba3c50a17ab9","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.8.tgz","fileCount":30,"integrity":"sha512-VReD7sFYAE774W8WZBedLwVDbXLxlrB1BXsMRLFF2Irt3nLu4Rli3kqYxaApV3V7ivnoAfd+4z56f7doR8H1ZA==","signatures":[{"sig":"MEUCIQCpGQ89Wg2Ju5k2Lc7lI1ed8FeyXBR+P6gfLRGdqrhA7gIgWQHgABkrjxNwk4ZS40KFkeACvXlSKQG6QIJHEBf4tSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66538},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"5374993d0606520a7653188d4801dfacfc5920a8","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.8_1738844762142_0.7127322658586965","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"elsapiens-background-location","version":"0.0.9","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.9","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"0480b407c97e589f6ed4f30091686b94ea774a78","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.9.tgz","fileCount":30,"integrity":"sha512-i3MhGfOKM05c1W9VC3PsdQKiIOhM53TTHMx64Zkws7+lZxoQhKfuI2CmWdlXmaV6+nT6jhcFCFh8g9KwcIlMRQ==","signatures":[{"sig":"MEQCIAUDYM5sMXYT0jknzruyJB7S6QoQfuYTXf57AMAOEb1LAiBv4Ti27fHyMuokusoVXXYfG/jLs4eHyCDd/sFsS1TnNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66538},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"5374993d0606520a7653188d4801dfacfc5920a8","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.9_1738848622621_0.11178259752143438","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"elsapiens-background-location","version":"0.0.10","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.10","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"ce5853a3b714f43596db1fa5116029781c5abe67","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.10.tgz","fileCount":30,"integrity":"sha512-TwixYzwCtlSEs3jllE6tfd10MBqWoc5us82EE8NMS2uD/3DN1sVCbZ+zdfok9jnk3/CCgLd/u+mYnA9X/8HVPA==","signatures":[{"sig":"MEUCIBJgD8rNjJ4NlPUMrQAGz0PwrxU/lvS/YdP/nxb+xbHpAiEA4eK1pFOies1IeGFsIb4wzbPmkObdfhnadaOoe+fr2hk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68154},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"786fed4addb283d2e3ed419c8bc77a0fc2ec936b","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.10_1739254129660_0.7467156399020547","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"elsapiens-background-location","version":"0.0.11","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.11","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"f0da19eef8a223ccd888b00b8b3d29aad57d5f94","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.11.tgz","fileCount":30,"integrity":"sha512-KaLm0rCOwhP2gfmQlXfhHOKl98J81Nzh++O7NjJWhH0eb6T+rlKd/r71Hh9q5th9sYwUlQoNaNolA/LDepkc7Q==","signatures":[{"sig":"MEUCIQD932rAnRY2zr3xcU8l2OzNCR8SHbjwJJxC0xbLJRwV6QIgEgehLr4HX4s4Yvd4F1y+mcnHV3YJ6t7lsrnAJj6CUPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72536},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"0a90ac35a54f1d5659d5a12f55e22bf6bd2c5880","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.11_1739360787529_0.9413558669124074","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"elsapiens-background-location","version":"0.0.12","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.12","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"3f6f95b9ea77dd8980b99fd33e9c895b41dedcb2","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.12.tgz","fileCount":30,"integrity":"sha512-hjb9P6cZr3fimi9GVxEg5nCZ90PDwlzckFu/MUPHtMWZWD0HbdCCoYczzWLdkJaRd2shtkUBO+91TAE1A9rRNA==","signatures":[{"sig":"MEQCIChR6hJnPXJAgzAun2VjipW0Kvkjfb5UZe8zVcnOLbedAiAd7APFUmbwLy+gTydSEvWGO7KvXDn9+KhiR01M5dFpxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73839},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"0a90ac35a54f1d5659d5a12f55e22bf6bd2c5880","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.12_1739428587178_0.8594849782602718","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"elsapiens-background-location","version":"0.0.13","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.13","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"f564bca92d7d7d76c8736f6229574edf70f192c9","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.13.tgz","fileCount":30,"integrity":"sha512-QCidLNyImRAOJvYKGt8fp7JQ/vjBKpHXgGJ1srcIKDwWrvJHdGJAS3iSfu2zcp1NwhhG1Hi3c653y2UsXLsJYQ==","signatures":[{"sig":"MEYCIQDaqmVQDuc2TlFllwYdbohBdhlsGuwk0RlF1F//mvaRBwIhAIGuSiH+WzqK7PcBQGkhOr14RoB7r9NEyD3BTb4wOzKP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76273},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"5b380c25f6eab52128ed8484f92afd887e4da68e","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.13_1739620393191_0.17776561871835184","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"elsapiens-background-location","version":"0.0.14","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.14","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"648e9cef717e00a8dfaca64358f12cb92a983c8d","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.14.tgz","fileCount":31,"integrity":"sha512-Kshf5Ebx8YRiooQ2SJpJa+x8QDi3WDwQP2Mom1J32rGO1YXdIcuo6X6wjcPmAUXInV7Yfh5zwUNKMfH5JVoWMg==","signatures":[{"sig":"MEUCIC5UNz58R1DVsq9E2lEqdxKtxdqloDXvCVaM3DGZPif/AiEAlbEGs2yr98+Q13ny4lwd56Py1/1zeQsf0U9QxhXXVyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89358},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"546092429bd8bb08f06a98a3d42433b7cfadf296","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.14_1740547753589_0.11570667903805698","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"elsapiens-background-location","version":"0.0.15","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.15","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"e5a1f465683047a2cd2ddfec22c2dabd703ae021","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.15.tgz","fileCount":31,"integrity":"sha512-QV/9nHnUyIgVob773Rr1rOd1vxnH3iKNqv4iPiA68ssVR6p3faPRO4X26U3Y6jNpS8GRknDSPtvbDl/3LrZsqw==","signatures":[{"sig":"MEQCICwipYEFxaeg+QupZGSAheNWgqlnPNtjrGLODWgxJdDkAiAdmmtFGIWKzBdIpizWNLllaZ57vijFWMmeRROozFjUsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89358},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"ea37fdeb38cb5eb04f029d49512e89664f395b42","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.15_1741247367866_0.4012505288813635","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"elsapiens-background-location","version":"0.0.16","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.16","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"a691e561d614dfc0fe768a94f8692fd20991fc46","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.16.tgz","fileCount":31,"integrity":"sha512-dOYiUBx0lzjIM57gxQroK0S1uAMlKQkxeugo5u1G1WFnhh4j0g9sgCoUSrSRYa1ggLRYLEwyrDdyspRwPu2pmg==","signatures":[{"sig":"MEUCIEDdet+antRymJQTd7K1/r5JyfnSysrI0H77E7WS7oEjAiEAiZ3I7cNqN4JKLxDUBqHrvkKGjubIieuRnMmu1WD412Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91796},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"53417f88c422692aa1a66dd78e3d3e29230c600f","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.13.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.16_1741327618487_0.3386388226623669","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"elsapiens-background-location","version":"0.0.17","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.17","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"13b6e4810fd339f1d590cdcd8f0b00ff9a4d1494","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.17.tgz","fileCount":31,"integrity":"sha512-ONtFAiNXPcgqn+Vns714R0RMNYhkC6Wri6xjgSQvIU2W/dQ2GHWOHDhM/ksVAqokg16AsJ6YVYv0rhZXpJZetg==","signatures":[{"sig":"MEUCIBzYY8ot1nWWyaSadQcBd92vVE9GubbQbo6NiDF8xYKtAiEAgeIVk00lnQ0FfojefsK/rr5KhoM0JN1knFC6kJPjhbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97152},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"aa82262457397289a3de384b571a5eaff0adac7e","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.17_1746790493074_0.4916069189815697","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"elsapiens-background-location","version":"0.0.18","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.18","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"3f69625927a84b62ae8fbca3d6d6bf1d610e5571","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.18.tgz","fileCount":38,"integrity":"sha512-iDFRDbss5vFyUn61zBk1dWMo8P+WhFxZJDSuG5tpvURmmcnxMBS8oUh/Gr3ELzQ7QqVrGfQKovk0xQI7c3wC7g==","signatures":[{"sig":"MEQCIDOdXSAfxSNs/mNhClaP5XfzJpfXQt/PNrKoT1fb8VkQAiBf1yT4ZuSWyoUqK3z2ja74WNJIOVensEAyBIqXDhxLxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225101},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"1544d7e26a4fd521d286b8aec9ba13e0146ad7aa","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.18_1758258285932_0.5945441259766198","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"elsapiens-background-location","version":"0.0.19","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.19","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation/issues"},"dist":{"shasum":"869c64721c14344fee6315f43a62afa91ada0e58","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.19.tgz","fileCount":38,"integrity":"sha512-0rPYoH2oz12GO8+Go+lvdCUQQlbBgjedsW7l0VHIAUlqbW8J74PUvcWi/+DwIJ5pDlv25lGRRu156uVV2vZrJQ==","signatures":[{"sig":"MEUCIGKIzDCzKhyF2KWGlBzgb1XTMRKTCPbgpD5jQL3E2fiVAiEAiCDOMYBvHBHqO8vQQHzUjaYSIDJ2zCu0yis8uhf6a+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225325},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"d5a49d286104bbabbe9675864926f5ac6fb702f9","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.19_1758258912796_0.7333693742934486","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"elsapiens-background-location","version":"0.0.20","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.20","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation.git#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation.git/issues"},"dist":{"shasum":"81f764f55b38496c3bd7b704a5d11331b5c69287","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.20.tgz","fileCount":38,"integrity":"sha512-WJJbg7uGGAW+FfQ8eozihx55KEu0v5BYrBFi+cgbKaI7OKAOcPYVGi6GChaRvlkgRdrRL6vivEKtFGdyhhohrA==","signatures":[{"sig":"MEYCIQD9oGAd9yZxpNx5Pbij5YyWeQj/ItaQ7PvidqgTsYlEeQIhAOPJ4FdYn/4Ri3vSvpGkNSWZHmphqhtT8oWuF64AvqLI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223426},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"d60e4ba87a4a2740d2bdc3fd2a64ddaade2778c8","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.20_1760602900240_0.35413412177235726","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"elsapiens-background-location","version":"0.0.21","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.21","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation/issues"},"dist":{"shasum":"8cadaee431ad1f141ed8ff80d284519e78242147","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.21.tgz","fileCount":38,"integrity":"sha512-CQHabdUzsqvwV6/BkHVn9UbCrNcOjjPGcwEbjKsi/LX8Mg6CyGbAjk4cY8+plB+Hyy+GBCXhqIZ313EY1Hz+XA==","signatures":[{"sig":"MEQCIGBmNpd2Ikj5O8n06ZklgjcSNJDri7akk/cEPdGPdJoMAiA+IXLyyPMnZNy4aVIDlO/U3k+kIajN+VQj0aV4VixxhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223561},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"a54dcac633da00f67633cbdf93d1e2997a4bb5e2","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.21_1760603337640_0.3588343909714218","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"elsapiens-background-location","version":"0.0.22","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.0.22","maintainers":[{"name":"elsapiens","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation/issues"},"dist":{"shasum":"2d8bbba939a8b9e8eb1b2c58d713e61aed5242bd","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.0.22.tgz","fileCount":38,"integrity":"sha512-IkRXV4/c6Gvs+pog2yQmFY1dZhkTnuBT62az8BtRo9GF8rHHe3Um1FHNOzOShBFz+pnZkEIB9RShP07pg9P41Q==","signatures":[{"sig":"MEUCIB8XkXKV36Vvvqmv6vHjQwVlDpEYawUM3t93MOvedGr2AiEA0T/mzVylmJrOIyxQLHY+QCLNJNaSxXnUMRZXF1rfZOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223850},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"a54dcac633da00f67633cbdf93d1e2997a4bb5e2","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.0.22_1760883038362_0.3531593725286468","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"elsapiens-background-location","version":"0.1.0","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.1.0","maintainers":[{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation/issues"},"dist":{"shasum":"607ca8cd2f40631e346dc3d26ab06411033a4922","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.1.0.tgz","fileCount":46,"integrity":"sha512-LF3e4cEgXwUsXJPSLxMiu5s686XjgZ/52M9W9oYYhkgqmC57W+ofMmgJYMBlHTniSgTqWMpSMmCkmiR7M3+6iA==","signatures":[{"sig":"MEUCIFL4/EJ+Dea8p/WWcgnE9Ud9H1+PabWSmoh8WM5XARwfAiEA+g1d8Y21ahc/tRZcRTAJ0RQ/WjTgtIYdLFvWoPNM850=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359748},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"ccb0314d686fd6f9a461da75ce58c0ad5c3d4632","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.1.0_1784293629898_0.3042402246217173","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"elsapiens-background-location","version":"0.1.1","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.1.1","maintainers":[{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation/issues"},"dist":{"shasum":"33049dff12977b65ae02241249ad9c1626070bd7","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.1.1.tgz","fileCount":46,"integrity":"sha512-STQO0i22cWvyEHFXSdzTzjppODthOlurzyUp0BTdErG/kGgXgZkRM284EKIx54kmb2kq8IfWhWv57gnXuseyMg==","signatures":[{"sig":"MEYCIQDZZXPwb3BdwlU8/IQOZ9dCzxVkd8osyd06jE7450WrFgIhAJWLrO7XMdgjLjKW89yYkrw1VnUgKO/gorqstHRdRkcb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361265},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"dcfc2a0bb18798cb04148a3cf4a4da00dceaaff4","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.1.1_1784294202503_0.6699661868471898","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"elsapiens-background-location","version":"0.2.0","keywords":["capacitor","plugin","native"],"author":{"name":"Dawn Dharmishtan"},"license":"MIT","_id":"elsapiens-background-location@0.2.0","maintainers":[{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"}],"homepage":"https://github.com/elsapiens/backgroundlocation#readme","bugs":{"url":"https://github.com/elsapiens/backgroundlocation/issues"},"dist":{"shasum":"e710fb39a77ba5af0ab555ad78da8f601f0a38b9","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.2.0.tgz","fileCount":64,"integrity":"sha512-QLTs12aL35da845F4MIu6GVn3V/IZTeOXNz3XN1/8Gxnhw4jEwNSb50QrLOZ63jZqGAL3JRqzhH9lV7G1SygfA==","signatures":[{"sig":"MEUCIQCPgTcJmsZVggjTfUosuGOPZInLBF/lt2gtDzc0JpaZMQIgRJjSQuJW84bmPIDbc10PGqHZWyK0Vi+TUjkfkntaUJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465938},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"a1c077929b2eee576b91d547067b71c27541d56b","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/elsapiens-background-location_0.2.0_1784435803735_0.5387787618316757","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"_id":"elsapiens-background-location@0.5.0","bugs":{"url":"https://github.com/elsapiens/backgroundlocation/issues"},"dist":{"shasum":"792bbe482c5554fc813befd56c44e4bc5ee5e356","tarball":"https://registry.npmjs.org/elsapiens-background-location/-/elsapiens-background-location-0.5.0.tgz","fileCount":70,"integrity":"sha512-XUGqUDeVzFKk5kIxHyoYDvsoVAJHvfBDXoOlyW1OE81Z8JYkutB/Btlt0bCNynRUbfd29LdQxlHlAOa0R4BF8g==","signatures":[{"sig":"MEYCIQC73DHcIlWa4BnLMeV8GEGQuexzAcxzW4PxjOm6cZ5lAwIhAIKnP6JCwpZAQMFWUKV8ZeDrwKu4s5KyQDozmPfn5nvf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC9lCnR3xFSGMUukRV7sK0W7+ZUhfpnJmsbpsWc6g39CQIhANysdf4pOTVTFHMsG8i3bTcfSEXo23No98Gu0muZQ7iX"}],"unpackedSize":600682},"main":"dist/plugin.cjs.js","name":"elsapiens-background-location","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Dawn Dharmishtan"},"module":"dist/esm/index.js","gitHead":"79d54433f3f79b219fb502170b8f718578bda776","license":"MIT","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","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api BackgroundLocationPlugin --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}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme ElsapiensBackgroundLocation -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"version":"0.5.0","_npmUser":{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"},"homepage":"https://github.com/elsapiens/backgroundlocation#readme","keywords":["capacitor","plugin","native"],"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git","type":"git"},"_npmVersion":"10.9.2","description":"Save background location in sql lite and make available to cpacitor subscription when app is active","directories":{},"maintainers":[{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"}],"_nodeVersion":"22.15.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^6.0.1","rollup":"^4.30.1","prettier":"^3.4.2","swiftlint":"^2.0.0","typescript":"~4.1.5","@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.6","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=7.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elsapiens-background-location_0.5.0_1790348612454_0.5887198059114189"}}},"time":{"created":"2025-01-30T02:10:07.499Z","modified":"2026-09-25T15:03:32.737Z","0.0.1":"2025-01-30T02:10:07.698Z","0.0.2":"2025-01-30T23:50:53.496Z","0.0.3":"2025-01-31T04:20:14.333Z","0.0.4":"2025-01-31T04:24:59.360Z","0.0.5":"2025-01-31T04:26:46.745Z","0.0.6":"2025-02-05T06:31:16.010Z","0.0.7":"2025-02-06T05:11:43.260Z","0.0.8":"2025-02-06T12:26:02.329Z","0.0.9":"2025-02-06T13:30:22.855Z","0.0.10":"2025-02-11T06:08:49.813Z","0.0.11":"2025-02-12T11:46:27.695Z","0.0.12":"2025-02-13T06:36:27.332Z","0.0.13":"2025-02-15T11:53:13.397Z","0.0.14":"2025-02-26T05:29:13.795Z","0.0.15":"2025-03-06T07:49:28.038Z","0.0.16":"2025-03-07T06:06:58.661Z","0.0.17":"2025-05-09T11:34:53.242Z","0.0.18":"2025-09-19T05:04:46.100Z","0.0.19":"2025-09-19T05:15:13.009Z","0.0.20":"2025-10-16T08:21:40.447Z","0.0.21":"2025-10-16T08:28:57.850Z","0.0.22":"2025-10-19T14:10:38.579Z","0.1.0":"2026-07-17T13:07:10.088Z","0.1.1":"2026-07-17T13:16:42.644Z","0.2.0":"2026-07-19T04:36:43.916Z","0.5.0":"2026-09-25T15:03:32.572Z"},"bugs":{"url":"https://github.com/elsapiens/backgroundlocation/issues"},"author":{"name":"Dawn Dharmishtan"},"license":"MIT","homepage":"https://github.com/elsapiens/backgroundlocation#readme","keywords":["capacitor","plugin","native"],"repository":{"url":"git+https://github.com/elsapiens/backgroundlocation.git","type":"git"},"description":"Save background location in sql lite and make available to cpacitor subscription when app is active","maintainers":[{"name":"elsapiens_ceo","email":"dawndharm@elsapiens.com"}],"readme":"# Elsapiens Background Location Plugin\n\nA comprehensive Capacitor plugin for background location tracking with support for both task-based tracking and work hour monitoring. Features intelligent location management, offline queuing, and battery optimization.\n\n**Developed by [Elsapiens](https://elsapiens.com)** - Innovative mobile solutions for enterprise location tracking and workforce management.\n\n## 📚 Documentation\n\n- **[Setup Guide](SETUP_GUIDE.md)** - Complete installation and integration guide\n- **[API Documentation](API_DOCUMENTATION.md)** - Detailed API reference with examples  \n- **[Developer Guide](DEVELOPER_GUIDE.md)** - Architecture overview and development guide\n- **[Contributing Guide](CONTRIBUTING.md)** - How to contribute to the project\n\n## ✨ Features\n\n- **🎯 Task-Based Tracking**: Detailed location tracking for specific tasks or routes\n- **⏰ Work Hour Tracking**: Periodic location uploads during work hours\n- **🔋 Battery Optimized**: Intelligent coordination to minimize battery drain\n- **📱 Offline Support**: Queue locations when offline, upload when connected\n- **🔒 Permission Management**: Comprehensive Android permission handling\n- **📊 Real-time Events**: Live location updates via Capacitor events\n- **💾 Local Storage**: SQLite database for reliable data persistence\n\n## 🚀 Quick Reference\n\n| Use Case | Tracking Mode | Key Features | Best For |\n|----------|---------------|--------------|----------|\n| **Delivery Routes** | Task-Based | High accuracy, route recording, distance calculation | Short-term detailed tracking |\n| **Field Service** | Task-Based | Real-time updates, offline storage, complete route history | Service calls, repairs |\n| **Employee Monitoring** | Work Hour | Periodic uploads, battery optimized, offline queue | All-day location monitoring |\n| **Fleet Management** | Both | Combined detailed + periodic tracking | Comprehensive vehicle tracking |\n| **Time & Attendance** | Work Hour | Clock in/out locations, compliance tracking | Workforce management |\n\n## Installation\n\n```bash\nnpm install elsapiens-background-location\nnpx cap sync\n```\n\n### Android Configuration\n\nThe plugin's own manifest declares everything it needs (permissions, the two\nforeground services, and the restart receiver) and Android merges it into your app\nautomatically — **no manual manifest edits are required**.\n\nFor reference, the merged permissions are:\n\n```xml\n<!-- Location permissions -->\n<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />\n<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />\n<uses-permission android:name=\"android.permission.ACCESS_BACKGROUND_LOCATION\" />\n\n<!-- Foreground service (Android 14+ requires the typed permission) -->\n<uses-permission android:name=\"android.permission.FOREGROUND_SERVICE\" />\n<uses-permission android:name=\"android.permission.FOREGROUND_SERVICE_LOCATION\" />\n\n<!-- Network access for work hour uploads -->\n<uses-permission android:name=\"android.permission.INTERNET\" />\n<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />\n```\n\nIf your app previously declared `com.elsapiens.backgroundlocation.LocationBroadcastReceiver`\nor `LocationStateReceiver` in its own manifest, remove those entries — the plugin\nregisters them at runtime, and duplicate manifest registration causes duplicate events.\n\n### iOS Configuration\n\nUnlike Android, Apple gives plugins no way to merge permission strings or\ncapabilities into the host app automatically — **these steps are required, done\nonce, in your app's own Xcode project:**\n\n1. **Info.plist usage description keys** (Xcode target → Info tab → add these two\n   rows, or edit Info.plist directly). Missing either one crashes the app the\n   instant permission is requested — not a soft failure:\n\n   ```xml\n   <key>NSLocationWhenInUseUsageDescription</key>\n   <string>Your location is used to record your route while tracking is active.</string>\n   <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>\n   <string>Allowing location access all the time lets tracking continue and recover automatically after the app is closed.</string>\n   ```\n\n   The plugin checks for these before ever calling into CoreLocation's request\n   APIs and rejects `requestPermissions()` with a clear `INTERNAL_ERROR` message\n   naming the missing key, rather than letting the app crash — but the fix is\n   always to add the key, the plugin cannot supply one for you.\n\n2. **Background Modes capability** (Xcode target → Signing & Capabilities → **+\n   Capability** → *Background Modes* → check **Location updates**). This is what\n   allows a tracking session to survive the app being backgrounded; without it,\n   `startTracking()`/`startWorkHourTracking()` still work while the app is in the\n   foreground, but the plugin reports a non-fatal `SERVICE_START_FAILED` `error`\n   event explaining the missing capability instead of silently losing updates the\n   moment the user switches apps.\n\nNothing else is required — no other Info.plist keys, no CocoaPods setup beyond the\nnormal `pod install` from `npx cap sync`, and the plugin adds no dependency beyond\nCapacitor itself (route storage uses the system SQLite library).\n\n**iOS Settings deep-link note:** Apple only allows apps to deep-link to their own\nSettings page, not to the system-wide Location Services toggle — so both\n`openLocationSettings()` and `openDeviceLocationSettings()` open the same app\nSettings screen on iOS (the per-app Location permission and the \"Allow all the\ntime\" upgrade both live there). This differs from Android, where the two methods\nopen genuinely different screens; write UI copy that works either way.\n\n## Quick Start\n\n### Permission model (read this first)\n\nBoth platforms split location access into **two independent tiers**, and both\nmust be requested in order — the plugin normalizes the platform differences\n(Android's dialog vs. iOS's settings-page upgrade) behind the same API:\n\n1. **Foreground** (Android: \"While using the app\" · iOS: \"While Using the App\") —\n   enough to start tracking. A tracking session started while the app is visible\n   keeps receiving fixes after the app is backgrounded, on both platforms.\n2. **Background** (Android: \"Allow all the time\" · iOS: \"Always\") — needed only so\n   tracking can *recover* when the OS restarts/relaunches it while the app is not\n   visible (device reboot, watchdog restart on Android; a significant-location-change\n   wake or the user reopening the app on iOS). Neither platform grants this tier from\n   the first dialog — Android requires a second `requestPermissions()` call, and iOS\n   requires foreground permission to already be granted before it will prompt at all.\n\nThe plugin **never crashes the app** over permissions on either platform: calls\nreject with a typed `error.code`, and asynchronous problems (permission revoked\nmid-session, GPS/Location Services switched off) arrive on the `error` event.\n\n### Basic Task Tracking\n\n```typescript\nimport { BackgroundLocation } from 'elsapiens-background-location';\n\nasync function startTaskTracking() {\n  // 1. Foreground permission first.\n  let status = await BackgroundLocation.checkPermissions();\n  if (status.location !== 'granted') {\n    status = await BackgroundLocation.requestPermissions({ permissions: ['location'] });\n    if (status.location !== 'granted') {\n      // 'denied' means Android will not show the dialog again — send the user to settings.\n      await BackgroundLocation.openLocationSettings();\n      return;\n    }\n  }\n\n  // 2. Listen for updates and errors.\n  BackgroundLocation.addListener('locationUpdate', (location) => {\n    console.log('New location:', location.latitude, location.longitude);\n    console.log('Distance traveled:', location.totalDistance, 'km');\n  });\n  BackgroundLocation.addListener('error', (err) => {\n    if (err.code === 'BACKGROUND_PERMISSION_DENIED' && !err.fatal) {\n      // Tracking still runs — explain, then let the user pick \"Allow all the time\".\n      askUserForAlwaysPermission();\n    } else if (err.code === 'LOCATION_SERVICES_DISABLED') {\n      BackgroundLocation.openDeviceLocationSettings();\n    } else if (err.fatal) {\n      console.error('Tracking stopped:', err.message);\n    }\n  });\n\n  // 3. Start tracking — works with \"While using the app\" alone.\n  const result = await BackgroundLocation.startTracking({\n    reference: 'task_123',\n    interval: 3000,        // Update every 3 seconds\n    minDistance: 10,       // Minimum 10 meters movement\n    highAccuracy: true,    // Use GPS for high accuracy\n    maxAccuracy: 30,       // Discard fixes worse than 30 m\n    notificationTitle: 'Tracking your route',\n  });\n\n  // 4. Upgrade to background permission when the user agrees.\n  if (!result.backgroundLocationGranted) {\n    askUserForAlwaysPermission();\n  }\n}\n\nasync function askUserForAlwaysPermission() {\n  // Show your own explanation UI first (required by Play policy), then:\n  const status = await BackgroundLocation.requestPermissions({ permissions: ['backgroundLocation'] });\n  if (status.backgroundLocation !== 'granted') {\n    // Android opens the settings screen; if the user backed out, offer it again later.\n  }\n}\n\nasync function stopTaskTracking() {\n  await BackgroundLocation.stopTracking();\n  \n  // Retrieve stored locations\n  const result = await BackgroundLocation.getStoredLocations({\n    reference: 'task_123'\n  });\n  console.log('Total locations:', result.locations.length);\n}\n```\n\n### Current location with live accuracy refinement\n\nWhen you need one good fix (e.g. stamping a form), request a target accuracy: the\nplugin streams every fix as a `currentLocation` event so the UI can show the\nposition refining live, and resolves as soon as the target is met.\n\n```typescript\nconst handle = await BackgroundLocation.addListener('currentLocation', (fix) => {\n  updateMapPin(fix.latitude, fix.longitude, fix.accuracy); // live, isFinal=false\n});\n\ntry {\n  // Resolves with the first fix at <= 15 m accuracy; on timeout resolves the best\n  // fix seen with timedOut=true; rejects LOCATION_UNAVAILABLE if nothing arrived.\n  const fix = await BackgroundLocation.getCurrentLocation({ targetAccuracy: 15, timeout: 20000 });\n  console.log('Final fix:', fix.latitude, fix.longitude, `±${fix.accuracy}m`, fix.timedOut);\n} finally {\n  handle.remove();\n}\n```\n\n### Error codes\n\nBranch on `error.code` (rejections) and the `error` event — never on message text:\n\n| Code | Meaning | Recommended reaction |\n|------|---------|----------------------|\n| `PERMISSION_DENIED` | Foreground location permission missing | `requestPermissions({permissions: ['location']})`; if still denied → `openLocationSettings()` |\n| `BACKGROUND_PERMISSION_DENIED` | \"Allow all the time\" missing (non-fatal while tracking runs) | Explain, then `requestPermissions({permissions: ['backgroundLocation']})` |\n| `LOCATION_SERVICES_DISABLED` | Device GPS toggle off | `openDeviceLocationSettings()` |\n| `MISSING_PARAMETER` | Required option absent | Fix the call site |\n| `SERVICE_START_FAILED` | Android refused the foreground service start | Retry from the foreground |\n| `LOCATION_UNAVAILABLE` | No usable fix within timeout | Retry / move to open sky |\n| `NOT_FOUND` | No stored data for the reference | Treat as empty |\n| `CANCELLED` | Request superseded or cancelled | Usually ignorable |\n| `INTERNAL_ERROR` | Unexpected native failure | Log and report |\n\n### Work Hour Tracking\n\n```typescript\nasync function startWorkDay() {\n  // Listen for work hour location updates\n  BackgroundLocation.addListener('workHourLocationUpdate', (location) => {\n    console.log('Work location captured:', location);\n  });\n\n  // Start work hour tracking\n  await BackgroundLocation.startWorkHourTracking({\n    engineerId: 'engineer_123',\n    serverUrl: 'https://api.company.com/work-locations',\n    uploadInterval: 300000,  // Upload every 5 minutes\n    authToken: 'your-auth-token',\n    enableOfflineQueue: true\n  });\n}\n\nasync function endWorkDay() {\n  await BackgroundLocation.stopWorkHourTracking();\n  \n  // Check for any queued locations\n  const queued = await BackgroundLocation.getQueuedWorkHourLocations();\n  if (queued.locations.length > 0) {\n    console.log('Queued locations will be uploaded when online');\n  }\n}\n```\n\n## Core Concepts\n\n### Task-Based Tracking\n- **Purpose**: Detailed route tracking for specific tasks\n- **Data Storage**: Local SQLite database\n- **Use Cases**: Delivery routes, service calls, field work\n- **Features**: High-precision GPS, distance calculation, complete route history\n\n### Work Hour Tracking  \n- **Purpose**: Periodic location monitoring during work hours\n- **Data Storage**: Server uploads with offline queuing\n- **Use Cases**: Employee monitoring, time tracking, compliance\n- **Features**: Battery-optimized intervals, automatic uploads, offline support\n\n### Session Persistence & Recovery\nTracking sessions are persisted natively and recover automatically:\n- **Single Pipeline**: Each tracking mode is owned by exactly one foreground service — no duplicate writers\n- **Survives Process Death**: Session parameters persist in SharedPreferences; the sticky service and a 30-minute watchdog alarm restore tracking (background permission required for background restarts)\n- **GPS Toggle Aware**: If the user disables location services mid-session, the service waits and resumes automatically when they return\n- **Accuracy Guarded**: Fixes worse than `maxAccuracy` are discarded, and travelled distance is computed over accepted fixes only\n\n## Advanced Usage\n\n### Complete Service Implementation\n\n```typescript\nimport { BackgroundLocation } from 'elsapiens-background-location';\n\nexport class LocationTrackingService {\n  private isTracking = false;\n  private currentTaskId: string | null = null;\n\n  async initialize(): Promise<boolean> {\n    // Check if location services are enabled\n    const serviceStatus = await BackgroundLocation.isLocationServiceEnabled();\n    if (!serviceStatus.enabled) {\n      console.log('Location services disabled');\n      await BackgroundLocation.openLocationSettings();\n      return false;\n    }\n\n    // Check and request permissions\n    const permissions = await BackgroundLocation.checkPermissions();\n    if (permissions.location !== 'granted' || permissions.backgroundLocation !== 'granted') {\n      const newPermissions = await BackgroundLocation.requestPermissions();\n      if (newPermissions.location !== 'granted') {\n        throw new Error('Location permissions are required');\n      }\n    }\n\n    // Set up event listeners\n    this.setupEventListeners();\n    return true;\n  }\n\n  private setupEventListeners() {\n    // Task location updates\n    BackgroundLocation.addListener('locationUpdate', (location) => {\n      this.handleLocationUpdate(location);\n    });\n\n    // Work hour location updates\n    BackgroundLocation.addListener('workHourLocationUpdate', (location) => {\n      this.handleWorkHourUpdate(location);\n    });\n\n    // Location service status changes\n    BackgroundLocation.addListener('locationStatus', (status) => {\n      if (!status.enabled && this.isTracking) {\n        this.handleLocationServiceDisabled();\n      }\n    });\n  }\n\n  async startTaskTracking(taskId: string, options?: {\n    interval?: number;\n    minDistance?: number;\n    highAccuracy?: boolean;\n  }) {\n    if (!await this.initialize()) {\n      throw new Error('Failed to initialize location services');\n    }\n\n    this.currentTaskId = taskId;\n    this.isTracking = true;\n\n    await BackgroundLocation.startTracking({\n      reference: taskId,\n      interval: options?.interval || 3000,\n      minDistance: options?.minDistance || 10,\n      highAccuracy: options?.highAccuracy ?? true\n    });\n\n    console.log(`Started tracking task: ${taskId}`);\n  }\n\n  async stopTaskTracking(): Promise<LocationData[]> {\n    if (!this.isTracking || !this.currentTaskId) {\n      return [];\n    }\n\n    await BackgroundLocation.stopTracking();\n    \n    // Retrieve all stored locations\n    const result = await BackgroundLocation.getStoredLocations({\n      reference: this.currentTaskId\n    });\n\n    this.isTracking = false;\n    this.currentTaskId = null;\n\n    console.log(`Stopped tracking. Captured ${result.locations.length} locations`);\n    return result.locations;\n  }\n\n  async startWorkHourTracking(engineerId: string, serverUrl: string) {\n    if (!await this.initialize()) {\n      throw new Error('Failed to initialize location services');\n    }\n\n    await BackgroundLocation.startWorkHourTracking({\n      engineerId,\n      serverUrl,\n      uploadInterval: 300000, // 5 minutes\n      authToken: await this.getAuthToken(),\n      enableOfflineQueue: true\n    });\n\n    // Start monitoring location service status\n    await BackgroundLocation.startLocationStatusTracking();\n    \n    console.log(`Started work hour tracking for ${engineerId}`);\n  }\n\n  async stopWorkHourTracking() {\n    await BackgroundLocation.stopWorkHourTracking();\n    await BackgroundLocation.stopLocationStatusTracking();\n    \n    console.log('Stopped work hour tracking');\n  }\n\n  private handleLocationUpdate(location: LocationData) {\n    console.log(`Task location update:`, {\n      lat: location.latitude,\n      lng: location.longitude,\n      accuracy: location.accuracy,\n      distance: location.totalDistance\n    });\n\n    // Save to local storage or send to your backend\n    this.saveLocationUpdate(location);\n  }\n\n  private handleWorkHourUpdate(location: WorkHourLocationData) {\n    console.log(`Work hour location:`, {\n      lat: location.latitude,\n      lng: location.longitude,\n      engineerId: location.engineerId,\n      timestamp: new Date(location.timestamp)\n    });\n  }\n\n  private handleLocationServiceDisabled() {\n    console.warn('Location services disabled during tracking');\n    // Handle gracefully - perhaps notify user\n    this.notifyLocationServiceDisabled();\n  }\n\n  private async getAuthToken(): Promise<string> {\n    // Implement your authentication logic\n    return localStorage.getItem('authToken') || '';\n  }\n\n  private saveLocationUpdate(location: LocationData) {\n    // Implement your local storage logic\n    const stored = JSON.parse(localStorage.getItem('taskLocations') || '[]');\n    stored.push(location);\n    localStorage.setItem('taskLocations', JSON.stringify(stored));\n  }\n\n  private notifyLocationServiceDisabled() {\n    // Implement user notification\n    console.warn('Please enable location services to continue tracking');\n  }\n}\n```\n\n### Error Handling Best Practices\n\n```typescript\nasync function robustLocationTracking() {\n  try {\n    await BackgroundLocation.startTracking({\n      reference: 'task_123',\n      interval: 3000,\n      minDistance: 10,\n      highAccuracy: true\n    });\n  } catch (error) {\n    console.error('Failed to start tracking:', error);\n    \n    // Handle specific error cases\n    if (error.message.includes('permission')) {\n      // Guide user to grant permissions\n      const permissions = await BackgroundLocation.requestPermissions();\n      if (permissions.location !== 'granted') {\n        // Show user-friendly permission explanation\n        showPermissionExplanation();\n      }\n    } else if (error.message.includes('location service')) {\n      // Guide user to enable location services\n      await BackgroundLocation.openLocationSettings();\n    } else {\n      // Handle other errors\n      showGenericError(error.message);\n    }\n  }\n}\n```\n\n### Performance Optimization\n\n```typescript\n// Optimize for different use cases\nconst trackingConfigs = {\n  // High precision for detailed mapping\n  highPrecision: {\n    interval: 1000,      // 1 second\n    minDistance: 1,      // 1 meter\n    highAccuracy: true\n  },\n  \n  // Balanced for general tracking\n  balanced: {\n    interval: 3000,      // 3 seconds\n    minDistance: 10,     // 10 meters\n    highAccuracy: true\n  },\n  \n  // Battery saving for long-term tracking\n  batterySaver: {\n    interval: 15000,     // 15 seconds\n    minDistance: 25,     // 25 meters\n    highAccuracy: false\n  }\n};\n\n// Use appropriate config based on requirements\nawait BackgroundLocation.startTracking({\n  reference: 'task_123',\n  ...trackingConfigs.balanced\n});\n```\n\n## Troubleshooting\n\n### Common Issues\n\n#### 1. \"Permission denied\" errors\n**Problem**: Location permissions not granted or insufficient permissions.\n\n**Solutions**:\n- Check all required permissions are declared in AndroidManifest.xml\n- Ensure background location permission is granted for work hour tracking\n- Test permission flow on different Android versions (API 23+, 29+)\n\n```typescript\n// Check specific permission status\nconst permissions = await BackgroundLocation.checkPermissions();\nconsole.log('Permissions:', permissions);\n\nif (permissions.backgroundLocation !== 'granted') {\n  console.log('Background location permission required for work hour tracking');\n}\n```\n\n#### 2. \"Location service disabled\" errors\n**Problem**: Device location services are turned off.\n\n**Solutions**:\n- Guide users to device settings\n- Check location service status before starting tracking\n- Monitor status changes during tracking\n\n```typescript\nconst status = await BackgroundLocation.isLocationServiceEnabled();\nif (!status.enabled) {\n  await BackgroundLocation.openLocationSettings();\n}\n```\n\n#### 3. No location updates received\n**Problem**: Tracking started but no location events received.\n\n**Solutions**:\n- Verify device has GPS signal (test outdoors)\n- Check interval and distance settings aren't too restrictive\n- Ensure event listeners are set up before starting tracking\n- Test with different accuracy settings\n\n```typescript\n// Debug location updates\nlet updateCount = 0;\nBackgroundLocation.addListener('locationUpdate', (location) => {\n  updateCount++;\n  console.log(`Update #${updateCount}:`, location);\n});\n```\n\n#### 4. Work hour locations not uploading\n**Problem**: Locations captured but not reaching server.\n\n**Solutions**:\n- Verify server URL is accessible and accepts POST requests\n- Check authentication token is valid and not expired\n- Review server logs for request errors\n- Test network connectivity\n\n```typescript\n// Check queued locations\nconst queued = await BackgroundLocation.getQueuedWorkHourLocations();\nconsole.log(`${queued.locations.length} locations queued for upload`);\n\n// Clear queue if needed (for testing)\n// await BackgroundLocation.clearQueuedWorkHourLocations();\n```\n\n### Performance Issues\n\n#### High Battery Usage\n- **Reduce update frequency**: Increase interval between location updates\n- **Lower accuracy**: Use balanced power mode instead of high accuracy\n- **Increase minimum distance**: Only update when moved significant distance\n- **Verify cleanup**: Ensure tracking is properly stopped when not needed\n\n#### Slow Performance\n- **Database cleanup**: Regularly clear old location data\n- **Memory management**: Remove event listeners when not needed\n- **Batch operations**: Group database operations where possible\n\n### Testing Guidelines\n\n#### Local Testing\n```typescript\n// Test permission flow\nasync function testPermissions() {\n  console.log('Initial permissions:', await BackgroundLocation.checkPermissions());\n  \n  const requested = await BackgroundLocation.requestPermissions();\n  console.log('After request:', requested);\n}\n\n// Test location accuracy\nasync function testLocationAccuracy() {\n  const current = await BackgroundLocation.getCurrentLocation();\n  console.log('Current location accuracy:', current.accuracy, 'meters');\n}\n\n// Test offline queue\nasync function testOfflineQueue() {\n  // Start work hour tracking\n  await BackgroundLocation.startWorkHourTracking({\n    engineerId: 'test_engineer',\n    serverUrl: 'http://invalid-url.com', // Intentionally invalid\n    uploadInterval: 10000, // 10 seconds for testing\n    enableOfflineQueue: true\n  });\n  \n  // Wait and check queue\n  setTimeout(async () => {\n    const queued = await BackgroundLocation.getQueuedWorkHourLocations();\n    console.log('Queued locations:', queued.locations.length);\n  }, 30000);\n}\n```\n\n## Platform Support\n\n| Platform | Support Status | Notes |\n|----------|---------------|-------|\n| **Android** | ✅ Full Support | All features available |\n| **iOS** | ✅ Full Support | All features available; requires two one-time Xcode configuration steps — see [iOS Configuration](#ios-configuration) |\n| **Web** | 🔧 Development Only | Real W3C Geolocation API for task tracking and current location; work-hour tracking (a native-only, server-upload feature) is unavailable |\n\n### Feature Parity\n\n| Feature | Android | iOS | Notes |\n|---------|:-------:|:---:|-------|\n| Task tracking (route recording) | ✅ | ✅ | Distance and accuracy filtering computed identically on both platforms |\n| Work hour tracking (periodic upload) | ✅ | ✅ | iOS samples via a time gate (see below) since CoreLocation has no request-interval API |\n| Background recovery after restart | ✅ | ✅ | Android: sticky service + watchdog alarm. iOS: significant-location-change wake + foreground re-entry resync |\n| Progressive-accuracy current location | ✅ | ✅ | Identical `targetAccuracy`/`timeout` semantics |\n| Typed error codes + `error` event | ✅ | ✅ | Same `ErrorCode` values on both platforms |\n| Approximate/coarse accuracy reporting | ✅ | ✅ | Android: user's Fine/Coarse choice. iOS: `CLAccuracyAuthorization` (Precise Location toggle) |\n\n**One real platform difference:** CoreLocation has no equivalent of Android's\n`LocationRequest` update interval — only a distance filter. The iOS plugin honors\n`interval`/`uploadInterval` as an explicit time gate on top of CoreLocation's\ndistance-filtered delivery, so recorded/queued cadence stays comparable across\nplatforms for the same options, but the underlying delivery mechanism differs.\n\n### Android Requirements\n- **Minimum SDK**: API 31 (Android 12)\n- **Target SDK**: API 34+ recommended\n- **Google Play Services**: Location services required\n- **Permissions**: Declared by the plugin's manifest; granted by the user at runtime\n\n### iOS Requirements\n- **Minimum deployment target**: iOS 14\n- **Xcode configuration**: two one-time steps — see [iOS Configuration](#ios-configuration) above\n- **Dependencies**: Capacitor only; route storage uses the system SQLite library (no CocoaPods beyond Capacitor)\n\n### Android Version Compatibility\n\nLocation tracking works on **every supported Android version**. The differences\nbetween OS releases are in *how the user grants access* — the plugin absorbs those\ndifferences and guides the user through the right screen, so from the app's point\nof view the API and behaviour are identical everywhere.\n\n| Android Version | API Level | Tracking while app in use | Tracking after app closed | How the plugin handles this version |\n|----------------|-----------|---------------------------|---------------------------|-------------------------------------|\n| 12 | 31-32 | ✅ Works with one dialog tap | ✅ Works after one settings tap | \"Allow all the time\" is granted on a settings screen the plugin opens for the user. If only \"Approximate\" accuracy is chosen, tracking still runs and the app is told (`accuracy: 'coarse'`) so it can ask for precise accuracy. |\n| 13 | 33 | ✅ Works with one dialog tap | ✅ Works after one settings tap | Same as above. The tracking notification additionally needs the app to request notification permission — tracking runs either way; the notification is just hidden without it. |\n| 14+ | 34+ | ✅ Works with one dialog tap | ✅ Works after one settings tap | Same as above. The typed foreground-service permission Android 14 requires is declared by the plugin's manifest automatically — nothing for the app to do. |\n\n**The one-time user steps, in plain terms:**\n\n1. *\"While using the app\"* — a single tap in the standard system dialog. This alone\n   is enough for full tracking during and after app use, as long as the tracking\n   session was started while the app was open.\n2. *\"Allow all the time\"* — one extra tap on the settings screen the plugin opens\n   (`requestPermissions({permissions: ['backgroundLocation']})`). This only adds\n   automatic recovery when the system restarts tracking while the app is closed\n   (device reboot, memory pressure, app swiped away).\n\nIf the user skips step 2, nothing breaks: tracking runs, and the app receives a\nnon-fatal `BACKGROUND_PERMISSION_DENIED` event it can use to ask again at a better\nmoment.\n\n## Architecture Overview\n\nBoth native platforms follow the same modular design — small, single-responsibility,\nindependently testable collaborators behind one bridge-facing plugin class — so the\nsame mental model applies whichever platform's code you're reading.\n\n**Android:**\n\n```\nBackgroundLocationPlugin (Main API — bridge translation only)\n├── LocationPermissionManager (Permission checks, accuracy tier)\n├── LocationTrackingManager (Service lifecycle, validation)\n├── TrackingStateStore (Session persistence across restarts)\n├── LocationFilter / DistanceTracker (Fix validation, distance math)\n├── CurrentLocationWatcher (Progressive-accuracy current location)\n├── LocationDataManager (Bridge conversion of stored fixes)\n└── WorkHourLocationUploader + WorkHourLocationQueue (Batch uploads)\n```\n\nTracking itself runs in two foreground services (`BackgroundLocationService`,\n`WorkHourLocationService`) that the plugin starts/stops — this is what keeps\ntracking alive while the app is backgrounded, and is where the crash-safety\nguards (start-foreground-first, permission re-checks) live.\n\n**iOS:**\n\n```\nBackgroundLocationPlugin (Main API — bridge translation only)\n├── BackgroundLocation (Orchestrator — owns everything below)\n├── LocationPermissionManager (CLLocationManager authorization, Info.plist guards)\n├── TrackingStateStore (Session persistence across suspend/relaunch)\n├── LocationFilter / DistanceTracker (Fix validation, distance math — identical rules to Android)\n├── TaskLocationTracker (Route recording; own CLLocationManager)\n├── WorkHourLocationTracker + WorkHourLocationUploader/Queue (Periodic sampling + batch upload)\n├── CurrentLocationRequester (Progressive-accuracy current location, built on CurrentLocationWatcher)\n└── LocationDatabase (SQLite-backed fix storage, mirrors Android's schema)\n```\n\niOS has no separate service process, so one orchestrator plus a handful of\nindependent `CLLocationManager` instances (permissions, task tracking, work-hour\nsampling, current-location requests) fill that role — background survival comes\nfrom the `location` UIBackgroundModes capability plus a significant-location-change\nwake as a relaunch safety net, guarded against the two iOS-specific crash cases\ndocumented in [iOS Configuration](#ios-configuration).\n\n### Key Components (both platforms)\n\n- **LocationPermissionManager**: All permission checks/requests and the accuracy tier; on iOS also guards the two crash-prone CoreLocation APIs (see iOS Configuration)\n- **TrackingStateStore**: Persists session parameters so a system-initiated restart/relaunch resumes the *same* session instead of a corrupted default\n- **LocationFilter / DistanceTracker**: Shared, framework-free validation and distance-accumulation rules — a route recorded on either platform is held to the same standard\n- **CurrentLocationWatcher / CurrentLocationRequester**: Progressive-accuracy current-location state machine (Android: watcher only; iOS: watcher + its CoreLocation driver)\n- **WorkHourLocationUploader + WorkHourLocationQueue**: Bounded offline-safe upload queue and batch POST to the configured server\n\n## Configuration\n\n### Default Settings\n```typescript\nconst defaultConfig = {\n  // Task tracking defaults\n  interval: 3000,           // 3 seconds\n  minDistance: 10,          // 10 meters\n  highAccuracy: true,       // Use GPS\n  \n  // Work hour tracking defaults\n  uploadInterval: 300000,   // 5 minutes\n  enableOfflineQueue: true, // Enable offline support\n  maxQueueSize: 1000,      // Maximum queued locations\n  \n  // Database settings\n  maxStoredLocations: 10000, // Auto-cleanup threshold\n  locationValidityTime: 30000, // 30 seconds\n};\n```\n\n### Environment Configuration\nFor different deployment environments:\n\n```typescript\nconst configs = {\n  development: {\n    uploadInterval: 10000,    // 10 seconds for testing\n    serverUrl: 'http://localhost:3000/api/locations',\n    enableDebugLogging: true\n  },\n  \n  staging: {\n    uploadInterval: 60000,    // 1 minute for staging\n    serverUrl: 'https://staging-api.company.com/locations',\n    enableDebugLogging: true\n  },\n  \n  production: {\n    uploadInterval: 300000,   // 5 minutes for production\n    serverUrl: 'https://api.company.com/locations',\n    enableDebugLogging: false\n  }\n};\n```\n\n## Security Considerations\n\n### Data Protection\n- **Local Storage**: All location data stored in app-private SQLite database\n- **Network Security**: Use HTTPS for all server communications\n- **Authentication**: Support for token-based authentication\n- **Data Minimization**: Only collect necessary location data\n- **Retention Policies**: Implement data cleanup for old locations\n\n### Privacy Best Practices\n1. **User Consent**: Always obtain explicit user consent before tracking\n2. **Transparency**: Clearly explain what data is collected and why\n3. **User Control**: Provide easy start/stop controls\n4. **Data Access**: Allow users to view and delete their data\n5. **Compliance**: Follow GDPR, CCPA, and other applicable regulations\n\n### Permissions Security\n```typescript\n// Always check permissions before sensitive operations\nasync function secureLocationAccess() {\n  const permissions = await BackgroundLocation.checkPermissions();\n  \n  if (permissions.location !== 'granted') {\n    // Explain why permissions are needed\n    showPermissionExplanation();\n    const result = await BackgroundLocation.requestPermissions();\n    \n    if (result.location !== 'granted') {\n      throw new Error('Location access denied by user');\n    }\n  }\n}\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) and [Developer Guide](DEVELOPER_GUIDE.md) for detailed information about:\n\n- Setting up development environment\n- Code style and conventions\n- Testing requirements\n- Pull request guidelines\n- Architecture documentation\n\n### Quick Development Setup\n```bash\n# Clone the repository\ngit clone https://github.com/elsapiens/backgroundlocation.git\ncd backgroundlocation\n\n# Install dependencies\nnpm install\n\n# Build the plugin\nnpm run build\n\n# Run tests\nnpm test\n```\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n## Support\n\n- **Documentation**: [API Documentation](API_DOCUMENTATION.md) | [Developer Guide](DEVELOPER_GUIDE.md) | [Setup Guide](SETUP_GUIDE.md)\n- **Issues**: [GitHub Issues](https://github.com/elsapiens/backgroundlocation/issues)\n- **Company**: [Elsapiens](https://elsapiens.com) - Enterprise mobile solutions\n- **Author**: Dawn Dharmishtan\n\n---\n```\n\n## API\n\n<docgen-index>\n\n* [`checkPermissions()`](#checkpermissions)\n* [`requestPermissions(...)`](#requestpermissions)\n* [`isLocationServiceEnabled()`](#islocationserviceenabled)\n* [`openLocationSettings()`](#openlocationsettings)\n* [`openDeviceLocationSettings()`](#opendevicelocationsettings)\n* [`isIgnoringBatteryOptimizations()`](#isignoringbatteryoptimizations)\n* [`openBatteryOptimizationSettings()`](#openbatteryoptimizationsettings)\n* [`startTracking(...)`](#starttracking)\n* [`stopTracking()`](#stoptracking)\n* [`getTrackingStatus()`](#gettrackingstatus)\n* [`getCurrentLocation(...)`](#getcurrentlocation)\n* [`cancelCurrentLocationRequest()`](#cancelcurrentlocationrequest)\n* [`getStoredLocations(...)`](#getstoredlocations)\n* [`clearStoredLocations()`](#clearstoredlocations)\n* [`getLastLocation(...)`](#getlastlocation)\n* [`startLocationStatusTracking()`](#startlocationstatustracking)\n* [`stopLocationStatusTracking()`](#stoplocationstatustracking)\n* [`startWorkHourTracking(...)`](#startworkhourtracking)\n* [`stopWorkHourTracking()`](#stopworkhourtracking)\n* [`isWorkHourTrackingActive()`](#isworkhourtrackingactive)\n* [`getQueuedWorkHourLocations()`](#getqueuedworkhourlocations)\n* [`clearQueuedWorkHourLocations()`](#clearqueuedworkhourlocations)\n* [`addGeofence(...)`](#addgeofence)\n* [`removeGeofence(...)`](#removegeofence)\n* [`removeAllGeofences()`](#removeallgeofences)\n* [`listGeofences()`](#listgeofences)\n* [`getPendingGeofenceTransitions()`](#getpendinggeofencetransitions)\n* [`clearPendingGeofenceTransitions()`](#clearpendinggeofencetransitions)\n* [`addListener('locationUpdate', ...)`](#addlistenerlocationupdate-)\n* [`addListener('locationStatus', ...)`](#addlistenerlocationstatus-)\n* [`addListener('currentLocation', ...)`](#addlistenercurrentlocation-)\n* [`addListener('error', ...)`](#addlistenererror-)\n* [`addListener('workHourLocationUpdate', ...)`](#addlistenerworkhourlocationupdate-)\n* [`addListener('workHourLocationUploaded', ...)`](#addlistenerworkhourlocationuploaded-)\n* [`addListener('geofenceTransition', ...)`](#addlistenergeofencetransition-)\n* [`removeAllListeners()`](#removealllisteners)\n* [Interfaces](#interfaces)\n* [Type Aliases](#type-aliases)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\nBackground location tracking for Capacitor.\n\n## Permission flow (Android)\n\n```typescript\nconst status = await BackgroundLocation.checkPermissions();\nif (status.location !== 'granted') {\n  const after = await BackgroundLocation.requestPermissions({ permissions: ['location'] });\n  if (after.location !== 'granted') {\n    // Denied — explain, then send the user to settings:\n    await BackgroundLocation.openLocationSettings();\n    return;\n  }\n}\nconst start = await BackgroundLocation.startTracking({ reference: 'task_1' });\nif (!start.backgroundLocationGranted) {\n  // Tracking runs, but ask for \"Allow all the time\" so it survives backgrounding:\n  await BackgroundLocation.requestPermissions({ permissions: ['backgroundLocation'] });\n}\n```\n\nEvery rejection carries an {@link ErrorCode} in `error.code`; asynchronous\nfailures arrive through the `error` event. Nothing in this plugin crashes the app\non a permission problem.\n\n### checkPermissions()\n\n```typescript\ncheckPermissions() => Promise<PermissionStatus>\n```\n\nCurrent state of all location permission tiers, including the accuracy tier\n(Android 12+ users may grant approximate location only).\n\n**Returns:** <code>Promise&lt;<a href=\"#permissionstatus\">PermissionStatus</a>&gt;</code>\n\n--------------------\n\n\n### requestPermissions(...)\n\n```typescript\nrequestPermissions(options?: RequestPermissionsOptions | undefined) => Promise<PermissionStatus>\n```\n\nRequest location permissions. Foreground and background are requested in\nsequence as Android requires; see {@link <a href=\"#requestpermissionsoptions\">RequestPermissionsOptions</a>} for\nrequesting a single tier (recommended UX).\n\nOnce a tier reports `denied`, Android will not show the dialog again — use\n`openLocationSettings()` and let the user grant it manually.\n\n| Param         | Type                                                                            |\n| ------------- | ------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#requestpermissionsoptions\">RequestPermissionsOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#permissionstatus\">PermissionStatus</a>&gt;</code>\n\n--------------------\n\n\n### isLocationServiceEnabled()\n\n```typescript\nisLocationServiceEnabled() => Promise<{ enabled: boolean; }>\n```\n\nWhether device location services (the GPS toggle) are enabled.\n\n**Returns:** <code>Promise&lt;{ enabled: boolean; }&gt;</code>\n\n--------------------\n\n\n### openLocationSettings()\n\n```typescript\nopenLocationSettings() => Promise<void>\n```\n\nOpen this app's system settings page — where the user grants a previously\ndenied permission or upgrades to \"Allow all the time\".\n\n--------------------\n\n\n### openDeviceLocationSettings()\n\n```typescript\nopenDeviceLocationSettings() => Promise<void>\n```\n\nOpen the device location-services settings — for the GPS-off case.\n\n--------------------\n\n\n### isIgnoringBatteryOptimizations()\n\n```typescript\nisIgnoringBatteryOptimizations() => Promise<BatteryOptimizationStatus>\n```\n\nWhether the app is exempt from battery optimization. On Android, an\noptimized app's tracking service can be delayed by Doze and killed outright by\nvendor battery managers (Xiaomi, Oppo, Vivo, Samsung), so work-hour uploads\nstop for hours. Check this before relying on all-day tracking.\n\n**Returns:** <code>Promise&lt;<a href=\"#batteryoptimizationstatus\">BatteryOptimizationStatus</a>&gt;</code>\n\n--------------------\n\n\n### openBatteryOptimizationSettings()\n\n```typescript\nopenBatteryOptimizationSettings() => Promise<void>\n```\n\nOpen the system screen where the user exempts the app from battery\noptimization (falls back to the app's settings page). The plugin never shows\nthe one-tap `REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` dialog: that permission is\nrestricted by Google Play policy, and declaring it would leak into every\nconsuming app. No-op on iOS and web.\n\n--------------------\n\n\n### startTracking(...)\n\n```typescript\nstartTracking(options: StartTrackingOptions) => Promise<StartTrackingResult>\n```\n\nStart recording a route under `reference`.\n\nRequires foreground location permission and enabled location services\n(rejects with `PERMISSION_DENIED` / `LOCATION_SERVICES_DISABLED` otherwise).\nMissing background permission does NOT reject: tracking starts and the result's\n`backgroundLocationGranted: false` (plus a non-fatal `error` event) tells you to\nask the user for \"Allow all the time\".\n\nThe session is persisted natively and survives app and device restarts until\n`stopTracking()` is called.\n\n| Param         | Type                                                                  |\n| ------------- | --------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#starttrackingoptions\">StartTrackingOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#starttrackingresult\">StartTrackingResult</a>&gt;</code>\n\n--------------------\n\n\n### stopTracking()\n\n```typescript\nstopTracking() => Promise<void>\n```\n\nStop the active tracking session. Idempotent — never rejects when inactive.\n\n--------------------\n\n\n### getTrackingStatus()\n\n```typescript\ngetTrackingStatus() => Promise<TrackingStatus>\n```\n\nCurrent native tracking state — useful to resync UI after an app restart.\n\n**Returns:** <code>Promise&lt;<a href=\"#trackingstatus\">TrackingStatus</a>&gt;</code>\n\n--------------------\n\n\n### getCurrentLocation(...)\n\n```typescript\ngetCurrentLocation(options?: CurrentLocationOptions | undefined) => Promise<CurrentLocation>\n```\n\nGet the device's current position.\n\nWith `targetAccuracy` set, fixes stream as `currentLocation` events until one\nmeets the target (see {@link <a href=\"#currentlocationoptions\">CurrentLocationOptions</a>}) — use this to show a\nlive \"improving accuracy\" indicator while waiting for a precise fix.\n\n| Param         | Type                                                                      |\n| ------------- | ------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#currentlocationoptions\">CurrentLocationOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#currentlocation\">CurrentLocation</a>&gt;</code>\n\n--------------------\n\n\n### cancelCurrentLocationRequest()\n\n```typescript\ncancelCurrentLocationRequest() => Promise<void>\n```\n\nCancel an in-flight progressive `getCurrentLocation()` request; its promise\nrejects with `CANCELLED`.\n\n--------------------\n\n\n### getStoredLocations(...)\n\n```typescript\ngetStoredLocations(options: { reference: string; }) => Promise<{ locations: LocationData[]; }>\n```\n\nAll recorded fixes for a reference, oldest first.\n\n| Param         | Type                                |\n| ------------- | ----------------------------------- |\n| **`options`** | <code>{ reference: string; }</code> |\n\n**Returns:** <code>Promise&lt;{ locations: LocationData[]; }&gt;</code>\n\n--------------------\n\n\n### clearStoredLocations()\n\n```typescript\nclearStoredLocations() => Promise<void>\n```\n\nDelete all stored fixes.\n\n--------------------\n\n\n### getLastLocation(...)\n\n```typescript\ngetLastLocation(options: { reference: string; }) => Promise<LocationData>\n```\n\nLatest stored fix for a reference. Also re-emits it as a `locationUpdate`\nevent. Rejects with `NOT_FOUND` when nothing is stored yet.\n\n| Param         | Type                                |\n| ------------- | ----------------------------------- |\n| **`options`** | <code>{ reference: string; }</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#locationdata\">LocationData</a>&gt;</code>\n\n--------------------\n\n\n### startLocationStatusTracking()\n\n```typescript\nstartLocationStatusTracking() => Promise<void>\n```\n\nStart emitting `locationStatus` events when the user toggles device location\nservices. Needs no permission — safe to call on app start.\n\n--------------------\n\n\n### stopLocationStatusTracking()\n\n```typescript\nstopLocationStatusTracking() => Promise<void>\n```\n\nStop emitting `locationStatus` events.\n\n--------------------\n\n\n### startWorkHourTracking(...)\n\n```typescript\nstartWorkHourTracking(options: WorkHourTrackingOptions) => Promise<StartTrackingResult>\n```\n\nStart periodic location uploads to `serverUrl` (persists across app kills as a\nforeground service). Same permission model as `startTracking()`.\n\n| Param         | Type                                                                        |\n| ------------- | --------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#workhourtrackingoptions\">WorkHourTrackingOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#starttrackingresult\">StartTrackingResult</a>&gt;</code>\n\n--------------------\n\n\n### stopWorkHourTracking()\n\n```typescript\nstopWorkHourTracking() => Promise<void>\n```\n\nStop work-hour tracking. Idempotent.\n\n--------------------\n\n\n### isWorkHourTrackingActive()\n\n```typescript\nisWorkHourTrackingActive() => Promise<{ active: boolean; }>\n```\n\n**Returns:** <code>Promise&lt;{ active: boolean; }&gt;</code>\n\n--------------------\n\n\n### getQueuedWorkHourLocations()\n\n```typescript\ngetQueuedWorkHourLocations() => Promise<{ locations: WorkHourLocationData[]; }>\n```\n\nFixes queued for upload, as visible to this app process.\n\n**Returns:** <code>Promise&lt;{ locations: WorkHourLocationData[]; }&gt;</code>\n\n--------------------\n\n\n### clearQueuedWorkHourLocations()\n\n```typescript\nclearQueuedWorkHourLocations() => Promise<void>\n```\n\n--------------------\n\n\n### addGeofence(...)\n\n```typescript\naddGeofence(options: Geofence) => Promise<void>\n```\n\nStart monitoring a circular region. Replaces any region with the same id.\n\nRejects with `BACKGROUND_PERMISSION_DENIED` when \"Allow all the time\" has\nnot been granted — registering the region anyway would produce a watch that\nsilently never fires, which is worse than a clear failure.\n\n| Param         | Type                                          |\n| ------------- | --------------------------------------------- |\n| **`options`** | <code><a href=\"#geofence\">Geofence</a></code> |\n\n--------------------\n\n\n### removeGeofence(...)\n\n```typescript\nremoveGeofence(options: { id: string; }) => Promise<void>\n```\n\nStop monitoring one region. Succeeds whether or not it was registered.\n\n| Param         | Type                         |\n| ------------- | ---------------------------- |\n| **`options`** | <code>{ id: string; }</code> |\n\n--------------------\n\n\n### removeAllGeofences()\n\n```typescript\nremoveAllGeofences() => Promise<void>\n```\n\nStop monitoring every region this plugin registered.\n\n--------------------\n\n\n### listGeofences()\n\n```typescript\nlistGeofences() => Promise<{ geofences: Geofence[]; }>\n```\n\nThe regions currently being monitored.\n\n**Returns:** <code>Promise&lt;{ geofences: Geofence[]; }&gt;</code>\n\n--------------------\n\n\n### getPendingGeofenceTransitions()\n\n```typescript\ngetPendingGeofenceTransitions() => Promise<{ transitions: GeofenceTransitionEvent[]; }>\n```\n\nCrossings that fired while no JavaScript listener was attached, oldest\nfirst. Does not consume them — call `clearPendingGeofenceTransitions()`\nonce they are handled.\n\nCall this at startup, every time, right after attaching the listener. A\nregion crossing usually happens with the app dead, so the buffer — not the\nevent — is the normal delivery path; treating it as an edge case means\nmissing most crossings. Nothing is buffered while a listener is attached,\nso this cannot double-deliver a live event.\n\n**Returns:** <code>Promise&lt;{ transitions: GeofenceTransitionEvent[]; }&gt;</code>\n\n--------------------\n\n\n### clearPendingGeofenceTransitions()\n\n```typescript\nclearPendingGeofenceTransitions() => Promise<void>\n```\n\nDiscard buffered crossings. Call after handling them.\n\n--------------------\n\n\n### addListener('locationUpdate', ...)\n\n```typescript\naddListener(eventName: 'locationUpdate', listenerFunc: (data: LocationData) => void) => Promise<PluginListenerHandle>\n```\n\nA fix was recorded for the active tracking session.\n\n| Param              | Type                                                                     |\n| ------------------ | ------------------------------------------------------------------------ |\n| **`eventName`**    | <code>'locationUpdate'</code>                                            |\n| **`listenerFunc`** | <code>(data: <a href=\"#locationdata\">LocationData</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### addListener('locationStatus', ...)\n\n```typescript\naddListener(eventName: 'locationStatus', listenerFunc: (status: { enabled: boolean; }) => void) => Promise<PluginListenerHandle>\n```\n\nDevice location services were toggled on/off.\n\n| Param              | Type                                                    |\n| ------------------ | ------------------------------------------------------- |\n| **`eventName`**    | <code>'locationStatus'</code>                           |\n| **`listenerFunc`** | <code>(status: { enabled: boolean; }) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### addListener('currentLocation', ...)\n\n```typescript\naddListener(eventName: 'currentLocation', listenerFunc: (data: CurrentLocation) => void) => Promise<PluginListenerHandle>\n```\n\nLive fix stream from a progressive `getCurrentLocation()` request.\n\n| Param              | Type                                                                           |\n| ------------------ | ------------------------------------------------------------------------------ |\n| **`eventName`**    | <code>'currentLocation'</code>                                                 |\n| **`listenerFunc`** | <code>(data: <a href=\"#currentlocation\">CurrentLocation</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### addListener('error', ...)\n\n```typescript\naddListener(eventName: 'error', listenerFunc: (error: PluginError) => void) => Promise<PluginListenerHandle>\n```\n\nAsynchronous failure or warning — see {@link <a href=\"#pluginerror\">PluginError</a>}. Listen for\n`BACKGROUND_PERMISSION_DENIED` here to know when to ask the user for\n\"Allow all the time\".\n\n| Param              | Type                                                                    |\n| ------------------ | ----------------------------------------------------------------------- |\n| **`eventName`**    | <code>'error'</code>                                                    |\n| **`listenerFunc`** | <code>(error: <a href=\"#pluginerror\">PluginError</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### addListener('workHourLocationUpdate', ...)\n\n```typescript\naddListener(eventName: 'workHourLocationUpdate', listenerFunc: (data: WorkHourLocationData) => void) => Promise<PluginListenerHandle>\n```\n\nA fix entered the work-hour upload queue.\n\n| Param              | Type                                                                                     |\n| ------------------ | ---------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'workHourLocationUpdate'</code>                                                    |\n| **`listenerFunc`** | <code>(data: <a href=\"#workhourlocationdata\">WorkHourLocationData</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### addListener('workHourLocationUploaded', ...)\n\n```typescript\naddListener(eventName: 'workHourLocationUploaded', listenerFunc: (data: WorkHourUploadResult) => void) => Promise<PluginListenerHandle>\n```\n\nA work-hour upload batch succeeded or failed.\n\n| Param              | Type                                                                                     |\n| ------------------ | ---------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'workHourLocationUploaded'</code>                                                  |\n| **`listenerFunc`** | <code>(data: <a href=\"#workhouruploadresult\">WorkHourUploadResult</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### addListener('geofenceTransition', ...)\n\n```typescript\naddListener(eventName: 'geofenceTransition', listenerFunc: (event: GeofenceTransitionEvent) => void) => Promise<PluginListenerHandle>\n```\n\nThe device entered or left a monitored region, delivered live.\n\nA crossing that fires while the app is dead cannot reach a listener that\ndoes not exist yet; it is buffered instead. Attach this listener AND drain\n`getPendingGeofenceTransitions()` at startup, or you will only ever see the\ncrossings that happen to occur while the app is open.\n\n| Param              | Type                                                                                            |\n| ------------------ | ----------------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'geofenceTransition'</code>                                                               |\n| **`listenerFunc`** | <code>(event: <a href=\"#geofencetransitionevent\">GeofenceTransitionEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() => Promise<void>\n```\n\nRemove all listeners registered by this plugin.\n\n--------------------\n\n\n### Interfaces\n\n\n#### PermissionStatus\n\n| Prop                     | Type                                                                    | Description                                                                                                                                                                                             |\n| ------------------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **`location`**           | <code><a href=\"#permissionstate\">PermissionState</a></code>             | Foreground (\"while in use\") location permission. Granted when fine OR coarse is granted.                                                                                                                |\n| **`backgroundLocation`** | <code><a href=\"#permissionstate\">PermissionState</a></code>             | Background (\"allow all the time\") location permission.                                                                                                                                                  |\n| **`accuracy`**           | <code><a href=\"#locationaccuracylevel\">LocationAccuracyLevel</a></code> | Accuracy tier the user granted. `coarse` means approximate location only.                                                                                                                               |\n| **`foregroundService`**  | <code>'granted' \\| 'denied'</code>                                      | Install-time FOREGROUND_SERVICE_LOCATION permission (Android 14+). `denied` means the host app's AndroidManifest.xml is missing the declaration — an integration error, not something the user can fix. |\n\n\n#### RequestPermissionsOptions\n\n| Prop              | Type                                                | Description                                                                                                                                                                                                                                                                                                                                                                  |\n| ----------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **`permissions`** | <code>('location' \\| 'backgroundLocation')[]</code> | Which permission tiers to request. Defaults to both, requested in the required order: foreground first (system dialog), then background (Android opens the app's location settings where the user picks \"Allow all the time\"). Best practice: request `['location']` when tracking starts, and request `['backgroundLocation']` separately after explaining why you need it. |\n\n\n#### BatteryOptimizationStatus\n\n| Prop           | Type                 | Description                                                                                                                                                      |\n| -------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **`ignoring`** | <code>boolean</code> | true when the OS exempts this app from battery optimization (Android \"Don't optimize\" / \"Unrestricted\"). Always true on iOS and web, which have no such setting. |\n\n\n#### StartTrackingResult\n\n| Prop                            | Type                                                                    | Description                                                                                                                                                                                                                     |\n| ------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **`backgroundLocationGranted`** | <code>boolean</code>                                                    | false when tracking started with foreground permission only. Tracking works while the service lives, but cannot recover from a background restart — ask the user for \"Allow all the time\" (see `BACKGROUND_PERMISSION_DENIED`). |\n| **`accuracy`**                  | <code><a href=\"#locationaccuracylevel\">LocationAccuracyLevel</a></code> | Accuracy tier tracking runs at. Warn the user when it is `coarse`.                                                                                                                                                              |\n\n\n#### StartTrackingOptions\n\n| Prop                    | Type                 | Description                                                                                                                            |\n| ----------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| **`reference`**         | <code>string</code>  | Identifier the recorded route is stored under (e.g. a task id). Required.                                                              |\n| **`interval`**          | <code>number</code>  | Requested update interval in milliseconds. Default 3000.                                                                               |\n| **`minDistance`**       | <code>number</code>  | Minimum movement in meters between recorded fixes. Default 10.                                                                         |\n| **`highAccuracy`**      | <code>boolean</code> | true (default) = GPS-grade accuracy; false = balanced power.                                                                           |\n| **`maxAccuracy`**       | <code>number</code>  | Worst acceptable horizontal accuracy in meters; less accurate fixes are discarded instead of polluting the recorded route. Default 30. |\n| **`notificationTitle`** | <code>string</code>  | Title of the persistent tracking notification. Defaults to an English string.                                                          |\n| **`notificationText`**  | <code>string</code>  | Body text of the persistent tracking notification.                                                                                     |\n\n\n#### TrackingStatus\n\n| Prop                     | Type                        | Description                                                          |\n| ------------------------ | --------------------------- | -------------------------------------------------------------------- |\n| **`isTracking`**         | <code>boolean</code>        | true when a task tracking session is active (survives app restarts). |\n| **`isWorkHourTracking`** | <code>boolean</code>        | true when work-hour tracking is active.                              |\n| **`reference`**          | <code>string \\| null</code> | Reference of the active task session, or null.                       |\n\n\n#### CurrentLocation\n\n| Prop                 | Type                 | Description                                                               |\n| -------------------- | -------------------- | ------------------------------------------------------------------------- |\n| **`latitude`**       | <code>number</code>  |                                                                           |\n| **`longitude`**      | <code>number</code>  |                                                                           |\n| **`accuracy`**       | <code>number</code>  | Horizontal accuracy of this fix in meters.                                |\n| **`altitude`**       | <code>number</code>  |                                                                           |\n| **`speed`**          | <code>number</code>  |                                                                           |\n| **`heading`**        | <code>number</code>  |                                                                           |\n| **`timestamp`**      | <code>number</code>  |                                                                           |\n| **`isFinal`**        | <code>boolean</code> | true when this fix ended the request (target met or timeout).             |\n| **`timedOut`**       | <code>boolean</code> | true when the request timed out before reaching the target accuracy.      |\n| **`targetAccuracy`** | <code>number</code>  | Echo of the requested target accuracy (only on `currentLocation` events). |\n\n\n#### CurrentLocationOptions\n\n| Prop                 | Type                | Description                                                                                                                                                                                                                                                                                                           |\n| -------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **`targetAccuracy`** | <code>number</code> | Desired horizontal accuracy in meters. When set, the plugin keeps requesting fixes and emits each one as a `currentLocation` event (live, so the UI can show the position refining) until a fix meets this accuracy — that fix resolves the promise with `isFinal: true`. When omitted, the first fresh fix resolves. |\n| **`timeout`**        | <code>number</code> | Give-up time in milliseconds (default 30000). On timeout the most accurate fix seen so far resolves with `timedOut: true`; if nothing usable arrived the call rejects with `LOCATION_UNAVAILABLE`.                                                                                                                    |\n\n\n#### LocationData\n\n| Prop                   | Type                | Description                                              |\n| ---------------------- | ------------------","readmeFilename":"README.md"}