rendezvous-kit 1.11.5 → 1.12.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.
@@ -1 +1 @@
1
- {"version":3,"file":"venues.d.ts","sourceRoot":"","sources":["../src/venues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA4BlE;;;GAGG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,SAAS,EAAE,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,KAAK,EAAE,CAAC,CA4ClB"}
1
+ {"version":3,"file":"venues.d.ts","sourceRoot":"","sources":["../src/venues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA+BlE;;;GAGG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,SAAS,EAAE,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,KAAK,EAAE,CAAC,CAyDlB"}
package/dist/venues.js CHANGED
@@ -1,4 +1,7 @@
1
- const OVERPASS_URL = 'https://overpass-api.de/api/interpreter';
1
+ const OVERPASS_ENDPOINTS = [
2
+ 'https://overpass-api.de/api/interpreter',
3
+ 'https://overpass.kumi.systems/api/interpreter',
4
+ ];
2
5
  /** Map VenueType to Overpass tag queries. */
3
6
  const VENUE_TAG_MAP = {
4
7
  park: 'leisure=park',
@@ -40,25 +43,37 @@ export async function searchVenues(polygon, venueTypes, overpassUrl) {
40
43
  })
41
44
  .join('\n');
42
45
  const query = `[out:json][timeout:25];(\n${tagQueries}\n);out body;`;
43
- const response = await fetch(overpassUrl ?? OVERPASS_URL, {
44
- method: 'POST',
45
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
46
- body: `data=${encodeURIComponent(query)}`,
47
- });
48
- if (!response.ok) {
49
- const text = await response.text();
50
- throw new Error(`Overpass API error ${response.status}: ${text}`);
46
+ const body = `data=${encodeURIComponent(query)}`;
47
+ const endpoints = overpassUrl ? [overpassUrl] : OVERPASS_ENDPOINTS;
48
+ let lastError;
49
+ for (const url of endpoints) {
50
+ try {
51
+ const response = await fetch(url, {
52
+ method: 'POST',
53
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
54
+ body,
55
+ signal: AbortSignal.timeout(30_000),
56
+ });
57
+ if (response.ok) {
58
+ const data = await response.json();
59
+ return data.elements
60
+ .filter(el => el.tags?.name)
61
+ .map(el => ({
62
+ name: el.tags.name,
63
+ lat: el.lat,
64
+ lon: el.lon,
65
+ venueType: inferVenueType(el.tags, venueTypes),
66
+ osmId: `${el.type}/${el.id}`,
67
+ }));
68
+ }
69
+ // 429 or 5xx — try next endpoint
70
+ lastError = new Error(`Overpass API error ${response.status}`);
71
+ }
72
+ catch (err) {
73
+ lastError = err instanceof Error ? err : new Error(String(err));
74
+ }
51
75
  }
52
- const data = await response.json();
53
- return data.elements
54
- .filter(el => el.tags?.name)
55
- .map(el => ({
56
- name: el.tags.name,
57
- lat: el.lat,
58
- lon: el.lon,
59
- venueType: inferVenueType(el.tags, venueTypes),
60
- osmId: `${el.type}/${el.id}`,
61
- }));
76
+ throw lastError ?? new Error('All Overpass endpoints failed');
62
77
  }
63
78
  function inferVenueType(tags, requested) {
64
79
  for (const vt of requested) {
@@ -1 +1 @@
1
- {"version":3,"file":"venues.js","sourceRoot":"","sources":["../src/venues.ts"],"names":[],"mappings":"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"}
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.11.5",
3
+ "version": "1.12.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",