@baasix/baasix 0.1.0

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 (666) hide show
  1. package/LICENSE.MD +85 -0
  2. package/README.md +526 -0
  3. package/assets/banner.jpg +0 -0
  4. package/assets/banner_small.jpg +0 -0
  5. package/assets/logo_icon.svg +20 -0
  6. package/assets/logo_icon_rounded.svg +20 -0
  7. package/dist/LICENSE.MD +85 -0
  8. package/dist/README.md +526 -0
  9. package/dist/app/404/index.html +1 -0
  10. package/dist/app/404.html +1 -0
  11. package/dist/app/_next/static/chunks/041e1f03-56ae8a902a7f2fe6.js +24 -0
  12. package/dist/app/_next/static/chunks/1117-05479929a8da73e3.js +1 -0
  13. package/dist/app/_next/static/chunks/1299.77cc7b7b76b75cba.js +1 -0
  14. package/dist/app/_next/static/chunks/1303-35a96e9c9cdeab9d.js +1 -0
  15. package/dist/app/_next/static/chunks/1509-56ac00cdaaecdf53.js +1 -0
  16. package/dist/app/_next/static/chunks/1668-e3eabd0f6753c780.js +1 -0
  17. package/dist/app/_next/static/chunks/1783-d9fb550fd324300c.js +1 -0
  18. package/dist/app/_next/static/chunks/2117-29b5fa47421595ad.js +2 -0
  19. package/dist/app/_next/static/chunks/2344.35b46d2179a765b5.js +1 -0
  20. package/dist/app/_next/static/chunks/257.990da16794a31292.js +1 -0
  21. package/dist/app/_next/static/chunks/2676-73b0ee7c80073a84.js +1 -0
  22. package/dist/app/_next/static/chunks/3563-b8842744384391fe.js +1 -0
  23. package/dist/app/_next/static/chunks/363642f4-933b579ed3c85f60.js +1 -0
  24. package/dist/app/_next/static/chunks/3817-e20c8f0a0810fc95.js +1 -0
  25. package/dist/app/_next/static/chunks/3834.84944e390d902509.js +2 -0
  26. package/dist/app/_next/static/chunks/4043-3a30c8a75896f241.js +1 -0
  27. package/dist/app/_next/static/chunks/4225-14090c7c0cd9dec6.js +1 -0
  28. package/dist/app/_next/static/chunks/4438-c9a12ca15b6e9160.js +1 -0
  29. package/dist/app/_next/static/chunks/4458-679fd0c6884f456a.js +1 -0
  30. package/dist/app/_next/static/chunks/4475-8bdfbd536fba8c48.js +1 -0
  31. package/dist/app/_next/static/chunks/4883-8a924721bb21b3b0.js +1 -0
  32. package/dist/app/_next/static/chunks/489-683ab07188f9df2b.js +1 -0
  33. package/dist/app/_next/static/chunks/4952-1b97320cf61f3f21.js +1 -0
  34. package/dist/app/_next/static/chunks/5094-8d53e403235d4ca6.js +1 -0
  35. package/dist/app/_next/static/chunks/5101-3a146e0625747ad1.js +1 -0
  36. package/dist/app/_next/static/chunks/54a60aa6-d9747982e0a81f58.js +79 -0
  37. package/dist/app/_next/static/chunks/5650-f096291df402bfc2.js +1 -0
  38. package/dist/app/_next/static/chunks/600-539045311240f579.js +1 -0
  39. package/dist/app/_next/static/chunks/6170-803b82e19d3ade6d.js +89 -0
  40. package/dist/app/_next/static/chunks/6241-30d7169d1010e5a4.js +1 -0
  41. package/dist/app/_next/static/chunks/6530-a91e10cffa4200c4.js +1 -0
  42. package/dist/app/_next/static/chunks/6547-4bbbdb5c399aef1e.js +1 -0
  43. package/dist/app/_next/static/chunks/6712-781937c53a2c49da.js +1 -0
  44. package/dist/app/_next/static/chunks/6fcbdc68-90be1a5480b8d353.js +1 -0
  45. package/dist/app/_next/static/chunks/70e0d97a-aeaf0cdc26ba1a58.js +1 -0
  46. package/dist/app/_next/static/chunks/7214-5154a89d08d24dde.js +1 -0
  47. package/dist/app/_next/static/chunks/7324-b53229c59a640880.js +10 -0
  48. package/dist/app/_next/static/chunks/7636-66424f0b51d350e9.js +1 -0
  49. package/dist/app/_next/static/chunks/7874-39a3f2541165a675.js +1 -0
  50. package/dist/app/_next/static/chunks/7982-9da12b83f11e3f5f.js +1 -0
  51. package/dist/app/_next/static/chunks/8213a2eb-da25a3b3c5521b2b.js +1 -0
  52. package/dist/app/_next/static/chunks/8473-6598318371eca31b.js +1 -0
  53. package/dist/app/_next/static/chunks/8640fa6b-72e43370f68e5587.js +1 -0
  54. package/dist/app/_next/static/chunks/9090-3ef676f29c95f1c7.js +1 -0
  55. package/dist/app/_next/static/chunks/9124-a02f9e209e6e3cce.js +1 -0
  56. package/dist/app/_next/static/chunks/926-156f32067d111d6b.js +1 -0
  57. package/dist/app/_next/static/chunks/9487-b17481605e513b83.js +1 -0
  58. package/dist/app/_next/static/chunks/9599-a7e572bb88c3392b.js +1 -0
  59. package/dist/app/_next/static/chunks/9881-419697138376e755.js +1 -0
  60. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/all-activity/page-8917930b4d663405.js +1 -0
  61. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/email-log/page-b27a6ee32782d7df.js +1 -0
  62. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/notifications/page-b7eda523ede2702c.js +1 -0
  63. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/page-1cfa62d1caedaed0.js +1 -0
  64. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/sessions/page-3e21e20db90aeff7.js +1 -0
  65. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/workflow-executions/page-27bcc26b747fb29b.js +1 -0
  66. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/workflow-logs/page-9f9e9e952aef436e.js +1 -0
  67. package/dist/app/_next/static/chunks/app/(authenticated)/change-password/page-8d61aa499eabb127.js +1 -0
  68. package/dist/app/_next/static/chunks/app/(authenticated)/dashboard/page-1ceeac9e72997a8a.js +1 -0
  69. package/dist/app/_next/static/chunks/app/(authenticated)/data-browser/page-8cda2b57759dd670.js +1 -0
  70. package/dist/app/_next/static/chunks/app/(authenticated)/file-manager/page-8c6f1b1da66ad7e4.js +1 -0
  71. package/dist/app/_next/static/chunks/app/(authenticated)/layout-f70d225b2759c998.js +1 -0
  72. package/dist/app/_next/static/chunks/app/(authenticated)/settings/migrations/page-aacec8f7cfb40ab2.js +1 -0
  73. package/dist/app/_next/static/chunks/app/(authenticated)/settings/permissions/page-828110cfcde429c6.js +1 -0
  74. package/dist/app/_next/static/chunks/app/(authenticated)/settings/project/page-420e794bb76bd204.js +1 -0
  75. package/dist/app/_next/static/chunks/app/(authenticated)/settings/roles/page-9001d02b28f70708.js +1 -0
  76. package/dist/app/_next/static/chunks/app/(authenticated)/settings/schema/page-899574f35091dd58.js +1 -0
  77. package/dist/app/_next/static/chunks/app/(authenticated)/settings/tasks/page-ad7ab3e27c83f44f.js +1 -0
  78. package/dist/app/_next/static/chunks/app/(authenticated)/settings/templates/edit/page-bd83414cb8c4cb04.js +1 -0
  79. package/dist/app/_next/static/chunks/app/(authenticated)/settings/templates/page-3181447f8772b1d3.js +1 -0
  80. package/dist/app/_next/static/chunks/app/(authenticated)/settings/tenants/page-ef9bfbacef5a1d73.js +1 -0
  81. package/dist/app/_next/static/chunks/app/(authenticated)/users/invites/page-480306b7b2bbac7e.js +1 -0
  82. package/dist/app/_next/static/chunks/app/(authenticated)/users/list/page-74da51254c2606b3.js +1 -0
  83. package/dist/app/_next/static/chunks/app/(authenticated)/users/page-e99c6f0b915001b2.js +1 -0
  84. package/dist/app/_next/static/chunks/app/(authenticated)/users/preferences/page-1a935630ce8f2b12.js +1 -0
  85. package/dist/app/_next/static/chunks/app/(authenticated)/users/user-roles/page-901dfb8ea1f39ca8.js +1 -0
  86. package/dist/app/_next/static/chunks/app/(authenticated)/workflows/detail/page-9a6b839aea688ca4.js +1 -0
  87. package/dist/app/_next/static/chunks/app/(authenticated)/workflows/edit/page-11774efbc2fecae2.js +1 -0
  88. package/dist/app/_next/static/chunks/app/(authenticated)/workflows/execution/page-8ec1aea90412c03d.js +1 -0
  89. package/dist/app/_next/static/chunks/app/(authenticated)/workflows/page-88bc5b36ccb0a1f7.js +1 -0
  90. package/dist/app/_next/static/chunks/app/(public)/forgot-password/page-ed263fd46ef81c20.js +1 -0
  91. package/dist/app/_next/static/chunks/app/(public)/layout-f538977545844af8.js +1 -0
  92. package/dist/app/_next/static/chunks/app/(public)/login/page-c0a10b137f346096.js +1 -0
  93. package/dist/app/_next/static/chunks/app/(public)/register/page-4cb7644893efd9b3.js +1 -0
  94. package/dist/app/_next/static/chunks/app/_not-found/page-653f8815b78256cc.js +1 -0
  95. package/dist/app/_next/static/chunks/app/layout-591ca7a3e16528a1.js +1 -0
  96. package/dist/app/_next/static/chunks/app/page-dd19d124b5fa2577.js +1 -0
  97. package/dist/app/_next/static/chunks/c37d3baf.c2ff165f5b02c692.js +1 -0
  98. package/dist/app/_next/static/chunks/d0deef33.0379166a4ec23470.js +1 -0
  99. package/dist/app/_next/static/chunks/fd9d1056-54169f07cd680d6c.js +1 -0
  100. package/dist/app/_next/static/chunks/framework-8e0e0f4a6b83a956.js +1 -0
  101. package/dist/app/_next/static/chunks/main-324e91f5a430cddf.js +1 -0
  102. package/dist/app/_next/static/chunks/main-app-55bcae20c77aaf0e.js +1 -0
  103. package/dist/app/_next/static/chunks/pages/_app-3c9ca398d360b709.js +1 -0
  104. package/dist/app/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js +1 -0
  105. package/dist/app/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  106. package/dist/app/_next/static/chunks/webpack-2c306566f7ee1b63.js +1 -0
  107. package/dist/app/_next/static/css/6c4002bae4e236b2.css +3 -0
  108. package/dist/app/_next/static/css/a275cc2b185e04f8.css +1 -0
  109. package/dist/app/_next/static/eCWhKA8XHqmB1zgFcEtN2/_buildManifest.js +1 -0
  110. package/dist/app/_next/static/eCWhKA8XHqmB1zgFcEtN2/_ssgManifest.js +1 -0
  111. package/dist/app/activity-log/all-activity/index.html +1 -0
  112. package/dist/app/activity-log/all-activity/index.txt +14 -0
  113. package/dist/app/activity-log/email-log/index.html +1 -0
  114. package/dist/app/activity-log/email-log/index.txt +14 -0
  115. package/dist/app/activity-log/index.html +1 -0
  116. package/dist/app/activity-log/index.txt +14 -0
  117. package/dist/app/activity-log/notifications/index.html +1 -0
  118. package/dist/app/activity-log/notifications/index.txt +14 -0
  119. package/dist/app/activity-log/sessions/index.html +1 -0
  120. package/dist/app/activity-log/sessions/index.txt +14 -0
  121. package/dist/app/activity-log/workflow-executions/index.html +1 -0
  122. package/dist/app/activity-log/workflow-executions/index.txt +14 -0
  123. package/dist/app/activity-log/workflow-logs/index.html +1 -0
  124. package/dist/app/activity-log/workflow-logs/index.txt +14 -0
  125. package/dist/app/change-password/index.html +1 -0
  126. package/dist/app/change-password/index.txt +14 -0
  127. package/dist/app/dashboard/index.html +1 -0
  128. package/dist/app/dashboard/index.txt +14 -0
  129. package/dist/app/data-browser/index.html +1 -0
  130. package/dist/app/data-browser/index.txt +14 -0
  131. package/dist/app/file-manager/index.html +1 -0
  132. package/dist/app/file-manager/index.txt +14 -0
  133. package/dist/app/forgot-password/index.html +1 -0
  134. package/dist/app/forgot-password/index.txt +13 -0
  135. package/dist/app/index.html +1 -0
  136. package/dist/app/index.txt +9 -0
  137. package/dist/app/login/index.html +1 -0
  138. package/dist/app/login/index.txt +13 -0
  139. package/dist/app/logo-dark.png +0 -0
  140. package/dist/app/logo-icon.svg +81 -0
  141. package/dist/app/logo-light.png +0 -0
  142. package/dist/app/register/index.html +1 -0
  143. package/dist/app/register/index.txt +13 -0
  144. package/dist/app/settings/migrations/index.html +1 -0
  145. package/dist/app/settings/migrations/index.txt +14 -0
  146. package/dist/app/settings/permissions/index.html +1 -0
  147. package/dist/app/settings/permissions/index.txt +14 -0
  148. package/dist/app/settings/project/index.html +1 -0
  149. package/dist/app/settings/project/index.txt +14 -0
  150. package/dist/app/settings/roles/index.html +1 -0
  151. package/dist/app/settings/roles/index.txt +14 -0
  152. package/dist/app/settings/schema/index.html +1 -0
  153. package/dist/app/settings/schema/index.txt +14 -0
  154. package/dist/app/settings/tasks/index.html +1 -0
  155. package/dist/app/settings/tasks/index.txt +14 -0
  156. package/dist/app/settings/templates/edit/index.html +1 -0
  157. package/dist/app/settings/templates/edit/index.txt +14 -0
  158. package/dist/app/settings/templates/index.html +1 -0
  159. package/dist/app/settings/templates/index.txt +14 -0
  160. package/dist/app/settings/tenants/index.html +1 -0
  161. package/dist/app/settings/tenants/index.txt +14 -0
  162. package/dist/app/users/index.html +1 -0
  163. package/dist/app/users/index.txt +14 -0
  164. package/dist/app/users/invites/index.html +1 -0
  165. package/dist/app/users/invites/index.txt +14 -0
  166. package/dist/app/users/list/index.html +1 -0
  167. package/dist/app/users/list/index.txt +14 -0
  168. package/dist/app/users/preferences/index.html +1 -0
  169. package/dist/app/users/preferences/index.txt +14 -0
  170. package/dist/app/users/user-roles/index.html +1 -0
  171. package/dist/app/users/user-roles/index.txt +14 -0
  172. package/dist/app/workflows/detail/index.html +1 -0
  173. package/dist/app/workflows/detail/index.txt +14 -0
  174. package/dist/app/workflows/edit/index.html +1 -0
  175. package/dist/app/workflows/edit/index.txt +14 -0
  176. package/dist/app/workflows/execution/index.html +1 -0
  177. package/dist/app/workflows/execution/index.txt +14 -0
  178. package/dist/app/workflows/index.html +1 -0
  179. package/dist/app/workflows/index.txt +14 -0
  180. package/dist/app.d.ts +36 -0
  181. package/dist/app.d.ts.map +1 -0
  182. package/dist/app.js +546 -0
  183. package/dist/app.js.map +1 -0
  184. package/dist/auth/adapters/baasix-adapter.d.ts +12 -0
  185. package/dist/auth/adapters/baasix-adapter.d.ts.map +1 -0
  186. package/dist/auth/adapters/baasix-adapter.js +318 -0
  187. package/dist/auth/adapters/baasix-adapter.js.map +1 -0
  188. package/dist/auth/adapters/index.d.ts +6 -0
  189. package/dist/auth/adapters/index.d.ts.map +1 -0
  190. package/dist/auth/adapters/index.js +5 -0
  191. package/dist/auth/adapters/index.js.map +1 -0
  192. package/dist/auth/core.d.ts +73 -0
  193. package/dist/auth/core.d.ts.map +1 -0
  194. package/dist/auth/core.js +528 -0
  195. package/dist/auth/core.js.map +1 -0
  196. package/dist/auth/index.d.ts +56 -0
  197. package/dist/auth/index.d.ts.map +1 -0
  198. package/dist/auth/index.js +58 -0
  199. package/dist/auth/index.js.map +1 -0
  200. package/dist/auth/oauth2/index.d.ts +5 -0
  201. package/dist/auth/oauth2/index.d.ts.map +1 -0
  202. package/dist/auth/oauth2/index.js +5 -0
  203. package/dist/auth/oauth2/index.js.map +1 -0
  204. package/dist/auth/oauth2/utils.d.ts +90 -0
  205. package/dist/auth/oauth2/utils.d.ts.map +1 -0
  206. package/dist/auth/oauth2/utils.js +167 -0
  207. package/dist/auth/oauth2/utils.js.map +1 -0
  208. package/dist/auth/providers/apple.d.ts +28 -0
  209. package/dist/auth/providers/apple.d.ts.map +1 -0
  210. package/dist/auth/providers/apple.js +192 -0
  211. package/dist/auth/providers/apple.js.map +1 -0
  212. package/dist/auth/providers/credential.d.ts +87 -0
  213. package/dist/auth/providers/credential.d.ts.map +1 -0
  214. package/dist/auth/providers/credential.js +162 -0
  215. package/dist/auth/providers/credential.js.map +1 -0
  216. package/dist/auth/providers/facebook.d.ts +26 -0
  217. package/dist/auth/providers/facebook.d.ts.map +1 -0
  218. package/dist/auth/providers/facebook.js +112 -0
  219. package/dist/auth/providers/facebook.js.map +1 -0
  220. package/dist/auth/providers/github.d.ts +29 -0
  221. package/dist/auth/providers/github.d.ts.map +1 -0
  222. package/dist/auth/providers/github.js +144 -0
  223. package/dist/auth/providers/github.js.map +1 -0
  224. package/dist/auth/providers/google.d.ts +32 -0
  225. package/dist/auth/providers/google.d.ts.map +1 -0
  226. package/dist/auth/providers/google.js +145 -0
  227. package/dist/auth/providers/google.js.map +1 -0
  228. package/dist/auth/providers/index.d.ts +22 -0
  229. package/dist/auth/providers/index.d.ts.map +1 -0
  230. package/dist/auth/providers/index.js +17 -0
  231. package/dist/auth/providers/index.js.map +1 -0
  232. package/dist/auth/routes.d.ts +63 -0
  233. package/dist/auth/routes.d.ts.map +1 -0
  234. package/dist/auth/routes.js +827 -0
  235. package/dist/auth/routes.js.map +1 -0
  236. package/dist/auth/services/index.d.ts +10 -0
  237. package/dist/auth/services/index.d.ts.map +1 -0
  238. package/dist/auth/services/index.js +7 -0
  239. package/dist/auth/services/index.js.map +1 -0
  240. package/dist/auth/services/session.d.ts +81 -0
  241. package/dist/auth/services/session.d.ts.map +1 -0
  242. package/dist/auth/services/session.js +186 -0
  243. package/dist/auth/services/session.js.map +1 -0
  244. package/dist/auth/services/token.d.ts +41 -0
  245. package/dist/auth/services/token.d.ts.map +1 -0
  246. package/dist/auth/services/token.js +44 -0
  247. package/dist/auth/services/token.js.map +1 -0
  248. package/dist/auth/services/verification.d.ts +77 -0
  249. package/dist/auth/services/verification.d.ts.map +1 -0
  250. package/dist/auth/services/verification.js +143 -0
  251. package/dist/auth/services/verification.js.map +1 -0
  252. package/dist/auth/types.d.ts +318 -0
  253. package/dist/auth/types.d.ts.map +1 -0
  254. package/dist/auth/types.js +6 -0
  255. package/dist/auth/types.js.map +1 -0
  256. package/dist/customTypes/arrays.d.ts +200 -0
  257. package/dist/customTypes/arrays.d.ts.map +1 -0
  258. package/dist/customTypes/arrays.js +309 -0
  259. package/dist/customTypes/arrays.js.map +1 -0
  260. package/dist/customTypes/index.d.ts +8 -0
  261. package/dist/customTypes/index.d.ts.map +1 -0
  262. package/dist/customTypes/index.js +11 -0
  263. package/dist/customTypes/index.js.map +1 -0
  264. package/dist/customTypes/postgis.d.ts +146 -0
  265. package/dist/customTypes/postgis.d.ts.map +1 -0
  266. package/dist/customTypes/postgis.js +315 -0
  267. package/dist/customTypes/postgis.js.map +1 -0
  268. package/dist/customTypes/ranges.d.ts +128 -0
  269. package/dist/customTypes/ranges.d.ts.map +1 -0
  270. package/dist/customTypes/ranges.js +257 -0
  271. package/dist/customTypes/ranges.js.map +1 -0
  272. package/dist/index.d.ts +37 -0
  273. package/dist/index.d.ts.map +1 -0
  274. package/dist/index.js +42 -0
  275. package/dist/index.js.map +1 -0
  276. package/dist/migrations/0.1.0-alpha.0_initial_setup.d.ts +29 -0
  277. package/dist/migrations/0.1.0-alpha.0_initial_setup.d.ts.map +1 -0
  278. package/dist/migrations/0.1.0-alpha.0_initial_setup.js +72 -0
  279. package/dist/migrations/0.1.0-alpha.0_initial_setup.js.map +1 -0
  280. package/dist/migrations/_example_migration.d.ts +31 -0
  281. package/dist/migrations/_example_migration.d.ts.map +1 -0
  282. package/dist/migrations/_example_migration.js +75 -0
  283. package/dist/migrations/_example_migration.js.map +1 -0
  284. package/dist/plugins/definePlugin.d.ts +49 -0
  285. package/dist/plugins/definePlugin.d.ts.map +1 -0
  286. package/dist/plugins/definePlugin.js +131 -0
  287. package/dist/plugins/definePlugin.js.map +1 -0
  288. package/dist/plugins/softDelete.d.ts +179 -0
  289. package/dist/plugins/softDelete.d.ts.map +1 -0
  290. package/dist/plugins/softDelete.js +235 -0
  291. package/dist/plugins/softDelete.js.map +1 -0
  292. package/dist/routes/auth.route.d.ts +14 -0
  293. package/dist/routes/auth.route.d.ts.map +1 -0
  294. package/dist/routes/auth.route.js +421 -0
  295. package/dist/routes/auth.route.js.map +1 -0
  296. package/dist/routes/file.route.d.ts +7 -0
  297. package/dist/routes/file.route.d.ts.map +1 -0
  298. package/dist/routes/file.route.js +274 -0
  299. package/dist/routes/file.route.js.map +1 -0
  300. package/dist/routes/items.route.d.ts +7 -0
  301. package/dist/routes/items.route.d.ts.map +1 -0
  302. package/dist/routes/items.route.js +369 -0
  303. package/dist/routes/items.route.js.map +1 -0
  304. package/dist/routes/migration.route.d.ts +7 -0
  305. package/dist/routes/migration.route.d.ts.map +1 -0
  306. package/dist/routes/migration.route.js +225 -0
  307. package/dist/routes/migration.route.js.map +1 -0
  308. package/dist/routes/notification.route.d.ts +7 -0
  309. package/dist/routes/notification.route.d.ts.map +1 -0
  310. package/dist/routes/notification.route.js +124 -0
  311. package/dist/routes/notification.route.js.map +1 -0
  312. package/dist/routes/openapi.route.d.ts +7 -0
  313. package/dist/routes/openapi.route.d.ts.map +1 -0
  314. package/dist/routes/openapi.route.js +2169 -0
  315. package/dist/routes/openapi.route.js.map +1 -0
  316. package/dist/routes/permission.route.d.ts +7 -0
  317. package/dist/routes/permission.route.d.ts.map +1 -0
  318. package/dist/routes/permission.route.js +158 -0
  319. package/dist/routes/permission.route.js.map +1 -0
  320. package/dist/routes/realtime.route.d.ts +21 -0
  321. package/dist/routes/realtime.route.d.ts.map +1 -0
  322. package/dist/routes/realtime.route.js +243 -0
  323. package/dist/routes/realtime.route.js.map +1 -0
  324. package/dist/routes/reports.route.d.ts +7 -0
  325. package/dist/routes/reports.route.d.ts.map +1 -0
  326. package/dist/routes/reports.route.js +95 -0
  327. package/dist/routes/reports.route.js.map +1 -0
  328. package/dist/routes/schema.route.d.ts +7 -0
  329. package/dist/routes/schema.route.d.ts.map +1 -0
  330. package/dist/routes/schema.route.js +1780 -0
  331. package/dist/routes/schema.route.js.map +1 -0
  332. package/dist/routes/settings.route.d.ts +7 -0
  333. package/dist/routes/settings.route.d.ts.map +1 -0
  334. package/dist/routes/settings.route.js +154 -0
  335. package/dist/routes/settings.route.js.map +1 -0
  336. package/dist/routes/templates.route.d.ts +7 -0
  337. package/dist/routes/templates.route.d.ts.map +1 -0
  338. package/dist/routes/templates.route.js +91 -0
  339. package/dist/routes/templates.route.js.map +1 -0
  340. package/dist/routes/utils.route.d.ts +7 -0
  341. package/dist/routes/utils.route.d.ts.map +1 -0
  342. package/dist/routes/utils.route.js +33 -0
  343. package/dist/routes/utils.route.js.map +1 -0
  344. package/dist/routes/workflow.route.d.ts +7 -0
  345. package/dist/routes/workflow.route.d.ts.map +1 -0
  346. package/dist/routes/workflow.route.js +787 -0
  347. package/dist/routes/workflow.route.js.map +1 -0
  348. package/dist/services/AssetsService.d.ts +39 -0
  349. package/dist/services/AssetsService.d.ts.map +1 -0
  350. package/dist/services/AssetsService.js +255 -0
  351. package/dist/services/AssetsService.js.map +1 -0
  352. package/dist/services/CacheService.d.ts +169 -0
  353. package/dist/services/CacheService.d.ts.map +1 -0
  354. package/dist/services/CacheService.js +722 -0
  355. package/dist/services/CacheService.js.map +1 -0
  356. package/dist/services/FilesService.d.ts +30 -0
  357. package/dist/services/FilesService.d.ts.map +1 -0
  358. package/dist/services/FilesService.js +268 -0
  359. package/dist/services/FilesService.js.map +1 -0
  360. package/dist/services/HooksManager.d.ts +38 -0
  361. package/dist/services/HooksManager.d.ts.map +1 -0
  362. package/dist/services/HooksManager.js +165 -0
  363. package/dist/services/HooksManager.js.map +1 -0
  364. package/dist/services/ItemsService.d.ts +273 -0
  365. package/dist/services/ItemsService.d.ts.map +1 -0
  366. package/dist/services/ItemsService.js +2458 -0
  367. package/dist/services/ItemsService.js.map +1 -0
  368. package/dist/services/MailService.d.ts +76 -0
  369. package/dist/services/MailService.d.ts.map +1 -0
  370. package/dist/services/MailService.js +585 -0
  371. package/dist/services/MailService.js.map +1 -0
  372. package/dist/services/MigrationService.d.ts +243 -0
  373. package/dist/services/MigrationService.d.ts.map +1 -0
  374. package/dist/services/MigrationService.js +914 -0
  375. package/dist/services/MigrationService.js.map +1 -0
  376. package/dist/services/NotificationService.d.ts +35 -0
  377. package/dist/services/NotificationService.d.ts.map +1 -0
  378. package/dist/services/NotificationService.js +159 -0
  379. package/dist/services/NotificationService.js.map +1 -0
  380. package/dist/services/PermissionService.d.ts +128 -0
  381. package/dist/services/PermissionService.d.ts.map +1 -0
  382. package/dist/services/PermissionService.js +373 -0
  383. package/dist/services/PermissionService.js.map +1 -0
  384. package/dist/services/PluginManager.d.ts +138 -0
  385. package/dist/services/PluginManager.d.ts.map +1 -0
  386. package/dist/services/PluginManager.js +463 -0
  387. package/dist/services/PluginManager.js.map +1 -0
  388. package/dist/services/RealtimeService.d.ts +209 -0
  389. package/dist/services/RealtimeService.d.ts.map +1 -0
  390. package/dist/services/RealtimeService.js +978 -0
  391. package/dist/services/RealtimeService.js.map +1 -0
  392. package/dist/services/ReportService.d.ts +13 -0
  393. package/dist/services/ReportService.d.ts.map +1 -0
  394. package/dist/services/ReportService.js +91 -0
  395. package/dist/services/ReportService.js.map +1 -0
  396. package/dist/services/SettingsService.d.ts +60 -0
  397. package/dist/services/SettingsService.d.ts.map +1 -0
  398. package/dist/services/SettingsService.js +474 -0
  399. package/dist/services/SettingsService.js.map +1 -0
  400. package/dist/services/SocketService.d.ts +129 -0
  401. package/dist/services/SocketService.d.ts.map +1 -0
  402. package/dist/services/SocketService.js +600 -0
  403. package/dist/services/SocketService.js.map +1 -0
  404. package/dist/services/StatsService.d.ts +10 -0
  405. package/dist/services/StatsService.d.ts.map +1 -0
  406. package/dist/services/StatsService.js +40 -0
  407. package/dist/services/StatsService.js.map +1 -0
  408. package/dist/services/StorageService.d.ts +20 -0
  409. package/dist/services/StorageService.d.ts.map +1 -0
  410. package/dist/services/StorageService.js +164 -0
  411. package/dist/services/StorageService.js.map +1 -0
  412. package/dist/services/TasksService.d.ts +74 -0
  413. package/dist/services/TasksService.d.ts.map +1 -0
  414. package/dist/services/TasksService.js +404 -0
  415. package/dist/services/TasksService.js.map +1 -0
  416. package/dist/services/WorkflowService.d.ts +305 -0
  417. package/dist/services/WorkflowService.d.ts.map +1 -0
  418. package/dist/services/WorkflowService.js +1811 -0
  419. package/dist/services/WorkflowService.js.map +1 -0
  420. package/dist/templates/logo/logo.png +0 -0
  421. package/dist/templates/mails/default.liquid +23 -0
  422. package/dist/types/aggregation.d.ts +40 -0
  423. package/dist/types/aggregation.d.ts.map +1 -0
  424. package/dist/types/aggregation.js +6 -0
  425. package/dist/types/aggregation.js.map +1 -0
  426. package/dist/types/assets.d.ts +32 -0
  427. package/dist/types/assets.d.ts.map +1 -0
  428. package/dist/types/assets.js +6 -0
  429. package/dist/types/assets.js.map +1 -0
  430. package/dist/types/auth.d.ts +50 -0
  431. package/dist/types/auth.d.ts.map +1 -0
  432. package/dist/types/auth.js +6 -0
  433. package/dist/types/auth.js.map +1 -0
  434. package/dist/types/cache.d.ts +47 -0
  435. package/dist/types/cache.d.ts.map +1 -0
  436. package/dist/types/cache.js +6 -0
  437. package/dist/types/cache.js.map +1 -0
  438. package/dist/types/database.d.ts +16 -0
  439. package/dist/types/database.d.ts.map +1 -0
  440. package/dist/types/database.js +6 -0
  441. package/dist/types/database.js.map +1 -0
  442. package/dist/types/fields.d.ts +71 -0
  443. package/dist/types/fields.d.ts.map +1 -0
  444. package/dist/types/fields.js +6 -0
  445. package/dist/types/fields.js.map +1 -0
  446. package/dist/types/files.d.ts +33 -0
  447. package/dist/types/files.d.ts.map +1 -0
  448. package/dist/types/files.js +6 -0
  449. package/dist/types/files.js.map +1 -0
  450. package/dist/types/hooks.d.ts +29 -0
  451. package/dist/types/hooks.d.ts.map +1 -0
  452. package/dist/types/hooks.js +6 -0
  453. package/dist/types/hooks.js.map +1 -0
  454. package/dist/types/import-export.d.ts +62 -0
  455. package/dist/types/import-export.d.ts.map +1 -0
  456. package/dist/types/import-export.js +6 -0
  457. package/dist/types/import-export.js.map +1 -0
  458. package/dist/types/index.d.ts +31 -0
  459. package/dist/types/index.d.ts.map +1 -0
  460. package/dist/types/index.js +58 -0
  461. package/dist/types/index.js.map +1 -0
  462. package/dist/types/mail.d.ts +34 -0
  463. package/dist/types/mail.d.ts.map +1 -0
  464. package/dist/types/mail.js +6 -0
  465. package/dist/types/mail.js.map +1 -0
  466. package/dist/types/notifications.d.ts +16 -0
  467. package/dist/types/notifications.d.ts.map +1 -0
  468. package/dist/types/notifications.js +6 -0
  469. package/dist/types/notifications.js.map +1 -0
  470. package/dist/types/plugin.d.ts +351 -0
  471. package/dist/types/plugin.d.ts.map +1 -0
  472. package/dist/types/plugin.js +8 -0
  473. package/dist/types/plugin.js.map +1 -0
  474. package/dist/types/query.d.ts +71 -0
  475. package/dist/types/query.d.ts.map +1 -0
  476. package/dist/types/query.js +6 -0
  477. package/dist/types/query.js.map +1 -0
  478. package/dist/types/relations.d.ts +111 -0
  479. package/dist/types/relations.d.ts.map +1 -0
  480. package/dist/types/relations.js +6 -0
  481. package/dist/types/relations.js.map +1 -0
  482. package/dist/types/reports.d.ts +17 -0
  483. package/dist/types/reports.d.ts.map +1 -0
  484. package/dist/types/reports.js +6 -0
  485. package/dist/types/reports.js.map +1 -0
  486. package/dist/types/schema.d.ts +26 -0
  487. package/dist/types/schema.d.ts.map +1 -0
  488. package/dist/types/schema.js +6 -0
  489. package/dist/types/schema.js.map +1 -0
  490. package/dist/types/seed.d.ts +27 -0
  491. package/dist/types/seed.d.ts.map +1 -0
  492. package/dist/types/seed.js +6 -0
  493. package/dist/types/seed.js.map +1 -0
  494. package/dist/types/services.d.ts +68 -0
  495. package/dist/types/services.d.ts.map +1 -0
  496. package/dist/types/services.js +6 -0
  497. package/dist/types/services.js.map +1 -0
  498. package/dist/types/settings.d.ts +36 -0
  499. package/dist/types/settings.d.ts.map +1 -0
  500. package/dist/types/settings.js +6 -0
  501. package/dist/types/settings.js.map +1 -0
  502. package/dist/types/sockets.d.ts +26 -0
  503. package/dist/types/sockets.d.ts.map +1 -0
  504. package/dist/types/sockets.js +6 -0
  505. package/dist/types/sockets.js.map +1 -0
  506. package/dist/types/sort.d.ts +25 -0
  507. package/dist/types/sort.d.ts.map +1 -0
  508. package/dist/types/sort.js +6 -0
  509. package/dist/types/sort.js.map +1 -0
  510. package/dist/types/spatial.d.ts +19 -0
  511. package/dist/types/spatial.d.ts.map +1 -0
  512. package/dist/types/spatial.js +6 -0
  513. package/dist/types/spatial.js.map +1 -0
  514. package/dist/types/stats.d.ts +21 -0
  515. package/dist/types/stats.d.ts.map +1 -0
  516. package/dist/types/stats.js +6 -0
  517. package/dist/types/stats.js.map +1 -0
  518. package/dist/types/storage.d.ts +19 -0
  519. package/dist/types/storage.d.ts.map +1 -0
  520. package/dist/types/storage.js +6 -0
  521. package/dist/types/storage.js.map +1 -0
  522. package/dist/types/tasks.d.ts +14 -0
  523. package/dist/types/tasks.d.ts.map +1 -0
  524. package/dist/types/tasks.js +6 -0
  525. package/dist/types/tasks.js.map +1 -0
  526. package/dist/types/utils.d.ts +54 -0
  527. package/dist/types/utils.d.ts.map +1 -0
  528. package/dist/types/utils.js +6 -0
  529. package/dist/types/utils.js.map +1 -0
  530. package/dist/types/workflow.d.ts +17 -0
  531. package/dist/types/workflow.d.ts.map +1 -0
  532. package/dist/types/workflow.js +6 -0
  533. package/dist/types/workflow.js.map +1 -0
  534. package/dist/utils/aggregationUtils.d.ts +192 -0
  535. package/dist/utils/aggregationUtils.d.ts.map +1 -0
  536. package/dist/utils/aggregationUtils.js +450 -0
  537. package/dist/utils/aggregationUtils.js.map +1 -0
  538. package/dist/utils/auth.d.ts +93 -0
  539. package/dist/utils/auth.d.ts.map +1 -0
  540. package/dist/utils/auth.js +557 -0
  541. package/dist/utils/auth.js.map +1 -0
  542. package/dist/utils/cache.d.ts +64 -0
  543. package/dist/utils/cache.d.ts.map +1 -0
  544. package/dist/utils/cache.js +464 -0
  545. package/dist/utils/cache.js.map +1 -0
  546. package/dist/utils/common.d.ts +53 -0
  547. package/dist/utils/common.d.ts.map +1 -0
  548. package/dist/utils/common.js +162 -0
  549. package/dist/utils/common.js.map +1 -0
  550. package/dist/utils/db.d.ts +101 -0
  551. package/dist/utils/db.d.ts.map +1 -0
  552. package/dist/utils/db.js +413 -0
  553. package/dist/utils/db.js.map +1 -0
  554. package/dist/utils/dirname.d.ts +30 -0
  555. package/dist/utils/dirname.d.ts.map +1 -0
  556. package/dist/utils/dirname.js +95 -0
  557. package/dist/utils/dirname.js.map +1 -0
  558. package/dist/utils/dynamicVariableResolver.d.ts +17 -0
  559. package/dist/utils/dynamicVariableResolver.d.ts.map +1 -0
  560. package/dist/utils/dynamicVariableResolver.js +262 -0
  561. package/dist/utils/dynamicVariableResolver.js.map +1 -0
  562. package/dist/utils/env.d.ts +38 -0
  563. package/dist/utils/env.d.ts.map +1 -0
  564. package/dist/utils/env.js +80 -0
  565. package/dist/utils/env.js.map +1 -0
  566. package/dist/utils/errorHandler.d.ts +14 -0
  567. package/dist/utils/errorHandler.d.ts.map +1 -0
  568. package/dist/utils/errorHandler.js +79 -0
  569. package/dist/utils/errorHandler.js.map +1 -0
  570. package/dist/utils/fieldExpansion.d.ts +30 -0
  571. package/dist/utils/fieldExpansion.d.ts.map +1 -0
  572. package/dist/utils/fieldExpansion.js +145 -0
  573. package/dist/utils/fieldExpansion.js.map +1 -0
  574. package/dist/utils/fieldUtils.d.ts +179 -0
  575. package/dist/utils/fieldUtils.d.ts.map +1 -0
  576. package/dist/utils/fieldUtils.js +424 -0
  577. package/dist/utils/fieldUtils.js.map +1 -0
  578. package/dist/utils/filterOperators.d.ts +472 -0
  579. package/dist/utils/filterOperators.d.ts.map +1 -0
  580. package/dist/utils/filterOperators.js +1229 -0
  581. package/dist/utils/filterOperators.js.map +1 -0
  582. package/dist/utils/importUtils.d.ts +127 -0
  583. package/dist/utils/importUtils.d.ts.map +1 -0
  584. package/dist/utils/importUtils.js +437 -0
  585. package/dist/utils/importUtils.js.map +1 -0
  586. package/dist/utils/index.d.ts +75 -0
  587. package/dist/utils/index.d.ts.map +1 -0
  588. package/dist/utils/index.js +101 -0
  589. package/dist/utils/index.js.map +1 -0
  590. package/dist/utils/logger.d.ts +41 -0
  591. package/dist/utils/logger.d.ts.map +1 -0
  592. package/dist/utils/logger.js +217 -0
  593. package/dist/utils/logger.js.map +1 -0
  594. package/dist/utils/orderUtils.d.ts +117 -0
  595. package/dist/utils/orderUtils.d.ts.map +1 -0
  596. package/dist/utils/orderUtils.js +249 -0
  597. package/dist/utils/orderUtils.js.map +1 -0
  598. package/dist/utils/queryBuilder.d.ts +118 -0
  599. package/dist/utils/queryBuilder.d.ts.map +1 -0
  600. package/dist/utils/queryBuilder.js +489 -0
  601. package/dist/utils/queryBuilder.js.map +1 -0
  602. package/dist/utils/relationLoader.d.ts +65 -0
  603. package/dist/utils/relationLoader.d.ts.map +1 -0
  604. package/dist/utils/relationLoader.js +1081 -0
  605. package/dist/utils/relationLoader.js.map +1 -0
  606. package/dist/utils/relationPathResolver.d.ts +30 -0
  607. package/dist/utils/relationPathResolver.d.ts.map +1 -0
  608. package/dist/utils/relationPathResolver.js +173 -0
  609. package/dist/utils/relationPathResolver.js.map +1 -0
  610. package/dist/utils/relationUtils.d.ts +139 -0
  611. package/dist/utils/relationUtils.d.ts.map +1 -0
  612. package/dist/utils/relationUtils.js +711 -0
  613. package/dist/utils/relationUtils.js.map +1 -0
  614. package/dist/utils/router.d.ts +6 -0
  615. package/dist/utils/router.d.ts.map +1 -0
  616. package/dist/utils/router.js +95 -0
  617. package/dist/utils/router.js.map +1 -0
  618. package/dist/utils/schema.d.ts +88 -0
  619. package/dist/utils/schema.d.ts.map +1 -0
  620. package/dist/utils/schema.js +24 -0
  621. package/dist/utils/schema.js.map +1 -0
  622. package/dist/utils/schemaManager.d.ts +238 -0
  623. package/dist/utils/schemaManager.d.ts.map +1 -0
  624. package/dist/utils/schemaManager.js +1992 -0
  625. package/dist/utils/schemaManager.js.map +1 -0
  626. package/dist/utils/schemaValidator.d.ts +83 -0
  627. package/dist/utils/schemaValidator.d.ts.map +1 -0
  628. package/dist/utils/schemaValidator.js +491 -0
  629. package/dist/utils/schemaValidator.js.map +1 -0
  630. package/dist/utils/seed.d.ts +45 -0
  631. package/dist/utils/seed.d.ts.map +1 -0
  632. package/dist/utils/seed.js +248 -0
  633. package/dist/utils/seed.js.map +1 -0
  634. package/dist/utils/sessionCleanup.d.ts +10 -0
  635. package/dist/utils/sessionCleanup.d.ts.map +1 -0
  636. package/dist/utils/sessionCleanup.js +49 -0
  637. package/dist/utils/sessionCleanup.js.map +1 -0
  638. package/dist/utils/sortUtils.d.ts +117 -0
  639. package/dist/utils/sortUtils.d.ts.map +1 -0
  640. package/dist/utils/sortUtils.js +232 -0
  641. package/dist/utils/sortUtils.js.map +1 -0
  642. package/dist/utils/spatialUtils.d.ts +244 -0
  643. package/dist/utils/spatialUtils.d.ts.map +1 -0
  644. package/dist/utils/spatialUtils.js +359 -0
  645. package/dist/utils/spatialUtils.js.map +1 -0
  646. package/dist/utils/systemschema.d.ts +11040 -0
  647. package/dist/utils/systemschema.d.ts.map +1 -0
  648. package/dist/utils/systemschema.js +1777 -0
  649. package/dist/utils/systemschema.js.map +1 -0
  650. package/dist/utils/tenantUtils.d.ts +34 -0
  651. package/dist/utils/tenantUtils.d.ts.map +1 -0
  652. package/dist/utils/tenantUtils.js +124 -0
  653. package/dist/utils/tenantUtils.js.map +1 -0
  654. package/dist/utils/typeMapper.d.ts +25 -0
  655. package/dist/utils/typeMapper.d.ts.map +1 -0
  656. package/dist/utils/typeMapper.js +282 -0
  657. package/dist/utils/typeMapper.js.map +1 -0
  658. package/dist/utils/valueValidator.d.ts +60 -0
  659. package/dist/utils/valueValidator.d.ts.map +1 -0
  660. package/dist/utils/valueValidator.js +303 -0
  661. package/dist/utils/valueValidator.js.map +1 -0
  662. package/dist/utils/workflow.d.ts +87 -0
  663. package/dist/utils/workflow.d.ts.map +1 -0
  664. package/dist/utils/workflow.js +205 -0
  665. package/dist/utils/workflow.js.map +1 -0
  666. package/package.json +115 -0
