@atmosx/event-product-parser 3.0.48 → 3.0.52

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 (141) hide show
  1. package/.vscode/settings.json +3 -3
  2. package/CODE_OF_CONDUCT.md +9 -9
  3. package/CONTRIBUTING.md +29 -29
  4. package/LICENSE +17 -17
  5. package/README.md +443 -417
  6. package/SECURITY.md +20 -20
  7. package/SUPPORTED_EVENTS.md +369 -368
  8. package/dist/cjs/index.cjs +1925 -1885
  9. package/dist/esm/index.mjs +1927 -1887
  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 -41
  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 -70
  19. package/src/@building/building.properties.ts +95 -95
  20. package/src/@building/building.signature.ts +60 -61
  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 -146
  24. package/src/@core/core.clearEvents.ts +30 -31
  25. package/src/@core/core.createListener.ts +23 -23
  26. package/src/@core/core.getEvents.ts +23 -24
  27. package/src/@core/core.getNodes.ts +23 -24
  28. package/src/@core/core.getRandomEvent.ts +23 -24
  29. package/src/@core/core.getVersion.ts +23 -24
  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 -118
  56. package/src/@events/events.text.ts +84 -81
  57. package/src/@events/events.ugc.ts +89 -85
  58. package/src/@events/events.vtec.ts +86 -87
  59. package/src/@manager/manager.mkEvent.ts +97 -88
  60. package/src/@manager/manager.rmEvent.ts +56 -49
  61. package/src/@manager/manager.setHash.ts +35 -36
  62. package/src/@manager/manager.updateEvents.ts +32 -34
  63. package/src/@manager/manager.updateListener.ts +154 -159
  64. package/src/@manager/manager.updateNodes.ts +53 -54
  65. package/src/@modules/@database/database.broadcastify.ts +66 -66
  66. package/src/@modules/@database/database.cache.ts +49 -47
  67. package/src/@modules/@database/database.init.ts +58 -57
  68. package/src/@modules/@database/database.shapefiles.ts +92 -92
  69. package/src/@modules/@database/database.stanza.ts +46 -47
  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 -52
  79. package/src/@modules/@eas/eas.setAsciiToBits.ts +31 -32
  80. package/src/@modules/@eas/eas.setAttentionTone.ts +40 -40
  81. package/src/@modules/@eas/eas.setEasTone.ts +151 -147
  82. package/src/@modules/@eas/eas.setNoise.ts +32 -31
  83. package/src/@modules/@eas/eas.setRadioEffect.ts +50 -49
  84. package/src/@modules/@eas/eas.setSameHeader.ts +44 -45
  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 +70 -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 -0
  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 -0
  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 -58
  100. package/src/@modules/@utilities/utilities.setWarning.ts +34 -34
  101. package/src/@modules/@xmpp/xmpp.xDeploy.ts +57 -58
  102. package/src/@modules/@xmpp/xmpp.xError.ts +26 -28
  103. package/src/@modules/@xmpp/xmpp.xOffline.ts +36 -37
  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 -57
  112. package/src/@parsers/@text/text.getPolygonFromProduct.ts +53 -32
  113. package/src/@parsers/@text/text.getTextFromProduct.ts +42 -42
  114. package/src/@parsers/@text/text.getXML.ts +60 -60
  115. package/src/@parsers/@ugc/ugc.coordinates.ts +110 -109
  116. package/src/@parsers/@ugc/ugc.expiry.ts +31 -31
  117. package/src/@parsers/@ugc/ugc.extract.ts +36 -36
  118. package/src/@parsers/@ugc/ugc.getCache.ts +24 -0
  119. package/src/@parsers/@ugc/ugc.header.ts +29 -29
  120. package/src/@parsers/@ugc/ugc.locations.ts +57 -29
  121. package/src/@parsers/@ugc/ugc.setCache.ts +28 -0
  122. package/src/@parsers/@ugc/ugc.zones.ts +51 -51
  123. package/src/@types/type.attributes.ts +28 -28
  124. package/src/@types/type.compiled.ts +34 -34
  125. package/src/@types/type.event.ts +69 -69
  126. package/src/@types/type.hash.ts +24 -24
  127. package/src/@types/type.hvtec.ts +25 -25
  128. package/src/@types/type.listener.ts +32 -32
  129. package/src/@types/type.properties.ts +77 -77
  130. package/src/@types/type.pvtec.ts +30 -30
  131. package/src/@types/type.settings.ts +84 -83
  132. package/src/@types/type.stanza.ts +37 -37
  133. package/src/@types/type.ugc.ts +24 -24
  134. package/src/bootstrap.ts +115 -112
  135. package/src/index.ts +74 -74
  136. package/test.js +92 -98
  137. package/tsconfig.json +13 -13
  138. package/tsup.config.ts +15 -15
  139. package/dist/index.d.mts +0 -299
  140. package/dist/index.d.ts +0 -299
  141. package/src/@core/core.createEvent.ts +0 -83
