@refinedev/core 4.49.0 → 4.49.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +1 -1
  3. package/dist/definitions/helpers/index.d.cts +1 -0
  4. package/dist/definitions/helpers/index.d.cts.map +1 -1
  5. package/dist/definitions/helpers/index.d.mts +1 -0
  6. package/dist/definitions/helpers/index.d.mts.map +1 -1
  7. package/dist/definitions/helpers/index.d.ts +1 -0
  8. package/dist/definitions/helpers/index.d.ts.map +1 -1
  9. package/dist/definitions/helpers/prepare-query-context/index.d.cts +3 -0
  10. package/dist/definitions/helpers/prepare-query-context/index.d.cts.map +1 -0
  11. package/dist/definitions/helpers/prepare-query-context/index.d.mts +3 -0
  12. package/dist/definitions/helpers/prepare-query-context/index.d.mts.map +1 -0
  13. package/dist/definitions/helpers/prepare-query-context/index.d.ts +3 -0
  14. package/dist/definitions/helpers/prepare-query-context/index.d.ts.map +1 -0
  15. package/dist/hooks/accessControl/useCan/index.d.cts.map +1 -1
  16. package/dist/hooks/accessControl/useCan/index.d.mts.map +1 -1
  17. package/dist/hooks/accessControl/useCan/index.d.ts.map +1 -1
  18. package/dist/hooks/auth/useOnError/index.d.cts.map +1 -1
  19. package/dist/hooks/auth/useOnError/index.d.mts.map +1 -1
  20. package/dist/hooks/auth/useOnError/index.d.ts.map +1 -1
  21. package/dist/hooks/data/useCustom.d.cts.map +1 -1
  22. package/dist/hooks/data/useCustom.d.mts.map +1 -1
  23. package/dist/hooks/data/useCustom.d.ts.map +1 -1
  24. package/dist/hooks/data/useInfiniteList.d.cts.map +1 -1
  25. package/dist/hooks/data/useInfiniteList.d.mts.map +1 -1
  26. package/dist/hooks/data/useInfiniteList.d.ts.map +1 -1
  27. package/dist/hooks/data/useList.d.cts.map +1 -1
  28. package/dist/hooks/data/useList.d.mts.map +1 -1
  29. package/dist/hooks/data/useList.d.ts.map +1 -1
  30. package/dist/hooks/data/useMany.d.cts.map +1 -1
  31. package/dist/hooks/data/useMany.d.mts.map +1 -1
  32. package/dist/hooks/data/useMany.d.ts.map +1 -1
  33. package/dist/hooks/data/useOne.d.cts.map +1 -1
  34. package/dist/hooks/data/useOne.d.mts.map +1 -1
  35. package/dist/hooks/data/useOne.d.ts.map +1 -1
  36. package/dist/hooks/menu/useMenu.d.cts.map +1 -1
  37. package/dist/hooks/menu/useMenu.d.mts.map +1 -1
  38. package/dist/hooks/menu/useMenu.d.ts.map +1 -1
  39. package/dist/index.cjs +18 -18
  40. package/dist/index.cjs.map +1 -1
  41. package/dist/index.d.cts +23 -23
  42. package/dist/index.d.cts.map +1 -1
  43. package/dist/index.d.mts +23 -23
  44. package/dist/index.d.mts.map +1 -1
  45. package/dist/index.d.ts +23 -23
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.mjs +18 -18
  48. package/dist/index.mjs.map +1 -1
  49. package/package.json +3 -2
  50. package/src/definitions/helpers/index.ts +1 -0
  51. package/src/definitions/helpers/prepare-query-context/index.ts +19 -0
  52. package/src/hooks/accessControl/useCan/index.ts +4 -1
  53. package/src/hooks/auditLog/useLogList/index.ts +1 -1
  54. package/src/hooks/auth/useOnError/index.ts +22 -16
  55. package/src/hooks/data/useCustom.ts +8 -12
  56. package/src/hooks/data/useInfiniteList.ts +11 -19
  57. package/src/hooks/data/useList.ts +9 -18
  58. package/src/hooks/data/useMany.ts +12 -34
  59. package/src/hooks/data/useOne.ts +5 -12
  60. package/src/hooks/menu/useMenu.tsx +1 -1
  61. package/src/index.tsx +23 -23
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@refinedev/core",
3
- "version": "4.49.0",
3
+ "version": "4.49.2",
4
4
  "private": false,
