@tspvivek/baasix-sdk 0.1.0-alpha.1

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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +942 -0
  3. package/dist/client-CzF9B60b.d.ts +614 -0
  4. package/dist/client-aXK_gEyr.d.cts +614 -0
  5. package/dist/index.cjs +4159 -0
  6. package/dist/index.cjs.map +1 -0
  7. package/dist/index.d.cts +1498 -0
  8. package/dist/index.d.ts +1498 -0
  9. package/dist/index.js +4135 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/modules/auth.cjs +651 -0
  12. package/dist/modules/auth.cjs.map +1 -0
  13. package/dist/modules/auth.d.cts +384 -0
  14. package/dist/modules/auth.d.ts +384 -0
  15. package/dist/modules/auth.js +649 -0
  16. package/dist/modules/auth.js.map +1 -0
  17. package/dist/modules/files.cjs +266 -0
  18. package/dist/modules/files.cjs.map +1 -0
  19. package/dist/modules/files.d.cts +187 -0
  20. package/dist/modules/files.d.ts +187 -0
  21. package/dist/modules/files.js +264 -0
  22. package/dist/modules/files.js.map +1 -0
  23. package/dist/modules/items.cjs +654 -0
  24. package/dist/modules/items.cjs.map +1 -0
  25. package/dist/modules/items.d.cts +472 -0
  26. package/dist/modules/items.d.ts +472 -0
  27. package/dist/modules/items.js +651 -0
  28. package/dist/modules/items.js.map +1 -0
  29. package/dist/modules/schemas.cjs +269 -0
  30. package/dist/modules/schemas.cjs.map +1 -0
  31. package/dist/modules/schemas.d.cts +239 -0
  32. package/dist/modules/schemas.d.ts +239 -0
  33. package/dist/modules/schemas.js +267 -0
  34. package/dist/modules/schemas.js.map +1 -0
  35. package/dist/storage/index.cjs +162 -0
  36. package/dist/storage/index.cjs.map +1 -0
  37. package/dist/storage/index.d.cts +96 -0
  38. package/dist/storage/index.d.ts +96 -0
  39. package/dist/storage/index.js +157 -0
  40. package/dist/storage/index.js.map +1 -0
  41. package/dist/types-BdjsGANq.d.cts +40 -0
  42. package/dist/types-BdjsGANq.d.ts +40 -0
  43. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/modules/items.ts"],"names":[],"mappings":";;;AAoBO,IAAM,eAAN,MAAkD;AAAA,EAC/C,UAAA;AAAA,EACA,MAAA;AAAA,EACA,cAA2B,EAAC;AAAA,EAEpC,WAAA,CAAY,YAAoB,MAAA,EAAoB;AAClD,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,UAAU,MAAA,EAAqC;AAC7C,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,KAAW,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAA,GAC7D,MAAA,CAAO,CAAC,CAAA,GACP,MAAA;AACL,IAAA,IAAA,CAAK,YAAY,MAAA,GAAS,UAAA;AAC1B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,MAAA,EAAqC;AAC7C,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAG,MAAM,CAAA;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,OAAO,MAAA,EAAsB;AAC3B,IAAA,IAAA,CAAK,YAAY,MAAA,GAAS,MAAA;AAC1B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,MAAA,EAAsB;AAC1B,IAAA,OAAO,IAAA,CAAK,OAAO,MAAM,CAAA;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,KAAK,IAAA,EAAkB;AACrB,IAAA,IAAA,CAAK,YAAY,IAAA,GAAO,IAAA;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,IAAA,EAAkB;AACxB,IAAA,OAAO,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAM,KAAA,EAAqB;AACzB,IAAA,IAAA,CAAK,YAAY,KAAA,GAAQ,KAAA;AACzB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,KAAK,IAAA,EAAoB;AACvB,IAAA,IAAA,CAAK,YAAY,IAAA,GAAO,IAAA;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,MAAA,EAAsB;AAC3B,IAAA,IAAA,CAAK,YAAY,MAAA,GAAS,MAAA;AAC1B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAA,CAAO,OAAe,MAAA,EAAyB;AAC7C,IAAA,IAAA,CAAK,YAAY,MAAA,GAAS,KAAA;AAC1B,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,IAAA,CAAK,YAAY,YAAA,GAAe,MAAA;AAAA,IAClC;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,WAAA,GAAoB;AAClB,IAAA,IAAA,CAAK,YAAY,QAAA,GAAW,KAAA;AAC5B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,UAAU,UAAA,EAA0C;AAClD,IAAA,IAAA,CAAK,YAAY,aAAA,GAAgB,UAAA;AACjC,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,QAAA,GAAwB;AACtB,IAAA,OAAO,EAAE,GAAG,IAAA,CAAK,WAAA,EAAY;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,GAAA,GAAqC;AACzC,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA0B,CAAA,OAAA,EAAU,IAAA,CAAK,UAAU,CAAA,CAAA,EAAI;AAAA,MACxE,MAAA,EAAQ,KAAK,WAAA;AAAY,KAC1B,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,KAAA,GAA2B;AAC/B,IAAA,MAAM,SAAS,MAAM,IAAA,CAAK,KAAA,CAAM,CAAC,EAAE,GAAA,EAAI;AACvC,IAAA,OAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,IAAK,IAAA;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,KAAA,GAAyB;AAC7B,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA;AAAA,MAC/B,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,CAAA;AAAA,MACzB;AAAA,QACE,MAAA,EAAQ;AAAA,UACN,GAAG,KAAK,WAAA,EAAY;AAAA,UACpB,KAAA,EAAO;AAAA;AACT;AACF,KACF;AACA,IAAA,OAAO,OAAO,UAAA,IAAc,CAAA;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKQ,WAAA,GAAuC;AAC7C,IAAA,MAAM,SAAkC,EAAC;AAEzC,IAAA,IAAI,IAAA,CAAK,YAAY,MAAA,EAAQ;AAC3B,MAAA,MAAA,CAAO,MAAA,GAAS,KAAK,WAAA,CAAY,MAAA;AAAA,IACnC;AACA,IAAA,IAAI,IAAA,CAAK,YAAY,MAAA,EAAQ;AAC3B,MAAA,MAAA,CAAO,MAAA,GAAS,KAAK,WAAA,CAAY,MAAA;AAAA,IACnC;AACA,IAAA,IAAI,IAAA,CAAK,YAAY,IAAA,EAAM;AACzB,MAAA,MAAA,CAAO,IAAA,GAAO,KAAK,WAAA,CAAY,IAAA;AAAA,IACjC;AACA,IAAA,IAAI,IAAA,CAAK,WAAA,CAAY,KAAA,KAAU,MAAA,EAAW;AACxC,MAAA,MAAA,CAAO,KAAA,GAAQ,KAAK,WAAA,CAAY,KAAA;AAAA,IAClC;AACA,IAAA,IAAI,IAAA,CAAK,WAAA,CAAY,IAAA,KAAS,MAAA,EAAW;AACvC,MAAA,MAAA,CAAO,IAAA,GAAO,KAAK,WAAA,CAAY,IAAA;AAAA,IACjC;AACA,IAAA,IAAI,IAAA,CAAK,WAAA,CAAY,MAAA,KAAW,MAAA,EAAW;AACzC,MAAA,MAAA,CAAO,MAAA,GAAS,KAAK,WAAA,CAAY,MAAA;AAAA,IACnC;AACA,IAAA,IAAI,IAAA,CAAK,YAAY,MAAA,EAAQ;AAC3B,MAAA,MAAA,CAAO,MAAA,GAAS,KAAK,WAAA,CAAY,MAAA;AAAA,IACnC;AACA,IAAA,IAAI,IAAA,CAAK,YAAY,YAAA,EAAc;AACjC,MAAA,MAAA,CAAO,YAAA,GAAe,KAAK,WAAA,CAAY,YAAA;AAAA,IACzC;AACA,IAAA,IAAI,IAAA,CAAK,WAAA,CAAY,QAAA,KAAa,MAAA,EAAW;AAC3C,MAAA,MAAA,CAAO,QAAA,GAAW,KAAK,WAAA,CAAY,QAAA;AAAA,IACrC;AACA,IAAA,IAAI,IAAA,CAAK,YAAY,aAAA,EAAe;AAClC,MAAA,MAAA,CAAO,aAAA,GAAgB,KAAK,WAAA,CAAY,aAAA;AAAA,IAC1C;AACA,IAAA,IAAI,IAAA,CAAK,YAAY,SAAA,EAAW;AAC9B,MAAA,MAAA,CAAO,SAAA,GAAY,KAAK,WAAA,CAAY,SAAA;AAAA,IACtC;AACA,IAAA,IAAI,IAAA,CAAK,YAAY,OAAA,EAAS;AAC5B,MAAA,MAAA,CAAO,OAAA,GAAU,KAAK,WAAA,CAAY,OAAA;AAAA,IACpC;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAyBO,IAAM,cAAN,MAAiD;AAAA,EAC9C,UAAA;AAAA,EACA,MAAA;AAAA,EAER,WAAA,CAAY,YAAoB,MAAA,EAA2B;AACzD,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,SAAS,MAAA,CAAO,MAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,KAAA,GAAyB;AACvB,IAAA,OAAO,IAAI,YAAA,CAAgB,IAAA,CAAK,UAAA,EAAY,KAAK,MAAM,CAAA;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,MAAM,KAAK,MAAA,EAAqD;AAC9D,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA0B,CAAA,OAAA,EAAU,IAAA,CAAK,UAAU,CAAA,CAAA,EAAI;AAAA,MACxE;AAAA,KACD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,MAAA,EAAqD;AAClE,IAAA,OAAO,IAAA,CAAK,KAAK,MAAM,CAAA;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,OAAA,CACJ,EAAA,EACA,MAAA,EACY;AACZ,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA;AAAA,MACjC,CAAA,OAAA,EAAU,IAAA,CAAK,UAAU,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA;AAAA,MAC/B,EAAE,MAAA;AAA0C,KAC9C;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,GAAA,CAAI,EAAA,EAAY,MAAA,EAAkD;AACtE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,EAAA,EAAI,MAAM,CAAA;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,OAAO,IAAA,EAAmC;AAC9C,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA;AAAA,MACjC,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,CAAA;AAAA,MACzB;AAAA,KACF;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,IAAA,EAAmC;AAC9C,IAAA,OAAO,IAAA,CAAK,OAAO,IAAI,CAAA;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,WAAW,IAAA,EAAuC;AACtD,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA;AAAA,MACjC,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,KAAA,CAAA;AAAA,MACzB;AAAA,KACF;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAW,IAAA,EAAuC;AACtD,IAAA,OAAO,IAAA,CAAK,WAAW,IAAI,CAAA;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,MAAA,CAAO,EAAA,EAAY,IAAA,EAAmC;AAC1D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,KAAA;AAAA,MACjC,CAAA,OAAA,EAAU,IAAA,CAAK,UAAU,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA;AAAA,MAC/B;AAAA,KACF;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAM,UAAA,CAAW,GAAA,EAAe,IAAA,EAAqC;AACnE,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,KAAA;AAAA,MACjC,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,KAAA,CAAA;AAAA,MACzB,EAAE,KAAK,IAAA;AAAK,KACd;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,MAAA,CACJ,MAAA,EACA,IAAA,EACiB;AAEjB,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,EAAE,MAAA,EAAQ,KAAA,EAAO,GAAG,CAAA;AACrD,IAAA,IAAI,QAAA,CAAS,IAAA,CAAK,MAAA,GAAS,CAAA,EAAG;AAC5B,MAAA,OAAO,KAAK,MAAA,CAAO,QAAA,CAAS,KAAK,CAAC,CAAA,CAAE,IAAI,IAAI,CAAA;AAAA,IAC9C;AACA,IAAA,OAAO,IAAA,CAAK,OAAO,IAAI,CAAA;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,OAAO,EAAA,EAA2B;AACtC,IAAA,MAAM,IAAA,CAAK,OAAO,MAAA,CAAuB,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAA;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,WAAW,GAAA,EAA8B;AAC7C,IAAA,MAAM,KAAK,MAAA,CAAO,MAAA,CAAuB,CAAA,OAAA,EAAU,IAAA,CAAK,UAAU,CAAA,KAAA,CAAA,EAAS;AAAA,MACzE,MAAA,EAAQ,EAAE,GAAA;AAAI,KACf,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,WAAW,EAAA,EAA2B;AAC1C,IAAA,MAAM,IAAA,CAAK,MAAA,CAAO,EAAA,EAAI,EAAE,SAAA,EAAA,qBAAe,IAAA,EAAK,EAAE,WAAA,EAAY,EAA4B,CAAA;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,QAAQ,EAAA,EAA2B;AACvC,IAAA,MAAM,KAAK,MAAA,CAAO,EAAA,EAAI,EAAE,SAAA,EAAW,MAA+B,CAAA;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,MAAM,UACJ,MAAA,EACoC;AACpC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA;AAAA,MACjC,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,CAAA;AAAA,MACzB,EAAE,MAAA;AAA0C,KAC9C;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBA,MAAM,SAAA,CACJ,IAAA,EACA,OAAA,EAMuB;AACvB,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAS;AAE9B,IAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,MAAA,QAAA,CAAS,MAAA,CAAO,QAAQ,IAAI,CAAA;AAAA,IAC9B,CAAA,MAAO;AAEL,MAAA,QAAA,CAAS,MAAA,CAAO,QAAQ,IAAW,CAAA;AAAA,IACrC;AAEA,IAAA,IAAI,SAAS,SAAA,EAAW;AACtB,MAAA,QAAA,CAAS,MAAA,CAAO,WAAA,EAAa,OAAA,CAAQ,SAAS,CAAA;AAAA,IAChD;AACA,IAAA,IAAI,OAAA,EAAS,iBAAiB,MAAA,EAAW;AACvC,MAAA,QAAA,CAAS,MAAA,CAAO,cAAA,EAAgB,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAC,CAAA;AAAA,IAC9D;AACA,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA,QAAA,CAAS,MAAA,CAAO,YAAA,EAAc,OAAA,CAAQ,UAAU,CAAA;AAAA,IAClD;AACA,IAAA,IAAI,SAAS,YAAA,EAAc;AACzB,MAAA,QAAA,CAAS,OAAO,cAAA,EAAgB,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,YAAY,CAAC,CAAA;AAAA,IACtE;AAEA,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA;AAAA,MACjC,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,WAAA,CAAA;AAAA,MACzB;AAAA,KACF;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,UAAA,CACJ,IAAA,EACA,OAAA,EAGuB;AACvB,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAS;AAE9B,IAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,MAAA,QAAA,CAAS,MAAA,CAAO,QAAQ,IAAI,CAAA;AAAA,IAC9B,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,MAAA,CAAO,QAAQ,IAAW,CAAA;AAAA,IACrC;AAEA,IAAA,IAAI,SAAS,YAAA,EAAc;AACzB,MAAA,QAAA,CAAS,OAAO,cAAA,EAAgB,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,YAAY,CAAC,CAAA;AAAA,IACtE;AAEA,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA;AAAA,MACjC,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,YAAA,CAAA;AAAA,MACzB;AAAA,KACF;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,WAAW,IAAA,EAA2C;AAC1D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA;AAAA,MACjC,CAAA,OAAA,EAAU,KAAK,UAAU,CAAA,KAAA,CAAA;AAAA,MACzB;AAAA,KACF;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,QAAA,CAAS,MAAA,EAAgB,YAAA,EAAqC;AAClE,IAAA,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,aAAA,EAAe;AAAA,MACpC,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,IAAA,EAAM,MAAA;AAAA,MACN,EAAA,EAAI;AAAA,KACL,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,QAAQ,UAAA,EAAqC;AAEjD,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,CAAW,QAAQ,CAAA,EAAA,EAAK;AAC1C,MAAA,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,aAAA,EAAe;AAAA,QACpC,YAAY,IAAA,CAAK,UAAA;AAAA,QACjB,IAAA,EAAM,WAAW,CAAC,CAAA;AAAA,QAClB,EAAA,EAAI,UAAA,CAAW,CAAA,GAAI,CAAC;AAAA,OACrB,CAAA;AAAA,IACH;AAAA,EACF;AACF","file":"items.cjs","sourcesContent":["import type { HttpClient } from \"../client\";\nimport type {\n BaseItem,\n BulkResponse,\n DeleteResponse,\n Filter,\n MutationResponse,\n PaginatedResponse,\n QueryParams,\n SingleResponse,\n Sort,\n} from \"../types\";\n\nexport interface ItemsModuleConfig {\n client: HttpClient;\n}\n\n/**\n * Query builder for constructing type-safe queries\n */\nexport class QueryBuilder<T extends BaseItem = BaseItem> {\n private collection: string;\n private client: HttpClient;\n private queryParams: QueryParams = {};\n\n constructor(collection: string, client: HttpClient) {\n this.collection = collection;\n this.client = client;\n }\n\n /**\n * Select specific fields to return\n *\n * @example\n * ```typescript\n * items.select(['id', 'name', 'author.*'])\n * items.select('*', 'category.name')\n * ```\n */\n select(...fields: string[] | [string[]]): this {\n const flatFields = fields.length === 1 && Array.isArray(fields[0])\n ? fields[0]\n : (fields as string[]);\n this.queryParams.fields = flatFields;\n return this;\n }\n\n /**\n * Alias for select()\n */\n fields(...fields: string[] | [string[]]): this {\n return this.select(...fields);\n }\n\n /**\n * Add filter conditions\n *\n * @example\n * ```typescript\n * // Simple equality\n * items.filter({ status: { eq: 'active' } })\n *\n * // Multiple conditions\n * items.filter({\n * AND: [\n * { status: { eq: 'active' } },\n * { price: { gte: 100 } }\n * ]\n * })\n *\n * // Relation filtering\n * items.filter({ 'author.name': { like: 'John' } })\n * ```\n */\n filter(filter: Filter): this {\n this.queryParams.filter = filter;\n return this;\n }\n\n /**\n * Alias for filter()\n */\n where(filter: Filter): this {\n return this.filter(filter);\n }\n\n /**\n * Sort results\n *\n * @example\n * ```typescript\n * // Object notation\n * items.sort({ createdAt: 'desc', name: 'asc' })\n *\n * // Array notation with prefix\n * items.sort(['-createdAt', 'name'])\n *\n * // String shorthand\n * items.sort('createdAt:desc')\n * ```\n */\n sort(sort: Sort): this {\n this.queryParams.sort = sort;\n return this;\n }\n\n /**\n * Alias for sort()\n */\n orderBy(sort: Sort): this {\n return this.sort(sort);\n }\n\n /**\n * Limit number of results\n *\n * @example\n * ```typescript\n * items.limit(20)\n * items.limit(-1) // All results\n * ```\n */\n limit(limit: number): this {\n this.queryParams.limit = limit;\n return this;\n }\n\n /**\n * Set page number (1-indexed)\n *\n * @example\n * ```typescript\n * items.page(2).limit(20)\n * ```\n */\n page(page: number): this {\n this.queryParams.page = page;\n return this;\n }\n\n /**\n * Skip a number of results\n *\n * @example\n * ```typescript\n * items.offset(20)\n * ```\n */\n offset(offset: number): this {\n this.queryParams.offset = offset;\n return this;\n }\n\n /**\n * Full-text search\n *\n * @example\n * ```typescript\n * items.search('keyword', ['title', 'description'])\n * ```\n */\n search(query: string, fields?: string[]): this {\n this.queryParams.search = query;\n if (fields) {\n this.queryParams.searchFields = fields;\n }\n return this;\n }\n\n /**\n * Include soft-deleted items\n *\n * @example\n * ```typescript\n * items.withDeleted()\n * ```\n */\n withDeleted(): this {\n this.queryParams.paranoid = false;\n return this;\n }\n\n /**\n * Filter related items in O2M/M2M relations\n *\n * @example\n * ```typescript\n * // Only show approved comments\n * items.relFilter({\n * comments: { approved: { eq: true } }\n * })\n * ```\n */\n relFilter(conditions: Record<string, Filter>): this {\n this.queryParams.relConditions = conditions;\n return this;\n }\n\n /**\n * Get the built query parameters\n */\n getQuery(): QueryParams {\n return { ...this.queryParams };\n }\n\n /**\n * Execute the query and return results\n *\n * @example\n * ```typescript\n * const { data, totalCount } = await items\n * .filter({ status: { eq: 'active' } })\n * .sort({ createdAt: 'desc' })\n * .limit(10)\n * .get();\n * ```\n */\n async get(): Promise<PaginatedResponse<T>> {\n return this.client.get<PaginatedResponse<T>>(`/items/${this.collection}`, {\n params: this.buildParams(),\n });\n }\n\n /**\n * Execute the query and return the first result\n *\n * @example\n * ```typescript\n * const item = await items\n * .filter({ slug: { eq: 'my-post' } })\n * .first();\n * ```\n */\n async first(): Promise<T | null> {\n const result = await this.limit(1).get();\n return result.data[0] || null;\n }\n\n /**\n * Count matching items\n *\n * @example\n * ```typescript\n * const count = await items.filter({ status: { eq: 'active' } }).count();\n * ```\n */\n async count(): Promise<number> {\n const result = await this.client.get<PaginatedResponse<T>>(\n `/items/${this.collection}`,\n {\n params: {\n ...this.buildParams(),\n limit: 0,\n },\n }\n );\n return result.totalCount || 0;\n }\n\n /**\n * Build query parameters for the request\n */\n private buildParams(): Record<string, unknown> {\n const params: Record<string, unknown> = {};\n\n if (this.queryParams.fields) {\n params.fields = this.queryParams.fields;\n }\n if (this.queryParams.filter) {\n params.filter = this.queryParams.filter;\n }\n if (this.queryParams.sort) {\n params.sort = this.queryParams.sort;\n }\n if (this.queryParams.limit !== undefined) {\n params.limit = this.queryParams.limit;\n }\n if (this.queryParams.page !== undefined) {\n params.page = this.queryParams.page;\n }\n if (this.queryParams.offset !== undefined) {\n params.offset = this.queryParams.offset;\n }\n if (this.queryParams.search) {\n params.search = this.queryParams.search;\n }\n if (this.queryParams.searchFields) {\n params.searchFields = this.queryParams.searchFields;\n }\n if (this.queryParams.paranoid !== undefined) {\n params.paranoid = this.queryParams.paranoid;\n }\n if (this.queryParams.relConditions) {\n params.relConditions = this.queryParams.relConditions;\n }\n if (this.queryParams.aggregate) {\n params.aggregate = this.queryParams.aggregate;\n }\n if (this.queryParams.groupBy) {\n params.groupBy = this.queryParams.groupBy;\n }\n\n return params;\n }\n}\n\n/**\n * Items module for CRUD operations on collections.\n *\n * @example\n * ```typescript\n * const items = baasix.items('products');\n *\n * // List items\n * const products = await items.find({ filter: { status: { eq: 'active' } } });\n *\n * // Get single item\n * const product = await items.findOne('product-id');\n *\n * // Create item\n * const newProduct = await items.create({ name: 'Widget', price: 29.99 });\n *\n * // Update item\n * await items.update('product-id', { price: 24.99 });\n *\n * // Delete item\n * await items.delete('product-id');\n * ```\n */\nexport class ItemsModule<T extends BaseItem = BaseItem> {\n private collection: string;\n private client: HttpClient;\n\n constructor(collection: string, config: ItemsModuleConfig) {\n this.collection = collection;\n this.client = config.client;\n }\n\n /**\n * Create a query builder for fluent query construction\n *\n * @example\n * ```typescript\n * const results = await baasix.items('posts')\n * .query()\n * .select('*', 'author.*')\n * .filter({ status: { eq: 'published' } })\n * .sort({ createdAt: 'desc' })\n * .limit(10)\n * .get();\n * ```\n */\n query(): QueryBuilder<T> {\n return new QueryBuilder<T>(this.collection, this.client);\n }\n\n /**\n * Find items with optional query parameters\n *\n * @example\n * ```typescript\n * // Simple query\n * const { data } = await items.find();\n *\n * // With parameters\n * const { data, totalCount } = await items.find({\n * filter: { status: { eq: 'active' } },\n * sort: { createdAt: 'desc' },\n * limit: 20,\n * page: 1,\n * fields: ['id', 'name', 'price']\n * });\n * ```\n */\n async find(params?: QueryParams): Promise<PaginatedResponse<T>> {\n return this.client.get<PaginatedResponse<T>>(`/items/${this.collection}`, {\n params: params as Record<string, unknown>,\n });\n }\n\n /**\n * Alias for find()\n */\n async findMany(params?: QueryParams): Promise<PaginatedResponse<T>> {\n return this.find(params);\n }\n\n /**\n * Find a single item by ID\n *\n * @example\n * ```typescript\n * const product = await items.findOne('product-uuid');\n *\n * // With specific fields\n * const product = await items.findOne('product-uuid', {\n * fields: ['id', 'name', 'category.*']\n * });\n * ```\n */\n async findOne(\n id: string,\n params?: Pick<QueryParams, \"fields\">\n ): Promise<T> {\n const response = await this.client.get<SingleResponse<T>>(\n `/items/${this.collection}/${id}`,\n { params: params as Record<string, unknown> }\n );\n return response.data;\n }\n\n /**\n * Alias for findOne()\n */\n async get(id: string, params?: Pick<QueryParams, \"fields\">): Promise<T> {\n return this.findOne(id, params);\n }\n\n /**\n * Create a new item\n *\n * @example\n * ```typescript\n * const id = await items.create({\n * name: 'New Product',\n * price: 29.99,\n * status: 'draft'\n * });\n * ```\n */\n async create(data: Partial<T>): Promise<string> {\n const response = await this.client.post<MutationResponse<string>>(\n `/items/${this.collection}`,\n data\n );\n return response.data;\n }\n\n /**\n * Alias for create()\n */\n async insert(data: Partial<T>): Promise<string> {\n return this.create(data);\n }\n\n /**\n * Create multiple items at once\n *\n * @example\n * ```typescript\n * const ids = await items.createMany([\n * { name: 'Product 1', price: 10 },\n * { name: 'Product 2', price: 20 }\n * ]);\n * ```\n */\n async createMany(data: Partial<T>[]): Promise<string[]> {\n const response = await this.client.post<BulkResponse<string[]>>(\n `/items/${this.collection}/bulk`,\n data\n );\n return response.data;\n }\n\n /**\n * Alias for createMany()\n */\n async insertMany(data: Partial<T>[]): Promise<string[]> {\n return this.createMany(data);\n }\n\n /**\n * Update an existing item\n *\n * @example\n * ```typescript\n * await items.update('product-uuid', {\n * price: 24.99,\n * status: 'published'\n * });\n * ```\n */\n async update(id: string, data: Partial<T>): Promise<string> {\n const response = await this.client.patch<MutationResponse<string>>(\n `/items/${this.collection}/${id}`,\n data\n );\n return response.data;\n }\n\n /**\n * Update multiple items at once\n *\n * @example\n * ```typescript\n * // Update by IDs\n * await items.updateMany(['id1', 'id2'], { status: 'archived' });\n * ```\n */\n async updateMany(ids: string[], data: Partial<T>): Promise<string[]> {\n const response = await this.client.patch<BulkResponse<string[]>>(\n `/items/${this.collection}/bulk`,\n { ids, data }\n );\n return response.data;\n }\n\n /**\n * Upsert an item (create if not exists, update if exists)\n *\n * @example\n * ```typescript\n * const id = await items.upsert(\n * { sku: 'WIDGET-001' },\n * { name: 'Widget', price: 29.99, sku: 'WIDGET-001' }\n * );\n * ```\n */\n async upsert(\n filter: Filter,\n data: Partial<T>\n ): Promise<string> {\n // Try to find existing\n const existing = await this.find({ filter, limit: 1 });\n if (existing.data.length > 0) {\n return this.update(existing.data[0].id, data);\n }\n return this.create(data);\n }\n\n /**\n * Delete an item by ID\n *\n * @example\n * ```typescript\n * await items.delete('product-uuid');\n * ```\n */\n async delete(id: string): Promise<void> {\n await this.client.delete<DeleteResponse>(`/items/${this.collection}/${id}`);\n }\n\n /**\n * Delete multiple items\n *\n * @example\n * ```typescript\n * await items.deleteMany(['id1', 'id2', 'id3']);\n * ```\n */\n async deleteMany(ids: string[]): Promise<void> {\n await this.client.delete<DeleteResponse>(`/items/${this.collection}/bulk`, {\n params: { ids },\n });\n }\n\n /**\n * Soft delete an item (if paranoid mode is enabled)\n *\n * @example\n * ```typescript\n * await items.softDelete('product-uuid');\n * ```\n */\n async softDelete(id: string): Promise<void> {\n await this.update(id, { deletedAt: new Date().toISOString() } as unknown as Partial<T>);\n }\n\n /**\n * Restore a soft-deleted item\n *\n * @example\n * ```typescript\n * await items.restore('product-uuid');\n * ```\n */\n async restore(id: string): Promise<void> {\n await this.update(id, { deletedAt: null } as unknown as Partial<T>);\n }\n\n /**\n * Aggregate data with grouping\n *\n * @example\n * ```typescript\n * const results = await items.aggregate({\n * aggregate: {\n * total: { function: 'sum', field: 'amount' },\n * count: { function: 'count', field: 'id' },\n * avgPrice: { function: 'avg', field: 'price' }\n * },\n * groupBy: ['category', 'status'],\n * filter: { createdAt: { gte: '$NOW-DAYS_30' } }\n * });\n * ```\n */\n async aggregate(\n params: Pick<QueryParams, \"aggregate\" | \"groupBy\" | \"filter\">\n ): Promise<Record<string, unknown>[]> {\n const response = await this.client.get<PaginatedResponse<Record<string, unknown>>>(\n `/items/${this.collection}`,\n { params: params as Record<string, unknown> }\n );\n return response.data;\n }\n\n // ===================\n // Import Operations\n // ===================\n\n /**\n * Import items from a CSV file\n *\n * @example\n * ```typescript\n * // Browser\n * const fileInput = document.querySelector('input[type=\"file\"]');\n * const file = fileInput.files[0];\n * \n * const result = await baasix.items('products').importCSV(file, {\n * delimiter: ',',\n * skipFirstRow: true\n * });\n * \n * console.log(`Imported ${result.created} items`);\n * ```\n */\n async importCSV(\n file: File | { uri: string; name: string; type: string },\n options?: {\n delimiter?: string;\n skipFirstRow?: boolean;\n dateFormat?: string;\n fieldMapping?: Record<string, string>;\n }\n ): Promise<ImportResult> {\n const formData = new FormData();\n \n if (file instanceof File) {\n formData.append(\"file\", file);\n } else {\n // React Native style file\n formData.append(\"file\", file as any);\n }\n\n if (options?.delimiter) {\n formData.append(\"delimiter\", options.delimiter);\n }\n if (options?.skipFirstRow !== undefined) {\n formData.append(\"skipFirstRow\", String(options.skipFirstRow));\n }\n if (options?.dateFormat) {\n formData.append(\"dateFormat\", options.dateFormat);\n }\n if (options?.fieldMapping) {\n formData.append(\"fieldMapping\", JSON.stringify(options.fieldMapping));\n }\n\n const response = await this.client.post<{ data: ImportResult }>(\n `/items/${this.collection}/import/csv`,\n formData\n );\n return response.data;\n }\n\n /**\n * Import items from a JSON file\n *\n * @example\n * ```typescript\n * const file = fileInput.files[0]; // JSON file\n * const result = await baasix.items('products').importJSON(file);\n * \n * console.log(`Imported ${result.created} items`);\n * ```\n */\n async importJSON(\n file: File | { uri: string; name: string; type: string },\n options?: {\n fieldMapping?: Record<string, string>;\n }\n ): Promise<ImportResult> {\n const formData = new FormData();\n \n if (file instanceof File) {\n formData.append(\"file\", file);\n } else {\n formData.append(\"file\", file as any);\n }\n\n if (options?.fieldMapping) {\n formData.append(\"fieldMapping\", JSON.stringify(options.fieldMapping));\n }\n\n const response = await this.client.post<{ data: ImportResult }>(\n `/items/${this.collection}/import/json`,\n formData\n );\n return response.data;\n }\n\n /**\n * Import items from an array of objects\n *\n * @example\n * ```typescript\n * const data = [\n * { name: 'Product 1', price: 29.99 },\n * { name: 'Product 2', price: 39.99 }\n * ];\n * \n * const result = await baasix.items('products').importData(data);\n * ```\n */\n async importData(data: Partial<T>[]): Promise<BulkResponse> {\n const response = await this.client.post<BulkResponse>(\n `/items/${this.collection}/bulk`,\n data\n );\n return response;\n }\n\n // ===================\n // Sort Operations\n // ===================\n\n /**\n * Sort/reorder items (move item before another)\n *\n * @example\n * ```typescript\n * // Move item1 before item2\n * await baasix.items('products').sortItem('item1-uuid', 'item2-uuid');\n * ```\n */\n async sortItem(itemId: string, beforeItemId: string): Promise<void> {\n await this.client.post(\"/utils/sort\", {\n collection: this.collection,\n item: itemId,\n to: beforeItemId,\n });\n }\n\n /**\n * Reorder multiple items\n *\n * @example\n * ```typescript\n * // Set explicit order\n * await baasix.items('products').reorder([\n * 'item3-uuid',\n * 'item1-uuid',\n * 'item2-uuid'\n * ]);\n * ```\n */\n async reorder(orderedIds: string[]): Promise<void> {\n // Sort items one by one to achieve the desired order\n for (let i = 1; i < orderedIds.length; i++) {\n await this.client.post(\"/utils/sort\", {\n collection: this.collection,\n item: orderedIds[i],\n to: orderedIds[i - 1],\n });\n }\n }\n}\n\nexport interface ImportResult {\n created: number;\n updated: number;\n skipped: number;\n errors: Array<{ row: number; error: string }>;\n}\n\n// Re-export types from types.ts\nexport type {\n BaseItem,\n BulkResponse,\n DeleteResponse,\n Filter,\n MutationResponse,\n PaginatedResponse,\n QueryParams,\n SingleResponse,\n Sort,\n};\n"]}
