🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@refinedev/strapi-v4

Package Overview
Dependencies
Maintainers
5
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@refinedev/strapi-v4 - npm Package Compare versions

Comparing version
7.0.0
to
7.0.1
+535
-1
dist/index.cjs

@@ -1,2 +0,536 @@

var _=Object.create;var h=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var G=(r,o)=>{for(var e in o)h(r,e,{get:o[e],enumerable:!0})},H=(r,o,e,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of N(o))!B.call(r,t)&&t!==e&&h(r,t,{get:()=>o[t],enumerable:!(s=C(o,t))||s.enumerable});return r};var $=(r,o,e)=>(e=r!=null?_(W(r)):{},H(o||!r||!r.__esModule?h(e,"default",{value:r,enumerable:!0}):e,r)),J=r=>H(h({},"__esModule",{value:!0}),r);var U={};G(U,{AuthHelper:()=>X,DataProvider:()=>K,axiosInstance:()=>E,generateFilter:()=>x,generateNestedFilterField:()=>M,generateSort:()=>w,getValueProps:()=>Y,mapOperator:()=>m,mediaUploadMapper:()=>Z,normalizeData:()=>d,transformErrorMessages:()=>O,transformHttpError:()=>y});module.exports=J(U);var g=$(require("qs"));var m=r=>{switch(r){case"startswith":return"startsWith";case"endswith":return"endsWith";case"nin":return"notIn";case"ncontains":return"notContainsi";case"ncontainss":return"notContains";case"containss":return"contains";case"contains":return"containsi";case"nnull":return"notNull"}return r};var F=$(require("qs")),M=r=>{let o=r.split(".");if(o.length>1){let e="";return o.forEach(s=>{e+=`[${s}]`}),e}return`[${o[0]}]`},P=(r,o="")=>{let{field:e,operator:s,value:t}=r,i="",n=m(s);return Array.isArray(t)?t.map((a,c)=>{i+=`&filters${o}${M(e)}[$${n}][${c}]=${a}`}):i+=`&filters${o}${M(e)}[$${n}]=${t}`,i},L=(r,o="")=>{let e="";return r.value.map((s,t)=>{s.operator!=="or"&&s.operator!=="and"&&"field"in s?e+=P(s,`${o}[$${r.operator}][${t}]`):e+=L(s,`${o}[$${r.operator}][${t}]`)}),e},x=r=>{let o="";r&&r.map(t=>{t.operator!=="or"&&t.operator!=="and"&&"field"in t?o+=P(t):o+=L(t)});let e=F.default.parse(o,{depth:15});return F.default.stringify(e,{encodeValuesOnly:!0})};var w=r=>{let o=[];return r&&r.map(e=>{e.order&&o.push(`${e.field}:${e.order}`)}),o};var Q=$(require("axios")),E=Q.default.create();E.interceptors.response.use(r=>r,r=>{var e,s,t;let o={...r,message:(s=(e=r.response)==null?void 0:e.data)==null?void 0:s.message,statusCode:(t=r.response)==null?void 0:t.status};return Promise.reject(o)});var j=r=>r.attributes?{id:r.id,...r.attributes}:r,k=r=>Object.prototype.toString.call(r)==="[object Object]",d=r=>{if(Array.isArray(r))return r.map(o=>d(o));if(k(r)){Array.isArray(r.data)?r=[...r.data]:k(r.data)?r=j({...r.data}):r.data===null?r=null:r=j(r);for(let o in r)r[o]=d(r[o]);return r}return r};var O=r=>{let o={};for(let e of r){let s=e.path[0];o[s]?o[s].push(e.message):o[s]=[e.message]}return o};var y=r=>{var n,a,c;let o=((a=(n=r==null?void 0:r.response)==null?void 0:n.data)==null?void 0:a.error)||{},e=o==null?void 0:o.message,s=o==null?void 0:o.status,t=((c=o==null?void 0:o.details)==null?void 0:c.errors)||[];return{statusCode:s,message:e,errors:O(t)}};var K=(r,o=E)=>({getList:async({resource:e,pagination:s,filters:t,sorters:i,meta:n})=>{var S,I,q;let a=`${r}/${e}`,{currentPage:c=1,pageSize:p=10,mode:u="server"}=s??{},l=n==null?void 0:n.locale,f=n==null?void 0:n.fields,V=n==null?void 0:n.populate,D=n==null?void 0:n.publicationState,A=w(i),R=x(t),T={...u==="server"?{"pagination[page]":c,"pagination[pageSize]":p}:{},locale:l,publicationState:D,fields:f,populate:V,sort:A.length>0?A.join(","):void 0},{data:b}=await o.get(`${a}?${g.default.stringify(T,{encodeValuesOnly:!0})}&${R}`);return{data:d(b),total:((I=(S=b.meta)==null?void 0:S.pagination)==null?void 0:I.total)||((q=d(b))==null?void 0:q.length)}},getMany:async({resource:e,ids:s,meta:t})=>{let i=`${r}/${e}`,n=t==null?void 0:t.locale,a=t==null?void 0:t.fields,c=t==null?void 0:t.populate,p=t==null?void 0:t.publicationState,u=x([{field:"id",operator:"in",value:s}]),l={locale:n,fields:a,populate:c,publicationState:p,"pagination[pageSize]":s.length},{data:f}=await o.get(`${i}?${g.default.stringify(l,{encodeValuesOnly:!0})}&${u}`);return{data:d(f)}},create:async({resource:e,variables:s})=>{let t=`${r}/${e}`,i={data:s};e==="users"&&(i=s);try{let{data:n}=await o.post(t,i);return{data:n}}catch(n){throw y(n)}},update:async({resource:e,id:s,variables:t})=>{let i=`${r}/${e}/${s}`,n={data:t};e==="users"&&(n=t);try{let{data:a}=await o.put(i,n);return{data:a}}catch(a){throw y(a)}},updateMany:async({resource:e,ids:s,variables:t})=>{let i=[],n=await Promise.all(s.map(async a=>{let c=`${r}/${e}/${a}`,p={data:t};e==="users"&&(p=t);try{let{data:u}=await o.put(c,p);return u}catch(u){let l=y(u);i.push(l)}}));if(i.length>0)throw i;return{data:n}},createMany:async({resource:e,variables:s})=>{let t=[],i=await Promise.all(s.map(async n=>{try{let{data:a}=await o.post(`${r}/${e}`,{data:n});return a}catch(a){let c=y(a);t.push(c)}}));if(t.length>0)throw t;return{data:i}},getOne:async({resource:e,id:s,meta:t})=>{let i=t==null?void 0:t.locale,n=t==null?void 0:t.fields,a=t==null?void 0:t.populate,c=t==null?void 0:t.publicationState,p={locale:i,fields:n,populate:a,publicationState:c},u=`${r}/${e}/${s}?${g.default.stringify(p,{encode:!1})}`,{data:l}=await o.get(u);return{data:d(l)}},deleteOne:async({resource:e,id:s})=>{let t=`${r}/${e}/${s}`,{data:i}=await o.delete(t);return{data:i}},deleteMany:async({resource:e,ids:s})=>({data:await Promise.all(s.map(async i=>{let{data:n}=await o.delete(`${r}/${e}/${i}`);return n}))}),getApiUrl:()=>r,custom:async({url:e,method:s,filters:t,sorters:i,payload:n,query:a,headers:c})=>{let p=`${e}?`;if(i){let f=w(i);f.length>0&&(p=`${p}&${g.default.stringify({sort:f.join(",")})}`)}if(t){let f=x(t);p=`${p}&${f}`}a&&(p=`${p}&${g.default.stringify(a)}`);let u;switch(s){case"put":case"post":case"patch":u=await o[s](e,n,{headers:c});break;case"delete":u=await o.delete(e,{data:n,headers:c});break;default:u=await o.get(p,{headers:c});break}let{data:l}=u;return Promise.resolve({data:l})}});var v=$(require("axios")),z=$(require("qs")),X=r=>({login:async(o,e)=>{let s=`${r}/auth/local`;return await v.default.post(s,{identifier:o,password:e})},me:async(o,e)=>{let{meta:s={}}=e??{},t=s==null?void 0:s.locale,i=s==null?void 0:s.fields,n=s==null?void 0:s.populate,a={locale:t,fields:i,populate:n};return await v.default.get(`${r}/users/me?${z.default.stringify(a,{encodeValuesOnly:!0})}`,{headers:{Authorization:`Bearer ${o}`}})}});var Y=(r,o)=>r?{file:r.file,fileList:r.fileList??(Array.isArray(r)?r:[r]).map(e=>{let s={name:e.name,percent:e.percent,size:e.size,status:e.status,type:e.mime||e.type,uid:e.id};return e.url&&(s.url=`${o}${e.url}`),s})}:{fileList:[]},Z=r=>(Object.keys(r).map(o=>{if(r[o]){let e=r[o].fileList;if(Array.isArray(e)){let t=[];for(let i of e)if(i.response)for(let n of i.response)t.push(n.id);else t.push(i.uid);r[o]=t}}}),r);
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 __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.ts
var src_exports = {};
__export(src_exports, {
AuthHelper: () => AuthHelper,
DataProvider: () => DataProvider,
axiosInstance: () => axiosInstance,
generateFilter: () => generateFilter,
generateNestedFilterField: () => generateNestedFilterField,
generateSort: () => generateSort,
getValueProps: () => getValueProps,
mapOperator: () => mapOperator,
mediaUploadMapper: () => mediaUploadMapper,
normalizeData: () => normalizeData,
transformErrorMessages: () => transformErrorMessages,
transformHttpError: () => transformHttpError
});
module.exports = __toCommonJS(src_exports);
// src/dataProvider.ts
var import_qs2 = __toESM(require("qs"));
// src/utils/mapOperator.ts
var mapOperator = (operator) => {
switch (operator) {
case "startswith":
return "startsWith";
case "endswith":
return "endsWith";
case "nin":
return "notIn";
case "ncontains":
return "notContainsi";
case "ncontainss":
return "notContains";
case "containss":
return "contains";
case "contains":
return "containsi";
case "nnull":
return "notNull";
}
return operator;
};
// src/utils/generateFilter.ts
var import_qs = __toESM(require("qs"));
var generateNestedFilterField = (field) => {
const fields = field.split(".");
if (fields.length > 1) {
let fieldQuery = "";
fields.forEach((v) => {
fieldQuery += `[${v}]`;
});
return fieldQuery;
}
return `[${fields[0]}]`;
};
var generateLogicalFilter = (filter, parent = "") => {
const { field, operator, value } = filter;
let rawQuery = "";
const mappedOperator = mapOperator(operator);
if (Array.isArray(value)) {
value.map((val, index) => {
rawQuery += `&filters${parent}${generateNestedFilterField(
field
)}[$${mappedOperator}][${index}]=${val}`;
});
} else {
rawQuery += `&filters${parent}${generateNestedFilterField(
field
)}[$${mappedOperator}]=${value}`;
}
return rawQuery;
};
var generateConditionalFilter = (filter, parent = "") => {
let rawQuery = "";
filter.value.map((item, index) => {
if (item.operator !== "or" && item.operator !== "and" && "field" in item) {
rawQuery += generateLogicalFilter(
item,
`${parent}[$${filter.operator}][${index}]`
);
} else {
rawQuery += generateConditionalFilter(
item,
`${parent}[$${filter.operator}][${index}]`
);
}
});
return rawQuery;
};
var generateFilter = (filters) => {
let rawQuery = "";
if (filters) {
filters.map((filter) => {
if (filter.operator !== "or" && filter.operator !== "and" && "field" in filter) {
rawQuery += generateLogicalFilter(filter);
} else {
rawQuery += generateConditionalFilter(filter);
}
});
}
const parsedQuery = import_qs.default.parse(rawQuery, { depth: 15 });
const queryFilters = import_qs.default.stringify(parsedQuery, { encodeValuesOnly: true });
return queryFilters;
};
// src/utils/generateSort.ts
var generateSort = (sorters) => {
const _sort = [];
if (sorters) {
sorters.map((item) => {
if (item.order) {
_sort.push(`${item.field}:${item.order}`);
}
});
}
return _sort;
};
// src/utils/axios.ts
var import_axios = __toESM(require("axios"));
var axiosInstance = import_axios.default.create();
axiosInstance.interceptors.response.use(
(response) => {
return response;
},
(error) => {
var _a, _b, _c;
const customError = {
...error,
message: (_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.message,
statusCode: (_c = error.response) == null ? void 0 : _c.status
};
return Promise.reject(customError);
}
);
// src/utils/normalizeData.ts
var flatten = (data) => {
if (!data.attributes)
return data;
return {
id: data.id,
...data.attributes
};
};
var isObject = (data) => Object.prototype.toString.call(data) === "[object Object]";
var normalizeData = (data) => {
if (Array.isArray(data)) {
return data.map((item) => normalizeData(item));
}
if (isObject(data)) {
if (Array.isArray(data.data)) {
data = [...data.data];
} else if (isObject(data.data)) {
data = flatten({ ...data.data });
} else if (data.data === null) {
data = null;
} else {
data = flatten(data);
}
for (const key in data) {
data[key] = normalizeData(data[key]);
}
return data;
}
return data;
};
// src/utils/transformErrorMessages.ts
var transformErrorMessages = (errorMessages) => {
const transformedErrors = {};
for (const error of errorMessages) {
const key = error.path[0];
if (transformedErrors[key]) {
transformedErrors[key].push(error.message);
} else {
transformedErrors[key] = [error.message];
}
}
return transformedErrors;
};
// src/utils/transformHttpError.ts
var transformHttpError = (err) => {
var _a, _b, _c;
const error = ((_b = (_a = err == null ? void 0 : err.response) == null ? void 0 : _a.data) == null ? void 0 : _b.error) || {};
const message = error == null ? void 0 : error.message;
const statusCode = error == null ? void 0 : error.status;
const errorMessages = ((_c = error == null ? void 0 : error.details) == null ? void 0 : _c.errors) || [];
const httpError = {
statusCode,
message,
errors: transformErrorMessages(errorMessages)
};
return httpError;
};
// src/dataProvider.ts
var DataProvider = (apiUrl, httpClient = axiosInstance) => ({
getList: async ({ resource, pagination, filters, sorters, meta }) => {
var _a, _b, _c;
const url = `${apiUrl}/${resource}`;
const {
currentPage = 1,
pageSize = 10,
mode = "server"
} = pagination ?? {};
const locale = meta == null ? void 0 : meta.locale;
const fields = meta == null ? void 0 : meta.fields;
const populate = meta == null ? void 0 : meta.populate;
const publicationState = meta == null ? void 0 : meta.publicationState;
const querySorters = generateSort(sorters);
const queryFilters = generateFilter(filters);
const query = {
...mode === "server" ? {
"pagination[page]": currentPage,
"pagination[pageSize]": pageSize
} : {},
locale,
publicationState,
fields,
populate,
sort: querySorters.length > 0 ? querySorters.join(",") : void 0
};
const { data } = await httpClient.get(
`${url}?${import_qs2.default.stringify(query, {
encodeValuesOnly: true
})}&${queryFilters}`
);
return {
data: normalizeData(data),
// added to support pagination on client side when using endpoints that provide only data (see https://github.com/refinedev/refine/issues/2028)
total: ((_b = (_a = data.meta) == null ? void 0 : _a.pagination) == null ? void 0 : _b.total) || ((_c = normalizeData(data)) == null ? void 0 : _c.length)
};
},
getMany: async ({ resource, ids, meta }) => {
const url = `${apiUrl}/${resource}`;
const locale = meta == null ? void 0 : meta.locale;
const fields = meta == null ? void 0 : meta.fields;
const populate = meta == null ? void 0 : meta.populate;
const publicationState = meta == null ? void 0 : meta.publicationState;
const queryFilters = generateFilter([
{
field: "id",
operator: "in",
value: ids
}
]);
const query = {
locale,
fields,
populate,
publicationState,
"pagination[pageSize]": ids.length
};
const { data } = await httpClient.get(
`${url}?${import_qs2.default.stringify(query, {
encodeValuesOnly: true
})}&${queryFilters}`
);
return {
data: normalizeData(data)
};
},
create: async ({ resource, variables }) => {
const url = `${apiUrl}/${resource}`;
let dataVariables = { data: variables };
if (resource === "users") {
dataVariables = variables;
}
try {
const { data } = await httpClient.post(url, dataVariables);
return {
data
};
} catch (error) {
const httpError = transformHttpError(error);
throw httpError;
}
},
update: async ({ resource, id, variables }) => {
const url = `${apiUrl}/${resource}/${id}`;
let dataVariables = { data: variables };
if (resource === "users") {
dataVariables = variables;
}
try {
const { data } = await httpClient.put(url, dataVariables);
return {
data
};
} catch (error) {
const httpError = transformHttpError(error);
throw httpError;
}
},
updateMany: async ({ resource, ids, variables }) => {
const errors = [];
const response = await Promise.all(
ids.map(async (id) => {
const url = `${apiUrl}/${resource}/${id}`;
let dataVariables = { data: variables };
if (resource === "users") {
dataVariables = variables;
}
try {
const { data } = await httpClient.put(url, dataVariables);
return data;
} catch (error) {
const httpError = transformHttpError(error);
errors.push(httpError);
}
})
);
if (errors.length > 0) {
throw errors;
}
return { data: response };
},
createMany: async ({ resource, variables }) => {
const errors = [];
const response = await Promise.all(
variables.map(async (param) => {
try {
const { data } = await httpClient.post(`${apiUrl}/${resource}`, {
data: param
});
return data;
} catch (error) {
const httpError = transformHttpError(error);
errors.push(httpError);
}
})
);
if (errors.length > 0) {
throw errors;
}
return { data: response };
},
getOne: async ({ resource, id, meta }) => {
const locale = meta == null ? void 0 : meta.locale;
const fields = meta == null ? void 0 : meta.fields;
const populate = meta == null ? void 0 : meta.populate;
const publicationState = meta == null ? void 0 : meta.publicationState;
const query = {
locale,
fields,
populate,
publicationState
};
const url = `${apiUrl}/${resource}/${id}?${import_qs2.default.stringify(query, {
encode: false
})}`;
const { data } = await httpClient.get(url);
return {
data: normalizeData(data)
};
},
deleteOne: async ({ resource, id }) => {
const url = `${apiUrl}/${resource}/${id}`;
const { data } = await httpClient.delete(url);
return {
data
};
},
deleteMany: async ({ resource, ids }) => {
const response = await Promise.all(
ids.map(async (id) => {
const { data } = await httpClient.delete(`${apiUrl}/${resource}/${id}`);
return data;
})
);
return { data: response };
},
getApiUrl: () => {
return apiUrl;
},
custom: async ({
url,
method,
filters,
sorters,
payload,
query,
headers
}) => {
let requestUrl = `${url}?`;
if (sorters) {
const sortQuery = generateSort(sorters);
if (sortQuery.length > 0) {
requestUrl = `${requestUrl}&${import_qs2.default.stringify({
sort: sortQuery.join(",")
})}`;
}
}
if (filters) {
const filterQuery = generateFilter(filters);
requestUrl = `${requestUrl}&${filterQuery}`;
}
if (query) {
requestUrl = `${requestUrl}&${import_qs2.default.stringify(query)}`;
}
let axiosResponse;
switch (method) {
case "put":
case "post":
case "patch":
axiosResponse = await httpClient[method](url, payload, {
headers
});
break;
case "delete":
axiosResponse = await httpClient.delete(url, {
data: payload,
headers
});
break;
default:
axiosResponse = await httpClient.get(requestUrl, { headers });
break;
}
const { data } = axiosResponse;
return Promise.resolve({ data });
}
});
// src/helpers/auth.ts
var import_axios2 = __toESM(require("axios"));
var import_qs3 = __toESM(require("qs"));
var AuthHelper = (apiUrl) => ({
login: async (identifier, password) => {
const url = `${apiUrl}/auth/local`;
return await import_axios2.default.post(url, {
identifier,
password
});
},
me: async (token, options) => {
const { meta = {} } = options ?? {};
const locale = meta == null ? void 0 : meta.locale;
const fields = meta == null ? void 0 : meta.fields;
const populate = meta == null ? void 0 : meta.populate;
const query = {
locale,
fields,
populate
};
return await import_axios2.default.get(
`${apiUrl}/users/me?${import_qs3.default.stringify(query, {
encodeValuesOnly: true
})}`,
{
headers: {
Authorization: `Bearer ${token}`
}
}
);
}
});
// src/helpers/normalize.ts
var getValueProps = (data, imageUrl) => {
if (!data) {
return { fileList: [] };
}
return {
file: data.file,
fileList: data.fileList ?? (Array.isArray(data) ? data : [data]).map((item) => {
const file = {
name: item.name,
percent: item.percent,
size: item.size,
status: item.status,
type: item.mime || item.type,
uid: item.id
};
if (item.url) {
file.url = `${imageUrl}${item.url}`;
}
return file;
})
};
};
var mediaUploadMapper = (params) => {
Object.keys(params).map((item) => {
if (params[item]) {
const param = params[item].fileList;
const isMediaField = Array.isArray(param);
if (isMediaField) {
const ids = [];
for (const item2 of param) {
if (item2.response) {
for (const response of item2.response) {
ids.push(response.id);
}
} else {
ids.push(item2.uid);
}
}
params[item] = ids;
}
}
});
return params;
};
//# sourceMappingURL=index.cjs.map
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/index.ts","../src/dataProvider.ts","../src/utils/mapOperator.ts","../src/utils/generateFilter.ts","../src/utils/generateSort.ts","../src/utils/axios.ts","../src/utils/normalizeData.ts","../src/utils/transformErrorMessages.ts","../src/utils/transformHttpError.ts","../src/helpers/auth.ts","../src/helpers/normalize.ts"],"sourcesContent":["export * from \"./dataProvider.js\";\nexport * from \"./helpers/index.js\";\nexport * from \"./utils/index.js\";\n","import type { DataProvider as IDataProvider, HttpError } from \"@refinedev/core\";\nimport type { AxiosInstance } from \"axios\";\nimport qs from \"qs\";\nimport {\n axiosInstance,\n generateFilter,\n generateSort,\n normalizeData,\n transformHttpError,\n} from \"./utils\";\n\nexport const DataProvider = (\n apiUrl: string,\n httpClient: AxiosInstance = axiosInstance,\n): Required<IDataProvider> => ({\n getList: async ({ resource, pagination, filters, sorters, meta }) => {\n const url = `${apiUrl}/${resource}`;\n\n const {\n currentPage = 1,\n pageSize = 10,\n mode = \"server\",\n } = pagination ?? {};\n\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const querySorters = generateSort(sorters);\n const queryFilters = generateFilter(filters);\n\n const query = {\n ...(mode === \"server\"\n ? {\n \"pagination[page]\": currentPage,\n \"pagination[pageSize]\": pageSize,\n }\n : {}),\n locale,\n publicationState,\n fields,\n populate,\n sort: querySorters.length > 0 ? querySorters.join(\",\") : undefined,\n };\n\n const { data } = await httpClient.get(\n `${url}?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}&${queryFilters}`,\n );\n\n return {\n data: normalizeData(data),\n // added to support pagination on client side when using endpoints that provide only data (see https://github.com/refinedev/refine/issues/2028)\n total: data.meta?.pagination?.total || normalizeData(data)?.length,\n };\n },\n\n getMany: async ({ resource, ids, meta }) => {\n const url = `${apiUrl}/${resource}`;\n\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const queryFilters = generateFilter([\n {\n field: \"id\",\n operator: \"in\",\n value: ids,\n },\n ]);\n\n const query = {\n locale,\n fields,\n populate,\n publicationState,\n \"pagination[pageSize]\": ids.length,\n };\n\n const { data } = await httpClient.get(\n `${url}?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}&${queryFilters}`,\n );\n\n return {\n data: normalizeData(data),\n };\n },\n\n create: async ({ resource, variables }) => {\n const url = `${apiUrl}/${resource}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.post(url, dataVariables);\n return {\n data,\n };\n } catch (error) {\n const httpError = transformHttpError(error);\n\n throw httpError;\n }\n },\n\n update: async ({ resource, id, variables }) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.put(url, dataVariables);\n return {\n data,\n };\n } catch (error) {\n const httpError = transformHttpError(error);\n\n throw httpError;\n }\n },\n\n updateMany: async ({ resource, ids, variables }) => {\n const errors: HttpError[] = [];\n\n const response = await Promise.all(\n ids.map(async (id) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.put(url, dataVariables);\n return data;\n } catch (error) {\n const httpError = transformHttpError(error);\n\n errors.push(httpError);\n }\n }),\n );\n\n if (errors.length > 0) {\n throw errors;\n }\n\n return { data: response };\n },\n\n createMany: async ({ resource, variables }) => {\n const errors: HttpError[] = [];\n\n const response = await Promise.all(\n variables.map(async (param) => {\n try {\n const { data } = await httpClient.post(`${apiUrl}/${resource}`, {\n data: param,\n });\n return data;\n } catch (error) {\n const httpError = transformHttpError(error);\n\n errors.push(httpError);\n }\n }),\n );\n\n if (errors.length > 0) {\n throw errors;\n }\n\n return { data: response };\n },\n\n getOne: async ({ resource, id, meta }) => {\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const query = {\n locale,\n fields,\n populate,\n publicationState,\n };\n\n const url = `${apiUrl}/${resource}/${id}?${qs.stringify(query, {\n encode: false,\n })}`;\n\n const { data } = await httpClient.get(url);\n\n return {\n data: normalizeData(data),\n };\n },\n\n deleteOne: async ({ resource, id }) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n const { data } = await httpClient.delete(url);\n\n return {\n data,\n };\n },\n\n deleteMany: async ({ resource, ids }) => {\n const response = await Promise.all(\n ids.map(async (id) => {\n const { data } = await httpClient.delete(`${apiUrl}/${resource}/${id}`);\n return data;\n }),\n );\n return { data: response };\n },\n\n getApiUrl: () => {\n return apiUrl;\n },\n\n custom: async ({\n url,\n method,\n filters,\n sorters,\n payload,\n query,\n headers,\n }) => {\n let requestUrl = `${url}?`;\n\n if (sorters) {\n const sortQuery = generateSort(sorters);\n if (sortQuery.length > 0) {\n requestUrl = `${requestUrl}&${qs.stringify({\n sort: sortQuery.join(\",\"),\n })}`;\n }\n }\n\n if (filters) {\n const filterQuery = generateFilter(filters);\n requestUrl = `${requestUrl}&${filterQuery}`;\n }\n\n if (query) {\n requestUrl = `${requestUrl}&${qs.stringify(query)}`;\n }\n\n let axiosResponse;\n switch (method) {\n case \"put\":\n case \"post\":\n case \"patch\":\n axiosResponse = await httpClient[method](url, payload, {\n headers,\n });\n break;\n case \"delete\":\n axiosResponse = await httpClient.delete(url, {\n data: payload,\n headers: headers,\n });\n break;\n default:\n axiosResponse = await httpClient.get(requestUrl, { headers });\n break;\n }\n\n const { data } = axiosResponse;\n\n return Promise.resolve({ data });\n },\n});\n","import type { CrudOperators } from \"@refinedev/core\";\n\nexport const mapOperator = (operator: CrudOperators) => {\n switch (operator) {\n case \"startswith\":\n return \"startsWith\";\n case \"endswith\":\n return \"endsWith\";\n case \"nin\":\n return \"notIn\";\n case \"ncontains\":\n return \"notContainsi\";\n case \"ncontainss\":\n return \"notContains\";\n case \"containss\":\n return \"contains\";\n case \"contains\":\n return \"containsi\";\n case \"nnull\":\n return \"notNull\";\n }\n\n return operator;\n};\n","import type {\n CrudFilters,\n LogicalFilter,\n ConditionalFilter,\n} from \"@refinedev/core\";\nimport { mapOperator } from \"./mapOperator\";\nimport qs from \"qs\";\n\nexport const generateNestedFilterField = (field: string) => {\n const fields = field.split(\".\");\n\n if (fields.length > 1) {\n let fieldQuery = \"\";\n\n fields.forEach((v) => {\n fieldQuery += `[${v}]`;\n });\n\n return fieldQuery;\n }\n return `[${fields[0]}]`;\n};\n\nconst generateLogicalFilter = (filter: LogicalFilter, parent = \"\"): string => {\n const { field, operator, value } = filter;\n\n let rawQuery = \"\";\n\n const mappedOperator = mapOperator(operator);\n\n if (Array.isArray(value)) {\n value.map((val, index) => {\n rawQuery += `&filters${parent}${generateNestedFilterField(\n field,\n )}[$${mappedOperator}][${index}]=${val}`;\n });\n } else {\n rawQuery += `&filters${parent}${generateNestedFilterField(\n field,\n )}[$${mappedOperator}]=${value}`;\n }\n return rawQuery;\n};\n\nconst generateConditionalFilter = (\n filter: ConditionalFilter,\n parent = \"\",\n): string => {\n let rawQuery = \"\";\n\n filter.value.map((item, index) => {\n if (item.operator !== \"or\" && item.operator !== \"and\" && \"field\" in item) {\n rawQuery += generateLogicalFilter(\n item,\n `${parent}[$${filter.operator}][${index}]`,\n );\n } else {\n rawQuery += generateConditionalFilter(\n item,\n `${parent}[$${filter.operator}][${index}]`,\n );\n }\n });\n return rawQuery;\n};\n\nexport const generateFilter = (filters?: CrudFilters) => {\n let rawQuery = \"\";\n\n if (filters) {\n filters.map((filter) => {\n if (\n filter.operator !== \"or\" &&\n filter.operator !== \"and\" &&\n \"field\" in filter\n ) {\n rawQuery += generateLogicalFilter(filter);\n } else {\n rawQuery += generateConditionalFilter(filter);\n }\n });\n }\n\n const parsedQuery = qs.parse(rawQuery, { depth: 15 });\n\n const queryFilters = qs.stringify(parsedQuery, { encodeValuesOnly: true });\n\n return queryFilters;\n};\n","import type { CrudSorting } from \"@refinedev/core\";\n\nexport const generateSort = (sorters?: CrudSorting) => {\n const _sort: string[] = [];\n\n if (sorters) {\n sorters.map((item) => {\n if (item.order) {\n _sort.push(`${item.field}:${item.order}`);\n }\n });\n }\n\n return _sort;\n};\n","import axios from \"axios\";\nimport type { HttpError } from \"@refinedev/core\";\n\nexport const axiosInstance = axios.create();\n\naxiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n const customError: HttpError = {\n ...error,\n message: error.response?.data?.message,\n statusCode: error.response?.status,\n };\n\n return Promise.reject(customError);\n },\n);\n","const flatten = (data: any) => {\n if (!data.attributes) return data;\n\n return {\n id: data.id,\n ...data.attributes,\n };\n};\n\nconst isObject = (data: any) =>\n Object.prototype.toString.call(data) === \"[object Object]\";\n\nexport const normalizeData = (data: any): any => {\n if (Array.isArray(data)) {\n return data.map((item) => normalizeData(item));\n }\n\n if (isObject(data)) {\n if (Array.isArray(data.data)) {\n data = [...data.data];\n } else if (isObject(data.data)) {\n data = flatten({ ...data.data });\n } else if (data.data === null) {\n data = null;\n } else {\n data = flatten(data);\n }\n\n for (const key in data) {\n data[key] = normalizeData(data[key]);\n }\n\n return data;\n }\n\n return data;\n};\n","type ErrorMessage = {\n path: string[];\n message: string;\n name: string;\n};\n\ntype TransformedErrors = {\n [key: string]: string[];\n};\n\nexport const transformErrorMessages = (\n errorMessages: ErrorMessage[],\n): TransformedErrors => {\n const transformedErrors: TransformedErrors = {};\n\n for (const error of errorMessages) {\n const key = error.path[0];\n\n if (transformedErrors[key]) {\n transformedErrors[key].push(error.message);\n } else {\n transformedErrors[key] = [error.message];\n }\n }\n\n return transformedErrors;\n};\n","import type { HttpError } from \"@refinedev/core\";\nimport { transformErrorMessages } from \"./transformErrorMessages\";\n\nexport const transformHttpError = (err: any): HttpError => {\n const error = err?.response?.data?.error || {};\n\n const message = error?.message;\n const statusCode = error?.status;\n const errorMessages = error?.details?.errors || [];\n\n const httpError: HttpError = {\n statusCode,\n message,\n errors: transformErrorMessages(errorMessages),\n };\n\n return httpError;\n};\n","import type { MetaQuery } from \"@refinedev/core\";\nimport axios from \"axios\";\nimport qs from \"qs\";\n\ninterface ILoginResponse {\n jwt: string;\n user: IUser;\n}\n\ninterface IRole {\n id: number | string;\n name: string;\n description: string;\n type: string;\n}\n\ninterface IUser {\n id: number | string;\n username: string;\n email: string;\n provider: string;\n confirmed: boolean;\n blocked: boolean;\n role: IRole;\n created_at: string;\n updated_at: string;\n}\n\nexport type MeOptions = {\n meta?: MetaQuery;\n /**\n * @deprecated `metaData` is deprecated with refine@4, refine will pass `meta` instead, however, we still support `metaData` for backward compatibility.\n */\n metaData?: MetaQuery;\n};\n\nexport const AuthHelper = (apiUrl: string) => ({\n login: async (identifier: string, password: string) => {\n const url = `${apiUrl}/auth/local`;\n\n return await axios.post<ILoginResponse>(url, {\n identifier,\n password,\n });\n },\n me: async (token: string, options?: MeOptions) => {\n const { meta = {} } = options ?? {};\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n\n const query = {\n locale,\n fields,\n populate,\n };\n\n return await axios.get<IUser>(\n `${apiUrl}/users/me?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}`,\n {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n },\n );\n },\n});\n","export const getValueProps = (data: any, imageUrl: string) => {\n if (!data) {\n return { fileList: [] };\n }\n\n return {\n file: data.file,\n fileList:\n data.fileList ??\n (Array.isArray(data) ? data : [data]).map((item: any) => {\n const file: any = {\n name: item.name,\n percent: item.percent,\n size: item.size,\n status: item.status,\n type: item.mime || item.type,\n uid: item.id,\n };\n\n if (item.url) {\n file.url = `${imageUrl}${item.url}`;\n }\n\n return file;\n }),\n };\n};\n\nexport const mediaUploadMapper = (params: any) => {\n Object.keys(params).map((item) => {\n if (params[item]) {\n const param = params[item].fileList;\n const isMediaField = Array.isArray(param);\n if (isMediaField) {\n const ids = [];\n for (const item of param) {\n if (item.response) {\n for (const response of item.response) {\n ids.push(response.id);\n }\n } else {\n ids.push(item.uid);\n }\n }\n params[item] = ids;\n }\n }\n });\n return params;\n};\n"],"mappings":"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","names":["src_exports","__export","AuthHelper","DataProvider","axiosInstance","generateFilter","generateNestedFilterField","generateSort","getValueProps","mapOperator","mediaUploadMapper","normalizeData","transformErrorMessages","transformHttpError","__toCommonJS","import_qs","mapOperator","operator","import_qs","generateNestedFilterField","field","fields","fieldQuery","v","generateLogicalFilter","filter","parent","operator","value","rawQuery","mappedOperator","mapOperator","val","index","generateConditionalFilter","item","generateFilter","filters","parsedQuery","qs","generateSort","sorters","_sort","item","import_axios","axiosInstance","axios","response","error","_a","_b","_c","customError","flatten","data","isObject","normalizeData","item","key","transformErrorMessages","errorMessages","transformedErrors","error","key","transformHttpError","err","_a","_b","_c","error","message","statusCode","errorMessages","transformErrorMessages","DataProvider","apiUrl","httpClient","axiosInstance","resource","pagination","filters","sorters","meta","_a","_b","_c","url","currentPage","pageSize","mode","locale","fields","populate","publicationState","querySorters","generateSort","queryFilters","generateFilter","query","data","qs","normalizeData","ids","variables","dataVariables","error","transformHttpError","id","errors","response","httpError","param","method","payload","headers","requestUrl","sortQuery","filterQuery","axiosResponse","import_axios","import_qs","AuthHelper","apiUrl","identifier","password","url","axios","token","options","meta","locale","fields","populate","query","qs","getValueProps","data","imageUrl","item","file","mediaUploadMapper","params","param","ids","response"]}
{"version":3,"sources":["../src/index.ts","../src/dataProvider.ts","../src/utils/mapOperator.ts","../src/utils/generateFilter.ts","../src/utils/generateSort.ts","../src/utils/axios.ts","../src/utils/normalizeData.ts","../src/utils/transformErrorMessages.ts","../src/utils/transformHttpError.ts","../src/helpers/auth.ts","../src/helpers/normalize.ts"],"sourcesContent":["export * from \"./dataProvider.js\";\nexport * from \"./helpers/index.js\";\nexport * from \"./utils/index.js\";\n","import type { DataProvider as IDataProvider, HttpError } from \"@refinedev/core\";\nimport type { AxiosInstance } from \"axios\";\nimport qs from \"qs\";\nimport {\n axiosInstance,\n generateFilter,\n generateSort,\n normalizeData,\n transformHttpError,\n} from \"./utils\";\n\nexport const DataProvider = (\n apiUrl: string,\n httpClient: AxiosInstance = axiosInstance,\n): Required<IDataProvider> => ({\n getList: async ({ resource, pagination, filters, sorters, meta }) => {\n const url = `${apiUrl}/${resource}`;\n\n const {\n currentPage = 1,\n pageSize = 10,\n mode = \"server\",\n } = pagination ?? {};\n\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const querySorters = generateSort(sorters);\n const queryFilters = generateFilter(filters);\n\n const query = {\n ...(mode === \"server\"\n ? {\n \"pagination[page]\": currentPage,\n \"pagination[pageSize]\": pageSize,\n }\n : {}),\n locale,\n publicationState,\n fields,\n populate,\n sort: querySorters.length > 0 ? querySorters.join(\",\") : undefined,\n };\n\n const { data } = await httpClient.get(\n `${url}?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}&${queryFilters}`,\n );\n\n return {\n data: normalizeData(data),\n // added to support pagination on client side when using endpoints that provide only data (see https://github.com/refinedev/refine/issues/2028)\n total: data.meta?.pagination?.total || normalizeData(data)?.length,\n };\n },\n\n getMany: async ({ resource, ids, meta }) => {\n const url = `${apiUrl}/${resource}`;\n\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const queryFilters = generateFilter([\n {\n field: \"id\",\n operator: \"in\",\n value: ids,\n },\n ]);\n\n const query = {\n locale,\n fields,\n populate,\n publicationState,\n \"pagination[pageSize]\": ids.length,\n };\n\n const { data } = await httpClient.get(\n `${url}?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}&${queryFilters}`,\n );\n\n return {\n data: normalizeData(data),\n };\n },\n\n create: async ({ resource, variables }) => {\n const url = `${apiUrl}/${resource}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.post(url, dataVariables);\n return {\n data,\n };\n } catch (error) {\n const httpError = transformHttpError(error);\n\n throw httpError;\n }\n },\n\n update: async ({ resource, id, variables }) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.put(url, dataVariables);\n return {\n data,\n };\n } catch (error) {\n const httpError = transformHttpError(error);\n\n throw httpError;\n }\n },\n\n updateMany: async ({ resource, ids, variables }) => {\n const errors: HttpError[] = [];\n\n const response = await Promise.all(\n ids.map(async (id) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.put(url, dataVariables);\n return data;\n } catch (error) {\n const httpError = transformHttpError(error);\n\n errors.push(httpError);\n }\n }),\n );\n\n if (errors.length > 0) {\n throw errors;\n }\n\n return { data: response };\n },\n\n createMany: async ({ resource, variables }) => {\n const errors: HttpError[] = [];\n\n const response = await Promise.all(\n variables.map(async (param) => {\n try {\n const { data } = await httpClient.post(`${apiUrl}/${resource}`, {\n data: param,\n });\n return data;\n } catch (error) {\n const httpError = transformHttpError(error);\n\n errors.push(httpError);\n }\n }),\n );\n\n if (errors.length > 0) {\n throw errors;\n }\n\n return { data: response };\n },\n\n getOne: async ({ resource, id, meta }) => {\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const query = {\n locale,\n fields,\n populate,\n publicationState,\n };\n\n const url = `${apiUrl}/${resource}/${id}?${qs.stringify(query, {\n encode: false,\n })}`;\n\n const { data } = await httpClient.get(url);\n\n return {\n data: normalizeData(data),\n };\n },\n\n deleteOne: async ({ resource, id }) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n const { data } = await httpClient.delete(url);\n\n return {\n data,\n };\n },\n\n deleteMany: async ({ resource, ids }) => {\n const response = await Promise.all(\n ids.map(async (id) => {\n const { data } = await httpClient.delete(`${apiUrl}/${resource}/${id}`);\n return data;\n }),\n );\n return { data: response };\n },\n\n getApiUrl: () => {\n return apiUrl;\n },\n\n custom: async ({\n url,\n method,\n filters,\n sorters,\n payload,\n query,\n headers,\n }) => {\n let requestUrl = `${url}?`;\n\n if (sorters) {\n const sortQuery = generateSort(sorters);\n if (sortQuery.length > 0) {\n requestUrl = `${requestUrl}&${qs.stringify({\n sort: sortQuery.join(\",\"),\n })}`;\n }\n }\n\n if (filters) {\n const filterQuery = generateFilter(filters);\n requestUrl = `${requestUrl}&${filterQuery}`;\n }\n\n if (query) {\n requestUrl = `${requestUrl}&${qs.stringify(query)}`;\n }\n\n let axiosResponse;\n switch (method) {\n case \"put\":\n case \"post\":\n case \"patch\":\n axiosResponse = await httpClient[method](url, payload, {\n headers,\n });\n break;\n case \"delete\":\n axiosResponse = await httpClient.delete(url, {\n data: payload,\n headers: headers,\n });\n break;\n default:\n axiosResponse = await httpClient.get(requestUrl, { headers });\n break;\n }\n\n const { data } = axiosResponse;\n\n return Promise.resolve({ data });\n },\n});\n","import type { CrudOperators } from \"@refinedev/core\";\n\nexport const mapOperator = (operator: CrudOperators) => {\n switch (operator) {\n case \"startswith\":\n return \"startsWith\";\n case \"endswith\":\n return \"endsWith\";\n case \"nin\":\n return \"notIn\";\n case \"ncontains\":\n return \"notContainsi\";\n case \"ncontainss\":\n return \"notContains\";\n case \"containss\":\n return \"contains\";\n case \"contains\":\n return \"containsi\";\n case \"nnull\":\n return \"notNull\";\n }\n\n return operator;\n};\n","import type {\n CrudFilters,\n LogicalFilter,\n ConditionalFilter,\n} from \"@refinedev/core\";\nimport { mapOperator } from \"./mapOperator\";\nimport qs from \"qs\";\n\nexport const generateNestedFilterField = (field: string) => {\n const fields = field.split(\".\");\n\n if (fields.length > 1) {\n let fieldQuery = \"\";\n\n fields.forEach((v) => {\n fieldQuery += `[${v}]`;\n });\n\n return fieldQuery;\n }\n return `[${fields[0]}]`;\n};\n\nconst generateLogicalFilter = (filter: LogicalFilter, parent = \"\"): string => {\n const { field, operator, value } = filter;\n\n let rawQuery = \"\";\n\n const mappedOperator = mapOperator(operator);\n\n if (Array.isArray(value)) {\n value.map((val, index) => {\n rawQuery += `&filters${parent}${generateNestedFilterField(\n field,\n )}[$${mappedOperator}][${index}]=${val}`;\n });\n } else {\n rawQuery += `&filters${parent}${generateNestedFilterField(\n field,\n )}[$${mappedOperator}]=${value}`;\n }\n return rawQuery;\n};\n\nconst generateConditionalFilter = (\n filter: ConditionalFilter,\n parent = \"\",\n): string => {\n let rawQuery = \"\";\n\n filter.value.map((item, index) => {\n if (item.operator !== \"or\" && item.operator !== \"and\" && \"field\" in item) {\n rawQuery += generateLogicalFilter(\n item,\n `${parent}[$${filter.operator}][${index}]`,\n );\n } else {\n rawQuery += generateConditionalFilter(\n item,\n `${parent}[$${filter.operator}][${index}]`,\n );\n }\n });\n return rawQuery;\n};\n\nexport const generateFilter = (filters?: CrudFilters) => {\n let rawQuery = \"\";\n\n if (filters) {\n filters.map((filter) => {\n if (\n filter.operator !== \"or\" &&\n filter.operator !== \"and\" &&\n \"field\" in filter\n ) {\n rawQuery += generateLogicalFilter(filter);\n } else {\n rawQuery += generateConditionalFilter(filter);\n }\n });\n }\n\n const parsedQuery = qs.parse(rawQuery, { depth: 15 });\n\n const queryFilters = qs.stringify(parsedQuery, { encodeValuesOnly: true });\n\n return queryFilters;\n};\n","import type { CrudSorting } from \"@refinedev/core\";\n\nexport const generateSort = (sorters?: CrudSorting) => {\n const _sort: string[] = [];\n\n if (sorters) {\n sorters.map((item) => {\n if (item.order) {\n _sort.push(`${item.field}:${item.order}`);\n }\n });\n }\n\n return _sort;\n};\n","import axios from \"axios\";\nimport type { HttpError } from \"@refinedev/core\";\n\nexport const axiosInstance = axios.create();\n\naxiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n const customError: HttpError = {\n ...error,\n message: error.response?.data?.message,\n statusCode: error.response?.status,\n };\n\n return Promise.reject(customError);\n },\n);\n","const flatten = (data: any) => {\n if (!data.attributes) return data;\n\n return {\n id: data.id,\n ...data.attributes,\n };\n};\n\nconst isObject = (data: any) =>\n Object.prototype.toString.call(data) === \"[object Object]\";\n\nexport const normalizeData = (data: any): any => {\n if (Array.isArray(data)) {\n return data.map((item) => normalizeData(item));\n }\n\n if (isObject(data)) {\n if (Array.isArray(data.data)) {\n data = [...data.data];\n } else if (isObject(data.data)) {\n data = flatten({ ...data.data });\n } else if (data.data === null) {\n data = null;\n } else {\n data = flatten(data);\n }\n\n for (const key in data) {\n data[key] = normalizeData(data[key]);\n }\n\n return data;\n }\n\n return data;\n};\n","type ErrorMessage = {\n path: string[];\n message: string;\n name: string;\n};\n\ntype TransformedErrors = {\n [key: string]: string[];\n};\n\nexport const transformErrorMessages = (\n errorMessages: ErrorMessage[],\n): TransformedErrors => {\n const transformedErrors: TransformedErrors = {};\n\n for (const error of errorMessages) {\n const key = error.path[0];\n\n if (transformedErrors[key]) {\n transformedErrors[key].push(error.message);\n } else {\n transformedErrors[key] = [error.message];\n }\n }\n\n return transformedErrors;\n};\n","import type { HttpError } from \"@refinedev/core\";\nimport { transformErrorMessages } from \"./transformErrorMessages\";\n\nexport const transformHttpError = (err: any): HttpError => {\n const error = err?.response?.data?.error || {};\n\n const message = error?.message;\n const statusCode = error?.status;\n const errorMessages = error?.details?.errors || [];\n\n const httpError: HttpError = {\n statusCode,\n message,\n errors: transformErrorMessages(errorMessages),\n };\n\n return httpError;\n};\n","import type { MetaQuery } from \"@refinedev/core\";\nimport axios from \"axios\";\nimport qs from \"qs\";\n\ninterface ILoginResponse {\n jwt: string;\n user: IUser;\n}\n\ninterface IRole {\n id: number | string;\n name: string;\n description: string;\n type: string;\n}\n\ninterface IUser {\n id: number | string;\n username: string;\n email: string;\n provider: string;\n confirmed: boolean;\n blocked: boolean;\n role: IRole;\n created_at: string;\n updated_at: string;\n}\n\nexport type MeOptions = {\n meta?: MetaQuery;\n /**\n * @deprecated `metaData` is deprecated with refine@4, refine will pass `meta` instead, however, we still support `metaData` for backward compatibility.\n */\n metaData?: MetaQuery;\n};\n\nexport const AuthHelper = (apiUrl: string) => ({\n login: async (identifier: string, password: string) => {\n const url = `${apiUrl}/auth/local`;\n\n return await axios.post<ILoginResponse>(url, {\n identifier,\n password,\n });\n },\n me: async (token: string, options?: MeOptions) => {\n const { meta = {} } = options ?? {};\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n\n const query = {\n locale,\n fields,\n populate,\n };\n\n return await axios.get<IUser>(\n `${apiUrl}/users/me?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}`,\n {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n },\n );\n },\n});\n","export const getValueProps = (data: any, imageUrl: string) => {\n if (!data) {\n return { fileList: [] };\n }\n\n return {\n file: data.file,\n fileList:\n data.fileList ??\n (Array.isArray(data) ? data : [data]).map((item: any) => {\n const file: any = {\n name: item.name,\n percent: item.percent,\n size: item.size,\n status: item.status,\n type: item.mime || item.type,\n uid: item.id,\n };\n\n if (item.url) {\n file.url = `${imageUrl}${item.url}`;\n }\n\n return file;\n }),\n };\n};\n\nexport const mediaUploadMapper = (params: any) => {\n Object.keys(params).map((item) => {\n if (params[item]) {\n const param = params[item].fileList;\n const isMediaField = Array.isArray(param);\n if (isMediaField) {\n const ids = [];\n for (const item of param) {\n if (item.response) {\n for (const response of item.response) {\n ids.push(response.id);\n }\n } else {\n ids.push(item.uid);\n }\n }\n params[item] = ids;\n }\n }\n });\n return params;\n};\n"],"mappings":"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","names":["import_qs","qs","axios","qs","import_axios","import_qs","axios","qs","item"]}