5
5
  "description": "refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.",
6
6
  "repository": {
@@ -27,6 +27,7 @@
27
27
  "module": "dist/index.mjs",
28
28
  "typings": "dist/index.d.ts",
29
29
  "scripts": {
30
+ "attw": "attw --pack .",
30
31
  "build": "tsup",
31
32
  "dev": "tsup --watch",
32
33
  "prepare": "npm run build",
@@ -36,7 +37,7 @@
36
37
  "types": "node ../shared/generate-declarations.js"
37
38
  },
38
39
  "dependencies": {
39
- "@refinedev/devtools-internal": "1.1.7",
40
+ "@refinedev/devtools-internal": "1.1.9",
40
41
  "@tanstack/react-query": "^4.10.1",
41
42
  "lodash": "^4.17.21",
42
43
  "lodash-es": "^4.17.21",
@@ -33,3 +33,4 @@ export { propertyPathToArray } from "./property-path-to-array";
33
33
  export { downloadInBrowser } from "./downloadInBrowser";
34
34
  export { deferExecution } from "./defer-execution";
35
35
  export { asyncDebounce } from "./async-debounce";
36
+ export { prepareQueryContext } from "./prepare-query-context";
@@ -0,0 +1,19 @@
1
+ import type { QueryFunctionContext, QueryKey } from "@tanstack/react-query";
2
+
3
+ export const prepareQueryContext = (
4
+ context: QueryFunctionContext<QueryKey, any>,
5
+ ): Omit<QueryFunctionContext<QueryKey, any>, "meta"> => {
6
+ const queryContext = {
7
+ queryKey: context.queryKey,
8
+ pageParam: context.pageParam,
9
+ };
10
+
11
+ Object.defineProperty(queryContext, "signal", {
12
+ enumerable: true,
13
+ get: () => {
14
+ return context.signal;
15
+ },
16
+ });
17
+
18
+ return queryContext;
19
+ };
@@ -75,7 +75,10 @@ export const useCan = ({
75
75
  ...mergedQueryOptions,
76
76
  meta: {
77
77
  ...mergedQueryOptions?.meta,
78
- ...getXRay("useCan", preferLegacyKeys),
78
+ ...getXRay("useCan", preferLegacyKeys, resource, [
79
+ "useButtonCanAccess",
80
+ "useNavigationButton",
81
+ ]),
79
82
  },
80
83
  retry: false,
81
84
  });
@@ -66,7 +66,7 @@ export const useLogList = <
66
66
  retry: false,
67
67
  meta: {
68
68
  ...queryOptions?.meta,
69
- ...getXRay("useLogList", preferLegacyKeys),
69
+ ...getXRay("useLogList", preferLegacyKeys, resource),
70
70
  },
71
71
  });
72
72
 
@@ -76,24 +76,30 @@ export function useOnError({
76
76
  v3LegacyAuthProviderCompatible: Boolean(v3LegacyAuthProviderCompatible),
77
77
  });
78
78
 
