@atmosx/event-product-parser 3.0.0 → 3.0.1

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 (119) hide show
  1. package/README.md +299 -5
  2. package/dist/cjs/index.cjs +10188 -237
  3. package/dist/esm/index.mjs +10186 -237
  4. package/dist/index.d.mts +235 -0
  5. package/dist/index.d.ts +235 -0
  6. package/package.json +4 -3
  7. package/src/@building/building.clean.ts +1 -1
  8. package/src/@building/building.create.ts +1 -1
  9. package/src/@building/building.enhance.ts +1 -1
  10. package/src/@building/building.geometry.ts +7 -1
  11. package/src/@building/building.headers.ts +1 -1
  12. package/src/@building/building.office.ts +1 -1
  13. package/src/@building/building.polygon.ts +1 -1
  14. package/src/@building/building.properties.ts +1 -1
  15. package/src/@building/building.signature.ts +9 -26
  16. package/src/@building/building.tags.ts +1 -1
  17. package/src/@building/building.tracking.ts +1 -1
  18. package/src/@building/building.validate.ts +19 -4
  19. package/src/@core/core.getEvents.ts +1 -1
  20. package/src/@core/core.getNodes.ts +1 -1
  21. package/src/@core/{core.callback.ts → core.getRandomEvent.ts} +3 -17
  22. package/src/@core/core.getVersion.ts +25 -0
  23. package/src/@core/core.listener.ts +1 -1
  24. package/src/@core/core.setNode.ts +2 -2
  25. package/src/@core/core.start.ts +9 -4
  26. package/src/@core/core.stop.ts +1 -1
  27. package/src/@dictionaries/dictionaries.betterEventNames.ts +5 -1
  28. package/src/@dictionaries/dictionaries.eventActions.ts +1 -1
  29. package/src/@dictionaries/dictionaries.eventAwipAbreviations.ts +2 -2
  30. package/src/@dictionaries/dictionaries.eventCancelMessages.ts +2 -1
  31. package/src/@dictionaries/dictionaries.eventCauses.ts +1 -1
  32. package/src/@dictionaries/dictionaries.eventProducts.ts +1 -1
  33. package/src/@dictionaries/dictionaries.eventRecords.ts +1 -1
  34. package/src/@dictionaries/dictionaries.eventSeverity.ts +1 -1
  35. package/src/@dictionaries/dictionaries.eventStatus.ts +1 -1
  36. package/src/@dictionaries/dictionaries.eventTags.ts +1 -1
  37. package/src/@dictionaries/dictionaries.eventTypes.ts +1 -1
  38. package/src/@dictionaries/dictionaries.eventsOffshore.ts +1 -1
  39. package/src/@dictionaries/dictionaries.hailStrings.ts +3 -1
  40. package/src/@dictionaries/dictionaries.officeICAOs.ts +1 -1
  41. package/src/@dictionaries/dictionaries.regExp.ts +1 -1
  42. package/src/@dictionaries/dictionaries.shapefileLinks.ts +1 -1
  43. package/src/@dictionaries/dictionaries.statusCorrelationText.ts +1 -1
  44. package/src/@dictionaries/{dictionaries.test_signatures.ts → dictionaries.testSignatures.ts} +3 -2
  45. package/src/@dictionaries/dictionaries.transcribedMessageReplacements.ts +1 -1
  46. package/src/@events/events.api.ts +1 -1
  47. package/src/@events/events.text.ts +1 -1
  48. package/src/@events/events.ugc.ts +1 -1
  49. package/src/@events/events.vtec.ts +5 -5
  50. package/src/@manager/manager.mkEvent.ts +54 -38
  51. package/src/@manager/manager.rmEvent.ts +3 -1
  52. package/src/@manager/manager.setHash.ts +2 -2
  53. package/src/@manager/manager.updateNodes.ts +10 -6
  54. package/src/@manager/manager.updateWebhooks.ts +50 -0
  55. package/src/@modules/@database/database.cache.ts +1 -1
  56. package/src/@modules/@database/database.init.ts +1 -1
  57. package/src/@modules/@database/database.shapefiles.ts +2 -3
  58. package/src/@modules/@database/database.stanza.ts +2 -1
  59. package/src/@modules/@eas/eas.getFloatPCM16.ts +29 -0
  60. package/src/@modules/@eas/eas.getMergedPCM16.ts +32 -0
  61. package/src/@modules/@eas/eas.getPCM16.ts +52 -0
  62. package/src/@modules/@eas/eas.getPCMToFloat.ts +26 -0
  63. package/src/@modules/@eas/eas.getSampledPCM16.ts +36 -0
  64. package/src/@modules/@eas/eas.getWavPCM16.ts +52 -0
  65. package/src/@modules/@eas/eas.setAFSK.ts +52 -0
  66. package/src/@modules/@eas/eas.setAsciiToBits.ts +32 -0
  67. package/src/@modules/@eas/eas.setAttentionTone.ts +40 -0
  68. package/src/@modules/@eas/eas.setEasTone.ts +137 -0
  69. package/src/@modules/@eas/eas.setNoise.ts +31 -0
  70. package/src/@modules/@eas/eas.setRadioEffect.ts +49 -0
  71. package/src/@modules/@eas/eas.setSameHeader.ts +45 -0
  72. package/src/@modules/@stanza/stanza.getAwipsType.ts +1 -1
  73. package/src/@modules/@stanza/stanza.validate.ts +1 -1
  74. package/src/@modules/@utilities/utilities.createHttp.ts +17 -7
  75. package/src/@modules/@utilities/utilities.createWebhook.ts +100 -0
  76. package/src/@modules/@utilities/utilities.getFormattedTime.ts +1 -1
  77. package/src/@modules/@utilities/utilities.getSettings.ts +1 -1
  78. package/src/@modules/@utilities/utilities.getShapeNearestPoint.ts +1 -1
  79. package/src/@modules/@utilities/utilities.setCronSchedule.ts +31 -4
  80. package/src/@modules/@utilities/utilities.setEventEmit.ts +1 -1
  81. package/src/@modules/@utilities/utilities.setListener.ts +3 -3
  82. package/src/@modules/@utilities/utilities.setSettings.ts +1 -1
  83. package/src/@modules/@utilities/utilities.setSleep.ts +3 -3
  84. package/src/@modules/@utilities/utilities.setTimeoutAction.ts +4 -4
  85. package/src/@modules/@utilities/utilities.setWarning.ts +3 -3
  86. package/src/@modules/@xmpp/xmpp.xDeploy.ts +2 -2
  87. package/src/@modules/@xmpp/xmpp.xError.ts +1 -10
  88. package/src/@modules/@xmpp/xmpp.xOffline.ts +2 -2
  89. package/src/@modules/@xmpp/xmpp.xOnline.ts +3 -19
  90. package/src/@modules/@xmpp/xmpp.xReconnect.ts +7 -2
  91. package/src/@modules/@xmpp/xmpp.xStanza.ts +3 -3
  92. package/src/@parsers/@hvtec/hvtec.extract.ts +1 -1
  93. package/src/@parsers/@pvtec/pvtec.expires.ts +1 -1
  94. package/src/@parsers/@pvtec/pvtec.extract.ts +3 -4
  95. package/src/@parsers/@text/text.getDescriptionFromProduct.ts +1 -1
  96. package/src/@parsers/@text/text.getPolygonFromProduct.ts +1 -1
  97. package/src/@parsers/@text/text.getTextFromProduct.ts +1 -1
  98. package/src/@parsers/@text/text.getXML.ts +1 -1
  99. package/src/@parsers/@ugc/ugc.coordinates.ts +1 -1
  100. package/src/@parsers/@ugc/ugc.expiry.ts +1 -1
  101. package/src/@parsers/@ugc/ugc.extract.ts +1 -1
  102. package/src/@parsers/@ugc/ugc.header.ts +1 -1
  103. package/src/@parsers/@ugc/ugc.locations.ts +1 -1
  104. package/src/@parsers/@ugc/ugc.zones.ts +1 -1
  105. package/src/@types/type.event.ts +12 -12
  106. package/src/@types/type.properties.ts +1 -1
  107. package/src/@types/types.attributes.ts +1 -1
  108. package/src/@types/types.compiled.ts +1 -1
  109. package/src/@types/types.hash.ts +1 -1
  110. package/src/@types/types.hvtec.ts +1 -1
  111. package/src/@types/types.pvtec.ts +2 -1
  112. package/src/@types/types.settings.ts +10 -5
  113. package/src/@types/types.stanza.ts +1 -1
  114. package/src/@types/types.ugc.ts +1 -1
  115. package/src/@types/types.webhook.ts +26 -0
  116. package/src/bootstrap.ts +7 -4
  117. package/src/index.ts +11 -12
  118. package/test.js +29 -18
  119. package/tsup.config.ts +1 -0
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -19,20 +19,20 @@
19
19
 
