@refinedev/devtools-internal 1.1.7 → 1.1.8

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.
@@ -1,3 +1,3 @@
1
1
  import { TraceType } from "@refinedev/devtools-shared";
2
- export declare function getTrace(): TraceType[];
2
+ export declare function getTrace(excludeFromTrace?: string[]): TraceType[];
3
3
  //# sourceMappingURL=get-trace.d.ts.map
@@ -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,gBAyBvB"}
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"}
@@ -1,3 +1,3 @@
1
1
  import { TraceType } from "@refinedev/devtools-shared";
2
- export declare function getTrace(): TraceType[];
2
+ export declare function getTrace(excludeFromTrace?: string[]): TraceType[];
3
3
  //# sourceMappingURL=get-trace.d.ts.map
@@ -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,gBAyBvB"}
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"}
@@ -1,3 +1,3 @@
1
1
  import { TraceType } from "@refinedev/devtools-shared";
2
- export declare function getTrace(): TraceType[];
2
+ export declare function getTrace(excludeFromTrace?: string[]): TraceType[];
3
3
  //# sourceMappingURL=get-trace.d.ts.map
@@ -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,gBAyBvB"}
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"}
@@ -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
@@ -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;CACpB,CAAC;AAEF,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,YAAY,CAmB1E"}
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"}
@@ -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
@@ -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;CACpB,CAAC;AAEF,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,YAAY,CAmB1E"}
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"}
@@ -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
@@ -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;CACpB,CAAC;AAEF,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,YAAY,CAmB1E"}
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 D=Object.create;var p=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var L=(r,e)=>{for(var s in e)p(r,s,{get:e[s],enumerable:!0})},d=(r,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of A(e))!F.call(r,t)&&t!==s&&p(r,t,{get:()=>e[t],enumerable:!(n=N(e,t))||n.enumerable});return r};var E=(r,e,s)=>(s=r!=null?D(b(r)):{},d(e||!r||!r.__esModule?p(s,"default",{value:r,enumerable:!0}):s,r)),M=r=>d(p({},"__esModule",{value:!0}),r);var K={};L(K,{getTrace:()=>l,getXRay:()=>I,useQuerySubscription:()=>C});module.exports=M(K);var g=E(require("error-stack-parser"));var O="renderWithHooks",T=r=>{let e=r.findIndex(s=>s.functionName===O);return e!==-1?r.slice(0,e):r};var u=process.env.NODE_ENV!=="development"?/node_modules\/refinedev\/(?<name>.*?)\//:/\/refine\/packages\/(?<name>.*?)\//;var _=r=>r?!!r.match(u):!1;var R=r=>{var n;if(!r)return;let e=r.match(u),s=(n=e==null?void 0:e.groups)==null?void 0:n.name;if(s)return`@refinedev/${s}`};function l(){if(process.env.NODE_ENV!=="development")return[];try{let r=new Error,e=g.default.parse(r);return T(e).map(t=>({file:t.fileName,line:t.lineNumber,column:t.columnNumber,function:t.functionName,isRefine:_(t.fileName),packageName:R(t.fileName)})).filter(t=>t.function).slice(1)}catch{return[]}}var m=require("@refinedev/devtools-shared"),v=(r,e)=>{if(m.scopes[r]==="auth")return null;if(r==="useCan")return e?"key[1].resource":"key[1]";if(m.scopes[r]==="audit-log")return r==="useLog"?"variables.resource":"key[1]";if(m.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 I(r,e){if(process.env.NODE_ENV!=="development")return{hookName:"",trace:[],resourcePath:null,legacyKey:!1};let s=l().slice(1),n=v(r,e);return{hookName:r,trace:s,resourcePath:n,legacyKey:e}}var x=require("@refinedev/devtools-shared"),c=E(require("react"));var i=require("@refinedev/devtools-shared");var y=(r,e)=>{let s=e==null?void 0:e.map(t=>`${t.file}:${t.line}:${t.column}#${t.function}-${t.packageName}-${t.isRefine?1:0}`);return JSON.stringify([...r??[],...s??[]])};var P=r=>e=>{var n;if(!((n=e==null?void 0:e.meta)!=null&&n.trace))return;let s=e==null?void 0:e.meta;new Promise(t=>{var a,o;(0,i.send)(r,i.DevtoolsEvent.ACTIVITY,{type:"mutation",identifier:y(e==null?void 0:e.options.mutationKey,(a=e==null?void 0:e.meta)==null?void 0:a.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:(o=e==null?void 0:e.state)==null?void 0:o.variables,...s}),t()})},k=r=>e=>{var n;if(!((n=e==null?void 0:e.meta)!=null&&n.trace))return;let s=e==null?void 0:e.meta;new Promise(t=>{var a;(0,i.send)(r,i.DevtoolsEvent.ACTIVITY,{type:"query",identifier:y(e.queryKey,(a=e.meta)==null?void 0:a.trace),key:e.queryKey,status:e.state.status,state:e.state,...s}),t()})};var C=process.env.NODE_ENV!=="development"?()=>({}):r=>{let{ws:e}=(0,c.useContext)(x.DevToolsContext),s=c.default.useRef(),n=c.default.useRef();return c.default.useEffect(()=>{if(!e)return()=>0;let t=r.getQueryCache(),a=k(e);return t.getAll().forEach(a),s.current=t.subscribe(({query:o,type:f})=>(f==="added"||f==="updated")&&a(o)),()=>{var o;(o=s.current)==null||o.call(s)}},[e,r]),c.default.useEffect(()=>{if(!e)return()=>0;let t=r.getMutationCache(),a=P(e);return t.getAll().forEach(a),n.current=t.subscribe(({mutation:o,type:f})=>(f==="added"||f==="updated")&&a(o)),()=>{var o;(o=n.current)==null||o.call(n)}},[e,r]),{}};
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
@@ -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.ts\";\nexport { getXRay } from \"./get-xray.ts\";\nexport { useQuerySubscription } from \"./use-query-subscription.tsx\";\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.ts";
2
+ export { getXRay } from "./get-xray.ts";
3
+ export { useQuerySubscription } from "./use-query-subscription.tsx";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
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,8BAA8B,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.ts";
2
+ export { getXRay } from "./get-xray.ts";
3
+ export { useQuerySubscription } from "./use-query-subscription.tsx";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
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,8BAA8B,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.ts";
2
+ export { getXRay } from "./get-xray.ts";
3
+ export { useQuerySubscription } from "./use-query-subscription.tsx";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
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,8BAA8B,CAAC"}
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client"
2
- import I from"error-stack-parser";var v="renderWithHooks",m=r=>{let e=r.findIndex(s=>s.functionName===v);return e!==-1?r.slice(0,e):r};var i=process.env.NODE_ENV!=="development"?/node_modules\/refinedev\/(?<name>.*?)\//:/\/refine\/packages\/(?<name>.*?)\//;var y=r=>r?!!r.match(i):!1;var d=r=>{var n;if(!r)return;let e=r.match(i),s=(n=e==null?void 0:e.groups)==null?void 0:n.name;if(s)return`@refinedev/${s}`};function p(){if(process.env.NODE_ENV!=="development")return[];try{let r=new Error,e=I.parse(r);return m(e).map(t=>({file:t.fileName,line:t.lineNumber,column:t.columnNumber,function:t.functionName,isRefine:y(t.fileName),packageName:d(t.fileName)})).filter(t=>t.function).slice(1)}catch{return[]}}import{scopes as u}from"@refinedev/devtools-shared";var E=(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){if(process.env.NODE_ENV!=="development")return{hookName:"",trace:[],resourcePath:null,legacyKey:!1};let s=p().slice(1),n=E(r,e);return{hookName:r,trace:s,resourcePath:n,legacyKey:e}}import{DevToolsContext as k}from"@refinedev/devtools-shared";import f,{useContext as x}from"react";import{DevtoolsEvent as T,send as _}from"@refinedev/devtools-shared";var l=(r,e)=>{let s=e==null?void 0:e.map(t=>`${t.file}:${t.line}:${t.column}#${t.function}-${t.packageName}-${t.isRefine?1:0}`);return JSON.stringify([...r??[],...s??[]])};var R=r=>e=>{var n;if(!((n=e==null?void 0:e.meta)!=null&&n.trace))return;let s=e==null?void 0:e.meta;new Promise(t=>{var a,o;_(r,T.ACTIVITY,{type:"mutation",identifier:l(e==null?void 0:e.options.mutationKey,(a=e==null?void 0:e.meta)==null?void 0:a.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:(o=e==null?void 0:e.state)==null?void 0:o.variables,...s}),t()})},g=r=>e=>{var n;if(!((n=e==null?void 0:e.meta)!=null&&n.trace))return;let s=e==null?void 0:e.meta;new Promise(t=>{var a;_(r,T.ACTIVITY,{type:"query",identifier:l(e.queryKey,(a=e.meta)==null?void 0:a.trace),key:e.queryKey,status:e.state.status,state:e.state,...s}),t()})};var C=process.env.NODE_ENV!=="development"?()=>({}):r=>{let{ws:e}=x(k),s=f.useRef(),n=f.useRef();return f.useEffect(()=>{if(!e)return()=>0;let t=r.getQueryCache(),a=g(e);return t.getAll().forEach(a),s.current=t.subscribe(({query:o,type:c})=>(c==="added"||c==="updated")&&a(o)),()=>{var o;(o=s.current)==null||o.call(s)}},[e,r]),f.useEffect(()=>{if(!e)return()=>0;let t=r.getMutationCache(),a=R(e);return t.getAll().forEach(a),n.current=t.subscribe(({mutation:o,type:c})=>(c==="added"||c==="updated")&&a(o)),()=>{var o;(o=n.current)==null||o.call(n)}},[e,r]),{}};export{p as getTrace,P as getXRay,C as useQuerySubscription};
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
@@ -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"]}
@@ -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,SA8BtC,CAAC;AAEJ,eAAO,MAAM,mBAAmB,OAAQ,SAAS,aAAa,KAAK,SAwBlE,CAAC"}
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":"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,SA8BtC,CAAC;AAEJ,eAAO,MAAM,mBAAmB,OAAQ,SAAS,aAAa,KAAK,SAwBlE,CAAC"}
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":"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,SA8BtC,CAAC;AAEJ,eAAO,MAAM,mBAAmB,OAAQ,SAAS,aAAa,KAAK,SAwBlE,CAAC"}
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":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,eAAO,MAAM,oBAAoB,gBAGb,WAAW,OA6CxB,CAAC"}
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":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,eAAO,MAAM,oBAAoB,gBAGb,WAAW,OA6CxB,CAAC"}
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":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,eAAO,MAAM,oBAAoB,gBAGb,WAAW,OA6CxB,CAAC"}
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.7",
3
+ "version": "1.1.8",
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.5",
43
+ "@refinedev/devtools-shared": "1.1.6",
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(hookName: string, legacyKey: boolean): XRayResponse {
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.ts";
2
+ export { getXRay } from "./get-xray.ts";
3
+ export { useQuerySubscription } from "./use-query-subscription.tsx";
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 { DevToolsContext } from "@refinedev/devtools-shared";
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
  };