@launchdarkly/toolbar 0.11.1-beta.1 → 0.13.0-beta.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 (35) hide show
  1. package/README.md +17 -13
  2. package/dist/hooks/AfterEvaluationHook.d.ts +17 -0
  3. package/dist/hooks/AfterIdentifyHook.d.ts +18 -0
  4. package/dist/hooks/AfterTrackHook.d.ts +17 -0
  5. package/dist/hooks/EventStore.d.ts +11 -0
  6. package/dist/hooks/index.d.ts +7 -0
  7. package/dist/index.d.ts +6 -3
  8. package/dist/js/index.js +3355 -2475
  9. package/dist/js/plugins/FlagOverridePlugin.js +133 -0
  10. package/dist/js/plugins/index.js +425 -0
  11. package/dist/plugins/EventInterceptionPlugin.d.ts +30 -0
  12. package/dist/plugins/FlagOverridePlugin.d.ts +8 -3
  13. package/dist/plugins/index.d.ts +2 -0
  14. package/dist/tests/hooks/AfterEvaluationHook.test.d.ts +1 -0
  15. package/dist/tests/hooks/AfterIdentifyHook.test.d.ts +1 -0
  16. package/dist/tests/hooks/AfterTrackHook.test.d.ts +1 -0
  17. package/dist/tests/hooks/EventStore.test.d.ts +1 -0
  18. package/dist/types/events.d.ts +64 -0
  19. package/dist/types/plugin.d.ts +21 -0
  20. package/dist/ui/Toolbar/LaunchDarklyToolbar.d.ts +4 -2
  21. package/dist/ui/Toolbar/TabContent/EventsTabContent.css.d.ts +18 -0
  22. package/dist/ui/Toolbar/TabContent/EventsTabContent.d.ts +6 -1
  23. package/dist/ui/Toolbar/components/DoNotTrackWarning.css.d.ts +5 -0
  24. package/dist/ui/Toolbar/components/DoNotTrackWarning.d.ts +1 -0
  25. package/dist/ui/Toolbar/components/ExpandedToolbarContent.d.ts +3 -2
  26. package/dist/ui/Toolbar/components/TabContentRenderer.d.ts +3 -2
  27. package/dist/ui/Toolbar/components/index.d.ts +1 -0
  28. package/dist/ui/Toolbar/constants/animations.d.ts +27 -0
  29. package/dist/ui/Toolbar/hooks/index.d.ts +2 -0
  30. package/dist/ui/Toolbar/hooks/useCurrentDate.d.ts +5 -0
  31. package/dist/ui/Toolbar/hooks/useEvents.d.ts +13 -0
  32. package/dist/ui/Toolbar/types/toolbar.d.ts +3 -3
  33. package/dist/utils/browser.d.ts +7 -0
  34. package/dist/utils/index.d.ts +1 -0
  35. package/package.json +18 -6
package/README.md CHANGED
@@ -60,7 +60,10 @@ function App() {
60
60
  <div>
61
61
  <h1>My App</h1>
62
62
  {/* Pass the same plugin instance to the toolbar */}
63
- <LaunchDarklyToolbar flagOverridePlugin={flagOverridePlugin} />
63
+ <LaunchDarklyToolbar
64
+ flagOverridePlugin={flagOverridePlugin}
65
+ eventInterceptionPlugin={eventInterceptionPlugin}
66
+ />
64
67
  </div>
65
68
  </LDProvider>
66
69
  );
