local-risk-alert-feed 0.1.0 → 0.2.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.
Files changed (85) hide show
  1. package/dist/cjs/core/alert-aggregator.js +24 -15
  2. package/dist/cjs/core/alert-aggregator.js.map +1 -1
  3. package/dist/cjs/index.js +3 -6
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/plugins/events/index.js +3 -1
  6. package/dist/cjs/plugins/events/index.js.map +1 -1
  7. package/dist/cjs/plugins/events/phoenix-convention-center.plugin.js +235 -0
  8. package/dist/cjs/plugins/events/phoenix-convention-center.plugin.js.map +1 -0
  9. package/dist/cjs/plugins/events/phoenix-events.plugin.js +24 -195
  10. package/dist/cjs/plugins/events/phoenix-events.plugin.js.map +1 -1
  11. package/dist/cjs/plugins/fire-emt/index.js +3 -1
  12. package/dist/cjs/plugins/fire-emt/index.js.map +1 -1
  13. package/dist/cjs/plugins/fire-emt/nifc-wildfire.plugin.js +221 -0
  14. package/dist/cjs/plugins/fire-emt/nifc-wildfire.plugin.js.map +1 -0
  15. package/dist/cjs/plugins/fire-emt/phoenix-fire.plugin.js +153 -154
  16. package/dist/cjs/plugins/fire-emt/phoenix-fire.plugin.js.map +1 -1
  17. package/dist/cjs/plugins/index.js +2 -7
  18. package/dist/cjs/plugins/index.js.map +1 -1
  19. package/dist/cjs/plugins/traffic/arizona-traffic.plugin.js +70 -77
  20. package/dist/cjs/plugins/traffic/arizona-traffic.plugin.js.map +1 -1
  21. package/dist/esm/core/alert-aggregator.js +24 -15
  22. package/dist/esm/core/alert-aggregator.js.map +1 -1
  23. package/dist/esm/index.js +1 -3
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/plugins/events/index.js +1 -0
  26. package/dist/esm/plugins/events/index.js.map +1 -1
  27. package/dist/esm/plugins/events/phoenix-convention-center.plugin.js +231 -0
  28. package/dist/esm/plugins/events/phoenix-convention-center.plugin.js.map +1 -0
  29. package/dist/esm/plugins/events/phoenix-events.plugin.js +24 -195
  30. package/dist/esm/plugins/events/phoenix-events.plugin.js.map +1 -1
  31. package/dist/esm/plugins/fire-emt/index.js +1 -0
  32. package/dist/esm/plugins/fire-emt/index.js.map +1 -1
  33. package/dist/esm/plugins/fire-emt/nifc-wildfire.plugin.js +217 -0
  34. package/dist/esm/plugins/fire-emt/nifc-wildfire.plugin.js.map +1 -0
  35. package/dist/esm/plugins/fire-emt/phoenix-fire.plugin.js +153 -154
  36. package/dist/esm/plugins/fire-emt/phoenix-fire.plugin.js.map +1 -1
  37. package/dist/esm/plugins/index.js +1 -5
  38. package/dist/esm/plugins/index.js.map +1 -1
  39. package/dist/esm/plugins/traffic/arizona-traffic.plugin.js +70 -77
  40. package/dist/esm/plugins/traffic/arizona-traffic.plugin.js.map +1 -1
  41. package/dist/types/core/alert-aggregator.d.ts +1 -1
  42. package/dist/types/core/alert-aggregator.d.ts.map +1 -1
  43. package/dist/types/index.d.ts +2 -6
  44. package/dist/types/index.d.ts.map +1 -1
  45. package/dist/types/plugins/events/index.d.ts +2 -0
  46. package/dist/types/plugins/events/index.d.ts.map +1 -1
  47. package/dist/types/plugins/events/phoenix-convention-center.plugin.d.ts +55 -0
  48. package/dist/types/plugins/events/phoenix-convention-center.plugin.d.ts.map +1 -0
  49. package/dist/types/plugins/events/phoenix-events.plugin.d.ts +5 -37
  50. package/dist/types/plugins/events/phoenix-events.plugin.d.ts.map +1 -1
  51. package/dist/types/plugins/fire-emt/index.d.ts +2 -0
  52. package/dist/types/plugins/fire-emt/index.d.ts.map +1 -1
  53. package/dist/types/plugins/fire-emt/nifc-wildfire.plugin.d.ts +43 -0
  54. package/dist/types/plugins/fire-emt/nifc-wildfire.plugin.d.ts.map +1 -0
  55. package/dist/types/plugins/fire-emt/phoenix-fire.plugin.d.ts +21 -13
  56. package/dist/types/plugins/fire-emt/phoenix-fire.plugin.d.ts.map +1 -1
  57. package/dist/types/plugins/index.d.ts +2 -6
  58. package/dist/types/plugins/index.d.ts.map +1 -1
  59. package/dist/types/plugins/traffic/arizona-traffic.plugin.d.ts +5 -14
  60. package/dist/types/plugins/traffic/arizona-traffic.plugin.d.ts.map +1 -1
  61. package/package.json +1 -11
  62. package/dist/cjs/plugins/police-blotter/index.js +0 -6
  63. package/dist/cjs/plugins/police-blotter/index.js.map +0 -1
  64. package/dist/cjs/plugins/police-blotter/phoenix-police.plugin.js +0 -198
  65. package/dist/cjs/plugins/police-blotter/phoenix-police.plugin.js.map +0 -1
  66. package/dist/cjs/plugins/pulsepoint/index.js +0 -6
  67. package/dist/cjs/plugins/pulsepoint/index.js.map +0 -1
  68. package/dist/cjs/plugins/pulsepoint/pulsepoint.plugin.js +0 -275
  69. package/dist/cjs/plugins/pulsepoint/pulsepoint.plugin.js.map +0 -1
  70. package/dist/esm/plugins/police-blotter/index.js +0 -2
  71. package/dist/esm/plugins/police-blotter/index.js.map +0 -1
  72. package/dist/esm/plugins/police-blotter/phoenix-police.plugin.js +0 -194
  73. package/dist/esm/plugins/police-blotter/phoenix-police.plugin.js.map +0 -1
  74. package/dist/esm/plugins/pulsepoint/index.js +0 -2
  75. package/dist/esm/plugins/pulsepoint/index.js.map +0 -1
  76. package/dist/esm/plugins/pulsepoint/pulsepoint.plugin.js +0 -271
  77. package/dist/esm/plugins/pulsepoint/pulsepoint.plugin.js.map +0 -1
  78. package/dist/types/plugins/police-blotter/index.d.ts +0 -3
  79. package/dist/types/plugins/police-blotter/index.d.ts.map +0 -1
  80. package/dist/types/plugins/police-blotter/phoenix-police.plugin.d.ts +0 -49
  81. package/dist/types/plugins/police-blotter/phoenix-police.plugin.d.ts.map +0 -1
  82. package/dist/types/plugins/pulsepoint/index.d.ts +0 -3
  83. package/dist/types/plugins/pulsepoint/index.d.ts.map +0 -1
  84. package/dist/types/plugins/pulsepoint/pulsepoint.plugin.d.ts +0 -61
  85. package/dist/types/plugins/pulsepoint/pulsepoint.plugin.d.ts.map +0 -1
