@tomtom-org/maps-sdk 0.45.4 → 0.45.6

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.
@@ -381,7 +381,7 @@ export declare const bboxFromCoordsArray: (coordinates: Position[] | undefined)
381
381
  * key: 'key',
382
382
  * locations: [[4.9, 52.3], [4.5, 51.9]]
383
383
  * });
384
- * const routeBbox = bboxFromGeoJSON(route.routes[0].geometry);
384
+ * const routeBbox = bboxFromGeoJSON(route.features[0].geometry);
385
385
  * // Returns bbox containing the entire route
386
386
  *
387
387
  * // From an array of GeoJSON objects
@@ -400,6 +400,39 @@ export declare const bboxFromGeoJSON: (hasBBox: HasBBox) => OptionalBBox;
400
400
  */
401
401
  export declare const bboxOnlyIfWithArea: (bbox: OptionalBBox) => OptionalBBox;
402
402
 
403
+ /**
404
+ * Interpolates the cumulative traveled distance and time at an arbitrary point on the route path.
405
+ *
406
+ * Uses the route's `progress` array to linearly interpolate between the two bracketing
407
+ * {@link RouteProgressPoint} entries that surround the requested `pathIndex`.
408
+ *
409
+ * @param route The route whose `properties.progress` will be used for interpolation.
410
+ * The progress array must cover the requested index (i.e. the first entry's
411
+ * `pointIndex` must be ≤ `pathIndex` and the last's must be ≥ `pathIndex`).
412
+ * @param pathIndex Zero-based index into the route's coordinate array.
413
+ * @returns Interpolated {@link RouteProgressAtPoint}, or `undefined` when:
414
+ * - the route has no `progress` data
415
+ * - `pathIndex` is outside `[0, coordinates.length - 1]`
416
+ * - `pathIndex` falls outside the range covered by the progress entries
417
+ * - any required distance or time value is missing from the bracketing entries
418
+ *
419
+ * @example
420
+ * ```typescript
421
+ * const progress = route.properties.progress;
422
+ * // progress = [
423
+ * // { pointIndex: 0, distanceInMeters: 0, travelTimeInSeconds: 0 },
424
+ * // { pointIndex: 50, distanceInMeters: 2500, travelTimeInSeconds: 120 },
425
+ * // { pointIndex: 100,distanceInMeters: 5000, travelTimeInSeconds: 300 }
426
+ * // ]
427
+ *
428
+ * const result = calculateProgressAtRoutePoint(route, 25);
429
+ * // result = { distanceInMeters: 1250, travelTimeInSeconds: 60 }
430
+ * ```
431
+ *
432
+ * @group Utils
433
+ */
434
+ export declare const calculateProgressAtRoutePoint: (route: Route, pathIndex: number) => RouteProgressAtPoint | undefined;
435
+
403
436
  /**
404
437
  * Traffic incident cause based on TPEG2-TEC standard.
405
438
  *
@@ -1839,6 +1872,61 @@ export declare interface FeatureCollectionWithProperties<G extends Geometry | nu
1839
1872
  properties?: FeatureCollectionProps;
1840
1873
  }
1841
1874
 
1875
+ /**
1876
+ * Finds the best index to insert a new waypoint into an existing route.
1877
+ *
1878
+ * This function determines the optimal position to insert a new waypoint among existing waypoints
1879
+ * by finding where it fits most naturally along the route line. The algorithm:
1880
+ * 1. Projects each existing waypoint onto the route line to find their closest points
1881
+ * 2. Projects the new waypoint onto the route line
1882
+ * 3. Determines where the new waypoint fits based on its position along the route
1883
+ *
1884
+ * @param route The existing calculated route Feature with LineString geometry
1885
+ * @param existingWaypoints Array of existing waypoints in order (origin, intermediate waypoints, destination)
1886
+ * @param newWaypoint The new waypoint to insert
1887
+ * @returns The index where the new waypoint should be inserted (0 means insert at the beginning,
1888
+ * existingWaypoints.length means append at the end)
1889
+ *
1890
+ * @remarks
1891
+ * - If the route has no coordinates, returns 0
1892
+ * - If there are fewer than 2 existing waypoints, returns 0
1893
+ * - The function finds where the new waypoint naturally fits along the route's progression
1894
+ * - This creates a more streamlined route by minimizing detours
1895
+ *
1896
+ * @example
1897
+ * ```typescript
1898
+ * const route: Route = {
1899
+ * type: 'Feature',
1900
+ * id: 'route-1',
1901
+ * geometry: {
1902
+ * type: 'LineString',
1903
+ * coordinates: [[4.9, 52.3], [4.95, 52.35], [5.0, 52.4]]
1904
+ * },
1905
+ * properties: { ... },
1906
+ * bbox: [4.9, 52.3, 5.0, 52.4]
1907
+ * };
1908
+ *
1909
+ * const waypoints: WaypointLike[] = [
1910
+ * [4.9, 52.3], // origin
1911
+ * [5.0, 52.4] // destination
1912
+ * ];
1913
+ *
1914
+ * const newWaypoint: WaypointLike = [4.95, 52.35];
1915
+ *
1916
+ * const insertIndex = findBestWaypointInsertionIndex(route, waypoints, newWaypoint);
1917
+ * // Returns: 1 (insert between origin and destination)
1918
+ *
1919
+ * const updatedWaypoints = [
1920
+ * ...waypoints.slice(0, insertIndex),
1921
+ * newWaypoint,
1922
+ * ...waypoints.slice(insertIndex)
1923
+ * ];
1924
+ * ```
1925
+ *
1926
+ * @group Utils
1927
+ */
1928
+ export declare const findBestWaypointInsertionIndex: (route: Route, existingWaypoints: WaypointLike[], newWaypoint: WaypointLike) => number;
1929
+
1842
1930
  /**
1843
1931
  * Formatting is based on the number of meters passed and unit type. Less meters more precision.
1844
1932
  * @example
@@ -1916,7 +2004,7 @@ export declare const formatDistance: (meters: number, options?: DistanceDisplayU
1916
2004
  *
1917
2005
  * // Route travel time
1918
2006
  * const route = await calculateRoute({ ... });
1919
- * const travelTime = formatDuration(route.routes[0].summary.travelTimeInSeconds);
2007
+ * const travelTime = formatDuration(route.features[0].summary.travelTimeInSeconds);
1920
2008
  * console.log(`Estimated time: ${travelTime}`);
1921
2009
  * // Output: "Estimated time: 2 hr 15 min"
1922
2010
  * ```
@@ -2022,6 +2110,36 @@ export declare type GeometryDataSource = {
2022
2110
  id: string;
2023
2111
  };
2024
2112
 
2113
+ /**
2114
+ * Returns the geographic coordinate and cumulative progress values at the point along a route
2115
+ * identified by a {@link RouteProgressQuery}.
2116
+ *
2117
+ * @param route The route to query. Must contain `properties.progress` data.
2118
+ * @param query A discriminated union — provide exactly one of:
2119
+ * - `{ traveledTimeInSeconds }` — elapsed seconds from route start
2120
+ * - `{ traveledDistanceInMeters }` — meters traveled from route start
2121
+ * - `{ clockTime }` — absolute `Date`; elapsed seconds are derived from `route.summary.departureTime`
2122
+ * @returns Interpolated {@link RouteCoordinateAtProgress}, or `undefined` when:
2123
+ * - the route has no `progress` data
2124
+ * - `clockTime` is before the route departure time
2125
+ * - the progress data is incomplete for the requested position
2126
+ *
2127
+ * @example
2128
+ * ```typescript
2129
+ * // By elapsed time
2130
+ * const pos = getCoordinateAtRouteProgress(route, { traveledTimeInSeconds: 600 });
2131
+ *
2132
+ * // By distance
2133
+ * const pos = getCoordinateAtRouteProgress(route, { traveledDistanceInMeters: 5000 });
2134
+ *
2135
+ * // By clock time
2136
+ * const pos = getCoordinateAtRouteProgress(route, { clockTime: new Date('2025-06-01T09:30:00Z') });
2137
+ * ```
2138
+ *
2139
+ * @group Utils
2140
+ */
2141
+ export declare const getCoordinateAtRouteProgress: (route: Route, query: RouteProgressQuery) => RouteCoordinateAtProgress | undefined;
2142
+
2025
2143
  /**
2026
2144
  * Extracts the lng-lat position from various input formats.
2027
2145
  *
@@ -2162,6 +2280,34 @@ export declare type GetPositionOptions = {
2162
2280
  */
