@rozenite/tanstack-query-plugin 1.5.1 → 1.7.0-rc.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 (37) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +22 -0
  3. package/dist/{tanstack-query.html → devtools/tanstack-query.html} +1 -1
  4. package/dist/react-native/chunks/useTanStackQueryDevTools.require.cjs +1 -0
  5. package/dist/react-native/chunks/useTanStackQueryDevTools.require.js +862 -0
  6. package/dist/{react-native.cjs → react-native/index.cjs} +1 -1
  7. package/dist/react-native/index.d.ts +7 -0
  8. package/dist/react-native/index.js +6 -0
  9. package/dist/rozenite.json +1 -1
  10. package/package.json +27 -7
  11. package/src/react-native/agent/__tests__/tanstack-query-agent.test.ts +508 -0
  12. package/src/react-native/agent/tanstack-query-agent.ts +750 -0
  13. package/src/react-native/agent/useTanStackQueryAgentTools.ts +147 -0
  14. package/src/react-native/devtools-actions.ts +197 -0
  15. package/src/react-native/useHandleDevToolsMessages.ts +9 -104
  16. package/src/react-native/useTanStackQueryDevTools.ts +3 -0
  17. package/tsconfig.json +3 -0
  18. package/dist/react-native.d.ts +0 -1
  19. package/dist/react-native.js +0 -6
  20. package/dist/rozenite.config.d.ts +0 -7
  21. package/dist/src/react-native/useHandleDevToolsMessages.d.ts +0 -3
  22. package/dist/src/react-native/useHandleInitialData.d.ts +0 -3
  23. package/dist/src/react-native/useSyncTanStackCache.d.ts +0 -3
  24. package/dist/src/react-native/useTanStackQueryDevTools.d.ts +0 -2
  25. package/dist/src/shared/dehydrate.d.ts +0 -6
  26. package/dist/src/shared/hydrate.d.ts +0 -10
  27. package/dist/src/shared/messaging.d.ts +0 -34
  28. package/dist/src/shared/types.d.ts +0 -25
  29. package/dist/src/shared/useSyncOnlineStatus.d.ts +0 -2
  30. package/dist/src/ui/tanstack-query.d.ts +0 -1
  31. package/dist/src/ui/useHandleSyncMessages.d.ts +0 -2
  32. package/dist/src/ui/useSyncDevToolsEvents.d.ts +0 -2
  33. package/dist/src/ui/useSyncInitialData.d.ts +0 -2
  34. package/dist/useTanStackQueryDevTools.cjs +0 -1
  35. package/dist/useTanStackQueryDevTools.js +0 -312
  36. /package/dist/{assets → devtools/assets}/CXEL7IU7-DJlSmt0p.js +0 -0
  37. /package/dist/{assets → devtools/assets}/tanstack-query-_leiFatc.js +0 -0
