@buoy-gg/events 3.0.1 → 4.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 (90) hide show
  1. package/lib/commonjs/components/EventsCopySettingsView.js.map +1 -0
  2. package/lib/commonjs/components/EventsModal.js.map +1 -0
  3. package/lib/commonjs/components/ReactQueryEventDetail.js.map +1 -0
  4. package/lib/commonjs/components/UnifiedEventDetail.js +34 -10
  5. package/lib/commonjs/components/UnifiedEventDetail.js.map +1 -0
  6. package/lib/commonjs/components/UnifiedEventFilters.js.map +1 -0
  7. package/lib/commonjs/components/UnifiedEventItem.js.map +1 -0
  8. package/lib/commonjs/components/UnifiedEventList.js.map +1 -0
  9. package/lib/commonjs/components/UnifiedEventViewer.js.map +1 -0
  10. package/lib/commonjs/hooks/useUnifiedEvents.js +57 -27
  11. package/lib/commonjs/hooks/useUnifiedEvents.js.map +1 -0
  12. package/lib/commonjs/index.js +21 -0
  13. package/lib/commonjs/index.js.map +1 -0
  14. package/lib/commonjs/preset.js.map +1 -0
  15. package/lib/commonjs/sources/sourceIds.js +30 -0
  16. package/lib/commonjs/sources/sourceIds.js.map +1 -0
  17. package/lib/commonjs/stores/unifiedEventStore.js +185 -14
  18. package/lib/commonjs/stores/unifiedEventStore.js.map +1 -0
  19. package/lib/commonjs/sync/eventsSyncAdapter.js +62 -0
  20. package/lib/commonjs/sync/eventsSyncAdapter.js.map +1 -0
  21. package/lib/commonjs/types/copySettings.js.map +1 -0
  22. package/lib/commonjs/types/index.js.map +1 -0
  23. package/lib/commonjs/utils/autoDiscoverEventSources.js.map +1 -0
  24. package/lib/commonjs/utils/badgeSelectionStorage.js.map +1 -0
  25. package/lib/commonjs/utils/copySettingsStorage.js.map +1 -0
  26. package/lib/commonjs/utils/correlationUtils.js.map +1 -0
  27. package/lib/commonjs/utils/eventExportFormatter.js.map +1 -0
  28. package/lib/commonjs/utils/eventTransformers.js.map +1 -0
  29. package/lib/module/components/EventsCopySettingsView.js.map +1 -0
  30. package/lib/module/components/EventsModal.js.map +1 -0
  31. package/lib/module/components/ReactQueryEventDetail.js.map +1 -0
  32. package/lib/module/components/UnifiedEventDetail.js +36 -12
  33. package/lib/module/components/UnifiedEventDetail.js.map +1 -0
  34. package/lib/module/components/UnifiedEventFilters.js.map +1 -0
  35. package/lib/module/components/UnifiedEventItem.js.map +1 -0
  36. package/lib/module/components/UnifiedEventList.js.map +1 -0
  37. package/lib/module/components/UnifiedEventViewer.js.map +1 -0
  38. package/lib/module/hooks/useUnifiedEvents.js +59 -29
  39. package/lib/module/hooks/useUnifiedEvents.js.map +1 -0
  40. package/lib/module/index.js +9 -1
  41. package/lib/module/index.js.map +1 -0
  42. package/lib/module/preset.js.map +1 -0
  43. package/lib/module/sources/sourceIds.js +26 -0
  44. package/lib/module/sources/sourceIds.js.map +1 -0
  45. package/lib/module/stores/unifiedEventStore.js +185 -14
  46. package/lib/module/stores/unifiedEventStore.js.map +1 -0
  47. package/lib/module/sync/eventsSyncAdapter.js +58 -0
  48. package/lib/module/sync/eventsSyncAdapter.js.map +1 -0
  49. package/lib/module/types/copySettings.js.map +1 -0
  50. package/lib/module/types/index.js.map +1 -0
  51. package/lib/module/utils/autoDiscoverEventSources.js.map +1 -0
  52. package/lib/module/utils/badgeSelectionStorage.js.map +1 -0
  53. package/lib/module/utils/copySettingsStorage.js.map +1 -0
  54. package/lib/module/utils/correlationUtils.js.map +1 -0
  55. package/lib/module/utils/eventExportFormatter.js.map +1 -0
  56. package/lib/module/utils/eventTransformers.js.map +1 -0
  57. package/lib/typescript/components/EventsCopySettingsView.d.ts.map +1 -0
  58. package/lib/typescript/components/EventsModal.d.ts.map +1 -0
  59. package/lib/typescript/components/ReactQueryEventDetail.d.ts.map +1 -0
  60. package/lib/typescript/components/UnifiedEventDetail.d.ts +20 -0
  61. package/lib/typescript/components/UnifiedEventDetail.d.ts.map +1 -0
  62. package/lib/typescript/components/UnifiedEventFilters.d.ts.map +1 -0
  63. package/lib/typescript/components/UnifiedEventItem.d.ts.map +1 -0
  64. package/lib/typescript/components/UnifiedEventList.d.ts.map +1 -0
  65. package/lib/typescript/components/UnifiedEventViewer.d.ts.map +1 -0
  66. package/lib/typescript/hooks/useUnifiedEvents.d.ts.map +1 -0
  67. package/lib/typescript/index.d.ts +5 -0
  68. package/lib/typescript/index.d.ts.map +1 -0
  69. package/lib/typescript/preset.d.ts.map +1 -0
  70. package/lib/typescript/sources/sourceIds.d.ts +13 -0
  71. package/lib/typescript/sources/sourceIds.d.ts.map +1 -0
  72. package/lib/typescript/stores/unifiedEventStore.d.ts +49 -2
  73. package/lib/typescript/stores/unifiedEventStore.d.ts.map +1 -0
  74. package/lib/typescript/sync/eventsSyncAdapter.d.ts +37 -0
  75. package/lib/typescript/sync/eventsSyncAdapter.d.ts.map +1 -0
  76. package/lib/typescript/types/copySettings.d.ts.map +1 -0
  77. package/lib/typescript/types/index.d.ts.map +1 -0
  78. package/lib/typescript/utils/autoDiscoverEventSources.d.ts.map +1 -0
  79. package/lib/typescript/utils/badgeSelectionStorage.d.ts.map +1 -0
  80. package/lib/typescript/utils/copySettingsStorage.d.ts.map +1 -0
  81. package/lib/typescript/utils/correlationUtils.d.ts.map +1 -0
  82. package/lib/typescript/utils/eventExportFormatter.d.ts.map +1 -0
  83. package/lib/typescript/utils/eventTransformers.d.ts.map +1 -0
  84. package/package.json +3 -3
  85. package/src/components/UnifiedEventDetail.tsx +51 -7
  86. package/src/hooks/useUnifiedEvents.ts +74 -28
  87. package/src/index.tsx +9 -1
  88. package/src/sources/sourceIds.ts +25 -0
  89. package/src/stores/unifiedEventStore.ts +197 -16
  90. package/src/sync/eventsSyncAdapter.ts +56 -0
@@ -8,8 +8,8 @@
8
8
  */
9
9
 
10
10
  import { useState, useEffect, useCallback, useMemo, useRef } from "react";
11
- import { useFeatureGate, subscribeToSubscriberCountChanges, isDevToolsStorageKey } from "@buoy-gg/shared-ui";
12
- import { subscribe, subscribeToStorage, subscribeToRedux, subscribeToNetwork, subscribeToReactQuery, subscribeToRoutes, subscribeToZustand, subscribeToJotai, subscribeToRender, unsubscribeFromStorage, unsubscribeFromRedux, unsubscribeFromNetwork, unsubscribeFromReactQuery, unsubscribeFromRoutes, unsubscribeFromZustand, unsubscribeFromJotai, unsubscribeFromRender, unsubscribeAll, getSourceCounts, clearEvents as clearStoreEvents, getAvailableEventSources, getSubscriberCounts } from "../stores/unifiedEventStore";
11
+ import { useFeatureGate, subscribeToSubscriberCountChanges, isDevToolsStorageKey, useIgnoredPatterns, isUrlIgnored } from "@buoy-gg/shared-ui";
12
+ import { subscribe, subscribeToStorage, subscribeToRedux, subscribeToNetwork, subscribeToReactQuery, subscribeToRoutes, subscribeToZustand, subscribeToJotai, subscribeToRender, unsubscribeFromStorage, unsubscribeFromRedux, unsubscribeFromNetwork, unsubscribeFromReactQuery, unsubscribeFromRoutes, unsubscribeFromZustand, unsubscribeFromJotai, unsubscribeFromRender, getSourceCounts, clearEvents as clearStoreEvents, getAvailableEventSources, getSubscriberCounts } from "../stores/unifiedEventStore";
13
13
  import { saveEnabledSources, loadEnabledSources, saveCapturingState, loadCapturingState } from "../utils/badgeSelectionStorage";
14
14
  import { getSourceDisplayConfig } from "../utils/autoDiscoverEventSources";
15
15
 
@@ -48,6 +48,17 @@ function isBuoyInternalEvent(event) {
48
48
  return false;
49
49
  }
50
50
 
