@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.
- package/dist/_virtual/index.cjs +4 -4
- package/dist/_virtual/index.js +4 -4
- package/dist/_virtual/index2.cjs +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/builder.cjs +53 -90
- package/dist/builder.js +54 -91
- package/dist/{crud-B-kQw3Z5.cjs → crud-JN_LFj01.cjs} +3 -0
- package/dist/{crud-Cwx5VlSm.js → crud-sE7GLPbj.js} +3 -0
- package/dist/globals.server.cjs +322 -3
- package/dist/globals.server.js +303 -1
- package/dist/{globals.verifier-D68mHEBl.cjs → globals.verifier-C0zj_LLo.cjs} +8 -1
- package/dist/{globals.verifier-CWFz5Gh2.js → globals.verifier-DFqKQ7hK.js} +8 -1
- package/dist/inventory.server.cjs +2 -2
- package/dist/inventory.server.js +2 -2
- package/dist/{main-SZQ1QjeP.js → main-CJm5myDI.js} +631 -607
- package/dist/{main-MzmGbSxs.cjs → main-DTaE01lg.cjs} +6 -6
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +33 -7
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +33 -7
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Field/{Field.vue2.js.map → Field.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +5 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +5 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconTime.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/entities/IconTime.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +6 -6
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +22 -15
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +23 -16
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +31 -13
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +33 -15
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +39 -22
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +39 -22
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +385 -125
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +391 -131
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +24 -7
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +25 -8
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +99 -87
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +111 -99
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs +21 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +21 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +442 -210
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +445 -213
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +92 -117
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +93 -118
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +72 -113
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +78 -119
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +15 -12
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +15 -12
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +558 -429
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +560 -431
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +146 -284
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +149 -287
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +460 -63
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +462 -65
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +126 -136
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +129 -139
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +18 -15
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +18 -15
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +28 -23
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +29 -24
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.cjs +3 -6
- package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.js +9 -12
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.cjs +27 -1
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.js +27 -1
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/artists.cjs +6 -4
- package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/artists.js +6 -4
- package/dist/martyrs/src/modules/music/store/artists.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/player.cjs +5 -0
- package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/player.js +5 -0
- package/dist/martyrs/src/modules/music/store/player.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/tracks.cjs +22 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/tracks.js +22 -0
- package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs +4 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +4 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs +37 -70
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +38 -71
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +6 -5
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +45 -52
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +46 -53
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/music.server.cjs +124 -31
- package/dist/music.server.js +124 -31
- package/dist/organizations.server.cjs +1 -1
- package/dist/organizations.server.js +1 -1
- package/dist/products.server.cjs +2 -2
- package/dist/products.server.js +2 -2
- package/dist/rents.server.cjs +3 -3
- package/dist/rents.server.js +3 -3
- package/dist/style.css +373 -80
- package/dist/{web-D7lZjuC0.js → web-Dkk0_7TA.js} +1 -1
- package/dist/{web-D-YZ9KHz.cjs → web-stVkXd0l.cjs} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.prod.js +21 -5
- package/src/builder/rspack/rspack.config.spa.client.js +0 -44
- package/src/builder/rspack/rspack.config.ssr.client.js +40 -40
- package/src/components/Calendar/Calendar.vue +378 -377
- package/src/components/Feed/Feed.vue +28 -2
- package/src/modules/globals/controllers/classes/crud/crud.policies.js +5 -0
- package/src/modules/globals/controllers/classes/globals.validator.js +8 -1
- package/src/modules/globals/views/components/layouts/Client.vue +7 -0
- package/src/modules/music/README.md +8 -0
- package/src/modules/music/components/SidebarMusic.vue +6 -9
- package/src/modules/music/components/cards/AlbumCard.vue +20 -14
- package/src/modules/music/components/cards/ArtistCard.vue +1 -1
- package/src/modules/music/components/cards/PlaylistCard.vue +31 -11
- package/src/modules/music/components/cards/TrackListCard.vue +24 -13
- package/src/modules/music/components/forms/PlaylistForm.vue +417 -107
- package/src/modules/music/components/forms/SearchForm.vue +31 -8
- package/src/modules/music/components/forms/TrackForm.vue +50 -32
- package/src/modules/music/components/layouts/MusicBottomPlayer.vue +17 -0
- package/src/modules/music/components/pages/Album.vue +373 -186
- package/src/modules/music/components/pages/Artist.vue +54 -94
- package/src/modules/music/components/pages/MusicHome.vue +59 -56
- package/src/modules/music/components/pages/MusicLibrary.vue +13 -11
- package/src/modules/music/components/pages/Playlist.vue +495 -379
- package/src/modules/music/components/pages/SearchResults.vue +185 -313
- package/src/modules/music/components/pages/Track.vue +363 -69
- package/src/modules/music/components/player/MusicPlayer.vue +368 -97
- package/src/modules/music/components/player/TrackProgress.vue +76 -22
- package/src/modules/music/components/player/VolumeControl.vue +61 -28
- package/src/modules/music/controllers/search.controller.js +3 -0
- package/src/modules/music/controllers/stream.controller.js +11 -3
- package/src/modules/music/middlewares/playlists.verifier.js +1 -1
- package/src/modules/music/music.client.js +3 -6
- package/src/modules/music/music.server.js +8 -4
- package/src/modules/music/router/music.js +8 -1
- package/src/modules/music/routes/albums.routes.js +37 -5
- package/src/modules/music/routes/artists.routes.js +14 -4
- package/src/modules/music/routes/genres.routes.js +5 -1
- package/src/modules/music/routes/playlists.routes.js +42 -9
- package/src/modules/music/routes/tracks.routes.js +27 -2
- package/src/modules/music/store/artists.js +6 -2
- package/src/modules/music/store/player.js +6 -0
- package/src/modules/music/store/tracks.js +31 -0
- package/src/modules/music/websocket/streaming.handler.js +7 -1
- package/src/modules/rents/controllers/services/rents.services.js +2 -2
- package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +4 -3
- package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +42 -40
- package/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue +3 -1
- package/src/modules/rents/views/components/pages/Rents.vue +60 -56
- package/dist/globals.websocket-DzvdIBf6.js +0 -306
- package/dist/globals.websocket-k6_B1T7k.cjs +0 -322
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +0 -69
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +0 -69
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +0 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +0 -104
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +0 -104
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +0 -1
- package/src/modules/music/components/cards/TrackCard.vue +0 -86
- package/src/modules/music/components/layouts/MusicLayout.vue +0 -83
package/dist/music.server.js
CHANGED
|
@@ -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
|
|
4
|
-
import
|
|
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-
|
|
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:
|
|
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:
|
|
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({
|
|
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:
|
|
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:
|
|
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
|
-
|
|
992
|
-
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
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-
|
|
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-
|
|
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) => {
|
package/dist/products.server.cjs
CHANGED
|
@@ -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-
|
|
14
|
-
const crud = require("./crud-
|
|
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;
|
package/dist/products.server.js
CHANGED
|
@@ -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-
|
|
12
|
-
import { C as CRUD } from "./crud-
|
|
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;
|
package/dist/rents.server.cjs
CHANGED
|
@@ -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-
|
|
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(
|
|
26
|
-
default:
|
|
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 }
|
package/dist/rents.server.js
CHANGED
|
@@ -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-
|
|
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(
|
|
24
|
-
default:
|
|
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 }
|