@refinedev/core
Version:
Refine is a React meta-framework for building enterprise-level, data-intensive applications rapidly with support for modern UI libraries and headless integrations.
1,376 lines (1,319 loc) • 310 kB
JavaScript
"use client"
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.tsx
var src_exports = {};
__export(src_exports, {
AccessControlContext: () => AccessControlContext,
ActionTypes: () => ActionTypes,
AuthPage: () => AuthPage,
Authenticated: () => Authenticated,
AutoSaveIndicator: () => AutoSaveIndicator,
CanAccess: () => CanAccess,
ErrorComponent: () => ErrorComponent,
GitHubBanner: () => GitHubBanner,
I18nContext: () => I18nContext,
KeyBuilder: () => KeyBuilder,
Link: () => Link,
MetaContextProvider: () => MetaContextProvider,
QS_PARSE_DEPTH: () => QS_PARSE_DEPTH,
Refine: () => Refine,
ResourceContext: () => ResourceContext,
RouteChangeHandler: () => RouteChangeHandler,
TranslationContext: () => I18nContext,
UndoableQueue: () => UndoableQueue,
WelcomePage: () => WelcomePage,
file2Base64: () => file2Base64,
flattenObjectKeys: () => flattenObjectKeys,
generateDefaultDocumentTitle: () => generateDefaultDocumentTitle,
getDefaultFilter: () => getDefaultFilter,
getDefaultSortOrder: () => getDefaultSortOrder,
getNextPageParam: () => getNextPageParam,
getPreviousPageParam: () => getPreviousPageParam,
handleUseParams: () => handleUseParams,
importCSVMapper: () => importCSVMapper,
keys: () => keys,
matchResourceFromRoute: () => matchResourceFromRoute,
parseTableParams: () => parseTableParams,
parseTableParamsFromQuery: () => parseTableParamsFromQuery,
pickDataProvider: () => pickDataProvider,
propertyPathToArray: () => propertyPathToArray,
setInitialFilters: () => setInitialFilters,
setInitialSorters: () => setInitialSorters,
stringifyTableParams: () => stringifyTableParams,
unionFilters: () => unionFilters,
unionSorters: () => unionSorters,
useActiveAuthProvider: () => useActiveAuthProvider,
useApiUrl: () => useApiUrl,
useBack: () => useBack,
useBreadcrumb: () => useBreadcrumb,
useCan: () => useCan,
useCanWithoutCache: () => useCanWithoutCache,
useCancelNotification: () => useCancelNotification,
useCloneButton: () => useCloneButton,
useCreate: () => useCreate,
useCreateButton: () => useCreateButton,
useCreateMany: () => useCreateMany,
useCustom: () => useCustom,
useCustomMutation: () => useCustomMutation,
useDataProvider: () => useDataProvider,
useDelete: () => useDelete,
useDeleteButton: () => useDeleteButton,
useDeleteMany: () => useDeleteMany,
useEditButton: () => useEditButton,
useExport: () => useExport,
useExportButton: () => useExportButton,
useForgotPassword: () => useForgotPassword,
useForm: () => useForm,
useGetIdentity: () => useGetIdentity,
useGetLocale: () => useGetLocale,
useGetToPath: () => useGetToPath,
useGo: () => useGo,
useHandleNotification: () => useHandleNotification,
useImport: () => useImport,
useImportButton: () => useImportButton,
useInfiniteList: () => useInfiniteList,
useInvalidate: () => useInvalidate,
useInvalidateAuthStore: () => useInvalidateAuthStore,
useIsAuthenticated: () => useIsAuthenticated,
useIsExistAuthentication: () => useIsExistAuthentication,
useKeys: () => useKeys,
useLink: () => useLink,
useList: () => useList,
useListButton: () => useListButton,
useLiveMode: () => useLiveMode,
useLoadingOvertime: () => useLoadingOvertime,
useLog: () => useLog,
useLogList: () => useLogList,
useLogin: () => useLogin,
useLogout: () => useLogout,
useMany: () => useMany,
useMenu: () => useMenu,
useMeta: () => useMeta,
useMetaContext: () => useMetaContext,
useModal: () => useModal,
useMutationMode: () => useMutationMode,
useNavigation: () => useNavigation2,
useNotification: () => useNotification,
useOnError: () => useOnError,
useOne: () => useOne,
useParse: () => useParse,
useParsed: () => useParsed,
usePermissions: () => usePermissions,
usePublish: () => usePublish,
useRedirectionAfterSubmission: () => useRedirectionAfterSubmission,
useRefineContext: () => useRefineContext,
useRefineOptions: () => useRefineOptions,
useRefreshButton: () => useRefreshButton,
useRegister: () => useRegister,
useResourceParams: () => useResourceParams,
useResourceSubscription: () => useResourceSubscription,
useSaveButton: () => useSaveButton,
useSelect: () => useSelect,
useSetLocale: () => useSetLocale,
useShow: () => useShow,
useShowButton: () => useShowButton,
useSubscription: () => useSubscription,
useSyncWithLocation: () => useSyncWithLocation,
useTable: () => useTable,
useToPath: () => useToPath,
useTranslate: () => useTranslate,
useTranslation: () => useTranslation,
useUpdate: () => useUpdate,
useUpdateMany: () => useUpdateMany,
useUpdatePassword: () => useUpdatePassword,
useUserFriendlyName: () => useUserFriendlyName,
useWarnAboutChange: () => useWarnAboutChange
});
module.exports = __toCommonJS(src_exports);
// src/components/pages/error/index.tsx
var import_react64 = __toESM(require("react"));
// src/hooks/auth/usePermissions/index.ts
var import_devtools_internal = require("@refinedev/devtools-internal");
var import_react_query2 = require("@tanstack/react-query");
// src/contexts/auth/index.tsx
var import_react = __toESM(require("react"));
var import_react_query = require("@tanstack/react-query");
var AuthProviderContext = import_react.default.createContext(
{}
);
var AuthProviderContextProvider = /* @__PURE__ */ __name(({ children, isProvided, ...authProvider }) => {
const queryClient = (0, import_react_query.useQueryClient)();
const handleLogin = /* @__PURE__ */ __name(async (params) => {
var _a;
try {
const result = await ((_a = authProvider.login) == null ? void 0 : _a.call(authProvider, params));
return result;
} catch (error) {
console.warn(
"Unhandled Error in login: refine always expects a resolved promise.",
error
);
return Promise.reject(error);
}
}, "handleLogin");
const handleRegister = /* @__PURE__ */ __name(async (params) => {
var _a;
try {
const result = await ((_a = authProvider.register) == null ? void 0 : _a.call(authProvider, params));
return result;
} catch (error) {
console.warn(
"Unhandled Error in register: refine always expects a resolved promise.",
error
);
return Promise.reject(error);
}
}, "handleRegister");
const handleLogout = /* @__PURE__ */ __name(async (params) => {
var _a;
try {
const result = await ((_a = authProvider.logout) == null ? void 0 : _a.call(authProvider, params));
queryClient.invalidateQueries();
return result;
} catch (error) {
console.warn(
"Unhandled Error in logout: refine always expects a resolved promise.",
error
);
return Promise.reject(error);
}
}, "handleLogout");
const handleCheck = /* @__PURE__ */ __name(async (params) => {
var _a;
try {
const result = await ((_a = authProvider.check) == null ? void 0 : _a.call(authProvider, params));
return Promise.resolve(result);
} catch (error) {
console.warn(
"Unhandled Error in check: refine always expects a resolved promise.",
error
);
return Promise.reject(error);
}
}, "handleCheck");
const handleForgotPassword = /* @__PURE__ */ __name(async (params) => {
var _a;
try {
const result = await ((_a = authProvider.forgotPassword) == null ? void 0 : _a.call(authProvider, params));
return Promise.resolve(result);
} catch (error) {
console.warn(
"Unhandled Error in forgotPassword: refine always expects a resolved promise.",
error
);
return Promise.reject(error);
}
}, "handleForgotPassword");
const handleUpdatePassword = /* @__PURE__ */ __name(async (params) => {
var _a;
try {
const result = await ((_a = authProvider.updatePassword) == null ? void 0 : _a.call(authProvider, params));
return Promise.resolve(result);
} catch (error) {
console.warn(
"Unhandled Error in updatePassword: refine always expects a resolved promise.",
error
);
return Promise.reject(error);
}
}, "handleUpdatePassword");
return /* @__PURE__ */ import_react.default.createElement(
AuthProviderContext.Provider,
{
value: {
...authProvider,
login: handleLogin,
logout: handleLogout,
check: handleCheck,
register: handleRegister,
forgotPassword: handleForgotPassword,
updatePassword: handleUpdatePassword,
isProvided
}
},
children
);
}, "AuthProviderContextProvider");
var useAuthProviderContext = /* @__PURE__ */ __name(() => {
const context = import_react.default.useContext(AuthProviderContext);
return context;
}, "useAuthProviderContext");
// src/definitions/table/index.ts
var import_differenceWith = __toESM(require("lodash/differenceWith"));
var import_unionWith = __toESM(require("lodash/unionWith"));
var import_qs = __toESM(require("qs"));
var import_warn_once = __toESM(require("warn-once"));
var QS_PARSE_DEPTH = 10;
var parseTableParams = /* @__PURE__ */ __name((url) => {
const { currentPage, pageSize, sorters, sorter, filters } = import_qs.default.parse(
url.substring(1),
// remove first ? character
{ depth: QS_PARSE_DEPTH }
);
return {
parsedCurrentPage: currentPage && Number(currentPage),
parsedPageSize: pageSize && Number(pageSize),
parsedSorter: sorters || sorter || [],
parsedFilters: filters ?? []
};
}, "parseTableParams");
var parseTableParamsFromQuery = /* @__PURE__ */ __name((params) => {
const { currentPage, pageSize, sorters, sorter, filters } = params;
return {
parsedCurrentPage: currentPage && Number(currentPage),
parsedPageSize: pageSize && Number(pageSize),
parsedSorter: sorters || sorter || [],
parsedFilters: filters ?? []
};
}, "parseTableParamsFromQuery");
var stringifyTableParams = /* @__PURE__ */ __name((params) => {
const options = {
skipNulls: true,
arrayFormat: "indices",
encode: false
};
const { pagination, sorters, sorter, filters, ...rest } = params;
const finalSorters = sorters && sorters.length > 0 ? sorters : sorter;
const queryString = import_qs.default.stringify(
{
...rest,
...pagination ? pagination : {},
sorters: finalSorters,
filters
},
options
);
return queryString;
}, "stringifyTableParams");
var compareFilters = /* @__PURE__ */ __name((left, right) => {
if (left.operator !== "and" && left.operator !== "or" && right.operator !== "and" && right.operator !== "or") {
return ("field" in left ? left.field : void 0) === ("field" in right ? right.field : void 0) && left.operator === right.operator;
}
return ("key" in left ? left.key : void 0) === ("key" in right ? right.key : void 0) && left.operator === right.operator;
}, "compareFilters");
var compareSorters = /* @__PURE__ */ __name((left, right) => left.field === right.field, "compareSorters");
var unionFilters = /* @__PURE__ */ __name((permanentFilter, newFilters, prevFilters = []) => {
const isKeyRequired = newFilters.filter(
(f) => (f.operator === "or" || f.operator === "and") && !f.key
);
if (isKeyRequired.length > 1) {
(0, import_warn_once.default)(
true,
"[conditionalFilters]: You have created multiple Conditional Filters at the top level, this requires the key parameter. \nFor more information, see https://refine.dev/docs/advanced-tutorials/data-provider/handling-filters/#top-level-multiple-conditional-filters-usage"
);
}
return (0, import_unionWith.default)(
permanentFilter,
newFilters,
prevFilters,
compareFilters
).filter(
(crudFilter) => crudFilter.value !== void 0 && crudFilter.value !== null && (crudFilter.operator !== "or" || crudFilter.operator === "or" && crudFilter.value.length !== 0) && (crudFilter.operator !== "and" || crudFilter.operator === "and" && crudFilter.value.length !== 0)
);
}, "unionFilters");
var unionSorters = /* @__PURE__ */ __name((permanentSorter, newSorters) => (0, import_unionWith.default)(permanentSorter, newSorters, compareSorters).filter(
(crudSorter) => crudSorter.order !== void 0 && crudSorter.order !== null
), "unionSorters");
var setInitialFilters = /* @__PURE__ */ __name((permanentFilter, defaultFilter) => [
...(0, import_differenceWith.default)(defaultFilter, permanentFilter, compareFilters),
...permanentFilter
], "setInitialFilters");
var setInitialSorters = /* @__PURE__ */ __name((permanentSorter, defaultSorter) => [
...(0, import_differenceWith.default)(defaultSorter, permanentSorter, compareSorters),
...permanentSorter
], "setInitialSorters");
var getDefaultSortOrder = /* @__PURE__ */ __name((columnName, sorter) => {
if (!sorter) {
return void 0;
}
const sortItem = sorter.find((item) => item.field === columnName);
if (sortItem) {
return sortItem.order;
}
return void 0;
}, "getDefaultSortOrder");
var getDefaultFilter = /* @__PURE__ */ __name((columnName, filters, operatorType = "eq") => {
const filter = filters == null ? void 0 : filters.find((filter2) => {
if (filter2.operator !== "or" && filter2.operator !== "and" && "field" in filter2) {
const { operator, field } = filter2;
return field === columnName && operator === operatorType;
}
return void 0;
});
if (filter) {
return filter.value || [];
}
return void 0;
}, "getDefaultFilter");
// src/definitions/helpers/userFriendlySeconds/index.ts
var userFriendlySecond = /* @__PURE__ */ __name((miliseconds) => {
return miliseconds / 1e3;
}, "userFriendlySecond");
// src/definitions/helpers/importCSVMapper/index.ts
var import_fromPairs = __toESM(require("lodash/fromPairs"));
var import_zip = __toESM(require("lodash/zip"));
var importCSVMapper = /* @__PURE__ */ __name((data, mapData = (item) => item) => {
const [headers, ...body] = data;
return body.map((entry) => (0, import_fromPairs.default)((0, import_zip.default)(headers, entry))).map(
(item, index, array) => mapData.call(void 0, item, index, array)
);
}, "importCSVMapper");
// src/definitions/helpers/handleUseParams/index.tsx
var handleUseParams = /* @__PURE__ */ __name((params = {}) => {
if (params == null ? void 0 : params.id) {
return {
...params,
id: decodeURIComponent(params.id)
};
}
return params;
}, "handleUseParams");
// src/definitions/helpers/hasPermission/index.ts
var hasPermission = /* @__PURE__ */ __name((permissions, action) => {
if (!permissions || !action) {
return false;
}
return !!permissions.find((i) => i === action);
}, "hasPermission");
// src/definitions/helpers/humanizeString/index.ts
var humanizeString = /* @__PURE__ */ __name((text2) => {
text2 = text2.replace(/([a-z]{1})([A-Z]{1})/g, "$1-$2");
text2 = text2.replace(/([A-Z]{1})([A-Z]{1})([a-z]{1})/g, "$1-$2$3");
text2 = text2.toLowerCase().replace(/[_-]+/g, " ").replace(/\s{2,}/g, " ").trim();
text2 = text2.charAt(0).toUpperCase() + text2.slice(1);
return text2;
}, "humanizeString");
// src/contexts/refine/index.tsx
var import_react2 = __toESM(require("react"));
var import_pluralize = __toESM(require("pluralize"));
var defaultTitle = {
icon: /* @__PURE__ */ import_react2.default.createElement(
"svg",
{
width: 24,
height: 24,
viewBox: "0 0 24 24",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
"data-testid": "refine-logo",
id: "refine-default-logo"
},
/* @__PURE__ */ import_react2.default.createElement(
"path",
{
fillRule: "evenodd",
clipRule: "evenodd",
d: "M13.7889 0.422291C12.6627 -0.140764 11.3373 -0.140764 10.2111 0.422291L2.21115 4.42229C0.85601 5.09986 0 6.48491 0 8V16C0 17.5151 0.85601 18.9001 2.21115 19.5777L10.2111 23.5777C11.3373 24.1408 12.6627 24.1408 13.7889 23.5777L21.7889 19.5777C23.144 18.9001 24 17.5151 24 16V8C24 6.48491 23.144 5.09986 21.7889 4.42229L13.7889 0.422291ZM8 8C8 5.79086 9.79086 4 12 4C14.2091 4 16 5.79086 16 8V16C16 18.2091 14.2091 20 12 20C9.79086 20 8 18.2091 8 16V8Z",
fill: "currentColor"
}
),
/* @__PURE__ */ import_react2.default.createElement(
"path",
{
d: "M14 8C14 9.10457 13.1046 10 12 10C10.8954 10 10 9.10457 10 8C10 6.89543 10.8954 6 12 6C13.1046 6 14 6.89543 14 8Z",
fill: "currentColor"
}
)
),
text: "Refine Project"
};
var defaultRefineOptions = {
mutationMode: "pessimistic",
syncWithLocation: false,
undoableTimeout: 5e3,
warnWhenUnsavedChanges: false,
liveMode: "off",
redirect: {
afterCreate: "list",
afterClone: "list",
afterEdit: "list"
},
overtime: {
enabled: true,
interval: 1e3
},
textTransformers: {
humanize: humanizeString,
plural: import_pluralize.default.plural,
singular: import_pluralize.default.singular
},
disableServerSideValidation: false,
disableRouteChangeHandler: false,
title: defaultTitle
};
var RefineContext = import_react2.default.createContext({
mutationMode: "pessimistic",
warnWhenUnsavedChanges: false,
syncWithLocation: false,
undoableTimeout: 5e3,
liveMode: "off",
onLiveEvent: void 0,
options: defaultRefineOptions
});
var RefineContextProvider = /* @__PURE__ */ __name(({
mutationMode,
warnWhenUnsavedChanges,
syncWithLocation,
undoableTimeout,
children,
liveMode = "off",
onLiveEvent,
options
}) => {
return /* @__PURE__ */ import_react2.default.createElement(
RefineContext.Provider,
{
value: {
__initialized: true,
mutationMode,
warnWhenUnsavedChanges,
syncWithLocation,
undoableTimeout,
liveMode,
onLiveEvent,
options
}
},
children
);
}, "RefineContextProvider");
// src/definitions/helpers/handleRefineOptions/index.ts
var handleRefineOptions = /* @__PURE__ */ __name(({
options,
disableTelemetry,
liveMode,
mutationMode,
reactQueryClientConfig,
reactQueryDevtoolConfig,
syncWithLocation,
undoableTimeout,
warnWhenUnsavedChanges,
disableRouteChangeHandler
} = {}) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
const optionsWithDefaults = {
breadcrumb: options == null ? void 0 : options.breadcrumb,
mutationMode: (options == null ? void 0 : options.mutationMode) ?? mutationMode ?? defaultRefineOptions.mutationMode,
undoableTimeout: (options == null ? void 0 : options.undoableTimeout) ?? undoableTimeout ?? defaultRefineOptions.undoableTimeout,
syncWithLocation: (options == null ? void 0 : options.syncWithLocation) ?? syncWithLocation ?? defaultRefineOptions.syncWithLocation,
warnWhenUnsavedChanges: (options == null ? void 0 : options.warnWhenUnsavedChanges) ?? warnWhenUnsavedChanges ?? defaultRefineOptions.warnWhenUnsavedChanges,
liveMode: (options == null ? void 0 : options.liveMode) ?? liveMode ?? defaultRefineOptions.liveMode,
redirect: {
afterCreate: ((_a = options == null ? void 0 : options.redirect) == null ? void 0 : _a.afterCreate) ?? defaultRefineOptions.redirect.afterCreate,
afterClone: ((_b = options == null ? void 0 : options.redirect) == null ? void 0 : _b.afterClone) ?? defaultRefineOptions.redirect.afterClone,
afterEdit: ((_c = options == null ? void 0 : options.redirect) == null ? void 0 : _c.afterEdit) ?? defaultRefineOptions.redirect.afterEdit
},
overtime: (options == null ? void 0 : options.overtime) ?? defaultRefineOptions.overtime,
textTransformers: {
humanize: ((_d = options == null ? void 0 : options.textTransformers) == null ? void 0 : _d.humanize) ?? defaultRefineOptions.textTransformers.humanize,
plural: ((_e = options == null ? void 0 : options.textTransformers) == null ? void 0 : _e.plural) ?? defaultRefineOptions.textTransformers.plural,
singular: ((_f = options == null ? void 0 : options.textTransformers) == null ? void 0 : _f.singular) ?? defaultRefineOptions.textTransformers.singular
},
disableServerSideValidation: (options == null ? void 0 : options.disableServerSideValidation) ?? defaultRefineOptions.disableServerSideValidation,
projectId: options == null ? void 0 : options.projectId,
title: {
icon: typeof ((_g = options == null ? void 0 : options.title) == null ? void 0 : _g.icon) === "undefined" ? defaultRefineOptions.title.icon : (_h = options == null ? void 0 : options.title) == null ? void 0 : _h.icon,
text: typeof ((_i = options == null ? void 0 : options.title) == null ? void 0 : _i.text) === "undefined" ? defaultRefineOptions.title.text : (_j = options == null ? void 0 : options.title) == null ? void 0 : _j.text
},
disableRouteChangeHandler: (options == null ? void 0 : options.disableRouteChangeHandler) ?? disableRouteChangeHandler ?? defaultRefineOptions.disableRouteChangeHandler
};
const disableTelemetryWithDefault = (options == null ? void 0 : options.disableTelemetry) ?? disableTelemetry ?? false;
const reactQueryWithDefaults = {
clientConfig: ((_k = options == null ? void 0 : options.reactQuery) == null ? void 0 : _k.clientConfig) ?? reactQueryClientConfig ?? {},
devtoolConfig: reactQueryDevtoolConfig ?? {}
};
return {
optionsWithDefaults,
disableTelemetryWithDefault,
reactQueryWithDefaults
};
}, "handleRefineOptions");
// src/definitions/helpers/redirectPage/index.ts
var redirectPage = /* @__PURE__ */ __name(({
redirectFromProps,
action,
redirectOptions
}) => {
if (redirectFromProps || redirectFromProps === false) {
return redirectFromProps;
}
switch (action) {
case "clone":
return redirectOptions.afterClone;
case "create":
return redirectOptions.afterCreate;
case "edit":
return redirectOptions.afterEdit;
default:
return false;
}
}, "redirectPage");
// src/definitions/helpers/sequentialPromises/index.ts
var sequentialPromises = /* @__PURE__ */ __name(async (promises, onEachResolve, onEachReject) => {
const results = [];
for (const [index, promise] of promises.entries()) {
try {
const result = await promise();
results.push(onEachResolve(result, index));
} catch (error) {
results.push(onEachReject(error, index));
}
}
return results;
}, "sequentialPromises");
// src/definitions/helpers/pick-resource/index.ts
var pickResource = /* @__PURE__ */ __name((identifier, resources = []) => {
if (!identifier) {
return void 0;
}
let resource = resources.find((r) => r.identifier === identifier);
if (!resource) {
resource = resources.find((r) => r.name === identifier);
}
return resource;
}, "pickResource");
// src/definitions/helpers/pickDataProvider/index.ts
var pickDataProvider = /* @__PURE__ */ __name((resourceName, dataProviderName, resources) => {
if (dataProviderName) {
return dataProviderName;
}
const resource = pickResource(resourceName, resources);
const meta = resource == null ? void 0 : resource.meta;
if (meta == null ? void 0 : meta.dataProviderName) {
return meta.dataProviderName;
}
return "default";
}, "pickDataProvider");
// src/definitions/helpers/handleMultiple/index.ts
var handleMultiple = /* @__PURE__ */ __name(async (promises) => {
return {
data: (await Promise.all(promises)).map((res) => res.data)
};
}, "handleMultiple");
// src/definitions/helpers/useInfinitePagination/index.ts
var getNextPageParam = /* @__PURE__ */ __name((lastPage) => {
const { pagination, cursor } = lastPage;
if (cursor == null ? void 0 : cursor.next) {
return cursor.next;
}
const current = (pagination == null ? void 0 : pagination.currentPage) || 1;
const pageSize = (pagination == null ? void 0 : pagination.pageSize) || 10;
const totalPages = Math.ceil((lastPage.total || 0) / pageSize);
return current < totalPages ? Number(current) + 1 : void 0;
}, "getNextPageParam");
var getPreviousPageParam = /* @__PURE__ */ __name((lastPage) => {
const { pagination, cursor } = lastPage;
if (cursor == null ? void 0 : cursor.prev) {
return cursor.prev;
}
const current = (pagination == null ? void 0 : pagination.currentPage) || 1;
return current === 1 ? void 0 : current - 1;
}, "getPreviousPageParam");
// src/definitions/helpers/router/is-parameter.ts
var isParameter = /* @__PURE__ */ __name((segment) => {
return segment.startsWith(":");
}, "isParameter");
// src/definitions/helpers/router/split-to-segments.ts
var splitToSegments = /* @__PURE__ */ __name((path) => {
const segments = path.split("/").filter((segment) => segment !== "");
return segments;
}, "splitToSegments");
// src/definitions/helpers/router/is-segment-counts-same.ts
var isSegmentCountsSame = /* @__PURE__ */ __name((route, resourceRoute) => {
const routeSegments = splitToSegments(route);
const resourceRouteSegments = splitToSegments(resourceRoute);
return routeSegments.length === resourceRouteSegments.length;
}, "isSegmentCountsSame");
// src/definitions/helpers/router/remove-leading-trailing-slashes.ts
var removeLeadingTrailingSlashes = /* @__PURE__ */ __name((route) => {
return route.replace(/^\/|\/$/g, "");
}, "removeLeadingTrailingSlashes");
// src/definitions/helpers/router/check-by-segments.ts
var checkBySegments = /* @__PURE__ */ __name((route, resourceRoute) => {
const stdRoute = removeLeadingTrailingSlashes(route);
const stdResourceRoute = removeLeadingTrailingSlashes(resourceRoute);
if (!isSegmentCountsSame(stdRoute, stdResourceRoute)) {
return false;
}
const routeSegments = splitToSegments(stdRoute);
const resourceRouteSegments = splitToSegments(stdResourceRoute);
return resourceRouteSegments.every((segment, index) => {
return isParameter(segment) || segment === routeSegments[index];
});
}, "checkBySegments");
// src/definitions/helpers/router/get-action-routes-from-resource.ts
var getActionRoutesFromResource = /* @__PURE__ */ __name((resource, resources) => {
const actions = [];
const actionList = ["list", "show", "edit", "create", "clone"];
actionList.forEach((action) => {
const route = resource[action];
if (route) {
actions.push({
action,
resource,
route: `/${route.replace(/^\//, "")}`
});
}
});
return actions;
}, "getActionRoutesFromResource");
// src/definitions/helpers/router/pick-matched-route.ts
var pickMatchedRoute = /* @__PURE__ */ __name((routes) => {
var _a;
if (routes.length === 0) {
return void 0;
}
if (routes.length === 1) {
return routes[0];
}
const sanitizedRoutes = routes.map((route) => ({
...route,
splitted: splitToSegments(removeLeadingTrailingSlashes(route.route))
}));
const segmentsCount = ((_a = sanitizedRoutes[0]) == null ? void 0 : _a.splitted.length) ?? 0;
let eligibleRoutes = [
...sanitizedRoutes
];
for (let i = 0; i < segmentsCount; i++) {
const nonParametrizedRoutes = eligibleRoutes.filter(
(route) => !isParameter(route.splitted[i])
);
if (nonParametrizedRoutes.length === 0) {
continue;
}
if (nonParametrizedRoutes.length === 1) {
eligibleRoutes = nonParametrizedRoutes;
break;
}
eligibleRoutes = nonParametrizedRoutes;
}
return eligibleRoutes[0];
}, "pickMatchedRoute");
// src/definitions/helpers/router/match-resource-from-route.ts
var matchResourceFromRoute = /* @__PURE__ */ __name((route, resources) => {
const allActionRoutes = resources.flatMap((resource) => {
return getActionRoutesFromResource(resource, resources);
});
const allFound = allActionRoutes.filter((actionRoute) => {
return checkBySegments(route, actionRoute.route);
});
const mostEligible = pickMatchedRoute(allFound);
return {
found: !!mostEligible,
resource: mostEligible == null ? void 0 : mostEligible.resource,
action: mostEligible == null ? void 0 : mostEligible.action,
matchedRoute: mostEligible == null ? void 0 : mostEligible.route
};
}, "matchResourceFromRoute");
// src/definitions/helpers/router/get-parent-resource.ts
var getParentResource = /* @__PURE__ */ __name((resource, resources) => {
var _a;
const parentName = (_a = resource.meta) == null ? void 0 : _a.parent;
if (!parentName) {
return void 0;
}
const parentResource = resources.find(
(resource2) => (resource2.identifier ?? resource2.name) === parentName
);
return parentResource ?? { name: parentName };
}, "getParentResource");
// src/definitions/helpers/router/pick-route-params.ts
var pickRouteParams = /* @__PURE__ */ __name((route) => {
const segments = splitToSegments(removeLeadingTrailingSlashes(route));
return segments.flatMap((s) => {
if (isParameter(s)) {
return [s.slice(1)];
}
return [];
});
}, "pickRouteParams");
// src/definitions/helpers/router/prepare-route-params.ts
var prepareRouteParams = /* @__PURE__ */ __name((routeParams, meta = {}) => {
return routeParams.reduce(
(acc, key) => {
const value = meta[key];
if (typeof value !== "undefined") {
acc[key] = value;
}
return acc;
},
{}
);
}, "prepareRouteParams");
// src/definitions/helpers/router/compose-route.ts
var composeRoute = /* @__PURE__ */ __name((designatedRoute, resourceMeta = {}, parsed = {}, meta = {}) => {
const routeParams = pickRouteParams(designatedRoute);
const preparedRouteParams = prepareRouteParams(routeParams, {
...resourceMeta,
...typeof (parsed == null ? void 0 : parsed.id) !== "undefined" ? { id: parsed.id } : {},
...typeof (parsed == null ? void 0 : parsed.action) !== "undefined" ? { action: parsed.action } : {},
...typeof (parsed == null ? void 0 : parsed.resource) !== "undefined" ? { resource: parsed.resource } : {},
...parsed == null ? void 0 : parsed.params,
...meta
});
return designatedRoute.replace(/:([^\/]+)/g, (match, key) => {
const fromParams = preparedRouteParams[key];
if (typeof fromParams !== "undefined") {
return `${fromParams}`;
}
return match;
});
}, "composeRoute");
// src/definitions/helpers/useActiveAuthProvider/index.ts
var useActiveAuthProvider = /* @__PURE__ */ __name(() => {
const authProvider = useAuthProviderContext();
if (authProvider.isProvided) {
return authProvider;
}
return null;
}, "useActiveAuthProvider");
// src/definitions/helpers/handlePaginationParams/index.ts
var handlePaginationParams = /* @__PURE__ */ __name(({
pagination
} = {}) => {
const mode = (pagination == null ? void 0 : pagination.mode) ?? "server";
const currentPage = (pagination == null ? void 0 : pagination.currentPage) ?? 1;
const pageSize = (pagination == null ? void 0 : pagination.pageSize) ?? 10;
return {
currentPage,
pageSize,
mode
};
}, "handlePaginationParams");
// src/definitions/helpers/useMediaQuery/index.ts
var import_react3 = require("react");
var useMediaQuery = /* @__PURE__ */ __name((query) => {
const [matches, setMatches] = (0, import_react3.useState)(false);
(0, import_react3.useEffect)(() => {
const media = window.matchMedia(query);
if (media.matches !== matches) {
setMatches(media.matches);
}
const listener = /* @__PURE__ */ __name(() => setMatches(media.matches), "listener");
window.addEventListener("resize", listener);
return () => window.removeEventListener("resize", listener);
}, [matches, query]);
return matches;
}, "useMediaQuery");
// src/definitions/helpers/safe-translate/index.ts
var safeTranslate = /* @__PURE__ */ __name((translate, key, defaultMessage, options) => {
const translated = options ? translate(key, options, defaultMessage) : translate(key, defaultMessage);
const fallback = defaultMessage ?? key;
if (translated === key || typeof translated === "undefined") {
return fallback;
}
return translated;
}, "safeTranslate");
// src/hooks/refine/useMutationMode.ts
var import_react4 = require("react");
var useMutationMode = /* @__PURE__ */ __name((preferredMutationMode, preferredUndoableTimeout) => {
const { mutationMode, undoableTimeout } = (0, import_react4.useContext)(RefineContext);
return {
mutationMode: preferredMutationMode ?? mutationMode,
undoableTimeout: preferredUndoableTimeout ?? undoableTimeout
};
}, "useMutationMode");
// src/hooks/refine/useWarnAboutChange/index.ts
var import_react6 = require("react");
// src/contexts/unsavedWarn/index.tsx
var import_react5 = __toESM(require("react"));
var UnsavedWarnContext = import_react5.default.createContext({});
var UnsavedWarnContextProvider = /* @__PURE__ */ __name(({
children
}) => {
const [warnWhen, setWarnWhen] = (0, import_react5.useState)(false);
return /* @__PURE__ */ import_react5.default.createElement(UnsavedWarnContext.Provider, { value: { warnWhen, setWarnWhen } }, children);
}, "UnsavedWarnContextProvider");
// src/hooks/refine/useWarnAboutChange/index.ts
var useWarnAboutChange = /* @__PURE__ */ __name(() => {
const { warnWhenUnsavedChanges } = (0, import_react6.useContext)(RefineContext);
const { warnWhen, setWarnWhen } = (0, import_react6.useContext)(UnsavedWarnContext);
return {
warnWhenUnsavedChanges,
warnWhen: Boolean(warnWhen),
setWarnWhen: setWarnWhen ?? (() => void 0)
};
}, "useWarnAboutChange");
// src/hooks/refine/useSyncWithLocation.ts
var import_react7 = require("react");
var useSyncWithLocation = /* @__PURE__ */ __name(() => {
const { syncWithLocation } = (0, import_react7.useContext)(RefineContext);
return { syncWithLocation };
}, "useSyncWithLocation");
// src/hooks/refine/useRefineContext.ts
var import_react8 = require("react");
var useRefineContext = /* @__PURE__ */ __name(() => {
const {
mutationMode,
syncWithLocation,
undoableTimeout,
warnWhenUnsavedChanges,
liveMode,
onLiveEvent,
options,
__initialized
} = (0, import_react8.useContext)(RefineContext);
return {
__initialized,
mutationMode,
syncWithLocation,
undoableTimeout,
warnWhenUnsavedChanges,
liveMode,
onLiveEvent,
options
};
}, "useRefineContext");
// src/definitions/helpers/useUserFriendlyName/index.ts
var useUserFriendlyName = /* @__PURE__ */ __name(() => {
const {
options: { textTransformers }
} = useRefineContext();
const getFriendlyName = /* @__PURE__ */ __name((name = "", type) => {
const humanizeName = textTransformers.humanize(name);
if (type === "singular") {
return textTransformers.singular(humanizeName);
}
return textTransformers.plural(humanizeName);
}, "getFriendlyName");
return getFriendlyName;
}, "useUserFriendlyName");
// src/definitions/helpers/generateDocumentTitle/index.ts
function generateDefaultDocumentTitle(translate, resource, action, id, resourceName, getUserFriendlyName) {
var _a;
const getFriendlyName = getUserFriendlyName || useUserFriendlyName();
const actionPrefixMatcher = {
create: "Create new ",
clone: `#${id ?? ""} Clone `,
edit: `#${id ?? ""} Edit `,
show: `#${id ?? ""} Show `,
list: ""
};
const identifier = (resource == null ? void 0 : resource.identifier) ?? (resource == null ? void 0 : resource.name);
const resourceNameFallback = ((_a = resource == null ? void 0 : resource.meta) == null ? void 0 : _a.label) ?? (identifier ? getFriendlyName(identifier, action === "list" ? "plural" : "singular") : identifier);
const resourceNameWithFallback = resourceName ?? resourceNameFallback;
const defaultTitle2 = safeTranslate(
translate,
"documentTitle.default",
"Refine"
);
const suffix = safeTranslate(translate, "documentTitle.suffix", " | Refine");
let autoGeneratedTitle = defaultTitle2;
if (action && identifier) {
autoGeneratedTitle = safeTranslate(
translate,
`documentTitle.${identifier}.${action}`,
`${actionPrefixMatcher[action] ?? ""}${resourceNameWithFallback}${suffix}`,
{ id }
);
}
return autoGeneratedTitle;
}
__name(generateDefaultDocumentTitle, "generateDefaultDocumentTitle");
// src/definitions/helpers/keys/index.ts
var BaseKeyBuilder = class {
constructor(segments = []) {
this.segments = [];
this.segments = segments;
}
key() {
return this.segments;
}
get() {
return this.segments;
}
};
__name(BaseKeyBuilder, "BaseKeyBuilder");
var ParamsKeyBuilder = class extends BaseKeyBuilder {
params(paramsValue) {
return new BaseKeyBuilder([...this.segments, paramsValue]);
}
};
__name(ParamsKeyBuilder, "ParamsKeyBuilder");
var DataIdRequiringKeyBuilder = class extends BaseKeyBuilder {
id(idValue) {
return new ParamsKeyBuilder([
...this.segments,
idValue ? String(idValue) : void 0
]);
}
};
__name(DataIdRequiringKeyBuilder, "DataIdRequiringKeyBuilder");
var DataIdsRequiringKeyBuilder = class extends BaseKeyBuilder {
ids(...idsValue) {
return new ParamsKeyBuilder([
...this.segments,
...idsValue.length ? [idsValue.map((el) => String(el))] : []
]);
}
};
__name(DataIdsRequiringKeyBuilder, "DataIdsRequiringKeyBuilder");
var DataResourceKeyBuilder = class extends BaseKeyBuilder {
action(actionType) {
if (actionType === "one") {
return new DataIdRequiringKeyBuilder([...this.segments, actionType]);
}
if (actionType === "many") {
return new DataIdsRequiringKeyBuilder([...this.segments, actionType]);
}
if (["list", "infinite"].includes(actionType)) {
return new ParamsKeyBuilder([...this.segments, actionType]);
}
throw new Error("Invalid action type");
}
};
__name(DataResourceKeyBuilder, "DataResourceKeyBuilder");
var DataKeyBuilder = class extends BaseKeyBuilder {
resource(resourceName) {
return new DataResourceKeyBuilder([...this.segments, resourceName]);
}
mutation(mutationName) {
return new ParamsKeyBuilder([
...mutationName === "custom" ? this.segments : [this.segments[0]],
mutationName
]);
}
};
__name(DataKeyBuilder, "DataKeyBuilder");
var AuthKeyBuilder = class extends BaseKeyBuilder {
action(actionType) {
return new ParamsKeyBuilder([...this.segments, actionType]);
}
};
__name(AuthKeyBuilder, "AuthKeyBuilder");
var AccessResourceKeyBuilder = class extends BaseKeyBuilder {
action(resourceName) {
return new ParamsKeyBuilder([...this.segments, resourceName]);
}
};
__name(AccessResourceKeyBuilder, "AccessResourceKeyBuilder");
var AccessKeyBuilder = class extends BaseKeyBuilder {
resource(resourceName) {
return new AccessResourceKeyBuilder([...this.segments, resourceName]);
}
};
__name(AccessKeyBuilder, "AccessKeyBuilder");
var AuditActionKeyBuilder = class extends BaseKeyBuilder {
action(actionType) {
return new ParamsKeyBuilder([...this.segments, actionType]);
}
};
__name(AuditActionKeyBuilder, "AuditActionKeyBuilder");
var AuditKeyBuilder = class extends BaseKeyBuilder {
resource(resourceName) {
return new AuditActionKeyBuilder([...this.segments, resourceName]);
}
action(actionType) {
return new ParamsKeyBuilder([...this.segments, actionType]);
}
};
__name(AuditKeyBuilder, "AuditKeyBuilder");
var KeyBuilder = class extends BaseKeyBuilder {
data(name) {
return new DataKeyBuilder(["data", name || "default"]);
}
auth() {
return new AuthKeyBuilder(["auth"]);
}
access() {
return new AccessKeyBuilder(["access"]);
}
audit() {
return new AuditKeyBuilder(["audit"]);
}
};
__name(KeyBuilder, "KeyBuilder");
var keys = /* @__PURE__ */ __name(() => new KeyBuilder([]), "keys");
// src/definitions/helpers/flatten-object-keys/index.ts
var isNested = /* @__PURE__ */ __name((obj) => typeof obj === "object" && obj !== null, "isNested");
var isArray = /* @__PURE__ */ __name((obj) => Array.isArray(obj), "isArray");
var flattenObjectKeys = /* @__PURE__ */ __name((obj, prefix = "") => {
if (!isNested(obj)) {
return {
[prefix]: obj
};
}
return Object.keys(obj).reduce(
(acc, key) => {
const currentPrefix = prefix.length ? `${prefix}.` : "";
if (isNested(obj[key]) && Object.keys(obj[key]).length) {
if (isArray(obj[key]) && obj[key].length) {
obj[key].forEach((item, index) => {
Object.assign(
acc,
flattenObjectKeys(item, `${currentPrefix + key}.${index}`)
);
});
} else {
Object.assign(acc, flattenObjectKeys(obj[key], currentPrefix + key));
}
acc[currentPrefix + key] = obj[key];
} else {
acc[currentPrefix + key] = obj[key];
}
return acc;
},
{}
);
}, "flattenObjectKeys");
// src/definitions/helpers/property-path-to-array/index.ts
var propertyPathToArray = /* @__PURE__ */ __name((propertyPath) => {
return propertyPath.split(".").map((item) => !Number.isNaN(Number(item)) ? Number(item) : item);
}, "propertyPathToArray");
// src/definitions/helpers/downloadInBrowser/index.ts
var downloadInBrowser = /* @__PURE__ */ __name((filename, content, type) => {
if (typeof window === "undefined") {
return;
}
const blob = new Blob([content], { type });
const link = document.createElement("a");
link.setAttribute("visibility", "hidden");
link.download = filename;
const blobUrl = URL.createObjectURL(blob);
link.href = blobUrl;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
setTimeout(() => {
URL.revokeObjectURL(blobUrl);
});
}, "downloadInBrowser");
// src/definitions/helpers/defer-execution/index.ts
var deferExecution = /* @__PURE__ */ __name((fn) => {
setTimeout(fn, 0);
}, "deferExecution");
// src/definitions/helpers/async-debounce/index.ts
var import_debounce = __toESM(require("lodash/debounce"));
var asyncDebounce = /* @__PURE__ */ __name((func, wait = 1e3, cancelReason) => {
let callbacks = [];
const cancelPrevious = /* @__PURE__ */ __name(() => {
callbacks.forEach((cb) => {
var _a;
return (_a = cb.reject) == null ? void 0 : _a.call(cb, cancelReason);
});
callbacks = [];
}, "cancelPrevious");
const debouncedFunc = (0, import_debounce.default)((...args) => {
const { resolve, reject } = callbacks.pop() || {};
Promise.resolve(func(...args)).then(resolve).catch(reject);
}, wait);
const runner = /* @__PURE__ */ __name((...args) => {
return new Promise((resolve, reject) => {
cancelPrevious();
callbacks.push({
resolve,
reject
});
debouncedFunc(...args);
});
}, "runner");
runner.flush = () => debouncedFunc.flush();
runner.cancel = () => {
debouncedFunc.cancel();
cancelPrevious();
};
return runner;
}, "asyncDebounce");
// src/definitions/helpers/prepare-query-context/index.ts
var prepareQueryContext = /* @__PURE__ */ __name((context) => {
const queryContext = {
queryKey: context.queryKey,
signal: void 0
};
Object.defineProperty(queryContext, "signal", {
enumerable: true,
get: () => {
return context.signal;
}
});
return queryContext;
}, "prepareQueryContext");
// src/definitions/upload/file2Base64/index.ts
var file2Base64 = /* @__PURE__ */ __name((file) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
const resultHandler = /* @__PURE__ */ __name(() => {
if (reader.result) {
reader.removeEventListener("load", resultHandler, false);
resolve(reader.result);
}
}, "resultHandler");
reader.addEventListener("load", resultHandler, false);
reader.readAsDataURL(file.originFileObj);
reader.onerror = (error) => {
reader.removeEventListener("load", resultHandler, false);
return reject(error);
};
});
}, "file2Base64");
// src/hooks/useKeys/index.tsx
var useKeys = /* @__PURE__ */ __name(() => {
return {
keys
};
}, "useKeys");
// src/hooks/auth/usePermissions/index.ts
function usePermissions({
options,
params
}) {
const { getPermissions } = useAuthProviderContext();
const { keys: keys2 } = useKeys();
const queryResponse = (0, import_react_query2.useQuery)({
queryKey: keys2().auth().action("permissions").get(),
queryFn: getPermissions ? () => getPermissions(params) : () => Promise.resolve(void 0),
enabled: !!getPermissions,
...options,
meta: {
...options == null ? void 0 : options.meta,
...(0, import_devtools_internal.getXRay)("usePermissions")
}
});
return queryResponse;
}
__name(usePermissions, "usePermissions");
// src/hooks/auth/useGetIdentity/index.ts
var import_devtools_internal2 = require("@refinedev/devtools-internal");
var import_react_query3 = require("@tanstack/react-query");
function useGetIdentity({
queryOptions
} = {}) {
const { getIdentity } = useAuthProviderContext();
const { keys: keys2 } = useKeys();
const queryResponse = (0, import_react_query3.useQuery)({
queryKey: keys2().auth().action("identity").get(),
queryFn: getIdentity ?? (() => Promise.resolve({})),
retry: false,
enabled: !!getIdentity,
...queryOptions,
meta: {
...queryOptions == null ? void 0 : queryOptions.meta,
...(0, import_devtools_internal2.getXRay)("useGetIdentity")
}
});
return queryResponse;
}
__name(useGetIdentity, "useGetIdentity");
// src/hooks/auth/useLogout/index.ts
var import_devtools_internal3 = require("@refinedev/devtools-internal");
var import_react_query5 = require("@tanstack/react-query");
// src/hooks/auth/useInvalidateAuthStore/index.ts
var import_react_query4 = require("@tanstack/react-query");
var useInvalidateAuthStore = /* @__PURE__ */ __name(() => {
const queryClient = (0, import_react_query4.useQueryClient)();
const { keys: keys2 } = useKeys();
const invalidate = /* @__PURE__ */ __name(async () => {
await Promise.all(
["check", "identity", "permissions"].map(
(action) => queryClient.invalidateQueries({
queryKey: keys2().auth().action(action).get()
})
)
);
}, "invalidate");
return invalidate;
}, "useInvalidateAuthStore");
// src/hooks/auth/useLogout/index.ts
function useLogout({
mutationOptions
} = {}) {
const invalidateAuthStore = useInvalidateAuthStore();
const go = useGo();
const { open, close } = useNotification();
const { logout: logoutFromContext } = useAuthProviderContext();
const { keys: keys2 } = useKeys();
const mutation = (0, import_react_query5.useMutation)({
mutationKey: keys2().auth().action("logout").get(),
mutationFn: logoutFromContext,
...mutationOptions,
onSuccess: (data, variables) => {
const { success, error, redirectTo, successNotification } = data;
const { redirectPath } = variables ?? {};
const redirect = redirectPath ?? redirectTo;
if (success) {
close == null ? void 0 : close("useLogout-error");
if (successNotification) {
open == null ? void 0 : open(buildSuccessNotification(successNotification));
}
}
if (error || !success) {
open == null ? void 0 : open(buildNotification(error));
}
if (redirect !== false) {
if (redirect) {
go({ to: redirect });
}
}
invalidateAuthStore();
},
onError: (error) => {
open == null ? void 0 : open(buildNotification(error));
},
meta: {
...mutationOptions == null ? void 0 : mutationOptions.meta,
...(0, import_devtools_internal3.getXRay)("useLogout")
}
});
return {
...mutation
};
}
__name(useLogout, "useLogout");
var buildNotification = /* @__PURE__ */ __name((error) => {
return {
key: "useLogout-error",
type: "error",
message: (error == null ? void 0 : error.name) || "Logout Error",
description: (error == null ? void 0 : error.message) || "Something went wrong during logout"
};
}, "buildNotification");
var buildSuccessNotification = /* @__PURE__ */ __name((successNotification) => {
return {
message: successNotification.message,
description: successNotification.description,
key: "logout-success",
type: "success"
};
}, "buildSuccessNotification");
// src/hooks/auth/useLogin/index.ts
var import_devtools_internal4 = require("@refinedev/devtools-internal");
var import_react_query6 = require("@tanstack/react-query");
function useLogin({
mutationOptions
} = {}) {
var _a;
const invalidateAuthStore = useInvalidateAuthStore();
const go = useGo();
const parsed = useParsed();
const { close, open } = useNotification();
const { login: loginFromContext } = useAuthProviderContext();
const { keys: keys2 } = useKeys();
const to = (_a = parsed.params) == null ? void 0 : _a.to;
const mutation = (0, impo