@featureflare/react 0.0.5 → 0.0.6-beta.259

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/dist/index.d.cts CHANGED
@@ -1,8 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { FeatureFlareUserPayload, FeatureFlareClient } from '@featureflare/sdk-js';
3
+ import { FeatureFlareBootstrapPayload, FeatureFlarePersistentCacheAdapter, FeatureFlareMetricName, FeatureFlareMetricTags, FeatureFlareUserPayload, FeatureFlareClient, FeatureFlareEvaluationMetadata } from '@featureflare/sdk-js';
4
4
  export { FeatureFlareUserPayload } from '@featureflare/sdk-js';
5
5
 
6
+ type FeatureFlareEnvironmentKey = 'development' | 'staging' | 'production';
6
7
  type FeatureFlareReactConfig = {
7
8
  /** Optional: explicit FeatureFlare API base URL. */
8
9
  apiBaseUrl?: string;
@@ -10,12 +11,49 @@ type FeatureFlareReactConfig = {
10
11
  sdkKey?: string;
11
12
  /** Legacy/insecure browser mode: uses /api/v1/eval (no sdkKey). */
12
13
  projectKey?: string;
13
- envKey?: string;
14
+ envKey?: FeatureFlareEnvironmentKey | string;
15
+ timeoutMs?: number;
16
+ maxRetries?: number;
17
+ backoffMs?: number;
18
+ jitter?: number;
19
+ cacheTtlMs?: number;
20
+ staleTtlMs?: number;
21
+ bootstrap?: FeatureFlareBootstrapPayload;
22
+ persistentCache?: FeatureFlarePersistentCacheAdapter;
23
+ onMetric?: (metricName: FeatureFlareMetricName, value: number, tags?: FeatureFlareMetricTags) => void;
24
+ realtime?: {
25
+ enabled?: boolean;
26
+ pollingIntervalMs?: number;
27
+ ssePath?: string;
28
+ };
14
29
  };
30
+ declare function resolveFeatureFlareBrowserConfig(input?: {
31
+ envKey?: FeatureFlareEnvironmentKey;
32
+ apiBaseUrl?: string;
33
+ }): FeatureFlareReactConfig;
15
34
  type FeatureFlareContextValue = {
16
35
  client: FeatureFlareClient;
17
36
  user: FeatureFlareUserPayload;
18
37
  setUser: (next: FeatureFlareUserPayload) => void;
38
+ getFlagsState: (defaultValue: boolean) => FlagsState;
39
+ refreshFlags: (defaultValue: boolean) => void;
40
+ subscribeFlags: (defaultValue: boolean, listener: () => void, options?: FlagsSubscriptionOptions) => () => void;
41
+ subscribeFlag: (flagKey: string, defaultValue: boolean, listener: () => void, options?: FlagsSubscriptionOptions) => () => void;
42
+ getFlagDiagnostics: (flagKey: string) => FeatureFlareEvaluationMetadata | null;
43
+ };
44
+ type FlagsState = {
45
+ flags: Array<{
46
+ key: string;
47
+ value: boolean;
48
+ }>;
49
+ loading: boolean;
50
+ error: string | null;
51
+ };
52
+ type FlagsSubscriptionOptions = {
53
+ refreshIntervalMs?: number;
54
+ hiddenRefreshIntervalMs?: number;
55
+ pauseWhenHidden?: boolean;
56
+ enabled?: boolean;
19
57
  };
20
58
  declare function FeatureFlareProvider(props: {
21
59
  config: FeatureFlareReactConfig;
@@ -36,8 +74,28 @@ type BoolFlagsState = {
36
74
  loading: boolean;
37
75
  errors: Record<string, string>;
38
76
  };
77
+ type UseFlagsOptions = FlagsSubscriptionOptions;
78
+ type UseFlagsInput = UseFlagsOptions & {
79
+ defaultValue?: boolean;
80
+ user?: FeatureFlareUserPayload;
81
+ };
82
+ type FlagDiagnostics = {
83
+ source: FeatureFlareEvaluationMetadata['source'] | 'unknown';
84
+ reason: FeatureFlareEvaluationMetadata['reason'] | 'unknown';
85
+ isStale: boolean;
86
+ updatedAt?: number;
87
+ staleAt?: number;
88
+ expiresAt?: number;
89
+ latencyMs?: number;
90
+ };
39
91
  declare function useFeatureFlareUser(): [FeatureFlareUserPayload, (next: FeatureFlareUserPayload) => void];
92
+ declare function useFlag(flagKey: string, defaultValue?: boolean): BoolFlagState;
40
93
  declare function useBoolFlag(flagKey: string, defaultValue?: boolean): BoolFlagState;
94
+ declare function useFlags(flagKeys: string[], defaultValue?: boolean): BoolFlagsState;
95
+ declare function useFlags(input?: UseFlagsInput): FlagsState;
96
+ declare function useFlags(defaultValue?: boolean, options?: UseFlagsOptions): FlagsState;
41
97
  declare function useBoolFlags(flagKeys: string[], defaultValue?: boolean): BoolFlagsState;
98
+ declare function useBoolFlags(defaultValue?: boolean, options?: UseFlagsOptions): BoolFlagsState;
99
+ declare function useFlagDiagnostics(flagKey: string, defaultValue?: boolean): FlagDiagnostics;
42
100
 
43
- export { FeatureFlareProvider, useBoolFlag, useBoolFlags, useFeatureFlareContext, useFeatureFlareUser };
101
+ export { type FeatureFlareEnvironmentKey, FeatureFlareProvider, type FeatureFlareReactConfig, type FlagDiagnostics, type FlagsState, type FlagsSubscriptionOptions, resolveFeatureFlareBrowserConfig, useBoolFlag, useBoolFlags, useFeatureFlareContext, useFeatureFlareUser, useFlag, useFlagDiagnostics, useFlags };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { FeatureFlareUserPayload, FeatureFlareClient } from '@featureflare/sdk-js';
3
+ import { FeatureFlareBootstrapPayload, FeatureFlarePersistentCacheAdapter, FeatureFlareMetricName, FeatureFlareMetricTags, FeatureFlareUserPayload, FeatureFlareClient, FeatureFlareEvaluationMetadata } from '@featureflare/sdk-js';
4
4
  export { FeatureFlareUserPayload } from '@featureflare/sdk-js';
5
5
 
6
+ type FeatureFlareEnvironmentKey = 'development' | 'staging' | 'production';
6
7
  type FeatureFlareReactConfig = {
7
8
  /** Optional: explicit FeatureFlare API base URL. */
8
9
  apiBaseUrl?: string;
@@ -10,12 +11,49 @@ type FeatureFlareReactConfig = {
10
11
  sdkKey?: string;
11
12
  /** Legacy/insecure browser mode: uses /api/v1/eval (no sdkKey). */
12
13
  projectKey?: string;
13
- envKey?: string;
14
+ envKey?: FeatureFlareEnvironmentKey | string;
15
+ timeoutMs?: number;
16
+ maxRetries?: number;
17
+ backoffMs?: number;
18
+ jitter?: number;
19
+ cacheTtlMs?: number;
20
+ staleTtlMs?: number;
21
+ bootstrap?: FeatureFlareBootstrapPayload;
22
+ persistentCache?: FeatureFlarePersistentCacheAdapter;
23
+ onMetric?: (metricName: FeatureFlareMetricName, value: number, tags?: FeatureFlareMetricTags) => void;
24
+ realtime?: {
25
+ enabled?: boolean;
26
+ pollingIntervalMs?: number;
27
+ ssePath?: string;
28
+ };
14
29
  };
30
+ declare function resolveFeatureFlareBrowserConfig(input?: {
31
+ envKey?: FeatureFlareEnvironmentKey;
32
+ apiBaseUrl?: string;
33
+ }): FeatureFlareReactConfig;
15
34
  type FeatureFlareContextValue = {
16
35
  client: FeatureFlareClient;
17
36
  user: FeatureFlareUserPayload;
18
37
  setUser: (next: FeatureFlareUserPayload) => void;
38
+ getFlagsState: (defaultValue: boolean) => FlagsState;
39
+ refreshFlags: (defaultValue: boolean) => void;
40
+ subscribeFlags: (defaultValue: boolean, listener: () => void, options?: FlagsSubscriptionOptions) => () => void;
41
+ subscribeFlag: (flagKey: string, defaultValue: boolean, listener: () => void, options?: FlagsSubscriptionOptions) => () => void;
42
+ getFlagDiagnostics: (flagKey: string) => FeatureFlareEvaluationMetadata | null;
43
+ };
44
+ type FlagsState = {
45
+ flags: Array<{
46
+ key: string;
47
+ value: boolean;
48
+ }>;
49
+ loading: boolean;
50
+ error: string | null;
51
+ };
52
+ type FlagsSubscriptionOptions = {
53
+ refreshIntervalMs?: number;
54
+ hiddenRefreshIntervalMs?: number;
55
+ pauseWhenHidden?: boolean;
56
+ enabled?: boolean;
19
57
  };
20
58
  declare function FeatureFlareProvider(props: {
21
59
  config: FeatureFlareReactConfig;
@@ -36,8 +74,28 @@ type BoolFlagsState = {
36
74
  loading: boolean;
37
75
  errors: Record<string, string>;
38
76
  };
77
+ type UseFlagsOptions = FlagsSubscriptionOptions;
78
+ type UseFlagsInput = UseFlagsOptions & {
79
+ defaultValue?: boolean;
80
+ user?: FeatureFlareUserPayload;
81
+ };
82
+ type FlagDiagnostics = {
83
+ source: FeatureFlareEvaluationMetadata['source'] | 'unknown';
84
+ reason: FeatureFlareEvaluationMetadata['reason'] | 'unknown';
85
+ isStale: boolean;
86
+ updatedAt?: number;
87
+ staleAt?: number;
88
+ expiresAt?: number;
89
+ latencyMs?: number;
90
+ };
39
91
  declare function useFeatureFlareUser(): [FeatureFlareUserPayload, (next: FeatureFlareUserPayload) => void];
92
+ declare function useFlag(flagKey: string, defaultValue?: boolean): BoolFlagState;
40
93
  declare function useBoolFlag(flagKey: string, defaultValue?: boolean): BoolFlagState;
94
+ declare function useFlags(flagKeys: string[], defaultValue?: boolean): BoolFlagsState;
95
+ declare function useFlags(input?: UseFlagsInput): FlagsState;
96
+ declare function useFlags(defaultValue?: boolean, options?: UseFlagsOptions): FlagsState;
41
97
  declare function useBoolFlags(flagKeys: string[], defaultValue?: boolean): BoolFlagsState;
98
+ declare function useBoolFlags(defaultValue?: boolean, options?: UseFlagsOptions): BoolFlagsState;
99
+ declare function useFlagDiagnostics(flagKey: string, defaultValue?: boolean): FlagDiagnostics;
42
100
 
43
- export { FeatureFlareProvider, useBoolFlag, useBoolFlags, useFeatureFlareContext, useFeatureFlareUser };
101
+ export { type FeatureFlareEnvironmentKey, FeatureFlareProvider, type FeatureFlareReactConfig, type FlagDiagnostics, type FlagsState, type FlagsSubscriptionOptions, resolveFeatureFlareBrowserConfig, useBoolFlag, useBoolFlags, useFeatureFlareContext, useFeatureFlareUser, useFlag, useFlagDiagnostics, useFlags };