@strato-admin/faker-ecommerce 0.1.1 → 0.3.0

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 (519) hide show
  1. package/dist/dataProvider.js +1 -2
  2. package/dist/generate.d.ts +2 -1
  3. package/dist/generate.js +15 -8
  4. package/dist/ra-core/src/auth/LogoutOnMount.d.ts +8 -0
  5. package/dist/ra-core/src/auth/LogoutOnMount.js +16 -0
  6. package/dist/ra-core/src/auth/addRefreshAuthToAuthProvider.d.ts +22 -0
  7. package/dist/ra-core/src/auth/addRefreshAuthToAuthProvider.js +41 -0
  8. package/dist/ra-core/src/auth/addRefreshAuthToDataProvider.d.ts +21 -0
  9. package/dist/ra-core/src/auth/addRefreshAuthToDataProvider.js +30 -0
  10. package/dist/ra-core/src/auth/convertLegacyAuthProvider.d.ts +12 -0
  11. package/dist/ra-core/src/auth/convertLegacyAuthProvider.js +19 -0
  12. package/dist/ra-core/src/auth/index.d.ts +27 -0
  13. package/dist/ra-core/src/auth/index.js +34 -0
  14. package/dist/ra-core/src/auth/types.d.ts +7 -0
  15. package/dist/ra-core/src/auth/types.js +5 -0
  16. package/dist/ra-core/src/auth/useAuthProvider.d.ts +10 -0
  17. package/dist/ra-core/src/auth/useAuthProvider.js +11 -0
  18. package/dist/ra-core/src/auth/useAuthState.d.ts +48 -0
  19. package/dist/ra-core/src/auth/useAuthState.js +171 -0
  20. package/dist/ra-core/src/auth/useAuthenticated.d.ts +36 -0
  21. package/dist/ra-core/src/auth/useAuthenticated.js +34 -0
  22. package/dist/ra-core/src/auth/useCanAccess.d.ts +56 -0
  23. package/dist/ra-core/src/auth/useCanAccess.js +108 -0
  24. package/dist/ra-core/src/auth/useCanAccessCallback.d.ts +39 -0
  25. package/dist/ra-core/src/auth/useCanAccessCallback.js +45 -0
  26. package/dist/ra-core/src/auth/useCanAccessResources.d.ts +67 -0
  27. package/dist/ra-core/src/auth/useCanAccessResources.js +92 -0
  28. package/dist/ra-core/src/auth/useCheckAuth.d.ts +48 -0
  29. package/dist/ra-core/src/auth/useCheckAuth.js +76 -0
  30. package/dist/ra-core/src/auth/useGetIdentity.d.ts +41 -0
  31. package/dist/ra-core/src/auth/useGetIdentity.js +86 -0
  32. package/dist/ra-core/src/auth/useGetPermissions.d.ts +41 -0
  33. package/dist/ra-core/src/auth/useGetPermissions.js +47 -0
  34. package/dist/ra-core/src/auth/useHandleAuthCallback.d.ts +20 -0
  35. package/dist/ra-core/src/auth/useHandleAuthCallback.js +83 -0
  36. package/dist/ra-core/src/auth/useIsAuthPending.d.ts +13 -0
  37. package/dist/ra-core/src/auth/useIsAuthPending.js +30 -0
  38. package/dist/ra-core/src/auth/useLogin.d.ts +34 -0
  39. package/dist/ra-core/src/auth/useLogin.js +78 -0
  40. package/dist/ra-core/src/auth/useLogout.d.ts +31 -0
  41. package/dist/ra-core/src/auth/useLogout.js +117 -0
  42. package/dist/ra-core/src/auth/useLogoutIfAccessDenied.d.ts +42 -0
  43. package/dist/ra-core/src/auth/useLogoutIfAccessDenied.js +111 -0
  44. package/dist/ra-core/src/auth/usePermissions.d.ts +41 -0
  45. package/dist/ra-core/src/auth/usePermissions.js +123 -0
  46. package/dist/ra-core/src/controller/button/index.d.ts +7 -0
  47. package/dist/ra-core/src/controller/button/index.js +7 -0
  48. package/dist/ra-core/src/controller/button/useBulkDeleteController.d.ts +14 -0
  49. package/dist/ra-core/src/controller/button/useBulkDeleteController.js +66 -0
  50. package/dist/ra-core/src/controller/create/index.d.ts +6 -0
  51. package/dist/ra-core/src/controller/create/index.js +6 -0
  52. package/dist/ra-core/src/controller/create/useCreateController.d.ts +50 -0
  53. package/dist/ra-core/src/controller/create/useCreateController.js +149 -0
  54. package/dist/ra-core/src/controller/edit/index.d.ts +6 -0
  55. package/dist/ra-core/src/controller/edit/index.js +6 -0
  56. package/dist/ra-core/src/controller/edit/useEditController.d.ts +72 -0
  57. package/dist/ra-core/src/controller/edit/useEditController.js +206 -0
  58. package/dist/ra-core/src/controller/field/index.d.ts +12 -0
  59. package/dist/ra-core/src/controller/field/index.js +12 -0
  60. package/dist/ra-core/src/controller/field/sanitizeFieldRestProps.d.ts +1 -0
  61. package/dist/ra-core/src/controller/field/sanitizeFieldRestProps.js +1 -0
  62. package/dist/ra-core/src/controller/field/types.d.ts +28 -0
  63. package/dist/ra-core/src/controller/field/types.js +1 -0
  64. package/dist/ra-core/src/controller/field/useReferenceArrayFieldController.d.ts +39 -0
  65. package/dist/ra-core/src/controller/field/useReferenceArrayFieldController.js +82 -0
  66. package/dist/ra-core/src/controller/field/useReferenceFieldController.d.ts +14 -0
  67. package/dist/ra-core/src/controller/field/useReferenceFieldController.js +31 -0
  68. package/dist/ra-core/src/controller/field/useReferenceManyFieldController.d.ts +49 -0
  69. package/dist/ra-core/src/controller/field/useReferenceManyFieldController.js +264 -0
  70. package/dist/ra-core/src/controller/index.d.ts +17 -0
  71. package/dist/ra-core/src/controller/index.js +16 -0
  72. package/dist/ra-core/src/controller/input/ArrayInputContext.d.ts +9 -0
  73. package/dist/ra-core/src/controller/input/ArrayInputContext.js +8 -0
  74. package/dist/ra-core/src/controller/input/SimpleFormIteratorContext.d.ts +15 -0
  75. package/dist/ra-core/src/controller/input/SimpleFormIteratorContext.js +8 -0
  76. package/dist/ra-core/src/controller/input/SimpleFormIteratorItemContext.d.ts +13 -0
  77. package/dist/ra-core/src/controller/input/SimpleFormIteratorItemContext.js +8 -0
  78. package/dist/ra-core/src/controller/input/index.d.ts +17 -0
  79. package/dist/ra-core/src/controller/input/index.js +17 -0
  80. package/dist/ra-core/src/controller/input/referenceDataStatus.d.ts +32 -0
  81. package/dist/ra-core/src/controller/input/referenceDataStatus.js +74 -0
  82. package/dist/ra-core/src/controller/input/sanitizeInputRestProps.d.ts +1 -0
  83. package/dist/ra-core/src/controller/input/sanitizeInputRestProps.js +1 -0
  84. package/dist/ra-core/src/controller/input/types.d.ts +3 -0
  85. package/dist/ra-core/src/controller/input/types.js +1 -0
  86. package/dist/ra-core/src/controller/input/useArrayInput.d.ts +8 -0
  87. package/dist/ra-core/src/controller/input/useArrayInput.js +29 -0
  88. package/dist/ra-core/src/controller/input/useGetArrayInputNewItemDefaults.d.ts +3 -0
  89. package/dist/ra-core/src/controller/input/useGetArrayInputNewItemDefaults.js +37 -0
  90. package/dist/ra-core/src/controller/input/useReferenceArrayInputController.d.ts +48 -0
  91. package/dist/ra-core/src/controller/input/useReferenceArrayInputController.js +137 -0
  92. package/dist/ra-core/src/controller/input/useReferenceInputController.d.ts +54 -0
  93. package/dist/ra-core/src/controller/input/useReferenceInputController.js +208 -0
  94. package/dist/ra-core/src/controller/input/useReferenceParams.d.ts +106 -0
  95. package/dist/ra-core/src/controller/input/useReferenceParams.js +226 -0
  96. package/dist/ra-core/src/controller/input/useSimpleFormIterator.d.ts +7 -0
  97. package/dist/ra-core/src/controller/input/useSimpleFormIterator.js +15 -0
  98. package/dist/ra-core/src/controller/input/useSimpleFormIteratorItem.d.ts +7 -0
  99. package/dist/ra-core/src/controller/input/useSimpleFormIteratorItem.js +15 -0
  100. package/dist/ra-core/src/controller/list/InfinitePaginationContext.d.ts +25 -0
  101. package/dist/ra-core/src/controller/list/InfinitePaginationContext.js +32 -0
  102. package/dist/ra-core/src/controller/list/index.d.ts +30 -0
  103. package/dist/ra-core/src/controller/list/index.js +30 -0
  104. package/dist/ra-core/src/controller/list/queryReducer.d.ts +45 -0
  105. package/dist/ra-core/src/controller/list/queryReducer.js +85 -0
  106. package/dist/ra-core/src/controller/list/useFilterContext.d.ts +2 -0
  107. package/dist/ra-core/src/controller/list/useFilterContext.js +5 -0
  108. package/dist/ra-core/src/controller/list/useInfiniteListController.d.ts +44 -0
  109. package/dist/ra-core/src/controller/list/useInfiniteListController.js +175 -0
  110. package/dist/ra-core/src/controller/list/useInfinitePaginationContext.d.ts +16 -0
  111. package/dist/ra-core/src/controller/list/useInfinitePaginationContext.js +17 -0
  112. package/dist/ra-core/src/controller/list/useList.d.ts +55 -0
  113. package/dist/ra-core/src/controller/list/useList.js +223 -0
  114. package/dist/ra-core/src/controller/list/useListContext.d.ts +59 -0
  115. package/dist/ra-core/src/controller/list/useListContext.js +65 -0
  116. package/dist/ra-core/src/controller/list/useListContextWithProps.d.ts +44 -0
  117. package/dist/ra-core/src/controller/list/useListContextWithProps.js +84 -0
  118. package/dist/ra-core/src/controller/list/useListController.d.ts +296 -0
  119. package/dist/ra-core/src/controller/list/useListController.js +234 -0
  120. package/dist/ra-core/src/controller/list/useListFilterContext.d.ts +11 -0
  121. package/dist/ra-core/src/controller/list/useListFilterContext.js +18 -0
  122. package/dist/ra-core/src/controller/list/useListPaginationContext.d.ts +12 -0
  123. package/dist/ra-core/src/controller/list/useListPaginationContext.js +19 -0
  124. package/dist/ra-core/src/controller/list/useListParams.d.ts +116 -0
  125. package/dist/ra-core/src/controller/list/useListParams.js +281 -0
  126. package/dist/ra-core/src/controller/list/useListSortContext.d.ts +12 -0
  127. package/dist/ra-core/src/controller/list/useListSortContext.js +19 -0
  128. package/dist/ra-core/src/controller/list/useRecordSelection.d.ts +32 -0
  129. package/dist/ra-core/src/controller/list/useRecordSelection.js +93 -0
  130. package/dist/ra-core/src/controller/list/useSavedQueries.d.ts +14 -0
  131. package/dist/ra-core/src/controller/list/useSavedQueries.js +29 -0
  132. package/dist/ra-core/src/controller/list/useUnselect.d.ts +10 -0
  133. package/dist/ra-core/src/controller/list/useUnselect.js +18 -0
  134. package/dist/ra-core/src/controller/list/useUnselectAll.d.ts +9 -0
  135. package/dist/ra-core/src/controller/list/useUnselectAll.js +18 -0
  136. package/dist/ra-core/src/controller/record/index.d.ts +5 -0
  137. package/dist/ra-core/src/controller/record/index.js +5 -0
  138. package/dist/ra-core/src/controller/record/useRecordContext.d.ts +34 -0
  139. package/dist/ra-core/src/controller/record/useRecordContext.js +36 -0
  140. package/dist/ra-core/src/controller/saveContext/SaveContext.d.ts +20 -0
  141. package/dist/ra-core/src/controller/saveContext/SaveContext.js +2 -0
  142. package/dist/ra-core/src/controller/saveContext/index.d.ts +6 -0
  143. package/dist/ra-core/src/controller/saveContext/index.js +6 -0
  144. package/dist/ra-core/src/controller/saveContext/useMutationMiddlewares.d.ts +39 -0
  145. package/dist/ra-core/src/controller/saveContext/useMutationMiddlewares.js +79 -0
  146. package/dist/ra-core/src/controller/saveContext/usePickSaveContext.d.ts +5 -0
  147. package/dist/ra-core/src/controller/saveContext/usePickSaveContext.js +25 -0
  148. package/dist/ra-core/src/controller/saveContext/useRegisterMutationMiddleware.d.ts +6 -0
  149. package/dist/ra-core/src/controller/saveContext/useRegisterMutationMiddleware.js +18 -0
  150. package/dist/ra-core/src/controller/saveContext/useSaveContext.d.ts +14 -0
  151. package/dist/ra-core/src/controller/saveContext/useSaveContext.js +17 -0
  152. package/dist/ra-core/src/controller/show/index.d.ts +6 -0
  153. package/dist/ra-core/src/controller/show/index.js +6 -0
  154. package/dist/ra-core/src/controller/show/useShowController.d.ts +75 -0
  155. package/dist/ra-core/src/controller/show/useShowController.js +110 -0
  156. package/dist/ra-core/src/controller/useFilterState.d.ts +46 -0
  157. package/dist/ra-core/src/controller/useFilterState.js +70 -0
  158. package/dist/ra-core/src/controller/usePaginationState.d.ts +33 -0
  159. package/dist/ra-core/src/controller/usePaginationState.js +45 -0
  160. package/dist/ra-core/src/controller/usePrevNextController.d.ts +127 -0
  161. package/dist/ra-core/src/controller/usePrevNextController.js +215 -0
  162. package/dist/ra-core/src/controller/useReference.d.ts +49 -0
  163. package/dist/ra-core/src/controller/useReference.js +42 -0
  164. package/dist/ra-core/src/controller/useSortState.d.ts +61 -0
  165. package/dist/ra-core/src/controller/useSortState.js +96 -0
  166. package/dist/ra-core/src/core/DefaultTitleContext.d.ts +15 -0
  167. package/dist/ra-core/src/core/DefaultTitleContext.js +15 -0
  168. package/dist/ra-core/src/core/HasDashboardContext.d.ts +21 -0
  169. package/dist/ra-core/src/core/HasDashboardContext.js +22 -0
  170. package/dist/ra-core/src/core/ResourceContext.d.ts +19 -0
  171. package/dist/ra-core/src/core/ResourceContext.js +19 -0
  172. package/dist/ra-core/src/core/UserMenuContext.d.ts +34 -0
  173. package/dist/ra-core/src/core/UserMenuContext.js +28 -0
  174. package/dist/ra-core/src/core/index.d.ts +27 -0
  175. package/dist/ra-core/src/core/index.js +27 -0
  176. package/dist/ra-core/src/core/useGetRecordRepresentation.d.ts +13 -0
  177. package/dist/ra-core/src/core/useGetRecordRepresentation.js +44 -0
  178. package/dist/ra-core/src/core/useGetResourceLabel.d.ts +22 -0
  179. package/dist/ra-core/src/core/useGetResourceLabel.js +42 -0
  180. package/dist/ra-core/src/core/useIsOffline.d.ts +7 -0
  181. package/dist/ra-core/src/core/useIsOffline.js +18 -0
  182. package/dist/ra-core/src/core/useResourceContext.d.ts +36 -0
  183. package/dist/ra-core/src/core/useResourceContext.js +38 -0
  184. package/dist/ra-core/src/core/useResourceDefinition.d.ts +31 -0
  185. package/dist/ra-core/src/core/useResourceDefinition.js +48 -0
  186. package/dist/ra-core/src/core/useResourceDefinitionContext.d.ts +1 -0
  187. package/dist/ra-core/src/core/useResourceDefinitionContext.js +3 -0
  188. package/dist/ra-core/src/core/useResourceDefinitions.d.ts +21 -0
  189. package/dist/ra-core/src/core/useResourceDefinitions.js +20 -0
  190. package/dist/ra-core/src/core/useUserMenu.d.ts +28 -0
  191. package/dist/ra-core/src/core/useUserMenu.js +30 -0
  192. package/dist/ra-core/src/core/useWrappedSource.d.ts +11 -0
  193. package/dist/ra-core/src/core/useWrappedSource.js +15 -0
  194. package/dist/ra-core/src/dataProvider/DataProviderContext.d.ts +3 -0
  195. package/dist/ra-core/src/dataProvider/DataProviderContext.js +4 -0
  196. package/dist/ra-core/src/dataProvider/HttpError.d.ts +6 -0
  197. package/dist/ra-core/src/dataProvider/HttpError.js +19 -0
  198. package/dist/ra-core/src/dataProvider/combineDataProviders.d.ts +21 -0
  199. package/dist/ra-core/src/dataProvider/combineDataProviders.js +32 -0
  200. package/dist/ra-core/src/dataProvider/convertLegacyDataProvider.d.ts +12 -0
  201. package/dist/ra-core/src/dataProvider/convertLegacyDataProvider.js +40 -0
  202. package/dist/ra-core/src/dataProvider/dataFetchActions.d.ts +15 -0
  203. package/dist/ra-core/src/dataProvider/dataFetchActions.js +49 -0
  204. package/dist/ra-core/src/dataProvider/defaultDataProvider.d.ts +2 -0
  205. package/dist/ra-core/src/dataProvider/defaultDataProvider.js +12 -0
  206. package/dist/ra-core/src/dataProvider/fetch.d.ts +32 -0
  207. package/dist/ra-core/src/dataProvider/fetch.js +78 -0
  208. package/dist/ra-core/src/dataProvider/index.d.ts +34 -0
  209. package/dist/ra-core/src/dataProvider/index.js +33 -0
  210. package/dist/ra-core/src/dataProvider/populateQueryCache.d.ts +22 -0
  211. package/dist/ra-core/src/dataProvider/populateQueryCache.js +30 -0
  212. package/dist/ra-core/src/dataProvider/testDataProvider.d.ts +2 -0
  213. package/dist/ra-core/src/dataProvider/testDataProvider.js +41 -0
  214. package/dist/ra-core/src/dataProvider/undo/index.d.ts +6 -0
  215. package/dist/ra-core/src/dataProvider/undo/index.js +6 -0
  216. package/dist/ra-core/src/dataProvider/undo/types.d.ts +3 -0
  217. package/dist/ra-core/src/dataProvider/undo/types.js +1 -0
  218. package/dist/ra-core/src/dataProvider/undoableEventEmitter.d.ts +3 -0
  219. package/dist/ra-core/src/dataProvider/undoableEventEmitter.js +2 -0
  220. package/dist/ra-core/src/dataProvider/useCreate.d.ts +89 -0
  221. package/dist/ra-core/src/dataProvider/useCreate.js +155 -0
  222. package/dist/ra-core/src/dataProvider/useDataProvider.d.ts +2 -0
  223. package/dist/ra-core/src/dataProvider/useDataProvider.js +140 -0
  224. package/dist/ra-core/src/dataProvider/useDelete.d.ts +83 -0
  225. package/dist/ra-core/src/dataProvider/useDelete.js +171 -0
  226. package/dist/ra-core/src/dataProvider/useDeleteMany.d.ts +81 -0
  227. package/dist/ra-core/src/dataProvider/useDeleteMany.js +193 -0
  228. package/dist/ra-core/src/dataProvider/useGetList.d.ts +58 -0
  229. package/dist/ra-core/src/dataProvider/useGetList.js +131 -0
  230. package/dist/ra-core/src/dataProvider/useGetMany.d.ts +49 -0
  231. package/dist/ra-core/src/dataProvider/useGetMany.js +143 -0
  232. package/dist/ra-core/src/dataProvider/useGetManyAggregate.d.ts +62 -0
  233. package/dist/ra-core/src/dataProvider/useGetManyAggregate.js +295 -0
  234. package/dist/ra-core/src/dataProvider/useGetManyReference.d.ts +62 -0
  235. package/dist/ra-core/src/dataProvider/useGetManyReference.js +117 -0
  236. package/dist/ra-core/src/dataProvider/useGetOne.d.ts +48 -0
  237. package/dist/ra-core/src/dataProvider/useGetOne.js +94 -0
  238. package/dist/ra-core/src/dataProvider/useGetRecordId.d.ts +14 -0
  239. package/dist/ra-core/src/dataProvider/useGetRecordId.js +22 -0
  240. package/dist/ra-core/src/dataProvider/useInfiniteGetList.d.ts +64 -0
  241. package/dist/ra-core/src/dataProvider/useInfiniteGetList.js +177 -0
  242. package/dist/ra-core/src/dataProvider/useIsDataLoaded.d.ts +13 -0
  243. package/dist/ra-core/src/dataProvider/useIsDataLoaded.js +35 -0
  244. package/dist/ra-core/src/dataProvider/useLoading.d.ts +12 -0
  245. package/dist/ra-core/src/dataProvider/useLoading.js +41 -0
  246. package/dist/ra-core/src/dataProvider/useMutationWithMutationMode.d.ts +51 -0
  247. package/dist/ra-core/src/dataProvider/useMutationWithMutationMode.js +238 -0
  248. package/dist/ra-core/src/dataProvider/useRefresh.d.ts +14 -0
  249. package/dist/ra-core/src/dataProvider/useRefresh.js +21 -0
  250. package/dist/ra-core/src/dataProvider/useUpdate.d.ts +89 -0
  251. package/dist/ra-core/src/dataProvider/useUpdate.js +183 -0
  252. package/dist/ra-core/src/dataProvider/useUpdateMany.d.ts +81 -0
  253. package/dist/ra-core/src/dataProvider/useUpdateMany.js +171 -0
  254. package/dist/ra-core/src/dataProvider/validateResponseFormat.d.ts +5 -0
  255. package/dist/ra-core/src/dataProvider/validateResponseFormat.js +35 -0
  256. package/dist/ra-core/src/dataProvider/withLifecycleCallbacks.d.ts +162 -0
  257. package/dist/ra-core/src/dataProvider/withLifecycleCallbacks.js +377 -0
  258. package/dist/ra-core/src/dataTable/DataTableCallbacksContext.d.ts +18 -0
  259. package/dist/ra-core/src/dataTable/DataTableCallbacksContext.js +3 -0
  260. package/dist/ra-core/src/dataTable/DataTableColumnFilterContext.d.ts +2 -0
  261. package/dist/ra-core/src/dataTable/DataTableColumnFilterContext.js +3 -0
  262. package/dist/ra-core/src/dataTable/DataTableColumnRankContext.d.ts +2 -0
  263. package/dist/ra-core/src/dataTable/DataTableColumnRankContext.js +3 -0
  264. package/dist/ra-core/src/dataTable/DataTableConfigContext.d.ts +22 -0
  265. package/dist/ra-core/src/dataTable/DataTableConfigContext.js +7 -0
  266. package/dist/ra-core/src/dataTable/DataTableDataContext.d.ts +4 -0
  267. package/dist/ra-core/src/dataTable/DataTableDataContext.js +3 -0
  268. package/dist/ra-core/src/dataTable/DataTableRenderContext.d.ts +3 -0
  269. package/dist/ra-core/src/dataTable/DataTableRenderContext.js +3 -0
  270. package/dist/ra-core/src/dataTable/DataTableSelectedIdsContext.d.ts +3 -0
  271. package/dist/ra-core/src/dataTable/DataTableSelectedIdsContext.js +3 -0
  272. package/dist/ra-core/src/dataTable/DataTableSortContext.d.ts +3 -0
  273. package/dist/ra-core/src/dataTable/DataTableSortContext.js +3 -0
  274. package/dist/ra-core/src/dataTable/DataTableStoreContext.d.ts +8 -0
  275. package/dist/ra-core/src/dataTable/DataTableStoreContext.js +6 -0
  276. package/dist/ra-core/src/dataTable/index.d.ts +11 -0
  277. package/dist/ra-core/src/dataTable/index.js +11 -0
  278. package/dist/ra-core/src/dataTable/types.d.ts +2 -0
  279. package/dist/ra-core/src/dataTable/types.js +1 -0
  280. package/dist/ra-core/src/export/ExporterContext.d.ts +2 -0
  281. package/dist/ra-core/src/export/ExporterContext.js +4 -0
  282. package/dist/ra-core/src/export/defaultExporter.d.ts +2 -0
  283. package/dist/ra-core/src/export/defaultExporter.js +3 -0
  284. package/dist/ra-core/src/export/downloadCSV.d.ts +1 -0
  285. package/dist/ra-core/src/export/downloadCSV.js +17 -0
  286. package/dist/ra-core/src/export/fetchRelatedRecords.d.ts +14 -0
  287. package/dist/ra-core/src/export/fetchRelatedRecords.js +19 -0
  288. package/dist/ra-core/src/export/getRelatedIds.d.ts +24 -0
  289. package/dist/ra-core/src/export/getRelatedIds.js +26 -0
  290. package/dist/ra-core/src/export/index.d.ts +5 -0
  291. package/dist/ra-core/src/export/index.js +5 -0
  292. package/dist/ra-core/src/export/useBulkExport.d.ts +11 -0
  293. package/dist/ra-core/src/export/useBulkExport.js +30 -0
  294. package/dist/ra-core/src/form/WarnWhenUnsavedChanges.d.ts +5 -0
  295. package/dist/ra-core/src/form/WarnWhenUnsavedChanges.js +5 -0
  296. package/dist/ra-core/src/form/choices/ChoicesContext.d.ts +65 -0
  297. package/dist/ra-core/src/form/choices/ChoicesContext.js +7 -0
  298. package/dist/ra-core/src/form/choices/index.d.ts +4 -0
  299. package/dist/ra-core/src/form/choices/index.js +4 -0
  300. package/dist/ra-core/src/form/choices/useChoicesContext.d.ts +5 -0
  301. package/dist/ra-core/src/form/choices/useChoicesContext.js +62 -0
  302. package/dist/ra-core/src/form/getFormInitialValues.d.ts +8 -0
  303. package/dist/ra-core/src/form/getFormInitialValues.js +14 -0
  304. package/dist/ra-core/src/form/groups/FormGroupContext.d.ts +9 -0
  305. package/dist/ra-core/src/form/groups/FormGroupContext.js +9 -0
  306. package/dist/ra-core/src/form/groups/index.d.ts +6 -0
  307. package/dist/ra-core/src/form/groups/index.js +6 -0
  308. package/dist/ra-core/src/form/groups/useFormGroup.d.ts +67 -0
  309. package/dist/ra-core/src/form/groups/useFormGroup.js +146 -0
  310. package/dist/ra-core/src/form/groups/useFormGroupContext.d.ts +4 -0
  311. package/dist/ra-core/src/form/groups/useFormGroupContext.js +9 -0
  312. package/dist/ra-core/src/form/groups/useFormGroups.d.ts +4 -0
  313. package/dist/ra-core/src/form/groups/useFormGroups.js +9 -0
  314. package/dist/ra-core/src/form/index.d.ts +14 -0
  315. package/dist/ra-core/src/form/index.js +14 -0
  316. package/dist/ra-core/src/form/sanitizeEmptyValues.d.ts +7 -0
  317. package/dist/ra-core/src/form/sanitizeEmptyValues.js +26 -0
  318. package/dist/ra-core/src/form/useApplyInputDefaultValues.d.ts +19 -0
  319. package/dist/ra-core/src/form/useApplyInputDefaultValues.js +71 -0
  320. package/dist/ra-core/src/form/useAugmentedForm.d.ts +32 -0
  321. package/dist/ra-core/src/form/useAugmentedForm.js +101 -0
  322. package/dist/ra-core/src/form/useFormIsDirty.d.ts +4 -0
  323. package/dist/ra-core/src/form/useFormIsDirty.js +39 -0
  324. package/dist/ra-core/src/form/useInput.d.ts +33 -0
  325. package/dist/ra-core/src/form/useInput.js +100 -0
  326. package/dist/ra-core/src/form/useRecordFromLocation.d.ts +22 -0
  327. package/dist/ra-core/src/form/useRecordFromLocation.js +59 -0
  328. package/dist/ra-core/src/form/useSuggestions.d.ts +43 -0
  329. package/dist/ra-core/src/form/useSuggestions.js +186 -0
  330. package/dist/ra-core/src/form/validation/getSimpleValidationResolver.d.ts +31 -0
  331. package/dist/ra-core/src/form/validation/getSimpleValidationResolver.js +87 -0
  332. package/dist/ra-core/src/form/validation/index.d.ts +7 -0
  333. package/dist/ra-core/src/form/validation/index.js +7 -0
  334. package/dist/ra-core/src/form/validation/setSubmissionErrors.d.ts +21 -0
  335. package/dist/ra-core/src/form/validation/setSubmissionErrors.js +34 -0
  336. package/dist/ra-core/src/form/validation/useGetValidationErrorMessage.d.ts +26 -0
  337. package/dist/ra-core/src/form/validation/useGetValidationErrorMessage.js +35 -0
  338. package/dist/ra-core/src/form/validation/useNotifyIsFormInvalid.d.ts +9 -0
  339. package/dist/ra-core/src/form/validation/useNotifyIsFormInvalid.js +30 -0
  340. package/dist/ra-core/src/form/validation/useUnique.d.ts +57 -0
  341. package/dist/ra-core/src/form/validation/useUnique.js +107 -0
  342. package/dist/ra-core/src/form/validation/validate.d.ts +168 -0
  343. package/dist/ra-core/src/form/validation/validate.js +218 -0
  344. package/dist/ra-core/src/i18n/I18nContext.d.ts +3 -0
  345. package/dist/ra-core/src/i18n/I18nContext.js +11 -0
  346. package/dist/ra-core/src/i18n/TranslatableContext.d.ts +16 -0
  347. package/dist/ra-core/src/i18n/TranslatableContext.js +2 -0
  348. package/dist/ra-core/src/i18n/TranslationMessages.d.ts +221 -0
  349. package/dist/ra-core/src/i18n/TranslationMessages.js +1 -0
  350. package/dist/ra-core/src/i18n/TranslationUtils.d.ts +60 -0
  351. package/dist/ra-core/src/i18n/TranslationUtils.js +70 -0
  352. package/dist/ra-core/src/i18n/index.d.ts +20 -0
  353. package/dist/ra-core/src/i18n/index.js +20 -0
  354. package/dist/ra-core/src/i18n/substituteTokens.d.ts +8 -0
  355. package/dist/ra-core/src/i18n/substituteTokens.js +18 -0
  356. package/dist/ra-core/src/i18n/useI18nProvider.d.ts +12 -0
  357. package/dist/ra-core/src/i18n/useI18nProvider.js +14 -0
  358. package/dist/ra-core/src/i18n/useLocales.d.ts +31 -0
  359. package/dist/ra-core/src/i18n/useLocales.js +28 -0
  360. package/dist/ra-core/src/i18n/useResourceTranslation.d.ts +8 -0
  361. package/dist/ra-core/src/i18n/useResourceTranslation.js +18 -0
  362. package/dist/ra-core/src/i18n/useTranslatable.d.ts +29 -0
  363. package/dist/ra-core/src/i18n/useTranslatable.js +98 -0
  364. package/dist/ra-core/src/i18n/useTranslatableContext.d.ts +31 -0
  365. package/dist/ra-core/src/i18n/useTranslatableContext.js +38 -0
  366. package/dist/ra-core/src/i18n/useTranslate.d.ts +21 -0
  367. package/dist/ra-core/src/i18n/useTranslate.js +29 -0
  368. package/dist/ra-core/src/i18n/useTranslateLabel.d.ts +6 -0
  369. package/dist/ra-core/src/i18n/useTranslateLabel.js +26 -0
  370. package/dist/ra-core/src/index.d.ts +16 -0
  371. package/dist/ra-core/src/index.js +16 -0
  372. package/dist/ra-core/src/inference/InferredElement.d.ts +12 -0
  373. package/dist/ra-core/src/inference/InferredElement.js +40 -0
  374. package/dist/ra-core/src/inference/assertions.d.ts +26 -0
  375. package/dist/ra-core/src/inference/assertions.js +38 -0
  376. package/dist/ra-core/src/inference/getElementsFromRecords.d.ts +35 -0
  377. package/dist/ra-core/src/inference/getElementsFromRecords.js +39 -0
  378. package/dist/ra-core/src/inference/getValuesFromRecords.d.ts +28 -0
  379. package/dist/ra-core/src/inference/getValuesFromRecords.js +40 -0
  380. package/dist/ra-core/src/inference/index.d.ts +6 -0
  381. package/dist/ra-core/src/inference/index.js +6 -0
  382. package/dist/ra-core/src/inference/inferTypeFromValues.d.ts +21 -0
  383. package/dist/ra-core/src/inference/inferTypeFromValues.js +141 -0
  384. package/dist/ra-core/src/inference/types.d.ts +9 -0
  385. package/dist/ra-core/src/inference/types.js +1 -0
  386. package/dist/ra-core/src/notification/CloseNotificationContext.d.ts +2 -0
  387. package/dist/ra-core/src/notification/CloseNotificationContext.js +2 -0
  388. package/dist/ra-core/src/notification/NotificationContext.d.ts +37 -0
  389. package/dist/ra-core/src/notification/NotificationContext.js +35 -0
  390. package/dist/ra-core/src/notification/index.d.ts +9 -0
  391. package/dist/ra-core/src/notification/index.js +9 -0
  392. package/dist/ra-core/src/notification/types.d.ts +14 -0
  393. package/dist/ra-core/src/notification/types.js +1 -0
  394. package/dist/ra-core/src/notification/useCloseNotification.d.ts +1 -0
  395. package/dist/ra-core/src/notification/useCloseNotification.js +9 -0
  396. package/dist/ra-core/src/notification/useNotificationContext.d.ts +1 -0
  397. package/dist/ra-core/src/notification/useNotificationContext.js +3 -0
  398. package/dist/ra-core/src/notification/useNotify.d.ts +20 -0
  399. package/dist/ra-core/src/notification/useNotify.js +28 -0
  400. package/dist/ra-core/src/preferences/index.d.ts +7 -0
  401. package/dist/ra-core/src/preferences/index.js +7 -0
  402. package/dist/ra-core/src/preferences/usePreference.d.ts +18 -0
  403. package/dist/ra-core/src/preferences/usePreference.js +10 -0
  404. package/dist/ra-core/src/preferences/usePreferenceInput.d.ts +22 -0
  405. package/dist/ra-core/src/preferences/usePreferenceInput.js +43 -0
  406. package/dist/ra-core/src/preferences/usePreferencesEditor.d.ts +2 -0
  407. package/dist/ra-core/src/preferences/usePreferencesEditor.js +9 -0
  408. package/dist/ra-core/src/preferences/useSetInspectorTitle.d.ts +7 -0
  409. package/dist/ra-core/src/preferences/useSetInspectorTitle.js +19 -0
  410. package/dist/ra-core/src/routing/BasenameContext.d.ts +1 -0
  411. package/dist/ra-core/src/routing/BasenameContext.js +2 -0
  412. package/dist/ra-core/src/routing/RouterProvider.d.ts +163 -0
  413. package/dist/ra-core/src/routing/RouterProvider.js +1 -0
  414. package/dist/ra-core/src/routing/index.d.ts +28 -0
  415. package/dist/ra-core/src/routing/index.js +28 -0
  416. package/dist/ra-core/src/routing/types.d.ts +3 -0
  417. package/dist/ra-core/src/routing/types.js +1 -0
  418. package/dist/ra-core/src/routing/useBasename.d.ts +21 -0
  419. package/dist/ra-core/src/routing/useBasename.js +23 -0
  420. package/dist/ra-core/src/routing/useBlocker.d.ts +14 -0
  421. package/dist/ra-core/src/routing/useBlocker.js +17 -0
  422. package/dist/ra-core/src/routing/useCanBlock.d.ts +7 -0
  423. package/dist/ra-core/src/routing/useCanBlock.js +11 -0
  424. package/dist/ra-core/src/routing/useCreatePath.d.ts +42 -0
  425. package/dist/ra-core/src/routing/useCreatePath.js +69 -0
  426. package/dist/ra-core/src/routing/useGetPathForRecord.d.ts +42 -0
  427. package/dist/ra-core/src/routing/useGetPathForRecord.js +135 -0
  428. package/dist/ra-core/src/routing/useGetPathForRecordCallback.d.ts +6 -0
  429. package/dist/ra-core/src/routing/useGetPathForRecordCallback.js +82 -0
  430. package/dist/ra-core/src/routing/useInRouterContext.d.ts +11 -0
  431. package/dist/ra-core/src/routing/useInRouterContext.js +15 -0
  432. package/dist/ra-core/src/routing/useLocation.d.ts +10 -0
  433. package/dist/ra-core/src/routing/useLocation.js +13 -0
  434. package/dist/ra-core/src/routing/useMatch.d.ts +15 -0
  435. package/dist/ra-core/src/routing/useMatch.js +15 -0
  436. package/dist/ra-core/src/routing/useMatchPath.d.ts +17 -0
  437. package/dist/ra-core/src/routing/useMatchPath.js +17 -0
  438. package/dist/ra-core/src/routing/useNavigate.d.ts +12 -0
  439. package/dist/ra-core/src/routing/useNavigate.js +15 -0
  440. package/dist/ra-core/src/routing/useParams.d.ts +9 -0
  441. package/dist/ra-core/src/routing/useParams.js +13 -0
  442. package/dist/ra-core/src/routing/useRedirect.d.ts +30 -0
  443. package/dist/ra-core/src/routing/useRedirect.js +66 -0
  444. package/dist/ra-core/src/routing/useResetErrorBoundaryOnLocationChange.d.ts +7 -0
  445. package/dist/ra-core/src/routing/useResetErrorBoundaryOnLocationChange.js +17 -0
  446. package/dist/ra-core/src/routing/useRestoreScrollPosition.d.ts +40 -0
  447. package/dist/ra-core/src/routing/useRestoreScrollPosition.js +70 -0
  448. package/dist/ra-core/src/routing/useSplatPathBase.d.ts +13 -0
  449. package/dist/ra-core/src/routing/useSplatPathBase.js +21 -0
  450. package/dist/ra-core/src/store/index.d.ts +11 -0
  451. package/dist/ra-core/src/store/index.js +11 -0
  452. package/dist/ra-core/src/store/localStorageStore.d.ts +27 -0
  453. package/dist/ra-core/src/store/localStorageStore.js +198 -0
  454. package/dist/ra-core/src/store/types.d.ts +11 -0
  455. package/dist/ra-core/src/store/types.js +1 -0
  456. package/dist/ra-core/src/store/useRemoveFromStore.d.ts +17 -0
  457. package/dist/ra-core/src/store/useRemoveFromStore.js +29 -0
  458. package/dist/ra-core/src/store/useRemoveItemsFromStore.d.ts +17 -0
  459. package/dist/ra-core/src/store/useRemoveItemsFromStore.js +29 -0
  460. package/dist/ra-core/src/store/useResetStore.d.ts +17 -0
  461. package/dist/ra-core/src/store/useResetStore.js +21 -0
  462. package/dist/ra-core/src/store/useStore.d.ts +48 -0
  463. package/dist/ra-core/src/store/useStore.js +32 -0
  464. package/dist/ra-core/src/store/useStoreContext.d.ts +4 -0
  465. package/dist/ra-core/src/store/useStoreContext.js +6 -0
  466. package/dist/ra-core/src/test-ui/defaultI18nProvider.d.ts +2 -0
  467. package/dist/ra-core/src/test-ui/defaultI18nProvider.js +10 -0
  468. package/dist/ra-core/src/test-ui/index.d.ts +21 -0
  469. package/dist/ra-core/src/test-ui/index.js +21 -0
  470. package/dist/ra-core/src/types.d.ts +284 -0
  471. package/dist/ra-core/src/types.js +5 -0
  472. package/dist/ra-core/src/util/asyncDebounce.d.ts +7 -0
  473. package/dist/ra-core/src/util/asyncDebounce.js +29 -0
  474. package/dist/ra-core/src/util/escapePath.d.ts +11 -0
  475. package/dist/ra-core/src/util/escapePath.js +10 -0
  476. package/dist/ra-core/src/util/genericMemo.d.ts +5 -0
  477. package/dist/ra-core/src/util/genericMemo.js +14 -0
  478. package/dist/ra-core/src/util/getFieldLabelTranslationArgs.d.ts +22 -0
  479. package/dist/ra-core/src/util/getFieldLabelTranslationArgs.js +73 -0
  480. package/dist/ra-core/src/util/getMutationMode.d.ts +1 -0
  481. package/dist/ra-core/src/util/getMutationMode.js +13 -0
  482. package/dist/ra-core/src/util/hooks.d.ts +15 -0
  483. package/dist/ra-core/src/util/hooks.js +73 -0
  484. package/dist/ra-core/src/util/index.d.ts +20 -0
  485. package/dist/ra-core/src/util/index.js +19 -0
  486. package/dist/ra-core/src/util/mergeRefs.d.ts +2 -0
  487. package/dist/ra-core/src/util/mergeRefs.js +13 -0
  488. package/dist/ra-core/src/util/removeEmpty.d.ts +2 -0
  489. package/dist/ra-core/src/util/removeEmpty.js +16 -0
  490. package/dist/ra-core/src/util/removeKey.d.ts +2 -0
  491. package/dist/ra-core/src/util/removeKey.js +22 -0
  492. package/dist/ra-core/src/util/shallowEqual.d.ts +1 -0
  493. package/dist/ra-core/src/util/shallowEqual.js +29 -0
  494. package/dist/ra-core/src/util/useCheckForApplicationUpdate.d.ts +21 -0
  495. package/dist/ra-core/src/util/useCheckForApplicationUpdate.js +84 -0
  496. package/dist/ra-core/src/util/useDebouncedEvent.d.ts +8 -0
  497. package/dist/ra-core/src/util/useDebouncedEvent.js +28 -0
  498. package/dist/ra-core/src/util/useEvent.d.ts +7 -0
  499. package/dist/ra-core/src/util/useEvent.js +19 -0
  500. package/dist/ra-core/src/util/useFieldValue.d.ts +21 -0
  501. package/dist/ra-core/src/util/useFieldValue.js +27 -0
  502. package/dist/ra-core/src/util/useWhyDidYouUpdate.d.ts +12 -0
  503. package/dist/ra-core/src/util/useWhyDidYouUpdate.js +42 -0
  504. package/dist/ra-core/src/util/warning.d.ts +2 -0
  505. package/dist/ra-core/src/util/warning.js +5 -0
  506. package/dist/strato-faker-ecommerce/src/dataProvider.d.ts +2 -0
  507. package/dist/strato-faker-ecommerce/src/dataProvider.js +6 -0
  508. package/dist/strato-faker-ecommerce/src/generate.d.ts +8 -0
  509. package/dist/strato-faker-ecommerce/src/generate.js +148 -0
  510. package/dist/strato-faker-ecommerce/src/index.d.ts +3 -0
  511. package/dist/strato-faker-ecommerce/src/index.js +3 -0
  512. package/dist/strato-faker-ecommerce/src/types.d.ts +69 -0
  513. package/dist/strato-faker-ecommerce/src/types.js +1 -0
  514. package/dist/types.d.ts +1 -1
  515. package/package.json +5 -4
  516. package/src/dataProvider.ts +3 -3
  517. package/src/generate.test.ts +12 -12
  518. package/src/generate.ts +21 -14
  519. package/src/types.ts +1 -1