79
- const mutation = useMutation({
79
+ const mutation = useMutation<OnErrorResponse, unknown, unknown, unknown>({
80
80
  mutationKey: keys().auth().action("onError").get(preferLegacyKeys),
81
- mutationFn: onErrorFromContext,
82
- onSuccess: ({ logout: shouldLogout, redirectTo }) => {
83
- if (shouldLogout) {
84
- logout({ redirectPath: redirectTo });
85
- return;
86
- }
87
-
88
- if (redirectTo) {
89
- if (routerType === "legacy") {
90
- replace(redirectTo);
91
- } else {
92
- go({ to: redirectTo, type: "replace" });
81
+ ...(onErrorFromContext
82
+ ? {
83
+ mutationFn: onErrorFromContext,
84
+ onSuccess: ({ logout: shouldLogout, redirectTo }) => {
85
+ if (shouldLogout) {
86
+ logout({ redirectPath: redirectTo });
87
+ return;
88
+ }
89
+
90
+ if (redirectTo) {
91
+ if (routerType === "legacy") {
92
+ replace(redirectTo);
93
+ } else {
94
+ go({ to: redirectTo, type: "replace" });
95
+ }
96
+ return;
97
+ }
98
+ },
93
99
  }
94
- return;
95
- }
96
- },
100
+ : {
101
+ mutationFn: () => ({}) as Promise<OnErrorResponse>,
102
+ }),
97
103
  meta: {
98
104
  ...getXRay("useOnError", preferLegacyKeys),
99
105
  },
@@ -5,7 +5,11 @@ import {
5
5
  useQuery,
6
6
  } from "@tanstack/react-query";
7
7
 
8
- import { pickNotDeprecated, useActiveAuthProvider } from "@definitions/helpers";
8
+ import {
9
+ pickNotDeprecated,
10
+ useActiveAuthProvider,
11
+ prepareQueryContext,
12
+ } from "@definitions/helpers";
9
13
  import {
10
14
  useDataProvider,
11
15
  useHandleNotification,
@@ -156,26 +160,18 @@ export const useCustom = <
156
160
  ...(preferredMeta || {}),
157
161
  })
158
162
  .get(preferLegacyKeys),
159
- queryFn: ({ queryKey, pageParam, signal }) =>
163
+ queryFn: (context) =>
160
164
  custom<TQueryFnData>({
161
165
  url,
162
166
  method,
163
167
  ...config,
164
168
  meta: {
165
169
  ...combinedMeta,
166
- queryContext: {
167
- queryKey,
168
- pageParam,
169
- signal,
170
- },
170
+ queryContext: prepareQueryContext(context),
171
171
  },
172
172
  metaData: {
173
173
  ...combinedMeta,
174
- queryContext: {
175
- queryKey,
176
- pageParam,
177
- signal,
178
- },
174
+ queryContext: prepareQueryContext(context),
179
175
  },
180
176
  }),
181
177
  ...queryOptions,
@@ -12,6 +12,7 @@ import {
12
12
  handlePaginationParams,
13
13
  pickDataProvider,
14
14
  pickNotDeprecated,
15
+ prepareQueryContext,
15
16
  useActiveAuthProvider,
16
17
  } from "@definitions/helpers";
17
18
  import {
@@ -250,10 +251,15 @@ export const useInfiniteList = <
250
251
  }),
251
252
  })
252
253
  .get(preferLegacyKeys),
253
- queryFn: ({ queryKey, pageParam, signal }) => {
254
+ queryFn: (context) => {
254
255
  const paginationProperties = {
255
256
  ...prefferedPagination,
256
- current: pageParam,
257
+ current: context.pageParam,
258
+ };
259
+
260
+ const meta = {
261
+ ...combinedMeta,
262
+ queryContext: prepareQueryContext(context),
257
263
  };
258
264
 
259
265
  return getList<TQueryFnData>({
@@ -263,22 +269,8 @@ export const useInfiniteList = <
263
269
  filters: prefferedFilters,
264
270
  sort: prefferedSorters,
265
271
  sorters: prefferedSorters,
266
- meta: {
267
- ...combinedMeta,
268
- queryContext: {
269
- queryKey,
270
- pageParam,
271
- signal,
272
- },
273
- },
274
- metaData: {
275
- ...combinedMeta,
276
- queryContext: {
277
- queryKey,
278
- pageParam,
279
- signal,
280
- },
281
- },
272
+ meta,
273
+ metaData: meta,
282
274
  }).then(({ data, total, ...rest }) => {
283
275
  return {
284
276
  data,
@@ -323,7 +315,7 @@ export const useInfiniteList = <
323
315
  },
324
316
  meta: {
325
317
  ...queryOptions?.meta,
326
- ...getXRay("useInfiniteList", preferLegacyKeys),
318
+ ...getXRay("useInfiniteList", preferLegacyKeys, resource?.name),
327
319
  },
328
320
  });
329
321
 
@@ -9,6 +9,7 @@ import {
9
9
  handlePaginationParams,
10
10
  pickDataProvider,
11
11
  pickNotDeprecated,
12
+ prepareQueryContext,
12
13
  useActiveAuthProvider,
13
14
  } from "@definitions/helpers";
14
15
  import {
@@ -248,7 +249,11 @@ export const useList = <
248
249
  }),
249
250
  })
