@donotdev/crud 0.0.3 → 0.0.4

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.
Files changed (47) hide show
  1. package/dist/CrudService.js +1 -1
  2. package/dist/CrudStore.d.ts +1 -1
  3. package/dist/CrudStore.d.ts.map +1 -1
  4. package/dist/CrudStore.js +1 -1
  5. package/dist/adapters/FirestoreAdapter.js +1 -1
  6. package/dist/adapters/FunctionsAdapter.js +1 -1
  7. package/dist/adapters/index.js +1 -1
  8. package/dist/components/ControlledFields.d.ts.map +1 -1
  9. package/dist/components/ControlledFields.js +1 -1
  10. package/dist/components/CrudButton.js +1 -1
  11. package/dist/components/EntityFormRenderer.js +1 -1
  12. package/dist/components/FormFieldRenderer.d.ts.map +1 -1
  13. package/dist/components/FormFieldRenderer.js +1 -1
  14. package/dist/components/FormLayout.js +1 -1
  15. package/dist/components/form/fields/AddressFieldComponent.d.ts.map +1 -1
  16. package/dist/components/form/fields/AddressFieldComponent.js +1 -1
  17. package/dist/components/form/fields/AvatarFieldComponent.js +1 -1
  18. package/dist/components/form/fields/BadgeFieldComponent.js +1 -1
  19. package/dist/components/form/fields/ButtonFieldComponent.js +1 -1
  20. package/dist/components/form/fields/CheckboxFieldComponent.js +1 -1
  21. package/dist/components/form/fields/DateFieldComponent.js +1 -1
  22. package/dist/components/form/fields/DropdownComponent.js +1 -1
  23. package/dist/components/form/fields/FileFieldComponent.js +1 -1
  24. package/dist/components/form/fields/GeoPointFieldComponent.js +1 -1
  25. package/dist/components/form/fields/HiddenFieldComponent.js +1 -1
  26. package/dist/components/form/fields/ImageFieldComponent.js +1 -1
  27. package/dist/components/form/fields/MapFieldComponent.js +1 -1
  28. package/dist/components/form/fields/MultiDropdownComponent.js +1 -1
  29. package/dist/components/form/fields/MultiInputTextFieldComponent.js +1 -1
  30. package/dist/components/form/fields/NumberFieldComponent.js +1 -1
  31. package/dist/components/form/fields/PasswordFieldComponent.js +1 -1
  32. package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
  33. package/dist/components/form/fields/RadioFieldComponent.js +1 -1
  34. package/dist/components/form/fields/RangeFieldComponent.js +1 -1
  35. package/dist/components/form/fields/ReferenceFieldComponent.d.ts.map +1 -1
  36. package/dist/components/form/fields/ReferenceFieldComponent.js +1 -1
  37. package/dist/components/form/fields/TextAreaComponent.js +1 -1
  38. package/dist/components/form/fields/TextFieldComponent.js +1 -1
  39. package/dist/components/form/fields/TimestampFieldComponent.js +1 -1
  40. package/dist/components/form/fields/index.js +1 -1
  41. package/dist/components/index.js +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/dist/useCrud.d.ts.map +1 -1
  45. package/dist/useCrud.js +1 -1
  46. package/dist/utils/collections.js +1 -1
  47. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"useCrud.d.ts","sourceRoot":"","sources":["../src/useCrud.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQjE,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAA6C,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAkC7F,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC;AAE1D;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,GAAG,OAAO,EACjC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,CACT,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,KAC9C,MAAM,IAAI,CAAC;IAChB,qBAAqB,EAAE,CACrB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,KACzC,MAAM,IAAI,CAAC;IAChB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"useCrud.d.ts","sourceRoot":"","sources":["../src/useCrud.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQjE,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAmCvB,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC;AAE1D;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,GAAG,OAAO,EACjC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,CACT,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,KAC9C,MAAM,IAAI,CAAC;IAChB,qBAAqB,EAAE,CACrB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,KACzC,MAAM,IAAI,CAAC;IAChB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC"}
package/dist/useCrud.js CHANGED
@@ -1 +1 @@
1
- "use client";import{useEffect as O}from"react";import{DEGRADED_CRUD_API as K,FEATURE_STATUS as b,useFeatureConsent as _}from"@donotdev/core";import{FRAMEWORK_FEATURES as k,handleError as G,isClient as z}from"@donotdev/core";import{useCrudStore as l}from"./CrudStore";import{getCrudService as M}from"./CrudService";let r=null,a=null,m=null,q=!1;const h=1e3*60*5;async function I(){if(a)return a;const{QueryClient:o}=await import("@tanstack/react-query");return a=new o({defaultOptions:{queries:{staleTime:h,gcTime:1e3*60*30,retry:1,refetchOnWindowFocus:!1}}}),a}function x(o,d={}){const c=_(k.CRUD),U=l(e=>e.crudService!==null);if(o==="isAvailable")return c?U:K.isAvailable;const t=o,y=d.backend||"firestore",s=d.schema,g=d.staleTime??h,n=d.noCache??!1;O(()=>{if(!z()||!c||!s)return;const{backend:e}=l.getState();e===y&&r||m||(m=(async()=>{try{const i=M();r=i,i.setStore(l),await i.initialize(y),q=!1}catch(i){q||(G(i,{userMessage:"Failed to initialize CRUD service.",context:{backend:y,collection:t},severity:"error"}),q=!0)}finally{m=null}})())},[c,y,s]);const v=async e=>r?n?r.get(t,e,s):(await I()).fetchQuery({queryKey:["crud",t,"get",e],queryFn:()=>r.get(t,e,s),staleTime:g}):null,A=async(e,i)=>{r&&(await r.set(t,e,i,s),!n&&a&&a.invalidateQueries({queryKey:["crud",t]}))},C=async(e,i)=>{r&&(await r.update(t,e,i),!n&&a&&a.invalidateQueries({queryKey:["crud",t]}))},D=async e=>{r&&(await r.delete(t,e),!n&&a&&a.invalidateQueries({queryKey:["crud",t]}))},E=async e=>{if(!r)return"";const i=await r.add(t,e,s);return!n&&a&&a.invalidateQueries({queryKey:["crud",t]}),i},T=async e=>r?n?r.query(t,e,s):(await I()).fetchQuery({queryKey:["crud",t,"query",JSON.stringify(e)],queryFn:()=>r.query(t,e,s),staleTime:g}):[],p=(e,i)=>r?r.subscribe(t,e,(u,f)=>{!n&&a&&u&&a.setQueryData(["crud",t,"get",e],u),i(u,f)},s):()=>{},w=(e,i)=>r?r.subscribeToCollection(t,e,(u,f)=>{!n&&a&&u&&a.setQueryData(["crud",t,"query",JSON.stringify(e)],u),i(u,f)},s):()=>{},R=async()=>{a&&await a.invalidateQueries({queryKey:["crud",t]})},Q=l(e=>e.collections[t]?.data.current||null),S=l(e=>e.collections[t]?.loading||!1),F=l(e=>e.collections[t]?.error||null),N=c?r?b.READY:b.INITIALIZING:b.DEGRADED;return!c||!s||!r?{...K,status:N,data:Q,loading:S,error:F,get:v,set:A,update:C,delete:D,add:E,query:T,subscribe:p,subscribeToCollection:w,invalidate:R,isAvailable:!1}:{status:b.READY,data:Q,loading:S,error:F,get:v,set:A,update:C,delete:D,add:E,query:T,subscribe:p,subscribeToCollection:w,invalidate:R,isAvailable:!0}}export{x as useCrud};
1
+ "use client";import{useEffect as N}from"react";import{DEGRADED_CRUD_API as I,FEATURE_STATUS as d,useFeatureConsent as k}from"@donotdev/core";import{FRAMEWORK_FEATURES as z,handleError as G,isClient as L}from"@donotdev/core";import{useCrudStore as c}from"./CrudStore";import{getCrudService as M}from"./CrudService";let r=null,i=null,C=null,q=!1;const K=1e3*60*5;async function U(){if(i)return i;const{QueryClient:o}=await import("@tanstack/react-query");return i=new o({defaultOptions:{queries:{staleTime:K,gcTime:1e3*60*30,retry:1,refetchOnWindowFocus:!1}}}),i}function B(o,f={}){const l=k(z.CRUD),_=c(e=>e.crudService!==null);if(o==="isAvailable")return l?_:I.isAvailable;const t=o,y=f.backend||"firestore",u=f.schema,v=f.staleTime??K,a=f.noCache??!1;N(()=>{if(!L()||!l||!u)return;const{backend:e}=c.getState();e===y&&r||C||(C=(async()=>{try{const n=M();r=n,n.setStore(c),await n.initialize(y),q=!1}catch(n){q||(G(n,{userMessage:"Failed to initialize CRUD service.",context:{backend:y,collection:t},severity:"error"}),q=!0)}finally{C=null}})())},[l,y,u]);const E=async e=>r?a?r.get(t,e,u):(await U()).fetchQuery({queryKey:["crud",t,"get",e],queryFn:()=>r.get(t,e,u),staleTime:v}):null,A=async(e,n)=>{r&&(await r.set(t,e,n,u),!a&&i&&i.invalidateQueries({queryKey:["crud",t]}))},b=async(e,n)=>{r&&(await r.update(t,e,n),!a&&i&&i.invalidateQueries({queryKey:["crud",t]}))},D=async e=>{r&&(await r.delete(t,e),!a&&i&&i.invalidateQueries({queryKey:["crud",t]}))},g=async e=>{if(!r)return"";const n=await r.add(t,e,u);return!a&&i&&i.invalidateQueries({queryKey:["crud",t]}),n},T=async e=>r?a?r.query(t,e,u):(await U()).fetchQuery({queryKey:["crud",t,"query",JSON.stringify(e)],queryFn:()=>r.query(t,e,u),staleTime:v}):[],S=(e,n)=>r?r.subscribe(t,e,(s,m)=>{!a&&i&&s&&i.setQueryData(["crud",t,"get",e],s),n(s,m)},u):()=>{},R=(e,n)=>r?r.subscribeToCollection(t,e,(s,m)=>{!a&&i&&s&&i.setQueryData(["crud",t,"query",JSON.stringify(e)],s),n(s,m)},u):()=>{},w=async()=>{i&&await i.invalidateQueries({queryKey:["crud",t]})},Q=c(e=>e.collections[t]?.data.current||null),h=c(e=>e.collections[t]?.loading||!1),F=c(e=>e.collections[t]?.error||null),p=l?r?d.READY:d.INITIALIZING:d.DEGRADED;return!l||!u||!r?{...I,status:p,data:Q,loading:h,error:F,get:E,set:A,update:b,delete:D,add:g,query:T,subscribe:S,subscribeToCollection:R,invalidate:w,isAvailable:!1}:{status:d.READY,data:Q,loading:h,error:F,get:E,set:A,update:b,delete:D,add:g,query:T,subscribe:S,subscribeToCollection:R,invalidate:w,isAvailable:!0}}export{B as useCrud};
@@ -1 +1 @@
1
- import{getCrudService as c}from"../CrudService";async function d(r,n){const a=c(),e=[],t=n.range?.start??1,s=n.range?.end??28;for(let o=t;o<=s;o++){const m=String(o),i=await a.get(n.path(r),m,n.schema);i&&e.push(i)}return e}async function h(r,n,a){const e=c();for(const t of a){const s=n.idOf(t);await e.set(n.path(r),s,t,n.schema)}}async function p(r,n,a){const e=c();if(n.idFrom){const t=n.idFrom(a);return e.set(n.path(r),t,a,n.schema)}return e.add(n.path(r),a,n.schema)}export{p as appendToCollection,d as loadDeterministicRange,h as upsertDeterministic};
1
+ import{getCrudService as o}from"../CrudService";async function u(s,t){const e=o(),r=[],a=t.range?.start??1,n=t.range?.end??28;for(let c=a;c<=n;c++){const i=String(c),d=await e.get(t.path(s),i,t.schema);d&&r.push(d)}return r}async function m(s,t,e){const r=o();for(const a of e){const n=t.idOf(a);await r.set(t.path(s),n,a,t.schema)}}async function h(s,t,e){const r=o();if(t.idFrom){const a=t.idFrom(e);return r.set(t.path(s),a,e,t.schema)}return r.add(t.path(s),e,t.schema)}export{h as appendToCollection,u as loadDeterministicRange,m as upsertDeterministic};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@donotdev/crud",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -47,11 +47,11 @@
47
47
  "type-check": "tsc --noEmit"
48
48
  },
49
49
  "dependencies": {
50
- "@donotdev/components": "0.0.3",
51
- "@donotdev/core": "0.0.3"
50
+ "@donotdev/components": "0.0.4",
51
+ "@donotdev/core": "0.0.4"
52
52
  },
53
53
  "peerDependencies": {
54
- "@donotdev/firebase": "0.0.3",
54
+ "@donotdev/firebase": "0.0.4",
55
55
  "@hookform/resolvers": "^5.2.2",
56
56
  "firebase": "^12.5.0",
57
57
  "lucide-react": "^0.562.0",