@@ -84,13 +87,14 @@ function App() {
84
87
 
85
88
  ## Props
86
89
 
87
- | Prop | Type | Default | Description |
88
- | -------------------- | --------------------- | ----------- | ------------------------------------------------------------------------- |
89
- | `flagOverridePlugin` | `IFlagOverridePlugin` | `undefined` | Flag override plugin for SDK Mode. Enables flag overrides and testing |
90
- | `devServerUrl` | `string` (optional) | `undefined` | URL of your LaunchDarkly dev server. If provided, enables Dev Server Mode |
91
- | `position` | `"left" \| "right"` | `"right"` | Position of the toolbar on screen |
92
- | `projectKey` | `string` (optional) | `undefined` | Optional project key for multi-project setups (Dev Server Mode only) |
93
- | `pollIntervalInMs` | `number` (optional) | `5000` | Polling interval for dev server updates (Dev Server Mode only) |
90
+ | Prop | Type | Default | Description |
91
+ | ------------------------- | -------------------------- | ----------- | ------------------------------------------------------------------------- |
92
+ | `flagOverridePlugin` | `IFlagOverridePlugin` | `undefined` | Flag override plugin for SDK Mode. Enables flag overrides and testing |
93
+ | `eventInterceptionPlugin` | `IEventInterceptionPlugin` | `undefined` | Event interception plugin for SDK Mode. Enables Events tab functionality |
94
+ | `devServerUrl` | `string` (optional) | `undefined` | URL of your LaunchDarkly dev server. If provided, enables Dev Server Mode |
95
+ | `position` | `"left" \| "right"` | `"right"` | Position of the toolbar on screen |
96
+ | `projectKey` | `string` (optional) | `undefined` | Optional project key for multi-project setups (Dev Server Mode only) |
97
+ | `pollIntervalInMs` | `number` (optional) | `5000` | Polling interval for dev server updates (Dev Server Mode only) |
94
98
 
95
99
  ## Configuration
96
100
 
@@ -103,10 +107,10 @@ The toolbar automatically determines its mode:
103
107
 
104
108
  ### Available Features by Mode
105
109
 
106
- | Mode | Available Tabs |
107
- | ------------------- | ------------------- |
108
- | **SDK Mode** | Overrides, Settings |
109
- | **Dev Server Mode** | Flags, Settings |
110
+ | Mode | Available Tabs |
111
+ | ------------------- | ------------------------------------------------------------------------------------------------------ |
112
+ | **SDK Mode** | Overrides (if `flagOverridePlugin` provided), Events (if `eventInterceptionPlugin` provided), Settings |
113
+ | **Dev Server Mode** | Flags, Settings |
110
114
 
111
115
  ## Setup
112
116
 
@@ -202,7 +206,7 @@ Visibility preferences are automatically saved to localStorage.
202
206
  The package includes complete TypeScript definitions. No additional `@types` packages needed.
203
207
 
204
208
  ```tsx
205
- import type { LaunchDarklyToolbarProps } from '@launchdarkly/toolbar';
209
+ import type { LaunchDarklyToolbarProps, IFlagOverridePlugin, IEventInterceptionPlugin } from '@launchdarkly/toolbar';
206
210
  ```
207
211
 
208
212
  ---
@@ -0,0 +1,17 @@
1
+ import type { Hook } from 'launchdarkly-js-client-sdk';
2
+ import type { HookMetadata, EvaluationSeriesData, LDEvaluationDetail, EvaluationSeriesContext } from 'launchdarkly-js-sdk-common';
3
+ import type { EventFilter, ProcessedEvent } from '../types/events';
4
+ export type AfterEvaluationHookConfig = {
5
+ onNewEvent?: (event: ProcessedEvent) => void;
6
+ filter?: EventFilter;
7
+ };
8
+ export declare class AfterEvaluationHook implements Hook {
9
+ private config;
10
+ private idCounter;
11
+ constructor(config?: AfterEvaluationHookConfig);
12
+ getMetadata(): HookMetadata;
13
+ afterEvaluation(hookContext: EvaluationSeriesContext, data: EvaluationSeriesData, detail: LDEvaluationDetail): EvaluationSeriesData;
14
+ private shouldProcessEvent;
15
+ private processEvent;
16
+ private extractMetadata;
17
+ }
@@ -0,0 +1,18 @@
1
+ import type { Hook } from 'launchdarkly-js-client-sdk';
2
+ import type { HookMetadata, IdentifySeriesContext, IdentifySeriesData, IdentifySeriesResult } from 'launchdarkly-js-sdk-common';
3
+ import type { EventFilter, ProcessedEvent } from '../types/events';
4
+ export type AfterIdentifyHookConfig = {
5
+ onNewEvent?: (event: ProcessedEvent) => void;
6
+ filter?: EventFilter;
7
+ };
8
+ export declare class AfterIdentifyHook implements Hook {
9
+ private config;
10
+ private idCounter;
11
+ constructor(config?: AfterIdentifyHookConfig);
12
+ getMetadata(): HookMetadata;
13
+ afterIdentify(hookContext: IdentifySeriesContext, data: IdentifySeriesData, result: IdentifySeriesResult): IdentifySeriesData;
14
+ private determineContextKind;
15
+ private shouldProcessEvent;
16
+ private processEvent;
17
+ private extractMetadata;
18
+ }
@@ -0,0 +1,17 @@
1
+ import type { Hook } from 'launchdarkly-js-client-sdk';
2
+ import type { HookMetadata, TrackSeriesContext } from 'launchdarkly-js-sdk-common';
3
+ import type { EventFilter, ProcessedEvent } from '../types/events';
4
+ export type AfterTrackHookConfig = {
5
+ onNewEvent?: (event: ProcessedEvent) => void;
6
+ filter?: EventFilter;
7
+ };
8
+ export declare class AfterTrackHook implements Hook {
9
+ private config;
10
+ private idCounter;
11
+ constructor(config?: AfterTrackHookConfig);
12
+ getMetadata(): HookMetadata;
13
+ afterTrack(hookContext: TrackSeriesContext): void;
14
+ private shouldProcessEvent;
15
+ private processEvent;
16
+ private extractMetadata;
17
+ }
@@ -0,0 +1,11 @@
1
+ import type { ProcessedEvent } from '../types/events';
2
+ export declare class EventStore {
3
+ private events;
4
+ private listeners;
5
+ addEvent(event: ProcessedEvent): void;
6
+ getEvents(): ProcessedEvent[];
7
+ subscribe(listener: () => void): () => void;
8
+ clear(): void;
9
+ destroy(): void;
10
+ private notifyListeners;
11
+ }
@@ -0,0 +1,7 @@
1
+ export { AfterTrackHook } from './AfterTrackHook';
2
+ export type { AfterTrackHookConfig } from './AfterTrackHook';
3
+ export { AfterIdentifyHook } from './AfterIdentifyHook';
4
+ export type { AfterIdentifyHookConfig } from './AfterIdentifyHook';
5
+ export { AfterEvaluationHook } from './AfterEvaluationHook';
6
+ export type { AfterEvaluationHookConfig } from './AfterEvaluationHook';
7
+ export { EventStore } from './EventStore';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import './globals.css';
2
2
  export { LaunchDarklyToolbar } from './ui/Toolbar/LaunchDarklyToolbar';
3
3
  export type { LaunchDarklyToolbarProps } from './ui/Toolbar/LaunchDarklyToolbar';
4
- export type { IFlagOverridePlugin } from './types/plugin';
5
- export { FlagOverridePlugin } from './plugins';
6
- export type { FlagOverridePluginConfig } from './plugins';
4
+ export type { IFlagOverridePlugin, IEventInterceptionPlugin } from './types/plugin';
5
+ export { FlagOverridePlugin, EventInterceptionPlugin } from './plugins';
6
+ export type { FlagOverridePluginConfig, EventInterceptionPluginConfig } from './plugins';
7
+ export { AfterEvaluationHook, AfterIdentifyHook, AfterTrackHook, EventStore } from './hooks';
8
+ export type { AfterEvaluationHookConfig, AfterIdentifyHookConfig, AfterTrackHookConfig } from './hooks';
9
+ export type { ProcessedEvent, EventFilter } from './types/events';