@atmosx/event-product-parser 2.0.16 → 3.0.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.
Files changed (116) hide show
  1. package/README.md +4 -237
  2. package/dist/cjs/index.cjs +2233 -3105
  3. package/dist/esm/index.mjs +2233 -3108
  4. package/package.json +3 -2
  5. package/src/@building/building.clean.ts +30 -0
  6. package/src/@building/building.create.ts +42 -0
  7. package/src/@building/building.enhance.ts +56 -0
  8. package/src/@building/building.geometry.ts +42 -0
  9. package/src/@building/building.headers.ts +37 -0
  10. package/src/@building/building.office.ts +43 -0
  11. package/src/@building/building.polygon.ts +71 -0
  12. package/src/@building/building.properties.ts +89 -0
  13. package/src/@building/building.signature.ts +78 -0
  14. package/src/@building/building.tags.ts +24 -0
  15. package/src/@building/building.tracking.ts +68 -0
  16. package/src/@building/building.validate.ts +132 -0
  17. package/src/@core/core.callback.ts +39 -0
  18. package/src/@core/core.getEvents.ts +25 -0
  19. package/src/@core/core.getNodes.ts +25 -0
  20. package/src/@core/core.listener.ts +24 -0
  21. package/src/@core/core.setNode.ts +81 -0
  22. package/src/@core/core.start.ts +54 -0
  23. package/src/@core/core.stop.ts +32 -0
  24. package/src/@dictionaries/dictionaries.betterEventNames.ts +85 -0
  25. package/src/@dictionaries/dictionaries.eventActions.ts +28 -0
  26. package/src/@dictionaries/{awips.ts → dictionaries.eventAwipAbreviations.ts} +12 -6
  27. package/src/@dictionaries/dictionaries.eventCancelMessages.ts +29 -0
  28. package/src/@dictionaries/dictionaries.eventCauses.ts +36 -0
  29. package/src/@dictionaries/dictionaries.eventProducts.ts +25 -0
  30. package/src/@dictionaries/dictionaries.eventRecords.ts +25 -0
  31. package/src/@dictionaries/dictionaries.eventSeverity.ts +27 -0
  32. package/src/@dictionaries/dictionaries.eventStatus.ts +31 -0
  33. package/src/@dictionaries/{signatures.ts → dictionaries.eventTags.ts} +13 -68
  34. package/src/@dictionaries/dictionaries.eventTypes.ts +82 -0
  35. package/src/@dictionaries/dictionaries.eventsOffshore.ts +31 -0
  36. package/src/@dictionaries/dictionaries.hailStrings.ts +31 -0
  37. package/src/@dictionaries/{icao.ts → dictionaries.officeICAOs.ts} +13 -6
  38. package/src/@dictionaries/dictionaries.regExp.ts +28 -0
  39. package/src/@dictionaries/dictionaries.shapefileLinks.ts +36 -0
  40. package/src/@dictionaries/dictionaries.statusCorrelationText.ts +40 -0
  41. package/src/@dictionaries/dictionaries.test_signatures.ts +23 -0
  42. package/src/@dictionaries/dictionaries.transcribedMessageReplacements.ts +68 -0
  43. package/src/@events/events.api.ts +113 -0
  44. package/src/@events/events.text.ts +79 -0
  45. package/src/@events/events.ugc.ts +83 -0
  46. package/src/@events/events.vtec.ts +87 -0
  47. package/src/@manager/manager.mkEvent.ts +79 -0
  48. package/src/@manager/manager.rmEvent.ts +44 -0
  49. package/src/@manager/manager.setHash.ts +37 -0
  50. package/src/@manager/manager.updateNodes.ts +51 -0
  51. package/src/@modules/@database/database.cache.ts +48 -0
  52. package/src/@modules/@database/database.init.ts +45 -0
  53. package/src/@modules/@database/database.shapefiles.ts +97 -0
  54. package/src/@modules/@database/database.stanza.ts +47 -0
  55. package/src/@modules/@stanza/stanza.getAwipsType.ts +46 -0
  56. package/src/@modules/@stanza/stanza.validate.ts +50 -0
  57. package/src/@modules/@utilities/utilities.createHttp.ts +75 -0
  58. package/src/@modules/@utilities/utilities.getFormattedTime.ts +43 -0
  59. package/src/@modules/@utilities/utilities.getSettings.ts +25 -0
  60. package/src/@modules/@utilities/utilities.getShapeNearestPoint.ts +114 -0
  61. package/src/@modules/@utilities/utilities.setCronSchedule.ts +38 -0
  62. package/src/@modules/@utilities/utilities.setEventEmit.ts +41 -0
  63. package/src/@modules/@utilities/utilities.setListener.ts +30 -0
  64. package/src/@modules/@utilities/utilities.setSettings.ts +42 -0
  65. package/src/@modules/@utilities/utilities.setSleep.ts +33 -0
  66. package/src/@modules/@utilities/utilities.setTimeoutAction.ts +59 -0
  67. package/src/@modules/@utilities/utilities.setWarning.ts +34 -0
  68. package/src/@modules/@xmpp/xmpp.xDeploy.ts +58 -0
  69. package/src/@modules/@xmpp/xmpp.xError.ts +38 -0
  70. package/src/@modules/@xmpp/xmpp.xOffline.ts +38 -0
  71. package/src/@modules/@xmpp/xmpp.xOnline.ts +61 -0
  72. package/src/@modules/@xmpp/xmpp.xReconnect.ts +59 -0
  73. package/src/@modules/@xmpp/xmpp.xStanza.ts +63 -0
  74. package/src/@parsers/@hvtec/hvtec.extract.ts +40 -0
  75. package/src/@parsers/@pvtec/pvtec.expires.ts +26 -0
  76. package/src/@parsers/@pvtec/pvtec.extract.ts +50 -0
  77. package/src/@parsers/@text/text.getDescriptionFromProduct.ts +53 -0
  78. package/src/@parsers/@text/text.getPolygonFromProduct.ts +32 -0
  79. package/src/@parsers/@text/text.getTextFromProduct.ts +43 -0
  80. package/src/@parsers/@text/text.getXML.ts +61 -0
  81. package/src/@parsers/@ugc/ugc.coordinates.ts +110 -0
  82. package/src/@parsers/@ugc/ugc.expiry.ts +32 -0
  83. package/src/@parsers/@ugc/ugc.extract.ts +37 -0
  84. package/src/@parsers/@ugc/ugc.header.ts +30 -0
  85. package/src/@parsers/@ugc/ugc.locations.ts +29 -0
  86. package/src/@parsers/@ugc/ugc.zones.ts +52 -0
  87. package/src/@types/type.event.ts +67 -0
  88. package/src/@types/type.properties.ts +75 -0
  89. package/src/@types/types.attributes.ts +28 -0
  90. package/src/@types/types.compiled.ts +35 -0
  91. package/src/@types/types.hash.ts +24 -0
  92. package/src/@types/types.hvtec.ts +25 -0
  93. package/src/@types/types.pvtec.ts +29 -0
  94. package/src/@types/types.settings.ts +71 -0
  95. package/src/@types/types.stanza.ts +37 -0
  96. package/src/@types/types.ugc.ts +24 -0
  97. package/src/bootstrap.ts +82 -163
  98. package/src/index.ts +48 -216
  99. package/test.js +65 -49
  100. package/src/@dictionaries/events.ts +0 -168
  101. package/src/@parsers/@events/api.ts +0 -146
  102. package/src/@parsers/@events/cap.ts +0 -123
  103. package/src/@parsers/@events/text.ts +0 -104
  104. package/src/@parsers/@events/ugc.ts +0 -107
  105. package/src/@parsers/@events/vtec.ts +0 -76
  106. package/src/@parsers/events.ts +0 -392
  107. package/src/@parsers/hvtec.ts +0 -46
  108. package/src/@parsers/pvtec.ts +0 -72
  109. package/src/@parsers/stanza.ts +0 -97
  110. package/src/@parsers/text.ts +0 -165
  111. package/src/@parsers/ugc.ts +0 -247
  112. package/src/@submodules/database.ts +0 -201
  113. package/src/@submodules/eas.ts +0 -490
  114. package/src/@submodules/utils.ts +0 -191
  115. package/src/@submodules/xmpp.ts +0 -142
  116. package/src/types.ts +0 -259
