@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,9 +1,11 @@
1
1
  import { g as globalsabac } from "./globals.abac-DNdtSYop.js";
2
2
  import { L as Logger, C as Cache } from "./globals.logger-Bf6rRU7j.js";
3
- import { W as WebSocketManager } from "./globals.websocket-DzvdIBf6.js";
4
- import { C as CRUD } from "./crud-Cwx5VlSm.js";
3
+ import "cookie";
4
+ import "jsonwebtoken";
5
+ import "uWebSockets.js";
6
+ import { C as CRUD } from "./crud-sE7GLPbj.js";
5
7
  import { A as ABAC } from "./abac-Cf_9lCSh.js";
6
- import { V as Verifier, a as Validator } from "./globals.verifier-CWFz5Gh2.js";
8
+ import { V as Verifier, a as Validator } from "./globals.verifier-DFqKQ7hK.js";
7
9
  import fs$1 from "fs";
8
10
  import path$1 from "path";
9
11
  import { a as applyCommonSchema } from "./common.schema-Bw1O5_2Q.js";
@@ -197,7 +199,7 @@ function setupTracksRoutes(app, db) {
197
199
  model: db.track,
198
200
  modelName: "track",
199
201
  basePath: "/api/tracks",
200
- auth: true,
202
+ auth: { read: false },
201
203
  verifiers: {
202
204
  create: verifier.createVerifier,
203
205
  read: verifier.readVerifier,
@@ -205,6 +207,9 @@ function setupTracksRoutes(app, db) {
205
207
  delete: verifier.deleteVerifier
206
208
  },
207
209
  abac,
210
+ policies: {
211
+ read: { enabled: false }
212
+ },
208
213
  cache: {
209
214
  enabled: true,
210
215
  ttl: 300,
@@ -215,13 +220,18 @@ function setupTracksRoutes(app, db) {
215
220
  logReads: false
216
221
  }
217
222
  });
223
+ tracksCRUD.policies.disableForAction("get-by-url");
224
+ tracksCRUD.policies.disableForAction("recent");
225
+ tracksCRUD.policies.disableForAction("popular");
226
+ tracksCRUD.policies.disableForAction("by-genre");
218
227
  tracksCRUD.addAction("get-by-url", {
219
228
  method: "get",
220
229
  path: "/url/:url",
221
230
  auth: false,
231
+ abac: { enabled: false },
222
232
  handler: async (req, res) => {
223
233
  try {
224
- const track = await db.track.findOne({ url: req.params.url });
234
+ 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");
225
235
  if (!track) {
226
236
  return res.status(404).json({ error: "Track not found" });
227
237
  }
@@ -248,13 +258,14 @@ function setupTracksRoutes(app, db) {
248
258
  method: "get",
249
259
  path: "/recent",
250
260
  auth: false,
261
+ abac: { enabled: false },
251
262
  handler: async (req, res) => {
252
263
  try {
253
264
  const limit = parseInt(req.query.limit) || 10;
254
265
  const recentTracks = await db.track.find({
255
266
  status: "published",
256
267
  isPublic: true
257
- }).sort({ createdAt: -1 }).limit(limit);
268
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").sort({ createdAt: -1 }).limit(limit);
258
269
  res.json(recentTracks);
259
270
  } catch (error) {
260
271
  console.error(error);
@@ -266,13 +277,14 @@ function setupTracksRoutes(app, db) {
266
277
  method: "get",
267
278
  path: "/popular",
268
279
  auth: false,
280
+ abac: { enabled: false },
269
281
  handler: async (req, res) => {
270
282
  try {
271
283
  const limit = parseInt(req.query.limit) || 10;
272
284
  const popularTracks = await db.track.find({
273
285
  status: "published",
274
286
  isPublic: true
275
- }).sort({ playCount: -1 }).limit(limit);
287
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").sort({ playCount: -1 }).limit(limit);
276
288
  res.json(popularTracks);
277
289
  } catch (error) {
278
290
  console.error(error);
@@ -284,13 +296,14 @@ function setupTracksRoutes(app, db) {
284
296
  method: "get",
285
297
  path: "/genre/:genreId",
286
298
  auth: false,
299
+ abac: { enabled: false },
287
300
  handler: async (req, res) => {
288
301
  try {
289
302
  const tracks = await db.track.find({
290
303
  genre: req.params.genreId,
291
304
  status: "published",
292
305
  isPublic: true
293
- }).sort({ releaseDate: -1 });
306
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").sort({ releaseDate: -1 });
294
307
  res.json(tracks);
295
308
  } catch (error) {
296
309
  console.error(error);
@@ -448,7 +461,7 @@ function setupArtistsRoutes(app, db) {
448
461
  model: db.artist,
449
462
  modelName: "artist",
450
463
  basePath: "/api/artists",
451
- auth: true,
464
+ auth: { read: false },
452
465
  verifiers: {
453
466
  create: verifier.createVerifier,
454
467
  read: verifier.readVerifier,
@@ -456,6 +469,9 @@ function setupArtistsRoutes(app, db) {
456
469
  delete: verifier.deleteVerifier
457
470
  },
458
471
  abac,
472
+ policies: {
473
+ read: { enabled: false }
474
+ },
459
475
  cache: {
460
476
  enabled: true,
461
477
  ttl: 300,
@@ -470,6 +486,7 @@ function setupArtistsRoutes(app, db) {
470
486
  method: "get",
471
487
  path: "/url/:url",
472
488
  auth: false,
489
+ abac: { enabled: false },
473
490
  handler: async (req, res) => {
474
491
  try {
475
492
  const artist = await db.artist.findOne({ url: req.params.url });
@@ -487,6 +504,7 @@ function setupArtistsRoutes(app, db) {
487
504
  method: "get",
488
505
  path: "/:artistId/discography",
489
506
  auth: false,
507
+ abac: { enabled: false },
490
508
  handler: async (req, res) => {
491
509
  try {
492
510
  const { artistId } = req.params;
@@ -495,10 +513,12 @@ function setupArtistsRoutes(app, db) {
495
513
  artist: artistId,
496
514
  status: "published",
497
515
  isPublic: true
498
- }).populate("album", "title").sort({ releaseDate: -1 });
516
+ }).populate("album", "title url coverArt").populate("genre", "name").sort({ playCount: -1 }).limit(10);
499
517
  res.json({
500
518
  albums,
501
519
  tracks,
520
+ singles: tracks.filter((track) => !track.album),
521
+ // треки без альбома считаем синглами
502
522
  artist: artistId
503
523
  });
504
524
  } catch (error) {
@@ -541,6 +561,7 @@ function setupArtistsRoutes(app, db) {
541
561
  method: "get",
542
562
  path: "/:artistId/related",
543
563
  auth: false,
564
+ abac: { enabled: false },
544
565
  handler: async (req, res) => {
545
566
  try {
546
567
  const { artistId } = req.params;
@@ -723,7 +744,7 @@ function setupAlbumsRoutes(app, db) {
723
744
  model: db.album,
724
745
  modelName: "album",
725
746
  basePath: "/api/albums",
726
- auth: true,
747
+ auth: { read: false },
727
748
  verifiers: {
728
749
  create: verifier.createVerifier,
729
750
  read: verifier.readVerifier,
@@ -731,6 +752,9 @@ function setupAlbumsRoutes(app, db) {
731
752
  delete: verifier.deleteVerifier
732
753
  },
733
754
  abac,
755
+ policies: {
756
+ read: { enabled: false }
757
+ },
734
758
  cache: {
735
759
  enabled: true,
736
760
  ttl: 300,
@@ -745,12 +769,21 @@ function setupAlbumsRoutes(app, db) {
745
769
  method: "get",
746
770
  path: "/url/:url",
747
771
  auth: false,
772
+ abac: { enabled: false },
748
773
  handler: async (req, res) => {
749
774
  try {
750
- const album = await db.album.findOne({ url: req.params.url }).populate("artists", "name url");
775
+ const album = await db.album.findOne({ url: req.params.url }).populate("artists", "name url photoUrl isVerified");
751
776
  if (!album) {
752
777
  return res.status(404).json({ error: "Album not found" });
753
778
  }
779
+ const trackCount = await db.track.countDocuments({
780
+ album: album._id,
781
+ status: "published"
782
+ });
783
+ if (album.totalTracks !== trackCount) {
784
+ album.totalTracks = trackCount;
785
+ await album.save();
786
+ }
754
787
  res.json(album);
755
788
  } catch (error) {
756
789
  console.error(error);
@@ -762,6 +795,7 @@ function setupAlbumsRoutes(app, db) {
762
795
  method: "get",
763
796
  path: "/:albumId/tracks",
764
797
  auth: false,
798
+ abac: { enabled: false },
765
799
  handler: async (req, res) => {
766
800
  try {
767
801
  const { albumId } = req.params;
@@ -769,7 +803,7 @@ function setupAlbumsRoutes(app, db) {
769
803
  album: albumId,
770
804
  status: "published",
771
805
  isPublic: true
772
- }).populate("artist", "name url").populate("genre", "name").sort({ trackNumber: 1, createdAt: 1 });
806
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").populate("genre", "name url").sort({ trackNumber: 1, createdAt: 1 });
773
807
  res.json(tracks);
774
808
  } catch (error) {
775
809
  console.error(error);
@@ -781,6 +815,7 @@ function setupAlbumsRoutes(app, db) {
781
815
  method: "get",
782
816
  path: "/featured",
783
817
  auth: false,
818
+ abac: { enabled: false },
784
819
  handler: async (req, res) => {
785
820
  try {
786
821
  const limit = parseInt(req.query.limit) || 10;
@@ -790,7 +825,17 @@ function setupAlbumsRoutes(app, db) {
790
825
  $gte: new Date(Date.now() - 90 * 24 * 60 * 60 * 1e3)
791
826
  // последние 90 дней
792
827
  }
793
- }).populate("artists", "name url").sort({ createdAt: -1 }).limit(limit);
828
+ }).populate("artists", "name url photoUrl isVerified").sort({ createdAt: -1 }).limit(limit);
829
+ for (const album of featuredAlbums) {
830
+ const trackCount = await db.track.countDocuments({
831
+ album: album._id,
832
+ status: "published"
833
+ });
834
+ if (album.totalTracks !== trackCount) {
835
+ album.totalTracks = trackCount;
836
+ await album.save();
837
+ }
838
+ }
794
839
  res.json(featuredAlbums);
795
840
  } catch (error) {
796
841
  console.error(error);
@@ -911,7 +956,7 @@ function playlistsVerifierFactory(db) {
911
956
  },
912
957
  status: {
913
958
  rule: "optional",
914
- validator: Validator.schema().string().oneOf(["draft", "published", "archived"])
959
+ validator: Validator.schema().string().oneOf(["draft", "published", "archived", "featured"])
915
960
  },
916
961
  skip: {
917
962
  rule: "optional",
@@ -956,7 +1001,7 @@ function setupPlaylistsRoutes(app, db) {
956
1001
  model: db.playlist,
957
1002
  modelName: "playlist",
958
1003
  basePath: "/api/playlists",
959
- auth: true,
1004
+ auth: { read: false },
960
1005
  verifiers: {
961
1006
  create: verifier.createVerifier,
962
1007
  read: verifier.readVerifier,
@@ -964,6 +1009,9 @@ function setupPlaylistsRoutes(app, db) {
964
1009
  delete: verifier.deleteVerifier
965
1010
  },
966
1011
  abac,
1012
+ policies: {
1013
+ read: { enabled: false }
1014
+ },
967
1015
  cache: {
968
1016
  enabled: true,
969
1017
  ttl: 300,
@@ -978,23 +1026,38 @@ function setupPlaylistsRoutes(app, db) {
978
1026
  method: "get",
979
1027
  path: "/url/:url",
980
1028
  auth: false,
1029
+ abac: { enabled: false },
981
1030
  handler: async (req, res) => {
982
1031
  try {
983
1032
  const playlist = await db.playlist.findOne({ url: req.params.url }).populate({
984
1033
  path: "tracks.track",
985
- select: "-lyrics"
1034
+ select: "-lyrics",
1035
+ populate: [
1036
+ {
1037
+ path: "artist",
1038
+ select: "name url photoUrl isVerified"
1039
+ },
1040
+ {
1041
+ path: "album",
1042
+ select: "title url coverArt"
1043
+ },
1044
+ {
1045
+ path: "genre",
1046
+ select: "name url"
1047
+ }
1048
+ ]
986
1049
  });
987
1050
  if (!playlist) {
988
1051
  return res.status(404).json({ error: "Playlist not found" });
989
1052
  }
990
- if (!playlist.isPublic) {
991
- if (!req.userId) {
992
- return res.status(403).json({ error: "Access denied to private playlist" });
993
- }
1053
+ if (!playlist.isPublic && !req.userId) {
1054
+ return res.status(404).json({ error: "Playlist not found" });
1055
+ }
1056
+ if (!playlist.isPublic && req.userId) {
994
1057
  const isOwner = playlist.owner.target.toString() === req.userId;
995
1058
  const isCollaborator = playlist.collaborators.some((collab) => collab.toString() === req.userId);
996
1059
  if (!isOwner && !isCollaborator) {
997
- return res.status(403).json({ error: "Access denied to private playlist" });
1060
+ return res.status(404).json({ error: "Playlist not found" });
998
1061
  }
999
1062
  }
1000
1063
  res.json(playlist);
@@ -1015,7 +1078,20 @@ function setupPlaylistsRoutes(app, db) {
1015
1078
  if (userId !== req.userId) {
1016
1079
  query.isPublic = true;
1017
1080
  }
1018
- const playlists = await db.playlist.find(query).populate("tracks.track", "title artist").sort({ updatedAt: -1 });
1081
+ const playlists = await db.playlist.find(query).populate({
1082
+ path: "tracks.track",
1083
+ select: "title artist album genre duration",
1084
+ populate: [
1085
+ {
1086
+ path: "artist",
1087
+ select: "name url photoUrl isVerified"
1088
+ },
1089
+ {
1090
+ path: "album",
1091
+ select: "title url coverArt"
1092
+ }
1093
+ ]
1094
+ }).sort({ updatedAt: -1 });
1019
1095
  res.json(playlists);
1020
1096
  } catch (error) {
1021
1097
  console.error(error);
@@ -1225,7 +1301,7 @@ function setupGenresRoutes(app, db) {
1225
1301
  model: db.genre,
1226
1302
  modelName: "genre",
1227
1303
  basePath: "/api/genres",
1228
- auth: true,
1304
+ auth: { read: false },
1229
1305
  verifiers: {
1230
1306
  create: verifier.createVerifier,
1231
1307
  read: verifier.readVerifier,
@@ -1233,6 +1309,9 @@ function setupGenresRoutes(app, db) {
1233
1309
  delete: verifier.deleteVerifier
1234
1310
  },
1235
1311
  abac,
1312
+ policies: {
1313
+ read: { enabled: false }
1314
+ },
1236
1315
  cache: {
1237
1316
  enabled: true,
1238
1317
  ttl: 300,
@@ -1319,7 +1398,7 @@ const SearchController = function(app, db) {
1319
1398
  $or: [{ title: searchRegex }, { tags: searchRegex }],
1320
1399
  status: "published",
1321
1400
  isPublic: true
1322
- }).limit(limitNum);
1401
+ }).populate("artist", "name url photoUrl isVerified").populate("album", "title url coverArt").populate("genre", "name url").limit(limitNum);
1323
1402
  }
1324
1403
  if (types.includes("albums") || types.includes("all")) {
1325
1404
  results.albums = await db.album.find({
@@ -1382,7 +1461,6 @@ const StreamController = function(app, db, publicPath) {
1382
1461
  });
1383
1462
  }
1384
1463
  const fileUrl = track.fileUrl;
1385
- console.log("public is", publicPath);
1386
1464
  const filePath = path$1.join(publicPath, fileUrl);
1387
1465
  if (!fs$1.existsSync(filePath)) {
1388
1466
  logger.error(`File not found: ${filePath}`);
@@ -1391,6 +1469,7 @@ const StreamController = function(app, db, publicPath) {
1391
1469
  const stat = fs$1.statSync(filePath);
1392
1470
  const fileSize = stat.size;
1393
1471
  const range = req.headers.range;
1472
+ const isFirstRequest = !range || range === "bytes=0-";
1394
1473
  if (req.userId) {
1395
1474
  try {
1396
1475
  await db.playHistory.create({
@@ -1401,10 +1480,16 @@ const StreamController = function(app, db, publicPath) {
1401
1480
  playedFrom: req.query.from || "other",
1402
1481
  contextId: req.query.contextId || null
1403
1482
  });
1404
- await db.track.findByIdAndUpdate(trackId, { $inc: { playCount: 1 } });
1483
+ const updatedTrack = await db.track.findByIdAndUpdate(trackId, { $inc: { playCount: 1 } }, { new: true });
1405
1484
  } catch (error) {
1406
1485
  logger.error(`Error logging play history: ${error.message}`);
1407
1486
  }
1487
+ } else {
1488
+ try {
1489
+ const updatedTrack = await db.track.findByIdAndUpdate(trackId, { $inc: { playCount: 1 } }, { new: true });
1490
+ } catch (error) {
1491
+ logger.error(`Error incrementing playCount: ${error.message}`);
1492
+ }
1408
1493
  }
1409
1494
  if (range) {
1410
1495
  const parts = range.replace(/bytes=/, "").split("-");
@@ -1856,9 +1941,11 @@ const StreamingHandler = function(db) {
1856
1941
  // Handle WebSocket messages for music streaming
1857
1942
  handleStreamingMessage: async (ws, message) => {
1858
1943
  try {
1944
+ console.log("StreamingHandler: Received message:", { action: message.action, data: message.data });
1859
1945
  const { action, data } = message;
1860
1946
  switch (action) {
1861
1947
  case "startPlaying":
1948
+ console.log("StreamingHandler: Processing startPlaying event for track:", data.trackId, "user:", ws.userId);
1862
1949
  if (ws.userId && data.trackId) {
1863
1950
  await db.playHistory.create({
1864
1951
  user: ws.userId,
@@ -1868,7 +1955,9 @@ const StreamingHandler = function(db) {
1868
1955
  playedFrom: data.from || "other",
1869
1956
  contextId: data.contextId || null
1870
1957
  });
1871
- await db.track.findByIdAndUpdate(data.trackId, { $inc: { playCount: 1 } });
1958
+ console.log("StreamingHandler: Created play history record");
1959
+ const trackUpdate = await db.track.findByIdAndUpdate(data.trackId, { $inc: { playCount: 1 } }, { new: true });
1960
+ console.log("StreamingHandler: Updated track playCount to:", trackUpdate?.playCount);
1872
1961
  ws.send(
1873
1962
  JSON.stringify({
1874
1963
  type: "playAcknowledged",
@@ -1977,9 +2066,13 @@ function initializeMusic({ app, db, wss, origins, publicPath }) {
1977
2066
  const { getInstance: getInstance2 } = globalsabac;
1978
2067
  const abac = getInstance2(db);
1979
2068
  musicPolicies(abac);
1980
- const { WebSocketManager: WebSocketManager$1 } = WebSocketManager;
1981
- if (global.webSocketManager && global.webSocketManager instanceof WebSocketManager$1) {
1982
- global.webSocketManager.registerModule("music-streaming", StreamingHandler(db).handleStreamingMessage);
2069
+ if (wss) {
2070
+ console.log("Music Server: Registering music-streaming WebSocket handler");
2071
+ const handler = StreamingHandler(db);
2072
+ wss.registerModule("music-streaming", handler.handleStreamingMessage);
2073
+ console.log("Music Server: WebSocket handler registered successfully");
2074
+ } else {
2075
+ console.log("Music Server: WebSocket server (wss) not provided, streaming handler not registered");
1983
2076
  }
1984
2077
  new Cache({ ttlSeconds: 60 * 15 });
1985
2078
  const musicLogger = new Logger(db);
@@ -14,7 +14,7 @@ const globals_logger = require("./globals.logger-CZMgIMlM.cjs");
14
14
  const addUserStatusFields = require("./addUserStatusFields-7-66sf45.cjs");
15
15
  const jwt = require("jsonwebtoken");
16
16
  const googleMapsServicesJs = require("@googlemaps/google-maps-services-js");
17
- const globals_verifier = require("./globals.verifier-D68mHEBl.cjs");
17
+ const globals_verifier = require("./globals.verifier-C0zj_LLo.cjs");
18
18
  function _interopNamespaceDefault(e) {
19
19
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
20
20
  if (e) {
@@ -12,7 +12,7 @@ import { C as Cache } from "./globals.logger-Bf6rRU7j.js";
12
12
  import { a as addUserStatusFields, b as addMembersQuantity } from "./addUserStatusFields-Cc-JpmPo.js";
13
13
  import jwt from "jsonwebtoken";
14
14
  import * as googleMapsServicesJs from "@googlemaps/google-maps-services-js";
15
- import { V as Verifier, a as Validator } from "./globals.verifier-CWFz5Gh2.js";
15
+ import { V as Verifier, a as Validator } from "./globals.verifier-DFqKQ7hK.js";
16
16
  const controllerFactory$2 = (db) => {
17
17
  const Department = db.department;
18
18
  const readOne = (req, res) => {
@@ -10,8 +10,8 @@ const metadata_schema = require("./metadata.schema-RlxNv46L.cjs");
10
10
  const ownership_schema = require("./ownership.schema-D1p5XSpt.cjs");
11
11
  const authJwt = require("./authJwt-BIZ2GIfT.cjs");
12
12
  const globals_abac = require("./globals.abac-CPXLas7N.cjs");
13
- const globals_verifier = require("./globals.verifier-D68mHEBl.cjs");
14
- const crud = require("./crud-B-kQw3Z5.cjs");
13
+ const globals_verifier = require("./globals.verifier-C0zj_LLo.cjs");
14
+ const crud = require("./crud-JN_LFj01.cjs");
15
15
  const abac = require("./abac-6LjoG9u-.cjs");
16
16
  const controllerFactory$1 = (db) => {
17
17
  const Category = db.category;
@@ -8,8 +8,8 @@ import { a as applyMetadataSchema } from "./metadata.schema-CWmcDJN7.js";
8
8
  import { a as applyOwnershipSchema } from "./ownership.schema-BqH4v5vH.js";
9
9
  import { m as middlewareFactory } from "./authJwt-J1csaMWA.js";
10
10
  import { g as globalsabac } from "./globals.abac-DNdtSYop.js";
11
- import { a as Validator, V as Verifier } from "./globals.verifier-CWFz5Gh2.js";
12
- import { C as CRUD } from "./crud-Cwx5VlSm.js";
11
+ import { a as Validator, V as Verifier } from "./globals.verifier-DFqKQ7hK.js";
12
+ import { C as CRUD } from "./crud-sE7GLPbj.js";
13
13
  import { A as ABAC } from "./abac-Cf_9lCSh.js";
14
14
  const controllerFactory$1 = (db) => {
15
15
  const Category = db.category;
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const index = require("./index-BFxqqmgh.cjs");
4
4
  const globals_abac = require("./globals.abac-CPXLas7N.cjs");
5
5
  const globals_logger = require("./globals.logger-CZMgIMlM.cjs");
6
- const globals_verifier = require("./globals.verifier-D68mHEBl.cjs");
6
+ const globals_verifier = require("./globals.verifier-C0zj_LLo.cjs");
7
7
  const queryProcessor = require("./queryProcessor-B_X680wC.cjs");
8
8
  const queryValidatorConfig = {
9
9
  // status: { rule: 'optional', validator: Validator.schema().string().oneOf(['published', 'pending']), default: 'pending' },
@@ -22,8 +22,8 @@ const queryValidatorConfig = {
22
22
  skip: { rule: "optional", validator: globals_verifier.Validator.schema().number().integer().min(0), default: 0 },
23
23
  limit: {
24
24
  rule: "optional",
25
- validator: globals_verifier.Validator.schema().number().integer().min(1).max(100),
26
- default: 10
25
+ validator: globals_verifier.Validator.schema().number().integer().min(1).max(1e3),
26
+ default: 1e3
27
27
  },
28
28
  productId: { rule: "optional", validator: globals_verifier.Validator.schema().string(), default: null },
29
29
  variantId: { rule: "optional", validator: globals_verifier.Validator.schema().string(), default: null }
@@ -1,7 +1,7 @@
1
1
  import { m as middlewareIndexFactory } from "./index-_Edcmck_.js";
2
2
  import { g as globalsabac } from "./globals.abac-DNdtSYop.js";
3
3
  import { L as Logger, C as Cache } from "./globals.logger-Bf6rRU7j.js";
4
- import { a as Validator, V as Verifier } from "./globals.verifier-CWFz5Gh2.js";
4
+ import { a as Validator, V as Verifier } from "./globals.verifier-DFqKQ7hK.js";
5
5
  import { q as queryProcessorGlobals } from "./queryProcessor-CVcLPEnv.js";
6
6
  const queryValidatorConfig = {
7
7
  // status: { rule: 'optional', validator: Validator.schema().string().oneOf(['published', 'pending']), default: 'pending' },
@@ -20,8 +20,8 @@ const queryValidatorConfig = {
20
20
  skip: { rule: "optional", validator: Validator.schema().number().integer().min(0), default: 0 },
21
21
  limit: {
22
22
  rule: "optional",
23
- validator: Validator.schema().number().integer().min(1).max(100),
24
- default: 10
23
+ validator: Validator.schema().number().integer().min(1).max(1e3),
24
+ default: 1e3
25
25
  },
26
26
  productId: { rule: "optional", validator: Validator.schema().string(), default: null },
27
27
  variantId: { rule: "optional", validator: Validator.schema().string(), default: null }