@allior/wmake-streamelements-events 2.0.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +110 -86
  2. package/dist/react/hooks/factory.d.ts +31 -0
  3. package/dist/react/hooks/factory.d.ts.map +1 -0
  4. package/dist/react/hooks/use-on-event-received.d.ts +73 -13
  5. package/dist/react/hooks/use-on-event-received.d.ts.map +1 -1
  6. package/dist/react/hooks/use-on-widget-load.d.ts +1 -1
  7. package/dist/react/index.iife.js +2 -2
  8. package/dist/react/index.iife.js.map +1 -1
  9. package/dist/react/index.js +49 -91
  10. package/dist/react/index.js.map +1 -1
  11. package/dist/root/{aggregate.d.ts → aggregator/index.d.ts} +5 -3
  12. package/dist/root/aggregator/index.d.ts.map +1 -0
  13. package/dist/root/aggregator/types.d.ts +14 -0
  14. package/dist/root/aggregator/types.d.ts.map +1 -0
  15. package/dist/root/classifier.d.ts.map +1 -1
  16. package/dist/root/guards/on-event-received.d.ts +2 -3
  17. package/dist/root/guards/on-event-received.d.ts.map +1 -1
  18. package/dist/root/index.d.ts +1 -1
  19. package/dist/root/index.d.ts.map +1 -1
  20. package/dist/root/index.iife.js +2 -2
  21. package/dist/root/index.iife.js.map +1 -1
  22. package/dist/root/index.js +2 -3116
  23. package/dist/root/queue/alert-queue.d.ts +1 -1
  24. package/dist/root/queue/next-alert-callback.d.ts +1 -1
  25. package/dist/root/types/on-event-received/base.d.ts +0 -13
  26. package/dist/root/types/on-event-received/base.d.ts.map +1 -1
  27. package/dist/root/types/on-event-received/button.d.ts +10 -0
  28. package/dist/root/types/on-event-received/button.d.ts.map +1 -0
  29. package/dist/root/types/on-event-received/index.d.ts +8 -8
  30. package/dist/root/types/on-event-received/index.d.ts.map +1 -1
  31. package/dist/root/types/on-event-received/message.d.ts +1 -1
  32. package/dist/root/types/on-event-received/moderation.d.ts +9 -1
  33. package/dist/root/types/on-event-received/moderation.d.ts.map +1 -1
  34. package/dist/root/types/on-event-received/subscriber.d.ts +2 -2
  35. package/dist/root/types/on-event-received/subscriber.d.ts.map +1 -1
  36. package/dist/root/types/on-event-received/unknown.d.ts +6 -0
  37. package/dist/root/types/on-event-received/unknown.d.ts.map +1 -0
  38. package/dist/root-DJod-F4M.js +2918 -0
  39. package/dist/root-DJod-F4M.js.map +1 -0
  40. package/package.json +9 -4
  41. package/dist/root/aggregate.d.ts.map +0 -1
  42. package/dist/root/index.js.map +0 -1
  43. package/dist/root/types/on-event-received/donation.d.ts +0 -25
  44. package/dist/root/types/on-event-received/donation.d.ts.map +0 -1
  45. package/dist/root/types/on-event-received/other.d.ts +0 -10
  46. package/dist/root/types/on-event-received/other.d.ts.map +0 -1
@@ -1,97 +1,55 @@
1
- import { AlertQueue as k, TwitchUserMessageData as z, UserRole as I, classifyEvent as Q, getCacheKey as q, getTestAlertKey as H, getTestMessageKey as J, normalizeIncomingEvent as V, parseTier as X, testAlert as Y, testAlerts as Z, testMessage as _, testMessages as $, testOnWidgetLoadDetail as N } from "../root/index.js";
2
- import { useRef as l, useEffect as u } from "react";
3
- function o(e, t, c = []) {
4
- const i = l(t);
5
- i.current = t, u(() => {
6
- const r = (a) => i.current.call(window, a);
7
- return window.addEventListener(e, r), () => window.removeEventListener(e, r);
8
- }, [e, ...c]);
1
+ import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p } from "../root-DJod-F4M.js";
2
+ import { useEffect as m, useRef as h } from "react";
3
+ //#region src/react/hooks/use-event-listener.ts
4
+ function g(e, t, n = []) {
5
+ let r = h(t);
6
+ r.current = t, m(() => {
7
+ let t = (e) => r.current.call(window, e);
8
+ return window.addEventListener(e, t), () => window.removeEventListener(e, t);
9
+ }, [e, ...n]);
9
10
  }
