@amaster.ai/entity-client 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +11 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var httpClient=require('@amaster.ai/http-client');function c(s){let
|
|
1
|
+
'use strict';var httpClient=require('@amaster.ai/http-client');function c(s){let t;if(s instanceof Date?t=s:typeof s=="string"?t=new Date(s):t=new Date(s),Number.isNaN(t.getTime()))return String(s);let o=t.getUTCFullYear(),r=String(t.getUTCMonth()+1).padStart(2,"0"),n=String(t.getUTCDate()).padStart(2,"0"),e=String(t.getUTCHours()).padStart(2,"0"),i=String(t.getUTCMinutes()).padStart(2,"0"),u=String(t.getUTCSeconds()).padStart(2,"0");return `${o}-${r}-${n} ${e}:${i}:${u}`}function g(s){if(s==null)return s;if(s instanceof Date)return c(s);if(Array.isArray(s))return s.map(t=>g(t));if(typeof s=="object"){let t={};for(let[o,r]of Object.entries(s))t[o]=g(r);return t}return typeof s=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(s)?c(s):s}function a(s,t,o=""){let r=`/api/entity/data/${s}/${t}`;return o?`${r}${o.startsWith("/")?o:`/${o}`}`:r}function d(s){if(!s||Object.keys(s).length===0)return "";let t=new URLSearchParams;for(let[r,n]of Object.entries(s))if(n!=null)if(r==="__filter"&&typeof n=="object")t.append(r,JSON.stringify(n));else if(r==="__relations"&&Array.isArray(n))for(let e of n)t.append("__relations[]",String(e));else if(r==="__fields"&&Array.isArray(n))n.forEach((e,i)=>{t.append(`__fields[${i}]`,String(e));});else if(r==="__keywords"&&typeof n=="object"&&!Array.isArray(n)){let e=n;if(e.fields&&e.fields.length>0&&e.value){let i=e.fields.join(",");t.append(`__keywords[${i}]`,e.value);}}else if(Array.isArray(n))for(let e of n)t.append(r,String(e));else if(typeof n=="object"&&!Array.isArray(n)){for(let[e,i]of Object.entries(n))if(i!=null)if(typeof i=="object"&&!Array.isArray(i))for(let[u,l]of Object.entries(i))l!=null&&t.append(`${r}[${e}][${u}]`,String(l));else Array.isArray(i)?i.forEach((u,l)=>{t.append(`${r}[${e}][${l}]`,String(u));}):t.append(`${r}[${e}]`,String(i));}else t.append(r,String(n));let o=t.toString();return o?`?${o}`:""}function p(s=httpClient.createHttpClient()){return {async list(t,o,r){let n=a(t,o)+d(r),e=await s.request({url:n,method:"get"});if(e.error||!e.data)return {data:{items:[],total:0},error:e.error,status:e.status};let i=Array.isArray(e.data.items)?e.data.items:[],u=e.data.total??e.data.count??i.length;return {...e,data:{items:i,total:u,page:e.data.page,perPage:e.data.perPage||e.data.pageSize}}},get(t,o,r){if(!r)return Promise.resolve({data:null,error:{message:"Entity ID is required",status:400},status:400});let n=a(t,o,`/${r}`);return s.request({url:n,method:"get"})},create(t,o,r){if(!r||typeof r!="object")return Promise.resolve({data:null,error:{message:"Entity data is required",status:400},status:400});let n=g(r),e=a(t,o);return s.request({url:e,method:"post",headers:{"Content-Type":"application/json"},data:n})},update(t,o,r,n){if(!r)return Promise.resolve({data:null,error:{message:"Entity ID is required",status:400},status:400});if(!n||typeof n!="object")return Promise.resolve({data:null,error:{message:"Entity data is required",status:400},status:400});let e=g(n),i=a(t,o,`/${r}`);return s.request({url:i,method:"put",headers:{"Content-Type":"application/json"},data:e})},async delete(t,o,r){if(!r)return {data:null,error:{message:"Entity ID is required",status:400},status:400};let n=a(t,o,`/${r}`),e=await s.request({url:n,method:"delete"});return e.status===204?{...e,data:null}:e},async options(t,o,r){let n=r&&r.length>0?{"__fields[]":r}:void 0,e=a(t,o,"/options")+d(n),i=await s.request({url:e,method:"get"});return i.error||!i.data?{data:null,error:i.error,status:i.status}:{...i,data:i.data.items||[]}},bulkUpdate(t,o,r){if(!r||r.length===0)return Promise.resolve({data:null,error:{message:"Items array is required",status:400},status:400});let n=r.map(i=>g(i)),e=a(t,o,"/bulkUpdate");return s.request({url:e,method:"post",headers:{"Content-Type":"application/json"},data:{items:n}})},async bulkDelete(t,o,r){if(!r||r.length===0)return {data:null,error:{message:"IDs array is required",status:400},status:400};let n=a(t,o,`/${r.join(",")}`),e=await s.request({url:n,method:"delete"});return e.status===204?{...e,data:null}:e}}}exports.createEntityClient=p;//# sourceMappingURL=index.cjs.map
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.d.cts
CHANGED
|
@@ -68,6 +68,16 @@ type KeywordsSearch = {
|
|
|
68
68
|
fields: string[];
|
|
69
69
|
value: string;
|
|
70
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Between filter value format
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* { 'created_at[bt]': { from: '2024-01-01', to: '2024-12-31' } }
|
|
76
|
+
*/
|
|
77
|
+
type BetweenValue = {
|
|
78
|
+
from?: string | number | Date;
|
|
79
|
+
to?: string | number | Date;
|
|
80
|
+
};
|
|
71
81
|
/**
|
|
72
82
|
* Entity query parameters
|
|
73
83
|
*
|
|
@@ -173,4 +183,4 @@ type EntityClient = {
|
|
|
173
183
|
};
|
|
174
184
|
declare function createEntityClient(http?: HttpClient): EntityClient;
|
|
175
185
|
|
|
176
|
-
export { type EntityClient, type EntityListResponse, type EntityQueryParams, type FilterGroup, type FilterItem, type FilterOperator, createEntityClient };
|
|
186
|
+
export { type AdvancedFilterOperator, type BetweenValue, type EntityClient, type EntityListResponse, type EntityQueryParams, type FilterGroup, type FilterItem, type FilterOperator, type KeywordsSearch, createEntityClient };
|
package/dist/index.d.ts
CHANGED
|
@@ -68,6 +68,16 @@ type KeywordsSearch = {
|
|
|
68
68
|
fields: string[];
|
|
69
69
|
value: string;
|
|
70
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Between filter value format
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* { 'created_at[bt]': { from: '2024-01-01', to: '2024-12-31' } }
|
|
76
|
+
*/
|
|
77
|
+
type BetweenValue = {
|
|
78
|
+
from?: string | number | Date;
|
|
79
|
+
to?: string | number | Date;
|
|
80
|
+
};
|
|
71
81
|
/**
|
|
72
82
|
* Entity query parameters
|
|
73
83
|
*
|
|
@@ -173,4 +183,4 @@ type EntityClient = {
|
|
|
173
183
|
};
|
|
174
184
|
declare function createEntityClient(http?: HttpClient): EntityClient;
|
|
175
185
|
|
|
176
|
-
export { type EntityClient, type EntityListResponse, type EntityQueryParams, type FilterGroup, type FilterItem, type FilterOperator, createEntityClient };
|
|
186
|
+
export { type AdvancedFilterOperator, type BetweenValue, type EntityClient, type EntityListResponse, type EntityQueryParams, type FilterGroup, type FilterItem, type FilterOperator, type KeywordsSearch, createEntityClient };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {createHttpClient}from'@amaster.ai/http-client';function c(s){let
|
|
1
|
+
import {createHttpClient}from'@amaster.ai/http-client';function c(s){let t;if(s instanceof Date?t=s:typeof s=="string"?t=new Date(s):t=new Date(s),Number.isNaN(t.getTime()))return String(s);let o=t.getUTCFullYear(),r=String(t.getUTCMonth()+1).padStart(2,"0"),n=String(t.getUTCDate()).padStart(2,"0"),e=String(t.getUTCHours()).padStart(2,"0"),i=String(t.getUTCMinutes()).padStart(2,"0"),u=String(t.getUTCSeconds()).padStart(2,"0");return `${o}-${r}-${n} ${e}:${i}:${u}`}function g(s){if(s==null)return s;if(s instanceof Date)return c(s);if(Array.isArray(s))return s.map(t=>g(t));if(typeof s=="object"){let t={};for(let[o,r]of Object.entries(s))t[o]=g(r);return t}return typeof s=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(s)?c(s):s}function a(s,t,o=""){let r=`/api/entity/data/${s}/${t}`;return o?`${r}${o.startsWith("/")?o:`/${o}`}`:r}function d(s){if(!s||Object.keys(s).length===0)return "";let t=new URLSearchParams;for(let[r,n]of Object.entries(s))if(n!=null)if(r==="__filter"&&typeof n=="object")t.append(r,JSON.stringify(n));else if(r==="__relations"&&Array.isArray(n))for(let e of n)t.append("__relations[]",String(e));else if(r==="__fields"&&Array.isArray(n))n.forEach((e,i)=>{t.append(`__fields[${i}]`,String(e));});else if(r==="__keywords"&&typeof n=="object"&&!Array.isArray(n)){let e=n;if(e.fields&&e.fields.length>0&&e.value){let i=e.fields.join(",");t.append(`__keywords[${i}]`,e.value);}}else if(Array.isArray(n))for(let e of n)t.append(r,String(e));else if(typeof n=="object"&&!Array.isArray(n)){for(let[e,i]of Object.entries(n))if(i!=null)if(typeof i=="object"&&!Array.isArray(i))for(let[u,l]of Object.entries(i))l!=null&&t.append(`${r}[${e}][${u}]`,String(l));else Array.isArray(i)?i.forEach((u,l)=>{t.append(`${r}[${e}][${l}]`,String(u));}):t.append(`${r}[${e}]`,String(i));}else t.append(r,String(n));let o=t.toString();return o?`?${o}`:""}function p(s=createHttpClient()){return {async list(t,o,r){let n=a(t,o)+d(r),e=await s.request({url:n,method:"get"});if(e.error||!e.data)return {data:{items:[],total:0},error:e.error,status:e.status};let i=Array.isArray(e.data.items)?e.data.items:[],u=e.data.total??e.data.count??i.length;return {...e,data:{items:i,total:u,page:e.data.page,perPage:e.data.perPage||e.data.pageSize}}},get(t,o,r){if(!r)return Promise.resolve({data:null,error:{message:"Entity ID is required",status:400},status:400});let n=a(t,o,`/${r}`);return s.request({url:n,method:"get"})},create(t,o,r){if(!r||typeof r!="object")return Promise.resolve({data:null,error:{message:"Entity data is required",status:400},status:400});let n=g(r),e=a(t,o);return s.request({url:e,method:"post",headers:{"Content-Type":"application/json"},data:n})},update(t,o,r,n){if(!r)return Promise.resolve({data:null,error:{message:"Entity ID is required",status:400},status:400});if(!n||typeof n!="object")return Promise.resolve({data:null,error:{message:"Entity data is required",status:400},status:400});let e=g(n),i=a(t,o,`/${r}`);return s.request({url:i,method:"put",headers:{"Content-Type":"application/json"},data:e})},async delete(t,o,r){if(!r)return {data:null,error:{message:"Entity ID is required",status:400},status:400};let n=a(t,o,`/${r}`),e=await s.request({url:n,method:"delete"});return e.status===204?{...e,data:null}:e},async options(t,o,r){let n=r&&r.length>0?{"__fields[]":r}:void 0,e=a(t,o,"/options")+d(n),i=await s.request({url:e,method:"get"});return i.error||!i.data?{data:null,error:i.error,status:i.status}:{...i,data:i.data.items||[]}},bulkUpdate(t,o,r){if(!r||r.length===0)return Promise.resolve({data:null,error:{message:"Items array is required",status:400},status:400});let n=r.map(i=>g(i)),e=a(t,o,"/bulkUpdate");return s.request({url:e,method:"post",headers:{"Content-Type":"application/json"},data:{items:n}})},async bulkDelete(t,o,r){if(!r||r.length===0)return {data:null,error:{message:"IDs array is required",status:400},status:400};let n=a(t,o,`/${r.join(",")}`),e=await s.request({url:n,method:"delete"});return e.status===204?{...e,data:null}:e}}}export{p as createEntityClient};//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amaster.ai/entity-client",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Type-safe CRUD client for entity data management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"registry": "https://registry.npmjs.org/"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@amaster.ai/http-client": "1.1.
|
|
34
|
+
"@amaster.ai/http-client": "1.1.2"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"axios": "^1.11.0"
|