@josuelmm/cordova-background-geolocation 3.2.0 → 4.2.2
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.
- package/.npmignore +4 -0
- package/CHANGELOG.md +290 -0
- package/CLAUDE.md +56 -0
- package/HISTORY.md +125 -0
- package/README.md +189 -4
- package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/ConfigMapper.java +90 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/tenforwardconsulting/bgloc/cordova/BackgroundGeolocationPlugin.java +310 -1
- package/android/common/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +127 -0
- package/android/common/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +27 -11
- package/android/common/src/main/java/com/marianhello/bgloc/Config.java +268 -0
- package/android/common/src/main/java/com/marianhello/bgloc/HttpPostService.java +86 -26
- package/android/common/src/main/java/com/marianhello/bgloc/PluginDelegate.java +26 -0
- package/android/common/src/main/java/com/marianhello/bgloc/PostLocationTask.java +42 -5
- package/android/common/src/main/java/com/marianhello/bgloc/driving/DrivingEventsDetector.java +265 -0
- package/android/common/src/main/java/com/marianhello/bgloc/http/UrlTemplateResolver.java +115 -0
- package/android/common/src/main/java/com/marianhello/bgloc/oem/BatteryOemHelper.java +214 -0
- package/android/common/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java +13 -9
- package/android/common/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +29 -40
- package/android/common/src/main/java/com/marianhello/bgloc/provider/RawLocationProvider.java +14 -34
- package/android/common/src/main/java/com/marianhello/bgloc/sensor/SensorFusionDetector.java +199 -0
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +305 -6
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceProxy.java +14 -2
- package/android/common/src/main/java/com/marianhello/bgloc/sync/SyncAdapter.java +50 -3
- package/android/dependencies.gradle +0 -3
- package/angular/background-geolocation-events.ts +21 -0
- package/angular/background-geolocation.service.ts +63 -0
- package/angular/dist/background-geolocation-events.d.ts +18 -1
- package/angular/dist/background-geolocation.service.d.ts +36 -0
- package/angular/dist/esm2022/background-geolocation-events.mjs +22 -1
- package/angular/dist/esm2022/background-geolocation.service.mjs +35 -1
- package/angular/dist/fesm2022/josuelmm-cordova-background-geolocation.mjs +55 -0
- package/angular/dist/fesm2022/josuelmm-cordova-background-geolocation.mjs.map +1 -1
- package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.m +312 -1
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.h +22 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +400 -15
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.h +12 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +83 -5
- package/ios/common/BackgroundGeolocation/MAURConfig.h +15 -0
- package/ios/common/BackgroundGeolocation/MAURConfig.m +100 -3
- package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.m +29 -2
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.h +4 -0
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +97 -44
- package/ios/common/BackgroundGeolocation/MAURSensorFusionDetector.h +41 -0
- package/ios/common/BackgroundGeolocation/MAURSensorFusionDetector.m +137 -0
- package/ios/common/BackgroundGeolocation/MAURUrlTemplateResolver.h +31 -0
- package/ios/common/BackgroundGeolocation/MAURUrlTemplateResolver.m +107 -0
- package/package.json +41 -1
- package/plugin.xml +19 -8
- package/www/BackgroundGeolocation.d.ts +517 -3
- package/www/BackgroundGeolocation.js +54 -1
- package/RELEASE.MD +0 -16
|
@@ -31,6 +31,42 @@ export declare class BackgroundGeolocationService {
|
|
|
31
31
|
getCurrentLocation(success?: (location: any) => void, fail?: (error: any) => void, options?: any): Promise<any>;
|
|
32
32
|
getStationaryLocation(success?: (location: any) => void, fail?: (error: any) => void): Promise<any>;
|
|
33
33
|
checkStatus(success?: (status: any) => void, fail?: (error: any) => void): Promise<any>;
|
|
34
|
+
/**
|
|
35
|
+
* Extended diagnostics. Returns permissions, battery optimisation state,
|
|
36
|
+
* last fix age, pending sync count, OEM info and (on iOS) precise location /
|
|
37
|
+
* background refresh / low power flags.
|
|
38
|
+
*
|
|
39
|
+
* @since 3.5.0
|
|
40
|
+
*/
|
|
41
|
+
getDiagnostics(success?: (diagnostics: any) => void, fail?: (error: any) => void): Promise<any>;
|
|
42
|
+
/** @since 3.6.0 */
|
|
43
|
+
isIgnoringBatteryOptimizations(success?: (whitelisted: boolean) => void, fail?: (error: any) => void): Promise<boolean>;
|
|
44
|
+
/** @since 3.6.0 */
|
|
45
|
+
requestIgnoreBatteryOptimizations(success?: (whitelisted: boolean) => void, fail?: (error: any) => void): Promise<boolean>;
|
|
46
|
+
/** @since 3.6.0 */
|
|
47
|
+
openBatterySettings(success?: () => void, fail?: (error: any) => void): Promise<void>;
|
|
48
|
+
/** @since 3.6.0 */
|
|
49
|
+
openAutoStartSettings(success?: (info: {
|
|
50
|
+
opened: boolean;
|
|
51
|
+
manufacturer: string;
|
|
52
|
+
screen: string;
|
|
53
|
+
}) => void, fail?: (error: any) => void): Promise<{
|
|
54
|
+
opened: boolean;
|
|
55
|
+
manufacturer: string;
|
|
56
|
+
screen: string;
|
|
57
|
+
}>;
|
|
58
|
+
/** @since 3.6.0 */
|
|
59
|
+
getManufacturerHelp(success?: (info: {
|
|
60
|
+
manufacturer: string;
|
|
61
|
+
steps: string[];
|
|
62
|
+
}) => void, fail?: (error: any) => void): Promise<{
|
|
63
|
+
manufacturer: string;
|
|
64
|
+
steps: string[];
|
|
65
|
+
}>;
|
|
66
|
+
/** @since 4.0.0 */
|
|
67
|
+
triggerSOS(payload?: {
|
|
68
|
+
[key: string]: any;
|
|
69
|
+
}, success?: () => void, fail?: (error: any) => void): Promise<void>;
|
|
34
70
|
showAppSettings(): Promise<void>;
|
|
35
71
|
/** Open app settings (alias for showAppSettings). */
|
|
36
72
|
openSettings(): Promise<void>;
|
|
@@ -15,5 +15,26 @@ export var BackgroundGeolocationEvents;
|
|
|
15
15
|
BackgroundGeolocationEvents["activity"] = "activity";
|
|
16
16
|
BackgroundGeolocationEvents["stationary"] = "stationary";
|
|
17
17
|
BackgroundGeolocationEvents["location"] = "location";
|
|
18
|
+
// v3.5+
|
|
19
|
+
BackgroundGeolocationEvents["heartbeat"] = "heartbeat";
|
|
20
|
+
BackgroundGeolocationEvents["syncStart"] = "syncStart";
|
|
21
|
+
BackgroundGeolocationEvents["syncProgress"] = "syncProgress";
|
|
22
|
+
BackgroundGeolocationEvents["syncSuccess"] = "syncSuccess";
|
|
23
|
+
BackgroundGeolocationEvents["syncError"] = "syncError";
|
|
24
|
+
// v4.0
|
|
25
|
+
BackgroundGeolocationEvents["tripStart"] = "tripStart";
|
|
26
|
+
BackgroundGeolocationEvents["tripEnd"] = "tripEnd";
|
|
27
|
+
BackgroundGeolocationEvents["moving"] = "moving";
|
|
28
|
+
BackgroundGeolocationEvents["stopped"] = "stopped";
|
|
29
|
+
BackgroundGeolocationEvents["speeding"] = "speeding";
|
|
30
|
+
BackgroundGeolocationEvents["providerChange"] = "providerChange";
|
|
31
|
+
BackgroundGeolocationEvents["sos"] = "sos";
|
|
32
|
+
// v4.1
|
|
33
|
+
BackgroundGeolocationEvents["hardBrake"] = "hardBrake";
|
|
34
|
+
BackgroundGeolocationEvents["rapidAcceleration"] = "rapidAcceleration";
|
|
35
|
+
BackgroundGeolocationEvents["sharpTurn"] = "sharpTurn";
|
|
36
|
+
BackgroundGeolocationEvents["possibleCrash"] = "possibleCrash";
|
|
37
|
+
// v4.2 sensor fusion
|
|
38
|
+
BackgroundGeolocationEvents["phoneUsageWhileDriving"] = "phoneUsageWhileDriving";
|
|
18
39
|
})(BackgroundGeolocationEvents || (BackgroundGeolocationEvents = {}));
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC1nZW9sb2NhdGlvbi1ldmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9iYWNrZ3JvdW5kLWdlb2xvY2F0aW9uLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSwyQkFpQ1g7QUFqQ0QsV0FBWSwyQkFBMkI7SUFDckMsd0VBQXlDLENBQUE7SUFDekMsa0VBQW1DLENBQUE7SUFDbkMsd0RBQXlCLENBQUE7SUFDekIsd0RBQXlCLENBQUE7SUFDekIsOERBQStCLENBQUE7SUFDL0IsOENBQWUsQ0FBQTtJQUNmLDRDQUFhLENBQUE7SUFDYiw4Q0FBZSxDQUFBO0lBQ2Ysb0RBQXFCLENBQUE7SUFDckIsd0RBQXlCLENBQUE7SUFDekIsb0RBQXFCLENBQUE7SUFDckIsUUFBUTtJQUNSLHNEQUF1QixDQUFBO0lBQ3ZCLHNEQUF1QixDQUFBO0lBQ3ZCLDREQUE2QixDQUFBO0lBQzdCLDBEQUEyQixDQUFBO0lBQzNCLHNEQUF1QixDQUFBO0lBQ3ZCLE9BQU87SUFDUCxzREFBdUIsQ0FBQTtJQUN2QixrREFBbUIsQ0FBQTtJQUNuQixnREFBaUIsQ0FBQTtJQUNqQixrREFBbUIsQ0FBQTtJQUNuQixvREFBcUIsQ0FBQTtJQUNyQixnRUFBaUMsQ0FBQTtJQUNqQywwQ0FBVyxDQUFBO0lBQ1gsT0FBTztJQUNQLHNEQUF1QixDQUFBO0lBQ3ZCLHNFQUF1QyxDQUFBO0lBQ3ZDLHNEQUF1QixDQUFBO0lBQ3ZCLDhEQUErQixDQUFBO0lBQy9CLHFCQUFxQjtJQUNyQixnRkFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBakNXLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFpQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFdmVudCBuYW1lcyBmb3IgQmFja2dyb3VuZEdlb2xvY2F0aW9uLm9uKGV2ZW50KS5zdWJzY3JpYmUoLi4uKS5cbiAqIE1pcnJvcnMgdGhlIGVudW0gaW4gdGhlIG1haW4gcGFja2FnZSBzbyBpdCBpcyBhdmFpbGFibGUgYXQgcnVudGltZSBmcm9tIC9hbmd1bGFyLlxuICovXG5leHBvcnQgZW51bSBCYWNrZ3JvdW5kR2VvbG9jYXRpb25FdmVudHMge1xuICBodHRwX2F1dGhvcml6YXRpb24gPSAnaHR0cF9hdXRob3JpemF0aW9uJyxcbiAgYWJvcnRfcmVxdWVzdGVkID0gJ2Fib3J0X3JlcXVlc3RlZCcsXG4gIGJhY2tncm91bmQgPSAnYmFja2dyb3VuZCcsXG4gIGZvcmVncm91bmQgPSAnZm9yZWdyb3VuZCcsXG4gIGF1dGhvcml6YXRpb24gPSAnYXV0aG9yaXphdGlvbicsXG4gIGVycm9yID0gJ2Vycm9yJyxcbiAgc3RvcCA9ICdzdG9wJyxcbiAgc3RhcnQgPSAnc3RhcnQnLFxuICBhY3Rpdml0eSA9ICdhY3Rpdml0eScsXG4gIHN0YXRpb25hcnkgPSAnc3RhdGlvbmFyeScsXG4gIGxvY2F0aW9uID0gJ2xvY2F0aW9uJyxcbiAgLy8gdjMuNStcbiAgaGVhcnRiZWF0ID0gJ2hlYXJ0YmVhdCcsXG4gIHN5bmNTdGFydCA9ICdzeW5jU3RhcnQnLFxuICBzeW5jUHJvZ3Jlc3MgPSAnc3luY1Byb2dyZXNzJyxcbiAgc3luY1N1Y2Nlc3MgPSAnc3luY1N1Y2Nlc3MnLFxuICBzeW5jRXJyb3IgPSAnc3luY0Vycm9yJyxcbiAgLy8gdjQuMFxuICB0cmlwU3RhcnQgPSAndHJpcFN0YXJ0JyxcbiAgdHJpcEVuZCA9ICd0cmlwRW5kJyxcbiAgbW92aW5nID0gJ21vdmluZycsXG4gIHN0b3BwZWQgPSAnc3RvcHBlZCcsXG4gIHNwZWVkaW5nID0gJ3NwZWVkaW5nJyxcbiAgcHJvdmlkZXJDaGFuZ2UgPSAncHJvdmlkZXJDaGFuZ2UnLFxuICBzb3MgPSAnc29zJyxcbiAgLy8gdjQuMVxuICBoYXJkQnJha2UgPSAnaGFyZEJyYWtlJyxcbiAgcmFwaWRBY2NlbGVyYXRpb24gPSAncmFwaWRBY2NlbGVyYXRpb24nLFxuICBzaGFycFR1cm4gPSAnc2hhcnBUdXJuJyxcbiAgcG9zc2libGVDcmFzaCA9ICdwb3NzaWJsZUNyYXNoJyxcbiAgLy8gdjQuMiBzZW5zb3IgZnVzaW9uXG4gIHBob25lVXNhZ2VXaGlsZURyaXZpbmcgPSAncGhvbmVVc2FnZVdoaWxlRHJpdmluZycsXG59XG4iXX0=
|
|
@@ -57,6 +57,40 @@ export class BackgroundGeolocationService {
|
|
|
57
57
|
checkStatus(success, fail) {
|
|
58
58
|
return this.ensurePlugin().checkStatus(success, fail);
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Extended diagnostics. Returns permissions, battery optimisation state,
|
|
62
|
+
* last fix age, pending sync count, OEM info and (on iOS) precise location /
|
|
63
|
+
* background refresh / low power flags.
|
|
64
|
+
*
|
|
65
|
+
* @since 3.5.0
|
|
66
|
+
*/
|
|
67
|
+
getDiagnostics(success, fail) {
|
|
68
|
+
return this.ensurePlugin().getDiagnostics(success, fail);
|
|
69
|
+
}
|
|
70
|
+
/** @since 3.6.0 */
|
|
71
|
+
isIgnoringBatteryOptimizations(success, fail) {
|
|
72
|
+
return this.ensurePlugin().isIgnoringBatteryOptimizations(success, fail);
|
|
73
|
+
}
|
|
74
|
+
/** @since 3.6.0 */
|
|
75
|
+
requestIgnoreBatteryOptimizations(success, fail) {
|
|
76
|
+
return this.ensurePlugin().requestIgnoreBatteryOptimizations(success, fail);
|
|
77
|
+
}
|
|
78
|
+
/** @since 3.6.0 */
|
|
79
|
+
openBatterySettings(success, fail) {
|
|
80
|
+
return this.ensurePlugin().openBatterySettings(success, fail);
|
|
81
|
+
}
|
|
82
|
+
/** @since 3.6.0 */
|
|
83
|
+
openAutoStartSettings(success, fail) {
|
|
84
|
+
return this.ensurePlugin().openAutoStartSettings(success, fail);
|
|
85
|
+
}
|
|
86
|
+
/** @since 3.6.0 */
|
|
87
|
+
getManufacturerHelp(success, fail) {
|
|
88
|
+
return this.ensurePlugin().getManufacturerHelp(success, fail);
|
|
89
|
+
}
|
|
90
|
+
/** @since 4.0.0 */
|
|
91
|
+
triggerSOS(payload, success, fail) {
|
|
92
|
+
return this.ensurePlugin().triggerSOS(payload, success, fail);
|
|
93
|
+
}
|
|
60
94
|
showAppSettings() {
|
|
61
95
|
return this.ensurePlugin().showAppSettings();
|
|
62
96
|
}
|
|
@@ -163,4 +197,4 @@ export class BackgroundGeolocationService {
|
|
|
163
197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BackgroundGeolocationService, decorators: [{
|
|
164
198
|
type: Injectable
|
|
165
199
|
}] });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC1nZW9sb2NhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vYmFja2dyb3VuZC1nZW9sb2NhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxjQUFjLENBQzlELDhCQUE4QixDQUMvQixDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsOERBQThEO0lBQzlELElBQVksTUFBTTtRQUNoQixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvQyxPQUFRLE1BQWMsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUM7SUFDdkQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUCxNQUFNLElBQUksS0FBSyxDQUNiLHdJQUF3SSxDQUN6SSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFZLEVBQUUsT0FBb0IsRUFBRSxJQUF5QjtRQUNyRSxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELHFJQUFxSTtJQUNySSxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELHNFQUFzRTtJQUN0RSxVQUFVLENBQUMsUUFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0IsQ0FDaEIsT0FBaUMsRUFDakMsSUFBMkIsRUFDM0IsT0FBYTtRQUViLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELHFCQUFxQixDQUNuQixPQUFpQyxFQUNqQyxJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFdBQVcsQ0FDVCxPQUErQixFQUMvQixJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELHFEQUFxRDtJQUNyRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxnQkFBZ0IsQ0FDZCxPQUFtQyxFQUNuQyxJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQVksQ0FDVixPQUFvQyxFQUNwQyxJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxpQkFBaUIsQ0FDZixPQUFvQyxFQUNwQyxJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELDBCQUEwQixDQUN4QixPQUFvQyxFQUNwQyxJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELGNBQWMsQ0FDWixVQUFrQixFQUNsQixPQUFvQixFQUNwQixJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLE9BQW9CLEVBQ3BCLElBQTJCO1FBRTNCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsVUFBVSxDQUNSLE1BQWMsRUFDZCxPQUFvQixFQUNwQixJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsU0FBUyxDQUNQLE9BQW9CLEVBQ3BCLElBQTJCO1FBRTNCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFNBQVMsQ0FDUCxPQUFvQixFQUNwQixJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxtQkFBbUIsQ0FDakIsT0FBaUMsRUFDakMsSUFBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxZQUFZLENBQ1YsT0FBb0IsRUFDcEIsSUFBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsbUJBQW1CLENBQ2pCLE9BQW9DLEVBQ3BDLElBQTJCO1FBRTNCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsWUFBWSxDQUNWLE9BQW9CLEVBQ3BCLElBQTJCO1FBRTNCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELHdCQUF3QixDQUN0QixPQUFpQyxFQUNqQyxJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFNBQVMsQ0FDUCxPQUErQixFQUMvQixJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhLENBQ1gsS0FBYSxFQUNiLE1BQWMsRUFDZCxRQUFnQixFQUNoQixPQUFrQyxFQUNsQyxJQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUyxDQUNQLE9BQW1DLEVBQ25DLElBQTJCO1FBRTNCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE9BQU8sQ0FDTCxPQUFlLEVBQ2YsT0FBb0IsRUFDcEIsSUFBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUEwQjtRQUNyQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsRUFBRSxDQUFDLFNBQWlCLEVBQUUsUUFBK0I7UUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25DLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBNEIsQ0FBQztZQUN0RSxPQUFPO2dCQUNMLFNBQVMsQ0FBQyxFQUF3QjtvQkFDaEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDNUUsT0FBTyxFQUFFLFdBQVcsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxDQUFDO2dCQUNELFdBQVcsS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDbEMsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBK0YsQ0FBQztRQUNuSSxPQUFPO1lBQ0wsU0FBUyxDQUFDLEVBQXdCO2dCQUNoQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsV0FBVyxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxDQUFDO1lBQ0QsV0FBVyxLQUFrQyxDQUFDO1NBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsb0ZBQW9GO0lBQ3BGLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO3dHQXJQVSw0QkFBNEI7NEdBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVG9rZW4gdXNlZCB0byBwcm92aWRlIEJhY2tncm91bmRHZW9sb2NhdGlvblNlcnZpY2Ugd2l0aG91dCB0cmlnZ2VyaW5nIEpJVC5cbiAqIFRoZSBtb2R1bGUgcHJvdmlkZXMgdGhpcyB0b2tlbiB3aXRoIHVzZUZhY3Rvcnk7IHRoZSBjbGFzcyBpcyBhbGlhc2VkIHZpYSB1c2VFeGlzdGluZ1xuICogc28geW91IHN0aWxsIGluamVjdCBjb25zdHJ1Y3Rvcihwcml2YXRlIGJnOiBCYWNrZ3JvdW5kR2VvbG9jYXRpb25TZXJ2aWNlKSB7fS5cbiAqL1xuZXhwb3J0IGNvbnN0IEJBQ0tHUk9VTkRfR0VPTE9DQVRJT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCYWNrZ3JvdW5kR2VvbG9jYXRpb25TZXJ2aWNlPihcbiAgJ0JhY2tncm91bmRHZW9sb2NhdGlvblNlcnZpY2UnXG4pO1xuXG4vKipcbiAqIEFuZ3VsYXIgc2VydmljZSB0aGF0IHdyYXBzIHRoZSBDb3Jkb3ZhL0NhcGFjaXRvciBCYWNrZ3JvdW5kR2VvbG9jYXRpb24gcGx1Z2luLlxuICogVXNlIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGluc3RlYWQgb2YgdGhlIGdsb2JhbCBCYWNrZ3JvdW5kR2VvbG9jYXRpb24gb2JqZWN0LlxuICpcbiAqIFRoZSBuYXRpdmUgcGx1Z2luIG11c3QgYmUgaW5zdGFsbGVkIGFuZCBhdmFpbGFibGUgKGUuZy4gYWZ0ZXIgZGV2aWNlcmVhZHkpLlxuICogVHlwZXMgKENvbmZpZ3VyZU9wdGlvbnMsIExvY2F0aW9uLCBldGMuKSBjYW4gYmUgaW1wb3J0ZWQgZnJvbVxuICogJ0Bqb3N1ZWxtbS9jb3Jkb3ZhLWJhY2tncm91bmQtZ2VvbG9jYXRpb24nLlxuICpcbiAqIFByb3ZpZGVkIHZpYSBCYWNrZ3JvdW5kR2VvbG9jYXRpb25Nb2R1bGUgdXNpbmcgYW4gSW5qZWN0aW9uVG9rZW4gKyB1c2VGYWN0b3J5XG4gKiBzbyBBT1QgYnVpbGRzIG5ldmVyIG5lZWQgdGhlIEpJVCBjb21waWxlciBmb3IgdGhpcyBjbGFzcy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJhY2tncm91bmRHZW9sb2NhdGlvblNlcnZpY2Uge1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBnbG9iYWwgcGx1Z2luIGluc3RhbmNlIChDb3Jkb3ZhL0NhcGFjaXRvcikuICovXG4gIHByaXZhdGUgZ2V0IHBsdWdpbigpOiBhbnkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuICh3aW5kb3cgYXMgYW55KS5CYWNrZ3JvdW5kR2VvbG9jYXRpb24gfHwgbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlUGx1Z2luKCk6IGFueSB7XG4gICAgY29uc3QgcCA9IHRoaXMucGx1Z2luO1xuICAgIGlmICghcCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQmFja2dyb3VuZEdlb2xvY2F0aW9uIGlzIG5vdCBhdmFpbGFibGUuIEVuc3VyZSB0aGUgcGx1Z2luIGlzIGluc3RhbGxlZCBhbmQgdGhlIGFwcCBpcyBydW5uaW5nIGluIGEgbmF0aXZlIGNvbnRleHQgKENvcmRvdmEvQ2FwYWNpdG9yKS4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcDtcbiAgfVxuXG4gIGNvbmZpZ3VyZShvcHRpb25zOiBhbnksIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLCBmYWlsPzogKGVycjogYW55KSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuY29uZmlndXJlKG9wdGlvbnMsIHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuc3RhcnQoKTtcbiAgfVxuXG4gIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuc3RvcCgpO1xuICB9XG5cbiAgLyoqIEluZm9ybSB0aGUgbmF0aXZlIHBsdWdpbiB0aGF0IHRoZSBiYWNrZ3JvdW5kIHRhc2sgbWF5IGNvbXBsZXRlIChpT1MpLiBDYWxsIGFmdGVyIGhhbmRsaW5nIGxvY2F0aW9uL3N0YXRpb25hcnkgaW4gdGhlIGNhbGxiYWNrLiAqL1xuICBmaW5pc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZmluaXNoKCk7XG4gIH1cblxuICAvKiogRm9yY2UgdGhlIHBsdWdpbiB0byBlbnRlciBcIm1vdmluZ1wiIG9yIFwic3RhdGlvbmFyeVwiIHN0YXRlIChpT1MpLiAqL1xuICBjaGFuZ2VQYWNlKGlzTW92aW5nOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuY2hhbmdlUGFjZShpc01vdmluZyk7XG4gIH1cblxuICBnZXRDdXJyZW50TG9jYXRpb24oXG4gICAgc3VjY2Vzcz86IChsb2NhdGlvbjogYW55KSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZCxcbiAgICBvcHRpb25zPzogYW55XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0Q3VycmVudExvY2F0aW9uKHN1Y2Nlc3MsIGZhaWwsIG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0U3RhdGlvbmFyeUxvY2F0aW9uKFxuICAgIHN1Y2Nlc3M/OiAobG9jYXRpb246IGFueSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRTdGF0aW9uYXJ5TG9jYXRpb24oc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBjaGVja1N0YXR1cyhcbiAgICBzdWNjZXNzPzogKHN0YXR1czogYW55KSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmNoZWNrU3RhdHVzKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgc2hvd0FwcFNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnNob3dBcHBTZXR0aW5ncygpO1xuICB9XG5cbiAgLyoqIE9wZW4gYXBwIHNldHRpbmdzIChhbGlhcyBmb3Igc2hvd0FwcFNldHRpbmdzKS4gKi9cbiAgb3BlblNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLm9wZW5TZXR0aW5ncygpO1xuICB9XG5cbiAgc2hvd0xvY2F0aW9uU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuc2hvd0xvY2F0aW9uU2V0dGluZ3MoKTtcbiAgfVxuXG4gIGdldFBsdWdpblZlcnNpb24oXG4gICAgc3VjY2Vzcz86ICh2ZXJzaW9uOiBzdHJpbmcpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0UGx1Z2luVmVyc2lvbihzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGdldExvY2F0aW9ucyhcbiAgICBzdWNjZXNzPzogKGxvY2F0aW9uczogYW55W10pID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRMb2NhdGlvbnMoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRWYWxpZExvY2F0aW9ucyhcbiAgICBzdWNjZXNzPzogKGxvY2F0aW9uczogYW55W10pID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRWYWxpZExvY2F0aW9ucyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGdldFZhbGlkTG9jYXRpb25zQW5kRGVsZXRlKFxuICAgIHN1Y2Nlc3M/OiAobG9jYXRpb25zOiBhbnlbXSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmdldFZhbGlkTG9jYXRpb25zQW5kRGVsZXRlKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZGVsZXRlTG9jYXRpb24oXG4gICAgbG9jYXRpb25JZDogbnVtYmVyLFxuICAgIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5kZWxldGVMb2NhdGlvbihsb2NhdGlvbklkLCBzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGRlbGV0ZUFsbExvY2F0aW9ucyhcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZGVsZXRlQWxsTG9jYXRpb25zKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgc3dpdGNoTW9kZShcbiAgICBtb2RlSWQ6IG51bWJlcixcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuc3dpdGNoTW9kZShtb2RlSWQsIHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZm9yY2VTeW5jKFxuICAgIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5mb3JjZVN5bmMoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBjbGVhclN5bmMoXG4gICAgc3VjY2Vzcz86ICgpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmNsZWFyU3luYyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGdldFBlbmRpbmdTeW5jQ291bnQoXG4gICAgc3VjY2Vzcz86IChjb3VudDogbnVtYmVyKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmdldFBlbmRpbmdTeW5jQ291bnQoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBzdGFydFNlc3Npb24oXG4gICAgc3VjY2Vzcz86ICgpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnN0YXJ0U2Vzc2lvbihzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGdldFNlc3Npb25Mb2NhdGlvbnMoXG4gICAgc3VjY2Vzcz86IChsb2NhdGlvbnM6IGFueVtdKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0U2Vzc2lvbkxvY2F0aW9ucyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGNsZWFyU2Vzc2lvbihcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuY2xlYXJTZXNzaW9uKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZ2V0U2Vzc2lvbkxvY2F0aW9uc0NvdW50KFxuICAgIHN1Y2Nlc3M/OiAoY291bnQ6IG51bWJlcikgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRTZXNzaW9uTG9jYXRpb25zQ291bnQoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRDb25maWcoXG4gICAgc3VjY2Vzcz86IChjb25maWc6IGFueSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRDb25maWcoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRMb2dFbnRyaWVzKFxuICAgIGxpbWl0OiBudW1iZXIsXG4gICAgZnJvbUlkOiBudW1iZXIsXG4gICAgbWluTGV2ZWw6IHN0cmluZyxcbiAgICBzdWNjZXNzPzogKGVudHJpZXM6IGFueVtdKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0TG9nRW50cmllcyhsaW1pdCwgZnJvbUlkLCBtaW5MZXZlbCwgc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICByZW1vdmVBbGxMaXN0ZW5lcnMoZXZlbnQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVuc3VyZVBsdWdpbigpLnJlbW92ZUFsbExpc3RlbmVycyhldmVudCk7XG4gIH1cblxuICBzdGFydFRhc2soXG4gICAgc3VjY2Vzcz86ICh0YXNrS2V5OiBudW1iZXIpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuc3RhcnRUYXNrKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZW5kVGFzayhcbiAgICB0YXNrS2V5OiBudW1iZXIsXG4gICAgc3VjY2Vzcz86ICgpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmVuZFRhc2sodGFza0tleSwgc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBoZWFkbGVzc1Rhc2sodGFzazogKGV2ZW50OiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmVuc3VyZVBsdWdpbigpLmhlYWRsZXNzVGFzayh0YXNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhbiBldmVudCBsaXN0ZW5lci4gQ29tcGF0aWJsZSB3aXRoIEF3ZXNvbWUtc3R5bGUgdXNhZ2U6XG4gICAqIC5vbihCYWNrZ3JvdW5kR2VvbG9jYXRpb25FdmVudHMuZXJyb3IpLnN1YnNjcmliZSgoZXJyKSA9PiAuLi4pIOKAlCByZXR1cm5zIHN1YnNjcmlwdGlvbiB3aXRoIC51bnN1YnNjcmliZSgpLlxuICAgKiAub24oJ2xvY2F0aW9uJywgKGxvYykgPT4gLi4uKSDigJQgYWxzbyBzdXBwb3J0ZWQ7IHJldHVybmVkIG9iamVjdCBoYXMgLnVuc3Vic2NyaWJlKCkuXG4gICAqL1xuICBvbihldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s/OiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHsgc3Vic2NyaWJlKGNiOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHsgdW5zdWJzY3JpYmUoKTogdm9pZCB9OyB1bnN1YnNjcmliZSgpOiB2b2lkIH0ge1xuICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMuZW5zdXJlUGx1Z2luKCk7XG4gICAgaWYgKGNhbGxiYWNrICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHN1YiA9IHBsdWdpbi5vbihldmVudE5hbWUsIGNhbGxiYWNrKSBhcyB7IHJlbW92ZT86ICgpID0+IHZvaWQgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1YnNjcmliZShjYjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICAgICAgICBjb25zdCBzID0gY2IgPyAocGx1Z2luLm9uKGV2ZW50TmFtZSwgY2IpIGFzIHsgcmVtb3ZlPzogKCkgPT4gdm9pZCB9KSA6IG51bGw7XG4gICAgICAgICAgcmV0dXJuIHsgdW5zdWJzY3JpYmUoKSB7IHM/LnJlbW92ZT8uKCk7IH0gfTtcbiAgICAgICAgfSxcbiAgICAgICAgdW5zdWJzY3JpYmUoKSB7IHN1Yi5yZW1vdmU/LigpOyB9XG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBjaGFubmVsID0gcGx1Z2luLm9uKGV2ZW50TmFtZSkgYXMgeyBzdWJzY3JpYmU6IChjYjogKHY6IGFueSkgPT4gdm9pZCkgPT4gdm9pZDsgdW5zdWJzY3JpYmU6IChjYjogKHY6IGFueSkgPT4gdm9pZCkgPT4gdm9pZCB9O1xuICAgIHJldHVybiB7XG4gICAgICBzdWJzY3JpYmUoY2I6ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgIGNoYW5uZWwuc3Vic2NyaWJlKGNiKTtcbiAgICAgICAgcmV0dXJuIHsgdW5zdWJzY3JpYmUoKSB7IGNoYW5uZWwudW5zdWJzY3JpYmUoY2IpOyB9IH07XG4gICAgICB9LFxuICAgICAgdW5zdWJzY3JpYmUoKSB7IC8qIG5vLW9wIHdoZW4gbm8gY2FsbGJhY2sgKi8gfVxuICAgIH07XG4gIH1cblxuICAvKiogQ29udmVuaWVuY2U6IGFjY2VzcyBwbHVnaW4gY29uc3RhbnRzIChlLmcuIEFDVElWSVRZX1BST1ZJREVSLCBISUdIX0FDQ1VSQUNZKS4gKi9cbiAgZ2V0IG5hdGl2ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbjtcbiAgfVxufVxuIl19
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC1nZW9sb2NhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vYmFja2dyb3VuZC1nZW9sb2NhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxjQUFjLENBQzlELDhCQUE4QixDQUMvQixDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsOERBQThEO0lBQzlELElBQVksTUFBTTtRQUNoQixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvQyxPQUFRLE1BQWMsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUM7SUFDdkQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUCxNQUFNLElBQUksS0FBSyxDQUNiLHdJQUF3SSxDQUN6SSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFZLEVBQUUsT0FBb0IsRUFBRSxJQUF5QjtRQUNyRSxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVE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S0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxDQUFDO2dCQUNELFdBQVcsS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDbEMsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBK0YsQ0FBQztRQUNuSSxPQUFPO1lBQ0wsU0FBUyxDQUFDLEVBQXdCO2dCQUNoQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsV0FBVyxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxDQUFDO1lBQ0QsV0FBVyxLQUFrQyxDQUFDO1NBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsb0ZBQW9GO0lBQ3BGLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO3dHQXBUVSw0QkFBNEI7NEdBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVG9rZW4gdXNlZCB0byBwcm92aWRlIEJhY2tncm91bmRHZW9sb2NhdGlvblNlcnZpY2Ugd2l0aG91dCB0cmlnZ2VyaW5nIEpJVC5cbiAqIFRoZSBtb2R1bGUgcHJvdmlkZXMgdGhpcyB0b2tlbiB3aXRoIHVzZUZhY3Rvcnk7IHRoZSBjbGFzcyBpcyBhbGlhc2VkIHZpYSB1c2VFeGlzdGluZ1xuICogc28geW91IHN0aWxsIGluamVjdCBjb25zdHJ1Y3Rvcihwcml2YXRlIGJnOiBCYWNrZ3JvdW5kR2VvbG9jYXRpb25TZXJ2aWNlKSB7fS5cbiAqL1xuZXhwb3J0IGNvbnN0IEJBQ0tHUk9VTkRfR0VPTE9DQVRJT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCYWNrZ3JvdW5kR2VvbG9jYXRpb25TZXJ2aWNlPihcbiAgJ0JhY2tncm91bmRHZW9sb2NhdGlvblNlcnZpY2UnXG4pO1xuXG4vKipcbiAqIEFuZ3VsYXIgc2VydmljZSB0aGF0IHdyYXBzIHRoZSBDb3Jkb3ZhL0NhcGFjaXRvciBCYWNrZ3JvdW5kR2VvbG9jYXRpb24gcGx1Z2luLlxuICogVXNlIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGluc3RlYWQgb2YgdGhlIGdsb2JhbCBCYWNrZ3JvdW5kR2VvbG9jYXRpb24gb2JqZWN0LlxuICpcbiAqIFRoZSBuYXRpdmUgcGx1Z2luIG11c3QgYmUgaW5zdGFsbGVkIGFuZCBhdmFpbGFibGUgKGUuZy4gYWZ0ZXIgZGV2aWNlcmVhZHkpLlxuICogVHlwZXMgKENvbmZpZ3VyZU9wdGlvbnMsIExvY2F0aW9uLCBldGMuKSBjYW4gYmUgaW1wb3J0ZWQgZnJvbVxuICogJ0Bqb3N1ZWxtbS9jb3Jkb3ZhLWJhY2tncm91bmQtZ2VvbG9jYXRpb24nLlxuICpcbiAqIFByb3ZpZGVkIHZpYSBCYWNrZ3JvdW5kR2VvbG9jYXRpb25Nb2R1bGUgdXNpbmcgYW4gSW5qZWN0aW9uVG9rZW4gKyB1c2VGYWN0b3J5XG4gKiBzbyBBT1QgYnVpbGRzIG5ldmVyIG5lZWQgdGhlIEpJVCBjb21waWxlciBmb3IgdGhpcyBjbGFzcy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJhY2tncm91bmRHZW9sb2NhdGlvblNlcnZpY2Uge1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBnbG9iYWwgcGx1Z2luIGluc3RhbmNlIChDb3Jkb3ZhL0NhcGFjaXRvcikuICovXG4gIHByaXZhdGUgZ2V0IHBsdWdpbigpOiBhbnkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuICh3aW5kb3cgYXMgYW55KS5CYWNrZ3JvdW5kR2VvbG9jYXRpb24gfHwgbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlUGx1Z2luKCk6IGFueSB7XG4gICAgY29uc3QgcCA9IHRoaXMucGx1Z2luO1xuICAgIGlmICghcCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQmFja2dyb3VuZEdlb2xvY2F0aW9uIGlzIG5vdCBhdmFpbGFibGUuIEVuc3VyZSB0aGUgcGx1Z2luIGlzIGluc3RhbGxlZCBhbmQgdGhlIGFwcCBpcyBydW5uaW5nIGluIGEgbmF0aXZlIGNvbnRleHQgKENvcmRvdmEvQ2FwYWNpdG9yKS4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcDtcbiAgfVxuXG4gIGNvbmZpZ3VyZShvcHRpb25zOiBhbnksIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLCBmYWlsPzogKGVycjogYW55KSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuY29uZmlndXJlKG9wdGlvbnMsIHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuc3RhcnQoKTtcbiAgfVxuXG4gIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuc3RvcCgpO1xuICB9XG5cbiAgLyoqIEluZm9ybSB0aGUgbmF0aXZlIHBsdWdpbiB0aGF0IHRoZSBiYWNrZ3JvdW5kIHRhc2sgbWF5IGNvbXBsZXRlIChpT1MpLiBDYWxsIGFmdGVyIGhhbmRsaW5nIGxvY2F0aW9uL3N0YXRpb25hcnkgaW4gdGhlIGNhbGxiYWNrLiAqL1xuICBmaW5pc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZmluaXNoKCk7XG4gIH1cblxuICAvKiogRm9yY2UgdGhlIHBsdWdpbiB0byBlbnRlciBcIm1vdmluZ1wiIG9yIFwic3RhdGlvbmFyeVwiIHN0YXRlIChpT1MpLiAqL1xuICBjaGFuZ2VQYWNlKGlzTW92aW5nOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuY2hhbmdlUGFjZShpc01vdmluZyk7XG4gIH1cblxuICBnZXRDdXJyZW50TG9jYXRpb24oXG4gICAgc3VjY2Vzcz86IChsb2NhdGlvbjogYW55KSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZCxcbiAgICBvcHRpb25zPzogYW55XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0Q3VycmVudExvY2F0aW9uKHN1Y2Nlc3MsIGZhaWwsIG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0U3RhdGlvbmFyeUxvY2F0aW9uKFxuICAgIHN1Y2Nlc3M/OiAobG9jYXRpb246IGFueSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRTdGF0aW9uYXJ5TG9jYXRpb24oc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBjaGVja1N0YXR1cyhcbiAgICBzdWNjZXNzPzogKHN0YXR1czogYW55KSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmNoZWNrU3RhdHVzKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dGVuZGVkIGRpYWdub3N0aWNzLiBSZXR1cm5zIHBlcm1pc3Npb25zLCBiYXR0ZXJ5IG9wdGltaXNhdGlvbiBzdGF0ZSxcbiAgICogbGFzdCBmaXggYWdlLCBwZW5kaW5nIHN5bmMgY291bnQsIE9FTSBpbmZvIGFuZCAob24gaU9TKSBwcmVjaXNlIGxvY2F0aW9uIC9cbiAgICogYmFja2dyb3VuZCByZWZyZXNoIC8gbG93IHBvd2VyIGZsYWdzLlxuICAgKlxuICAgKiBAc2luY2UgMy41LjBcbiAgICovXG4gIGdldERpYWdub3N0aWNzKFxuICAgIHN1Y2Nlc3M/OiAoZGlhZ25vc3RpY3M6IGFueSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXREaWFnbm9zdGljcyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIC8qKiBAc2luY2UgMy42LjAgKi9cbiAgaXNJZ25vcmluZ0JhdHRlcnlPcHRpbWl6YXRpb25zKFxuICAgIHN1Y2Nlc3M/OiAod2hpdGVsaXN0ZWQ6IGJvb2xlYW4pID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmlzSWdub3JpbmdCYXR0ZXJ5T3B0aW1pemF0aW9ucyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIC8qKiBAc2luY2UgMy42LjAgKi9cbiAgcmVxdWVzdElnbm9yZUJhdHRlcnlPcHRpbWl6YXRpb25zKFxuICAgIHN1Y2Nlc3M/OiAod2hpdGVsaXN0ZWQ6IGJvb2xlYW4pID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnJlcXVlc3RJZ25vcmVCYXR0ZXJ5T3B0aW1pemF0aW9ucyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIC8qKiBAc2luY2UgMy42LjAgKi9cbiAgb3BlbkJhdHRlcnlTZXR0aW5ncyhcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkub3BlbkJhdHRlcnlTZXR0aW5ncyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIC8qKiBAc2luY2UgMy42LjAgKi9cbiAgb3BlbkF1dG9TdGFydFNldHRpbmdzKFxuICAgIHN1Y2Nlc3M/OiAoaW5mbzogeyBvcGVuZWQ6IGJvb2xlYW47IG1hbnVmYWN0dXJlcjogc3RyaW5nOyBzY3JlZW46IHN0cmluZyB9KSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHsgb3BlbmVkOiBib29sZWFuOyBtYW51ZmFjdHVyZXI6IHN0cmluZzsgc2NyZWVuOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLm9wZW5BdXRvU3RhcnRTZXR0aW5ncyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIC8qKiBAc2luY2UgMy42LjAgKi9cbiAgZ2V0TWFudWZhY3R1cmVySGVscChcbiAgICBzdWNjZXNzPzogKGluZm86IHsgbWFudWZhY3R1cmVyOiBzdHJpbmc7IHN0ZXBzOiBzdHJpbmdbXSB9KSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHsgbWFudWZhY3R1cmVyOiBzdHJpbmc7IHN0ZXBzOiBzdHJpbmdbXSB9PiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0TWFudWZhY3R1cmVySGVscChzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIC8qKiBAc2luY2UgNC4wLjAgKi9cbiAgdHJpZ2dlclNPUyhcbiAgICBwYXlsb2FkPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkudHJpZ2dlclNPUyhwYXlsb2FkLCBzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIHNob3dBcHBTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5zaG93QXBwU2V0dGluZ3MoKTtcbiAgfVxuXG4gIC8qKiBPcGVuIGFwcCBzZXR0aW5ncyAoYWxpYXMgZm9yIHNob3dBcHBTZXR0aW5ncykuICovXG4gIG9wZW5TZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5vcGVuU2V0dGluZ3MoKTtcbiAgfVxuXG4gIHNob3dMb2NhdGlvblNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnNob3dMb2NhdGlvblNldHRpbmdzKCk7XG4gIH1cblxuICBnZXRQbHVnaW5WZXJzaW9uKFxuICAgIHN1Y2Nlc3M/OiAodmVyc2lvbjogc3RyaW5nKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmdldFBsdWdpblZlcnNpb24oc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRMb2NhdGlvbnMoXG4gICAgc3VjY2Vzcz86IChsb2NhdGlvbnM6IGFueVtdKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0TG9jYXRpb25zKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZ2V0VmFsaWRMb2NhdGlvbnMoXG4gICAgc3VjY2Vzcz86IChsb2NhdGlvbnM6IGFueVtdKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0VmFsaWRMb2NhdGlvbnMoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRWYWxpZExvY2F0aW9uc0FuZERlbGV0ZShcbiAgICBzdWNjZXNzPzogKGxvY2F0aW9uczogYW55W10pID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRWYWxpZExvY2F0aW9uc0FuZERlbGV0ZShzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGRlbGV0ZUxvY2F0aW9uKFxuICAgIGxvY2F0aW9uSWQ6IG51bWJlcixcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZGVsZXRlTG9jYXRpb24obG9jYXRpb25JZCwgc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBkZWxldGVBbGxMb2NhdGlvbnMoXG4gICAgc3VjY2Vzcz86ICgpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmRlbGV0ZUFsbExvY2F0aW9ucyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIHN3aXRjaE1vZGUoXG4gICAgbW9kZUlkOiBudW1iZXIsXG4gICAgc3VjY2Vzcz86ICgpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnN3aXRjaE1vZGUobW9kZUlkLCBzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGZvcmNlU3luYyhcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZm9yY2VTeW5jKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgY2xlYXJTeW5jKFxuICAgIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5jbGVhclN5bmMoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRQZW5kaW5nU3luY0NvdW50KFxuICAgIHN1Y2Nlc3M/OiAoY291bnQ6IG51bWJlcikgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRQZW5kaW5nU3luY0NvdW50KHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgc3RhcnRTZXNzaW9uKFxuICAgIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5zdGFydFNlc3Npb24oc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRTZXNzaW9uTG9jYXRpb25zKFxuICAgIHN1Y2Nlc3M/OiAobG9jYXRpb25zOiBhbnlbXSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmdldFNlc3Npb25Mb2NhdGlvbnMoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBjbGVhclNlc3Npb24oXG4gICAgc3VjY2Vzcz86ICgpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmNsZWFyU2Vzc2lvbihzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGdldFNlc3Npb25Mb2NhdGlvbnNDb3VudChcbiAgICBzdWNjZXNzPzogKGNvdW50OiBudW1iZXIpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0U2Vzc2lvbkxvY2F0aW9uc0NvdW50KHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZ2V0Q29uZmlnKFxuICAgIHN1Y2Nlc3M/OiAoY29uZmlnOiBhbnkpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0Q29uZmlnKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZ2V0TG9nRW50cmllcyhcbiAgICBsaW1pdDogbnVtYmVyLFxuICAgIGZyb21JZDogbnVtYmVyLFxuICAgIG1pbkxldmVsOiBzdHJpbmcsXG4gICAgc3VjY2Vzcz86IChlbnRyaWVzOiBhbnlbXSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmdldExvZ0VudHJpZXMobGltaXQsIGZyb21JZCwgbWluTGV2ZWwsIHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgcmVtb3ZlQWxsTGlzdGVuZXJzKGV2ZW50Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5lbnN1cmVQbHVnaW4oKS5yZW1vdmVBbGxMaXN0ZW5lcnMoZXZlbnQpO1xuICB9XG5cbiAgc3RhcnRUYXNrKFxuICAgIHN1Y2Nlc3M/OiAodGFza0tleTogbnVtYmVyKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnN0YXJ0VGFzayhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGVuZFRhc2soXG4gICAgdGFza0tleTogbnVtYmVyLFxuICAgIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5lbmRUYXNrKHRhc2tLZXksIHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgaGVhZGxlc3NUYXNrKHRhc2s6IChldmVudDogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5lbnN1cmVQbHVnaW4oKS5oZWFkbGVzc1Rhc2sodGFzayk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gZXZlbnQgbGlzdGVuZXIuIENvbXBhdGlibGUgd2l0aCBBd2Vzb21lLXN0eWxlIHVzYWdlOlxuICAgKiAub24oQmFja2dyb3VuZEdlb2xvY2F0aW9uRXZlbnRzLmVycm9yKS5zdWJzY3JpYmUoKGVycikgPT4gLi4uKSDigJQgcmV0dXJucyBzdWJzY3JpcHRpb24gd2l0aCAudW5zdWJzY3JpYmUoKS5cbiAgICogLm9uKCdsb2NhdGlvbicsIChsb2MpID0+IC4uLikg4oCUIGFsc28gc3VwcG9ydGVkOyByZXR1cm5lZCBvYmplY3QgaGFzIC51bnN1YnNjcmliZSgpLlxuICAgKi9cbiAgb24oZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrPzogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB7IHN1YnNjcmliZShjYjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB7IHVuc3Vic2NyaWJlKCk6IHZvaWQgfTsgdW5zdWJzY3JpYmUoKTogdm9pZCB9IHtcbiAgICBjb25zdCBwbHVnaW4gPSB0aGlzLmVuc3VyZVBsdWdpbigpO1xuICAgIGlmIChjYWxsYmFjayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBzdWIgPSBwbHVnaW4ub24oZXZlbnROYW1lLCBjYWxsYmFjaykgYXMgeyByZW1vdmU/OiAoKSA9PiB2b2lkIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWJzY3JpYmUoY2I6ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgICAgY29uc3QgcyA9IGNiID8gKHBsdWdpbi5vbihldmVudE5hbWUsIGNiKSBhcyB7IHJlbW92ZT86ICgpID0+IHZvaWQgfSkgOiBudWxsO1xuICAgICAgICAgIHJldHVybiB7IHVuc3Vic2NyaWJlKCkgeyBzPy5yZW1vdmU/LigpOyB9IH07XG4gICAgICAgIH0sXG4gICAgICAgIHVuc3Vic2NyaWJlKCkgeyBzdWIucmVtb3ZlPy4oKTsgfVxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgY2hhbm5lbCA9IHBsdWdpbi5vbihldmVudE5hbWUpIGFzIHsgc3Vic2NyaWJlOiAoY2I6ICh2OiBhbnkpID0+IHZvaWQpID0+IHZvaWQ7IHVuc3Vic2NyaWJlOiAoY2I6ICh2OiBhbnkpID0+IHZvaWQpID0+IHZvaWQgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc3Vic2NyaWJlKGNiOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgICAgICBjaGFubmVsLnN1YnNjcmliZShjYik7XG4gICAgICAgIHJldHVybiB7IHVuc3Vic2NyaWJlKCkgeyBjaGFubmVsLnVuc3Vic2NyaWJlKGNiKTsgfSB9O1xuICAgICAgfSxcbiAgICAgIHVuc3Vic2NyaWJlKCkgeyAvKiBuby1vcCB3aGVuIG5vIGNhbGxiYWNrICovIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqIENvbnZlbmllbmNlOiBhY2Nlc3MgcGx1Z2luIGNvbnN0YW50cyAoZS5nLiBBQ1RJVklUWV9QUk9WSURFUiwgSElHSF9BQ0NVUkFDWSkuICovXG4gIGdldCBuYXRpdmUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -58,6 +58,40 @@ class BackgroundGeolocationService {
|
|
|
58
58
|
checkStatus(success, fail) {
|
|
59
59
|
return this.ensurePlugin().checkStatus(success, fail);
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Extended diagnostics. Returns permissions, battery optimisation state,
|
|
63
|
+
* last fix age, pending sync count, OEM info and (on iOS) precise location /
|
|
64
|
+
* background refresh / low power flags.
|
|
65
|
+
*
|
|
66
|
+
* @since 3.5.0
|
|
67
|
+
*/
|
|
68
|
+
getDiagnostics(success, fail) {
|
|
69
|
+
return this.ensurePlugin().getDiagnostics(success, fail);
|
|
70
|
+
}
|
|
71
|
+
/** @since 3.6.0 */
|
|
72
|
+
isIgnoringBatteryOptimizations(success, fail) {
|
|
73
|
+
return this.ensurePlugin().isIgnoringBatteryOptimizations(success, fail);
|
|
74
|
+
}
|
|
75
|
+
/** @since 3.6.0 */
|
|
76
|
+
requestIgnoreBatteryOptimizations(success, fail) {
|
|
77
|
+
return this.ensurePlugin().requestIgnoreBatteryOptimizations(success, fail);
|
|
78
|
+
}
|
|
79
|
+
/** @since 3.6.0 */
|
|
80
|
+
openBatterySettings(success, fail) {
|
|
81
|
+
return this.ensurePlugin().openBatterySettings(success, fail);
|
|
82
|
+
}
|
|
83
|
+
/** @since 3.6.0 */
|
|
84
|
+
openAutoStartSettings(success, fail) {
|
|
85
|
+
return this.ensurePlugin().openAutoStartSettings(success, fail);
|
|
86
|
+
}
|
|
87
|
+
/** @since 3.6.0 */
|
|
88
|
+
getManufacturerHelp(success, fail) {
|
|
89
|
+
return this.ensurePlugin().getManufacturerHelp(success, fail);
|
|
90
|
+
}
|
|
91
|
+
/** @since 4.0.0 */
|
|
92
|
+
triggerSOS(payload, success, fail) {
|
|
93
|
+
return this.ensurePlugin().triggerSOS(payload, success, fail);
|
|
94
|
+
}
|
|
61
95
|
showAppSettings() {
|
|
62
96
|
return this.ensurePlugin().showAppSettings();
|
|
63
97
|
}
|
|
@@ -222,6 +256,27 @@ var BackgroundGeolocationEvents;
|
|
|
222
256
|
BackgroundGeolocationEvents["activity"] = "activity";
|
|
223
257
|
BackgroundGeolocationEvents["stationary"] = "stationary";
|
|
224
258
|
BackgroundGeolocationEvents["location"] = "location";
|
|
259
|
+
// v3.5+
|
|
260
|
+
BackgroundGeolocationEvents["heartbeat"] = "heartbeat";
|
|
261
|
+
BackgroundGeolocationEvents["syncStart"] = "syncStart";
|
|
262
|
+
BackgroundGeolocationEvents["syncProgress"] = "syncProgress";
|
|
263
|
+
BackgroundGeolocationEvents["syncSuccess"] = "syncSuccess";
|
|
264
|
+
BackgroundGeolocationEvents["syncError"] = "syncError";
|
|
265
|
+
// v4.0
|
|
266
|
+
BackgroundGeolocationEvents["tripStart"] = "tripStart";
|
|
267
|
+
BackgroundGeolocationEvents["tripEnd"] = "tripEnd";
|
|
268
|
+
BackgroundGeolocationEvents["moving"] = "moving";
|
|
269
|
+
BackgroundGeolocationEvents["stopped"] = "stopped";
|
|
270
|
+
BackgroundGeolocationEvents["speeding"] = "speeding";
|
|
271
|
+
BackgroundGeolocationEvents["providerChange"] = "providerChange";
|
|
272
|
+
BackgroundGeolocationEvents["sos"] = "sos";
|
|
273
|
+
// v4.1
|
|
274
|
+
BackgroundGeolocationEvents["hardBrake"] = "hardBrake";
|
|
275
|
+
BackgroundGeolocationEvents["rapidAcceleration"] = "rapidAcceleration";
|
|
276
|
+
BackgroundGeolocationEvents["sharpTurn"] = "sharpTurn";
|
|
277
|
+
BackgroundGeolocationEvents["possibleCrash"] = "possibleCrash";
|
|
278
|
+
// v4.2 sensor fusion
|
|
279
|
+
BackgroundGeolocationEvents["phoneUsageWhileDriving"] = "phoneUsageWhileDriving";
|
|
225
280
|
})(BackgroundGeolocationEvents || (BackgroundGeolocationEvents = {}));
|
|
226
281
|
|
|
227
282
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"josuelmm-cordova-background-geolocation.mjs","sources":["../../background-geolocation.service.ts","../../background-geolocation.module.ts","../../background-geolocation-events.ts","../../background-geolocation-enums.ts","../../public-api.ts","../../josuelmm-cordova-background-geolocation.ts"],"sourcesContent":["import { Injectable, InjectionToken } from '@angular/core';\n\n/**\n * Token used to provide BackgroundGeolocationService without triggering JIT.\n * The module provides this token with useFactory; the class is aliased via useExisting\n * so you still inject constructor(private bg: BackgroundGeolocationService) {}.\n */\nexport const BACKGROUND_GEOLOCATION_SERVICE = new InjectionToken<BackgroundGeolocationService>(\n 'BackgroundGeolocationService'\n);\n\n/**\n * Angular service that wraps the Cordova/Capacitor BackgroundGeolocation plugin.\n * Use dependency injection instead of the global BackgroundGeolocation object.\n *\n * The native plugin must be installed and available (e.g. after deviceready).\n * Types (ConfigureOptions, Location, etc.) can be imported from\n * '@josuelmm/cordova-background-geolocation'.\n *\n * Provided via BackgroundGeolocationModule using an InjectionToken + useFactory\n * so AOT builds never need the JIT compiler for this class.\n */\n@Injectable()\nexport class BackgroundGeolocationService {\n\n /** Returns the global plugin instance (Cordova/Capacitor). */\n private get plugin(): any {\n if (typeof window === 'undefined') return null;\n return (window as any).BackgroundGeolocation || null;\n }\n\n private ensurePlugin(): any {\n const p = this.plugin;\n if (!p) {\n throw new Error(\n 'BackgroundGeolocation is not available. Ensure the plugin is installed and the app is running in a native context (Cordova/Capacitor).'\n );\n }\n return p;\n }\n\n configure(options: any, success?: () => void, fail?: (err: any) => void): Promise<void> {\n return this.ensurePlugin().configure(options, success, fail);\n }\n\n start(): Promise<void> {\n return this.ensurePlugin().start();\n }\n\n stop(): Promise<void> {\n return this.ensurePlugin().stop();\n }\n\n /** Inform the native plugin that the background task may complete (iOS). Call after handling location/stationary in the callback. */\n finish(): Promise<void> {\n return this.ensurePlugin().finish();\n }\n\n /** Force the plugin to enter \"moving\" or \"stationary\" state (iOS). */\n changePace(isMoving: boolean): Promise<void> {\n return this.ensurePlugin().changePace(isMoving);\n }\n\n getCurrentLocation(\n success?: (location: any) => void,\n fail?: (error: any) => void,\n options?: any\n ): Promise<any> {\n return this.ensurePlugin().getCurrentLocation(success, fail, options);\n }\n\n getStationaryLocation(\n success?: (location: any) => void,\n fail?: (error: any) => void\n ): Promise<any> {\n return this.ensurePlugin().getStationaryLocation(success, fail);\n }\n\n checkStatus(\n success?: (status: any) => void,\n fail?: (error: any) => void\n ): Promise<any> {\n return this.ensurePlugin().checkStatus(success, fail);\n }\n\n showAppSettings(): Promise<void> {\n return this.ensurePlugin().showAppSettings();\n }\n\n /** Open app settings (alias for showAppSettings). */\n openSettings(): Promise<void> {\n return this.ensurePlugin().openSettings();\n }\n\n showLocationSettings(): Promise<void> {\n return this.ensurePlugin().showLocationSettings();\n }\n\n getPluginVersion(\n success?: (version: string) => void,\n fail?: (error: any) => void\n ): Promise<string> {\n return this.ensurePlugin().getPluginVersion(success, fail);\n }\n\n getLocations(\n success?: (locations: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getLocations(success, fail);\n }\n\n getValidLocations(\n success?: (locations: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getValidLocations(success, fail);\n }\n\n getValidLocationsAndDelete(\n success?: (locations: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getValidLocationsAndDelete(success, fail);\n }\n\n deleteLocation(\n locationId: number,\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().deleteLocation(locationId, success, fail);\n }\n\n deleteAllLocations(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().deleteAllLocations(success, fail);\n }\n\n switchMode(\n modeId: number,\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().switchMode(modeId, success, fail);\n }\n\n forceSync(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().forceSync(success, fail);\n }\n\n clearSync(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().clearSync(success, fail);\n }\n\n getPendingSyncCount(\n success?: (count: number) => void,\n fail?: (error: any) => void\n ): Promise<number> {\n return this.ensurePlugin().getPendingSyncCount(success, fail);\n }\n\n startSession(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().startSession(success, fail);\n }\n\n getSessionLocations(\n success?: (locations: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getSessionLocations(success, fail);\n }\n\n clearSession(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().clearSession(success, fail);\n }\n\n getSessionLocationsCount(\n success?: (count: number) => void,\n fail?: (error: any) => void\n ): Promise<number> {\n return this.ensurePlugin().getSessionLocationsCount(success, fail);\n }\n\n getConfig(\n success?: (config: any) => void,\n fail?: (error: any) => void\n ): Promise<any> {\n return this.ensurePlugin().getConfig(success, fail);\n }\n\n getLogEntries(\n limit: number,\n fromId: number,\n minLevel: string,\n success?: (entries: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getLogEntries(limit, fromId, minLevel, success, fail);\n }\n\n removeAllListeners(event?: string): void {\n this.ensurePlugin().removeAllListeners(event);\n }\n\n startTask(\n success?: (taskKey: number) => void,\n fail?: (error: any) => void\n ): Promise<number> {\n return this.ensurePlugin().startTask(success, fail);\n }\n\n endTask(\n taskKey: number,\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().endTask(taskKey, success, fail);\n }\n\n headlessTask(task: (event: any) => void): void {\n this.ensurePlugin().headlessTask(task);\n }\n\n /**\n * Register an event listener. Compatible with Awesome-style usage:\n * .on(BackgroundGeolocationEvents.error).subscribe((err) => ...) — returns subscription with .unsubscribe().\n * .on('location', (loc) => ...) — also supported; returned object has .unsubscribe().\n */\n on(eventName: string, callback?: (value: any) => void): { subscribe(cb: (value: any) => void): { unsubscribe(): void }; unsubscribe(): void } {\n const plugin = this.ensurePlugin();\n if (callback !== undefined) {\n const sub = plugin.on(eventName, callback) as { remove?: () => void };\n return {\n subscribe(cb: (value: any) => void) {\n const s = cb ? (plugin.on(eventName, cb) as { remove?: () => void }) : null;\n return { unsubscribe() { s?.remove?.(); } };\n },\n unsubscribe() { sub.remove?.(); }\n };\n }\n const channel = plugin.on(eventName) as { subscribe: (cb: (v: any) => void) => void; unsubscribe: (cb: (v: any) => void) => void };\n return {\n subscribe(cb: (value: any) => void) {\n channel.subscribe(cb);\n return { unsubscribe() { channel.unsubscribe(cb); } };\n },\n unsubscribe() { /* no-op when no callback */ }\n };\n }\n\n /** Convenience: access plugin constants (e.g. ACTIVITY_PROVIDER, HIGH_ACCURACY). */\n get native(): any {\n return this.plugin;\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n BackgroundGeolocationService,\n BACKGROUND_GEOLOCATION_SERVICE,\n} from './background-geolocation.service';\n\n/**\n * NgModule that provides BackgroundGeolocationService.\n * Uses InjectionToken + useFactory so Angular never calls getFactoryDef on the class\n * (avoids JIT requirement in AOT/production). useExisting lets you still inject\n * constructor(private bg: BackgroundGeolocationService) {}.\n *\n * Import in your AppModule or feature module:\n * imports: [BackgroundGeolocationModule]\n * Then inject: constructor(private bg: BackgroundGeolocationService) {}\n */\n@NgModule({\n providers: [\n {\n provide: BACKGROUND_GEOLOCATION_SERVICE,\n useFactory: () => new BackgroundGeolocationService(),\n },\n {\n provide: BackgroundGeolocationService,\n useExisting: BACKGROUND_GEOLOCATION_SERVICE,\n },\n ],\n})\nexport class BackgroundGeolocationModule {}\n","/**\n * Event names for BackgroundGeolocation.on(event).subscribe(...).\n * Mirrors the enum in the main package so it is available at runtime from /angular.\n */\nexport enum BackgroundGeolocationEvents {\n http_authorization = 'http_authorization',\n abort_requested = 'abort_requested',\n background = 'background',\n foreground = 'foreground',\n authorization = 'authorization',\n error = 'error',\n stop = 'stop',\n start = 'start',\n activity = 'activity',\n stationary = 'stationary',\n location = 'location',\n}\n","/**\n * Enums as runtime values for use with @josuelmm/cordova-background-geolocation/angular.\n * Matches @awesome-cordova-plugins/background-geolocation names; numeric values match this plugin (e.g. accuracy 0, 100, 1000, 10000).\n */\n\nexport enum BackgroundGeolocationLocationCode {\n PERMISSION_DENIED = 1,\n LOCATION_UNAVAILABLE = 2,\n TIMEOUT = 3,\n}\n\nexport enum BackgroundGeolocationNativeProvider {\n gps = 'gps',\n network = 'network',\n passive = 'passive',\n fused = 'fused',\n}\n\nexport enum BackgroundGeolocationLocationProvider {\n DISTANCE_FILTER_PROVIDER = 0,\n ACTIVITY_PROVIDER = 1,\n RAW_PROVIDER = 2,\n}\n\nexport enum BackgroundGeolocationAuthorizationStatus {\n NOT_AUTHORIZED = 0,\n AUTHORIZED = 1,\n AUTHORIZED_FOREGROUND = 2,\n}\n\nexport enum BackgroundGeolocationLogLevel {\n TRACE = 'TRACE',\n DEBUG = 'DEBUG',\n INFO = 'INFO',\n WARN = 'WARN',\n ERROR = 'ERROR',\n}\n\nexport enum BackgroundGeolocationProvider {\n ANDROID_DISTANCE_FILTER_PROVIDER = 0,\n ANDROID_ACTIVITY_PROVIDER = 1,\n RAW_PROVIDER = 2,\n}\n\n/** Values match this plugin: 0, 100, 1000, 10000 (not Awesome's 10, 100, 1000). */\nexport enum BackgroundGeolocationAccuracy {\n HIGH = 0,\n MEDIUM = 100,\n LOW = 1000,\n PASSIVE = 10000,\n}\n\nexport enum BackgroundGeolocationMode {\n BACKGROUND = 0,\n FOREGROUND = 1,\n}\n\nexport enum BackgroundGeolocationIOSActivity {\n AutomotiveNavigation = 'AutomotiveNavigation',\n OtherNavigation = 'OtherNavigation',\n Fitness = 'Fitness',\n Other = 'Other',\n}\n","/**\n * Public API for @josuelmm/cordova-background-geolocation/angular.\n * Entry point for ng-packagr (Ivy/AOT build).\n */\nexport {\n BackgroundGeolocationService,\n BACKGROUND_GEOLOCATION_SERVICE,\n} from './background-geolocation.service';\nexport { BackgroundGeolocationModule } from './background-geolocation.module';\nexport { BackgroundGeolocationEvents } from './background-geolocation-events';\nexport {\n BackgroundGeolocationLocationCode,\n BackgroundGeolocationNativeProvider,\n BackgroundGeolocationLocationProvider,\n BackgroundGeolocationAuthorizationStatus,\n BackgroundGeolocationLogLevel,\n BackgroundGeolocationProvider,\n BackgroundGeolocationAccuracy,\n BackgroundGeolocationMode,\n BackgroundGeolocationIOSActivity,\n} from './background-geolocation-enums';\nexport type {\n BackgroundGeolocationConfig,\n BackgroundGeolocationResponse,\n ServiceStatus,\n BackgroundGeolocationLogEntry,\n} from '../www/BackgroundGeolocation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"josuelmm-cordova-background-geolocation.mjs","sources":["../../background-geolocation.service.ts","../../background-geolocation.module.ts","../../background-geolocation-events.ts","../../background-geolocation-enums.ts","../../public-api.ts","../../josuelmm-cordova-background-geolocation.ts"],"sourcesContent":["import { Injectable, InjectionToken } from '@angular/core';\n\n/**\n * Token used to provide BackgroundGeolocationService without triggering JIT.\n * The module provides this token with useFactory; the class is aliased via useExisting\n * so you still inject constructor(private bg: BackgroundGeolocationService) {}.\n */\nexport const BACKGROUND_GEOLOCATION_SERVICE = new InjectionToken<BackgroundGeolocationService>(\n 'BackgroundGeolocationService'\n);\n\n/**\n * Angular service that wraps the Cordova/Capacitor BackgroundGeolocation plugin.\n * Use dependency injection instead of the global BackgroundGeolocation object.\n *\n * The native plugin must be installed and available (e.g. after deviceready).\n * Types (ConfigureOptions, Location, etc.) can be imported from\n * '@josuelmm/cordova-background-geolocation'.\n *\n * Provided via BackgroundGeolocationModule using an InjectionToken + useFactory\n * so AOT builds never need the JIT compiler for this class.\n */\n@Injectable()\nexport class BackgroundGeolocationService {\n\n /** Returns the global plugin instance (Cordova/Capacitor). */\n private get plugin(): any {\n if (typeof window === 'undefined') return null;\n return (window as any).BackgroundGeolocation || null;\n }\n\n private ensurePlugin(): any {\n const p = this.plugin;\n if (!p) {\n throw new Error(\n 'BackgroundGeolocation is not available. Ensure the plugin is installed and the app is running in a native context (Cordova/Capacitor).'\n );\n }\n return p;\n }\n\n configure(options: any, success?: () => void, fail?: (err: any) => void): Promise<void> {\n return this.ensurePlugin().configure(options, success, fail);\n }\n\n start(): Promise<void> {\n return this.ensurePlugin().start();\n }\n\n stop(): Promise<void> {\n return this.ensurePlugin().stop();\n }\n\n /** Inform the native plugin that the background task may complete (iOS). Call after handling location/stationary in the callback. */\n finish(): Promise<void> {\n return this.ensurePlugin().finish();\n }\n\n /** Force the plugin to enter \"moving\" or \"stationary\" state (iOS). */\n changePace(isMoving: boolean): Promise<void> {\n return this.ensurePlugin().changePace(isMoving);\n }\n\n getCurrentLocation(\n success?: (location: any) => void,\n fail?: (error: any) => void,\n options?: any\n ): Promise<any> {\n return this.ensurePlugin().getCurrentLocation(success, fail, options);\n }\n\n getStationaryLocation(\n success?: (location: any) => void,\n fail?: (error: any) => void\n ): Promise<any> {\n return this.ensurePlugin().getStationaryLocation(success, fail);\n }\n\n checkStatus(\n success?: (status: any) => void,\n fail?: (error: any) => void\n ): Promise<any> {\n return this.ensurePlugin().checkStatus(success, fail);\n }\n\n /**\n * Extended diagnostics. Returns permissions, battery optimisation state,\n * last fix age, pending sync count, OEM info and (on iOS) precise location /\n * background refresh / low power flags.\n *\n * @since 3.5.0\n */\n getDiagnostics(\n success?: (diagnostics: any) => void,\n fail?: (error: any) => void\n ): Promise<any> {\n return this.ensurePlugin().getDiagnostics(success, fail);\n }\n\n /** @since 3.6.0 */\n isIgnoringBatteryOptimizations(\n success?: (whitelisted: boolean) => void,\n fail?: (error: any) => void\n ): Promise<boolean> {\n return this.ensurePlugin().isIgnoringBatteryOptimizations(success, fail);\n }\n\n /** @since 3.6.0 */\n requestIgnoreBatteryOptimizations(\n success?: (whitelisted: boolean) => void,\n fail?: (error: any) => void\n ): Promise<boolean> {\n return this.ensurePlugin().requestIgnoreBatteryOptimizations(success, fail);\n }\n\n /** @since 3.6.0 */\n openBatterySettings(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().openBatterySettings(success, fail);\n }\n\n /** @since 3.6.0 */\n openAutoStartSettings(\n success?: (info: { opened: boolean; manufacturer: string; screen: string }) => void,\n fail?: (error: any) => void\n ): Promise<{ opened: boolean; manufacturer: string; screen: string }> {\n return this.ensurePlugin().openAutoStartSettings(success, fail);\n }\n\n /** @since 3.6.0 */\n getManufacturerHelp(\n success?: (info: { manufacturer: string; steps: string[] }) => void,\n fail?: (error: any) => void\n ): Promise<{ manufacturer: string; steps: string[] }> {\n return this.ensurePlugin().getManufacturerHelp(success, fail);\n }\n\n /** @since 4.0.0 */\n triggerSOS(\n payload?: { [key: string]: any },\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().triggerSOS(payload, success, fail);\n }\n\n showAppSettings(): Promise<void> {\n return this.ensurePlugin().showAppSettings();\n }\n\n /** Open app settings (alias for showAppSettings). */\n openSettings(): Promise<void> {\n return this.ensurePlugin().openSettings();\n }\n\n showLocationSettings(): Promise<void> {\n return this.ensurePlugin().showLocationSettings();\n }\n\n getPluginVersion(\n success?: (version: string) => void,\n fail?: (error: any) => void\n ): Promise<string> {\n return this.ensurePlugin().getPluginVersion(success, fail);\n }\n\n getLocations(\n success?: (locations: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getLocations(success, fail);\n }\n\n getValidLocations(\n success?: (locations: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getValidLocations(success, fail);\n }\n\n getValidLocationsAndDelete(\n success?: (locations: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getValidLocationsAndDelete(success, fail);\n }\n\n deleteLocation(\n locationId: number,\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().deleteLocation(locationId, success, fail);\n }\n\n deleteAllLocations(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().deleteAllLocations(success, fail);\n }\n\n switchMode(\n modeId: number,\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().switchMode(modeId, success, fail);\n }\n\n forceSync(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().forceSync(success, fail);\n }\n\n clearSync(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().clearSync(success, fail);\n }\n\n getPendingSyncCount(\n success?: (count: number) => void,\n fail?: (error: any) => void\n ): Promise<number> {\n return this.ensurePlugin().getPendingSyncCount(success, fail);\n }\n\n startSession(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().startSession(success, fail);\n }\n\n getSessionLocations(\n success?: (locations: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getSessionLocations(success, fail);\n }\n\n clearSession(\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().clearSession(success, fail);\n }\n\n getSessionLocationsCount(\n success?: (count: number) => void,\n fail?: (error: any) => void\n ): Promise<number> {\n return this.ensurePlugin().getSessionLocationsCount(success, fail);\n }\n\n getConfig(\n success?: (config: any) => void,\n fail?: (error: any) => void\n ): Promise<any> {\n return this.ensurePlugin().getConfig(success, fail);\n }\n\n getLogEntries(\n limit: number,\n fromId: number,\n minLevel: string,\n success?: (entries: any[]) => void,\n fail?: (error: any) => void\n ): Promise<any[]> {\n return this.ensurePlugin().getLogEntries(limit, fromId, minLevel, success, fail);\n }\n\n removeAllListeners(event?: string): void {\n this.ensurePlugin().removeAllListeners(event);\n }\n\n startTask(\n success?: (taskKey: number) => void,\n fail?: (error: any) => void\n ): Promise<number> {\n return this.ensurePlugin().startTask(success, fail);\n }\n\n endTask(\n taskKey: number,\n success?: () => void,\n fail?: (error: any) => void\n ): Promise<void> {\n return this.ensurePlugin().endTask(taskKey, success, fail);\n }\n\n headlessTask(task: (event: any) => void): void {\n this.ensurePlugin().headlessTask(task);\n }\n\n /**\n * Register an event listener. Compatible with Awesome-style usage:\n * .on(BackgroundGeolocationEvents.error).subscribe((err) => ...) — returns subscription with .unsubscribe().\n * .on('location', (loc) => ...) — also supported; returned object has .unsubscribe().\n */\n on(eventName: string, callback?: (value: any) => void): { subscribe(cb: (value: any) => void): { unsubscribe(): void }; unsubscribe(): void } {\n const plugin = this.ensurePlugin();\n if (callback !== undefined) {\n const sub = plugin.on(eventName, callback) as { remove?: () => void };\n return {\n subscribe(cb: (value: any) => void) {\n const s = cb ? (plugin.on(eventName, cb) as { remove?: () => void }) : null;\n return { unsubscribe() { s?.remove?.(); } };\n },\n unsubscribe() { sub.remove?.(); }\n };\n }\n const channel = plugin.on(eventName) as { subscribe: (cb: (v: any) => void) => void; unsubscribe: (cb: (v: any) => void) => void };\n return {\n subscribe(cb: (value: any) => void) {\n channel.subscribe(cb);\n return { unsubscribe() { channel.unsubscribe(cb); } };\n },\n unsubscribe() { /* no-op when no callback */ }\n };\n }\n\n /** Convenience: access plugin constants (e.g. ACTIVITY_PROVIDER, HIGH_ACCURACY). */\n get native(): any {\n return this.plugin;\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n BackgroundGeolocationService,\n BACKGROUND_GEOLOCATION_SERVICE,\n} from './background-geolocation.service';\n\n/**\n * NgModule that provides BackgroundGeolocationService.\n * Uses InjectionToken + useFactory so Angular never calls getFactoryDef on the class\n * (avoids JIT requirement in AOT/production). useExisting lets you still inject\n * constructor(private bg: BackgroundGeolocationService) {}.\n *\n * Import in your AppModule or feature module:\n * imports: [BackgroundGeolocationModule]\n * Then inject: constructor(private bg: BackgroundGeolocationService) {}\n */\n@NgModule({\n providers: [\n {\n provide: BACKGROUND_GEOLOCATION_SERVICE,\n useFactory: () => new BackgroundGeolocationService(),\n },\n {\n provide: BackgroundGeolocationService,\n useExisting: BACKGROUND_GEOLOCATION_SERVICE,\n },\n ],\n})\nexport class BackgroundGeolocationModule {}\n","/**\n * Event names for BackgroundGeolocation.on(event).subscribe(...).\n * Mirrors the enum in the main package so it is available at runtime from /angular.\n */\nexport enum BackgroundGeolocationEvents {\n http_authorization = 'http_authorization',\n abort_requested = 'abort_requested',\n background = 'background',\n foreground = 'foreground',\n authorization = 'authorization',\n error = 'error',\n stop = 'stop',\n start = 'start',\n activity = 'activity',\n stationary = 'stationary',\n location = 'location',\n // v3.5+\n heartbeat = 'heartbeat',\n syncStart = 'syncStart',\n syncProgress = 'syncProgress',\n syncSuccess = 'syncSuccess',\n syncError = 'syncError',\n // v4.0\n tripStart = 'tripStart',\n tripEnd = 'tripEnd',\n moving = 'moving',\n stopped = 'stopped',\n speeding = 'speeding',\n providerChange = 'providerChange',\n sos = 'sos',\n // v4.1\n hardBrake = 'hardBrake',\n rapidAcceleration = 'rapidAcceleration',\n sharpTurn = 'sharpTurn',\n possibleCrash = 'possibleCrash',\n // v4.2 sensor fusion\n phoneUsageWhileDriving = 'phoneUsageWhileDriving',\n}\n","/**\n * Enums as runtime values for use with @josuelmm/cordova-background-geolocation/angular.\n * Matches @awesome-cordova-plugins/background-geolocation names; numeric values match this plugin (e.g. accuracy 0, 100, 1000, 10000).\n */\n\nexport enum BackgroundGeolocationLocationCode {\n PERMISSION_DENIED = 1,\n LOCATION_UNAVAILABLE = 2,\n TIMEOUT = 3,\n}\n\nexport enum BackgroundGeolocationNativeProvider {\n gps = 'gps',\n network = 'network',\n passive = 'passive',\n fused = 'fused',\n}\n\nexport enum BackgroundGeolocationLocationProvider {\n DISTANCE_FILTER_PROVIDER = 0,\n ACTIVITY_PROVIDER = 1,\n RAW_PROVIDER = 2,\n}\n\nexport enum BackgroundGeolocationAuthorizationStatus {\n NOT_AUTHORIZED = 0,\n AUTHORIZED = 1,\n AUTHORIZED_FOREGROUND = 2,\n}\n\nexport enum BackgroundGeolocationLogLevel {\n TRACE = 'TRACE',\n DEBUG = 'DEBUG',\n INFO = 'INFO',\n WARN = 'WARN',\n ERROR = 'ERROR',\n}\n\nexport enum BackgroundGeolocationProvider {\n ANDROID_DISTANCE_FILTER_PROVIDER = 0,\n ANDROID_ACTIVITY_PROVIDER = 1,\n RAW_PROVIDER = 2,\n}\n\n/** Values match this plugin: 0, 100, 1000, 10000 (not Awesome's 10, 100, 1000). */\nexport enum BackgroundGeolocationAccuracy {\n HIGH = 0,\n MEDIUM = 100,\n LOW = 1000,\n PASSIVE = 10000,\n}\n\nexport enum BackgroundGeolocationMode {\n BACKGROUND = 0,\n FOREGROUND = 1,\n}\n\nexport enum BackgroundGeolocationIOSActivity {\n AutomotiveNavigation = 'AutomotiveNavigation',\n OtherNavigation = 'OtherNavigation',\n Fitness = 'Fitness',\n Other = 'Other',\n}\n","/**\n * Public API for @josuelmm/cordova-background-geolocation/angular.\n * Entry point for ng-packagr (Ivy/AOT build).\n */\nexport {\n BackgroundGeolocationService,\n BACKGROUND_GEOLOCATION_SERVICE,\n} from './background-geolocation.service';\nexport { BackgroundGeolocationModule } from './background-geolocation.module';\nexport { BackgroundGeolocationEvents } from './background-geolocation-events';\nexport {\n BackgroundGeolocationLocationCode,\n BackgroundGeolocationNativeProvider,\n BackgroundGeolocationLocationProvider,\n BackgroundGeolocationAuthorizationStatus,\n BackgroundGeolocationLogLevel,\n BackgroundGeolocationProvider,\n BackgroundGeolocationAccuracy,\n BackgroundGeolocationMode,\n BackgroundGeolocationIOSActivity,\n} from './background-geolocation-enums';\nexport type {\n BackgroundGeolocationConfig,\n BackgroundGeolocationResponse,\n ServiceStatus,\n BackgroundGeolocationLogEntry,\n} from '../www/BackgroundGeolocation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|