20
20
  import { bootstrap } from "../../bootstrap"
21
21
 
22
- interface ImportOptions {
22
+ interface SetTimeoutActionOptions {
23
23
  identifier: string
24
24
  addTime?: boolean
25
25
  max?: number
26
26
  interval: number
27
27
  }
28
28
 
29
- type ExportOptions = {
29
+ type SetTimeoutActionResponse = {
30
30
  limited: boolean
31
31
  remaining?: number
32
32
  response?: string
33
33
  }
34
34
 
35
- export const setTimeoutAction = (options: ImportOptions): ExportOptions => {
35
+ export const setTimeoutAction = (options: SetTimeoutActionOptions): SetTimeoutActionResponse => {
36
36
  let target = bootstrap?.ratelimits?.[options?.identifier];
37
37
  if (!target) {
38
38
  bootstrap.ratelimits[options?.identifier] = [];
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -20,12 +20,12 @@
20
20
  import { bootstrap } from "../../bootstrap"
21
21
  import { TypeSettings } from "../../@types/types.settings";
22
22
 
23
- interface ImportOptions {
23
+ interface SetWarningOptions {
24
24
  title?: string
25
25
  message: string
26
26
  }
27
27
 
28
- export const setWarning = (options: ImportOptions): void => {
28
+ export const setWarning = (options: SetWarningOptions): void => {
29
29
  const settings = bootstrap.settings as TypeSettings;
30
30
  bootstrap.listener.emit(`log`, `${options.title ?? `[${bootstrap.ansi_colors.YELLOW}ATMOSX-PARSER${bootstrap.ansi_colors.RESET}]`} ${options.message}`)
31
31
  if (settings.EnableJournal) {
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -46,7 +46,7 @@ export const xDeploy = async (): Promise<void> => {
46
46
  await session.start()
47
47
  } catch (error) {
48
48
  setEventEmit({
49
- event: `onXMPPStatus`,
49
+ event: `onServiceStatus`,
50
50
  metadata: {
51
51
  message: `Error occured while starting XMPP Session: ${error}`,
52
52
  data: {},
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -25,14 +25,5 @@ export const xError = () => {
25
25
  bootstrap.session_xmpp.on(`error`, async (error: Error) => {
26
26
  bootstrap.cache.isConnected = false;
27
27
  bootstrap.cache.sigHault = true;
28
- setEventEmit({
29
- event: `onXMPPStatus`,
30
- metadata: {
31
- message: `Client has recieved an error`,
32
- data: {},
33
- type: `error`,
34
- error: true
35
- },
36
- })
37
28
  })
38
29
  }
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -26,7 +26,7 @@ export const xOffline = () => {
26
26
  bootstrap.cache.isConnected = false;
27
27
  bootstrap.cache.sigHault = true;
28
28
  setEventEmit({
29
- event: `onXMPPStatus`,
29
+ event: `onServiceStatus`,
30
30
  metadata: {
31
31
  message: `Client has gone offline`,
32
32
  data: {},
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -24,32 +24,16 @@ import { setEventEmit } from '../@utilities/utilities.setEventEmit';
24
24
  export const xOnline = () => {
25
25
  const settings = bootstrap.settings;
26
26
  bootstrap.session_xmpp.on(`online`, async (address: string) => {
27
- const tick = Date.now();
28
- if (bootstrap.cache.lastConnect && tick - bootstrap.cache.lastConnect > 10e3) {
29
- bootstrap.cache.sigHault = true;
30
- setEventEmit({
31
- event: `onXMPPStatus`,
32
- metadata: {
33
- message: `The XMPP Client is attempting to reconnect too fast, this may be due to network instability and this reconnect request has been throttled. We will attempt to reconnect when all connections have been killed`,
34
- data: {},
35
- type: `offline`,
36
- error: true
37
- },
38
- })
39
- await setSleep({timeout: 2e3})
40
- bootstrap.session_xmpp.stop().catch(() => {});
41
- return;
42
- }
43
27
  bootstrap.cache.sigHault = false;
44
28
  bootstrap.cache.isConnected = true;
45
- bootstrap.cache.lastConnect = tick;
29
+ bootstrap.cache.tReconnects = 0;
46
30
  const nickname = settings.NOAAWeatherWireServiceSettings.CredentialSettings.Nickname;
47
31
  bootstrap.session_xmpp.send(xml('presence', {
48
32
  to: `nwws@conference.nwws-oi.weather.gov/${nickname}`,
49
33
  xmlns: 'http://jabber.org/protocol/muc',
50
34
  }))
51
35
  setEventEmit({
52
- event: `onXMPPStatus`,
36
+ event: `onServiceStatus`,
53
37
  metadata: {
54
38
  message: `Succesfully connected to NOAA Weather Wire Service as "${nickname}"`,
55
39
  data: {},
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -25,6 +25,11 @@ import { setWarning } from "../@utilities/utilities.setWarning";
25
25
  export const xReconnect = async (interval: number): Promise<void> => {
26
26
  const settings = bootstrap.settings as TypeSettings;
27
27
  const lastStanza = Date.now() - bootstrap.cache.lastStanza
28
+ if (interval < 15) {
29
+ setWarning({ message: `Reconnection Interval of ${interval} seconds is too low, setting to 15 seconds` })
30
+ interval = 15;
31
+ bootstrap.settings.NOAAWeatherWireServiceSettings.ReconnectionSettings.ReconnectionInterval = 15;
32
+ }
28
33
  const reconnectThreshold = interval * 1e3
29
34
  if ((!bootstrap.cache.isConnected && !bootstrap.cache.sigHault) || !bootstrap.session_xmpp) {
30
35
  return;
@@ -36,7 +41,7 @@ export const xReconnect = async (interval: number): Promise<void> => {
36
41
  bootstrap.cache.tReconnects += 1;
37
42
  try {
38
43
  setEventEmit({
39
- event: `onXMPPStatus`,
44
+ event: `onServiceStatus`,
40
45
  metadata: {
41
46
  message: `Attempting to reconnect to XMPP Service (Reconnect Attempt ${bootstrap.cache.tReconnects})`,
42
47
  data: {
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -29,7 +29,7 @@ export const xStanza = () => {
29
29
  const msgFrom = stanza?.attrs?.from ?? ``
30
30
  const msgType = stanza?.attrs?.type ?? ``
31
31
  setEventEmit({
32
- event: `onXMPPStatus`,
32
+ event: `onServiceStatus`,
33
33
  metadata: {
34
34
  message: stanza,
35
35
  from: msgFrom,
@@ -50,7 +50,7 @@ export const xStanza = () => {
50
50
  const getOccupant = msgFrom.split(`/`).slice(1).join(`/`)
51
51
  const getAvailability = msgType === `unavailable`
52
52
  setEventEmit({
53
- event: `onXMPPStatus`,
53
+ event: `onServiceStatus`,
54
54
  metadata: {
55
55
  message: `Occupant ${getOccupant} has ${getAvailability ? `left` : `joined`} the room`,
56
56
  data: {},
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -40,9 +40,8 @@ export const pvExtract = (message: string): TypePVTEC[] | null => {
40
40
  status: eventStatus[sub[1]],
41
41
  organization: message.match(regExp.wmo)?.[0] ?? null,
42
42
  expires: getExpiry(dates),
43
- prediction_center:
44
- (sub[4] == `A` || sub[4] == `Y`) &&
45
- (sub[3] == `TO` || sub[3] == `SV`)
43
+ is_watch: (sub[4] == `A` || sub[4] == `Y`) && (sub[3] == `TO` || sub[3] == `SV`),
44
+ prediction_center: sub[2] == `KWNS`
46
45
  ? true : false
47
46
  })
48
47
  }
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -19,6 +19,7 @@
19
19
 
20
20
  import { TypeEventProperties as BaseTypeEventProperties } from "./type.properties";
21
21
  import { TypeHVTEC } from "../@types/types.hvtec";
22
+ import { TypePVTEC } from "./types.pvtec";
22
23
 
23
24
  export type TypeEvent = {
24
25
  type: string
@@ -44,19 +45,18 @@ export type TypeEvent = {
44
45
  tracking: string
45
46
  hash?: string
46
47
  header: string
47
- vtec: string
48
+ vtec: TypePVTEC | null
48
49
  hvtec: TypeHVTEC[]
49
50
  nodes?: {
50
- updated: number
51
- node: {
52
- id?: string | number
53
- coordinates: [number, number]
54
- nearest: [number, number]
55
- miles: number | null
56
- kilometers: number | null
57
- proximity: boolean
58
- }[]
59
- }
51
+ id?: string | number
52
+ coordinates: [number, number]
53
+ nearest: [number, number]
54
+ miles: number | null
55
+ kilometers: number | null
56
+ proximity: boolean
57
+ }[],
58
+ filtered_proximity?: boolean
59
+ updated?: number
60
60
  history: {
61
61
  description: string
62
62
  issued: string
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -25,5 +25,6 @@ export type TypePVTEC = {
25
25
  status: string
26
26
  organization: string
27
27
  expires: string
28
+ is_watch: boolean
28
29
  prediction_center: boolean
29
30
  }
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -17,6 +17,8 @@
17
17
 
18
18
  */
19
19
 
20
+ import { TypeWebhook } from "./types.webhook"
21
+
20
22
  export type TypeSettings = {
21
23
  Database: string
22
24
  EnableWireService: boolean
@@ -47,25 +49,28 @@ export type TypeSettings = {
47
49
  EventsEndpoint: string
48
50
  }
49
51
  GlobalSettings: {
52
+ EventManagement: boolean
50
53
  BetterEventNames: boolean
51
54
  DisableGeometryParsing: boolean
52
55
  UseShapefileCoordinates: boolean
56
+ SPCWatchesOnly: boolean
53
57
  ShapefileSkipPoints: number
54
58
  NodeTTL: number
55
59
  NodeMinDistance: number
60
+ WebhookSettings?: TypeWebhook
56
61
  EventFiltering: {
57
62
  ListeningEvents: string[]
58
63
  ListeningICAO: string[]
59
- IgnoredICAO: string[]
60
- IgnoredEvents: string[]
61
64
  ListeningUGC: string[]
62
65
  ListeningStates: string[]
66
+ IgnoredICAO: string[]
67
+ IgnoredEvents: string[]
63
68
  NodeLocationFiltering: boolean
64
69
  IgnoreTestProducts: boolean
65
70
  },
66
71
  EASSettings: {
67
- ArchiveDirectory: string | void,
68
- IntroWavFile: string | void,
72
+ ArchiveDirectory: string,
73
+ IntroWavFile: string,
69
74
  }
70
75
  }
71
76
  }
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -0,0 +1,26 @@
1
+ /*
2
+ _ _ _ __ __
3
+ /\ | | | | (_) \ \ / /
4
+ / \ | |_ _ __ ___ ___ ___ _ __ | |__ ___ _ __ _ ___ \ V /
5
+ / /\ \| __| '_ ` _ \ / _ \/ __| '_ \| '_ \ / _ \ '__| |/ __| > <
6
+ / ____ \ |_| | | | | | (_) \__ \ |_) | | | | __/ | | | (__ / . \
7
+ /_/ \_\__|_| |_| |_|\___/|___/ .__/|_| |_|\___|_| |_|\___/_/ \_\
8
+ | |
9
+ |_|
10
+
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & 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 type TypeWebhook = {
21
+ webhook: string
22
+ title: string
23
+ message: string
24
+ rate: number
25
+ events: string[]
26
+ }
package/src/bootstrap.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  | |
9
9
  |_|
10
10
 
11
- Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, Everwatch1, & CJ Ziegler)
11
+ Created with ♥ by the AtmosphericX Team (KiyoWx, StarflightWx, & CJ Ziegler)
12
12
  Discord: https://atmosphericx-discord.scriptkitty.cafe
13
13
  Ko-Fi: https://ko-fi.com/k3yomi
14
14
  Documentation: http://localhost/documentation | https://atmosphericx.scriptkitty.cafe/documentation
@@ -21,6 +21,7 @@ import path from 'path'
21
21
  import { EventEmitter } from 'node:events';
22
22
 
23
23
  export const bootstrap = {
24
+ version: `3.0.1`,
24
25
  isReady: true,
25
26
  ratelimits: {},
26
27
  session_xmpp: null,
@@ -34,7 +35,6 @@ export const bootstrap = {
34
35
  },
35
36
  cache: {
36
37
  lastStanza: null,
37
- lastConnect: null,
38
38
  isConnected: false,
39
39
  isReconnecting: false,
40
40
  tReconnects: 0,
@@ -72,20 +72,23 @@ export const bootstrap = {
72
72
  CallbackInterval: 15,
73
73
  EventsEndpoint: `https://api.weather.gov/alerts/active`,
74
74
  },
75
+ WebhookSettings: [],
75
76
  GlobalSettings: {
77
+ EventManagement: true,
76
78
  BetterEventNames: true,
77
79
  DisableGeometryParsing: false,
78
80
  UseShapefileCoordinates: false,
81
+ SPCWatchesOnly: true,
79
82
  ShapefileSkipPoints: 15,
80
83
  NodeTTL: 60,
81
84
  NodeMinDistance: 120,
82
85
  EventFiltering: {
83
86
  ListeningEvents: [],
84
87
  ListeningICAO: [],
85
- IgnoredICAO: [],
86
- IgnoredEvents: [`Xx`, `Test Message`],
87
88
  ListeningUGC: [],
88
89
  ListeningStates: [],
90
+ IgnoredICAO: [],
91
+ IgnoredEvents: [`Test Message`],
89
92
  NodeLocationFiltering: false,
90
93
  IgnoreTestProducts: true,
91
94
  },