@@ -0,0 +1,489 @@
1
+ /**
2
+ * Query Builder Module for Drizzle ORM
3
+ *
4
+ * This module provides query building utilities that convert Sequelize-style
5
+ * filter/where objects into Drizzle ORM where conditions.
6
+ *
7
+ * Features:
8
+ * - Convert filter objects to Drizzle where conditions
9
+ * - Support AND/OR logical operators
10
+ * - Handle nested conditions and relations
11
+ * - Column qualification for joins
12
+ * - Type casting support
13
+ * - Pagination helpers
14
+ *
15
+ * RELATION PATH FILTERING:
16
+ * - Relation path filters (e.g., "userRoles.role.name") ARE NOW SUPPORTED
17
+ * 1. Parses relation paths into segments
18
+ * 2. Recursively resolves each segment by looking up relation metadata
19
+ * 3. Builds LEFT JOIN clauses dynamically
20
+ * 4. Returns the final column reference for the WHERE clause
21
+ *
22
+ * Example usage:
23
+ * conditions: {
24
+ * "userRoles.role.name": { in: ["admin", "user"] },
25
+ * "author.company.name": { eq: "ACME" }
26
+ * }
27
+ *
28
+ * The query builder will automatically generate the necessary JOINs:
29
+ * LEFT JOIN userRoles_... ON ...
30
+ * LEFT JOIN roles_... ON ...
31
+ * LEFT JOIN companies_... ON ...
32
+ *
33
+ * Joins are accumulated in ctx.joins array and must be applied by the caller.
34
+ *
35
+ * NOTES:
36
+ * - Currently supports BelongsTo, HasMany, and HasOne relations
37
+ * - BelongsToMany (many-to-many) uses simplified join (needs junction table support)
38
+ * - Coordination with the two-query approach for HasMany sorting is handled by the caller
39
+ */
40
+ import { and, or, sql } from 'drizzle-orm';
41
+ import { applyOperator, OPERATOR_MAP } from './filterOperators.js';
42
+ import { resolveRelationPath, isRelationPath } from './relationPathResolver.js';
43
+ /**
44
+ * Check if a key represents a column name
45
+ * Supports both $column$ format and plain column format
46
+ */
47
+ function isColumnKey(key) {
48
+ // Check for $column$ format
49
+ if (key.startsWith('$') && key.endsWith('$')) {
50
+ return true;
51
+ }
52
+ // Check if it's not a logical operator or special key
53
+ const reservedKeys = ['AND', 'OR', 'cast'];
54
+ if (reservedKeys.includes(key)) {
55
+ return false;
56
+ }
57
+ // Check if key is an operator name
58
+ if (key in OPERATOR_MAP) {
59
+ return false;
60
+ }
61
+ return true;
62
+ }
63
+ /**
64
+ * Extract column name from key (with or without $ delimiters)
65
+ */
66
+ function extractColumnName(key) {
67
+ if (key.startsWith('$') && key.endsWith('$')) {
68
+ return key.slice(1, -1); // Remove $ from start and end
69
+ }
70
+ return key;
71
+ }
72
+ /**
73
+ * Get qualified field name for SQL
74
+ * Handles both direct fields and relational paths
75
+ */
76
+ function getQualifiedField(field, ctx) {
77
+ const rawField = extractColumnName(field);
78
+ if (ctx.tableName && !rawField.includes('.')) {
79
+ // Special handling for ID field
80
+ if (rawField === 'id') {
81
+ return `${ctx.tableName}.id`;
82
+ }
83
+ return `${ctx.tableName}.${rawField}`;
84
+ }
85
+ return rawField;
86
+ }
87
+ /**
88
+ * Get column from schema
89
+ *
90
+ * NOTE: This function only works for direct columns on the main table.
91
+ * For relation paths like "userRoles.role.name", it will return null
92
+ * because the field doesn't exist in the main table's schema.
93
+ * See KNOWN LIMITATIONS in the module header for details.
94
+ */
95
+ function getColumn(fieldName, ctx) {
96
+ if (!ctx.schema)
97
+ return null;
98
+ const cleanField = extractColumnName(fieldName);
99
+ const column = ctx.schema[cleanField];
100
+ return column || null;
101
+ }
102
+ /**
103
+ * Process a single condition (field with operators)
104
+ */
105
+ function processFieldCondition(fieldName, value, ctx) {
106
+ const cleanFieldName = extractColumnName(fieldName);
107
+ // Check if this is a relation path (contains dots)
108
+ if (isRelationPath(cleanFieldName) && ctx.table && ctx.tableName) {
109
+ // Resolve the relation path to get joins and final column
110
+ const resolved = resolveRelationPath(cleanFieldName, ctx.table, ctx.tableName, undefined, ctx.forPermissionCheck);
111
+ // Add the joins to the context
112
+ if (ctx.joins && resolved.joins.length > 0) {
113
+ ctx.joins.push(...resolved.joins);
114
+ }
115
+ // If we couldn't resolve the column, skip this condition
116
+ if (!resolved.column && !resolved.columnPath) {
117
+ console.warn(`[queryBuilder] Could not resolve relation path: ${cleanFieldName}`);
118
+ return null;
119
+ }
120
+ // Use the resolved column from aliased table
121
+ // use Drizzle column reference, not raw SQL
122
+ // Simple equality if value is primitive
123
+ if (typeof value !== 'object' || value === null || value instanceof Date || Array.isArray(value)) {
124
+ return applyOperator('eq', {
125
+ column: resolved.column,
126
+ fieldName: resolved.columnPath,
127
+ // Pass a dummy tableName to trigger raw SQL path for relation filters
128
+ // This is needed to bypass Drizzle's type mappers for date values
129
+ tableName: 'relation',
130
+ schemaTable: resolved.finalTable
131
+ }, value);
132
+ }
133
+ // Extract cast type if present
134
+ const castType = value.cast;
135
+ // Process each operator in the value object
136
+ const conditions = [];
137
+ for (const [operatorName, operatorValue] of Object.entries(value)) {
138
+ if (operatorName === 'cast')
139
+ continue; // Skip cast property
140
+ const condition = applyOperator(operatorName, {
141
+ column: resolved.column,
142
+ fieldName: resolved.columnPath,
143
+ // Pass a dummy tableName to trigger raw SQL path for relation filters
144
+ // This is needed to bypass Drizzle's type mappers for date values
145
+ tableName: 'relation',
146
+ schemaTable: resolved.finalTable
147
+ }, operatorValue, castType);
148
+ if (condition) {
149
+ conditions.push(condition);
150
+ }
151
+ }
152
+ // Combine multiple operators on same field with AND
153
+ if (conditions.length === 0)
154
+ return null;
155
+ if (conditions.length === 1)
156
+ return conditions[0];
157
+ return and(...conditions) || null;
158
+ }
159
+ // Not a relation path - handle as direct column
160
+ const qualifiedField = getQualifiedField(fieldName, ctx);
161
+ const column = getColumn(fieldName, ctx);
162
+ if (!column) {
163
+ // Only warn if we have a schema to check against
164
+ if (ctx.schema) {
165
+ const availableColumns = Object.keys(ctx.schema).filter(k => !k.startsWith('_'));
166
+ console.warn(`Column not found for field: ${fieldName}. Available columns: ${availableColumns.slice(0, 10).join(', ')}${availableColumns.length > 10 ? '...' : ''}`);
167
+ }
168
+ else {
169
+ console.warn(`Column not found for field: ${fieldName} (no schema provided)`);
170
+ }
171
+ return null;
172
+ }
173
+ // Simple equality if value is primitive
174
+ if (typeof value !== 'object' || value === null || value instanceof Date || Array.isArray(value)) {
175
+ // Direct value - use equality
176
+ const operatorCtx = {
177
+ column,
178
+ fieldName: qualifiedField,
179
+ tableName: ctx.tableName,
180
+ schemaTable: ctx.table
181
+ };
182
+ return applyOperator('eq', operatorCtx, value);
183
+ }
184
+ // Extract cast type if present
185
+ const castType = value.cast;
186
+ // Process each operator in the value object
187
+ const conditions = [];
188
+ for (const [operatorName, operatorValue] of Object.entries(value)) {
189
+ if (operatorName === 'cast')
190
+ continue; // Skip cast property
191
+ const operatorCtx = {
192
+ column,
193
+ fieldName: qualifiedField,
194
+ tableName: ctx.tableName,
195
+ schemaTable: ctx.table
196
+ };
197
+ // Get element type for array operators if available
198
+ let elementType;
199
+ if ((operatorName === 'arraycontains' || operatorName === 'arraycontained') && ctx.schemaDefinition) {
200
+ // Try to extract array element type from schema definition
201
+ const fieldDef = ctx.schemaDefinition?.fields?.[fieldName];
202
+ if (fieldDef?.elementType) {
203
+ elementType = fieldDef.elementType;
204
+ }
205
+ }
206
+ const condition = applyOperator(operatorName, operatorCtx, operatorValue, castType, elementType);
207
+ if (condition) {
208
+ conditions.push(condition);
209
+ }
210
+ }
211
+ // Combine multiple operators on same field with AND
212
+ if (conditions.length === 0)
213
+ return null;
214
+ if (conditions.length === 1)
215
+ return conditions[0];
216
+ return and(...conditions) || null;
217
+ }
218
+ /**
219
+ * Process a single condition object recursively
220
+ */
221
+ function processCondition(condition, ctx) {
222
+ // Handle AND operator
223
+ if (condition.AND) {
224
+ const subConditions = condition.AND
225
+ .map(c => processCondition(c, ctx))
226
+ .filter((c) => c !== null);
227
+ if (subConditions.length === 0)
228
+ return null;
229
+ if (subConditions.length === 1)
230
+ return subConditions[0];
231
+ return and(...subConditions) || null;
232
+ }
233
+ // Handle OR operator
234
+ if (condition.OR) {
235
+ const subConditions = condition.OR
236
+ .map(c => processCondition(c, ctx))
237
+ .filter((c) => c !== null);
238
+ if (subConditions.length === 0)
239
+ return null;
240
+ if (subConditions.length === 1)
241
+ return subConditions[0];
242
+ return or(...subConditions) || null;
243
+ }
244
+ // Process field conditions
245
+ const fieldConditions = [];
246
+ for (const [key, value] of Object.entries(condition)) {
247
+ if (isColumnKey(key)) {
248
+ // It's a field condition
249
+ const fieldCondition = processFieldCondition(key, value, ctx);
250
+ if (fieldCondition) {
251
+ fieldConditions.push(fieldCondition);
252
+ }
253
+ }
254
+ else if (key === 'AND' || key === 'OR') {
255
+ // Already handled above
256
+ continue;
257
+ }
258
+ else {
259
+ // Unknown key, log warning
260
+ console.warn(`Unknown filter key: ${key}`);
261
+ }
262
+ }
263
+ // Combine all field conditions with AND
264
+ if (fieldConditions.length === 0)
265
+ return null;
266
+ if (fieldConditions.length === 1)
267
+ return fieldConditions[0];
268
+ return and(...fieldConditions) || null;
269
+ }
270
+ /**
271
+ * Main function: Convert Sequelize-style filter to Drizzle where condition
272
+ *
273
+ * @param filter - Filter object (Sequelize-style)
274
+ * @param ctx - Query context with table schema information
275
+ * @returns Drizzle SQL where condition
276
+ *
277
+ * @example
278
+ * ```typescript
279
+ * const filter = {
280
+ * age: { gt: 18 },
281
+ * status: { in: ['active', 'pending'] }
282
+ * };
283
+ *
284
+ * const where = drizzleWhere(filter, {
285
+ * table: usersTable,
286
+ * tableName: 'users',
287
+ * schema: usersTable
288
+ * });
289
+ *
290
+ * // Use in query:
291
+ * const results = await db.select().from(usersTable).where(where);
292
+ * ```
293
+ */
294
+ export function drizzleWhere(filter, ctx) {
295
+ if (!filter || Object.keys(filter).length === 0) {
296
+ return undefined;
297
+ }
298
+ const condition = processCondition(filter, ctx);
299
+ return condition || undefined;
300
+ }
301
+ /**
302
+ * Extract field paths from relational conditions
303
+ * Used to determine which relations need to be included/joined
304
+ */
305
+ export function extractFieldPathsFromRelConditions(relConditions) {
306
+ const fieldPaths = new Set();
307
+ const joinPaths = new Set();
308
+ function processRecursive(conditions, prefix = '') {
309
+ if (!conditions || typeof conditions !== 'object')
310
+ return;
311
+ for (const [key, value] of Object.entries(conditions)) {
312
+ if (isColumnKey(key)) {
313
+ // It's a field condition
314
+ const fieldName = extractColumnName(key);
315
+ const fieldPath = prefix ? `${prefix}.${fieldName}` : fieldName;
316
+ fieldPaths.add(fieldPath);
317
+ // Add parent path for joins
318
+ if (prefix) {
319
+ joinPaths.add(prefix);
320
+ }
321
+ }
322
+ else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
323
+ // It's a nested relation or object with operators
324
+ const nestedPrefix = prefix ? `${prefix}.${key}` : key;
325
+ // Add this path to join paths
326
+ if (nestedPrefix) {
327
+ joinPaths.add(nestedPrefix);
328
+ }
329
+ // Check if this level contains field conditions
330
+ const hasFieldConditions = Object.keys(value).some((k) => isColumnKey(k));
331
+ if (hasFieldConditions) {
332
+ for (const [innerKey] of Object.entries(value)) {
333
+ if (isColumnKey(innerKey)) {
334
+ const fieldName = extractColumnName(innerKey);
335
+ const fieldPath = nestedPrefix ? `${nestedPrefix}.${fieldName}` : fieldName;
336
+ fieldPaths.add(fieldPath);
337
+ }
338
+ }
339
+ }
340
+ // Continue processing nested relations
341
+ processRecursive(value, nestedPrefix);
342
+ }
343
+ else if (Array.isArray(value)) {
344
+ // Handle arrays of conditions (e.g., AND, OR)
345
+ value.forEach((item) => processRecursive(item, prefix));
346
+ }
347
+ }
348
+ }
349
+ processRecursive(relConditions);
350
+ return Array.from(fieldPaths);
351
+ }
352
+ /**
353
+ * Combine multiple filters with AND logic
354
+ * Returns empty object instead of undefined for better type safety
355
+ */
356
+ export function combineFilters(...filters) {
357
+ const validFilters = filters.filter((f) => f !== null && f !== undefined && Object.keys(f).length > 0);
358
+ if (validFilters.length === 0)
359
+ return {};
360
+ if (validFilters.length === 1)
361
+ return validFilters[0];
362
+ return { AND: validFilters };
363
+ }
364
+ /**
365
+ * Apply pagination to query
366
+ * Supports both limit/offset and page/pageSize styles
367
+ * When page is provided with limit, uses limit as pageSize and calculates offset
368
+ */
369
+ export function applyPagination(options) {
370
+ // If page is provided, calculate offset based on page number
371
+ // Use limit or pageSize as the page size
372
+ if (options.page !== undefined) {
373
+ const page = Math.max(1, options.page);
374
+ const pageSize = options.limit ?? options.pageSize ?? 10;
375
+ return {
376
+ limit: pageSize,
377
+ offset: (page - 1) * pageSize
378
+ };
379
+ }
380
+ // Direct limit/offset style (no page number)
381
+ if (options.limit !== undefined || options.offset !== undefined) {
382
+ return {
383
+ limit: options.limit,
384
+ offset: options.offset || 0
385
+ };
386
+ }
387
+ return {};
388
+ }
389
+ /**
390
+ * Calculate pagination metadata
391
+ */
392
+ export function calculatePaginationMetadata(total, options) {
393
+ const page = options.page || 1;
394
+ const pageSize = options.pageSize || options.limit || 10;
395
+ const pageCount = Math.ceil(total / pageSize);
396
+ return {
397
+ total,
398
+ page,
399
+ pageSize,
400
+ pageCount,
401
+ hasNextPage: page < pageCount,
402
+ hasPreviousPage: page > 1
403
+ };
404
+ }
405
+ /**
406
+ * Helper to build WHERE clause from multiple filter sources
407
+ * Useful for combining base filters, user filters, tenant filters, etc.
408
+ */
409
+ export function buildWhereClause(ctx, ...filters) {
410
+ const combined = combineFilters(...filters);
411
+ return drizzleWhere(combined, ctx);
412
+ }
413
+ /**
414
+ * Extract all field names from a filter object
415
+ * Useful for permission validation
416
+ */
417
+ export function extractFieldNamesFromFilter(filter) {
418
+ const fields = new Set();
419
+ function extract(obj) {
420
+ if (!obj || typeof obj !== 'object')
421
+ return;
422
+ for (const [key, value] of Object.entries(obj)) {
423
+ if (isColumnKey(key)) {
424
+ fields.add(extractColumnName(key));
425
+ }
426
+ else if (key === 'AND' || key === 'OR') {
427
+ if (Array.isArray(value)) {
428
+ value.forEach(extract);
429
+ }
430
+ }
431
+ else if (typeof value === 'object') {
432
+ extract(value);
433
+ }
434
+ }
435
+ }
436
+ extract(filter);
437
+ return Array.from(fields);
438
+ }
439
+ /**
440
+ * Apply PostgreSQL full-text search to a query
441
+ * Matches Sequelize implementation for compatibility
442
+ *
443
+ * @param tableName - Name of the table being searched
444
+ * @param tableColumns - Column definitions from the table schema
445
+ * @param searchQuery - The search string
446
+ * @param searchFields - Fields to search in (optional, defaults to string fields)
447
+ * @param sortByRelevance - Whether to sort by relevance score
448
+ * @returns SQL condition for full-text search and optional order clause
449
+ */
450
+ export function applyFullTextSearch(tableName, tableColumns, searchQuery, searchFields, sortByRelevance = false) {
451
+ let searchableFields = searchFields;
452
+ if (!searchableFields || searchableFields.length === 0) {
453
+ // If searchFields not provided, use string fields
454
+ // This matches Sequelize behavior which uses STRING and UUID fields
455
+ searchableFields = Object.keys(tableColumns).filter((field) => {
456
+ const column = tableColumns[field];
457
+ // Check if it's a text/string type column
458
+ // In Drizzle, we can check the dataType or columnType
459
+ const columnType = column.dataType || column.columnType || '';
460
+ return (columnType.includes('varchar') ||
461
+ columnType.includes('text') ||
462
+ columnType.includes('char') ||
463
+ columnType.includes('uuid'));
464
+ });
465
+ // If no string fields found, default to all fields
466
+ if (searchableFields.length === 0) {
467
+ searchableFields = Object.keys(tableColumns);
468
+ }
469
+ }
470
+ // Create concatenated string of all searchable fields with proper table qualification
471
+ // Use sql template instead of sql.raw for COALESCE expressions
472
+ const concatParts = searchableFields.map((field) => sql `COALESCE(${sql.raw(`"${tableName}"."${field}"`)}::text, '')`);
473
+ // Build the concatenation using sql.join()
474
+ const concatExpr = sql.join(concatParts, sql ` || ' ' || `);
475
+ // Prepare the full-text search query with proper escaping
476
+ // Replace spaces with :* & to match partial words
477
+ const tsQuery = searchQuery.trim().replace(/\s+/g, ':* & ') + ':*';
478
+ // Escape single quotes to prevent SQL injection
479
+ const escapedTsQuery = tsQuery.replace(/'/g, "''");
480
+ // Build the full-text search condition using parameterized values
481
+ const searchCondition = sql `to_tsvector('english', ${concatExpr}) @@ to_tsquery('english', ${escapedTsQuery})`;
482
+ let orderClause;
483
+ // Apply sorting by relevance using ts_rank if sortByRelevance is true
484
+ if (sortByRelevance) {
485
+ orderClause = sql `ts_rank(to_tsvector('english', ${concatExpr}), to_tsquery('english', ${escapedTsQuery})) DESC`;
486
+ }
487
+ return { searchCondition, orderClause };
488
+ }
489
+ //# sourceMappingURL=queryBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder.js","sourceRoot":"","sources":["../../baasix/utils/queryBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Relation Loader Module for Drizzle ORM
3
+ *
4
+ * This module provides utilities for building joins and loading related data
5
+ * in Drizzle ORM, matching Sequelize's include/association behavior.
6
+ *
7
+ * Features:
8
+ * - BelongsTo join building
9
+ * - HasOne join building
10
+ * - HasMany separate query loading
11
+ * - BelongsToMany (M2M) through junction tables
12
+ * - M2A polymorphic relations
13
+ * - Nested relation loading (include.include)
14
+ * - Relation filtering and ordering
15
+ */
16
+ import { SQL } from 'drizzle-orm';
17
+ import { PgTable } from 'drizzle-orm/pg-core';
18
+ import type { ProcessedInclude, ExpandedFieldsResult } from '../types/index.js';
19
+ export declare function expandFieldsWithIncludes(fields: string[], tableName: string): ExpandedFieldsResult;
20
+ /**
21
+ * Build LEFT JOIN clause for includes
22
+ * Only for BelongsTo and HasOne relations
23
+ * HasMany will use separate queries
24
+ */
25
+ export declare function buildJoinsForIncludes(includes: ProcessedInclude[]): SQL[];
26
+ /**
27
+ * Load HasMany relations with separate queries
28
+ * This is more efficient than joining for one-to-many relations
29
+ */
30
+ export declare function loadHasManyRelations(db: any, mainRecords: any[], includes: ProcessedInclude[], sourceTableName: string): Promise<any[]>;
31
+ /**
32
+ * Load M2A (polymorphic) relations with junction table
33
+ */
34
+ export declare function loadM2ARelations(db: any, mainRecords: any[], includes: ProcessedInclude[], sourceTableName: string): Promise<any[]>;
35
+ /**
36
+ * Load BelongsToMany (M2M) relations with junction table
37
+ */
38
+ export declare function loadBelongsToManyRelations(db: any, mainRecords: any[], includes: ProcessedInclude[], sourceTableName: string): Promise<any[]>;
39
+ /**
40
+ * Load all separate-query relations (HasMany, BelongsToMany)
41
+ */
42
+ /**
43
+ * Nest flattened BelongsTo/HasOne relation data from JOINs
44
+ * Converts { "category.name": "Electronics", "category.id": "123" }
45
+ * to { category: { name: "Electronics", id: "123" } }
46
+ */
47
+ export declare function nestJoinedRelations(records: any[], includes: ProcessedInclude[], parentPath?: string): any[];
48
+ export declare function loadSeparateRelations(db: any, mainRecords: any[], includes: ProcessedInclude[], sourceTableName: string): Promise<any[]>;
49
+ /**
50
+ * Build complete select with joins
51
+ * Returns SELECT columns and JOIN clauses
52
+ */
53
+ export declare function buildSelectWithJoins(mainTable: PgTable, directFields: string[], includes: ProcessedInclude[]): {
54
+ selectColumns: Record<string, any>;
55
+ joins: SQL[];
56
+ };
57
+ /**
58
+ * Utility: Check if any include requires separate query
59
+ */
60
+ export declare function hasSeparateQueries(includes: ProcessedInclude[]): boolean;
61
+ /**
62
+ * Utility: Get all relation names from includes (flat list)
63
+ */
64
+ export declare function getRelationNames(includes: ProcessedInclude[]): string[];
65
+ //# sourceMappingURL=relationLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationLoader.d.ts","sourceRoot":"","sources":["../../baasix/utils/relationLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,GAAG,EAAwB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AAK/D,OAAO,KAAK,EAGV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AA4F3B,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,GAChB,oBAAoB,CA4GtB;AAuND;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,GAAG,EAAE,CAgCzE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,GAAG,EACP,WAAW,EAAE,GAAG,EAAE,EAClB,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,GAAG,EAAE,CAAC,CAwLhB;AAiJD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,GAAG,EACP,WAAW,EAAE,GAAG,EAAE,EAClB,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,GAAG,EAAE,CAAC,CA8JhB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,GAAG,EACP,WAAW,EAAE,GAAG,EAAE,EAClB,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,GAAG,EAAE,CAAC,CAiHhB;AAED;;GAEG;AACH;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,GAAG,EAAE,EACd,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,UAAU,GAAE,MAAW,GACtB,GAAG,EAAE,CAoDP;AAED,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,GAAG,EACP,WAAW,EAAE,GAAG,EAAE,EAClB,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,GAAG,EAAE,CAAC,CAchB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,gBAAgB,EAAE,GAC3B;IACD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,KAAK,EAAE,GAAG,EAAE,CAAC;CACd,CAgDA;AAkCD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAQxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAYvE"}