@refinedev/devtools-internal 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +265 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +240 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -8
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,267 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
var
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var src_exports = {};
|
|
32
|
+
__export(src_exports, {
|
|
33
|
+
getTrace: () => getTrace,
|
|
34
|
+
getXRay: () => getXRay,
|
|
35
|
+
useQuerySubscription: () => useQuerySubscription
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(src_exports);
|
|
38
|
+
|
|
39
|
+
// src/get-trace.ts
|
|
40
|
+
var import_error_stack_parser = __toESM(require("error-stack-parser"));
|
|
41
|
+
|
|
42
|
+
// src/clean-stack.ts
|
|
43
|
+
var unrelatedFunctionName = "renderWithHooks";
|
|
44
|
+
var cleanStack = (stack) => {
|
|
45
|
+
const firstUnrelatedIndex = stack.findIndex(
|
|
46
|
+
(frame) => frame.functionName === unrelatedFunctionName
|
|
47
|
+
);
|
|
48
|
+
if (firstUnrelatedIndex !== -1) {
|
|
49
|
+
return stack.slice(0, firstUnrelatedIndex);
|
|
50
|
+
}
|
|
51
|
+
return stack;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// src/constants.ts
|
|
55
|
+
var REFINE_PACKAGE_FILEPATH_REGEXP = process.env.NODE_ENV !== "development" ? /node_modules\/refinedev\/(.*?)\// : /\/refine\/packages\/(.*?)\//;
|
|
56
|
+
|
|
57
|
+
// src/is-refine-stack.ts
|
|
58
|
+
var isRefineStack = (filename) => {
|
|
59
|
+
if (!filename)
|
|
60
|
+
return false;
|
|
61
|
+
const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);
|
|
62
|
+
return !!match;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// src/get-package-name-from-filename.ts
|
|
66
|
+
var getPackageNameFromFilename = (filename) => {
|
|
67
|
+
var _a;
|
|
68
|
+
if (!filename)
|
|
69
|
+
return;
|
|
70
|
+
const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);
|
|
71
|
+
const name = (_a = match == null ? void 0 : match.groups) == null ? void 0 : _a.name;
|
|
72
|
+
if (!name)
|
|
73
|
+
return;
|
|
74
|
+
return `@refinedev/${name}`;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// src/get-trace.ts
|
|
78
|
+
function getTrace(excludeFromTrace) {
|
|
79
|
+
if (process.env.NODE_ENV !== "development") {
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const error = new Error();
|
|
84
|
+
const stack = import_error_stack_parser.default.parse(error);
|
|
85
|
+
const clean = cleanStack(stack);
|
|
86
|
+
const traces = clean.map(
|
|
87
|
+
(frame) => ({
|
|
88
|
+
file: frame.fileName,
|
|
89
|
+
line: frame.lineNumber,
|
|
90
|
+
column: frame.columnNumber,
|
|
91
|
+
function: frame.functionName,
|
|
92
|
+
isRefine: isRefineStack(frame.fileName),
|
|
93
|
+
packageName: getPackageNameFromFilename(frame.fileName)
|
|
94
|
+
})
|
|
95
|
+
).filter((trace) => trace.function).filter((trace) => !(excludeFromTrace == null ? void 0 : excludeFromTrace.includes(trace.function ?? "")));
|
|
96
|
+
return traces.slice(1);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// src/get-resource-path.ts
|
|
103
|
+
var import_devtools_shared = require("@refinedev/devtools-shared");
|
|
104
|
+
var getResourcePath = (hookName) => {
|
|
105
|
+
if (import_devtools_shared.scopes[hookName] === "auth") {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
if (hookName === "useCan") {
|
|
109
|
+
return "key[1]";
|
|
110
|
+
}
|
|
111
|
+
if (import_devtools_shared.scopes[hookName] === "audit-log") {
|
|
112
|
+
if (hookName === "useLog") {
|
|
113
|
+
return "variables.resource";
|
|
114
|
+
}
|
|
115
|
+
return "key[1]";
|
|
116
|
+
}
|
|
117
|
+
if (import_devtools_shared.scopes[hookName] === "data") {
|
|
118
|
+
if (hookName === "useCustom" || hookName === "useCustomMutation") {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
switch (hookName) {
|
|
122
|
+
case "useList":
|
|
123
|
+
case "useInfiniteList":
|
|
124
|
+
case "useOne":
|
|
125
|
+
case "useMany":
|
|
126
|
+
return "key[2]";
|
|
127
|
+
case "useCreate":
|
|
128
|
+
case "useCreateMany":
|
|
129
|
+
case "useDelete":
|
|
130
|
+
case "useDeleteMany":
|
|
131
|
+
case "useUpdate":
|
|
132
|
+
case "useUpdateMany":
|
|
133
|
+
return "variables.resource";
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
// src/get-xray.ts
|
|
140
|
+
function getXRay(hookName, resourceName, excludeFromTrace) {
|
|
141
|
+
if (process.env.NODE_ENV !== "development") {
|
|
142
|
+
return {
|
|
143
|
+
hookName: "",
|
|
144
|
+
trace: [],
|
|
145
|
+
resourcePath: null
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const trace = getTrace(excludeFromTrace).slice(1);
|
|
149
|
+
const resourcePath = getResourcePath(hookName);
|
|
150
|
+
return {
|
|
151
|
+
hookName,
|
|
152
|
+
trace,
|
|
153
|
+
resourcePath,
|
|
154
|
+
resourceName
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// src/use-query-subscription.tsx
|
|
159
|
+
var import_devtools_shared3 = require("@refinedev/devtools-shared");
|
|
160
|
+
var import_react = __toESM(require("react"));
|
|
161
|
+
|
|
162
|
+
// src/listeners.ts
|
|
163
|
+
var import_devtools_shared2 = require("@refinedev/devtools-shared");
|
|
164
|
+
|
|
165
|
+
// src/create-identifier.ts
|
|
166
|
+
var createIdentifier = (key, trace) => {
|
|
167
|
+
const simpleTrace = trace == null ? void 0 : trace.map(
|
|
168
|
+
(t) => `${t.file}:${t.line}:${t.column}#${t.function}-${t.packageName}-${t.isRefine ? 1 : 0}`
|
|
169
|
+
);
|
|
170
|
+
const str = JSON.stringify([...key ?? [], ...simpleTrace ?? []]);
|
|
171
|
+
return str;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
// src/listeners.ts
|
|
175
|
+
var createMutationListener = (ws) => (mutation) => {
|
|
176
|
+
var _a;
|
|
177
|
+
if (!((_a = mutation == null ? void 0 : mutation.meta) == null ? void 0 : _a.trace))
|
|
178
|
+
return;
|
|
179
|
+
const meta = mutation == null ? void 0 : mutation.meta;
|
|
180
|
+
new Promise((resolve) => {
|
|
181
|
+
var _a2, _b;
|
|
182
|
+
(0, import_devtools_shared2.send)(ws, import_devtools_shared2.DevtoolsEvent.ACTIVITY, {
|
|
183
|
+
type: "mutation",
|
|
184
|
+
identifier: createIdentifier(
|
|
185
|
+
mutation == null ? void 0 : mutation.options.mutationKey,
|
|
186
|
+
(_a2 = mutation == null ? void 0 : mutation.meta) == null ? void 0 : _a2.trace
|
|
187
|
+
),
|
|
188
|
+
key: mutation == null ? void 0 : mutation.options.mutationKey,
|
|
189
|
+
status: mutation == null ? void 0 : mutation.state.status,
|
|
190
|
+
state: mutation == null ? void 0 : mutation.state,
|
|
191
|
+
variables: (_b = mutation == null ? void 0 : mutation.state) == null ? void 0 : _b.variables,
|
|
192
|
+
...meta
|
|
193
|
+
});
|
|
194
|
+
resolve();
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
var createQueryListener = (ws) => (query) => {
|
|
198
|
+
var _a;
|
|
199
|
+
if (!((_a = query == null ? void 0 : query.meta) == null ? void 0 : _a.trace))
|
|
200
|
+
return;
|
|
201
|
+
const meta = query == null ? void 0 : query.meta;
|
|
202
|
+
new Promise((resolve) => {
|
|
203
|
+
var _a2;
|
|
204
|
+
(0, import_devtools_shared2.send)(ws, import_devtools_shared2.DevtoolsEvent.ACTIVITY, {
|
|
205
|
+
type: "query",
|
|
206
|
+
identifier: createIdentifier(query.queryKey, (_a2 = query.meta) == null ? void 0 : _a2.trace),
|
|
207
|
+
key: query.queryKey,
|
|
208
|
+
status: query.state.status,
|
|
209
|
+
state: query.state,
|
|
210
|
+
...meta
|
|
211
|
+
});
|
|
212
|
+
resolve();
|
|
213
|
+
});
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
// src/use-query-subscription.tsx
|
|
217
|
+
var empty = {};
|
|
218
|
+
var noop = () => empty;
|
|
219
|
+
var useQuerySubscription = process.env.NODE_ENV !== "development" ? noop : (queryClient) => {
|
|
220
|
+
const { ws } = (0, import_react.useContext)(import_devtools_shared3.DevToolsContext);
|
|
221
|
+
const queryCacheSubscription = import_react.default.useRef(noop);
|
|
222
|
+
const mutationCacheSubscription = import_react.default.useRef(noop);
|
|
223
|
+
import_react.default.useEffect(() => {
|
|
224
|
+
if (!ws)
|
|
225
|
+
return () => 0;
|
|
226
|
+
const queryCache = queryClient.getQueryCache();
|
|
227
|
+
const queryListener = createQueryListener(ws);
|
|
228
|
+
queryCache.getAll().forEach(queryListener);
|
|
229
|
+
queryCacheSubscription.current = queryCache.subscribe(
|
|
230
|
+
({ query, type }) => (type === "added" || type === "updated") && queryListener(query)
|
|
231
|
+
);
|
|
232
|
+
return () => {
|
|
233
|
+
var _a;
|
|
234
|
+
(_a = queryCacheSubscription.current) == null ? void 0 : _a.call(queryCacheSubscription);
|
|
235
|
+
};
|
|
236
|
+
}, [ws, queryClient]);
|
|
237
|
+
import_react.default.useEffect(() => {
|
|
238
|
+
if (!ws)
|
|
239
|
+
return () => 0;
|
|
240
|
+
const mutationCache = queryClient.getMutationCache();
|
|
241
|
+
const mutationListener = createMutationListener(ws);
|
|
242
|
+
mutationCache.getAll().forEach(mutationListener);
|
|
243
|
+
mutationCacheSubscription.current = mutationCache.subscribe(
|
|
244
|
+
({ mutation, type }) => (type === "added" || type === "updated") && mutationListener(mutation)
|
|
245
|
+
);
|
|
246
|
+
return () => {
|
|
247
|
+
var _a;
|
|
248
|
+
(_a = mutationCacheSubscription.current) == null ? void 0 : _a.call(mutationCacheSubscription);
|
|
249
|
+
};
|
|
250
|
+
}, [ws, queryClient]);
|
|
251
|
+
import_react.default.useEffect(() => {
|
|
252
|
+
if (!ws)
|
|
253
|
+
return () => 0;
|
|
254
|
+
const cb = (0, import_devtools_shared3.receive)(
|
|
255
|
+
ws,
|
|
256
|
+
import_devtools_shared3.DevtoolsEvent.DEVTOOLS_INVALIDATE_QUERY_ACTION,
|
|
257
|
+
({ queryKey }) => {
|
|
258
|
+
if (queryKey) {
|
|
259
|
+
queryClient.invalidateQueries({ queryKey });
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
);
|
|
263
|
+
return cb;
|
|
264
|
+
}, [ws, queryClient]);
|
|
265
|
+
return {};
|
|
266
|
+
};
|
|
3
267
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/get-trace.ts","../src/clean-stack.ts","../src/constants.ts","../src/is-refine-stack.ts","../src/get-package-name-from-filename.ts","../src/get-resource-path.ts","../src/get-xray.ts","../src/use-query-subscription.tsx","../src/listeners.ts","../src/create-identifier.ts"],"sourcesContent":["export { getTrace } from \"./get-trace.js\";\nexport { getXRay } from \"./get-xray.js\";\nexport { useQuerySubscription } from \"./use-query-subscription.js\";\n","import ErrorStackParser from \"error-stack-parser\";\nimport { cleanStack } from \"./clean-stack\";\nimport { isRefineStack } from \"./is-refine-stack\";\nimport { getPackageNameFromFilename } from \"./get-package-name-from-filename\";\nimport type { TraceType } from \"@refinedev/devtools-shared\";\n\nexport function getTrace(excludeFromTrace?: string[]) {\n if (__DEV_CONDITION__ !== \"development\") {\n return [];\n }\n try {\n const error = new Error();\n const stack = ErrorStackParser.parse(error);\n const clean = cleanStack(stack);\n const traces = clean\n .map(\n (frame) =>\n ({\n file: frame.fileName,\n line: frame.lineNumber,\n column: frame.columnNumber,\n function: frame.functionName,\n isRefine: isRefineStack(frame.fileName),\n packageName: getPackageNameFromFilename(frame.fileName),\n }) as TraceType,\n )\n .filter((trace) => trace.function)\n .filter((trace) => !excludeFromTrace?.includes(trace.function ?? \"\"));\n return traces.slice(1);\n } catch (error) {\n return [];\n }\n}\n","import type { StackFrame } from \"error-stack-parser\";\n\nconst unrelatedFunctionName = \"renderWithHooks\";\n\nexport const cleanStack = (stack: StackFrame[]) => {\n const firstUnrelatedIndex = stack.findIndex(\n (frame) => frame.functionName === unrelatedFunctionName,\n );\n\n if (firstUnrelatedIndex !== -1) {\n return stack.slice(0, firstUnrelatedIndex);\n }\n\n return stack;\n};\n","export const REFINE_PACKAGE_FILEPATH_REGEXP =\n __DEV_CONDITION__ !== \"development\"\n ? /node_modules\\/refinedev\\/(.*?)\\//\n : /\\/refine\\/packages\\/(.*?)\\//;\n","import { REFINE_PACKAGE_FILEPATH_REGEXP } from \"./constants\";\n\nexport const isRefineStack = (filename?: string) => {\n if (!filename) return false;\n\n const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);\n\n return !!match;\n};\n","import { REFINE_PACKAGE_FILEPATH_REGEXP } from \"./constants\";\n\nexport const getPackageNameFromFilename = (filename?: string) => {\n if (!filename) return;\n\n const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);\n\n const name = match?.groups?.name;\n\n if (!name) return;\n\n return `@refinedev/${name}`;\n};\n","import {\n type DevtoolsEvent,\n type DevtoolsEventPayloads,\n type RefineHook,\n scopes,\n} from \"@refinedev/devtools-shared\";\n\nexport type Activity =\n DevtoolsEventPayloads[DevtoolsEvent.DEVTOOLS_ACTIVITY_UPDATE][\"updatedActivities\"][number];\n\nexport const getResourcePath = (hookName: RefineHook): string | null => {\n if (scopes[hookName] === \"auth\") {\n return null;\n }\n if (hookName === \"useCan\") {\n return \"key[1]\";\n }\n if (scopes[hookName] === \"audit-log\") {\n if (hookName === \"useLog\") {\n return \"variables.resource\";\n }\n return \"key[1]\";\n }\n if (scopes[hookName] === \"data\") {\n if (hookName === \"useCustom\" || hookName === \"useCustomMutation\") {\n return null;\n }\n switch (hookName) {\n case \"useList\":\n case \"useInfiniteList\":\n case \"useOne\":\n case \"useMany\":\n return \"key[2]\";\n case \"useCreate\":\n case \"useCreateMany\":\n case \"useDelete\":\n case \"useDeleteMany\":\n case \"useUpdate\":\n case \"useUpdateMany\":\n return \"variables.resource\";\n }\n }\n return null;\n};\n","import type { RefineHook, TraceType } from \"@refinedev/devtools-shared\";\nimport { getTrace } from \"./get-trace\";\nimport { getResourcePath } from \"./get-resource-path\";\n\nexport type XRayResponse = {\n hookName: string;\n trace: TraceType[];\n resourcePath: string | null;\n resourceName?: string;\n};\n\nexport function getXRay(\n hookName: string,\n resourceName?: string,\n excludeFromTrace?: string[],\n): XRayResponse {\n if (__DEV_CONDITION__ !== \"development\") {\n return {\n hookName: \"\",\n trace: [],\n resourcePath: null,\n };\n }\n const trace = getTrace(excludeFromTrace).slice(1);\n\n const resourcePath = getResourcePath(hookName as RefineHook);\n\n return {\n hookName,\n trace,\n resourcePath,\n resourceName,\n };\n}\n","import {\n DevToolsContext,\n DevtoolsEvent,\n receive,\n} from \"@refinedev/devtools-shared\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport React, { useContext } from \"react\";\nimport { createQueryListener, createMutationListener } from \"./listeners\";\n\nconst empty = {};\nconst noop = () => empty;\n\nexport const useQuerySubscription =\n __DEV_CONDITION__ !== \"development\"\n ? noop\n : (queryClient: QueryClient) => {\n const { ws } = useContext(DevToolsContext);\n const queryCacheSubscription = React.useRef<() => void>(noop);\n const mutationCacheSubscription = React.useRef<() => void>(noop);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const queryCache = queryClient.getQueryCache();\n\n const queryListener = createQueryListener(ws);\n\n queryCache.getAll().forEach(queryListener);\n\n queryCacheSubscription.current = queryCache.subscribe(\n ({ query, type }) =>\n (type === \"added\" || type === \"updated\") && queryListener(query),\n );\n\n return () => {\n queryCacheSubscription.current?.();\n };\n }, [ws, queryClient]);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const mutationCache = queryClient.getMutationCache();\n\n const mutationListener = createMutationListener(ws);\n\n mutationCache.getAll().forEach(mutationListener);\n\n mutationCacheSubscription.current = mutationCache.subscribe(\n ({ mutation, type }) =>\n (type === \"added\" || type === \"updated\") &&\n mutationListener(mutation),\n );\n\n return () => {\n mutationCacheSubscription.current?.();\n };\n }, [ws, queryClient]);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const cb = receive(\n ws,\n DevtoolsEvent.DEVTOOLS_INVALIDATE_QUERY_ACTION,\n ({ queryKey }) => {\n if (queryKey) {\n queryClient.invalidateQueries({ queryKey });\n }\n },\n );\n\n return cb;\n }, [ws, queryClient]);\n\n return {};\n };\n","import { DevtoolsEvent, send } from \"@refinedev/devtools-shared\";\nimport type { Mutation, Query } from \"@tanstack/react-query\";\n\nimport { createIdentifier } from \"./create-identifier\";\nimport type { XRayResponse } from \"./get-xray\";\n\nexport const createMutationListener =\n (ws: WebSocket) => (mutation?: Mutation) => {\n if (!mutation?.meta?.trace) return;\n\n const meta: XRayResponse = mutation?.meta as any;\n\n new Promise<void>((resolve) => {\n send(ws, DevtoolsEvent.ACTIVITY, {\n type: \"mutation\",\n identifier: createIdentifier(\n mutation?.options.mutationKey,\n mutation?.meta?.trace as any,\n ),\n key: mutation?.options.mutationKey as any,\n status: mutation?.state.status,\n state: mutation?.state,\n variables: mutation?.state?.variables,\n ...meta,\n });\n resolve();\n });\n };\n\nexport const createQueryListener = (ws: WebSocket) => (query: Query) => {\n if (!query?.meta?.trace) return;\n\n const meta: XRayResponse = query?.meta as any;\n\n new Promise<void>((resolve) => {\n send(ws, DevtoolsEvent.ACTIVITY, {\n type: \"query\",\n identifier: createIdentifier(query.queryKey, query.meta?.trace as any),\n key: query.queryKey as any,\n status: query.state.status,\n state: query.state,\n ...meta,\n });\n resolve();\n });\n};\n","import type { TraceType } from \"@refinedev/devtools-shared\";\nimport type { MutationKey, QueryKey } from \"@tanstack/react-query\";\n\nexport const createIdentifier = (\n key?: QueryKey | MutationKey,\n trace?: TraceType[],\n) => {\n const simpleTrace = trace?.map(\n (t) =>\n `${t.file}:${t.line}:${t.column}#${t.function}-${t.packageName}-${\n t.isRefine ? 1 : 0\n }`,\n );\n const str = JSON.stringify([...(key ?? []), ...(simpleTrace ?? [])]);\n\n return str;\n};\n"],"mappings":"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","names":["src_exports","__export","getTrace","getXRay","useQuerySubscription","__toCommonJS","import_error_stack_parser","unrelatedFunctionName","cleanStack","stack","firstUnrelatedIndex","frame","REFINE_PACKAGE_FILEPATH_REGEXP","isRefineStack","filename","REFINE_PACKAGE_FILEPATH_REGEXP","getPackageNameFromFilename","filename","_a","match","REFINE_PACKAGE_FILEPATH_REGEXP","name","getTrace","excludeFromTrace","error","stack","ErrorStackParser","cleanStack","frame","isRefineStack","getPackageNameFromFilename","trace","import_devtools_shared","getResourcePath","hookName","getXRay","hookName","resourceName","excludeFromTrace","trace","getTrace","resourcePath","getResourcePath","import_devtools_shared","import_react","import_devtools_shared","createIdentifier","key","trace","simpleTrace","t","createMutationListener","ws","mutation","_a","meta","resolve","_b","createIdentifier","createQueryListener","query","empty","noop","useQuerySubscription","queryClient","ws","queryCacheSubscription","React","mutationCacheSubscription","queryCache","queryListener","createQueryListener","query","type","_a","mutationCache","mutationListener","createMutationListener","mutation","queryKey"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/get-trace.ts","../src/clean-stack.ts","../src/constants.ts","../src/is-refine-stack.ts","../src/get-package-name-from-filename.ts","../src/get-resource-path.ts","../src/get-xray.ts","../src/use-query-subscription.tsx","../src/listeners.ts","../src/create-identifier.ts"],"sourcesContent":["export { getTrace } from \"./get-trace.js\";\nexport { getXRay } from \"./get-xray.js\";\nexport { useQuerySubscription } from \"./use-query-subscription.js\";\n","import ErrorStackParser from \"error-stack-parser\";\nimport { cleanStack } from \"./clean-stack\";\nimport { isRefineStack } from \"./is-refine-stack\";\nimport { getPackageNameFromFilename } from \"./get-package-name-from-filename\";\nimport type { TraceType } from \"@refinedev/devtools-shared\";\n\nexport function getTrace(excludeFromTrace?: string[]) {\n if (__DEV_CONDITION__ !== \"development\") {\n return [];\n }\n try {\n const error = new Error();\n const stack = ErrorStackParser.parse(error);\n const clean = cleanStack(stack);\n const traces = clean\n .map(\n (frame) =>\n ({\n file: frame.fileName,\n line: frame.lineNumber,\n column: frame.columnNumber,\n function: frame.functionName,\n isRefine: isRefineStack(frame.fileName),\n packageName: getPackageNameFromFilename(frame.fileName),\n }) as TraceType,\n )\n .filter((trace) => trace.function)\n .filter((trace) => !excludeFromTrace?.includes(trace.function ?? \"\"));\n return traces.slice(1);\n } catch (error) {\n return [];\n }\n}\n","import type { StackFrame } from \"error-stack-parser\";\n\nconst unrelatedFunctionName = \"renderWithHooks\";\n\nexport const cleanStack = (stack: StackFrame[]) => {\n const firstUnrelatedIndex = stack.findIndex(\n (frame) => frame.functionName === unrelatedFunctionName,\n );\n\n if (firstUnrelatedIndex !== -1) {\n return stack.slice(0, firstUnrelatedIndex);\n }\n\n return stack;\n};\n","export const REFINE_PACKAGE_FILEPATH_REGEXP =\n __DEV_CONDITION__ !== \"development\"\n ? /node_modules\\/refinedev\\/(.*?)\\//\n : /\\/refine\\/packages\\/(.*?)\\//;\n","import { REFINE_PACKAGE_FILEPATH_REGEXP } from \"./constants\";\n\nexport const isRefineStack = (filename?: string) => {\n if (!filename) return false;\n\n const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);\n\n return !!match;\n};\n","import { REFINE_PACKAGE_FILEPATH_REGEXP } from \"./constants\";\n\nexport const getPackageNameFromFilename = (filename?: string) => {\n if (!filename) return;\n\n const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);\n\n const name = match?.groups?.name;\n\n if (!name) return;\n\n return `@refinedev/${name}`;\n};\n","import {\n type DevtoolsEvent,\n type DevtoolsEventPayloads,\n type RefineHook,\n scopes,\n} from \"@refinedev/devtools-shared\";\n\nexport type Activity =\n DevtoolsEventPayloads[DevtoolsEvent.DEVTOOLS_ACTIVITY_UPDATE][\"updatedActivities\"][number];\n\nexport const getResourcePath = (hookName: RefineHook): string | null => {\n if (scopes[hookName] === \"auth\") {\n return null;\n }\n if (hookName === \"useCan\") {\n return \"key[1]\";\n }\n if (scopes[hookName] === \"audit-log\") {\n if (hookName === \"useLog\") {\n return \"variables.resource\";\n }\n return \"key[1]\";\n }\n if (scopes[hookName] === \"data\") {\n if (hookName === \"useCustom\" || hookName === \"useCustomMutation\") {\n return null;\n }\n switch (hookName) {\n case \"useList\":\n case \"useInfiniteList\":\n case \"useOne\":\n case \"useMany\":\n return \"key[2]\";\n case \"useCreate\":\n case \"useCreateMany\":\n case \"useDelete\":\n case \"useDeleteMany\":\n case \"useUpdate\":\n case \"useUpdateMany\":\n return \"variables.resource\";\n }\n }\n return null;\n};\n","import type { RefineHook, TraceType } from \"@refinedev/devtools-shared\";\nimport { getTrace } from \"./get-trace\";\nimport { getResourcePath } from \"./get-resource-path\";\n\nexport type XRayResponse = {\n hookName: string;\n trace: TraceType[];\n resourcePath: string | null;\n resourceName?: string;\n};\n\nexport function getXRay(\n hookName: string,\n resourceName?: string,\n excludeFromTrace?: string[],\n): XRayResponse {\n if (__DEV_CONDITION__ !== \"development\") {\n return {\n hookName: \"\",\n trace: [],\n resourcePath: null,\n };\n }\n const trace = getTrace(excludeFromTrace).slice(1);\n\n const resourcePath = getResourcePath(hookName as RefineHook);\n\n return {\n hookName,\n trace,\n resourcePath,\n resourceName,\n };\n}\n","import {\n DevToolsContext,\n DevtoolsEvent,\n receive,\n} from \"@refinedev/devtools-shared\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport React, { useContext } from \"react\";\nimport { createQueryListener, createMutationListener } from \"./listeners\";\n\nconst empty = {};\nconst noop = () => empty;\n\nexport const useQuerySubscription =\n __DEV_CONDITION__ !== \"development\"\n ? noop\n : (queryClient: QueryClient) => {\n const { ws } = useContext(DevToolsContext);\n const queryCacheSubscription = React.useRef<() => void>(noop);\n const mutationCacheSubscription = React.useRef<() => void>(noop);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const queryCache = queryClient.getQueryCache();\n\n const queryListener = createQueryListener(ws);\n\n queryCache.getAll().forEach(queryListener);\n\n queryCacheSubscription.current = queryCache.subscribe(\n ({ query, type }) =>\n (type === \"added\" || type === \"updated\") && queryListener(query),\n );\n\n return () => {\n queryCacheSubscription.current?.();\n };\n }, [ws, queryClient]);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const mutationCache = queryClient.getMutationCache();\n\n const mutationListener = createMutationListener(ws);\n\n mutationCache.getAll().forEach(mutationListener);\n\n mutationCacheSubscription.current = mutationCache.subscribe(\n ({ mutation, type }) =>\n (type === \"added\" || type === \"updated\") &&\n mutationListener(mutation),\n );\n\n return () => {\n mutationCacheSubscription.current?.();\n };\n }, [ws, queryClient]);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const cb = receive(\n ws,\n DevtoolsEvent.DEVTOOLS_INVALIDATE_QUERY_ACTION,\n ({ queryKey }) => {\n if (queryKey) {\n queryClient.invalidateQueries({ queryKey });\n }\n },\n );\n\n return cb;\n }, [ws, queryClient]);\n\n return {};\n };\n","import { DevtoolsEvent, send } from \"@refinedev/devtools-shared\";\nimport type { Mutation, Query } from \"@tanstack/react-query\";\n\nimport { createIdentifier } from \"./create-identifier\";\nimport type { XRayResponse } from \"./get-xray\";\n\nexport const createMutationListener =\n (ws: WebSocket) => (mutation?: Mutation) => {\n if (!mutation?.meta?.trace) return;\n\n const meta: XRayResponse = mutation?.meta as any;\n\n new Promise<void>((resolve) => {\n send(ws, DevtoolsEvent.ACTIVITY, {\n type: \"mutation\",\n identifier: createIdentifier(\n mutation?.options.mutationKey,\n mutation?.meta?.trace as any,\n ),\n key: mutation?.options.mutationKey as any,\n status: mutation?.state.status,\n state: mutation?.state,\n variables: mutation?.state?.variables,\n ...meta,\n });\n resolve();\n });\n };\n\nexport const createQueryListener = (ws: WebSocket) => (query: Query) => {\n if (!query?.meta?.trace) return;\n\n const meta: XRayResponse = query?.meta as any;\n\n new Promise<void>((resolve) => {\n send(ws, DevtoolsEvent.ACTIVITY, {\n type: \"query\",\n identifier: createIdentifier(query.queryKey, query.meta?.trace as any),\n key: query.queryKey as any,\n status: query.state.status,\n state: query.state,\n ...meta,\n });\n resolve();\n });\n};\n","import type { TraceType } from \"@refinedev/devtools-shared\";\nimport type { MutationKey, QueryKey } from \"@tanstack/react-query\";\n\nexport const createIdentifier = (\n key?: QueryKey | MutationKey,\n trace?: TraceType[],\n) => {\n const simpleTrace = trace?.map(\n (t) =>\n `${t.file}:${t.line}:${t.column}#${t.function}-${t.packageName}-${\n t.isRefine ? 1 : 0\n }`,\n );\n const str = JSON.stringify([...(key ?? []), ...(simpleTrace ?? [])]);\n\n return str;\n};\n"],"mappings":"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","names":["ErrorStackParser","import_devtools_shared","import_devtools_shared","_a","React"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,242 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
// src/get-trace.ts
|
|
4
|
+
import ErrorStackParser from "error-stack-parser";
|
|
5
|
+
|
|
6
|
+
// src/clean-stack.ts
|
|
7
|
+
var unrelatedFunctionName = "renderWithHooks";
|
|
8
|
+
var cleanStack = (stack) => {
|
|
9
|
+
const firstUnrelatedIndex = stack.findIndex(
|
|
10
|
+
(frame) => frame.functionName === unrelatedFunctionName
|
|
11
|
+
);
|
|
12
|
+
if (firstUnrelatedIndex !== -1) {
|
|
13
|
+
return stack.slice(0, firstUnrelatedIndex);
|
|
14
|
+
}
|
|
15
|
+
return stack;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// src/constants.ts
|
|
19
|
+
var REFINE_PACKAGE_FILEPATH_REGEXP = process.env.NODE_ENV !== "development" ? /node_modules\/refinedev\/(.*?)\// : /\/refine\/packages\/(.*?)\//;
|
|
20
|
+
|
|
21
|
+
// src/is-refine-stack.ts
|
|
22
|
+
var isRefineStack = (filename) => {
|
|
23
|
+
if (!filename)
|
|
24
|
+
return false;
|
|
25
|
+
const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);
|
|
26
|
+
return !!match;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// src/get-package-name-from-filename.ts
|
|
30
|
+
var getPackageNameFromFilename = (filename) => {
|
|
31
|
+
var _a;
|
|
32
|
+
if (!filename)
|
|
33
|
+
return;
|
|
34
|
+
const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);
|
|
35
|
+
const name = (_a = match == null ? void 0 : match.groups) == null ? void 0 : _a.name;
|
|
36
|
+
if (!name)
|
|
37
|
+
return;
|
|
38
|
+
return `@refinedev/${name}`;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// src/get-trace.ts
|
|
42
|
+
function getTrace(excludeFromTrace) {
|
|
43
|
+
if (process.env.NODE_ENV !== "development") {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const error = new Error();
|
|
48
|
+
const stack = ErrorStackParser.parse(error);
|
|
49
|
+
const clean = cleanStack(stack);
|
|
50
|
+
const traces = clean.map(
|
|
51
|
+
(frame) => ({
|
|
52
|
+
file: frame.fileName,
|
|
53
|
+
line: frame.lineNumber,
|
|
54
|
+
column: frame.columnNumber,
|
|
55
|
+
function: frame.functionName,
|
|
56
|
+
isRefine: isRefineStack(frame.fileName),
|
|
57
|
+
packageName: getPackageNameFromFilename(frame.fileName)
|
|
58
|
+
})
|
|
59
|
+
).filter((trace) => trace.function).filter((trace) => !(excludeFromTrace == null ? void 0 : excludeFromTrace.includes(trace.function ?? "")));
|
|
60
|
+
return traces.slice(1);
|
|
61
|
+
} catch (error) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// src/get-resource-path.ts
|
|
67
|
+
import {
|
|
68
|
+
scopes
|
|
69
|
+
} from "@refinedev/devtools-shared";
|
|
70
|
+
var getResourcePath = (hookName) => {
|
|
71
|
+
if (scopes[hookName] === "auth") {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
if (hookName === "useCan") {
|
|
75
|
+
return "key[1]";
|
|
76
|
+
}
|
|
77
|
+
if (scopes[hookName] === "audit-log") {
|
|
78
|
+
if (hookName === "useLog") {
|
|
79
|
+
return "variables.resource";
|
|
80
|
+
}
|
|
81
|
+
return "key[1]";
|
|
82
|
+
}
|
|
83
|
+
if (scopes[hookName] === "data") {
|
|
84
|
+
if (hookName === "useCustom" || hookName === "useCustomMutation") {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
switch (hookName) {
|
|
88
|
+
case "useList":
|
|
89
|
+
case "useInfiniteList":
|
|
90
|
+
case "useOne":
|
|
91
|
+
case "useMany":
|
|
92
|
+
return "key[2]";
|
|
93
|
+
case "useCreate":
|
|
94
|
+
case "useCreateMany":
|
|
95
|
+
case "useDelete":
|
|
96
|
+
case "useDeleteMany":
|
|
97
|
+
case "useUpdate":
|
|
98
|
+
case "useUpdateMany":
|
|
99
|
+
return "variables.resource";
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
// src/get-xray.ts
|
|
106
|
+
function getXRay(hookName, resourceName, excludeFromTrace) {
|
|
107
|
+
if (process.env.NODE_ENV !== "development") {
|
|
108
|
+
return {
|
|
109
|
+
hookName: "",
|
|
110
|
+
trace: [],
|
|
111
|
+
resourcePath: null
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const trace = getTrace(excludeFromTrace).slice(1);
|
|
115
|
+
const resourcePath = getResourcePath(hookName);
|
|
116
|
+
return {
|
|
117
|
+
hookName,
|
|
118
|
+
trace,
|
|
119
|
+
resourcePath,
|
|
120
|
+
resourceName
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// src/use-query-subscription.tsx
|
|
125
|
+
import {
|
|
126
|
+
DevToolsContext,
|
|
127
|
+
DevtoolsEvent as DevtoolsEvent2,
|
|
128
|
+
receive
|
|
129
|
+
} from "@refinedev/devtools-shared";
|
|
130
|
+
import React, { useContext } from "react";
|
|
131
|
+
|
|
132
|
+
// src/listeners.ts
|
|
133
|
+
import { DevtoolsEvent, send } from "@refinedev/devtools-shared";
|
|
134
|
+
|
|
135
|
+
// src/create-identifier.ts
|
|
136
|
+
var createIdentifier = (key, trace) => {
|
|
137
|
+
const simpleTrace = trace == null ? void 0 : trace.map(
|
|
138
|
+
(t) => `${t.file}:${t.line}:${t.column}#${t.function}-${t.packageName}-${t.isRefine ? 1 : 0}`
|
|
139
|
+
);
|
|
140
|
+
const str = JSON.stringify([...key ?? [], ...simpleTrace ?? []]);
|
|
141
|
+
return str;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
// src/listeners.ts
|
|
145
|
+
var createMutationListener = (ws) => (mutation) => {
|
|
146
|
+
var _a;
|
|
147
|
+
if (!((_a = mutation == null ? void 0 : mutation.meta) == null ? void 0 : _a.trace))
|
|
148
|
+
return;
|
|
149
|
+
const meta = mutation == null ? void 0 : mutation.meta;
|
|
150
|
+
new Promise((resolve) => {
|
|
151
|
+
var _a2, _b;
|
|
152
|
+
send(ws, DevtoolsEvent.ACTIVITY, {
|
|
153
|
+
type: "mutation",
|
|
154
|
+
identifier: createIdentifier(
|
|
155
|
+
mutation == null ? void 0 : mutation.options.mutationKey,
|
|
156
|
+
(_a2 = mutation == null ? void 0 : mutation.meta) == null ? void 0 : _a2.trace
|
|
157
|
+
),
|
|
158
|
+
key: mutation == null ? void 0 : mutation.options.mutationKey,
|
|
159
|
+
status: mutation == null ? void 0 : mutation.state.status,
|
|
160
|
+
state: mutation == null ? void 0 : mutation.state,
|
|
161
|
+
variables: (_b = mutation == null ? void 0 : mutation.state) == null ? void 0 : _b.variables,
|
|
162
|
+
...meta
|
|
163
|
+
});
|
|
164
|
+
resolve();
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
var createQueryListener = (ws) => (query) => {
|
|
168
|
+
var _a;
|
|
169
|
+
if (!((_a = query == null ? void 0 : query.meta) == null ? void 0 : _a.trace))
|
|
170
|
+
return;
|
|
171
|
+
const meta = query == null ? void 0 : query.meta;
|
|
172
|
+
new Promise((resolve) => {
|
|
173
|
+
var _a2;
|
|
174
|
+
send(ws, DevtoolsEvent.ACTIVITY, {
|
|
175
|
+
type: "query",
|
|
176
|
+
identifier: createIdentifier(query.queryKey, (_a2 = query.meta) == null ? void 0 : _a2.trace),
|
|
177
|
+
key: query.queryKey,
|
|
178
|
+
status: query.state.status,
|
|
179
|
+
state: query.state,
|
|
180
|
+
...meta
|
|
181
|
+
});
|
|
182
|
+
resolve();
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
// src/use-query-subscription.tsx
|
|
187
|
+
var empty = {};
|
|
188
|
+
var noop = () => empty;
|
|
189
|
+
var useQuerySubscription = process.env.NODE_ENV !== "development" ? noop : (queryClient) => {
|
|
190
|
+
const { ws } = useContext(DevToolsContext);
|
|
191
|
+
const queryCacheSubscription = React.useRef(noop);
|
|
192
|
+
const mutationCacheSubscription = React.useRef(noop);
|
|
193
|
+
React.useEffect(() => {
|
|
194
|
+
if (!ws)
|
|
195
|
+
return () => 0;
|
|
196
|
+
const queryCache = queryClient.getQueryCache();
|
|
197
|
+
const queryListener = createQueryListener(ws);
|
|
198
|
+
queryCache.getAll().forEach(queryListener);
|
|
199
|
+
queryCacheSubscription.current = queryCache.subscribe(
|
|
200
|
+
({ query, type }) => (type === "added" || type === "updated") && queryListener(query)
|
|
201
|
+
);
|
|
202
|
+
return () => {
|
|
203
|
+
var _a;
|
|
204
|
+
(_a = queryCacheSubscription.current) == null ? void 0 : _a.call(queryCacheSubscription);
|
|
205
|
+
};
|
|
206
|
+
}, [ws, queryClient]);
|
|
207
|
+
React.useEffect(() => {
|
|
208
|
+
if (!ws)
|
|
209
|
+
return () => 0;
|
|
210
|
+
const mutationCache = queryClient.getMutationCache();
|
|
211
|
+
const mutationListener = createMutationListener(ws);
|
|
212
|
+
mutationCache.getAll().forEach(mutationListener);
|
|
213
|
+
mutationCacheSubscription.current = mutationCache.subscribe(
|
|
214
|
+
({ mutation, type }) => (type === "added" || type === "updated") && mutationListener(mutation)
|
|
215
|
+
);
|
|
216
|
+
return () => {
|
|
217
|
+
var _a;
|
|
218
|
+
(_a = mutationCacheSubscription.current) == null ? void 0 : _a.call(mutationCacheSubscription);
|
|
219
|
+
};
|
|
220
|
+
}, [ws, queryClient]);
|
|
221
|
+
React.useEffect(() => {
|
|
222
|
+
if (!ws)
|
|
223
|
+
return () => 0;
|
|
224
|
+
const cb = receive(
|
|
225
|
+
ws,
|
|
226
|
+
DevtoolsEvent2.DEVTOOLS_INVALIDATE_QUERY_ACTION,
|
|
227
|
+
({ queryKey }) => {
|
|
228
|
+
if (queryKey) {
|
|
229
|
+
queryClient.invalidateQueries({ queryKey });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
);
|
|
233
|
+
return cb;
|
|
234
|
+
}, [ws, queryClient]);
|
|
235
|
+
return {};
|
|
236
|
+
};
|
|
237
|
+
export {
|
|
238
|
+
getTrace,
|
|
239
|
+
getXRay,
|
|
240
|
+
useQuerySubscription
|
|
241
|
+
};
|
|
3
242
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/get-trace.ts","../src/clean-stack.ts","../src/constants.ts","../src/is-refine-stack.ts","../src/get-package-name-from-filename.ts","../src/get-resource-path.ts","../src/get-xray.ts","../src/use-query-subscription.tsx","../src/listeners.ts","../src/create-identifier.ts"],"sourcesContent":["import ErrorStackParser from \"error-stack-parser\";\nimport { cleanStack } from \"./clean-stack\";\nimport { isRefineStack } from \"./is-refine-stack\";\nimport { getPackageNameFromFilename } from \"./get-package-name-from-filename\";\nimport type { TraceType } from \"@refinedev/devtools-shared\";\n\nexport function getTrace(excludeFromTrace?: string[]) {\n if (__DEV_CONDITION__ !== \"development\") {\n return [];\n }\n try {\n const error = new Error();\n const stack = ErrorStackParser.parse(error);\n const clean = cleanStack(stack);\n const traces = clean\n .map(\n (frame) =>\n ({\n file: frame.fileName,\n line: frame.lineNumber,\n column: frame.columnNumber,\n function: frame.functionName,\n isRefine: isRefineStack(frame.fileName),\n packageName: getPackageNameFromFilename(frame.fileName),\n }) as TraceType,\n )\n .filter((trace) => trace.function)\n .filter((trace) => !excludeFromTrace?.includes(trace.function ?? \"\"));\n return traces.slice(1);\n } catch (error) {\n return [];\n }\n}\n","import type { StackFrame } from \"error-stack-parser\";\n\nconst unrelatedFunctionName = \"renderWithHooks\";\n\nexport const cleanStack = (stack: StackFrame[]) => {\n const firstUnrelatedIndex = stack.findIndex(\n (frame) => frame.functionName === unrelatedFunctionName,\n );\n\n if (firstUnrelatedIndex !== -1) {\n return stack.slice(0, firstUnrelatedIndex);\n }\n\n return stack;\n};\n","export const REFINE_PACKAGE_FILEPATH_REGEXP =\n __DEV_CONDITION__ !== \"development\"\n ? /node_modules\\/refinedev\\/(.*?)\\//\n : /\\/refine\\/packages\\/(.*?)\\//;\n","import { REFINE_PACKAGE_FILEPATH_REGEXP } from \"./constants\";\n\nexport const isRefineStack = (filename?: string) => {\n if (!filename) return false;\n\n const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);\n\n return !!match;\n};\n","import { REFINE_PACKAGE_FILEPATH_REGEXP } from \"./constants\";\n\nexport const getPackageNameFromFilename = (filename?: string) => {\n if (!filename) return;\n\n const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);\n\n const name = match?.groups?.name;\n\n if (!name) return;\n\n return `@refinedev/${name}`;\n};\n","import {\n type DevtoolsEvent,\n type DevtoolsEventPayloads,\n type RefineHook,\n scopes,\n} from \"@refinedev/devtools-shared\";\n\nexport type Activity =\n DevtoolsEventPayloads[DevtoolsEvent.DEVTOOLS_ACTIVITY_UPDATE][\"updatedActivities\"][number];\n\nexport const getResourcePath = (hookName: RefineHook): string | null => {\n if (scopes[hookName] === \"auth\") {\n return null;\n }\n if (hookName === \"useCan\") {\n return \"key[1]\";\n }\n if (scopes[hookName] === \"audit-log\") {\n if (hookName === \"useLog\") {\n return \"variables.resource\";\n }\n return \"key[1]\";\n }\n if (scopes[hookName] === \"data\") {\n if (hookName === \"useCustom\" || hookName === \"useCustomMutation\") {\n return null;\n }\n switch (hookName) {\n case \"useList\":\n case \"useInfiniteList\":\n case \"useOne\":\n case \"useMany\":\n return \"key[2]\";\n case \"useCreate\":\n case \"useCreateMany\":\n case \"useDelete\":\n case \"useDeleteMany\":\n case \"useUpdate\":\n case \"useUpdateMany\":\n return \"variables.resource\";\n }\n }\n return null;\n};\n","import type { RefineHook, TraceType } from \"@refinedev/devtools-shared\";\nimport { getTrace } from \"./get-trace\";\nimport { getResourcePath } from \"./get-resource-path\";\n\nexport type XRayResponse = {\n hookName: string;\n trace: TraceType[];\n resourcePath: string | null;\n resourceName?: string;\n};\n\nexport function getXRay(\n hookName: string,\n resourceName?: string,\n excludeFromTrace?: string[],\n): XRayResponse {\n if (__DEV_CONDITION__ !== \"development\") {\n return {\n hookName: \"\",\n trace: [],\n resourcePath: null,\n };\n }\n const trace = getTrace(excludeFromTrace).slice(1);\n\n const resourcePath = getResourcePath(hookName as RefineHook);\n\n return {\n hookName,\n trace,\n resourcePath,\n resourceName,\n };\n}\n","import {\n DevToolsContext,\n DevtoolsEvent,\n receive,\n} from \"@refinedev/devtools-shared\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport React, { useContext } from \"react\";\nimport { createQueryListener, createMutationListener } from \"./listeners\";\n\nconst empty = {};\nconst noop = () => empty;\n\nexport const useQuerySubscription =\n __DEV_CONDITION__ !== \"development\"\n ? noop\n : (queryClient: QueryClient) => {\n const { ws } = useContext(DevToolsContext);\n const queryCacheSubscription = React.useRef<() => void>(noop);\n const mutationCacheSubscription = React.useRef<() => void>(noop);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const queryCache = queryClient.getQueryCache();\n\n const queryListener = createQueryListener(ws);\n\n queryCache.getAll().forEach(queryListener);\n\n queryCacheSubscription.current = queryCache.subscribe(\n ({ query, type }) =>\n (type === \"added\" || type === \"updated\") && queryListener(query),\n );\n\n return () => {\n queryCacheSubscription.current?.();\n };\n }, [ws, queryClient]);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const mutationCache = queryClient.getMutationCache();\n\n const mutationListener = createMutationListener(ws);\n\n mutationCache.getAll().forEach(mutationListener);\n\n mutationCacheSubscription.current = mutationCache.subscribe(\n ({ mutation, type }) =>\n (type === \"added\" || type === \"updated\") &&\n mutationListener(mutation),\n );\n\n return () => {\n mutationCacheSubscription.current?.();\n };\n }, [ws, queryClient]);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const cb = receive(\n ws,\n DevtoolsEvent.DEVTOOLS_INVALIDATE_QUERY_ACTION,\n ({ queryKey }) => {\n if (queryKey) {\n queryClient.invalidateQueries({ queryKey });\n }\n },\n );\n\n return cb;\n }, [ws, queryClient]);\n\n return {};\n };\n","import { DevtoolsEvent, send } from \"@refinedev/devtools-shared\";\nimport type { Mutation, Query } from \"@tanstack/react-query\";\n\nimport { createIdentifier } from \"./create-identifier\";\nimport type { XRayResponse } from \"./get-xray\";\n\nexport const createMutationListener =\n (ws: WebSocket) => (mutation?: Mutation) => {\n if (!mutation?.meta?.trace) return;\n\n const meta: XRayResponse = mutation?.meta as any;\n\n new Promise<void>((resolve) => {\n send(ws, DevtoolsEvent.ACTIVITY, {\n type: \"mutation\",\n identifier: createIdentifier(\n mutation?.options.mutationKey,\n mutation?.meta?.trace as any,\n ),\n key: mutation?.options.mutationKey as any,\n status: mutation?.state.status,\n state: mutation?.state,\n variables: mutation?.state?.variables,\n ...meta,\n });\n resolve();\n });\n };\n\nexport const createQueryListener = (ws: WebSocket) => (query: Query) => {\n if (!query?.meta?.trace) return;\n\n const meta: XRayResponse = query?.meta as any;\n\n new Promise<void>((resolve) => {\n send(ws, DevtoolsEvent.ACTIVITY, {\n type: \"query\",\n identifier: createIdentifier(query.queryKey, query.meta?.trace as any),\n key: query.queryKey as any,\n status: query.state.status,\n state: query.state,\n ...meta,\n });\n resolve();\n });\n};\n","import type { TraceType } from \"@refinedev/devtools-shared\";\nimport type { MutationKey, QueryKey } from \"@tanstack/react-query\";\n\nexport const createIdentifier = (\n key?: QueryKey | MutationKey,\n trace?: TraceType[],\n) => {\n const simpleTrace = trace?.map(\n (t) =>\n `${t.file}:${t.line}:${t.column}#${t.function}-${t.packageName}-${\n t.isRefine ? 1 : 0\n }`,\n );\n const str = JSON.stringify([...(key ?? []), ...(simpleTrace ?? [])]);\n\n return str;\n};\n"],"mappings":"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","names":["ErrorStackParser","unrelatedFunctionName","cleanStack","stack","firstUnrelatedIndex","frame","REFINE_PACKAGE_FILEPATH_REGEXP","isRefineStack","filename","REFINE_PACKAGE_FILEPATH_REGEXP","getPackageNameFromFilename","filename","_a","match","REFINE_PACKAGE_FILEPATH_REGEXP","name","getTrace","excludeFromTrace","error","stack","ErrorStackParser","cleanStack","frame","isRefineStack","getPackageNameFromFilename","trace","scopes","getResourcePath","hookName","getXRay","hookName","resourceName","excludeFromTrace","trace","getTrace","resourcePath","getResourcePath","DevToolsContext","DevtoolsEvent","receive","React","useContext","DevtoolsEvent","send","createIdentifier","key","trace","simpleTrace","t","createMutationListener","ws","mutation","_a","meta","resolve","_b","send","DevtoolsEvent","createIdentifier","createQueryListener","query","empty","noop","useQuerySubscription","queryClient","ws","useContext","DevToolsContext","queryCacheSubscription","React","mutationCacheSubscription","queryCache","queryListener","createQueryListener","query","type","_a","mutationCache","mutationListener","createMutationListener","mutation","receive","DevtoolsEvent","queryKey"]}
|
|
1
|
+
{"version":3,"sources":["../src/get-trace.ts","../src/clean-stack.ts","../src/constants.ts","../src/is-refine-stack.ts","../src/get-package-name-from-filename.ts","../src/get-resource-path.ts","../src/get-xray.ts","../src/use-query-subscription.tsx","../src/listeners.ts","../src/create-identifier.ts"],"sourcesContent":["import ErrorStackParser from \"error-stack-parser\";\nimport { cleanStack } from \"./clean-stack\";\nimport { isRefineStack } from \"./is-refine-stack\";\nimport { getPackageNameFromFilename } from \"./get-package-name-from-filename\";\nimport type { TraceType } from \"@refinedev/devtools-shared\";\n\nexport function getTrace(excludeFromTrace?: string[]) {\n if (__DEV_CONDITION__ !== \"development\") {\n return [];\n }\n try {\n const error = new Error();\n const stack = ErrorStackParser.parse(error);\n const clean = cleanStack(stack);\n const traces = clean\n .map(\n (frame) =>\n ({\n file: frame.fileName,\n line: frame.lineNumber,\n column: frame.columnNumber,\n function: frame.functionName,\n isRefine: isRefineStack(frame.fileName),\n packageName: getPackageNameFromFilename(frame.fileName),\n }) as TraceType,\n )\n .filter((trace) => trace.function)\n .filter((trace) => !excludeFromTrace?.includes(trace.function ?? \"\"));\n return traces.slice(1);\n } catch (error) {\n return [];\n }\n}\n","import type { StackFrame } from \"error-stack-parser\";\n\nconst unrelatedFunctionName = \"renderWithHooks\";\n\nexport const cleanStack = (stack: StackFrame[]) => {\n const firstUnrelatedIndex = stack.findIndex(\n (frame) => frame.functionName === unrelatedFunctionName,\n );\n\n if (firstUnrelatedIndex !== -1) {\n return stack.slice(0, firstUnrelatedIndex);\n }\n\n return stack;\n};\n","export const REFINE_PACKAGE_FILEPATH_REGEXP =\n __DEV_CONDITION__ !== \"development\"\n ? /node_modules\\/refinedev\\/(.*?)\\//\n : /\\/refine\\/packages\\/(.*?)\\//;\n","import { REFINE_PACKAGE_FILEPATH_REGEXP } from \"./constants\";\n\nexport const isRefineStack = (filename?: string) => {\n if (!filename) return false;\n\n const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);\n\n return !!match;\n};\n","import { REFINE_PACKAGE_FILEPATH_REGEXP } from \"./constants\";\n\nexport const getPackageNameFromFilename = (filename?: string) => {\n if (!filename) return;\n\n const match = filename.match(REFINE_PACKAGE_FILEPATH_REGEXP);\n\n const name = match?.groups?.name;\n\n if (!name) return;\n\n return `@refinedev/${name}`;\n};\n","import {\n type DevtoolsEvent,\n type DevtoolsEventPayloads,\n type RefineHook,\n scopes,\n} from \"@refinedev/devtools-shared\";\n\nexport type Activity =\n DevtoolsEventPayloads[DevtoolsEvent.DEVTOOLS_ACTIVITY_UPDATE][\"updatedActivities\"][number];\n\nexport const getResourcePath = (hookName: RefineHook): string | null => {\n if (scopes[hookName] === \"auth\") {\n return null;\n }\n if (hookName === \"useCan\") {\n return \"key[1]\";\n }\n if (scopes[hookName] === \"audit-log\") {\n if (hookName === \"useLog\") {\n return \"variables.resource\";\n }\n return \"key[1]\";\n }\n if (scopes[hookName] === \"data\") {\n if (hookName === \"useCustom\" || hookName === \"useCustomMutation\") {\n return null;\n }\n switch (hookName) {\n case \"useList\":\n case \"useInfiniteList\":\n case \"useOne\":\n case \"useMany\":\n return \"key[2]\";\n case \"useCreate\":\n case \"useCreateMany\":\n case \"useDelete\":\n case \"useDeleteMany\":\n case \"useUpdate\":\n case \"useUpdateMany\":\n return \"variables.resource\";\n }\n }\n return null;\n};\n","import type { RefineHook, TraceType } from \"@refinedev/devtools-shared\";\nimport { getTrace } from \"./get-trace\";\nimport { getResourcePath } from \"./get-resource-path\";\n\nexport type XRayResponse = {\n hookName: string;\n trace: TraceType[];\n resourcePath: string | null;\n resourceName?: string;\n};\n\nexport function getXRay(\n hookName: string,\n resourceName?: string,\n excludeFromTrace?: string[],\n): XRayResponse {\n if (__DEV_CONDITION__ !== \"development\") {\n return {\n hookName: \"\",\n trace: [],\n resourcePath: null,\n };\n }\n const trace = getTrace(excludeFromTrace).slice(1);\n\n const resourcePath = getResourcePath(hookName as RefineHook);\n\n return {\n hookName,\n trace,\n resourcePath,\n resourceName,\n };\n}\n","import {\n DevToolsContext,\n DevtoolsEvent,\n receive,\n} from \"@refinedev/devtools-shared\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport React, { useContext } from \"react\";\nimport { createQueryListener, createMutationListener } from \"./listeners\";\n\nconst empty = {};\nconst noop = () => empty;\n\nexport const useQuerySubscription =\n __DEV_CONDITION__ !== \"development\"\n ? noop\n : (queryClient: QueryClient) => {\n const { ws } = useContext(DevToolsContext);\n const queryCacheSubscription = React.useRef<() => void>(noop);\n const mutationCacheSubscription = React.useRef<() => void>(noop);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const queryCache = queryClient.getQueryCache();\n\n const queryListener = createQueryListener(ws);\n\n queryCache.getAll().forEach(queryListener);\n\n queryCacheSubscription.current = queryCache.subscribe(\n ({ query, type }) =>\n (type === \"added\" || type === \"updated\") && queryListener(query),\n );\n\n return () => {\n queryCacheSubscription.current?.();\n };\n }, [ws, queryClient]);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const mutationCache = queryClient.getMutationCache();\n\n const mutationListener = createMutationListener(ws);\n\n mutationCache.getAll().forEach(mutationListener);\n\n mutationCacheSubscription.current = mutationCache.subscribe(\n ({ mutation, type }) =>\n (type === \"added\" || type === \"updated\") &&\n mutationListener(mutation),\n );\n\n return () => {\n mutationCacheSubscription.current?.();\n };\n }, [ws, queryClient]);\n\n React.useEffect(() => {\n if (!ws) return () => 0;\n\n const cb = receive(\n ws,\n DevtoolsEvent.DEVTOOLS_INVALIDATE_QUERY_ACTION,\n ({ queryKey }) => {\n if (queryKey) {\n queryClient.invalidateQueries({ queryKey });\n }\n },\n );\n\n return cb;\n }, [ws, queryClient]);\n\n return {};\n };\n","import { DevtoolsEvent, send } from \"@refinedev/devtools-shared\";\nimport type { Mutation, Query } from \"@tanstack/react-query\";\n\nimport { createIdentifier } from \"./create-identifier\";\nimport type { XRayResponse } from \"./get-xray\";\n\nexport const createMutationListener =\n (ws: WebSocket) => (mutation?: Mutation) => {\n if (!mutation?.meta?.trace) return;\n\n const meta: XRayResponse = mutation?.meta as any;\n\n new Promise<void>((resolve) => {\n send(ws, DevtoolsEvent.ACTIVITY, {\n type: \"mutation\",\n identifier: createIdentifier(\n mutation?.options.mutationKey,\n mutation?.meta?.trace as any,\n ),\n key: mutation?.options.mutationKey as any,\n status: mutation?.state.status,\n state: mutation?.state,\n variables: mutation?.state?.variables,\n ...meta,\n });\n resolve();\n });\n };\n\nexport const createQueryListener = (ws: WebSocket) => (query: Query) => {\n if (!query?.meta?.trace) return;\n\n const meta: XRayResponse = query?.meta as any;\n\n new Promise<void>((resolve) => {\n send(ws, DevtoolsEvent.ACTIVITY, {\n type: \"query\",\n identifier: createIdentifier(query.queryKey, query.meta?.trace as any),\n key: query.queryKey as any,\n status: query.state.status,\n state: query.state,\n ...meta,\n });\n resolve();\n });\n};\n","import type { TraceType } from \"@refinedev/devtools-shared\";\nimport type { MutationKey, QueryKey } from \"@tanstack/react-query\";\n\nexport const createIdentifier = (\n key?: QueryKey | MutationKey,\n trace?: TraceType[],\n) => {\n const simpleTrace = trace?.map(\n (t) =>\n `${t.file}:${t.line}:${t.column}#${t.function}-${t.packageName}-${\n t.isRefine ? 1 : 0\n }`,\n );\n const str = JSON.stringify([...(key ?? []), ...(simpleTrace ?? [])]);\n\n return str;\n};\n"],"mappings":"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","names":["DevtoolsEvent","_a","DevtoolsEvent"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refinedev/devtools-internal",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "refine devtools offers a set of features from monitoring to quickly prototyping a UI.",
|
|
6
6
|
"repository": {
|
|
@@ -31,22 +31,21 @@
|
|
|
31
31
|
"src"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@refinedev/devtools-shared": "2.0.
|
|
34
|
+
"@refinedev/devtools-shared": "2.0.2",
|
|
35
35
|
"@tanstack/react-query": "^5.81.5",
|
|
36
36
|
"error-stack-parser": "^2.1.4"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@esbuild-plugins/node-resolve": "^0.1.4",
|
|
40
40
|
"@testing-library/jest-dom": "^6.6.3",
|
|
41
|
-
"@types/jest": "^29.2.4",
|
|
42
41
|
"@types/node": "^20",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
42
|
+
"@vitest/ui": "^2.1.8",
|
|
43
|
+
"jsdom": "^25.0.1",
|
|
45
44
|
"react-router": "^7.0.2",
|
|
46
|
-
"ts-jest": "^29.1.2",
|
|
47
45
|
"tslib": "^2.6.2",
|
|
48
46
|
"tsup": "^6.7.0",
|
|
49
|
-
"typescript": "^5.8.3"
|
|
47
|
+
"typescript": "^5.8.3",
|
|
48
|
+
"vitest": "^2.1.8"
|
|
50
49
|
},
|
|
51
50
|
"peerDependencies": {
|
|
52
51
|
"@types/react": "^18.0.0 || ^19.0.0",
|
|
@@ -65,7 +64,7 @@
|
|
|
65
64
|
"build": "tsup && node ../shared/generate-declarations.js",
|
|
66
65
|
"dev": "tsup --watch",
|
|
67
66
|
"publint": "publint --strict=true --level=suggestion",
|
|
68
|
-
"test": "
|
|
67
|
+
"test": "vitest run --passWithNoTests",
|
|
69
68
|
"types": "node ../shared/generate-declarations.js"
|
|
70
69
|
}
|
|
71
70
|
}
|