@ozdao/martyrs 0.2.492 → 0.2.494

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 (341) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/builder.cjs +53 -90
  6. package/dist/builder.js +54 -91
  7. package/dist/{crud-B-kQw3Z5.cjs → crud-JN_LFj01.cjs} +3 -0
  8. package/dist/{crud-Cwx5VlSm.js → crud-sE7GLPbj.js} +3 -0
  9. package/dist/globals.server.cjs +322 -3
  10. package/dist/globals.server.js +303 -1
  11. package/dist/{globals.verifier-D68mHEBl.cjs → globals.verifier-C0zj_LLo.cjs} +8 -1
  12. package/dist/{globals.verifier-CWFz5Gh2.js → globals.verifier-DFqKQ7hK.js} +8 -1
  13. package/dist/inventory.server.cjs +2 -2
  14. package/dist/inventory.server.js +2 -2
  15. package/dist/{main-SZQ1QjeP.js → main-CJm5myDI.js} +631 -607
  16. package/dist/{main-MzmGbSxs.cjs → main-DTaE01lg.cjs} +6 -6
  17. package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs +1 -1
  18. package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs.map +1 -1
  19. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +1 -1
  20. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  21. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +33 -7
  22. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  23. package/dist/martyrs/src/components/Feed/Feed.vue.js +33 -7
  24. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  25. package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +2 -2
  26. package/dist/martyrs/src/components/Field/{Field.vue2.js.map → Field.vue.cjs.map} +1 -1
  27. package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
  28. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
  29. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  30. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  31. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  32. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  33. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  34. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  35. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  36. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  37. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
  38. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  39. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +4 -4
  40. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  46. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  47. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  50. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  51. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  52. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  53. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  55. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  56. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  58. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
  59. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
  60. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
  61. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
  62. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  63. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  64. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  65. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  66. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  67. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  68. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
  69. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  70. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  71. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  72. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  73. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  74. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
  75. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
  76. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +5 -1
  77. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  78. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +5 -1
  79. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  80. package/dist/martyrs/src/modules/icons/entities/IconTime.vue.cjs +2 -2
  81. package/dist/martyrs/src/modules/icons/entities/IconTime.vue.js +2 -2
  82. package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.cjs +2 -2
  83. package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.js +2 -2
  84. package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.cjs +2 -2
  85. package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.js +2 -2
  86. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +6 -6
  87. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  88. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  89. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  90. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  91. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  92. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
  93. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  95. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +22 -15
  96. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +23 -16
  98. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +2 -2
  100. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +2 -2
  102. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
  103. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +31 -13
  104. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +33 -15
  106. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +39 -22
  108. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +39 -22
  110. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  113. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  115. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +385 -125
  116. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -1
  117. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +391 -131
  118. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
  119. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +24 -7
  120. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +25 -8
  122. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +99 -87
  124. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -1
  125. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +111 -99
  126. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
  127. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs +21 -0
  128. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs.map +1 -0
  129. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +21 -0
  130. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -0
  131. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +442 -210
  132. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
  133. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +445 -213
  134. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +92 -117
  136. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
  137. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +93 -118
  138. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
  139. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +72 -113
  140. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +78 -119
  142. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +15 -12
  144. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
  145. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +15 -12
  146. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +558 -429
  148. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +560 -431
  150. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +146 -284
  152. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +149 -287
  154. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +460 -63
  156. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
  157. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +462 -65
  158. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  159. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +126 -136
  160. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +129 -139
  162. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +18 -15
  164. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +18 -15
  166. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +28 -23
  168. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -1
  169. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +29 -24
  170. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -1
  171. package/dist/martyrs/src/modules/music/music.client.cjs +3 -6
  172. package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -1
  173. package/dist/martyrs/src/modules/music/music.client.js +9 -12
  174. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  175. package/dist/martyrs/src/modules/music/router/music.cjs +27 -1
  176. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  177. package/dist/martyrs/src/modules/music/router/music.js +27 -1
  178. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  179. package/dist/martyrs/src/modules/music/store/artists.cjs +6 -4
  180. package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -1
  181. package/dist/martyrs/src/modules/music/store/artists.js +6 -4
  182. package/dist/martyrs/src/modules/music/store/artists.js.map +1 -1
  183. package/dist/martyrs/src/modules/music/store/player.cjs +5 -0
  184. package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -1
  185. package/dist/martyrs/src/modules/music/store/player.js +5 -0
  186. package/dist/martyrs/src/modules/music/store/player.js.map +1 -1
  187. package/dist/martyrs/src/modules/music/store/tracks.cjs +22 -0
  188. package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -1
  189. package/dist/martyrs/src/modules/music/store/tracks.js +22 -0
  190. package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -1
  191. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
  192. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  193. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  195. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  197. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
  199. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  201. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +2 -2
  202. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  203. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  204. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  205. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  206. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  207. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  208. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  209. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  210. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  211. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  212. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  213. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  214. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  215. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  216. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  217. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  218. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  219. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  220. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  221. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  222. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  223. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  224. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  225. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  226. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  227. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  228. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  229. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  230. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  231. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  232. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  233. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  234. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs +4 -3
  235. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs.map +1 -1
  236. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +4 -3
  237. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
  238. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs +37 -70
  239. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs.map +1 -1
  240. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +38 -71
  241. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
  242. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -1
  243. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs.map +1 -1
  244. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +6 -5
  245. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js.map +1 -1
  246. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +45 -52
  247. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs.map +1 -1
  248. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +46 -53
  249. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
  250. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
  251. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  252. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  253. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  254. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  255. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  256. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  257. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  258. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  259. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  260. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
  261. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
  262. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  263. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  264. package/dist/martyrs.cjs.js +1 -1
  265. package/dist/martyrs.css +1 -1
  266. package/dist/martyrs.es.js +1 -1
  267. package/dist/music.server.cjs +124 -31
  268. package/dist/music.server.js +124 -31
  269. package/dist/organizations.server.cjs +1 -1
  270. package/dist/organizations.server.js +1 -1
  271. package/dist/products.server.cjs +2 -2
  272. package/dist/products.server.js +2 -2
  273. package/dist/rents.server.cjs +3 -3
  274. package/dist/rents.server.js +3 -3
  275. package/dist/style.css +373 -80
  276. package/dist/{web-D7lZjuC0.js → web-Dkk0_7TA.js} +1 -1
  277. package/dist/{web-D-YZ9KHz.cjs → web-stVkXd0l.cjs} +1 -1
  278. package/package.json +1 -1
  279. package/src/builder/modes/ssr.prod.js +21 -5
  280. package/src/builder/rspack/rspack.config.spa.client.js +0 -44
  281. package/src/builder/rspack/rspack.config.ssr.client.js +40 -40
  282. package/src/components/Calendar/Calendar.vue +378 -377
  283. package/src/components/Feed/Feed.vue +28 -2
  284. package/src/modules/globals/controllers/classes/crud/crud.policies.js +5 -0
  285. package/src/modules/globals/controllers/classes/globals.validator.js +8 -1
  286. package/src/modules/globals/views/components/layouts/Client.vue +7 -0
  287. package/src/modules/music/README.md +8 -0
  288. package/src/modules/music/components/SidebarMusic.vue +6 -9
  289. package/src/modules/music/components/cards/AlbumCard.vue +20 -14
  290. package/src/modules/music/components/cards/ArtistCard.vue +1 -1
  291. package/src/modules/music/components/cards/PlaylistCard.vue +31 -11
  292. package/src/modules/music/components/cards/TrackListCard.vue +24 -13
  293. package/src/modules/music/components/forms/PlaylistForm.vue +417 -107
  294. package/src/modules/music/components/forms/SearchForm.vue +31 -8
  295. package/src/modules/music/components/forms/TrackForm.vue +50 -32
  296. package/src/modules/music/components/layouts/MusicBottomPlayer.vue +17 -0
  297. package/src/modules/music/components/pages/Album.vue +373 -186
  298. package/src/modules/music/components/pages/Artist.vue +54 -94
  299. package/src/modules/music/components/pages/MusicHome.vue +59 -56
  300. package/src/modules/music/components/pages/MusicLibrary.vue +13 -11
  301. package/src/modules/music/components/pages/Playlist.vue +495 -379
  302. package/src/modules/music/components/pages/SearchResults.vue +185 -313
  303. package/src/modules/music/components/pages/Track.vue +363 -69
  304. package/src/modules/music/components/player/MusicPlayer.vue +368 -97
  305. package/src/modules/music/components/player/TrackProgress.vue +76 -22
  306. package/src/modules/music/components/player/VolumeControl.vue +61 -28
  307. package/src/modules/music/controllers/search.controller.js +3 -0
  308. package/src/modules/music/controllers/stream.controller.js +11 -3
  309. package/src/modules/music/middlewares/playlists.verifier.js +1 -1
  310. package/src/modules/music/music.client.js +3 -6
  311. package/src/modules/music/music.server.js +8 -4
  312. package/src/modules/music/router/music.js +8 -1
  313. package/src/modules/music/routes/albums.routes.js +37 -5
  314. package/src/modules/music/routes/artists.routes.js +14 -4
  315. package/src/modules/music/routes/genres.routes.js +5 -1
  316. package/src/modules/music/routes/playlists.routes.js +42 -9
  317. package/src/modules/music/routes/tracks.routes.js +27 -2
  318. package/src/modules/music/store/artists.js +6 -2
  319. package/src/modules/music/store/player.js +6 -0
  320. package/src/modules/music/store/tracks.js +31 -0
  321. package/src/modules/music/websocket/streaming.handler.js +7 -1
  322. package/src/modules/rents/controllers/services/rents.services.js +2 -2
  323. package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +4 -3
  324. package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +42 -40
  325. package/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue +3 -1
  326. package/src/modules/rents/views/components/pages/Rents.vue +60 -56
  327. package/dist/globals.websocket-DzvdIBf6.js +0 -306
  328. package/dist/globals.websocket-k6_B1T7k.cjs +0 -322
  329. package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
  330. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  331. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  332. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +0 -69
  333. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +0 -1
  334. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +0 -69
  335. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +0 -1
  336. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +0 -104
  337. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +0 -1
  338. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +0 -104
  339. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +0 -1
  340. package/src/modules/music/components/cards/TrackCard.vue +0 -86
  341. package/src/modules/music/components/layouts/MusicLayout.vue +0 -83