@@ -0,0 +1,25 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const eventRecords: Record<string, string> = {
21
+ "NO": "No Record Expected",
22
+ "NR": "Near Record or possible record",
23
+ "UU": "Unknown history of records",
24
+ "OO": "Other",
25
+ }
@@ -0,0 +1,27 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const eventSeverity: Record<string, string> = {
21
+ N: "Not Expected",
22
+ 0: "Areal Flood or FF Product",
23
+ 1: "Minor",
24
+ 2: "Moderate",
25
+ 3: "Major",
26
+ U: "Unknown",
27
+ }
@@ -0,0 +1,31 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const eventStatus: Record<string, string> = {
21
+ "NEW": "Issued",
22
+ "CON": "Updated",
23
+ "EXT": "Extended",
24
+ "EXA": "Extended",
25
+ "EXB": "Extended",
26
+ "UPG": "Upgraded",
27
+ "COR": "Correction",
28
+ "ROU": "Routine",
29
+ "CAN": "Cancelled",
30
+ "EXP": "Expired"
31
+ }
@@ -1,17 +1,23 @@
1
1
  /*
2
- _ _ __ __
2
+ _ _ _ __ __
3
3
  /\ | | | | (_) \ \ / /
4
4
  / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
- / /\ \| __| "_ ` _ \ / _ \/ __| "_ \| "_ \ / _ \ "__| |/ __| > <
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
6
  / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
7
  /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
- | |
8
+ | |
9
9
  |_|
10
-
11
- Written by: KiyoWx (k3yomi)
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
12
18
  */