@@ -28,29 +28,14 @@ const PHOENIX_VENUES = {
28
28
  'Crescent Ballroom': { latitude: 33.4509, longitude: -112.0714 },
29
29
  };
30
30
  /**
31
- * Event types that may cause civil unrest concerns.
32
- */
33
- const CIVIL_UNREST_KEYWORDS = [
34
- 'protest',
35
- 'march',
36
- 'rally',
37
- 'demonstration',
38
- 'strike',
39
- 'political',
40
- ];
41
- /**
42
- * Plugin that fetches event data from Ticketmaster and Phoenix city permits.
43
- *
44
- * Aggregates from:
45
- * - Ticketmaster Discovery API for concerts, sports, theater
46
- * - Phoenix Open Data for special event permits (street closures, parades)
31
+ * Plugin that fetches event data from Ticketmaster.
47
32
  */
48
33
  class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
49
34
  metadata = {
50
35
  id: 'phoenix-events',
51
36
  name: 'Phoenix Events',
52
- version: '1.0.0',
53
- description: 'Events from Ticketmaster and Phoenix city permits',
37
+ version: '2.0.0',
38
+ description: 'Events from Ticketmaster Discovery API',
54
39
  coverage: {
55
40
  type: 'regional',
56
41
  center: PHOENIX_DOWNTOWN,
@@ -58,7 +43,7 @@ class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
58
43
  description: 'Downtown Phoenix area',
59
44
  },
60
45
  supportedTemporalTypes: ['scheduled'],
61
- supportedCategories: ['event', 'civil-unrest'],
46
+ supportedCategories: ['event'],
62
47
  refreshIntervalMs: 30 * 60 * 1000, // 30 minutes
63
48
  };