@@ -1,312 +0,0 @@
1
- import { useRozeniteDevToolsClient as b } from "@rozenite/plugin-bridge";
2
- import { useEffect as y, useRef as S, useMemo as q } from "react";
3
- import { onlineManager as h } from "@tanstack/react-query";
4
- import m from "fast-deep-equal";
5
- const H = (t) => {
6
- y(() => {
7
- if (!t)
8
- return;
9
- const a = h.subscribe((n) => {
10
- t.send("online-status-changed", { online: n });
11
- }), d = t.onMessage(
12
- "online-status-changed",
13
- ({ online: n }) => {
14
- h.setOnline(n);
15
- }
16
- );
17
- return () => {
18
- a(), d.remove();
19
- };
20
- }, [t]);
21
- }, M = (t, a) => {
22
- y(() => {
23
- if (!a)
24
- return;
25
- const d = a.onMessage(
26
- "devtools-action",
27
- ({ type: n, queryHash: o }) => {
28
- const s = t.getQueryCache().get(o);
29
- if (!s) {
30
- console.warn(`No active query found for hash: ${o}`);
31
- return;
32
- }
33
- switch (n) {
34
- case "TRIGGER_ERROR": {
35
- const c = s.options, e = new Error("Unknown error from devtools");
36
- s.setState({
37
- status: "error",
38
- error: e,
39
- fetchMeta: {
40
- ...s.state.fetchMeta,
41
- // @ts-expect-error This does exist
42
- __previousQueryOptions: c
43
- }
44
- });
45
- break;
46
- }
47
- case "RESTORE_ERROR": {
48
- t.resetQueries(s);
49
- break;
50
- }
51
- case "TRIGGER_LOADING": {
52
- if (!s) return;
53
- const c = s.options;
54
- s.fetch({
55
- ...c,
56
- queryFn: () => new Promise(() => {
57
- }),
58
- gcTime: -1
59
- }), s.setState({
60
- data: void 0,
61
- status: "pending",
62
- fetchMeta: {
63
- ...s.state.fetchMeta,
64
- // @ts-expect-error This does exist
65
- __previousQueryOptions: c
66
- }
67
- });
68
- break;
69
- }
70
- case "RESTORE_LOADING": {
71
- const c = s.state, e = s.state.fetchMeta ? s.state.fetchMeta.__previousQueryOptions : null;
72
- s.cancel({ silent: !0 }), s.setState({
73
- ...c,
74
- fetchStatus: "idle",
75
- fetchMeta: null
76
- }), e && s.fetch(e);
77
- break;
78
- }
79
- case "RESET": {
80
- t.resetQueries(s);
81
- break;
82
- }
83
- case "REMOVE": {
84
- t.removeQueries(s);
85
- break;
86
- }
87
- case "REFETCH": {
88
- s.fetch().catch(() => {
89
- });
90
- break;
91
- }
92
- case "INVALIDATE": {
93
- t.invalidateQueries(s);
94
- break;
95
- }
96
- default:
97
- console.warn(`Unknown devtools action: ${n}`);
98
- }
99
- }
100
- );
101
- return () => {
102
- d.remove();
103
- };
104
- }, [a]);
105
- }, f = (t) => t.observers.map((a) => ({
106
- queryHash: t.queryHash,
107
- options: a.options
108
- })), p = (t) => {
109
- const a = f(t);
110
- return {
111
- state: t.state,
112
- queryKey: t.queryKey,
113
- queryHash: t.queryHash,
114
- observers: a
115
- };
116
- }, v = (t) => ({
117
- mutationId: t.mutationId,
118
- state: t.state,
119
- options: t.options
120
- }), g = (t) => ({
121
- queries: t.getQueryCache().getAll().map(p),
122
- mutations: t.getMutationCache().getAll().map(v)
123
- }), R = (t, a) => {
124
- const d = S(
125
- /* @__PURE__ */ new Map()
126
- ), n = q(() => (o) => {
127
- if (!a || o.type === "observerResultsUpdated")
128
- return;
129
- if ("query" in o) {
130
- const { query: e, type: u } = o;
131
- if (u === "added" || u === "removed") {
132
- u === "removed" && d.current.delete(e.queryHash);
133
- const i = p(e);
134
- a.send("sync-query-event", { type: u, data: i });
135
- return;
136
- }
137
- if (u === "updated" && "action" in o) {
138
- const i = o.action;
139
- switch (i.type) {
140
- case "fetch": {
141
- const r = {
142
- queryHash: e.queryHash,
143
- state: {
144
- status: e.state.status,
145
- fetchStatus: e.state.fetchStatus,
146
- fetchMeta: e.state.fetchMeta,
147
- dataUpdatedAt: e.state.dataUpdatedAt,
148
- errorUpdatedAt: e.state.errorUpdatedAt
149
- }
150
- };
151
- a.send("sync-query-event", {
152
- type: "updated",
153
- action: "fetch",
154
- data: r
155
- });
156
- break;
157
- }
158
- case "success": {
159
- const r = {
160
- queryHash: e.queryHash,
161
- state: {
162
- status: e.state.status,
163
- data: e.state.data,
164
- dataUpdatedAt: e.state.dataUpdatedAt,
165
- error: e.state.error,
166
- errorUpdatedAt: e.state.errorUpdatedAt,
167
- fetchStatus: e.state.fetchStatus
168
- }
169
- };
170
- a.send("sync-query-event", {
171
- type: "updated",
172
- action: "success",
173
- data: r
174
- });
175
- break;
176
- }
177
- case "error": {
178
- const r = {
179
- queryHash: e.queryHash,
180
- state: {
181
- status: e.state.status,
182
- error: e.state.error,
183
- errorUpdatedAt: e.state.errorUpdatedAt,
184
- fetchStatus: e.state.fetchStatus
185
- }
186
- };
187
- a.send("sync-query-event", {
188
- type: "updated",
189
- action: "error",
190
- data: r
191
- });
192
- break;
193
- }
194
- case "setState": {
195
- const r = {
196
- queryHash: e.queryHash,
197
- state: i.state
198
- // Only the changed state parts
199
- };
200
- a.send("sync-query-event", {
201
- type: "updated",
202
- action: "setState",
203
- data: r
204
- });
205
- break;
206
- }
207
- case "invalidate": {
208
- const r = {
209
- queryHash: e.queryHash,
210
- state: {
211
- isInvalidated: e.state.isInvalidated
212
- }
213
- };
214
- a.send("sync-query-event", {
215
- type: "updated",
216
- action: "invalidate",
217
- data: r
218
- });
219
- break;
220
- }
221
- case "pause": {
222
- const r = {
223
- queryHash: e.queryHash,
224
- state: {
225
- fetchStatus: e.state.fetchStatus
226
- }
227
- };
228
- a.send("sync-query-event", {
229
- type: "updated",
230
- action: "pause",
231
- data: r
232
- });
233
- break;
234
- }
235
- case "continue": {
236
- const r = {
237
- queryHash: e.queryHash,
238
- state: {
239
- fetchStatus: e.state.fetchStatus
240
- }
241
- };
242
- a.send("sync-query-event", {
243
- type: "updated",
244
- action: "continue",
245
- data: r
246
- });
247
- break;
248
- }
249
- default: {
250
- const r = p(e);
251
- a.send("sync-query-event", { type: u, data: r });
252
- }
253
- }
254
- return;
255
- }
256
- if (u === "observerAdded" || u === "observerRemoved" || u === "observerOptionsUpdated") {
257
- const i = f(e), r = d.current.get(
258
- e.queryHash
259
- );
260
- if (u === "observerOptionsUpdated" && r && m(r, i))
261
- return;
262
- d.current.set(
263
- e.queryHash,
264
- i
265
- ), a.send("sync-query-event", {
266
- type: u,
267
- data: {
268
- queryHash: e.queryHash,
269
- observers: i
270
- }
271
- });
272
- return;
273
- }
274
- }
275
- const { mutation: s, type: c } = o;
276
- if (s) {
277
- const e = v(s);
278
- a.send("sync-mutation-event", {
279
- type: c,
280
- data: e
281
- });
282
- }
283
- }, [a]);
284
- y(() => {
285
- if (!a)
286
- return;
287
- const o = t.getMutationCache().subscribe(n), s = t.getQueryCache().subscribe(n);
288
- return () => {
289
- o(), s();
290
- };
291
- }, [a, t, n]);
292
- }, k = (t, a) => {
293
- y(() => {
294
- if (!a)
295
- return;
296
- const d = a.onMessage("request-initial-data", () => {
297
- const n = g(t);
298
- a.send("sync-data", { data: n });
299
- });
300
- return () => {
301
- d.remove();
302
- };
303
- }, [a, t]);
304
- }, l = (t) => {
305
- const a = b({
306
- pluginId: "@rozenite/tanstack-query-plugin"
307
- });
308
- H(a), M(t, a), R(t, a), k(t, a);
309
- };
310
- export {
311
- l as useTanStackQueryDevTools
312
- };