@atmosx/event-product-parser 3.0.622 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/CHANGELOGS.md +52 -0
- package/.github/CODE_OF_CONDUCT.md +24 -1
- package/.github/CONTRIBUTING.md +22 -3
- package/.github/FUNDING.yaml +3 -0
- package/.github/LICENSE +24 -1
- package/.github/SECURITY.md +25 -6
- package/.github/docs/chapters/general-configurations.md +109 -0
- package/.github/docs/chapters/sources-and-attributes.md +219 -0
- package/README.md +56 -148
- package/dist/{cjs/index.cjs → index.cjs} +4486 -1471
- package/package.json +13 -8
- package/pnpm-workspace.yaml +1 -0
- package/src/bootstrap.ts +66 -51
- package/src/components/audio/GenerateAudioMessage.ts +149 -0
- package/src/{@modules/@eas → components/audio/components}/GetCleanDescription.ts +2 -2
- package/src/{@modules/@eas → components/audio/components}/GetFloatPCM16.ts +2 -2
- package/src/{@modules/@eas → components/audio/components}/GetMergedPCM16.ts +2 -2
- package/src/{@modules/@eas → components/audio/components}/GetPCM16.ts +13 -8
- package/src/{@modules/@eas → components/audio/components}/GetPCMToFloat.ts +2 -2
- package/src/{@modules/@eas → components/audio/components}/GetSampledPCM16.ts +14 -8
- package/src/{@modules/@eas → components/audio/components}/GetTTS.ts +15 -8
- package/src/{@modules/@eas → components/audio/components}/GetWavPCM16.ts +7 -7
- package/src/{@modules/@eas → components/audio/components}/SetAFSK.ts +13 -8
- package/src/{@modules/@eas → components/audio/components}/SetAsciiToBits.ts +2 -2
- package/src/{@modules/@eas → components/audio/components}/SetAttentionTone.ts +11 -6
- package/src/{@modules/@eas → components/audio/components}/SetNoise.ts +12 -7
- package/src/{@modules/@eas → components/audio/components}/SetRadioEffect.ts +12 -7
- package/src/{@modules/@eas → components/audio/components}/SetSameHeader.ts +22 -14
- package/src/components/database/CreateQuery.ts +39 -0
- package/src/components/database/InitializeDatabase.ts +71 -0
- package/src/components/database/imports/Boundaires.ts +168 -0
- package/src/{@modules/@database/ImportBroadcastify.ts → components/database/imports/Broadcastify.ts} +15 -25
- package/src/components/database/imports/Census.ts +87 -0
- package/src/{@modules/@database/ImportShapefiles.ts → components/database/imports/Shapefiles.ts} +18 -21
- package/src/{@modules/@database/ImportStanza.ts → components/database/imports/Stanza.ts} +15 -19
- package/src/components/events/CreateEvents.ts +88 -0
- package/src/components/events/FilterEvents.ts +149 -0
- package/src/{@building/CreateEvent.ts → components/events/ProcessStanza.ts} +22 -22
- package/src/components/events/RemoveEvents.ts +74 -0
- package/src/{@building → components/events/components}/GetCleanedEvent.ts +2 -2
- package/src/{@building → components/events/components}/GetEventAttachments.ts +14 -12
- package/src/components/events/components/GetEventDirection.ts +28 -0
- package/src/{@building → components/events/components}/GetEventEnhancedName.ts +5 -6
- package/src/{@building → components/events/components}/GetEventGeometry.ts +19 -13
- package/src/{@building → components/events/components}/GetEventHeader.ts +13 -13
- package/src/components/events/components/GetEventMerged.ts +51 -0
- package/src/{@building → components/events/components}/GetEventNodes.ts +20 -18
- package/src/{@building → components/events/components}/GetEventOffice.ts +13 -13
- package/src/components/events/components/GetEventPopulation.ts +58 -0
- package/src/components/events/components/GetEventProperties.ts +106 -0
- package/src/{@building → components/events/components}/GetEventSignature.ts +9 -9
- package/src/{@building → components/events/components}/GetEventTags.ts +3 -3
- package/src/{@core/CreateListener.ts → components/events/components/GetEventTheme.ts} +8 -6
- package/src/components/events/components/GetEventTracking.ts +64 -0
- package/src/{@modules/@database → components/events/utilities}/GetCachedEvents.ts +18 -14
- package/src/{@manager → components/events/utilities}/SetHash.ts +18 -13
- package/src/{@manager → components/events/utilities}/UpdateEvents.ts +12 -12
- package/src/{@manager → components/events/utilities}/UpdateNode.ts +14 -14
- package/src/{@parsers/@text → components/formatting}/GetEmbededText.ts +12 -6
- package/src/{@parsers/@text → components/formatting}/GetStringText.ts +13 -9
- package/src/{@modules/@utilities → components/geometry}/GetShapeNearestPoint.ts +24 -19
- package/src/components/geometry/GetUnionPolygon.ts +36 -0
- package/src/components/images/GenerateGraphic.ts +242 -0
- package/src/components/images/components/CreateRectangle.ts +22 -0
- package/src/components/images/components/CreateText.ts +22 -0
- package/src/components/images/modules/CreateSVG.ts +37 -0
- package/src/components/images/modules/GetGeographicalBoundaries.ts +72 -0
- package/src/components/images/modules/GetGeographicalCities.ts +58 -0
- package/src/components/images/modules/GetGeographicalEvents.ts +48 -0
- package/src/components/images/modules/GetGeometryBounds.ts +82 -0
- package/src/components/images/modules/GetParsedBoundary.ts +58 -0
- package/src/components/images/modules/GetSVGPath.ts +53 -0
- package/src/components/images/modules/NormalizePolygon.ts +57 -0
- package/src/{@modules/@stanza → components/stanza}/GetAwipsType.ts +16 -17
- package/src/{@modules/@stanza → components/stanza}/ValidateStanza.ts +27 -15
- package/src/{@modules/@utilities → components/utilities}/CreateHttp.ts +26 -26
- package/src/components/utilities/EmitThread.ts +97 -0
- package/src/{@modules/@utilities → components/utilities}/GetLatestIssuance.ts +2 -2
- package/src/{@modules/@utilities → components/utilities}/GetMatched.ts +10 -5
- package/src/{@modules/@utilities → components/utilities}/QueueManager.ts +7 -8
- package/src/{@modules/@utilities → components/utilities}/SetDebug.ts +13 -13
- package/src/components/utilities/SetEventEmit.ts +42 -0
- package/src/{@modules/@utilities → components/utilities}/SetSettings.ts +7 -7
- package/src/{@modules/@utilities → components/utilities}/SetSleep.ts +5 -5
- package/src/components/utilities/SetTimeoutAction.ts +64 -0
- package/src/components/utilities/SetWarning.ts +47 -0
- package/src/{@modules/@xmpp → components/xmpp}/DeployXMPP.ts +20 -20
- package/src/{@modules/@xmpp → components/xmpp}/ErrorXMPP.ts +6 -6
- package/src/{@modules/@xmpp → components/xmpp}/OfflineXMPP.ts +13 -13
- package/src/{@modules/@xmpp → components/xmpp}/OnlineXMPP.ts +18 -18
- package/src/components/xmpp/ReconnectXMPP.ts +64 -0
- package/src/{@modules/@xmpp → components/xmpp}/StanzaXMPP.ts +26 -26
- package/src/{@enums → enums}/AWIPS.ts +2 -2
- package/src/{@enums → enums}/Actions.ts +2 -2
- package/src/{@enums → enums}/Cancellation.ts +2 -2
- package/src/{@enums → enums}/Causes.ts +2 -2
- package/src/{@enums → enums}/Correlations.ts +2 -2
- package/src/{@enums → enums}/Enhanced.ts +4 -3
- package/src/{@enums → enums}/Events.ts +2 -2
- package/src/{@enums → enums}/Expressions.ts +3 -3
- package/src/{@enums → enums}/GlobalFilter.ts +2 -2
- package/src/{@enums → enums}/Hail.ts +2 -2
- package/src/{@enums → enums}/ICAO.ts +2 -2
- package/src/{@enums → enums}/Matches.ts +8 -3
- package/src/{@enums → enums}/Products.ts +2 -2
- package/src/{@enums → enums}/Records.ts +2 -2
- package/src/{@enums → enums}/Severity.ts +2 -2
- package/src/{@enums → enums}/Shapefiles.ts +2 -2
- package/src/{@enums → enums}/States.ts +68 -4
- package/src/{@enums → enums}/Status.ts +2 -2
- package/src/{@enums → enums}/Strings.ts +2 -2
- package/src/{@enums → enums}/Tags.ts +8 -3
- package/src/{@enums → enums}/Testing.ts +2 -2
- package/src/enums/Themes.ts +70 -0
- package/src/events/ParseAPI.ts +133 -0
- package/src/{@events → events}/ParseText.ts +24 -22
- package/src/{@events → events}/ParseUGC.ts +27 -26
- package/src/{@events → events}/ParseVTEC.ts +37 -36
- package/src/{@core → exports}/ClearEvents.ts +9 -9
- package/src/{@core → exports}/GetEvents.ts +4 -4
- package/src/exports/GetNearestCity.ts +45 -0
- package/src/{@core → exports}/GetNodes.ts +4 -4
- package/src/{@core → exports}/GetRandomEvent.ts +4 -4
- package/src/{@core → exports}/GetVersion.ts +4 -4
- package/src/{@core → exports}/ManualEvent.ts +24 -24
- package/src/{@core → exports}/QueryStanza.ts +12 -11
- package/src/exports/SetNode.ts +100 -0
- package/src/{@core → exports}/StartService.ts +22 -21
- package/src/{@core → exports}/StopService.ts +10 -10
- package/src/index.ts +55 -37
- package/src/{@parsers/@hvtec → parsers/hvtec}/HVExtract.ts +7 -7
- package/src/{@parsers/@text → parsers/text}/GetDescriptionFromProduct.ts +20 -21
- package/src/parsers/text/GetPolygonFromProduct.ts +71 -0
- package/src/{@parsers/@text → parsers/text}/GetTextFromProduct.ts +12 -12
- package/src/parsers/ugc/GetCache.ts +24 -0
- package/src/{@parsers/@ugc → parsers/ugc}/GetExpiry.ts +2 -2
- package/src/{@parsers/@ugc/GetUGCHeader.ts → parsers/ugc/GetHeader.ts} +4 -4
- package/src/{@parsers/@ugc → parsers/ugc}/GetLocations.ts +10 -10
- package/src/parsers/ugc/GetZonePolygon.ts +73 -0
- package/src/{@parsers/@ugc → parsers/ugc}/GetZones.ts +3 -3
- package/src/{@parsers/@ugc → parsers/ugc}/SetCache.ts +13 -8
- package/src/{@parsers/@ugc → parsers/ugc}/UGCExtract.ts +14 -14
- package/src/{@parsers/@pvtec → parsers/vtec}/GetExpiry.ts +2 -2
- package/src/{@parsers/@pvtec → parsers/vtec}/VTECExtract.ts +17 -17
- package/src/tasks/CreateTasks.ts +116 -0
- package/src/{@tasks → tasks}/TaskGenerateJSON.ts +10 -11
- package/src/{@tasks → tasks}/TaskGenerateText.ts +11 -12
- package/src/tasks/TaskSendNTFY.ts +96 -0
- package/src/tasks/TaskSendWebhook.ts +107 -0
- package/src/{@types → types/event}/Attributes.ts +2 -3
- package/src/{@types → types/event}/Event.ts +8 -7
- package/src/{@types → types/event}/HVTEC.ts +2 -2
- package/src/{@types → types/event}/Properties.ts +17 -4
- package/src/{@types → types/event}/Stanza.ts +2 -2
- package/src/{@types → types/event}/VTEC.ts +8 -8
- package/src/{@types → types/standard}/Actions.ts +3 -3
- package/src/{@types → types/standard}/Hash.ts +5 -5
- package/src/{@modules/@utilities/GetSettings.ts → types/standard/Nodes.ts} +15 -7
- package/src/{@types → types/standard}/Settings.ts +19 -12
- package/src/{@types → types/standard}/StanzaCompiled.ts +15 -15
- package/src/{@types → types/standard}/UGC.ts +5 -5
- package/tools/build.js +2 -15
- package/tsconfig.json +29 -17
- package/.github/SUPPORTED_EVENTS.md +0 -370
- package/.github/docs/docs-functions.md +0 -30
- package/.github/docs/docs-general-configurations.md +0 -209
- package/.github/docs/docs-integrations.md +0 -37
- package/.github/docs/docs-listeners.md +0 -28
- package/.github/docs/docs-source-configuration.md +0 -218
- package/.github/docs/docs-technical.md +0 -50
- package/.github/logo.png +0 -0
- package/.github/samples/SAMPLE_EAS_GENERATION.wav +0 -0
- package/.github/samples/SAMPLE_GEOJSON.json +0 -204
- package/.github/samples/SAMPLE_TEXT_PRODUCT.txt +0 -119
- package/dist/esm/index.mjs +0 -22298
- package/src/@building/GetEventProperties.ts +0 -101
- package/src/@building/GetEventTracking.ts +0 -68
- package/src/@core/SetNode.ts +0 -87
- package/src/@events/ParseAPI.ts +0 -122
- package/src/@manager/MakeEvents.ts +0 -109
- package/src/@manager/RemoveEvent.ts +0 -70
- package/src/@manager/ValidateEvents.ts +0 -141
- package/src/@modules/@database/InitializeDatabase.ts +0 -59
- package/src/@modules/@eas/GenerateEASMessage.ts +0 -152
- package/src/@modules/@utilities/GetFormattedTime.ts +0 -43
- package/src/@modules/@utilities/SetCronSchedule.ts +0 -94
- package/src/@modules/@utilities/SetEventEmit.ts +0 -41
- package/src/@modules/@utilities/SetListener.ts +0 -30
- package/src/@modules/@utilities/SetTimeoutAction.ts +0 -64
- package/src/@modules/@utilities/SetWarning.ts +0 -34
- package/src/@modules/@xmpp/ReconnectXMPP.ts +0 -64
- package/src/@parsers/@text/GetPolygonFromProduct.ts +0 -53
- package/src/@parsers/@text/GetXML.ts +0 -61
- package/src/@parsers/@ugc/GetCache.ts +0 -24
- package/src/@parsers/@ugc/GetZonePolygon.ts +0 -111
- package/src/@tasks/CreateTasks.ts +0 -110
- package/src/@tasks/TaskGenerateAudio.ts +0 -35
- package/src/@tasks/TaskSendNTFY.ts +0 -93
- package/src/@tasks/TaskSendWebhook.ts +0 -101
package/README.md
CHANGED
|
@@ -1,169 +1,77 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
<div align="center" style="margin-top: 20px;">
|
|
2
|
+
<a href="https://atmosphericx.scriptkitty.cafe">
|
|
3
|
+
<img src="https://scriptkitty.cafe/ftp/@atmosphericx/assets/logo-event-product-parser.png"
|
|
4
|
+
alt="@atmosx/event-product-parser"
|
|
5
|
+
width="800"/>
|
|
6
|
+
</a>
|
|
7
|
+
<p style="font-size: 1.1em; max-width: 700px;">
|
|
8
|
+
A robust TypeScript/JavaScript library for parsing and ingesting NOAA and NWS Weather Text Products, featuring an expanded suite of quality‑of‑life tools for faster, cleaner, and more reliable development.
|
|
9
|
+
</p>
|
|
10
|
+
<small style="display: block; margin-top: 10px;">
|
|
11
|
+
Built and maintained with ❤️ by the AtmosphericX team<br>
|
|
12
|
+
<i>Not affiliated with NOAA or NWS</i>
|
|
13
|
+
</small>
|
|
14
|
+
<hr style="width: 60%; margin: 25px auto; opacity: 0.3;">
|
|
15
|
+
<p style="text-align: center; font-size: 1.05em;">
|
|
16
|
+
<a href="https://atmosphericx.scriptkitty.cafe"><b>Official Documentation</b></a> •
|
|
17
|
+
<a href="https://github.com/AtmosphericX"><b>Github Organization</b></a> •
|
|
18
|
+
<a href="https://www.npmjs.com/search?q=%40atmosx"><b>Packages</b></a> •
|
|
19
|
+
<a href="/.github/CHANGELOGS.md"><b>Changelogs</b></a> •
|
|
20
|
+
<a href="https://atmosphericx-discord.scriptkitty.cafe"><b>Community Discord</b></a>
|
|
21
|
+
</p>
|
|
15
22
|
</div>
|
|
16
23
|
|
|
17
24
|
## Table of Contents
|
|
18
|
-
1.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
4.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- 4.3.3 [Tracking Node Properties](/.github/docs/docs-general-configurations.md#433---tracking-node-properties)
|
|
42
|
-
- 4.4 [Advanced Event Filters](/.github/docs/docs-general-configurations.md#44---advanced-event-filters)
|
|
43
|
-
- 4.4.1 [Events & Wildcards](/.github/docs/docs-general-configurations.md#441---events---wildcards)
|
|
44
|
-
- 4.4.2 [ICAOs](/.github/docs/docs-general-configurations.md#442---icaos)
|
|
45
|
-
- 4.4.3 [UGC](/.github/docs/docs-general-configurations.md#443---ugc)
|
|
46
|
-
- 4.4.4 [States](/.github/docs/docs-general-configurations.md#444---states)
|
|
47
|
-
- 4.4.5 [Ignoring Filters](/.github/docs/docs-general-configurations.md#445---ignoring-filters)
|
|
48
|
-
- 4.4.6 [Node Location Filtering](/.github/docs/docs-general-configurations.md#446---node-location-filtering)
|
|
49
|
-
- 4.4.7 [Test Products](/.github/docs/docs-general-configurations.md#447---test-products)
|
|
50
|
-
- 4.5 [Archive Configurations](/.github/docs/docs-general-configurations.md#45---archive-configurations)
|
|
51
|
-
- 4.5.1 [TTL (Time-to-Live)](/.github/docs/docs-general-configurations.md#451---ttl-time-to-live)
|
|
52
|
-
- 4.5.2 [EAS Toneout](/.github/docs/docs-general-configurations.md#452---eas-toneout)
|
|
53
|
-
5. [Actions / Integrations](/.github/docs/docs-integrations.md)
|
|
54
|
-
- 5.1 [Action Events & Wildcards](/.github/docs/docs-integrations.md#51---action-events---wildcards)
|
|
55
|
-
- 5.2 [Discord Webhooks](/.github/docs/docs-integrations.md#52---discord-webhooks)
|
|
56
|
-
- 5.2.1 [Ratelimiting](/.github/docs/docs-integrations.md#521---ratelimiting)
|
|
57
|
-
- 5.3 [NTFY Push Notifications](/.github/docs/docs-integrations.md#53---ntfy-push-notifications)
|
|
58
|
-
- 5.3.1 [Server Configuration](/.github/docs/docs-integrations.md#531---server-configuration)
|
|
59
|
-
- 5.3.2 [Action Configuration](/.github/docs/docs-integrations.md#532---action-configuration)
|
|
60
|
-
- 5.3.3 [Node Filtering & Local Events](./github/docs/docs-integrations.md#533---node-filtering---local-events)
|
|
61
|
-
- 5.4 [Broadcastify Feed Attachments](/.github/docs/docs-integrations.md#54---broadcastify-feed-attachments)
|
|
62
|
-
- 5.4.1 [Tag Filtering](/.github/docs/docs-integrations.md#541---tag-filtering)
|
|
63
|
-
- 5.5 [Mock EAS Generator](/.github/docs/docs-integrations.md#55---mock-eas-generator)
|
|
64
|
-
- 5.5.1 [Linux Prerequisites](/.github/docs/docs-integrations.md#551---linux-prerequisites)
|
|
65
|
-
- 5.5.2 [Limitations](/.github/docs/docs-integrations.md#552---limitations)
|
|
66
|
-
- 5.6 [Event Archiving](/.github/docs/docs-integrations.md#56---event-archiving)
|
|
67
|
-
- 5.6.1 [Raw Text Product Archiving](/.github/docs/docs-integrations.md#561---raw-text-product-archiving)
|
|
68
|
-
- 5.6.2 [GeoJSON Archiving](/.github/docs/docs-integrations.md#562---geojson-archiving)
|
|
69
|
-
6. [Listeners](/.github/docs/docs-listeners.md)
|
|
70
|
-
- 6.1 [XMPP / NWS Status](/.github/docs/docs-listeners.md#61---xmpp---nws-status)
|
|
71
|
-
- 6.2 [Test Products](/.github/docs/docs-listeners.md#62---test-products)
|
|
72
|
-
- 6.3 [Expired Products](/.github/docs/docs-listeners.md#63---expired-products)
|
|
73
|
-
- 6.4 [Specific Product Types](/.github/docs/docs-listeners.md#64---specific-product-types)
|
|
74
|
-
- 6.5 [Filtered Products](/.github/docs/docs-listeners.md#65---filtered-products)
|
|
75
|
-
- 6.6 [Cache Updates](/.github/docs/docs-listeners.md#66---cache-updates)
|
|
76
|
-
- 6.7 [Tracking Node Updates](/.github/docs/docs-listeners.md#67---tracking-node-updates)
|
|
77
|
-
- 6.8 [Storm Prediction Center Products](/.github/docs/docs-listeners.md#68---storm-prediction-center-products)
|
|
78
|
-
- 6.9 [Debugging](/.github/docs/docs-listeners.md#69---debugging)
|
|
79
|
-
- 6.10 [Logs / Journal](/.github/docs/docs-listeners.md#610---logs---journal)
|
|
80
|
-
- 6.11 [Wildcard](/.github/docs/docs-listeners.md#611---wildcard)
|
|
81
|
-
7. [Functions](/.github/docs/docs-functions.md)
|
|
82
|
-
- 7.1 [Dynamic Configuration Setter](/.github/docs/docs-functions.md#71---dynamic-configuration-setter)
|
|
83
|
-
- 7.2 [Event Geometry Getter](/.github/docs/docs-functions.md#72---event-geometry-getter)
|
|
84
|
-
- 7.3 [Random Event Getter](/.github/docs/docs-functions.md#73---random-event-getter)
|
|
85
|
-
- 7.4 [Package Information Getter](/.github/docs/docs-functions.md#74---package-information-getter)
|
|
86
|
-
- 7.5 [Cleaned Event Getter](/.github/docs/docs-functions.md#75---cleaned-event-getter)
|
|
87
|
-
- 7.6 [Management Functions](/.github/docs/docs-functions.md#76---management-functions)
|
|
88
|
-
- 7.7 [Creating & Configuring Tracking Nodes](/.github/docs/docs-functions.md#77---creating---configuring-tracking-nodes)
|
|
89
|
-
- 7.8 [Event Cache Getter](/.github/docs/docs-functions.md#78---event-cache-getter)
|
|
90
|
-
- 7.9 [Tracking Node Cache Getter](/.github/docs/docs-functions.md#79---tracking-node-cache-getter)
|
|
91
|
-
- 7.10 [Creating Manual WMO Events](/.github/docs/docs-functions.md#710---creating-manual-wmo-events)
|
|
92
|
-
- 7.11 [Database Queries](/.github/docs/docs-functions.md#711---database-queries)
|
|
93
|
-
- 7.11.1 [Stanza Query](/.github/docs/docs-functions.md#7111---stanza-query)
|
|
94
|
-
- 7.12 [Manual Mock EAS Generator](/.github/docs/docs-functions.md#712---manual-mock-eas-generator)
|
|
95
|
-
8. [Technical Parser Documentation](/.github/docs/docs-technical.md)
|
|
96
|
-
- 8.1 [Workflow & Pipeline](/.github/docs/docs-technical.md#81---workflow---pipeline)
|
|
97
|
-
- 8.2 [Core Parsing Logic](/.github/docs/docs-technical.md#82---core-parsing-logic)
|
|
98
|
-
- 8.2.1 [VTEC](/.github/docs/docs-technical.md#821---vtec)
|
|
99
|
-
- 8.2.1.1 [Product Dictionary](/.github/docs/docs-technical.md#8211---product-dictionary)
|
|
100
|
-
- 8.2.1.2 [Tracking](/.github/docs/docs-technical.md#8212---tracking)
|
|
101
|
-
- 8.2.1.3 [Event Dictionary](/.github/docs/docs-technical.md#8213---event-dictionary)
|
|
102
|
-
- 8.2.1.4 [Status Dictionary](/.github/docs/docs-technical.md#8214---status-dictionary)
|
|
103
|
-
- 8.2.1.5 [Organization Sender](/.github/docs/docs-technical.md#8215---organization-sender)
|
|
104
|
-
- 8.2.1.6 [Expiry Parsing](/.github/docs/docs-technical.md#8216---expiry-parsing)
|
|
105
|
-
- 8.2.1.7 [Watch Parsing](/.github/docs/docs-technical.md#8217---watch-parsing)
|
|
106
|
-
- 8.2.1.8 [KWNS / SPC](/.github/docs/docs-technical.md#8218---kwns)
|
|
107
|
-
- 8.2.2 [UGC](/.github/docs/docs-technical.md#822---ugc)
|
|
108
|
-
- 8.2.2.1 [Extracting Headers](/.github/docs/docs-technical.md#8221---extracting-headers)
|
|
109
|
-
- 8.2.2.2 [Getting Zones](/.github/docs/docs-technical.md#8222---getting-zones)
|
|
110
|
-
- 8.2.2.3 [Extracting Expiry](/.github/docs/docs-technical.md#8223-extracting-expiry)
|
|
111
|
-
- 8.2.2.4 [UGC to Zones](/.github/docs/docs-technical.md#8224-ugc-to-zones)
|
|
112
|
-
- 8.2.3 [HVTEC](/.github/docs/docs-technical.md#823---hvtec)
|
|
113
|
-
- 8.2.3.1 [Flood Severity](/.github/docs/docs-technical.md#8231---flood-severity)
|
|
114
|
-
- 8.2.3.2 [Flood Causes](/.github/docs/docs-technical.md#8232---flood-causes)
|
|
115
|
-
- 8.2.3.3 [Flood Records](/.github/docs/docs-technical.md#8233---flood-records)
|
|
116
|
-
- 8.2.4 [Raw Text](/.github/docs/docs-technical.md#824---raw-text)
|
|
117
|
-
- 8.2.4.1 [Extracting Descriptions](/.github/docs/docs-technical.md#8241---extracting-descriptions)
|
|
118
|
-
- 8.2.4.2 [Extracting Coordinates](/.github/docs/docs-technical.md#8242---extracting-coordinates)
|
|
119
|
-
- 8.2.4.3 [Extracting String Specifics](/.github/docs/docs-technical.md#8243---extracting-string-specifics)
|
|
120
|
-
- 8.2.4.4 [Extracting XML](/.github/docs/docs-technical.md#8244---extracting-xml)
|
|
121
|
-
- 8.2.5 [Building Properties](/.github/docs/docs-technical.md#825---building-properties)
|
|
122
|
-
- 8.2.6 [Building Geometry](/.github/docs/docs-technical.md#826---building-geometry)
|
|
123
|
-
- 8.3 [Event Validation & Filtering](/.github/docs/docs-technical.md#83---event-validation---filtering)
|
|
124
|
-
- 8.3.1 [Enhanced Event Naming](/.github/docs/docs-technical.md#831---enhanced-event-naming)
|
|
125
|
-
- 8.3.2 [Appending Attachments](/.github/docs/docs-technical.md#832---appending-attachments)
|
|
126
|
-
- 8.3.3 [Generating Hashes](/.github/docs/docs-technical.md#833---generating-hashes)
|
|
127
|
-
- 8.4 [Event & History Management](/.github/docs/docs-technical.md#84---event---history-management)
|
|
128
|
-
- 8.5 [Action Workflow](/.github/docs/docs-technical.md#85---action-workflow)
|
|
129
|
-
9. [Workers & Performance](/.github/docs/docs-technical.md#9---workers---performance)
|
|
130
|
-
- 9.1 [Setting up Workers](/.github/docs/docs-technical.md#91---setting-up-workers)
|
|
131
|
-
- 9.2 [IO/CPU Issues](/.github/docs/docs-technical.md#92---iocpu-issues)
|
|
132
|
-
- 9.3 [Recommended Hardware Specifications](/.github/docs/docs-technical.md#93---recommended-hardware-specifications)
|
|
133
|
-
|
|
134
|
-
|
|
25
|
+
* [1.0 - Introduction](#introduction)
|
|
26
|
+
- [1.1 - Package Installation](#package-installation)
|
|
27
|
+
- [1.2 - Usage](#usage)
|
|
28
|
+
* [2.0 - Sources & Attributes](/.github/docs/chapters/sources-and-attributes.md)
|
|
29
|
+
* [2.1 - NOAA Weather Wire Service](/.github/docs/chapters/sources-and-attributes.md#21--noaa-weather-wire-service)
|
|
30
|
+
* [2.1.1 - Basic Settings](/.github/docs/chapters/sources-and-attributes.md#211---basic-settings)
|
|
31
|
+
* [2.1.2 - Connection Settings](/.github/docs/chapters/sources-and-attributes.md#212---connection-settings)
|
|
32
|
+
* [2.1.3 - Stanza Caching & Retention](/.github/docs/chapters/sources-and-attributes.md#213---stanza-caching--retention)
|
|
33
|
+
* [2.1.4 - Stanza Processing & Filtering (Pre-Event Processing)](/.github/docs/chapters/sources-and-attributes.md#214---stanza-processing--filtering-pre-event-processing)
|
|
34
|
+
* [2.2 - National Weather Service API](/.github/docs/chapters/sources-and-attributes.md#22---national-weather-service-api)
|
|
35
|
+
* [2.2.1 - Basic Settings](/.github/docs/chapters/sources-and-attributes.md#221---basic-settings)
|
|
36
|
+
* [2.3 - NOAA Weather Wire Service vs NWS RESTful API](/.github/docs/chapters/sources-and-attributes.md#23---noaa-weather-wire-service-vs-nws-restful-api)
|
|
37
|
+
* [2.4 - Formatting Standards](/.github/docs/chapters/sources-and-attributes.md#24---formatting-standards)
|
|
38
|
+
* [2.4.1 - GeoJSON Format](/.github/docs/chapters/sources-and-attributes.md#241---geojson-format)
|
|
39
|
+
* [2.4.2 - World Meteorological Organization (WMO) Format](/.github/docs/chapters/sources-and-attributes.md#242---world-meteorological-organization-wmo-format)
|
|
40
|
+
* [3.0 - General Configurations](/.github/docs/chapters/general-configurations.md)
|
|
41
|
+
* [3.1 - Core Configurations](/.github/docs/chapters/general-configurations.md#31---core-configurations)
|
|
42
|
+
* [3.1.1 - Timezone Handling](/.github/docs/chapters/general-configurations.md#311---timezone-handling)
|
|
43
|
+
* [3.1.2 - Database Management](/.github/docs/chapters/general-configurations.md#312---database-management)
|
|
44
|
+
* [3.1.3 - Broadcastify Management & Filtering](/.github/docs/chapters/general-configurations.md#313---broadcastify-management--filtering)
|
|
45
|
+
* [3.1.4 - Boundary & Population Data Management](/.github/docs/chapters/general-configurations.md#314---boundary--population-data-management)
|
|
46
|
+
* [3.1.5 - NTFY Mobile Push Notifications](/.github/docs/chapters/general-configurations.md#315---ntfy-mobile-push-notifications)
|
|
47
|
+
* [3.1.6 - Action Settings](/.github/docs/chapters/general-configurations.md#316---action-settings)
|
|
135
48
|
|
|
136
49
|
## Introduction
|
|
50
|
+
Formally known as *atmosx-nwws-parser*, **@atmosx/event-product-parser** is a TypeScript/JavaScript library designed to parse and ingest NOAA and NWS Weather Text Products. It includes quality of life features such as ingestion tools, graphics generation, audio output, and additional utilities.
|
|
137
51
|
|
|
138
|
-
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.
|
|
139
|
-
|
|
140
|
-
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.
|
|
141
|
-
|
|
142
|
-
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.
|
|
143
|
-
|
|
144
|
-
**Note:** *This package is designed specifically for NOAA/NWS weather products and currently supports weather data originating from the United States and its territories.*
|
|
145
52
|
|
|
53
|
+
### Package Installation
|
|
146
54
|
|
|
147
|
-
|
|
148
|
-
**NPM**:
|
|
55
|
+
**Node Package Manager (NPM)**:
|
|
149
56
|
```bash
|
|
150
57
|
$ npm install @atmosx/event-product-parser
|
|
151
58
|
```
|
|
152
59
|
|
|
153
|
-
**PNPM**:
|
|
60
|
+
**Performant Node Package Manager (PNPM)**:
|
|
154
61
|
```bash
|
|
155
62
|
$ pnpm install @atmosx/event-product-parser
|
|
156
63
|
```
|
|
157
64
|
|
|
158
|
-
|
|
65
|
+
### Usage
|
|
159
66
|
|
|
160
|
-
|
|
67
|
+
**Typescript**:
|
|
68
|
+
```typescript
|
|
161
69
|
import { Manager } from "@atmosx/event-product-parser"
|
|
162
|
-
const
|
|
70
|
+
const manager = new Manager({...settings})
|
|
163
71
|
```
|
|
164
72
|
|
|
165
|
-
|
|
166
|
-
```
|
|
167
|
-
const { Manager } = require("@atmosx/event-product-parser")
|
|
168
|
-
const
|
|
73
|
+
**Javascript**:
|
|
74
|
+
```javascript
|
|
75
|
+
const { Manager } = require("@atmosx/event-product-parser");
|
|
76
|
+
const manager = new Manager({...settings});
|
|
169
77
|
```
|