atmosx-nwws-parser 1.0.19 → 1.0.22

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 (44) hide show
  1. package/README.md +182 -64
  2. package/dist/cjs/index.cjs +3799 -0
  3. package/dist/esm/index.mjs +3757 -0
  4. package/package.json +49 -37
  5. package/src/bootstrap.ts +196 -0
  6. package/src/database.ts +148 -0
  7. package/src/dictionaries/awips.ts +342 -0
  8. package/src/dictionaries/events.ts +142 -0
  9. package/src/dictionaries/icao.ts +237 -0
  10. package/src/dictionaries/offshore.ts +12 -0
  11. package/src/dictionaries/signatures.ts +107 -0
  12. package/src/eas.ts +493 -0
  13. package/src/index.ts +229 -0
  14. package/src/parsers/events/api.ts +151 -0
  15. package/src/parsers/events/cap.ts +138 -0
  16. package/src/parsers/events/text.ts +106 -0
  17. package/src/parsers/events/ugc.ts +109 -0
  18. package/src/parsers/events/vtec.ts +78 -0
  19. package/src/parsers/events.ts +367 -0
  20. package/src/parsers/hvtec.ts +46 -0
  21. package/src/parsers/pvtec.ts +71 -0
  22. package/src/parsers/stanza.ts +132 -0
  23. package/src/parsers/text.ts +166 -0
  24. package/src/parsers/ugc.ts +197 -0
  25. package/src/types.ts +251 -0
  26. package/src/utils.ts +314 -0
  27. package/src/xmpp.ts +144 -0
  28. package/test.js +58 -34
  29. package/tsconfig.json +12 -5
  30. package/tsup.config.ts +14 -0
  31. package/bootstrap.ts +0 -122
  32. package/dist/bootstrap.js +0 -153
  33. package/dist/src/events.js +0 -585
  34. package/dist/src/helper.js +0 -463
  35. package/dist/src/stanza.js +0 -147
  36. package/dist/src/text-parser.js +0 -119
  37. package/dist/src/ugc.js +0 -214
  38. package/dist/src/vtec.js +0 -125
  39. package/src/events.ts +0 -394
  40. package/src/helper.ts +0 -298
  41. package/src/stanza.ts +0 -102
  42. package/src/text-parser.ts +0 -120
  43. package/src/ugc.ts +0 -122
  44. package/src/vtec.ts +0 -99
