@atmosx/event-product-parser 3.0.51 → 3.0.53

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 (140) hide show
  1. package/{CODE_OF_CONDUCT.md → .github/CODE_OF_CONDUCT.md} +9 -9
  2. package/{CONTRIBUTING.md → .github/CONTRIBUTING.md} +29 -29
  3. package/{LICENSE → .github/LICENSE} +17 -17
  4. package/{README.md → .github/README.md} +466 -444
  5. package/{SECURITY.md → .github/SECURITY.md} +20 -20
  6. package/{SUPPORTED_EVENTS.md → .github/SUPPORTED_EVENTS.md} +369 -368
  7. package/.vscode/settings.json +3 -3
  8. package/dist/cjs/index.cjs +243 -213
  9. package/dist/esm/index.mjs +242 -212
  10. package/package.json +52 -52
  11. package/src/@building/building.attachments.ts +82 -82
  12. package/src/@building/building.clean.ts +29 -29
  13. package/src/@building/building.create.ts +55 -55
  14. package/src/@building/building.enhance.ts +59 -59
  15. package/src/@building/building.geometry.ts +47 -47
  16. package/src/@building/building.headers.ts +36 -36
  17. package/src/@building/building.office.ts +42 -42
  18. package/src/@building/building.polygon.ts +69 -69
  19. package/src/@building/building.properties.ts +95 -95
  20. package/src/@building/building.signature.ts +60 -60
  21. package/src/@building/building.tags.ts +23 -23
  22. package/src/@building/building.tracking.ts +67 -67
  23. package/src/@building/building.validate.ts +152 -151
  24. package/src/@core/core.clearEvents.ts +30 -30
  25. package/src/@core/core.createListener.ts +23 -23
  26. package/src/@core/core.getEvents.ts +23 -23
  27. package/src/@core/core.getNodes.ts +23 -23
  28. package/src/@core/core.getRandomEvent.ts +23 -23
  29. package/src/@core/core.getVersion.ts +23 -23
  30. package/src/@core/core.manualEvent.ts +38 -0
  31. package/src/@core/core.query.ts +38 -38
  32. package/src/@core/core.setNode.ts +80 -80
  33. package/src/@core/core.start.ts +60 -60
  34. package/src/@core/core.stop.ts +31 -31
  35. package/src/@dictionaries/dictionaries.actions.ts +27 -27
  36. package/src/@dictionaries/dictionaries.awips.ts +363 -363
  37. package/src/@dictionaries/dictionaries.cancellation.ts +30 -30
  38. package/src/@dictionaries/dictionaries.causes.ts +35 -35
  39. package/src/@dictionaries/dictionaries.correlations.ts +42 -42
  40. package/src/@dictionaries/dictionaries.enhanced.ts +66 -109
  41. package/src/@dictionaries/dictionaries.events.ts +82 -82
  42. package/src/@dictionaries/dictionaries.expressions.ts +28 -28
  43. package/src/@dictionaries/dictionaries.global.ts +24 -0
  44. package/src/@dictionaries/dictionaries.hail.ts +35 -35
  45. package/src/@dictionaries/dictionaries.icao.ts +258 -258
  46. package/src/@dictionaries/dictionaries.matches.ts +54 -35
  47. package/src/@dictionaries/dictionaries.products.ts +24 -24
  48. package/src/@dictionaries/dictionaries.records.ts +25 -25
  49. package/src/@dictionaries/dictionaries.severity.ts +27 -27
  50. package/src/@dictionaries/dictionaries.shapefiles.ts +35 -35
  51. package/src/@dictionaries/dictionaries.states.ts +71 -71
  52. package/src/@dictionaries/dictionaries.status.ts +30 -30
  53. package/src/@dictionaries/dictionaries.tags.ts +92 -92
  54. package/src/@dictionaries/dictionaries.testing.ts +24 -24
  55. package/src/@events/events.api.ts +116 -116
  56. package/src/@events/events.text.ts +84 -80
  57. package/src/@events/events.ugc.ts +89 -85
  58. package/src/@events/events.vtec.ts +86 -86
  59. package/src/@manager/manager.mkEvent.ts +97 -93
  60. package/src/@manager/manager.rmEvent.ts +56 -51
  61. package/src/@manager/manager.setHash.ts +35 -35
  62. package/src/@manager/manager.updateEvents.ts +32 -32
  63. package/src/@manager/manager.updateListener.ts +179 -154
  64. package/src/@manager/manager.updateNodes.ts +53 -53
  65. package/src/@modules/@database/database.broadcastify.ts +66 -66
  66. package/src/@modules/@database/database.cache.ts +49 -49
  67. package/src/@modules/@database/database.init.ts +58 -58
  68. package/src/@modules/@database/database.shapefiles.ts +92 -92
  69. package/src/@modules/@database/database.stanza.ts +46 -46
  70. package/src/@modules/@eas/eas.getCleanDescription.ts +91 -91
  71. package/src/@modules/@eas/eas.getFloatPCM16.ts +29 -29
  72. package/src/@modules/@eas/eas.getMergedPCM16.ts +32 -32
  73. package/src/@modules/@eas/eas.getPCM16.ts +52 -52
  74. package/src/@modules/@eas/eas.getPCMToFloat.ts +26 -26
  75. package/src/@modules/@eas/eas.getSampledPCM16.ts +36 -36
  76. package/src/@modules/@eas/eas.getTTS.ts +54 -54
  77. package/src/@modules/@eas/eas.getWavPCM16.ts +52 -52
  78. package/src/@modules/@eas/eas.setAFSK.ts +51 -51
  79. package/src/@modules/@eas/eas.setAsciiToBits.ts +31 -31
  80. package/src/@modules/@eas/eas.setAttentionTone.ts +40 -40
  81. package/src/@modules/@eas/eas.setEasTone.ts +151 -151
  82. package/src/@modules/@eas/eas.setNoise.ts +32 -32
  83. package/src/@modules/@eas/eas.setRadioEffect.ts +50 -50
  84. package/src/@modules/@eas/eas.setSameHeader.ts +44 -44
  85. package/src/@modules/@stanza/stanza.getAwipsType.ts +45 -45
  86. package/src/@modules/@stanza/stanza.validate.ts +49 -49
  87. package/src/@modules/@utilities/utilities.createHttp.ts +83 -70
  88. package/src/@modules/@utilities/utilities.getFormattedTime.ts +43 -43
  89. package/src/@modules/@utilities/utilities.getLatestIssuance.ts +32 -32
  90. package/src/@modules/@utilities/utilities.getMatched.ts +33 -33
  91. package/src/@modules/@utilities/utilities.getSettings.ts +25 -25
  92. package/src/@modules/@utilities/utilities.getShapeNearestPoint.ts +114 -114
  93. package/src/@modules/@utilities/utilities.setCronSchedule.ts +94 -94
  94. package/src/@modules/@utilities/utilities.setDebug.ts +38 -38
  95. package/src/@modules/@utilities/utilities.setEventEmit.ts +41 -41
  96. package/src/@modules/@utilities/utilities.setListener.ts +30 -30
  97. package/src/@modules/@utilities/utilities.setSettings.ts +42 -42
  98. package/src/@modules/@utilities/utilities.setSleep.ts +33 -33
  99. package/src/@modules/@utilities/utilities.setTimeoutAction.ts +62 -62
  100. package/src/@modules/@utilities/utilities.setWarning.ts +34 -34
  101. package/src/@modules/@xmpp/xmpp.xDeploy.ts +57 -57
  102. package/src/@modules/@xmpp/xmpp.xError.ts +26 -26
  103. package/src/@modules/@xmpp/xmpp.xOffline.ts +36 -36
  104. package/src/@modules/@xmpp/xmpp.xOnline.ts +45 -44
  105. package/src/@modules/@xmpp/xmpp.xReconnect.ts +64 -64
  106. package/src/@modules/@xmpp/xmpp.xStanza.ts +62 -62
  107. package/src/@parsers/@hvtec/hvtec.extract.ts +39 -39
  108. package/src/@parsers/@pvtec/pvtec.expires.ts +25 -25
  109. package/src/@parsers/@pvtec/pvtec.extract.ts +48 -48
  110. package/src/@parsers/@text/text.getDescriptionFromProduct.ts +52 -52
  111. package/src/@parsers/@text/text.getEmbed.ts +55 -55
  112. package/src/@parsers/@text/text.getPolygonFromProduct.ts +53 -32
  113. package/src/@parsers/@text/text.getRaw.ts +54 -0
  114. package/src/@parsers/@text/text.getTextFromProduct.ts +42 -42
  115. package/src/@parsers/@text/text.getXML.ts +60 -60
  116. package/src/@parsers/@ugc/ugc.coordinates.ts +110 -110
  117. package/src/@parsers/@ugc/ugc.expiry.ts +31 -31
  118. package/src/@parsers/@ugc/ugc.extract.ts +36 -36
  119. package/src/@parsers/@ugc/ugc.getCache.ts +23 -23
  120. package/src/@parsers/@ugc/ugc.header.ts +29 -29
  121. package/src/@parsers/@ugc/ugc.locations.ts +56 -56
  122. package/src/@parsers/@ugc/ugc.setCache.ts +27 -27
  123. package/src/@parsers/@ugc/ugc.zones.ts +51 -51
  124. package/src/@types/type.attributes.ts +28 -28
  125. package/src/@types/type.compiled.ts +34 -34
  126. package/src/@types/type.event.ts +69 -69
  127. package/src/@types/type.hash.ts +24 -24
  128. package/src/@types/type.hvtec.ts +25 -25
  129. package/src/@types/type.listener.ts +37 -32
  130. package/src/@types/type.properties.ts +77 -77
  131. package/src/@types/type.pvtec.ts +30 -30
  132. package/src/@types/type.settings.ts +93 -84
  133. package/src/@types/type.stanza.ts +37 -37
  134. package/src/@types/type.ugc.ts +24 -24
  135. package/src/bootstrap.ts +124 -115
  136. package/src/index.ts +74 -74
  137. package/{test.js → testing/init.js} +105 -92
  138. package/tsconfig.json +13 -13
  139. package/tsup.config.ts +15 -15
  140. package/src/@core/core.createEvent.ts +0 -82