250
251
  .get(preferLegacyKeys),
251
- queryFn: ({ queryKey, pageParam, signal }) => {
252
+ queryFn: (context) => {
253
+ const meta = {
254
+ ...combinedMeta,
255
+ queryContext: prepareQueryContext(context),
256
+ };
252
257
  return getList<TQueryFnData>({
253
258
  resource: resource?.name ?? "",
254
259
  pagination: prefferedPagination,
@@ -256,22 +261,8 @@ export const useList = <
256
261
  filters: prefferedFilters,
257
262
  sort: prefferedSorters,
258
263
  sorters: prefferedSorters,
259
- meta: {
260
- ...combinedMeta,
261
- queryContext: {
262
- queryKey,
263
- pageParam,
264
- signal,
265
- },
266
- },
267
- metaData: {
268
- ...combinedMeta,
269
- queryContext: {
270
- queryKey,
271
- pageParam,
272
- signal,
273
- },
274
- },
264
+ meta,
265
+ metaData: meta,
275
266
  });
276
267
  },
277
268
  ...queryOptions,
@@ -330,7 +321,7 @@ export const useList = <
330
321
  },
331
322
  meta: {
332
323
  ...queryOptions?.meta,
333
- ...getXRay("useList", preferLegacyKeys),
324
+ ...getXRay("useList", preferLegacyKeys, resource?.name),
334
325
  },
335
326
  });
336
327
 
@@ -9,6 +9,7 @@ import {
9
9
  handleMultiple,
10
10
  pickDataProvider,
11
11
  pickNotDeprecated,
12
+ prepareQueryContext,
12
13
  useActiveAuthProvider,
13
14
  } from "@definitions/helpers";
14
15
  import {
@@ -167,27 +168,18 @@ export const useMany = <
167
168
  ...(preferredMeta || {}),
168
169
  })
169
170
  .get(preferLegacyKeys),
170
- queryFn: ({ queryKey, pageParam, signal }) => {
171
+ queryFn: (context) => {
172
+ const meta = {
173
+ ...combinedMeta,
174
+ queryContext: prepareQueryContext(context),
175
+ };
176
+
171
177
  if (getMany) {
172
178
  return getMany({
173
179
  resource: resource?.name,
174
180
  ids,
175
- meta: {
176
- ...combinedMeta,
177
- queryContext: {
178
- queryKey,
179
- pageParam,
180
- signal,
181
- },
182
- },
183
- metaData: {
184
- ...combinedMeta,
185
- queryContext: {
186
- queryKey,
187
- pageParam,
188
- signal,
189
- },
190
- },
181
+ meta,
182
+ metaData: meta,
191
183
  });
192
184
  }
193
185
  return handleMultiple(
@@ -195,22 +187,8 @@ export const useMany = <
195
187
  getOne<TQueryFnData>({
196
188
  resource: resource?.name,
197
189
  id,
198
- meta: {
199
- ...combinedMeta,
200
- queryContext: {
201
- queryKey,
202
- pageParam,
203
- signal,
204
- },
205
- },
206
- metaData: {
207
- ...combinedMeta,
208
- queryContext: {
209
- queryKey,
210
- pageParam,
211
- signal,
212
- },
213
- },
190
+ meta,
191
+ metaData: meta,
214
192
  }),
215
193
  ),
216
194
  );
@@ -248,7 +226,7 @@ export const useMany = <
248
226
  },
