@atmosx/event-product-parser 2.0.1

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