@atmosx/event-product-parser 3.0.4 → 3.0.6

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 (162) hide show
  1. package/{CONTRIBUTING.md → .github/CONTRIBUTING.md} +1 -1
  2. package/.github/README.md +163 -0
  3. package/.github/SUPPORTED_EVENTS.md +370 -0
  4. package/.github/docs/docs-functions.md +30 -0
  5. package/.github/docs/docs-general-configurations.md +209 -0
  6. package/.github/docs/docs-integrations.md +37 -0
  7. package/.github/docs/docs-listeners.md +28 -0
  8. package/.github/docs/docs-source-configuration.md +218 -0
  9. package/.github/docs/docs-technical.md +50 -0
  10. package/.github/logo.png +0 -0
  11. package/.github/samples/SAMPLE_EAS_GENERATION.wav +0 -0
  12. package/.github/samples/SAMPLE_GEOJSON.json +204 -0
  13. package/.github/samples/SAMPLE_TEXT_PRODUCT.txt +119 -0
  14. package/dist/cjs/index.cjs +4677 -13422
  15. package/dist/esm/index.mjs +3159 -11906
  16. package/package.json +3 -9
  17. package/src/@building/{building.create.ts → CreateEvent.ts} +25 -11
  18. package/src/@building/{building.clean.ts → GetCleanedEvent.ts} +2 -2
  19. package/src/@building/GetEventAttachments.ts +86 -0
  20. package/src/@building/{building.enhance.ts → GetEventEnhancedName.ts} +11 -12
  21. package/src/@building/{building.geometry.ts → GetEventGeometry.ts} +7 -7
  22. package/src/@building/{building.headers.ts → GetEventHeader.ts} +3 -3
  23. package/src/@building/{building.polygon.ts → GetEventNodes.ts} +13 -11
  24. package/src/@building/{building.office.ts → GetEventOffice.ts} +6 -6
  25. package/src/@building/GetEventProperties.ts +96 -0
  26. package/src/@building/{building.signature.ts → GetEventSignature.ts} +14 -15
  27. package/src/@building/{building.tags.ts → GetEventTags.ts} +9 -4
  28. package/src/@building/{building.tracking.ts → GetEventTracking.ts} +15 -15
  29. package/src/@building/{building.validate.ts → ValidateEvents.ts} +67 -60
  30. package/src/@core/{core.clearEvents.ts → ClearEvents.ts} +3 -4
  31. package/src/@core/{core.createListener.ts → CreateListener.ts} +3 -3
  32. package/src/@core/{core.getEvents.ts → GetEvents.ts} +1 -2
  33. package/src/@core/{core.getNodes.ts → GetNodes.ts} +1 -2
  34. package/src/@core/{core.getRandomEvent.ts → GetRandomEvent.ts} +1 -2
  35. package/src/@core/{core.getVersion.ts → GetVersion.ts} +1 -2
  36. package/src/@core/ManualEvent.ts +56 -0
  37. package/src/@core/QueryStanza.ts +39 -0
  38. package/src/@core/{core.setNode.ts → SetNode.ts} +8 -8
  39. package/src/@core/{core.start.ts → StartService.ts} +21 -21
  40. package/src/@core/{core.stop.ts → StopService.ts} +1 -1
  41. package/src/@enums/AWIPS.ts +366 -0
  42. package/src/{@dictionaries/dictionaries.eventActions.ts → @enums/Actions.ts} +1 -1
  43. package/src/{@dictionaries/dictionaries.eventCancelMessages.ts → @enums/Cancellation.ts} +2 -1
  44. package/src/{@dictionaries/dictionaries.eventCauses.ts → @enums/Causes.ts} +1 -1
  45. package/src/{@dictionaries/dictionaries.statusCorrelationText.ts → @enums/Correlations.ts} +1 -1
  46. package/src/@enums/Enhanced.ts +70 -0
  47. package/src/{@dictionaries/dictionaries.eventTypes.ts → @enums/Events.ts} +1 -1
  48. package/src/{@dictionaries/dictionaries.regExp.ts → @enums/Expressions.ts} +2 -1
  49. package/src/@enums/GlobalFilter.ts +24 -0
  50. package/src/{@dictionaries/dictionaries.hailStrings.ts → @enums/Hail.ts} +7 -2
  51. package/src/{@dictionaries/dictionaries.officeICAOs.ts → @enums/ICAO.ts} +3 -1
  52. package/src/@enums/Matches.ts +55 -0
  53. package/src/{@dictionaries/dictionaries.eventProducts.ts → @enums/Products.ts} +1 -1
  54. package/src/{@dictionaries/dictionaries.eventRecords.ts → @enums/Records.ts} +1 -1
  55. package/src/{@dictionaries/dictionaries.eventSeverity.ts → @enums/Severity.ts} +1 -1
  56. package/src/{@dictionaries/dictionaries.shapefileLinks.ts → @enums/Shapefiles.ts} +1 -1
  57. package/src/@enums/States.ts +72 -0
  58. package/src/{@dictionaries/dictionaries.eventStatus.ts → @enums/Status.ts} +1 -1
  59. package/src/@enums/Strings.ts +22 -0
  60. package/src/@enums/Tags.ts +167 -0
  61. package/src/{@dictionaries/dictionaries.testSignatures.ts → @enums/Testing.ts} +3 -2
  62. package/src/@events/{events.api.ts → ParseAPI.ts} +42 -38
  63. package/src/@events/{events.text.ts → ParseText.ts} +25 -18
  64. package/src/@events/{events.ugc.ts → ParseUGC.ts} +28 -19
  65. package/src/@events/{events.vtec.ts → ParseVTEC.ts} +21 -21
  66. package/src/@manager/CreateActions.ts +213 -0
  67. package/src/@manager/{manager.mkEvent.ts → MakeEvent.ts} +34 -31
  68. package/src/@manager/RemoveEvent.ts +70 -0
  69. package/src/@manager/{manager.setHash.ts → SetHash.ts} +8 -9
  70. package/src/@manager/{manager.updateEvents.ts → UpdateEvents.ts} +9 -9
  71. package/src/@manager/{manager.updateNodes.ts → UpdateNode.ts} +24 -17
  72. package/src/@modules/@database/{database.cache.ts → GetCachedEvents.ts} +10 -8
  73. package/src/@modules/@database/ImportBroadcastify.ts +70 -0
  74. package/src/@modules/@database/{database.shapefiles.ts → ImportShapefiles.ts} +17 -20
  75. package/src/@modules/@database/{database.stanza.ts → ImportStanza.ts} +5 -6
  76. package/src/@modules/@database/{database.init.ts → InitializeDatabase.ts} +25 -11
  77. package/src/@modules/@eas/GenerateEASMessage.ts +144 -0
  78. package/src/@modules/@eas/GetCleanDescription.ts +91 -0
  79. package/src/@modules/@eas/{eas.getFloatPCM16.ts → GetFloatPCM16.ts} +1 -1
  80. package/src/@modules/@eas/{eas.getMergedPCM16.ts → GetMergedPCM16.ts} +1 -1
  81. package/src/@modules/@eas/{eas.getPCM16.ts → GetPCM16.ts} +1 -1
  82. package/src/@modules/@eas/{eas.getPCMToFloat.ts → GetPCMToFloat.ts} +1 -1
  83. package/src/@modules/@eas/{eas.getSampledPCM16.ts → GetSampledPCM16.ts} +1 -1
  84. package/src/@modules/@eas/GetTTS.ts +54 -0
  85. package/src/@modules/@eas/{eas.getWavPCM16.ts → GetWavPCM16.ts} +1 -1
  86. package/src/@modules/@eas/{eas.setAFSK.ts → SetAFSK.ts} +1 -2
  87. package/src/@modules/@eas/{eas.setAsciiToBits.ts → SetAsciiToBits.ts} +1 -2
  88. package/src/@modules/@eas/{eas.setAttentionTone.ts → SetAttentionTone.ts} +1 -1
  89. package/src/@modules/@eas/{eas.setNoise.ts → SetNoise.ts} +6 -5
  90. package/src/@modules/@eas/{eas.setRadioEffect.ts → SetRadioEffect.ts} +6 -5
  91. package/src/@modules/@eas/{eas.setSameHeader.ts → SetSameHeader.ts} +7 -8
  92. package/src/@modules/@stanza/{stanza.getAwipsType.ts → GetAwipsType.ts} +11 -9
  93. package/src/@modules/@stanza/{stanza.validate.ts → ValidateStanza.ts} +9 -9
  94. package/src/@modules/@utilities/CreateHttp.ts +83 -0
  95. package/src/@modules/@utilities/{utilities.getFormattedTime.ts → GetFormattedTime.ts} +1 -1
  96. package/src/@modules/@utilities/GetLatestIssuance.ts +32 -0
  97. package/src/@modules/@utilities/GetMatched.ts +33 -0
  98. package/src/@modules/@utilities/{utilities.getSettings.ts → GetSettings.ts} +2 -2
  99. package/src/@modules/@utilities/{utilities.getShapeNearestPoint.ts → GetShapeNearestPoint.ts} +1 -1
  100. package/src/@modules/@utilities/{utilities.setCronSchedule.ts → SetCronSchedule.ts} +41 -12
  101. package/src/{@types/types.webhook.ts → @modules/@utilities/SetDebug.ts} +16 -6
  102. package/src/@modules/@utilities/{utilities.setEventEmit.ts → SetEventEmit.ts} +5 -5
  103. package/src/@modules/@utilities/{utilities.setListener.ts → SetListener.ts} +1 -1
  104. package/src/@modules/@utilities/{utilities.setSettings.ts → SetSettings.ts} +2 -2
  105. package/src/@modules/@utilities/{utilities.setSleep.ts → SetSleep.ts} +1 -1
  106. package/src/@modules/@utilities/{utilities.setTimeoutAction.ts → SetTimeoutAction.ts} +8 -3
  107. package/src/@modules/@utilities/{utilities.setWarning.ts → SetWarning.ts} +2 -2
  108. package/src/@modules/@xmpp/{xmpp.xDeploy.ts → DeployXMPP.ts} +13 -14
  109. package/src/@modules/@xmpp/{xmpp.xError.ts → ErrorXMPP.ts} +1 -3
  110. package/src/@modules/@xmpp/{xmpp.xOffline.ts → OfflineXMPP.ts} +3 -4
  111. package/src/@modules/@xmpp/{xmpp.xOnline.ts → OnlineXMPP.ts} +6 -5
  112. package/src/@modules/@xmpp/{xmpp.xReconnect.ts → ReconnectXMPP.ts} +8 -8
  113. package/src/@modules/@xmpp/{xmpp.xStanza.ts → StanzaXMPP.ts} +11 -11
  114. package/src/@parsers/@hvtec/{hvtec.extract.ts → HVExtract.ts} +10 -10
  115. package/src/@parsers/@pvtec/{pvtec.expires.ts → GetExpiry.ts} +1 -1
  116. package/src/@parsers/@pvtec/{pvtec.extract.ts → VTECExtract.ts} +17 -17
  117. package/src/@parsers/@text/{text.getDescriptionFromProduct.ts → GetDescriptionFromProduct.ts} +12 -5
  118. package/src/@parsers/@text/GetEmbededText.ts +56 -0
  119. package/src/@parsers/@text/{text.getPolygonFromProduct.ts → GetPolygonFromProduct.ts} +31 -10
  120. package/src/@parsers/@text/GetStringText.ts +58 -0
  121. package/src/@parsers/@text/{text.getTextFromProduct.ts → GetTextFromProduct.ts} +1 -1
  122. package/src/@parsers/@text/{text.getXML.ts → GetXML.ts} +1 -1
  123. package/src/@parsers/@ugc/GetCache.ts +24 -0
  124. package/src/@parsers/@ugc/{ugc.expiry.ts → GetExpiry.ts} +1 -1
  125. package/src/@parsers/@ugc/{ugc.locations.ts → GetLocations.ts} +35 -7
  126. package/src/@parsers/@ugc/{ugc.header.ts → GetUGCHeader.ts} +3 -3
  127. package/src/@parsers/@ugc/{ugc.coordinates.ts → GetZonePolygon.ts} +4 -3
  128. package/src/@parsers/@ugc/SetCache.ts +28 -0
  129. package/src/@parsers/@ugc/{ugc.extract.ts → UGCExtract.ts} +6 -6
  130. package/src/@types/Actions.ts +37 -0
  131. package/src/@types/{type.event.ts → Event.ts} +7 -5
  132. package/src/@types/{type.properties.ts → Properties.ts} +11 -8
  133. package/src/@types/{types.settings.ts → Settings.ts} +31 -7
  134. package/src/@types/{types.compiled.ts → StanzaCompiled.ts} +2 -1
  135. package/src/bootstrap.ts +33 -9
  136. package/src/index.ts +26 -24
  137. package/tsup.config.ts +1 -1
  138. package/README.md +0 -349
  139. package/dist/index.d.mts +0 -239
  140. package/dist/index.d.ts +0 -239
  141. package/src/@building/building.properties.ts +0 -89
  142. package/src/@dictionaries/dictionaries.betterEventNames.ts +0 -99
  143. package/src/@dictionaries/dictionaries.eventAwipAbreviations.ts +0 -364
  144. package/src/@dictionaries/dictionaries.eventTags.ts +0 -93
  145. package/src/@dictionaries/dictionaries.eventsMatchText.ts +0 -36
  146. package/src/@dictionaries/dictionaries.transcribedMessageReplacements.ts +0 -68
  147. package/src/@manager/manager.rmEvent.ts +0 -49
  148. package/src/@manager/manager.updateWebhooks.ts +0 -50
  149. package/src/@modules/@eas/eas.setEasTone.ts +0 -137
  150. package/src/@modules/@utilities/utilities.createHttp.ts +0 -85
  151. package/src/@modules/@utilities/utilities.createWebhook.ts +0 -115
  152. package/test.js +0 -91
  153. /package/{CODE_OF_CONDUCT.md → .github/CODE_OF_CONDUCT.md} +0 -0
  154. /package/{LICENSE → .github/LICENSE} +0 -0
  155. /package/{SECURITY.md → .github/SECURITY.md} +0 -0
  156. /package/src/@parsers/@ugc/{ugc.zones.ts → GetZones.ts} +0 -0
  157. /package/src/@types/{types.attributes.ts → Attributes.ts} +0 -0
  158. /package/src/@types/{types.hvtec.ts → HVTEC.ts} +0 -0
  159. /package/src/@types/{types.hash.ts → Hash.ts} +0 -0
  160. /package/src/@types/{types.stanza.ts → Stanza.ts} +0 -0
  161. /package/src/@types/{types.ugc.ts → UGC.ts} +0 -0
  162. /package/src/@types/{types.pvtec.ts → VTEC.ts} +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,163 @@