13
19
 
14
- export const tags: Record<string, string> = {
20
+ export const eventTags: Record<string, string> = {
15
21
  "FROSTBITE AND HYPOTHERMIA ARE LIKELY": "Frostbite and Hypothermia Likely",
16
22
  "LICKELY BECOME SLICK AND HAZARDOUS": "Slick and Hazardous Roads",
17
23
  "SLIPPERY ROAD CONDITIONS": "Slippery Roads",
@@ -75,65 +81,4 @@ export const tags: Record<string, string> = {
75
81
  "SHOULD EXERCISE CAUTION": "Should Exercise Caution",
76
82
  "LAKE EFFECT SNOW EXPECTED": "Lake Effect Snow Expected",
77
83
  "MODERATE LAKE EFFECT SNOWFALL RATES AND BLOWING SNOW": "Moderate Lake Effect Snowfall and Blowing Snow",
78
- }
79
-
80
- export const cancel_signatures: string[] = [
81
- "subsided sufficiently for the advisory to be cancelled",
82
- "has been cancelled",
83
- "will be allowed to expire",
84
- "has diminished",
85
- "and no longer",
86
- "has been replaced",
87
- "The threat has ended",
88
- "has weakened below severe"
89
- ]
90
-
91
- export const message_signatures: { regex: RegExp, replacement: string }[] = [
92
- { regex: /\*/g, replacement: "" },
93
- { regex: /\.{3,}/g, replacement: "" },
94
- { regex: /\bUTC\b/g, replacement: 'Coordinated Universal Time' },
95
- { regex: /\bGMT\b/g, replacement: 'Greenwich Mean Time' },
96
- { regex: /\bEST\b(?!\w)/g, replacement: 'Eastern Standard Time' },
97
- { regex: /\bEDT\b(?!\w)/g, replacement: 'Eastern Daylight Time' },
98
- { regex: /\bCST\b(?!\w)/g, replacement: 'Central Standard Time' },
99
- { regex: /\bCDT\b(?!\w)/g, replacement: 'Central Daylight Time' },
100
- { regex: /\bMST\b(?!\w)/g, replacement: 'Mountain Standard Time' },
101
- { regex: /\bMDT\b(?!\w)/g, replacement: 'Mountain Daylight Time' },
102
- { regex: /\bPST\b(?!\w)/g, replacement: 'Pacific Standard Time' },
103
- { regex: /\bPDT\b(?!\w)/g, replacement: 'Pacific Daylight Time' },
104
- { regex: /\bAKST\b(?!\w)/g, replacement: 'Alaska Standard Time' },
105
- { regex: /\bAKDT\b(?!\w)/g, replacement: 'Alaska Daylight Time' },
106
- { regex: /\bHST\b(?!\w)/g, replacement: 'Hawaii Standard Time' },
107
- { regex: /\bHDT\b(?!\w)/g, replacement: 'Hawaii Daylight Time' },
108
- { regex: /\bmph\b(?!\w)/g, replacement: 'miles per hour' },
109
- { regex: /\bkm\/h\b(?!\w)/g, replacement: 'kilometers per hour' },
110
- { regex: /\bkmh\b(?!\w)/g, replacement: 'kilometers per hour' },
111
- { regex: /\bkt\b(?!\w)/g, replacement: 'knots' },
112
- { regex: /\bNE\b(?!\w)/g, replacement: 'northeast' },
113
- { regex: /\bNW\b(?!\w)/g, replacement: 'northwest' },
114
- { regex: /\bSE\b(?!\w)/g, replacement: 'southeast' },
115
- { regex: /\bSW\b(?!\w)/g, replacement: 'southwest' },
116
- { regex: /\bNM\b(?!\w)/g, replacement: 'nautical miles' },
117
- { regex: /\bdeg\b(?!\w)/g, replacement: 'degrees' },
118
- { regex: /\btstm\b(?!\w)/g, replacement: 'thunderstorm' },
119
- { regex: /\bmm\b(?!\w)/g, replacement: 'millimeters' },
120
- { regex: /\bcm\b(?!\w)/g, replacement: 'centimeters' },
121
- { regex: /\bin.\b(?!\w)/g, replacement: 'inches' },
122
- { regex: /\bft\b(?!\w)/g, replacement: 'feet' },
123
- { regex: /\bmi\b(?!\w)/g, replacement: 'miles' },
124
- { regex: /\bhr\b(?!\w)/g, replacement: 'hour' },
125
- { regex: /\bhourly\b(?!\w)/g, replacement: 'per hour' },
126
- { regex: /\bkg\b(?!\w)/g, replacement: 'kilograms' },
127
- { regex: /\bg\/kg\b(?!\w)/g, replacement: 'grams per kilogram' },
128
- { regex: /\bmb\b(?!\w)/g, replacement: 'millibars' },
129
- { regex: /\bhPa\b(?!\w)/g, replacement: 'hectopascals' },
130
- { regex: /\bPa\b(?!\w)/g, replacement: 'pascals' },
131
- { regex: /\bKPa\b(?!\w)/g, replacement: 'kilopascals' },
132
- { regex: /\bC\/hr\b(?!\w)/g, replacement: 'degrees Celsius per hour' },
133
- { regex: /\bF\/hr\b(?!\w)/g, replacement: 'degrees Fahrenheit per hour' },
134
- { regex: /\bC\/min\b(?!\w)/g, replacement: 'degrees Celsius per minute' },
135
- { regex: /\bF\/min\b(?!\w)/g, replacement: 'degrees Fahrenheit per minute' },
136
- { regex: /\bC\b(?!\w)/g, replacement: 'degrees Celsius' },
137
- { regex: /\bF\b(?!\w)/g, replacement: 'degrees Fahrenheit' },
138
- ];
139
-
84
+ }
@@ -0,0 +1,82 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const eventTypes: Record<string, string> = {
21
+ "AF": "Ashfall",
22
+ "AS": "Air Stagnation",
23
+ "BH": "Beach Hazard",
24
+ "BW": "Brisk Wind",
25
+ "BZ": "Blizzard",
26
+ "CF": "Coastal Flood",
27
+ "DF": "Debris Flow",
28
+ "DS": "Dust Storm",
29
+ "EC": "Extreme Cold",
30
+ "EH": "Excessive Heat",
31
+ "XH": "Extreme Heat",
32
+ "EW": "Extreme Wind",
33
+ "FA": "Areal Flood",
34
+ "FF": "Flash Flood",
35
+ "FG": "Dense Fog",
36
+ "FL": "Flood",
37
+ "FR": "Frost",
38
+ "FW": "Fire Weather",
39
+ "FZ": "Freeze",
40
+ "GL": "Gale",
41
+ "HF": "Hurricane Force Wind",
42
+ "HT": "Heat",
43
+ "HU": "Hurricane",
44
+ "HW": "High Wind",
45
+ "HY": "Hydrologic",
46
+ "HZ": "Hard Freeze",
47
+ "IS": "Ice Storm",
48
+ "LE": "Lake Effect Snow",
49
+ "LO": "Low Water",
50
+ "LS": "Lakeshore Flood",
51
+ "LW": "Lake Wind",
52
+ "MA": "Special Marine",
53
+ "EQ": "Earthquake",
54
+ "MF": "Dense Fog",
55
+ "MH": "Ashfall",
56
+ "MS": "Dense Smoke",
57
+ "RB": "Small Craft for Rough Bar",
58
+ "RP": "Rip Current Risk",
59
+ "SC": "Small Craft",
60
+ "SE": "Hazardous Seas",
61
+ "SI": "Small Craft for Winds",
62
+ "SM": "Dense Smoke",
63
+ "SQ": "Snow Squall",
64
+ "SR": "Storm",
65
+ "SS": "Storm Surge",
66
+ "SU": "High Surf",
67
+ "SV": "Severe Thunderstorm",
68
+ "SW": "Small Craft for Hazardous Seas",
69
+ "TO": "Tornado",
70
+ "TR": "Tropical Storm",
71
+ "TS": "Tsunami",
72
+ "TY": "Typhoon",
73
+ "SP": "Special Weather",
74
+ "UP": "Heavy Freezing Spray",
75
+ "WC": "Wind Chill",
76
+ "WI": "Wind",
77
+ "WS": "Winter Storm",
78
+ "WW": "Winter Weather",
79
+ "ZF": "Freezing Fog",
80
+ "ZR": "Freezing Rain",
81
+ "ZY": "Freezing Spray"
82
+ };
@@ -0,0 +1,31 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const eventsOffshore: Record<string, string> = {
21
+ "Special Weather Statement": "Special Weather Statement",
22
+ "Hurricane Warning": "Hurricane Warning",
23
+ "Hurricane Force Wind Warning": "Hurricane Force Wind Warning",
24
+ "Hurricane Watch": "Hurricane Watch",
25
+ "Tropical Storm Warning": "Tropical Storm Warning",
26
+ "Tropical Storm Watch": "Tropical Storm Watch",
27
+ "High Wind Warning": "High Wind Warning",
28
+ "Gale Warning": "Gale Warning",
29
+ "Small Craft Advisory": "Small Craft Advisory",
30
+ "Small Craft Warning": "Small Craft Warning",
31
+ };
@@ -0,0 +1,31 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const hailStrings: Record<string, string> = {
21
+ "0.75": "Penny",
22
+ "0.88": "Nickel",
23
+ "1.00": "Quarter",
24
+ "1.25": "Half Dollar",
25
+ "1.50": "Ping Pong Ball",
26
+ "1.75": "Golf Ball",
27
+ "2.00": "Hen Egg",
28
+ "2.50": "Tennis Ball",
29
+ "2.75": "Baseball",
30
+ "4.00": "CD/DVD"
31
+ }
@@ -1,17 +1,23 @@
1
1
  /*
2
- _ _ __ __
2
+ _ _ _ __ __
3
3
  /\ | | | | (_) \ \ / /
4
4
  / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
- / /\ \| __| "_ ` _ \ / _ \/ __| "_ \| "_ \ / _ \ "__| |/ __| > <
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
6
  / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
7
  /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
- | |
8
+ | |
9
9
  |_|
10
-
11
- Written by: KiyoWx (k3yomi)
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
12
18
  */
13
19
 
14
- export const icaos: Record<string, string> = {
20
+ export const officeICAOs: Record<string, string> = {
15
21
  "KLCH": "Lake Charles, LA",
16
22
  "TSTL": "St. Louis, MO",
17
23
  "PABC": "Bethel, AK",
@@ -19,6 +25,7 @@ export const icaos: Record<string, string> = {
19
25
  "KEPZ": "El Paso, TX",
20
26
  "KCYS": "Cheyenne, WY",
21
27
  "KJKL": "Jackson, KY",
28
+ "KWNS": "Storm Prediction Center",
22
29
  "KPAH": "Paducah, KY",
23
30
  "KEMX": "Tucson, AZ",
24
31
  "KMHX": "Morehead City, NC",
@@ -0,0 +1,28 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const regExp: { [key: string]: RegExp } = {
21
+ pvtec: new RegExp(`[OTEX].(NEW|CON|EXT|EXA|EXB|UPG|CAN|EXP|COR|ROU).[A-Z]{4}.[A-Z]{2}.[WAYSFON].[0-9]{4}.[0-9]{6}T[0-9]{4}Z-[0-9]{6}T[0-9]{4}Z`, "g"),
22
+ hvtec: new RegExp(`[a-zA-Z0-9]{4}.[A-Z0-9].[A-Z]{2}.[0-9]{6}T[0-9]{4}Z.[0-9]{6}T[0-9]{4}Z.[0-9]{6}T[0-9]{4}Z.[A-Z]{2}`, "imu"),
23
+ wmo: new RegExp(`[A-Z0-9]{6}\\s[A-Z]{4}\\s\\d{6}`, "imu"),
24
+ ugc1: new RegExp(`(\\w{2}[CZ](\\d{3}((-|>)\\s?(\\n\\n)?))+)`, "imu"),
25
+ ugc2: new RegExp(`(\\d{6}(-|>)\\s?(\\n\\n)?)`, "imu"),
26
+ ugc3: new RegExp(`(\\d{6})(?=-|$)`, "imu"),
27
+ dateline: new RegExp(`\\d{3,4}\\s*(AM|PM)?\\s*[A-Z]{2,4}\\s+[A-Z]{3,}\\s+[A-Z]{3,}\\s+\\d{1,2}\\s+\\d{4}`, "gim"),
28
+ }
@@ -0,0 +1,36 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ interface ShapefilesResponse {
21
+ name: string
22
+ id: string
23
+ link: string
24
+ }
25
+
26
+ export const shapefileLinks: ShapefilesResponse[] = [
27
+ {name: "us_counties", id: "C", link: "https://www.weather.gov/source/gis/Shapefiles/County/c_16ap26.zip"},
28
+ {name: "us_states_territories", id: "Z", link: "https://www.weather.gov/source/gis/Shapefiles/County/s_16ap26.zip"},
29
+ {name: "fire_weather_zones", id: "Z", link: "https://www.weather.gov/source/gis/Shapefiles/WSOM/fz16ap26.zip"},
30
+ {name: "costal_marine_zones", id: "Z", link: "https://www.weather.gov/source/gis/Shapefiles/WSOM/mz16ap26.zip"},
31
+ {name: "offshore_marine_zones", id: "Z", link: "https://www.weather.gov/source/gis/Shapefiles/WSOM/oz16ap26.zip"},
32
+ {name: "public_forecast_zones", id: "Z", link: "https://www.weather.gov/source/gis/Shapefiles/WSOM/z_16ap26.zip"},
33
+ {name: "county_warning_areas", id: "Z", link: "https://www.weather.gov/source/gis/Shapefiles/WSOM/w_16ap26.zip"},
34
+ {name: "river_forecast_boundaries", id: "Z", link: "https://www.weather.gov/source/gis/Shapefiles/Misc/rf05mr24.zip"},
35
+ {name: "high_seas_marine_zones", id: "Z", link: "https://www.weather.gov/source/gis/Shapefiles/WSOM/hz17fe26.zip"}
36
+ ]
@@ -0,0 +1,40 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ type TypeCorrelations = {
21
+ type: string
22
+ name: string
23
+ isCancel: boolean
24
+ isUpdate: boolean
25
+ isIssued: boolean
26
+ }
27
+
28
+ export const statusCorrelationText: TypeCorrelations[] = [
29
+ {type: "Update", name: "Updated", isCancel: false, isUpdate: true, isIssued: false},
30
+ {type: "Cancel", name: "Cancelled", isCancel: true, isUpdate: false, isIssued: false},
31
+ {type: "Alert", name: "Issued", isCancel: false, isUpdate: false, isIssued: true},
32
+ {type: "Updated", name: "Updated", isCancel: false, isUpdate: true, isIssued: false},
33
+ {type: "Expired", name: "Expired", isCancel: true, isUpdate: false, isIssued: false},
34
+ {type: "Issued", name: "Issued", isCancel: false, isUpdate: false, isIssued: true},
35
+ {type: "Extended", name: "Extended", isCancel: false, isUpdate: true, isIssued: false},
36
+ {type: "Correction", name: "Correction", isCancel: false, isUpdate: true, isIssued: false},
37
+ {type: "Upgraded", name: "Upgraded", isCancel: false, isUpdate: true, isIssued: false},
38
+ {type: "Cancelled", name: "Cancelled", isCancel: true, isUpdate: false, isIssued: false},
39
+ {type: "Routine", name: "Routine", isCancel: false, isUpdate: true, isIssued: false},
40
+ ]
@@ -0,0 +1,23 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const test_signatures: string[] = [
21
+ `This is a test message`,
22
+ `THIS_MESSAGE_IS_FOR_TEST_PURPOSES_ONLY`
23
+ ]
@@ -0,0 +1,68 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
12
+ Discord: https://atmosphericx-discord.scriptkitty.cafe
13
+ Ko-Fi: https://ko-fi.com/k3yomi
14
+ Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
15
+
16
+ Internal Package: @atmosx/event-product-parser
17
+
18
+ */
19
+
20
+ export const transcribedMessageReplacements: { regex: RegExp, replacement: string }[] = [
21
+ { regex: /\*/g, replacement: "" },
22
+ { regex: /\.{3,}/g, replacement: "" },
23
+ { regex: /\bUTC\b/g, replacement: 'Coordinated Universal Time' },
24
+ { regex: /\bGMT\b/g, replacement: 'Greenwich Mean Time' },
25
+ { regex: /\bEST\b(?!\w)/g, replacement: 'Eastern Standard Time' },
26
+ { regex: /\bEDT\b(?!\w)/g, replacement: 'Eastern Daylight Time' },
27
+ { regex: /\bCST\b(?!\w)/g, replacement: 'Central Standard Time' },
28
+ { regex: /\bCDT\b(?!\w)/g, replacement: 'Central Daylight Time' },
29
+ { regex: /\bMST\b(?!\w)/g, replacement: 'Mountain Standard Time' },
30
+ { regex: /\bMDT\b(?!\w)/g, replacement: 'Mountain Daylight Time' },
31
+ { regex: /\bPST\b(?!\w)/g, replacement: 'Pacific Standard Time' },
32
+ { regex: /\bPDT\b(?!\w)/g, replacement: 'Pacific Daylight Time' },
33
+ { regex: /\bAKST\b(?!\w)/g, replacement: 'Alaska Standard Time' },
34
+ { regex: /\bAKDT\b(?!\w)/g, replacement: 'Alaska Daylight Time' },
35
+ { regex: /\bHST\b(?!\w)/g, replacement: 'Hawaii Standard Time' },
36
+ { regex: /\bHDT\b(?!\w)/g, replacement: 'Hawaii Daylight Time' },
37
+ { regex: /\bmph\b(?!\w)/g, replacement: 'miles per hour' },
38
+ { regex: /\bkm\/h\b(?!\w)/g, replacement: 'kilometers per hour' },
39
+ { regex: /\bkmh\b(?!\w)/g, replacement: 'kilometers per hour' },
40
+ { regex: /\bkt\b(?!\w)/g, replacement: 'knots' },
41
+ { regex: /\bNE\b(?!\w)/g, replacement: 'northeast' },
42
+ { regex: /\bNW\b(?!\w)/g, replacement: 'northwest' },
43
+ { regex: /\bSE\b(?!\w)/g, replacement: 'southeast' },
44
+ { regex: /\bSW\b(?!\w)/g, replacement: 'southwest' },
45
+ { regex: /\bNM\b(?!\w)/g, replacement: 'nautical miles' },
46
+ { regex: /\bdeg\b(?!\w)/g, replacement: 'degrees' },
47
+ { regex: /\btstm\b(?!\w)/g, replacement: 'thunderstorm' },
48
+ { regex: /\bmm\b(?!\w)/g, replacement: 'millimeters' },
49
+ { regex: /\bcm\b(?!\w)/g, replacement: 'centimeters' },
50
+ { regex: /\bin.\b(?!\w)/g, replacement: 'inches' },
51
+ { regex: /\bft\b(?!\w)/g, replacement: 'feet' },
52
+ { regex: /\bmi\b(?!\w)/g, replacement: 'miles' },
53
+ { regex: /\bhr\b(?!\w)/g, replacement: 'hour' },
54
+ { regex: /\bhourly\b(?!\w)/g, replacement: 'per hour' },
55
+ { regex: /\bkg\b(?!\w)/g, replacement: 'kilograms' },
56
+ { regex: /\bg\/kg\b(?!\w)/g, replacement: 'grams per kilogram' },
57
+ { regex: /\bmb\b(?!\w)/g, replacement: 'millibars' },
58
+ { regex: /\bhPa\b(?!\w)/g, replacement: 'hectopascals' },
59
+ { regex: /\bPa\b(?!\w)/g, replacement: 'pascals' },
60
+ { regex: /\bKPa\b(?!\w)/g, replacement: 'kilopascals' },
61
+ { regex: /\bC\/hr\b(?!\w)/g, replacement: 'degrees Celsius per hour' },
62
+ { regex: /\bF\/hr\b(?!\w)/g, replacement: 'degrees Fahrenheit per hour' },
63
+ { regex: /\bC\/min\b(?!\w)/g, replacement: 'degrees Celsius per minute' },
64
+ { regex: /\bF\/min\b(?!\w)/g, replacement: 'degrees Fahrenheit per minute' },
65
+ { regex: /\bC\b(?!\w)/g, replacement: 'degrees Celsius' },
66
+ { regex: /\bF\b(?!\w)/g, replacement: 'degrees Fahrenheit' },
67
+ ];
68
+