@@ -0,0 +1,342 @@
1
+ export const AWIPS: Record<string, string> = {
2
+ ABV: `rawinsonde-data-above-100-millibars`,
3
+ ADA: `alarm-alert-administrative-message`,
4
+ ADM: `alert-administrative-message`,
5
+ ADR: `nws-administrative-message`,
6
+ ADV: `space-environment-advisory`,
7
+ AFD: `area-forecast-discussion`,
8
+ AFM: `area-forecast-matrices`,
9
+ AFP: `area-forecast-product`,
10
+ AFW: `fire-weather-matrix`,
11
+ AGF: `agricultural-forecast`,
12
+ AGO: `agricultural-observations`,
13
+ ALT: `space-environment-alert`,
14
+ AQA: `air-quality-alert`,
15
+ AQI: `air-quality-index-statement`,
16
+ ASA: `air-stagnation-advisory`,
17
+ AVA: `avalanche-watch`,
18
+ AVG: `avalanche-weather-guidance`,
19
+ AVW: `avalanche-warning`,
20
+ AWO: `area-weather-outlook`,
21
+ AWS: `area-weather-summary`,
22
+ AWU: `area-weather-update`,
23
+ AWW: `airport-weather-warning`,
24
+ BLU: `blue-alert`,
25
+ BOY: `buoy-report`,
26
+ BRG: `coast-guard-observations`,
27
+ BRT: `hourly-roundup-for-weather-radio`,
28
+ CAE: `child-abduction-emergency`,
29
+ CCF: `coded-city-forecast`,
30
+ CDW: `civil-danger-warning`,
31
+ CEM: `civil-emergency-message`,
32
+ CF6: `monthly-daily-climate-data`,
33
+ CFP: `convective-forecast-product`,
34
+ CFW: `coastal-flood-warnings-watches-statements`,
35
+ CGR: `coast-guard-surface-report`,
36
+ CHG: `computer-hurricane-guidance`,
37
+ CLA: `climatological-report-annual`,
38
+ CLI: `climatological-report-daily`,
39
+ CLM: `climatological-report-monthly`,
40
+ CLQ: `climatological-report-quarterly`,
41
+ CLS: `climatological-report-seasonal`,
42
+ CLT: `climate-report`,
43
+ CMM: `coded-climatological-monthly-means`,
44
+ COD: `coded-analysis-and-forecasts`,
45
+ CPF: `great-lakes-port-forecast`,
46
+ CUR: `space-environment-products-routine`,
47
+ CWA: `center-weather-advisory`,
48
+ CWF: `coastal-waters-forecast`,
49
+ CWS: `center-weather-statement`,
50
+ DAY: `space-environment-product-daily`,
51
+ DDO: `daily-dispersion-outlook`,
52
+ DGT: `drought-information-statement`,
53
+ DMO: `practice-demo-warning`,
54
+ DSA: `unnumbered-depression-advisory`,
55
+ DSM: `asos-daily-summary`,
56
+ DSW: `dust-storm-warning`,
57
+ EFP: `extended-forecast-3-to-5-day`,
58
+ EOL: `six-to-ten-day-weather-outlook-local`,
59
+ EQI: `tsunami-bulletin`,
60
+ EQR: `earthquake-report`,
61
+ EQW: `earthquake-warning`,
62
+ ESF: `flood-potential-outlook`,
63
+ ESG: `extended-streamflow-guidance`,
64
+ ESP: `extended-streamflow-prediction`,
65
+ ESS: `water-supply-outlook`,
66
+ EVI: `evacuation-immediate`,
67
+ EWW: `extreme-wind-warning`,
68
+ FA0: `aviation-area-forecast-pacific`,
69
+ FA1: `aviation-area-forecast-northeast`,
70
+ FA2: `aviation-area-forecast-southeast`,
71
+ FA3: `aviation-area-forecast-north-central`,
72
+ FA4: `aviation-area-forecast-south-central`,
73
+ FA5: `aviation-area-forecast-rocky-mountains`,
74
+ FA6: `aviation-area-forecast-west-coast`,
75
+ FA7: `aviation-area-forecast-juneau-ak`,
76
+ FA8: `aviation-area-forecast-anchorage-ak`,
77
+ FA9: `aviation-area-forecast-fairbanks-ak`,
78
+ FD0: `winds-aloft-forecast-24hr-high-altitude`,
79
+ FD1: `winds-aloft-forecast-6hr`,
80
+ FD2: `winds-aloft-forecast-12hr`,
81
+ FD3: `winds-aloft-forecast-24hr`,
82
+ FD4: `winds-aloft-forecast`,
83
+ FD5: `winds-aloft-forecast`,
84
+ FD6: `winds-aloft-forecast`,
85
+ FD7: `winds-aloft-forecast`,
86
+ FD8: `winds-aloft-forecast-6hr-high-altitude`,
87
+ FD9: `winds-aloft-forecast-12hr-high-altitude`,
88
+ FDI: `fire-danger-indices`,
89
+ FFA: `flash-flood-watch`,
90
+ FFG: `flash-flood-guidance`,
91
+ FFH: `headwater-guidance`,
92
+ FFS: `flash-flood-statement`,
93
+ FFW: `flash-flood-warning`,
94
+ FLN: `national-flood-summary`,
95
+ FLS: `flood-statement`,
96
+ FLW: `flood-warning`,
97
+ FOF: `upper-wind-fallout-forecast`,
98
+ FRW: `fire-warning`,
99
+ FSH: `marine-fisheries-service-message`,
100
+ FTM: `radar-outage-notification`,
101
+ FTP: `temp-pop-guidance`,
102
+ FWA: `fire-weather-administrative-message`,
103
+ FWD: `fire-weather-outlook-discussion`,
104
+ FWF: `fire-weather-forecast`,
105
+ FWL: `land-management-forecast`,
106
+ FWM: `miscellaneous-fire-weather-product`,
107
+ FWN: `fire-weather-notification`,
108
+ FWO: `fire-weather-observation`,
109
+ FWS: `fire-weather-spot-forecast`,
110
+ FZL: `freezing-level-data`,
111
+ GLF: `great-lakes-forecast`,
112
+ GLS: `great-lakes-storm-summary`,
113
+ GRE: `green`,
114
+ HD1: `rfc-qpf-data-product`,
115
+ HD2: `rfc-qpf-data-product`,
116
+ HD3: `rfc-qpf-data-product`,
117
+ HD4: `rfc-qpf-data-product`,
118
+ HD7: `rfc-qpf-data-product`,
119
+ HD8: `rfc-qpf-data-product`,
120
+ HD9: `rfc-qpf-data-product`,
121
+ HLS: `hurricane-local-statement`,
122
+ HMD: `hydrometeorological-discussion`,
123
+ HML: `ahps-xml-product`,
124
+ HMW: `hazardous-materials-warning`,
125
+ HP1: `rfc-qpf-verification-product`,
126
+ HP2: `rfc-qpf-verification-product`,
127
+ HP3: `rfc-qpf-verification-product`,
128
+ HP4: `rfc-qpf-verification-product`,
129
+ HP5: `rfc-qpf-verification-product`,
130
+ HP6: `rfc-qpf-verification-product`,
131
+ HP7: `rfc-qpf-verification-product`,
132
+ HP8: `rfc-qpf-verification-product`,
133
+ HRR: `weather-roundup`,
134
+ HSF: `high-seas-forecast`,
135
+ HWO: `hazardous-weather-outlook`,
136
+ HWR: `hourly-weather-roundup`,
137
+ HYD: `daily-hydrometeorological-products`,
138
+ HYM: `monthly-hydrometeorological-product`,
139
+ ICE: `ice-forecast`,
140
+ IDM: `ice-drift-vectors`,
141
+ INI: `administrative-message`,
142
+ IOB: `ice-observation`,
143
+ KPA: `keep-alive-message`,
144
+ LAE: `local-area-emergency`,
145
+ LCD: `preliminary-local-climatological-data`,
146
+ LCO: `local-cooperative-observation`,
147
+ LEW: `law-enforcement-warning`,
148
+ LFP: `local-forecast`,
149
+ LKE: `lake-stages`,
150
+ LLS: `low-level-sounding`,
151
+ LOW: `low-temperatures`,
152
+ LSR: `local-storm-report`,
153
+ LTG: `lightning-data`,
154
+ MAN: `rawinsonde-mandatory-levels`,
155
+ MAP: `mean-areal-precipitation`,
156
+ MAW: `amended-marine-forecast`,
157
+ MFM: `marine-forecast-matrix`,
158
+ MIM: `marine-interpretation-message`,
159
+ MIS: `miscellaneous-local-product`,
160
+ MOB: `marine-observations`,
161
+ MON: `space-environment-product-monthly`,
162
+ MRP: `marine-product-techniques-development`,
163
+ MSM: `asos-monthly-summary-message`,
164
+ MTR: `metar-observation`,
165
+ MTT: `metar-test-message`,
166
+ MVF: `marine-verification-coded-message`,
167
+ MWS: `marine-weather-statement`,
168
+ MWW: `marine-weather-message`,
169
+ NOU: `weather-reconnaissance-flights`,
170
+ NOW: `short-term-forecast`,
171
+ NOX: `data-management-message`,
172
+ NPW: `non-precipitation-warning`,
173
+ NSH: `nearshore-marine-forecast`,
174
+ NUW: `nuclear-power-plant-warning`,
175
+ NWR: `noaa-weather-radio-forecast`,
176
+ OAV: `other-aviation-products`,
177
+ OBS: `observations`,
178
+ OFA: `offshore-aviation-forecast`,
179
+ OFF: `offshore-forecast`,
180
+ OMR: `other-marine-products`,
181
+ OPU: `other-public-products`,
182
+ OSO: `other-surface-observations`,
183
+ OSW: `ocean-surface-winds`,
184
+ OUA: `other-upper-air-data`,
185
+ OZF: `zone-forecast`,
186
+ PFM: `point-forecast-matrices`,
187
+ PFW: `fire-weather-point-forecast-matrices`,
188
+ PLS: `plain-language-ship-report`,
189
+ PMD: `prognostic-meteorological-discussion`,
190
+ PNS: `public-information-statement`,
191
+ POE: `probability-of-exceedance`,
192
+ PRB: `heat-index-forecast-tables`,
193
+ PRC: `pilot-report-collective`,
194
+ PRE: `preliminary-forecasts`,
195
+ PSH: `post-storm-hurricane-report`,
196
+ PTS: `probabilistic-outlook-points`,
197
+ PWO: `public-severe-weather-outlook`,
198
+ PWS: `tropical-cyclone-probabilities`,
199
+ QPF: `quantitative-precipitation-forecast`,
200
+ QPS: `quantitative-precipitation-statement`,
201
+ RDF: `revised-digital-forecast`,
202
+ REC: `recreational-report`,
203
+ RER: `record-report`,
204
+ RET: `eas-activation-request`,
205
+ RFD: `rangeland-fire-danger-forecast`,
206
+ RFI: `rfi-observation`,
207
+ RFR: `route-forecast`,
208
+ RFW: `red-flag-warning`,
209
+ RHW: `radiological-hazard-warning`,
210
+ RMT: `required-monthly-test`,
211
+ RNS: `rain-information-statement`,
212
+ RR1: `hydro-met-data-report-part-1`,
213
+ RR2: `hydro-met-data-report-part-2`,
214
+ RR3: `hydro-met-data-report-part-3`,
215
+ RR4: `hydro-met-data-report-part-4`,
216
+ RR5: `hydro-met-data-report-part-5`,
217
+ RR6: `hydro-met-data-report-part-6`,
218
+ RR7: `hydro-met-data-report-part-7`,
219
+ RR8: `hydro-met-data-report-part-8`,
220
+ RR9: `hydro-met-data-report-part-9`,
221
+ RRA: `automated-hydrologic-observation-report`,
222
+ RRM: `miscellaneous-hydrologic-data`,
223
+ RRS: `hads-data`,
224
+ RRY: `asos-hourly-test-message`,
225
+ RSD: `daily-snotel-data`,
226
+ RSM: `monthly-snotel-data`,
227
+ RTP: `regional-temp-precip-table`,
228
+ RVA: `river-summary`,
229
+ RVD: `daily-river-forecast`,
230
+ RVF: `river-forecast`,
231
+ RVI: `river-ice-statement`,
232
+ RVM: `miscellaneous-river-product`,
233
+ RVR: `river-recreation-statement`,
234
+ RVS: `river-statement`,
235
+ RWR: `regional-weather-roundup`,
236
+ RWS: `regional-weather-summary`,
237
+ RWT: `required-weekly-test`,
238
+ SAB: `special-avalanche-bulletin`,
239
+ SAF: `agricultural-weather-forecast`,
240
+ SAG: `snow-avalanche-guidance`,
241
+ SAT: `apt-prediction`,
242
+ SAW: `preliminary-notice-of-watch`,
243
+ SCC: `storm-summary`,
244
+ SCD: `supplementary-climatological-data`,
245
+ SCN: `soil-climate-analysis-network`,
246
+ SCP: `satellite-cloud-product`,
247
+ SCS: `selected-cities-summary`,
248
+ SDO: `supplementary-data-observation`,
249
+ SDS: `special-dispersion-statement`,
250
+ SEL: `severe-local-storm-watch`,
251
+ SEV: `spc-watch-point-information`,
252
+ SFP: `state-forecast`,
253
+ SFT: `tabular-state-forecast`,
254
+ SGL: `rawinsonde-significant-levels`,
255
+ SHP: `surface-ship-report`,
256
+ SIG: `international-sigmet`,
257
+ SIM: `satellite-interpretation-message`,
258
+ SLS: `severe-local-storm-outline`,
259
+ SMF: `smoke-management-weather-forecast`,
260
+ SMW: `special-marine-warning`,
261
+ SOO: `science-operations-officer-product`,
262
+ SPE: `satellite-precipitation-estimates`,
263
+ SPF: `storm-strike-probability-bulletin`,
264
+ SPS: `special-weather-statement`,
265
+ SPW: `shelter-in-place-warning`,
266
+ SQW: `snow-squall-warning`,
267
+ SRD: `surf-discussion`,
268
+ SRF: `surf-forecast`,
269
+ SRG: `soaring-guidance`,
270
+ SSM: `synoptic-surface-observation`,
271
+ STA: `weather-statistical-summary`,
272
+ STD: `satellite-tropical-disturbance-summary`,
273
+ STO: `road-condition-report`,
274
+ STP: `state-temp-precip-table`,
275
+ STQ: `spot-forecast-request`,
276
+ SUM: `space-weather-message`,
277
+ SVR: `severe-thunderstorm-warning`,
278
+ SVS: `severe-weather-statement`,
279
+ SWO: `severe-storm-outlook`,
280
+ SWS: `state-weather-summary`,
281
+ SYN: `regional-weather-synopsis`,
282
+ TAF: `terminal-aerodrome-forecast`,
283
+ TAP: `terminal-alerting-products`,
284
+ TAV: `travelers-forecast-table`,
285
+ TCA: `tropical-cyclone-advisory`,
286
+ TCD: `tropical-cyclone-discussion`,
287
+ TCE: `tropical-cyclone-position-estimate`,
288
+ TCM: `tropical-cyclone-marine-aviation-advisory`,
289
+ TCP: `public-tropical-cyclone-advisory`,
290
+ TCS: `satellite-tropical-cyclone-summary`,
291
+ TCU: `tropical-cyclone-update`,
292
+ TCV: `tropical-cyclone-break-points`,
293
+ TIB: `tsunami-bulletin`,
294
+ TID: `tide-report`,
295
+ TMA: `tsunami-tide-seismic-acknowledgement`,
296
+ TOE: `telephone-outage-emergency`,
297
+ TOR: `tornado-warning`,
298
+ TPT: `temperature-precipitation-table`,
299
+ TSU: `tsunami-watch-warning`,
300
+ TUV: `ultraviolet-index`,
301
+ TVL: `travelers-forecast`,
302
+ TWB: `transcribed-weather-broadcast`,
303
+ TWD: `tropical-weather-discussion`,
304
+ TWO: `tropical-weather-outlook`,
305
+ TWS: `tropical-weather-summary`,
306
+ URN: `aircraft-reconnaissance`,
307
+ UVI: `ultraviolet-index`,
308
+ VAA: `volcanic-activity-advisory`,
309
+ VER: `forecast-verification-statistics`,
310
+ VFT: `taf-verification-product`,
311
+ VOW: `volcano-warning`,
312
+ WA0: `airmet-pacific`,
313
+ WA1: `airmet-northeast`,
314
+ WA2: `airmet-southeast`,
315
+ WA3: `airmet-north-central`,
316
+ WA4: `airmet-south-central`,
317
+ WA5: `airmet-rocky-mountains`,
318
+ WA6: `airmet-west-coast`,
319
+ WA7: `airmet-juneau-ak`,
320
+ WA8: `airmet-anchorage-ak`,
321
+ WA9: `airmet-fairbanks-ak`,
322
+ WAR: `space-environment-warning`,
323
+ WAT: `space-environment-watch`,
324
+ WCN: `weather-watch-clearance-notification`,
325
+ WCR: `weekly-weather-and-crop-report`,
326
+ WDA: `weekly-data-for-agriculture`,
327
+ WDU: `warning-decision-update`,
328
+ WEK: `space-environment-product-weekly`,
329
+ WOU: `watch-outline-update`,
330
+ WS1: `sigmet-northeast`,
331
+ WS2: `sigmet-southeast`,
332
+ WS3: `sigmet-north-central`,
333
+ WS4: `sigmet-south-central`,
334
+ WS5: `sigmet-rocky-mountains`,
335
+ WS6: `sigmet-west-coast`,
336
+ WST: `tropical-cyclone-sigmet`,
337
+ WSV: `volcanic-activity-sigmet`,
338
+ WSW: `winter-weather-warning`,
339
+ WWA: `watch-status-report`,
340
+ WWP: `watch-probabilities`,
341
+ ZFP: `zone-forecast-product`,
342
+ };
@@ -0,0 +1,142 @@
1
+ export const EVENTS: Record<string, string> = {
2
+ "AF": "Ashfall",
3
+ "AS": "Air Stagnation",
4
+ "BH": "Beach Hazard",
5
+ "BW": "Brisk Wind",
6
+ "BZ": "Blizzard",
7
+ "CF": "Coastal Flood",
8
+ "DF": "Debris Flow",
9
+ "DS": "Dust Storm",
10
+ "EC": "Extreme Cold",
11
+ "EH": "Excessive Heat",
12
+ "XH": "Extreme Heat",
13
+ "EW": "Extreme Wind",
14
+ "FA": "Areal Flood",
15
+ "FF": "Flash Flood",
16
+ "FG": "Dense Fog",
17
+ "FL": "Flood",
18
+ "FR": "Frost",
19
+ "FW": "Fire Weather",
20
+ "FZ": "Freeze",
21
+ "GL": "Gale",
22
+ "HF": "Hurricane Force Wind",
23
+ "HT": "Heat",
24
+ "HU": "Hurricane",
25
+ "HW": "High Wind",
26
+ "HY": "Hydrologic",
27
+ "HZ": "Hard Freeze",
28
+ "IS": "Ice Storm",
29
+ "LE": "Lake Effect Snow",
30
+ "LO": "Low Water",
31
+ "LS": "Lakeshore Flood",
32
+ "LW": "Lake Wind",
33
+ "MA": "Special Marine",
34
+ "EQ": "Earthquake",
35
+ "MF": "Dense Fog",
36
+ "MH": "Ashfall",
37
+ "MS": "Dense Smoke",
38
+ "RB": "Small Craft for Rough Bar",
39
+ "RP": "Rip Current Risk",
40
+ "SC": "Small Craft",
41
+ "SE": "Hazardous Seas",
42
+ "SI": "Small Craft for Winds",
43
+ "SM": "Dense Smoke",
44
+ "SQ": "Snow Squall",
45
+ "SR": "Storm",
46
+ "SS": "Storm Surge",
47
+ "SU": "High Surf",
48
+ "SV": "Severe Thunderstorm",
49
+ "SW": "Small Craft for Hazardous Seas",
50
+ "TO": "Tornado",
51
+ "TR": "Tropical Storm",
52
+ "TS": "Tsunami",
53
+ "TY": "Typhoon",
54
+ "SP": "Special Weather",
55
+ "UP": "Heavy Freezing Spray",
56
+ "WC": "Wind Chill",
57
+ "WI": "Wind",
58
+ "WS": "Winter Storm",
59
+ "WW": "Winter Weather",
60
+ "ZF": "Freezing Fog",
61
+ "ZR": "Freezing Rain",
62
+ "ZY": "Freezing Spray"
63
+ };
64
+
65
+ export const ACTIONS: Record<string, string> = {
66
+ "W": "Warning",
67
+ "F": "Forecast",
68
+ "A": "Watch",
69
+ "O": "Outlook",
70
+ "Y": "Advisory",
71
+ "N": "Synopsis",
72
+ "S": "Statement"
73
+ }
74
+
75
+
76
+ export const STATUS: Record<string, string> = {
77
+ "NEW": "Issued",
78
+ "CON": "Updated",
79
+ "EXT": "Extended",
80
+ "EXA": "Extended",
81
+ "EXB": "Extended",
82
+ "UPG": "Upgraded",
83
+ "COR": "Correction",
84
+ "ROU": "Routine",
85
+ "CAN": "Cancelled",
86
+ "EXP": "Expired"
87
+ }
88
+
89
+ export const TYPES: Record<string, string> = {
90
+ "O": "Operational Product",
91
+ "T": "Test Product",
92
+ "E": "Experimental Product",
93
+ "X": "Experimental Product (Non-Operational)",
94
+ }
95
+
96
+ export const STATUS_CORRELATIONS: {type: string, forward: string, cancel: boolean, update: boolean, new: boolean}[] = [
97
+ {type: "Update", forward: "Updated", cancel: false, update: true, new: false},
98
+ {type: "Cancel", forward: "Cancelled", cancel: true, update: false, new: false},
99
+ {type: "Alert", forward: "Issued", cancel: false, update: false, new: true},
100
+ {type: "Updated", forward: "Updated", cancel: false, update: true, new: false},
101
+ {type: "Expired", forward: "Expired", cancel: true, update: false, new: false},
102
+ {type: "Issued", forward: "Issued", cancel: false, update: false, new: true},
103
+ {type: "Extended", forward: "Updated", cancel: false, update: true, new: false},
104
+ {type: "Correction", forward: "Updated", cancel: false, update: true, new: false},
105
+ {type: "Upgraded", forward: "Upgraded", cancel: false, update: true, new: false},
106
+ {type: "Cancelled", forward: "Cancelled", cancel: true, update: false, new: false},
107
+ {type: "Routine", forward: "Routine", cancel: false, update: true, new: false},
108
+ ]
109
+
110
+ export const CAUSES : Record<string, string> = {
111
+ "SM": "Snow Melt",
112
+ "RS": "Rain/Snow Melt",
113
+ "ER": "Excessive Rain",
114
+ "DM": "Dam/Levee Failure",
115
+ "IJ": "Ice Jam",
116
+ "GO": "Glacier Lake Outburst",
117
+ "IC": "Ice",
118
+ "FS": "Flash Flood / Storm Surge",
119
+ "FT": "Tidal Effects",
120
+ "ET": "Elevated Upstream Flow",
121
+ "MC": "Other Multiple Causes",
122
+ "WT": "Wind and/or Tidal Effects",
123
+ "DR": "Reservoir Release",
124
+ "UU": "Unknown",
125
+ "OT": "Other Effects"
126
+ }
127
+
128
+ export const RECORDS: Record<string, string> = {
129
+ "NO": "No Record Expected",
130
+ "NR": "Near Record or possible record",
131
+ "UU": "Unknown history of records",
132
+ "OO": "Other",
133
+ }
134
+
135
+ export const SEVERITY: Record<string, string> = {
136
+ N: "Not Expected",
137
+ 0: "Areal Flood or FF Product",
138
+ 1: "Minor",
139
+ 2: "Moderate",
140
+ 3: "Major",
141
+ U: "Unknown",
142
+ }