@@ -1,94 +1,98 @@
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
- import { TypeEvent } from "../@types/type.event";
21
- import { TypeSettings } from "../@types/type.settings";
22
- import { bootstrap } from "../bootstrap"
23
- import { setHash } from "./manager.setHash";
24
- import { updateListener } from "./manager.updateListener";
25
- import { updateNode } from "./manager.updateNodes";
26
- import { setEventEmit } from "../@modules/@utilities/utilities.setEventEmit";
27
- import { setTimeoutAction } from "../@modules/@utilities/utilities.setTimeoutAction";
28
-
29
- export const mkEvent = async (event: TypeEvent): Promise<void> => {
30
- const settings = bootstrap.settings as TypeSettings;
31
- const features = bootstrap.cache.events.features;
32
-
33
- const getHash = event.properties.metadata.hash;
34
- const getTracking = event.properties.metadata.tracking;
35
- const isEntry = bootstrap.cache.hashes?.find(hash => hash.tracking === getTracking)
36
- const isHashed = isEntry?.hashes?.includes(getHash) ?? false;
37
- const getFeature = features.find(feature => feature.properties.metadata.tracking === getTracking);
38
- if (isHashed || event.properties.status_metadata.is_expired) return
39
- setHash(event, isEntry)
40
-
41
- const isFilteredLocation = await updateNode(event).then(() => event.properties.metadata.filtered_proximity);
42
- if (!isFilteredLocation && settings.GlobalSettings.EventFiltering.NodeLocationFiltering) { return }
43
-
44
- const isRatelimited = setTimeoutAction({ identifier: getTracking, interval: 1, max: 1, addTime: true })
45
- if (!isRatelimited.limited) {
46
- setEventEmit({
47
- event: `onEventStatus`,
48
- metadata: {
49
- type: getFeature ? `Updated` : `New`,
50
- event: event
51
- },
52
- message: `[${getFeature ? 'Updated' : 'New'}] ${event.properties.event} (${event.properties.status}) (${event.properties.metadata.tracking})`
53
- })
54
- }
55
-
56
- if (settings.GlobalSettings.EventManagement) {
57
- if (event.properties.status_metadata.is_issued || event.properties.status_metadata.is_updated) {
58
- if (getFeature) {
59
- const getIndex = features.indexOf(getFeature);
60
- const cHistory = getFeature?.properties?.metadata?.history ?? [];
61
- const cLocations = getFeature?.properties?.locations?.split(";").map((l: string) => l.trim()) ?? [];
62
- const cUgc = getFeature?.properties?.geocode?.ugc ?? [];
63
-
64
- const iHistory = event.properties?.metadata?.history ?? [];
65
- const iLocations = event.properties?.locations?.split(";").map((l: string) => l.trim()) ?? [];
66
- const iUgc = event.properties?.geocode?.ugc ?? [];
67
-
68
- const mHistory = [...cHistory, ...iHistory].filter((v, i, a) => a.indexOf(v) === i).filter((v, i, a) => a.findIndex(h => h.description === v.description && h.issued === v.issued) === i);
69
- const mLocations = [...cLocations, ...iLocations].filter((v, i, a) => a.indexOf(v) === i).join('; ');
70
- const mUgc = [...cUgc, ...iUgc].filter((v, i, a) => a.indexOf(v) === i);
71
-
72
- bootstrap.cache.events.features[getIndex] = {
73
- ...event,
74
- properties: {
75
- ...event.properties,
76
- metadata: {
77
- ...event?.properties?.metadata,
78
- history: mHistory
79
- },
80
- locations: mLocations,
81
- geocode: {
82
- ...event?.properties?.geocode,
83
- ugc: mUgc
84
- },
85
- }
86
- };
87
- await updateListener(bootstrap.cache.events.features[getIndex])
88
- } else {
89
- features.push(event)
90
- await updateListener(event)
91
- }
92
- }
93
- }
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
+ import { TypeEvent } from "../@types/type.event";
21
+ import { TypeSettings } from "../@types/type.settings";
22
+ import { dict_global } from "../@dictionaries/dictionaries.global";
23
+ import { bootstrap } from "../bootstrap"
24
+ import { setHash } from "./manager.setHash";
25
+ import { updateListener } from "./manager.updateListener";
26
+ import { updateNode } from "./manager.updateNodes";
27
+ import { setEventEmit } from "../@modules/@utilities/utilities.setEventEmit";
28
+ import { setTimeoutAction } from "../@modules/@utilities/utilities.setTimeoutAction";
29
+
30
+ export const mkEvent = async (event: TypeEvent): Promise<void> => {
31
+ const settings = bootstrap.settings as TypeSettings;
32
+ const features = bootstrap.cache.events.features;
33
+
34
+ const getHash = event.properties.metadata.hash;
35
+ const getTracking = event.properties.metadata.tracking;
36
+ const isEntry = bootstrap.cache.hashes?.find(hash => hash.tracking === getTracking)
37
+ const isHashed = isEntry?.hashes?.includes(getHash) ?? false;
38
+ const getFeature = features.find(feature => feature.properties.metadata.tracking === getTracking);
39
+
40
+ if (isHashed || event.properties.status_metadata.is_expired) return
41
+ setHash(event, isEntry)
42
+
43
+ const isFilteredLocation = await updateNode(event).then(() => event.properties.metadata.filtered_proximity);
44
+ if (!isFilteredLocation && !dict_global.includes(event.properties.event.toLowerCase()) && settings.GlobalSettings.EventFiltering.NodeLocationFiltering) {
45
+ return
46
+ }
47
+
48
+ const isRatelimited = setTimeoutAction({ identifier: getTracking, interval: 1, max: 1, addTime: true })
49
+ if (!isRatelimited.limited) {
50
+ setEventEmit({
51
+ event: `onEventStatus`,
52
+ metadata: {
53
+ type: getFeature ? `Updated` : `New`,
54
+ event: event
55
+ },
56
+ message: `[${getFeature ? 'Updated' : 'New'}] ${event.properties.event} (${event.properties.status}) (${event.properties.metadata.tracking})`
57
+ })
58
+ }
59
+
60
+ if (settings.GlobalSettings.EventManagement) {
61
+ if (event.properties.status_metadata.is_issued || event.properties.status_metadata.is_updated) {
62
+ if (getFeature) {
63
+ const getIndex = features.indexOf(getFeature);
64
+ const cHistory = getFeature?.properties?.metadata?.history ?? [];
65
+ const cLocations = getFeature?.properties?.locations?.split(";").map((l: string) => l.trim()) ?? [];
66
+ const cUgc = getFeature?.properties?.geocode?.ugc ?? [];
67
+
68
+ const iHistory = event.properties?.metadata?.history ?? [];
69
+ const iLocations = event.properties?.locations?.split(";").map((l: string) => l.trim()) ?? [];
70
+ const iUgc = event.properties?.geocode?.ugc ?? [];
71
+
72
+ const mHistory = [...cHistory, ...iHistory].filter((v, i, a) => a.indexOf(v) === i).filter((v, i, a) => a.findIndex(h => h.description === v.description && h.issued === v.issued) === i);
73
+ const mLocations = [...cLocations, ...iLocations].filter((v, i, a) => a.indexOf(v) === i).join('; ');
74
+ const mUgc = [...cUgc, ...iUgc].filter((v, i, a) => a.indexOf(v) === i);
75
+
76
+ bootstrap.cache.events.features[getIndex] = {
77
+ ...event,
78
+ properties: {
79
+ ...event.properties,
80
+ metadata: {
81
+ ...event?.properties?.metadata,
82
+ history: mHistory
83
+ },
84
+ locations: mLocations,
85
+ geocode: {
86
+ ...event?.properties?.geocode,
87
+ ugc: mUgc
88
+ },
89
+ }
90
+ };
91
+ await updateListener(bootstrap.cache.events.features[getIndex])
92
+ } else {
93
+ features.push(event)
94
+ await updateListener(event)
95
+ }
96
+ }
97
+ }
94
98
  }
@@ -1,52 +1,57 @@
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
- import { TypeEvent } from "../@types/type.event";
21
- import { bootstrap } from "../bootstrap"
22
- import { setEventEmit } from "../@modules/@utilities/utilities.setEventEmit";
23
- import { setTimeoutAction } from "../@modules/@utilities/utilities.setTimeoutAction";
24
- import { updateListener } from "./manager.updateListener";
25
-
26
- export const rmEvent = async (event: TypeEvent): Promise<void> => {
27
- const getEvent = bootstrap.cache.events.features.find(f => f?.properties?.metadata?.tracking === event?.properties?.metadata?.tracking);
28
- const cachedStatus = event.properties.status;
29
- event.properties.expires = new Date().toISOString();
30
- event.properties.status = `Expired`;
31
- event.properties.status_metadata.is_expired = true;
32
- if (getEvent) {
33
- setEventEmit({
34
- event: `onEventStatus`,
35
- metadata: {
36
- type: `Removed`,
37
- event: event
38
- },
39
- message: `[Removed] ${event.properties.event} (${event.properties.status}) (${event.properties.metadata.tracking})`
40
- })
41
- setEventEmit({ event: `onExpiredProduct`, metadata: event })
42
- if (cachedStatus != `Statement`) await updateListener(event)
43
- bootstrap.cache.events.features.splice(bootstrap.cache.events.features.indexOf(getEvent), 1);
44
- bootstrap.cache.hashes = bootstrap.cache.hashes.filter(hash => hash.tracking !== event.properties.metadata.tracking);
45
- setTimeoutAction({ identifier: event.properties.metadata.tracking, expire: true })
46
- }
47
- setEventEmit({
48
- event: `onEventCache`,
49
- metadata: bootstrap.cache.events,
50
- limited: true
51
- })
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
+ import { TypeEvent } from "../@types/type.event";
21
+ import { bootstrap } from "../bootstrap"
22
+ import { setEventEmit } from "../@modules/@utilities/utilities.setEventEmit";
23
+ import { setTimeoutAction } from "../@modules/@utilities/utilities.setTimeoutAction";
24
+ import { updateListener } from "./manager.updateListener";
25
+
26
+ export const rmEvent = async (event: TypeEvent): Promise<void> => {
27
+ const getEvent = bootstrap.cache.events.features.find(f => f?.properties?.metadata?.tracking === event?.properties?.metadata?.tracking);
28
+ const cachedStatus = event.properties.status;
29
+
30
+ event.properties.expires = new Date().toISOString();
31
+ event.properties.status = `Expired`;
32
+ event.properties.status_metadata.is_expired = true;
33
+
34
+ if (getEvent) {
35
+ if (!event.properties.status_metadata.is_statement) {
36
+ setEventEmit({
37
+ event: `onEventStatus`,
38
+ metadata: {
39
+ type: `Removed`,
40
+ event: event
41
+ },
42
+ message: `[Removed] ${event.properties.event} (${event.properties.status}) (${event.properties.metadata.tracking})`
43
+ })
44
+ setEventEmit({ event: `onExpiredProduct`, metadata: event })
45
+ }
46
+ if (cachedStatus != `Statement`) await updateListener(event)
47
+ bootstrap.cache.events.features.splice(bootstrap.cache.events.features.indexOf(getEvent), 1);
48
+ bootstrap.cache.hashes = bootstrap.cache.hashes.filter(hash => hash.tracking !== event.properties.metadata.tracking);
49
+ setTimeoutAction({ identifier: event.properties.metadata.tracking, expire: true })
50
+ }
51
+
52
+ setEventEmit({
53
+ event: `onEventCache`,
54
+ metadata: bootstrap.cache.events,
55
+ limited: true
56
+ })
52
57
  }
@@ -1,36 +1,36 @@
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
- import { TypeEvent } from "../@types/type.event";
21
- import { TypeHash } from "../@types/type.hash"
22
- import { bootstrap } from "../bootstrap"
23
-
24
- export const setHash = (event: TypeEvent, entry: TypeHash): void => {
25
- if (entry) {
26
- entry.hashes.push(event.properties.metadata.hash);
27
- entry.expires = event.properties.expires;
28
- } else {
29
- bootstrap.cache.hashes.push({
30
- tracking: event.properties.metadata.tracking,
31
- hashes: [event.properties.metadata.hash],
32
- expires: event.properties.expires
33
- });
34
- }
35
-
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
+ import { TypeEvent } from "../@types/type.event";
21
+ import { TypeHash } from "../@types/type.hash"
22
+ import { bootstrap } from "../bootstrap"
23
+
24
+ export const setHash = (event: TypeEvent, entry: TypeHash): void => {
25
+ if (entry) {
26
+ entry.hashes.push(event.properties.metadata.hash);
27
+ entry.expires = event.properties.expires;
28
+ } else {
29
+ bootstrap.cache.hashes.push({
30
+ tracking: event.properties.metadata.tracking,
31
+ hashes: [event.properties.metadata.hash],
32
+ expires: event.properties.expires
33
+ });
34
+ }
35
+
36
36
  }
@@ -1,33 +1,33 @@
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
- import { TypeEvent } from "../@types/type.event";
21
- import { bootstrap } from "../bootstrap"
22
- import { rmEvent } from "./manager.rmEvent";
23
-
24
- export const updateEvents = async (selectedEvent?: TypeEvent): Promise<void> => {
25
- const events = bootstrap.cache.events.features;
26
- async function update(evt: TypeEvent) {
27
- if (new Date(evt.properties.expires) < new Date()) {
28
- await rmEvent(evt);
29
- }
30
- }
31
- if (!selectedEvent) { await Promise.all(events.map(async (evt) => { await update(evt) })) }
32
- if (selectedEvent) { await update(selectedEvent) }
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
+ import { TypeEvent } from "../@types/type.event";
21
+ import { bootstrap } from "../bootstrap"
22
+ import { rmEvent } from "./manager.rmEvent";
23
+
24
+ export const updateEvents = async (selectedEvent?: TypeEvent): Promise<void> => {
25
+ const events = bootstrap.cache.events.features;
26
+ async function update(evt: TypeEvent) {
27
+ if (new Date(evt.properties.expires) < new Date()) {
28
+ await rmEvent(evt);
29
+ }
30
+ }
31
+ if (!selectedEvent) { await Promise.all(events.map(async (evt) => { await update(evt) })) }
32
+ if (selectedEvent) { await update(selectedEvent) }
33
33
  }