@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.
- package/README.md +4 -237
- package/dist/cjs/index.cjs +2233 -3105
- package/dist/esm/index.mjs +2233 -3108
- package/package.json +3 -2
- package/src/@building/building.clean.ts +30 -0
- package/src/@building/building.create.ts +42 -0
- package/src/@building/building.enhance.ts +56 -0
- package/src/@building/building.geometry.ts +42 -0
- package/src/@building/building.headers.ts +37 -0
- package/src/@building/building.office.ts +43 -0
- package/src/@building/building.polygon.ts +71 -0
- package/src/@building/building.properties.ts +89 -0
- package/src/@building/building.signature.ts +78 -0
- package/src/@building/building.tags.ts +24 -0
- package/src/@building/building.tracking.ts +68 -0
- package/src/@building/building.validate.ts +132 -0
- package/src/@core/core.callback.ts +39 -0
- package/src/@core/core.getEvents.ts +25 -0
- package/src/@core/core.getNodes.ts +25 -0
- package/src/@core/core.listener.ts +24 -0
- package/src/@core/core.setNode.ts +81 -0
- package/src/@core/core.start.ts +54 -0
- package/src/@core/core.stop.ts +32 -0
- package/src/@dictionaries/dictionaries.betterEventNames.ts +85 -0
- package/src/@dictionaries/dictionaries.eventActions.ts +28 -0
- package/src/@dictionaries/{awips.ts → dictionaries.eventAwipAbreviations.ts} +12 -6
- package/src/@dictionaries/dictionaries.eventCancelMessages.ts +29 -0
- package/src/@dictionaries/dictionaries.eventCauses.ts +36 -0
- package/src/@dictionaries/dictionaries.eventProducts.ts +25 -0
- package/src/@dictionaries/dictionaries.eventRecords.ts +25 -0
- package/src/@dictionaries/dictionaries.eventSeverity.ts +27 -0
- package/src/@dictionaries/dictionaries.eventStatus.ts +31 -0
- package/src/@dictionaries/{signatures.ts → dictionaries.eventTags.ts} +13 -68
- package/src/@dictionaries/dictionaries.eventTypes.ts +82 -0
- package/src/@dictionaries/dictionaries.eventsOffshore.ts +31 -0
- package/src/@dictionaries/dictionaries.hailStrings.ts +31 -0
- package/src/@dictionaries/{icao.ts → dictionaries.officeICAOs.ts} +13 -6
- package/src/@dictionaries/dictionaries.regExp.ts +28 -0
- package/src/@dictionaries/dictionaries.shapefileLinks.ts +36 -0
- package/src/@dictionaries/dictionaries.statusCorrelationText.ts +40 -0
- package/src/@dictionaries/dictionaries.test_signatures.ts +23 -0
- package/src/@dictionaries/dictionaries.transcribedMessageReplacements.ts +68 -0
- package/src/@events/events.api.ts +113 -0
- package/src/@events/events.text.ts +79 -0
- package/src/@events/events.ugc.ts +83 -0
- package/src/@events/events.vtec.ts +87 -0
- package/src/@manager/manager.mkEvent.ts +79 -0
- package/src/@manager/manager.rmEvent.ts +44 -0
- package/src/@manager/manager.setHash.ts +37 -0
- package/src/@manager/manager.updateNodes.ts +51 -0
- package/src/@modules/@database/database.cache.ts +48 -0
- package/src/@modules/@database/database.init.ts +45 -0
- package/src/@modules/@database/database.shapefiles.ts +97 -0
- package/src/@modules/@database/database.stanza.ts +47 -0
- package/src/@modules/@stanza/stanza.getAwipsType.ts +46 -0
- package/src/@modules/@stanza/stanza.validate.ts +50 -0
- package/src/@modules/@utilities/utilities.createHttp.ts +75 -0
- package/src/@modules/@utilities/utilities.getFormattedTime.ts +43 -0
- package/src/@modules/@utilities/utilities.getSettings.ts +25 -0
- package/src/@modules/@utilities/utilities.getShapeNearestPoint.ts +114 -0
- package/src/@modules/@utilities/utilities.setCronSchedule.ts +38 -0
- package/src/@modules/@utilities/utilities.setEventEmit.ts +41 -0
- package/src/@modules/@utilities/utilities.setListener.ts +30 -0
- package/src/@modules/@utilities/utilities.setSettings.ts +42 -0
- package/src/@modules/@utilities/utilities.setSleep.ts +33 -0
- package/src/@modules/@utilities/utilities.setTimeoutAction.ts +59 -0
- package/src/@modules/@utilities/utilities.setWarning.ts +34 -0
- package/src/@modules/@xmpp/xmpp.xDeploy.ts +58 -0
- package/src/@modules/@xmpp/xmpp.xError.ts +38 -0
- package/src/@modules/@xmpp/xmpp.xOffline.ts +38 -0
- package/src/@modules/@xmpp/xmpp.xOnline.ts +61 -0
- package/src/@modules/@xmpp/xmpp.xReconnect.ts +59 -0
- package/src/@modules/@xmpp/xmpp.xStanza.ts +63 -0
- package/src/@parsers/@hvtec/hvtec.extract.ts +40 -0
- package/src/@parsers/@pvtec/pvtec.expires.ts +26 -0
- package/src/@parsers/@pvtec/pvtec.extract.ts +50 -0
- package/src/@parsers/@text/text.getDescriptionFromProduct.ts +53 -0
- package/src/@parsers/@text/text.getPolygonFromProduct.ts +32 -0
- package/src/@parsers/@text/text.getTextFromProduct.ts +43 -0
- package/src/@parsers/@text/text.getXML.ts +61 -0
- package/src/@parsers/@ugc/ugc.coordinates.ts +110 -0
- package/src/@parsers/@ugc/ugc.expiry.ts +32 -0
- package/src/@parsers/@ugc/ugc.extract.ts +37 -0
- package/src/@parsers/@ugc/ugc.header.ts +30 -0
- package/src/@parsers/@ugc/ugc.locations.ts +29 -0
- package/src/@parsers/@ugc/ugc.zones.ts +52 -0
- package/src/@types/type.event.ts +67 -0
- package/src/@types/type.properties.ts +75 -0
- package/src/@types/types.attributes.ts +28 -0
- package/src/@types/types.compiled.ts +35 -0
- package/src/@types/types.hash.ts +24 -0
- package/src/@types/types.hvtec.ts +25 -0
- package/src/@types/types.pvtec.ts +29 -0
- package/src/@types/types.settings.ts +71 -0
- package/src/@types/types.stanza.ts +37 -0
- package/src/@types/types.ugc.ts +24 -0
- package/src/bootstrap.ts +82 -163
- package/src/index.ts +48 -216
- package/test.js +65 -49
- package/src/@dictionaries/events.ts +0 -168
- package/src/@parsers/@events/api.ts +0 -146
- package/src/@parsers/@events/cap.ts +0 -123
- package/src/@parsers/@events/text.ts +0 -104
- package/src/@parsers/@events/ugc.ts +0 -107
- package/src/@parsers/@events/vtec.ts +0 -76
- package/src/@parsers/events.ts +0 -392
- package/src/@parsers/hvtec.ts +0 -46
- package/src/@parsers/pvtec.ts +0 -72
- package/src/@parsers/stanza.ts +0 -97
- package/src/@parsers/text.ts +0 -165
- package/src/@parsers/ugc.ts +0 -247
- package/src/@submodules/database.ts +0 -201
- package/src/@submodules/eas.ts +0 -490
- package/src/@submodules/utils.ts +0 -191
- package/src/@submodules/xmpp.ts +0 -142
- 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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
+
|