2163
2281
  export declare const getPositionStrict: (hasLngLat: HasLngLat, options?: GetPositionOptions) => Position;
2164
2282
 
2283
+ /**
2284
+ * Returns the geographic coordinate and cumulative progress values at the point on a route
2285
+ * nearest to the given location.
2286
+ *
2287
+ * Projects `point` onto the route line using `nearestPointOnLine`, then linearly interpolates
2288
+ * the progress data at the snapped position between the two bracketing route vertices.
2289
+ *
2290
+ * @param route The route to query. Must contain `properties.progress` data.
2291
+ * @param point The reference location to snap to the route.
2292
+ * @returns Interpolated {@link RouteCoordinateAtProgress} at the nearest point, or `undefined` when:
2293
+ * - the route has no progress data
2294
+ * - the route has fewer than 2 coordinates
2295
+ * - the progress data is incomplete for the snapped position
2296
+ *
2297
+ * @example
2298
+ * ```typescript
2299
+ * const result = getProgressAtNearestRoutePoint(route, { lng: 4.92, lat: 52.32 });
2300
+ * if (result) {
2301
+ * console.log(`Nearest point: [${result.position}]`);
2302
+ * console.log(`${result.distanceInMeters} m from route start`);
2303
+ * console.log(`${result.travelTimeInSeconds} s travel time from route start`);
2304
+ * }
2305
+ * ```
2306
+ *
2307
+ * @group Utils
2308
+ */
2309
+ export declare const getProgressAtNearestRoutePoint: (route: Route, point: HasLngLat) => RouteCoordinateAtProgress | undefined;
2310
+
2165
2311
  /**
2166
2312
  * Determines the type of geographic input (waypoint or path).
2167
2313
  *
@@ -2176,6 +2322,90 @@ export declare const getPositionStrict: (hasLngLat: HasLngLat, options?: GetPosi
2176
2322
  */