249
227
  meta: {
250
228
  ...queryOptions?.meta,
251
- ...getXRay("useMany", preferLegacyKeys),
229
+ ...getXRay("useMany", preferLegacyKeys, resource?.name),
252
230
  },
253
231
  });
254
232
 
@@ -8,6 +8,7 @@ import {
8
8
  import {
9
9
  pickDataProvider,
10
10
  pickNotDeprecated,
11
+ prepareQueryContext,
11
12
  useActiveAuthProvider,
12
13
  } from "@definitions";
13
14
  import {
@@ -174,25 +175,17 @@ export const useOne = <
174
175
  ...(preferredMeta || {}),
175
176
  })
176
177
  .get(preferLegacyKeys),
177
- queryFn: ({ queryKey, pageParam, signal }) =>
178
+ queryFn: (context) =>
178
179
  getOne<TQueryFnData>({
179
180
  resource: resource?.name ?? "",
180
181
  id: id!,
181
182
  meta: {
182
183
  ...combinedMeta,
183
- queryContext: {
184
- queryKey,
185
- pageParam,
186
- signal,
187
- },
184
+ queryContext: prepareQueryContext(context),
188
185
  },
189
186
  metaData: {
190
187
  ...combinedMeta,
191
- queryContext: {
192
- queryKey,
193
- pageParam,
194
- signal,
195
- },
188
+ queryContext: prepareQueryContext(context),
196
189
  },
197
190
  }),
198
191
  ...queryOptions,
@@ -246,7 +239,7 @@ export const useOne = <
246
239
  },
247
240
  meta: {
248
241
  ...queryOptions?.meta,
249
- ...getXRay("useOne", preferLegacyKeys),
242
+ ...getXRay("useOne", preferLegacyKeys, resource?.name),
250
243
  },
251
244
  });
252
245
 
@@ -46,7 +46,7 @@ const getCleanPath = (pathname: string) => {
46
46
  * @see {@link https://refine.dev/docs/api-reference/core/hooks/ui/useMenu} for more details.
47
47
  */
48
48
  export const useMenu = (
49
- { meta, hideOnMissingParameter }: UseMenuProps = {
49
+ { meta, hideOnMissingParameter = true }: UseMenuProps = {
50
50
  hideOnMissingParameter: true,
51
51
  },
52
52
  ): UseMenuReturnType => {
package/src/index.tsx CHANGED
@@ -1,9 +1,9 @@
1
- export * from "./components";
2
- export * from "./hooks";
1
+ export * from "./components/index.js";
2
+ export * from "./hooks/index.js";
3
3
 
4
4
  // all auth types
5
- export * from "./components/pages/auth/types";
6
- export { ILoginForm } from "./components/pages/login";
5
+ export * from "./components/pages/auth/types.js";
6
+ export { ILoginForm } from "./components/pages/login/index.js";
7
7
 
8
8
  export {
9
9
  getDefaultFilter,
@@ -15,7 +15,7 @@ export {
15
15
  stringifyTableParams,
16
16
  unionFilters,
17
17
  unionSorters,
18
- } from "./definitions/table";
18
+ } from "./definitions/table/index.js";
19
19
  export {
20
20
  createTreeView,
21
21
  handleUseParams,
@@ -35,13 +35,13 @@ export {
35
35
  KeyBuilder,
36
36
  flattenObjectKeys,
37
37
  propertyPathToArray,
38
- } from "./definitions/helpers";
39
- export { file2Base64 } from "./definitions/upload";
40
- export { generateDefaultDocumentTitle } from "./definitions";
38
+ } from "./definitions/helpers/index.js";
39
+ export { file2Base64 } from "./definitions/upload/index.js";
40
+ export { generateDefaultDocumentTitle } from "./definitions/index.js";
41
41
 
42
- export { ResourceContext } from "./contexts/resource";
42
+ export { ResourceContext } from "./contexts/resource/index.js";
43
43
 
44
- export { AccessControlContext } from "./contexts/accessControl";
44
+ export { AccessControlContext } from "./contexts/accessControl/index.js";
45
45
 
46
46
  export {
47
47
  AccessControlProvider,
@@ -49,21 +49,21 @@ export {
49
49
  CanParams,
50
50
  CanReturnType,
51
51
  IAccessControlContext,
52
- } from "./contexts/accessControl/types";
52
+ } from "./contexts/accessControl/types.js";
53
53
 
54
54
  export {
55
55
  AuditLogProvider,
56
56
  ILog,
57
57
  ILogData,
58
58
  LogParams,
59
- } from "./contexts/auditLog/types";
59
+ } from "./contexts/auditLog/types.js";
60
60
 
61
61
  export {
62
62
  AuthBindings,
63
63
  AuthProvider,
64
64
  ILegacyAuthContext,
65
65
  LegacyAuthProvider,
66
- } from "./contexts/auth/types";
66
+ } from "./contexts/auth/types.js";
67
67
 
68
68
  export {
69
69
  ConditionalFilter,
@@ -107,19 +107,19 @@ export {
107
107
  BaseOption,
108
108
  IQueryKeys,
109
109
  Prettify,
110
- } from "./contexts/data/types";
110
+ } from "./contexts/data/types.js";
111
111
 
112
112
  export {
113
113
  I18nContext,
114
114
  I18nContext as TranslationContext,
115
- } from "./contexts/i18n";
115
+ } from "./contexts/i18n/index.js";
116
116
 
117
117
  export {
118
118
  I18nProvider,
119
119
  I18nProvider as TranslationProvider,
120
120
  I18nProvider as i18nBindings,
121
121
  II18nContext as ITranslationContext,
122
- } from "./contexts/i18n/types";
122
+ } from "./contexts/i18n/types.js";
123
123
 
