react-native-brouter 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +125 -0
  3. package/android/build.gradle +110 -0
  4. package/android/generated/java/com/jhotadhari/reactnative/brouter/NativeBRouterSpec.java +39 -0
  5. package/android/generated/jni/CMakeLists.txt +28 -0
  6. package/android/generated/jni/RNBRouterSpec-generated.cpp +32 -0
  7. package/android/generated/jni/RNBRouterSpec.h +31 -0
  8. package/android/generated/jni/react/renderer/components/RNBRouterSpec/RNBRouterSpecJSI.h +38 -0
  9. package/android/gradle.properties +5 -0
  10. package/android/src/main/AndroidManifest.xml +3 -0
  11. package/android/src/main/AndroidManifestNew.xml +2 -0
  12. package/android/src/main/aidl/btools/routingapp/IBRouterService.aidl +47 -0
  13. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterClient.java +205 -0
  14. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterError.java +38 -0
  15. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterModule.java +135 -0
  16. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterPackage.kt +33 -0
  17. package/android/src/main/java/com/jhotadhari/reactnative/brouter/BRouterServiceConnection.java +54 -0
  18. package/android/src/main/java/com/jhotadhari/reactnative/brouter/ParamMapper.java +174 -0
  19. package/android/src/test/java/com/jhotadhari/reactnative/brouter/BRouterClientTest.java +247 -0
  20. package/android/src/test/java/com/jhotadhari/reactnative/brouter/BRouterErrorTest.java +48 -0
  21. package/android/src/test/java/com/jhotadhari/reactnative/brouter/BRouterModuleTest.java +137 -0
  22. package/android/src/test/java/com/jhotadhari/reactnative/brouter/ParamMapperTest.java +279 -0
  23. package/lib/module/NativeBRouter.js +5 -0
  24. package/lib/module/NativeBRouter.js.map +1 -0
  25. package/lib/module/geojson/index.js +235 -0
  26. package/lib/module/geojson/index.js.map +1 -0
  27. package/lib/module/index.js +297 -0
  28. package/lib/module/index.js.map +1 -0
  29. package/lib/module/package.json +1 -0
  30. package/lib/module/types.js +2 -0
  31. package/lib/module/types.js.map +1 -0
  32. package/lib/typescript/package.json +1 -0
  33. package/lib/typescript/release.config.d.ts +11 -0
  34. package/lib/typescript/release.config.d.ts.map +1 -0
  35. package/lib/typescript/src/NativeBRouter.d.ts +9 -0
  36. package/lib/typescript/src/NativeBRouter.d.ts.map +1 -0
  37. package/lib/typescript/src/geojson/index.d.ts +122 -0
  38. package/lib/typescript/src/geojson/index.d.ts.map +1 -0
  39. package/lib/typescript/src/index.d.ts +13 -0
  40. package/lib/typescript/src/index.d.ts.map +1 -0
  41. package/lib/typescript/src/types.d.ts +93 -0
  42. package/lib/typescript/src/types.d.ts.map +1 -0
  43. package/package.json +159 -0
  44. package/react-native.config.js +12 -0
  45. package/src/NativeBRouter.ts +8 -0
  46. package/src/geojson/index.ts +371 -0
  47. package/src/index.tsx +344 -0
  48. package/src/types.ts +112 -0
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.getEnforcing('BRouter');
5
+ //# sourceMappingURL=NativeBRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeBRouter.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAMlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * GeoJSON-friendly API for react-native-brouter.
5
+ *
6
+ * This layer accepts GeoJSON {@link Position} arrays for waypoints and
7
+ * nogo areas, and returns results that integrate naturally with
8
+ * `@turf/turf` and other GeoJSON tooling.
9
+ *
10
+ * ## Usage
11
+ *
12
+ * ```ts
13
+ * import { getRoute } from 'react-native-brouter/geojson';
14
+ *
15
+ * const result = await getRoute({
16
+ * waypoints: [[-71.04, -13.95], [-70.90, -13.79]],
17
+ * vehicle: 'bicycle',
18
+ * format: 'json',
19
+ * });
20
+ * // result.parsed.track → GeoJSON FeatureCollection
21
+ * // result.parsed.waypoints → FeatureCollection of waypoint points
22
+ * ```
23
+ *
24
+ * @module geojson
25
+ */
26
+
27
+ import { getRoute as coreGetRoute } from "../index.js";
28
+
29
+ // Re-export GeoJSON Position so consumers don't need their own @types/geojson
30
+
31
+ // ── GeoJSON-specific types ──────────────────────────────────────────
32
+
33
+ // ── Helpers ─────────────────────────────────────────────────────────
34
+
35
+ /**
36
+ * Parse a BRouter JSON track result into a typed GeoJSON structure.
37
+ *
38
+ * BRouter's JSON output format is a plain array of feature objects
39
+ * (not a proper FeatureCollection). This normalizes it.
40
+ */
41
+ function parseJsonTrack(raw, waypoints) {
42
+ const parsed = JSON.parse(raw);
43
+
44
+ // BRouter may return a bare array of features or a FeatureCollection
45
+ // wrapper. Handle both shapes.
46
+ let features;
47
+ if (Array.isArray(parsed)) {
48
+ features = parsed;
49
+ } else if (parsed != null && typeof parsed === 'object' && 'features' in parsed && Array.isArray(parsed.features)) {
50
+ features = parsed.features;
51
+ } else {
52
+ throw new Error('Unexpected BRouter JSON shape: ' + typeof parsed);
53
+ }
54
+
55
+ // Separate track features from waypoint features
56
+ const trackFeatures = [];
57
+ let totalDistanceMeters;
58
+ let totalDurationSeconds;
59
+ let ascentMeters;
60
+ let descentMeters;
61
+ let trackPointCount = 0;
62
+ for (let fi = 0; fi < features.length; fi++) {
63
+ const feature = features[fi];
64
+ if (feature.geometry.type === 'LineString') {
65
+ const coords = feature.geometry.coordinates;
66
+ trackFeatures.push({
67
+ type: 'Feature',
68
+ geometry: {
69
+ type: 'LineString',
70
+ coordinates: coords
71
+ },
72
+ properties: feature.properties
73
+ });
74
+ trackPointCount += coords.length;
75
+
76
+ // Extract summary from feature properties
77
+ if (feature.properties['track-length'] != null) {
78
+ totalDistanceMeters = Number(feature.properties['track-length']);
79
+ }
80
+ if (feature.properties['total-time'] != null) {
81
+ totalDurationSeconds = Number(feature.properties['total-time']);
82
+ }
83
+ if (feature.properties['filtered ascend'] != null) {
84
+ ascentMeters = Number(feature.properties['filtered ascend']);
85
+ }
86
+ if (feature.properties['plain-descent'] != null) {
87
+ descentMeters = Number(feature.properties['plain-descent']);
88
+ }
89
+ }
90
+ }
91
+ const waypointFeatures = waypoints.map((pos, i) => ({
92
+ type: 'Feature',
93
+ geometry: {
94
+ type: 'Point',
95
+ coordinates: pos
96
+ },
97
+ properties: {
98
+ index: i
99
+ }
100
+ }));
101
+ return {
102
+ track: {
103
+ type: 'FeatureCollection',
104
+ features: trackFeatures
105
+ },
106
+ waypoints: {
107
+ type: 'FeatureCollection',
108
+ features: waypointFeatures
109
+ },
110
+ summary: {
111
+ totalDistanceMeters,
112
+ totalDurationSeconds,
113
+ ascentMeters,
114
+ descentMeters,
115
+ trackPointCount
116
+ }
117
+ };
118
+ }
119
+
120
+ // ── Public API ──────────────────────────────────────────────────────
121
+
122
+ /**
123
+ * Request a route from the BRouter Android app using GeoJSON types.
124
+ *
125
+ * Converts GeoJSON {@link Position} arrays to the internal format,
126
+ * calls the native BRouter service, and returns a result that
127
+ * includes parsed GeoJSON structures when `format` is `'json'`.
128
+ *
129
+ * @throws {BRouterError} if the request is invalid or BRouter fails.
130
+ */
131
+ export async function getRoute(request) {
132
+ // Convert GeoJSON positions to core Waypoint[]
133
+ const coreWaypoints = request.waypoints.map(pos => ({
134
+ position: [pos[0], pos[1]]
135
+ }));
136
+ const coreRequest = {
137
+ waypoints: coreWaypoints,
138
+ profile: request.profile,
139
+ remoteProfile: request.remoteProfile,
140
+ vehicle: request.vehicle,
141
+ fast: request.fast,
142
+ format: request.format,
143
+ alternativeIndex: request.alternativeIndex,
144
+ nogos: request.nogos,
145
+ exportWaypoints: request.exportWaypoints,
146
+ heading: request.heading,
147
+ direction: request.direction,
148
+ elevation: request.elevation,
149
+ maxRunningTime: request.maxRunningTime,
150
+ connectTimeout: request.connectTimeout,
151
+ pathToFileResult: request.pathToFileResult,
152
+ acceptCompressedResult: request.acceptCompressedResult,
153
+ extraParams: request.extraParams
154
+ };
155
+ const result = await coreGetRoute(coreRequest);
156
+ const geoResult = {
157
+ raw: result.raw,
158
+ format: result.format
159
+ };
160
+
161
+ // Parse JSON result into typed GeoJSON
162
+ if (result.format === 'json') {
163
+ try {
164
+ geoResult.parsed = parseJsonTrack(result.raw, request.waypoints);
165
+ } catch (e) {
166
+ console.warn('Failed to parse BRouter JSON track:', e instanceof Error ? e.message : String(e));
167
+ }
168
+ }
169
+ return geoResult;
170
+ }
171
+
172
+ /**
173
+ * Convert a GeoJSON {@link Polygon} or {@link MultiPolygon} into an array
174
+ * of {@link NogoArea} entries suitable for use in
175
+ * {@link GeoJSONRouteRequest.nogos}.
176
+ *
177
+ * Uses a bounding-circle approximation: the polygon's centroid becomes
178
+ * the nogo center, and the farthest vertex distance becomes the radius.
179
+ *
180
+ * This is a utility for consumers — it is not called automatically.
181
+ *
182
+ * ## Usage with turf
183
+ *
184
+ * ```ts
185
+ * import { polygonToNogoAreas } from 'react-native-brouter/geojson';
186
+ * import turfBboxPolygon from '@turf/bbox-polygon';
187
+ *
188
+ * const bboxPoly = turfBboxPolygon([lng1, lat1, lng2, lat2]);
189
+ * const nogos = polygonToNogoAreas(bboxPoly.geometry);
190
+ * ```
191
+ */
192
+ export function polygonToNogoAreas(geometry, weight) {
193
+ const result = [];
194
+
195
+ // Normalize to an array of polygon rings
196
+ const polygons = geometry.type === 'Polygon' ? [geometry.coordinates] : geometry.coordinates;
197
+ for (let pi = 0; pi < polygons.length; pi++) {
198
+ const rings = polygons[pi];
199
+ const outerRing = rings[0];
200
+ if (!outerRing || outerRing.length === 0) {
201
+ continue;
202
+ }
203
+
204
+ // Compute centroid (average of all vertices)
205
+ let sumLng = 0;
206
+ let sumLat = 0;
207
+ for (let oi = 0; oi < outerRing.length; oi++) {
208
+ const pos = outerRing[oi];
209
+ sumLng += pos[0];
210
+ sumLat += pos[1];
211
+ }
212
+ const centerLng = sumLng / outerRing.length;
213
+ const centerLat = sumLat / outerRing.length;
214
+
215
+ // Compute max distance from centroid to any vertex as radius
216
+ let maxDist = 0;
217
+ for (let oi = 0; oi < outerRing.length; oi++) {
218
+ const pos = outerRing[oi];
219
+ const dLng = (pos[0] - centerLng) * Math.cos(centerLat * Math.PI / 180);
220
+ const dLat = pos[1] - centerLat;
221
+ // Approximate distance in meters (1 degree ≈ 111,320 m)
222
+ const distMeters = Math.sqrt(dLng * dLng + dLat * dLat) * 111320;
223
+ if (distMeters > maxDist) {
224
+ maxDist = distMeters;
225
+ }
226
+ }
227
+ result.push({
228
+ position: [centerLng, centerLat],
229
+ radiusMeters: Math.ceil(maxDist),
230
+ weight
231
+ });
232
+ }
233
+ return result;
234
+ }
235
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getRoute","coreGetRoute","parseJsonTrack","raw","waypoints","parsed","JSON","parse","features","Array","isArray","Error","trackFeatures","totalDistanceMeters","totalDurationSeconds","ascentMeters","descentMeters","trackPointCount","fi","length","feature","geometry","type","coords","coordinates","push","properties","Number","waypointFeatures","map","pos","i","index","track","summary","request","coreWaypoints","position","coreRequest","profile","remoteProfile","vehicle","fast","format","alternativeIndex","nogos","exportWaypoints","heading","direction","elevation","maxRunningTime","connectTimeout","pathToFileResult","acceptCompressedResult","extraParams","result","geoResult","e","console","warn","message","String","polygonToNogoAreas","weight","polygons","pi","rings","outerRing","sumLng","sumLat","oi","centerLng","centerLat","maxDist","dLng","Math","cos","PI","dLat","distMeters","sqrt","radiusMeters","ceil"],"sourceRoot":"../../../src","sources":["geojson/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+
3
+ import NativeBRouter from "./NativeBRouter.js";
4
+ const TURN_INSTRUCTION_MODE_MAP = {
5
+ none: 0,
6
+ 'auto-choose': 1,
7
+ locus: 2,
8
+ osmand: 3,
9
+ comment: 4,
10
+ gpsies: 5,
11
+ orux: 6,
12
+ 'locus-old': 7
13
+ };
14
+
15
+ /**
16
+ * Serialize waypoints into the BRouter wire format.
17
+ *
18
+ * Produces three AIDL keys:
19
+ * - `lonlats`: `lng,lat[,name][,d]|...` pipe-delimited string
20
+ * - `lats`: double[] of latitudes
21
+ * - `lons`: double[] of longitudes
22
+ * - `straight`: comma-separated indices of direct-routing waypoints (if any)
23
+ */
24
+ function serializeWaypoints(waypoints) {
25
+ const parts = [];
26
+ const lats = [];
27
+ const lons = [];
28
+ const directIndices = [];
29
+ for (let i = 0; i < waypoints.length; i++) {
30
+ const wp = waypoints[i];
31
+ const lng = wp.position[0];
32
+ const lat = wp.position[1];
33
+ let part = `${lng},${lat}`;
34
+ if (wp.name) {
35
+ part += `,${wp.name}`;
36
+ }
37
+ if (wp.direct) {
38
+ part += ',d';
39
+ directIndices.push(i);
40
+ }
41
+ parts.push(part);
42
+ lats.push(lat);
43
+ lons.push(lng);
44
+ }
45
+ const result = {
46
+ lonlats: parts.join('|'),
47
+ lats,
48
+ lons
49
+ };
50
+ if (directIndices.length > 0) {
51
+ result.straight = directIndices.join(',');
52
+ }
53
+ return result;
54
+ }
55
+
56
+ /**
57
+ * Serialize nogo areas into the BRouter wire format.
58
+ *
59
+ * Produces AIDL keys:
60
+ * - `nogos`: `lng,lat,radius[,weight]|...` pipe-delimited string
61
+ * - `nogoLats`: double[] of nogo center latitudes
62
+ * - `nogoLons`: double[] of nogo center longitudes
63
+ * - `nogoRadi`: double[] of nogo radii
64
+ */
65
+ function serializeNogos(nogos) {
66
+ if (!nogos || nogos.length === 0) {
67
+ return {};
68
+ }
69
+ const parts = [];
70
+ const nogoLats = [];
71
+ const nogoLons = [];
72
+ const nogoRadi = [];
73
+ for (let ni = 0; ni < nogos.length; ni++) {
74
+ const nogo = nogos[ni];
75
+ const lng = nogo.position[0];
76
+ const lat = nogo.position[1];
77
+ let part = `${lng},${lat},${nogo.radiusMeters}`;
78
+ if (nogo.weight !== undefined) {
79
+ part += `,${nogo.weight}`;
80
+ }
81
+ parts.push(part);
82
+ nogoLats.push(lat);
83
+ nogoLons.push(lng);
84
+ nogoRadi.push(nogo.radiusMeters);
85
+ }
86
+ return {
87
+ nogos: parts.join('|'),
88
+ nogoLats,
89
+ nogoLons,
90
+ nogoRadi
91
+ };
92
+ }
93
+
94
+ /**
95
+ * Serialize polylines into the BRouter wire format.
96
+ *
97
+ * Produces: `lng,lat,lng,lat,...,weight|lng,lat,...|...`
98
+ */
99
+ function serializePolylines(polylines) {
100
+ if (!polylines || polylines.length === 0) {
101
+ return undefined;
102
+ }
103
+ return polylines.map(pl => {
104
+ const coords = pl.positions.map(p => `${p[0]},${p[1]}`).join(',');
105
+ return pl.weight !== undefined ? `${coords},${pl.weight}` : coords;
106
+ }).join('|');
107
+ }
108
+
109
+ /**
110
+ * Serialize polygons into the BRouter wire format (same as polylines).
111
+ */
112
+ function serializePolygons(polygons) {
113
+ if (!polygons || polygons.length === 0) {
114
+ return undefined;
115
+ }
116
+ return polygons.map(pg => {
117
+ const coords = pg.positions.map(p => `${p[0]},${p[1]}`).join(',');
118
+ return pg.weight !== undefined ? `${coords},${pg.weight}` : coords;
119
+ }).join('|');
120
+ }
121
+
122
+ /**
123
+ * Serialize pois into the BRouter wire format.
124
+ *
125
+ * Produces: `lng,lat,name|lng,lat,name|...`
126
+ */
127
+ function serializePois(pois) {
128
+ if (!pois || pois.length === 0) {
129
+ return undefined;
130
+ }
131
+ return pois.map(poi => `${poi.position[0]},${poi.position[1]},${poi.name}`).join('|');
132
+ }
133
+
134
+ /**
135
+ * Serialize a RouteRequest into the flat key-value map expected by the
136
+ * Android native module's ParamMapper.
137
+ */
138
+ function serializeParams(request) {
139
+ const params = {};
140
+
141
+ // Waypoints (required, already validated)
142
+ Object.assign(params, serializeWaypoints(request.waypoints));
143
+
144
+ // Profile
145
+ if (request.profile) {
146
+ // Strip .brf extension if present
147
+ params.profile = request.profile.replace(/\.brf$/, '');
148
+ }
149
+ if (request.remoteProfile) {
150
+ params.remoteProfile = request.remoteProfile;
151
+ }
152
+
153
+ // Vehicle mode
154
+ if (request.vehicle) {
155
+ params.v = request.vehicle;
156
+ }
157
+
158
+ // Fast mode
159
+ if (request.fast !== undefined) {
160
+ params.fast = request.fast ? 1 : 0;
161
+ }
162
+
163
+ // Track format
164
+ if (request.format) {
165
+ params.trackFormat = request.format;
166
+ }
167
+
168
+ // Alternative index
169
+ if (request.alternativeIndex !== undefined) {
170
+ params.alternativeidx = request.alternativeIndex;
171
+ }
172
+
173
+ // Export waypoints
174
+ if (request.exportWaypoints) {
175
+ params.exportWaypoints = 1;
176
+ }
177
+
178
+ // Turn instruction format
179
+ if (request.turnInstructionFormat) {
180
+ params.turnInstructionFormat = request.turnInstructionFormat;
181
+ }
182
+
183
+ // Turn instruction mode (enum → int)
184
+ if (request.turnInstructionMode) {
185
+ const mode = TURN_INSTRUCTION_MODE_MAP[request.turnInstructionMode];
186
+ if (mode !== undefined) {
187
+ params.timode = mode;
188
+ }
189
+ }
190
+
191
+ // Heading / direction
192
+ if (request.heading !== undefined) {
193
+ params.heading = request.heading;
194
+ }
195
+ if (request.direction !== undefined) {
196
+ params.direction = request.direction;
197
+ }
198
+
199
+ // Elevation (engineMode)
200
+ if (request.elevation) {
201
+ params.engineMode = 2;
202
+ }
203
+
204
+ // Max running time
205
+ if (request.maxRunningTime !== undefined) {
206
+ params.maxRunningTime = request.maxRunningTime;
207
+ }
208
+
209
+ // Connection timeout (not AIDL, used by BRouterClient)
210
+ if (request.connectTimeout !== undefined) {
211
+ params.connectTimeout = request.connectTimeout;
212
+ }
213
+
214
+ // File output
215
+ if (request.pathToFileResult) {
216
+ params.pathToFileResult = request.pathToFileResult;
217
+ }
218
+
219
+ // Compression
220
+ if (request.acceptCompressedResult) {
221
+ params.acceptCompressedResult = true;
222
+ }
223
+
224
+ // Extra params
225
+ if (request.extraParams) {
226
+ params.extraParams = request.extraParams;
227
+ }
228
+
229
+ // Nogo areas
230
+ if (request.nogos && request.nogos.length > 0) {
231
+ Object.assign(params, serializeNogos(request.nogos));
232
+ }
233
+
234
+ // Polylines
235
+ const polylinesStr = serializePolylines(request.polylines);
236
+ if (polylinesStr) {
237
+ params.polylines = polylinesStr;
238
+ }
239
+
240
+ // Polygons
241
+ const polygonsStr = serializePolygons(request.polygons);
242
+ if (polygonsStr) {
243
+ params.polygons = polygonsStr;
244
+ }
245
+
246
+ // POIs
247
+ const poisStr = serializePois(request.pois);
248
+ if (poisStr) {
249
+ params.pois = poisStr;
250
+ }
251
+ return params;
252
+ }
253
+
254
+ /**
255
+ * Extract a structured error from a native module rejection.
256
+ *
257
+ * Native rejections come through as `{ code: string, message: string }`
258
+ * from {@code Promise.reject(code, message)}.
259
+ */
260
+ function normalizeError(e) {
261
+ const err = e;
262
+ return {
263
+ code: err?.code ?? 'UNKNOWN',
264
+ message: err?.message ?? String(e)
265
+ };
266
+ }
267
+
268
+ /**
269
+ * Request a route from the BRouter Android app.
270
+ *
271
+ * This is the core API entry point. It validates the request, serializes
272
+ * it into the AIDL wire format, calls the native module, and returns a
273
+ * typed {@link RouteResult}.
274
+ *
275
+ * @throws {BRouterError} if the request is invalid or BRouter fails.
276
+ */
277
+ export async function getRoute(request) {
278
+ // Validate
279
+ if (!request.waypoints || request.waypoints.length < 2) {
280
+ throw {
281
+ code: 'INVALID_PARAMS',
282
+ message: 'At least 2 waypoints are required'
283
+ };
284
+ }
285
+ const format = request.format ?? 'gpx';
286
+ const params = serializeParams(request);
287
+ try {
288
+ const raw = await NativeBRouter.getRoute(params);
289
+ return {
290
+ raw,
291
+ format
292
+ };
293
+ } catch (e) {
294
+ throw normalizeError(e);
295
+ }
296
+ }
297
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeBRouter","TURN_INSTRUCTION_MODE_MAP","none","locus","osmand","comment","gpsies","orux","serializeWaypoints","waypoints","parts","lats","lons","directIndices","i","length","wp","lng","position","lat","part","name","direct","push","result","lonlats","join","straight","serializeNogos","nogos","nogoLats","nogoLons","nogoRadi","ni","nogo","radiusMeters","weight","undefined","serializePolylines","polylines","map","pl","coords","positions","p","serializePolygons","polygons","pg","serializePois","pois","poi","serializeParams","request","params","Object","assign","profile","replace","remoteProfile","vehicle","v","fast","format","trackFormat","alternativeIndex","alternativeidx","exportWaypoints","turnInstructionFormat","turnInstructionMode","mode","timode","heading","direction","elevation","engineMode","maxRunningTime","connectTimeout","pathToFileResult","acceptCompressedResult","extraParams","polylinesStr","polygonsStr","poisStr","normalizeError","e","err","code","message","String","getRoute","raw"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ repo: string;
3
+ publish: {
4
+ npm: {
5
+ buildCommand: string;
6
+ };
7
+ github: boolean;
8
+ };
9
+ };
10
+ export default _default;
11
+ //# sourceMappingURL=release.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.config.d.ts","sourceRoot":"","sources":["../../release.config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,wBAGE"}
@@ -0,0 +1,9 @@
1
+ import type { TurboModule } from 'react-native';
2
+ export interface Spec extends TurboModule {
3
+ getRoute(params: {
4
+ [key: string]: unknown;
5
+ }): Promise<string>;
6
+ }
7
+ declare const _default: Spec;
8
+ export default _default;
9
+ //# sourceMappingURL=NativeBRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeBRouter.d.ts","sourceRoot":"","sources":["../../../src/NativeBRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACxC,QAAQ,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;;AAED,wBAAiE"}