2177
2323
  export declare const getRoutePlanningLocationType: (routePlanningLocation: RoutePlanningLocation) => RoutePlanningLocationType;
2178
2324
 
2325
+ /**
2326
+ * Calculates progress measurements for a segment between two arbitrary points on the route path.
2327
+ *
2328
+ * Calls {@link calculateProgressAtRoutePoint} for both indices and exposes the start and end
2329
+ * measurements together with the delta (distance and time covered between them).
2330
+ *
2331
+ * @param route The route whose `properties.progress` will be used for interpolation.
2332
+ * @param startPathIndex Zero-based index of the segment start in the route's coordinate array.
2333
+ * @param endPathIndex Zero-based index of the segment end in the route's coordinate array.
2334
+ * @returns A {@link RouteSegmentProgress} object, or `undefined` when either index cannot
2335
+ * be interpolated (see {@link calculateProgressAtRoutePoint} for the full list of conditions).
2336
+ *
2337
+ * @example
2338
+ * ```typescript
2339
+ * const result = getRouteProgressBetween(route, 10, 60);
2340
+ * if (result) {
2341
+ * console.log(`Segment starts ${result.start.distanceInMeters} m from route origin`);
2342
+ * console.log(`Segment ends ${result.end.distanceInMeters} m from route origin`);
2343
+ * console.log(`Segment length ${result.delta.distanceInMeters} m`);
2344
+ * console.log(`Segment takes ${result.delta.travelTimeInSeconds} s`);
2345
+ * }
2346
+ * ```
2347
+ *
2348
+ * @group Utils
2349
+ */
2350
+ export declare const getRouteProgressBetween: (route: Route, startPathIndex: number, endPathIndex: number) => RouteSegmentProgress | undefined;
2351
+
2352
+ /**
2353
+ * Calculates progress measurements for a route section.
2354
+ *
2355
+ * Convenience wrapper around {@link getRouteProgressBetween} that accepts a {@link SectionProps}
2356
+ * directly, using its `startPointIndex` and `endPointIndex` as the segment bounds.
2357
+ *
2358
+ * @param route The route whose `properties.progress` will be used for interpolation.
2359
+ * @param section The section whose start and end point indices define the segment.
2360
+ * @returns A {@link RouteSegmentProgress} object, or `undefined` when either index cannot
2361
+ * be interpolated (see {@link calculateProgressAtRoutePoint} for the full list of conditions).
2362
+ *
2363
+ * @example
2364
+ * ```typescript
2365
+ * const section = route.properties.sections.countries[0];
2366
+ * const result = getRouteProgressForSection(route, section);
2367
+ * if (result) {
2368
+ * console.log(`Section starts ${result.start.distanceInMeters} m from route origin`);
2369
+ * console.log(`Section ends ${result.end.distanceInMeters} m from route origin`);
2370
+ * console.log(`Section length ${result.delta.distanceInMeters} m`);
2371
+ * console.log(`Section takes ${result.delta.travelTimeInSeconds} s`);
2372
+ * }
2373
+ * ```
2374
+ *
2375
+ * @group Utils
2376
+ */
2377
+ export declare const getRouteProgressForSection: (route: Route, section: SectionProps) => RouteSegmentProgress | undefined;
2378
+
2379
+ /**
2380
+ * Calculates the bounding box for a route section.
2381
+ *
2382
+ * This function computes a bbox by sampling coordinates from the section at three key points:
2383
+ * - Start point (startPointIndex)
2384
+ * - Middle point (midpoint between start and end)
2385
+ * - End point (endPointIndex)
2386
+ *
2387
+ * @param route The route containing the section
2388
+ * @param section The section to calculate the bbox for
2389
+ * @returns The bounding box as [minLng, minLat, maxLng, maxLat], or `undefined` if the section or route is invalid
2390
+ *
2391
+ * @remarks
2392
+ * - Samples three points for efficiency while maintaining good accuracy
2393
+ * - Returns `undefined` if the route has no coordinates or section indices are invalid
2394
+ * - Uses existing bbox utilities for consistent calculation
2395
+ *
2396
+ * @example
2397
+ * ```typescript
2398
+ * const section = route.properties.sections.countries[0];
2399
+ * // section = { id: 'section-1', startPointIndex: 0, endPointIndex: 3, countryCodeISO3: 'NLD' }
2400
+ *
2401
+ * const bbox = getSectionBBox(route, section);
2402
+ * // Returns: [minLng, minLat, maxLng, maxLat] spanning the section, or undefined
2403
+ * ```
2404
+ *
2405
+ * @group Utils
2406
+ */
2407
+ export declare const getSectionBBox: (route: Route, section: SectionProps) => OptionalBBox;
2408
+
2179
2409
  /**
2180
2410
  * Global configuration for the TomTom Maps SDK.
2181
2411
  *
@@ -3759,6 +3989,20 @@ export declare type Route<P extends RouteProps = RouteProps> = Omit<Feature<Line
3759
3989
  bbox: BBox;
3760
3990
  };
3761
3991
 
3992
+ /**
3993
+ * Geographic coordinate and cumulative progress values at a specific point along a route.
3994
+ *
3995
+ * @group Utils
3996
+ */
3997
+ export declare type RouteCoordinateAtProgress = {
3998
+ /** Geographic position as a GeoJSON `[longitude, latitude]` coordinate. */
3999
+ position: Position;
4000
+ /** Cumulative travel time in seconds from the route start. */
4001
+ travelTimeInSeconds: number;
4002
+ /** Cumulative distance in meters from the route start. */
4003
+ distanceInMeters: number;
4004
+ };
4005
+
3762
4006
  /**
3763
4007
  * Route path point and its metadata.
3764
4008
  * @group Route
@@ -3813,49 +4057,75 @@ export declare type RoutePlanningLocation = WaypointLike | PathLike;
3813
4057
  export declare type RoutePlanningLocationType = 'waypoint' | 'path';
3814
4058
 
3815
4059
  /**
3816
- * Array of progress points along the route path.
4060
+ * Cumulative distance and time measurements at a position along the route.
3817
4061
  *
3818
- * Provides distance and time information at key points along the route.
3819
- * This field is included when `extendedRouteRepresentations` is requested.
4062
+ * Both fields are optional because a progress entry may omit either value.
4063
+ * Use {@link RouteProgressAtPoint} for the resolved (always-present) equivalent
4064
+ * returned by interpolation utilities.
3820
4065
  *
3821
- * @remarks
3822
- * - Always contains entries for the first and last points in the route
3823
- * - Progress for intermediate points can be linearly interpolated between explicitly defined points
3824
- * - Use the Haversine formula for distance calculations between points
4066
+ * @group Route
4067
+ */
4068
+ export declare type RouteProgress = {
4069
+ /**
4070
+ * Cumulative travel time in seconds from the route start.
4071
+ */
4072
+ travelTimeInSeconds?: number;
4073
+ /**
4074
+ * Cumulative distance in meters from the route start.
4075
+ */
4076
+ distanceInMeters?: number;
4077
+ };
4078
+
4079
+ /**
4080
+ * Resolved distance and time measurements at an interpolated position on the route path.
3825
4081
  *
3826
- * @example
3827
- * ```typescript
3828
- * const progress: RouteProgress = [
3829
- * { pointIndex: 0, travelTimeInSeconds: 0, distanceInMeters: 0 },
3830
- * { pointIndex: 50, travelTimeInSeconds: 120, distanceInMeters: 2500 },
3831
- * { pointIndex: 100, travelTimeInSeconds: 300, distanceInMeters: 5000 }
3832
- * ];
3833
- * ```
4082
+ * Both fields are required because this type is only produced when interpolation
4083
+ * can be fully resolved (i.e. the bracketing progress entries both carry valid values).
3834
4084
  *
3835
4085
  * @group Route
3836
4086
  */