51
+ /**
52
+ * Check whether a network event should be hidden because its URL matches one of
53
+ * the user's shared ignored-domain/URL patterns (the same store the Network tool
54
+ * writes to). Non-network events are never affected.
55
+ */
56
+ function isNetworkEventIgnored(event, ignoredPatterns) {
57
+ if (event.source !== "network" || ignoredPatterns.length === 0) return false;
58
+ const url = event.originalEvent?.url ?? "";
59
+ return isUrlIgnored(url, ignoredPatterns);
60
+ }
61
+
51
62
  /**
52
63
  * All possible sources for display
53
64
  */
@@ -76,36 +87,29 @@ const SOURCE_TO_EVENT_SOURCES = {
76
87
  jotai: ["jotai"],
77
88
  render: ["render"]
78
89
  };
79
-
80
- /**
81
- * Map event sources to their parent discovery ID
82
- */
83
- const EVENT_SOURCE_TO_DISCOVERY_ID = {
84
- "storage-async": "storage",
85
- "storage-mmkv": "storage",
86
- redux: "redux",
87
- network: "network",
88
- "react-query": "react-query",
89
- "react-query-query": "react-query",
90
- "react-query-mutation": "react-query",
91
- route: "route-events",
92
- zustand: "zustand",
93
- jotai: "jotai",
94
- render: "render"
95
- };
96
90
  export function useUnifiedEvents() {
97
91
  const {
98
92
  isPro
99
93
  } = useFeatureGate();
94
+ // Shared ignored-domain/URL patterns (same store as the Network tool). Network
95
+ // events matching these are hidden from the events list too, keeping both
96
+ // tools' filtering perfectly in sync.
97
+ const {
98
+ patterns: ignoredPatterns
99
+ } = useIgnoredPatterns();
100
100
  const [events, setEvents] = useState([]);
101
101
  const [enabledSources, setEnabledSources] = useState(() => new Set(DEFAULT_ENABLED_SOURCES));
102
102
  const [isCapturing, setIsCapturing] = useState(true);
103
103
  const isStateRestoredRef = useRef(false);
104
104
 
105
- // Get discovered sources (which packages are installed)
106
- const discoveredSources = useMemo(() => {
107
- return getAvailableEventSources();
108
- }, []);
105
+ // Get discovered sources (which packages are installed).
106
+ // Held in state, not a mount-only memo, because in remote mirror mode
107
+ // (desktop dashboard) the device's available sources arrive asynchronously
108
+ // via setRemoteAvailableSources() — after first paint. We refresh this from
109
+ // the store's notify path below so the filter badge bar appears once the
110
+ // first device snapshot lands. The reference is kept stable while the set is
111
+ // unchanged so dependent memos/effects don't re-run on every event.
112
+ const [discoveredSources, setDiscoveredSources] = useState(() => getAvailableEventSources());
109
113
 
110
114
  // Subscribe to subscriber count changes for instant UI updates (TanStack Query pattern)
111
115
  const [subscriberCountVersion, setSubscriberCountVersion] = useState(0);
@@ -124,10 +128,22 @@ export function useUnifiedEvents() {
124
128
  });
125
129
  }, [discoveredSources]);
126
130
 
127
- // Subscribe to store changes (always subscribe to get events when they come)
131
+ // Subscribe to store changes (always subscribe to get events when they come).
132
+ // Also refresh discoveredSources here: in remote mirror mode the device's
133
+ // availability is set right before replaceEvents() fires this listener, so
134
+ // this is where the badge bar first learns which sources exist. Keep the
135
+ // Set reference stable when membership is unchanged to avoid re-running the
136
+ // availableDisplaySources memo / restore-state effect on every event.
128
137
  useEffect(() => {
129
138
  const unsubscribe = subscribe(newEvents => {
130
139
  setEvents(newEvents);
140
+ setDiscoveredSources(prev => {
141
+ const next = getAvailableEventSources();
142
+ if (prev.size === next.size && [...next].every(s => prev.has(s))) {
143
+ return prev;
144
+ }
145
+ return new Set(next);
146
+ });
131
147
  });
132
148
  return unsubscribe;
133
149
  }, []);
@@ -207,13 +223,14 @@ export function useUnifiedEvents() {
207
223
  return allowed;
208
224
  }, [enabledSources]);
209
225
 
210
- // Filter events by enabled sources and exclude Buoy internal events
226
+ // Filter events by enabled sources, exclude Buoy internal events, and hide
227
+ // network events matching the shared ignored-domain/URL patterns.
211
228
  const allFilteredEvents = useMemo(() => {
212
229
  if (allowedEventSources.size === 0) {
213
230
  return [];
214
231
  }
215
- return events.filter(event => allowedEventSources.has(event.source) && !isBuoyInternalEvent(event));
216
- }, [events, allowedEventSources]);
232
+ return events.filter(event => allowedEventSources.has(event.source) && !isBuoyInternalEvent(event) && !isNetworkEventIgnored(event, ignoredPatterns));
233
+ }, [events, allowedEventSources, ignoredPatterns]);
217
234
 
218
235
  // Apply free tier limit if not Pro
