@josuelmm/capacitor-background-geolocation 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/JosuelmmCapacitorBackgroundGeolocation.podspec +34 -0
  2. package/LICENSE +17 -0
  3. package/NOTICE.md +32 -0
  4. package/Package.swift +45 -0
  5. package/README.md +402 -0
  6. package/android/build.gradle +79 -0
  7. package/android/proguard-rules.pro +1 -0
  8. package/android/src/main/AndroidManifest.xml +83 -0
  9. package/android/src/main/java/com/evgenii/jsevaluator/HandlerWrapper.java +18 -0
  10. package/android/src/main/java/com/evgenii/jsevaluator/JavaScriptInterface.java +22 -0
  11. package/android/src/main/java/com/evgenii/jsevaluator/JsEvaluator.java +133 -0
  12. package/android/src/main/java/com/evgenii/jsevaluator/JsFunctionCallFormatter.java +37 -0
  13. package/android/src/main/java/com/evgenii/jsevaluator/WebViewWrapper.java +71 -0
  14. package/android/src/main/java/com/evgenii/jsevaluator/interfaces/CallJavaResultInterface.java +8 -0
  15. package/android/src/main/java/com/evgenii/jsevaluator/interfaces/HandlerWrapperInterface.java +5 -0
  16. package/android/src/main/java/com/evgenii/jsevaluator/interfaces/JsCallback.java +10 -0
  17. package/android/src/main/java/com/evgenii/jsevaluator/interfaces/JsEvaluatorInterface.java +18 -0
  18. package/android/src/main/java/com/evgenii/jsevaluator/interfaces/WebViewWrapperInterface.java +14 -0
  19. package/android/src/main/java/com/josuelmm/capacitor/backgroundgeolocation/BackgroundGeolocationPlugin.java +898 -0
  20. package/android/src/main/java/com/josuelmm/capacitor/backgroundgeolocation/ConfigMapper.java +303 -0
  21. package/android/src/main/java/com/josuelmm/capacitor/backgroundgeolocation/HeadlessTaskRegistry.java +34 -0
  22. package/android/src/main/java/com/josuelmm/capacitor/backgroundgeolocation/JsEvaluatorTaskRunner.java +63 -0
  23. package/android/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +699 -0
  24. package/android/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +103 -0
  25. package/android/src/main/java/com/marianhello/bgloc/Config.java +1155 -0
  26. package/android/src/main/java/com/marianhello/bgloc/ConnectivityListener.java +5 -0
  27. package/android/src/main/java/com/marianhello/bgloc/HttpPostService.java +362 -0
  28. package/android/src/main/java/com/marianhello/bgloc/LocationManager.java +138 -0
  29. package/android/src/main/java/com/marianhello/bgloc/PluginDelegate.java +45 -0
  30. package/android/src/main/java/com/marianhello/bgloc/PluginException.java +38 -0
  31. package/android/src/main/java/com/marianhello/bgloc/PostLocationTask.java +238 -0
  32. package/android/src/main/java/com/marianhello/bgloc/ResourceResolver.java +55 -0
  33. package/android/src/main/java/com/marianhello/bgloc/data/AbstractLocationTemplate.java +69 -0
  34. package/android/src/main/java/com/marianhello/bgloc/data/ArrayListLocationTemplate.java +88 -0
  35. package/android/src/main/java/com/marianhello/bgloc/data/BackgroundActivity.java +108 -0
  36. package/android/src/main/java/com/marianhello/bgloc/data/BackgroundLocation.java +1088 -0
  37. package/android/src/main/java/com/marianhello/bgloc/data/ConfigJsonMapper.java +211 -0
  38. package/android/src/main/java/com/marianhello/bgloc/data/ConfigurationDAO.java +13 -0
  39. package/android/src/main/java/com/marianhello/bgloc/data/DAOFactory.java +17 -0
  40. package/android/src/main/java/com/marianhello/bgloc/data/HashMapLocationTemplate.java +82 -0
  41. package/android/src/main/java/com/marianhello/bgloc/data/LocationDAO.java +27 -0
  42. package/android/src/main/java/com/marianhello/bgloc/data/LocationTemplate.java +12 -0
  43. package/android/src/main/java/com/marianhello/bgloc/data/LocationTemplateFactory.java +71 -0
  44. package/android/src/main/java/com/marianhello/bgloc/data/LocationTransform.java +19 -0
  45. package/android/src/main/java/com/marianhello/bgloc/data/SessionLocationDAO.java +18 -0
  46. package/android/src/main/java/com/marianhello/bgloc/data/provider/ContentProviderLocationDAO.java +406 -0
  47. package/android/src/main/java/com/marianhello/bgloc/data/provider/LocationContentProvider.java +321 -0
  48. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationContract.java +94 -0
  49. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java +227 -0
  50. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java +122 -0
  51. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java +550 -0
  52. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +189 -0
  53. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteSessionContract.java +74 -0
  54. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteSessionLocationDAO.java +169 -0
  55. package/android/src/main/java/com/marianhello/bgloc/driving/DrivingEventsDetector.java +265 -0
  56. package/android/src/main/java/com/marianhello/bgloc/headless/AbstractTaskRunner.java +15 -0
  57. package/android/src/main/java/com/marianhello/bgloc/headless/ActivityTask.java +48 -0
  58. package/android/src/main/java/com/marianhello/bgloc/headless/JsCallback.java +10 -0
  59. package/android/src/main/java/com/marianhello/bgloc/headless/LocationTask.java +60 -0
  60. package/android/src/main/java/com/marianhello/bgloc/headless/StationaryTask.java +25 -0
  61. package/android/src/main/java/com/marianhello/bgloc/headless/Task.java +8 -0
  62. package/android/src/main/java/com/marianhello/bgloc/headless/TaskRunner.java +5 -0
  63. package/android/src/main/java/com/marianhello/bgloc/headless/TaskRunnerFactory.java +8 -0
  64. package/android/src/main/java/com/marianhello/bgloc/http/UrlTemplateResolver.java +115 -0
  65. package/android/src/main/java/com/marianhello/bgloc/oem/BatteryOemHelper.java +214 -0
  66. package/android/src/main/java/com/marianhello/bgloc/provider/AbstractLocationProvider.java +218 -0
  67. package/android/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java +385 -0
  68. package/android/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +685 -0
  69. package/android/src/main/java/com/marianhello/bgloc/provider/LocationProvider.java +32 -0
  70. package/android/src/main/java/com/marianhello/bgloc/provider/LocationProviderFactory.java +47 -0
  71. package/android/src/main/java/com/marianhello/bgloc/provider/ProviderDelegate.java +12 -0
  72. package/android/src/main/java/com/marianhello/bgloc/provider/RawLocationProvider.java +175 -0
  73. package/android/src/main/java/com/marianhello/bgloc/sensor/SensorFusionDetector.java +199 -0
  74. package/android/src/main/java/com/marianhello/bgloc/service/LocationService.java +16 -0
  75. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +1531 -0
  76. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceInfo.java +6 -0
  77. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceInfoImpl.java +41 -0
  78. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceIntentBuilder.java +203 -0
  79. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceProxy.java +156 -0
  80. package/android/src/main/java/com/marianhello/bgloc/sync/AccountHelper.java +39 -0
  81. package/android/src/main/java/com/marianhello/bgloc/sync/Authenticator.java +68 -0
  82. package/android/src/main/java/com/marianhello/bgloc/sync/AuthenticatorService.java +28 -0
  83. package/android/src/main/java/com/marianhello/bgloc/sync/BatchManager.java +311 -0
  84. package/android/src/main/java/com/marianhello/bgloc/sync/NotificationHelper.java +148 -0
  85. package/android/src/main/java/com/marianhello/bgloc/sync/SyncAdapter.java +301 -0
  86. package/android/src/main/java/com/marianhello/bgloc/sync/SyncService.java +68 -0
  87. package/android/src/main/java/com/marianhello/logging/DBLogReader.java +208 -0
  88. package/android/src/main/java/com/marianhello/logging/LogEntry.java +99 -0
  89. package/android/src/main/java/com/marianhello/logging/LoggerManager.java +70 -0
  90. package/android/src/main/java/com/marianhello/logging/UncaughtExceptionLogger.java +36 -0
  91. package/android/src/main/java/com/marianhello/utils/CloneHelper.java +22 -0
  92. package/android/src/main/java/com/marianhello/utils/Convert.java +56 -0
  93. package/android/src/main/java/com/marianhello/utils/TextUtils.java +72 -0
  94. package/android/src/main/java/com/marianhello/utils/ToneGenerator.java +68 -0
  95. package/android/src/main/java/org/apache/commons/io/Charsets.java +153 -0
  96. package/android/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java +344 -0
  97. package/android/src/main/java/org/chromium/content/browser/ThreadUtils.java +134 -0
  98. package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlExpression.java +398 -0
  99. package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlSelectStatement.java +671 -0
  100. package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlStatement.java +29 -0
  101. package/android/src/main/java/ru/andremoniy/utils/TextUtils.java +61 -0
  102. package/android/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  103. package/android/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  104. package/android/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  105. package/android/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  106. package/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  107. package/android/src/main/res/values/strings.xml +15 -0
  108. package/android/src/main/res/xml/authenticator.xml +7 -0
  109. package/android/src/main/res/xml/syncadapter.xml +9 -0
  110. package/dist/esm/definitions.d.ts +1052 -0
  111. package/dist/esm/definitions.js +142 -0
  112. package/dist/esm/definitions.js.map +1 -0
  113. package/dist/esm/index.d.ts +8 -0
  114. package/dist/esm/index.js +23 -0
  115. package/dist/esm/index.js.map +1 -0
  116. package/dist/esm/web.d.ts +92 -0
  117. package/dist/esm/web.js +242 -0
  118. package/dist/esm/web.js.map +1 -0
  119. package/dist/plugin.cjs.js +415 -0
  120. package/dist/plugin.cjs.js.map +1 -0
  121. package/dist/plugin.js +418 -0
  122. package/dist/plugin.js.map +1 -0
  123. package/ios/Sources/BackgroundGeolocationPlugin/BackgroundGeolocationPlugin-Bridging-Header.h +18 -0
  124. package/ios/Sources/BackgroundGeolocationPlugin/BackgroundGeolocationPlugin.m +52 -0
  125. package/ios/Sources/BackgroundGeolocationPlugin/BackgroundGeolocationPlugin.swift +750 -0
  126. package/ios/Tests/BackgroundGeolocationPluginTests/BackgroundGeolocationPluginTests.swift +12 -0
  127. package/ios/common/BackgroundGeolocation/CocoaLumberjack.h +1945 -0
  128. package/ios/common/BackgroundGeolocation/CocoaLumberjack.m +5255 -0
  129. package/ios/common/BackgroundGeolocation/FMDB.h +2357 -0
  130. package/ios/common/BackgroundGeolocation/FMDB.m +2672 -0
  131. package/ios/common/BackgroundGeolocation/FMDBLogger.h +42 -0
  132. package/ios/common/BackgroundGeolocation/FMDBLogger.m +264 -0
  133. package/ios/common/BackgroundGeolocation/INTULocationManager/INTUHeadingRequest.h +41 -0
  134. package/ios/common/BackgroundGeolocation/INTULocationManager/INTUHeadingRequest.m +68 -0
  135. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager+Internal.h +33 -0
  136. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager.h +178 -0
  137. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager.m +1025 -0
  138. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequest.h +103 -0
  139. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequest.m +238 -0
  140. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequestDefines.h +163 -0
  141. package/ios/common/BackgroundGeolocation/INTULocationManager/INTURequestIDGenerator.h +39 -0
  142. package/ios/common/BackgroundGeolocation/INTULocationManager/INTURequestIDGenerator.m +37 -0
  143. package/ios/common/BackgroundGeolocation/MAURAbstractLocationProvider.h +51 -0
  144. package/ios/common/BackgroundGeolocation/MAURAbstractLocationProvider.m +53 -0
  145. package/ios/common/BackgroundGeolocation/MAURActivity.h +23 -0
  146. package/ios/common/BackgroundGeolocation/MAURActivity.m +52 -0
  147. package/ios/common/BackgroundGeolocation/MAURActivityLocationProvider.h +18 -0
  148. package/ios/common/BackgroundGeolocation/MAURActivityLocationProvider.m +340 -0
  149. package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.h +88 -0
  150. package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +1193 -0
  151. package/ios/common/BackgroundGeolocation/MAURBackgroundSync.h +46 -0
  152. package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +283 -0
  153. package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.h +25 -0
  154. package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.m +105 -0
  155. package/ios/common/BackgroundGeolocation/MAURConfig.h +99 -0
  156. package/ios/common/BackgroundGeolocation/MAURConfig.m +636 -0
  157. package/ios/common/BackgroundGeolocation/MAURConfigurationContract.h +53 -0
  158. package/ios/common/BackgroundGeolocation/MAURConfigurationContract.m +54 -0
  159. package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.h +20 -0
  160. package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.m +550 -0
  161. package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.h +17 -0
  162. package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.m +124 -0
  163. package/ios/common/BackgroundGeolocation/MAURLocation.h +73 -0
  164. package/ios/common/BackgroundGeolocation/MAURLocation.m +392 -0
  165. package/ios/common/BackgroundGeolocation/MAURLocationContract.h +38 -0
  166. package/ios/common/BackgroundGeolocation/MAURLocationContract.m +39 -0
  167. package/ios/common/BackgroundGeolocation/MAURLocationManager.h +53 -0
  168. package/ios/common/BackgroundGeolocation/MAURLocationManager.m +305 -0
  169. package/ios/common/BackgroundGeolocation/MAURLogReader.h +26 -0
  170. package/ios/common/BackgroundGeolocation/MAURLogReader.m +122 -0
  171. package/ios/common/BackgroundGeolocation/MAURLogging.h +19 -0
  172. package/ios/common/BackgroundGeolocation/MAURPostLocationTask.h +53 -0
  173. package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +367 -0
  174. package/ios/common/BackgroundGeolocation/MAURProviderDelegate.h +52 -0
  175. package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.h +18 -0
  176. package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.m +138 -0
  177. package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.h +26 -0
  178. package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.m +335 -0
  179. package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.h +57 -0
  180. package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.m +93 -0
  181. package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.h +52 -0
  182. package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.m +520 -0
  183. package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.h +32 -0
  184. package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.m +276 -0
  185. package/ios/common/BackgroundGeolocation/MAURSensorFusionDetector.h +41 -0
  186. package/ios/common/BackgroundGeolocation/MAURSensorFusionDetector.m +137 -0
  187. package/ios/common/BackgroundGeolocation/MAURSessionLocationContract.h +29 -0
  188. package/ios/common/BackgroundGeolocation/MAURSessionLocationContract.m +31 -0
  189. package/ios/common/BackgroundGeolocation/MAURSessionLocationDAO.h +25 -0
  190. package/ios/common/BackgroundGeolocation/MAURSessionLocationDAO.m +153 -0
  191. package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.h +20 -0
  192. package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.m +62 -0
  193. package/ios/common/BackgroundGeolocation/MAURUrlTemplateResolver.h +31 -0
  194. package/ios/common/BackgroundGeolocation/MAURUrlTemplateResolver.m +107 -0
  195. package/ios/common/BackgroundGeolocation/Reachability.h +102 -0
  196. package/ios/common/BackgroundGeolocation/Reachability.m +475 -0
  197. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/README.md +170 -0
  198. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/ext/NSString+ZIMString.h +55 -0
  199. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/ext/NSString+ZIMString.m +47 -0
  200. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlDataManipulationCommand.h +27 -0
  201. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlExpression.h +250 -0
  202. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlExpression.m +259 -0
  203. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlSelectStatement.h +360 -0
  204. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlSelectStatement.m +427 -0
  205. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlStatement.h +37 -0
  206. package/ios/common/BackgroundGeolocation/module.modulemap +16 -0
  207. package/package.json +82 -0