1
+ <div align="center">
2
+ <a href="https://atmosphericx.scriptkitty.cafe">
3
+ <img src="./logo.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
+
16
+ ## Table of Contents
17
+ 1. [Introduction](#introduction)
18
+ 2. [Installation](#installation)
19
+ 3. [Sources](/.github/docs/docs-source-configuration.md)
20
+ - 3.1 [NOAA Weather Wire Service](/.github/docs/docs-source-configuration.md#31---noaa-weather-wire-service)
21
+ - 3.2 [National Weather Service API](/.github/docs/docs-source-configuration.md#32---national-weather-service-api)
22
+ - 3.3 [NOAA Weather Wire Service vs NWS RESTful API](/.github/docs/docs-source-configuration.md#33---noaa-weather-wire-service-vs-nws-restful-api)
23
+ - 3.4 [GeoJSON & WMO Formatting](/.github/docs/docs-source-configuration.md#34-geojson---wmo-formatting)
24
+ - 3.4.1 [GeoJSON](/.github/docs/docs-source-configuration.md#341---geojson)
25
+ - 3.4.2 [WMO Format](/.github/docs/docs-source-configuration.md#342---wmo-format)
26
+ - 3.5 [Configuring NOAA Weather Wire Service](/.github/docs/docs-source-configuration.md#35---configuring-noaa-weather-wire-service)
27
+ - 3.5.1 [Auto Reconnecting](/.github/docs/docs-source-configuration.md#351---auto-reconnecting)
28
+ - 3.5.2 [Stanza Caching](/.github/docs/docs-source-configuration.md#352---stanza-caching)
29
+ - 3.5.3 [Stanza Processing Settings](/.github/docs/docs-source-configuration.md#353---stanza-processing-settings)
30
+ - 3.6 [Configuring National Weather Service API](/.github/docs/docs-source-configuration.md#36---configuring-national-weather-service-api)
31
+ 4. [General Configurations](docs/docs-general-configurations.md)
32
+ - 4.1 [Event Management & History](/.github/docs/docs-general-configurations.md#41---event-management---history)
33
+ - 4.2 [Geometry Configurations](/.github/docs/docs-general-configurations.md#42---geometry-configurations)
34
+ - 4.2.1 [Disable Geometry Processing](/.github/docs/docs-general-configurations.md#421---disable-geometry-processing)
35
+ - 4.2.2 [Force Shapefile Coordinates](/.github/docs/docs-general-configurations.md#422---force-shapefile-coordinates)
36
+ - 4.2.3 [Shapefile Skip Points](/.github/docs/docs-general-configurations.md#423---shapefile-skip-points)
37
+ - 4.3 [Tracking Node Settings](/.github/docs/docs-general-configurations.md#43---tracking-node-settings)
38
+ - 4.3.1 [NodeTTL](/.github/docs/docs-general-configurations.md#431---nodettl)
39
+ - 4.3.2 [Max Distance](/.github/docs/docs-general-configurations.md#432---max-distance)
40
+ - 4.3.3 [Tracking Node Properties](/.github/docs/docs-general-configurations.md#433---tracking-node-properties)
41
+ - 4.4 [Advanced Event Filters](/.github/docs/docs-general-configurations.md#44---advanced-event-filters)
42
+ - 4.4.1 [Events & Wildcards](/.github/docs/docs-general-configurations.md#441---events---wildcards)
43
+ - 4.4.2 [ICAOs](/.github/docs/docs-general-configurations.md#442---icaos)
44
+ - 4.4.3 [UGC](/.github/docs/docs-general-configurations.md#443---ugc)
45
+ - 4.4.4 [States](/.github/docs/docs-general-configurations.md#444---states)
46
+ - 4.4.5 [Ignoring Filters](/.github/docs/docs-general-configurations.md#445---ignoring-filters)
47
+ - 4.4.6 [Node Location Filtering](/.github/docs/docs-general-configurations.md#446---node-location-filtering)
48
+ - 4.4.7 [Test Products](/.github/docs/docs-general-configurations.md#447---test-products)
49
+ - 4.5 [Archive Configurations](/.github/docs/docs-general-configurations.md#45---archive-configurations)
50
+ - 4.5.1 [TTL (Time-to-Live)](/.github/docs/docs-general-configurations.md#451---ttl-time-to-live)
51
+ - 4.5.2 [EAS Toneout](/.github/docs/docs-general-configurations.md#452---eas-toneout)
52
+ 5. [Actions / Integrations](docs/docs-integrations.md)
53
+ - 5.1 [Action Events & Wildcards](docs/docs-integrations.md#51---action-events---wildcards)
54
+ - 5.2 [Discord Webhooks](/.github/docs/docs-integrations.md#52---discord-webhooks)
55
+ - 5.2.1 [Ratelimiting](/.github/docs/docs-integrations.md#521---ratelimiting)
56
+ - 5.3 [NTFY Push Notifications](/.github/docs/docs-integrations.md#53---ntfy-push-notifications)
57
+ - 5.3.1 [Server Configuration](/.github/docs/docs-integrations.md#531---server-configuration)
58
+ - 5.3.2 [Action Configuration](/.github/docs/docs-integrations.md#532---action-configuration)
59
+ - 5.4 [Broadcastify Feed Attachments](/.github/docs/docs-integrations.md#54---broadcastify-feed-attachments)
60
+ - 5.4.1 [Tag Filtering](/.github/docs/docs-integrations.md#541---tag-filtering)
61
+ - 5.5 [Mock EAS Generator](/.github/docs/docs-integrations.md#55---mock-eas-generator)
62
+ - 5.5.1 [Linux Prerequisites](/.github/docs/docs-integrations.md#551---linux-prerequisites)
63
+ - 5.5.2 [Limitations](/.github/docs/docs-integrations.md#552---limitations)
64
+ - 5.6 [Event Archiving](/.github/docs/docs-integrations.md#56---event-archiving)
65
+ - 5.6.1 [Raw Text Product Archiving](/.github/docs/docs-integrations.md#561---raw-text-product-archiving)
66
+ - 5.6.2 [GeoJSON Archiving](/.github/docs/docs-integrations.md#562---geojson-archiving)
67
+ 6. [Listeners](/.github/docs/docs-listeners.md)
68
+ - 6.1 [XMPP / NWS Status](/.github/docs/docs-listeners.md#61---xmpp---nws-status)
69
+ - 6.2 [Test Products](/.github/docs/docs-listeners.md#62---test-products)
70
+ - 6.3 [Expired Products](/.github/docs/docs-listeners.md#63---expired-products)
71
+ - 6.4 [Specific Product Types](/.github/docs/docs-listeners.md#64---specific-product-types)
72
+ - 6.5 [Filtered Products](/.github/docs/docs-listeners.md#65---filtered-products)
73
+ - 6.6 [Cache Updates](/.github/docs/docs-listeners.md#66---cache-updates)
74
+ - 6.7 [Tracking Node Updates](/.github/docs/docs-listeners.md#67---tracking-node-updates)
75
+ - 6.8 [Storm Prediction Center Products](/.github/docs/docs-listeners.md#68---storm-prediction-center-products)
76
+ - 6.9 [Debugging](/.github/docs/docs-listeners.md#69---debugging)
77
+ - 6.10 [Logs / Journal](/.github/docs/docs-listeners.md#610---logs---journal)
78
+ - 6.11 [Wildcard](/.github/docs/docs-listeners.md#611---wildcard)
79
+ 7. [Functions](/.github/docs/docs-functions.md)
80
+ - 7.1 [Dynamic Configuration Setter](/.github/docs/docs-functions.md#71---dynamic-configuration-setter)
81
+ - 7.2 [Event Geometry Getter](/.github/docs/docs-functions.md#72---event-geometry-getter)
82
+ - 7.3 [Random Event Getter](/.github/docs/docs-functions.md#73---random-event-getter)
83
+ - 7.4 [Package Information Getter](/.github/docs/docs-functions.md#74---package-information-getter)
84
+ - 7.5 [Cleaned Event Getter](/.github/docs/docs-functions.md#75---cleaned-event-getter)
85
+ - 7.6 [Management Functions](/.github/docs/docs-functions.md#76---management-functions)
86
+ - 7.7 [Creating & Configuring Tracking Nodes](/.github/docs/docs-functions.md#77---creating---configuring-tracking-nodes)
87
+ - 7.8 [Event Cache Getter](/.github/docs/docs-functions.md#78---event-cache-getter)
88
+ - 7.9 [Tracking Node Cache Getter](/.github/docs/docs-functions.md#79---tracking-node-cache-getter)
89
+ - 7.10 [Creating Manual WMO Events](/.github/docs/docs-functions.md#710---creating-manual-wmo-events)
90
+ - 7.11 [Database Queries](/.github/docs/docs-functions.md#711---database-queries)
91
+ - 7.11.1 [Stanza Query](/.github/docs/docs-functions.md#7111---stanza-query)
92
+ - 7.12 [Manual Mock EAS Generator](/.github/docs/docs-functions.md#712---manual-mock-eas-generator)
93
+ 8. [Technical Parser Documentation](/.github/docs/docs-technical.md)
94
+ - 8.1 [Workflow & Pipeline](/.github/docs/docs-technical.md#81---workflow---pipeline)
95
+ - 8.2 [Core Parsing Logic](/.github/docs/docs-technical.md#82---core-parsing-logic)
96
+ - 8.2.1 [VTEC](/.github/docs/docs-technical.md#821---vtec)
97
+ - 8.2.1.1 [Product Dictionary](/.github/docs/docs-technical.md#8211---product-dictionary)
98
+ - 8.2.1.2 [Tracking](/.github/docs/docs-technical.md#8212---tracking)
99
+ - 8.2.1.3 [Event Dictionary](/.github/docs/docs-technical.md#8213---event-dictionary)
100
+ - 8.2.1.4 [Status Dictionary](/.github/docs/docs-technical.md#8214---status-dictionary)
101
+ - 8.2.1.5 [Organization Sender](/.github/docs/docs-technical.md#8215---organization-sender)
102
+ - 8.2.1.6 [Expiry Parsing](/.github/docs/docs-technical.md#8216---expiry-parsing)
103
+ - 8.2.1.7 [Watch Parsing](/.github/docs/docs-technical.md#8217---watch-parsing)
104
+ - 8.2.1.8 [KWNS / SPC](/.github/docs/docs-technical.md#8218---kwns)
105
+ - 8.2.2 [UGC](/.github/docs/docs-technical.md#822---ugc)
106
+ - 8.2.2.1 [Extracting Headers](/.github/docs/docs-technical.md#8221---extracting-headers)
107
+ - 8.2.2.2 [Getting Zones](/.github/docs/docs-technical.md#8222---getting-zones)
108
+ - 8.2.2.3 [Extracting Expiry](/.github/docs/docs-technical.md#8223-extracting-expiry)
109
+ - 8.2.2.4 [UGC to Zones](/.github/docs/docs-technical.md#8224-ugc-to-zones)
110
+ - 8.2.3 [HVTEC](/.github/docs/docs-technical.md#823---hvtec)
111
+ - 8.2.3.1 [Flood Severity](/.github/docs/docs-technical.md#8231---flood-severity)
112
+ - 8.2.3.2 [Flood Causes](/.github/docs/docs-technical.md#8232---flood-causes)
113
+ - 8.2.3.3 [Flood Records](/.github/docs/docs-technical.md#8233---flood-records)
114
+ - 8.2.4 [Raw Text](/.github/docs/docs-technical.md#824---raw-text)
115
+ - 8.2.4.1 [Extracting Descriptions](/.github/docs/docs-technical.md#8241---extracting-descriptions)
116
+ - 8.2.4.2 [Extracting Coordinates](/.github/docs/docs-technical.md#8242---extracting-coordinates)
117
+ - 8.2.4.3 [Extracting String Specifics](/.github/docs/docs-technical.md#8243---extracting-string-specifics)
118
+ - 8.2.4.4 [Extracting XML](/.github/docs/docs-technical.md#8244---extracting-xml)
119
+ - 8.2.5 [Building Properties](/.github/docs/docs-technical.md#825---building-properties)
120
+ - 8.2.6 [Building Geometry](/.github/docs/docs-technical.md#826---building-geometry)
121
+ - 8.3 [Event Validation & Filtering](/.github/docs/docs-technical.md#83---event-validation---filtering)
122
+ - 8.3.1 [Enhanced Event Naming](/.github/docs/docs-technical.md#831---enhanced-event-naming)
123
+ - 8.3.2 [Appending Attachments](/.github/docs/docs-technical.md#832---appending-attachments)
124
+ - 8.3.3 [Generating Hashes](/.github/docs/docs-technical.md#833---generating-hashes)
125
+ - 8.4 [Event & History Management](/.github/docs/docs-technical.md#84---event---history-management)
126
+ - 8.5 [Action Workflow](/.github/docs/docs-technical.md#85---action-workflow)
127
+
128
+
129
+
130
+ ## Introduction
131
+
132
+ Formerly known as `atmosx-nwws-parser`, **`@atmosx/event-product-parser`** is an open-source [TypeScript](https://www.typescriptlang.org/)/[JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) library for ingesting, parsing, caching, and distributing [NOAA](https://www.noaa.gov/) and [NWS](https://www.weather.gov/) weather text products. The library handles event processing within [AtmosphericX](https://atmosxphericx.scriptkitty.cafe), providing a lightweight and extensible foundation for working with [GeoJSON](https://geojson.org/) and [WMO](https://www.wmo.int/) data. Built with simplicity and flexibility in mind, it is easy to integrate, straightforward to extend, and suitable for both standalone applications and larger services.
133
+
134
+ With support for the [NOAA Weather Wire Service Open Interface](https://www.weather.gov/nwws/) and the [National Weather Service API](https://www.weather.gov/documentation/services-web-api), the library enables reliable access to a wide range of operational weather products while providing a consistent interface for downstream processing and distribution.
135
+
136
+ Beyond core product processing, the library provides support for integrating [Storm Prediction Center](https://www.spc.noaa.gov) graphics, [Broadcastify](https://www.broadcastify.com) feeds, [NTFY](https://ntfy.sh) and [Discord Webhook](https://discord.com/developers/docs/resources/webhook) push notifications, as well as automated emergency audio generation.
137
+
138
+ **Note:** *This package is designed specifically for NOAA/NWS weather products and currently supports weather data originating from the United States and its territories.*
139
+
140
+
141
+ ## Installation
142
+ **NPM**:
143
+ ```bash
144
+ $ npm install @atmosx/event-product-parser
145
+ ```
146
+
147
+ **PNPM**:
148
+ ```bash
149
+ $ pnpm install @atmosx/event-product-parser
150
+ ```
151
+
152
+ After installation, import the package using `import` or `require`:
153
+
154
+ ```ts
155
+ import { Manager } from "@atmosx/event-product-parser"
156
+ const client = new Manager({})
157
+ ```
158
+
159
+ Using `require`:
160
+ ```js
161
+ const { Manager } = require("@atmosx/event-product-parser")
162
+ const client = new Manager({})
163
+ ```
@@ -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="../logo.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 Mock EAS Generator