219
236
  const filteredEvents = useMemo(() => {
@@ -371,9 +388,22 @@ export function useUnifiedEvents() {
371
388
  setIsCapturing(true);
372
389
  }, [enabledSources]);
373
390
  const stopCapturing = useCallback(() => {
374
- unsubscribeAll();
391
+ // Release only THIS hook's enabled sources (mirrors startCapturing). Source
392
+ // subscriptions are ref-counted in the store, so this won't yank sources a
393
+ // remote dashboard consumer is still watching (vs the old unsubscribeAll
394
+ // hard reset, which tore down everyone's).
395
+ if (enabledSources.has("storage-async")) unsubscribeFromStorage();
396
+ if (enabledSources.has("redux")) unsubscribeFromRedux();
397
+ if (enabledSources.has("network")) unsubscribeFromNetwork();
398
+ if (enabledSources.has("react-query-query") || enabledSources.has("react-query-mutation")) {
399
+ unsubscribeFromReactQuery();
400
+ }
401
+ if (enabledSources.has("route")) unsubscribeFromRoutes();
402
+ if (enabledSources.has("zustand")) unsubscribeFromZustand();
403
+ if (enabledSources.has("jotai")) unsubscribeFromJotai();
404
+ if (enabledSources.has("render")) unsubscribeFromRender();
375
405
  setIsCapturing(false);
376
- }, []);
406
+ }, [enabledSources]);
377
407
  const toggleCapturing = useCallback(() => {
378
408
  if (isCapturing) {
379
409
  stopCapturing();
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useEffect","useCallback","useMemo","useRef","useFeatureGate","subscribeToSubscriberCountChanges","isDevToolsStorageKey","useIgnoredPatterns","isUrlIgnored","subscribe","subscribeToStorage","subscribeToRedux","subscribeToNetwork","subscribeToReactQuery","subscribeToRoutes","subscribeToZustand","subscribeToJotai","subscribeToRender","unsubscribeFromStorage","unsubscribeFromRedux","unsubscribeFromNetwork","unsubscribeFromReactQuery","unsubscribeFromRoutes","unsubscribeFromZustand","unsubscribeFromJotai","unsubscribeFromRender","getSourceCounts","clearEvents","clearStoreEvents","getAvailableEventSources","getSubscriberCounts","saveEnabledSources","loadEnabledSources","saveCapturingState","loadCapturingState","getSourceDisplayConfig","FREE_TIER_MAX_EVENTS","BUOY_INTERNAL_HOSTS","isBuoyInternalEvent","event","original","originalEvent","source","key","data","keys","pairs","map","p","length","every","k","host","url","internalHost","includes","isNetworkEventIgnored","ignoredPatterns","ALL_DISPLAY_SOURCES","DEFAULT_ENABLED_SOURCES","filter","s","SOURCE_TO_EVENT_SOURCES","redux","network","route","zustand","jotai","render","useUnifiedEvents","isPro","patterns","events","setEvents","enabledSources","setEnabledSources","Set","isCapturing","setIsCapturing","isStateRestoredRef","discoveredSources","setDiscoveredSources","subscriberCountVersion","setSubscriberCountVersion","v","availableDisplaySources","displaySource","eventSources","some","es","has","unsubscribe","newEvents","prev","next","size","restoreState","savedSources","sourcesToEnable","defaultEnabledAvailable","validSources","savedCapturing","shouldCapture","current","Array","from","allowedEventSources","allowed","forEach","add","allFilteredEvents","filteredEvents","slice","hiddenEventsCount","Math","max","availableSources","counts","subscriberCounts","subscriberCountBySourceId","sources","sourceId","total","displaySourceToStoreId","totalCount","reduce","sum","displayConfig","storeId","subscriberCount","undefined","count","enabled","sort","a","b","toggleSource","wasEnabled","delete","enableAllSources","startCapturing","stopCapturing","toggleCapturing","totalSubscriberCount","totalSubscribers","filteredCount"],"sourceRoot":"../../../src","sources":["hooks/useUnifiedEvents.ts"],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,12 @@ export { eventsToolPreset, createEventsTool } from "./preset";
21
21
  // MAIN COMPONENT
22
22
  // =============================================================================
23
23
  export { UnifiedEventViewer } from "./components/UnifiedEventViewer";
24
+ export { EventsModal } from "./components/EventsModal";
25
+
26
+ // =============================================================================
27
+ // EXTERNAL SYNC (Adapter for @buoy-gg/external-sync's useExternalSync)
28
+ // =============================================================================
29
+ export { eventsSyncAdapter } from "./sync/eventsSyncAdapter";
24
30
 
25
31
  // =============================================================================
26
32
  // HOOKS (For consuming event data)
@@ -65,8 +71,10 @@ export { loadCopySettings, saveCopySettings, clearCopySettings } from "./utils/c
65
71
  // These are NOT exported to prevent users from bypassing the unified event
66
72
  // system. Event subscription should go through the proper tool integration.
67
73
  // =============================================================================
74
+ /** @internal - Remote mirror mode only (desktop dashboard): replaceEvents /
75
+ * onClear / setRemoteAvailableSources. Do not use for event subscription. */
76
+ export { unifiedEventStore } from "./stores/unifiedEventStore";
68
77
  // NOTE: The following are intentionally NOT exported:
69
- // - unifiedEventStore (internal store)
70
78
  // - subscribeToStorage, unsubscribeFromStorage (internal subscription)
71
79
  // - subscribeToRedux, unsubscribeFromRedux (internal subscription)
72
80
  // - subscribeToNetwork, unsubscribeFromNetwork (internal subscription)
@@ -0,0 +1 @@
1
+ {"version":3,"names":["eventsToolPreset","createEventsTool","UnifiedEventViewer","EventsModal","eventsSyncAdapter","useUnifiedEvents","DEFAULT_COPY_SETTINGS","COPY_PRESETS","PRESET_METADATA","detectActivePreset","UnifiedEventItem","UnifiedEventList","UnifiedEventFilters","UnifiedEventDetail","ReactQueryEventDetail","EventsCopySettingsView","findRelatedEvents","hasRelatedEvents","getRelatedEventsCount","buildCorrelationCountMap","getCorrelationGroup","getCorrelationLabel","getCorrelationColor","generateExport","generateMarkdownExport","generateJsonExport","generatePlaintextExport","generateMermaidExport","estimateExportSize","getExportSummary","filterEvents","loadCopySettings","saveCopySettings","clearCopySettings","unifiedEventStore"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,gBAAgB,EAAEC,gBAAgB,QAAQ,UAAU;;AAE7D;AACA;AACA;AACA,SAASC,kBAAkB,QAAQ,iCAAiC;AACpE,SAASC,WAAW,QAAQ,0BAA0B;;AAEtD;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,0BAA0B;;AAE5D;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,0BAA0B;;AAG3D;AACA;AACA;;AAYA;AACA;AACA;AACA,SACEC,qBAAqB,EACrBC,YAAY,EACZC,eAAe,EACfC,kBAAkB,QACb,sBAAsB;;AAE7B;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,kBAAkB,QAAQ,iCAAiC;AACpE,SAASC,qBAAqB,QAAQ,oCAAoC;AAC1E,SAASC,sBAAsB,QAAQ,qCAAqC;;AAE5E;AACA;AACA;AACA,SACEC,iBAAiB,EACjBC,gBAAgB,EAChBC,qBAAqB,EACrBC,wBAAwB,EACxBC,mBAAmB,EACnBC,mBAAmB,EACnBC,mBAAmB,QACd,0BAA0B;;AAEjC;AACA;AACA;AACA,SACEC,cAAc,EACdC,sBAAsB,EACtBC,kBAAkB,EAClBC,uBAAuB,EACvBC,qBAAqB,EACrBC,kBAAkB,EAClBC,gBAAgB,EAChBC,YAAY,QACP,8BAA8B;AAGrC;AACA;AACA;AACA,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,iBAAiB,QACZ,6BAA6B;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,4BAA4B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EventsIcon","EVENTS_ICON_COLOR","EventsModal","jsx","_jsx","eventsToolPreset","id","name","description","slot","icon","size","color","component","props","enableSharedModalDimensions","createEventsTool","options"],"sourceRoot":"../../src","sources":["preset.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,iBAAiB,QAAQ,8BAA8B;AAC5E,SAASC,WAAW,QAAQ,0BAA0B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAC,GAAA,IAAAC,IAAA;AASA,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,EAAE,EAAE,QAAQ;EACZC,IAAI,EAAE,QAAQ;EACdC,WAAW,EAAE,wBAAwB;EACrCC,IAAI,EAAE,MAAe;EACrBC,IAAI,EAAEA,CAAC;IAAEC,IAAI;IAAEC;EAAwC,CAAC,kBACtDR,IAAA,CAACJ,UAAU;IAACW,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA,KAAK,IAAIX;EAAkB,CAAE,CAC7D;EACDY,SAAS,EAAEX,WAAW;EACtBY,KAAK,EAAE;IACLC,2BAA2B,EAAE;EAC/B;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAACC,OAGhC,GAAG,CAAC,CAAC,EAAE;EACN,OAAO;IACL,GAAGZ,gBAAgB;IACnBE,IAAI,EAAEU,OAAO,CAACV,IAAI,IAAIF,gBAAgB,CAACE,IAAI;IAC3CC,WAAW,EAAES,OAAO,CAACT,WAAW,IAAIH,gBAAgB,CAACG;EACvD,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Map an event source (the granular UI badge identity) to its parent discovery
5
+ * ID (the key used by unifiedEventStore's source subscriptions). Several event
6
+ * sources can share one discovery source — e.g. storage-async + storage-mmkv
7
+ * both come from the "storage" discovery source, and the react-query family all
8
+ * map to "react-query".
9
+ *
10
+ * Shared by useUnifiedEvents (the on-device consumer) and unifiedEventStore's
11
+ * remote-consumer channel so the mapping lives in exactly one place.
12
+ */
13
+ export const EVENT_SOURCE_TO_DISCOVERY_ID = {
14
+ "storage-async": "storage",
15
+ "storage-mmkv": "storage",
16
+ redux: "redux",
17
+ network: "network",
18
+ "react-query": "react-query",
19
+ "react-query-query": "react-query",
20
+ "react-query-mutation": "react-query",
21
+ route: "route-events",
22
+ zustand: "zustand",
23
+ jotai: "jotai",
24
+ render: "render"
25
+ };
26
+ //# sourceMappingURL=sourceIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EVENT_SOURCE_TO_DISCOVERY_ID","redux","network","route","zustand","jotai","render"],"sourceRoot":"../../../src","sources":["sources/sourceIds.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,4BAAyD,GAAG;EACvE,eAAe,EAAE,SAAS;EAC1B,cAAc,EAAE,SAAS;EACzBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,aAAa;EAC5B,mBAAmB,EAAE,aAAa;EAClC,sBAAsB,EAAE,aAAa;EACrCC,KAAK,EAAE,cAAc;EACrBC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,OAAO;EACdC,MAAM,EAAE;AACV,CAAC","ignoreList":[]}
@@ -10,15 +10,38 @@
10
10
  */
11
11
 
12
12
  import { getCachedDiscovery, getAggregatedSubscriberCounts } from "../utils/autoDiscoverEventSources";
13
+ import { EVENT_SOURCE_TO_DISCOVERY_ID } from "../sources/sourceIds";
13
14
  const MAX_EVENTS = 200;
15
+
16
+ /**
17
+ * Source IDs that subscribeToAll() must NOT auto-subscribe to.
18
+ *
19
+ * These are high-frequency sources the UI excludes from DEFAULT_ENABLED_SOURCES
20
+ * (see useUnifiedEvents.ts). "render" (highlight-updates) fires on every
21
+ * component render — tens of events per second — which floods the shared store
22
+ * (capped at MAX_EVENTS), shoves real events out, and shows up as hidden noise
23
+ * ("1 of 100"). subscribeToAll() is the dashboard-watch path; it must mirror
24
+ * the on-device default of leaving render OFF unless the user opts in.
25
+ */
26
+ const SUBSCRIBE_ALL_EXCLUDED_SOURCE_IDS = new Set(["render"]);
14
27
  class UnifiedEventStore {
15
28
  events = [];
16
29
  listeners = new Set();
17
30
  activeSources = new Set();
31
+ clearListeners = new Set();
32
+ remoteAvailableSources = null;
18
33
 
19
- // Track which sources are currently subscribed
34
+ // Track which sources are currently subscribed, ref-counted so independent
35
+ // consumers (the on-device EventsModal and the remote dashboard) can each
36
+ // request a source and the underlying capture only stops when the LAST one
37
+ // drops it. Presence of a key still means "subscribed".
20
38
  sourceUnsubscribers = new Map();
21
39
 
40
+ // Discovery IDs the remote dashboard (sync adapter) currently wants. Tracked
41
+ // separately so the remote consumer can be diffed/cleared independently of
42
+ // the on-device consumer's subscriptions.
43
+ remoteDiscoveryIds = new Set();
44
+
22
45
  // Map network event IDs to unified event IDs for updates
23
46
  networkEventIdMap = new Map();
24
47
 
@@ -30,12 +53,61 @@ class UnifiedEventStore {
30
53
  }
31
54
 
32
55
  /**
33
- * Get which event source types are available
56
+ * Get which event source types are available. In remote mirror mode this
57
+ * reflects the synced device's availability instead of local discovery.
34
58
  */
35
59
  getAvailableEventSources() {
60
+ if (this.remoteAvailableSources) {
61
+ return this.remoteAvailableSources;
62
+ }
36
63
  return getCachedDiscovery().availableEventSources;
37
64
  }
38
65
 
66
+ // ===========================================================================
67
+ // REMOTE MIRROR MODE
68
+ // ===========================================================================
69
+
70
+ /**
71
+ * Override source availability with the synced device's (auto-discovery
72
+ * finds nothing on the dashboard — the tool packages live on the device).
73
+ * Pass null to restore local discovery.
74
+ *
75
+ * Notifies listeners when the set actually changes so consumers
76
+ * (useUnifiedEvents) can refresh their available-source list — this is the
77
+ * only signal the dashboard's filter badge bar gets when capture is OFF and
78
+ * no events are flowing to trigger replaceEvents().
79
+ */
80
+ setRemoteAvailableSources(sources) {
81
+ const next = sources ? new Set(sources) : null;
82
+ const prev = this.remoteAvailableSources;
83
+ const unchanged = prev === null && next === null || !!prev && !!next && prev.size === next.size && [...next].every(s => prev.has(s));
84
+ this.remoteAvailableSources = next;
85
+ if (!unchanged) {
86
+ this.notifyListeners();
87
+ }
88
+ }
89
+
90
+ /**
91
+ * Replace the entire event list and notify listeners. Used in remote
92
+ * mirror mode where full snapshots arrive from a synced device.
93
+ */
94
+ replaceEvents(events) {
95
+ this.events = events.slice(0, MAX_EVENTS);
96
+ this.activeSources = new Set(events.map(event => event.source));
97
+ this.notifyListeners();
98
+ }
99
+
100
+ /**
101
+ * Listen for clearEvents() calls. Used in remote mirror mode to forward a
102
+ * clear performed in the dashboard UI to the synced device.
103
+ */
104
+ onClear(listener) {
105
+ this.clearListeners.add(listener);
106
+ return () => {
107
+ this.clearListeners.delete(listener);
108
+ };
109
+ }
110
+
39
111
  /**
40
112
  * Subscribe to all available event sources
41
113
  */
@@ -44,6 +116,12 @@ class UnifiedEventStore {
44
116
  sources
45
117
  } = getCachedDiscovery();
46
118
  for (const source of sources) {
119
+ // Skip high-frequency sources the UI leaves off by default (e.g. render).
120
+ // Subscribing to them here would flood the timeline with events that are
121
+ // then filtered out of the display — see SUBSCRIBE_ALL_EXCLUDED_SOURCE_IDS.
122
+ if (SUBSCRIBE_ALL_EXCLUDED_SOURCE_IDS.has(source.id)) {
123
+ continue;
124
+ }
47
125
  await this.subscribeToSource(source);
48
126
  }
49
127
  }
@@ -52,9 +130,20 @@ class UnifiedEventStore {
52
130
  * Subscribe to a specific event source by ID
53
131
  */
54
132
  async subscribeToSource(source) {
55
- if (this.sourceUnsubscribers.has(source.id)) {
56
- return; // Already subscribed
133
+ const existing = this.sourceUnsubscribers.get(source.id);
134
+ if (existing) {
135
+ existing.refCount++; // Another consumer wants it — just count.
136
+ return;
57
137
  }
138
+
139
+ // Reserve the slot synchronously (refCount 1) so concurrent subscribe calls
140
+ // for the same source ref-count instead of double-subscribing during the
141
+ // awaits below.
142
+ const entry = {
143
+ unsubscribe: () => {},
144
+ refCount: 1
145
+ };
146
+ this.sourceUnsubscribers.set(source.id, entry);
58
147
  try {
59
148
  // Run setup if needed
60
149
  if (source.setup) {
@@ -66,20 +155,27 @@ class UnifiedEventStore {
66
155
  this.addEvent(event);
67
156
  });
68
157
  if (unsubscribe) {
69
- this.sourceUnsubscribers.set(source.id, unsubscribe);
158
+ entry.unsubscribe = unsubscribe;
70
159
  }
71
160
  } catch {
72
- // Silently fail - source may not be available
161
+ // Failed - source may not be available. Drop the reservation unless other
162
+ // consumers incremented it while we were awaiting.
163
+ if (this.sourceUnsubscribers.get(source.id) === entry && entry.refCount <= 1) {
164
+ this.sourceUnsubscribers.delete(source.id);
165
+ }
73
166
  }
74
167
  }
75
168
 
76
169
  /**
77
- * Unsubscribe from a specific source by ID
170
+ * Unsubscribe from a specific source by ID. Ref-counted: the real teardown
171
+ * only runs when the last consumer drops it.
78
172
  */
79
173
  unsubscribeFromSource(sourceId) {
80
- const unsubscribe = this.sourceUnsubscribers.get(sourceId);
81
- if (unsubscribe) {
82
- unsubscribe();
174
+ const entry = this.sourceUnsubscribers.get(sourceId);
175
+ if (!entry) return;
176
+ entry.refCount--;
177
+ if (entry.refCount <= 0) {
178
+ entry.unsubscribe();
83
179
  this.sourceUnsubscribers.delete(sourceId);
84
180
  }
85
181
  }
@@ -339,6 +435,13 @@ class UnifiedEventStore {
339
435
  this.activeSources.clear();
340
436
  this.networkEventIdMap.clear();
341
437
  this.notifyListeners();
438
+ this.clearListeners.forEach(listener => {
439
+ try {
440
+ listener();
441
+ } catch {
442
+ // Ignore listener errors
443
+ }
444
+ });
342
445
  }
343
446
 
344
447
  /**
@@ -375,14 +478,82 @@ class UnifiedEventStore {
375
478
  * Unsubscribe from all sources
376
479
  */
377
480
  unsubscribeAll() {
378
- // Unsubscribe from all tracked sources
379
- for (const [, unsubscribe] of this.sourceUnsubscribers) {
380
- unsubscribe();
481
+ // Hard reset: tear down every tracked source regardless of ref-count.
482
+ for (const [, entry] of this.sourceUnsubscribers) {
483
+ entry.unsubscribe();
381
484
  }
382
485
  this.sourceUnsubscribers.clear();
383
486
 
384
- // Clear active sources
487
+ // Clear active + remote source bookkeeping (all subscriptions are gone).
385
488
  this.activeSources.clear();
489
+ this.remoteDiscoveryIds.clear();
490
+ }
491
+
492
+ /**
493
+ * Remote-consumer channel: the dashboard sync adapter declares which event
494
+ * sources it wants the device to capture. Diffed against the previous remote
495
+ * set so only changed sources are (un)subscribed; ref-counting keeps the
496
+ * on-device EventsModal's own subscriptions intact. Pass "all" to capture
497
+ * every discovered source except the high-frequency excluded ones.
498
+ */
499
+ async setRemoteEnabledSources(sources) {
500
+ const {
501
+ sources: discovered
502
+ } = getCachedDiscovery();
503
+ let nextIds;
504
+ if (sources === "all") {
505
+ nextIds = new Set(discovered.map(s => s.id).filter(id => !SUBSCRIBE_ALL_EXCLUDED_SOURCE_IDS.has(id)));
506
+ } else {
507
+ nextIds = new Set();
508
+ for (const src of sources) {
509
+ const id = EVENT_SOURCE_TO_DISCOVERY_ID[src];
510
+ if (id) nextIds.add(id);
511
+ }
512
+ }
513
+
514
+ // Swap the tracked set SYNCHRONOUSLY (before the awaits) so a watch's
515
+ // ensureRemoteSourcesDefault() that runs in between sees the new selection
516
+ // and won't re-broaden to "all".
517
+ const prevIds = this.remoteDiscoveryIds;
518
+ this.remoteDiscoveryIds = nextIds;
519
+
520
+ // Subscribe newly-requested sources.
521
+ for (const id of nextIds) {
522
+ if (!prevIds.has(id)) {
523
+ const source = discovered.find(s => s.id === id);
524
+ if (source) await this.subscribeToSource(source);
525
+ }
526
+ }
527
+ // Release sources the remote no longer wants.
528
+ for (const id of prevIds) {
529
+ if (!nextIds.has(id)) {
530
+ this.unsubscribeFromSource(id);
531
+ }
532
+ }
533
+ }
534
+
535
+ /**
536
+ * Called by the sync adapter when a dashboard starts watching: default to all
537
+ * sources, but ONLY if the dashboard hasn't already declared a selection for
538
+ * this watch session (the setEnabledSources action can arrive before the
539
+ * watch). Keeps backward compatibility with dashboards that never narrow.
540
+ */
541
+ ensureRemoteSourcesDefault() {
542
+ if (this.remoteDiscoveryIds.size === 0) {
543
+ void this.setRemoteEnabledSources("all");
544
+ }
545
+ }
546
+
547
+ /**
548
+ * Release all of the remote consumer's source subscriptions (e.g. when the
549
+ * dashboard stops watching the events tool). Ref-counting means sources the
550
+ * on-device EventsModal also wants stay subscribed.
551
+ */
552
+ clearRemoteSources() {
553
+ for (const id of this.remoteDiscoveryIds) {
554
+ this.unsubscribeFromSource(id);
555
+ }
556
+ this.remoteDiscoveryIds.clear();
386
557
  }
387
558
 
388
559
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getCachedDiscovery","getAggregatedSubscriberCounts","EVENT_SOURCE_TO_DISCOVERY_ID","MAX_EVENTS","SUBSCRIBE_ALL_EXCLUDED_SOURCE_IDS","Set","UnifiedEventStore","events","listeners","activeSources","clearListeners","remoteAvailableSources","sourceUnsubscribers","Map","remoteDiscoveryIds","networkEventIdMap","getDiscoveredSources","sources","getAvailableEventSources","availableEventSources","setRemoteAvailableSources","next","prev","unchanged","size","every","s","has","notifyListeners","replaceEvents","slice","map","event","source","onClear","listener","add","delete","subscribeToAll","id","subscribeToSource","existing","get","refCount","entry","unsubscribe","set","setup","subscribe","addEvent","unsubscribeFromSource","sourceId","subscribeToStorage","storageSource","find","unsubscribeFromStorage","subscribeToRedux","reduxSource","unsubscribeFromRedux","subscribeToNetwork","networkSource","unsubscribeFromNetwork","subscribeToReactQuery","rqSource","unsubscribeFromReactQuery","subscribeToRoutes","routeSource","unsubscribeFromRoutes","subscribeToZustand","zustandSource","unsubscribeFromZustand","subscribeToJotai","jotaiSource","unsubscribeFromJotai","subscribeToRender","renderSource","unsubscribeFromRender","originalEvent","existingUnifiedId","existingIndex","findIndex","e","getEvents","enabledSources","filter","getActiveSources","Array","from","getSourceCounts","counts","redux","network","route","zustand","jotai","render","clearEvents","clear","forEach","getEventCount","length","unsubscribeAll","setRemoteEnabledSources","discovered","nextIds","src","prevIds","ensureRemoteSourcesDefault","clearRemoteSources","isSourceSubscribed","getSubscriptionStatus","getSubscriberCounts","unifiedEventStore"],"sourceRoot":"../../../src","sources":["stores/unifiedEventStore.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,SACEA,kBAAkB,EAClBC,6BAA6B,QAGxB,mCAAmC;AAC1C,SAASC,4BAA4B,QAAQ,sBAAsB;AAEnE,MAAMC,UAAU,GAAG,GAAG;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iCAAiC,GAAG,IAAIC,GAAG,CAAS,CAAC,QAAQ,CAAC,CAAC;AAErE,MAAMC,iBAAiB,CAAC;EACdC,MAAM,GAAmB,EAAE;EAC3BC,SAAS,GAA8B,IAAIH,GAAG,CAAC,CAAC;EAChDI,aAAa,GAAqB,IAAIJ,GAAG,CAAC,CAAC;EAC3CK,cAAc,GAAoB,IAAIL,GAAG,CAAC,CAAC;EAC3CM,sBAAsB,GAA4B,IAAI;;EAE9D;EACA;EACA;EACA;EACQC,mBAAmB,GAGvB,IAAIC,GAAG,CAAC,CAAC;;EAEb;EACA;EACA;EACQC,kBAAkB,GAAgB,IAAIT,GAAG,CAAC,CAAC;;EAEnD;EACQU,iBAAiB,GAAwB,IAAIF,GAAG,CAAC,CAAC;;EAE1D;AACF;AACA;EACEG,oBAAoBA,CAAA,EAA4B;IAC9C,OAAOhB,kBAAkB,CAAC,CAAC,CAACiB,OAAO;EACrC;;EAEA;AACF;AACA;AACA;EACEC,wBAAwBA,CAAA,EAAqB;IAC3C,IAAI,IAAI,CAACP,sBAAsB,EAAE;MAC/B,OAAO,IAAI,CAACA,sBAAsB;IACpC;IACA,OAAOX,kBAAkB,CAAC,CAAC,CAACmB,qBAAqB;EACnD;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,yBAAyBA,CAACH,OAA6B,EAAQ;IAC7D,MAAMI,IAAI,GAAGJ,OAAO,GAAG,IAAIZ,GAAG,CAACY,OAAO,CAAC,GAAG,IAAI;IAC9C,MAAMK,IAAI,GAAG,IAAI,CAACX,sBAAsB;IACxC,MAAMY,SAAS,GACZD,IAAI,KAAK,IAAI,IAAID,IAAI,KAAK,IAAI,IAC9B,CAAC,CAACC,IAAI,IACL,CAAC,CAACD,IAAI,IACNC,IAAI,CAACE,IAAI,KAAKH,IAAI,CAACG,IAAI,IACvB,CAAC,GAAGH,IAAI,CAAC,CAACI,KAAK,CAAEC,CAAC,IAAKJ,IAAI,CAACK,GAAG,CAACD,CAAC,CAAC,CAAE;IACxC,IAAI,CAACf,sBAAsB,GAAGU,IAAI;IAClC,IAAI,CAACE,SAAS,EAAE;MACd,IAAI,CAACK,eAAe,CAAC,CAAC;IACxB;EACF;;EAEA;AACF;AACA;AACA;EACEC,aAAaA,CAACtB,MAAsB,EAAQ;IAC1C,IAAI,CAACA,MAAM,GAAGA,MAAM,CAACuB,KAAK,CAAC,CAAC,EAAE3B,UAAU,CAAC;IACzC,IAAI,CAACM,aAAa,GAAG,IAAIJ,GAAG,CAACE,MAAM,CAACwB,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,MAAM,CAAC,CAAC;IACjE,IAAI,CAACL,eAAe,CAAC,CAAC;EACxB;;EAEA;AACF;AACA;AACA;EACEM,OAAOA,CAACC,QAAoB,EAAc;IACxC,IAAI,CAACzB,cAAc,CAAC0B,GAAG,CAACD,QAAQ,CAAC;IACjC,OAAO,MAAM;MACX,IAAI,CAACzB,cAAc,CAAC2B,MAAM,CAACF,QAAQ,CAAC;IACtC,CAAC;EACH;;EAEA;AACF;AACA;EACE,MAAMG,cAAcA,CAAA,EAAkB;IACpC,MAAM;MAAErB;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IAExC,KAAK,MAAMiC,MAAM,IAAIhB,OAAO,EAAE;MAC5B;MACA;MACA;MACA,IAAIb,iCAAiC,CAACuB,GAAG,CAACM,MAAM,CAACM,EAAE,CAAC,EAAE;QACpD;MACF;MACA,MAAM,IAAI,CAACC,iBAAiB,CAACP,MAAM,CAAC;IACtC;EACF;;EAEA;AACF;AACA;EACE,MAAMO,iBAAiBA,CAACP,MAA6B,EAAiB;IACpE,MAAMQ,QAAQ,GAAG,IAAI,CAAC7B,mBAAmB,CAAC8B,GAAG,CAACT,MAAM,CAACM,EAAE,CAAC;IACxD,IAAIE,QAAQ,EAAE;MACZA,QAAQ,CAACE,QAAQ,EAAE,CAAC,CAAC;MACrB;IACF;;IAEA;IACA;IACA;IACA,MAAMC,KAAK,GAAG;MAAEC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;MAAEF,QAAQ,EAAE;IAAE,CAAC;IACpD,IAAI,CAAC/B,mBAAmB,CAACkC,GAAG,CAACb,MAAM,CAACM,EAAE,EAAEK,KAAK,CAAC;IAE9C,IAAI;MACF;MACA,IAAIX,MAAM,CAACc,KAAK,EAAE;QAChB,MAAMd,MAAM,CAACc,KAAK,CAAC,CAAC;MACtB;;MAEA;MACA,MAAMF,WAAW,GAAG,MAAMZ,MAAM,CAACe,SAAS,CAAEhB,KAAK,IAAK;QACpD,IAAI,CAACiB,QAAQ,CAACjB,KAAK,CAAC;MACtB,CAAC,CAAC;MAEF,IAAIa,WAAW,EAAE;QACfD,KAAK,CAACC,WAAW,GAAGA,WAAW;MACjC;IACF,CAAC,CAAC,MAAM;MACN;MACA;MACA,IAAI,IAAI,CAACjC,mBAAmB,CAAC8B,GAAG,CAACT,MAAM,CAACM,EAAE,CAAC,KAAKK,KAAK,IAAIA,KAAK,CAACD,QAAQ,IAAI,CAAC,EAAE;QAC5E,IAAI,CAAC/B,mBAAmB,CAACyB,MAAM,CAACJ,MAAM,CAACM,EAAE,CAAC;MAC5C;IACF;EACF;;EAEA;AACF;AACA;AACA;EACEW,qBAAqBA,CAACC,QAAgB,EAAQ;IAC5C,MAAMP,KAAK,GAAG,IAAI,CAAChC,mBAAmB,CAAC8B,GAAG,CAACS,QAAQ,CAAC;IACpD,IAAI,CAACP,KAAK,EAAE;IACZA,KAAK,CAACD,QAAQ,EAAE;IAChB,IAAIC,KAAK,CAACD,QAAQ,IAAI,CAAC,EAAE;MACvBC,KAAK,CAACC,WAAW,CAAC,CAAC;MACnB,IAAI,CAACjC,mBAAmB,CAACyB,MAAM,CAACc,QAAQ,CAAC;IAC3C;EACF;;EAEA;AACF;AACA;EACE,MAAMC,kBAAkBA,CAAA,EAAkB;IACxC,MAAM;MAAEnC;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IACxC,MAAMqD,aAAa,GAAGpC,OAAO,CAACqC,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAK,SAAS,CAAC;IAC7D,IAAIc,aAAa,EAAE;MACjB,MAAM,IAAI,CAACb,iBAAiB,CAACa,aAAa,CAAC;IAC7C;EACF;;EAEA;AACF;AACA;EACEE,sBAAsBA,CAAA,EAAS;IAC7B,IAAI,CAACL,qBAAqB,CAAC,SAAS,CAAC;IACrC,IAAI,CAACzC,aAAa,CAAC4B,MAAM,CAAC,eAAe,CAAC;IAC1C,IAAI,CAAC5B,aAAa,CAAC4B,MAAM,CAAC,cAAc,CAAC;EAC3C;;EAEA;AACF;AACA;EACEmB,gBAAgBA,CAAA,EAAS;IACvB,MAAM;MAAEvC;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IACxC,MAAMyD,WAAW,GAAGxC,OAAO,CAACqC,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAK,OAAO,CAAC;IACzD,IAAIkB,WAAW,EAAE;MACf,IAAI,CAACjB,iBAAiB,CAACiB,WAAW,CAAC;IACrC;EACF;;EAEA;AACF;AACA;EACEC,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACR,qBAAqB,CAAC,OAAO,CAAC;IACnC,IAAI,CAACzC,aAAa,CAAC4B,MAAM,CAAC,OAAO,CAAC;EACpC;;EAEA;AACF;AACA;EACEsB,kBAAkBA,CAAA,EAAS;IACzB,MAAM;MAAE1C;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IACxC,MAAM4D,aAAa,GAAG3C,OAAO,CAACqC,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAK,SAAS,CAAC;IAC7D,IAAIqB,aAAa,EAAE;MACjB,IAAI,CAACpB,iBAAiB,CAACoB,aAAa,CAAC;IACvC;EACF;;EAEA;AACF;AACA;EACEC,sBAAsBA,CAAA,EAAS;IAC7B,IAAI,CAACX,qBAAqB,CAAC,SAAS,CAAC;IACrC,IAAI,CAACzC,aAAa,CAAC4B,MAAM,CAAC,SAAS,CAAC;IACpC;IACA;EACF;;EAEA;AACF;AACA;EACEyB,qBAAqBA,CAAA,EAAS;IAC5B,MAAM;MAAE7C;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IACxC,MAAM+D,QAAQ,GAAG9C,OAAO,CAACqC,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAK,aAAa,CAAC;IAC5D,IAAIwB,QAAQ,EAAE;MACZ,IAAI,CAACvB,iBAAiB,CAACuB,QAAQ,CAAC;IAClC;EACF;;EAEA;AACF;AACA;EACEC,yBAAyBA,CAAA,EAAS;IAChC,IAAI,CAACd,qBAAqB,CAAC,aAAa,CAAC;IACzC,IAAI,CAACzC,aAAa,CAAC4B,MAAM,CAAC,aAAa,CAAC;IACxC,IAAI,CAAC5B,aAAa,CAAC4B,MAAM,CAAC,mBAAmB,CAAC;IAC9C,IAAI,CAAC5B,aAAa,CAAC4B,MAAM,CAAC,sBAAsB,CAAC;EACnD;;EAEA;AACF;AACA;EACE4B,iBAAiBA,CAAA,EAAS;IACxB,MAAM;MAAEhD;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IACxC,MAAMkE,WAAW,GAAGjD,OAAO,CAACqC,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAK,cAAc,CAAC;IAChE,IAAI2B,WAAW,EAAE;MACf,IAAI,CAAC1B,iBAAiB,CAAC0B,WAAW,CAAC;IACrC;EACF;;EAEA;AACF;AACA;EACEC,qBAAqBA,CAAA,EAAS;IAC5B,IAAI,CAACjB,qBAAqB,CAAC,cAAc,CAAC;IAC1C,IAAI,CAACzC,aAAa,CAAC4B,MAAM,CAAC,OAAO,CAAC;EACpC;;EAEA;AACF;AACA;EACE+B,kBAAkBA,CAAA,EAAS;IACzB,MAAM;MAAEnD;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IACxC,MAAMqE,aAAa,GAAGpD,OAAO,CAACqC,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAK,SAAS,CAAC;IAC7D,IAAI8B,aAAa,EAAE;MACjB,IAAI,CAAC7B,iBAAiB,CAAC6B,aAAa,CAAC;IACvC;EACF;;EAEA;AACF;AACA;EACEC,sBAAsBA,CAAA,EAAS;IAC7B,IAAI,CAACpB,qBAAqB,CAAC,SAAS,CAAC;IACrC,IAAI,CAACzC,aAAa,CAAC4B,MAAM,CAAC,SAAS,CAAC;EACtC;;EAEA;AACF;AACA;EACEkC,gBAAgBA,CAAA,EAAS;IACvB,MAAM;MAAEtD;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IACxC,MAAMwE,WAAW,GAAGvD,OAAO,CAACqC,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAK,OAAO,CAAC;IACzD,IAAIiC,WAAW,EAAE;MACf,IAAI,CAAChC,iBAAiB,CAACgC,WAAW,CAAC;IACrC;EACF;;EAEA;AACF;AACA;EACEC,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACvB,qBAAqB,CAAC,OAAO,CAAC;IACnC,IAAI,CAACzC,aAAa,CAAC4B,MAAM,CAAC,OAAO,CAAC;EACpC;;EAEA;AACF;AACA;EACEqC,iBAAiBA,CAAA,EAAS;IACxB,MAAM;MAAEzD;IAAQ,CAAC,GAAGjB,kBAAkB,CAAC,CAAC;IACxC,MAAM2E,YAAY,GAAG1D,OAAO,CAACqC,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAK,QAAQ,CAAC;IAC3D,IAAIoC,YAAY,EAAE;MAChB,IAAI,CAACnC,iBAAiB,CAACmC,YAAY,CAAC;IACtC;EACF;;EAEA;AACF;AACA;EACEC,qBAAqBA,CAAA,EAAS;IAC5B,IAAI,CAAC1B,qBAAqB,CAAC,QAAQ,CAAC;IACpC,IAAI,CAACzC,aAAa,CAAC4B,MAAM,CAAC,QAAQ,CAAC;EACrC;;EAEA;AACF;AACA;EACUY,QAAQA,CAACjB,KAAmB,EAAQ;IAC1C;IACA,IAAIA,KAAK,CAACC,MAAM,KAAK,SAAS,EAAE;MAC9B,MAAM4C,aAAa,GAAG7C,KAAK,CAAC6C,aAAgC;MAC5D,IAAIA,aAAa,EAAEtC,EAAE,EAAE;QACrB,MAAMuC,iBAAiB,GAAG,IAAI,CAAC/D,iBAAiB,CAAC2B,GAAG,CAACmC,aAAa,CAACtC,EAAE,CAAC;QACtE,IAAIuC,iBAAiB,EAAE;UACrB;UACA,MAAMC,aAAa,GAAG,IAAI,CAACxE,MAAM,CAACyE,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAAC1C,EAAE,KAAKuC,iBAAiB,CAAC;UAC9E,IAAIC,aAAa,IAAI,CAAC,EAAE;YACtB/C,KAAK,CAACO,EAAE,GAAGuC,iBAAiB,CAAC,CAAC;YAC9B,IAAI,CAACvE,MAAM,GAAG,CACZ,GAAG,IAAI,CAACA,MAAM,CAACuB,KAAK,CAAC,CAAC,EAAEiD,aAAa,CAAC,EACtC/C,KAAK,EACL,GAAG,IAAI,CAACzB,MAAM,CAACuB,KAAK,CAACiD,aAAa,GAAG,CAAC,CAAC,CACxC;YACD,IAAI,CAACnD,eAAe,CAAC,CAAC;YACtB;UACF;QACF;QACA;QACA,IAAI,CAACb,iBAAiB,CAAC+B,GAAG,CAAC+B,aAAa,CAACtC,EAAE,EAAEP,KAAK,CAACO,EAAE,CAAC;MACxD;IACF;;IAEA;IACA,IAAI,CAAChC,MAAM,GAAG,CAACyB,KAAK,EAAE,GAAG,IAAI,CAACzB,MAAM,CAAC,CAACuB,KAAK,CAAC,CAAC,EAAE3B,UAAU,CAAC;;IAE1D;IACA,IAAI,CAACM,aAAa,CAAC2B,GAAG,CAACJ,KAAK,CAACC,MAAM,CAAC;;IAEpC;IACA,IAAI,CAACL,eAAe,CAAC,CAAC;EACxB;;EAEA;AACF;AACA;EACEsD,SAASA,CAACC,cAAiC,EAAkB;IAC3D,IAAI,CAACA,cAAc,IAAIA,cAAc,CAAC3D,IAAI,KAAK,CAAC,EAAE;MAChD,OAAO,IAAI,CAACjB,MAAM;IACpB;IAEA,OAAO,IAAI,CAACA,MAAM,CAAC6E,MAAM,CAAEpD,KAAK,IAAKmD,cAAc,CAACxD,GAAG,CAACK,KAAK,CAACC,MAAM,CAAC,CAAC;EACxE;;EAEA;AACF;AACA;EACEoD,gBAAgBA,CAAA,EAAkB;IAChC,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAAC9E,aAAa,CAAC;EACvC;;EAEA;AACF;AACA;EACE+E,eAAeA,CAAA,EAAgC;IAC7C,MAAMC,MAAmC,GAAG;MAC1C,eAAe,EAAE,CAAC;MAClB,cAAc,EAAE,CAAC;MACjBC,KAAK,EAAE,CAAC;MACRC,OAAO,EAAE,CAAC;MACV,aAAa,EAAE,CAAC;MAChB,mBAAmB,EAAE,CAAC;MACtB,sBAAsB,EAAE,CAAC;MACzBC,KAAK,EAAE,CAAC;MACRC,OAAO,EAAE,CAAC;MACVC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE;IACV,CAAC;IAED,KAAK,MAAM/D,KAAK,IAAI,IAAI,CAACzB,MAAM,EAAE;MAC/BkF,MAAM,CAACzD,KAAK,CAACC,MAAM,CAAC,EAAE;IACxB;IAEA,OAAOwD,MAAM;EACf;;EAEA;AACF;AACA;EACEO,WAAWA,CAAA,EAAS;IAClB,IAAI,CAACzF,MAAM,GAAG,EAAE;IAChB,IAAI,CAACE,aAAa,CAACwF,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAClF,iBAAiB,CAACkF,KAAK,CAAC,CAAC;IAC9B,IAAI,CAACrE,eAAe,CAAC,CAAC;IACtB,IAAI,CAAClB,cAAc,CAACwF,OAAO,CAAE/D,QAAQ,IAAK;MACxC,IAAI;QACFA,QAAQ,CAAC,CAAC;MACZ,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEa,SAASA,CAACb,QAA8B,EAAc;IACpD,IAAI,CAAC3B,SAAS,CAAC4B,GAAG,CAACD,QAAQ,CAAC;;IAE5B;IACAA,QAAQ,CAAC,IAAI,CAAC5B,MAAM,CAAC;;IAErB;IACA,OAAO,MAAM;MACX,IAAI,CAACC,SAAS,CAAC6B,MAAM,CAACF,QAAQ,CAAC;IACjC,CAAC;EACH;;EAEA;AACF;AACA;EACUP,eAAeA,CAAA,EAAS;IAC9B,MAAMrB,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,IAAI,CAACC,SAAS,CAAC0F,OAAO,CAAE/D,QAAQ,IAAKA,QAAQ,CAAC5B,MAAM,CAAC,CAAC;EACxD;;EAEA;AACF;AACA;EACE4F,aAAaA,CAAA,EAAW;IACtB,OAAO,IAAI,CAAC5F,MAAM,CAAC6F,MAAM;EAC3B;;EAEA;AACF;AACA;EACEC,cAAcA,CAAA,EAAS;IACrB;IACA,KAAK,MAAM,GAAGzD,KAAK,CAAC,IAAI,IAAI,CAAChC,mBAAmB,EAAE;MAChDgC,KAAK,CAACC,WAAW,CAAC,CAAC;IACrB;IACA,IAAI,CAACjC,mBAAmB,CAACqF,KAAK,CAAC,CAAC;;IAEhC;IACA,IAAI,CAACxF,aAAa,CAACwF,KAAK,CAAC,CAAC;IAC1B,IAAI,CAACnF,kBAAkB,CAACmF,KAAK,CAAC,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMK,uBAAuBA,CAC3BrF,OAA8B,EACf;IACf,MAAM;MAAEA,OAAO,EAAEsF;IAAW,CAAC,GAAGvG,kBAAkB,CAAC,CAAC;IAEpD,IAAIwG,OAAoB;IACxB,IAAIvF,OAAO,KAAK,KAAK,EAAE;MACrBuF,OAAO,GAAG,IAAInG,GAAG,CACfkG,UAAU,CACPxE,GAAG,CAAEL,CAAC,IAAKA,CAAC,CAACa,EAAE,CAAC,CAChB6C,MAAM,CAAE7C,EAAE,IAAK,CAACnC,iCAAiC,CAACuB,GAAG,CAACY,EAAE,CAAC,CAC9D,CAAC;IACH,CAAC,MAAM;MACLiE,OAAO,GAAG,IAAInG,GAAG,CAAS,CAAC;MAC3B,KAAK,MAAMoG,GAAG,IAAIxF,OAAO,EAAE;QACzB,MAAMsB,EAAE,GAAGrC,4BAA4B,CAACuG,GAAG,CAAC;QAC5C,IAAIlE,EAAE,EAAEiE,OAAO,CAACpE,GAAG,CAACG,EAAE,CAAC;MACzB;IACF;;IAEA;IACA;IACA;IACA,MAAMmE,OAAO,GAAG,IAAI,CAAC5F,kBAAkB;IACvC,IAAI,CAACA,kBAAkB,GAAG0F,OAAO;;IAEjC;IACA,KAAK,MAAMjE,EAAE,IAAIiE,OAAO,EAAE;MACxB,IAAI,CAACE,OAAO,CAAC/E,GAAG,CAACY,EAAE,CAAC,EAAE;QACpB,MAAMN,MAAM,GAAGsE,UAAU,CAACjD,IAAI,CAAE5B,CAAC,IAAKA,CAAC,CAACa,EAAE,KAAKA,EAAE,CAAC;QAClD,IAAIN,MAAM,EAAE,MAAM,IAAI,CAACO,iBAAiB,CAACP,MAAM,CAAC;MAClD;IACF;IACA;IACA,KAAK,MAAMM,EAAE,IAAImE,OAAO,EAAE;MACxB,IAAI,CAACF,OAAO,CAAC7E,GAAG,CAACY,EAAE,CAAC,EAAE;QACpB,IAAI,CAACW,qBAAqB,CAACX,EAAE,CAAC;MAChC;IACF;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEoE,0BAA0BA,CAAA,EAAS;IACjC,IAAI,IAAI,CAAC7F,kBAAkB,CAACU,IAAI,KAAK,CAAC,EAAE;MACtC,KAAK,IAAI,CAAC8E,uBAAuB,CAAC,KAAK,CAAC;IAC1C;EACF;;EAEA;AACF;AACA;AACA;AACA;EACEM,kBAAkBA,CAAA,EAAS;IACzB,KAAK,MAAMrE,EAAE,IAAI,IAAI,CAACzB,kBAAkB,EAAE;MACxC,IAAI,CAACoC,qBAAqB,CAACX,EAAE,CAAC;IAChC;IACA,IAAI,CAACzB,kBAAkB,CAACmF,KAAK,CAAC,CAAC;EACjC;;EAEA;AACF;AACA;EACEY,kBAAkBA,CAAC5E,MAAmB,EAAW;IAC/C;IACA,QAAQA,MAAM;MACZ,KAAK,eAAe;MACpB,KAAK,cAAc;QACjB,OAAO,IAAI,CAACrB,mBAAmB,CAACe,GAAG,CAAC,SAAS,CAAC;MAChD,KAAK,OAAO;QACV,OAAO,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,OAAO,CAAC;MAC9C,KAAK,SAAS;QACZ,OAAO,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,SAAS,CAAC;MAChD,KAAK,aAAa;MAClB,KAAK,mBAAmB;MACxB,KAAK,sBAAsB;QACzB,OAAO,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,aAAa,CAAC;MACpD,KAAK,OAAO;QACV,OAAO,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,cAAc,CAAC;MACrD,KAAK,SAAS;QACZ,OAAO,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,SAAS,CAAC;MAChD,KAAK,OAAO;QACV,OAAO,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,OAAO,CAAC;MAC9C,KAAK,QAAQ;QACX,OAAO,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,QAAQ,CAAC;MAC/C;QACE,OAAO,KAAK;IAChB;EACF;;EAEA;AACF;AACA;EACEmF,qBAAqBA,CAAA,EAAiC;IACpD,OAAO;MACL,eAAe,EAAE,IAAI,CAAClG,mBAAmB,CAACe,GAAG,CAAC,SAAS,CAAC;MACxD,cAAc,EAAE,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,SAAS,CAAC;MACvD+D,KAAK,EAAE,IAAI,CAAC9E,mBAAmB,CAACe,GAAG,CAAC,OAAO,CAAC;MAC5CgE,OAAO,EAAE,IAAI,CAAC/E,mBAAmB,CAACe,GAAG,CAAC,SAAS,CAAC;MAChD,aAAa,EAAE,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,aAAa,CAAC;MAC1D,mBAAmB,EAAE,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,aAAa,CAAC;MAChE,sBAAsB,EAAE,IAAI,CAACf,mBAAmB,CAACe,GAAG,CAAC,aAAa,CAAC;MACnEiE,KAAK,EAAE,IAAI,CAAChF,mBAAmB,CAACe,GAAG,CAAC,cAAc,CAAC;MACnDkE,OAAO,EAAE,IAAI,CAACjF,mBAAmB,CAACe,GAAG,CAAC,SAAS,CAAC;MAChDmE,KAAK,EAAE,IAAI,CAAClF,mBAAmB,CAACe,GAAG,CAAC,OAAO,CAAC;MAC5CoE,MAAM,EAAE,IAAI,CAACnF,mBAAmB,CAACe,GAAG,CAAC,QAAQ;IAC/C,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACEoF,mBAAmBA,CAAA,EAA+B;IAChD,OAAO9G,6BAA6B,CAAC,CAAC;EACxC;AACF;;AAEA;AACA,OAAO,MAAM+G,iBAAiB,GAAG,IAAI1G,iBAAiB,CAAC,CAAC;;AAExD;AACA,OAAO,MAAM8C,kBAAkB,GAAGA,CAAA,KAChC4D,iBAAiB,CAAC5D,kBAAkB,CAAC,CAAC;AACxC,OAAO,MAAMG,sBAAsB,GAAGA,CAAA,KACpCyD,iBAAiB,CAACzD,sBAAsB,CAAC,CAAC;AAC5C,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAC9BwD,iBAAiB,CAACxD,gBAAgB,CAAC,CAAC;AACtC,OAAO,MAAME,oBAAoB,GAAGA,CAAA,KAClCsD,iBAAiB,CAACtD,oBAAoB,CAAC,CAAC;AAC1C,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAChCqD,iBAAiB,CAACrD,kBAAkB,CAAC,CAAC;AACxC,OAAO,MAAME,sBAAsB,GAAGA,CAAA,KACpCmD,iBAAiB,CAACnD,sBAAsB,CAAC,CAAC;AAC5C,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KACnCkD,iBAAiB,CAAClD,qBAAqB,CAAC,CAAC;AAC3C,OAAO,MAAME,yBAAyB,GAAGA,CAAA,KACvCgD,iBAAiB,CAAChD,yBAAyB,CAAC,CAAC;AAC/C,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAC/B+C,iBAAiB,CAAC/C,iBAAiB,CAAC,CAAC;AACvC,OAAO,MAAME,qBAAqB,GAAGA,CAAA,KACnC6C,iBAAiB,CAAC7C,qBAAqB,CAAC,CAAC;AAC3C,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAChC4C,iBAAiB,CAAC5C,kBAAkB,CAAC,CAAC;AACxC,OAAO,MAAME,sBAAsB,GAAGA,CAAA,KACpC0C,iBAAiB,CAAC1C,sBAAsB,CAAC,CAAC;AAC5C,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAC9ByC,iBAAiB,CAACzC,gBAAgB,CAAC,CAAC;AACtC,OAAO,MAAME,oBAAoB,GAAGA,CAAA,KAClCuC,iBAAiB,CAACvC,oBAAoB,CAAC,CAAC;AAC1C,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAC/BsC,iBAAiB,CAACtC,iBAAiB,CAAC,CAAC;AACvC,OAAO,MAAME,qBAAqB,GAAGA,CAAA,KACnCoC,iBAAiB,CAACpC,qBAAqB,CAAC,CAAC;AAC3C,OAAO,MAAMM,SAAS,GAAIC,cAAiC,IACzD6B,iBAAiB,CAAC9B,SAAS,CAACC,cAAc,CAAC;AAC7C,OAAO,MAAME,gBAAgB,GAAGA,CAAA,KAAM2B,iBAAiB,CAAC3B,gBAAgB,CAAC,CAAC;AAC1E,OAAO,MAAMG,eAAe,GAAGA,CAAA,KAAMwB,iBAAiB,CAACxB,eAAe,CAAC,CAAC;AACxE,OAAO,MAAMQ,WAAW,GAAGA,CAAA,KAAMgB,iBAAiB,CAAChB,WAAW,CAAC,CAAC;AAChE,OAAO,MAAMhD,SAAS,GAAIb,QAA8B,IACtD6E,iBAAiB,CAAChE,SAAS,CAACb,QAAQ,CAAC;AACvC,OAAO,MAAMgE,aAAa,GAAGA,CAAA,KAAMa,iBAAiB,CAACb,aAAa,CAAC,CAAC;AACpE,OAAO,MAAMU,kBAAkB,GAAI5E,MAAmB,IACpD+E,iBAAiB,CAACH,kBAAkB,CAAC5E,MAAM,CAAC;AAC9C,OAAO,MAAM6E,qBAAqB,GAAGA,CAAA,KACnCE,iBAAiB,CAACF,qBAAqB,CAAC,CAAC;AAC3C,OAAO,MAAMT,cAAc,GAAGA,CAAA,KAAMW,iBAAiB,CAACX,cAAc,CAAC,CAAC;;AAEtE;AACA,OAAO,MAAMrF,oBAAoB,GAAGA,CAAA,KAAMgG,iBAAiB,CAAChG,oBAAoB,CAAC,CAAC;AAClF,OAAO,MAAME,wBAAwB,GAAGA,CAAA,KAAM8F,iBAAiB,CAAC9F,wBAAwB,CAAC,CAAC;AAC1F,OAAO,MAAMoB,cAAc,GAAGA,CAAA,KAAM0E,iBAAiB,CAAC1E,cAAc,CAAC,CAAC;AACtE,OAAO,MAAMyE,mBAAmB,GAAGA,CAAA,KAAMC,iBAAiB,CAACD,mBAAmB,CAAC,CAAC;;AAEhF","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ import { unifiedEventStore } from "../stores/unifiedEventStore";
4
+ /**
5
+ * Sync adapter for the events tool, consumed by @buoy-gg/external-sync's
6
+ * `useExternalSync` (structurally matches its ToolSyncAdapter interface so
7
+ * this package doesn't need a dependency on it).
8
+ *
9
+ * This adapter is the "remote consumer" of the unified event store. While a
10
+ * dashboard is watching, it requests a SET of event sources (defaulting to all,
11
+ * narrowed by the dashboard via `setEnabledSources`). On unwatch it releases
12
+ * those requests, so — unlike before — the device stops capturing sources that
13
+ * nothing else is watching. Source requests are ref-counted in the store, so
14
+ * the on-device EventsModal keeps working when open at the same time.
15
+ *
16
+ * The snapshot carries the device's available sources so the dashboard can
17
+ * render the source filter chips (its own auto-discovery finds nothing — the
18
+ * tool packages live on the device).
19
+ */
20
+ export const eventsSyncAdapter = {
21
+ version: 2,
22
+ getSnapshot: () => ({
23
+ events: unifiedEventStore.getEvents(),
24
+ availableSources: Array.from(unifiedEventStore.getAvailableEventSources())
25
+ }),
26
+ subscribe: onChange => {
27
+ // Default to all sources until the dashboard narrows the set via
28
+ // setEnabledSources — backward compatible with dashboards that don't send
29
+ // it. Uses ensureRemoteSourcesDefault so a setEnabledSources that raced
30
+ // ahead of this watch isn't clobbered back to "all".
31
+ unifiedEventStore.ensureRemoteSourcesDefault();
32
+ const unsubscribe = unifiedEventStore.subscribe(() => onChange());
33
+ return () => {
34
+ unsubscribe();
35
+ // Release this consumer's source subscriptions so the device stops
36
+ // capturing sources nothing else is watching (fixes the old leak).
37
+ unifiedEventStore.clearRemoteSources();
38
+ };
39
+ },
40
+ actions: {
41
+ clearEvents: () => {
42
+ unifiedEventStore.clearEvents();
43
+ },
44
+ /**
45
+ * Narrow which sources the device captures for this dashboard, driven by
46
+ * the dashboard's source badges. Ref-counted in the store, so disabling a
47
+ * source here only stops its capture if no other consumer wants it.
48
+ */
49
+ setEnabledSources: params => {
50
+ const sources = params?.sources ?? [];
51
+ unifiedEventStore.setRemoteEnabledSources(sources);
52
+ return {
53
+ enabledSources: sources
54
+ };
55
+ }
56
+ }
57
+ };
58
+ //# sourceMappingURL=eventsSyncAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["unifiedEventStore","eventsSyncAdapter","version","getSnapshot","events","getEvents","availableSources","Array","from","getAvailableEventSources","subscribe","onChange","ensureRemoteSourcesDefault","unsubscribe","clearRemoteSources","actions","clearEvents","setEnabledSources","params","sources","setRemoteEnabledSources","enabledSources"],"sourceRoot":"../../../src","sources":["sync/eventsSyncAdapter.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,6BAA6B;AAG/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,OAAO,EAAE,CAAC;EACVC,WAAW,EAAEA,CAAA,MAAO;IAClBC,MAAM,EAAEJ,iBAAiB,CAACK,SAAS,CAAC,CAAC;IACrCC,gBAAgB,EAAEC,KAAK,CAACC,IAAI,CAACR,iBAAiB,CAACS,wBAAwB,CAAC,CAAC;EAC3E,CAAC,CAAC;EACFC,SAAS,EAAGC,QAAoB,IAAK;IACnC;IACA;IACA;IACA;IACAX,iBAAiB,CAACY,0BAA0B,CAAC,CAAC;IAC9C,MAAMC,WAAW,GAAGb,iBAAiB,CAACU,SAAS,CAAC,MAAMC,QAAQ,CAAC,CAAC,CAAC;IACjE,OAAO,MAAM;MACXE,WAAW,CAAC,CAAC;MACb;MACA;MACAb,iBAAiB,CAACc,kBAAkB,CAAC,CAAC;IACxC,CAAC;EACH,CAAC;EACDC,OAAO,EAAE;IACPC,WAAW,EAAEA,CAAA,KAAM;MACjBhB,iBAAiB,CAACgB,WAAW,CAAC,CAAC;IACjC,CAAC;IACD;AACJ;AACA;AACA;AACA;IACIC,iBAAiB,EAAGC,MAAe,IAAK;MACtC,MAAMC,OAAO,GACVD,MAAM,EAA8CC,OAAO,IAAI,EAAE;MACpEnB,iBAAiB,CAACoB,uBAAuB,CAACD,OAAO,CAAC;MAClD,OAAO;QAAEE,cAAc,EAAEF;MAAQ,CAAC;IACpC;EACF;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_COPY_SETTINGS","timestampFormat","includeSource","includeStatus","includeTitle","includeSubtitle","includeCorrelation","includeDuration","includeSummaryHeader","includeTotalDuration","includeEventData","dataSizeThreshold","format","filterMode","filterSources","compactMode","smartJsonParsing","reduxChangedOnly","showStorageDiff","stripVerboseFields","COPY_PRESETS","llm","bugReport","json","errors","minimal","mermaid","detectActivePreset","settings","presetName","presetConfig","Object","entries","matches","keys","every","key","settingValue","presetValue","Array","isArray","length","v","i","PRESET_METADATA","label","description","color"],"sourceRoot":"../../../src","sources":["types/copySettings.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAcA;AACA;AACA;;AAGA;AACA;AACA;;AAqCA;AACA;AACA;;AASA;AACA;AACA;;AAaA;AACA;AACA;;AAGA;AACA;AACA;AACA,cAAc,gBAAgB","ignoreList":[]}