@atmosx/event-product-parser 3.0.4 → 3.0.7

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 (212) hide show
  1. package/{CONTRIBUTING.md → .github/CONTRIBUTING.md} +1 -1
  2. package/.github/SUPPORTED_EVENTS.md +370 -0
  3. package/.github/docs/docs-functions.md +30 -0
  4. package/.github/docs/docs-general-configurations.md +199 -0
  5. package/.github/docs/docs-integrations.md +38 -0
  6. package/.github/docs/docs-listeners.md +28 -0
  7. package/.github/docs/docs-source-configuration.md +218 -0
  8. package/.github/docs/docs-technical.md +50 -0
  9. package/.github/logo.png +0 -0
  10. package/.github/samples/SAMPLE_EAS_GENERATION.wav +0 -0
  11. package/.github/samples/SAMPLE_GEOJSON.json +204 -0
  12. package/.github/samples/SAMPLE_TEXT_PRODUCT.txt +119 -0
  13. package/README.md +157 -337
  14. package/dist/cjs/index.cjs +24125 -15815
  15. package/dist/esm/index.mjs +24144 -15839
  16. package/package.json +56 -53
  17. package/pnpm-workspace.yaml +4 -0
  18. package/src/bootstrap.ts +83 -43
  19. package/src/building/CreateEvent.ts +54 -0
  20. package/src/{@building/building.clean.ts → building/GetCleanedEvent.ts} +4 -4
  21. package/src/building/GetEventAttachments.ts +88 -0
  22. package/src/building/GetEventDirection.ts +28 -0
  23. package/src/{@building/building.enhance.ts → building/GetEventEnhancedName.ts} +13 -17
  24. package/src/{@building/building.geometry.ts → building/GetEventGeometry.ts} +19 -13
  25. package/src/{@building/building.headers.ts → building/GetEventHeader.ts} +13 -13
  26. package/src/{@building/building.polygon.ts → building/GetEventNodes.ts} +26 -22
  27. package/src/{@building/building.office.ts → building/GetEventOffice.ts} +14 -14
  28. package/src/building/GetEventProperties.ts +105 -0
  29. package/src/{@building/building.signature.ts → building/GetEventSignature.ts} +16 -17
  30. package/src/{@core/core.createListener.ts → building/GetEventTags.ts} +11 -6
  31. package/src/building/GetEventTheme.ts +26 -0
  32. package/src/building/GetEventTracking.ts +64 -0
  33. package/src/components/audio/GenerateAudioMessage.ts +149 -0
  34. package/src/components/audio/components/GetCleanDescription.ts +91 -0
  35. package/src/{@modules/@eas/eas.getFloatPCM16.ts → components/audio/components/GetFloatPCM16.ts} +3 -3
  36. package/src/{@modules/@eas/eas.getMergedPCM16.ts → components/audio/components/GetMergedPCM16.ts} +3 -3
  37. package/src/{@modules/@eas/eas.getPCM16.ts → components/audio/components/GetPCM16.ts} +13 -8
  38. package/src/{@modules/@eas/eas.getPCMToFloat.ts → components/audio/components/GetPCMToFloat.ts} +3 -3
  39. package/src/{@modules/@eas/eas.getSampledPCM16.ts → components/audio/components/GetSampledPCM16.ts} +14 -8
  40. package/src/components/audio/components/GetTTS.ts +61 -0
  41. package/src/{@modules/@eas/eas.getWavPCM16.ts → components/audio/components/GetWavPCM16.ts} +8 -8
  42. package/src/{@modules/@eas/eas.setAFSK.ts → components/audio/components/SetAFSK.ts} +12 -8
  43. package/src/{@modules/@eas/eas.setAsciiToBits.ts → components/audio/components/SetAsciiToBits.ts} +3 -4
  44. package/src/{@modules/@eas/eas.setAttentionTone.ts → components/audio/components/SetAttentionTone.ts} +11 -6
  45. package/src/{@modules/@eas/eas.setNoise.ts → components/audio/components/SetNoise.ts} +14 -8
  46. package/src/{@modules/@eas/eas.setRadioEffect.ts → components/audio/components/SetRadioEffect.ts} +14 -8
  47. package/src/{@modules/@eas/eas.setSameHeader.ts → components/audio/components/SetSameHeader.ts} +22 -15
  48. package/src/{@modules/@utilities/utilities.setWarning.ts → components/database/CreateQuery.ts} +18 -13
  49. package/src/{@modules/@database/database.cache.ts → components/database/GetCachedEvents.ts} +19 -14
  50. package/src/components/database/ImportBoundaries.ts +168 -0
  51. package/src/components/database/ImportBroadcastify.ts +60 -0
  52. package/src/components/database/ImportCities.ts +87 -0
  53. package/src/{@modules/@database/database.shapefiles.ts → components/database/ImportShapefiles.ts} +31 -37
  54. package/src/components/database/ImportStanza.ts +43 -0
  55. package/src/components/database/InitializeDatabase.ts +71 -0
  56. package/src/components/images/GenerateGraphic.ts +234 -0
  57. package/src/components/images/components/CreateRectangle.ts +22 -0
  58. package/src/components/images/components/CreateText.ts +22 -0
  59. package/src/components/images/modules/CreateSVG.ts +37 -0
  60. package/src/components/images/modules/GetGeographicalBoundaries.ts +72 -0
  61. package/src/components/images/modules/GetGeographicalCities.ts +58 -0
  62. package/src/components/images/modules/GetGeographicalEvents.ts +48 -0
  63. package/src/components/images/modules/GetGeometryBounds.ts +82 -0
  64. package/src/components/images/modules/GetParsedBoundary.ts +58 -0
  65. package/src/components/images/modules/GetSVGPath.ts +53 -0
  66. package/src/components/images/modules/NormalizePolygon.ts +57 -0
  67. package/src/{@modules/@stanza/stanza.getAwipsType.ts → components/stanza/GetAwipsType.ts} +19 -18
  68. package/src/components/stanza/ValidateStanza.ts +62 -0
  69. package/src/components/utilities/CreateHttp.ts +83 -0
  70. package/src/{@modules/@utilities/utilities.getFormattedTime.ts → components/utilities/GetFormattedTime.ts} +3 -3
  71. package/src/components/utilities/GetLatestIssuance.ts +32 -0
  72. package/src/components/utilities/GetMatched.ts +38 -0
  73. package/src/{@modules/@utilities/utilities.getShapeNearestPoint.ts → components/utilities/GetShapeNearestPoint.ts} +24 -19
  74. package/src/components/utilities/GetUnionPolygon.ts +36 -0
  75. package/src/components/utilities/QueueManager.ts +70 -0
  76. package/src/components/utilities/SetCronSchedule.ts +98 -0
  77. package/src/{@core/core.clearEvents.ts → components/utilities/SetDebug.ts} +17 -12
  78. package/src/components/utilities/SetEventEmit.ts +42 -0
  79. package/src/{@modules/@utilities/utilities.setSettings.ts → components/utilities/SetSettings.ts} +7 -7
  80. package/src/{@modules/@utilities/utilities.setSleep.ts → components/utilities/SetSleep.ts} +5 -5
  81. package/src/components/utilities/SetTimeoutAction.ts +64 -0
  82. package/src/components/utilities/SetWarning.ts +47 -0
  83. package/src/{@modules/@xmpp/xmpp.xDeploy.ts → components/xmpp/DeployXMPP.ts} +26 -27
  84. package/src/components/xmpp/ErrorXMPP.ts +27 -0
  85. package/src/{@modules/@xmpp/xmpp.xError.ts → components/xmpp/OfflineXMPP.ts} +17 -9
  86. package/src/{@modules/@xmpp/xmpp.xOnline.ts → components/xmpp/OnlineXMPP.ts} +21 -20
  87. package/src/components/xmpp/ReconnectXMPP.ts +64 -0
  88. package/src/components/xmpp/StanzaXMPP.ts +63 -0
  89. package/src/{@building/building.tags.ts → core/ClearEvents.ts} +12 -5
  90. package/src/{@core/core.getVersion.ts → core/GetEvents.ts} +5 -6
  91. package/src/core/GetNodes.ts +24 -0
  92. package/src/{@core/core.getNodes.ts → core/GetRandomEvent.ts} +5 -6
  93. package/src/core/GetVersion.ts +24 -0
  94. package/src/core/ManualEvent.ts +55 -0
  95. package/src/core/QueryStanza.ts +40 -0
  96. package/src/core/SetNode.ts +87 -0
  97. package/src/core/StartService.ts +62 -0
  98. package/src/core/StopService.ts +32 -0
  99. package/src/enums/AWIPS.ts +366 -0
  100. package/src/{@dictionaries/dictionaries.eventActions.ts → enums/Actions.ts} +3 -3
  101. package/src/{@dictionaries/dictionaries.eventCancelMessages.ts → enums/Cancellation.ts} +4 -3
  102. package/src/{@dictionaries/dictionaries.eventCauses.ts → enums/Causes.ts} +3 -3
  103. package/src/{@dictionaries/dictionaries.statusCorrelationText.ts → enums/Correlations.ts} +3 -3
  104. package/src/enums/Enhanced.ts +70 -0
  105. package/src/{@dictionaries/dictionaries.eventTypes.ts → enums/Events.ts} +3 -3
  106. package/src/{@dictionaries/dictionaries.regExp.ts → enums/Expressions.ts} +5 -4
  107. package/src/{@core/core.getEvents.ts → enums/GlobalFilter.ts} +7 -8
  108. package/src/{@dictionaries/dictionaries.hailStrings.ts → enums/Hail.ts} +9 -4
  109. package/src/{@dictionaries/dictionaries.officeICAOs.ts → enums/ICAO.ts} +5 -3
  110. package/src/enums/Matches.ts +60 -0
  111. package/src/{@dictionaries/dictionaries.eventProducts.ts → enums/Products.ts} +3 -3
  112. package/src/{@dictionaries/dictionaries.eventRecords.ts → enums/Records.ts} +3 -3
  113. package/src/{@dictionaries/dictionaries.eventSeverity.ts → enums/Severity.ts} +3 -3
  114. package/src/{@dictionaries/dictionaries.shapefileLinks.ts → enums/Shapefiles.ts} +3 -3
  115. package/src/enums/States.ts +136 -0
  116. package/src/{@dictionaries/dictionaries.eventStatus.ts → enums/Status.ts} +3 -3
  117. package/src/enums/Strings.ts +22 -0
  118. package/src/enums/Tags.ts +172 -0
  119. package/src/{@dictionaries/dictionaries.testSignatures.ts → enums/Testing.ts} +5 -4
  120. package/src/enums/Themes.ts +70 -0
  121. package/src/events/ParseAPI.ts +129 -0
  122. package/src/{@events/events.text.ts → events/ParseText.ts} +32 -23
  123. package/src/{@events/events.ugc.ts → events/ParseUGC.ts} +36 -26
  124. package/src/events/ParseVTEC.ts +88 -0
  125. package/src/index.ts +60 -38
  126. package/src/manager/MakeEvents.ts +110 -0
  127. package/src/manager/RemoveEvent.ts +74 -0
  128. package/src/{@manager/manager.setHash.ts → manager/SetHash.ts} +19 -15
  129. package/src/manager/UpdateEvents.ts +35 -0
  130. package/src/manager/UpdateNode.ts +62 -0
  131. package/src/manager/ValidateEvents.ts +144 -0
  132. package/src/{@parsers/@hvtec/hvtec.extract.ts → parsers/hvtec/HVExtract.ts} +13 -13
  133. package/src/parsers/text/GetDescriptionFromProduct.ts +59 -0
  134. package/src/parsers/text/GetEmbededText.ts +57 -0
  135. package/src/parsers/text/GetPolygonFromProduct.ts +71 -0
  136. package/src/parsers/text/GetStringText.ts +58 -0
  137. package/src/{@parsers/@text/text.getTextFromProduct.ts → parsers/text/GetTextFromProduct.ts} +12 -12
  138. package/src/parsers/ugc/GetCache.ts +24 -0
  139. package/src/{@parsers/@ugc/ugc.expiry.ts → parsers/ugc/GetExpiry.ts} +3 -3
  140. package/src/{@parsers/@ugc/ugc.header.ts → parsers/ugc/GetHeader.ts} +6 -6
  141. package/src/parsers/ugc/GetLocations.ts +57 -0
  142. package/src/parsers/ugc/GetZonePolygon.ts +73 -0
  143. package/src/{@parsers/@ugc/ugc.zones.ts → parsers/ugc/GetZones.ts} +3 -3
  144. package/src/{@modules/@utilities/utilities.setListener.ts → parsers/ugc/SetCache.ts} +13 -10
  145. package/src/{@parsers/@ugc/ugc.extract.ts → parsers/ugc/UGCExtract.ts} +15 -15
  146. package/src/{@parsers/@pvtec/pvtec.expires.ts → parsers/vtec/GetExpiry.ts} +3 -3
  147. package/src/parsers/vtec/VTECExtract.ts +49 -0
  148. package/src/{@types/types.attributes.ts → static/Attributes.ts} +2 -3
  149. package/src/{@types/type.event.ts → static/Event.ts} +11 -8
  150. package/src/{@types/type.properties.ts → static/Properties.ts} +17 -10
  151. package/src/{@types/types.stanza.ts → static/Stanza.ts} +2 -2
  152. package/src/tasks/CreateTasks.ts +123 -0
  153. package/src/{@core/core.stop.ts → tasks/TaskGenerateJSON.ts} +14 -12
  154. package/src/tasks/TaskGenerateText.ts +34 -0
  155. package/src/tasks/TaskSendNTFY.ts +97 -0
  156. package/src/tasks/TaskSendWebhook.ts +107 -0
  157. package/src/types/Actions.ts +37 -0
  158. package/src/{@types/types.hvtec.ts → types/HVTEC.ts} +6 -6
  159. package/src/{@types/types.hash.ts → types/Hash.ts} +5 -5
  160. package/src/types/Nodes.ts +29 -0
  161. package/src/{@types/types.settings.ts → types/Settings.ts} +42 -10
  162. package/src/{@types/types.compiled.ts → types/StanzaCompiled.ts} +15 -14
  163. package/src/{@types/types.ugc.ts → types/UGC.ts} +5 -5
  164. package/src/{@modules/@utilities/utilities.getSettings.ts → types/VTEC.ts} +12 -7
  165. package/tools/build.js +47 -0
  166. package/tsconfig.json +28 -1
  167. package/dist/index.d.mts +0 -239
  168. package/dist/index.d.ts +0 -239
  169. package/src/@building/building.create.ts +0 -42
  170. package/src/@building/building.properties.ts +0 -89
  171. package/src/@building/building.tracking.ts +0 -68
  172. package/src/@building/building.validate.ts +0 -147
  173. package/src/@core/core.getRandomEvent.ts +0 -25
  174. package/src/@core/core.setNode.ts +0 -81
  175. package/src/@core/core.start.ts +0 -61
  176. package/src/@dictionaries/dictionaries.betterEventNames.ts +0 -99
  177. package/src/@dictionaries/dictionaries.eventAwipAbreviations.ts +0 -364
  178. package/src/@dictionaries/dictionaries.eventTags.ts +0 -93
  179. package/src/@dictionaries/dictionaries.eventsMatchText.ts +0 -36
  180. package/src/@dictionaries/dictionaries.transcribedMessageReplacements.ts +0 -68
  181. package/src/@events/events.api.ts +0 -113
  182. package/src/@events/events.vtec.ts +0 -87
  183. package/src/@manager/manager.mkEvent.ts +0 -96
  184. package/src/@manager/manager.rmEvent.ts +0 -49
  185. package/src/@manager/manager.updateEvents.ts +0 -35
  186. package/src/@manager/manager.updateNodes.ts +0 -55
  187. package/src/@manager/manager.updateWebhooks.ts +0 -50
  188. package/src/@modules/@database/database.init.ts +0 -45
  189. package/src/@modules/@database/database.stanza.ts +0 -48
  190. package/src/@modules/@eas/eas.setEasTone.ts +0 -137
  191. package/src/@modules/@stanza/stanza.validate.ts +0 -50
  192. package/src/@modules/@utilities/utilities.createHttp.ts +0 -85
  193. package/src/@modules/@utilities/utilities.createWebhook.ts +0 -115
  194. package/src/@modules/@utilities/utilities.setCronSchedule.ts +0 -65
  195. package/src/@modules/@utilities/utilities.setEventEmit.ts +0 -41
  196. package/src/@modules/@utilities/utilities.setTimeoutAction.ts +0 -59
  197. package/src/@modules/@xmpp/xmpp.xOffline.ts +0 -38
  198. package/src/@modules/@xmpp/xmpp.xReconnect.ts +0 -64
  199. package/src/@modules/@xmpp/xmpp.xStanza.ts +0 -63
  200. package/src/@parsers/@pvtec/pvtec.extract.ts +0 -49
  201. package/src/@parsers/@text/text.getDescriptionFromProduct.ts +0 -53
  202. package/src/@parsers/@text/text.getPolygonFromProduct.ts +0 -32
  203. package/src/@parsers/@text/text.getXML.ts +0 -61
  204. package/src/@parsers/@ugc/ugc.coordinates.ts +0 -110
  205. package/src/@parsers/@ugc/ugc.locations.ts +0 -29
  206. package/src/@types/types.pvtec.ts +0 -30
  207. package/src/@types/types.webhook.ts +0 -27
  208. package/test.js +0 -91
  209. package/tsup.config.ts +0 -16
  210. /package/{CODE_OF_CONDUCT.md → .github/CODE_OF_CONDUCT.md} +0 -0
  211. /package/{LICENSE → .github/LICENSE} +0 -0
  212. /package/{SECURITY.md → .github/SECURITY.md} +0 -0