@@ -2,5 +2,4 @@ import fakeRestDataProvider from 'ra-data-fakerest';
2
2
  import { generateEcommerceData } from './generate';
3
3
  const data = generateEcommerceData();
4
4
  export const dataProvider = fakeRestDataProvider(data, true, // logging
5
- 500 // simulate network delay
6
- );
5
+ 500);
@@ -1,8 +1,9 @@
1
- import { Category, Customer, Order, Product, Review } from './types';
1
+ import { Category, Customer, Order, OrderItem, Product, Review } from './types';
2
2
  export declare const generateEcommerceData: () => {
3
3
  categories: Category[];
4
4
  customers: Customer[];
5
5
  products: Product[];
6
6
  reviews: Review[];
7
7
  orders: Order[];
8
+ 'order-items': OrderItem[];
8
9
  };
package/dist/generate.js CHANGED
@@ -31,7 +31,10 @@ export const generateEcommerceData = () => {
31
31
  const last_seen = faker.date.between({ from: first_seen, to: new Date() });
32
32
  const has_ordered = faker.datatype.boolean({ probability: 0.8 });
33
33
  const has_newsletter = faker.datatype.boolean({ probability: 0.3 });
34
- const groups = faker.helpers.arrayElements(['collector', 'ordered_once', 'regular', 'reviewer'], { min: 0, max: 2 });
34
+ const groups = faker.helpers.arrayElements(['collector', 'ordered_once', 'regular', 'reviewer'], {
35
+ min: 0,
36
+ max: 2,
37
+ });
35
38
  return {
36
39
  id,
37
40
  first_name,
@@ -89,21 +92,24 @@ export const generateEcommerceData = () => {
89
92
  };
90
93
  });