@@ -1,2 +0,504 @@

import g from"qs";var M=r=>{switch(r){case"startswith":return"startsWith";case"endswith":return"endsWith";case"nin":return"notIn";case"ncontains":return"notContainsi";case"ncontainss":return"notContains";case"containss":return"contains";case"contains":return"containsi";case"nnull":return"notNull"}return r};import O from"qs";var v=r=>{let o=r.split(".");if(o.length>1){let t="";return o.forEach(s=>{t+=`[${s}]`}),t}return`[${o[0]}]`},A=(r,o="")=>{let{field:t,operator:s,value:e}=r,i="",n=M(s);return Array.isArray(e)?e.map((a,c)=>{i+=`&filters${o}${v(t)}[$${n}][${c}]=${a}`}):i+=`&filters${o}${v(t)}[$${n}]=${e}`,i},S=(r,o="")=>{let t="";return r.value.map((s,e)=>{s.operator!=="or"&&s.operator!=="and"&&"field"in s?t+=A(s,`${o}[$${r.operator}][${e}]`):t+=S(s,`${o}[$${r.operator}][${e}]`)}),t},$=r=>{let o="";r&&r.map(e=>{e.operator!=="or"&&e.operator!=="and"&&"field"in e?o+=A(e):o+=S(e)});let t=O.parse(o,{depth:15});return O.stringify(t,{encodeValuesOnly:!0})};var h=r=>{let o=[];return r&&r.map(t=>{t.order&&o.push(`${t.field}:${t.order}`)}),o};import z from"axios";var w=z.create();w.interceptors.response.use(r=>r,r=>{var t,s,e;let o={...r,message:(s=(t=r.response)==null?void 0:t.data)==null?void 0:s.message,statusCode:(e=r.response)==null?void 0:e.status};return Promise.reject(o)});var I=r=>r.attributes?{id:r.id,...r.attributes}:r,q=r=>Object.prototype.toString.call(r)==="[object Object]",d=r=>{if(Array.isArray(r))return r.map(o=>d(o));if(q(r)){Array.isArray(r.data)?r=[...r.data]:q(r.data)?r=I({...r.data}):r.data===null?r=null:r=I(r);for(let o in r)r[o]=d(r[o]);return r}return r};var H=r=>{let o={};for(let t of r){let s=t.path[0];o[s]?o[s].push(t.message):o[s]=[t.message]}return o};var y=r=>{var n,a,c;let o=((a=(n=r==null?void 0:r.response)==null?void 0:n.data)==null?void 0:a.error)||{},t=o==null?void 0:o.message,s=o==null?void 0:o.status,e=((c=o==null?void 0:o.details)==null?void 0:c.errors)||[];return{statusCode:s,message:t,errors:H(e)}};var ir=(r,o=w)=>({getList:async({resource:t,pagination:s,filters:e,sorters:i,meta:n})=>{var b,m,F;let a=`${r}/${t}`,{currentPage:c=1,pageSize:p=10,mode:u="server"}=s??{},l=n==null?void 0:n.locale,f=n==null?void 0:n.fields,L=n==null?void 0:n.populate,Q=n==null?void 0:n.publicationState,E=h(i),j=$(e),k={...u==="server"?{"pagination[page]":c,"pagination[pageSize]":p}:{},locale:l,publicationState:Q,fields:f,populate:L,sort:E.length>0?E.join(","):void 0},{data:x}=await o.get(`${a}?${g.stringify(k,{encodeValuesOnly:!0})}&${j}`);return{data:d(x),total:((m=(b=x.meta)==null?void 0:b.pagination)==null?void 0:m.total)||((F=d(x))==null?void 0:F.length)}},getMany:async({resource:t,ids:s,meta:e})=>{let i=`${r}/${t}`,n=e==null?void 0:e.locale,a=e==null?void 0:e.fields,c=e==null?void 0:e.populate,p=e==null?void 0:e.publicationState,u=$([{field:"id",operator:"in",value:s}]),l={locale:n,fields:a,populate:c,publicationState:p,"pagination[pageSize]":s.length},{data:f}=await o.get(`${i}?${g.stringify(l,{encodeValuesOnly:!0})}&${u}`);return{data:d(f)}},create:async({resource:t,variables:s})=>{let e=`${r}/${t}`,i={data:s};t==="users"&&(i=s);try{let{data:n}=await o.post(e,i);return{data:n}}catch(n){throw y(n)}},update:async({resource:t,id:s,variables:e})=>{let i=`${r}/${t}/${s}`,n={data:e};t==="users"&&(n=e);try{let{data:a}=await o.put(i,n);return{data:a}}catch(a){throw y(a)}},updateMany:async({resource:t,ids:s,variables:e})=>{let i=[],n=await Promise.all(s.map(async a=>{let c=`${r}/${t}/${a}`,p={data:e};t==="users"&&(p=e);try{let{data:u}=await o.put(c,p);return u}catch(u){let l=y(u);i.push(l)}}));if(i.length>0)throw i;return{data:n}},createMany:async({resource:t,variables:s})=>{let e=[],i=await Promise.all(s.map(async n=>{try{let{data:a}=await o.post(`${r}/${t}`,{data:n});return a}catch(a){let c=y(a);e.push(c)}}));if(e.length>0)throw e;return{data:i}},getOne:async({resource:t,id:s,meta:e})=>{let i=e==null?void 0:e.locale,n=e==null?void 0:e.fields,a=e==null?void 0:e.populate,c=e==null?void 0:e.publicationState,p={locale:i,fields:n,populate:a,publicationState:c},u=`${r}/${t}/${s}?${g.stringify(p,{encode:!1})}`,{data:l}=await o.get(u);return{data:d(l)}},deleteOne:async({resource:t,id:s})=>{let e=`${r}/${t}/${s}`,{data:i}=await o.delete(e);return{data:i}},deleteMany:async({resource:t,ids:s})=>({data:await Promise.all(s.map(async i=>{let{data:n}=await o.delete(`${r}/${t}/${i}`);return n}))}),getApiUrl:()=>r,custom:async({url:t,method:s,filters:e,sorters:i,payload:n,query:a,headers:c})=>{let p=`${t}?`;if(i){let f=h(i);f.length>0&&(p=`${p}&${g.stringify({sort:f.join(",")})}`)}if(e){let f=$(e);p=`${p}&${f}`}a&&(p=`${p}&${g.stringify(a)}`);let u;switch(s){case"put":case"post":case"patch":u=await o[s](t,n,{headers:c});break;case"delete":u=await o.delete(t,{data:n,headers:c});break;default:u=await o.get(p,{headers:c});break}let{data:l}=u;return Promise.resolve({data:l})}});import P from"axios";import V from"qs";var ur=r=>({login:async(o,t)=>{let s=`${r}/auth/local`;return await P.post(s,{identifier:o,password:t})},me:async(o,t)=>{let{meta:s={}}=t??{},e=s==null?void 0:s.locale,i=s==null?void 0:s.fields,n=s==null?void 0:s.populate,a={locale:e,fields:i,populate:n};return await P.get(`${r}/users/me?${V.stringify(a,{encodeValuesOnly:!0})}`,{headers:{Authorization:`Bearer ${o}`}})}});var fr=(r,o)=>r?{file:r.file,fileList:r.fileList??(Array.isArray(r)?r:[r]).map(t=>{let s={name:t.name,percent:t.percent,size:t.size,status:t.status,type:t.mime||t.type,uid:t.id};return t.url&&(s.url=`${o}${t.url}`),s})}:{fileList:[]},dr=r=>(Object.keys(r).map(o=>{if(r[o]){let t=r[o].fileList;if(Array.isArray(t)){let e=[];for(let i of t)if(i.response)for(let n of i.response)e.push(n.id);else e.push(i.uid);r[o]=e}}}),r);export{ur as AuthHelper,ir as DataProvider,w as axiosInstance,$ as generateFilter,v as generateNestedFilterField,h as generateSort,fr as getValueProps,M as mapOperator,dr as mediaUploadMapper,d as normalizeData,H as transformErrorMessages,y as transformHttpError};
// src/dataProvider.ts
import qs2 from "qs";
// src/utils/mapOperator.ts
var mapOperator = (operator) => {
switch (operator) {
case "startswith":
return "startsWith";
case "endswith":
return "endsWith";
case "nin":
return "notIn";
case "ncontains":
return "notContainsi";
case "ncontainss":
return "notContains";
case "containss":
return "contains";
case "contains":
return "containsi";
case "nnull":
return "notNull";
}
return operator;
};
// src/utils/generateFilter.ts
import qs from "qs";
var generateNestedFilterField = (field) => {
const fields = field.split(".");
if (fields.length > 1) {
let fieldQuery = "";
fields.forEach((v) => {
fieldQuery += `[${v}]`;
});
return fieldQuery;
}
return `[${fields[0]}]`;
};
var generateLogicalFilter = (filter, parent = "") => {
const { field, operator, value } = filter;
let rawQuery = "";
const mappedOperator = mapOperator(operator);
if (Array.isArray(value)) {
value.map((val, index) => {
rawQuery += `&filters${parent}${generateNestedFilterField(
field
)}[$${mappedOperator}][${index}]=${val}`;
});
} else {
rawQuery += `&filters${parent}${generateNestedFilterField(
field
)}[$${mappedOperator}]=${value}`;
}
return rawQuery;
};
var generateConditionalFilter = (filter, parent = "") => {
let rawQuery = "";
filter.value.map((item, index) => {
if (item.operator !== "or" && item.operator !== "and" && "field" in item) {
rawQuery += generateLogicalFilter(
item,
`${parent}[$${filter.operator}][${index}]`
);
} else {
rawQuery += generateConditionalFilter(
item,
`${parent}[$${filter.operator}][${index}]`
);
}
});
return rawQuery;
};
var generateFilter = (filters) => {
let rawQuery = "";
if (filters) {
filters.map((filter) => {
if (filter.operator !== "or" && filter.operator !== "and" && "field" in filter) {
rawQuery += generateLogicalFilter(filter);
} else {
rawQuery += generateConditionalFilter(filter);
}
});
}
const parsedQuery = qs.parse(rawQuery, { depth: 15 });
const queryFilters = qs.stringify(parsedQuery, { encodeValuesOnly: true });
return queryFilters;
};
// src/utils/generateSort.ts
var generateSort = (sorters) => {
const _sort = [];
if (sorters) {
sorters.map((item) => {
if (item.order) {
_sort.push(`${item.field}:${item.order}`);
}
});
}
return _sort;
};
// src/utils/axios.ts
import axios from "axios";
var axiosInstance = axios.create();
axiosInstance.interceptors.response.use(
(response) => {
return response;
},
(error) => {
var _a, _b, _c;
const customError = {
...error,
message: (_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.message,
statusCode: (_c = error.response) == null ? void 0 : _c.status
};
return Promise.reject(customError);
}
);
// src/utils/normalizeData.ts
var flatten = (data) => {
if (!data.attributes)
return data;
return {
id: data.id,
...data.attributes
};
};
var isObject = (data) => Object.prototype.toString.call(data) === "[object Object]";
var normalizeData = (data) => {
if (Array.isArray(data)) {
return data.map((item) => normalizeData(item));
}
if (isObject(data)) {
if (Array.isArray(data.data)) {
data = [...data.data];
} else if (isObject(data.data)) {
data = flatten({ ...data.data });
} else if (data.data === null) {
data = null;
} else {
data = flatten(data);
}
for (const key in data) {
data[key] = normalizeData(data[key]);
}
return data;
}
return data;
};
// src/utils/transformErrorMessages.ts
var transformErrorMessages = (errorMessages) => {
const transformedErrors = {};
for (const error of errorMessages) {
const key = error.path[0];
if (transformedErrors[key]) {
transformedErrors[key].push(error.message);
} else {
transformedErrors[key] = [error.message];
}
}
return transformedErrors;
};
// src/utils/transformHttpError.ts
var transformHttpError = (err) => {
var _a, _b, _c;
const error = ((_b = (_a = err == null ? void 0 : err.response) == null ? void 0 : _a.data) == null ? void 0 : _b.error) || {};
const message = error == null ? void 0 : error.message;
const statusCode = error == null ? void 0 : error.status;
const errorMessages = ((_c = error == null ? void 0 : error.details) == null ? void 0 : _c.errors) || [];
const httpError = {
statusCode,
message,
errors: transformErrorMessages(errorMessages)
};
return httpError;
};
// src/dataProvider.ts
var DataProvider = (apiUrl, httpClient = axiosInstance) => ({
getList: async ({ resource, pagination, filters, sorters, meta }) => {
var _a, _b, _c;
const url = `${apiUrl}/${resource}`;
const {
currentPage = 1,
pageSize = 10,
mode = "server"
} = pagination ?? {};
const locale = meta == null ? void 0 : meta.locale;
const fields = meta == null ? void 0 : meta.fields;
const populate = meta == null ? void 0 : meta.populate;
const publicationState = meta == null ? void 0 : meta.publicationState;
const querySorters = generateSort(sorters);
const queryFilters = generateFilter(filters);
const query = {
...mode === "server" ? {
"pagination[page]": currentPage,
"pagination[pageSize]": pageSize
} : {},
locale,
publicationState,
fields,
populate,
sort: querySorters.length > 0 ? querySorters.join(",") : void 0
};
const { data } = await httpClient.get(
`${url}?${qs2.stringify(query, {
encodeValuesOnly: true
})}&${queryFilters}`
);
return {
data: normalizeData(data),
// added to support pagination on client side when using endpoints that provide only data (see https://github.com/refinedev/refine/issues/2028)
total: ((_b = (_a = data.meta) == null ? void 0 : _a.pagination) == null ? void 0 : _b.total) || ((_c = normalizeData(data)) == null ? void 0 : _c.length)
};
},
getMany: async ({ resource, ids, meta }) => {
const url = `${apiUrl}/${resource}`;
const locale = meta == null ? void 0 : meta.locale;
const fields = meta == null ? void 0 : meta.fields;
const populate = meta == null ? void 0 : meta.populate;
const publicationState = meta == null ? void 0 : meta.publicationState;
const queryFilters = generateFilter([
{
field: "id",
operator: "in",
value: ids
}
]);
const query = {
locale,
fields,
populate,
publicationState,
"pagination[pageSize]": ids.length
};
const { data } = await httpClient.get(
`${url}?${qs2.stringify(query, {
encodeValuesOnly: true
})}&${queryFilters}`
);
return {
data: normalizeData(data)
};
},
create: async ({ resource, variables }) => {
const url = `${apiUrl}/${resource}`;
let dataVariables = { data: variables };
if (resource === "users") {
dataVariables = variables;
}
try {
const { data } = await httpClient.post(url, dataVariables);
return {
data
};
} catch (error) {
const httpError = transformHttpError(error);
throw httpError;
}
},
update: async ({ resource, id, variables }) => {
const url = `${apiUrl}/${resource}/${id}`;
let dataVariables = { data: variables };
if (resource === "users") {
dataVariables = variables;
}
try {
const { data } = await httpClient.put(url, dataVariables);
return {
data
};
} catch (error) {
const httpError = transformHttpError(error);
throw httpError;
}
},
updateMany: async ({ resource, ids, variables }) => {
const errors = [];
const response = await Promise.all(
ids.map(async (id) => {
const url = `${apiUrl}/${resource}/${id}`;
let dataVariables = { data: variables };
if (resource === "users") {
dataVariables = variables;
}
try {
const { data } = await httpClient.put(url, dataVariables);
return data;
} catch (error) {
const httpError = transformHttpError(error);
errors.push(httpError);
}
})
);
if (errors.length > 0) {
throw errors;
}
return { data: response };
},
createMany: async ({ resource, variables }) => {
const errors = [];
const response = await Promise.all(
variables.map(async (param) => {
try {
const { data } = await httpClient.post(`${apiUrl}/${resource}`, {
data: param
});
return data;
} catch (error) {
const httpError = transformHttpError(error);
errors.push(httpError);
}
})
);
if (errors.length > 0) {
throw errors;
}
return { data: response };
},
getOne: async ({ resource, id, meta }) => {
const locale = meta == null ? void 0 : meta.locale;
const fields = meta == null ? void 0 : meta.fields;
const populate = meta == null ? void 0 : meta.populate;
const publicationState = meta == null ? void 0 : meta.publicationState;
const query = {
locale,
fields,
populate,
publicationState
};
const url = `${apiUrl}/${resource}/${id}?${qs2.stringify(query, {
encode: false
})}`;
const { data } = await httpClient.get(url);
return {
data: normalizeData(data)
};
},
deleteOne: async ({ resource, id }) => {
const url = `${apiUrl}/${resource}/${id}`;
const { data } = await httpClient.delete(url);
return {
data
};
},
deleteMany: async ({ resource, ids }) => {
const response = await Promise.all(
ids.map(async (id) => {
const { data } = await httpClient.delete(`${apiUrl}/${resource}/${id}`);
return data;
})
);
return { data: response };
},
getApiUrl: () => {
return apiUrl;
},
custom: async ({
url,
method,
filters,
sorters,
payload,
query,
headers
}) => {
let requestUrl = `${url}?`;
if (sorters) {
const sortQuery = generateSort(sorters);
if (sortQuery.length > 0) {
requestUrl = `${requestUrl}&${qs2.stringify({
sort: sortQuery.join(",")
})}`;
}
}
if (filters) {
const filterQuery = generateFilter(filters);
requestUrl = `${requestUrl}&${filterQuery}`;
}
if (query) {
requestUrl = `${requestUrl}&${qs2.stringify(query)}`;
}
let axiosResponse;
switch (method) {
case "put":
case "post":
case "patch":
axiosResponse = await httpClient[method](url, payload, {
headers
});
break;
case "delete":
axiosResponse = await httpClient.delete(url, {
data: payload,
headers
});
break;
default:
axiosResponse = await httpClient.get(requestUrl, { headers });
break;
}
const { data } = axiosResponse;
return Promise.resolve({ data });
}
});
// src/helpers/auth.ts
import axios2 from "axios";
import qs3 from "qs";
var AuthHelper = (apiUrl) => ({
login: async (identifier, password) => {
const url = `${apiUrl}/auth/local`;
return await axios2.post(url, {
identifier,
password
});
},
me: async (token, options) => {
const { meta = {} } = options ?? {};
const locale = meta == null ? void 0 : meta.locale;
const fields = meta == null ? void 0 : meta.fields;
const populate = meta == null ? void 0 : meta.populate;
const query = {
locale,
fields,
populate
};
return await axios2.get(
`${apiUrl}/users/me?${qs3.stringify(query, {
encodeValuesOnly: true
})}`,
{
headers: {
Authorization: `Bearer ${token}`
}
}
);
}
});
// src/helpers/normalize.ts
var getValueProps = (data, imageUrl) => {
if (!data) {
return { fileList: [] };
}
return {
file: data.file,
fileList: data.fileList ?? (Array.isArray(data) ? data : [data]).map((item) => {
const file = {
name: item.name,
percent: item.percent,
size: item.size,
status: item.status,
type: item.mime || item.type,
uid: item.id
};
if (item.url) {
file.url = `${imageUrl}${item.url}`;
}
return file;
})
};
};
var mediaUploadMapper = (params) => {
Object.keys(params).map((item) => {
if (params[item]) {
const param = params[item].fileList;
const isMediaField = Array.isArray(param);
if (isMediaField) {
const ids = [];
for (const item2 of param) {
if (item2.response) {
for (const response of item2.response) {
ids.push(response.id);
}
} else {
ids.push(item2.uid);
}
}
params[item] = ids;
}
}
});
return params;
};
export {
AuthHelper,
DataProvider,
axiosInstance,
generateFilter,
generateNestedFilterField,
generateSort,
getValueProps,
mapOperator,
mediaUploadMapper,
normalizeData,
transformErrorMessages,
transformHttpError
};
//# sourceMappingURL=index.mjs.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/dataProvider.ts","../src/utils/mapOperator.ts","../src/utils/generateFilter.ts","../src/utils/generateSort.ts","../src/utils/axios.ts","../src/utils/normalizeData.ts","../src/utils/transformErrorMessages.ts","../src/utils/transformHttpError.ts","../src/helpers/auth.ts","../src/helpers/normalize.ts"],"sourcesContent":["import type { DataProvider as IDataProvider, HttpError } from \"@refinedev/core\";\nimport type { AxiosInstance } from \"axios\";\nimport qs from \"qs\";\nimport {\n axiosInstance,\n generateFilter,\n generateSort,\n normalizeData,\n transformHttpError,\n} from \"./utils\";\n\nexport const DataProvider = (\n apiUrl: string,\n httpClient: AxiosInstance = axiosInstance,\n): Required<IDataProvider> => ({\n getList: async ({ resource, pagination, filters, sorters, meta }) => {\n const url = `${apiUrl}/${resource}`;\n\n const {\n currentPage = 1,\n pageSize = 10,\n mode = \"server\",\n } = pagination ?? {};\n\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const querySorters = generateSort(sorters);\n const queryFilters = generateFilter(filters);\n\n const query = {\n ...(mode === \"server\"\n ? {\n \"pagination[page]\": currentPage,\n \"pagination[pageSize]\": pageSize,\n }\n : {}),\n locale,\n publicationState,\n fields,\n populate,\n sort: querySorters.length > 0 ? querySorters.join(\",\") : undefined,\n };\n\n const { data } = await httpClient.get(\n `${url}?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}&${queryFilters}`,\n );\n\n return {\n data: normalizeData(data),\n // added to support pagination on client side when using endpoints that provide only data (see https://github.com/refinedev/refine/issues/2028)\n total: data.meta?.pagination?.total || normalizeData(data)?.length,\n };\n },\n\n getMany: async ({ resource, ids, meta }) => {\n const url = `${apiUrl}/${resource}`;\n\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const queryFilters = generateFilter([\n {\n field: \"id\",\n operator: \"in\",\n value: ids,\n },\n ]);\n\n const query = {\n locale,\n fields,\n populate,\n publicationState,\n \"pagination[pageSize]\": ids.length,\n };\n\n const { data } = await httpClient.get(\n `${url}?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}&${queryFilters}`,\n );\n\n return {\n data: normalizeData(data),\n };\n },\n\n create: async ({ resource, variables }) => {\n const url = `${apiUrl}/${resource}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.post(url, dataVariables);\n return {\n data,\n };\n } catch (error) {\n const httpError = transformHttpError(error);\n\n throw httpError;\n }\n },\n\n update: async ({ resource, id, variables }) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.put(url, dataVariables);\n return {\n data,\n };\n } catch (error) {\n const httpError = transformHttpError(error);\n\n throw httpError;\n }\n },\n\n updateMany: async ({ resource, ids, variables }) => {\n const errors: HttpError[] = [];\n\n const response = await Promise.all(\n ids.map(async (id) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.put(url, dataVariables);\n return data;\n } catch (error) {\n const httpError = transformHttpError(error);\n\n errors.push(httpError);\n }\n }),\n );\n\n if (errors.length > 0) {\n throw errors;\n }\n\n return { data: response };\n },\n\n createMany: async ({ resource, variables }) => {\n const errors: HttpError[] = [];\n\n const response = await Promise.all(\n variables.map(async (param) => {\n try {\n const { data } = await httpClient.post(`${apiUrl}/${resource}`, {\n data: param,\n });\n return data;\n } catch (error) {\n const httpError = transformHttpError(error);\n\n errors.push(httpError);\n }\n }),\n );\n\n if (errors.length > 0) {\n throw errors;\n }\n\n return { data: response };\n },\n\n getOne: async ({ resource, id, meta }) => {\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const query = {\n locale,\n fields,\n populate,\n publicationState,\n };\n\n const url = `${apiUrl}/${resource}/${id}?${qs.stringify(query, {\n encode: false,\n })}`;\n\n const { data } = await httpClient.get(url);\n\n return {\n data: normalizeData(data),\n };\n },\n\n deleteOne: async ({ resource, id }) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n const { data } = await httpClient.delete(url);\n\n return {\n data,\n };\n },\n\n deleteMany: async ({ resource, ids }) => {\n const response = await Promise.all(\n ids.map(async (id) => {\n const { data } = await httpClient.delete(`${apiUrl}/${resource}/${id}`);\n return data;\n }),\n );\n return { data: response };\n },\n\n getApiUrl: () => {\n return apiUrl;\n },\n\n custom: async ({\n url,\n method,\n filters,\n sorters,\n payload,\n query,\n headers,\n }) => {\n let requestUrl = `${url}?`;\n\n if (sorters) {\n const sortQuery = generateSort(sorters);\n if (sortQuery.length > 0) {\n requestUrl = `${requestUrl}&${qs.stringify({\n sort: sortQuery.join(\",\"),\n })}`;\n }\n }\n\n if (filters) {\n const filterQuery = generateFilter(filters);\n requestUrl = `${requestUrl}&${filterQuery}`;\n }\n\n if (query) {\n requestUrl = `${requestUrl}&${qs.stringify(query)}`;\n }\n\n let axiosResponse;\n switch (method) {\n case \"put\":\n case \"post\":\n case \"patch\":\n axiosResponse = await httpClient[method](url, payload, {\n headers,\n });\n break;\n case \"delete\":\n axiosResponse = await httpClient.delete(url, {\n data: payload,\n headers: headers,\n });\n break;\n default:\n axiosResponse = await httpClient.get(requestUrl, { headers });\n break;\n }\n\n const { data } = axiosResponse;\n\n return Promise.resolve({ data });\n },\n});\n","import type { CrudOperators } from \"@refinedev/core\";\n\nexport const mapOperator = (operator: CrudOperators) => {\n switch (operator) {\n case \"startswith\":\n return \"startsWith\";\n case \"endswith\":\n return \"endsWith\";\n case \"nin\":\n return \"notIn\";\n case \"ncontains\":\n return \"notContainsi\";\n case \"ncontainss\":\n return \"notContains\";\n case \"containss\":\n return \"contains\";\n case \"contains\":\n return \"containsi\";\n case \"nnull\":\n return \"notNull\";\n }\n\n return operator;\n};\n","import type {\n CrudFilters,\n LogicalFilter,\n ConditionalFilter,\n} from \"@refinedev/core\";\nimport { mapOperator } from \"./mapOperator\";\nimport qs from \"qs\";\n\nexport const generateNestedFilterField = (field: string) => {\n const fields = field.split(\".\");\n\n if (fields.length > 1) {\n let fieldQuery = \"\";\n\n fields.forEach((v) => {\n fieldQuery += `[${v}]`;\n });\n\n return fieldQuery;\n }\n return `[${fields[0]}]`;\n};\n\nconst generateLogicalFilter = (filter: LogicalFilter, parent = \"\"): string => {\n const { field, operator, value } = filter;\n\n let rawQuery = \"\";\n\n const mappedOperator = mapOperator(operator);\n\n if (Array.isArray(value)) {\n value.map((val, index) => {\n rawQuery += `&filters${parent}${generateNestedFilterField(\n field,\n )}[$${mappedOperator}][${index}]=${val}`;\n });\n } else {\n rawQuery += `&filters${parent}${generateNestedFilterField(\n field,\n )}[$${mappedOperator}]=${value}`;\n }\n return rawQuery;\n};\n\nconst generateConditionalFilter = (\n filter: ConditionalFilter,\n parent = \"\",\n): string => {\n let rawQuery = \"\";\n\n filter.value.map((item, index) => {\n if (item.operator !== \"or\" && item.operator !== \"and\" && \"field\" in item) {\n rawQuery += generateLogicalFilter(\n item,\n `${parent}[$${filter.operator}][${index}]`,\n );\n } else {\n rawQuery += generateConditionalFilter(\n item,\n `${parent}[$${filter.operator}][${index}]`,\n );\n }\n });\n return rawQuery;\n};\n\nexport const generateFilter = (filters?: CrudFilters) => {\n let rawQuery = \"\";\n\n if (filters) {\n filters.map((filter) => {\n if (\n filter.operator !== \"or\" &&\n filter.operator !== \"and\" &&\n \"field\" in filter\n ) {\n rawQuery += generateLogicalFilter(filter);\n } else {\n rawQuery += generateConditionalFilter(filter);\n }\n });\n }\n\n const parsedQuery = qs.parse(rawQuery, { depth: 15 });\n\n const queryFilters = qs.stringify(parsedQuery, { encodeValuesOnly: true });\n\n return queryFilters;\n};\n","import type { CrudSorting } from \"@refinedev/core\";\n\nexport const generateSort = (sorters?: CrudSorting) => {\n const _sort: string[] = [];\n\n if (sorters) {\n sorters.map((item) => {\n if (item.order) {\n _sort.push(`${item.field}:${item.order}`);\n }\n });\n }\n\n return _sort;\n};\n","import axios from \"axios\";\nimport type { HttpError } from \"@refinedev/core\";\n\nexport const axiosInstance = axios.create();\n\naxiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n const customError: HttpError = {\n ...error,\n message: error.response?.data?.message,\n statusCode: error.response?.status,\n };\n\n return Promise.reject(customError);\n },\n);\n","const flatten = (data: any) => {\n if (!data.attributes) return data;\n\n return {\n id: data.id,\n ...data.attributes,\n };\n};\n\nconst isObject = (data: any) =>\n Object.prototype.toString.call(data) === \"[object Object]\";\n\nexport const normalizeData = (data: any): any => {\n if (Array.isArray(data)) {\n return data.map((item) => normalizeData(item));\n }\n\n if (isObject(data)) {\n if (Array.isArray(data.data)) {\n data = [...data.data];\n } else if (isObject(data.data)) {\n data = flatten({ ...data.data });\n } else if (data.data === null) {\n data = null;\n } else {\n data = flatten(data);\n }\n\n for (const key in data) {\n data[key] = normalizeData(data[key]);\n }\n\n return data;\n }\n\n return data;\n};\n","type ErrorMessage = {\n path: string[];\n message: string;\n name: string;\n};\n\ntype TransformedErrors = {\n [key: string]: string[];\n};\n\nexport const transformErrorMessages = (\n errorMessages: ErrorMessage[],\n): TransformedErrors => {\n const transformedErrors: TransformedErrors = {};\n\n for (const error of errorMessages) {\n const key = error.path[0];\n\n if (transformedErrors[key]) {\n transformedErrors[key].push(error.message);\n } else {\n transformedErrors[key] = [error.message];\n }\n }\n\n return transformedErrors;\n};\n","import type { HttpError } from \"@refinedev/core\";\nimport { transformErrorMessages } from \"./transformErrorMessages\";\n\nexport const transformHttpError = (err: any): HttpError => {\n const error = err?.response?.data?.error || {};\n\n const message = error?.message;\n const statusCode = error?.status;\n const errorMessages = error?.details?.errors || [];\n\n const httpError: HttpError = {\n statusCode,\n message,\n errors: transformErrorMessages(errorMessages),\n };\n\n return httpError;\n};\n","import type { MetaQuery } from \"@refinedev/core\";\nimport axios from \"axios\";\nimport qs from \"qs\";\n\ninterface ILoginResponse {\n jwt: string;\n user: IUser;\n}\n\ninterface IRole {\n id: number | string;\n name: string;\n description: string;\n type: string;\n}\n\ninterface IUser {\n id: number | string;\n username: string;\n email: string;\n provider: string;\n confirmed: boolean;\n blocked: boolean;\n role: IRole;\n created_at: string;\n updated_at: string;\n}\n\nexport type MeOptions = {\n meta?: MetaQuery;\n /**\n * @deprecated `metaData` is deprecated with refine@4, refine will pass `meta` instead, however, we still support `metaData` for backward compatibility.\n */\n metaData?: MetaQuery;\n};\n\nexport const AuthHelper = (apiUrl: string) => ({\n login: async (identifier: string, password: string) => {\n const url = `${apiUrl}/auth/local`;\n\n return await axios.post<ILoginResponse>(url, {\n identifier,\n password,\n });\n },\n me: async (token: string, options?: MeOptions) => {\n const { meta = {} } = options ?? {};\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n\n const query = {\n locale,\n fields,\n populate,\n };\n\n return await axios.get<IUser>(\n `${apiUrl}/users/me?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}`,\n {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n },\n );\n },\n});\n","export const getValueProps = (data: any, imageUrl: string) => {\n if (!data) {\n return { fileList: [] };\n }\n\n return {\n file: data.file,\n fileList:\n data.fileList ??\n (Array.isArray(data) ? data : [data]).map((item: any) => {\n const file: any = {\n name: item.name,\n percent: item.percent,\n size: item.size,\n status: item.status,\n type: item.mime || item.type,\n uid: item.id,\n };\n\n if (item.url) {\n file.url = `${imageUrl}${item.url}`;\n }\n\n return file;\n }),\n };\n};\n\nexport const mediaUploadMapper = (params: any) => {\n Object.keys(params).map((item) => {\n if (params[item]) {\n const param = params[item].fileList;\n const isMediaField = Array.isArray(param);\n if (isMediaField) {\n const ids = [];\n for (const item of param) {\n if (item.response) {\n for (const response of item.response) {\n ids.push(response.id);\n }\n } else {\n ids.push(item.uid);\n }\n }\n params[item] = ids;\n }\n }\n });\n return params;\n};\n"],"mappings":"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","names":["qs","mapOperator","operator","qs","generateNestedFilterField","field","fields","fieldQuery","v","generateLogicalFilter","filter","parent","operator","value","rawQuery","mappedOperator","mapOperator","val","index","generateConditionalFilter","item","generateFilter","filters","parsedQuery","generateSort","sorters","_sort","item","axios","axiosInstance","response","error","_a","_b","_c","customError","flatten","data","isObject","normalizeData","item","key","transformErrorMessages","errorMessages","transformedErrors","error","key","transformHttpError","err","_a","_b","_c","error","message","statusCode","errorMessages","transformErrorMessages","DataProvider","apiUrl","httpClient","axiosInstance","resource","pagination","filters","sorters","meta","_a","_b","_c","url","currentPage","pageSize","mode","locale","fields","populate","publicationState","querySorters","generateSort","queryFilters","generateFilter","query","data","qs","normalizeData","ids","variables","dataVariables","error","transformHttpError","id","errors","response","httpError","param","method","payload","headers","requestUrl","sortQuery","filterQuery","axiosResponse","axios","qs","AuthHelper","apiUrl","identifier","password","url","token","options","meta","locale","fields","populate","query","getValueProps","data","imageUrl","item","file","mediaUploadMapper","params","param","ids","response"]}
{"version":3,"sources":["../src/dataProvider.ts","../src/utils/mapOperator.ts","../src/utils/generateFilter.ts","../src/utils/generateSort.ts","../src/utils/axios.ts","../src/utils/normalizeData.ts","../src/utils/transformErrorMessages.ts","../src/utils/transformHttpError.ts","../src/helpers/auth.ts","../src/helpers/normalize.ts"],"sourcesContent":["import type { DataProvider as IDataProvider, HttpError } from \"@refinedev/core\";\nimport type { AxiosInstance } from \"axios\";\nimport qs from \"qs\";\nimport {\n axiosInstance,\n generateFilter,\n generateSort,\n normalizeData,\n transformHttpError,\n} from \"./utils\";\n\nexport const DataProvider = (\n apiUrl: string,\n httpClient: AxiosInstance = axiosInstance,\n): Required<IDataProvider> => ({\n getList: async ({ resource, pagination, filters, sorters, meta }) => {\n const url = `${apiUrl}/${resource}`;\n\n const {\n currentPage = 1,\n pageSize = 10,\n mode = \"server\",\n } = pagination ?? {};\n\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const querySorters = generateSort(sorters);\n const queryFilters = generateFilter(filters);\n\n const query = {\n ...(mode === \"server\"\n ? {\n \"pagination[page]\": currentPage,\n \"pagination[pageSize]\": pageSize,\n }\n : {}),\n locale,\n publicationState,\n fields,\n populate,\n sort: querySorters.length > 0 ? querySorters.join(\",\") : undefined,\n };\n\n const { data } = await httpClient.get(\n `${url}?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}&${queryFilters}`,\n );\n\n return {\n data: normalizeData(data),\n // added to support pagination on client side when using endpoints that provide only data (see https://github.com/refinedev/refine/issues/2028)\n total: data.meta?.pagination?.total || normalizeData(data)?.length,\n };\n },\n\n getMany: async ({ resource, ids, meta }) => {\n const url = `${apiUrl}/${resource}`;\n\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const queryFilters = generateFilter([\n {\n field: \"id\",\n operator: \"in\",\n value: ids,\n },\n ]);\n\n const query = {\n locale,\n fields,\n populate,\n publicationState,\n \"pagination[pageSize]\": ids.length,\n };\n\n const { data } = await httpClient.get(\n `${url}?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}&${queryFilters}`,\n );\n\n return {\n data: normalizeData(data),\n };\n },\n\n create: async ({ resource, variables }) => {\n const url = `${apiUrl}/${resource}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.post(url, dataVariables);\n return {\n data,\n };\n } catch (error) {\n const httpError = transformHttpError(error);\n\n throw httpError;\n }\n },\n\n update: async ({ resource, id, variables }) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.put(url, dataVariables);\n return {\n data,\n };\n } catch (error) {\n const httpError = transformHttpError(error);\n\n throw httpError;\n }\n },\n\n updateMany: async ({ resource, ids, variables }) => {\n const errors: HttpError[] = [];\n\n const response = await Promise.all(\n ids.map(async (id) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n let dataVariables: any = { data: variables };\n\n if (resource === \"users\") {\n dataVariables = variables;\n }\n\n try {\n const { data } = await httpClient.put(url, dataVariables);\n return data;\n } catch (error) {\n const httpError = transformHttpError(error);\n\n errors.push(httpError);\n }\n }),\n );\n\n if (errors.length > 0) {\n throw errors;\n }\n\n return { data: response };\n },\n\n createMany: async ({ resource, variables }) => {\n const errors: HttpError[] = [];\n\n const response = await Promise.all(\n variables.map(async (param) => {\n try {\n const { data } = await httpClient.post(`${apiUrl}/${resource}`, {\n data: param,\n });\n return data;\n } catch (error) {\n const httpError = transformHttpError(error);\n\n errors.push(httpError);\n }\n }),\n );\n\n if (errors.length > 0) {\n throw errors;\n }\n\n return { data: response };\n },\n\n getOne: async ({ resource, id, meta }) => {\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n const publicationState = meta?.publicationState;\n\n const query = {\n locale,\n fields,\n populate,\n publicationState,\n };\n\n const url = `${apiUrl}/${resource}/${id}?${qs.stringify(query, {\n encode: false,\n })}`;\n\n const { data } = await httpClient.get(url);\n\n return {\n data: normalizeData(data),\n };\n },\n\n deleteOne: async ({ resource, id }) => {\n const url = `${apiUrl}/${resource}/${id}`;\n\n const { data } = await httpClient.delete(url);\n\n return {\n data,\n };\n },\n\n deleteMany: async ({ resource, ids }) => {\n const response = await Promise.all(\n ids.map(async (id) => {\n const { data } = await httpClient.delete(`${apiUrl}/${resource}/${id}`);\n return data;\n }),\n );\n return { data: response };\n },\n\n getApiUrl: () => {\n return apiUrl;\n },\n\n custom: async ({\n url,\n method,\n filters,\n sorters,\n payload,\n query,\n headers,\n }) => {\n let requestUrl = `${url}?`;\n\n if (sorters) {\n const sortQuery = generateSort(sorters);\n if (sortQuery.length > 0) {\n requestUrl = `${requestUrl}&${qs.stringify({\n sort: sortQuery.join(\",\"),\n })}`;\n }\n }\n\n if (filters) {\n const filterQuery = generateFilter(filters);\n requestUrl = `${requestUrl}&${filterQuery}`;\n }\n\n if (query) {\n requestUrl = `${requestUrl}&${qs.stringify(query)}`;\n }\n\n let axiosResponse;\n switch (method) {\n case \"put\":\n case \"post\":\n case \"patch\":\n axiosResponse = await httpClient[method](url, payload, {\n headers,\n });\n break;\n case \"delete\":\n axiosResponse = await httpClient.delete(url, {\n data: payload,\n headers: headers,\n });\n break;\n default:\n axiosResponse = await httpClient.get(requestUrl, { headers });\n break;\n }\n\n const { data } = axiosResponse;\n\n return Promise.resolve({ data });\n },\n});\n","import type { CrudOperators } from \"@refinedev/core\";\n\nexport const mapOperator = (operator: CrudOperators) => {\n switch (operator) {\n case \"startswith\":\n return \"startsWith\";\n case \"endswith\":\n return \"endsWith\";\n case \"nin\":\n return \"notIn\";\n case \"ncontains\":\n return \"notContainsi\";\n case \"ncontainss\":\n return \"notContains\";\n case \"containss\":\n return \"contains\";\n case \"contains\":\n return \"containsi\";\n case \"nnull\":\n return \"notNull\";\n }\n\n return operator;\n};\n","import type {\n CrudFilters,\n LogicalFilter,\n ConditionalFilter,\n} from \"@refinedev/core\";\nimport { mapOperator } from \"./mapOperator\";\nimport qs from \"qs\";\n\nexport const generateNestedFilterField = (field: string) => {\n const fields = field.split(\".\");\n\n if (fields.length > 1) {\n let fieldQuery = \"\";\n\n fields.forEach((v) => {\n fieldQuery += `[${v}]`;\n });\n\n return fieldQuery;\n }\n return `[${fields[0]}]`;\n};\n\nconst generateLogicalFilter = (filter: LogicalFilter, parent = \"\"): string => {\n const { field, operator, value } = filter;\n\n let rawQuery = \"\";\n\n const mappedOperator = mapOperator(operator);\n\n if (Array.isArray(value)) {\n value.map((val, index) => {\n rawQuery += `&filters${parent}${generateNestedFilterField(\n field,\n )}[$${mappedOperator}][${index}]=${val}`;\n });\n } else {\n rawQuery += `&filters${parent}${generateNestedFilterField(\n field,\n )}[$${mappedOperator}]=${value}`;\n }\n return rawQuery;\n};\n\nconst generateConditionalFilter = (\n filter: ConditionalFilter,\n parent = \"\",\n): string => {\n let rawQuery = \"\";\n\n filter.value.map((item, index) => {\n if (item.operator !== \"or\" && item.operator !== \"and\" && \"field\" in item) {\n rawQuery += generateLogicalFilter(\n item,\n `${parent}[$${filter.operator}][${index}]`,\n );\n } else {\n rawQuery += generateConditionalFilter(\n item,\n `${parent}[$${filter.operator}][${index}]`,\n );\n }\n });\n return rawQuery;\n};\n\nexport const generateFilter = (filters?: CrudFilters) => {\n let rawQuery = \"\";\n\n if (filters) {\n filters.map((filter) => {\n if (\n filter.operator !== \"or\" &&\n filter.operator !== \"and\" &&\n \"field\" in filter\n ) {\n rawQuery += generateLogicalFilter(filter);\n } else {\n rawQuery += generateConditionalFilter(filter);\n }\n });\n }\n\n const parsedQuery = qs.parse(rawQuery, { depth: 15 });\n\n const queryFilters = qs.stringify(parsedQuery, { encodeValuesOnly: true });\n\n return queryFilters;\n};\n","import type { CrudSorting } from \"@refinedev/core\";\n\nexport const generateSort = (sorters?: CrudSorting) => {\n const _sort: string[] = [];\n\n if (sorters) {\n sorters.map((item) => {\n if (item.order) {\n _sort.push(`${item.field}:${item.order}`);\n }\n });\n }\n\n return _sort;\n};\n","import axios from \"axios\";\nimport type { HttpError } from \"@refinedev/core\";\n\nexport const axiosInstance = axios.create();\n\naxiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n const customError: HttpError = {\n ...error,\n message: error.response?.data?.message,\n statusCode: error.response?.status,\n };\n\n return Promise.reject(customError);\n },\n);\n","const flatten = (data: any) => {\n if (!data.attributes) return data;\n\n return {\n id: data.id,\n ...data.attributes,\n };\n};\n\nconst isObject = (data: any) =>\n Object.prototype.toString.call(data) === \"[object Object]\";\n\nexport const normalizeData = (data: any): any => {\n if (Array.isArray(data)) {\n return data.map((item) => normalizeData(item));\n }\n\n if (isObject(data)) {\n if (Array.isArray(data.data)) {\n data = [...data.data];\n } else if (isObject(data.data)) {\n data = flatten({ ...data.data });\n } else if (data.data === null) {\n data = null;\n } else {\n data = flatten(data);\n }\n\n for (const key in data) {\n data[key] = normalizeData(data[key]);\n }\n\n return data;\n }\n\n return data;\n};\n","type ErrorMessage = {\n path: string[];\n message: string;\n name: string;\n};\n\ntype TransformedErrors = {\n [key: string]: string[];\n};\n\nexport const transformErrorMessages = (\n errorMessages: ErrorMessage[],\n): TransformedErrors => {\n const transformedErrors: TransformedErrors = {};\n\n for (const error of errorMessages) {\n const key = error.path[0];\n\n if (transformedErrors[key]) {\n transformedErrors[key].push(error.message);\n } else {\n transformedErrors[key] = [error.message];\n }\n }\n\n return transformedErrors;\n};\n","import type { HttpError } from \"@refinedev/core\";\nimport { transformErrorMessages } from \"./transformErrorMessages\";\n\nexport const transformHttpError = (err: any): HttpError => {\n const error = err?.response?.data?.error || {};\n\n const message = error?.message;\n const statusCode = error?.status;\n const errorMessages = error?.details?.errors || [];\n\n const httpError: HttpError = {\n statusCode,\n message,\n errors: transformErrorMessages(errorMessages),\n };\n\n return httpError;\n};\n","import type { MetaQuery } from \"@refinedev/core\";\nimport axios from \"axios\";\nimport qs from \"qs\";\n\ninterface ILoginResponse {\n jwt: string;\n user: IUser;\n}\n\ninterface IRole {\n id: number | string;\n name: string;\n description: string;\n type: string;\n}\n\ninterface IUser {\n id: number | string;\n username: string;\n email: string;\n provider: string;\n confirmed: boolean;\n blocked: boolean;\n role: IRole;\n created_at: string;\n updated_at: string;\n}\n\nexport type MeOptions = {\n meta?: MetaQuery;\n /**\n * @deprecated `metaData` is deprecated with refine@4, refine will pass `meta` instead, however, we still support `metaData` for backward compatibility.\n */\n metaData?: MetaQuery;\n};\n\nexport const AuthHelper = (apiUrl: string) => ({\n login: async (identifier: string, password: string) => {\n const url = `${apiUrl}/auth/local`;\n\n return await axios.post<ILoginResponse>(url, {\n identifier,\n password,\n });\n },\n me: async (token: string, options?: MeOptions) => {\n const { meta = {} } = options ?? {};\n const locale = meta?.locale;\n const fields = meta?.fields;\n const populate = meta?.populate;\n\n const query = {\n locale,\n fields,\n populate,\n };\n\n return await axios.get<IUser>(\n `${apiUrl}/users/me?${qs.stringify(query, {\n encodeValuesOnly: true,\n })}`,\n {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n },\n );\n },\n});\n","export const getValueProps = (data: any, imageUrl: string) => {\n if (!data) {\n return { fileList: [] };\n }\n\n return {\n file: data.file,\n fileList:\n data.fileList ??\n (Array.isArray(data) ? data : [data]).map((item: any) => {\n const file: any = {\n name: item.name,\n percent: item.percent,\n size: item.size,\n status: item.status,\n type: item.mime || item.type,\n uid: item.id,\n };\n\n if (item.url) {\n file.url = `${imageUrl}${item.url}`;\n }\n\n return file;\n }),\n };\n};\n\nexport const mediaUploadMapper = (params: any) => {\n Object.keys(params).map((item) => {\n if (params[item]) {\n const param = params[item].fileList;\n const isMediaField = Array.isArray(param);\n if (isMediaField) {\n const ids = [];\n for (const item of param) {\n if (item.response) {\n for (const response of item.response) {\n ids.push(response.id);\n }\n } else {\n ids.push(item.uid);\n }\n }\n params[item] = ids;\n }\n }\n });\n return params;\n};\n"],"mappings":"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","names":["qs","qs","axios","qs","item"]}
{
"name": "@refinedev/strapi-v4",
"version": "7.0.0",
"version": "7.0.1",
"private": false,

@@ -39,14 +39,12 @@ "description": "Strapi v4 Data Provider for Refine, supporting content management with Strapi.",

"@esbuild-plugins/node-resolve": "^0.1.4",
"@refinedev/cli": "^2.16.48",
"@refinedev/core": "^5.0.0",
"@types/jest": "^29.2.4",
"@refinedev/cli": "^2.16.50",
"@refinedev/core": "^5.0.5",
"@types/node": "^20",
"@types/qs": "^6.9.7",
"jest": "^30.0.5",
"jest-environment-jsdom": "^30.0.5",
"@vitest/ui": "^2.1.8",
"nock": "^13.4.0",
"ts-jest": "^29.1.2",
"tslib": "^2.6.2",
"tsup": "^6.7.0",
"typescript": "^5.8.3"
"typescript": "^5.8.3",
"vitest": "^2.1.8"
},

@@ -71,5 +69,6 @@ "peerDependencies": {

"publint": "publint --strict=true --level=suggestion",
"test": "jest --passWithNoTests --runInBand",
"test": "vitest run",
"test:watch": "vitest",
"types": "node ../shared/generate-declarations.js"
}
}