10
- const d = (e) => typeof e == "object" && e !== null && "listener" in e;
11
- function s(e) {
12
- return (t) => d(t) && e(t);
11
+ //#endregion
12
+ //#region src/root/guards/on-event-received.ts
13
+ var _ = (e) => typeof e == "object" && !!e && "listener" in e;
14
+ function v(e) {
15
+ return (t) => _(t) && e(t);
13
16
  }
14
- const v = s(
15
- (e) => e.listener === "message"
16
- ), g = s(
17
- (e) => e.listener === "follower-latest"
18
- ), f = s(
19
- (e) => e.listener === "subscriber-latest"
20
- ), D = s(
21
- (e) => e.listener === "cheer-latest"
22
- ), R = s(
23
- (e) => e.listener === "raid-latest"
24
- ), O = s(
25
- (e) => e.listener === "donation"
26
- ), b = s(
27
- (e) => e.listener === "delete-message"
28
- ), m = s(
29
- (e) => e.listener === "delete-messages"
30
- ), w = s(
31
- (e) => {
32
- var t;
33
- return e.listener === "event" && ((t = e.event) == null ? void 0 : t.type) === "communityGiftPurchase";
34
- }
35
- ), E = s(
36
- (e) => {
37
- var t;
38
- return e.listener === "event" && ((t = e.event) == null ? void 0 : t.type) === "subscriber";
39
- }
40
- ), M = s(
41
- (e) => {
42
- var t;
43
- return e.listener === "event:test" && ((t = e.event) == null ? void 0 : t.listener) === "widget-button";
44
- }
45
- );
46
- function n(e, t, c = []) {
47
- o(
48
- "onEventReceived",
49
- (i) => {
50
- e(i.detail) && t(i);
51
- },
52
- c
53
- );
17
+ var y = v((e) => e.listener === "message"), b = v((e) => e.listener === "follower-latest"), x = v((e) => e.listener === "subscriber-latest"), S = v((e) => e.listener === "cheer-latest"), C = v((e) => e.listener === "raid-latest"), w = v((e) => e.listener === "delete-message"), T = v((e) => e.listener === "delete-messages"), E = v((e) => e.listener === "event" && e.event?.type === "communityGiftPurchase"), D = v((e) => e.listener === "event" && e.event?.type === "subscriber"), O = v((e) => e.listener === "event:test" && e.event?.listener === "widget-button");
18
+ //#endregion
19
+ //#region src/react/hooks/factory.ts
20
+ function k(e) {
21
+ return e ? Array.isArray(e) ? { deps: e } : e : {};
54
22
  }
55
- function L(e, t = []) {
56
- o("onEventReceived", e, t);
23
+ function A(e, t, n) {
24
+ let { classified: i, deps: a = [] } = n;
25
+ g("onEventReceived", (n) => {
26
+ if (e(n.detail)) if (i) {
27
+ let e = r(n.detail);
28
+ e && t(e);
29
+ } else t(n);
30
+ }, a);
57
31
  }
58
- const y = (e, t) => n(v, e, t), p = y, T = (e, t) => n(M, e, t), C = (e, t) => n(g, e, t), W = (e, t) => n(w, e, t), A = (e, t) => n(f, e, t), G = (e, t) => n(E, e, t), S = (e, t) => n(D, e, t), K = (e, t) => n(R, e, t), P = (e, t) => n(O, e, t), x = (e, t) => n(b, e, t), B = (e, t) => n(m, e, t);
59
- function F(e, t = []) {
60
- o(
61
- "onWidgetLoad",
62
- e,
63
- t
64
- );
32
+ function j(e) {
33
+ return (t, n) => A(e, t, k(n));
65
34
  }
66
- export {
67
- k as AlertQueue,
68
- z as TwitchUserMessageData,
69
- I as UserRole,
70
- Q as classifyEvent,
71
- q as getCacheKey,
72
- H as getTestAlertKey,
73
- J as getTestMessageKey,
74
- V as normalizeIncomingEvent,
75
- X as parseTier,
76
- Y as testAlert,
77
- Z as testAlerts,
78
- _ as testMessage,
79
- $ as testMessages,
80
- N as testOnWidgetLoadDetail,
81
- o as useEventListener,
82
- S as useOnCheerReceived,
83
- W as useOnCommunityGiftPurchaseReceived,
84
- x as useOnDeleteMessage,
85
- B as useOnDeleteMessages,
86
- P as useOnDonationReceived,
87
- L as useOnEventReceived,
88
- C as useOnFollowerReceived,
89
- p as useOnMessageReceived,
90
- K as useOnRaidReceived,
91
- A as useOnSubscriberLatestReceived,
92
- G as useOnSubscriberReceived,
93
- y as useOnTwitchMessageReceived,
94
- T as useOnWidgetButtonReceived,
95
- F as useOnWidgetLoad
35
+ //#endregion
36
+ //#region src/react/hooks/use-on-event-received.ts
37
+ function M(e, t = []) {
38
+ g("onEventReceived", e, t);
39
+ }
40
+ var N = j(y), P = N, F = j(w), I = j(T), L = j(O), R = j(b), z = j(S), B = j(C), V = j(D), H = j(x), U = j(E), W = (e, t, r = []) => {
41
+ M((r) => {
42
+ n(r.detail, t, (t) => {
43
+ t && e(t);
44
+ });
45
+ }, r);
96
46
  };
97
- //# sourceMappingURL=index.js.map
47
+ //#endregion
48
+ //#region src/react/hooks/use-on-widget-load.ts
49
+ function G(e, t = []) {
50
+ g("onWidgetLoad", e, t);
51
+ }
52
+ //#endregion
53
+ export { f as AlertQueue, s as TwitchUserMessageData, u as UserRole, n as aggregateIncomingEvent, r as classifyEvent, l as getCacheKey, i as getTestAlertKey, e as getTestMessageKey, o as parseTier, c as testAlert, a as testAlerts, d as testMessage, t as testMessages, p as testOnWidgetLoadDetail, g as useEventListener, W as useOnAggregatedCommunityGift, z as useOnCheerReceived, U as useOnCommunityGiftPurchaseReceived, F as useOnDeleteMessage, I as useOnDeleteMessages, M as useOnEventReceived, R as useOnFollowerReceived, P as useOnMessageReceived, B as useOnRaidReceived, H as useOnSubscriberLatestReceived, V as useOnSubscriberReceived, N as useOnTwitchMessageReceived, L as useOnWidgetButtonReceived, G as useOnWidgetLoad };
54
+
55
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/react/hooks/use-event-listener.ts","../../src/root/guards/on-event-received.ts","../../src/react/hooks/use-on-event-received.ts","../../src/react/hooks/use-on-widget-load.ts"],"sourcesContent":["import { type DependencyList, useEffect, useRef } from \"react\";\nimport type {\n\tWindowEventKey,\n\tWindowEventListener,\n} from \"../types/window-events.js\";\n\nexport function useEventListener<K extends WindowEventKey>(\n\teventName: K,\n\thandler: WindowEventListener<K>,\n\tdeps: DependencyList = [],\n): void {\n\tconst callbackRef = useRef<WindowEventListener<K>>(handler);\n\tcallbackRef.current = handler;\n\n\tuseEffect(() => {\n\t\tconst fn = (ev: WindowEventMap[K]) => callbackRef.current.call(window, ev);\n\t\twindow.addEventListener(eventName, fn);\n\t\treturn () => window.removeEventListener(eventName, fn);\n\t}, [eventName, ...deps]);\n}\n","import type {\n\tCheerDetail,\n\tCommunityGiftPurchaseDetail,\n\tDeleteMessageDetail,\n\tDeleteMessagesDetail,\n\tDonationDetail,\n\tFollowerDetail,\n\tMinimalEvent,\n\tRaidDetail,\n\tSubscriberDetail,\n\tSubscriberLatestDetail,\n\tTwitchMessageDetail,\n\tWidgetButtonDetail,\n} from \"@/root/types/on-event-received\";\n\nexport const isDetail = (d: unknown): d is MinimalEvent =>\n\ttypeof d === \"object\" && d !== null && \"listener\" in d;\n\nexport function createGuard<T extends MinimalEvent>(\n\tpredicate: (d: MinimalEvent) => boolean,\n) {\n\treturn (d: unknown): d is T => isDetail(d) && predicate(d);\n}\n\nexport const isTwitchMessageEvent = createGuard<TwitchMessageDetail>(\n\t(d) => d.listener === \"message\",\n);\nexport const isFollowerDetail = createGuard<FollowerDetail>(\n\t(d) => d.listener === \"follower-latest\",\n);\nexport const isSubscriberLatestDetail = createGuard<SubscriberLatestDetail>(\n\t(d) => d.listener === \"subscriber-latest\",\n);\nexport const isCheerDetail = createGuard<CheerDetail>(\n\t(d) => d.listener === \"cheer-latest\",\n);\nexport const isRaidDetail = createGuard<RaidDetail>(\n\t(d) => d.listener === \"raid-latest\",\n);\nexport const isDonationDetail = createGuard<DonationDetail>(\n\t(d) => d.listener === \"donation\",\n);\nexport const isDeleteMessageDetail = createGuard<DeleteMessageDetail>(\n\t(d) => d.listener === \"delete-message\",\n);\nexport const isDeleteMessagesDetail = createGuard<DeleteMessagesDetail>(\n\t(d) => d.listener === \"delete-messages\",\n);\nexport const isCommunityGiftPurchaseDetail =\n\tcreateGuard<CommunityGiftPurchaseDetail>(\n\t\t(d) => d.listener === \"event\" && d.event?.type === \"communityGiftPurchase\",\n\t);\nexport const isSubscriberDetail = createGuard<SubscriberDetail>(\n\t(d) => d.listener === \"event\" && d.event?.type === \"subscriber\",\n);\nexport const isWidgetButtonDetail = createGuard<WidgetButtonDetail>(\n\t(d) => d.listener === \"event:test\" && d.event?.listener === \"widget-button\",\n);\n","import type { DependencyList } from \"react\";\nimport {\n\tisCheerDetail,\n\tisCommunityGiftPurchaseDetail,\n\tisDeleteMessageDetail,\n\tisDeleteMessagesDetail,\n\tisDonationDetail,\n\tisFollowerDetail,\n\tisRaidDetail,\n\tisSubscriberDetail,\n\tisSubscriberLatestDetail,\n\tisTwitchMessageEvent,\n\tisWidgetButtonDetail,\n} from \"@/root/guards\";\nimport type {\n\tCheerDetail,\n\tCommunityGiftPurchaseDetail,\n\tDeleteMessageDetail,\n\tDeleteMessagesDetail,\n\tDonationDetail,\n\tFollowerDetail,\n\tMinimalEvent,\n\tRaidDetail,\n\tSubscriberDetail,\n\tSubscriberLatestDetail,\n\tTwitchMessageDetail,\n\tWidgetButtonDetail,\n} from \"@/root/types/on-event-received\";\nimport type { WindowEventListener } from \"../types/window-events\";\nimport { useEventListener } from \"./use-event-listener\";\n\nfunction useOnEvent<T extends MinimalEvent>(\n\tguard: (d: unknown) => d is T,\n\thandler: (ev: CustomEvent<T>) => void,\n\tdeps: DependencyList = [],\n) {\n\tuseEventListener(\n\t\t\"onEventReceived\",\n\t\t(ev) => {\n\t\t\tif (guard(ev.detail)) handler(ev as CustomEvent<T>);\n\t\t},\n\t\tdeps,\n\t);\n}\n\nexport function useOnEventReceived(\n\thandler: WindowEventListener<\"onEventReceived\">,\n\tdeps: DependencyList = [],\n): void {\n\tuseEventListener(\"onEventReceived\", handler, deps);\n}\n\nexport const useOnTwitchMessageReceived = (\n\thandler: (ev: CustomEvent<TwitchMessageDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isTwitchMessageEvent, handler, deps);\n\nexport const useOnMessageReceived = useOnTwitchMessageReceived;\n\nexport const useOnWidgetButtonReceived = (\n\thandler: (ev: CustomEvent<WidgetButtonDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isWidgetButtonDetail, handler, deps);\n\nexport const useOnFollowerReceived = (\n\thandler: (ev: CustomEvent<FollowerDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isFollowerDetail, handler, deps);\n\nexport const useOnCommunityGiftPurchaseReceived = (\n\thandler: (ev: CustomEvent<CommunityGiftPurchaseDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isCommunityGiftPurchaseDetail, handler, deps);\n\nexport const useOnSubscriberLatestReceived = (\n\thandler: (ev: CustomEvent<SubscriberLatestDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isSubscriberLatestDetail, handler, deps);\n\nexport const useOnSubscriberReceived = (\n\thandler: (ev: CustomEvent<SubscriberDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isSubscriberDetail, handler, deps);\n\nexport const useOnCheerReceived = (\n\thandler: (ev: CustomEvent<CheerDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isCheerDetail, handler, deps);\n\nexport const useOnRaidReceived = (\n\thandler: (ev: CustomEvent<RaidDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isRaidDetail, handler, deps);\n\nexport const useOnDonationReceived = (\n\thandler: (ev: CustomEvent<DonationDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isDonationDetail, handler, deps);\n\nexport const useOnDeleteMessage = (\n\thandler: (ev: CustomEvent<DeleteMessageDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isDeleteMessageDetail, handler, deps);\n\nexport const useOnDeleteMessages = (\n\thandler: (ev: CustomEvent<DeleteMessagesDetail>) => void,\n\tdeps?: DependencyList,\n) => useOnEvent(isDeleteMessagesDetail, handler, deps);\n","import type { DependencyList } from \"react\";\nimport type { WindowEventListener } from \"@/react/types/window-events.js\";\nimport type { OnWidgetLoadEventDetails } from \"@/root/types/on-widget-load\";\nimport { useEventListener } from \"./use-event-listener.js\";\n\nexport function useOnWidgetLoad<FieldData = unknown>(\n\thandler: (ev: CustomEvent<OnWidgetLoadEventDetails<FieldData>>) => void,\n\tdeps: DependencyList = [],\n): void {\n\tuseEventListener(\n\t\t\"onWidgetLoad\",\n\t\thandler as WindowEventListener<\"onWidgetLoad\">,\n\t\tdeps,\n\t);\n}\n"],"names":["useEventListener","eventName","handler","deps","callbackRef","useRef","useEffect","fn","ev","isDetail","d","createGuard","predicate","isTwitchMessageEvent","isFollowerDetail","isSubscriberLatestDetail","isCheerDetail","isRaidDetail","isDonationDetail","isDeleteMessageDetail","isDeleteMessagesDetail","isCommunityGiftPurchaseDetail","_a","isSubscriberDetail","isWidgetButtonDetail","useOnEvent","guard","useOnEventReceived","useOnTwitchMessageReceived","useOnMessageReceived","useOnWidgetButtonReceived","useOnFollowerReceived","useOnCommunityGiftPurchaseReceived","useOnSubscriberLatestReceived","useOnSubscriberReceived","useOnCheerReceived","useOnRaidReceived","useOnDonationReceived","useOnDeleteMessage","useOnDeleteMessages","useOnWidgetLoad"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/react/hooks/use-event-listener.ts","../../src/root/guards/on-event-received.ts","../../src/react/hooks/factory.ts","../../src/react/hooks/use-on-event-received.ts","../../src/react/hooks/use-on-widget-load.ts"],"sourcesContent":["import { type DependencyList, useEffect, useRef } from \"react\";\nimport type {\n\tWindowEventKey,\n\tWindowEventListener,\n} from \"../types/window-events.js\";\n\nexport function useEventListener<K extends WindowEventKey>(\n\teventName: K,\n\thandler: WindowEventListener<K>,\n\tdeps: DependencyList = [],\n): void {\n\tconst callbackRef = useRef<WindowEventListener<K>>(handler);\n\tcallbackRef.current = handler;\n\n\tuseEffect(() => {\n\t\tconst fn = (ev: WindowEventMap[K]) => callbackRef.current.call(window, ev);\n\t\twindow.addEventListener(eventName, fn);\n\t\treturn () => window.removeEventListener(eventName, fn);\n\t}, [eventName, ...deps]);\n}\n","import type {\n\tCheerDetail,\n\tCommunityGiftPurchaseDetail,\n\tDeleteMessageDetail,\n\tDeleteMessagesDetail,\n\tFollowerDetail,\n\tMinimalEvent,\n\tRaidDetail,\n\tSubscriberDetail,\n\tSubscriberLatestDetail,\n\tTestButtonDetail,\n\tTwitchMessageDetail,\n} from \"@/root/types/on-event-received\";\n\nexport const isDetail = (d: unknown): d is MinimalEvent =>\n\ttypeof d === \"object\" && d !== null && \"listener\" in d;\n\nexport function createGuard<T extends MinimalEvent>(\n\tpredicate: (d: MinimalEvent) => boolean,\n) {\n\treturn (d: unknown): d is T => isDetail(d) && predicate(d);\n}\n\nexport const isTwitchMessageEvent = createGuard<TwitchMessageDetail>(\n\t(d) => d.listener === \"message\",\n);\nexport const isFollowerDetail = createGuard<FollowerDetail>(\n\t(d) => d.listener === \"follower-latest\",\n);\nexport const isSubscriberLatestDetail = createGuard<SubscriberLatestDetail>(\n\t(d) => d.listener === \"subscriber-latest\",\n);\nexport const isCheerDetail = createGuard<CheerDetail>(\n\t(d) => d.listener === \"cheer-latest\",\n);\nexport const isRaidDetail = createGuard<RaidDetail>(\n\t(d) => d.listener === \"raid-latest\",\n);\nexport const isDeleteMessageDetail = createGuard<DeleteMessageDetail>(\n\t(d) => d.listener === \"delete-message\",\n);\nexport const isDeleteMessagesDetail = createGuard<DeleteMessagesDetail>(\n\t(d) => d.listener === \"delete-messages\",\n);\nexport const isCommunityGiftPurchaseDetail =\n\tcreateGuard<CommunityGiftPurchaseDetail>(\n\t\t(d) => d.listener === \"event\" && d.event?.type === \"communityGiftPurchase\",\n\t);\nexport const isSubscriberDetail = createGuard<SubscriberDetail>(\n\t(d) => d.listener === \"event\" && d.event?.type === \"subscriber\",\n);\nexport const isWidgetButtonDetail = createGuard<TestButtonDetail>(\n\t(d) => d.listener === \"event:test\" && d.event?.listener === \"widget-button\",\n);\n","import type { DependencyList } from \"react\";\nimport { classifyEvent } from \"@/root/classifier\";\nimport type {\n\tClassifiedEvent,\n\tIncomingDetail,\n\tMinimalEvent,\n} from \"@/root/types/on-event-received\";\nimport { useEventListener } from \"./use-event-listener\";\n\n/**\n * Configuration options for StreamElements event hooks.\n */\nexport interface HookOptions<C extends boolean = boolean> {\n\t/**\n\t * If true, the hook will return a classified/normalized event object\n\t * instead of the raw StreamElements CustomEvent.\n\t *\n\t * Note: Only supported for alert-related hooks.\n\t */\n\tclassified?: C;\n\t/**\n\t * React dependency list to control hook re-subscription.\n\t */\n\tdeps?: DependencyList;\n}\n\nexport type HookHandler<T, C, R extends boolean> = (\n\tdata: R extends true ? C : CustomEvent<T>,\n) => void;\n\nexport function parseDepsOrOptions<C extends boolean>(\n\tdepsOrOptions?: DependencyList | HookOptions<C>,\n): HookOptions<C> {\n\tif (!depsOrOptions) return {} as HookOptions<C>;\n\tif (Array.isArray(depsOrOptions))\n\t\treturn { deps: depsOrOptions } as HookOptions<C>;\n\treturn depsOrOptions as HookOptions<C>;\n}\n\n/**\n * Base internal engine for event-guarded listeners.\n */\nexport function useOnEvent<\n\tT extends MinimalEvent,\n\tC = never,\n\tR extends boolean = boolean,\n>(\n\tguard: (d: unknown) => d is T,\n\thandler: HookHandler<T, C, R>,\n\toptions: HookOptions<R>,\n) {\n\tconst { classified, deps = [] } = options;\n\tuseEventListener(\n\t\t\"onEventReceived\",\n\t\t(ev) => {\n\t\t\tif (guard(ev.detail)) {\n\t\t\t\tif (classified) {\n\t\t\t\t\tconst data = classifyEvent(ev.detail as unknown as IncomingDetail);\n\t\t\t\t\tif (data) (handler as (d: C) => void)(data as C);\n\t\t\t\t} else {\n\t\t\t\t\t(handler as (d: CustomEvent<T>) => void)(ev as CustomEvent<T>);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tdeps,\n\t);\n}\n\n/**\n * Hook Factory to reduce boilerplate.\n * If C is not provided, classification mode is disabled for the hook.\n */\nexport function createEventHook<T extends MinimalEvent>(\n\tguard: (d: unknown) => d is T,\n): (\n\thandler: (ev: CustomEvent<T>) => void,\n\tdepsOrOptions?: DependencyList | HookOptions<false>,\n) => void;\n\nexport function createEventHook<T extends MinimalEvent, C>(\n\tguard: (d: unknown) => d is T,\n): <R extends boolean = false>(\n\thandler: HookHandler<T, C, R>,\n\tdepsOrOptions?: DependencyList | HookOptions<R>,\n) => void;\n\nexport function createEventHook(guard: (d: unknown) => d is MinimalEvent) {\n\treturn <R extends boolean>(\n\t\thandler: HookHandler<MinimalEvent, ClassifiedEvent, R>,\n\t\tdepsOrOptions?: DependencyList | HookOptions<R>,\n\t) => {\n\t\tconst options = parseDepsOrOptions(depsOrOptions);\n\t\treturn useOnEvent(guard, handler, options);\n\t};\n}\n","import type { DependencyList } from \"react\";\nimport { aggregateIncomingEvent, type AggregatorOptions } from \"@/root/aggregator\";\nimport {\n\tisCheerDetail,\n\tisCommunityGiftPurchaseDetail,\n\tisDeleteMessageDetail,\n\tisDeleteMessagesDetail,\n\tisFollowerDetail,\n\tisRaidDetail,\n\tisSubscriberDetail,\n\tisSubscriberLatestDetail,\n\tisTwitchMessageEvent,\n\tisWidgetButtonDetail,\n} from \"@/root/guards\";\nimport type {\n\tAggregatedCommunityGift,\n\tCheerDetail,\n\tClassifiedButtonClick,\n\tClassifiedCheer,\n\tClassifiedDeleteMessage,\n\tClassifiedDeleteMessages,\n\tClassifiedEvent,\n\tClassifiedFollower,\n\tClassifiedRaid,\n\tCommunityGiftPurchaseDetail,\n\tDeleteMessageDetail,\n\tDeleteMessagesDetail,\n\tFollowerDetail,\n\tIncomingDetail,\n\tRaidDetail,\n\tSubscriberDetail,\n\tSubscriberLatestDetail,\n\tTestButtonDetail,\n\tTwitchMessageDetail,\n} from \"@/root/types/on-event-received\";\nimport type { WindowEventListener } from \"../types/window-events\";\nimport { createEventHook } from \"./factory\";\nimport { useEventListener } from \"./use-event-listener\";\n\n/**\n * Low-level hook to subscribe to the generic 'onEventReceived' from StreamElements.\n *\n * @param handler Generic event listener for all StreamElements events.\n * @param deps React dependency list.\n */\nexport function useOnEventReceived(\n\thandler: WindowEventListener<\"onEventReceived\">,\n\tdeps: DependencyList = [],\n): void {\n\tuseEventListener(\"onEventReceived\", handler, deps);\n}\n\n/**\n * Listens for Twitch chat messages received.\n * Classification is not supported for this hook.\n */\nexport const useOnTwitchMessageReceived =\n\tcreateEventHook<TwitchMessageDetail>(isTwitchMessageEvent);\n\n/** Alias for useOnTwitchMessageReceived */\nexport const useOnMessageReceived = useOnTwitchMessageReceived;\n\n/**\n * Listens for single message deletion events in Twitch chat.\n * Calls on deleting certain user message.\n * Supports classification into ClassifiedDeleteMessage.\n */\nexport const useOnDeleteMessage = createEventHook<\n\tDeleteMessageDetail,\n\tClassifiedDeleteMessage\n>(isDeleteMessageDetail);\n\n/**\n * Listens for multiple message deletion (clear chat/timeout) events in Twitch chat.\n * Calls on user ban or timeout.\n * Supports classification into ClassifiedDeleteMessages.\n */\nexport const useOnDeleteMessages = createEventHook<\n\tDeleteMessagesDetail,\n\tClassifiedDeleteMessages\n>(isDeleteMessagesDetail);\n\n/**\n * Listens for Widget Button clicks configured in the StreamElements Overlay Editor.\n * Supports classification into ClassifiedButtonClick.\n */\nexport const useOnWidgetButtonReceived = createEventHook<\n\tTestButtonDetail,\n\tClassifiedButtonClick\n>(isWidgetButtonDetail);\n\n/**\n * Listens for new Follower events.\n * Supports classification into ClassifiedFollower.\n */\nexport const useOnFollowerReceived = createEventHook<\n\tFollowerDetail,\n\tClassifiedFollower\n>(isFollowerDetail);\n\n/**\n * Listens for Cheer (bits) events.\n * Supports classification into ClassifiedCheer.\n */\nexport const useOnCheerReceived = createEventHook<CheerDetail, ClassifiedCheer>(\n\tisCheerDetail,\n);\n\n/**\n * Listens for Raid events.\n * Supports classification into ClassifiedRaid.\n */\nexport const useOnRaidReceived = createEventHook<RaidDetail, ClassifiedRaid>(\n\tisRaidDetail,\n);\n\n/**\n * Listens for general Subscriber events.\n * Supports classification into ClassifiedEvent union.\n */\nexport const useOnSubscriberReceived = createEventHook<\n\tSubscriberDetail,\n\tClassifiedEvent\n>(isSubscriberDetail);\n\n/**\n * Listens for the latest Subscriber status updates.\n * Supports classification into ClassifiedEvent union.\n */\nexport const useOnSubscriberLatestReceived = createEventHook<\n\tSubscriberLatestDetail,\n\tClassifiedEvent\n>(isSubscriberLatestDetail);\n\n/**\n * Listens for Community Gift Purchase (bulk gifts) events.\n */\nexport const useOnCommunityGiftPurchaseReceived = createEventHook<\n\tCommunityGiftPurchaseDetail,\n\tClassifiedEvent\n>(isCommunityGiftPurchaseDetail);\n\n/**\n * Specialized hook for handling aggregated mass-gift subscriptions.\n *\n * Normalizes Multiple subscriber events into a single sender event with a list of recipients.\n * Essential for \"Community Gift\" alerts to avoid spamming multiple notifications.\n *\n * @param handler Receives the aggregated community gift object.\n * @param options Aggregator options (broadcasterLogin, cache, etc).\n * @param deps React dependency list.\n */\nexport const useOnAggregatedCommunityGift = (\n\thandler: (event: AggregatedCommunityGift) => void,\n\toptions?: AggregatorOptions,\n\tdeps: DependencyList = [],\n) => {\n\tuseOnEventReceived((ev) => {\n\t\taggregateIncomingEvent(\n\t\t\tev.detail as unknown as IncomingDetail,\n\t\t\toptions,\n\t\t\t(normalized) => {\n\t\t\t\tif (normalized) handler(normalized as AggregatedCommunityGift);\n\t\t\t},\n\t\t);\n\t}, deps);\n};\n\nexport type { HookOptions } from \"./factory\";\n","import type { DependencyList } from \"react\";\nimport type { WindowEventListener } from \"@/react/types/window-events.js\";\nimport type { OnWidgetLoadEventDetails } from \"@/root/types/on-widget-load\";\nimport { useEventListener } from \"./use-event-listener.js\";\n\nexport function useOnWidgetLoad<FieldData = unknown>(\n\thandler: (ev: CustomEvent<OnWidgetLoadEventDetails<FieldData>>) => void,\n\tdeps: DependencyList = [],\n): void {\n\tuseEventListener(\n\t\t\"onWidgetLoad\",\n\t\thandler as WindowEventListener<\"onWidgetLoad\">,\n\t\tdeps,\n\t);\n}\n"],"mappings":";;;AAMA,SAAgB,EACf,GACA,GACA,IAAuB,EAAE,EAClB;CACP,IAAM,IAAc,EAA+B,EAAQ;AAG3D,CAFA,EAAY,UAAU,GAEtB,QAAgB;EACf,IAAM,KAAM,MAA0B,EAAY,QAAQ,KAAK,QAAQ,EAAG;AAE1E,SADA,OAAO,iBAAiB,GAAW,EAAG,QACzB,OAAO,oBAAoB,GAAW,EAAG;IACpD,CAAC,GAAW,GAAG,EAAK,CAAC;;;;ACJzB,IAAa,KAAY,MACxB,OAAO,KAAM,cAAY,KAAc,cAAc;AAEtD,SAAgB,EACf,GACC;AACD,SAAQ,MAAuB,EAAS,EAAE,IAAI,EAAU,EAAE;;AAG3D,IAAa,IAAuB,GAClC,MAAM,EAAE,aAAa,UACtB,EACY,IAAmB,GAC9B,MAAM,EAAE,aAAa,kBACtB,EACY,IAA2B,GACtC,MAAM,EAAE,aAAa,oBACtB,EACY,IAAgB,GAC3B,MAAM,EAAE,aAAa,eACtB,EACY,IAAe,GAC1B,MAAM,EAAE,aAAa,cACtB,EACY,IAAwB,GACnC,MAAM,EAAE,aAAa,iBACtB,EACY,IAAyB,GACpC,MAAM,EAAE,aAAa,kBACtB,EACY,IACZ,GACE,MAAM,EAAE,aAAa,WAAW,EAAE,OAAO,SAAS,wBACnD,EACW,IAAqB,GAChC,MAAM,EAAE,aAAa,WAAW,EAAE,OAAO,SAAS,aACnD,EACY,IAAuB,GAClC,MAAM,EAAE,aAAa,gBAAgB,EAAE,OAAO,aAAa,gBAC5D;;;ACvBD,SAAgB,EACf,GACiB;AAIjB,QAHK,IACD,MAAM,QAAQ,EAAc,GACxB,EAAE,MAAM,GAAe,GACxB,IAHoB,EAAE;;AAS9B,SAAgB,EAKf,GACA,GACA,GACC;CACD,IAAM,EAAE,eAAY,UAAO,EAAE,KAAK;AAClC,GACC,oBACC,MAAO;AACP,MAAI,EAAM,EAAG,OAAO,CACnB,KAAI,GAAY;GACf,IAAM,IAAO,EAAc,EAAG,OAAoC;AAClE,GAAI,KAAO,EAA2B,EAAU;QAE/C,GAAwC,EAAqB;IAIjE,EACA;;AAqBF,SAAgB,EAAgB,GAA0C;AACzE,SACC,GACA,MAGO,EAAW,GAAO,GADT,EAAmB,EAAc,CACP;;;;AC/C5C,SAAgB,EACf,GACA,IAAuB,EAAE,EAClB;AACP,GAAiB,mBAAmB,GAAS,EAAK;;AAOnD,IAAa,IACZ,EAAqC,EAAqB,EAG9C,IAAuB,GAOvB,IAAqB,EAGhC,EAAsB,EAOX,IAAsB,EAGjC,EAAuB,EAMZ,IAA4B,EAGvC,EAAqB,EAMV,IAAwB,EAGnC,EAAiB,EAMN,IAAqB,EACjC,EACA,EAMY,IAAoB,EAChC,EACA,EAMY,IAA0B,EAGrC,EAAmB,EAMR,IAAgC,EAG3C,EAAyB,EAKd,IAAqC,EAGhD,EAA8B,EAYnB,KACZ,GACA,GACA,IAAuB,EAAE,KACrB;AACJ,IAAoB,MAAO;AAC1B,IACC,EAAG,QACH,IACC,MAAe;AACf,GAAI,KAAY,EAAQ,EAAsC;IAE/D;IACC,EAAK;;;;AChKT,SAAgB,EACf,GACA,IAAuB,EAAE,EAClB;AACP,GACC,gBACA,GACA,EACA"}
@@ -2,11 +2,13 @@
2
2
  * Event normalizer — aggregate mode: buffer events by activityGroup,
3
3
  * merge into one normalized event per action (timeout 2.5s).
4
4
  */
5
- import type { ClassifiedEvent, IncomingDetail, NormalizerOptions } from "./types";
5
+ import type { ClassifiedEvent, IncomingDetail } from "../types/on-event-received/index.js";
6
+ import type { AggregatorOptions } from "./types.js";
6
7
  /**
7
8
  * Normalizes an incoming subscription event (StreamElements/Twitch).
8
9
  * Buffers community-gift recipients by activityGroup, then emits one normalized event per group.
9
10
  * For self-sub, solo-sub, sub-renewal emits immediately (with optional cache dedup).
10
11
  */
11
- export declare function normalizeIncomingEvent(detail: IncomingDetail, options: NormalizerOptions | undefined, onNormalized: (event: ClassifiedEvent | null) => void): void;
12
- //# sourceMappingURL=aggregate.d.ts.map
12
+ export declare function aggregateIncomingEvent(detail: IncomingDetail, options: AggregatorOptions | undefined, onNormalized: (event: ClassifiedEvent | null) => void): void;
13
+ export * from "./types.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/root/aggregator/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAGX,eAAe,EACf,cAAc,EACd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,YAAY,CAAC;AAwHrE;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,GACnD,IAAI,CA4FN;AAED,cAAc,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface CacheLike {
2
+ _has(key: string): boolean;
3
+ _set(key: string, value: boolean): void;
4
+ }
5
+ export interface CacheSubsByType {
6
+ _has?(key: string): boolean;
7
+ _set?(key: string, value: boolean): void;
8
+ [type: string]: CacheLike | ((k: string) => boolean) | ((k: string, v: boolean) => void) | undefined;
9
+ }
10
+ export interface AggregatorOptions {
11
+ cacheSubs?: CacheSubsByType;
12
+ broadcasterLogin?: string;
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/root/aggregator/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,CAAC,IAAI,EAAE,MAAM,GACV,SAAS,GACT,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GACxB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GACjC,SAAS,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/root/classifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,CAO3E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAoB1D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,IAAI,CAwO5E"}
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/root/classifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,CAO3E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAoB1D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,IAAI,CAgO5E"}
@@ -1,4 +1,4 @@
1
- import type { CheerDetail, CommunityGiftPurchaseDetail, DeleteMessageDetail, DeleteMessagesDetail, DonationDetail, FollowerDetail, MinimalEvent, RaidDetail, SubscriberDetail, SubscriberLatestDetail, TwitchMessageDetail, WidgetButtonDetail } from "@/root/types/on-event-received";
1
+ import type { CheerDetail, CommunityGiftPurchaseDetail, DeleteMessageDetail, DeleteMessagesDetail, FollowerDetail, MinimalEvent, RaidDetail, SubscriberDetail, SubscriberLatestDetail, TestButtonDetail, TwitchMessageDetail } from "../../root/types/on-event-received";
2
2
  export declare const isDetail: (d: unknown) => d is MinimalEvent;
3
3
  export declare function createGuard<T extends MinimalEvent>(predicate: (d: MinimalEvent) => boolean): (d: unknown) => d is T;
4
4
  export declare const isTwitchMessageEvent: (d: unknown) => d is TwitchMessageDetail;
@@ -6,10 +6,9 @@ export declare const isFollowerDetail: (d: unknown) => d is FollowerDetail;
6
6
  export declare const isSubscriberLatestDetail: (d: unknown) => d is SubscriberLatestDetail;
7
7
  export declare const isCheerDetail: (d: unknown) => d is CheerDetail;
8
8
  export declare const isRaidDetail: (d: unknown) => d is RaidDetail;
9
- export declare const isDonationDetail: (d: unknown) => d is DonationDetail;
10
9
  export declare const isDeleteMessageDetail: (d: unknown) => d is DeleteMessageDetail;
11
10
  export declare const isDeleteMessagesDetail: (d: unknown) => d is DeleteMessagesDetail;
12
11
  export declare const isCommunityGiftPurchaseDetail: (d: unknown) => d is CommunityGiftPurchaseDetail;
13
12
  export declare const isSubscriberDetail: (d: unknown) => d is SubscriberDetail;
14
- export declare const isWidgetButtonDetail: (d: unknown) => d is WidgetButtonDetail;
13
+ export declare const isWidgetButtonDetail: (d: unknown) => d is TestButtonDetail;
15
14
  //# sourceMappingURL=on-event-received.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"on-event-received.d.ts","sourceRoot":"","sources":["../../../src/root/guards/on-event-received.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,YACY,CAAC;AAExD,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,EACjD,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,OAAO,IAE/B,GAAG,OAAO,KAAG,CAAC,IAAI,CAAC,CAC3B;AAED,eAAO,MAAM,oBAAoB,MAHrB,OAAO,KAAG,CAAC,uBAKtB,CAAC;AACF,eAAO,MAAM,gBAAgB,MANjB,OAAO,KAAG,CAAC,kBAQtB,CAAC;AACF,eAAO,MAAM,wBAAwB,MATzB,OAAO,KAAG,CAAC,0BAWtB,CAAC;AACF,eAAO,MAAM,aAAa,MAZd,OAAO,KAAG,CAAC,eActB,CAAC;AACF,eAAO,MAAM,YAAY,MAfb,OAAO,KAAG,CAAC,cAiBtB,CAAC;AACF,eAAO,MAAM,gBAAgB,MAlBjB,OAAO,KAAG,CAAC,kBAoBtB,CAAC;AACF,eAAO,MAAM,qBAAqB,MArBtB,OAAO,KAAG,CAAC,uBAuBtB,CAAC;AACF,eAAO,MAAM,sBAAsB,MAxBvB,OAAO,KAAG,CAAC,wBA0BtB,CAAC;AACF,eAAO,MAAM,6BAA6B,MA3B9B,OAAO,KAAG,CAAC,+BA8BrB,CAAC;AACH,eAAO,MAAM,kBAAkB,MA/BnB,OAAO,KAAG,CAAC,oBAiCtB,CAAC;AACF,eAAO,MAAM,oBAAoB,MAlCrB,OAAO,KAAG,CAAC,sBAoCtB,CAAC"}
1
+ {"version":3,"file":"on-event-received.d.ts","sourceRoot":"","sources":["../../../src/root/guards/on-event-received.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,YACY,CAAC;AAExD,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,EACjD,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,OAAO,IAE/B,GAAG,OAAO,KAAG,CAAC,IAAI,CAAC,CAC3B;AAED,eAAO,MAAM,oBAAoB,MAHrB,OAAO,KAAG,CAAC,uBAKtB,CAAC;AACF,eAAO,MAAM,gBAAgB,MANjB,OAAO,KAAG,CAAC,kBAQtB,CAAC;AACF,eAAO,MAAM,wBAAwB,MATzB,OAAO,KAAG,CAAC,0BAWtB,CAAC;AACF,eAAO,MAAM,aAAa,MAZd,OAAO,KAAG,CAAC,eActB,CAAC;AACF,eAAO,MAAM,YAAY,MAfb,OAAO,KAAG,CAAC,cAiBtB,CAAC;AACF,eAAO,MAAM,qBAAqB,MAlBtB,OAAO,KAAG,CAAC,uBAoBtB,CAAC;AACF,eAAO,MAAM,sBAAsB,MArBvB,OAAO,KAAG,CAAC,wBAuBtB,CAAC;AACF,eAAO,MAAM,6BAA6B,MAxB9B,OAAO,KAAG,CAAC,+BA2BrB,CAAC;AACH,eAAO,MAAM,kBAAkB,MA5BnB,OAAO,KAAG,CAAC,oBA8BtB,CAAC;AACF,eAAO,MAAM,oBAAoB,MA/BrB,OAAO,KAAG,CAAC,oBAiCtB,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from "./aggregate.js";
1
+ export * from "./aggregator";
2
2
  export * from "./classifier.js";
3
3
  export * from "./types";
4
4
  import "./window-event-map";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/root/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAE5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/root/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAE5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}