124
124
  export {
125
125
  ILiveContext,
@@ -130,7 +130,7 @@ export {
130
130
  LiveOneParams,
131
131
  LiveProvider,
132
132
  LiveListParams,
133
- } from "./contexts/live/types";
133
+ } from "./contexts/live/types.js";
134
134
 
135
135
  export {
136
136
  INotificationContext,
@@ -138,7 +138,7 @@ export {
138
138
  NotificationProvider as NotificationsBindings,
139
139
  OpenNotificationParams,
140
140
  SuccessErrorNotification,
141
- } from "./contexts/notification/types";
141
+ } from "./contexts/notification/types.js";
142
142
 
143
143
  export {
144
144
  IRefineContext,
@@ -149,7 +149,7 @@ export {
149
149
  RefineProps,
150
150
  TextTransformers,
151
151
  TitleProps,
152
- } from "./contexts/refine/types";
152
+ } from "./contexts/refine/types.js";
153
153
 
154
154
  export {
155
155
  ResourceProps,
@@ -159,7 +159,7 @@ export {
159
159
  IResourceItem,
160
160
  ITreeMenu,
161
161
  ResourceBindings,
162
- } from "./contexts/resource/types";
162
+ } from "./contexts/resource/types.js";
163
163
 
164
164
  export {
165
165
  ActionWithPage,
@@ -170,7 +170,7 @@ export {
170
170
  ResourceErrorRouterParams,
171
171
  ResourceRouterParams,
172
172
  RouteAction,
173
- } from "./contexts/router/legacy/types";
173
+ } from "./contexts/router/legacy/types.js";
174
174
 
175
175
  export {
176
176
  Action,
@@ -182,6 +182,6 @@ export {
182
182
  ParseFunction,
183
183
  RouterProvider,
184
184
  RouterProvider as RouterBindings,
185
- } from "./contexts/router/types";
185
+ } from "./contexts/router/types.js";
186
186
 
187
- export { IUnsavedWarnContext } from "./contexts/unsavedWarn/types";
187
+ export { IUnsavedWarnContext } from "./contexts/unsavedWarn/types.js";