@josuelmm/cordova-background-geolocation 3.1.1 → 4.2.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.
- package/.npmignore +4 -0
- package/CHANGELOG.md +313 -0
- package/CLAUDE.md +56 -0
- package/HISTORY.md +124 -0
- package/README.md +198 -6
- 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 +362 -1
- package/android/common/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +153 -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 +48 -5
- package/android/common/src/main/java/com/marianhello/bgloc/data/SessionLocationDAO.java +18 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +8 -1
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteSessionContract.java +74 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteSessionLocationDAO.java +169 -0
- 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 +310 -7
- 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 +91 -0
- package/angular/dist/background-geolocation-events.d.ts +18 -1
- package/angular/dist/background-geolocation.service.d.ts +40 -0
- package/angular/dist/esm2022/background-geolocation-events.mjs +22 -1
- package/angular/dist/esm2022/background-geolocation.service.mjs +47 -1
- package/angular/dist/fesm2022/josuelmm-cordova-background-geolocation.mjs +67 -0
- package/angular/dist/fesm2022/josuelmm-cordova-background-geolocation.mjs.map +1 -1
- package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.h +4 -0
- package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.m +352 -1
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.h +26 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +421 -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/MAURGeolocationOpenHelper.m +12 -3
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.h +4 -0
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +102 -44
- package/ios/common/BackgroundGeolocation/MAURSensorFusionDetector.h +41 -0
- package/ios/common/BackgroundGeolocation/MAURSensorFusionDetector.m +137 -0
- package/ios/common/BackgroundGeolocation/MAURSessionLocationContract.h +29 -0
- package/ios/common/BackgroundGeolocation/MAURSessionLocationContract.m +31 -0
- package/ios/common/BackgroundGeolocation/MAURSessionLocationDAO.h +25 -0
- package/ios/common/BackgroundGeolocation/MAURSessionLocationDAO.m +153 -0
- package/ios/common/BackgroundGeolocation/MAURUrlTemplateResolver.h +31 -0
- package/ios/common/BackgroundGeolocation/MAURUrlTemplateResolver.m +107 -0
- package/package.json +36 -1
- package/plugin.xml +26 -8
- package/www/BackgroundGeolocation.d.ts +559 -3
- package/www/BackgroundGeolocation.js +78 -1
- package/RELEASE.MD +0 -16
|
@@ -13,5 +13,22 @@ export declare enum BackgroundGeolocationEvents {
|
|
|
13
13
|
start = "start",
|
|
14
14
|
activity = "activity",
|
|
15
15
|
stationary = "stationary",
|
|
16
|
-
location = "location"
|
|
16
|
+
location = "location",
|
|
17
|
+
heartbeat = "heartbeat",
|
|
18
|
+
syncStart = "syncStart",
|
|
19
|
+
syncProgress = "syncProgress",
|
|
20
|
+
syncSuccess = "syncSuccess",
|
|
21
|
+
syncError = "syncError",
|
|
22
|
+
tripStart = "tripStart",
|
|
23
|
+
tripEnd = "tripEnd",
|
|
24
|
+
moving = "moving",
|
|
25
|
+
stopped = "stopped",
|
|
26
|
+
speeding = "speeding",
|
|
27
|
+
providerChange = "providerChange",
|
|
28
|
+
sos = "sos",
|
|
29
|
+
hardBrake = "hardBrake",
|
|
30
|
+
rapidAcceleration = "rapidAcceleration",
|
|
31
|
+
sharpTurn = "sharpTurn",
|
|
32
|
+
possibleCrash = "possibleCrash",
|
|
33
|
+
phoneUsageWhileDriving = "phoneUsageWhileDriving"
|
|
17
34
|
}
|
|
@@ -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>;
|
|
@@ -45,6 +81,10 @@ export declare class BackgroundGeolocationService {
|
|
|
45
81
|
forceSync(success?: () => void, fail?: (error: any) => void): Promise<void>;
|
|
46
82
|
clearSync(success?: () => void, fail?: (error: any) => void): Promise<void>;
|
|
47
83
|
getPendingSyncCount(success?: (count: number) => void, fail?: (error: any) => void): Promise<number>;
|
|
84
|
+
startSession(success?: () => void, fail?: (error: any) => void): Promise<void>;
|
|
85
|
+
getSessionLocations(success?: (locations: any[]) => void, fail?: (error: any) => void): Promise<any[]>;
|
|
86
|
+
clearSession(success?: () => void, fail?: (error: any) => void): Promise<void>;
|
|
87
|
+
getSessionLocationsCount(success?: (count: number) => void, fail?: (error: any) => void): Promise<number>;
|
|
48
88
|
getConfig(success?: (config: any) => void, fail?: (error: any) => void): Promise<any>;
|
|
49
89
|
getLogEntries(limit: number, fromId: number, minLevel: string, success?: (entries: any[]) => void, fail?: (error: any) => void): Promise<any[]>;
|
|
50
90
|
removeAllListeners(event?: string): 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
|
}
|
|
@@ -97,6 +131,18 @@ export class BackgroundGeolocationService {
|
|
|
97
131
|
getPendingSyncCount(success, fail) {
|
|
98
132
|
return this.ensurePlugin().getPendingSyncCount(success, fail);
|
|
99
133
|
}
|
|
134
|
+
startSession(success, fail) {
|
|
135
|
+
return this.ensurePlugin().startSession(success, fail);
|
|
136
|
+
}
|
|
137
|
+
getSessionLocations(success, fail) {
|
|
138
|
+
return this.ensurePlugin().getSessionLocations(success, fail);
|
|
139
|
+
}
|
|
140
|
+
clearSession(success, fail) {
|
|
141
|
+
return this.ensurePlugin().clearSession(success, fail);
|
|
142
|
+
}
|
|
143
|
+
getSessionLocationsCount(success, fail) {
|
|
144
|
+
return this.ensurePlugin().getSessionLocationsCount(success, fail);
|
|
145
|
+
}
|
|
100
146
|
getConfig(success, fail) {
|
|
101
147
|
return this.ensurePlugin().getConfig(success, fail);
|
|
102
148
|
}
|
|
@@ -151,4 +197,4 @@ export class BackgroundGeolocationService {
|
|
|
151
197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BackgroundGeolocationService, decorators: [{
|
|
152
198
|
type: Injectable
|
|
153
199
|
}] });
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC1nZW9sb2NhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vYmFja2dyb3VuZC1nZW9sb2NhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxjQUFjLENBQzlELDhCQUE4QixDQUMvQixDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsOERBQThEO0lBQzlELElBQVksTUFBTTtRQUNoQixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvQyxPQUFRLE1BQWMsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUM7SUFDdkQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUCxNQUFNLElBQUksS0FBSyxDQUNiLHdJQUF3SSxDQUN6SSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFZLEVBQUUsT0FBb0IsRUFBRSxJQUF5QjtRQUNyRSxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVE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QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRva2VuIHVzZWQgdG8gcHJvdmlkZSBCYWNrZ3JvdW5kR2VvbG9jYXRpb25TZXJ2aWNlIHdpdGhvdXQgdHJpZ2dlcmluZyBKSVQuXG4gKiBUaGUgbW9kdWxlIHByb3ZpZGVzIHRoaXMgdG9rZW4gd2l0aCB1c2VGYWN0b3J5OyB0aGUgY2xhc3MgaXMgYWxpYXNlZCB2aWEgdXNlRXhpc3RpbmdcbiAqIHNvIHlvdSBzdGlsbCBpbmplY3QgY29uc3RydWN0b3IocHJpdmF0ZSBiZzogQmFja2dyb3VuZEdlb2xvY2F0aW9uU2VydmljZSkge30uXG4gKi9cbmV4cG9ydCBjb25zdCBCQUNLR1JPVU5EX0dFT0xPQ0FUSU9OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48QmFja2dyb3VuZEdlb2xvY2F0aW9uU2VydmljZT4oXG4gICdCYWNrZ3JvdW5kR2VvbG9jYXRpb25TZXJ2aWNlJ1xuKTtcblxuLyoqXG4gKiBBbmd1bGFyIHNlcnZpY2UgdGhhdCB3cmFwcyB0aGUgQ29yZG92YS9DYXBhY2l0b3IgQmFja2dyb3VuZEdlb2xvY2F0aW9uIHBsdWdpbi5cbiAqIFVzZSBkZXBlbmRlbmN5IGluamVjdGlvbiBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwgQmFja2dyb3VuZEdlb2xvY2F0aW9uIG9iamVjdC5cbiAqXG4gKiBUaGUgbmF0aXZlIHBsdWdpbiBtdXN0IGJlIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlIChlLmcuIGFmdGVyIGRldmljZXJlYWR5KS5cbiAqIFR5cGVzIChDb25maWd1cmVPcHRpb25zLCBMb2NhdGlvbiwgZXRjLikgY2FuIGJlIGltcG9ydGVkIGZyb21cbiAqICdAam9zdWVsbW0vY29yZG92YS1iYWNrZ3JvdW5kLWdlb2xvY2F0aW9uJy5cbiAqXG4gKiBQcm92aWRlZCB2aWEgQmFja2dyb3VuZEdlb2xvY2F0aW9uTW9kdWxlIHVzaW5nIGFuIEluamVjdGlvblRva2VuICsgdXNlRmFjdG9yeVxuICogc28gQU9UIGJ1aWxkcyBuZXZlciBuZWVkIHRoZSBKSVQgY29tcGlsZXIgZm9yIHRoaXMgY2xhc3MuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCYWNrZ3JvdW5kR2VvbG9jYXRpb25TZXJ2aWNlIHtcblxuICAvKiogUmV0dXJucyB0aGUgZ2xvYmFsIHBsdWdpbiBpbnN0YW5jZSAoQ29yZG92YS9DYXBhY2l0b3IpLiAqL1xuICBwcml2YXRlIGdldCBwbHVnaW4oKTogYW55IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBudWxsO1xuICAgIHJldHVybiAod2luZG93IGFzIGFueSkuQmFja2dyb3VuZEdlb2xvY2F0aW9uIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZVBsdWdpbigpOiBhbnkge1xuICAgIGNvbnN0IHAgPSB0aGlzLnBsdWdpbjtcbiAgICBpZiAoIXApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0JhY2tncm91bmRHZW9sb2NhdGlvbiBpcyBub3QgYXZhaWxhYmxlLiBFbnN1cmUgdGhlIHBsdWdpbiBpcyBpbnN0YWxsZWQgYW5kIHRoZSBhcHAgaXMgcnVubmluZyBpbiBhIG5hdGl2ZSBjb250ZXh0IChDb3Jkb3ZhL0NhcGFjaXRvcikuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHA7XG4gIH1cblxuICBjb25maWd1cmUob3B0aW9uczogYW55LCBzdWNjZXNzPzogKCkgPT4gdm9pZCwgZmFpbD86IChlcnI6IGFueSkgPT4gdm9pZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmNvbmZpZ3VyZShvcHRpb25zLCBzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnN0YXJ0KCk7XG4gIH1cblxuICBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnN0b3AoKTtcbiAgfVxuXG4gIC8qKiBJbmZvcm0gdGhlIG5hdGl2ZSBwbHVnaW4gdGhhdCB0aGUgYmFja2dyb3VuZCB0YXNrIG1heSBjb21wbGV0ZSAoaU9TKS4gQ2FsbCBhZnRlciBoYW5kbGluZyBsb2NhdGlvbi9zdGF0aW9uYXJ5IGluIHRoZSBjYWxsYmFjay4gKi9cbiAgZmluaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmZpbmlzaCgpO1xuICB9XG5cbiAgLyoqIEZvcmNlIHRoZSBwbHVnaW4gdG8gZW50ZXIgXCJtb3ZpbmdcIiBvciBcInN0YXRpb25hcnlcIiBzdGF0ZSAoaU9TKS4gKi9cbiAgY2hhbmdlUGFjZShpc01vdmluZzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmNoYW5nZVBhY2UoaXNNb3ZpbmcpO1xuICB9XG5cbiAgZ2V0Q3VycmVudExvY2F0aW9uKFxuICAgIHN1Y2Nlc3M/OiAobG9jYXRpb246IGFueSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWQsXG4gICAgb3B0aW9ucz86IGFueVxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmdldEN1cnJlbnRMb2NhdGlvbihzdWNjZXNzLCBmYWlsLCBvcHRpb25zKTtcbiAgfVxuXG4gIGdldFN0YXRpb25hcnlMb2NhdGlvbihcbiAgICBzdWNjZXNzPzogKGxvY2F0aW9uOiBhbnkpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0U3RhdGlvbmFyeUxvY2F0aW9uKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgY2hlY2tTdGF0dXMoXG4gICAgc3VjY2Vzcz86IChzdGF0dXM6IGFueSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5jaGVja1N0YXR1cyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIHNob3dBcHBTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5zaG93QXBwU2V0dGluZ3MoKTtcbiAgfVxuXG4gIC8qKiBPcGVuIGFwcCBzZXR0aW5ncyAoYWxpYXMgZm9yIHNob3dBcHBTZXR0aW5ncykuICovXG4gIG9wZW5TZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5vcGVuU2V0dGluZ3MoKTtcbiAgfVxuXG4gIHNob3dMb2NhdGlvblNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnNob3dMb2NhdGlvblNldHRpbmdzKCk7XG4gIH1cblxuICBnZXRQbHVnaW5WZXJzaW9uKFxuICAgIHN1Y2Nlc3M/OiAodmVyc2lvbjogc3RyaW5nKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmdldFBsdWdpblZlcnNpb24oc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRMb2NhdGlvbnMoXG4gICAgc3VjY2Vzcz86IChsb2NhdGlvbnM6IGFueVtdKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0TG9jYXRpb25zKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZ2V0VmFsaWRMb2NhdGlvbnMoXG4gICAgc3VjY2Vzcz86IChsb2NhdGlvbnM6IGFueVtdKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0VmFsaWRMb2NhdGlvbnMoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRWYWxpZExvY2F0aW9uc0FuZERlbGV0ZShcbiAgICBzdWNjZXNzPzogKGxvY2F0aW9uczogYW55W10pID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRWYWxpZExvY2F0aW9uc0FuZERlbGV0ZShzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGRlbGV0ZUxvY2F0aW9uKFxuICAgIGxvY2F0aW9uSWQ6IG51bWJlcixcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZGVsZXRlTG9jYXRpb24obG9jYXRpb25JZCwgc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBkZWxldGVBbGxMb2NhdGlvbnMoXG4gICAgc3VjY2Vzcz86ICgpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmRlbGV0ZUFsbExvY2F0aW9ucyhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIHN3aXRjaE1vZGUoXG4gICAgbW9kZUlkOiBudW1iZXIsXG4gICAgc3VjY2Vzcz86ICgpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnN3aXRjaE1vZGUobW9kZUlkLCBzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGZvcmNlU3luYyhcbiAgICBzdWNjZXNzPzogKCkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZm9yY2VTeW5jKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgY2xlYXJTeW5jKFxuICAgIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5jbGVhclN5bmMoc3VjY2VzcywgZmFpbCk7XG4gIH1cblxuICBnZXRQZW5kaW5nU3luY0NvdW50KFxuICAgIHN1Y2Nlc3M/OiAoY291bnQ6IG51bWJlcikgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5nZXRQZW5kaW5nU3luY0NvdW50KHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZ2V0Q29uZmlnKFxuICAgIHN1Y2Nlc3M/OiAoY29uZmlnOiBhbnkpID0+IHZvaWQsXG4gICAgZmFpbD86IChlcnJvcjogYW55KSA9PiB2b2lkXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlUGx1Z2luKCkuZ2V0Q29uZmlnKHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgZ2V0TG9nRW50cmllcyhcbiAgICBsaW1pdDogbnVtYmVyLFxuICAgIGZyb21JZDogbnVtYmVyLFxuICAgIG1pbkxldmVsOiBzdHJpbmcsXG4gICAgc3VjY2Vzcz86IChlbnRyaWVzOiBhbnlbXSkgPT4gdm9pZCxcbiAgICBmYWlsPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLmdldExvZ0VudHJpZXMobGltaXQsIGZyb21JZCwgbWluTGV2ZWwsIHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgcmVtb3ZlQWxsTGlzdGVuZXJzKGV2ZW50Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5lbnN1cmVQbHVnaW4oKS5yZW1vdmVBbGxMaXN0ZW5lcnMoZXZlbnQpO1xuICB9XG5cbiAgc3RhcnRUYXNrKFxuICAgIHN1Y2Nlc3M/OiAodGFza0tleTogbnVtYmVyKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVBsdWdpbigpLnN0YXJ0VGFzayhzdWNjZXNzLCBmYWlsKTtcbiAgfVxuXG4gIGVuZFRhc2soXG4gICAgdGFza0tleTogbnVtYmVyLFxuICAgIHN1Y2Nlc3M/OiAoKSA9PiB2b2lkLFxuICAgIGZhaWw/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVQbHVnaW4oKS5lbmRUYXNrKHRhc2tLZXksIHN1Y2Nlc3MsIGZhaWwpO1xuICB9XG5cbiAgaGVhZGxlc3NUYXNrKHRhc2s6IChldmVudDogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5lbnN1cmVQbHVnaW4oKS5oZWFkbGVzc1Rhc2sodGFzayk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gZXZlbnQgbGlzdGVuZXIuIENvbXBhdGlibGUgd2l0aCBBd2Vzb21lLXN0eWxlIHVzYWdlOlxuICAgKiAub24oQmFja2dyb3VuZEdlb2xvY2F0aW9uRXZlbnRzLmVycm9yKS5zdWJzY3JpYmUoKGVycikgPT4gLi4uKSDigJQgcmV0dXJucyBzdWJzY3JpcHRpb24gd2l0aCAudW5zdWJzY3JpYmUoKS5cbiAgICogLm9uKCdsb2NhdGlvbicsIChsb2MpID0+IC4uLikg4oCUIGFsc28gc3VwcG9ydGVkOyByZXR1cm5lZCBvYmplY3QgaGFzIC51bnN1YnNjcmliZSgpLlxuICAgKi9cbiAgb24oZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrPzogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB7IHN1YnNjcmliZShjYjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB7IHVuc3Vic2NyaWJlKCk6IHZvaWQgfTsgdW5zdWJzY3JpYmUoKTogdm9pZCB9IHtcbiAgICBjb25zdCBwbHVnaW4gPSB0aGlzLmVuc3VyZVBsdWdpbigpO1xuICAgIGlmIChjYWxsYmFjayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBzdWIgPSBwbHVnaW4ub24oZXZlbnROYW1lLCBjYWxsYmFjaykgYXMgeyByZW1vdmU/OiAoKSA9PiB2b2lkIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWJzY3JpYmUoY2I6ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgICAgY29uc3QgcyA9IGNiID8gKHBsdWdpbi5vbihldmVudE5hbWUsIGNiKSBhcyB7IHJlbW92ZT86ICgpID0+IHZvaWQgfSkgOiBudWxsO1xuICAgICAgICAgIHJldHVybiB7IHVuc3Vic2NyaWJlKCkgeyBzPy5yZW1vdmU/LigpOyB9IH07XG4gICAgICAgIH0sXG4gICAgICAgIHVuc3Vic2NyaWJlKCkgeyBzdWIucmVtb3ZlPy4oKTsgfVxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgY2hhbm5lbCA9IHBsdWdpbi5vbihldmVudE5hbWUpIGFzIHsgc3Vic2NyaWJlOiAoY2I6ICh2OiBhbnkpID0+IHZvaWQpID0+IHZvaWQ7IHVuc3Vic2NyaWJlOiAoY2I6ICh2OiBhbnkpID0+IHZvaWQpID0+IHZvaWQgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc3Vic2NyaWJlKGNiOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgICAgICBjaGFubmVsLnN1YnNjcmliZShjYik7XG4gICAgICAgIHJldHVybiB7IHVuc3Vic2NyaWJlKCkgeyBjaGFubmVsLnVuc3Vic2NyaWJlKGNiKTsgfSB9O1xuICAgICAgfSxcbiAgICAgIHVuc3Vic2NyaWJlKCkgeyAvKiBuby1vcCB3aGVuIG5vIGNhbGxiYWNrICovIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqIENvbnZlbmllbmNlOiBhY2Nlc3MgcGx1Z2luIGNvbnN0YW50cyAoZS5nLiBBQ1RJVklUWV9QUk9WSURFUiwgSElHSF9BQ0NVUkFDWSkuICovXG4gIGdldCBuYXRpdmUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW47XG4gIH1cbn1cbiJdfQ==
|
|
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
|
}
|
|
@@ -98,6 +132,18 @@ class BackgroundGeolocationService {
|
|
|
98
132
|
getPendingSyncCount(success, fail) {
|
|
99
133
|
return this.ensurePlugin().getPendingSyncCount(success, fail);
|
|
100
134
|
}
|
|
135
|
+
startSession(success, fail) {
|
|
136
|
+
return this.ensurePlugin().startSession(success, fail);
|
|
137
|
+
}
|
|
138
|
+
getSessionLocations(success, fail) {
|
|
139
|
+
return this.ensurePlugin().getSessionLocations(success, fail);
|
|
140
|
+
}
|
|
141
|
+
clearSession(success, fail) {
|
|
142
|
+
return this.ensurePlugin().clearSession(success, fail);
|
|
143
|
+
}
|
|
144
|
+
getSessionLocationsCount(success, fail) {
|
|
145
|
+
return this.ensurePlugin().getSessionLocationsCount(success, fail);
|
|
146
|
+
}
|
|
101
147
|
getConfig(success, fail) {
|
|
102
148
|
return this.ensurePlugin().getConfig(success, fail);
|
|
103
149
|
}
|
|
@@ -210,6 +256,27 @@ var BackgroundGeolocationEvents;
|
|
|
210
256
|
BackgroundGeolocationEvents["activity"] = "activity";
|
|
211
257
|
BackgroundGeolocationEvents["stationary"] = "stationary";
|
|
212
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";
|
|
213
280
|
})(BackgroundGeolocationEvents || (BackgroundGeolocationEvents = {}));
|
|
214
281
|
|
|
215
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 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":";;;AAEA;;;;AAIG;MACU,8BAA8B,GAAG,IAAI,cAAc,CAC9D,8BAA8B;AAGhC;;;;;;;;;;AAUG;MAEU,4BAA4B,CAAA;;AAGvC,IAAA,IAAY,MAAM,GAAA;QAChB,IAAI,OAAO,MAAM,KAAK,WAAW;AAAE,YAAA,OAAO,IAAI;AAC9C,QAAA,OAAQ,MAAc,CAAC,qBAAqB,IAAI,IAAI;IACtD;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;QACrB,IAAI,CAAC,CAAC,EAAE;AACN,YAAA,MAAM,IAAI,KAAK,CACb,wIAAwI,CACzI;QACH;AACA,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,SAAS,CAAC,OAAY,EAAE,OAAoB,EAAE,IAAyB,EAAA;AACrE,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;IAC9D;IAEA,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE;IACpC;IAEA,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE;IACnC;;IAGA,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE;IACrC;;AAGA,IAAA,UAAU,CAAC,QAAiB,EAAA;QAC1B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;IACjD;AAEA,IAAA,kBAAkB,CAChB,OAAiC,EACjC,IAA2B,EAC3B,OAAa,EAAA;AAEb,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;IACvE;IAEA,qBAAqB,CACnB,OAAiC,EACjC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC;IACjE;IAEA,WAAW,CACT,OAA+B,EAC/B,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;IACvD;AAEA;;;;;;AAMG;IACH,cAAc,CACZ,OAAoC,EACpC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;IAC1D;;IAGA,8BAA8B,CAC5B,OAAwC,EACxC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,8BAA8B,CAAC,OAAO,EAAE,IAAI,CAAC;IAC1E;;IAGA,iCAAiC,CAC/B,OAAwC,EACxC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,iCAAiC,CAAC,OAAO,EAAE,IAAI,CAAC;IAC7E;;IAGA,mBAAmB,CACjB,OAAoB,EACpB,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/D;;IAGA,qBAAqB,CACnB,OAAmF,EACnF,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC;IACjE;;IAGA,mBAAmB,CACjB,OAAmE,EACnE,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/D;;AAGA,IAAA,UAAU,CACR,OAAgC,EAChC,OAAoB,EACpB,IAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;IAC/D;IAEA,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,eAAe,EAAE;IAC9C;;IAGA,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE;IAC3C;IAEA,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,oBAAoB,EAAE;IACnD;IAEA,gBAAgB,CACd,OAAmC,EACnC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC5D;IAEA,YAAY,CACV,OAAoC,EACpC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;IACxD;IAEA,iBAAiB,CACf,OAAoC,EACpC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC7D;IAEA,0BAA0B,CACxB,OAAoC,EACpC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC;IACtE;AAEA,IAAA,cAAc,CACZ,UAAkB,EAClB,OAAoB,EACpB,IAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;IACtE;IAEA,kBAAkB,CAChB,OAAoB,EACpB,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC9D;AAEA,IAAA,UAAU,CACR,MAAc,EACd,OAAoB,EACpB,IAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;IAC9D;IAEA,SAAS,CACP,OAAoB,EACpB,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;IACrD;IAEA,SAAS,CACP,OAAoB,EACpB,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;IACrD;IAEA,mBAAmB,CACjB,OAAiC,EACjC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/D;IAEA,YAAY,CACV,OAAoB,EACpB,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;IACxD;IAEA,mBAAmB,CACjB,OAAoC,EACpC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/D;IAEA,YAAY,CACV,OAAoB,EACpB,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;IACxD;IAEA,wBAAwB,CACtB,OAAiC,EACjC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC;IACpE;IAEA,SAAS,CACP,OAA+B,EAC/B,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;IACrD;IAEA,aAAa,CACX,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,OAAkC,EAClC,IAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;IAClF;AAEA,IAAA,kBAAkB,CAAC,KAAc,EAAA;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAC/C;IAEA,SAAS,CACP,OAAmC,EACnC,IAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;IACrD;AAEA,IAAA,OAAO,CACL,OAAe,EACf,OAAoB,EACpB,IAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;IAC5D;AAEA,IAAA,YAAY,CAAC,IAA0B,EAAA;QACrC,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;IACxC;AAEA;;;;AAIG;IACH,EAAE,CAAC,SAAiB,EAAE,QAA+B,EAAA;AACnD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;AAClC,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAA4B;YACrE,OAAO;AACL,gBAAA,SAAS,CAAC,EAAwB,EAAA;AAChC,oBAAA,MAAM,CAAC,GAAG,EAAE,GAAI,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAA6B,GAAG,IAAI;AAC3E,oBAAA,OAAO,EAAE,WAAW,GAAA,EAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC7C,CAAC;gBACD,WAAW,GAAA,EAAK,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;aACjC;QACH;QACA,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAA+F;QAClI,OAAO;AACL,YAAA,SAAS,CAAC,EAAwB,EAAA;AAChC,gBAAA,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;AACrB,gBAAA,OAAO,EAAE,WAAW,GAAA,EAAK,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,CAAC;AACD,YAAA,WAAW,KAAkC;SAC9C;IACH;;AAGA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,MAAM;IACpB;wGApTW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAA5B,4BAA4B,EAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC;;;AChBD;;;;;;;;;AASG;MAaU,2BAA2B,CAAA;wGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAA3B,2BAA2B,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,SAAA,EAX3B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,UAAU,EAAE,MAAM,IAAI,4BAA4B,EAAE;AACrD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,WAAW,EAAE,8BAA8B;AAC5C,aAAA;AACF,SAAA,EAAA,CAAA;;4FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAZvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,UAAU,EAAE,MAAM,IAAI,4BAA4B,EAAE;AACrD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAE,8BAA8B;AAC5C,yBAAA;AACF,qBAAA;AACF,iBAAA;;;AC3BD;;;AAGG;IACS;AAAZ,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,2BAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,2BAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,2BAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,2BAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,2BAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,2BAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,2BAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,2BAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;;AAErB,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,2BAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,2BAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;;AAEvB,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,2BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,2BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,2BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,2BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,2BAAA,CAAA,KAAA,CAAA,GAAA,KAAW;;AAEX,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,2BAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACvC,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,2BAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;;AAE/B,IAAA,2BAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACnD,CAAC,EAjCW,2BAA2B,KAA3B,2BAA2B,GAAA,EAAA,CAAA,CAAA;;ACJvC;;;AAGG;IAES;AAAZ,CAAA,UAAY,iCAAiC,EAAA;AAC3C,IAAA,iCAAA,CAAA,iCAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB;AACrB,IAAA,iCAAA,CAAA,iCAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAwB;AACxB,IAAA,iCAAA,CAAA,iCAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACb,CAAC,EAJW,iCAAiC,KAAjC,iCAAiC,GAAA,EAAA,CAAA,CAAA;IAMjC;AAAZ,CAAA,UAAY,mCAAmC,EAAA;AAC7C,IAAA,mCAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,mCAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,mCAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,mCAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EALW,mCAAmC,KAAnC,mCAAmC,GAAA,EAAA,CAAA,CAAA;IAOnC;AAAZ,CAAA,UAAY,qCAAqC,EAAA;AAC/C,IAAA,qCAAA,CAAA,qCAAA,CAAA,0BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,0BAA4B;AAC5B,IAAA,qCAAA,CAAA,qCAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB;AACrB,IAAA,qCAAA,CAAA,qCAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB;AAClB,CAAC,EAJW,qCAAqC,KAArC,qCAAqC,GAAA,EAAA,CAAA,CAAA;IAMrC;AAAZ,CAAA,UAAY,wCAAwC,EAAA;AAClD,IAAA,wCAAA,CAAA,wCAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;AAClB,IAAA,wCAAA,CAAA,wCAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;AACd,IAAA,wCAAA,CAAA,wCAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAyB;AAC3B,CAAC,EAJW,wCAAwC,KAAxC,wCAAwC,GAAA,EAAA,CAAA,CAAA;IAMxC;AAAZ,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,6BAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,6BAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,6BAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,6BAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EANW,6BAA6B,KAA7B,6BAA6B,GAAA,EAAA,CAAA,CAAA;IAQ7B;AAAZ,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,6BAAA,CAAA,kCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kCAAoC;AACpC,IAAA,6BAAA,CAAA,6BAAA,CAAA,2BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,2BAA6B;AAC7B,IAAA,6BAAA,CAAA,6BAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB;AAClB,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,GAAA,EAAA,CAAA,CAAA;AAMzC;IACY;AAAZ,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,6BAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,6BAAA,CAAA,6BAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAY;AACZ,IAAA,6BAAA,CAAA,6BAAA,CAAA,KAAA,CAAA,GAAA,IAAA,CAAA,GAAA,KAAU;AACV,IAAA,6BAAA,CAAA,6BAAA,CAAA,SAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAe;AACjB,CAAC,EALW,6BAA6B,KAA7B,6BAA6B,GAAA,EAAA,CAAA,CAAA;IAO7B;AAAZ,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,yBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;AACd,IAAA,yBAAA,CAAA,yBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;AAChB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,GAAA,EAAA,CAAA,CAAA;IAKzB;AAAZ,CAAA,UAAY,gCAAgC,EAAA;AAC1C,IAAA,gCAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,gCAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,gCAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gCAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EALW,gCAAgC,KAAhC,gCAAgC,GAAA,EAAA,CAAA,CAAA;;ACzD5C;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -37,6 +37,10 @@
|
|
|
37
37
|
- (void) forceSync:(CDVInvokedUrlCommand*)command;
|
|
38
38
|
- (void) clearSync:(CDVInvokedUrlCommand*)command;
|
|
39
39
|
- (void) getPendingSyncCount:(CDVInvokedUrlCommand*)command;
|
|
40
|
+
- (void) startSession:(CDVInvokedUrlCommand*)command;
|
|
41
|
+
- (void) getSessionLocations:(CDVInvokedUrlCommand*)command;
|
|
42
|
+
- (void) clearSession:(CDVInvokedUrlCommand*)command;
|
|
43
|
+
- (void) getSessionLocationsCount:(CDVInvokedUrlCommand*)command;
|
|
40
44
|
- (void) addEventListener:(CDVInvokedUrlCommand*)command;
|
|
41
45
|
- (void) removeEventListener:(CDVInvokedUrlCommand*)command;
|
|
42
46
|
|