64
49
  eventsConfig;
@@ -66,7 +51,6 @@ class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
66
51
  super(config);
67
52
  this.eventsConfig = {
68
53
  limit: 100,
69
- enablePhoenixPermits: true,
70
54
  ...config,
71
55
  enableTicketmaster: config?.enableTicketmaster ?? !!config?.ticketmasterApiKey,
72
56
  };
@@ -74,8 +58,17 @@ class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
74
58
  async fetchAlerts(options) {
75
59
  const cacheKey = this.generateCacheKey(options);
76
60
  const warnings = [];
61
+ // Check if Ticketmaster is enabled
62
+ if (!this.eventsConfig.enableTicketmaster || !this.eventsConfig.ticketmasterApiKey) {
63
+ return {
64
+ alerts: [],
65
+ fromCache: false,
66
+ cacheKey,
67
+ warnings: ['Ticketmaster API key not configured'],
68
+ };
69
+ }
77
70
  try {
78
- const { data, fromCache } = await this.getCachedOrFetch(cacheKey, () => this.fetchAllEvents(options, warnings), this.config.cacheTtlMs);
71
+ const { data, fromCache } = await this.getCachedOrFetch(cacheKey, () => this.fetchTicketmasterEvents(options), this.config.cacheTtlMs);
79
72
  // Filter by categories if specified
80
73
  let alerts = data;
81
74
  if (options.categories && options.categories.length > 0) {
@@ -93,47 +86,23 @@ class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
93
86
  throw error;
94
87
  }
95
88
  }
96
- /**
97
- * Fetch events from all enabled sources.
98
- */
99
- async fetchAllEvents(options, warnings) {
100
- const allAlerts = [];
101
- // Fetch from Ticketmaster
102
- if (this.eventsConfig.enableTicketmaster && this.eventsConfig.ticketmasterApiKey) {
103
- try {
104
- const tmAlerts = await this.fetchTicketmasterEvents(options);
105
- allAlerts.push(...tmAlerts);
106
- }
107
- catch (error) {
108
- warnings.push(`Ticketmaster fetch failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
109
- }
110
- }
111
- // Fetch from Phoenix permits
112
- if (this.eventsConfig.enablePhoenixPermits) {
113
- try {
114
- const permitAlerts = await this.fetchPhoenixPermitEvents(options);
115
- allAlerts.push(...permitAlerts);
116
- }
117
- catch (error) {
118
- warnings.push(`Phoenix permits fetch failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
119
- }
120
- }
121
- // Deduplicate events by venue + date
122
- return this.deduplicateEvents(allAlerts);
123
- }
124
89
  /**
125
90
  * Fetch events from Ticketmaster Discovery API.
126
91
  */
127
92
  async fetchTicketmasterEvents(options) {
128
93
  const { location, timeRange } = options;
129
94
  const apiKey = this.eventsConfig.ticketmasterApiKey;
95
+ // Ticketmaster requires format: YYYY-MM-DDTHH:mm:ssZ (no milliseconds)
96
+ const formatDateTime = (iso) => {
97
+ return new Date(iso).toISOString().replace(/\.\d{3}Z$/, 'Z');
98
+ };
130
99
  const params = new URLSearchParams({
131
100
  apikey: apiKey,
132
101
  latlong: `${location.latitude},${location.longitude}`,
133
102
  radius: '25', // miles
134
103
  unit: 'miles',
135
- startDateTime: new Date(timeRange.start).toISOString().replace('.000', ''),
136
- endDateTime: new Date(timeRange.end).toISOString().replace('.000', ''),
104
+ startDateTime: formatDateTime(timeRange.start),
105
+ endDateTime: formatDateTime(timeRange.end),
137
106
  size: String(this.eventsConfig.limit),
138
107
  sort: 'date,asc',
139
108
  });
@@ -170,7 +139,7 @@ class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
170
139
  id: `tm-${event.id}`,
171
140
  externalId: event.id,
172
141
  title: event.name,
173
- description: this.buildTicketmasterDescription(event, classification, venue),
142
+ description: this.buildDescription(event, classification, venue),
174
143
  riskLevel,
175
144
  priority: this.riskLevelToPriority(riskLevel),
176
145
  category: 'event',
@@ -198,83 +167,7 @@ class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
198
167
  });
199
168
  }
