@tanstack/vue-query 5.94.4 → 5.94.5

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 (233) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +855 -0
  2. package/build/legacy/_tsup-dts-rollup.d.ts +855 -0
  3. package/build/legacy/devtools/devtools.cjs +258 -0
  4. package/build/legacy/devtools/devtools.cjs.map +1 -0
  5. package/build/legacy/devtools/devtools.d.cts +1 -0
  6. package/build/legacy/devtools/devtools.d.ts +1 -0
  7. package/build/legacy/devtools/devtools.js +238 -0
  8. package/build/legacy/devtools/devtools.js.map +1 -0
  9. package/build/legacy/devtools/utils.cjs +105 -0
  10. package/build/legacy/devtools/utils.cjs.map +1 -0
  11. package/build/legacy/devtools/utils.d.cts +5 -0
  12. package/build/legacy/devtools/utils.d.ts +5 -0
  13. package/build/legacy/devtools/utils.js +76 -0
  14. package/build/legacy/devtools/utils.js.map +1 -0
  15. package/build/legacy/index.cjs +75 -0
  16. package/build/legacy/index.cjs.map +1 -0
  17. package/build/legacy/index.d.cts +169 -0
  18. package/build/legacy/index.d.ts +169 -0
  19. package/build/legacy/index.js +34 -0
  20. package/build/legacy/index.js.map +1 -0
  21. package/build/legacy/infiniteQueryOptions.cjs +33 -0
  22. package/build/legacy/infiniteQueryOptions.cjs.map +1 -0
  23. package/build/legacy/infiniteQueryOptions.d.cts +3 -0
  24. package/build/legacy/infiniteQueryOptions.d.ts +3 -0
  25. package/build/legacy/infiniteQueryOptions.js +8 -0
  26. package/build/legacy/infiniteQueryOptions.js.map +1 -0
  27. package/build/legacy/mutationCache.cjs +40 -0
  28. package/build/legacy/mutationCache.cjs.map +1 -0
  29. package/build/legacy/mutationCache.d.cts +1 -0
  30. package/build/legacy/mutationCache.d.ts +1 -0
  31. package/build/legacy/mutationCache.js +15 -0
  32. package/build/legacy/mutationCache.js.map +1 -0
  33. package/build/legacy/queryCache.cjs +40 -0
  34. package/build/legacy/queryCache.cjs.map +1 -0
  35. package/build/legacy/queryCache.d.cts +1 -0
  36. package/build/legacy/queryCache.d.ts +1 -0
  37. package/build/legacy/queryCache.js +15 -0
  38. package/build/legacy/queryCache.js.map +1 -0
  39. package/build/legacy/queryClient.cjs +141 -0
  40. package/build/legacy/queryClient.cjs.map +1 -0
  41. package/build/legacy/queryClient.d.cts +1 -0
  42. package/build/legacy/queryClient.d.ts +1 -0
  43. package/build/legacy/queryClient.js +116 -0
  44. package/build/legacy/queryClient.js.map +1 -0
  45. package/build/legacy/queryOptions.cjs +33 -0
  46. package/build/legacy/queryOptions.cjs.map +1 -0
  47. package/build/legacy/queryOptions.d.cts +1 -0
  48. package/build/legacy/queryOptions.d.ts +1 -0
  49. package/build/legacy/queryOptions.js +8 -0
  50. package/build/legacy/queryOptions.js.map +1 -0
  51. package/build/legacy/types.cjs +19 -0
  52. package/build/legacy/types.cjs.map +1 -0
  53. package/build/legacy/types.d.cts +9 -0
  54. package/build/legacy/types.d.ts +9 -0
  55. package/build/legacy/types.js +1 -0
  56. package/build/legacy/types.js.map +1 -0
  57. package/build/legacy/useBaseQuery.cjs +143 -0
  58. package/build/legacy/useBaseQuery.cjs.map +1 -0
  59. package/build/legacy/useBaseQuery.d.cts +2 -0
  60. package/build/legacy/useBaseQuery.d.ts +2 -0
  61. package/build/legacy/useBaseQuery.js +128 -0
  62. package/build/legacy/useBaseQuery.js.map +1 -0
  63. package/build/legacy/useInfiniteQuery.cjs +39 -0
  64. package/build/legacy/useInfiniteQuery.cjs.map +1 -0
  65. package/build/legacy/useInfiniteQuery.d.cts +3 -0
  66. package/build/legacy/useInfiniteQuery.d.ts +3 -0
  67. package/build/legacy/useInfiniteQuery.js +14 -0
  68. package/build/legacy/useInfiniteQuery.js.map +1 -0
  69. package/build/legacy/useIsFetching.cjs +54 -0
  70. package/build/legacy/useIsFetching.cjs.map +1 -0
  71. package/build/legacy/useIsFetching.d.cts +2 -0
  72. package/build/legacy/useIsFetching.d.ts +2 -0
  73. package/build/legacy/useIsFetching.js +29 -0
  74. package/build/legacy/useIsFetching.js.map +1 -0
  75. package/build/legacy/useMutation.cjs +79 -0
  76. package/build/legacy/useMutation.cjs.map +1 -0
  77. package/build/legacy/useMutation.d.cts +3 -0
  78. package/build/legacy/useMutation.d.ts +3 -0
  79. package/build/legacy/useMutation.js +64 -0
  80. package/build/legacy/useMutation.js.map +1 -0
  81. package/build/legacy/useMutationState.cjs +82 -0
  82. package/build/legacy/useMutationState.cjs.map +1 -0
  83. package/build/legacy/useMutationState.d.cts +4 -0
  84. package/build/legacy/useMutationState.d.ts +4 -0
  85. package/build/legacy/useMutationState.js +63 -0
  86. package/build/legacy/useMutationState.js.map +1 -0
  87. package/build/legacy/useQueries.cjs +115 -0
  88. package/build/legacy/useQueries.cjs.map +1 -0
  89. package/build/legacy/useQueries.d.cts +3 -0
  90. package/build/legacy/useQueries.d.ts +3 -0
  91. package/build/legacy/useQueries.js +99 -0
  92. package/build/legacy/useQueries.js.map +1 -0
  93. package/build/legacy/useQuery.cjs +35 -0
  94. package/build/legacy/useQuery.cjs.map +1 -0
  95. package/build/legacy/useQuery.d.cts +6 -0
  96. package/build/legacy/useQuery.d.ts +6 -0
  97. package/build/legacy/useQuery.js +10 -0
  98. package/build/legacy/useQuery.js.map +1 -0
  99. package/build/legacy/useQueryClient.cjs +47 -0
  100. package/build/legacy/useQueryClient.cjs.map +1 -0
  101. package/build/legacy/useQueryClient.d.cts +1 -0
  102. package/build/legacy/useQueryClient.d.ts +1 -0
  103. package/build/legacy/useQueryClient.js +22 -0
  104. package/build/legacy/useQueryClient.js.map +1 -0
  105. package/build/legacy/utils.cjs +100 -0
  106. package/build/legacy/utils.cjs.map +1 -0
  107. package/build/legacy/utils.d.cts +5 -0
  108. package/build/legacy/utils.d.ts +5 -0
  109. package/build/legacy/utils.js +71 -0
  110. package/build/legacy/utils.js.map +1 -0
  111. package/build/legacy/vueQueryPlugin.cjs +105 -0
  112. package/build/legacy/vueQueryPlugin.cjs.map +1 -0
  113. package/build/legacy/vueQueryPlugin.d.cts +2 -0
  114. package/build/legacy/vueQueryPlugin.d.ts +2 -0
  115. package/build/legacy/vueQueryPlugin.js +80 -0
  116. package/build/legacy/vueQueryPlugin.js.map +1 -0
  117. package/build/modern/_tsup-dts-rollup.d.cts +855 -0
  118. package/build/modern/_tsup-dts-rollup.d.ts +855 -0
  119. package/build/modern/devtools/devtools.cjs +256 -0
  120. package/build/modern/devtools/devtools.cjs.map +1 -0
  121. package/build/modern/devtools/devtools.d.cts +1 -0
  122. package/build/modern/devtools/devtools.d.ts +1 -0
  123. package/build/modern/devtools/devtools.js +236 -0
  124. package/build/modern/devtools/devtools.js.map +1 -0
  125. package/build/modern/devtools/utils.cjs +105 -0
  126. package/build/modern/devtools/utils.cjs.map +1 -0
  127. package/build/modern/devtools/utils.d.cts +5 -0
  128. package/build/modern/devtools/utils.d.ts +5 -0
  129. package/build/modern/devtools/utils.js +76 -0
  130. package/build/modern/devtools/utils.js.map +1 -0
  131. package/build/modern/index.cjs +75 -0
  132. package/build/modern/index.cjs.map +1 -0
  133. package/build/modern/index.d.cts +169 -0
  134. package/build/modern/index.d.ts +169 -0
  135. package/build/modern/index.js +34 -0
  136. package/build/modern/index.js.map +1 -0
  137. package/build/modern/infiniteQueryOptions.cjs +33 -0
  138. package/build/modern/infiniteQueryOptions.cjs.map +1 -0
  139. package/build/modern/infiniteQueryOptions.d.cts +3 -0
  140. package/build/modern/infiniteQueryOptions.d.ts +3 -0
  141. package/build/modern/infiniteQueryOptions.js +8 -0
  142. package/build/modern/infiniteQueryOptions.js.map +1 -0
  143. package/build/modern/mutationCache.cjs +40 -0
  144. package/build/modern/mutationCache.cjs.map +1 -0
  145. package/build/modern/mutationCache.d.cts +1 -0
  146. package/build/modern/mutationCache.d.ts +1 -0
  147. package/build/modern/mutationCache.js +15 -0
  148. package/build/modern/mutationCache.js.map +1 -0
  149. package/build/modern/queryCache.cjs +40 -0
  150. package/build/modern/queryCache.cjs.map +1 -0
  151. package/build/modern/queryCache.d.cts +1 -0
  152. package/build/modern/queryCache.d.ts +1 -0
  153. package/build/modern/queryCache.js +15 -0
  154. package/build/modern/queryCache.js.map +1 -0
  155. package/build/modern/queryClient.cjs +141 -0
  156. package/build/modern/queryClient.cjs.map +1 -0
  157. package/build/modern/queryClient.d.cts +1 -0
  158. package/build/modern/queryClient.d.ts +1 -0
  159. package/build/modern/queryClient.js +116 -0
  160. package/build/modern/queryClient.js.map +1 -0
  161. package/build/modern/queryOptions.cjs +33 -0
  162. package/build/modern/queryOptions.cjs.map +1 -0
  163. package/build/modern/queryOptions.d.cts +1 -0
  164. package/build/modern/queryOptions.d.ts +1 -0
  165. package/build/modern/queryOptions.js +8 -0
  166. package/build/modern/queryOptions.js.map +1 -0
  167. package/build/modern/types.cjs +19 -0
  168. package/build/modern/types.cjs.map +1 -0
  169. package/build/modern/types.d.cts +9 -0
  170. package/build/modern/types.d.ts +9 -0
  171. package/build/modern/types.js +1 -0
  172. package/build/modern/types.js.map +1 -0
  173. package/build/modern/useBaseQuery.cjs +142 -0
  174. package/build/modern/useBaseQuery.cjs.map +1 -0
  175. package/build/modern/useBaseQuery.d.cts +2 -0
  176. package/build/modern/useBaseQuery.d.ts +2 -0
  177. package/build/modern/useBaseQuery.js +127 -0
  178. package/build/modern/useBaseQuery.js.map +1 -0
  179. package/build/modern/useInfiniteQuery.cjs +39 -0
  180. package/build/modern/useInfiniteQuery.cjs.map +1 -0
  181. package/build/modern/useInfiniteQuery.d.cts +3 -0
  182. package/build/modern/useInfiniteQuery.d.ts +3 -0
  183. package/build/modern/useInfiniteQuery.js +14 -0
  184. package/build/modern/useInfiniteQuery.js.map +1 -0
  185. package/build/modern/useIsFetching.cjs +54 -0
  186. package/build/modern/useIsFetching.cjs.map +1 -0
  187. package/build/modern/useIsFetching.d.cts +2 -0
  188. package/build/modern/useIsFetching.d.ts +2 -0
  189. package/build/modern/useIsFetching.js +29 -0
  190. package/build/modern/useIsFetching.js.map +1 -0
  191. package/build/modern/useMutation.cjs +79 -0
  192. package/build/modern/useMutation.cjs.map +1 -0
  193. package/build/modern/useMutation.d.cts +3 -0
  194. package/build/modern/useMutation.d.ts +3 -0
  195. package/build/modern/useMutation.js +64 -0
  196. package/build/modern/useMutation.js.map +1 -0
  197. package/build/modern/useMutationState.cjs +82 -0
  198. package/build/modern/useMutationState.cjs.map +1 -0
  199. package/build/modern/useMutationState.d.cts +4 -0
  200. package/build/modern/useMutationState.d.ts +4 -0
  201. package/build/modern/useMutationState.js +63 -0
  202. package/build/modern/useMutationState.js.map +1 -0
  203. package/build/modern/useQueries.cjs +114 -0
  204. package/build/modern/useQueries.cjs.map +1 -0
  205. package/build/modern/useQueries.d.cts +3 -0
  206. package/build/modern/useQueries.d.ts +3 -0
  207. package/build/modern/useQueries.js +98 -0
  208. package/build/modern/useQueries.js.map +1 -0
  209. package/build/modern/useQuery.cjs +35 -0
  210. package/build/modern/useQuery.cjs.map +1 -0
  211. package/build/modern/useQuery.d.cts +6 -0
  212. package/build/modern/useQuery.d.ts +6 -0
  213. package/build/modern/useQuery.js +10 -0
  214. package/build/modern/useQuery.js.map +1 -0
  215. package/build/modern/useQueryClient.cjs +47 -0
  216. package/build/modern/useQueryClient.cjs.map +1 -0
  217. package/build/modern/useQueryClient.d.cts +1 -0
  218. package/build/modern/useQueryClient.d.ts +1 -0
  219. package/build/modern/useQueryClient.js +22 -0
  220. package/build/modern/useQueryClient.js.map +1 -0
  221. package/build/modern/utils.cjs +100 -0
  222. package/build/modern/utils.cjs.map +1 -0
  223. package/build/modern/utils.d.cts +5 -0
  224. package/build/modern/utils.d.ts +5 -0
  225. package/build/modern/utils.js +71 -0
  226. package/build/modern/utils.js.map +1 -0
  227. package/build/modern/vueQueryPlugin.cjs +104 -0
  228. package/build/modern/vueQueryPlugin.cjs.map +1 -0
  229. package/build/modern/vueQueryPlugin.d.cts +2 -0
  230. package/build/modern/vueQueryPlugin.d.ts +2 -0
  231. package/build/modern/vueQueryPlugin.js +79 -0
  232. package/build/modern/vueQueryPlugin.js.map +1 -0
  233. package/package.json +2 -2
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/devtools/devtools.ts
21
+ var devtools_exports = {};
22
+ __export(devtools_exports, {
23
+ setupDevtools: () => setupDevtools
24
+ });
25
+ module.exports = __toCommonJS(devtools_exports);
26
+ var import_devtools_api = require("@vue/devtools-api");
27
+ var import_match_sorter_utils = require("@tanstack/match-sorter-utils");
28
+ var import_query_core = require("@tanstack/query-core");
29
+ var import_utils = require("./utils.cjs");
30
+ var pluginId = "vue-query";
31
+ var pluginName = "Vue Query";
32
+ function setupDevtools(app, queryClient) {
33
+ (0, import_devtools_api.setupDevtoolsPlugin)(
34
+ {
35
+ id: pluginId,
36
+ label: pluginName,
37
+ packageName: "vue-query",
38
+ homepage: "https://tanstack.com/query/latest",
39
+ logo: "https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg",
40
+ app,
41
+ settings: {
42
+ baseSort: {
43
+ type: "choice",
44
+ component: "button-group",
45
+ label: "Sort Cache Entries",
46
+ options: [
47
+ {
48
+ label: "ASC",
49
+ value: 1
50
+ },
51
+ {
52
+ label: "DESC",
53
+ value: -1
54
+ }
55
+ ],
56
+ defaultValue: 1
57
+ },
58
+ sortFn: {
59
+ type: "choice",
60
+ label: "Sort Function",
61
+ options: Object.keys(import_utils.sortFns).map((key) => ({
62
+ label: key,
63
+ value: key
64
+ })),
65
+ defaultValue: Object.keys(import_utils.sortFns)[0]
66
+ },
67
+ onlineMode: {
68
+ type: "choice",
69
+ component: "button-group",
70
+ label: "Online mode",
71
+ options: [
72
+ {
73
+ label: "Online",
74
+ value: 1
75
+ },
76
+ {
77
+ label: "Offline",
78
+ value: 0
79
+ }
80
+ ],
81
+ defaultValue: 1
82
+ }
83
+ }
84
+ },
85
+ (api) => {
86
+ const initialSettings = api.getSettings();
87
+ import_query_core.onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()));
88
+ const queryCache = queryClient.getQueryCache();
89
+ api.addInspector({
90
+ id: pluginId,
91
+ label: pluginName,
92
+ icon: "api",
93
+ nodeActions: [
94
+ {
95
+ icon: "file_download",
96
+ tooltip: "Refetch",
97
+ action: (queryHash) => {
98
+ queryCache.get(queryHash)?.fetch();
99
+ }
100
+ },
101
+ {
102
+ icon: "alarm",
103
+ tooltip: "Invalidate",
104
+ action: (queryHash) => {
105
+ const query = queryCache.get(queryHash);
106
+ queryClient.invalidateQueries(query);
107
+ }
108
+ },
109
+ {
110
+ icon: "settings_backup_restore",
111
+ tooltip: "Reset",
112
+ action: (queryHash) => {
113
+ queryCache.get(queryHash)?.reset();
114
+ }
115
+ },
116
+ {
117
+ icon: "delete",
118
+ tooltip: "Remove",
119
+ action: (queryHash) => {
120
+ const query = queryCache.get(queryHash);
121
+ queryCache.remove(query);
122
+ }
123
+ },
124
+ {
125
+ icon: "hourglass_empty",
126
+ tooltip: "Force loading",
127
+ action: (queryHash) => {
128
+ const query = queryCache.get(queryHash);
129
+ query.setState({
130
+ data: void 0,
131
+ status: "pending"
132
+ });
133
+ }
134
+ },
135
+ {
136
+ icon: "error_outline",
137
+ tooltip: "Force error",
138
+ action: (queryHash) => {
139
+ const query = queryCache.get(queryHash);
140
+ query.setState({
141
+ data: void 0,
142
+ status: "error",
143
+ error: new Error("Unknown error from devtools")
144
+ });
145
+ }
146
+ }
147
+ ]
148
+ });
149
+ api.addTimelineLayer({
150
+ id: pluginId,
151
+ label: pluginName,
152
+ color: 16767308
153
+ });
154
+ queryCache.subscribe((event) => {
155
+ api.sendInspectorTree(pluginId);
156
+ api.sendInspectorState(pluginId);
157
+ const queryEvents = [
158
+ "added",
159
+ "removed",
160
+ "updated"
161
+ ];
162
+ if (queryEvents.includes(event.type)) {
163
+ api.addTimelineEvent({
164
+ layerId: pluginId,
165
+ event: {
166
+ title: event.type,
167
+ subtitle: event.query.queryHash,
168
+ time: api.now(),
169
+ data: {
170
+ queryHash: event.query.queryHash,
171
+ ...event
172
+ }
173
+ }
174
+ });
175
+ }
176
+ });
177
+ api.on.setPluginSettings((payload) => {
178
+ if (payload.key === "onlineMode") {
179
+ import_query_core.onlineManager.setOnline(Boolean(payload.newValue));
180
+ }
181
+ });
182
+ api.on.getInspectorTree((payload) => {
183
+ if (payload.inspectorId === pluginId) {
184
+ const queries = queryCache.getAll();
185
+ const settings = api.getSettings();
186
+ const filtered = payload.filter ? queries.filter(
187
+ (item) => (0, import_match_sorter_utils.rankItem)(item.queryHash, payload.filter).passed
188
+ ) : [...queries];
189
+ const sorted = filtered.sort(
190
+ (a, b) => import_utils.sortFns[settings.sortFn](a, b) * settings.baseSort
191
+ );
192
+ const nodes = sorted.map((query) => {
193
+ const stateLabel = (0, import_utils.getQueryStateLabel)(query);
194
+ return {
195
+ id: query.queryHash,
196
+ label: query.queryHash,
197
+ tags: [
198
+ {
199
+ label: `${stateLabel} [${query.getObserversCount()}]`,
200
+ textColor: (0, import_utils.getQueryStatusFg)(query),
201
+ backgroundColor: (0, import_utils.getQueryStatusBg)(query)
202
+ }
203
+ ]
204
+ };
205
+ });
206
+ payload.rootNodes = nodes;
207
+ }
208
+ });
209
+ api.on.getInspectorState((payload) => {
210
+ if (payload.inspectorId === pluginId) {
211
+ const query = queryCache.get(payload.nodeId);
212
+ if (!query) {
213
+ return;
214
+ }
215
+ payload.state = {
216
+ " Query Details": [
217
+ {
218
+ key: "Query key",
219
+ value: query.queryHash
220
+ },
221
+ {
222
+ key: "Query status",
223
+ value: (0, import_utils.getQueryStateLabel)(query)
224
+ },
225
+ {
226
+ key: "Observers",
227
+ value: query.getObserversCount()
228
+ },
229
+ {
230
+ key: "Last Updated",
231
+ value: new Date(query.state.dataUpdatedAt).toLocaleTimeString()
232
+ }
233
+ ],
234
+ "Data Explorer": [
235
+ {
236
+ key: "Data",
237
+ value: query.state.data
238
+ }
239
+ ],
240
+ "Query Explorer": [
241
+ {
242
+ key: "Query",
243
+ value: query
244
+ }
245
+ ]
246
+ };
247
+ }
248
+ });
249
+ }
250
+ );
251
+ }
252
+ // Annotate the CommonJS export names for ESM import in node:
253
+ 0 && (module.exports = {
254
+ setupDevtools
255
+ });
256
+ //# sourceMappingURL=devtools.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport type { Query, QueryCacheNotifyEvent } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n const queryEvents: Array<QueryCacheNotifyEvent['type']> = [\n 'added',\n 'removed',\n 'updated',\n ]\n\n if (queryEvents.includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: Array<CustomInspectorNode> = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ export { setupDevtools } from '../_tsup-dts-rollup.cjs';
@@ -0,0 +1 @@
1
+ export { setupDevtools } from '../_tsup-dts-rollup.js';
@@ -0,0 +1,236 @@
1
+ // src/devtools/devtools.ts
2
+ import { setupDevtoolsPlugin } from "@vue/devtools-api";
3
+ import { rankItem } from "@tanstack/match-sorter-utils";
4
+ import { onlineManager } from "@tanstack/query-core";
5
+ import {
6
+ getQueryStateLabel,
7
+ getQueryStatusBg,
8
+ getQueryStatusFg,
9
+ sortFns
10
+ } from "./utils.js";
11
+ var pluginId = "vue-query";
12
+ var pluginName = "Vue Query";
13
+ function setupDevtools(app, queryClient) {
14
+ setupDevtoolsPlugin(
15
+ {
16
+ id: pluginId,
17
+ label: pluginName,
18
+ packageName: "vue-query",
19
+ homepage: "https://tanstack.com/query/latest",
20
+ logo: "https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg",
21
+ app,
22
+ settings: {
23
+ baseSort: {
24
+ type: "choice",
25
+ component: "button-group",
26
+ label: "Sort Cache Entries",
27
+ options: [
28
+ {
29
+ label: "ASC",
30
+ value: 1
31
+ },
32
+ {
33
+ label: "DESC",
34
+ value: -1
35
+ }
36
+ ],
37
+ defaultValue: 1
38
+ },
39
+ sortFn: {
40
+ type: "choice",
41
+ label: "Sort Function",
42
+ options: Object.keys(sortFns).map((key) => ({
43
+ label: key,
44
+ value: key
45
+ })),
46
+ defaultValue: Object.keys(sortFns)[0]
47
+ },
48
+ onlineMode: {
49
+ type: "choice",
50
+ component: "button-group",
51
+ label: "Online mode",
52
+ options: [
53
+ {
54
+ label: "Online",
55
+ value: 1
56
+ },
57
+ {
58
+ label: "Offline",
59
+ value: 0
60
+ }
61
+ ],
62
+ defaultValue: 1
63
+ }
64
+ }
65
+ },
66
+ (api) => {
67
+ const initialSettings = api.getSettings();
68
+ onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()));
69
+ const queryCache = queryClient.getQueryCache();
70
+ api.addInspector({
71
+ id: pluginId,
72
+ label: pluginName,
73
+ icon: "api",
74
+ nodeActions: [
75
+ {
76
+ icon: "file_download",
77
+ tooltip: "Refetch",
78
+ action: (queryHash) => {
79
+ queryCache.get(queryHash)?.fetch();
80
+ }
81
+ },
82
+ {
83
+ icon: "alarm",
84
+ tooltip: "Invalidate",
85
+ action: (queryHash) => {
86
+ const query = queryCache.get(queryHash);
87
+ queryClient.invalidateQueries(query);
88
+ }
89
+ },
90
+ {
91
+ icon: "settings_backup_restore",
92
+ tooltip: "Reset",
93
+ action: (queryHash) => {
94
+ queryCache.get(queryHash)?.reset();
95
+ }
96
+ },
97
+ {
98
+ icon: "delete",
99
+ tooltip: "Remove",
100
+ action: (queryHash) => {
101
+ const query = queryCache.get(queryHash);
102
+ queryCache.remove(query);
103
+ }
104
+ },
105
+ {
106
+ icon: "hourglass_empty",
107
+ tooltip: "Force loading",
108
+ action: (queryHash) => {
109
+ const query = queryCache.get(queryHash);
110
+ query.setState({
111
+ data: void 0,
112
+ status: "pending"
113
+ });
114
+ }
115
+ },
116
+ {
117
+ icon: "error_outline",
118
+ tooltip: "Force error",
119
+ action: (queryHash) => {
120
+ const query = queryCache.get(queryHash);
121
+ query.setState({
122
+ data: void 0,
123
+ status: "error",
124
+ error: new Error("Unknown error from devtools")
125
+ });
126
+ }
127
+ }
128
+ ]
129
+ });
130
+ api.addTimelineLayer({
131
+ id: pluginId,
132
+ label: pluginName,
133
+ color: 16767308
134
+ });
135
+ queryCache.subscribe((event) => {
136
+ api.sendInspectorTree(pluginId);
137
+ api.sendInspectorState(pluginId);
138
+ const queryEvents = [
139
+ "added",
140
+ "removed",
141
+ "updated"
142
+ ];
143
+ if (queryEvents.includes(event.type)) {
144
+ api.addTimelineEvent({
145
+ layerId: pluginId,
146
+ event: {
147
+ title: event.type,
148
+ subtitle: event.query.queryHash,
149
+ time: api.now(),
150
+ data: {
151
+ queryHash: event.query.queryHash,
152
+ ...event
153
+ }
154
+ }
155
+ });
156
+ }
157
+ });
158
+ api.on.setPluginSettings((payload) => {
159
+ if (payload.key === "onlineMode") {
160
+ onlineManager.setOnline(Boolean(payload.newValue));
161
+ }
162
+ });
163
+ api.on.getInspectorTree((payload) => {
164
+ if (payload.inspectorId === pluginId) {
165
+ const queries = queryCache.getAll();
166
+ const settings = api.getSettings();
167
+ const filtered = payload.filter ? queries.filter(
168
+ (item) => rankItem(item.queryHash, payload.filter).passed
169
+ ) : [...queries];
170
+ const sorted = filtered.sort(
171
+ (a, b) => sortFns[settings.sortFn](a, b) * settings.baseSort
172
+ );
173
+ const nodes = sorted.map((query) => {
174
+ const stateLabel = getQueryStateLabel(query);
175
+ return {
176
+ id: query.queryHash,
177
+ label: query.queryHash,
178
+ tags: [
179
+ {
180
+ label: `${stateLabel} [${query.getObserversCount()}]`,
181
+ textColor: getQueryStatusFg(query),
182
+ backgroundColor: getQueryStatusBg(query)
183
+ }
184
+ ]
185
+ };
186
+ });
187
+ payload.rootNodes = nodes;
188
+ }
189
+ });
190
+ api.on.getInspectorState((payload) => {
191
+ if (payload.inspectorId === pluginId) {
192
+ const query = queryCache.get(payload.nodeId);
193
+ if (!query) {
194
+ return;
195
+ }
196
+ payload.state = {
197
+ " Query Details": [
198
+ {
199
+ key: "Query key",
200
+ value: query.queryHash
201
+ },
202
+ {
203
+ key: "Query status",
204
+ value: getQueryStateLabel(query)
205
+ },
206
+ {
207
+ key: "Observers",
208
+ value: query.getObserversCount()
209
+ },
210
+ {
211
+ key: "Last Updated",
212
+ value: new Date(query.state.dataUpdatedAt).toLocaleTimeString()
213
+ }
214
+ ],
215
+ "Data Explorer": [
216
+ {
217
+ key: "Data",
218
+ value: query.state.data
219
+ }
220
+ ],
221
+ "Query Explorer": [
222
+ {
223
+ key: "Query",
224
+ value: query
225
+ }
226
+ ]
227
+ };
228
+ }
229
+ });
230
+ }
231
+ );
232
+ }
233
+ export {
234
+ setupDevtools
235
+ };
236
+ //# sourceMappingURL=devtools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport type { Query, QueryCacheNotifyEvent } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n const queryEvents: Array<QueryCacheNotifyEvent['type']> = [\n 'added',\n 'removed',\n 'updated',\n ]\n\n if (queryEvents.includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: Array<CustomInspectorNode> = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/devtools/utils.ts
21
+ var utils_exports = {};
22
+ __export(utils_exports, {
23
+ getQueryState: () => getQueryState,
24
+ getQueryStateLabel: () => getQueryStateLabel,
25
+ getQueryStatusBg: () => getQueryStatusBg,
26
+ getQueryStatusFg: () => getQueryStatusFg,
27
+ sortFns: () => sortFns
28
+ });
29
+ module.exports = __toCommonJS(utils_exports);
30
+ function getQueryState(query) {
31
+ if (query.state.fetchStatus === "fetching") {
32
+ return 0 /* Fetching */;
33
+ }
34
+ if (query.state.fetchStatus === "paused") {
35
+ return 4 /* Paused */;
36
+ }
37
+ if (!query.getObserversCount()) {
38
+ return 3 /* Inactive */;
39
+ }
40
+ if (query.isStale()) {
41
+ return 2 /* Stale */;
42
+ }
43
+ return 1 /* Fresh */;
44
+ }
45
+ function getQueryStateLabel(query) {
46
+ const queryState = getQueryState(query);
47
+ if (queryState === 0 /* Fetching */) {
48
+ return "fetching";
49
+ }
50
+ if (queryState === 4 /* Paused */) {
51
+ return "paused";
52
+ }
53
+ if (queryState === 2 /* Stale */) {
54
+ return "stale";
55
+ }
56
+ if (queryState === 3 /* Inactive */) {
57
+ return "inactive";
58
+ }
59
+ return "fresh";
60
+ }
61
+ function getQueryStatusFg(query) {
62
+ const queryState = getQueryState(query);
63
+ if (queryState === 2 /* Stale */) {
64
+ return 0;
65
+ }
66
+ return 16777215;
67
+ }
68
+ function getQueryStatusBg(query) {
69
+ const queryState = getQueryState(query);
70
+ if (queryState === 0 /* Fetching */) {
71
+ return 27647;
72
+ }
73
+ if (queryState === 4 /* Paused */) {
74
+ return 9193963;
75
+ }
76
+ if (queryState === 2 /* Stale */) {
77
+ return 16757248;
78
+ }
79
+ if (queryState === 3 /* Inactive */) {
80
+ return 4148832;
81
+ }
82
+ return 33575;
83
+ }
84
+ var queryHashSort = (a, b) => a.queryHash.localeCompare(b.queryHash);
85
+ var dateSort = (a, b) => a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1;
86
+ var statusAndDateSort = (a, b) => {
87
+ if (getQueryState(a) === getQueryState(b)) {
88
+ return dateSort(a, b);
89
+ }
90
+ return getQueryState(a) > getQueryState(b) ? 1 : -1;
91
+ };
92
+ var sortFns = {
93
+ "Status > Last Updated": statusAndDateSort,
94
+ "Query Hash": queryHashSort,
95
+ "Last Updated": dateSort
96
+ };
97
+ // Annotate the CommonJS export names for ESM import in node:
98
+ 0 && (module.exports = {
99
+ getQueryState,
100
+ getQueryStateLabel,
101
+ getQueryStatusBg,
102
+ getQueryStatusFg,
103
+ sortFns
104
+ });
105
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/devtools/utils.ts"],"sourcesContent":["import type { Query } from '@tanstack/query-core'\n\ntype SortFn = (a: Query, b: Query) => number\n\nenum QueryState {\n Fetching = 0,\n Fresh,\n Stale,\n Inactive,\n Paused,\n}\n\nexport function getQueryState(query: Query): QueryState {\n if (query.state.fetchStatus === 'fetching') {\n return QueryState.Fetching\n }\n if (query.state.fetchStatus === 'paused') {\n return QueryState.Paused\n }\n if (!query.getObserversCount()) {\n return QueryState.Inactive\n }\n if (query.isStale()) {\n return QueryState.Stale\n }\n\n return QueryState.Fresh\n}\n\nexport function getQueryStateLabel(query: Query): string {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Fetching) {\n return 'fetching'\n }\n if (queryState === QueryState.Paused) {\n return 'paused'\n }\n if (queryState === QueryState.Stale) {\n return 'stale'\n }\n if (queryState === QueryState.Inactive) {\n return 'inactive'\n }\n\n return 'fresh'\n}\n\nexport function getQueryStatusFg(query: Query): number {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Stale) {\n return 0x000000\n }\n\n return 0xffffff\n}\n\nexport function getQueryStatusBg(query: Query): number {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Fetching) {\n return 0x006bff\n }\n if (queryState === QueryState.Paused) {\n return 0x8c49eb\n }\n if (queryState === QueryState.Stale) {\n return 0xffb200\n }\n if (queryState === QueryState.Inactive) {\n return 0x3f4e60\n }\n\n return 0x008327\n}\n\nconst queryHashSort: SortFn = (a, b) => a.queryHash.localeCompare(b.queryHash)\n\nconst dateSort: SortFn = (a, b) =>\n a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1\n\nconst statusAndDateSort: SortFn = (a, b) => {\n if (getQueryState(a) === getQueryState(b)) {\n return dateSort(a, b)\n }\n\n return getQueryState(a) > getQueryState(b) ? 1 : -1\n}\n\nexport const sortFns: Record<string, SortFn> = {\n 'Status > Last Updated': statusAndDateSort,\n 'Query Hash': queryHashSort,\n 'Last Updated': dateSort,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYO,SAAS,cAAc,OAA0B;AACtD,MAAI,MAAM,MAAM,gBAAgB,YAAY;AAC1C,WAAO;AAAA,EACT;AACA,MAAI,MAAM,MAAM,gBAAgB,UAAU;AACxC,WAAO;AAAA,EACT;AACA,MAAI,CAAC,MAAM,kBAAkB,GAAG;AAC9B,WAAO;AAAA,EACT;AACA,MAAI,MAAM,QAAQ,GAAG;AACnB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,mBAAmB,OAAsB;AACvD,QAAM,aAAa,cAAc,KAAK;AAEtC,MAAI,eAAe,kBAAqB;AACtC,WAAO;AAAA,EACT;AACA,MAAI,eAAe,gBAAmB;AACpC,WAAO;AAAA,EACT;AACA,MAAI,eAAe,eAAkB;AACnC,WAAO;AAAA,EACT;AACA,MAAI,eAAe,kBAAqB;AACtC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,iBAAiB,OAAsB;AACrD,QAAM,aAAa,cAAc,KAAK;AAEtC,MAAI,eAAe,eAAkB;AACnC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,iBAAiB,OAAsB;AACrD,QAAM,aAAa,cAAc,KAAK;AAEtC,MAAI,eAAe,kBAAqB;AACtC,WAAO;AAAA,EACT;AACA,MAAI,eAAe,gBAAmB;AACpC,WAAO;AAAA,EACT;AACA,MAAI,eAAe,eAAkB;AACnC,WAAO;AAAA,EACT;AACA,MAAI,eAAe,kBAAqB;AACtC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,IAAM,gBAAwB,CAAC,GAAG,MAAM,EAAE,UAAU,cAAc,EAAE,SAAS;AAE7E,IAAM,WAAmB,CAAC,GAAG,MAC3B,EAAE,MAAM,gBAAgB,EAAE,MAAM,gBAAgB,IAAI;AAEtD,IAAM,oBAA4B,CAAC,GAAG,MAAM;AAC1C,MAAI,cAAc,CAAC,MAAM,cAAc,CAAC,GAAG;AACzC,WAAO,SAAS,GAAG,CAAC;AAAA,EACtB;AAEA,SAAO,cAAc,CAAC,IAAI,cAAc,CAAC,IAAI,IAAI;AACnD;AAEO,IAAM,UAAkC;AAAA,EAC7C,yBAAyB;AAAA,EACzB,cAAc;AAAA,EACd,gBAAgB;AAClB;","names":[]}
@@ -0,0 +1,5 @@
1
+ export { getQueryState } from '../_tsup-dts-rollup.cjs';
2
+ export { getQueryStateLabel } from '../_tsup-dts-rollup.cjs';
3
+ export { getQueryStatusFg } from '../_tsup-dts-rollup.cjs';
4
+ export { getQueryStatusBg } from '../_tsup-dts-rollup.cjs';
5
+ export { sortFns } from '../_tsup-dts-rollup.cjs';
@@ -0,0 +1,5 @@
1
+ export { getQueryState } from '../_tsup-dts-rollup.js';
2
+ export { getQueryStateLabel } from '../_tsup-dts-rollup.js';
3
+ export { getQueryStatusFg } from '../_tsup-dts-rollup.js';
4
+ export { getQueryStatusBg } from '../_tsup-dts-rollup.js';
5
+ export { sortFns } from '../_tsup-dts-rollup.js';