@ozdao/martyrs 0.2.470 → 0.2.472

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 (284) hide show
  1. package/dist/{Media-CR0V1zvB.js → Media-DW8RLbfM.js} +1 -1
  2. package/dist/{Media-C4Ges_Sd.mjs → Media-y_TX6us_.mjs} +1 -1
  3. package/dist/_virtual/index.cjs +1 -1
  4. package/dist/_virtual/index.js +1 -1
  5. package/dist/auth.server.js +1 -1
  6. package/dist/auth.server.mjs +1 -1
  7. package/dist/chats.server.js +1 -1
  8. package/dist/chats.server.mjs +1 -1
  9. package/dist/community.server.js +1 -1
  10. package/dist/community.server.mjs +1 -1
  11. package/dist/events.server.js +1 -1
  12. package/dist/events.server.mjs +1 -1
  13. package/dist/files.server.js +1 -1
  14. package/dist/files.server.mjs +1 -1
  15. package/dist/gallery.server.js +1 -1
  16. package/dist/gallery.server.mjs +1 -1
  17. package/dist/{index-DQqZReAr.js → index-CVXl1rB5.js} +0 -1
  18. package/dist/{index-DICZTQ-1.mjs → index-Df8vtZx7.mjs} +0 -1
  19. package/dist/{main-CsZAG5Wz.js → main-CCfQH-Dd.js} +2 -2
  20. package/dist/{main-CTcal9qN.mjs → main-CgmHzhq5.mjs} +74 -74
  21. package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs +1 -1
  22. package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +1 -0
  23. package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js +1 -1
  24. package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
  25. package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +1 -0
  26. package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  27. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs +5 -0
  28. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs.map +1 -0
  29. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  30. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  31. package/dist/{node_modules/.pnpm/uuid@11.1.0 → martyrs}/node_modules/uuid/dist/esm-browser/rng.cjs +4 -4
  32. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.cjs.map +1 -0
  33. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
  34. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
  35. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs +17 -0
  36. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs.map +1 -0
  37. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
  38. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
  39. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs +13 -0
  40. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs.map +1 -0
  41. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
  42. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
  43. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs +8 -0
  44. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs.map +1 -0
  45. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  46. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  47. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
  48. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  50. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  51. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  52. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  53. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  54. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  55. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs +5 -5
  56. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs.map +1 -1
  57. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js +5 -5
  58. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js.map +1 -1
  59. package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
  60. package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
  61. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  62. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  63. package/dist/martyrs/src/components/Tree/Tree.vue.cjs +3 -1
  64. package/dist/martyrs/src/components/Tree/Tree.vue.cjs.map +1 -1
  65. package/dist/martyrs/src/components/Tree/Tree.vue.js +3 -1
  66. package/dist/martyrs/src/components/Tree/Tree.vue.js.map +1 -1
  67. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  75. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  79. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  81. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  83. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  85. package/dist/martyrs/src/modules/auth/views/store/auth.cjs +1 -0
  86. package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
  87. package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -0
  88. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  89. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
  91. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  93. package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +107 -21
  94. package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
  95. package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +107 -21
  96. package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
  97. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +10 -14
  98. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +12 -16
  100. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  103. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +7 -13
  104. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +7 -13
  106. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
  107. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +6 -7
  108. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +7 -8
  110. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  113. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  115. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  117. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
  118. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
  119. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
  120. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
  121. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  123. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  125. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  127. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  129. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +11 -5
  130. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  131. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +12 -6
  132. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +34 -13
  134. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +35 -14
  136. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +20 -9
  138. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  139. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +21 -10
  140. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  143. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  145. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -1
  146. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
  147. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -1
  148. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  149. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  151. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  153. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
  155. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  157. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  159. package/dist/martyrs.cjs.js +1 -1
  160. package/dist/martyrs.css +1 -1
  161. package/dist/martyrs.es.js +1 -1
  162. package/dist/notifications.server.js +35 -2
  163. package/dist/notifications.server.mjs +35 -2
  164. package/dist/orders.server.js +3 -3
  165. package/dist/orders.server.mjs +3 -3
  166. package/dist/organizations.server.js +1 -1
  167. package/dist/organizations.server.mjs +1 -1
  168. package/dist/products.server.js +78 -53
  169. package/dist/products.server.mjs +78 -53
  170. package/dist/rents.server.js +1 -1
  171. package/dist/rents.server.mjs +1 -1
  172. package/dist/style.css +37 -38
  173. package/dist/wallet.server.js +1 -1
  174. package/dist/wallet.server.mjs +1 -1
  175. package/package.json +2 -1
  176. package/src/components/Feed/Feed.vue +2 -7
  177. package/src/components/Skeleton/Skeleton.vue +4 -5
  178. package/src/components/Tree/Tree.vue +5 -2
  179. package/src/modules/auth/controllers/middlewares/authJwt.js +1 -1
  180. package/src/modules/auth/views/store/auth.js +2 -1
  181. package/src/modules/globals/controllers/classes/globals.crud.js +2 -2
  182. package/src/modules/globals/views/classes/globals.store.js +119 -31
  183. package/src/modules/globals/views/components/partials/Navigation.vue +11 -10
  184. package/src/modules/globals/views/utils/vue-app-renderer.js +7 -16
  185. package/src/modules/icons/entities/IconMusic.vue +14 -0
  186. package/src/modules/icons/navigation/IconCheck.vue +31 -0
  187. package/src/modules/icons/navigation/IconHeart.vue +26 -0
  188. package/src/modules/icons/navigation/IconPause.vue +31 -0
  189. package/src/modules/icons/navigation/IconPlay.vue +17 -0
  190. package/src/modules/icons/navigation/IconRefresh.vue +31 -0
  191. package/src/modules/icons/navigation/IconShuffle.vue +31 -0
  192. package/src/modules/icons/navigation/IconVolume.vue +31 -0
  193. package/src/modules/music/components/SidebarMusic.vue +156 -0
  194. package/src/modules/music/components/cards/AlbumCard.vue +107 -0
  195. package/src/modules/music/components/cards/ArtistCard.vue +37 -0
  196. package/src/modules/music/components/cards/PlaylistCard.vue +100 -0
  197. package/src/modules/music/components/cards/TrackCard.vue +86 -0
  198. package/src/modules/music/components/forms/PlaylistForm.vue +156 -0
  199. package/src/modules/music/components/forms/SearchForm.vue +82 -0
  200. package/src/modules/music/components/forms/UploadForm.vue +313 -0
  201. package/src/modules/music/components/layouts/MusicLayout.vue +137 -0
  202. package/src/modules/music/components/lists/AlbumList.vue +25 -0
  203. package/src/modules/music/components/lists/ArtistList.vue +25 -0
  204. package/src/modules/music/components/lists/PlaylistList.vue +25 -0
  205. package/src/modules/music/components/lists/TrackList.vue +175 -0
  206. package/src/modules/music/components/pages/AlbumDetail.vue +265 -0
  207. package/src/modules/music/components/pages/ArtistDetail.vue +247 -0
  208. package/src/modules/music/components/pages/MusicHome.vue +177 -0
  209. package/src/modules/music/components/pages/MusicLibrary.vue +192 -0
  210. package/src/modules/music/components/pages/MusicUpload.vue +44 -0
  211. package/src/modules/music/components/pages/PlaylistDetail.vue +504 -0
  212. package/src/modules/music/components/pages/SearchResults.vue +397 -0
  213. package/src/modules/music/components/pages/TrackDetail.vue +143 -0
  214. package/src/modules/music/components/player/MusicPlayer.vue +202 -0
  215. package/src/modules/music/components/player/TrackProgress.vue +110 -0
  216. package/src/modules/music/components/player/VolumeControl.vue +98 -0
  217. package/src/modules/music/controllers/album.controller.js +98 -0
  218. package/src/modules/music/controllers/artist.controller.js +111 -0
  219. package/src/modules/music/controllers/genre.controller.js +71 -0
  220. package/src/modules/music/controllers/music.controller.js +174 -0
  221. package/src/modules/music/controllers/playlist.controller.js +182 -0
  222. package/src/modules/music/controllers/search.controller.js +103 -0
  223. package/src/modules/music/controllers/stream.controller.js +106 -0
  224. package/src/modules/music/models/album.model.js +61 -0
  225. package/src/modules/music/models/artist.model.js +67 -0
  226. package/src/modules/music/models/genre.model.js +42 -0
  227. package/src/modules/music/models/play-history.model.js +51 -0
  228. package/src/modules/music/models/playlist.model.js +69 -0
  229. package/src/modules/music/models/track.model.js +94 -0
  230. package/src/modules/music/music.client.js +186 -0
  231. package/src/modules/music/music.server.js +114 -0
  232. package/src/modules/music/policies/music.policies.js +84 -0
  233. package/src/modules/music/router/music.js +77 -0
  234. package/src/modules/music/routes/album.routes.js +62 -0
  235. package/src/modules/music/routes/artist.routes.js +67 -0
  236. package/src/modules/music/routes/genre.routes.js +60 -0
  237. package/src/modules/music/routes/music.routes.js +145 -0
  238. package/src/modules/music/routes/playlist.routes.js +99 -0
  239. package/src/modules/music/routes/search.routes.js +10 -0
  240. package/src/modules/music/routes/stream.routes.js +38 -0
  241. package/src/modules/music/store/albums.js +200 -0
  242. package/src/modules/music/store/artists.js +180 -0
  243. package/src/modules/music/store/player.js +397 -0
  244. package/src/modules/music/store/playlists.js +211 -0
  245. package/src/modules/music/store/search.js +126 -0
  246. package/src/modules/music/store/tracks.js +230 -0
  247. package/src/modules/music/websocket/streaming.handler.js +151 -0
  248. package/src/modules/notifications/controllers/notifications.controller.js +44 -1
  249. package/src/modules/notifications/notifications.server.js +0 -1
  250. package/src/modules/notifications/routes/notifications.routes.js +3 -0
  251. package/src/modules/orders/components/pages/OrderCreate.vue +0 -2
  252. package/src/modules/products/components/blocks/CardCategory.vue +5 -4
  253. package/src/modules/products/components/pages/Categories.vue +38 -20
  254. package/src/modules/products/components/pages/CategoryEdit.vue +16 -7
  255. package/src/modules/products/components/pages/ProductEdit.vue +1 -0
  256. package/src/modules/products/controllers/categories.controller.js +155 -103
  257. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  258. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  259. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
  260. package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +0 -1
  261. package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +0 -1
  262. package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +0 -1
  263. package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  264. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs +0 -6
  265. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs.map +0 -1
  266. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
  267. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  268. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.cjs.map +0 -1
  269. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
  270. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
  271. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs +0 -11
  272. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs.map +0 -1
  273. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
  274. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
  275. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs +0 -21
  276. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs.map +0 -1
  277. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -21
  278. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
  279. /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.cjs +0 -0
  280. /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
  281. /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs +0 -0
  282. /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs.map +0 -0
  283. /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js +0 -0
  284. /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js.map +0 -0
