@launchdarkly/toolbar 0.12.0-beta.1 → 0.13.1-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.
- package/README.md +17 -13
- package/dist/hooks/AfterEvaluationHook.d.ts +17 -0
- package/dist/hooks/AfterIdentifyHook.d.ts +18 -0
- package/dist/hooks/AfterTrackHook.d.ts +17 -0
- package/dist/hooks/EventStore.d.ts +11 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/index.d.ts +6 -1
- package/dist/js/index.js +1833 -815
- package/dist/js/plugins/FlagOverridePlugin.js +3 -0
- package/dist/js/plugins/index.js +296 -1
- package/dist/plugins/EventInterceptionPlugin.d.ts +30 -0
- package/dist/plugins/FlagOverridePlugin.d.ts +8 -3
- package/dist/plugins/index.d.ts +2 -0
- package/dist/tests/hooks/AfterEvaluationHook.test.d.ts +1 -0
- package/dist/tests/hooks/AfterIdentifyHook.test.d.ts +1 -0
- package/dist/tests/hooks/AfterTrackHook.test.d.ts +1 -0
- package/dist/tests/hooks/EventStore.test.d.ts +1 -0
- package/dist/types/events.d.ts +64 -0
- package/dist/types/plugin.d.ts +21 -0
- package/dist/ui/Toolbar/LaunchDarklyToolbar.d.ts +4 -2
- package/dist/ui/Toolbar/TabContent/EventsTabContent.css.d.ts +18 -0
- package/dist/ui/Toolbar/TabContent/EventsTabContent.d.ts +6 -1
- package/dist/ui/Toolbar/components/DoNotTrackWarning.css.d.ts +5 -0
- package/dist/ui/Toolbar/components/DoNotTrackWarning.d.ts +1 -0
- package/dist/ui/Toolbar/components/ExpandedToolbarContent.d.ts +3 -2
- package/dist/ui/Toolbar/components/TabContentRenderer.d.ts +3 -2
- package/dist/ui/Toolbar/components/index.d.ts +1 -0
- package/dist/ui/Toolbar/constants/animations.d.ts +27 -0
- package/dist/ui/Toolbar/hooks/index.d.ts +2 -0
- package/dist/ui/Toolbar/hooks/useCurrentDate.d.ts +5 -0
- package/dist/ui/Toolbar/hooks/useEvents.d.ts +13 -0
- package/dist/ui/Toolbar/types/toolbar.d.ts +3 -3
- package/dist/utils/browser.d.ts +7 -0
- package/dist/utils/index.d.ts +1 -0
- package/package.json +2 -3
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
|
|
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
|
|
88
|
-
|
|
|
89
|
-
| `flagOverridePlugin`
|
|
90
|
-
| `
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
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,4 +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';
|
|
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';
|