@@ -0,0 +1,142 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) 2026 JosueLMM
3
+ //
4
+ // Capacitor plugin definitions for @josuelmm/capacitor-background-geolocation.
5
+ // Mirrors @josuelmm/cordova-background-geolocation's www/BackgroundGeolocation.d.ts
6
+ // 1:1 for v1.0.0 parity. Cordova success/fail callbacks are collapsed into
7
+ // Promises; `on(eventName, cb)` becomes Capacitor's `addListener` overloads.
8
+ /**
9
+ * Numeric mapping of {@link LocationProvider} matching the Cordova plugin.
10
+ *
11
+ * @since 1.0.0
12
+ */
13
+ export const LocationProviderValue = {
14
+ DISTANCE_FILTER: 0,
15
+ ACTIVITY_PROVIDER: 1,
16
+ RAW_PROVIDER: 2,
17
+ };
18
+ /**
19
+ * Meters mapping of {@link Accuracy} (matches the Cordova plugin's `AccuracyLevel`).
20
+ *
21
+ * @since 1.0.0
22
+ */
23
+ export const AccuracyValue = {
24
+ HIGH: 0,
25
+ MEDIUM: 100,
26
+ LOW: 1000,
27
+ PASSIVE: 10000,
28
+ };
29
+ /**
30
+ * Service authorization state, mirroring the Cordova plugin constants.
31
+ *
32
+ * @since 1.0.0
33
+ */
34
+ export var AuthorizationStatus;
35
+ (function (AuthorizationStatus) {
36
+ AuthorizationStatus[AuthorizationStatus["NOT_AUTHORIZED"] = 0] = "NOT_AUTHORIZED";
37
+ AuthorizationStatus[AuthorizationStatus["AUTHORIZED"] = 1] = "AUTHORIZED";
38
+ AuthorizationStatus[AuthorizationStatus["AUTHORIZED_FOREGROUND"] = 2] = "AUTHORIZED_FOREGROUND";
39
+ })(AuthorizationStatus || (AuthorizationStatus = {}));
40
+ // ---------------------------------------------------------------------------
41
+ // @awesome-cordova-plugins compatibility re-exports
42
+ // ---------------------------------------------------------------------------
43
+ /** Event name strings (compatibility with `@awesome-cordova-plugins` style). @since 1.0.0 */
44
+ export var BackgroundGeolocationEvents;
45
+ (function (BackgroundGeolocationEvents) {
46
+ BackgroundGeolocationEvents["http_authorization"] = "http_authorization";
47
+ BackgroundGeolocationEvents["abort_requested"] = "abort_requested";
48
+ BackgroundGeolocationEvents["background"] = "background";
49
+ BackgroundGeolocationEvents["foreground"] = "foreground";
50
+ BackgroundGeolocationEvents["authorization"] = "authorization";
51
+ BackgroundGeolocationEvents["error"] = "error";
52
+ BackgroundGeolocationEvents["stop"] = "stop";
53
+ BackgroundGeolocationEvents["start"] = "start";
54
+ BackgroundGeolocationEvents["activity"] = "activity";
55
+ BackgroundGeolocationEvents["stationary"] = "stationary";
56
+ BackgroundGeolocationEvents["location"] = "location";
57
+ BackgroundGeolocationEvents["heartbeat"] = "heartbeat";
58
+ BackgroundGeolocationEvents["syncStart"] = "syncStart";
59
+ BackgroundGeolocationEvents["syncProgress"] = "syncProgress";
60
+ BackgroundGeolocationEvents["syncSuccess"] = "syncSuccess";
61
+ BackgroundGeolocationEvents["syncError"] = "syncError";
62
+ BackgroundGeolocationEvents["tripStart"] = "tripStart";
63
+ BackgroundGeolocationEvents["tripEnd"] = "tripEnd";
64
+ BackgroundGeolocationEvents["moving"] = "moving";
65
+ BackgroundGeolocationEvents["stopped"] = "stopped";
66
+ BackgroundGeolocationEvents["speeding"] = "speeding";
67
+ BackgroundGeolocationEvents["providerChange"] = "providerChange";
68
+ BackgroundGeolocationEvents["sos"] = "sos";
69
+ BackgroundGeolocationEvents["hardBrake"] = "hardBrake";
70
+ BackgroundGeolocationEvents["rapidAcceleration"] = "rapidAcceleration";
71
+ BackgroundGeolocationEvents["sharpTurn"] = "sharpTurn";
72
+ BackgroundGeolocationEvents["possibleCrash"] = "possibleCrash";
73
+ BackgroundGeolocationEvents["phoneUsageWhileDriving"] = "phoneUsageWhileDriving";
74
+ })(BackgroundGeolocationEvents || (BackgroundGeolocationEvents = {}));
75
+ /** Location error codes. @since 1.0.0 */
76
+ export var BackgroundGeolocationLocationCode;
77
+ (function (BackgroundGeolocationLocationCode) {
78
+ BackgroundGeolocationLocationCode[BackgroundGeolocationLocationCode["PERMISSION_DENIED"] = 1] = "PERMISSION_DENIED";
79
+ BackgroundGeolocationLocationCode[BackgroundGeolocationLocationCode["LOCATION_UNAVAILABLE"] = 2] = "LOCATION_UNAVAILABLE";
80
+ BackgroundGeolocationLocationCode[BackgroundGeolocationLocationCode["TIMEOUT"] = 3] = "TIMEOUT";
81
+ })(BackgroundGeolocationLocationCode || (BackgroundGeolocationLocationCode = {}));
82
+ /** Native provider strings. @since 1.0.0 */
83
+ export var BackgroundGeolocationNativeProvider;
84
+ (function (BackgroundGeolocationNativeProvider) {
85
+ BackgroundGeolocationNativeProvider["gps"] = "gps";
86
+ BackgroundGeolocationNativeProvider["network"] = "network";
87
+ BackgroundGeolocationNativeProvider["passive"] = "passive";
88
+ BackgroundGeolocationNativeProvider["fused"] = "fused";
89
+ })(BackgroundGeolocationNativeProvider || (BackgroundGeolocationNativeProvider = {}));
90
+ /** Location provider IDs. @since 1.0.0 */
91
+ export var BackgroundGeolocationLocationProvider;
92
+ (function (BackgroundGeolocationLocationProvider) {
93
+ BackgroundGeolocationLocationProvider[BackgroundGeolocationLocationProvider["DISTANCE_FILTER_PROVIDER"] = 0] = "DISTANCE_FILTER_PROVIDER";
94
+ BackgroundGeolocationLocationProvider[BackgroundGeolocationLocationProvider["ACTIVITY_PROVIDER"] = 1] = "ACTIVITY_PROVIDER";
95
+ BackgroundGeolocationLocationProvider[BackgroundGeolocationLocationProvider["RAW_PROVIDER"] = 2] = "RAW_PROVIDER";
96
+ })(BackgroundGeolocationLocationProvider || (BackgroundGeolocationLocationProvider = {}));
97
+ /** Authorization status. @since 1.0.0 */
98
+ export var BackgroundGeolocationAuthorizationStatus;
99
+ (function (BackgroundGeolocationAuthorizationStatus) {
100
+ BackgroundGeolocationAuthorizationStatus[BackgroundGeolocationAuthorizationStatus["NOT_AUTHORIZED"] = 0] = "NOT_AUTHORIZED";
101
+ BackgroundGeolocationAuthorizationStatus[BackgroundGeolocationAuthorizationStatus["AUTHORIZED"] = 1] = "AUTHORIZED";
102
+ BackgroundGeolocationAuthorizationStatus[BackgroundGeolocationAuthorizationStatus["AUTHORIZED_FOREGROUND"] = 2] = "AUTHORIZED_FOREGROUND";
103
+ })(BackgroundGeolocationAuthorizationStatus || (BackgroundGeolocationAuthorizationStatus = {}));
104
+ /** Log levels. @since 1.0.0 */
105
+ export var BackgroundGeolocationLogLevel;
106
+ (function (BackgroundGeolocationLogLevel) {
107
+ BackgroundGeolocationLogLevel["TRACE"] = "TRACE";
108
+ BackgroundGeolocationLogLevel["DEBUG"] = "DEBUG";
109
+ BackgroundGeolocationLogLevel["INFO"] = "INFO";
110
+ BackgroundGeolocationLogLevel["WARN"] = "WARN";
111
+ BackgroundGeolocationLogLevel["ERROR"] = "ERROR";
112
+ })(BackgroundGeolocationLogLevel || (BackgroundGeolocationLogLevel = {}));
113
+ /** Provider enum (compatibility with `@awesome-cordova-plugins` style). @since 1.0.0 */
114
+ export var BackgroundGeolocationProvider;
115
+ (function (BackgroundGeolocationProvider) {
116
+ BackgroundGeolocationProvider[BackgroundGeolocationProvider["ANDROID_DISTANCE_FILTER_PROVIDER"] = 0] = "ANDROID_DISTANCE_FILTER_PROVIDER";
117
+ BackgroundGeolocationProvider[BackgroundGeolocationProvider["ANDROID_ACTIVITY_PROVIDER"] = 1] = "ANDROID_ACTIVITY_PROVIDER";
118
+ BackgroundGeolocationProvider[BackgroundGeolocationProvider["RAW_PROVIDER"] = 2] = "RAW_PROVIDER";
119
+ })(BackgroundGeolocationProvider || (BackgroundGeolocationProvider = {}));
120
+ /** Desired accuracy in meters. @since 1.0.0 */
121
+ export var BackgroundGeolocationAccuracy;
122
+ (function (BackgroundGeolocationAccuracy) {
123
+ BackgroundGeolocationAccuracy[BackgroundGeolocationAccuracy["HIGH"] = 0] = "HIGH";
124
+ BackgroundGeolocationAccuracy[BackgroundGeolocationAccuracy["MEDIUM"] = 100] = "MEDIUM";
125
+ BackgroundGeolocationAccuracy[BackgroundGeolocationAccuracy["LOW"] = 1000] = "LOW";
126
+ BackgroundGeolocationAccuracy[BackgroundGeolocationAccuracy["PASSIVE"] = 10000] = "PASSIVE";
127
+ })(BackgroundGeolocationAccuracy || (BackgroundGeolocationAccuracy = {}));
128
+ /** Mode for `switchMode`. @since 1.0.0 */
129
+ export var BackgroundGeolocationMode;
130
+ (function (BackgroundGeolocationMode) {
131
+ BackgroundGeolocationMode[BackgroundGeolocationMode["BACKGROUND"] = 0] = "BACKGROUND";
132
+ BackgroundGeolocationMode[BackgroundGeolocationMode["FOREGROUND"] = 1] = "FOREGROUND";
133
+ })(BackgroundGeolocationMode || (BackgroundGeolocationMode = {}));
134
+ /** iOS activity type. @since 1.0.0 */
135
+ export var BackgroundGeolocationIOSActivity;
136
+ (function (BackgroundGeolocationIOSActivity) {
137
+ BackgroundGeolocationIOSActivity["AutomotiveNavigation"] = "AutomotiveNavigation";
138
+ BackgroundGeolocationIOSActivity["OtherNavigation"] = "OtherNavigation";
139
+ BackgroundGeolocationIOSActivity["Fitness"] = "Fitness";
140
+ BackgroundGeolocationIOSActivity["Other"] = "Other";
141
+ })(BackgroundGeolocationIOSActivity || (BackgroundGeolocationIOSActivity = {}));
142
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { BackgroundGeolocationPlugin } from './definitions';
2
+ /**
3
+ * Public plugin. `headlessTask(fn)` serialises the callback before sending it
4
+ * to the native side; every other method is a 1:1 passthrough.
5
+ */
6
+ declare const BackgroundGeolocation: BackgroundGeolocationPlugin;
7
+ export * from './definitions';
8
+ export { BackgroundGeolocation };
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) 2026 JosueLMM
3
+ import { registerPlugin } from '@capacitor/core';
4
+ const NativeBackgroundGeolocation = registerPlugin('BackgroundGeolocation', {
5
+ web: () => import('./web').then((m) => new m.BackgroundGeolocationWeb()),
6
+ });
7
+ /**
8
+ * Public plugin. `headlessTask(fn)` serialises the callback before sending it
9
+ * to the native side; every other method is a 1:1 passthrough.
10
+ */
11
+ const BackgroundGeolocation = new Proxy(NativeBackgroundGeolocation, {
12
+ get(target, prop, receiver) {
13
+ if (prop === 'headlessTask') {
14
+ return (task) => NativeBackgroundGeolocation.registerHeadlessTask({
15
+ task: task.toString(),
16
+ });
17
+ }
18
+ return Reflect.get(target, prop, receiver);
19
+ },
20
+ });
21
+ export * from './definitions';
22
+ export { BackgroundGeolocation };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,8BAA8B;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAmBjD,MAAM,2BAA2B,GAAG,cAAc,CAChD,uBAAuB,EACvB;IACE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,CAAC;CACzE,CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,qBAAqB,GAAgC,IAAI,KAAK,CAClE,2BAAqE,EACrE;IACE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;QACxB,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,OAAO,CAAC,IAA2C,EAAiB,EAAE,CACpE,2BAA2B,CAAC,oBAAoB,CAAC;gBAC/C,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;aACtB,CAAC,CAAC;QACP,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACF,CACF,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { WebPlugin } from '@capacitor/core';
2
+ import type { PermissionState } from '@capacitor/core';
3
+ import type { BackgroundGeolocationPlugin, ConfigureOptions, CurrentLocationOptions, Diagnostics, Location, LogEntry, PermissionRequestResult, ServiceStatus, StationaryLocation } from './definitions';
4
+ export declare class BackgroundGeolocationWeb extends WebPlugin implements BackgroundGeolocationPlugin {
5
+ private watchId;
6
+ private config;
7
+ private lastLocation;
8
+ configure(options: ConfigureOptions): Promise<void>;
9
+ start(): Promise<void>;
10
+ stop(): Promise<void>;
11
+ switchMode(_options: {
12
+ mode: 0 | 1;
13
+ }): Promise<void>;
14
+ checkStatus(): Promise<ServiceStatus>;
15
+ getCurrentLocation(options?: CurrentLocationOptions): Promise<Location>;
16
+ getStationaryLocation(): Promise<StationaryLocation | null>;
17
+ getLocations(): Promise<{
18
+ locations: Location[];
19
+ }>;
20
+ getValidLocations(): Promise<{
21
+ locations: Location[];
22
+ }>;
23
+ getValidLocationsAndDelete(): Promise<{
24
+ locations: Location[];
25
+ }>;
26
+ deleteLocation(_options: {
27
+ locationId: number;
28
+ }): Promise<void>;
29
+ deleteAllLocations(): Promise<void>;
30
+ forceSync(): Promise<void>;
31
+ clearSync(): Promise<void>;
32
+ getPendingSyncCount(): Promise<{
33
+ count: number;
34
+ }>;
35
+ startSession(): Promise<void>;
36
+ getSessionLocations(): Promise<{
37
+ locations: Location[];
38
+ }>;
39
+ clearSession(): Promise<void>;
40
+ getSessionLocationsCount(): Promise<{
41
+ count: number;
42
+ }>;
43
+ getDiagnostics(): Promise<Diagnostics>;
44
+ isIgnoringBatteryOptimizations(): Promise<{
45
+ whitelisted: boolean;
46
+ }>;
47
+ requestIgnoreBatteryOptimizations(): Promise<{
48
+ whitelisted: boolean;
49
+ }>;
50
+ openBatterySettings(): Promise<void>;
51
+ openAutoStartSettings(): Promise<{
52
+ opened: boolean;
53
+ manufacturer: string;
54
+ screen: string;
55
+ }>;
56
+ getManufacturerHelp(): Promise<{
57
+ manufacturer: string;
58
+ steps: string[];
59
+ }>;
60
+ getPluginVersion(): Promise<{
61
+ version: string;
62
+ }>;
63
+ checkPermissions(): Promise<{
64
+ location: PermissionState;
65
+ }>;
66
+ requestPermissions(): Promise<{
67
+ location: PermissionState;
68
+ }>;
69
+ requestBackgroundLocationPermission(): Promise<PermissionRequestResult>;
70
+ requestActivityRecognitionPermission(): Promise<PermissionRequestResult>;
71
+ requestNotificationPermission(): Promise<PermissionRequestResult>;
72
+ showAppSettings(): Promise<void>;
73
+ openSettings(): Promise<void>;
74
+ showLocationSettings(): Promise<void>;
75
+ startTask(): Promise<{
76
+ taskKey: number;
77
+ }>;
78
+ endTask(_options: {
79
+ taskKey: number;
80
+ }): Promise<void>;
81
+ triggerSOS(payload?: Record<string, unknown>): Promise<void>;
82
+ headlessTask(): Promise<void>;
83
+ getConfig(): Promise<ConfigureOptions>;
84
+ getLogEntries(_options: {
85
+ limit: number;
86
+ fromId?: number;
87
+ }): Promise<{
88
+ entries: LogEntry[];
89
+ }>;
90
+ private toLocation;
91
+ private toError;
92
+ }
@@ -0,0 +1,242 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) 2026 JosueLMM
3
+ //
4
+ // Browser fallback for @josuelmm/capacitor-background-geolocation.
5
+ // Uses navigator.geolocation. Real background tracking is not possible on the
6
+ // web platform — the service runs only while the page is alive.
7
+ import { WebPlugin } from '@capacitor/core';
8
+ import { AuthorizationStatus } from './definitions';
9
+ const NOT_AVAILABLE = 'Not available on web.';
10
+ export class BackgroundGeolocationWeb extends WebPlugin {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.watchId = null;
14
+ this.config = {};
15
+ this.lastLocation = null;
16
+ }
17
+ // ---------------- Tracking control ----------------
18
+ async configure(options) {
19
+ this.config = Object.assign(Object.assign({}, this.config), options);
20
+ }
21
+ async start() {
22
+ if (!('geolocation' in navigator)) {
23
+ throw this.unavailable('Geolocation API is not available in this browser.');
24
+ }
25
+ if (this.watchId !== null) {
26
+ return;
27
+ }
28
+ this.watchId = navigator.geolocation.watchPosition((pos) => {
29
+ const loc = this.toLocation(pos);
30
+ this.lastLocation = loc;
31
+ this.notifyListeners('location', loc);
32
+ }, (err) => {
33
+ this.notifyListeners('error', this.toError(err));
34
+ }, {
35
+ enableHighAccuracy: this.config.desiredAccuracy !== 'LOW',
36
+ maximumAge: 0,
37
+ timeout: 30000,
38
+ });
39
+ this.notifyListeners('start', {});
40
+ }
41
+ async stop() {
42
+ if (this.watchId !== null) {
43
+ navigator.geolocation.clearWatch(this.watchId);
44
+ this.watchId = null;
45
+ this.notifyListeners('stop', {});
46
+ }
47
+ }
48
+ async switchMode(_options) {
49
+ throw this.unimplemented(NOT_AVAILABLE);
50
+ }
51
+ async checkStatus() {
52
+ return {
53
+ isRunning: this.watchId !== null,
54
+ locationServicesEnabled: 'geolocation' in navigator,
55
+ authorization: AuthorizationStatus.AUTHORIZED_FOREGROUND,
56
+ };
57
+ }
58
+ // ---------------- Locations ----------------
59
+ getCurrentLocation(options) {
60
+ if (!('geolocation' in navigator)) {
61
+ throw this.unavailable('Geolocation API is not available in this browser.');
62
+ }
63
+ return new Promise((resolve, reject) => {
64
+ var _a, _b, _c;
65
+ navigator.geolocation.getCurrentPosition((pos) => resolve(this.toLocation(pos)), (err) => reject(this.toError(err)), {
66
+ enableHighAccuracy: (_a = options === null || options === void 0 ? void 0 : options.enableHighAccuracy) !== null && _a !== void 0 ? _a : true,
67
+ maximumAge: (_b = options === null || options === void 0 ? void 0 : options.maximumAge) !== null && _b !== void 0 ? _b : 0,
68
+ timeout: (_c = options === null || options === void 0 ? void 0 : options.timeout) !== null && _c !== void 0 ? _c : 30000,
69
+ });
70
+ });
71
+ }
72
+ async getStationaryLocation() {
73
+ return null;
74
+ }
75
+ async getLocations() {
76
+ return { locations: [] };
77
+ }
78
+ async getValidLocations() {
79
+ return { locations: [] };
80
+ }
81
+ async getValidLocationsAndDelete() {
82
+ return { locations: [] };
83
+ }
84
+ async deleteLocation(_options) {
85
+ throw this.unimplemented(NOT_AVAILABLE);
86
+ }
87
+ async deleteAllLocations() {
88
+ throw this.unimplemented(NOT_AVAILABLE);
89
+ }
90
+ // ---------------- Sync queue ----------------
91
+ async forceSync() {
92
+ throw this.unimplemented(NOT_AVAILABLE);
93
+ }
94
+ async clearSync() {
95
+ throw this.unimplemented(NOT_AVAILABLE);
96
+ }
97
+ async getPendingSyncCount() {
98
+ return { count: 0 };
99
+ }
100
+ // ---------------- Sessions ----------------
101
+ async startSession() {
102
+ throw this.unimplemented(NOT_AVAILABLE);
103
+ }
104
+ async getSessionLocations() {
105
+ return { locations: [] };
106
+ }
107
+ async clearSession() {
108
+ throw this.unimplemented(NOT_AVAILABLE);
109
+ }
110
+ async getSessionLocationsCount() {
111
+ return { count: 0 };
112
+ }
113
+ // ---------------- Diagnostics & OEMs ----------------
114
+ async getDiagnostics() {
115
+ var _a, _b;
116
+ return {
117
+ isRunning: this.watchId !== null,
118
+ locationServicesEnabled: 'geolocation' in navigator,
119
+ lastLocationAt: (_b = (_a = this.lastLocation) === null || _a === void 0 ? void 0 : _a.time) !== null && _b !== void 0 ? _b : null,
120
+ manufacturer: 'web',
121
+ };
122
+ }
123
+ async isIgnoringBatteryOptimizations() {
124
+ return { whitelisted: true };
125
+ }
126
+ async requestIgnoreBatteryOptimizations() {
127
+ return { whitelisted: true };
128
+ }
129
+ async openBatterySettings() {
130
+ /* no-op */
131
+ }
132
+ async openAutoStartSettings() {
133
+ return { opened: false, manufacturer: 'web', screen: '' };
134
+ }
135
+ async getManufacturerHelp() {
136
+ return { manufacturer: 'web', steps: [] };
137
+ }
138
+ async getPluginVersion() {
139
+ return { version: '1.0.0' };
140
+ }
141
+ // ---------------- Permissions ----------------
142
+ async checkPermissions() {
143
+ const perms = navigator
144
+ .permissions;
145
+ if (perms === null || perms === void 0 ? void 0 : perms.query) {
146
+ try {
147
+ const result = await perms.query({ name: 'geolocation' });
148
+ return { location: result.state };
149
+ }
150
+ catch (_a) {
151
+ /* fall through to probe */
152
+ }
153
+ }
154
+ return { location: 'prompt' };
155
+ }
156
+ async requestPermissions() {
157
+ if (!('geolocation' in navigator)) {
158
+ return { location: 'denied' };
159
+ }
160
+ return new Promise((resolve) => {
161
+ navigator.geolocation.getCurrentPosition(() => resolve({ location: 'granted' }), (err) => {
162
+ resolve({
163
+ location: err.code === err.PERMISSION_DENIED ? 'denied' : 'prompt',
164
+ });
165
+ }, { enableHighAccuracy: false, maximumAge: 60000, timeout: 5000 });
166
+ });
167
+ }
168
+ async requestBackgroundLocationPermission() {
169
+ return { granted: true, notRequired: true };
170
+ }
171
+ async requestActivityRecognitionPermission() {
172
+ return { granted: true, notRequired: true };
173
+ }
174
+ async requestNotificationPermission() {
175
+ if (typeof Notification === 'undefined') {
176
+ return { granted: true, notRequired: true };
177
+ }
178
+ if (Notification.permission === 'granted') {
179
+ return { granted: true };
180
+ }
181
+ try {
182
+ const result = await Notification.requestPermission();
183
+ return result === 'granted'
184
+ ? { granted: true }
185
+ : { granted: false, denied: ['notifications'] };
186
+ }
187
+ catch (_a) {
188
+ return { granted: false, denied: ['notifications'] };
189
+ }
190
+ }
191
+ async showAppSettings() {
192
+ throw this.unimplemented(NOT_AVAILABLE);
193
+ }
194
+ async openSettings() {
195
+ throw this.unimplemented(NOT_AVAILABLE);
196
+ }
197
+ async showLocationSettings() {
198
+ throw this.unimplemented(NOT_AVAILABLE);
199
+ }
200
+ // ---------------- Tasks ----------------
201
+ async startTask() {
202
+ return { taskKey: 0 };
203
+ }
204
+ async endTask(_options) {
205
+ /* no-op */
206
+ }
207
+ async triggerSOS(payload) {
208
+ var _a;
209
+ this.notifyListeners('sos', Object.assign(Object.assign({}, (payload !== null && payload !== void 0 ? payload : {})), { location: (_a = this.lastLocation) !== null && _a !== void 0 ? _a : undefined }));
210
+ }
211
+ async headlessTask() {
212
+ throw this.unimplemented(NOT_AVAILABLE);
213
+ }
214
+ // ---------------- Config & logs ----------------
215
+ async getConfig() {
216
+ return Object.assign({}, this.config);
217
+ }
218
+ async getLogEntries(_options) {
219
+ return { entries: [] };
220
+ }
221
+ // ---------------- Helpers ----------------
222
+ toLocation(pos) {
223
+ var _a, _b, _c, _d;
224
+ const c = pos.coords;
225
+ return {
226
+ id: pos.timestamp,
227
+ provider: 'gps',
228
+ locationProvider: 0,
229
+ time: pos.timestamp,
230
+ latitude: c.latitude,
231
+ longitude: c.longitude,
232
+ accuracy: (_a = c.accuracy) !== null && _a !== void 0 ? _a : 0,
233
+ speed: (_b = c.speed) !== null && _b !== void 0 ? _b : 0,
234
+ altitude: (_c = c.altitude) !== null && _c !== void 0 ? _c : 0,
235
+ bearing: (_d = c.heading) !== null && _d !== void 0 ? _d : 0,
236
+ };
237
+ }
238
+ toError(err) {
239
+ return { code: err.code, message: err.message };
240
+ }
241
+ }
242
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}