3837
- export declare type RouteProgress = RouteProgressPoint[];
4087
+ export declare type RouteProgressAtPoint = Required<RouteProgress>;
3838
4088
 
3839
4089
  /**
3840
- * Progress information for a specific point along the route.
4090
+ * Progress measurements tied to a specific coordinate on the route path.
4091
+ *
4092
+ * Extends {@link RouteProgress} with a `pointIndex` that identifies the
4093
+ * corresponding entry in the route's coordinate array.
3841
4094
  *
3842
- * Contains cumulative distance and time measurements from the route start to this point.
4095
+ * @remarks
4096
+ * - The `progress` array on a route always contains entries for the first and last points
4097
+ * - Progress for intermediate points can be linearly interpolated between entries
4098
+ *
4099
+ * @example
4100
+ * ```typescript
4101
+ * const points: RouteProgressPoint[] = [
4102
+ * { pointIndex: 0, travelTimeInSeconds: 0, distanceInMeters: 0 },
4103
+ * { pointIndex: 50, travelTimeInSeconds: 120, distanceInMeters: 2500 },
4104
+ * { pointIndex: 100, travelTimeInSeconds: 300, distanceInMeters: 5000 }
4105
+ * ];
4106
+ * ```
3843
4107
  *
3844
4108
  * @group Route
3845
4109
  */
