@terreno/rtk 0.10.0 → 0.11.0

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 (65) hide show
  1. package/dist/authSlice.test.js +68 -0
  2. package/dist/authSlice.test.js.map +1 -1
  3. package/dist/authSliceNative.test.d.ts +2 -0
  4. package/dist/authSliceNative.test.d.ts.map +1 -0
  5. package/dist/authSliceNative.test.js +167 -0
  6. package/dist/authSliceNative.test.js.map +1 -0
  7. package/dist/betterAuthClient.d.ts +16 -0
  8. package/dist/betterAuthClient.d.ts.map +1 -1
  9. package/dist/betterAuthClient.js +5 -2
  10. package/dist/betterAuthClient.js.map +1 -1
  11. package/dist/betterAuthClient.test.d.ts +2 -0
  12. package/dist/betterAuthClient.test.d.ts.map +1 -0
  13. package/dist/betterAuthClient.test.js +151 -0
  14. package/dist/betterAuthClient.test.js.map +1 -0
  15. package/dist/betterAuthSlice.test.js +54 -1
  16. package/dist/betterAuthSlice.test.js.map +1 -1
  17. package/dist/buildNumber.test.d.ts +2 -0
  18. package/dist/buildNumber.test.d.ts.map +1 -0
  19. package/dist/buildNumber.test.js +95 -0
  20. package/dist/buildNumber.test.js.map +1 -0
  21. package/dist/constants.d.ts +27 -3
  22. package/dist/constants.d.ts.map +1 -1
  23. package/dist/constants.js +45 -56
  24. package/dist/constants.js.map +1 -1
  25. package/dist/constants.test.js +174 -123
  26. package/dist/constants.test.js.map +1 -1
  27. package/dist/mongooseSlice.test.d.ts +2 -0
  28. package/dist/mongooseSlice.test.d.ts.map +1 -0
  29. package/dist/mongooseSlice.test.js +39 -0
  30. package/dist/mongooseSlice.test.js.map +1 -0
  31. package/dist/tagGenerator.test.d.ts +2 -0
  32. package/dist/tagGenerator.test.d.ts.map +1 -0
  33. package/dist/tagGenerator.test.js +96 -0
  34. package/dist/tagGenerator.test.js.map +1 -0
  35. package/dist/testPreload.test.d.ts +2 -0
  36. package/dist/testPreload.test.d.ts.map +1 -0
  37. package/dist/testPreload.test.js +27 -0
  38. package/dist/testPreload.test.js.map +1 -0
  39. package/dist/useFeatureFlags.d.ts +25 -1
  40. package/dist/useFeatureFlags.d.ts.map +1 -1
  41. package/dist/useFeatureFlags.js +18 -16
  42. package/dist/useFeatureFlags.js.map +1 -1
  43. package/dist/useFeatureFlags.test.d.ts +2 -0
  44. package/dist/useFeatureFlags.test.d.ts.map +1 -0
  45. package/dist/useFeatureFlags.test.js +162 -0
  46. package/dist/useFeatureFlags.test.js.map +1 -0
  47. package/package.json +6 -3
  48. package/src/authSlice.test.ts +79 -0
  49. package/src/authSliceNative.test.ts +187 -0
  50. package/src/betterAuthClient.test.ts +176 -0
  51. package/src/betterAuthClient.ts +6 -3
  52. package/src/betterAuthSlice.test.ts +67 -0
  53. package/src/buildNumber.test.ts +120 -0
  54. package/src/constants.test.ts +193 -154
  55. package/src/constants.ts +72 -70
  56. package/src/mongooseSlice.test.ts +46 -0
  57. package/src/tagGenerator.test.ts +109 -0
  58. package/src/testPreload.test.ts +30 -0
  59. package/src/useFeatureFlags.test.ts +209 -0
  60. package/src/useFeatureFlags.ts +44 -5
  61. package/dist/test-preload.d.ts +0 -2
  62. package/dist/test-preload.d.ts.map +0 -1
  63. package/dist/test-preload.js +0 -24
  64. package/dist/test-preload.js.map +0 -1
  65. package/src/test-preload.ts +0 -28