200
169
  /**
201
- * Fetch events from Phoenix Open Data special events permits.
202
- */
203
- async fetchPhoenixPermitEvents(options) {
204
- const { timeRange } = options;
205
- // Phoenix special events dataset (if available)
206
- // Note: This endpoint may need to be updated based on actual Phoenix Open Data availability
207
- const baseUrl = 'https://www.phoenixopendata.com/resource/yqvh-8bti.json';
208
- const params = new URLSearchParams({
209
- $limit: String(this.eventsConfig.limit),
210
- $order: 'start_date ASC',
211
- });
212
- // Filter by date range
213
- const startDate = timeRange.start.split('T')[0];
214
- const endDate = timeRange.end.split('T')[0];
215
- params.set('$where', `start_date >= '${startDate}' AND start_date <= '${endDate}'`);
216
- if (this.eventsConfig.socrataAppToken) {
217
- params.set('$$app_token', this.eventsConfig.socrataAppToken);
218
- }
219
- const url = `${baseUrl}?${params}`;
220
- try {
221
- const events = await this.fetchJson(url);
222
- return events.map((event) => this.transformPhoenixPermitEvent(event));
223
- }
224
- catch (error) {
225
- // Phoenix permits endpoint might not always be available
226
- console.warn('Phoenix permits fetch failed, continuing with other sources:', error);
227
- return [];
228
- }
229
- }
230
- /**
231
- * Transform a Phoenix permit event to our Alert format.
232
- */
233
- transformPhoenixPermitEvent(event) {
234
- // Parse location
235
- const latitude = event.latitude ? parseFloat(event.latitude) : PHOENIX_DOWNTOWN.latitude;
236
- const longitude = event.longitude ? parseFloat(event.longitude) : PHOENIX_DOWNTOWN.longitude;
237
- // Build timestamps
238
- const startDate = event.start_date ?? new Date().toISOString().split('T')[0];
239
- const startTime = event.start_time ?? '00:00:00';
240
- const startDateTime = `${startDate}T${startTime}`;
241
- let endDateTime;
242
- if (event.end_date) {
243
- const endTime = event.end_time ?? '23:59:59';
244
- endDateTime = `${event.end_date}T${endTime}`;
245
- }
246
- // Determine category and risk
247
- const { category, riskLevel } = this.assessPermitEventRisk(event);
248
- return this.createAlert({
249
- id: `phoenix-permit-${event.permit_number ?? Date.now()}`,
250
- externalId: event.permit_number,
251
- title: event.event_name ?? 'Special Event',
252
- description: this.buildPermitDescription(event),
253
- riskLevel,
254
- priority: this.riskLevelToPriority(riskLevel),
255
- category,
256
- temporalType: 'scheduled',
257
- location: {
258
- point: { latitude, longitude },
259
- address: event.event_location,
260
- city: 'Phoenix',
261
- state: 'AZ',
262
- },
263
- timestamps: {
264
- issued: new Date().toISOString(),
265
- eventStart: startDateTime,
266
- eventEnd: endDateTime,
267
- },
268
- metadata: {
269
- source: 'phoenix-permits',
270
- eventType: event.event_type,
271
- streetClosure: event.street_closure,
272
- permitNumber: event.permit_number,
273
- },
274
- });
275
- }
276
- /**
277
- * Assess risk level for a Ticketmaster event.
170
+ * Assess risk level for an event.
278
171
  */
279
172
  assessEventRisk(event, venueName) {
280
173
  // Large venue events have higher crowd impact
@@ -294,30 +187,9 @@ class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
294
187
  return 'low';
295
188
  }
296
189
  /**
297
- * Assess risk and category for a permit event.
298
- */
299
- assessPermitEventRisk(event) {
300
- const name = (event.event_name ?? '').toLowerCase();
301
- const type = (event.event_type ?? '').toLowerCase();
302
- const description = (event.description ?? '').toLowerCase();
303
- const combined = `${name} ${type} ${description}`;
304
- // Check for civil unrest indicators
305
- for (const keyword of CIVIL_UNREST_KEYWORDS) {
306
- if (combined.includes(keyword)) {
307
- return { category: 'civil-unrest', riskLevel: 'moderate' };
308
- }
309
- }
310
- // Check for street closures
311
- if (event.street_closure && event.street_closure.toLowerCase() !== 'no') {
312
- return { category: 'event', riskLevel: 'moderate' };
313
- }
314
- // Default
315
- return { category: 'event', riskLevel: 'low' };
316
- }
317
- /**
318
- * Build description for Ticketmaster event.
190
+ * Build description for event.
319
191
  */