3846
- export declare type RouteProgressPoint = {
4110
+ export declare type RouteProgressPoint = RouteProgress & {
3847
4111
  /**
3848
4112
  * Zero-based index of this point in the route's coordinate array.
3849
4113
  */
3850
4114
  pointIndex: number;
3851
- /**
3852
- * Cumulative travel time in seconds from the route start to this point.
3853
- */
3854
- travelTimeInSeconds?: number;
3855
- /**
3856
- * Cumulative distance in meters from the route start to this point.
3857
- */
3858
- distanceInMeters?: number;
4115
+ };
4116
+
4117
+ /**
4118
+ * Discriminated union describing how to identify a position along a route.
4119
+ * Provide exactly one of the three variants.
4120
+ *
4121
+ * @group Utils
4122
+ */
4123
+ export declare type RouteProgressQuery = {
4124
+ traveledTimeInSeconds: number;
4125
+ } | {
4126
+ traveledDistanceInMeters: number;
4127
+ } | {
4128
+ clockTime: Date;
3859
4129
  };
3860
4130
 
3861
4131
  /**
@@ -3893,10 +4163,10 @@ export declare type RouteProps = {
3893
4163
  /**
3894
4164
  * Distance and time progress at key points along the route.
3895
4165
  *
3896
- * Only present when extended route representations are requested.
3897
- * Useful for displaying progress information or calculating intermediate times.
4166
+ * * Present when extended route representations are requested, which is the default for route calculations.
4167
+ * * Useful for displaying progress information or calculating intermediate times.
3898
4168
  */
3899
- progress?: RouteProgress;
4169
+ progress?: RouteProgressPoint[];
3900
4170
  /**
3901
4171
  * Index of this route in the collection of alternatives.
3902
4172
  *
@@ -3943,6 +4213,20 @@ export declare type Routes<P extends RouteProps = RouteProps, FeatureCollectionP
3943
4213
  bbox?: BBox;
3944
4214
  };
3945
4215
 
4216
+ /**
4217
+ * Progress measurements for a segment between two arbitrary points on the route path.
4218
+ *
4219
+ * @group Route
4220
+ */
4221
+ export declare type RouteSegmentProgress = {
4222
+ /** Progress at the start point. */
4223
+ start: RouteProgressAtPoint;
4224
+ /** Progress at the end point. */
4225
+ end: RouteProgressAtPoint;
4226
+ /** Difference between end and start (distance and time covered by the segment). */
4227
+ delta: RouteProgressAtPoint;
4228
+ };
4229
+
3946
4230
  /**
3947
4231
  * Complete summary information for an entire route.
3948
4232
  *
@@ -4751,4 +5035,49 @@ export declare type WaypointProps = {
4751
5035
  */
4752
5036
  export declare type Waypoints<T extends Anything = Anything> = FeatureCollection<Point, WaypointProps & T>;
4753
5037
 
5038
+ /**
5039
+ * Returns a new array of waypoints with the new waypoint inserted at the optimal position.
5040
+ *
5041
+ * This is a convenience function that combines finding the best insertion index and
5042
+ * inserting the waypoint in one step. It uses {@link findBestWaypointInsertionIndex}
5043
+ * to determine where the waypoint fits most naturally along the route.
5044
+ *
5045
+ * @param route The existing calculated route Feature with LineString geometry
5046
+ * @param existingWaypoints Array of existing waypoints in order (origin, intermediate waypoints, destination)
5047
+ * @param newWaypoint The new waypoint to insert
5048
+ * @returns A new array with the waypoint inserted at the optimal position
5049
+ *
5050
+ * @remarks
5051
+ * - Returns a new array; does not modify the original waypoints array
5052
+ * - Uses the same logic as findBestWaypointInsertionIndex to determine position
5053
+ * - Handles all edge cases (empty route, fewer than 2 waypoints)
5054
+ *
5055
+ * @example
5056
+ * ```typescript
5057
+ * const route: Route = {
5058
+ * type: 'Feature',
5059
+ * id: 'route-1',
5060
+ * geometry: {
5061
+ * type: 'LineString',
5062
+ * coordinates: [[4.9, 52.3], [4.95, 52.35], [5.0, 52.4]]
5063
+ * },
5064
+ * properties: { ... },
5065
+ * bbox: [4.9, 52.3, 5.0, 52.4]
5066
+ * };
5067
+ *
5068
+ * const waypoints: WaypointLike[] = [
5069
+ * [4.9, 52.3], // origin
5070
+ * [5.0, 52.4] // destination
5071
+ * ];
5072
+ *
5073
+ * const newWaypoint: WaypointLike = [4.95, 52.35];
5074
+ *
5075
+ * const updatedWaypoints = withInsertedWaypoint(route, waypoints, newWaypoint);
5076
+ * // Returns: [[4.9, 52.3], [4.95, 52.35], [5.0, 52.4]]
5077
+ * ```
5078
+ *
5079
+ * @group Utils
5080
+ */
5081
+ export declare const withInsertedWaypoint: (route: Route, existingWaypoints: WaypointLike[], newWaypoint: WaypointLike) => WaypointLike[];
5082
+
4754
5083
  export { }
package/core/package.json CHANGED
@@ -23,6 +23,7 @@
23
23
  "geojson": "^0.5.0"
24
24
  },
