@symbiote-native/location 0.1.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/LICENSE +21 -0
- package/README.md +193 -0
- package/build/angular/index.d.ts +1 -0
- package/build/angular/index.js +4 -0
- package/build/core/index.d.ts +5 -0
- package/build/core/index.js +5 -0
- package/build/core/location.d.ts +39 -0
- package/build/core/location.js +204 -0
- package/build/core/native-module.d.ts +31 -0
- package/build/core/native-module.js +3 -0
- package/build/core/subscribers.d.ts +23 -0
- package/build/core/subscribers.js +65 -0
- package/build/core/types.d.ts +160 -0
- package/build/core/types.js +44 -0
- package/build-ngc/angular/index.d.ts +1 -0
- package/build-ngc/angular/index.js +5 -0
- package/build-ngc/angular/index.js.map +1 -0
- package/build-ngc/core/index.d.ts +5 -0
- package/build-ngc/core/index.js +6 -0
- package/build-ngc/core/index.js.map +1 -0
- package/build-ngc/core/location.d.ts +39 -0
- package/build-ngc/core/location.js +205 -0
- package/build-ngc/core/location.js.map +1 -0
- package/build-ngc/core/native-module.d.ts +31 -0
- package/build-ngc/core/native-module.js +4 -0
- package/build-ngc/core/native-module.js.map +1 -0
- package/build-ngc/core/subscribers.d.ts +23 -0
- package/build-ngc/core/subscribers.js +66 -0
- package/build-ngc/core/subscribers.js.map +1 -0
- package/build-ngc/core/types.d.ts +160 -0
- package/build-ngc/core/types.js +45 -0
- package/build-ngc/core/types.js.map +1 -0
- package/native-link.json +40 -0
- package/package.json +151 -0
- package/src/angular/index.ts +4 -0
- package/src/core/index.ts +17 -0
- package/src/core/location.ts +313 -0
- package/src/core/native-module.ts +62 -0
- package/src/core/subscribers.ts +101 -0
- package/src/core/types.ts +191 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { PermissionResponse } from 'expo-modules-core';
|
|
2
|
+
export declare enum LocationAccuracy {
|
|
3
|
+
Lowest = 1,
|
|
4
|
+
Low = 2,
|
|
5
|
+
Balanced = 3,
|
|
6
|
+
High = 4,
|
|
7
|
+
Highest = 5,
|
|
8
|
+
BestForNavigation = 6
|
|
9
|
+
}
|
|
10
|
+
export declare enum LocationActivityType {
|
|
11
|
+
Other = 1,
|
|
12
|
+
AutomotiveNavigation = 2,
|
|
13
|
+
Fitness = 3,
|
|
14
|
+
OtherNavigation = 4,
|
|
15
|
+
/** @platform ios */
|
|
16
|
+
Airborne = 5
|
|
17
|
+
}
|
|
18
|
+
export declare enum LocationGeofencingEventType {
|
|
19
|
+
Enter = 1,
|
|
20
|
+
Exit = 2
|
|
21
|
+
}
|
|
22
|
+
export declare enum LocationGeofencingRegionState {
|
|
23
|
+
Unknown = 0,
|
|
24
|
+
Inside = 1,
|
|
25
|
+
Outside = 2
|
|
26
|
+
}
|
|
27
|
+
export type ILocationOptions = {
|
|
28
|
+
accuracy?: LocationAccuracy;
|
|
29
|
+
/** @platform android */
|
|
30
|
+
mayShowUserSettingsDialog?: boolean;
|
|
31
|
+
/** @platform android */
|
|
32
|
+
timeInterval?: number;
|
|
33
|
+
distanceInterval?: number;
|
|
34
|
+
};
|
|
35
|
+
export type ILocationLastKnownOptions = {
|
|
36
|
+
maxAge?: number;
|
|
37
|
+
requiredAccuracy?: number;
|
|
38
|
+
};
|
|
39
|
+
export type ILocationTaskServiceOptions = {
|
|
40
|
+
notificationTitle: string;
|
|
41
|
+
notificationBody: string;
|
|
42
|
+
notificationColor?: string;
|
|
43
|
+
killServiceOnDestroy?: boolean;
|
|
44
|
+
};
|
|
45
|
+
export type ILocationTaskOptions = ILocationOptions & {
|
|
46
|
+
/** @platform ios */
|
|
47
|
+
showsBackgroundLocationIndicator?: boolean;
|
|
48
|
+
deferredUpdatesDistance?: number;
|
|
49
|
+
deferredUpdatesTimeout?: number;
|
|
50
|
+
deferredUpdatesInterval?: number;
|
|
51
|
+
/** @platform ios */
|
|
52
|
+
activityType?: LocationActivityType;
|
|
53
|
+
/** @platform ios */
|
|
54
|
+
pausesUpdatesAutomatically?: boolean;
|
|
55
|
+
foregroundService?: ILocationTaskServiceOptions;
|
|
56
|
+
};
|
|
57
|
+
export type ILocationRegion = {
|
|
58
|
+
identifier?: string;
|
|
59
|
+
latitude: number;
|
|
60
|
+
longitude: number;
|
|
61
|
+
radius: number;
|
|
62
|
+
/** @default true */
|
|
63
|
+
notifyOnEnter?: boolean;
|
|
64
|
+
/** @default true */
|
|
65
|
+
notifyOnExit?: boolean;
|
|
66
|
+
state?: LocationGeofencingRegionState;
|
|
67
|
+
};
|
|
68
|
+
export type ILocationObjectCoords = {
|
|
69
|
+
latitude: number;
|
|
70
|
+
longitude: number;
|
|
71
|
+
altitude: number | null;
|
|
72
|
+
accuracy: number | null;
|
|
73
|
+
altitudeAccuracy: number | null;
|
|
74
|
+
heading: number | null;
|
|
75
|
+
speed: number | null;
|
|
76
|
+
};
|
|
77
|
+
export type ILocationObject = {
|
|
78
|
+
coords: ILocationObjectCoords;
|
|
79
|
+
timestamp: number;
|
|
80
|
+
/** @platform android */
|
|
81
|
+
mocked?: boolean;
|
|
82
|
+
};
|
|
83
|
+
export type ILocationCallback = (location: ILocationObject) => unknown;
|
|
84
|
+
export type ILocationErrorCallback = (reason: string) => void;
|
|
85
|
+
export type ILocationProviderStatus = {
|
|
86
|
+
locationServicesEnabled: boolean;
|
|
87
|
+
backgroundModeEnabled: boolean;
|
|
88
|
+
/** @platform android */
|
|
89
|
+
gpsAvailable?: boolean;
|
|
90
|
+
/** @platform android */
|
|
91
|
+
networkAvailable?: boolean;
|
|
92
|
+
/** @platform android */
|
|
93
|
+
passiveAvailable?: boolean;
|
|
94
|
+
};
|
|
95
|
+
export type ILocationHeadingObject = {
|
|
96
|
+
trueHeading: number;
|
|
97
|
+
magHeading: number;
|
|
98
|
+
/** 0 none, 1 low, 2 medium, 3 high */
|
|
99
|
+
accuracy: number;
|
|
100
|
+
};
|
|
101
|
+
export type ILocationHeadingCallback = (heading: ILocationHeadingObject) => unknown;
|
|
102
|
+
export type ILocationGeocodedLocation = {
|
|
103
|
+
latitude: number;
|
|
104
|
+
longitude: number;
|
|
105
|
+
altitude?: number;
|
|
106
|
+
accuracy?: number;
|
|
107
|
+
};
|
|
108
|
+
export type ILocationGeocodedAddress = {
|
|
109
|
+
city: string | null;
|
|
110
|
+
district: string | null;
|
|
111
|
+
streetNumber: string | null;
|
|
112
|
+
street: string | null;
|
|
113
|
+
region: string | null;
|
|
114
|
+
subregion: string | null;
|
|
115
|
+
country: string | null;
|
|
116
|
+
postalCode: string | null;
|
|
117
|
+
name: string | null;
|
|
118
|
+
isoCountryCode: string | null;
|
|
119
|
+
/** @platform ios */
|
|
120
|
+
timezone: string | null;
|
|
121
|
+
/** @platform android */
|
|
122
|
+
formattedAddress: string | null;
|
|
123
|
+
};
|
|
124
|
+
export type ILocationSubscription = {
|
|
125
|
+
remove: () => void;
|
|
126
|
+
};
|
|
127
|
+
export type IPermissionDetailsLocationIOS = {
|
|
128
|
+
scope: 'whenInUse' | 'always' | 'none';
|
|
129
|
+
accuracy: 'full' | 'reduced';
|
|
130
|
+
};
|
|
131
|
+
export type IPermissionDetailsLocationAndroid = {
|
|
132
|
+
accuracy: 'fine' | 'coarse' | 'none';
|
|
133
|
+
};
|
|
134
|
+
export type ILocationPermissionResponse = PermissionResponse & {
|
|
135
|
+
ios?: IPermissionDetailsLocationIOS;
|
|
136
|
+
android?: IPermissionDetailsLocationAndroid;
|
|
137
|
+
};
|
|
138
|
+
export type { PermissionResponse };
|
|
139
|
+
export declare enum MotionActivityConfidence {
|
|
140
|
+
Low = 0,
|
|
141
|
+
Medium = 1,
|
|
142
|
+
High = 2
|
|
143
|
+
}
|
|
144
|
+
export declare enum MotionActivityType {
|
|
145
|
+
Automotive = "automotive",
|
|
146
|
+
Cycling = "cycling",
|
|
147
|
+
Running = "running",
|
|
148
|
+
Walking = "walking",
|
|
149
|
+
Stationary = "stationary",
|
|
150
|
+
Unknown = "unknown"
|
|
151
|
+
}
|
|
152
|
+
export type IMotionActivityState = {
|
|
153
|
+
detected: boolean;
|
|
154
|
+
confidence: MotionActivityConfidence;
|
|
155
|
+
};
|
|
156
|
+
export type IMotionActivityObject = {
|
|
157
|
+
activities: Record<MotionActivityType, IMotionActivityState>;
|
|
158
|
+
timestamp: number;
|
|
159
|
+
};
|
|
160
|
+
export type IMotionActivityCallback = (activity: IMotionActivityObject) => unknown;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export var LocationAccuracy;
|
|
2
|
+
(function (LocationAccuracy) {
|
|
3
|
+
LocationAccuracy[LocationAccuracy["Lowest"] = 1] = "Lowest";
|
|
4
|
+
LocationAccuracy[LocationAccuracy["Low"] = 2] = "Low";
|
|
5
|
+
LocationAccuracy[LocationAccuracy["Balanced"] = 3] = "Balanced";
|
|
6
|
+
LocationAccuracy[LocationAccuracy["High"] = 4] = "High";
|
|
7
|
+
LocationAccuracy[LocationAccuracy["Highest"] = 5] = "Highest";
|
|
8
|
+
LocationAccuracy[LocationAccuracy["BestForNavigation"] = 6] = "BestForNavigation";
|
|
9
|
+
})(LocationAccuracy || (LocationAccuracy = {}));
|
|
10
|
+
export var LocationActivityType;
|
|
11
|
+
(function (LocationActivityType) {
|
|
12
|
+
LocationActivityType[LocationActivityType["Other"] = 1] = "Other";
|
|
13
|
+
LocationActivityType[LocationActivityType["AutomotiveNavigation"] = 2] = "AutomotiveNavigation";
|
|
14
|
+
LocationActivityType[LocationActivityType["Fitness"] = 3] = "Fitness";
|
|
15
|
+
LocationActivityType[LocationActivityType["OtherNavigation"] = 4] = "OtherNavigation";
|
|
16
|
+
/** @platform ios */
|
|
17
|
+
LocationActivityType[LocationActivityType["Airborne"] = 5] = "Airborne";
|
|
18
|
+
})(LocationActivityType || (LocationActivityType = {}));
|
|
19
|
+
export var LocationGeofencingEventType;
|
|
20
|
+
(function (LocationGeofencingEventType) {
|
|
21
|
+
LocationGeofencingEventType[LocationGeofencingEventType["Enter"] = 1] = "Enter";
|
|
22
|
+
LocationGeofencingEventType[LocationGeofencingEventType["Exit"] = 2] = "Exit";
|
|
23
|
+
})(LocationGeofencingEventType || (LocationGeofencingEventType = {}));
|
|
24
|
+
export var LocationGeofencingRegionState;
|
|
25
|
+
(function (LocationGeofencingRegionState) {
|
|
26
|
+
LocationGeofencingRegionState[LocationGeofencingRegionState["Unknown"] = 0] = "Unknown";
|
|
27
|
+
LocationGeofencingRegionState[LocationGeofencingRegionState["Inside"] = 1] = "Inside";
|
|
28
|
+
LocationGeofencingRegionState[LocationGeofencingRegionState["Outside"] = 2] = "Outside";
|
|
29
|
+
})(LocationGeofencingRegionState || (LocationGeofencingRegionState = {}));
|
|
30
|
+
export var MotionActivityConfidence;
|
|
31
|
+
(function (MotionActivityConfidence) {
|
|
32
|
+
MotionActivityConfidence[MotionActivityConfidence["Low"] = 0] = "Low";
|
|
33
|
+
MotionActivityConfidence[MotionActivityConfidence["Medium"] = 1] = "Medium";
|
|
34
|
+
MotionActivityConfidence[MotionActivityConfidence["High"] = 2] = "High";
|
|
35
|
+
})(MotionActivityConfidence || (MotionActivityConfidence = {}));
|
|
36
|
+
export var MotionActivityType;
|
|
37
|
+
(function (MotionActivityType) {
|
|
38
|
+
MotionActivityType["Automotive"] = "automotive";
|
|
39
|
+
MotionActivityType["Cycling"] = "cycling";
|
|
40
|
+
MotionActivityType["Running"] = "running";
|
|
41
|
+
MotionActivityType["Walking"] = "walking";
|
|
42
|
+
MotionActivityType["Stationary"] = "stationary";
|
|
43
|
+
MotionActivityType["Unknown"] = "unknown";
|
|
44
|
+
})(MotionActivityType || (MotionActivityType = {}));
|
|
45
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,2DAAU,CAAA;IACV,qDAAO,CAAA;IACP,+DAAY,CAAA;IACZ,uDAAQ,CAAA;IACR,6DAAW,CAAA;IACX,iFAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAED,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,iEAAS,CAAA;IACT,+FAAwB,CAAA;IACxB,qEAAW,CAAA;IACX,qFAAmB,CAAA;IACnB,oBAAoB;IACpB,uEAAY,CAAA;AACd,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B;AAED,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,+EAAS,CAAA;IACT,6EAAQ,CAAA;AACV,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC;AAED,MAAM,CAAN,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACvC,uFAAW,CAAA;IACX,qFAAU,CAAA;IACV,uFAAW,CAAA;AACb,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,QAIxC;AAsID,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,qEAAO,CAAA;IACP,2EAAU,CAAA;IACV,uEAAQ,CAAA;AACV,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED,MAAM,CAAN,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,+CAAyB,CAAA;IACzB,yCAAmB,CAAA;AACrB,CAAC,EAPW,kBAAkB,KAAlB,kBAAkB,QAO7B"}
|
package/native-link.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"android": {
|
|
3
|
+
"gradleProjectName": "expo-location",
|
|
4
|
+
"modules": [
|
|
5
|
+
{
|
|
6
|
+
"importPath": "expo.modules.location.LocationModule",
|
|
7
|
+
"className": "LocationModule",
|
|
8
|
+
"nativeName": "ExpoLocation"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"optionalManifestBundles": [
|
|
12
|
+
{
|
|
13
|
+
"id": "background",
|
|
14
|
+
"label": "Background location tracking",
|
|
15
|
+
"warning": "Requesting ACCESS_BACKGROUND_LOCATION and the location foreground-service permissions triggers Play Console policy review — Google requires a clear, prominent in-app disclosure and justification before you can publish.",
|
|
16
|
+
"nextSteps": "Pass a `foregroundService` option to `startLocationUpdatesAsync` (notification title/body) so the OS keeps tracking alive outside the app. expo-location's own LocationTaskService is already declared in its AndroidManifest.xml and merges automatically — this only adds the permissions it needs.",
|
|
17
|
+
"manifestPermissions": [
|
|
18
|
+
"android.permission.ACCESS_BACKGROUND_LOCATION",
|
|
19
|
+
"android.permission.FOREGROUND_SERVICE",
|
|
20
|
+
"android.permission.FOREGROUND_SERVICE_LOCATION"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"ios": {
|
|
26
|
+
"infoPlistKeys": {
|
|
27
|
+
"NSLocationAlwaysAndWhenInUseUsageDescription": "Allow $(PRODUCT_NAME) to access your location.",
|
|
28
|
+
"NSLocationAlwaysUsageDescription": "Allow $(PRODUCT_NAME) to access your location.",
|
|
29
|
+
"NSLocationWhenInUseUsageDescription": "Allow $(PRODUCT_NAME) to access your location.",
|
|
30
|
+
"NSMotionUsageDescription": "Allow $(PRODUCT_NAME) to detect your current motion activity."
|
|
31
|
+
},
|
|
32
|
+
"infoPlistArrayKeys": { "UIBackgroundModes": ["location"] }
|
|
33
|
+
},
|
|
34
|
+
"reviewedNonIntrospectableMods": [
|
|
35
|
+
{
|
|
36
|
+
"mod": "android.dangerous",
|
|
37
|
+
"note": "withForegroundServiceIcon's dangerous half runs unconditionally with icon:null by default (expo-location's withLocation.js: `withForegroundServiceIcon(config, { icon: androidForegroundServiceIcon ?? null })`) — with icon:null it only unlinks a previously-written foreground-service icon PNG if one exists (existsSync-gated in removeForegroundServiceIconImageFiles). No-op for every consumer: this repo never sets androidForegroundServiceIcon anywhere."
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@symbiote-native/location",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "expo-location wrapped for SymbioteNative — one framework-agnostic core, built once and reachable from the React, Vue, Svelte, Solid, and Angular adapters. Foreground/background position and heading, geocoding, motion activity, and geofencing.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/OneEyed1366/symbiote-native.git",
|
|
9
|
+
"directory": "packages/location"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/OneEyed1366/symbiote-native/tree/master/packages/location#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/OneEyed1366/symbiote-native/issues"
|
|
14
|
+
},
|
|
15
|
+
"author": "Andrey Prokopenko <psevdoproger@gmail.com>",
|
|
16
|
+
"keywords": [
|
|
17
|
+
"react-native",
|
|
18
|
+
"symbiote-native",
|
|
19
|
+
"expo-location",
|
|
20
|
+
"react",
|
|
21
|
+
"vue",
|
|
22
|
+
"svelte",
|
|
23
|
+
"solid",
|
|
24
|
+
"angular",
|
|
25
|
+
"geolocation",
|
|
26
|
+
"geocoding",
|
|
27
|
+
"geofencing"
|
|
28
|
+
],
|
|
29
|
+
"type": "module",
|
|
30
|
+
"main": "./build/core/index.js",
|
|
31
|
+
"module": "./build/core/index.js",
|
|
32
|
+
"types": "./build/core/index.d.ts",
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"types": "./build/core/index.d.ts",
|
|
36
|
+
"default": "./build/core/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./vue": {
|
|
39
|
+
"types": "./build/core/index.d.ts",
|
|
40
|
+
"default": "./build/core/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./react": {
|
|
43
|
+
"types": "./build/core/index.d.ts",
|
|
44
|
+
"default": "./build/core/index.js"
|
|
45
|
+
},
|
|
46
|
+
"./svelte": {
|
|
47
|
+
"types": "./build/core/index.d.ts",
|
|
48
|
+
"default": "./build/core/index.js"
|
|
49
|
+
},
|
|
50
|
+
"./solid": {
|
|
51
|
+
"types": "./build/core/index.d.ts",
|
|
52
|
+
"default": "./build/core/index.js"
|
|
53
|
+
},
|
|
54
|
+
"./angular": {
|
|
55
|
+
"types": "./build-ngc/angular/index.d.ts",
|
|
56
|
+
"react-native": "./build-ngc/angular/index.js",
|
|
57
|
+
"default": "./src/angular/index.ts"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"files": [
|
|
61
|
+
"src",
|
|
62
|
+
"build",
|
|
63
|
+
"build-ngc",
|
|
64
|
+
"native-link.json",
|
|
65
|
+
"!src/**/*.test.*",
|
|
66
|
+
"!src/**/*.spec.*",
|
|
67
|
+
"!src/**/*.detox.*"
|
|
68
|
+
],
|
|
69
|
+
"publishConfig": {
|
|
70
|
+
"access": "public"
|
|
71
|
+
},
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"expo-location": "57.0.15",
|
|
74
|
+
"expo-modules-core": "57.0.5"
|
|
75
|
+
},
|
|
76
|
+
"peerDependencies": {
|
|
77
|
+
"@angular/core": ">=20",
|
|
78
|
+
"@vue/runtime-core": "^3.5.13",
|
|
79
|
+
"react": ">=19.0.0",
|
|
80
|
+
"react-native": ">=0.86",
|
|
81
|
+
"solid-js": ">=1.9.0",
|
|
82
|
+
"svelte": ">=5.56.0",
|
|
83
|
+
"vue": ">=3.5.0",
|
|
84
|
+
"@symbiote-native/engine": "^1.3.0",
|
|
85
|
+
"@symbiote-native/react": "^3.0.2",
|
|
86
|
+
"@symbiote-native/angular": "^3.1.0",
|
|
87
|
+
"@symbiote-native/solid": "^3.0.2",
|
|
88
|
+
"@symbiote-native/svelte": "^3.0.2",
|
|
89
|
+
"@symbiote-native/vue": "^3.0.2"
|
|
90
|
+
},
|
|
91
|
+
"peerDependenciesMeta": {
|
|
92
|
+
"@symbiote-native/angular": {
|
|
93
|
+
"optional": true
|
|
94
|
+
},
|
|
95
|
+
"@symbiote-native/react": {
|
|
96
|
+
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"@symbiote-native/solid": {
|
|
99
|
+
"optional": true
|
|
100
|
+
},
|
|
101
|
+
"@symbiote-native/svelte": {
|
|
102
|
+
"optional": true
|
|
103
|
+
},
|
|
104
|
+
"@symbiote-native/vue": {
|
|
105
|
+
"optional": true
|
|
106
|
+
},
|
|
107
|
+
"@angular/core": {
|
|
108
|
+
"optional": true
|
|
109
|
+
},
|
|
110
|
+
"@vue/runtime-core": {
|
|
111
|
+
"optional": true
|
|
112
|
+
},
|
|
113
|
+
"react": {
|
|
114
|
+
"optional": true
|
|
115
|
+
},
|
|
116
|
+
"solid-js": {
|
|
117
|
+
"optional": true
|
|
118
|
+
},
|
|
119
|
+
"svelte": {
|
|
120
|
+
"optional": true
|
|
121
|
+
},
|
|
122
|
+
"vue": {
|
|
123
|
+
"optional": true
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"devDependencies": {
|
|
127
|
+
"@angular/compiler": "~22.0.8",
|
|
128
|
+
"@angular/compiler-cli": "~22.0.8",
|
|
129
|
+
"@angular/core": "~22.0.8",
|
|
130
|
+
"@types/node": "^26.0.0",
|
|
131
|
+
"@types/react": "^19.2.0",
|
|
132
|
+
"@vue/runtime-core": "^3.5.13",
|
|
133
|
+
"react": "19.2.3",
|
|
134
|
+
"solid-js": "^1.9.14",
|
|
135
|
+
"svelte": "^5.56.0",
|
|
136
|
+
"typescript": "~6.0.0",
|
|
137
|
+
"@symbiote-native/angular": "3.1.0",
|
|
138
|
+
"@symbiote-native/engine": "1.3.0",
|
|
139
|
+
"@symbiote-native/solid": "3.0.2",
|
|
140
|
+
"@symbiote-native/svelte": "3.0.2",
|
|
141
|
+
"@symbiote-native/test-utils": "0.4.2",
|
|
142
|
+
"@symbiote-native/vue": "3.0.2",
|
|
143
|
+
"@symbiote-native/react": "3.0.2"
|
|
144
|
+
},
|
|
145
|
+
"scripts": {
|
|
146
|
+
"typecheck": "tsc --build",
|
|
147
|
+
"clean": "rm -rf build-ngc",
|
|
148
|
+
"ng:build": "pnpm run clean && ngc -p tsconfig.angular.json",
|
|
149
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\""
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export {
|
|
2
|
+
PermissionStatus,
|
|
3
|
+
type PermissionHookOptions,
|
|
4
|
+
type PermissionExpiration,
|
|
5
|
+
} from 'expo-modules-core';
|
|
6
|
+
|
|
7
|
+
export { getCurrentWatchId } from './subscribers';
|
|
8
|
+
|
|
9
|
+
export * from './location';
|
|
10
|
+
export * from './types';
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
LocationAccuracy as Accuracy,
|
|
14
|
+
LocationActivityType as ActivityType,
|
|
15
|
+
LocationGeofencingEventType as GeofencingEventType,
|
|
16
|
+
LocationGeofencingRegionState as GeofencingRegionState,
|
|
17
|
+
} from './types';
|