rendezvous-kit 1.17.2 → 1.19.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/README.md +1 -0
- package/dist/hull.d.ts +19 -0
- package/dist/hull.d.ts.map +1 -0
- package/dist/hull.js +101 -0
- package/dist/hull.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/rendezvous.d.ts.map +1 -1
- package/dist/rendezvous.js +67 -2
- package/dist/rendezvous.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/venues.js +1 -1
- package/dist/venues.js.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/rendezvous-kit)
|
|
6
6
|
[](https://github.com/TheCryptoDonkey/rendezvous-kit/blob/main/LICENSE)
|
|
7
7
|

|
|
8
|
+
[](https://primal.net/p/npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2)
|
|
8
9
|
|
|
9
10
|
**[Live Demo →](https://thecryptodonkey.github.io/rendezvous-kit)**
|
|
10
11
|
|
package/dist/hull.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { LatLon, TransportMode } from './types.js';
|
|
2
|
+
/** Approximate average speeds by transport mode (km/h). */
|
|
3
|
+
export declare const SPEED_KMH: Record<TransportMode, number>;
|
|
4
|
+
/**
|
|
5
|
+
* Expand a convex hull outward by a distance in kilometres.
|
|
6
|
+
* Each vertex is pushed radially away from the centroid.
|
|
7
|
+
*/
|
|
8
|
+
export declare function bufferHull(hull: [number, number][], distanceKm: number): [number, number][];
|
|
9
|
+
/**
|
|
10
|
+
* Decide whether to use hull or isochrone strategy based on
|
|
11
|
+
* participant spread relative to travel budget.
|
|
12
|
+
*/
|
|
13
|
+
export declare function chooseStrategy(participants: LatLon[], mode: TransportMode, maxTimeMinutes: number): 'hull' | 'isochrone';
|
|
14
|
+
/**
|
|
15
|
+
* Compute a buffered convex hull from participant locations.
|
|
16
|
+
* Buffer distance derived from transport mode and time budget.
|
|
17
|
+
*/
|
|
18
|
+
export declare function computeSearchHull(participants: LatLon[], mode: TransportMode, maxTimeMinutes: number): [number, number][];
|
|
19
|
+
//# sourceMappingURL=hull.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hull.d.ts","sourceRoot":"","sources":["../src/hull.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAA;AAEvE,2DAA2D;AAC3D,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKnD,CAAA;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACxB,UAAU,EAAE,MAAM,GACjB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CA0BpB;AAoBD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,aAAa,EACnB,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,WAAW,CAyBtB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,aAAa,EACnB,cAAc,EAAE,MAAM,GACrB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAUpB"}
|
package/dist/hull.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { convexHull } from 'geohash-kit/coverage';
|
|
2
|
+
import { polygonArea } from './geo.js';
|
|
3
|
+
/** Approximate average speeds by transport mode (km/h). */
|
|
4
|
+
export const SPEED_KMH = {
|
|
5
|
+
drive: 50,
|
|
6
|
+
cycle: 15,
|
|
7
|
+
walk: 5,
|
|
8
|
+
public_transit: 30,
|
|
9
|
+
};
|
|
10
|
+
const EARTH_RADIUS_KM = 6371.0088;
|
|
11
|
+
const DEG_TO_RAD = Math.PI / 180;
|
|
12
|
+
/**
|
|
13
|
+
* Expand a convex hull outward by a distance in kilometres.
|
|
14
|
+
* Each vertex is pushed radially away from the centroid.
|
|
15
|
+
*/
|
|
16
|
+
export function bufferHull(hull, distanceKm) {
|
|
17
|
+
if (hull.length === 0 || distanceKm === 0)
|
|
18
|
+
return hull.map(p => [...p]);
|
|
19
|
+
// Compute centroid
|
|
20
|
+
let cx = 0, cy = 0;
|
|
21
|
+
for (const [x, y] of hull) {
|
|
22
|
+
cx += x;
|
|
23
|
+
cy += y;
|
|
24
|
+
}
|
|
25
|
+
cx /= hull.length;
|
|
26
|
+
cy /= hull.length;
|
|
27
|
+
return hull.map(([x, y]) => {
|
|
28
|
+
const dx = x - cx;
|
|
29
|
+
const dy = y - cy;
|
|
30
|
+
const dist = Math.hypot(dx, dy);
|
|
31
|
+
if (dist === 0)
|
|
32
|
+
return [x, y];
|
|
33
|
+
// Convert km offset to approximate degrees
|
|
34
|
+
const latRad = cy * DEG_TO_RAD;
|
|
35
|
+
const kmPerDegLon = (Math.PI / 180) * EARTH_RADIUS_KM * Math.cos(latRad);
|
|
36
|
+
const kmPerDegLat = (Math.PI / 180) * EARTH_RADIUS_KM;
|
|
37
|
+
const bearing = Math.atan2(dx * kmPerDegLon, dy * kmPerDegLat);
|
|
38
|
+
const offsetLon = (distanceKm * Math.sin(bearing)) / kmPerDegLon;
|
|
39
|
+
const offsetLat = (distanceKm * Math.cos(bearing)) / kmPerDegLat;
|
|
40
|
+
return [x + offsetLon, y + offsetLat];
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/** Compute the maximum pairwise distance in km between [lon, lat] points. */
|
|
44
|
+
function maxPairwiseDistanceKm(points) {
|
|
45
|
+
let maxDist = 0;
|
|
46
|
+
for (let i = 0; i < points.length; i++) {
|
|
47
|
+
for (let j = i + 1; j < points.length; j++) {
|
|
48
|
+
const dLon = (points[j][0] - points[i][0]) * DEG_TO_RAD;
|
|
49
|
+
const dLat = (points[j][1] - points[i][1]) * DEG_TO_RAD;
|
|
50
|
+
const lat1 = points[i][1] * DEG_TO_RAD;
|
|
51
|
+
const lat2 = points[j][1] * DEG_TO_RAD;
|
|
52
|
+
const a = Math.sin(dLat / 2) ** 2 + Math.cos(lat1) * Math.cos(lat2) * Math.sin(dLon / 2) ** 2;
|
|
53
|
+
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
54
|
+
const dist = EARTH_RADIUS_KM * c;
|
|
55
|
+
if (dist > maxDist)
|
|
56
|
+
maxDist = dist;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return maxDist;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Decide whether to use hull or isochrone strategy based on
|
|
63
|
+
* participant spread relative to travel budget.
|
|
64
|
+
*/
|
|
65
|
+
export function chooseStrategy(participants, mode, maxTimeMinutes) {
|
|
66
|
+
const points = participants.map(p => [p.lon, p.lat]);
|
|
67
|
+
const hull = convexHull(points);
|
|
68
|
+
// Max theoretical travel radius
|
|
69
|
+
const speedKmH = SPEED_KMH[mode];
|
|
70
|
+
const radiusKm = speedKmH * (maxTimeMinutes / 60);
|
|
71
|
+
// For degenerate hulls (< 3 points), compare max pairwise distance to travel radius
|
|
72
|
+
if (hull.length < 3) {
|
|
73
|
+
const maxDistKm = maxPairwiseDistanceKm(hull);
|
|
74
|
+
return maxDistKm < radiusKm ? 'hull' : 'isochrone';
|
|
75
|
+
}
|
|
76
|
+
// Hull area in m² (polygonArea uses Shoelace with flat-Earth projection)
|
|
77
|
+
const hullPoly = {
|
|
78
|
+
type: 'Polygon',
|
|
79
|
+
coordinates: [[...hull, hull[0]]],
|
|
80
|
+
};
|
|
81
|
+
const hullAreaM2 = polygonArea(hullPoly);
|
|
82
|
+
const maxAreaM2 = Math.PI * (radiusKm * 1000) ** 2;
|
|
83
|
+
// If hull area is less than 50% of max theoretical area, hull path is efficient
|
|
84
|
+
const threshold = 0.5;
|
|
85
|
+
return hullAreaM2 < maxAreaM2 * threshold ? 'hull' : 'isochrone';
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Compute a buffered convex hull from participant locations.
|
|
89
|
+
* Buffer distance derived from transport mode and time budget.
|
|
90
|
+
*/
|
|
91
|
+
export function computeSearchHull(participants, mode, maxTimeMinutes) {
|
|
92
|
+
const points = participants.map(p => [p.lon, p.lat]);
|
|
93
|
+
const hull = convexHull(points);
|
|
94
|
+
// Buffer should be a small margin beyond the hull, not the full travel radius.
|
|
95
|
+
// The meeting point is inside the hull; the buffer catches nearby venues just outside.
|
|
96
|
+
const hullDiameterKm = maxPairwiseDistanceKm(hull.length >= 2 ? hull : points);
|
|
97
|
+
const travelRadiusKm = SPEED_KMH[mode] * (maxTimeMinutes / 60);
|
|
98
|
+
const bufferKm = Math.min(hullDiameterKm * 0.3, travelRadiusKm * 0.3);
|
|
99
|
+
return bufferHull(hull, bufferKm);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=hull.js.map
|
package/dist/hull.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hull.js","sourceRoot":"","sources":["../src/hull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGtC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAkC;IACtD,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,CAAC;IACP,cAAc,EAAE,EAAE;CACnB,CAAA;AAED,MAAM,eAAe,GAAG,SAAS,CAAA;AACjC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAA;AAEhC;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,IAAwB,EACxB,UAAkB;IAElB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAqB,CAAC,CAAA;IAE3F,mBAAmB;IACnB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAClB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAAC,EAAE,IAAI,CAAC,CAAC;QAAC,EAAE,IAAI,CAAC,CAAA;IAAC,CAAC;IAC/C,EAAE,IAAI,IAAI,CAAC,MAAM,CAAA;IACjB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAA;IAEjB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;QACjB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC/B,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAA;QAEjD,2CAA2C;QAC3C,MAAM,MAAM,GAAG,EAAE,GAAG,UAAU,CAAA;QAC9B,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxE,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,eAAe,CAAA;QAErD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,GAAG,WAAW,CAAC,CAAA;QAC9D,MAAM,SAAS,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,WAAW,CAAA;QAChE,MAAM,SAAS,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,WAAW,CAAA;QAEhE,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,SAAS,CAAqB,CAAA;IAC3D,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,6EAA6E;AAC7E,SAAS,qBAAqB,CAAC,MAA0B;IACvD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;YACvD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;YAC7F,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,IAAI,GAAG,eAAe,GAAG,CAAC,CAAA;YAChC,IAAI,IAAI,GAAG,OAAO;gBAAE,OAAO,GAAG,IAAI,CAAA;QACpC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,YAAsB,EACtB,IAAmB,EACnB,cAAsB;IAEtB,MAAM,MAAM,GAAuB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAE/B,gCAAgC;IAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAA;IAEjD,oFAAoF;IACpF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAC7C,OAAO,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAA;IACpD,CAAC;IAED,yEAAyE;IACzE,MAAM,QAAQ,GAAmB;QAC/B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAClC,CAAA;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAElD,gFAAgF;IAChF,MAAM,SAAS,GAAG,GAAG,CAAA;IACrB,OAAO,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAA;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAsB,EACtB,IAAmB,EACnB,cAAsB;IAEtB,MAAM,MAAM,GAAuB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAE/B,+EAA+E;IAC/E,uFAAuF;IACvF,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC9E,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,EAAE,cAAc,GAAG,GAAG,CAAC,CAAA;IACrE,OAAO,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AACnC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type { LatLon, GeoJSONPolygon, GeoJSONLineString, TransportMode, Fairness
|
|
|
2
2
|
export { ManoeuvreType } from './types.js';
|
|
3
3
|
export { intersectPolygons, intersectPolygonsAll, boundingBox, centroid, polygonArea, circleToPolygon, getDestinationPoint, } from './geo.js';
|
|
4
4
|
export type { BBox, Coordinate } from './geo.js';
|
|
5
|
+
export { SPEED_KMH, chooseStrategy, computeSearchHull, bufferHull } from './hull.js';
|
|
5
6
|
export { OpenRouteServiceEngine } from './engines/openrouteservice.js';
|
|
6
7
|
export { ValhallaEngine, ValhallaError } from './engines/valhalla.js';
|
|
7
8
|
export { GraphHopperEngine } from './engines/graphhopper.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,QAAQ,EACR,aAAa,EACb,KAAK,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,QAAQ,EACR,aAAa,EACb,KAAK,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAGpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export { ManoeuvreType } from './types.js';
|
|
3
3
|
// Geometry
|
|
4
4
|
export { intersectPolygons, intersectPolygonsAll, boundingBox, centroid, polygonArea, circleToPolygon, getDestinationPoint, } from './geo.js';
|
|
5
|
+
// Hull
|
|
6
|
+
export { SPEED_KMH, chooseStrategy, computeSearchHull, bufferHull } from './hull.js';
|
|
5
7
|
// Engines
|
|
6
8
|
export { OpenRouteServiceEngine } from './engines/openrouteservice.js';
|
|
7
9
|
export { ValhallaEngine, ValhallaError } from './engines/valhalla.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,WAAW;AACX,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAA;AAGjB,UAAU;AACV,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,WAAW;AACX,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAA;AAGjB,OAAO;AACP,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEpF,UAAU;AACV,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/rendezvous.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendezvous.d.ts","sourceRoot":"","sources":["../src/rendezvous.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"rendezvous.d.ts","sourceRoot":"","sources":["../src/rendezvous.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAsE,MAAM,YAAY,CAAA;AAK5J;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA2EjC"}
|
package/dist/rendezvous.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { searchVenues } from './venues.js';
|
|
2
2
|
import { intersectPolygonsAll, polygonArea, boundingBox } from './geo.js';
|
|
3
|
+
import { chooseStrategy, computeSearchHull } from './hull.js';
|
|
3
4
|
/**
|
|
4
5
|
* Find optimal meeting points for N participants using isochrone intersection.
|
|
5
6
|
*
|
|
@@ -12,10 +13,17 @@ import { intersectPolygonsAll, polygonArea, boundingBox } from './geo.js';
|
|
|
12
13
|
* 6. Return ranked suggestions
|
|
13
14
|
*/
|
|
14
15
|
export async function findRendezvous(engine, options) {
|
|
15
|
-
const { participants, mode, maxTimeMinutes, venueTypes, fairness = 'min_max', limit = 5 } = options;
|
|
16
|
+
const { participants, mode, maxTimeMinutes, venueTypes, fairness = 'min_max', limit = 5, strategy: requestedStrategy = 'auto' } = options;
|
|
16
17
|
if (participants.length < 2) {
|
|
17
18
|
throw new RangeError('findRendezvous requires at least 2 participants');
|
|
18
19
|
}
|
|
20
|
+
// Resolve pipeline strategy
|
|
21
|
+
const strategy = requestedStrategy === 'auto'
|
|
22
|
+
? chooseStrategy(participants, mode, maxTimeMinutes)
|
|
23
|
+
: requestedStrategy;
|
|
24
|
+
if (strategy === 'hull') {
|
|
25
|
+
return findRendezvousHull(engine, participants, mode, maxTimeMinutes, venueTypes, fairness, limit);
|
|
26
|
+
}
|
|
19
27
|
// Step 1: Compute isochrones for each participant
|
|
20
28
|
const isochrones = await Promise.all(participants.map(p => engine.computeIsochrone(p, mode, maxTimeMinutes)));
|
|
21
29
|
// Step 2: Intersect isochrone polygons (preserving all disconnected components)
|
|
@@ -59,12 +67,69 @@ export async function findRendezvous(engine, options) {
|
|
|
59
67
|
if (!reachable)
|
|
60
68
|
continue;
|
|
61
69
|
const fairnessScore = computeFairnessScore(times, fairness);
|
|
62
|
-
suggestions.push({ venue, travelTimes, fairnessScore });
|
|
70
|
+
suggestions.push({ venue, travelTimes, fairnessScore, metadata: { strategy: 'isochrone' } });
|
|
63
71
|
}
|
|
64
72
|
// Step 6: Sort by fairness score and return top N
|
|
65
73
|
suggestions.sort((a, b) => a.fairnessScore - b.fairnessScore);
|
|
66
74
|
return suggestions.slice(0, limit);
|
|
67
75
|
}
|
|
76
|
+
async function findRendezvousHull(engine, participants, mode, maxTimeMinutes, venueTypes, fairness, limit) {
|
|
77
|
+
// 1. Compute buffered hull
|
|
78
|
+
const bufferedHull = computeSearchHull(participants, mode, maxTimeMinutes);
|
|
79
|
+
// 2. Search venues in hull
|
|
80
|
+
const searchPoly = {
|
|
81
|
+
type: 'Polygon',
|
|
82
|
+
coordinates: [[...bufferedHull, bufferedHull[0]]],
|
|
83
|
+
};
|
|
84
|
+
let venues = await searchVenues(searchPoly, venueTypes);
|
|
85
|
+
if (venues.length === 0) {
|
|
86
|
+
// Fallback: use centroid of hull
|
|
87
|
+
let cx = 0, cy = 0;
|
|
88
|
+
for (const [lon, lat] of bufferedHull) {
|
|
89
|
+
cx += lon;
|
|
90
|
+
cy += lat;
|
|
91
|
+
}
|
|
92
|
+
cx /= bufferedHull.length;
|
|
93
|
+
cy /= bufferedHull.length;
|
|
94
|
+
venues = [{
|
|
95
|
+
name: 'Meeting point',
|
|
96
|
+
lat: cy,
|
|
97
|
+
lon: cx,
|
|
98
|
+
venueType: 'other',
|
|
99
|
+
}];
|
|
100
|
+
}
|
|
101
|
+
// 3. Route matrix
|
|
102
|
+
const venuePoints = venues.map(v => ({ lat: v.lat, lon: v.lon }));
|
|
103
|
+
const matrix = await engine.computeRouteMatrix(participants, venuePoints, mode);
|
|
104
|
+
// 4. Filter & score
|
|
105
|
+
const suggestions = [];
|
|
106
|
+
for (let vi = 0; vi < venues.length; vi++) {
|
|
107
|
+
const travelTimes = {};
|
|
108
|
+
const times = [];
|
|
109
|
+
let reachable = true;
|
|
110
|
+
for (let pi = 0; pi < participants.length; pi++) {
|
|
111
|
+
const entry = matrix.entries.find(e => e.originIndex === pi && e.destinationIndex === vi);
|
|
112
|
+
const duration = entry?.durationMinutes ?? -1;
|
|
113
|
+
if (duration < 0 || duration > maxTimeMinutes) {
|
|
114
|
+
reachable = false;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
const label = participants[pi].label ?? `participant_${pi}`;
|
|
118
|
+
travelTimes[label] = Math.round(duration * 10) / 10;
|
|
119
|
+
times.push(duration);
|
|
120
|
+
}
|
|
121
|
+
if (!reachable)
|
|
122
|
+
continue;
|
|
123
|
+
suggestions.push({
|
|
124
|
+
venue: venues[vi],
|
|
125
|
+
travelTimes,
|
|
126
|
+
fairnessScore: computeFairnessScore(times, fairness),
|
|
127
|
+
metadata: { strategy: 'hull' },
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
suggestions.sort((a, b) => a.fairnessScore - b.fairnessScore);
|
|
131
|
+
return suggestions.slice(0, limit);
|
|
132
|
+
}
|
|
68
133
|
function envelopePolygon(polygons) {
|
|
69
134
|
let minLon = Infinity, minLat = Infinity;
|
|
70
135
|
let maxLon = -Infinity, maxLat = -Infinity;
|
package/dist/rendezvous.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendezvous.js","sourceRoot":"","sources":["../src/rendezvous.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"rendezvous.js","sourceRoot":"","sources":["../src/rendezvous.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -142,12 +142,18 @@ export interface RendezvousOptions {
|
|
|
142
142
|
venueTypes: VenueType[];
|
|
143
143
|
fairness?: FairnessStrategy;
|
|
144
144
|
limit?: number;
|
|
145
|
+
/** Pipeline strategy. 'auto' picks hull or isochrone based on participant spread. */
|
|
146
|
+
strategy?: 'auto' | 'hull' | 'isochrone';
|
|
145
147
|
}
|
|
146
148
|
/** A ranked rendezvous suggestion. */
|
|
147
149
|
export interface RendezvousSuggestion {
|
|
148
150
|
venue: Venue;
|
|
149
151
|
travelTimes: Record<string, number>;
|
|
150
152
|
fairnessScore: number;
|
|
153
|
+
/** Which pipeline strategy was used. */
|
|
154
|
+
metadata?: {
|
|
155
|
+
strategy: 'hull' | 'isochrone';
|
|
156
|
+
};
|
|
151
157
|
}
|
|
152
158
|
/**
|
|
153
159
|
* Engine-agnostic routing interface.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,gBAAgB,CAAA;AAEzE,gDAAgD;AAChD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAA;AAEvE,mDAAmD;AACnD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,gCAAgC;AAChC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;CAC1B;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,YAAY,CAAA;IAClB,WAAW,EAAE,MAAM,EAAE,EAAE,CAAA;CACxB;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,gCAAgC;AAChC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,GAAG,kBAAkB,GAAG,KAAK,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,MAAM,CAAA;AAE/Q,gDAAgD;AAChD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuChB,CAAA;AAEV,qCAAqC;AACrC,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,aAAa,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,IAAI,EAAE,aAAa,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAA;CACzC;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,wCAAwC;IACxC,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAA;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,mDAAmD;IACnD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAE9F,8EAA8E;IAC9E,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAExG,iGAAiG;IACjG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;CAC/F"}
|
package/dist/venues.js
CHANGED
|
@@ -55,7 +55,7 @@ export async function searchVenues(polygon, venueTypes, overpassUrl) {
|
|
|
55
55
|
];
|
|
56
56
|
})
|
|
57
57
|
.join('\n');
|
|
58
|
-
const query = `[out:json][timeout:25];(\n${tagQueries}\n);out center;`;
|
|
58
|
+
const query = `[out:json][timeout:25];(\n${tagQueries}\n);out center 200;`;
|
|
59
59
|
const body = `data=${encodeURIComponent(query)}`;
|
|
60
60
|
const endpoints = overpassUrl ? [overpassUrl] : OVERPASS_ENDPOINTS;
|
|
61
61
|
let lastError;
|
package/dist/venues.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venues.js","sourceRoot":"","sources":["../src/venues.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;IACzB,yCAAyC;IACzC,+CAA+C;CAChD,CAAA;AAED,6CAA6C;AAC7C,MAAM,aAAa,GAA2B;IAC5C,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,oBAAoB;IAChC,eAAe,EAAE,cAAc;IAC/B,OAAO,EAAE,iBAAiB;IAC1B,GAAG,EAAE,aAAa;IAClB,UAAU,EAAE,oBAAoB;IAChC,gBAAgB,EAAE,0BAA0B;IAC5C,GAAG,EAAE,aAAa;IAClB,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,qBAAqB;IAClC,cAAc,EAAE,wBAAwB;IACxC,aAAa,EAAE,uBAAuB;IACtC,WAAW,EAAE,qBAAqB;IAClC,aAAa,EAAE,uBAAuB;CACvC,CAAA;AAED,SAAS,WAAW,CAAC,OAAuB;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,KAAK,GAAG,QAAQ,EAAE,IAAI,GAAG,QAAQ,EAAE,KAAK,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAA;IAC1E,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;QAChC,IAAI,GAAG,GAAG,KAAK;YAAE,KAAK,GAAG,GAAG,CAAA;QAC5B,IAAI,GAAG,GAAG,KAAK;YAAE,KAAK,GAAG,GAAG,CAAA;QAC5B,IAAI,GAAG,GAAG,IAAI;YAAE,IAAI,GAAG,GAAG,CAAA;QAC1B,IAAI,GAAG,GAAG,IAAI;YAAE,IAAI,GAAG,GAAG,CAAA;IAC5B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAuB,EACvB,UAAuB,EACvB,WAAoB;IAEpB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAA;IAEvE,MAAM,UAAU,GAAG,UAAU;SAC1B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,EAAE,CAAC;SAC/C,OAAO,CAAC,GAAG,CAAC,EAAE;QACb,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACnC,OAAO;YACL,SAAS,GAAG,MAAM,KAAK,cAAc,OAAO,IAAI;YAChD,QAAQ,GAAG,MAAM,KAAK,cAAc,OAAO,IAAI;YAC/C,aAAa,GAAG,MAAM,KAAK,cAAc,OAAO,IAAI;SACrD,CAAA;IACH,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,KAAK,GAAG,6BAA6B,UAAU,
|
|
1
|
+
{"version":3,"file":"venues.js","sourceRoot":"","sources":["../src/venues.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rendezvous-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Find fair meeting points for N people — isochrone intersection, venue search, and fairness scoring.",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -72,5 +72,9 @@
|
|
|
72
72
|
"type": "git",
|
|
73
73
|
"url": "https://github.com/TheCryptoDonkey/rendezvous-kit.git"
|
|
74
74
|
},
|
|
75
|
-
"homepage": "https://github.com/TheCryptoDonkey/rendezvous-kit"
|
|
75
|
+
"homepage": "https://github.com/TheCryptoDonkey/rendezvous-kit",
|
|
76
|
+
"funding": {
|
|
77
|
+
"type": "lightning",
|
|
78
|
+
"url": "https://strike.me/thedonkey"
|
|
79
|
+
}
|
|
76
80
|
}
|