@@ -1,6 +1,6 @@
1
1
  # Contributing
2
2
 
3
- This project is community driven and primarily maintained by `k3yomi` and `StarflightWx`
3
+ This project is community driven and primarily maintained by `k3yomi`.
4
4
 
5
5
  ## How to Contribute
6
6
 
@@ -0,0 +1,370 @@
1
+ # @atmosx/event-product-parser Supported Events
2
+
3
+
4
+ # Event Dictionary
5
+ - Ashfall |
6
+ - Air Stagnation |
7
+ - Beach Hazard |
8
+ - Brisk Wind |
9
+ - Blizzard |
10
+ - Coastal Flood |
11
+ - Debris Flow |
12
+ - Dust Storm |
13
+ - Extreme Cold |
14
+ - Excessive Heat |
15
+ - Extreme Heat |
16
+ - Extreme Wind |
17
+ - Areal Flood |
18
+ - Flash Flood |
19
+ - Dense Fog |
20
+ - Flood |
21
+ - Frost |
22
+ - Fire Weather |
23
+ - Freeze |
24
+ - Gale |
25
+ - Hurricane Force Wind |
26
+ - Heat |
27
+ - Hurricane |
28
+ - High Wind |
29
+ - Hydrologic |
30
+ - Hard Freeze |
31
+ - Ice Storm |
32
+ - Lake Effect Snow |
33
+ - Low Water |
34
+ - Lakeshore Flood |
35
+ - Lake Wind |
36
+ - Special Marine |
37
+ - Earthquake |
38
+ - Dense Fog |
39
+ - Ashfall |
40
+ - Dense Smoke |
41
+ - Small Craft for Rough Bar |
42
+ - Rip Current Risk |
43
+ - Small Craft |
44
+ - Hazardous Seas |
45
+ - Small Craft for Winds |
46
+ - Dense Smoke |
47
+ - Snow Squall |
48
+ - Storm |
49
+ - Storm Surge |
50
+ - High Surf |
51
+ - Severe Thunderstorm |
52
+ - Small Craft for Hazardous Seas |
53
+ - Tornado ||
54
+ - Tropical Storm |
55
+ - Tsunami |
56
+ - Typhoon |
57
+ - Special Weather |
58
+ - Heavy Freezing Spray |
59
+ - Wind Chill |
60
+ - Wind |
61
+ - Winter Storm |
62
+ - Winter Weather |
63
+ - Freezing Fog |
64
+ - Freezing Rain |
65
+ - Freezing Spray |
66
+ - Rawinsonde Data Above 100 Millibars |
67
+ - Alarm Alert Administrative Message |
68
+ - Alert Administrative Message |
69
+ - NWS Administrative Message |
70
+ - Space Environment Advisory |
71
+ - Area Forecast Discussion |
72
+ - Area Forecast Matrices |
73
+ - Area Forecast Product |
74
+ - Fire Weather Matrix |
75
+ - Agricultural Forecast |
76
+ - Agricultural Observations |
77
+ - Space Environment Alert |
78
+ - Air Quality Alert |
79
+ - Air Quality Index Statement |
80
+ - Air Stagnation Advisory |
81
+ - Avalanche Watch |
82
+ - Avalanche Weather Guidance |
83
+ - Avalanche Warning |
84
+ - Area Weather Outlook |
85
+ - Area Weather Summary |
86
+ - Area Weather Update |
87
+ - Airport Weather Warning |
88
+ - Blue Alert |
89
+ - Buoy Report |
90
+ - Coast Guard Observations |
91
+ - Hourly Roundup for Weather Radio |
92
+ - Child Abduction Emergency |
93
+ - Coded City Forecast |
94
+ - Civil Danger Warning |
95
+ - Civil Emergency Message |
96
+ - Monthly Daily Climate Data |
97
+ - Convective Forecast Product |
98
+ - Coastal Flood Warnings Watches Statements |
99
+ - Coast Guard Surface Report |
100
+ - Computer Hurricane Guidance |
101
+ - Climatological Report Annual |
102
+ - Climatological Report Daily |
103
+ - Climatological Report Monthly |
104
+ - Climatological Report Quarterly |
105
+ - Climatological Report Seasonal |
106
+ - Climate Report |
107
+ - Coded Climatological Monthly Means |
108
+ - Coded Analysis and Forecasts
109
+ - Great Lakes Port Forecast
110
+ - Space Environment Products Routine
111
+ - Center Weather Advisory
112
+ - Coastal Waters Forecast
113
+ - Center Weather Statement
114
+ - Space Environment Product Daily
115
+ - Daily Dispersion Outlook
116
+ - Drought Information Statement
117
+ - Practice Demo Warning
118
+ - Unnumbered Depression Advisory
119
+ - ASOS Daily Summary
120
+ - Dust Storm Warning
121
+ - Extended Forecast 3 to 5 Day
122
+ - Six to Ten Day Weather Outlook Local
123
+ - Tsunami Bulletin
124
+ - Earthquake Report
125
+ - Earthquake Warning
126
+ - Flood Potential Outlook
127
+ - Extended Streamflow Guidance
128
+ - Extended Streamflow Prediction
129
+ - Water Supply Outlook
130
+ - Evacuation Immediate
131
+ - Extreme Wind Warning
132
+ - Aviation Area Forecasts (Regions)
133
+ - Winds Aloft Forecasts
134
+ - Fire Danger Indices
135
+ - Flash Flood Watch
136
+ - Flash Flood Guidance
137
+ - Headwater Guidance
138
+ - Flash Flood Statement
139
+ - Flash Flood Warning
140
+ - National Flood Summary
141
+ - Flood Statement
142
+ - Flood Warning
143
+ - Upper Wind Fallout Forecast
144
+ - Fire Warning
145
+ - Marine Fisheries Service Message
146
+ - Radar Outage Notification
147
+ - Temp POP Guidance
148
+ - Fire Weather Administrative Message
149
+ - Fire Weather Outlook Discussion
150
+ - Fire Weather Forecast
151
+ - Land Management Forecast
152
+ - Miscellaneous Fire Weather Product
153
+ - Fire Weather Notification
154
+ - Fire Weather Observation
155
+ - Fire Weather Spot Forecast
156
+ - Freezing Level Data
157
+ - Great Lakes Forecast
158
+ - Great Lakes Storm Summary
159
+ - Green
160
+ - RFC QPF Data Products
161
+ - Hurricane Local Statement
162
+ - Hydrometeorological Discussion
163
+ - AHPS XML Product
164
+ - Hazardous Materials Warning
165
+ - RFC QPF Verification Products
166
+ - Weather Roundup
167
+ - High Seas Forecast
168
+ - Hazardous Weather Outlook
169
+ - Hourly Weather Roundup
170
+ - Daily Hydrometeorological Products
171
+ - Monthly Hydrometeorological Product
172
+ - Ice Forecast
173
+ - Ice Drift Vectors
174
+ - Administrative Message
175
+ - Ice Observation
176
+ - Keep Alive Message
177
+ - Local Area Emergency
178
+ - Preliminary Local Climatological Data
179
+ - Local Cooperative Observation
180
+ - Law Enforcement Warning
181
+ - Local Forecast
182
+ - Lake Stages
183
+ - Low Level Sounding
184
+ - Low Temperatures
185
+ - Local Storm Report
186
+ - Lightning Data
187
+ - Rawinsonde Mandatory Levels
188
+ - Mean Areal Precipitation
189
+ - Amended Marine Forecast
190
+ - Marine Forecast Matrix
191
+ - Marine Interpretation Message
192
+ - Miscellaneous Local Product
193
+ - Marine Observations
194
+ - Space Environment Product Monthly
195
+ - Marine Product Techniques Development
196
+ - ASOS Monthly Summary Message
197
+ - METAR Observation
198
+ - METAR Test Message
199
+ - Marine Verification Coded Message
200
+ - Marine Weather Statement
201
+ - Marine Weather Message
202
+ - Weather Reconnaissance Flights
203
+ - Short Term Forecast
204
+ - Data Management Message
205
+ - Non Precipitation Warning
206
+ - Nearshore Marine Forecast
207
+ - Nuclear Power Plant Warning
208
+ - NOAA Weather Radio Forecast
209
+ - Other Aviation Products
210
+ - Observations
211
+ - Offshore Aviation Forecast
212
+ - Offshore Forecast
213
+ - Other Marine Products
214
+ - Other Public Products
215
+ - Other Surface Observations
216
+ - Ocean Surface Winds
217
+ - Zone Forecast
218
+ - Point Forecast Matrices
219
+ - Fire Weather Point Forecast Matrices
220
+ - Plain Language Ship Report
221
+ - Prognostic Meteorological Discussion
222
+ - Public Information Statement
223
+ - Probability of Exceedance
224
+ - Heat Index Forecast Tables
225
+ - Pilot Report Collective
226
+ - Preliminary Forecasts
227
+ - Post Storm Hurricane Report
228
+ - Probabilistic Outlook Points
229
+ - Public Severe Weather Outlook
230
+ - Tropical Cyclone Probabilities
231
+ - Quantitative Precipitation Forecast
232
+ - Quantitative Precipitation Statement
233
+ - Revised Digital Forecast
234
+ - Recreational Report
235
+ - Record Report
236
+ - EAS Activation Request
237
+ - Rangeland Fire Danger Forecast
238
+ - RFI Observation
239
+ - Route Forecast
240
+ - Red Flag Warning
241
+ - Radiological Hazard Warning
242
+ - Required Monthly Test
243
+ - Rain Information Statement
244
+ - River Summary
245
+ - River Forecast
246
+ - River Ice Statement
247
+ - Miscellaneous River Product
248
+ - River Recreation Statement
249
+ - River Statement
250
+ - Regional Weather Roundup
251
+ - Regional Weather Summary
252
+ - Required Weekly Test
253
+ - Special Avalanche Bulletin
254
+ - Agricultural Weather Forecast
255
+ - Snow Avalanche Guidance
256
+ - APT Prediction
257
+ - Preliminary Notice of Watch
258
+ - Storm Summary
259
+ - Supplementary Climatological Data
260
+ - Soil Climate Analysis Network
261
+ - Satellite Cloud Product
262
+ - Selected Cities Summary
263
+ - Supplementary Data Observation
264
+ - Special Dispersion Statement
265
+ - Severe Local Storm Watch
266
+ - SPC Watch Point Information
267
+ - State Forecast
268
+ - Tabular State Forecast
269
+ - Rawinsonde Significant Levels
270
+ - Surface Ship Report
271
+ - International SIGMET
272
+ - Satellite Interpretation Message
273
+ - Severe Local Storm Outline
274
+ - Smoke Management Weather Forecast
275
+ - Special Marine Warning
276
+ - Science Operations Officer Product
277
+ - Satellite Precipitation Estimates
278
+ - Storm Strike Probability Bulletin
279
+ - Special Weather Statement
280
+ - Convective Special Weather Statement
281
+ - Shelter In Place Warning
282
+ - Snow Squall Warning
283
+ - Surf Discussion
284
+ - Surf Forecast
285
+ - Soaring Guidance
286
+ - Synoptic Surface Observation
287
+ - Weather Statistical Summary
288
+ - Satellite Tropical Disturbance Summary
289
+ - Road Condition Report
290
+ - State Temp Precip Table
291
+ - Spot Forecast Request
292
+ - Space Weather Message
293
+ - Severe Thunderstorm Warning
294
+ - Severe Weather Statement
295
+ - Mesoscale Discussion
296
+ - Storm Prediction Center Day 1 Outlook
297
+ - Storm Prediction Center Day 2 Outlook
298
+ - Storm Prediction Center Day 3 Outlook
299
+ - State Weather Summary
300
+ - Regional Weather Synopsis
301
+ - Terminal Aerodrome Forecast
302
+ - Terminal Alerting Products
303
+ - Travelers Forecast Table
304
+ - Tropical Cyclone Advisory
305
+ - Tropical Cyclone Discussion
306
+ - Tropical Cyclone Position Estimate
307
+ - Tropical Cyclone Marine Aviation Advisory
308
+ - Public Tropical Cyclone Advisory
309
+ - Satellite Tropical Cyclone Summary
310
+ - Tropical Cyclone Update
311
+ - Tropical Cyclone Break Points
312
+ - Tsunami Bulletin
313
+ - Tide Report
314
+ - Tsunami Tide Seismic Acknowledgement
315
+ - Telephone Outage Emergency
316
+ - Tornado Warning
317
+ - Temperature Precipitation Table
318
+ - Tsunami Warning/Watches/Advisories
319
+ - Ultraviolet Index
320
+ - Travelers Forecast
321
+ - Transcribed Weather Broadcast
322
+ - Tropical Weather Discussion
323
+ - Tropical Weather Outlook
324
+ - Tropical Weather Summary
325
+ - Aircraft Reconnaissance
326
+ - Ultraviolet Index
327
+ - Volcanic Activity Advisory
328
+ - Forecast Verification Statistics
329
+ - TAF Verification Product
330
+ - Volcano Warning
331
+ - AIRMETs (Regions)
332
+ - Space Environment Warning
333
+ - Space Environment Watch
334
+ - Weather Watch Clearance Notification
335
+ - Weekly Weather and Crop Report
336
+ - Weekly Data for Agriculture
337
+ - Warning Decision Update
338
+ - Space Environment Product Weekly
339
+ - Watch Outline Update
340
+ - SIGMETs (Regions)
341
+ - Tropical Cyclone SIGMET
342
+ - Volcanic Activity SIGMET
343
+ - Winter Weather Warning
344
+ - Watch Status Report
345
+ - Watch Probabilities
346
+ - Zone Forecast Product
347
+
348
+
349
+ # Additional Events (Enhanced)
350
+ - Radar Indicated Tornado Warning |
351
+ - Confirmed Tornado Warning |
352
+ - Radar Confirmed Tornado Warning |
353
+ - PDS Tornado Warning |
354
+ - Tornado Emergency |
355
+ - PDS Blizzard Warning |
356
+ - PDS Ice Storm Warning |
357
+ - PDS Fire Weather Warning |
358
+ - PDS Fire Weather Warning |
359
+ - Special Marine Warning (TPROB) |
360
+ - PDS Tornado Watch |
361
+ - PDS Severe Thunderstorm Watch |
362
+ - Flash Flood Emergency |
363
+ - Considerable Flash Flood Warning |
364
+ - EDS Severe Thunderstorm Warning (TPROB) |
365
+ - EDS Severe Thunderstorm Warning |
366
+ - Destructive Severe Thunderstorm Warning (TPROB) |
367
+ - Destructive Severe Thunderstorm Warning |
368
+ - Considerable Severe Thunderstorm Warning (TPROB)|
369
+ - Considerable Severe Thunderstorm Warning |
370
+ - Severe Thunderstorm Warning (TPROB) |
@@ -0,0 +1,30 @@
1
+ <div align="center">
2
+ <a href="https://atmosphericx.scriptkitty.cafe">
3
+ <img src="https://scriptkitty.cafe/ftp/@atmosphericx/assets/logo-event-product-parser.png" alt="@atmosx/event-product-parser" width="800"/>
4
+ </a>
5
+ <br>
6
+ <p>A TypeScript/JavaScript library for parsing and ingesting NOAA and NWS Weather Text Products</p>
7
+ <small>A project built and maintained with ❤️ by the AtmosphericX team</small>
8
+ <p align="center">
9
+ <a href="https://atmosphericx.scriptkitty.cafe"><b>Documentation</b></a> |
10
+ <a href="https://github.com/AtmosphericX"><b>Repositories</b></a> |
11
+ <a href="https://www.npmjs.com/search?q=%40atmosx"><b>NPM Packages</b></a> |
12
+ <a href="https://atmosphericx-discord.scriptkitty.cafe"><b>Community Discord</b></a>
13
+ </p>
14
+ </div>
15
+ <br><br>
16
+
17
+ # 7.0 - Functions
18
+ # 7.1 - Dynamic Configurations Setter
19
+ # 7.2 - Event Geometry Getter
20
+ # 7.3 - Random Event Getter
21
+ # 7.4 - Package Information Getter
22
+ # 7.5 - Cleaned Event Getter
23
+ # 7.6 - Management Functions
24
+ # 7.7 - Creating & Configuring Tracking Nodes
25
+ # 7.8 - Event Cache Getter
26
+ # 7.9 - Tracking Node Cache Getter
27
+ # 7.10 - Creating Manual WMO Events
28
+ # 7.11 - Database Queries
29
+ ## 7.11.1 - Stanza Query
30
+ # 7.12 - Manual Audio Generation
@@ -0,0 +1,199 @@
1
+ <div align="center">
2
+ <a href="https://atmosphericx.scriptkitty.cafe">
3
+ <img src="https://scriptkitty.cafe/ftp/@atmosphericx/assets/logo-event-product-parser.png" alt="@atmosx/event-product-parser" width="800"/>
4
+ </a>
5
+ <br>
6
+ <p>A TypeScript/JavaScript library for parsing and ingesting NOAA and NWS Weather Text Products</p>
7
+ <small>A project built and maintained with ❤️ by the AtmosphericX team</small>
8
+ <p align="center">
9
+ <a href="https://atmosphericx.scriptkitty.cafe"><b>Documentation</b></a> |
10
+ <a href="https://github.com/AtmosphericX"><b>Repositories</b></a> |
11
+ <a href="https://www.npmjs.com/search?q=%40atmosx"><b>NPM Packages</b></a> |
12
+ <a href="https://atmosphericx-discord.scriptkitty.cafe"><b>Community Discord</b></a>
13
+ </p>
14
+ </div>
15
+ <br><br>
16
+
17
+
18
+ # 4.0 - General Configurations
19
+
20
+ `@atmosx/event-product-parser` provides a wide range of configuration options, from basic event handling and management to advanced filtering capabilities and customizable event properties. This section provides a comprehensive overview of every available configuration, including event settings, filtering options, and parser behavior, along with detailed explanations and practical examples to help you configure the parser for your specific use case.
21
+
22
+ # 4.1 - Event Management & History
23
+
24
+ **EventManagement** is a core configuration that controls how parsed events are managed throughout their lifecycle. When enabled, the parser automatically stores events in an internal, memory-safe cache, allowing it to efficiently track event issuance, updates, cancellations, upgrades, and expiration. This eliminates the need to implement and maintain your own event caching solution while ensuring event state remains consistent and up to date.
25
+
26
+ Enabling **EventManagement** also unlocks the [ActionSettings](TODO) configuration, which allows you to define actions that are automatically executed after events have been parsed.
27
+
28
+ ```ts
29
+ import { Manager } from '@atmosx/event-product-parser';
30
+
31
+ const client = new Manager({
32
+ GlobalSettings: {
33
+ EventManagement: true, // Enable event management
34
+ },
35
+ });
36
+ ```
37
+
38
+ * Disabling **EventManagement** prevents the parser from tracking previously seen events. As a result, event expiration, cancellation, and update notifications will no longer be emitted. It is **strongly recommended** to leave this option enabled unless you have a specific reason to disable it.
39
+
40
+
41
+ # 4.2 - Geometry Configurations
42
+
43
+ `@atmosx/event-product-parser` provides configuration options for managing geometry properties associated with each event. These settings allow you to control how event geometries are handled during the receiving, parsing, and memory management stages of the event lifecycle.
44
+
45
+ ```ts
46
+ GlobalSettings: {
47
+ DisableGeometryParsing: false, // Disables geometry parsing
48
+ UseShapefileCoordinates: true, // Uses UGC shapefile coordinate database
49
+ ShapefileSkipPoints: 0, // Skips points while building geometry for shapefiles
50
+ },
51
+ ```
52
+
53
+ ## 4.2.1 - Disable Geometry Parsing
54
+
55
+ The **DisableGeometryParsing** configuration is used to disable event geometry parsing. It was originally introduced as a way to reduce memory usage and improve parsing performance. However, with the introduction of memory-safe event caching, this configuration is now considered redundant and provides limited benefits in most use cases.
56
+
57
+ It is recommended to keep geometry parsing enabled unless you have a specific requirement to exclude geometry data from processed events.
58
+
59
+ ```ts
60
+ GlobalSettings: {
61
+ DisableGeometryParsing: true,
62
+ },
63
+ ```
64
+
65
+ ## 4.2.2 – Force Shapefile Coordinates
66
+
67
+ The **UseShapefileCoordinates** configuration allows you to obtain geographic coordinates and location information for spatial features. Shapefiles store geometry data such as points, lines, and polygons, which can be used to identify the exact position of features on a map.
68
+
69
+ When this feature is enabled, coordinate data is retrieved from the shapefile database instead of relying on raw polygon coordinate values. Disabling this feature will use the polygon coordinates provided directly in the raw text data.
70
+
71
+ ```ts
72
+ GlobalSettings: {
73
+ UseShapefileCoordinates: true
74
+ }
75
+ ```
76
+
77
+ Example raw polygon coordinates:
78
+
79
+ ```text
80
+ LAT...LON 4587 6965 4585 6968 4588 6971 4587 6972
81
+ 4584 6970 4576 6972 4576 6976 4577 6978
82
+ 4574 6981 4566 6974 4565 6970 4558 6971
83
+ 4553 6978 4530 6970 4567 7054 4573 7038
84
+ 4580 7042 4589 7026 4596 7026 4598 6968
85
+ ```
86
+
87
+ # 4.3 – Tracking Node Settings
88
+
89
+ Tracking nodes are GPS-based longitude/latitude filters used to monitor and manage geographic locations. They allow the system to match, filter, and process data based on specified coordinate positions.
90
+
91
+ Each tracking node is defined by a longitude and latitude location, which is used to determine whether incoming geographic data falls within the configured tracking criteria. This enables location-based filtering and tracking of relevant points or areas. For more information, see [Creating & Configuring Tracking Nodes](TODO).
92
+
93
+
94
+ ```ts
95
+ GlobalSettings: {
96
+ NodeTTL: 60 // Time-To-Live (Event Updating)
97
+ NodeMaxDistance: 125 // Miles (Radius)
98
+ }
99
+ ```
100
+
101
+ ## 4.3.1 - NodeTTL
102
+
103
+ **NodeTTL** defines how frequently events are updated against your configured tracking node filters.
104
+ During each update cycle, the system evaluates:
105
+
106
+ * Whether the event is inside the tracking node area.
107
+ * The distance from the tracking node (in miles and kilometers).
108
+ * The nearest point distance from the associated polygon boundary.
109
+
110
+ ## 4.3.2 - Max Distance
111
+
112
+ **NodeMaxDistance**, defined in *miles*, specifies the maximum distance an event can be from a tracking node before it is filtered out. Events within this distance threshold will continue to be processed by the tracking node filters, while events beyond the configured distance will be ignored.
113
+
114
+ ## 4.3.3 - Tracking Node Properties
115
+ ```json
116
+ {
117
+ "type": "Feature",
118
+ "geometry": {
119
+ "type": "Polygon",
120
+ "coordinates": [[]]
121
+ },
122
+ "properties": {
123
+ "metadata": {
124
+ "nodes": [
125
+ {
126
+ "id": "Tracking Node Test",
127
+ "coordinates": [[]],
128
+ "nearest": [0, 0],
129
+ "miles": 52.1,
130
+ "kilometers": 83.8,
131
+ "proximity": false
132
+ }
133
+ ],
134
+ "filtered_proximity": false,
135
+ "updated": 000000000000
136
+ }
137
+ }
138
+ }
139
+ ```
140
+
141
+ # 4.4 - Advanced Event Filters
142
+ Filtering is a critical component of `@atmosx/event-product-parser`, allowing your service to selectively process or ignore incoming data. Advanced event filters provide control over events, ICAO identifiers, [UGC (Universal Geographic Code)](https://www.weather.gov/media/documentation/docs/NWS_Geolocation.pdf) areas, states, and geographic locations.
143
+
144
+ These settings allow you to define which data should be processed, as well as exclude unwanted events, locations, or test products.
145
+
146
+
147
+ ```ts
148
+ GlobalSettings: {
149
+ EventFiltering: {
150
+ ListeningEvents: [],
151
+ ListeningICAO: [],
152
+ ListeningUGC: [],
153
+ ListeningStates: [],
154
+ IgnoredICAO: [],
155
+ IgnoredEvents: [],
156
+ NodeLocationFiltering: false,
157
+ IgnoreTestProducts: true,
158
+ }
159
+ }
160
+ ```
161
+
162
+ ## 4.4.1 – Events & Wildcards
163
+
164
+ Events can be filtered by using either the **wildcard** syntax or by providing the complete event name.
165
+
166
+ Using wildcards allows you to match multiple related events without needing to define each event individually. For more precise filtering, the full event name can be provided to match only a specific event type.
167
+
168
+ ```ts
169
+ GlobalSettings: {
170
+ EventFiltering: {
171
+ ListeningEvents: [
172
+ `*Tornado Warning*`,
173
+ `Tornado Emergency`,
174
+ `*Thunderstorm Warning*`,
175
+ `Fire Weather Warning`
176
+ ]
177
+ }
178
+ }
179
+ ```
180
+ In the configuration above, the `*` character is used as a wildcard to match any text before or after the specified value.
181
+
182
+ * `*Tornado Warning*` matches any event containing **"Tornado Warning"** anywhere in the name.
183
+ * `Tornado Emergency` matches only the exact name **"Tornado Emergency"**.
184
+ * `*Thunderstorm Warning*` matches any event containing **"Thunderstorm Warning"** anywhere in the name.
185
+ * `Fire Weather Warning` matches only the exact name **"Fire Weather Warning"**.
186
+
187
+ Additionally, all events can be processed by setting **ListeningEvents** to an empty array (`[]`). This disables event name filtering and allows all available events to be accepted.
188
+
189
+
190
+
191
+ ## 4.4.2 - ICAOs
192
+ ## 4.4.3 - UGC
193
+ ## 4.4.4 - States
194
+ ## 4.4.5 - Ignoring Filters
195
+ ## 4.4.6 - Node Location Filtering
196
+ ## 4.4.7 - Test Products
197
+ # 4.5 - Archive Configurations
198
+ ## 4.5.1 - TTL (Time-To-Live)
199
+ ## 4.5.2 - Audio Toneout
@@ -0,0 +1,38 @@
1
+ <div align="center">
2
+ <a href="https://atmosphericx.scriptkitty.cafe">
3
+ <img src="https://scriptkitty.cafe/ftp/@atmosphericx/assets/logo-event-product-parser.png" alt="@atmosx/event-product-parser" width="800"/>
4
+ </a>
5
+ <br>
6
+ <p>A TypeScript/JavaScript library for parsing and ingesting NOAA and NWS Weather Text Products</p>
7
+ <small>A project built and maintained with ❤️ by the AtmosphericX team</small>
8
+ <p align="center">
9
+ <a href="https://atmosphericx.scriptkitty.cafe"><b>Documentation</b></a> |
10
+ <a href="https://github.com/AtmosphericX"><b>Repositories</b></a> |
11
+ <a href="https://www.npmjs.com/search?q=%40atmosx"><b>NPM Packages</b></a> |
12
+ <a href="https://atmosphericx-discord.scriptkitty.cafe"><b>Community Discord</b></a>
13
+ </p>
14
+ </div>
15
+ <br><br>
16
+
17
+ # 5.0 - Actions / Integrations
18
+
19
+ # 5.1 - Action Events & Wildcards
20
+
21
+ # 5.2 - Discord Webhooks
22
+ ## 5.2.1 - Ratelimiting
23
+
24
+ # 5.3 - NTFY Push Notifications
25
+ ## 5.3.1 - Server Configuration
26
+ ## 5.3.2 - Action Configuration
27
+
28
+ # 5.4 - Broadcastify Feed Attachments
29
+ ## 5.4.1 - Tag Filtering
30
+
31
+ # 5.5 - Audio Generation
32
+ ## 5.5.1 - Linux Prerequisites
33
+ ## 5.5.2 - Limitations
34
+
35
+ # 5.6 - Event Archiving
36
+ ## 5.6.1 - Raw Text Product Archiving
37
+ ## 5.6.2 - GeoJSON Archiving
38
+ ## 5.7 - Graphic Generation
@@ -0,0 +1,28 @@
1
+ <div align="center">
2
+ <a href="https://atmosphericx.scriptkitty.cafe">
3
+ <img src="https://scriptkitty.cafe/ftp/@atmosphericx/assets/logo-event-product-parser.png" alt="@atmosx/event-product-parser" width="800"/>
4
+ </a>
5
+ <br>
6
+ <p>A TypeScript/JavaScript library for parsing and ingesting NOAA and NWS Weather Text Products</p>
7
+ <small>A project built and maintained with ❤️ by the AtmosphericX team</small>
8
+ <p align="center">
9
+ <a href="https://atmosphericx.scriptkitty.cafe"><b>Documentation</b></a> |
10
+ <a href="https://github.com/AtmosphericX"><b>Repositories</b></a> |
11
+ <a href="https://www.npmjs.com/search?q=%40atmosx"><b>NPM Packages</b></a> |
12
+ <a href="https://atmosphericx-discord.scriptkitty.cafe"><b>Community Discord</b></a>
13
+ </p>
14
+ </div>
15
+ <br><br>
16
+
17
+ # 6.0 - Listeners
18
+ # 6.1 - XMPP / NWS Status
19
+ # 6.2 - Test Products
20
+ # 6.3 - Expired Products
21
+ # 6.4 - Specific Product Types
22
+ # 6.5 - Filtered Products
23
+ # 6.6 - Cache Updates
24
+ # 6.7 - Tracking Node Updates
25
+ # 6.8 - Storm Prediction Center Products
26
+ # 6.9 - Debugging
27
+ # 6.10 - Logs / Journal
28
+ # 6.11 - Wildcard