@terreno/rtk 0.7.2 → 0.8.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/dist/buildNumber.d.ts +34 -0
- package/dist/buildNumber.d.ts.map +1 -0
- package/dist/buildNumber.js +56 -0
- package/dist/buildNumber.js.map +1 -0
- package/dist/emptyApi.d.ts +572 -0
- package/dist/emptyApi.d.ts.map +1 -1
- package/dist/emptyApi.js +8 -1
- package/dist/emptyApi.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/useFeatureFlags.d.ts +28 -0
- package/dist/useFeatureFlags.d.ts.map +1 -0
- package/dist/useFeatureFlags.js +86 -0
- package/dist/useFeatureFlags.js.map +1 -0
- package/dist/useUpgradeCheck.d.ts +9 -0
- package/dist/useUpgradeCheck.d.ts.map +1 -0
- package/dist/useUpgradeCheck.js +73 -0
- package/dist/useUpgradeCheck.js.map +1 -0
- package/package.json +12 -2
- package/src/buildNumber.ts +69 -0
- package/src/emptyApi.ts +22 -1
- package/src/index.ts +2 -0
- package/src/useFeatureFlags.ts +121 -0
- package/src/useUpgradeCheck.ts +86 -0
package/dist/emptyApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emptyApi.js","sourceRoot":"","sources":["../src/emptyApi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emptyApi.js","sourceRoot":"","sources":["../src/emptyApi.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Api } from "@reduxjs/toolkit/query/react";
|
|
2
|
+
type FlagValues = Record<string, boolean | string | null>;
|
|
3
|
+
interface UseFeatureFlagsResult {
|
|
4
|
+
flags: FlagValues;
|
|
5
|
+
getFlag: (key: string) => boolean;
|
|
6
|
+
getVariant: (key: string) => string | null;
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
error: unknown;
|
|
9
|
+
refetch: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates feature flag accessors from an RTK Query API instance.
|
|
13
|
+
*
|
|
14
|
+
* Injects a `GET {basePath}/evaluate` endpoint into the API and returns
|
|
15
|
+
* accessors for reading flag values. Fetches once on mount and caches via
|
|
16
|
+
* RTK Query. Both `api` and `basePath` should be stable references.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const { getFlag, getVariant } = useFeatureFlags(terrenoApi);
|
|
21
|
+
*
|
|
22
|
+
* const showNewCheckout = getFlag("new-checkout-flow"); // true | false
|
|
23
|
+
* const variant = getVariant("checkout-experiment"); // "control" | "variant-a" | null
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare const useFeatureFlags: (api: Api<any, any, any, any>, basePath?: string) => UseFeatureFlagsResult;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=useFeatureFlags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFeatureFlags.d.ts","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,8BAA8B,CAAC;AAGtD,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE1D,UAAU,qBAAqB;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,eAAe,GAE1B,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5B,iBAA2B,KAC1B,qBAuFF,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Creates feature flag accessors from an RTK Query API instance.
|
|
4
|
+
*
|
|
5
|
+
* Injects a `GET {basePath}/evaluate` endpoint into the API and returns
|
|
6
|
+
* accessors for reading flag values. Fetches once on mount and caches via
|
|
7
|
+
* RTK Query. Both `api` and `basePath` should be stable references.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const { getFlag, getVariant } = useFeatureFlags(terrenoApi);
|
|
12
|
+
*
|
|
13
|
+
* const showNewCheckout = getFlag("new-checkout-flow"); // true | false
|
|
14
|
+
* const variant = getVariant("checkout-experiment"); // "control" | "variant-a" | null
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export const useFeatureFlags = (
|
|
18
|
+
// biome-ignore lint/suspicious/noExplicitAny: RTK Query API generic typing is intentionally flexible here.
|
|
19
|
+
api, basePath = "/feature-flags") => {
|
|
20
|
+
const enhancedApi = useMemo(() => api.injectEndpoints({
|
|
21
|
+
endpoints: (builder) => ({
|
|
22
|
+
evaluateFeatureFlags: builder.query({
|
|
23
|
+
query: () => ({
|
|
24
|
+
method: "GET",
|
|
25
|
+
url: `${basePath}/evaluate`,
|
|
26
|
+
}),
|
|
27
|
+
}),
|
|
28
|
+
}),
|
|
29
|
+
overrideExisting: false,
|
|
30
|
+
}), [api, basePath]);
|
|
31
|
+
// biome-ignore lint/suspicious/noExplicitAny: Endpoint hook is injected dynamically by RTK Query.
|
|
32
|
+
const useEvaluateQuery = enhancedApi.useEvaluateFeatureFlagsQuery;
|
|
33
|
+
const { data, isLoading, error, refetch } = useEvaluateQuery();
|
|
34
|
+
const evaluateStartedAtRef = useRef(null);
|
|
35
|
+
const flags = data ?? {};
|
|
36
|
+
// Log when evaluate request enters loading state so client timing can be measured.
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (!isLoading || evaluateStartedAtRef.current !== null) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
evaluateStartedAtRef.current = Date.now();
|
|
42
|
+
console.debug("[feature-flags] evaluate request started", {
|
|
43
|
+
basePath,
|
|
44
|
+
});
|
|
45
|
+
}, [basePath, isLoading]);
|
|
46
|
+
// Log evaluate success with duration and number of resolved flag values.
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (!data || evaluateStartedAtRef.current === null) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const durationMs = Date.now() - evaluateStartedAtRef.current;
|
|
52
|
+
evaluateStartedAtRef.current = null;
|
|
53
|
+
console.debug("[feature-flags] evaluate request completed", {
|
|
54
|
+
basePath,
|
|
55
|
+
durationMs,
|
|
56
|
+
evaluatedFlagCount: Object.keys(flags).length,
|
|
57
|
+
evaluatedFlags: flags,
|
|
58
|
+
});
|
|
59
|
+
}, [basePath, data, flags]);
|
|
60
|
+
// Log evaluate failures with duration so request issues can be correlated.
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (!error || evaluateStartedAtRef.current === null) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const durationMs = Date.now() - evaluateStartedAtRef.current;
|
|
66
|
+
evaluateStartedAtRef.current = null;
|
|
67
|
+
console.debug("[feature-flags] evaluate request failed", {
|
|
68
|
+
basePath,
|
|
69
|
+
durationMs,
|
|
70
|
+
error,
|
|
71
|
+
});
|
|
72
|
+
}, [basePath, error]);
|
|
73
|
+
const getFlag = useCallback((key) => {
|
|
74
|
+
const value = flags[key];
|
|
75
|
+
return value === true;
|
|
76
|
+
}, [flags]);
|
|
77
|
+
const getVariant = useCallback((key) => {
|
|
78
|
+
const value = flags[key];
|
|
79
|
+
if (typeof value === "string") {
|
|
80
|
+
return value;
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}, [flags]);
|
|
84
|
+
return { error, flags, getFlag, getVariant, isLoading, refetch };
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=useFeatureFlags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFeatureFlags.js","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface UseUpgradeCheckResult {
|
|
2
|
+
canUpdate: boolean;
|
|
3
|
+
isRequired: boolean;
|
|
4
|
+
requiredMessage?: string;
|
|
5
|
+
onUpdate: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const useUpgradeCheck: () => UseUpgradeCheckResult;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=useUpgradeCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpgradeCheck.d.ts","sourceRoot":"","sources":["../src/useUpgradeCheck.ts"],"names":[],"mappings":"AAQA,UAAU,qBAAqB;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,QAAO,qBAsElC,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { useToast } from "@terreno/ui";
|
|
2
|
+
import Constants from "expo-constants";
|
|
3
|
+
import { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import { Linking } from "react-native";
|
|
5
|
+
import { useLazyGetVersionCheckQuery } from "./emptyApi";
|
|
6
|
+
import { IsWeb } from "./platform";
|
|
7
|
+
export const useUpgradeCheck = () => {
|
|
8
|
+
const [isRequired, setIsRequired] = useState(false);
|
|
9
|
+
const [requiredMessage, setRequiredMessage] = useState();
|
|
10
|
+
const [updateUrl, setUpdateUrl] = useState();
|
|
11
|
+
const [warningMessage, setWarningMessage] = useState();
|
|
12
|
+
const toast = useToast();
|
|
13
|
+
const [triggerVersionCheck, result] = useLazyGetVersionCheckQuery();
|
|
14
|
+
const buildNumber = Constants.expoConfig?.extra?.buildNumber;
|
|
15
|
+
const onUpdate = useCallback(() => {
|
|
16
|
+
if (IsWeb) {
|
|
17
|
+
window.location.reload();
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (updateUrl) {
|
|
21
|
+
void Linking.openURL(updateUrl).catch((err) => {
|
|
22
|
+
console.warn("Failed to open update URL", err);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
console.warn("useUpgradeCheck: no update URL available for mobile update");
|
|
27
|
+
}
|
|
28
|
+
}, [updateUrl]);
|
|
29
|
+
// Show warning toast in a separate effect. ToastProvider initializes its ref
|
|
30
|
+
// in useEffect, so we may need to retry when toast becomes available.
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (!warningMessage)
|
|
33
|
+
return;
|
|
34
|
+
const toastId = toast.warn(warningMessage, { persistent: true });
|
|
35
|
+
if (toastId) {
|
|
36
|
+
setWarningMessage(undefined);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.warn("useUpgradeCheck: toast not yet available, will retry on next render");
|
|
40
|
+
}
|
|
41
|
+
}, [warningMessage, toast]);
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (buildNumber === undefined || buildNumber === null) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const platform = IsWeb ? "web" : "mobile";
|
|
47
|
+
void triggerVersionCheck({ platform, version: buildNumber });
|
|
48
|
+
}, [buildNumber, triggerVersionCheck]);
|
|
49
|
+
// Process the version-check response: block on required, warn on warning
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (result.isError) {
|
|
52
|
+
console.debug("Version check failed, continuing normally", result.error);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!result.isSuccess || !result.data) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const { message, status, updateUrl: responseUpdateUrl } = result.data;
|
|
59
|
+
if (status === "required") {
|
|
60
|
+
setIsRequired(true);
|
|
61
|
+
setRequiredMessage(message);
|
|
62
|
+
}
|
|
63
|
+
else if (status === "warning" && message) {
|
|
64
|
+
setWarningMessage(message);
|
|
65
|
+
}
|
|
66
|
+
if (responseUpdateUrl) {
|
|
67
|
+
setUpdateUrl(responseUpdateUrl);
|
|
68
|
+
}
|
|
69
|
+
}, [result.data, result.error, result.isError, result.isSuccess]);
|
|
70
|
+
const canUpdate = IsWeb || !!updateUrl;
|
|
71
|
+
return { canUpdate, isRequired, onUpdate, requiredMessage };
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=useUpgradeCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpgradeCheck.js","sourceRoot":"","sources":["../src/useUpgradeCheck.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"@better-auth/expo": "^1.2.8",
|
|
4
4
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
5
5
|
"@reduxjs/toolkit": "^2.11.1",
|
|
6
|
-
"@terreno/ui": "0.
|
|
6
|
+
"@terreno/ui": "0.8.1",
|
|
7
7
|
"async-mutex": "^0.5.0",
|
|
8
8
|
"axios": "^1.13.2",
|
|
9
9
|
"axios-retry": "^4.5.0",
|
|
@@ -30,6 +30,16 @@
|
|
|
30
30
|
"react": "19.1.0",
|
|
31
31
|
"typescript": "~5.9.2"
|
|
32
32
|
},
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"default": "./dist/index.js",
|
|
36
|
+
"types": "./dist/index.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./buildNumber": {
|
|
39
|
+
"default": "./dist/buildNumber.js",
|
|
40
|
+
"types": "./dist/buildNumber.d.ts"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
33
43
|
"files": [
|
|
34
44
|
"dist/**/*",
|
|
35
45
|
"src/**/*"
|
|
@@ -50,5 +60,5 @@
|
|
|
50
60
|
"test:ci": "echo 'No tests'"
|
|
51
61
|
},
|
|
52
62
|
"types": "dist/index.d.ts",
|
|
53
|
-
"version": "0.
|
|
63
|
+
"version": "0.8.1"
|
|
54
64
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import {execSync} from "node:child_process";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Coerce a value to a valid build number (finite positive integer), or undefined.
|
|
5
|
+
* Useful for validating build numbers from environment variables, config overrides, etc.
|
|
6
|
+
*/
|
|
7
|
+
export const coerceBuildNumber = (value: unknown): number | undefined => {
|
|
8
|
+
if (value === undefined || value === null) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const n = typeof value === "number" ? value : parseInt(String(value), 10);
|
|
12
|
+
return Number.isFinite(n) ? n : undefined;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
interface ResolveBuildNumberOptions {
|
|
16
|
+
/** Hard-coded override — set to a number to test version-check behavior locally. */
|
|
17
|
+
override?: number;
|
|
18
|
+
/** Existing build number from Expo config (`config.extra?.buildNumber`). */
|
|
19
|
+
configValue?: unknown;
|
|
20
|
+
/** Environment variable name to read (default: `"EXPO_PUBLIC_BUILD_NUMBER"`). */
|
|
21
|
+
envVar?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Resolve a build number using the standard Terreno priority chain:
|
|
26
|
+
* 1. `override` (for local testing)
|
|
27
|
+
* 2. `configValue` (from existing Expo config / EAS Build)
|
|
28
|
+
* 3. `EXPO_PUBLIC_BUILD_NUMBER` env var (or custom `envVar`)
|
|
29
|
+
* 4. `git rev-list --count HEAD`
|
|
30
|
+
* 5. `undefined` (version check will be skipped)
|
|
31
|
+
*
|
|
32
|
+
* Import this in your `app.config.ts` to avoid duplicating the resolution logic:
|
|
33
|
+
* ```ts
|
|
34
|
+
* import {resolveBuildNumber} from "@terreno/rtk/buildNumber";
|
|
35
|
+
*
|
|
36
|
+
* export default ({config}) => ({
|
|
37
|
+
* ...config,
|
|
38
|
+
* extra: {...config.extra, buildNumber: resolveBuildNumber({configValue: config.extra?.buildNumber})},
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export const resolveBuildNumber = (options: ResolveBuildNumberOptions = {}): number | undefined => {
|
|
43
|
+
const {override, configValue, envVar = "EXPO_PUBLIC_BUILD_NUMBER"} = options;
|
|
44
|
+
|
|
45
|
+
const fromOverride = coerceBuildNumber(override);
|
|
46
|
+
if (fromOverride !== undefined) {
|
|
47
|
+
return fromOverride;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const fromConfig = coerceBuildNumber(configValue);
|
|
51
|
+
if (fromConfig !== undefined) {
|
|
52
|
+
return fromConfig;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const envValue = process.env[envVar];
|
|
56
|
+
if (envValue) {
|
|
57
|
+
const fromEnv = coerceBuildNumber(envValue);
|
|
58
|
+
if (fromEnv !== undefined) {
|
|
59
|
+
return fromEnv;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
try {
|
|
64
|
+
return parseInt(execSync("git rev-list --count HEAD").toString().trim(), 10);
|
|
65
|
+
} catch {
|
|
66
|
+
// Leave undefined so the version check is skipped in environments without git
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
};
|
package/src/emptyApi.ts
CHANGED
|
@@ -22,6 +22,15 @@ import {IsWeb} from "./platform";
|
|
|
22
22
|
|
|
23
23
|
const log = AUTH_DEBUG ? (s: string): void => console.debug(`[auth] ${s}`) : (): void => {};
|
|
24
24
|
|
|
25
|
+
/** Response from Terreno `GET /version-check` (VersionCheckPlugin). */
|
|
26
|
+
export interface VersionCheckResponse {
|
|
27
|
+
message?: string;
|
|
28
|
+
requiredVersion?: number;
|
|
29
|
+
status: "ok" | "warning" | "required";
|
|
30
|
+
updateUrl?: string;
|
|
31
|
+
warningVersion?: number;
|
|
32
|
+
}
|
|
33
|
+
|
|
25
34
|
axiosRetry(axios, {retries: 3, retryDelay: axiosRetry.exponentialDelay});
|
|
26
35
|
|
|
27
36
|
const mutex = new Mutex();
|
|
@@ -205,7 +214,11 @@ export const staggeredBaseQuery = retry(
|
|
|
205
214
|
await mutex.waitForUnlock();
|
|
206
215
|
let token = await getAuthToken();
|
|
207
216
|
|
|
208
|
-
if (
|
|
217
|
+
if (
|
|
218
|
+
["emailLogin", "emailSignUp", "getVersionCheck", "getZoomSignature", "googleLogin"].includes(
|
|
219
|
+
api.endpoint
|
|
220
|
+
)
|
|
221
|
+
) {
|
|
209
222
|
// just pass thru the request without token validation for login/signup requests
|
|
210
223
|
// (even if there's a stale token in storage)
|
|
211
224
|
return getBaseQuery(args, api, extraOptions, token);
|
|
@@ -328,8 +341,16 @@ export const staggeredBaseQuery = retry(
|
|
|
328
341
|
export const emptySplitApi = createApi({
|
|
329
342
|
baseQuery: staggeredBaseQuery,
|
|
330
343
|
endpoints: (builder) => ({
|
|
344
|
+
getVersionCheck: builder.query<VersionCheckResponse, {platform: string; version: number}>({
|
|
345
|
+
query: ({platform, version}) => ({
|
|
346
|
+
params: {platform, version},
|
|
347
|
+
url: "/version-check",
|
|
348
|
+
}),
|
|
349
|
+
}),
|
|
331
350
|
// biome-ignore lint/suspicious/noExplicitAny: Generic
|
|
332
351
|
...generateProfileEndpoints(builder as any, "users"), // using 'users' here since it is highly intertwined with Users
|
|
333
352
|
}),
|
|
334
353
|
reducerPath: "terreno-rtk",
|
|
335
354
|
});
|
|
355
|
+
|
|
356
|
+
export const {useGetVersionCheckQuery, useLazyGetVersionCheckQuery} = emptySplitApi;
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type {Api} from "@reduxjs/toolkit/query/react";
|
|
2
|
+
import {useCallback, useEffect, useMemo, useRef} from "react";
|
|
3
|
+
|
|
4
|
+
type FlagValues = Record<string, boolean | string | null>;
|
|
5
|
+
|
|
6
|
+
interface UseFeatureFlagsResult {
|
|
7
|
+
flags: FlagValues;
|
|
8
|
+
getFlag: (key: string) => boolean;
|
|
9
|
+
getVariant: (key: string) => string | null;
|
|
10
|
+
isLoading: boolean;
|
|
11
|
+
error: unknown;
|
|
12
|
+
refetch: () => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Creates feature flag accessors from an RTK Query API instance.
|
|
17
|
+
*
|
|
18
|
+
* Injects a `GET {basePath}/evaluate` endpoint into the API and returns
|
|
19
|
+
* accessors for reading flag values. Fetches once on mount and caches via
|
|
20
|
+
* RTK Query. Both `api` and `basePath` should be stable references.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const { getFlag, getVariant } = useFeatureFlags(terrenoApi);
|
|
25
|
+
*
|
|
26
|
+
* const showNewCheckout = getFlag("new-checkout-flow"); // true | false
|
|
27
|
+
* const variant = getVariant("checkout-experiment"); // "control" | "variant-a" | null
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export const useFeatureFlags = (
|
|
31
|
+
// biome-ignore lint/suspicious/noExplicitAny: RTK Query API generic typing is intentionally flexible here.
|
|
32
|
+
api: Api<any, any, any, any>,
|
|
33
|
+
basePath = "/feature-flags"
|
|
34
|
+
): UseFeatureFlagsResult => {
|
|
35
|
+
const enhancedApi = useMemo(
|
|
36
|
+
() =>
|
|
37
|
+
api.injectEndpoints({
|
|
38
|
+
endpoints: (builder) => ({
|
|
39
|
+
evaluateFeatureFlags: builder.query<FlagValues, void>({
|
|
40
|
+
query: () => ({
|
|
41
|
+
method: "GET",
|
|
42
|
+
url: `${basePath}/evaluate`,
|
|
43
|
+
}),
|
|
44
|
+
}),
|
|
45
|
+
}),
|
|
46
|
+
overrideExisting: false,
|
|
47
|
+
}),
|
|
48
|
+
[api, basePath]
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
// biome-ignore lint/suspicious/noExplicitAny: Endpoint hook is injected dynamically by RTK Query.
|
|
52
|
+
const useEvaluateQuery = (enhancedApi as any).useEvaluateFeatureFlagsQuery;
|
|
53
|
+
const {data, isLoading, error, refetch} = useEvaluateQuery();
|
|
54
|
+
const evaluateStartedAtRef = useRef<number | null>(null);
|
|
55
|
+
|
|
56
|
+
const flags: FlagValues = data ?? {};
|
|
57
|
+
|
|
58
|
+
// Log when evaluate request enters loading state so client timing can be measured.
|
|
59
|
+
useEffect((): void => {
|
|
60
|
+
if (!isLoading || evaluateStartedAtRef.current !== null) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
evaluateStartedAtRef.current = Date.now();
|
|
65
|
+
console.debug("[feature-flags] evaluate request started", {
|
|
66
|
+
basePath,
|
|
67
|
+
});
|
|
68
|
+
}, [basePath, isLoading]);
|
|
69
|
+
|
|
70
|
+
// Log evaluate success with duration and number of resolved flag values.
|
|
71
|
+
useEffect((): void => {
|
|
72
|
+
if (!data || evaluateStartedAtRef.current === null) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const durationMs = Date.now() - evaluateStartedAtRef.current;
|
|
77
|
+
evaluateStartedAtRef.current = null;
|
|
78
|
+
console.debug("[feature-flags] evaluate request completed", {
|
|
79
|
+
basePath,
|
|
80
|
+
durationMs,
|
|
81
|
+
evaluatedFlagCount: Object.keys(flags).length,
|
|
82
|
+
evaluatedFlags: flags,
|
|
83
|
+
});
|
|
84
|
+
}, [basePath, data, flags]);
|
|
85
|
+
|
|
86
|
+
// Log evaluate failures with duration so request issues can be correlated.
|
|
87
|
+
useEffect((): void => {
|
|
88
|
+
if (!error || evaluateStartedAtRef.current === null) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const durationMs = Date.now() - evaluateStartedAtRef.current;
|
|
93
|
+
evaluateStartedAtRef.current = null;
|
|
94
|
+
console.debug("[feature-flags] evaluate request failed", {
|
|
95
|
+
basePath,
|
|
96
|
+
durationMs,
|
|
97
|
+
error,
|
|
98
|
+
});
|
|
99
|
+
}, [basePath, error]);
|
|
100
|
+
|
|
101
|
+
const getFlag = useCallback(
|
|
102
|
+
(key: string): boolean => {
|
|
103
|
+
const value = flags[key];
|
|
104
|
+
return value === true;
|
|
105
|
+
},
|
|
106
|
+
[flags]
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
const getVariant = useCallback(
|
|
110
|
+
(key: string): string | null => {
|
|
111
|
+
const value = flags[key];
|
|
112
|
+
if (typeof value === "string") {
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
},
|
|
117
|
+
[flags]
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
return {error, flags, getFlag, getVariant, isLoading, refetch};
|
|
121
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import {useToast} from "@terreno/ui";
|
|
2
|
+
import Constants from "expo-constants";
|
|
3
|
+
import {useCallback, useEffect, useState} from "react";
|
|
4
|
+
import {Linking} from "react-native";
|
|
5
|
+
|
|
6
|
+
import {useLazyGetVersionCheckQuery} from "./emptyApi";
|
|
7
|
+
import {IsWeb} from "./platform";
|
|
8
|
+
|
|
9
|
+
interface UseUpgradeCheckResult {
|
|
10
|
+
canUpdate: boolean;
|
|
11
|
+
isRequired: boolean;
|
|
12
|
+
requiredMessage?: string;
|
|
13
|
+
onUpdate: () => void;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const useUpgradeCheck = (): UseUpgradeCheckResult => {
|
|
17
|
+
const [isRequired, setIsRequired] = useState(false);
|
|
18
|
+
const [requiredMessage, setRequiredMessage] = useState<string>();
|
|
19
|
+
const [updateUrl, setUpdateUrl] = useState<string>();
|
|
20
|
+
const [warningMessage, setWarningMessage] = useState<string>();
|
|
21
|
+
const toast = useToast();
|
|
22
|
+
const [triggerVersionCheck, result] = useLazyGetVersionCheckQuery();
|
|
23
|
+
const buildNumber = Constants.expoConfig?.extra?.buildNumber as number | undefined;
|
|
24
|
+
|
|
25
|
+
const onUpdate = useCallback(() => {
|
|
26
|
+
if (IsWeb) {
|
|
27
|
+
window.location.reload();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (updateUrl) {
|
|
31
|
+
void Linking.openURL(updateUrl).catch((err: unknown) => {
|
|
32
|
+
console.warn("Failed to open update URL", err);
|
|
33
|
+
});
|
|
34
|
+
} else {
|
|
35
|
+
console.warn("useUpgradeCheck: no update URL available for mobile update");
|
|
36
|
+
}
|
|
37
|
+
}, [updateUrl]);
|
|
38
|
+
|
|
39
|
+
// Show warning toast in a separate effect. ToastProvider initializes its ref
|
|
40
|
+
// in useEffect, so we may need to retry when toast becomes available.
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (!warningMessage) return;
|
|
43
|
+
const toastId = toast.warn(warningMessage, {persistent: true});
|
|
44
|
+
if (toastId) {
|
|
45
|
+
setWarningMessage(undefined);
|
|
46
|
+
} else {
|
|
47
|
+
console.warn("useUpgradeCheck: toast not yet available, will retry on next render");
|
|
48
|
+
}
|
|
49
|
+
}, [warningMessage, toast]);
|
|
50
|
+
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (buildNumber === undefined || buildNumber === null) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const platform = IsWeb ? "web" : "mobile";
|
|
57
|
+
void triggerVersionCheck({platform, version: buildNumber});
|
|
58
|
+
}, [buildNumber, triggerVersionCheck]);
|
|
59
|
+
|
|
60
|
+
// Process the version-check response: block on required, warn on warning
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (result.isError) {
|
|
63
|
+
console.debug("Version check failed, continuing normally", result.error);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!result.isSuccess || !result.data) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const {message, status, updateUrl: responseUpdateUrl} = result.data;
|
|
70
|
+
|
|
71
|
+
if (status === "required") {
|
|
72
|
+
setIsRequired(true);
|
|
73
|
+
setRequiredMessage(message);
|
|
74
|
+
} else if (status === "warning" && message) {
|
|
75
|
+
setWarningMessage(message);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (responseUpdateUrl) {
|
|
79
|
+
setUpdateUrl(responseUpdateUrl);
|
|
80
|
+
}
|
|
81
|
+
}, [result.data, result.error, result.isError, result.isSuccess]);
|
|
82
|
+
|
|
83
|
+
const canUpdate = IsWeb || !!updateUrl;
|
|
84
|
+
|
|
85
|
+
return {canUpdate, isRequired, onUpdate, requiredMessage};
|
|
86
|
+
};
|