@@ -1,4 +1,4 @@
1
- import { a as o, t, b as d, c as r, u as l, v as i, w as p, d as u, x as n, e as m, y as M, F as S, z as c, f as F, A as g, L as h, g as b, M as k, E as x, n as B, o as C, h as T, i as U, S as f, j as w, B as D, C as E, k as I, D as L, l as P, q, p as y, U as A, r as j, s as v, m as z } from "./main-CTcal9qN.mjs";
1
+ import { a as o, t, b as d, c as r, u as l, v as i, w as p, d as u, x as n, e as m, y as M, F as S, z as c, f as F, A as g, L as h, g as b, M as k, E as x, n as B, o as C, h as T, i as U, S as f, j as w, B as D, C as E, k as I, D as L, l as P, q, p as y, U as A, r as j, s as v, m as z } from "./main-CgmHzhq5.mjs";
2
2
  import "vue";
3
3
  export {
4
4
  o as Address,
@@ -412,6 +412,38 @@ function requireNotifications_controller() {
412
412
  return res.status(500).json({ message: err.message });
413
413
  }
414
414
  };
415
+ const markAllAsRead = async (req, res) => {
416
+ try {
417
+ const userId = req.params.userId;
418
+ const result = await db.notification.updateMany(
419
+ { userId, status: "unread" },
420
+ { status: "read", updatedAt: Date.now() }
421
+ );
422
+ const updatedNotifications = await db.notification.find({
423
+ userId,
424
+ status: "read",
425
+ updatedAt: { $gte: new Date(Date.now() - 1e4) }
426
+ // Get notifications updated in the last 10 seconds
427
+ });
428
+ const logPromises = updatedNotifications.map((notification) => {
429
+ return db.notificationLog.create({
430
+ notificationId: notification._id,
431
+ userId,
432
+ channelType: "web",
433
+ // Assuming web as default
434
+ status: "read",
435
+ readAt: Date.now()
436
+ });
437
+ });
438
+ await Promise.all(logPromises);
439
+ return res.json({
440
+ message: "All notifications marked as read",
441
+ count: result.modifiedCount
442
+ });
443
+ } catch (err) {
444
+ return res.status(500).json({ message: err.message });
445
+ }
446
+ };
415
447
  const registerDevice = async (req, res) => {
416
448
  try {
417
449
  const { userId, deviceId, deviceType, deviceToken } = req.body;
@@ -472,7 +504,8 @@ function requireNotifications_controller() {
472
504
  markAsRead,
473
505
  registerDevice,
474
506
  updatePreferences,
475
- getUserPreferences
507
+ getUserPreferences,
508
+ markAllAsRead
476
509
  };
477
510
  };
478
511
  notifications_controller = NotificationsController;
@@ -488,6 +521,7 @@ function requireNotifications_routes() {
488
521
  app.get("/api/notifications/user/:userId", controller.getUserNotifications);
489
522
  app.post("/api/notifications", controller.create);
490
523
  app.put("/api/notifications/:id/read", controller.markAsRead);
524
+ app.put("/api/notifications/user/:userId/read-all", controller.markAllAsRead);
491
525
  app.post("/api/notifications/devices/register", controller.registerDevice);
492
526
  app.get("/api/notifications/preferences/:userId", controller.getUserPreferences);
493
527
  app.put("/api/notifications/preferences", controller.updatePreferences);
@@ -589,7 +623,6 @@ function requireNotifications_server() {
589
623
  const NotificationService = requireNotification_service();
590
624
  const { getInstance } = globals_abac.requireGlobals_abac();
591
625
  function initializeNotifications(app, db, wss, origins, publicPath) {
592
- console.log("wss init is", wss);
593
626
  db.notification = NotificationModel(db);
594
627
  db.userDevice = UserDeviceModel(db);
595
628
  db.notificationPreference = NotificationPreferenceModel(db);
@@ -411,6 +411,38 @@ function requireNotifications_controller() {
411
411
  return res.status(500).json({ message: err.message });
412
412
  }
413
413
  };
414
+ const markAllAsRead = async (req, res) => {
415
+ try {
416
+ const userId = req.params.userId;
417
+ const result = await db.notification.updateMany(
418
+ { userId, status: "unread" },
419
+ { status: "read", updatedAt: Date.now() }
420
+ );
421
+ const updatedNotifications = await db.notification.find({
422
+ userId,
423
+ status: "read",
424
+ updatedAt: { $gte: new Date(Date.now() - 1e4) }
425
+ // Get notifications updated in the last 10 seconds
426
+ });
427
+ const logPromises = updatedNotifications.map((notification) => {
428
+ return db.notificationLog.create({
429
+ notificationId: notification._id,
430
+ userId,
431
+ channelType: "web",
432
+ // Assuming web as default
433
+ status: "read",
434
+ readAt: Date.now()
435
+ });
436
+ });
437
+ await Promise.all(logPromises);
438
+ return res.json({
439
+ message: "All notifications marked as read",
440
+ count: result.modifiedCount
441
+ });
442
+ } catch (err) {
443
+ return res.status(500).json({ message: err.message });
444
+ }
445
+ };
414
446
  const registerDevice = async (req, res) => {
415
447
  try {
416
448
  const { userId, deviceId, deviceType, deviceToken } = req.body;
@@ -471,7 +503,8 @@ function requireNotifications_controller() {
471
503
  markAsRead,
472
504
  registerDevice,
473
505
  updatePreferences,
474
- getUserPreferences
506
+ getUserPreferences,
507
+ markAllAsRead
475
508
  };
476
509
  };
477
510
  notifications_controller = NotificationsController;
@@ -487,6 +520,7 @@ function requireNotifications_routes() {
487
520
  app.get("/api/notifications/user/:userId", controller.getUserNotifications);
488
521
  app.post("/api/notifications", controller.create);
489
522
  app.put("/api/notifications/:id/read", controller.markAsRead);
523
+ app.put("/api/notifications/user/:userId/read-all", controller.markAllAsRead);
490
524
  app.post("/api/notifications/devices/register", controller.registerDevice);
491
525
  app.get("/api/notifications/preferences/:userId", controller.getUserPreferences);
492
526
  app.put("/api/notifications/preferences", controller.updatePreferences);
@@ -588,7 +622,6 @@ function requireNotifications_server() {
588
622
  const NotificationService = requireNotification_service();
589
623
  const { getInstance } = requireGlobals_abac();
590
624
  function initializeNotifications(app, db, wss, origins, publicPath) {
591
- console.log("wss init is", wss);
592
625
  db.notification = NotificationModel(db);
593
626
  db.userDevice = UserDeviceModel(db);
594
627
  db.notificationPreference = NotificationPreferenceModel(db);
@@ -5,7 +5,7 @@ const profile_schema = require("./profile.schema-h61hhB2w.js");
5
5
  const credentials_schema = require("./credentials.schema-BmOPv6FD.js");
6
6
  const queryProcessor = require("./queryProcessor-D6GuKfTV.js");
7
7
  const mailing = require("./mailing-D4kWlk3_.js");
8
- const index = require("./index-DQqZReAr.js");
8
+ const index = require("./index-CVXl1rB5.js");
9
9
  const require$$0 = require("axios");
10
10
  const globals_cache = require("./globals.cache-CwWvNGFQ.js");
11
11
  const globals_logger = require("./globals.logger-BdjooLaD.js");
@@ -784,13 +784,13 @@ function requireGlobals_crud() {
784
784
  const Cache = globals_cache.requireGlobals_cache();
785
785
  const Logger = globals_logger.requireGlobals_logger();
786
786
  class CRUD {
787
- constructor(basePath, app, db, model) {
787
+ constructor(basePath, app, db, model, options) {
788
788
  this.model = model;
789
789
  this.cache = new Cache();
790
790
  this.logger = new Logger(db);
791
791
  this.app = app;
792
792
  this.basePath = basePath;
793
- this.registerRoutes();
793
+ if (!options || options && !options.disableDefaultRoutes) this.registerRoutes();
794
794
  }
795
795
  registerRoutes() {
796
796
  this.app.post(`${this.basePath}/create`, this.create.bind(this));
@@ -4,7 +4,7 @@ import { r as requireProfile_schema } from "./profile.schema-kP_zKXNt.mjs";
4
4
  import { r as requireCredentials_schema } from "./credentials.schema-oOC8B5KL.mjs";
5
5
  import { r as requireQueryProcessor } from "./queryProcessor-CWnMIe2U.mjs";
6
6
  import { r as requireMailing } from "./mailing-DvCT5ijo.mjs";
7
- import { r as requireMiddlewares } from "./index-DICZTQ-1.mjs";
7
+ import { r as requireMiddlewares } from "./index-Df8vtZx7.mjs";
8
8
  import require$$0 from "axios";
9
9
  import { r as requireGlobals_cache } from "./globals.cache-BT6q3vOf.mjs";
10
10
  import { r as requireGlobals_logger } from "./globals.logger-DusiFsxN.mjs";
@@ -783,13 +783,13 @@ function requireGlobals_crud() {
783
783
  const Cache = requireGlobals_cache();
784
784
  const Logger = requireGlobals_logger();
785
785
  class CRUD {
786
- constructor(basePath, app, db, model) {
786
+ constructor(basePath, app, db, model, options) {
787
787
  this.model = model;
788
788
  this.cache = new Cache();
789
789
  this.logger = new Logger(db);
790
790
  this.app = app;
791
791
  this.basePath = basePath;
792
- this.registerRoutes();
792
+ if (!options || options && !options.disableDefaultRoutes) this.registerRoutes();
793
793
  }
794
794
  registerRoutes() {
795
795
  this.app.post(`${this.basePath}/create`, this.create.bind(this));
@@ -8,7 +8,7 @@ const require$$1 = require("@googlemaps/google-maps-services-js");
8
8
  const addMembersQuantity = require("./addMembersQuantity-DxWjHK1K.js");
9
9
  const require$$0$2 = require("uuidv4");
10
10
  const mailing = require("./mailing-D4kWlk3_.js");
11
- const index = require("./index-DQqZReAr.js");
11
+ const index = require("./index-CVXl1rB5.js");
12
12
  const globals_abac = require("./globals.abac-DT0VjfaZ.js");
13
13
  const engagement_schema = require("./engagement.schema-DAiXsvh1.js");
14
14
  const ownership_schema = require("./ownership.schema-Ck2H9clB.js");
@@ -7,7 +7,7 @@ import require$$1 from "@googlemaps/google-maps-services-js";
7
7
  import { r as requireAddUserStatusFields, a as requireAddMembersQuantity } from "./addMembersQuantity-DBfuUEx_.mjs";
8
8
  import require$$0$2 from "uuidv4";
9
9
  import { r as requireMailing } from "./mailing-DvCT5ijo.mjs";
10
- import { r as requireMiddlewares } from "./index-DICZTQ-1.mjs";
10
+ import { r as requireMiddlewares } from "./index-Df8vtZx7.mjs";
11
11
  import { r as requireGlobals_abac } from "./globals.abac-CvmZM8XG.mjs";
12
12
  import { r as requireEngagement_schema } from "./engagement.schema-DnDD7Bn3.mjs";
13
13
  import { r as requireOwnership_schema } from "./ownership.schema-C0w02Vw1.mjs";
@@ -636,48 +636,57 @@ function requireCategories_controller() {
636
636
  return {
637
637
  async read(req, res) {
638
638
  try {
639
- let buildTree = function(items) {
640
- const itemMap = {};
641
- const roots = [];
642
- items.forEach((item) => {
643
- itemMap[item._id.toString()] = {
644
- ...item,
639
+ let buildAdjacencyTree = function(categories, sortParam2, sortOrder2) {
640
+ const categoryMap = /* @__PURE__ */ new Map();
641
+ categories.forEach((category) => {
642
+ categoryMap.set(category._id.toString(), {
643
+ ...category,
645
644
  children: []
646
- };
645
+ });
647
646
  });
648
- items.forEach((item) => {
649
- const itemId = item._id.toString();
650
- const parentId = item.parent?._id?.toString();
651
- if (parentId && itemMap[parentId]) {
652
- itemMap[parentId].children.push(itemMap[itemId]);
653
- } else {
654
- roots.push(itemMap[itemId]);
647
+ const rootCategories = [];
648
+ categories.forEach((category) => {
649
+ const categoryWithChildren = categoryMap.get(category._id.toString());
650
+ if (category.parent && categoryMap.has(category.parent.toString())) {
651
+ const parentCategory = categoryMap.get(category.parent.toString());
652
+ parentCategory.children.push(categoryWithChildren);
653
+ } else if (!category.parent) {
654
+ rootCategories.push(categoryWithChildren);
655
655
  }
656
656
  });
657
- const sortByOrder = (a, b) => {
658
- const orderA = a.order ?? Number.MAX_SAFE_INTEGER;
659
- const orderB = b.order ?? Number.MAX_SAFE_INTEGER;
660
- return orderA - orderB;
661
- };
662
- const sortChildren = (node) => {
663
- if (node.children && node.children.length > 0) {
664
- node.children.sort(sortByOrder);
665
- node.children.forEach(sortChildren);
657
+ function sortCategories(nodes) {
658
+ if (!nodes || nodes.length === 0) {
659
+ return nodes;
666
660
  }
667
- };
668
- roots.sort(sortByOrder);
669
- roots.forEach(sortChildren);
670
- return roots;
661
+ nodes.sort((a, b) => {
662
+ const valueA = a[sortParam2] ?? (sortParam2 === "order" ? Number.MAX_SAFE_INTEGER : "");
663
+ const valueB = b[sortParam2] ?? (sortParam2 === "order" ? Number.MAX_SAFE_INTEGER : "");
664
+ if (typeof valueA === "number" && typeof valueB === "number") {
665
+ return sortOrder2 === "asc" ? valueA - valueB : valueB - valueA;
666
+ } else {
667
+ const stringA = String(valueA);
668
+ const stringB = String(valueB);
669
+ return sortOrder2 === "asc" ? stringA.localeCompare(stringB) : stringB.localeCompare(stringA);
670
+ }
671
+ });
672
+ nodes.forEach((node) => {
673
+ if (node.children && node.children.length > 0) {
674
+ sortCategories(node.children);
675
+ }
676
+ });
677
+ return nodes;
678
+ }
679
+ return sortCategories(rootCategories);
671
680
  };
672
- const {
681
+ let {
673
682
  parent,
674
683
  url,
675
684
  search,
676
- sort = "order",
677
- order = 1,
685
+ sortParam = "order",
686
+ sortOrder = "asc",
678
687
  skip = 0,
679
688
  limit = 10,
680
- excludeChildren = false,
689
+ excludeChildren = "true",
681
690
  rootOnly = false
682
691
  } = req.query;
683
692
  const matchStage = {
@@ -685,11 +694,18 @@ function requireCategories_controller() {
685
694
  ...req.query.url && { url: req.query.url },
686
695
  ...search && { name: { $regex: search, $options: "i" } },
687
696
  ...parent ? { parent: new db.mongoose.Types.ObjectId(parent) } : {},
688
- ...rootOnly === true ? { parent: null } : {}
697
+ ...rootOnly === "true" && !search ? { parent: null } : {}
689
698
  };
699
+ console.log("matchStage", matchStage);
700
+ if (search) excludeChildren = "true";
690
701
  const pipeline = [
691
702
  { $match: matchStage },
692
- {
703
+ { $sort: { [sortParam]: sortOrder === "asc" ? 1 : -1 } },
704
+ { $skip: Number(skip) },
705
+ { $limit: Number(limit) }
706
+ ];
707
+ if (excludeChildren !== "true") {
708
+ pipeline.push({
693
709
  $graphLookup: {
694
710
  from: "categories",
695
711
  startWith: "$_id",
@@ -698,24 +714,36 @@ function requireCategories_controller() {
698
714
  as: "allDescendants",
699
715
  maxDepth: 10
700
716
  }
701
- },
702
- { $sort: { [sort]: order === "asc" ? 1 : -1 } },
703
- { $skip: Number(skip) },
704
- { $limit: Number(limit) }
705
- ];
706
- const flatResults = await Category.aggregate(pipeline);
707
- const treeResults = flatResults.map((doc) => {
708
- const descendants = doc.allDescendants || [];
709
- const allItems = [doc, ...descendants];
710
- const tree = buildTree(allItems);
711
- return tree.find((node) => node._id.toString() === doc._id.toString());
712
- });
713
- treeResults.sort((a, b) => {
714
- const orderA = a.order ?? Number.MAX_SAFE_INTEGER;
715
- const orderB = b.order ?? Number.MAX_SAFE_INTEGER;
716
- return orderA - orderB;
717
+ });
718
+ }
719
+ const results = await Category.aggregate(pipeline);
720
+ if (excludeChildren === "true") {
721
+ console.log(results);
722
+ res.status(200).json(results);
723
+ return;
724
+ }
725
+ const allCategories = [];
726
+ results.forEach((doc) => {
727
+ const category = { ...doc };
728
+ delete category.allDescendants;
729
+ allCategories.push(category);
730
+ if (doc.allDescendants && doc.allDescendants.length > 0) {
731
+ allCategories.push(...doc.allDescendants);
732
+ }
717
733
  });
718
- res.json(treeResults);
734
+ const uniqueCategories = Array.from(
735
+ new Map(allCategories.map((item) => [item._id.toString(), item])).values()
736
+ );
737
+ const tree = buildAdjacencyTree(uniqueCategories, sortParam, sortOrder);
738
+ if (rootOnly === "true") {
739
+ res.json(tree);
740
+ } else {
741
+ const requestedCategoryIds = results.map((r) => r._id.toString());
742
+ const filteredTree = tree.filter(
743
+ (category) => requestedCategoryIds.includes(category._id.toString())
744
+ );
745
+ res.status(200).json(filteredTree);
746
+ }
719
747
  } catch (err) {
720
748
  res.status(500).json({ message: err.message });
721
749
  }
@@ -748,7 +776,6 @@ function requireCategories_controller() {
748
776
  },
749
777
  async update(req, res) {
750
778
  try {
751
- console.log(req.body);
752
779
  const category = req.body;
753
780
  if (!category || !category._id) {
754
781
  return res.status(400).json({ message: "Category ID is required" });
@@ -768,7 +795,6 @@ function requireCategories_controller() {
768
795
  }
769
796
  },
770
797
  async updateOrder(req, res) {
771
- console.log(req.body);
772
798
  try {
773
799
  const { categories } = req.body;
774
800
  const bulkOps = categories.map((category) => ({
@@ -784,7 +810,6 @@ function requireCategories_controller() {
784
810
  }));
785
811
  await Category.bulkWrite(bulkOps);
786
812
  const updatedCategories = await Category.find().sort({ order: "asc" }).lean();
787
- console.log(updatedCategories);
788
813
  res.status(200).json(updatedCategories);
789
814
  } catch (err) {
790
815
  console.error("Category update error:", err);
@@ -635,48 +635,57 @@ function requireCategories_controller() {
635
635
  return {
636
636
  async read(req, res) {
637
637
  try {
638
- let buildTree = function(items) {
639
- const itemMap = {};
640
- const roots = [];
641
- items.forEach((item) => {
642
- itemMap[item._id.toString()] = {
643
- ...item,
638
+ let buildAdjacencyTree = function(categories, sortParam2, sortOrder2) {
639
+ const categoryMap = /* @__PURE__ */ new Map();
640
+ categories.forEach((category) => {
641
+ categoryMap.set(category._id.toString(), {
642
+ ...category,
644
643
  children: []
645
- };
644
+ });
646
645
  });
647
- items.forEach((item) => {
648
- const itemId = item._id.toString();
649
- const parentId = item.parent?._id?.toString();
650
- if (parentId && itemMap[parentId]) {
651
- itemMap[parentId].children.push(itemMap[itemId]);
652
- } else {
653
- roots.push(itemMap[itemId]);
646
+ const rootCategories = [];
647
+ categories.forEach((category) => {
648
+ const categoryWithChildren = categoryMap.get(category._id.toString());
649
+ if (category.parent && categoryMap.has(category.parent.toString())) {
650
+ const parentCategory = categoryMap.get(category.parent.toString());
651
+ parentCategory.children.push(categoryWithChildren);
652
+ } else if (!category.parent) {
653
+ rootCategories.push(categoryWithChildren);
654
654
  }
655
655
  });
656
- const sortByOrder = (a, b) => {
657
- const orderA = a.order ?? Number.MAX_SAFE_INTEGER;
658
- const orderB = b.order ?? Number.MAX_SAFE_INTEGER;
659
- return orderA - orderB;
660
- };
661
- const sortChildren = (node) => {
662
- if (node.children && node.children.length > 0) {
663
- node.children.sort(sortByOrder);
664
- node.children.forEach(sortChildren);
656
+ function sortCategories(nodes) {
657
+ if (!nodes || nodes.length === 0) {
658
+ return nodes;
665
659
  }
666
- };
667
- roots.sort(sortByOrder);
668
- roots.forEach(sortChildren);
669
- return roots;
660
+ nodes.sort((a, b) => {
661
+ const valueA = a[sortParam2] ?? (sortParam2 === "order" ? Number.MAX_SAFE_INTEGER : "");
662
+ const valueB = b[sortParam2] ?? (sortParam2 === "order" ? Number.MAX_SAFE_INTEGER : "");
663
+ if (typeof valueA === "number" && typeof valueB === "number") {
664
+ return sortOrder2 === "asc" ? valueA - valueB : valueB - valueA;
665
+ } else {
666
+ const stringA = String(valueA);
667
+ const stringB = String(valueB);
668
+ return sortOrder2 === "asc" ? stringA.localeCompare(stringB) : stringB.localeCompare(stringA);
669
+ }
670
+ });
671
+ nodes.forEach((node) => {
672
+ if (node.children && node.children.length > 0) {
673
+ sortCategories(node.children);
674
+ }
675
+ });
676
+ return nodes;
677
+ }
678
+ return sortCategories(rootCategories);
670
679
  };
671
- const {
680
+ let {
672
681
  parent,
673
682
  url,
674
683
  search,
675
- sort = "order",
676
- order = 1,
684
+ sortParam = "order",
685
+ sortOrder = "asc",
677
686
  skip = 0,
678
687
  limit = 10,
679
- excludeChildren = false,
688
+ excludeChildren = "true",
680
689
  rootOnly = false
681
690
  } = req.query;
682
691
  const matchStage = {
@@ -684,11 +693,18 @@ function requireCategories_controller() {
684
693
  ...req.query.url && { url: req.query.url },
685
694
  ...search && { name: { $regex: search, $options: "i" } },
686
695
  ...parent ? { parent: new db.mongoose.Types.ObjectId(parent) } : {},
687
- ...rootOnly === true ? { parent: null } : {}
696
+ ...rootOnly === "true" && !search ? { parent: null } : {}
688
697
  };
698
+ console.log("matchStage", matchStage);
699
+ if (search) excludeChildren = "true";
689
700
  const pipeline = [
690
701
  { $match: matchStage },
691
- {
702
+ { $sort: { [sortParam]: sortOrder === "asc" ? 1 : -1 } },
703
+ { $skip: Number(skip) },
704
+ { $limit: Number(limit) }
705
+ ];
706
+ if (excludeChildren !== "true") {
707
+ pipeline.push({
692
708
  $graphLookup: {
693
709
  from: "categories",
694
710
  startWith: "$_id",
@@ -697,24 +713,36 @@ function requireCategories_controller() {
697
713
  as: "allDescendants",
698
714
  maxDepth: 10
699
715
  }
700
- },
701
- { $sort: { [sort]: order === "asc" ? 1 : -1 } },
702
- { $skip: Number(skip) },
703
- { $limit: Number(limit) }
704
- ];
705
- const flatResults = await Category.aggregate(pipeline);
706
- const treeResults = flatResults.map((doc) => {
707
- const descendants = doc.allDescendants || [];
708
- const allItems = [doc, ...descendants];
709
- const tree = buildTree(allItems);
710
- return tree.find((node) => node._id.toString() === doc._id.toString());
711
- });
712
- treeResults.sort((a, b) => {
713
- const orderA = a.order ?? Number.MAX_SAFE_INTEGER;
714
- const orderB = b.order ?? Number.MAX_SAFE_INTEGER;
715
- return orderA - orderB;
716
+ });
717
+ }
718
+ const results = await Category.aggregate(pipeline);
719
+ if (excludeChildren === "true") {
720
+ console.log(results);
721
+ res.status(200).json(results);
722
+ return;
723
+ }
724
+ const allCategories = [];
725
+ results.forEach((doc) => {
726
+ const category = { ...doc };
727
+ delete category.allDescendants;
728
+ allCategories.push(category);
729
+ if (doc.allDescendants && doc.allDescendants.length > 0) {
730
+ allCategories.push(...doc.allDescendants);
731
+ }
716
732
  });
717
- res.json(treeResults);
733
+ const uniqueCategories = Array.from(
734
+ new Map(allCategories.map((item) => [item._id.toString(), item])).values()
735
+ );
736
+ const tree = buildAdjacencyTree(uniqueCategories, sortParam, sortOrder);
737
+ if (rootOnly === "true") {
738
+ res.json(tree);
739
+ } else {
740
+ const requestedCategoryIds = results.map((r) => r._id.toString());
741
+ const filteredTree = tree.filter(
742
+ (category) => requestedCategoryIds.includes(category._id.toString())
743
+ );
744
+ res.status(200).json(filteredTree);
745
+ }
718
746
  } catch (err) {
719
747
  res.status(500).json({ message: err.message });
720
748
  }
@@ -747,7 +775,6 @@ function requireCategories_controller() {
747
775
  },
748
776
  async update(req, res) {
749
777
  try {
750
- console.log(req.body);
751
778
  const category = req.body;
752
779
  if (!category || !category._id) {
753
780
  return res.status(400).json({ message: "Category ID is required" });
@@ -767,7 +794,6 @@ function requireCategories_controller() {
767
794
  }
768
795
  },
769
796
  async updateOrder(req, res) {
770
- console.log(req.body);
771
797
  try {
772
798
  const { categories } = req.body;
773
799
  const bulkOps = categories.map((category) => ({
@@ -783,7 +809,6 @@ function requireCategories_controller() {
783
809
  }));
784
810
  await Category.bulkWrite(bulkOps);
785
811
  const updatedCategories = await Category.find().sort({ order: "asc" }).lean();
786
- console.log(updatedCategories);
787
812
  res.status(200).json(updatedCategories);
788
813
  } catch (err) {
789
814
  console.error("Category update error:", err);
@@ -4,7 +4,7 @@ const globals_verifier = require("./globals.verifier-ChDpCdy_.js");
4
4
  const globals_cache = require("./globals.cache-CwWvNGFQ.js");
5
5
  const globals_logger = require("./globals.logger-BdjooLaD.js");
6
6
  const queryProcessor = require("./queryProcessor-D6GuKfTV.js");
7
- const index = require("./index-DQqZReAr.js");
7
+ const index = require("./index-CVXl1rB5.js");
8
8
  const globals_abac = require("./globals.abac-DT0VjfaZ.js");
9
9
  var rents_services;
10
10
  var hasRequiredRents_services;
@@ -3,7 +3,7 @@ import { a as requireGlobals_validator, r as requireGlobals_verifier } from "./g
3
3
  import { r as requireGlobals_cache } from "./globals.cache-BT6q3vOf.mjs";
4
4
  import { r as requireGlobals_logger } from "./globals.logger-DusiFsxN.mjs";
5
5
  import { r as requireQueryProcessor } from "./queryProcessor-CWnMIe2U.mjs";
6
- import { r as requireMiddlewares } from "./index-DICZTQ-1.mjs";
6
+ import { r as requireMiddlewares } from "./index-Df8vtZx7.mjs";
7
7
  import { r as requireGlobals_abac } from "./globals.abac-CvmZM8XG.mjs";
8
8
  var rents_services;
9
9
  var hasRequiredRents_services;