@refinedev/devtools-internal 1.1.7 → 1.1.9
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/get-trace.d.cts +1 -1
- package/dist/get-trace.d.cts.map +1 -1
- package/dist/get-trace.d.mts +1 -1
- package/dist/get-trace.d.mts.map +1 -1
- package/dist/get-trace.d.ts +1 -1
- package/dist/get-trace.d.ts.map +1 -1
- package/dist/get-xray.d.cts +2 -1
- package/dist/get-xray.d.cts.map +1 -1
- package/dist/get-xray.d.mts +2 -1
- package/dist/get-xray.d.mts.map +1 -1
- package/dist/get-xray.d.ts +2 -1
- package/dist/get-xray.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/listeners.d.cts.map +1 -1
- package/dist/listeners.d.mts.map +1 -1
- package/dist/listeners.d.ts.map +1 -1
- package/dist/use-query-subscription.d.cts.map +1 -1
- package/dist/use-query-subscription.d.mts.map +1 -1
- package/dist/use-query-subscription.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/get-trace.ts +3 -2
- package/src/get-xray.ts +9 -2
- package/src/index.ts +3 -3
- package/src/listeners.ts +0 -18
- package/src/use-query-subscription.tsx +21 -1
package/dist/get-trace.d.cts
CHANGED
package/dist/get-trace.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-trace.d.ts","sourceRoot":"","sources":["../src/get-trace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,wBAAgB,QAAQ,
|
|
1
|
+
{"version":3,"file":"get-trace.d.ts","sourceRoot":"","sources":["../src/get-trace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,wBAAgB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,eA0BnD"}
|
package/dist/get-trace.d.mts
CHANGED
package/dist/get-trace.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-trace.d.ts","sourceRoot":"","sources":["../src/get-trace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,wBAAgB,QAAQ,
|
|
1
|
+
{"version":3,"file":"get-trace.d.ts","sourceRoot":"","sources":["../src/get-trace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,wBAAgB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,eA0BnD"}
|
package/dist/get-trace.d.ts
CHANGED
package/dist/get-trace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-trace.d.ts","sourceRoot":"","sources":["../src/get-trace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,wBAAgB,QAAQ,
|
|
1
|
+
{"version":3,"file":"get-trace.d.ts","sourceRoot":"","sources":["../src/get-trace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,wBAAgB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,eA0BnD"}
|
package/dist/get-xray.d.cts
CHANGED
|
@@ -4,6 +4,7 @@ export type XRayResponse = {
|
|
|
4
4
|
trace: TraceType[];
|
|
5
5
|
resourcePath: string | null;
|
|
6
6
|
legacyKey: boolean;
|
|
7
|
+
resourceName?: string;
|
|
7
8
|
};
|
|
8
|
-
export declare function getXRay(hookName: string, legacyKey: boolean): XRayResponse;
|
|
9
|
+
export declare function getXRay(hookName: string, legacyKey: boolean, resourceName?: string, excludeFromTrace?: string[]): XRayResponse;
|
|
9
10
|
//# sourceMappingURL=get-xray.d.ts.map
|
package/dist/get-xray.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-xray.d.ts","sourceRoot":"","sources":["../src/get-xray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAInE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"get-xray.d.ts","sourceRoot":"","sources":["../src/get-xray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAInE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,OAAO,CACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,YAAY,CAoBd"}
|
package/dist/get-xray.d.mts
CHANGED
|
@@ -4,6 +4,7 @@ export type XRayResponse = {
|
|
|
4
4
|
trace: TraceType[];
|
|
5
5
|
resourcePath: string | null;
|
|
6
6
|
legacyKey: boolean;
|
|
7
|
+
resourceName?: string;
|
|
7
8
|
};
|
|
8
|
-
export declare function getXRay(hookName: string, legacyKey: boolean): XRayResponse;
|
|
9
|
+
export declare function getXRay(hookName: string, legacyKey: boolean, resourceName?: string, excludeFromTrace?: string[]): XRayResponse;
|
|
9
10
|
//# sourceMappingURL=get-xray.d.ts.map
|
package/dist/get-xray.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-xray.d.ts","sourceRoot":"","sources":["../src/get-xray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAInE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"get-xray.d.ts","sourceRoot":"","sources":["../src/get-xray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAInE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,OAAO,CACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,YAAY,CAoBd"}
|
package/dist/get-xray.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export type XRayResponse = {
|
|
|
4
4
|
trace: TraceType[];
|
|
5
5
|
resourcePath: string | null;
|
|
6
6
|
legacyKey: boolean;
|
|
7
|
+
resourceName?: string;
|
|
7
8
|
};
|
|
8
|
-
export declare function getXRay(hookName: string, legacyKey: boolean): XRayResponse;
|
|
9
|
+
export declare function getXRay(hookName: string, legacyKey: boolean, resourceName?: string, excludeFromTrace?: string[]): XRayResponse;
|
|
9
10
|
//# sourceMappingURL=get-xray.d.ts.map
|
package/dist/get-xray.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-xray.d.ts","sourceRoot":"","sources":["../src/get-xray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAInE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"get-xray.d.ts","sourceRoot":"","sources":["../src/get-xray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAInE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,OAAO,CACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,YAAY,CAoBd"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
var
|
|
2
|
+
var A=Object.create;var u=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var O=(r,e)=>{for(var t in e)u(r,t,{get:e[t],enumerable:!0})},d=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of C(e))!L.call(r,n)&&n!==t&&u(r,n,{get:()=>e[n],enumerable:!(o=b(e,n))||o.enumerable});return r};var _=(r,e,t)=>(t=r!=null?A(x(r)):{},d(e||!r||!r.__esModule?u(t,"default",{value:r,enumerable:!0}):t,r)),Q=r=>d(u({},"__esModule",{value:!0}),r);var S={};O(S,{getTrace:()=>m,getXRay:()=>P,useQuerySubscription:()=>k});module.exports=Q(S);var T=_(require("error-stack-parser"));var M="renderWithHooks",g=r=>{let e=r.findIndex(t=>t.functionName===M);return e!==-1?r.slice(0,e):r};var l=process.env.NODE_ENV!=="development"?/node_modules\/refinedev\/(?<name>.*?)\//:/\/refine\/packages\/(?<name>.*?)\//;var R=r=>r?!!r.match(l):!1;var v=r=>{var o;if(!r)return;let e=r.match(l),t=(o=e==null?void 0:e.groups)==null?void 0:o.name;if(t)return`@refinedev/${t}`};function m(r){if(process.env.NODE_ENV!=="development")return[];try{let e=new Error,t=T.default.parse(e);return g(t).map(s=>({file:s.fileName,line:s.lineNumber,column:s.columnNumber,function:s.functionName,isRefine:R(s.fileName),packageName:v(s.fileName)})).filter(s=>s.function).filter(s=>!(r!=null&&r.includes(s.function??""))).slice(1)}catch{return[]}}var y=require("@refinedev/devtools-shared"),I=(r,e)=>{if(y.scopes[r]==="auth")return null;if(r==="useCan")return e?"key[1].resource":"key[1]";if(y.scopes[r]==="audit-log")return r==="useLog"?"variables.resource":"key[1]";if(y.scopes[r]==="data"){if(r==="useCustom"||r==="useCustomMutation")return null;switch(r){case"useList":case"useInfiniteList":case"useOne":case"useMany":return e?"key[1]":"key[2]";case"useCreate":case"useCreateMany":case"useDelete":case"useDeleteMany":case"useUpdate":case"useUpdateMany":return"variables.resource"}}return null};function P(r,e,t,o){if(process.env.NODE_ENV!=="development")return{hookName:"",trace:[],resourcePath:null,legacyKey:!1};let n=m(o).slice(1),s=I(r,e);return{hookName:r,trace:n,resourcePath:s,legacyKey:e,resourceName:t}}var f=require("@refinedev/devtools-shared"),c=_(require("react"));var i=require("@refinedev/devtools-shared");var E=(r,e)=>{let t=e==null?void 0:e.map(n=>`${n.file}:${n.line}:${n.column}#${n.function}-${n.packageName}-${n.isRefine?1:0}`);return JSON.stringify([...r??[],...t??[]])};var D=r=>e=>{var o;if(!((o=e==null?void 0:e.meta)!=null&&o.trace))return;let t=e==null?void 0:e.meta;new Promise(n=>{var s,a;(0,i.send)(r,i.DevtoolsEvent.ACTIVITY,{type:"mutation",identifier:E(e==null?void 0:e.options.mutationKey,(s=e==null?void 0:e.meta)==null?void 0:s.trace),key:e==null?void 0:e.options.mutationKey,status:e==null?void 0:e.state.status,state:e==null?void 0:e.state,variables:(a=e==null?void 0:e.state)==null?void 0:a.variables,...t}),n()})},N=r=>e=>{var o;if(!((o=e==null?void 0:e.meta)!=null&&o.trace))return;let t=e==null?void 0:e.meta;new Promise(n=>{var s;(0,i.send)(r,i.DevtoolsEvent.ACTIVITY,{type:"query",identifier:E(e.queryKey,(s=e.meta)==null?void 0:s.trace),key:e.queryKey,status:e.state.status,state:e.state,...t}),n()})};var k=process.env.NODE_ENV!=="development"?()=>({}):r=>{let{ws:e}=(0,c.useContext)(f.DevToolsContext),t=c.default.useRef(),o=c.default.useRef();return c.default.useEffect(()=>{if(!e)return()=>0;let n=r.getQueryCache(),s=N(e);return n.getAll().forEach(s),t.current=n.subscribe(({query:a,type:p})=>(p==="added"||p==="updated")&&s(a)),()=>{var a;(a=t.current)==null||a.call(t)}},[e,r]),c.default.useEffect(()=>{if(!e)return()=>0;let n=r.getMutationCache(),s=D(e);return n.getAll().forEach(s),o.current=n.subscribe(({mutation:a,type:p})=>(p==="added"||p==="updated")&&s(a)),()=>{var a;(a=o.current)==null||a.call(o)}},[e,r]),c.default.useEffect(()=>e?(0,f.receive)(e,f.DevtoolsEvent.DEVTOOLS_INVALIDATE_QUERY_ACTION,({queryKey:s})=>{s&&r.invalidateQueries(s)}):()=>0,[e,r]),{}};
|
|
3
3
|
//# 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\";\nexport { getXRay } from \"./get-xray\";\nexport { useQuerySubscription } from \"./use-query-subscription\";\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 { TraceType } from \"@refinedev/devtools-shared\";\n\nexport function getTrace() {\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 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\\/(?<name>.*?)\\//\n : /\\/refine\\/packages\\/(?<name>.*?)\\//;\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 DevtoolsEvent,\n DevtoolsEventPayloads,\n RefineHook,\n scopes,\n} from \"@refinedev/devtools-shared\";\n\nexport type Activity =\n DevtoolsEventPayloads[DevtoolsEvent.DEVTOOLS_ACTIVITY_UPDATE][\"updatedActivities\"][number];\n\nexport const getResourcePath = (\n hookName: RefineHook,\n legacyKey: boolean,\n): string | null => {\n if (scopes[hookName] === \"auth\") {\n return null;\n }\n if (hookName === \"useCan\") {\n if (legacyKey) {\n return \"key[1].resource\";\n }\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 if (legacyKey) {\n return \"key[1]\";\n }\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 { 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 legacyKey: boolean;\n};\n\nexport function getXRay(hookName: string, legacyKey: boolean): XRayResponse {\n if (__DEV_CONDITION__ !== \"development\") {\n return {\n hookName: \"\",\n trace: [],\n resourcePath: null,\n legacyKey: false,\n };\n }\n const trace = getTrace().slice(1);\n\n const resourcePath = getResourcePath(hookName as RefineHook, legacyKey);\n\n return {\n hookName,\n trace,\n resourcePath,\n legacyKey,\n };\n}\n","import { DevToolsContext } from \"@refinedev/devtools-shared\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport React, { useContext } from \"react\";\nimport { createQueryListener, createMutationListener } from \"./listeners\";\n\nexport const useQuerySubscription =\n __DEV_CONDITION__ !== \"development\"\n ? () => ({})\n : (queryClient: QueryClient) => {\n const { ws } = useContext(DevToolsContext);\n const queryCacheSubscription = React.useRef<() => void>();\n const mutationCacheSubscription = React.useRef<() => void>();\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 return {};\n };\n","import { DevtoolsEvent, send } from \"@refinedev/devtools-shared\";\nimport { Mutation, Query } from \"@tanstack/react-query\";\n\nimport { createIdentifier } from \"./create-identifier\";\nimport { 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 // console.table({\n // type: \"mutation\",\n // key: mutation?.options.mutationKey,\n // id: mutation?.mutationId,\n // status: mutation?.state.status,\n // trace: mutation?.meta?.trace,\n // state: mutation?.state,\n // variables: mutation?.state?.variables,\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 // console.table({\n // type: \"query\",\n // key: query.queryKey,\n // status: query.state.status,\n // trace: query.meta?.trace,\n // state: query.state,\n // });\n};\n","import { TraceType } from \"@refinedev/devtools-shared\";\nimport { 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","error","stack","ErrorStackParser","cleanStack","frame","isRefineStack","getPackageNameFromFilename","trace","import_devtools_shared","getResourcePath","hookName","legacyKey","getXRay","hookName","legacyKey","trace","getTrace","resourcePath","getResourcePath","import_devtools_shared","import_react","import_devtools_shared","createIdentifier","key","trace","simpleTrace","createMutationListener","ws","mutation","_a","meta","resolve","_b","createIdentifier","createQueryListener","query","useQuerySubscription","queryClient","ws","queryCacheSubscription","React","mutationCacheSubscription","queryCache","queryListener","createQueryListener","query","type","_a","mutationCache","mutationListener","createMutationListener","mutation"]}
|
|
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 { 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\\/(?<name>.*?)\\//\n : /\\/refine\\/packages\\/(?<name>.*?)\\//;\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 DevtoolsEvent,\n DevtoolsEventPayloads,\n RefineHook,\n scopes,\n} from \"@refinedev/devtools-shared\";\n\nexport type Activity =\n DevtoolsEventPayloads[DevtoolsEvent.DEVTOOLS_ACTIVITY_UPDATE][\"updatedActivities\"][number];\n\nexport const getResourcePath = (\n hookName: RefineHook,\n legacyKey: boolean,\n): string | null => {\n if (scopes[hookName] === \"auth\") {\n return null;\n }\n if (hookName === \"useCan\") {\n if (legacyKey) {\n return \"key[1].resource\";\n }\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 if (legacyKey) {\n return \"key[1]\";\n }\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 { 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 legacyKey: boolean;\n resourceName?: string;\n};\n\nexport function getXRay(\n hookName: string,\n legacyKey: boolean,\n resourceName?: string,\n excludeFromTrace?: string[],\n): XRayResponse {\n if (__DEV_CONDITION__ !== \"development\") {\n return {\n hookName: \"\",\n trace: [],\n resourcePath: null,\n legacyKey: false,\n };\n }\n const trace = getTrace(excludeFromTrace).slice(1);\n\n const resourcePath = getResourcePath(hookName as RefineHook, legacyKey);\n\n return {\n hookName,\n trace,\n resourcePath,\n legacyKey,\n resourceName,\n };\n}\n","import {\n DevToolsContext,\n DevtoolsEvent,\n receive,\n} from \"@refinedev/devtools-shared\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport React, { useContext } from \"react\";\nimport { createQueryListener, createMutationListener } from \"./listeners\";\n\nexport const useQuerySubscription =\n __DEV_CONDITION__ !== \"development\"\n ? () => ({})\n : (queryClient: QueryClient) => {\n const { ws } = useContext(DevToolsContext);\n const queryCacheSubscription = React.useRef<() => void>();\n const mutationCacheSubscription = React.useRef<() => void>();\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 { Mutation, Query } from \"@tanstack/react-query\";\n\nimport { createIdentifier } from \"./create-identifier\";\nimport { 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 { TraceType } from \"@refinedev/devtools-shared\";\nimport { 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","legacyKey","getXRay","hookName","legacyKey","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","useQuerySubscription","queryClient","ws","queryCacheSubscription","React","mutationCacheSubscription","queryCache","queryListener","createQueryListener","query","type","_a","mutationCache","mutationListener","createMutationListener","mutation","queryKey"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { getTrace } from "./get-trace";
|
|
2
|
-
export { getXRay } from "./get-xray";
|
|
3
|
-
export { useQuerySubscription } from "./use-query-subscription";
|
|
1
|
+
export { getTrace } from "./get-trace.js";
|
|
2
|
+
export { getXRay } from "./get-xray.js";
|
|
3
|
+
export { useQuerySubscription } from "./use-query-subscription.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { getTrace } from "./get-trace";
|
|
2
|
-
export { getXRay } from "./get-xray";
|
|
3
|
-
export { useQuerySubscription } from "./use-query-subscription";
|
|
1
|
+
export { getTrace } from "./get-trace.js";
|
|
2
|
+
export { getXRay } from "./get-xray.js";
|
|
3
|
+
export { useQuerySubscription } from "./use-query-subscription.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { getTrace } from "./get-trace";
|
|
2
|
-
export { getXRay } from "./get-xray";
|
|
3
|
-
export { useQuerySubscription } from "./use-query-subscription";
|
|
1
|
+
export { getTrace } from "./get-trace.js";
|
|
2
|
+
export { getXRay } from "./get-xray.js";
|
|
3
|
+
export { useQuerySubscription } from "./use-query-subscription.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
import I from"error-stack-parser";var
|
|
2
|
+
import I from"error-stack-parser";var T="renderWithHooks",m=r=>{let e=r.findIndex(n=>n.functionName===T);return e!==-1?r.slice(0,e):r};var f=process.env.NODE_ENV!=="development"?/node_modules\/refinedev\/(?<name>.*?)\//:/\/refine\/packages\/(?<name>.*?)\//;var y=r=>r?!!r.match(f):!1;var E=r=>{var o;if(!r)return;let e=r.match(f),n=(o=e==null?void 0:e.groups)==null?void 0:o.name;if(n)return`@refinedev/${n}`};function p(r){if(process.env.NODE_ENV!=="development")return[];try{let e=new Error,n=I.parse(e);return m(n).map(t=>({file:t.fileName,line:t.lineNumber,column:t.columnNumber,function:t.functionName,isRefine:y(t.fileName),packageName:E(t.fileName)})).filter(t=>t.function).filter(t=>!(r!=null&&r.includes(t.function??""))).slice(1)}catch{return[]}}import{scopes as u}from"@refinedev/devtools-shared";var d=(r,e)=>{if(u[r]==="auth")return null;if(r==="useCan")return e?"key[1].resource":"key[1]";if(u[r]==="audit-log")return r==="useLog"?"variables.resource":"key[1]";if(u[r]==="data"){if(r==="useCustom"||r==="useCustomMutation")return null;switch(r){case"useList":case"useInfiniteList":case"useOne":case"useMany":return e?"key[1]":"key[2]";case"useCreate":case"useCreateMany":case"useDelete":case"useDeleteMany":case"useUpdate":case"useUpdateMany":return"variables.resource"}}return null};function P(r,e,n,o){if(process.env.NODE_ENV!=="development")return{hookName:"",trace:[],resourcePath:null,legacyKey:!1};let s=p(o).slice(1),t=d(r,e);return{hookName:r,trace:s,resourcePath:t,legacyKey:e,resourceName:n}}import{DevToolsContext as D,DevtoolsEvent as N,receive as k}from"@refinedev/devtools-shared";import i,{useContext as A}from"react";import{DevtoolsEvent as _,send as g}from"@refinedev/devtools-shared";var l=(r,e)=>{let n=e==null?void 0:e.map(s=>`${s.file}:${s.line}:${s.column}#${s.function}-${s.packageName}-${s.isRefine?1:0}`);return JSON.stringify([...r??[],...n??[]])};var R=r=>e=>{var o;if(!((o=e==null?void 0:e.meta)!=null&&o.trace))return;let n=e==null?void 0:e.meta;new Promise(s=>{var t,a;g(r,_.ACTIVITY,{type:"mutation",identifier:l(e==null?void 0:e.options.mutationKey,(t=e==null?void 0:e.meta)==null?void 0:t.trace),key:e==null?void 0:e.options.mutationKey,status:e==null?void 0:e.state.status,state:e==null?void 0:e.state,variables:(a=e==null?void 0:e.state)==null?void 0:a.variables,...n}),s()})},v=r=>e=>{var o;if(!((o=e==null?void 0:e.meta)!=null&&o.trace))return;let n=e==null?void 0:e.meta;new Promise(s=>{var t;g(r,_.ACTIVITY,{type:"query",identifier:l(e.queryKey,(t=e.meta)==null?void 0:t.trace),key:e.queryKey,status:e.state.status,state:e.state,...n}),s()})};var b=process.env.NODE_ENV!=="development"?()=>({}):r=>{let{ws:e}=A(D),n=i.useRef(),o=i.useRef();return i.useEffect(()=>{if(!e)return()=>0;let s=r.getQueryCache(),t=v(e);return s.getAll().forEach(t),n.current=s.subscribe(({query:a,type:c})=>(c==="added"||c==="updated")&&t(a)),()=>{var a;(a=n.current)==null||a.call(n)}},[e,r]),i.useEffect(()=>{if(!e)return()=>0;let s=r.getMutationCache(),t=R(e);return s.getAll().forEach(t),o.current=s.subscribe(({mutation:a,type:c})=>(c==="added"||c==="updated")&&t(a)),()=>{var a;(a=o.current)==null||a.call(o)}},[e,r]),i.useEffect(()=>e?k(e,N.DEVTOOLS_INVALIDATE_QUERY_ACTION,({queryKey:t})=>{t&&r.invalidateQueries(t)}):()=>0,[e,r]),{}};export{p as getTrace,P as getXRay,b as useQuerySubscription};
|
|
3
3
|
//# 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 { TraceType } from \"@refinedev/devtools-shared\";\n\nexport function getTrace() {\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 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\\/(?<name>.*?)\\//\n : /\\/refine\\/packages\\/(?<name>.*?)\\//;\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 DevtoolsEvent,\n DevtoolsEventPayloads,\n RefineHook,\n scopes,\n} from \"@refinedev/devtools-shared\";\n\nexport type Activity =\n DevtoolsEventPayloads[DevtoolsEvent.DEVTOOLS_ACTIVITY_UPDATE][\"updatedActivities\"][number];\n\nexport const getResourcePath = (\n hookName: RefineHook,\n legacyKey: boolean,\n): string | null => {\n if (scopes[hookName] === \"auth\") {\n return null;\n }\n if (hookName === \"useCan\") {\n if (legacyKey) {\n return \"key[1].resource\";\n }\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 if (legacyKey) {\n return \"key[1]\";\n }\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 { 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 legacyKey: boolean;\n};\n\nexport function getXRay(hookName: string, legacyKey: boolean): XRayResponse {\n if (__DEV_CONDITION__ !== \"development\") {\n return {\n hookName: \"\",\n trace: [],\n resourcePath: null,\n legacyKey: false,\n };\n }\n const trace = getTrace().slice(1);\n\n const resourcePath = getResourcePath(hookName as RefineHook, legacyKey);\n\n return {\n hookName,\n trace,\n resourcePath,\n legacyKey,\n };\n}\n","import { DevToolsContext } from \"@refinedev/devtools-shared\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport React, { useContext } from \"react\";\nimport { createQueryListener, createMutationListener } from \"./listeners\";\n\nexport const useQuerySubscription =\n __DEV_CONDITION__ !== \"development\"\n ? () => ({})\n : (queryClient: QueryClient) => {\n const { ws } = useContext(DevToolsContext);\n const queryCacheSubscription = React.useRef<() => void>();\n const mutationCacheSubscription = React.useRef<() => void>();\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 return {};\n };\n","import { DevtoolsEvent, send } from \"@refinedev/devtools-shared\";\nimport { Mutation, Query } from \"@tanstack/react-query\";\n\nimport { createIdentifier } from \"./create-identifier\";\nimport { 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 // console.table({\n // type: \"mutation\",\n // key: mutation?.options.mutationKey,\n // id: mutation?.mutationId,\n // status: mutation?.state.status,\n // trace: mutation?.meta?.trace,\n // state: mutation?.state,\n // variables: mutation?.state?.variables,\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 // console.table({\n // type: \"query\",\n // key: query.queryKey,\n // status: query.state.status,\n // trace: query.meta?.trace,\n // state: query.state,\n // });\n};\n","import { TraceType } from \"@refinedev/devtools-shared\";\nimport { 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","error","stack","ErrorStackParser","cleanStack","frame","isRefineStack","getPackageNameFromFilename","trace","scopes","getResourcePath","hookName","legacyKey","getXRay","hookName","legacyKey","trace","getTrace","resourcePath","getResourcePath","DevToolsContext","React","useContext","DevtoolsEvent","send","createIdentifier","key","trace","simpleTrace","createMutationListener","ws","mutation","_a","meta","resolve","_b","send","DevtoolsEvent","createIdentifier","createQueryListener","query","useQuerySubscription","queryClient","ws","useContext","DevToolsContext","queryCacheSubscription","React","mutationCacheSubscription","queryCache","queryListener","createQueryListener","query","type","_a","mutationCache","mutationListener","createMutationListener","mutation"]}
|
|
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 { 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\\/(?<name>.*?)\\//\n : /\\/refine\\/packages\\/(?<name>.*?)\\//;\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 DevtoolsEvent,\n DevtoolsEventPayloads,\n RefineHook,\n scopes,\n} from \"@refinedev/devtools-shared\";\n\nexport type Activity =\n DevtoolsEventPayloads[DevtoolsEvent.DEVTOOLS_ACTIVITY_UPDATE][\"updatedActivities\"][number];\n\nexport const getResourcePath = (\n hookName: RefineHook,\n legacyKey: boolean,\n): string | null => {\n if (scopes[hookName] === \"auth\") {\n return null;\n }\n if (hookName === \"useCan\") {\n if (legacyKey) {\n return \"key[1].resource\";\n }\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 if (legacyKey) {\n return \"key[1]\";\n }\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 { 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 legacyKey: boolean;\n resourceName?: string;\n};\n\nexport function getXRay(\n hookName: string,\n legacyKey: boolean,\n resourceName?: string,\n excludeFromTrace?: string[],\n): XRayResponse {\n if (__DEV_CONDITION__ !== \"development\") {\n return {\n hookName: \"\",\n trace: [],\n resourcePath: null,\n legacyKey: false,\n };\n }\n const trace = getTrace(excludeFromTrace).slice(1);\n\n const resourcePath = getResourcePath(hookName as RefineHook, legacyKey);\n\n return {\n hookName,\n trace,\n resourcePath,\n legacyKey,\n resourceName,\n };\n}\n","import {\n DevToolsContext,\n DevtoolsEvent,\n receive,\n} from \"@refinedev/devtools-shared\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport React, { useContext } from \"react\";\nimport { createQueryListener, createMutationListener } from \"./listeners\";\n\nexport const useQuerySubscription =\n __DEV_CONDITION__ !== \"development\"\n ? () => ({})\n : (queryClient: QueryClient) => {\n const { ws } = useContext(DevToolsContext);\n const queryCacheSubscription = React.useRef<() => void>();\n const mutationCacheSubscription = React.useRef<() => void>();\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 { Mutation, Query } from \"@tanstack/react-query\";\n\nimport { createIdentifier } from \"./create-identifier\";\nimport { 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 { TraceType } from \"@refinedev/devtools-shared\";\nimport { 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","legacyKey","getXRay","hookName","legacyKey","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","useQuerySubscription","queryClient","ws","useContext","DevToolsContext","queryCacheSubscription","React","mutationCacheSubscription","queryCache","queryListener","createQueryListener","query","type","_a","mutationCache","mutationListener","createMutationListener","mutation","receive","DevtoolsEvent","queryKey"]}
|
package/dist/listeners.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKxD,eAAO,MAAM,sBAAsB,OAC5B,SAAS,iBAAiB,QAAQ,
|
|
1
|
+
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKxD,eAAO,MAAM,sBAAsB,OAC5B,SAAS,iBAAiB,QAAQ,SAoBtC,CAAC;AAEJ,eAAO,MAAM,mBAAmB,OAAQ,SAAS,aAAa,KAAK,SAgBlE,CAAC"}
|
package/dist/listeners.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKxD,eAAO,MAAM,sBAAsB,OAC5B,SAAS,iBAAiB,QAAQ,
|
|
1
|
+
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKxD,eAAO,MAAM,sBAAsB,OAC5B,SAAS,iBAAiB,QAAQ,SAoBtC,CAAC;AAEJ,eAAO,MAAM,mBAAmB,OAAQ,SAAS,aAAa,KAAK,SAgBlE,CAAC"}
|
package/dist/listeners.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKxD,eAAO,MAAM,sBAAsB,OAC5B,SAAS,iBAAiB,QAAQ,
|
|
1
|
+
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKxD,eAAO,MAAM,sBAAsB,OAC5B,SAAS,iBAAiB,QAAQ,SAoBtC,CAAC;AAEJ,eAAO,MAAM,mBAAmB,OAAQ,SAAS,aAAa,KAAK,SAgBlE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-query-subscription.d.ts","sourceRoot":"","sources":["../src/use-query-subscription.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-query-subscription.d.ts","sourceRoot":"","sources":["../src/use-query-subscription.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,eAAO,MAAM,oBAAoB,gBAGb,WAAW,OA6DxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-query-subscription.d.ts","sourceRoot":"","sources":["../src/use-query-subscription.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-query-subscription.d.ts","sourceRoot":"","sources":["../src/use-query-subscription.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,eAAO,MAAM,oBAAoB,gBAGb,WAAW,OA6DxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-query-subscription.d.ts","sourceRoot":"","sources":["../src/use-query-subscription.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-query-subscription.d.ts","sourceRoot":"","sources":["../src/use-query-subscription.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,eAAO,MAAM,oBAAoB,gBAGb,WAAW,OA6DxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refinedev/devtools-internal",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.9",
|
|
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,6 +31,7 @@
|
|
|
31
31
|
"src"
|
|
32
32
|
],
|
|
33
33
|
"scripts": {
|
|
34
|
+
"attw": "attw --pack .",
|
|
34
35
|
"build": "tsup",
|
|
35
36
|
"dev": "tsup --watch",
|
|
36
37
|
"prepare": "npm run build",
|
|
@@ -39,7 +40,7 @@
|
|
|
39
40
|
"types": "node ../shared/generate-declarations.js"
|
|
40
41
|
},
|
|
41
42
|
"dependencies": {
|
|
42
|
-
"@refinedev/devtools-shared": "1.1.
|
|
43
|
+
"@refinedev/devtools-shared": "1.1.7",
|
|
43
44
|
"@tanstack/react-query": "^4.10.1",
|
|
44
45
|
"error-stack-parser": "^2.1.4"
|
|
45
46
|
},
|
package/src/get-trace.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { isRefineStack } from "./is-refine-stack";
|
|
|
4
4
|
import { getPackageNameFromFilename } from "./get-package-name-from-filename";
|
|
5
5
|
import { TraceType } from "@refinedev/devtools-shared";
|
|
6
6
|
|
|
7
|
-
export function getTrace() {
|
|
7
|
+
export function getTrace(excludeFromTrace?: string[]) {
|
|
8
8
|
if (__DEV_CONDITION__ !== "development") {
|
|
9
9
|
return [];
|
|
10
10
|
}
|
|
@@ -24,7 +24,8 @@ export function getTrace() {
|
|
|
24
24
|
packageName: getPackageNameFromFilename(frame.fileName),
|
|
25
25
|
}) as TraceType,
|
|
26
26
|
)
|
|
27
|
-
.filter((trace) => trace.function)
|
|
27
|
+
.filter((trace) => trace.function)
|
|
28
|
+
.filter((trace) => !excludeFromTrace?.includes(trace.function ?? ""));
|
|
28
29
|
return traces.slice(1);
|
|
29
30
|
} catch (error) {
|
|
30
31
|
return [];
|
package/src/get-xray.ts
CHANGED
|
@@ -7,9 +7,15 @@ export type XRayResponse = {
|
|
|
7
7
|
trace: TraceType[];
|
|
8
8
|
resourcePath: string | null;
|
|
9
9
|
legacyKey: boolean;
|
|
10
|
+
resourceName?: string;
|
|
10
11
|
};
|
|
11
12
|
|
|
12
|
-
export function getXRay(
|
|
13
|
+
export function getXRay(
|
|
14
|
+
hookName: string,
|
|
15
|
+
legacyKey: boolean,
|
|
16
|
+
resourceName?: string,
|
|
17
|
+
excludeFromTrace?: string[],
|
|
18
|
+
): XRayResponse {
|
|
13
19
|
if (__DEV_CONDITION__ !== "development") {
|
|
14
20
|
return {
|
|
15
21
|
hookName: "",
|
|
@@ -18,7 +24,7 @@ export function getXRay(hookName: string, legacyKey: boolean): XRayResponse {
|
|
|
18
24
|
legacyKey: false,
|
|
19
25
|
};
|
|
20
26
|
}
|
|
21
|
-
const trace = getTrace().slice(1);
|
|
27
|
+
const trace = getTrace(excludeFromTrace).slice(1);
|
|
22
28
|
|
|
23
29
|
const resourcePath = getResourcePath(hookName as RefineHook, legacyKey);
|
|
24
30
|
|
|
@@ -27,5 +33,6 @@ export function getXRay(hookName: string, legacyKey: boolean): XRayResponse {
|
|
|
27
33
|
trace,
|
|
28
34
|
resourcePath,
|
|
29
35
|
legacyKey,
|
|
36
|
+
resourceName,
|
|
30
37
|
};
|
|
31
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { getTrace } from "./get-trace";
|
|
2
|
-
export { getXRay } from "./get-xray";
|
|
3
|
-
export { useQuerySubscription } from "./use-query-subscription";
|
|
1
|
+
export { getTrace } from "./get-trace.js";
|
|
2
|
+
export { getXRay } from "./get-xray.js";
|
|
3
|
+
export { useQuerySubscription } from "./use-query-subscription.js";
|
package/src/listeners.ts
CHANGED
|
@@ -25,16 +25,6 @@ export const createMutationListener =
|
|
|
25
25
|
});
|
|
26
26
|
resolve();
|
|
27
27
|
});
|
|
28
|
-
|
|
29
|
-
// console.table({
|
|
30
|
-
// type: "mutation",
|
|
31
|
-
// key: mutation?.options.mutationKey,
|
|
32
|
-
// id: mutation?.mutationId,
|
|
33
|
-
// status: mutation?.state.status,
|
|
34
|
-
// trace: mutation?.meta?.trace,
|
|
35
|
-
// state: mutation?.state,
|
|
36
|
-
// variables: mutation?.state?.variables,
|
|
37
|
-
// });
|
|
38
28
|
};
|
|
39
29
|
|
|
40
30
|
export const createQueryListener = (ws: WebSocket) => (query: Query) => {
|
|
@@ -53,12 +43,4 @@ export const createQueryListener = (ws: WebSocket) => (query: Query) => {
|
|
|
53
43
|
});
|
|
54
44
|
resolve();
|
|
55
45
|
});
|
|
56
|
-
|
|
57
|
-
// console.table({
|
|
58
|
-
// type: "query",
|
|
59
|
-
// key: query.queryKey,
|
|
60
|
-
// status: query.state.status,
|
|
61
|
-
// trace: query.meta?.trace,
|
|
62
|
-
// state: query.state,
|
|
63
|
-
// });
|
|
64
46
|
};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
DevToolsContext,
|
|
3
|
+
DevtoolsEvent,
|
|
4
|
+
receive,
|
|
5
|
+
} from "@refinedev/devtools-shared";
|
|
2
6
|
import { QueryClient } from "@tanstack/react-query";
|
|
3
7
|
import React, { useContext } from "react";
|
|
4
8
|
import { createQueryListener, createMutationListener } from "./listeners";
|
|
@@ -50,5 +54,21 @@ export const useQuerySubscription =
|
|
|
50
54
|
};
|
|
51
55
|
}, [ws, queryClient]);
|
|
52
56
|
|
|
57
|
+
React.useEffect(() => {
|
|
58
|
+
if (!ws) return () => 0;
|
|
59
|
+
|
|
60
|
+
const cb = receive(
|
|
61
|
+
ws,
|
|
62
|
+
DevtoolsEvent.DEVTOOLS_INVALIDATE_QUERY_ACTION,
|
|
63
|
+
({ queryKey }) => {
|
|
64
|
+
if (queryKey) {
|
|
65
|
+
queryClient.invalidateQueries(queryKey);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
return cb;
|
|
71
|
+
}, [ws, queryClient]);
|
|
72
|
+
|
|
53
73
|
return {};
|
|
54
74
|
};
|