320
- buildTicketmasterDescription(event, classification, venue) {
192
+ buildDescription(event, classification, venue) {
321
193
  const parts = [];
322
194
  if (classification?.segment?.name) {
323
195
  parts.push(`Type: ${classification.segment.name}`);
@@ -334,49 +206,6 @@ class PhoenixEventsPlugin extends base_plugin_1.BasePlugin {
334
206
  }
335
207
  return parts.join('\n');
336
208
  }
337
- /**
338
- * Build description for permit event.
339
- */
340
- buildPermitDescription(event) {
341
- const parts = [];
342
- if (event.event_type) {
343
- parts.push(`Type: ${event.event_type}`);
344
- }
345
- if (event.event_location) {
346
- parts.push(`Location: ${event.event_location}`);
347
- }
348
- if (event.description) {
349
- parts.push(`\n${event.description}`);
350
- }
351
- if (event.street_closure && event.street_closure.toLowerCase() !== 'no') {
352
- parts.push(`\nStreet Closure: ${event.street_closure}`);
353
- }
354
- return parts.join('\n');
355
- }
356
- /**
357
- * Deduplicate events that might appear in both sources.
358
- */
359
- deduplicateEvents(alerts) {
360
- const seen = new Map();
361
- for (const alert of alerts) {
362
- // Create dedup key from venue + date
363
- const venue = alert.metadata?.venue ?? alert.location.address ?? 'unknown';
364
- const date = alert.timestamps.eventStart?.split('T')[0] ?? '';
365
- const key = `${venue.toLowerCase()}-${date}`;
366
- const existing = seen.get(key);
367
- if (!existing) {
368
- seen.set(key, alert);
369
- }
370
- else {
371
- // Prefer Ticketmaster data (usually more complete)
372
- if (alert.metadata?.source === 'ticketmaster' &&
373
- existing.metadata?.source !== 'ticketmaster') {
374
- seen.set(key, alert);
375
- }
376
- }
377
- }
378
- return Array.from(seen.values());
379
- }
380
209
  }
381
210
  exports.PhoenixEventsPlugin = PhoenixEventsPlugin;
382
211
  //# sourceMappingURL=phoenix-events.plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"phoenix-events.plugin.js","sourceRoot":"","sources":["../../../../src/plugins/events/phoenix-events.plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phoenix-events.plugin.js","sourceRoot":"","sources":["../../../../src/plugins/events/phoenix-events.plugin.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PhoenixFirePlugin = void 0;
3
+ exports.NIFCWildfirePlugin = exports.PhoenixFirePlugin = void 0;
4
4
  var phoenix_fire_plugin_1 = require("./phoenix-fire.plugin");
5
5
  Object.defineProperty(exports, "PhoenixFirePlugin", { enumerable: true, get: function () { return phoenix_fire_plugin_1.PhoenixFirePlugin; } });
6
+ var nifc_wildfire_plugin_1 = require("./nifc-wildfire.plugin");
7
+ Object.defineProperty(exports, "NIFCWildfirePlugin", { enumerable: true, get: function () { return nifc_wildfire_plugin_1.NIFCWildfirePlugin; } });
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/fire-emt/index.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/fire-emt/index.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAG1B,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NIFCWildfirePlugin = void 0;
4
+ const base_plugin_1 = require("../base-plugin");
5
+ /**
6
+ * US center coordinates for national coverage.
7
+ */
8
+ const US_CENTER = {
9
+ latitude: 39.8283,
10
+ longitude: -98.5795,
11
+ };
12
+ /**
13
+ * Full US coverage radius.
14
+ */
15
+ const US_COVERAGE_RADIUS_METERS = 3_000_000;
16
+ /**
17
+ * Fire size to risk level mapping.
18
+ */
19
+ function getFireRiskLevel(acres, percentContained) {
20
+ const containment = percentContained ?? 0;
21
+ const size = acres ?? 0;
22
+ // Fully contained fires are lower risk
23
+ if (containment >= 100) {
24
+ return 'low';
25
+ }
26
+ // Large uncontained fires are extreme risk
27
+ if (size >= 10000 && containment < 50) {
28
+ return 'extreme';
29
+ }
30
+ if (size >= 5000 && containment < 75) {
31
+ return 'severe';
32
+ }
33
+ if (size >= 1000) {
34
+ return 'high';
35
+ }
36
+ if (size >= 100) {
37
+ return 'moderate';
38
+ }
39
+ return 'low';
40
+ }
41
+ /**
42
+ * Plugin that fetches active wildfire data from NIFC (National Interagency Fire Center).
43
+ *
44
+ * Uses the WFIGS (Wildland Fire Interagency Geospatial Services) public ArcGIS endpoint.
45
+ *
46
+ * @see https://data-nifc.opendata.arcgis.com/
47
+ */
48
+ class NIFCWildfirePlugin extends base_plugin_1.BasePlugin {
49
+ metadata = {
50
+ id: 'nifc-wildfire',
51
+ name: 'NIFC Wildfires',
52
+ version: '1.0.0',
53
+ description: 'Active wildfire incidents from National Interagency Fire Center',
54
+ coverage: {
55
+ type: 'global',
56
+ center: US_CENTER,
57
+ radiusMeters: US_COVERAGE_RADIUS_METERS,
58
+ description: 'United States wildfire incidents',
59
+ },
60
+ supportedTemporalTypes: ['real-time'],
61
+ supportedCategories: ['fire'],
62
+ refreshIntervalMs: 15 * 60 * 1000, // 15 minutes
63
+ };
64
+ pluginConfig;
65
+ constructor(config) {
66
+ super(config);
67
+ this.pluginConfig = {
68
+ includePrescribedBurns: false,
69
+ minAcres: 0,
70
+ ...config,
71
+ };
72
+ }
73
+ async fetchAlerts(options) {
74
+ const { location, radiusMeters } = options;
75
+ const cacheKey = this.generateCacheKey(options);
76
+ try {
77
+ const { data, fromCache } = await this.getCachedOrFetch(cacheKey, () => this.fetchWildfires(location, radiusMeters), this.config.cacheTtlMs);
78
+ return {
79
+ alerts: data,
80
+ fromCache,
81
+ cacheKey,
82
+ };
83
+ }
84
+ catch (error) {
85
+ console.error('NIFC Wildfire fetch error:', error);
86
+ throw error;
87
+ }
88
+ }
89
+ /**
90
+ * Fetch wildfires from NIFC WFIGS service.
91
+ */
92
+ async fetchWildfires(location, radiusMeters) {
93
+ // NIFC WFIGS Current Incident Locations
94
+ const baseUrl = 'https://services3.arcgis.com/T4QMspbfLg3qTGWY/arcgis/rest/services/WFIGS_Incident_Locations_Current/FeatureServer/0/query';
95
+ // Build where clause
96
+ const whereClauses = ['1=1'];
97
+ // Filter by incident type
98
+ if (!this.pluginConfig.includePrescribedBurns) {
99
+ whereClauses.push("IncidentTypeCategory='WF'");
100
+ }
101
+ // Filter by minimum acres
102
+ if (this.pluginConfig.minAcres && this.pluginConfig.minAcres > 0) {
103
+ whereClauses.push(`DailyAcres>=${this.pluginConfig.minAcres}`);
104
+ }
105
+ // Filter by states
106
+ if (this.pluginConfig.states && this.pluginConfig.states.length > 0) {
107
+ const stateList = this.pluginConfig.states.map(s => `'US-${s}'`).join(',');
108
+ whereClauses.push(`POOState IN (${stateList})`);
109
+ }
110
+ const params = new URLSearchParams({
111
+ where: whereClauses.join(' AND '),
112
+ outFields: '*',
113
+ f: 'json',
114
+ resultRecordCount: '500',
115
+ });
116
+ const url = `${baseUrl}?${params}`;
117
+ const response = await this.fetchJson(url);
118
+ if (!response.features) {
119
+ return [];
120
+ }
121
+ // Transform and filter by location
122
+ const alerts = response.features
123
+ .filter(f => {
124
+ const lat = f.attributes.InitialLatitude ?? f.geometry?.y;
125
+ const lng = f.attributes.InitialLongitude ?? f.geometry?.x;
126
+ if (!lat || !lng)
127
+ return false;
128
+ const distance = this.calculateDistance(location.latitude, location.longitude, lat, lng);
129
+ return distance <= radiusMeters;
130
+ })
131
+ .map(f => this.transformIncident(f.attributes, f.geometry));
132
+ return alerts;
133
+ }
134
+ /**
135
+ * Transform a NIFC incident to our Alert format.
136
+ */
137
+ transformIncident(incident, geometry) {
138
+ const latitude = incident.InitialLatitude ?? geometry?.y ?? 0;
139
+ const longitude = incident.InitialLongitude ?? geometry?.x ?? 0;
140
+ const acres = incident.DailyAcres ?? incident.CalculatedAcres;
141
+ const riskLevel = getFireRiskLevel(acres, incident.PercentContained);
142
+ // Parse state from POOState (e.g., 'US-AZ' -> 'AZ')
143
+ const state = incident.POOState?.replace('US-', '') ?? '';
144
+ // Format discovery time
145
+ const discoveryTime = incident.FireDiscoveryDateTime
146
+ ? new Date(incident.FireDiscoveryDateTime).toISOString()
147
+ : undefined;
148
+ const modifiedTime = incident.ModifiedOnDateTime
149
+ ? new Date(incident.ModifiedOnDateTime).toISOString()
150
+ : new Date().toISOString();
151
+ return this.createAlert({
152
+ id: `nifc-${incident.OBJECTID}`,
153
+ externalId: String(incident.OBJECTID),
154
+ title: incident.IncidentName || 'Unnamed Fire',
155
+ description: this.buildDescription(incident, acres),
156
+ riskLevel,
157
+ priority: this.riskLevelToPriority(riskLevel),
158
+ category: 'fire',
159
+ temporalType: 'real-time',
160
+ location: {
161
+ point: { latitude, longitude },
162
+ city: incident.POOCity,
163
+ state,
164
+ },
165
+ timestamps: {
166
+ issued: modifiedTime,
167
+ eventStart: discoveryTime,
168
+ },
169
+ metadata: {
170
+ incidentType: incident.IncidentTypeCategory === 'WF' ? 'Wildfire' : 'Prescribed Burn',
171
+ acres,
172
+ percentContained: incident.PercentContained,
173
+ fireCause: incident.FireCause,
174
+ fireBehavior: incident.FireBehaviorGeneral,
175
+ managementOrg: incident.IncidentManagementOrganization,
176
+ county: incident.POOCounty,
177
+ },
178
+ });
179
+ }
180
+ /**
181
+ * Build description from incident data.
182
+ */
183
+ buildDescription(incident, acres) {
184
+ const parts = [];
185
+ const type = incident.IncidentTypeCategory === 'WF' ? 'Wildfire' : 'Prescribed Burn';
186
+ parts.push(`Type: ${type}`);
187
+ if (acres) {
188
+ parts.push(`Size: ${acres.toLocaleString()} acres`);
189
+ }
190
+ if (incident.PercentContained !== undefined && incident.PercentContained !== null) {
191
+ parts.push(`Containment: ${incident.PercentContained}%`);
192
+ }
193
+ if (incident.FireCause) {
194
+ parts.push(`Cause: ${incident.FireCause}`);
195
+ }
196
+ if (incident.FireBehaviorGeneral) {
197
+ parts.push(`Behavior: ${incident.FireBehaviorGeneral}`);
198
+ }
199
+ if (incident.POOCounty) {
200
+ parts.push(`County: ${incident.POOCounty}`);
201
+ }
202
+ return parts.join('\n');
203
+ }
204
+ /**
205
+ * Calculate distance between two points in meters.
206
+ */
207
+ calculateDistance(lat1, lon1, lat2, lon2) {
208
+ const R = 6371e3;
209
+ const φ1 = (lat1 * Math.PI) / 180;
210
+ const φ2 = (lat2 * Math.PI) / 180;
211
+ const Δφ = ((lat2 - lat1) * Math.PI) / 180;
212
+ const Δλ = ((lon2 - lon1) * Math.PI) / 180;
213
+ const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
214
+ Math.cos(φ1) * Math.cos(φ2) *
215
+ Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
216
+ const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
217
+ return R * c;
218
+ }
219
+ }
220
+ exports.NIFCWildfirePlugin = NIFCWildfirePlugin;
221
+ //# sourceMappingURL=nifc-wildfire.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nifc-wildfire.plugin.js","sourceRoot":"","sources":["../../../../src/plugins/fire-emt/nifc-wildfire.plugin.ts"],"names":[],"mappings":"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"}