@@ -1,89 +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 { setEventEmit } from "../@modules/@utilities/utilities.setEventEmit";
21
- import { TypeEvent } from "../@types/type.event";
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 { TypeSettings } from "../@types/type.settings";
27
-
28
- export const mkEvent = async (event: TypeEvent): Promise<void> => {
29
- const settings = bootstrap.settings as TypeSettings;
30
- const features = bootstrap.cache.events.features;
31
-
32
- const getHash = event.properties.metadata.hash;
33
- const getTracking = event.properties.metadata.tracking;
34
- const isEntry = bootstrap.cache.hashes?.find(hash => hash.tracking === getTracking)
35
- const isHashed = isEntry?.hashes?.includes(getHash) ?? false;
36
- const getFeature = features.find(feature => feature.properties.metadata.tracking === getTracking);
37
- if (isHashed || event.properties.status_metadata.is_expired) return
38
- setHash(event, isEntry)
39
-
40
- const isFilteredLocation = await updateNode(event).then(() => event.properties.metadata.filtered_proximity);
41
- if (!isFilteredLocation && settings.GlobalSettings.EventFiltering.NodeLocationFiltering) { return }
42
-
43
- setEventEmit({
44
- event: `onEventStatus`,
45
- metadata: {
46
- type: getFeature ? `Updated` : `New`,
47
- event: event
48
- },
49
- message: `[${getFeature ? 'Updated' : 'New'}] ${event.properties.event} (${event.properties.status}) (${event.properties.metadata.tracking})`
50
- })
51
- if (settings.GlobalSettings.EventManagement) {
52
- if (event.properties.status_metadata.is_issued || event.properties.status_metadata.is_updated) {
53
- if (getFeature) {
54
- const getIndex = features.indexOf(getFeature);
55
- const cHistory = getFeature?.properties?.metadata?.history ?? [];
56
- const cLocations = getFeature?.properties?.locations?.split(";").map((l: string) => l.trim()) ?? [];
57
- const cUgc = getFeature?.properties?.geocode?.ugc ?? [];
58
-
59
- const iHistory = event.properties?.metadata?.history ?? [];
60
- const iLocations = event.properties?.locations?.split(";").map((l: string) => l.trim()) ?? [];
61
- const iUgc = event.properties?.geocode?.ugc ?? [];
62
-
63
- 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);
64
- const mLocations = [...cLocations, ...iLocations].filter((v, i, a) => a.indexOf(v) === i).join('; ');
65
- const mUgc = [...cUgc, ...iUgc].filter((v, i, a) => a.indexOf(v) === i);
66
-
67
- bootstrap.cache.events.features[getIndex] = {
68
- ...event,
69
- properties: {
70
- ...event.properties,
71
- metadata: {
72
- ...event?.properties?.metadata,
73
- history: mHistory
74
- },
75
- locations: mLocations,
76
- geocode: {
77
- ...event?.properties?.geocode,
78
- ugc: mUgc
79
- },
80
- }
81
- };
82
- updateListener(bootstrap.cache.events.features[getIndex])
83
- } else {
84
- features.push(event)
85
- updateListener(event)
86
- }
87
- }
88
- }
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
+ }
89
98
  }
@@ -1,50 +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 { setEventEmit } from "../@modules/@utilities/utilities.setEventEmit";
21
- import { TypeEvent } from "../@types/type.event";
22
- import { bootstrap } from "../bootstrap"
23
- import { updateListener } from "./manager.updateListener";
24
-
25
- export const rmEvent = (event: TypeEvent): void => {
26
- const getEvent = bootstrap.cache.events.features.find(f => f?.properties?.metadata?.tracking === event?.properties?.metadata?.tracking);
27
- const cachedStatus = event.properties.status;
28
- event.properties.expires = new Date().toISOString();
29
- event.properties.status = `Expired`;
30
- event.properties.status_metadata.is_expired = true;
31
- if (getEvent) {
32
- setEventEmit({
33
- event: `onEventStatus`,
34
- metadata: {
35
- type: `Removed`,
36
- event: event
37
- },
38
- message: `[Removed] ${event.properties.event} (${event.properties.status}) (${event.properties.metadata.tracking})`
39
- })
40
- setEventEmit({ event: `onExpiredProduct`, metadata: event })
41
- if (cachedStatus != `Statement`) updateListener(event)
42
- bootstrap.cache.events.features.splice(bootstrap.cache.events.features.indexOf(getEvent), 1);
43
- bootstrap.cache.hashes = bootstrap.cache.hashes.filter(hash => hash.tracking !== event.properties.metadata.tracking);
44
- }
45
- setEventEmit({
46
- event: `onEventCache`,
47
- metadata: bootstrap.cache.events,
48
- limited: true
49
- })
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
+ })
50
57
  }
@@ -1,37 +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
-
25
- export const setHash = (event: TypeEvent, entry: TypeHash): void => {
26
- if (entry) {
27
- entry.hashes.push(event.properties.metadata.hash);
28
- entry.expires = event.properties.expires;
29
- } else {
30
- bootstrap.cache.hashes.push({
31
- tracking: event.properties.metadata.tracking,
32
- hashes: [event.properties.metadata.hash],
33
- expires: event.properties.expires
34
- });
35
- }
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
+
37
36
  }
@@ -1,35 +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 { getFormattedTime } from "../@modules/@utilities/utilities.getFormattedTime";
21
- import { TypeEvent } from "../@types/type.event";
22
- import { bootstrap } from "../bootstrap"
23
- import { rmEvent } from "./manager.rmEvent";
24
-
25
-
26
- export const updateEvents = async (selectedEvent?: TypeEvent): Promise<void> => {
27
- const events = bootstrap.cache.events.features;
28
- async function update(evt: TypeEvent) {
29
- if (new Date(evt.properties.expires) < new Date()) {
30
- rmEvent(evt);
31
- }
32
- }
33
- if (!selectedEvent) { await Promise.all(events.map(async (evt) => { await update(evt) })) }
34
- 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) }
35
33
  }