truflag-react-sdk 0.1.4

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 ADDED
@@ -0,0 +1,37 @@
1
+ # React Truflag SDK
2
+
3
+ ```bash
4
+ npm install truflag-react-sdk
5
+ ```
6
+
7
+ ```tsx
8
+ import { useEffect } from 'react';
9
+ import Flags, { useFlag, useFlagsReady } from 'truflag-react-sdk';
10
+
11
+ export function App() {
12
+ useEffect(() => {
13
+ void Flags.configure({ apiKey: 'pk_live_xxx' });
14
+ }, []);
15
+
16
+ const ready = useFlagsReady();
17
+ const enabled = useFlag('new-checkout', false);
18
+
19
+ if (!ready) return <div>Loading...</div>;
20
+ return enabled ? <CheckoutV2 /> : <CheckoutV1 />;
21
+ }
22
+ ```
23
+
24
+ ## Identity Updates
25
+
26
+ ```ts
27
+ await Flags.login({
28
+ id: 'user-123',
29
+ attributes: { plan: 'pro' },
30
+ });
31
+
32
+ // Merges attributes for the current logged-in user.
33
+ // Unspecified keys are preserved.
34
+ await Flags.setAttributes({
35
+ country: 'US',
36
+ });
37
+ ```
@@ -0,0 +1,71 @@
1
+ import { TruflagUser, UserAttributes } from './internal/core.js';
2
+ import { ConfigureOptions, ExposeOptions, FlagsInternalState, TrackOptions } from './types.js';
3
+ export declare class ReactFlagsClient {
4
+ private readonly store;
5
+ private readonly sdkSource;
6
+ private pollTimer;
7
+ private telemetryTimer;
8
+ private config?;
9
+ private requestSequence;
10
+ private anonymousDeviceId;
11
+ private readonly attributesByUserId;
12
+ private offlineFallbackFlags;
13
+ private telemetryQueue;
14
+ private readonly exposureKeys;
15
+ private readonly assignmentKeys;
16
+ private readonly readEvaluationKeys;
17
+ private streamSocket;
18
+ private streamReconnectTimer;
19
+ private latestConfigVersion;
20
+ private configureSignature;
21
+ private configureInFlight;
22
+ subscribe: (callback: () => void) => () => void;
23
+ getState: () => FlagsInternalState;
24
+ configure(options: ConfigureOptions): Promise<void>;
25
+ private configureInternal;
26
+ login(user: TruflagUser): Promise<void>;
27
+ setAttributes(attributes: UserAttributes): Promise<void>;
28
+ identify(user: TruflagUser): Promise<void>;
29
+ logout(): Promise<void>;
30
+ refresh(): Promise<void>;
31
+ track(eventName: string, properties?: Record<string, unknown>, options?: TrackOptions): Promise<void>;
32
+ expose(flagKey: string, options?: ExposeOptions): Promise<void>;
33
+ notifyFlagRead(flagKey: string): void;
34
+ getFlag(key: string, defaultValue?: boolean): boolean;
35
+ getFeatureFlagValue<T>(key: string, defaultValue: T): T;
36
+ getFeatureFlagPayload(key: string): Record<string, unknown> | null;
37
+ getAllFlags(): Record<string, unknown>;
38
+ isReady(): boolean;
39
+ private getStorage;
40
+ private getUser;
41
+ private getTransport;
42
+ private getFlagOrThrow;
43
+ private enqueueTelemetryEvent;
44
+ private buildConfigureSignature;
45
+ private requireConfigured;
46
+ private resolveAnonymousUser;
47
+ private ensureAnonymousDeviceId;
48
+ private loadCachedUser;
49
+ private persistCachedUser;
50
+ private loadPersistedAssignmentKeys;
51
+ private persistAssignmentKeys;
52
+ private normalizeUser;
53
+ private normalizeAttributes;
54
+ private mergeUser;
55
+ private startPolling;
56
+ private stopPolling;
57
+ private startStreamOrPolling;
58
+ private startStreaming;
59
+ private stopStreaming;
60
+ private scheduleStreamReconnect;
61
+ private handleStreamMessage;
62
+ private resolveStreamUrl;
63
+ private startTelemetryFlush;
64
+ private flushTelemetry;
65
+ private enqueueReadEvaluationEvents;
66
+ private enqueueAssignmentEvents;
67
+ private enqueueExposure;
68
+ private clearError;
69
+ private extractOfflineFallbackFlags;
70
+ }
71
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}