@@ -0,0 +1,472 @@
1
+ import { B as BaseItem, H as HttpClient, F as Filter, S as Sort, Q as QueryParams, e as PaginatedResponse, f as BulkResponse } from '../client-aXK_gEyr.cjs';
2
+ export { D as DeleteResponse, g as MutationResponse, h as SingleResponse } from '../client-aXK_gEyr.cjs';
3
+ import '../types-BdjsGANq.cjs';
4
+
5
+ interface ItemsModuleConfig {
6
+ client: HttpClient;
7
+ }
8
+ /**
9
+ * Query builder for constructing type-safe queries
10
+ */
11
+ declare class QueryBuilder<T extends BaseItem = BaseItem> {
12
+ private collection;
13
+ private client;
14
+ private queryParams;
15
+ constructor(collection: string, client: HttpClient);
16
+ /**
17
+ * Select specific fields to return
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * items.select(['id', 'name', 'author.*'])
22
+ * items.select('*', 'category.name')
23
+ * ```
24
+ */
25
+ select(...fields: string[] | [string[]]): this;
26
+ /**
27
+ * Alias for select()
28
+ */
29
+ fields(...fields: string[] | [string[]]): this;
30
+ /**
31
+ * Add filter conditions
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * // Simple equality
36
+ * items.filter({ status: { eq: 'active' } })
37
+ *
38
+ * // Multiple conditions
39
+ * items.filter({
40
+ * AND: [
41
+ * { status: { eq: 'active' } },
42
+ * { price: { gte: 100 } }
43
+ * ]
44
+ * })
45
+ *
46
+ * // Relation filtering
47
+ * items.filter({ 'author.name': { like: 'John' } })
48
+ * ```
49
+ */
50
+ filter(filter: Filter): this;
51
+ /**
52
+ * Alias for filter()
53
+ */
54
+ where(filter: Filter): this;
55
+ /**
56
+ * Sort results
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * // Object notation
61
+ * items.sort({ createdAt: 'desc', name: 'asc' })
62
+ *
63
+ * // Array notation with prefix
64
+ * items.sort(['-createdAt', 'name'])
65
+ *
66
+ * // String shorthand
67
+ * items.sort('createdAt:desc')
68
+ * ```
69
+ */
70
+ sort(sort: Sort): this;
71
+ /**
72
+ * Alias for sort()
73
+ */
74
+ orderBy(sort: Sort): this;
75
+ /**
76
+ * Limit number of results
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * items.limit(20)
81
+ * items.limit(-1) // All results
82
+ * ```
83
+ */
84
+ limit(limit: number): this;
85
+ /**
86
+ * Set page number (1-indexed)
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * items.page(2).limit(20)
91
+ * ```
92
+ */
93
+ page(page: number): this;
94
+ /**
95
+ * Skip a number of results
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * items.offset(20)
100
+ * ```
101
+ */
102
+ offset(offset: number): this;
103
+ /**
104
+ * Full-text search
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * items.search('keyword', ['title', 'description'])
109
+ * ```
110
+ */
111
+ search(query: string, fields?: string[]): this;
112
+ /**
113
+ * Include soft-deleted items
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * items.withDeleted()
118
+ * ```
119
+ */
120
+ withDeleted(): this;
121
+ /**
122
+ * Filter related items in O2M/M2M relations
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // Only show approved comments
127
+ * items.relFilter({
128
+ * comments: { approved: { eq: true } }
129
+ * })
130
+ * ```
131
+ */
132
+ relFilter(conditions: Record<string, Filter>): this;
133
+ /**
134
+ * Get the built query parameters
135
+ */
136
+ getQuery(): QueryParams;
137
+ /**
138
+ * Execute the query and return results
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const { data, totalCount } = await items
143
+ * .filter({ status: { eq: 'active' } })
144
+ * .sort({ createdAt: 'desc' })
145
+ * .limit(10)
146
+ * .get();
147
+ * ```
148
+ */
149
+ get(): Promise<PaginatedResponse<T>>;
150
+ /**
151
+ * Execute the query and return the first result
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const item = await items
156
+ * .filter({ slug: { eq: 'my-post' } })
157
+ * .first();
158
+ * ```
159
+ */
160
+ first(): Promise<T | null>;
161
+ /**
162
+ * Count matching items
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const count = await items.filter({ status: { eq: 'active' } }).count();
167
+ * ```
168
+ */
169
+ count(): Promise<number>;
170
+ /**
171
+ * Build query parameters for the request
172
+ */
173
+ private buildParams;
174
+ }
175
+ /**
176
+ * Items module for CRUD operations on collections.
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const items = baasix.items('products');
181
+ *
182
+ * // List items
183
+ * const products = await items.find({ filter: { status: { eq: 'active' } } });
184
+ *
185
+ * // Get single item
186
+ * const product = await items.findOne('product-id');
187
+ *
188
+ * // Create item
189
+ * const newProduct = await items.create({ name: 'Widget', price: 29.99 });
190
+ *
191
+ * // Update item
192
+ * await items.update('product-id', { price: 24.99 });
193
+ *
194
+ * // Delete item
195
+ * await items.delete('product-id');
196
+ * ```
197
+ */
198
+ declare class ItemsModule<T extends BaseItem = BaseItem> {
199
+ private collection;
200
+ private client;
201
+ constructor(collection: string, config: ItemsModuleConfig);
202
+ /**
203
+ * Create a query builder for fluent query construction
204
+ *
205
+ * @example
206
+ * ```typescript
207
+ * const results = await baasix.items('posts')
208
+ * .query()
209
+ * .select('*', 'author.*')
210
+ * .filter({ status: { eq: 'published' } })
211
+ * .sort({ createdAt: 'desc' })
212
+ * .limit(10)
213
+ * .get();
214
+ * ```
215
+ */
216
+ query(): QueryBuilder<T>;
217
+ /**
218
+ * Find items with optional query parameters
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * // Simple query
223
+ * const { data } = await items.find();
224
+ *
225
+ * // With parameters
226
+ * const { data, totalCount } = await items.find({
227
+ * filter: { status: { eq: 'active' } },
228
+ * sort: { createdAt: 'desc' },
229
+ * limit: 20,
230
+ * page: 1,
231
+ * fields: ['id', 'name', 'price']
232
+ * });
233
+ * ```
234
+ */
235
+ find(params?: QueryParams): Promise<PaginatedResponse<T>>;
236
+ /**
237
+ * Alias for find()
238
+ */
239
+ findMany(params?: QueryParams): Promise<PaginatedResponse<T>>;
240
+ /**
241
+ * Find a single item by ID
242
+ *
243
+ * @example
244
+ * ```typescript
245
+ * const product = await items.findOne('product-uuid');
246
+ *
247
+ * // With specific fields
248
+ * const product = await items.findOne('product-uuid', {
249
+ * fields: ['id', 'name', 'category.*']
250
+ * });
251
+ * ```
252
+ */
253
+ findOne(id: string, params?: Pick<QueryParams, "fields">): Promise<T>;
254
+ /**
255
+ * Alias for findOne()
256
+ */
257
+ get(id: string, params?: Pick<QueryParams, "fields">): Promise<T>;
258
+ /**
259
+ * Create a new item
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * const id = await items.create({
264
+ * name: 'New Product',
265
+ * price: 29.99,
266
+ * status: 'draft'
267
+ * });
268
+ * ```
269
+ */
270
+ create(data: Partial<T>): Promise<string>;
271
+ /**
272
+ * Alias for create()
273
+ */
274
+ insert(data: Partial<T>): Promise<string>;
275
+ /**
276
+ * Create multiple items at once
277
+ *
278
+ * @example
279
+ * ```typescript
280
+ * const ids = await items.createMany([
281
+ * { name: 'Product 1', price: 10 },
282
+ * { name: 'Product 2', price: 20 }
283
+ * ]);
284
+ * ```
285
+ */
286
+ createMany(data: Partial<T>[]): Promise<string[]>;
287
+ /**
288
+ * Alias for createMany()
289
+ */
290
+ insertMany(data: Partial<T>[]): Promise<string[]>;
291
+ /**
292
+ * Update an existing item
293
+ *
294
+ * @example
295
+ * ```typescript
296
+ * await items.update('product-uuid', {
297
+ * price: 24.99,
298
+ * status: 'published'
299
+ * });
300
+ * ```
301
+ */
302
+ update(id: string, data: Partial<T>): Promise<string>;
303
+ /**
304
+ * Update multiple items at once
305
+ *
306
+ * @example
307
+ * ```typescript
308
+ * // Update by IDs
309
+ * await items.updateMany(['id1', 'id2'], { status: 'archived' });
310
+ * ```
311
+ */
312
+ updateMany(ids: string[], data: Partial<T>): Promise<string[]>;
313
+ /**
314
+ * Upsert an item (create if not exists, update if exists)
315
+ *
316
+ * @example
317
+ * ```typescript
318
+ * const id = await items.upsert(
319
+ * { sku: 'WIDGET-001' },
320
+ * { name: 'Widget', price: 29.99, sku: 'WIDGET-001' }
321
+ * );
322
+ * ```
323
+ */
324
+ upsert(filter: Filter, data: Partial<T>): Promise<string>;
325
+ /**
326
+ * Delete an item by ID
327
+ *
328
+ * @example
329
+ * ```typescript
330
+ * await items.delete('product-uuid');
331
+ * ```
332
+ */
333
+ delete(id: string): Promise<void>;
334
+ /**
335
+ * Delete multiple items
336
+ *
337
+ * @example
338
+ * ```typescript
339
+ * await items.deleteMany(['id1', 'id2', 'id3']);
340
+ * ```
341
+ */
342
+ deleteMany(ids: string[]): Promise<void>;
343
+ /**
344
+ * Soft delete an item (if paranoid mode is enabled)
345
+ *
346
+ * @example
347
+ * ```typescript
348
+ * await items.softDelete('product-uuid');
349
+ * ```
350
+ */
351
+ softDelete(id: string): Promise<void>;
352
+ /**
353
+ * Restore a soft-deleted item
354
+ *
355
+ * @example
356
+ * ```typescript
357
+ * await items.restore('product-uuid');
358
+ * ```
359
+ */
360
+ restore(id: string): Promise<void>;
361
+ /**
362
+ * Aggregate data with grouping
363
+ *
364
+ * @example
365
+ * ```typescript
366
+ * const results = await items.aggregate({
367
+ * aggregate: {
368
+ * total: { function: 'sum', field: 'amount' },
369
+ * count: { function: 'count', field: 'id' },
370
+ * avgPrice: { function: 'avg', field: 'price' }
371
+ * },
372
+ * groupBy: ['category', 'status'],
373
+ * filter: { createdAt: { gte: '$NOW-DAYS_30' } }
374
+ * });
375
+ * ```
376
+ */
377
+ aggregate(params: Pick<QueryParams, "aggregate" | "groupBy" | "filter">): Promise<Record<string, unknown>[]>;
378
+ /**
379
+ * Import items from a CSV file
380
+ *
381
+ * @example
382
+ * ```typescript
383
+ * // Browser
384
+ * const fileInput = document.querySelector('input[type="file"]');
385
+ * const file = fileInput.files[0];
386
+ *
387
+ * const result = await baasix.items('products').importCSV(file, {
388
+ * delimiter: ',',
389
+ * skipFirstRow: true
390
+ * });
391
+ *
392
+ * console.log(`Imported ${result.created} items`);
393
+ * ```
394
+ */
395
+ importCSV(file: File | {
396
+ uri: string;
397
+ name: string;
398
+ type: string;
399
+ }, options?: {
400
+ delimiter?: string;
401
+ skipFirstRow?: boolean;
402
+ dateFormat?: string;
403
+ fieldMapping?: Record<string, string>;
404
+ }): Promise<ImportResult>;
405
+ /**
406
+ * Import items from a JSON file
407
+ *
408
+ * @example
409
+ * ```typescript
410
+ * const file = fileInput.files[0]; // JSON file
411
+ * const result = await baasix.items('products').importJSON(file);
412
+ *
413
+ * console.log(`Imported ${result.created} items`);
414
+ * ```
415
+ */
416
+ importJSON(file: File | {
417
+ uri: string;
418
+ name: string;
419
+ type: string;
420
+ }, options?: {
421
+ fieldMapping?: Record<string, string>;
422
+ }): Promise<ImportResult>;
423
+ /**
424
+ * Import items from an array of objects
425
+ *
426
+ * @example
427
+ * ```typescript
428
+ * const data = [
429
+ * { name: 'Product 1', price: 29.99 },
430
+ * { name: 'Product 2', price: 39.99 }
431
+ * ];
432
+ *
433
+ * const result = await baasix.items('products').importData(data);
434
+ * ```
435
+ */
436
+ importData(data: Partial<T>[]): Promise<BulkResponse>;
437
+ /**
438
+ * Sort/reorder items (move item before another)
439
+ *
440
+ * @example
441
+ * ```typescript
442
+ * // Move item1 before item2
443
+ * await baasix.items('products').sortItem('item1-uuid', 'item2-uuid');
444
+ * ```
445
+ */
446
+ sortItem(itemId: string, beforeItemId: string): Promise<void>;
447
+ /**
448
+ * Reorder multiple items
449
+ *
450
+ * @example
451
+ * ```typescript
452
+ * // Set explicit order
453
+ * await baasix.items('products').reorder([
454
+ * 'item3-uuid',
455
+ * 'item1-uuid',
456
+ * 'item2-uuid'
457
+ * ]);
458
+ * ```
459
+ */
460
+ reorder(orderedIds: string[]): Promise<void>;
461
+ }
462
+ interface ImportResult {
463
+ created: number;
464
+ updated: number;
465
+ skipped: number;
466
+ errors: Array<{
467
+ row: number;
468
+ error: string;
469
+ }>;
470
+ }
471
+
472
+ export { BaseItem, BulkResponse, Filter, type ImportResult, ItemsModule, type ItemsModuleConfig, PaginatedResponse, QueryBuilder, QueryParams, Sort };