@refinedev/strapi-v4
Advanced tools
+535
-1
@@ -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 +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"]} |
+503
-1
@@ -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"]} |
+8
-9
| { | ||
| "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" | ||
| } | ||
| } |
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
124173
13.61%11
-15.38%1727
127.24%1
-66.67%