@rozenite/tanstack-query-plugin 2.1.0 → 2.3.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 (67) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/devtools/assets/{CXEL7IU7-BWccRGN3.js → CXEL7IU7-D2MCp9XC.js} +1 -1
  3. package/dist/devtools/assets/{tanstack-query-CbF_imft.js → tanstack-query-Bk8rHBM2.js} +12 -12
  4. package/dist/devtools/tanstack-query.html +1 -1
  5. package/dist/react-native/cjs/package.json +3 -0
  6. package/dist/react-native/cjs/react-native.js +12 -0
  7. package/dist/react-native/cjs/src/react-native/agent/tanstack-query-agent.js +376 -0
  8. package/dist/react-native/cjs/src/react-native/agent/useTanStackQueryAgentTools.js +98 -0
  9. package/dist/react-native/cjs/src/react-native/devtools-actions.js +161 -0
  10. package/dist/react-native/cjs/src/react-native/useHandleDevToolsMessages.js +26 -0
  11. package/dist/react-native/cjs/src/react-native/useHandleInitialData.js +26 -0
  12. package/dist/react-native/cjs/src/react-native/useSyncTanStackCache.js +203 -0
  13. package/dist/react-native/cjs/src/react-native/useTanStackQueryDevTools.js +20 -0
  14. package/dist/react-native/cjs/src/shared/agent-tools.js +197 -0
  15. package/dist/react-native/cjs/src/shared/dehydrate.js +35 -0
  16. package/dist/react-native/cjs/src/shared/messaging.js +2 -0
  17. package/dist/react-native/cjs/src/shared/types.js +2 -0
  18. package/dist/react-native/cjs/src/shared/useSyncOnlineStatus.js +23 -0
  19. package/dist/react-native/package.json +3 -0
  20. package/dist/react-native/react-native.d.ts +1 -0
  21. package/dist/react-native/react-native.js +10 -0
  22. package/dist/{sdk/index.d.ts → react-native/src/react-native/agent/tanstack-query-agent.d.ts} +2105 -1939
  23. package/dist/react-native/src/react-native/agent/tanstack-query-agent.js +370 -0
  24. package/dist/react-native/src/react-native/agent/useTanStackQueryAgentTools.d.ts +2 -0
  25. package/dist/react-native/src/react-native/agent/useTanStackQueryAgentTools.js +94 -0
  26. package/dist/react-native/src/react-native/devtools-actions.d.ts +115 -0
  27. package/dist/react-native/src/react-native/devtools-actions.js +157 -0
  28. package/dist/react-native/src/react-native/useHandleDevToolsMessages.d.ts +3 -0
  29. package/dist/react-native/src/react-native/useHandleDevToolsMessages.js +22 -0
  30. package/dist/react-native/src/react-native/useHandleInitialData.d.ts +3 -0
  31. package/dist/react-native/src/react-native/useHandleInitialData.js +22 -0
  32. package/dist/react-native/src/react-native/useSyncTanStackCache.d.ts +3 -0
  33. package/dist/react-native/src/react-native/useSyncTanStackCache.js +196 -0
  34. package/dist/react-native/src/react-native/useTanStackQueryDevTools.d.ts +2 -0
  35. package/dist/react-native/src/react-native/useTanStackQueryDevTools.js +16 -0
  36. package/dist/react-native/src/shared/agent-tools.d.ts +967 -0
  37. package/dist/react-native/src/shared/agent-tools.js +194 -0
  38. package/dist/react-native/src/shared/dehydrate.d.ts +6 -0
  39. package/dist/react-native/src/shared/dehydrate.js +28 -0
  40. package/dist/react-native/src/shared/messaging.d.ts +44 -0
  41. package/dist/react-native/src/shared/messaging.js +1 -0
  42. package/dist/react-native/src/shared/types.d.ts +25 -0
  43. package/dist/react-native/src/shared/types.js +1 -0
  44. package/dist/react-native/src/shared/useSyncOnlineStatus.d.ts +2 -0
  45. package/dist/react-native/src/shared/useSyncOnlineStatus.js +19 -0
  46. package/dist/rozenite.json +1 -1
  47. package/dist/sdk/package.json +3 -0
  48. package/dist/sdk/sdk.d.ts +812 -0
  49. package/dist/sdk/sdk.js +8 -0
  50. package/dist/sdk/src/react-native/devtools-actions.d.ts +115 -0
  51. package/dist/sdk/src/react-native/devtools-actions.js +161 -0
  52. package/dist/sdk/src/shared/agent-tools.d.ts +967 -0
  53. package/dist/sdk/src/shared/agent-tools.js +197 -0
  54. package/dist/sdk/src/shared/types.d.ts +25 -0
  55. package/dist/sdk/src/shared/types.js +2 -0
  56. package/package.json +18 -18
  57. package/react-native.ts +8 -1
  58. package/rozenite.config.ts +1 -0
  59. package/src/__tests__/release-bundle.test.ts +32 -0
  60. package/tsconfig.json +1 -3
  61. package/dist/react-native/chunks/useTanStackQueryDevTools.require.cjs +0 -1
  62. package/dist/react-native/chunks/useTanStackQueryDevTools.require.js +0 -895
  63. package/dist/react-native/index.cjs +0 -1
  64. package/dist/react-native/index.d.ts +0 -7
  65. package/dist/react-native/index.js +0 -6
  66. package/dist/sdk/index.cjs +0 -1
  67. package/dist/sdk/index.js +0 -199
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tanstackQueryTools = exports.tanstackQueryToolDefinitions = exports.TANSTACK_QUERY_AGENT_PLUGIN_ID = void 0;
4
+ const agent_shared_1 = require("@rozenite/agent-shared");
5
+ const agent_tools_js_1 = require("./src/shared/agent-tools.js");
6
+ Object.defineProperty(exports, "TANSTACK_QUERY_AGENT_PLUGIN_ID", { enumerable: true, get: function () { return agent_tools_js_1.TANSTACK_QUERY_AGENT_PLUGIN_ID; } });
7
+ Object.defineProperty(exports, "tanstackQueryToolDefinitions", { enumerable: true, get: function () { return agent_tools_js_1.tanstackQueryToolDefinitions; } });
8
+ exports.tanstackQueryTools = (0, agent_shared_1.defineAgentToolDescriptors)(agent_tools_js_1.TANSTACK_QUERY_AGENT_PLUGIN_ID, agent_tools_js_1.tanstackQueryToolDefinitions);
@@ -0,0 +1,115 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ import { DevToolsActionType } from '../shared/types';
3
+ type QueryScopedActionInput = {
4
+ type: Exclude<DevToolsActionType, 'CLEAR_MUTATION_CACHE' | 'CLEAR_QUERY_CACHE'>;
5
+ queryHash: string;
6
+ metadata?: {
7
+ data?: unknown;
8
+ };
9
+ };
10
+ type CacheScopedActionInput = {
11
+ type: 'CLEAR_MUTATION_CACHE' | 'CLEAR_QUERY_CACHE';
12
+ queryHash?: string;
13
+ };
14
+ export type TanStackQueryDevtoolsActionInput = QueryScopedActionInput | CacheScopedActionInput;
15
+ export declare const applyTanStackQueryDevtoolsAction: (queryClient: QueryClient, input: TanStackQueryDevtoolsActionInput) => Promise<{
16
+ applied: boolean;
17
+ action: "CLEAR_QUERY_CACHE";
18
+ cleared: boolean;
19
+ queryCountBefore: number;
20
+ queryCountAfter: number;
21
+ mutationCountBefore?: undefined;
22
+ mutationCountAfter?: undefined;
23
+ queryHash?: undefined;
24
+ } | {
25
+ applied: boolean;
26
+ action: "CLEAR_MUTATION_CACHE";
27
+ cleared: boolean;
28
+ mutationCountBefore: number;
29
+ mutationCountAfter: number;
30
+ queryCountBefore?: undefined;
31
+ queryCountAfter?: undefined;
32
+ queryHash?: undefined;
33
+ } | {
34
+ applied: boolean;
35
+ action: "SET_QUERY_DATA";
36
+ queryHash: string;
37
+ cleared?: undefined;
38
+ queryCountBefore?: undefined;
39
+ queryCountAfter?: undefined;
40
+ mutationCountBefore?: undefined;
41
+ mutationCountAfter?: undefined;
42
+ } | {
43
+ applied: boolean;
44
+ action: "TRIGGER_ERROR";
45
+ queryHash: string;
46
+ cleared?: undefined;
47
+ queryCountBefore?: undefined;
48
+ queryCountAfter?: undefined;
49
+ mutationCountBefore?: undefined;
50
+ mutationCountAfter?: undefined;
51
+ } | {
52
+ applied: boolean;
53
+ action: "RESTORE_ERROR";
54
+ queryHash: string;
55
+ cleared?: undefined;
56
+ queryCountBefore?: undefined;
57
+ queryCountAfter?: undefined;
58
+ mutationCountBefore?: undefined;
59
+ mutationCountAfter?: undefined;
60
+ } | {
61
+ applied: boolean;
62
+ action: "TRIGGER_LOADING";
63
+ queryHash: string;
64
+ cleared?: undefined;
65
+ queryCountBefore?: undefined;
66
+ queryCountAfter?: undefined;
67
+ mutationCountBefore?: undefined;
68
+ mutationCountAfter?: undefined;
69
+ } | {
70
+ applied: boolean;
71
+ action: "RESTORE_LOADING";
72
+ queryHash: string;
73
+ cleared?: undefined;
74
+ queryCountBefore?: undefined;
75
+ queryCountAfter?: undefined;
76
+ mutationCountBefore?: undefined;
77
+ mutationCountAfter?: undefined;
78
+ } | {
79
+ applied: boolean;
80
+ action: "RESET";
81
+ queryHash: string;
82
+ cleared?: undefined;
83
+ queryCountBefore?: undefined;
84
+ queryCountAfter?: undefined;
85
+ mutationCountBefore?: undefined;
86
+ mutationCountAfter?: undefined;
87
+ } | {
88
+ applied: boolean;
89
+ action: "REMOVE";
90
+ queryHash: string;
91
+ cleared?: undefined;
92
+ queryCountBefore?: undefined;
93
+ queryCountAfter?: undefined;
94
+ mutationCountBefore?: undefined;
95
+ mutationCountAfter?: undefined;
96
+ } | {
97
+ applied: boolean;
98
+ action: "REFETCH";
99
+ queryHash: string;
100
+ cleared?: undefined;
101
+ queryCountBefore?: undefined;
102
+ queryCountAfter?: undefined;
103
+ mutationCountBefore?: undefined;
104
+ mutationCountAfter?: undefined;
105
+ } | {
106
+ applied: boolean;
107
+ action: "INVALIDATE";
108
+ queryHash: string;
109
+ cleared?: undefined;
110
+ queryCountBefore?: undefined;
111
+ queryCountAfter?: undefined;
112
+ mutationCountBefore?: undefined;
113
+ mutationCountAfter?: undefined;
114
+ }>;
115
+ export {};
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyTanStackQueryDevtoolsAction = void 0;
4
+ const getActiveQuery = (queryClient, queryHash) => {
5
+ if (!queryHash) {
6
+ throw new Error('queryHash is required for this TanStack Query action.');
7
+ }
8
+ const activeQuery = queryClient.getQueryCache().get(queryHash);
9
+ if (!activeQuery) {
10
+ throw new Error(`No active query found for hash: ${queryHash}`);
11
+ }
12
+ return activeQuery;
13
+ };
14
+ const applyTanStackQueryDevtoolsAction = async (queryClient, input) => {
15
+ switch (input.type) {
16
+ case 'CLEAR_QUERY_CACHE': {
17
+ const queryCountBefore = queryClient.getQueryCache().getAll().length;
18
+ queryClient.getQueryCache().clear();
19
+ return {
20
+ applied: true,
21
+ action: input.type,
22
+ cleared: true,
23
+ queryCountBefore,
24
+ queryCountAfter: queryClient.getQueryCache().getAll().length,
25
+ };
26
+ }
27
+ case 'CLEAR_MUTATION_CACHE': {
28
+ const mutationCountBefore = queryClient.getMutationCache().getAll().length;
29
+ queryClient.getMutationCache().clear();
30
+ return {
31
+ applied: true,
32
+ action: input.type,
33
+ cleared: true,
34
+ mutationCountBefore,
35
+ mutationCountAfter: queryClient.getMutationCache().getAll().length,
36
+ };
37
+ }
38
+ case 'SET_QUERY_DATA': {
39
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
40
+ queryClient.setQueryData(activeQuery.queryKey, input.metadata?.data);
41
+ return {
42
+ applied: true,
43
+ action: input.type,
44
+ queryHash: activeQuery.queryHash,
45
+ };
46
+ }
47
+ case 'TRIGGER_ERROR': {
48
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
49
+ const previousQueryOptions = activeQuery.options;
50
+ const error = new Error('Unknown error from devtools');
51
+ activeQuery.setState({
52
+ status: 'error',
53
+ error,
54
+ fetchMeta: {
55
+ ...activeQuery.state.fetchMeta,
56
+ // @ts-expect-error This does exist
57
+ __previousQueryOptions: previousQueryOptions,
58
+ },
59
+ });
60
+ return {
61
+ applied: true,
62
+ action: input.type,
63
+ queryHash: activeQuery.queryHash,
64
+ };
65
+ }
66
+ case 'RESTORE_ERROR': {
67
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
68
+ await queryClient.resetQueries(activeQuery);
69
+ return {
70
+ applied: true,
71
+ action: input.type,
72
+ queryHash: activeQuery.queryHash,
73
+ };
74
+ }
75
+ case 'TRIGGER_LOADING': {
76
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
77
+ const previousQueryOptions = activeQuery.options;
78
+ void activeQuery.fetch({
79
+ ...previousQueryOptions,
80
+ queryFn: () => new Promise(() => {
81
+ // Never resolve - simulates perpetual loading
82
+ }),
83
+ gcTime: -1,
84
+ });
85
+ activeQuery.setState({
86
+ data: undefined,
87
+ status: 'pending',
88
+ fetchMeta: {
89
+ ...activeQuery.state.fetchMeta,
90
+ // @ts-expect-error This does exist
91
+ __previousQueryOptions: previousQueryOptions,
92
+ },
93
+ });
94
+ return {
95
+ applied: true,
96
+ action: input.type,
97
+ queryHash: activeQuery.queryHash,
98
+ };
99
+ }
100
+ case 'RESTORE_LOADING': {
101
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
102
+ const previousState = activeQuery.state;
103
+ const previousOptions = activeQuery.state.fetchMeta
104
+ ? activeQuery.state.fetchMeta.__previousQueryOptions
105
+ : null;
106
+ activeQuery.cancel({ silent: true });
107
+ activeQuery.setState({
108
+ ...previousState,
109
+ fetchStatus: 'idle',
110
+ fetchMeta: null,
111
+ });
112
+ if (previousOptions) {
113
+ void activeQuery.fetch(previousOptions);
114
+ }
115
+ return {
116
+ applied: true,
117
+ action: input.type,
118
+ queryHash: activeQuery.queryHash,
119
+ };
120
+ }
121
+ case 'RESET': {
122
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
123
+ await queryClient.resetQueries(activeQuery);
124
+ return {
125
+ applied: true,
126
+ action: input.type,
127
+ queryHash: activeQuery.queryHash,
128
+ };
129
+ }
130
+ case 'REMOVE': {
131
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
132
+ queryClient.removeQueries(activeQuery);
133
+ return {
134
+ applied: true,
135
+ action: input.type,
136
+ queryHash: activeQuery.queryHash,
137
+ };
138
+ }
139
+ case 'REFETCH': {
140
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
141
+ await activeQuery.fetch().catch(() => {
142
+ // Ignore errors from refetch in the agent/UI bridge.
143
+ });
144
+ return {
145
+ applied: true,
146
+ action: input.type,
147
+ queryHash: activeQuery.queryHash,
148
+ };
149
+ }
150
+ case 'INVALIDATE': {
151
+ const activeQuery = getActiveQuery(queryClient, input.queryHash);
152
+ await queryClient.invalidateQueries(activeQuery);
153
+ return {
154
+ applied: true,
155
+ action: input.type,
156
+ queryHash: activeQuery.queryHash,
157
+ };
158
+ }
159
+ }
160
+ };
161
+ exports.applyTanStackQueryDevtoolsAction = applyTanStackQueryDevtoolsAction;