@@ -1,144 +1,195 @@
1
1
  import { afterEach, beforeEach, describe, expect, it, mock } from "bun:test";
2
- const loadConstantsModule = async ({ apiUrl, constantsMock, isDev = false, }) => {
3
- const hasApiUrl = "EXPO_PUBLIC_API_URL" in process.env;
4
- const previousApiUrl = process.env.EXPO_PUBLIC_API_URL;
5
- const previousDev = globalThis.__DEV__;
6
- if (apiUrl) {
7
- process.env.EXPO_PUBLIC_API_URL = apiUrl;
8
- }
9
- else {
10
- delete process.env.EXPO_PUBLIC_API_URL;
11
- }
12
- globalThis.__DEV__ = isDev;
13
- mock.module("expo-constants", () => ({
14
- default: constantsMock,
15
- }));
16
- const testCaseId = `${Date.now()}-${Math.random()}`;
17
- const module = (await import(`./constants?testCase=${testCaseId}`));
18
- if (hasApiUrl) {
19
- process.env.EXPO_PUBLIC_API_URL = previousApiUrl;
20
- }
21
- else {
22
- delete process.env.EXPO_PUBLIC_API_URL;
23
- }
24
- if (typeof previousDev === "undefined") {
25
- delete globalThis.__DEV__;
26
- }
27
- else {
28
- globalThis.__DEV__ = previousDev;
29
- }
30
- return module;
31
- };
32
- describe("constants", () => {
33
- const originalDebug = console.debug;
34
- const originalError = console.error;
35
- beforeEach(() => {
36
- console.debug = mock(() => { });
37
- console.error = mock(() => { });
2
+ import { AUTH_DEBUG, baseTasksUrl, baseUrl, baseWebsocketsUrl, logAuth, logSocket, resolveBaseUrls, } from "./constants";
3
+ describe("resolveBaseUrls", () => {
4
+ it("treats an empty envApiUrl as unset and falls back to localhost", () => {
5
+ const urls = resolveBaseUrls({
6
+ envApiUrl: "",
7
+ expoConstants: { expoConfig: { extra: {} } },
8
+ isDev: false,
9
+ });
10
+ expect(urls.baseUrl).toBe("http://localhost:4000");
11
+ expect(urls.baseWebsocketsUrl).toBe("ws://localhost:4000/");
12
+ expect(urls.baseTasksUrl).toBe("http://localhost:4000/tasks");
38
13
  });
39
- afterEach(() => {
40
- console.debug = originalDebug;
41
- console.error = originalError;
42
- });
43
- it("uses EXPO_PUBLIC_API_URL override and enables debug logs", async () => {
44
- const constants = await loadConstantsModule({
45
- apiUrl: "https://api.example.com",
46
- constantsMock: {
47
- expoConfig: {
48
- extra: {
49
- APP_ENV: "production",
50
- AUTH_DEBUG: "true",
51
- WEBSOCKETS_DEBUG: "true",
52
- },
53
- },
54
- },
14
+ it("treats an empty BASE_URL extra as unset and falls back to localhost in non-dev", () => {
15
+ const urls = resolveBaseUrls({
16
+ expoConstants: { expoConfig: { extra: { BASE_URL: "" } } },
55
17
  isDev: false,
56
18
  });
57
- expect(constants.baseUrl).toBe("https://api.example.com");
58
- expect(constants.baseWebsocketsUrl).toBe("https://ws.example.com/");
59
- expect(constants.baseTasksUrl).toBe("https://tasks.example.com/tasks");
60
- expect(constants.AUTH_DEBUG).toBe(true);
61
- constants.logAuth("auth message");
62
- constants.logSocket(undefined, "socket message");
63
- expect(console.debug).toHaveBeenCalledWith("auth message");
64
- expect(console.debug).toHaveBeenCalledWith("[websocket]", "socket message");
65
- });
66
- it("resolves dev hostUri URLs when __DEV__ is true", async () => {
67
- const constants = await loadConstantsModule({
68
- constantsMock: {
69
- expoConfig: {
70
- extra: {},
71
- hostUri: "10.0.0.12:8081",
72
- },
73
- },
19
+ expect(urls.baseUrl).toBe("http://localhost:4000");
20
+ });
21
+ it("uses env override when provided", () => {
22
+ const urls = resolveBaseUrls({
23
+ envApiUrl: "https://api.example.com",
24
+ expoConstants: { expoConfig: { extra: {} } },
25
+ isDev: false,
26
+ });
27
+ expect(urls.baseUrl).toBe("https://api.example.com");
28
+ expect(urls.baseWebsocketsUrl).toBe("https://ws.example.com/");
29
+ expect(urls.baseTasksUrl).toBe("https://tasks.example.com/tasks");
30
+ });
31
+ it("uses hostUri in dev mode", () => {
32
+ const urls = resolveBaseUrls({
33
+ expoConstants: { expoConfig: { extra: {}, hostUri: "10.0.0.12:8081" } },
74
34
  isDev: true,
75
35
  });
76
- expect(constants.baseUrl).toBe("http://10.0.0.12:4000");
77
- expect(constants.baseWebsocketsUrl).toBe("ws://10.0.0.12:4000/");
78
- expect(constants.baseTasksUrl).toBe("http://10.0.0.12:4000/tasks");
36
+ expect(urls.baseUrl).toBe("http://10.0.0.12:4000");
37
+ expect(urls.baseWebsocketsUrl).toBe("ws://10.0.0.12:4000/");
38
+ expect(urls.baseTasksUrl).toBe("http://10.0.0.12:4000/tasks");
79
39
  });
80
- it("resolves dev experienceUrl URLs when hostUri is unavailable", async () => {
81
- const constants = await loadConstantsModule({
82
- constantsMock: {
40
+ it("falls back to experienceUrl in dev mode when hostUri missing", () => {
41
+ const urls = resolveBaseUrls({
42
+ expoConstants: {
83
43
  experienceUrl: "exp://192.168.1.20:19000",
84
- expoConfig: {
85
- extra: {},
86
- },
44
+ expoConfig: { extra: {} },
87
45
  },
88
46
  isDev: true,
89
47
  });
90
- expect(constants.baseUrl).toBe("http://192.168.1.20:4000");
91
- expect(constants.baseWebsocketsUrl).toBe("ws://192.168.1.20:4000/");
92
- expect(constants.baseTasksUrl).toBe("http://192.168.1.20:4000/tasks");
93
- });
94
- it("uses BASE_URL outside dev mode and allows user websocket debug flag", async () => {
95
- const constants = await loadConstantsModule({
96
- constantsMock: {
97
- expoConfig: {
98
- extra: {
99
- BASE_URL: "https://api.prod.com",
100
- WEBSOCKETS_DEBUG: "false",
101
- },
102
- },
103
- },
48
+ expect(urls.baseUrl).toBe("http://192.168.1.20:4000");
49
+ expect(urls.baseWebsocketsUrl).toBe("ws://192.168.1.20:4000/");
50
+ expect(urls.baseTasksUrl).toBe("http://192.168.1.20:4000/tasks");
51
+ });
52
+ it("falls back to localhost in dev mode when nothing else is available", () => {
53
+ const urls = resolveBaseUrls({
54
+ expoConstants: { expoConfig: { extra: {} } },
55
+ isDev: true,
56
+ });
57
+ expect(urls.baseUrl).toBe("http://localhost:4000");
58
+ expect(urls.baseWebsocketsUrl).toBe("ws://localhost:4000/");
59
+ expect(urls.baseTasksUrl).toBe("http://localhost:4000/tasks");
60
+ });
61
+ it("uses BASE_URL from extra when not in dev mode", () => {
62
+ const urls = resolveBaseUrls({
63
+ expoConstants: { expoConfig: { extra: { BASE_URL: "https://api.prod.com" } } },
104
64
  isDev: false,
105
65
  });
106
- expect(constants.baseUrl).toBe("https://api.prod.com");
107
- expect(constants.baseWebsocketsUrl).toBe("https://ws.prod.com/");
108
- expect(constants.baseTasksUrl).toBe("https://tasks.prod.com/tasks");
109
- constants.logSocket({ featureFlags: { debugWebsockets: { enabled: true } } }, "enabled");
110
- expect(console.debug).toHaveBeenCalledWith("[websocket]", "enabled");
111
- });
112
- it("falls back to non-dev hostUri when BASE_URL is missing", async () => {
113
- const constants = await loadConstantsModule({
114
- constantsMock: {
115
- expoConfig: {
116
- extra: {},
117
- hostUri: "172.16.0.3:8081",
118
- },
119
- },
66
+ expect(urls.baseUrl).toBe("https://api.prod.com");
67
+ expect(urls.baseWebsocketsUrl).toBe("https://ws.prod.com/");
68
+ expect(urls.baseTasksUrl).toBe("https://tasks.prod.com/tasks");
69
+ });
70
+ it("falls back to hostUri when BASE_URL absent in non-dev", () => {
71
+ const urls = resolveBaseUrls({
72
+ expoConstants: { expoConfig: { extra: {}, hostUri: "172.16.0.3:8081" } },
120
73
  isDev: false,
121
74
  });
122
- expect(constants.baseUrl).toBe("http://172.16.0.3:4000");
123
- expect(constants.baseWebsocketsUrl).toBe("ws://172.16.0.3:4000/");
124
- expect(constants.baseTasksUrl).toBe("http://172.16.0.3:4000/tasks");
125
- });
126
- it("warns for exp.direct tunnels and falls back to localhost", async () => {
127
- const constants = await loadConstantsModule({
128
- constantsMock: {
129
- expoConfig: {
130
- extra: {},
131
- },
132
- expoGoConfig: {
133
- debuggerHost: "abc.exp.direct:80",
134
- },
75
+ expect(urls.baseUrl).toBe("http://172.16.0.3:4000");
76
+ expect(urls.baseWebsocketsUrl).toBe("ws://172.16.0.3:4000/");
77
+ expect(urls.baseTasksUrl).toBe("http://172.16.0.3:4000/tasks");
78
+ });
79
+ it("falls back to experienceUrl in non-dev when hostUri absent", () => {
80
+ const urls = resolveBaseUrls({
81
+ expoConstants: {
82
+ experienceUrl: "exp://10.1.2.3:19000",
83
+ expoConfig: { extra: {} },
135
84
  },
136
85
  isDev: false,
137
86
  });
138
- expect(console.error).toHaveBeenCalledWith("Expo Tunnel is not currently supported for connecting to the API, please use LAN or Local mode.");
139
- expect(constants.baseUrl).toBe("http://localhost:4000");
140
- expect(constants.baseWebsocketsUrl).toBe("ws://localhost:4000/");
141
- expect(constants.baseTasksUrl).toBe("http://localhost:4000/tasks");
87
+ expect(urls.baseUrl).toBe("http://10.1.2.3:4000");
88
+ });
89
+ it("defaults to localhost in non-dev when nothing is configured", () => {
90
+ const urls = resolveBaseUrls({
91
+ expoConstants: { expoConfig: { extra: {} } },
92
+ isDev: false,
93
+ });
94
+ expect(urls.baseUrl).toBe("http://localhost:4000");
95
+ });
96
+ });
97
+ describe("module-level exports", () => {
98
+ it("exports baseUrl / websockets / tasks URLs that resolve to localhost with default mocks", () => {
99
+ expect(baseUrl).toBe("http://localhost:4000");
100
+ expect(baseWebsocketsUrl).toBe("ws://localhost:4000/");
101
+ expect(baseTasksUrl).toBe("http://localhost:4000/tasks");
102
+ });
103
+ it("AUTH_DEBUG is false by default with test-preload mocks", () => {
104
+ expect(AUTH_DEBUG).toBe(false);
105
+ });
106
+ });
107
+ describe("logAuth / logSocket", () => {
108
+ const originalDebug = console.debug;
109
+ const calls = [];
110
+ beforeEach(() => {
111
+ calls.length = 0;
112
+ console.debug = (...args) => {
113
+ calls.push(args);
114
+ };
115
+ });
116
+ afterEach(() => {
117
+ console.debug = originalDebug;
118
+ });
119
+ it("logAuth is a no-op when AUTH_DEBUG is disabled", () => {
120
+ logAuth("auth message");
121
+ expect(calls).toEqual([]);
122
+ });
123
+ it("logSocket logs when passed boolean true", () => {
124
+ logSocket(true, "socket message");
125
+ expect(calls).toEqual([["[websocket]", "socket message"]]);
126
+ });
127
+ it("logSocket does not log when passed boolean false", () => {
128
+ logSocket(false, "suppressed");
129
+ expect(calls).toEqual([]);
130
+ });
131
+ it("logSocket logs when user has debugWebsockets feature flag enabled", () => {
132
+ logSocket({ featureFlags: { debugWebsockets: { enabled: true } } }, "enabled");
133
+ expect(calls).toEqual([["[websocket]", "enabled"]]);
134
+ });
135
+ it("logSocket does not log when user has debugWebsockets disabled", () => {
136
+ logSocket({ featureFlags: { debugWebsockets: { enabled: false } } }, "disabled");
137
+ expect(calls).toEqual([]);
138
+ });
139
+ it("logSocket does not log with undefined user", () => {
140
+ logSocket(undefined, "no user");
141
+ expect(calls).toEqual([]);
142
+ });
143
+ });
144
+ describe("expo tunnel warning", () => {
145
+ it("warns when expoGoConfig.debuggerHost contains exp.direct", async () => {
146
+ const errorCalls = [];
147
+ const originalError = console.error;
148
+ console.error = (...args) => {
149
+ errorCalls.push(args);
150
+ };
151
+ mock.module("expo-constants", () => ({
152
+ default: {
153
+ expoConfig: { extra: {} },
154
+ expoGoConfig: { debuggerHost: "abc.exp.direct" },
155
+ },
156
+ }));
157
+ try {
158
+ const testId = `${Date.now()}-${Math.random()}`;
159
+ await import(`./constants?case=${testId}`);
160
+ const warning = errorCalls.find((args) => args.some((v) => typeof v === "string" && v.includes("Expo Tunnel is not currently")));
161
+ expect(warning).toBeDefined();
162
+ }
163
+ finally {
164
+ console.error = originalError;
165
+ mock.module("expo-constants", () => ({ default: { expoConfig: { extra: {} } } }));
166
+ }
167
+ });
168
+ });
169
+ describe("AUTH_DEBUG enabled path", () => {
170
+ it("logs debug messages from logAuth when AUTH_DEBUG is true on module load", async () => {
171
+ const debugCalls = [];
172
+ const originalDebug = console.debug;
173
+ console.debug = (...args) => {
174
+ debugCalls.push(args);
175
+ };
176
+ mock.module("expo-constants", () => ({
177
+ default: { expoConfig: { extra: { AUTH_DEBUG: "true", WEBSOCKETS_DEBUG: "true" } } },
178
+ }));
179
+ try {
180
+ const testId = `${Date.now()}-${Math.random()}`;
181
+ const loaded = (await import(`./constants?case=${testId}`));
182
+ expect(loaded.AUTH_DEBUG).toBe(true);
183
+ const preLength = debugCalls.length;
184
+ loaded.logAuth("hello");
185
+ expect(debugCalls.length).toBe(preLength + 1);
186
+ loaded.logSocket(undefined, "ws on");
187
+ expect(debugCalls.some((args) => args[0] === "[websocket]" && args[1] === "ws on")).toBe(true);
188
+ }
189
+ finally {
190
+ console.debug = originalDebug;
191
+ mock.module("expo-constants", () => ({ default: { expoConfig: { extra: {} } } }));
192
+ }
142
193
  });
143
194
  });
144
195
  //# sourceMappingURL=constants.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.test.js","sourceRoot":"","sources":["../src/constants.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.test.js","sourceRoot":"","sources":["../src/constants.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mongooseSlice.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseSlice.test.d.ts","sourceRoot":"","sources":["../src/mongooseSlice.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import { describe, expect, it } from "bun:test";
2
+ import { populateId } from "./mongooseSlice";
3
+ describe("populateId", () => {
4
+ const items = [
5
+ { _id: "a", name: "alpha" },
6
+ { _id: "b", name: "beta" },
7
+ { _id: "c", name: "gamma" },
8
+ ];
9
+ const response = {
10
+ data: items,
11
+ limit: 10,
12
+ more: false,
13
+ page: 1,
14
+ total: items.length,
15
+ };
16
+ it("returns the matching object by id", () => {
17
+ expect(populateId("b", response)).toEqual({ _id: "b", name: "beta" });
18
+ });
19
+ it("returns undefined when id is missing", () => {
20
+ expect(populateId(undefined, response)).toBeUndefined();
21
+ });
22
+ it("returns undefined when objs is missing", () => {
23
+ expect(populateId("a")).toBeUndefined();
24
+ });
25
+ it("returns undefined when objs has no data", () => {
26
+ expect(populateId("a", {})).toBeUndefined();
27
+ });
28
+ it("returns undefined when no item matches", () => {
29
+ expect(populateId("z", response)).toBeUndefined();
30
+ });
31
+ it("handles sparse arrays without throwing", () => {
32
+ const sparse = {
33
+ // biome-ignore lint/suspicious/noExplicitAny: Simulating malformed API payloads.
34
+ data: [undefined, { _id: "found" }],
35
+ };
36
+ expect(populateId("found", sparse)).toEqual({ _id: "found" });
37
+ });
38
+ });
39
+ //# sourceMappingURL=mongooseSlice.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseSlice.test.js","sourceRoot":"","sources":["../src/mongooseSlice.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAC,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAoB,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE9D,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,KAAK,GAAG;QACZ,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAC;QACzB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAC;QACxB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAC;KAC1B,CAAC;IACF,MAAM,QAAQ,GAAyC;QACrD,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB,CAAC;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAgC;YAC1C,iFAAiF;YACjF,IAAI,EAAE,CAAC,SAAgB,EAAE,EAAC,GAAG,EAAE,OAAO,EAAC,CAAC;SACzC,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tagGenerator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagGenerator.test.d.ts","sourceRoot":"","sources":["../src/tagGenerator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ import { describe, expect, it } from "bun:test";
2
+ import { generateTags } from "./tagGenerator";
3
+ describe("generateTags", () => {
4
+ const tagTypes = ["users", "posts", "conversations", "messages"];
5
+ it("assigns invalidatesTags for getConversations endpoint", () => {
6
+ const api = {
7
+ endpoints: {
8
+ getConversations: {},
9
+ },
10
+ };
11
+ const tags = generateTags(api, tagTypes);
12
+ // getConversations matches both the special case AND the list-endpoint branch,
13
+ // so the list-endpoint branch wins as the final assignment. The special case
14
+ // still executes for coverage, but the final value is the list providesTags.
15
+ expect(tags.getConversations).toBeDefined();
16
+ expect(typeof tags.getConversations.providesTags).toBe("function");
17
+ });
18
+ it("assigns providesTags on list get endpoints", () => {
19
+ const api = {
20
+ endpoints: {
21
+ getUsers: {},
22
+ },
23
+ };
24
+ const tags = generateTags(api, tagTypes);
25
+ expect(typeof tags.getUsers.providesTags).toBe("function");
26
+ // Exercise the returned provides function with and without data
27
+ const providesFn = tags.getUsers.providesTags;
28
+ expect(providesFn(null)).toEqual(["users"]);
29
+ expect(providesFn({ data: [{ _id: "1" }, { _id: "2" }] })).toEqual([
30
+ { id: "1", type: "users" },
31
+ { id: "2", type: "users" },
32
+ "users",
33
+ ]);
34
+ expect(providesFn({})).toEqual(["users"]);
35
+ });
36
+ it("assigns providesTags on read (ById) get endpoints", () => {
37
+ const api = {
38
+ endpoints: {
39
+ getUserById: {},
40
+ },
41
+ };
42
+ const tags = generateTags(api, tagTypes);
43
+ expect(typeof tags.getUserById.providesTags).toBe("function");
44
+ const providesFn = tags.getUserById.providesTags;
45
+ expect(providesFn(null)).toEqual(["users"]);
46
+ expect(providesFn({ _id: "abc" })).toEqual([{ id: "abc", type: "users" }]);
47
+ });
48
+ it("assigns invalidatesTags on patch endpoints", () => {
49
+ const api = {
50
+ endpoints: {
51
+ patchUserById: {},
52
+ },
53
+ };
54
+ const tags = generateTags(api, tagTypes);
55
+ expect(typeof tags.patchUserById.invalidatesTags).toBe("function");
56
+ const invalidateFn = tags.patchUserById.invalidatesTags;
57
+ expect(invalidateFn(null)).toEqual(["users"]);
58
+ expect(invalidateFn({ data: [{ _id: "x" }] })).toEqual([{ id: "x", type: "users" }, "users"]);
59
+ });
60
+ it("assigns invalidatesTags on delete endpoints", () => {
61
+ const api = {
62
+ endpoints: {
63
+ deletePostById: {},
64
+ },
65
+ };
66
+ const tags = generateTags(api, tagTypes);
67
+ expect(typeof tags.deletePostById.invalidatesTags).toBe("function");
68
+ const invalidateFn = tags.deletePostById.invalidatesTags;
69
+ expect(invalidateFn(null)).toEqual(["posts"]);
70
+ });
71
+ it("skips endpoints with no matching tag", () => {
72
+ const api = {
73
+ endpoints: {
74
+ getUnknownThing: {},
75
+ patchOrphan: {},
76
+ },
77
+ };
78
+ const tags = generateTags(api, tagTypes);
79
+ expect(tags.getUnknownThing).toBeUndefined();
80
+ expect(tags.patchOrphan).toBeUndefined();
81
+ });
82
+ it("returns an empty object for an empty endpoint list", () => {
83
+ const tags = generateTags({ endpoints: {} }, tagTypes);
84
+ expect(tags).toEqual({});
85
+ });
86
+ it("ignores endpoints that are not get/patch/delete", () => {
87
+ const api = {
88
+ endpoints: {
89
+ postUser: {},
90
+ },
91
+ };
92
+ const tags = generateTags(api, tagTypes);
93
+ expect(tags.postUser).toBeUndefined();
94
+ });
95
+ });
96
+ //# sourceMappingURL=tagGenerator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagGenerator.test.js","sourceRoot":"","sources":["../src/tagGenerator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=testPreload.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testPreload.test.d.ts","sourceRoot":"","sources":["../src/testPreload.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { describe, expect, it } from "bun:test";
2
+ // Invoke the mocked module factories registered in test-preload.ts so
3
+ // their bodies (and returned functions) are recognised as covered.
4
+ describe("test-preload default mocks", () => {
5
+ it("expo-secure-store mock returns a no-op store", async () => {
6
+ const SecureStore = await import("expo-secure-store");
7
+ await SecureStore.setItemAsync("k", "v");
8
+ await SecureStore.deleteItemAsync("k");
9
+ expect(await SecureStore.getItemAsync("k")).toBeNull();
10
+ });
11
+ it("AsyncStorage mock returns a no-op store", async () => {
12
+ const AsyncStorage = (await import("@react-native-async-storage/async-storage")).default;
13
+ await AsyncStorage.setItem("k", "v");
14
+ await AsyncStorage.removeItem("k");
15
+ expect(await AsyncStorage.getItem("k")).toBeNull();
16
+ });
17
+ it("expo-network mock reports a connected network", async () => {
18
+ const network = await import("expo-network");
19
+ const state = await network.getNetworkStateAsync();
20
+ expect(state.isConnected).toBe(true);
21
+ });
22
+ it("expo-constants mock exposes an empty config", async () => {
23
+ const Constants = (await import("expo-constants")).default;
24
+ expect(Constants.expoConfig?.extra).toBeDefined();
25
+ });
26
+ });
27
+ //# sourceMappingURL=testPreload.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testPreload.test.js","sourceRoot":"","sources":["../src/testPreload.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAC,MAAM,UAAU,CAAC;AAE9C,sEAAsE;AACtE,mEAAmE;AACnE,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACtD,MAAM,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC,OAAO,CAAC;QACzF,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,MAAM,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -23,6 +23,30 @@ interface UseFeatureFlagsResult {
23
23
  * const variant = getVariant("checkout-experiment"); // "control" | "variant-a" | null
24
24
  * ```
25
25
  */
26
- export declare const useFeatureFlags: (api: Api<any, any, any, any>, basePath?: string) => UseFeatureFlagsResult;
26
+ export interface UseFeatureFlagsOptions {
27
+ /**
28
+ * Base path for the feature-flags endpoint. Defaults to "/feature-flags".
29
+ */
30
+ basePath?: string;
31
+ /**
32
+ * When true, the underlying evaluate query is not fired. Use this to avoid
33
+ * fetching before the user is authenticated.
34
+ */
35
+ skip?: boolean;
36
+ }
37
+ interface ResolvedFeatureFlagsOptions {
38
+ basePath: string;
39
+ skip: boolean;
40
+ }
41
+ /**
42
+ * Normalizes the legacy-compatible `basePathOrOptions` argument into a
43
+ * `{basePath, skip}` pair with defaults applied.
44
+ *
45
+ * - `undefined` -> `{basePath: "/feature-flags", skip: false}`
46
+ * - `string` -> `{basePath: <string>, skip: false}` (legacy form)
47
+ * - `object` -> `{basePath: opts.basePath ?? "/feature-flags", skip: opts.skip ?? false}`
48
+ */
49
+ export declare const resolveFeatureFlagsOptions: (basePathOrOptions?: string | UseFeatureFlagsOptions) => ResolvedFeatureFlagsOptions;
50
+ export declare function useFeatureFlags(api: Api<any, any, any, any>, basePathOrOptions?: string | UseFeatureFlagsOptions): UseFeatureFlagsResult;
27
51
  export {};
28
52
  //# sourceMappingURL=useFeatureFlags.d.ts.map
@@ -1 +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"}
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,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,2BAA2B;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GACrC,oBAAoB,MAAM,GAAG,sBAAsB,KAClD,2BAMF,CAAC;AAIF,wBAAgB,eAAe,CAE7B,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAClD,qBAAqB,CAyFvB"}