@amaster.ai/entity-client 1.1.2 → 1.1.3

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 CHANGED
@@ -1,2 +1,2 @@
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
1
+ 'use strict';var httpClient=require('@amaster.ai/http-client');function c(s){let e;if(s instanceof Date?e=s:typeof s=="string"?e=new Date(s):e=new Date(s),Number.isNaN(e.getTime()))return String(s);let o=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),t=String(e.getUTCHours()).padStart(2,"0"),i=String(e.getUTCMinutes()).padStart(2,"0"),a=String(e.getUTCSeconds()).padStart(2,"0");return `${o}-${r}-${n} ${t}:${i}:${a}`}function g(s){if(s==null)return s;if(s instanceof Date)return c(s);if(Array.isArray(s))return s.map(e=>g(e));if(typeof s=="object"){let e={};for(let[o,r]of Object.entries(s))e[o]=g(r);return e}return typeof s=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(s)?c(s):s}function u(s,e,o=""){let r=`/api/entity/data/${s}/${e}`;return o?`${r}${o.startsWith("/")?o:`/${o}`}`:r}function d(s){if(!s||Object.keys(s).length===0)return "";let e=new URLSearchParams;for(let[r,n]of Object.entries(s))if(n!=null)if(r==="__filter"&&typeof n=="object")e.append(r,JSON.stringify(n));else if(r==="__relations"&&Array.isArray(n))for(let t of n)e.append("__relations[]",String(t));else if(r==="__fields"&&Array.isArray(n))n.forEach((t,i)=>{e.append(`__fields[${i}]`,String(t));});else if(r==="__keywords"&&typeof n=="object"&&!Array.isArray(n)){let t=n;if(t.fields&&t.fields.length>0&&t.value){let i=t.fields.join(",");e.append(`__keywords[${i}]`,t.value);}}else if(Array.isArray(n))for(let t of n)e.append(r,String(t));else if(typeof n=="object"&&!Array.isArray(n)){for(let[t,i]of Object.entries(n))if(i!=null)if(typeof i=="object"&&!Array.isArray(i))for(let[a,l]of Object.entries(i))l!=null&&e.append(`${r}[${t}][${a}]`,String(l));else Array.isArray(i)?i.forEach((a,l)=>{e.append(`${r}[${t}][${l}]`,String(a));}):e.append(`${r}[${t}]`,String(i));}else e.append(r,String(n));let o=e.toString();return o?`?${o}`:""}function p(s=httpClient.createHttpClient()){return {async list(e,o,r){let n=u(e,o)+d(r),t=await s.request({url:n,method:"get"});if(t.error||!t.data)return {data:{items:[],total:0},error:t.error,status:t.status};let i=Array.isArray(t.data.items)?t.data.items:[],a=t.data.total??t.data.count??i.length;return {...t,data:{items:i,total:a,page:t.data.page,perPage:t.data.perPage||t.data.pageSize}}},get(e,o,r){if(!r)return Promise.resolve({data:null,error:{message:"Entity ID is required",status:400},status:400});let n=u(e,o,`/${r}`);return s.request({url:n,method:"get"})},create(e,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),t=u(e,o);return s.request({url:t,method:"post",headers:{"Content-Type":"application/json"},data:n})},update(e,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 t=g(n),i=u(e,o,`/${r}`);return s.request({url:i,method:"put",headers:{"Content-Type":"application/json"},data:t})},async delete(e,o,r){if(!r)return {data:null,error:{message:"Entity ID is required",status:400},status:400};let n=u(e,o,`/${r}`),t=await s.request({url:n,method:"delete"});return t.status===204?{...t,data:null}:t},async options(e,o,r){let n=r&&r.length>0?{"__fields[]":r}:void 0,t=u(e,o,"/options")+d(n),i=await s.request({url:t,method:"get"});return i.error||!i.data?{data:null,error:i.error,status:i.status}:{...i,data:i.data.items||[]}},bulkUpdate(e,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)),t=u(e,o,"/bulkUpdate");return s.request({url:t,method:"post",headers:{"Content-Type":"application/json"},data:{items:n}})},async bulkDelete(e,o,r){if(!r||r.length===0)return {data:null,error:{message:"IDs array is required",status:400},status:400};let n=u(e,o,`/${r.join(",")}`),t=await s.request({url:n,method:"delete"});return t.status===204?{...t,data:null}:t}}}exports.createEntityClient=p;//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -68,16 +68,6 @@ 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
- };
81
71
  /**
82
72
  * Entity query parameters
83
73
  *
@@ -183,4 +173,4 @@ type EntityClient = {
183
173
  };
184
174
  declare function createEntityClient(http?: HttpClient): EntityClient;
185
175
 
186
- export { type AdvancedFilterOperator, type BetweenValue, type EntityClient, type EntityListResponse, type EntityQueryParams, type FilterGroup, type FilterItem, type FilterOperator, type KeywordsSearch, createEntityClient };
176
+ export { type EntityClient, type EntityListResponse, type EntityQueryParams, type FilterGroup, type FilterItem, type FilterOperator, createEntityClient };
package/dist/index.d.ts CHANGED
@@ -68,16 +68,6 @@ 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
- };
81
71
  /**
82
72
  * Entity query parameters
83
73
  *
@@ -183,4 +173,4 @@ type EntityClient = {
183
173
  };
184
174
  declare function createEntityClient(http?: HttpClient): EntityClient;
185
175
 
186
- export { type AdvancedFilterOperator, type BetweenValue, type EntityClient, type EntityListResponse, type EntityQueryParams, type FilterGroup, type FilterItem, type FilterOperator, type KeywordsSearch, createEntityClient };
176
+ export { type EntityClient, type EntityListResponse, type EntityQueryParams, type FilterGroup, type FilterItem, type FilterOperator, createEntityClient };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
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
1
+ import {createHttpClient}from'@amaster.ai/http-client';function c(s){let e;if(s instanceof Date?e=s:typeof s=="string"?e=new Date(s):e=new Date(s),Number.isNaN(e.getTime()))return String(s);let o=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),t=String(e.getUTCHours()).padStart(2,"0"),i=String(e.getUTCMinutes()).padStart(2,"0"),a=String(e.getUTCSeconds()).padStart(2,"0");return `${o}-${r}-${n} ${t}:${i}:${a}`}function g(s){if(s==null)return s;if(s instanceof Date)return c(s);if(Array.isArray(s))return s.map(e=>g(e));if(typeof s=="object"){let e={};for(let[o,r]of Object.entries(s))e[o]=g(r);return e}return typeof s=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(s)?c(s):s}function u(s,e,o=""){let r=`/api/entity/data/${s}/${e}`;return o?`${r}${o.startsWith("/")?o:`/${o}`}`:r}function d(s){if(!s||Object.keys(s).length===0)return "";let e=new URLSearchParams;for(let[r,n]of Object.entries(s))if(n!=null)if(r==="__filter"&&typeof n=="object")e.append(r,JSON.stringify(n));else if(r==="__relations"&&Array.isArray(n))for(let t of n)e.append("__relations[]",String(t));else if(r==="__fields"&&Array.isArray(n))n.forEach((t,i)=>{e.append(`__fields[${i}]`,String(t));});else if(r==="__keywords"&&typeof n=="object"&&!Array.isArray(n)){let t=n;if(t.fields&&t.fields.length>0&&t.value){let i=t.fields.join(",");e.append(`__keywords[${i}]`,t.value);}}else if(Array.isArray(n))for(let t of n)e.append(r,String(t));else if(typeof n=="object"&&!Array.isArray(n)){for(let[t,i]of Object.entries(n))if(i!=null)if(typeof i=="object"&&!Array.isArray(i))for(let[a,l]of Object.entries(i))l!=null&&e.append(`${r}[${t}][${a}]`,String(l));else Array.isArray(i)?i.forEach((a,l)=>{e.append(`${r}[${t}][${l}]`,String(a));}):e.append(`${r}[${t}]`,String(i));}else e.append(r,String(n));let o=e.toString();return o?`?${o}`:""}function p(s=createHttpClient()){return {async list(e,o,r){let n=u(e,o)+d(r),t=await s.request({url:n,method:"get"});if(t.error||!t.data)return {data:{items:[],total:0},error:t.error,status:t.status};let i=Array.isArray(t.data.items)?t.data.items:[],a=t.data.total??t.data.count??i.length;return {...t,data:{items:i,total:a,page:t.data.page,perPage:t.data.perPage||t.data.pageSize}}},get(e,o,r){if(!r)return Promise.resolve({data:null,error:{message:"Entity ID is required",status:400},status:400});let n=u(e,o,`/${r}`);return s.request({url:n,method:"get"})},create(e,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),t=u(e,o);return s.request({url:t,method:"post",headers:{"Content-Type":"application/json"},data:n})},update(e,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 t=g(n),i=u(e,o,`/${r}`);return s.request({url:i,method:"put",headers:{"Content-Type":"application/json"},data:t})},async delete(e,o,r){if(!r)return {data:null,error:{message:"Entity ID is required",status:400},status:400};let n=u(e,o,`/${r}`),t=await s.request({url:n,method:"delete"});return t.status===204?{...t,data:null}:t},async options(e,o,r){let n=r&&r.length>0?{"__fields[]":r}:void 0,t=u(e,o,"/options")+d(n),i=await s.request({url:t,method:"get"});return i.error||!i.data?{data:null,error:i.error,status:i.status}:{...i,data:i.data.items||[]}},bulkUpdate(e,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)),t=u(e,o,"/bulkUpdate");return s.request({url:t,method:"post",headers:{"Content-Type":"application/json"},data:{items:n}})},async bulkDelete(e,o,r){if(!r||r.length===0)return {data:null,error:{message:"IDs array is required",status:400},status:400};let n=u(e,o,`/${r.join(",")}`),t=await s.request({url:n,method:"delete"});return t.status===204?{...t,data:null}:t}}}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.2",
3
+ "version": "1.1.3",
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.2"
34
+ "@amaster.ai/http-client": "1.1.3"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "axios": "^1.11.0"