91
94
  // 5. Generate Orders
95
+ const allOrderItems = [];
92
96
  const orders = Array.from({ length: 300 }, (_, id) => {
93
- const customer = faker.helpers.arrayElement(customers.filter(c => c.has_ordered));
97
+ const customer = faker.helpers.arrayElement(customers.filter((c) => c.has_ordered));
94
98
  const date = faker.date.between({ from: customer.first_seen, to: customer.last_seen });
95
99
  const nbItems = faker.number.int({ min: 1, max: 5 });
96
- const basket = Array.from({ length: nbItems }, (_, itemId) => {
100
+ const items = Array.from({ length: nbItems }, (_, itemId) => {
97
101
  const product = faker.helpers.arrayElement(products);
98
- return {
102
+ const item = {
99
103
  id: id * 10 + itemId,
100
104
  order_id: id,
101
105
  product_id: product.id,
102
106
  quantity: faker.number.int({ min: 1, max: 10 }),
103
107
  unit_price: product.price,
104
108
  };
109
+ allOrderItems.push(item);
110
+ return item;
105
111
  });
106
- const total_ex_taxes = basket.reduce((sum, item) => sum + item.quantity * item.unit_price, 0);
112
+ const total_ex_taxes = items.reduce((sum, item) => sum + item.quantity * item.unit_price, 0);
107
113
  const delivery_fees = faker.number.float({ min: 0, max: 20, fractionDigits: 2 });
108
114
  const tax_rate = 0.2;
109
115
  const taxes = (total_ex_taxes + delivery_fees) * tax_rate;
@@ -117,8 +123,8 @@ export const generateEcommerceData = () => {
117
123
  customer.latest_purchase = date;
118
124
  }
119
125
  // Update product stats
120
- basket.forEach(item => {
121
- const product = products.find(p => p.id === item.product_id);
126
+ items.forEach((item) => {
127
+ const product = products.find((p) => p.id === item.product_id);
122
128
  if (product) {
123
129
  product.sales += item.quantity;
124
130
  }
@@ -128,7 +134,7 @@ export const generateEcommerceData = () => {
128
134
  reference: faker.string.alphanumeric({ length: 6, casing: 'upper' }),
129
135
  date,
130
136
  customer_id: customer.id,
131
- basket,
137
+ items,
132
138
  total_ex_taxes,
133
139
  delivery_fees,
134
140
  tax_rate,
@@ -144,5 +150,6 @@ export const generateEcommerceData = () => {
144
150
  products,
145
151
  reviews,
146
152
  orders,
153
+ 'order-items': allOrderItems,
147
154
  };
148
155
  };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Log the user out and redirect them to login.
3
+ *
4
+ * To be used as a catch-all route for anonymous users in a secure app.
5
+ *
6
+ * @see CoreAdminRoutes
7
+ */
8
+ export declare const LogoutOnMount: () => null;
@@ -0,0 +1,16 @@
1
+ import { useEffect } from 'react';
2
+ import useLogout from './useLogout';
3
+ /**
4
+ * Log the user out and redirect them to login.
5
+ *
6
+ * To be used as a catch-all route for anonymous users in a secure app.
7
+ *
8
+ * @see CoreAdminRoutes
9
+ */
10
+ export const LogoutOnMount = () => {
11
+ const logout = useLogout();
12
+ useEffect(() => {
13
+ logout();
14
+ }, [logout]);
15
+ return null;
16
+ };
@@ -0,0 +1,22 @@
1
+ import { AuthProvider } from '../types';
2
+ /**
3
+ * A higher-order function which wraps an authProvider to handle refreshing authentication.
4
+ * This is useful when the authentication service supports a refresh token mechanism.
5
+ * The wrapped provider will call the refreshAuth function before
6
+ * calling the authProvider checkAuth, getIdentity and getPermissions methods.
7
+ *
8
+ * The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed.
9
+ * It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual.
10
+ *
11
+ * @param provider An authProvider
12
+ * @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise.
13
+ * @returns A wrapped authProvider.
14
+ *
15
+ * @example
16
+ * import { addRefreshAuthToAuthProvider } from 'react-admin';
17
+ * import { authProvider } from './authProvider';
18
+ * import { refreshAuth } from './refreshAuth';
19
+ *
20
+ * const authProvider = addRefreshAuthToAuthProvider(authProvider, refreshAuth);
21
+ */
22
+ export declare const addRefreshAuthToAuthProvider: <AuthProviderType extends AuthProvider = AuthProvider>(provider: AuthProviderType, refreshAuth: () => Promise<void>) => AuthProviderType;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * A higher-order function which wraps an authProvider to handle refreshing authentication.
3
+ * This is useful when the authentication service supports a refresh token mechanism.
4
+ * The wrapped provider will call the refreshAuth function before
5
+ * calling the authProvider checkAuth, getIdentity and getPermissions methods.
6
+ *
7
+ * The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed.
8
+ * It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual.
9
+ *
10
+ * @param provider An authProvider
11
+ * @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise.
12
+ * @returns A wrapped authProvider.
13
+ *
14
+ * @example
15
+ * import { addRefreshAuthToAuthProvider } from 'react-admin';
16
+ * import { authProvider } from './authProvider';
17
+ * import { refreshAuth } from './refreshAuth';
18
+ *
19
+ * const authProvider = addRefreshAuthToAuthProvider(authProvider, refreshAuth);
20
+ */
21
+ export const addRefreshAuthToAuthProvider = (provider, refreshAuth) => {
22
+ const proxy = new Proxy(provider, {
23
+ get(_, name) {
24
+ const shouldIntercept = AuthProviderInterceptedMethods.includes(name.toString()) &&
25
+ provider[name.toString()] != null;
26
+ if (shouldIntercept) {
27
+ return async (...args) => {
28
+ await refreshAuth();
29
+ return provider[name.toString()](...args);
30
+ };
31
+ }
32
+ return provider[name.toString()];
33
+ },
34
+ });
35
+ return proxy;
36
+ };
37
+ const AuthProviderInterceptedMethods = [
38
+ 'checkAuth',
39
+ 'getIdentity',
40
+ 'getPermissions',
41
+ ];
@@ -0,0 +1,21 @@
1
+ import { DataProvider } from '../types';
2
+ /**
3
+ * A higher-order function which wraps a dataProvider to handle refreshing authentication.
4
+ * This is useful when the authentication service supports a refresh token mechanism.
5
+ * The wrapped provider will call the refreshAuth function before calling any dataProvider methods.
6
+ *
7
+ * The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed.
8
+ * It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual.
9
+ *
10
+ * @param provider A dataProvider
11
+ * @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise.
12
+ * @returns A wrapped dataProvider.
13
+ *
14
+ * @example
15
+ * import { addRefreshAuthToDataProvider } from 'react-admin';
16
+ * import { jsonServerProvider } from 'ra-data-json-server';
17
+ * import { refreshAuth } from './refreshAuth';
18
+ *
19
+ * const dataProvider = addRefreshAuthToDataProvider(jsonServerProvider('http://localhost:3000'), refreshAuth);
20
+ */
21
+ export declare const addRefreshAuthToDataProvider: <DataProviderType extends DataProvider = DataProvider>(provider: DataProviderType, refreshAuth: () => Promise<void>) => DataProviderType;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * A higher-order function which wraps a dataProvider to handle refreshing authentication.
3
+ * This is useful when the authentication service supports a refresh token mechanism.
4
+ * The wrapped provider will call the refreshAuth function before calling any dataProvider methods.
5
+ *
6
+ * The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed.
7
+ * It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual.
8
+ *
9
+ * @param provider A dataProvider
10
+ * @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise.
11
+ * @returns A wrapped dataProvider.
12
+ *
13
+ * @example
14
+ * import { addRefreshAuthToDataProvider } from 'react-admin';
15
+ * import { jsonServerProvider } from 'ra-data-json-server';
16
+ * import { refreshAuth } from './refreshAuth';
17
+ *
18
+ * const dataProvider = addRefreshAuthToDataProvider(jsonServerProvider('http://localhost:3000'), refreshAuth);
19
+ */
20
+ export const addRefreshAuthToDataProvider = (provider, refreshAuth) => {
21
+ const proxy = new Proxy(provider, {
22
+ get(_, name) {
23
+ return async (...args) => {
24
+ await refreshAuth();
25
+ return provider[name.toString()](...args);
26
+ };
27
+ },
28
+ });
29
+ return proxy;
30
+ };
@@ -0,0 +1,12 @@
1
+ import { AuthProvider, LegacyAuthProvider } from '../types';
2
+ /**
3
+ * Turn a function-based authProvider to an object-based one
4
+ *
5
+ * Allows using legacy authProviders transparently.
6
+ *
7
+ * @param {Function} legacyAuthProvider A legacy authProvider (type, params) => Promise<any>
8
+ *
9
+ * @returns {Object} An authProvider that react-admin can use
10
+ */
11
+ declare const _default: (legacyAuthProvider: LegacyAuthProvider) => AuthProvider;
12
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import { AUTH_LOGIN, AUTH_LOGOUT, AUTH_CHECK, AUTH_ERROR, AUTH_GET_PERMISSIONS, } from './types';
2
+ /**
3
+ * Turn a function-based authProvider to an object-based one
4
+ *
5
+ * Allows using legacy authProviders transparently.
6
+ *
7
+ * @param {Function} legacyAuthProvider A legacy authProvider (type, params) => Promise<any>
8
+ *
9
+ * @returns {Object} An authProvider that react-admin can use
10
+ */
11
+ export default (legacyAuthProvider) => {
12
+ const authProvider = (...args) => legacyAuthProvider.apply(null, args);
13
+ authProvider.login = params => legacyAuthProvider(AUTH_LOGIN, params);
14
+ authProvider.logout = params => legacyAuthProvider(AUTH_LOGOUT, params);
15
+ authProvider.checkAuth = params => legacyAuthProvider(AUTH_CHECK, params);
16
+ authProvider.checkError = error => legacyAuthProvider(AUTH_ERROR, error);
17
+ authProvider.getPermissions = params => legacyAuthProvider(AUTH_GET_PERMISSIONS, params);
18
+ return authProvider;
19
+ };
@@ -0,0 +1,27 @@
1
+ import useAuthProvider from './useAuthProvider';
2
+ import useAuthState from './useAuthState';
3
+ import usePermissions from './usePermissions';
4
+ import WithPermissions, { WithPermissionsProps } from './WithPermissions';
5
+ import useLogin from './useLogin';
6
+ import useLogout from './useLogout';
7
+ import useGetPermissions from './useGetPermissions';
8
+ import useLogoutIfAccessDenied from './useLogoutIfAccessDenied';
9
+ import convertLegacyAuthProvider from './convertLegacyAuthProvider';
10
+ export * from './Authenticated';
11
+ export * from './AuthContext';
12
+ export * from './CanAccess';
13
+ export * from './LogoutOnMount';
14
+ export * from './types';
15
+ export * from './useAuthenticated';
16
+ export * from './useCanAccess';
17
+ export * from './useCanAccessResources';
18
+ export * from './useCanAccessCallback';
19
+ export * from './useCheckAuth';
20
+ export * from './useGetIdentity';
21
+ export * from './useHandleAuthCallback';
22
+ export * from './useIsAuthPending';
23
+ export * from './useRequireAccess';
24
+ export * from './addRefreshAuthToAuthProvider';
25
+ export * from './addRefreshAuthToDataProvider';
26
+ export { useAuthProvider, convertLegacyAuthProvider, useLogin, useLogout, useGetPermissions, usePermissions, useAuthState, useLogoutIfAccessDenied, WithPermissions, };
27
+ export type { WithPermissionsProps };
@@ -0,0 +1,34 @@
1
+ import useAuthProvider from './useAuthProvider';
2
+ import useAuthState from './useAuthState';
3
+ import usePermissions from './usePermissions';
4
+ import WithPermissions from './WithPermissions';
5
+ import useLogin from './useLogin';
6
+ import useLogout from './useLogout';
7
+ import useGetPermissions from './useGetPermissions';
8
+ import useLogoutIfAccessDenied from './useLogoutIfAccessDenied';
9
+ import convertLegacyAuthProvider from './convertLegacyAuthProvider';
10
+ export * from './Authenticated';
11
+ export * from './AuthContext';
12
+ export * from './CanAccess';
13
+ export * from './LogoutOnMount';
14
+ export * from './types';
15
+ export * from './useAuthenticated';
16
+ export * from './useCanAccess';
17
+ export * from './useCanAccessResources';
18
+ export * from './useCanAccessCallback';
19
+ export * from './useCheckAuth';
20
+ export * from './useGetIdentity';
21
+ export * from './useHandleAuthCallback';
22
+ export * from './useIsAuthPending';
23
+ export * from './useRequireAccess';
24
+ export * from './addRefreshAuthToAuthProvider';
25
+ export * from './addRefreshAuthToDataProvider';
26
+ export { useAuthProvider, convertLegacyAuthProvider,
27
+ // low-level hooks for calling a particular verb on the authProvider
28
+ useLogin, useLogout, useGetPermissions,
29
+ // hooks with state management
30
+ usePermissions, useAuthState,
31
+ // hook with immediate effect
32
+ useLogoutIfAccessDenied,
33
+ // components
34
+ WithPermissions, };
@@ -0,0 +1,7 @@
1
+ export type UserCheck = (payload: object, pathName: string, routeParams?: object) => void;
2
+ export declare const AUTH_LOGIN = "AUTH_LOGIN";
3
+ export declare const AUTH_CHECK = "AUTH_CHECK";
4
+ export declare const AUTH_ERROR = "AUTH_ERROR";
5
+ export declare const AUTH_LOGOUT = "AUTH_LOGOUT";
6
+ export declare const AUTH_GET_PERMISSIONS = "AUTH_GET_PERMISSIONS";
7
+ export type AuthActionType = typeof AUTH_LOGIN | typeof AUTH_LOGOUT | typeof AUTH_ERROR | typeof AUTH_CHECK | typeof AUTH_GET_PERMISSIONS;
@@ -0,0 +1,5 @@
1
+ export const AUTH_LOGIN = 'AUTH_LOGIN';
2
+ export const AUTH_CHECK = 'AUTH_CHECK';
3
+ export const AUTH_ERROR = 'AUTH_ERROR';
4
+ export const AUTH_LOGOUT = 'AUTH_LOGOUT';
5
+ export const AUTH_GET_PERMISSIONS = 'AUTH_GET_PERMISSIONS';
@@ -0,0 +1,10 @@
1
+ import { AuthProvider } from '../types';
2
+ export declare const defaultAuthParams: {
3
+ loginUrl: string;
4
+ afterLoginUrl: string;
5
+ };
6
+ /**
7
+ * Get the authProvider stored in the context
8
+ */
9
+ declare const useAuthProvider: <AuthProviderType extends AuthProvider = AuthProvider>() => AuthProviderType | undefined;
10
+ export default useAuthProvider;
@@ -0,0 +1,11 @@
1
+ import { useContext } from 'react';
2
+ import { AuthContext } from './AuthContext';
3
+ export const defaultAuthParams = {
4
+ loginUrl: '/login',
5
+ afterLoginUrl: '/',
6
+ };
7
+ /**
8
+ * Get the authProvider stored in the context
9
+ */
10
+ const useAuthProvider = () => useContext(AuthContext);
11
+ export default useAuthProvider;
@@ -0,0 +1,48 @@
1
+ import { QueryObserverResult, UseQueryOptions } from '@tanstack/react-query';
2
+ /**
3
+ * Hook for getting the authentication status
4
+ *
5
+ * Calls the authProvider.checkAuth() method asynchronously.
6
+ *
7
+ * The return value updates according to the authProvider request state:
8
+ *
9
+ * - isPending: true just after mount, while the authProvider is being called. false once the authProvider has answered.
10
+ * - authenticated: true while loading. then true or false depending on the authProvider response.
11
+ *
12
+ * To avoid rendering a component and force waiting for the authProvider response, use the useAuthState() hook
13
+ * instead of the useAuthenticated() hook.
14
+ *
15
+ * You can render different content depending on the authenticated status.
16
+ *
17
+ * @see useAuthenticated()
18
+ *
19
+ * @param {Object} params Any params you want to pass to the authProvider
20
+ *
21
+ * @param {Boolean} logoutOnFailure: Optional. Whether the user should be logged out if the authProvider fails to authenticate them. False by default.
22
+ *
23
+ * @returns The current auth check state. Destructure as { authenticated, error, isPending }.
24
+ *
25
+ * @example
26
+ * import { useAuthState, Loading } from 'react-admin';
27
+ *
28
+ * const MyPage = () => {
29
+ * const { isPending, authenticated } = useAuthState();
30
+ * if (isPending) {
31
+ * return <Loading />;
32
+ * }
33
+ * if (authenticated) {
34
+ * return <AuthenticatedContent />;
35
+ * }
36
+ * return <AnonymousContent />;
37
+ * };
38
+ */
39
+ declare const useAuthState: <ErrorType = Error>(params?: any, logoutOnFailure?: boolean, queryOptions?: UseAuthStateOptions<ErrorType>) => UseAuthStateResult<ErrorType>;
40
+ type UseAuthStateOptions<ErrorType = Error> = Omit<UseQueryOptions<boolean, ErrorType>, 'queryKey' | 'queryFn'> & {
41
+ onSuccess?: (data: boolean) => void;
42
+ onError?: (err: ErrorType) => void;
43
+ onSettled?: (data?: boolean, error?: Error) => void;
44
+ };
45
+ export type UseAuthStateResult<ErrorType = Error> = QueryObserverResult<boolean, ErrorType> & {
46
+ authenticated?: QueryObserverResult<boolean, ErrorType>['data'];
47
+ };
48
+ export default useAuthState;
@@ -0,0 +1,171 @@
1
+ import { useEffect, useMemo } from 'react';
2
+ import { useQuery, } from '@tanstack/react-query';
3
+ import useAuthProvider, { defaultAuthParams } from './useAuthProvider';
4
+ import useLogout from './useLogout';
5
+ import { removeDoubleSlashes, useBasename } from '../routing';
6
+ import { useNotify } from '../notification';
7
+ import { useEvent } from '../util';
8
+ const emptyParams = {};
9
+ /**
10
+ * Hook for getting the authentication status
11
+ *
12
+ * Calls the authProvider.checkAuth() method asynchronously.
13
+ *
14
+ * The return value updates according to the authProvider request state:
15
+ *
16
+ * - isPending: true just after mount, while the authProvider is being called. false once the authProvider has answered.
17
+ * - authenticated: true while loading. then true or false depending on the authProvider response.
18
+ *
19
+ * To avoid rendering a component and force waiting for the authProvider response, use the useAuthState() hook
20
+ * instead of the useAuthenticated() hook.
21
+ *
22
+ * You can render different content depending on the authenticated status.
23
+ *
24
+ * @see useAuthenticated()
25
+ *
26
+ * @param {Object} params Any params you want to pass to the authProvider
27
+ *
28
+ * @param {Boolean} logoutOnFailure: Optional. Whether the user should be logged out if the authProvider fails to authenticate them. False by default.
29
+ *
30
+ * @returns The current auth check state. Destructure as { authenticated, error, isPending }.
31
+ *
32
+ * @example
33
+ * import { useAuthState, Loading } from 'react-admin';
34
+ *
35
+ * const MyPage = () => {
36
+ * const { isPending, authenticated } = useAuthState();
37
+ * if (isPending) {
38
+ * return <Loading />;
39
+ * }
40
+ * if (authenticated) {
41
+ * return <AuthenticatedContent />;
42
+ * }
43
+ * return <AnonymousContent />;
44
+ * };
45
+ */
46
+ const useAuthState = (params = emptyParams, logoutOnFailure = false, queryOptions = emptyParams) => {
47
+ const authProvider = useAuthProvider();
48
+ const logout = useLogout();
49
+ const basename = useBasename();
50
+ const notify = useNotify();
51
+ const { onSuccess, onError, onSettled, ...options } = queryOptions;
52
+ const queryResult = useQuery({
53
+ queryKey: ['auth', 'checkAuth', params],
54
+ queryFn: async ({ signal }) => {
55
+ // The authProvider is optional in react-admin
56
+ if (!authProvider) {
57
+ return true;
58
+ }
59
+ try {
60
+ await authProvider.checkAuth({ ...params, signal });
61
+ return true;
62
+ }
63
+ catch (error) {
64
+ // This is necessary because react-query requires the error to be defined
65
+ if (error != null) {
66
+ throw error;
67
+ }
68
+ throw new Error();
69
+ }
70
+ },
71
+ retry: false,
72
+ ...options,
73
+ });
74
+ const onSuccessEvent = useEvent(onSuccess ?? noop);
75
+ const onSettledEvent = useEvent(onSettled ?? noop);
76
+ const onErrorEvent = useEvent(onError ??
77
+ ((error) => {
78
+ if (!logoutOnFailure)
79
+ return;
80
+ const loginUrl = removeDoubleSlashes(`${basename}/${defaultAuthParams.loginUrl}`);
81
+ logout({}, error && error.redirectTo != null
82
+ ? error.redirectTo
83
+ : loginUrl);
84
+ const shouldSkipNotify = error && error.message === false;
85
+ !shouldSkipNotify &&
86
+ notify(getErrorMessage(error, "strato.auth.auth_check_error'), {
87
+ type: 'error',
88
+ });
89
+ }));
90
+ useEffect(() => {
91
+ if (queryResult.data === undefined || queryResult.isFetching)
92
+ return;
93
+ if (queryOptions.enabled === false)
94
+ return;
95
+ onSuccessEvent(queryResult.data);
96
+ }, [
97
+ onSuccessEvent,
98
+ queryResult.data,
99
+ queryResult.isFetching,
100
+ queryOptions.enabled,
101
+ ]);
102
+ useEffect(() => {
103
+ if (queryResult.error == null || queryResult.isFetching)
104
+ return;
105
+ if (queryOptions.enabled === false)
106
+ return;
107
+ onErrorEvent(queryResult.error);
108
+ }, [
109
+ onErrorEvent,
110
+ queryResult.error,
111
+ queryResult.isFetching,
112
+ queryOptions.enabled,
113
+ ]);
114
+ useEffect(() => {
115
+ if (queryResult.status === 'pending' || queryResult.isFetching)
116
+ return;
117
+ if (queryOptions.enabled === false)
118
+ return;
119
+ onSettledEvent(queryResult.data, queryResult.error);
120
+ }, [
121
+ onSettledEvent,
122
+ queryResult.data,
123
+ queryResult.error,
124
+ queryResult.status,
125
+ queryResult.isFetching,
126
+ queryOptions.enabled,
127
+ ]);
128
+ const result = useMemo(() => {
129
+ return {
130
+ ...queryResult,
131
+ authenticated: queryResult.error ? false : queryResult.data,
132
+ };
133
+ }, [queryResult]);
134
+ return authProvider != null
135
+ ? result
136
+ : noAuthProviderQueryResult;
137
+ };
138
+ export default useAuthState;
139
+ const getErrorMessage = (error, defaultMessage) => typeof error === 'string'
140
+ ? error
141
+ : typeof error === 'undefined' || !error.message
142
+ ? defaultMessage
143
+ : error.message;
144
+ const noop = () => { };
145
+ const noAuthProviderQueryResult = {
146
+ authenticated: true,
147
+ data: true,
148
+ dataUpdatedAt: 0,
149
+ error: null,
150
+ errorUpdatedAt: 0,
151
+ errorUpdateCount: 0,
152
+ failureCount: 0,
153
+ failureReason: null,
154
+ fetchStatus: 'idle',
155
+ isError: false,
156
+ isInitialLoading: false,
157
+ isLoading: false,
158
+ isLoadingError: false,
159
+ isFetched: true,
160
+ isFetchedAfterMount: true,
161
+ isFetching: false,
162
+ isPaused: false,
163
+ isPlaceholderData: false,
164
+ isPending: false,
165
+ isRefetchError: false,
166
+ isRefetching: false,
167
+ isStale: false,
168
+ isSuccess: true,
169
+ status: 'success',
170
+ refetch: () => Promise.resolve(noAuthProviderQueryResult),
171
+ };
@@ -0,0 +1,36 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ /**
3
+ * Restrict access to authenticated users.
4
+ * Redirect anonymous users to the login page.
5
+ *
6
+ * Use it in your custom page components to require
7
+ * authentication.
8
+ *
9
+ * You can set additional `authParams` at will if your authProvider
10
+ * requires it.
11
+ *
12
+ * @example
13
+ * import { Admin, CustomRoutes, useAuthenticated } from 'react-admin';
14
+ *
15
+ * const FooPage = () => {
16
+ * const { isPending } = useAuthenticated();
17
+ * if (isPending) return null;
18
+ * return <Foo />;
19
+ * }
20
+ *
21
+ * const customRoutes = [
22
+ * <Route path="/foo" element={<FooPage />} />
23
+ * ];
24
+ *
25
+ * const App = () => (
26
+ * <Admin>
27
+ * <CustomRoutes>{customRoutes}</CustomRoutes>
28
+ * </Admin>
29
+ * );
30
+ */
31
+ export declare const useAuthenticated: <ParamsType = any>({ params, logoutOnFailure, ...options }?: UseAuthenticatedOptions<ParamsType>) => import("./useAuthState").UseAuthStateResult<any>;
32
+ export type UseAuthenticatedOptions<ParamsType> = Omit<UseQueryOptions<boolean, any> & {
33
+ params?: ParamsType;
34
+ }, 'queryKey' | 'queryFn'> & {
35
+ logoutOnFailure?: boolean;
36
+ };
@@ -0,0 +1,34 @@
1
+ import useAuthState from './useAuthState';
2
+ /**
3
+ * Restrict access to authenticated users.
4
+ * Redirect anonymous users to the login page.
5
+ *
6
+ * Use it in your custom page components to require
7
+ * authentication.
8
+ *
9
+ * You can set additional `authParams` at will if your authProvider
10
+ * requires it.
11
+ *
12
+ * @example
13
+ * import { Admin, CustomRoutes, useAuthenticated } from 'react-admin';
14
+ *
15
+ * const FooPage = () => {
16
+ * const { isPending } = useAuthenticated();
17
+ * if (isPending) return null;
18
+ * return <Foo />;
19
+ * }
20
+ *
21
+ * const customRoutes = [
22
+ * <Route path="/foo" element={<FooPage />} />
23
+ * ];
24
+ *
25
+ * const App = () => (
26
+ * <Admin>
27
+ * <CustomRoutes>{customRoutes}</CustomRoutes>
28
+ * </Admin>
29
+ * );
30
+ */
31
+ export const useAuthenticated = ({ params, logoutOnFailure = true, ...options } = {}) => {
32
+ return useAuthState(params ?? emptyParams, logoutOnFailure, options);
33
+ };
34
+ const emptyParams = {};