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