@@ -1,4 +1,4 @@
1
- import { _ as e, a as o, b as d, C as r, k as t, c as l, d as i, e as p, f as u, g as n, h as M, i as S, j as c, F as m, l as C, n as F, o as g, L as h, p as b, M as k, q as x, H as B, r as T, s as U, t as f, u as w, S as D, v as E, w as I, x as L, y as P, z as q, A as y, B as A, D as j, U as v, E as z, G, m as H } from "./main-SZQ1QjeP.js";
1
+ import { _ as e, a as o, b as d, C as r, k as t, c as l, d as i, e as p, f as u, g as n, h as M, i as S, j as c, F as m, l as C, n as F, o as g, L as h, p as b, M as k, q as x, H as B, r as T, s as U, t as f, u as w, S as D, v as E, w as I, x as L, y as P, z as q, A as y, B as A, D as j, U as v, E as z, G, m as H } from "./main-CJm5myDI.js";
2
2
  export {
3
3
  e as Address,
4
4
  o as Breadcrumbs,
@@ -2,10 +2,12 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const globals_abac = require("./globals.abac-CPXLas7N.cjs");
4
4
  const globals_logger = require("./globals.logger-CZMgIMlM.cjs");
5
- const globals_websocket = require("./globals.websocket-k6_B1T7k.cjs");
6
- const crud = require("./crud-B-kQw3Z5.cjs");
5
+ require("cookie");
6
+ require("jsonwebtoken");
7
+ require("uWebSockets.js");
8
+ const crud = require("./crud-JN_LFj01.cjs");
7
9
  const abac = require("./abac-6LjoG9u-.cjs");
8
- const globals_verifier = require("./globals.verifier-D68mHEBl.cjs");
10
+ const globals_verifier = require("./globals.verifier-C0zj_LLo.cjs");
9
11
  const fs$1 = require("fs");
10
12
  const path$1 = require("path");
11
13
  const common_schema = require("./common.schema-BzFEVNn3.cjs");
@@ -199,7 +201,7 @@ function setupTracksRoutes(app, db) {
199
201
  model: db.track,
200
202
  modelName: "track",
201
203
  basePath: "/api/tracks",
202
- auth: true,
204
+ auth: { read: false },
203
205
  verifiers: {
204
206
  create: verifier.createVerifier,
205
207
  read: verifier.readVerifier,
@@ -207,6 +209,9 @@ function setupTracksRoutes(app, db) {
207
209
  delete: verifier.deleteVerifier
208
210
  },
209
211
  abac: abac2,
212
+ policies: {
213
+ read: { enabled: false }
214
+ },
210
215
  cache: {
211
216
  enabled: true,
212
217
  ttl: 300,
@@ -217,13 +222,18 @@ function setupTracksRoutes(app, db) {
217
222
  logReads: false
218
223
  }
219
224
  });
225
+ tracksCRUD.policies.disableForAction("get-by-url");
226
+ tracksCRUD.policies.disableForAction("recent");
227
+ tracksCRUD.policies.disableForAction("popular");
228
+ tracksCRUD.policies.disableForAction("by-genre");
220
229
  tracksCRUD.addAction("get-by-url", {
221
230
  method: "get",
222
231
  path: "/url/:url",
223
232
  auth: false,
233
+ abac: { enabled: false },
224
234
  handler: async (req, res) => {
225
235
  try {
226
- const track = await db.track.findOne({ url: req.params.url });
236
+ const track = await db.track.findOne({ url: req.params.url }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").populate("genre", "name url");
227
237
  if (!track) {
228
238
  return res.status(404).json({ error: "Track not found" });
229
239
  }
@@ -250,13 +260,14 @@ function setupTracksRoutes(app, db) {
250
260
  method: "get",
251
261
  path: "/recent",
252
262
  auth: false,
263
+ abac: { enabled: false },
253
264
  handler: async (req, res) => {
254
265
  try {
255
266
  const limit = parseInt(req.query.limit) || 10;
256
267
  const recentTracks = await db.track.find({
257
268
  status: "published",
258
269
  isPublic: true
259
- }).sort({ createdAt: -1 }).limit(limit);
270
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").sort({ createdAt: -1 }).limit(limit);
260
271
  res.json(recentTracks);
261
272
  } catch (error) {
262
273
  console.error(error);
@@ -268,13 +279,14 @@ function setupTracksRoutes(app, db) {
268
279
  method: "get",
269
280
  path: "/popular",
270
281
  auth: false,
282
+ abac: { enabled: false },
271
283
  handler: async (req, res) => {
272
284
  try {
273
285
  const limit = parseInt(req.query.limit) || 10;
274
286
  const popularTracks = await db.track.find({
275
287
  status: "published",
276
288
  isPublic: true
277
- }).sort({ playCount: -1 }).limit(limit);
289
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").sort({ playCount: -1 }).limit(limit);
278
290
  res.json(popularTracks);
279
291
  } catch (error) {
280
292
  console.error(error);
@@ -286,13 +298,14 @@ function setupTracksRoutes(app, db) {
286
298
  method: "get",
287
299
  path: "/genre/:genreId",
288
300
  auth: false,
301
+ abac: { enabled: false },
289
302
  handler: async (req, res) => {
290
303
  try {
291
304
  const tracks = await db.track.find({
292
305
  genre: req.params.genreId,
293
306
  status: "published",
294
307
  isPublic: true
295
- }).sort({ releaseDate: -1 });
308
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").sort({ releaseDate: -1 });
296
309
  res.json(tracks);
297
310
  } catch (error) {
298
311
  console.error(error);
@@ -450,7 +463,7 @@ function setupArtistsRoutes(app, db) {
450
463
  model: db.artist,
451
464
  modelName: "artist",
452
465
  basePath: "/api/artists",
453
- auth: true,
466
+ auth: { read: false },
454
467
  verifiers: {
455
468
  create: verifier.createVerifier,
456
469
  read: verifier.readVerifier,
@@ -458,6 +471,9 @@ function setupArtistsRoutes(app, db) {
458
471
  delete: verifier.deleteVerifier
459
472
  },
460
473
  abac: abac2,
474
+ policies: {
475
+ read: { enabled: false }
476
+ },
461
477
  cache: {
462
478
  enabled: true,
463
479
  ttl: 300,
@@ -472,6 +488,7 @@ function setupArtistsRoutes(app, db) {
472
488
  method: "get",
473
489
  path: "/url/:url",
474
490
  auth: false,
491
+ abac: { enabled: false },
475
492
  handler: async (req, res) => {
476
493
  try {
477
494
  const artist = await db.artist.findOne({ url: req.params.url });
@@ -489,6 +506,7 @@ function setupArtistsRoutes(app, db) {
489
506
  method: "get",
490
507
  path: "/:artistId/discography",
491
508
  auth: false,
509
+ abac: { enabled: false },
492
510
  handler: async (req, res) => {
493
511
  try {
494
512
  const { artistId } = req.params;
@@ -497,10 +515,12 @@ function setupArtistsRoutes(app, db) {
497
515
  artist: artistId,
498
516
  status: "published",
499
517
  isPublic: true
500
- }).populate("album", "title").sort({ releaseDate: -1 });
518
+ }).populate("album", "title url coverArt").populate("genre", "name").sort({ playCount: -1 }).limit(10);
501
519
  res.json({
502
520
  albums,
503
521
  tracks,
522
+ singles: tracks.filter((track) => !track.album),
523
+ // треки без альбома считаем синглами
504
524
  artist: artistId
505
525
  });
506
526
  } catch (error) {
@@ -543,6 +563,7 @@ function setupArtistsRoutes(app, db) {
543
563
  method: "get",
544
564
  path: "/:artistId/related",
545
565
  auth: false,
566
+ abac: { enabled: false },
546
567
  handler: async (req, res) => {
547
568
  try {
548
569
  const { artistId } = req.params;
@@ -725,7 +746,7 @@ function setupAlbumsRoutes(app, db) {
725
746
  model: db.album,
726
747
  modelName: "album",
727
748
  basePath: "/api/albums",
728
- auth: true,
749
+ auth: { read: false },
729
750
  verifiers: {
730
751
  create: verifier.createVerifier,
731
752
  read: verifier.readVerifier,
@@ -733,6 +754,9 @@ function setupAlbumsRoutes(app, db) {
733
754
  delete: verifier.deleteVerifier
734
755
  },
735
756
  abac: abac2,
757
+ policies: {
758
+ read: { enabled: false }
759
+ },
736
760
  cache: {
737
761
  enabled: true,
738
762
  ttl: 300,
@@ -747,12 +771,21 @@ function setupAlbumsRoutes(app, db) {
747
771
  method: "get",
748
772
  path: "/url/:url",
749
773
  auth: false,
774
+ abac: { enabled: false },
750
775
  handler: async (req, res) => {
751
776
  try {
752
- const album = await db.album.findOne({ url: req.params.url }).populate("artists", "name url");
777
+ const album = await db.album.findOne({ url: req.params.url }).populate("artists", "name url photoUrl isVerified");
753
778
  if (!album) {
754
779
  return res.status(404).json({ error: "Album not found" });
755
780
  }
781
+ const trackCount = await db.track.countDocuments({
782
+ album: album._id,
783
+ status: "published"
784
+ });
785
+ if (album.totalTracks !== trackCount) {
786
+ album.totalTracks = trackCount;
787
+ await album.save();
788
+ }
756
789
  res.json(album);
757
790
  } catch (error) {
758
791
  console.error(error);
@@ -764,6 +797,7 @@ function setupAlbumsRoutes(app, db) {
764
797
  method: "get",
765
798
  path: "/:albumId/tracks",
766
799
  auth: false,
800
+ abac: { enabled: false },
767
801
  handler: async (req, res) => {
768
802
  try {
769
803
  const { albumId } = req.params;
@@ -771,7 +805,7 @@ function setupAlbumsRoutes(app, db) {
771
805
  album: albumId,
772
806
  status: "published",
773
807
  isPublic: true
774
- }).populate("artist", "name url").populate("genre", "name").sort({ trackNumber: 1, createdAt: 1 });
808
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").populate("genre", "name url").sort({ trackNumber: 1, createdAt: 1 });
775
809
  res.json(tracks);
776
810
  } catch (error) {
777
811
  console.error(error);
@@ -783,6 +817,7 @@ function setupAlbumsRoutes(app, db) {
783
817
  method: "get",
784
818
  path: "/featured",
785
819
  auth: false,
820
+ abac: { enabled: false },
786
821
  handler: async (req, res) => {
787
822
  try {
788
823
  const limit = parseInt(req.query.limit) || 10;
@@ -792,7 +827,17 @@ function setupAlbumsRoutes(app, db) {
792
827
  $gte: new Date(Date.now() - 90 * 24 * 60 * 60 * 1e3)
793
828
  // последние 90 дней
794
829
  }
795
- }).populate("artists", "name url").sort({ createdAt: -1 }).limit(limit);
830
+ }).populate("artists", "name url photoUrl isVerified").sort({ createdAt: -1 }).limit(limit);
831
+ for (const album of featuredAlbums) {
832
+ const trackCount = await db.track.countDocuments({
833
+ album: album._id,
834
+ status: "published"
835
+ });
836
+ if (album.totalTracks !== trackCount) {
837
+ album.totalTracks = trackCount;
838
+ await album.save();
839
+ }
840
+ }
796
841
  res.json(featuredAlbums);
797
842
  } catch (error) {
798
843
  console.error(error);
@@ -913,7 +958,7 @@ function playlistsVerifierFactory(db) {
913
958
  },
914
959
  status: {
915
960
  rule: "optional",
916
- validator: globals_verifier.Validator.schema().string().oneOf(["draft", "published", "archived"])
961
+ validator: globals_verifier.Validator.schema().string().oneOf(["draft", "published", "archived", "featured"])
917
962
  },
918
963
  skip: {
919
964
  rule: "optional",
@@ -958,7 +1003,7 @@ function setupPlaylistsRoutes(app, db) {
958
1003
  model: db.playlist,
959
1004
  modelName: "playlist",
960
1005
  basePath: "/api/playlists",
961
- auth: true,
1006
+ auth: { read: false },
962
1007
  verifiers: {
963
1008
  create: verifier.createVerifier,
964
1009
  read: verifier.readVerifier,
@@ -966,6 +1011,9 @@ function setupPlaylistsRoutes(app, db) {
966
1011
  delete: verifier.deleteVerifier
967
1012
  },
968
1013
  abac: abac2,
1014
+ policies: {
1015
+ read: { enabled: false }
1016
+ },
969
1017
  cache: {
970
1018
  enabled: true,
971
1019
  ttl: 300,
@@ -980,23 +1028,38 @@ function setupPlaylistsRoutes(app, db) {
980
1028
  method: "get",
981
1029
  path: "/url/:url",
982
1030
  auth: false,
1031
+ abac: { enabled: false },
983
1032
  handler: async (req, res) => {
984
1033
  try {
985
1034
  const playlist = await db.playlist.findOne({ url: req.params.url }).populate({
986
1035
  path: "tracks.track",
987
- select: "-lyrics"
1036
+ select: "-lyrics",
1037
+ populate: [
1038
+ {
1039
+ path: "artist",
1040
+ select: "name url photoUrl isVerified"
1041
+ },
1042
+ {
1043
+ path: "album",
1044
+ select: "title url coverArt"
1045
+ },
1046
+ {
1047
+ path: "genre",
1048
+ select: "name url"
1049
+ }
1050
+ ]
988
1051
  });
989
1052
  if (!playlist) {
990
1053
  return res.status(404).json({ error: "Playlist not found" });
991
1054
  }
992
- if (!playlist.isPublic) {
993
- if (!req.userId) {
994
- return res.status(403).json({ error: "Access denied to private playlist" });
995
- }
1055
+ if (!playlist.isPublic && !req.userId) {
1056
+ return res.status(404).json({ error: "Playlist not found" });
1057
+ }
1058
+ if (!playlist.isPublic && req.userId) {
996
1059
  const isOwner = playlist.owner.target.toString() === req.userId;
997
1060
  const isCollaborator = playlist.collaborators.some((collab) => collab.toString() === req.userId);
998
1061
  if (!isOwner && !isCollaborator) {
999
- return res.status(403).json({ error: "Access denied to private playlist" });
1062
+ return res.status(404).json({ error: "Playlist not found" });
1000
1063
  }
1001
1064
  }
1002
1065
  res.json(playlist);
@@ -1017,7 +1080,20 @@ function setupPlaylistsRoutes(app, db) {
1017
1080
  if (userId !== req.userId) {
1018
1081
  query.isPublic = true;
1019
1082
  }
1020
- const playlists = await db.playlist.find(query).populate("tracks.track", "title artist").sort({ updatedAt: -1 });
1083
+ const playlists = await db.playlist.find(query).populate({
1084
+ path: "tracks.track",
1085
+ select: "title artist album genre duration",
1086
+ populate: [
1087
+ {
1088
+ path: "artist",
1089
+ select: "name url photoUrl isVerified"
1090
+ },
1091
+ {
1092
+ path: "album",
1093
+ select: "title url coverArt"
1094
+ }
1095
+ ]
1096
+ }).sort({ updatedAt: -1 });
1021
1097
  res.json(playlists);
1022
1098
  } catch (error) {
1023
1099
  console.error(error);
@@ -1227,7 +1303,7 @@ function setupGenresRoutes(app, db) {
1227
1303
  model: db.genre,
1228
1304
  modelName: "genre",
1229
1305
  basePath: "/api/genres",
1230
- auth: true,
1306
+ auth: { read: false },
1231
1307
  verifiers: {
1232
1308
  create: verifier.createVerifier,
1233
1309
  read: verifier.readVerifier,
@@ -1235,6 +1311,9 @@ function setupGenresRoutes(app, db) {
1235
1311
  delete: verifier.deleteVerifier
1236
1312
  },
1237
1313
  abac: abac2,
1314
+ policies: {
1315
+ read: { enabled: false }
1316
+ },
1238
1317
  cache: {
1239
1318
  enabled: true,
1240
1319
  ttl: 300,
@@ -1321,7 +1400,7 @@ const SearchController = function(app, db) {
1321
1400
  $or: [{ title: searchRegex }, { tags: searchRegex }],
1322
1401
  status: "published",
1323
1402
  isPublic: true
1324
- }).limit(limitNum);
1403
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").populate("genre", "name url").limit(limitNum);
1325
1404
  }
1326
1405
  if (types.includes("albums") || types.includes("all")) {
1327
1406
  results.albums = await db.album.find({
@@ -1384,7 +1463,6 @@ const StreamController = function(app, db, publicPath) {
1384
1463
  });
1385
1464
  }
1386
1465
  const fileUrl = track.fileUrl;
1387
- console.log("public is", publicPath);
1388
1466
  const filePath = path$1.join(publicPath, fileUrl);
1389
1467
  if (!fs$1.existsSync(filePath)) {
1390
1468
  logger.error(`File not found: ${filePath}`);
@@ -1393,6 +1471,7 @@ const StreamController = function(app, db, publicPath) {
1393
1471
  const stat = fs$1.statSync(filePath);
1394
1472
  const fileSize = stat.size;
1395
1473
  const range = req.headers.range;
1474
+ const isFirstRequest = !range || range === "bytes=0-";
1396
1475
  if (req.userId) {
1397
1476
  try {
1398
1477
  await db.playHistory.create({
@@ -1403,10 +1482,16 @@ const StreamController = function(app, db, publicPath) {
1403
1482
  playedFrom: req.query.from || "other",
1404
1483
  contextId: req.query.contextId || null
1405
1484
  });
1406
- await db.track.findByIdAndUpdate(trackId, { $inc: { playCount: 1 } });
1485
+ const updatedTrack = await db.track.findByIdAndUpdate(trackId, { $inc: { playCount: 1 } }, { new: true });
1407
1486
  } catch (error) {
1408
1487
  logger.error(`Error logging play history: ${error.message}`);
1409
1488
  }
1489
+ } else {
1490
+ try {
1491
+ const updatedTrack = await db.track.findByIdAndUpdate(trackId, { $inc: { playCount: 1 } }, { new: true });
1492
+ } catch (error) {
1493
+ logger.error(`Error incrementing playCount: ${error.message}`);
1494
+ }
1410
1495
  }
1411
1496
  if (range) {
1412
1497
  const parts = range.replace(/bytes=/, "").split("-");
@@ -1858,9 +1943,11 @@ const StreamingHandler = function(db) {
1858
1943
  // Handle WebSocket messages for music streaming
1859
1944
  handleStreamingMessage: async (ws, message) => {
1860
1945
  try {
1946
+ console.log("StreamingHandler: Received message:", { action: message.action, data: message.data });
1861
1947
  const { action, data } = message;
1862
1948
  switch (action) {
1863
1949
  case "startPlaying":
1950
+ console.log("StreamingHandler: Processing startPlaying event for track:", data.trackId, "user:", ws.userId);
1864
1951
  if (ws.userId && data.trackId) {
1865
1952
  await db.playHistory.create({
1866
1953
  user: ws.userId,
@@ -1870,7 +1957,9 @@ const StreamingHandler = function(db) {
1870
1957
  playedFrom: data.from || "other",
1871
1958
  contextId: data.contextId || null
1872
1959
  });
1873
- await db.track.findByIdAndUpdate(data.trackId, { $inc: { playCount: 1 } });
1960
+ console.log("StreamingHandler: Created play history record");
1961
+ const trackUpdate = await db.track.findByIdAndUpdate(data.trackId, { $inc: { playCount: 1 } }, { new: true });
1962
+ console.log("StreamingHandler: Updated track playCount to:", trackUpdate?.playCount);
1874
1963
  ws.send(
1875
1964
  JSON.stringify({
1876
1965
  type: "playAcknowledged",
@@ -1979,9 +2068,13 @@ function initializeMusic({ app, db, wss, origins, publicPath }) {
1979
2068
  const { getInstance: getInstance2 } = globals_abac.globalsabac;
1980
2069
  const abac2 = getInstance2(db);
1981
2070
  musicPolicies(abac2);
1982
- const { WebSocketManager } = globals_websocket.WebSocketManager;
1983
- if (global.webSocketManager && global.webSocketManager instanceof WebSocketManager) {
1984
- global.webSocketManager.registerModule("music-streaming", StreamingHandler(db).handleStreamingMessage);
2071
+ if (wss) {
2072
+ console.log("Music Server: Registering music-streaming WebSocket handler");
2073
+ const handler = StreamingHandler(db);
2074
+ wss.registerModule("music-streaming", handler.handleStreamingMessage);
2075
+ console.log("Music Server: WebSocket handler registered successfully");
2076
+ } else {
2077
+ console.log("Music Server: WebSocket server (wss) not provided, streaming handler not registered");
1985
2078
  }
1986
2079
  new globals_logger.Cache({ ttlSeconds: 60 * 15 });
1987
2080
  const musicLogger = new globals_logger.Logger(db);