25
25
  "peerDependencies": {
26
+ "@turf/turf": "catalog:",
26
27
  "lodash-es": "catalog:"
27
28
  },
28
29
  "devDependencies": {
@@ -1,107 +1 @@
1
- Name: @turf/helpers
2
- Version: 7.3.4
3
- License: MIT
4
- Private: false
5
- Description: Provides helper functions to create GeoJSON features, like points, lines, or areas on a map.
6
- Repository: git://github.com/Turfjs/turf.git
7
- Homepage: https://github.com/Turfjs/turf
8
- Author: Turf Authors
9
- Contributors:
10
- Tom MacWright <@tmcw>
11
- Stefano Borghi <@stebogit>
12
- Denis Carriere <@DenisCarriere>
13
- William Nordmann <@wnordmann>
14
- License Text:
15
- ===
16
-
17
- The MIT License (MIT)
18
-
19
- Copyright (c) 2017 TurfJS
20
-
21
- Permission is hereby granted, free of charge, to any person obtaining a copy of
22
- this software and associated documentation files (the "Software"), to deal in
23
- the Software without restriction, including without limitation the rights to
24
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
25
- the Software, and to permit persons to whom the Software is furnished to do so,
26
- subject to the following conditions:
27
-
28
- The above copyright notice and this permission notice shall be included in all
29
- copies or substantial portions of the Software.
30
-
31
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
32
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
33
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
34
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
35
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
36
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
37
-
38
- ---
39
-
40
- Name: @turf/invariant
41
- Version: 7.3.4
42
- License: MIT
43
- Private: false
44
- Description: Lightweight utility for input validation and data extraction in Turf.js. Ensures GeoJSON inputs are in the correct format and extracts specific components like coordinates or geometries.
45
- Repository: git://github.com/Turfjs/turf.git
46
- Homepage: https://github.com/Turfjs/turf
47
- Author: Turf Authors
48
- Contributors:
49
- Tom MacWright <@tmcw>
50
- Denis Carriere <@DenisCarriere>
51
- License Text:
52
- ===
53
-
54
- The MIT License (MIT)
55
-
56
- Copyright (c) 2017 TurfJS
57
-
58
- Permission is hereby granted, free of charge, to any person obtaining a copy of
59
- this software and associated documentation files (the "Software"), to deal in
60
- the Software without restriction, including without limitation the rights to
61
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
62
- the Software, and to permit persons to whom the Software is furnished to do so,
63
- subject to the following conditions:
64
-
65
- The above copyright notice and this permission notice shall be included in all
66
- copies or substantial portions of the Software.
67
-
68
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
69
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
70
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
71
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
72
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
73
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
74
-
75
- ---
76
-
77
- Name: @turf/bearing
78
- Version: 7.3.4
79
- License: MIT
80
- Private: false
81
- Description: Takes two points and finds the geographic bearing between them.
82
- Repository: git://github.com/Turfjs/turf.git
83
- Homepage: https://github.com/Turfjs/turf
84
- Author: Turf Authors
85
- License Text:
86
- ===
87
-
88
- The MIT License (MIT)
89
-
90
- Copyright (c) 2017 TurfJS
91
-
92
- Permission is hereby granted, free of charge, to any person obtaining a copy of
93
- this software and associated documentation files (the "Software"), to deal in
94
- the Software without restriction, including without limitation the rights to
95
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
96
- the Software, and to permit persons to whom the Software is furnished to do so,
97
- subject to the following conditions:
98
-
99
- The above copyright notice and this permission notice shall be included in all
100
- copies or substantial portions of the Software.
101
-
102
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
103
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
104
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
105
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
106
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
107
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ No third parties dependencies