@ozdao/martyrs 0.2.484 → 0.2.486
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/{Media-2NvSR0vE.js → Media-CXQSPHt2.js} +1 -1
- package/dist/{Media-EYG9WPI4.cjs → Media-DhpD64nT.cjs} +1 -1
- 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/auth.server.cjs +2 -23
- package/dist/auth.server.js +1 -22
- package/dist/globals.crud-BQG1Lm0A.js +90 -0
- package/dist/globals.crud-Dv7UXbRM.cjs +89 -0
- package/dist/globals.server.cjs +3 -322
- package/dist/globals.server.js +1 -303
- package/dist/globals.websocket-DzvdIBf6.js +306 -0
- package/dist/globals.websocket-k6_B1T7k.cjs +322 -0
- package/dist/{main-BT1yoKH2.js → main-Cfh5138F.js} +2102 -1993
- package/dist/main-DKJqboZy.cjs +11 -0
- package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
- package/dist/martyrs/src/components/{DatePicker → Calendar}/Calendar.vue.cjs +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/{DatePicker → Calendar}/Calendar.vue.js +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs +13 -7
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.js +14 -8
- package/dist/martyrs/src/components/Field/Field.vue.js.map +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/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js.map → Popup.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/auth.client.cjs +3 -0
- package/dist/martyrs/src/modules/auth/auth.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/auth.client.js +3 -0
- package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
- package/dist/martyrs/src/modules/auth/locales/en.cjs +79 -0
- package/dist/martyrs/src/modules/auth/locales/en.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/en.js +79 -0
- package/dist/martyrs/src/modules/auth/locales/en.js.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/index.cjs +10 -0
- package/dist/martyrs/src/modules/auth/locales/index.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/index.js +10 -0
- package/dist/martyrs/src/modules/auth/locales/index.js.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/ru.cjs +79 -0
- package/dist/martyrs/src/modules/auth/locales/ru.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/ru.js +79 -0
- package/dist/martyrs/src/modules/auth/locales/ru.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +2 -11
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +4 -6
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +4 -6
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +7 -9
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +7 -9
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +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/ProfileEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- 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 +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +12 -14
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +12 -14
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +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/auth/views/components/sections/SliderFeatures.vue.cjs +5 -47
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +5 -47
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/globals.client.cjs +1 -0
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +1 -0
- package/dist/martyrs/src/modules/globals/globals.client.js.map +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/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +3 -3
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/axios-instance.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/axios-instance.js.map +1 -1
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs +49 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js +49 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +34 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +34 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +115 -122
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +163 -170
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +87 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +87 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +83 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +83 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +83 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +83 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +68 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +68 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +174 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +174 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +80 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +80 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.cjs +328 -0
- package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.js +328 -0
- package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +115 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +115 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.cjs +44 -0
- package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.js +44 -0
- package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.cjs +305 -0
- package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.js +305 -0
- package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.cjs +44 -0
- package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.js +44 -0
- package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.cjs +199 -0
- package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.js +199 -0
- package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.cjs +290 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.js +290 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.cjs +467 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.js +467 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.cjs +382 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.js +382 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.cjs +303 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.js +303 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +221 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +221 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +200 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +200 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.cjs +50 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.js +50 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.cjs +556 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.js +556 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +449 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +449 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.cjs +87 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.js +87 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +227 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +227 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +85 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +85 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +71 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +71 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/music.client.cjs +137 -0
- package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/music.client.js +137 -0
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/music.cjs +99 -0
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/music.js +99 -0
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/albums.cjs +167 -0
- package/dist/martyrs/src/modules/music/store/albums.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/albums.js +167 -0
- package/dist/martyrs/src/modules/music/store/albums.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/artists.cjs +154 -0
- package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/artists.js +154 -0
- package/dist/martyrs/src/modules/music/store/artists.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/player.cjs +297 -0
- package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/player.js +297 -0
- package/dist/martyrs/src/modules/music/store/player.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/playlists.cjs +174 -0
- package/dist/martyrs/src/modules/music/store/playlists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/playlists.js +174 -0
- package/dist/martyrs/src/modules/music/store/playlists.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/search.cjs +109 -0
- package/dist/martyrs/src/modules/music/store/search.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/search.js +109 -0
- package/dist/martyrs/src/modules/music/store/search.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs +180 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/tracks.js +180 -0
- package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -0
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- 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/FormDelivery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- 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/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- 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/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/pages/views/components/partials/SidebarPages.vue.cjs +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +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 +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +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/reports/components/sections/FormReport.vue.cjs +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- 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/Map.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +38 -36
- package/dist/music.server.cjs +1407 -0
- package/dist/music.server.js +1407 -0
- package/dist/orders.server.cjs +3 -88
- package/dist/orders.server.js +2 -87
- package/dist/socials.schema-BOZV82Mp.js +25 -0
- package/dist/socials.schema-CtpSF9dE.cjs +24 -0
- package/dist/style.css +250 -97
- package/package.json +1 -1
- package/src/.martyrs/filemap.json +2 -2
- package/src/components/Feed/Feed.vue +1 -1
- package/src/components/Field/Field.vue +42 -27
- package/src/components/index.js +2 -0
- package/src/main.js +6 -0
- package/src/modules/auth/auth.client.js +7 -0
- package/src/modules/auth/locales/en.js +76 -0
- package/src/modules/auth/locales/index.js +7 -0
- package/src/modules/auth/locales/ru.js +76 -0
- package/src/modules/auth/views/components/layouts/Auth.vue +2 -44
- package/src/modules/auth/views/components/pages/EnterCode.vue +5 -7
- package/src/modules/auth/views/components/pages/EnterPassword.vue +7 -10
- package/src/modules/auth/views/components/pages/ResetPassword.vue +9 -12
- package/src/modules/auth/views/components/pages/SignIn.vue +12 -15
- package/src/modules/auth/views/components/pages/SignUp.vue +9 -12
- package/src/modules/auth/views/components/sections/SliderFeatures.vue +11 -48
- package/src/modules/events/components/pages/EditEvent.vue +1 -1
- package/src/modules/globals/globals.client.js +1 -0
- package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +1 -1
- package/src/modules/globals/views/utils/axios-instance.js +15 -1
- package/src/modules/icons/actions/IconShow.vue +23 -0
- package/src/modules/icons/pages/IconsPage.vue +114 -120
- package/src/modules/products/components/pages/Product.vue +1 -1
- package/dist/main-rF15sgss.cjs +0 -11
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/DatePicker/Calendar.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/DatePicker/Calendar.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js.map +0 -1
- package/src/modules/auth/views/localization/EnterCode.json +0 -16
- package/src/modules/auth/views/localization/EnterPassword.json +0 -22
- package/src/modules/auth/views/localization/ResetPassword.json +0 -26
- package/src/modules/auth/views/localization/SignIn.json +0 -34
- package/src/modules/auth/views/localization/SignUp.json +0 -28
- /package/src/components/{DatePicker → Calendar}/Calendar.vue +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"music.client.js","sources":["../../../../../src/modules/music/music.client.js"],"sourcesContent":["// Store modules\nimport * as storeAlbums from './store/albums.js';\nimport * as storeArtists from './store/artists.js';\nimport * as storePlayer from './store/player.js';\nimport * as storePlaylists from './store/playlists.js';\nimport * as storeSearch from './store/search.js';\nimport * as storeTracks from './store/tracks.js';\n\n// Router\nimport routerMusic from './router/music.js';\n\n// Layouts\nimport MusicLayout from './components/layouts/MusicLayout.vue';\n\n// Pages\nimport AlbumDetail from './components/pages/AlbumDetail.vue';\nimport ArtistDetail from './components/pages/ArtistDetail.vue';\nimport MusicHome from './components/pages/MusicHome.vue';\nimport MusicLibrary from './components/pages/MusicLibrary.vue';\nimport MusicUpload from './components/pages/MusicUpload.vue';\nimport PlaylistDetail from './components/pages/PlaylistDetail.vue';\nimport SearchResults from './components/pages/SearchResults.vue';\nimport TrackDetail from './components/pages/TrackDetail.vue';\n\n// Components - Player\nimport MusicPlayer from './components/player/MusicPlayer.vue';\nimport TrackProgress from './components/player/TrackProgress.vue';\nimport VolumeControl from './components/player/VolumeControl.vue';\n\n// Components - Cards\nimport AlbumCard from './components/cards/AlbumCard.vue';\nimport ArtistCard from './components/cards/ArtistCard.vue';\nimport PlaylistCard from './components/cards/PlaylistCard.vue';\nimport TrackCard from './components/cards/TrackCard.vue';\n\n// Components - Lists\nimport AlbumList from './components/lists/AlbumList.vue';\nimport ArtistList from './components/lists/ArtistList.vue';\nimport PlaylistList from './components/lists/PlaylistList.vue';\nimport TrackList from './components/lists/TrackList.vue';\n\n// Components - Forms\nimport PlaylistForm from './components/forms/PlaylistForm.vue';\nimport SearchForm from './components/forms/SearchForm.vue';\nimport UploadForm from './components/forms/UploadForm.vue';\n\n// WebSocket integration for streaming\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n\n/**\n * Initialize Music module on client-side\n * @param {Object} app - Vue app instance\n * @param {Object} store - Global store instance\n * @param {Object} router - Vue router instance\n * @param {Object} config - Configuration options\n * @param {Object} options - Additional options\n */\nfunction initializeMusic(app, store, router, config, options = {}) {\n const route = options.route || 'Home';\n\n // Register routes\n router.addRoute(route, routerMusic);\n\n // Register store modules\n store.addStore('tracks', storeTracks);\n store.addStore('playlists', storePlaylists);\n store.addStore('albums', storeAlbums);\n store.addStore('artists', storeArtists);\n store.addStore('player', storePlayer);\n store.addStore('search', storeSearch);\n\n // Set up WebSocket subscription for music streaming\n if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {\n globalWebSocket.initialize({\n wsUrl: app.config.globalProperties.WSS_URL,\n maxReconnectAttempts: 10,\n reconnectDelay: 2000,\n });\n\n // Subscribe to music streaming module when authenticated\n if (options.userId) {\n globalWebSocket\n .connect(options.userId)\n .then(() => {\n globalWebSocket.subscribeModule('music-streaming');\n })\n .catch(err => {\n console.error('Failed to connect to WebSocket for music streaming:', err);\n });\n }\n }\n\n // Register global components if needed\n app.component('MusicPlayer', MusicPlayer);\n}\n\n// Module export\nconst ModuleMusic = {\n initialize: initializeMusic,\n views: {\n store: {\n storeTracks,\n storePlaylists,\n storeAlbums,\n storeArtists,\n storePlayer,\n storeSearch,\n },\n router: {\n routerMusic,\n },\n components: {\n // Layouts\n MusicLayout,\n // Pages\n MusicHome,\n SearchResults,\n ArtistDetail,\n AlbumDetail,\n PlaylistDetail,\n TrackDetail,\n MusicLibrary,\n MusicUpload,\n // Player Components\n MusicPlayer,\n TrackProgress,\n VolumeControl,\n // Cards\n TrackCard,\n AlbumCard,\n PlaylistCard,\n ArtistCard,\n // Lists\n TrackList,\n AlbumList,\n PlaylistList,\n ArtistList,\n // Forms\n PlaylistForm,\n SearchForm,\n UploadForm,\n },\n },\n};\n\n// Named exports for direct component imports\nexport {\n AlbumCard,\n AlbumDetail,\n AlbumList,\n ArtistCard,\n ArtistDetail,\n ArtistList,\n // Pages\n MusicHome,\n // Layout\n MusicLayout,\n MusicLibrary,\n // Player Components\n MusicPlayer,\n MusicUpload,\n PlaylistCard,\n PlaylistDetail,\n // Forms\n PlaylistForm,\n PlaylistList,\n SearchForm,\n SearchResults,\n // Cards\n TrackCard,\n TrackDetail,\n // Lists\n TrackList,\n TrackProgress,\n UploadForm,\n VolumeControl,\n // Router\n routerMusic,\n storeAlbums,\n storeArtists,\n storePlayer,\n storePlaylists,\n storeSearch,\n // Store modules\n storeTracks,\n};\n\n// Default export\nexport default ModuleMusic;\n"],"names":["storeTracks","storePlaylists","storeAlbums","storeArtists","storePlayer","storeSearch","MusicLayout","ArtistDetail","PlaylistDetail","TrackDetail","MusicLibrary","MusicUpload","AlbumList","PlaylistList","ArtistList","PlaylistForm","UploadForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,SAAS,gBAAgB,KAAK,OAAO,QAAQ,QAAQ,UAAU,IAAI;AACjE,QAAM,QAAQ,QAAQ,SAAS;AAG/B,SAAO,SAAS,OAAO,WAAW;AAGlC,QAAM,SAAS,UAAUA,MAAW;AACpC,QAAM,SAAS,aAAaC,SAAc;AAC1C,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,WAAWC,OAAY;AACtC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AAGpC,MAAI,QAAQ,oBAAoB,SAAS,IAAI,OAAO,iBAAiB,SAAS;AAC5E,oBAAgB,WAAW;AAAA,MACzB,OAAO,IAAI,OAAO,iBAAiB;AAAA,MACnC,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,IACtB,CAAK;AAGD,QAAI,QAAQ,QAAQ;AAClB,sBACG,QAAQ,QAAQ,MAAM,EACtB,KAAK,MAAM;AACV,wBAAgB,gBAAgB,iBAAiB;AAAA,MAClD,CAAA,EACA,MAAM,SAAO;AACZ,gBAAQ,MAAM,uDAAuD,GAAG;AAAA,MAClF,CAAS;AAAA,IACT;AAAA,EACA;AAGE,MAAI,UAAU,eAAe,WAAW;AAC1C;AAGK,MAAC,cAAc;AAAA,EAClB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,aAAML;AAAAA,MACN,gBAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,IACD;AAAA,IACD,QAAQ;AAAA,MACN;AAAA,IACD;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,aAAMC;AAAAA;AAAAA,MAEA;AAAA,MACA;AAAA,MACN,cAAMC;AAAAA,MACA;AAAA,MACN,gBAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA;AAAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACN,WAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,YAAMC;AAAAA;AAAAA,MAEN,cAAMC;AAAAA,MACA;AAAA,MACN,YAAMC;AAAAA,IACD;AAAA,EACF;AACH;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const routerMusic = {
|
|
4
|
+
path: "music",
|
|
5
|
+
component: () => Promise.resolve().then(() => require("../components/layouts/MusicLayout.vue.cjs")),
|
|
6
|
+
children: [
|
|
7
|
+
{
|
|
8
|
+
path: "",
|
|
9
|
+
name: "music-home",
|
|
10
|
+
component: () => Promise.resolve().then(() => require("../components/pages/MusicHome.vue.cjs")),
|
|
11
|
+
meta: {
|
|
12
|
+
title: "Music Home"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
path: "search",
|
|
17
|
+
name: "music-search",
|
|
18
|
+
component: () => Promise.resolve().then(() => require("../components/pages/SearchResults.vue.cjs")),
|
|
19
|
+
meta: {
|
|
20
|
+
title: "Search Music"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
path: "library",
|
|
25
|
+
name: "music-library",
|
|
26
|
+
component: () => Promise.resolve().then(() => require("../components/pages/MusicLibrary.vue.cjs")),
|
|
27
|
+
meta: {
|
|
28
|
+
title: "My Library",
|
|
29
|
+
requiresAuth: true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
path: "upload",
|
|
34
|
+
name: "music-upload",
|
|
35
|
+
component: () => Promise.resolve().then(() => require("../components/pages/MusicUpload.vue.cjs")),
|
|
36
|
+
meta: {
|
|
37
|
+
title: "Upload Music",
|
|
38
|
+
requiresAuth: true
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
path: "artists/:url",
|
|
43
|
+
name: "artist-detail",
|
|
44
|
+
component: () => Promise.resolve().then(() => require("../components/pages/ArtistDetail.vue.cjs")),
|
|
45
|
+
props: true,
|
|
46
|
+
meta: {
|
|
47
|
+
title: "Artist Details"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
path: "artists/create",
|
|
52
|
+
name: "artist-create",
|
|
53
|
+
component: () => Promise.resolve().then(() => require("../components/pages/ArtistForm.vue.cjs")),
|
|
54
|
+
meta: {
|
|
55
|
+
title: "Create Artist",
|
|
56
|
+
requiresAuth: true
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
path: "artists/:id/edit",
|
|
61
|
+
name: "artist-edit",
|
|
62
|
+
component: () => Promise.resolve().then(() => require("../components/pages/ArtistForm.vue.cjs")),
|
|
63
|
+
props: (route) => ({ isEditMode: true, artistId: route.params.id }),
|
|
64
|
+
meta: {
|
|
65
|
+
title: "Edit Artist",
|
|
66
|
+
requiresAuth: true
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
path: "albums/:url",
|
|
71
|
+
name: "album-detail",
|
|
72
|
+
component: () => Promise.resolve().then(() => require("../components/pages/AlbumDetail.vue.cjs")),
|
|
73
|
+
props: true,
|
|
74
|
+
meta: {
|
|
75
|
+
title: "Album Details"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
path: "playlists/:url",
|
|
80
|
+
name: "playlist-detail",
|
|
81
|
+
component: () => Promise.resolve().then(() => require("../components/pages/PlaylistDetail.vue.cjs")),
|
|
82
|
+
props: true,
|
|
83
|
+
meta: {
|
|
84
|
+
title: "Playlist Details"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
path: "tracks/:url",
|
|
89
|
+
name: "track-detail",
|
|
90
|
+
component: () => Promise.resolve().then(() => require("../components/pages/TrackDetail.vue.cjs")),
|
|
91
|
+
props: true,
|
|
92
|
+
meta: {
|
|
93
|
+
title: "Track Details"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
};
|
|
98
|
+
exports.default = routerMusic;
|
|
99
|
+
//# sourceMappingURL=music.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"music.cjs","sources":["../../../../../../src/modules/music/router/music.js"],"sourcesContent":["// router/music.js\nexport default {\n path: 'music',\n component: () => import('../components/layouts/MusicLayout.vue'),\n children: [\n {\n path: '',\n name: 'music-home',\n component: () => import('../components/pages/MusicHome.vue'),\n meta: {\n title: 'Music Home',\n },\n },\n {\n path: 'search',\n name: 'music-search',\n component: () => import('../components/pages/SearchResults.vue'),\n meta: {\n title: 'Search Music',\n },\n },\n {\n path: 'library',\n name: 'music-library',\n component: () => import('../components/pages/MusicLibrary.vue'),\n meta: {\n title: 'My Library',\n requiresAuth: true,\n },\n },\n {\n path: 'upload',\n name: 'music-upload',\n component: () => import('../components/pages/MusicUpload.vue'),\n meta: {\n title: 'Upload Music',\n requiresAuth: true,\n },\n },\n {\n path: 'artists/:url',\n name: 'artist-detail',\n component: () => import('../components/pages/ArtistDetail.vue'),\n props: true,\n meta: {\n title: 'Artist Details',\n },\n },\n {\n path: 'artists/create',\n name: 'artist-create',\n component: () => import('../components/pages/ArtistForm.vue'),\n meta: {\n title: 'Create Artist',\n requiresAuth: true,\n },\n },\n {\n path: 'artists/:id/edit',\n name: 'artist-edit',\n component: () => import('../components/pages/ArtistForm.vue'),\n props: route => ({ isEditMode: true, artistId: route.params.id }),\n meta: {\n title: 'Edit Artist',\n requiresAuth: true,\n },\n },\n {\n path: 'albums/:url',\n name: 'album-detail',\n component: () => import('../components/pages/AlbumDetail.vue'),\n props: true,\n meta: {\n title: 'Album Details',\n },\n },\n {\n path: 'playlists/:url',\n name: 'playlist-detail',\n component: () => import('../components/pages/PlaylistDetail.vue'),\n props: true,\n meta: {\n title: 'Playlist Details',\n },\n },\n {\n path: 'tracks/:url',\n name: 'track-detail',\n component: () => import('../components/pages/TrackDetail.vue'),\n props: true,\n meta: {\n title: 'Track Details',\n },\n },\n ],\n};\n"],"names":[],"mappings":";;AACA,MAAe,cAAA;AAAA,EACb,MAAM;AAAA,EACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,2CAAuC,CAAC;AAAA,EAChE,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,uCAAmC,CAAC;AAAA,MAC5D,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,2CAAuC,CAAC;AAAA,MAChE,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,0CAAsC,CAAC;AAAA,MAC/D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,yCAAqC,CAAC;AAAA,MAC9D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,0CAAsC,CAAC;AAAA,MAC/D,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wCAAoC,CAAC;AAAA,MAC7D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wCAAoC,CAAC;AAAA,MAC7D,OAAO,YAAU,EAAE,YAAY,MAAM,UAAU,MAAM,OAAO;MAC5D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,yCAAqC,CAAC;AAAA,MAC9D,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,4CAAwC,CAAC;AAAA,MACjE,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,yCAAqC,CAAC;AAAA,MAC9D,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
const routerMusic = {
|
|
2
|
+
path: "music",
|
|
3
|
+
component: () => import("../components/layouts/MusicLayout.vue.js"),
|
|
4
|
+
children: [
|
|
5
|
+
{
|
|
6
|
+
path: "",
|
|
7
|
+
name: "music-home",
|
|
8
|
+
component: () => import("../components/pages/MusicHome.vue.js"),
|
|
9
|
+
meta: {
|
|
10
|
+
title: "Music Home"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
path: "search",
|
|
15
|
+
name: "music-search",
|
|
16
|
+
component: () => import("../components/pages/SearchResults.vue.js"),
|
|
17
|
+
meta: {
|
|
18
|
+
title: "Search Music"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
path: "library",
|
|
23
|
+
name: "music-library",
|
|
24
|
+
component: () => import("../components/pages/MusicLibrary.vue.js"),
|
|
25
|
+
meta: {
|
|
26
|
+
title: "My Library",
|
|
27
|
+
requiresAuth: true
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
path: "upload",
|
|
32
|
+
name: "music-upload",
|
|
33
|
+
component: () => import("../components/pages/MusicUpload.vue.js"),
|
|
34
|
+
meta: {
|
|
35
|
+
title: "Upload Music",
|
|
36
|
+
requiresAuth: true
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
path: "artists/:url",
|
|
41
|
+
name: "artist-detail",
|
|
42
|
+
component: () => import("../components/pages/ArtistDetail.vue.js"),
|
|
43
|
+
props: true,
|
|
44
|
+
meta: {
|
|
45
|
+
title: "Artist Details"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
path: "artists/create",
|
|
50
|
+
name: "artist-create",
|
|
51
|
+
component: () => import("../components/pages/ArtistForm.vue.js"),
|
|
52
|
+
meta: {
|
|
53
|
+
title: "Create Artist",
|
|
54
|
+
requiresAuth: true
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
path: "artists/:id/edit",
|
|
59
|
+
name: "artist-edit",
|
|
60
|
+
component: () => import("../components/pages/ArtistForm.vue.js"),
|
|
61
|
+
props: (route) => ({ isEditMode: true, artistId: route.params.id }),
|
|
62
|
+
meta: {
|
|
63
|
+
title: "Edit Artist",
|
|
64
|
+
requiresAuth: true
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
path: "albums/:url",
|
|
69
|
+
name: "album-detail",
|
|
70
|
+
component: () => import("../components/pages/AlbumDetail.vue.js"),
|
|
71
|
+
props: true,
|
|
72
|
+
meta: {
|
|
73
|
+
title: "Album Details"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
path: "playlists/:url",
|
|
78
|
+
name: "playlist-detail",
|
|
79
|
+
component: () => import("../components/pages/PlaylistDetail.vue.js"),
|
|
80
|
+
props: true,
|
|
81
|
+
meta: {
|
|
82
|
+
title: "Playlist Details"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
path: "tracks/:url",
|
|
87
|
+
name: "track-detail",
|
|
88
|
+
component: () => import("../components/pages/TrackDetail.vue.js"),
|
|
89
|
+
props: true,
|
|
90
|
+
meta: {
|
|
91
|
+
title: "Track Details"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
};
|
|
96
|
+
export {
|
|
97
|
+
routerMusic as default
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=music.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"music.js","sources":["../../../../../../src/modules/music/router/music.js"],"sourcesContent":["// router/music.js\nexport default {\n path: 'music',\n component: () => import('../components/layouts/MusicLayout.vue'),\n children: [\n {\n path: '',\n name: 'music-home',\n component: () => import('../components/pages/MusicHome.vue'),\n meta: {\n title: 'Music Home',\n },\n },\n {\n path: 'search',\n name: 'music-search',\n component: () => import('../components/pages/SearchResults.vue'),\n meta: {\n title: 'Search Music',\n },\n },\n {\n path: 'library',\n name: 'music-library',\n component: () => import('../components/pages/MusicLibrary.vue'),\n meta: {\n title: 'My Library',\n requiresAuth: true,\n },\n },\n {\n path: 'upload',\n name: 'music-upload',\n component: () => import('../components/pages/MusicUpload.vue'),\n meta: {\n title: 'Upload Music',\n requiresAuth: true,\n },\n },\n {\n path: 'artists/:url',\n name: 'artist-detail',\n component: () => import('../components/pages/ArtistDetail.vue'),\n props: true,\n meta: {\n title: 'Artist Details',\n },\n },\n {\n path: 'artists/create',\n name: 'artist-create',\n component: () => import('../components/pages/ArtistForm.vue'),\n meta: {\n title: 'Create Artist',\n requiresAuth: true,\n },\n },\n {\n path: 'artists/:id/edit',\n name: 'artist-edit',\n component: () => import('../components/pages/ArtistForm.vue'),\n props: route => ({ isEditMode: true, artistId: route.params.id }),\n meta: {\n title: 'Edit Artist',\n requiresAuth: true,\n },\n },\n {\n path: 'albums/:url',\n name: 'album-detail',\n component: () => import('../components/pages/AlbumDetail.vue'),\n props: true,\n meta: {\n title: 'Album Details',\n },\n },\n {\n path: 'playlists/:url',\n name: 'playlist-detail',\n component: () => import('../components/pages/PlaylistDetail.vue'),\n props: true,\n meta: {\n title: 'Playlist Details',\n },\n },\n {\n path: 'tracks/:url',\n name: 'track-detail',\n component: () => import('../components/pages/TrackDetail.vue'),\n props: true,\n meta: {\n title: 'Track Details',\n },\n },\n ],\n};\n"],"names":[],"mappings":"AACA,MAAe,cAAA;AAAA,EACb,MAAM;AAAA,EACN,WAAW,MAAM,OAAO,0CAAuC;AAAA,EAC/D,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,sCAAmC;AAAA,MAC3D,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,0CAAuC;AAAA,MAC/D,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,yCAAsC;AAAA,MAC9D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,wCAAqC;AAAA,MAC7D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,yCAAsC;AAAA,MAC9D,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,uCAAoC;AAAA,MAC5D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,uCAAoC;AAAA,MAC5D,OAAO,YAAU,EAAE,YAAY,MAAM,UAAU,MAAM,OAAO;MAC5D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,wCAAqC;AAAA,MAC7D,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,2CAAwC;AAAA,MAChE,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,wCAAqC;AAAA,MAC7D,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const globals_store = require("../../globals/views/classes/globals.store.cjs");
|
|
4
|
+
const vue = require("vue");
|
|
5
|
+
const albumStore = new globals_store.default(`${process.env.API_URL}/api/albums`);
|
|
6
|
+
const state = vue.reactive({
|
|
7
|
+
albums: [],
|
|
8
|
+
featured: [],
|
|
9
|
+
userAlbums: [],
|
|
10
|
+
currentAlbum: null,
|
|
11
|
+
currentAlbumTracks: [],
|
|
12
|
+
isLoading: false,
|
|
13
|
+
loadingFeatured: false
|
|
14
|
+
});
|
|
15
|
+
const actions = {
|
|
16
|
+
async fetchAlbums(options = {}) {
|
|
17
|
+
state.isLoading = true;
|
|
18
|
+
try {
|
|
19
|
+
const albums = await albumStore.read(options);
|
|
20
|
+
state.albums = albums;
|
|
21
|
+
return albums;
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error("Error fetching albums:", error);
|
|
24
|
+
return [];
|
|
25
|
+
} finally {
|
|
26
|
+
state.isLoading = false;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
async fetchFeaturedAlbums() {
|
|
30
|
+
state.loadingFeatured = true;
|
|
31
|
+
try {
|
|
32
|
+
const response = await fetch(`${process.env.API_URL}/api/albums/featured`);
|
|
33
|
+
const albums = await response.json();
|
|
34
|
+
state.featured = albums;
|
|
35
|
+
return albums;
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error("Error fetching featured albums:", error);
|
|
38
|
+
return [];
|
|
39
|
+
} finally {
|
|
40
|
+
state.loadingFeatured = false;
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
async fetchAlbumByUrl(url) {
|
|
44
|
+
try {
|
|
45
|
+
const response = await fetch(`${process.env.API_URL}/api/albums/url/${url}`);
|
|
46
|
+
const album = await response.json();
|
|
47
|
+
state.currentAlbum = album;
|
|
48
|
+
await this.fetchAlbumTracks(album._id);
|
|
49
|
+
return album;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
console.error("Error fetching album by URL:", error);
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
async fetchAlbumTracks(albumId) {
|
|
56
|
+
try {
|
|
57
|
+
const response = await fetch(`${process.env.API_URL}/api/albums/${albumId}/tracks`);
|
|
58
|
+
const tracks = await response.json();
|
|
59
|
+
state.currentAlbumTracks = tracks;
|
|
60
|
+
return tracks;
|
|
61
|
+
} catch (error) {
|
|
62
|
+
console.error("Error fetching album tracks:", error);
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
async createAlbum(albumData) {
|
|
67
|
+
try {
|
|
68
|
+
const createdAlbum = await albumStore.create(albumData);
|
|
69
|
+
state.albums.unshift(createdAlbum);
|
|
70
|
+
state.userAlbums.unshift(createdAlbum);
|
|
71
|
+
return createdAlbum;
|
|
72
|
+
} catch (error) {
|
|
73
|
+
console.error("Error creating album:", error);
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
async updateAlbum(albumData) {
|
|
78
|
+
try {
|
|
79
|
+
const updatedAlbum = await albumStore.update(albumData);
|
|
80
|
+
const index = state.albums.findIndex((a) => a._id === updatedAlbum._id);
|
|
81
|
+
if (index !== -1) {
|
|
82
|
+
state.albums[index] = updatedAlbum;
|
|
83
|
+
}
|
|
84
|
+
const userIndex = state.userAlbums.findIndex((a) => a._id === updatedAlbum._id);
|
|
85
|
+
if (userIndex !== -1) {
|
|
86
|
+
state.userAlbums[userIndex] = updatedAlbum;
|
|
87
|
+
}
|
|
88
|
+
if (state.currentAlbum && state.currentAlbum._id === updatedAlbum._id) {
|
|
89
|
+
state.currentAlbum = updatedAlbum;
|
|
90
|
+
}
|
|
91
|
+
return updatedAlbum;
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.error("Error updating album:", error);
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
async deleteAlbum(albumId) {
|
|
98
|
+
try {
|
|
99
|
+
await albumStore.delete({ _id: albumId });
|
|
100
|
+
state.albums = state.albums.filter((a) => a._id !== albumId);
|
|
101
|
+
state.userAlbums = state.userAlbums.filter((a) => a._id !== albumId);
|
|
102
|
+
if (state.currentAlbum && state.currentAlbum._id === albumId) {
|
|
103
|
+
state.currentAlbum = null;
|
|
104
|
+
state.currentAlbumTracks = [];
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
107
|
+
} catch (error) {
|
|
108
|
+
console.error("Error deleting album:", error);
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
async fetchUserAlbums(userId) {
|
|
113
|
+
try {
|
|
114
|
+
const options = {
|
|
115
|
+
creator: userId,
|
|
116
|
+
limit: 100
|
|
117
|
+
};
|
|
118
|
+
const albums = await albumStore.read(options);
|
|
119
|
+
state.userAlbums = albums;
|
|
120
|
+
return albums;
|
|
121
|
+
} catch (error) {
|
|
122
|
+
console.error("Error fetching user albums:", error);
|
|
123
|
+
return [];
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
async addTrackToAlbum(albumId, trackId) {
|
|
127
|
+
try {
|
|
128
|
+
const response = await fetch(`${process.env.API_URL}/api/tracks/${trackId}`, {
|
|
129
|
+
method: "PUT",
|
|
130
|
+
headers: {
|
|
131
|
+
"Content-Type": "application/json"
|
|
132
|
+
},
|
|
133
|
+
body: JSON.stringify({ album: albumId })
|
|
134
|
+
});
|
|
135
|
+
const updatedTrack = await response.json();
|
|
136
|
+
if (state.currentAlbum && state.currentAlbum._id === albumId) {
|
|
137
|
+
state.currentAlbumTracks.push(updatedTrack);
|
|
138
|
+
}
|
|
139
|
+
return updatedTrack;
|
|
140
|
+
} catch (error) {
|
|
141
|
+
console.error("Error adding track to album:", error);
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
async removeTrackFromAlbum(trackId) {
|
|
146
|
+
try {
|
|
147
|
+
const response = await fetch(`${process.env.API_URL}/api/tracks/${trackId}`, {
|
|
148
|
+
method: "PUT",
|
|
149
|
+
headers: {
|
|
150
|
+
"Content-Type": "application/json"
|
|
151
|
+
},
|
|
152
|
+
body: JSON.stringify({ album: null })
|
|
153
|
+
});
|
|
154
|
+
const updatedTrack = await response.json();
|
|
155
|
+
if (state.currentAlbumTracks.some((track) => track._id === trackId)) {
|
|
156
|
+
state.currentAlbumTracks = state.currentAlbumTracks.filter((track) => track._id !== trackId);
|
|
157
|
+
}
|
|
158
|
+
return updatedTrack;
|
|
159
|
+
} catch (error) {
|
|
160
|
+
console.error("Error removing track from album:", error);
|
|
161
|
+
throw error;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
exports.actions = actions;
|
|
166
|
+
exports.state = state;
|
|
167
|
+
//# sourceMappingURL=albums.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"albums.cjs","sources":["../../../../../../src/modules/music/store/albums.js"],"sourcesContent":["// store/albums.js\nimport Store from '@martyrs/src/modules/globals/views/classes/globals.store.js';\nimport { reactive } from 'vue';\n\n// Create store instance\nconst albumStore = new Store(`${process.env.API_URL}/api/albums`);\n\n// State\nexport const state = reactive({\n albums: [],\n featured: [],\n userAlbums: [],\n currentAlbum: null,\n currentAlbumTracks: [],\n isLoading: false,\n loadingFeatured: false,\n});\n\n// Actions\nexport const actions = {\n async fetchAlbums(options = {}) {\n state.isLoading = true;\n try {\n const albums = await albumStore.read(options);\n state.albums = albums;\n return albums;\n } catch (error) {\n console.error('Error fetching albums:', error);\n return [];\n } finally {\n state.isLoading = false;\n }\n },\n\n async fetchFeaturedAlbums() {\n state.loadingFeatured = true;\n try {\n const response = await fetch(`${process.env.API_URL}/api/albums/featured`);\n const albums = await response.json();\n state.featured = albums;\n return albums;\n } catch (error) {\n console.error('Error fetching featured albums:', error);\n return [];\n } finally {\n state.loadingFeatured = false;\n }\n },\n\n async fetchAlbumByUrl(url) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/albums/url/${url}`);\n const album = await response.json();\n state.currentAlbum = album;\n\n // Fetch album tracks\n await this.fetchAlbumTracks(album._id);\n\n return album;\n } catch (error) {\n console.error('Error fetching album by URL:', error);\n return null;\n }\n },\n\n async fetchAlbumTracks(albumId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/albums/${albumId}/tracks`);\n const tracks = await response.json();\n state.currentAlbumTracks = tracks;\n return tracks;\n } catch (error) {\n console.error('Error fetching album tracks:', error);\n return [];\n }\n },\n\n async createAlbum(albumData) {\n try {\n const createdAlbum = await albumStore.create(albumData);\n // Update local state\n state.albums.unshift(createdAlbum);\n state.userAlbums.unshift(createdAlbum);\n return createdAlbum;\n } catch (error) {\n console.error('Error creating album:', error);\n throw error;\n }\n },\n\n async updateAlbum(albumData) {\n try {\n const updatedAlbum = await albumStore.update(albumData);\n\n // Update local state\n const index = state.albums.findIndex(a => a._id === updatedAlbum._id);\n if (index !== -1) {\n state.albums[index] = updatedAlbum;\n }\n\n const userIndex = state.userAlbums.findIndex(a => a._id === updatedAlbum._id);\n if (userIndex !== -1) {\n state.userAlbums[userIndex] = updatedAlbum;\n }\n\n if (state.currentAlbum && state.currentAlbum._id === updatedAlbum._id) {\n state.currentAlbum = updatedAlbum;\n }\n\n return updatedAlbum;\n } catch (error) {\n console.error('Error updating album:', error);\n throw error;\n }\n },\n\n async deleteAlbum(albumId) {\n try {\n await albumStore.delete({ _id: albumId });\n\n // Update local state\n state.albums = state.albums.filter(a => a._id !== albumId);\n state.userAlbums = state.userAlbums.filter(a => a._id !== albumId);\n\n if (state.currentAlbum && state.currentAlbum._id === albumId) {\n state.currentAlbum = null;\n state.currentAlbumTracks = [];\n }\n\n return true;\n } catch (error) {\n console.error('Error deleting album:', error);\n throw error;\n }\n },\n\n async fetchUserAlbums(userId) {\n try {\n const options = {\n creator: userId,\n limit: 100,\n };\n\n const albums = await albumStore.read(options);\n state.userAlbums = albums;\n return albums;\n } catch (error) {\n console.error('Error fetching user albums:', error);\n return [];\n }\n },\n\n async addTrackToAlbum(albumId, trackId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/tracks/${trackId}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ album: albumId }),\n });\n\n const updatedTrack = await response.json();\n\n // Update the current album tracks if relevant\n if (state.currentAlbum && state.currentAlbum._id === albumId) {\n state.currentAlbumTracks.push(updatedTrack);\n }\n\n return updatedTrack;\n } catch (error) {\n console.error('Error adding track to album:', error);\n throw error;\n }\n },\n\n async removeTrackFromAlbum(trackId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/tracks/${trackId}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ album: null }),\n });\n\n const updatedTrack = await response.json();\n\n // Update the current album tracks if relevant\n if (state.currentAlbumTracks.some(track => track._id === trackId)) {\n state.currentAlbumTracks = state.currentAlbumTracks.filter(track => track._id !== trackId);\n }\n\n return updatedTrack;\n } catch (error) {\n console.error('Error removing track from album:', error);\n throw error;\n }\n },\n};\n"],"names":["Store","reactive"],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import Store from "../../globals/views/classes/globals.store.js";
|
|
2
|
+
import { reactive } from "vue";
|
|
3
|
+
const albumStore = new Store(`${process.env.API_URL}/api/albums`);
|
|
4
|
+
const state = reactive({
|
|
5
|
+
albums: [],
|
|
6
|
+
featured: [],
|
|
7
|
+
userAlbums: [],
|
|
8
|
+
currentAlbum: null,
|
|
9
|
+
currentAlbumTracks: [],
|
|
10
|
+
isLoading: false,
|
|
11
|
+
loadingFeatured: false
|
|
12
|
+
});
|
|
13
|
+
const actions = {
|
|
14
|
+
async fetchAlbums(options = {}) {
|
|
15
|
+
state.isLoading = true;
|
|
16
|
+
try {
|
|
17
|
+
const albums = await albumStore.read(options);
|
|
18
|
+
state.albums = albums;
|
|
19
|
+
return albums;
|
|
20
|
+
} catch (error) {
|
|
21
|
+
console.error("Error fetching albums:", error);
|
|
22
|
+
return [];
|
|
23
|
+
} finally {
|
|
24
|
+
state.isLoading = false;
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
async fetchFeaturedAlbums() {
|
|
28
|
+
state.loadingFeatured = true;
|
|
29
|
+
try {
|
|
30
|
+
const response = await fetch(`${process.env.API_URL}/api/albums/featured`);
|
|
31
|
+
const albums = await response.json();
|
|
32
|
+
state.featured = albums;
|
|
33
|
+
return albums;
|
|
34
|
+
} catch (error) {
|
|
35
|
+
console.error("Error fetching featured albums:", error);
|
|
36
|
+
return [];
|
|
37
|
+
} finally {
|
|
38
|
+
state.loadingFeatured = false;
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
async fetchAlbumByUrl(url) {
|
|
42
|
+
try {
|
|
43
|
+
const response = await fetch(`${process.env.API_URL}/api/albums/url/${url}`);
|
|
44
|
+
const album = await response.json();
|
|
45
|
+
state.currentAlbum = album;
|
|
46
|
+
await this.fetchAlbumTracks(album._id);
|
|
47
|
+
return album;
|
|
48
|
+
} catch (error) {
|
|
49
|
+
console.error("Error fetching album by URL:", error);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
async fetchAlbumTracks(albumId) {
|
|
54
|
+
try {
|
|
55
|
+
const response = await fetch(`${process.env.API_URL}/api/albums/${albumId}/tracks`);
|
|
56
|
+
const tracks = await response.json();
|
|
57
|
+
state.currentAlbumTracks = tracks;
|
|
58
|
+
return tracks;
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error("Error fetching album tracks:", error);
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
async createAlbum(albumData) {
|
|
65
|
+
try {
|
|
66
|
+
const createdAlbum = await albumStore.create(albumData);
|
|
67
|
+
state.albums.unshift(createdAlbum);
|
|
68
|
+
state.userAlbums.unshift(createdAlbum);
|
|
69
|
+
return createdAlbum;
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.error("Error creating album:", error);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
async updateAlbum(albumData) {
|
|
76
|
+
try {
|
|
77
|
+
const updatedAlbum = await albumStore.update(albumData);
|
|
78
|
+
const index = state.albums.findIndex((a) => a._id === updatedAlbum._id);
|
|
79
|
+
if (index !== -1) {
|
|
80
|
+
state.albums[index] = updatedAlbum;
|
|
81
|
+
}
|
|
82
|
+
const userIndex = state.userAlbums.findIndex((a) => a._id === updatedAlbum._id);
|
|
83
|
+
if (userIndex !== -1) {
|
|
84
|
+
state.userAlbums[userIndex] = updatedAlbum;
|
|
85
|
+
}
|
|
86
|
+
if (state.currentAlbum && state.currentAlbum._id === updatedAlbum._id) {
|
|
87
|
+
state.currentAlbum = updatedAlbum;
|
|
88
|
+
}
|
|
89
|
+
return updatedAlbum;
|
|
90
|
+
} catch (error) {
|
|
91
|
+
console.error("Error updating album:", error);
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
async deleteAlbum(albumId) {
|
|
96
|
+
try {
|
|
97
|
+
await albumStore.delete({ _id: albumId });
|
|
98
|
+
state.albums = state.albums.filter((a) => a._id !== albumId);
|
|
99
|
+
state.userAlbums = state.userAlbums.filter((a) => a._id !== albumId);
|
|
100
|
+
if (state.currentAlbum && state.currentAlbum._id === albumId) {
|
|
101
|
+
state.currentAlbum = null;
|
|
102
|
+
state.currentAlbumTracks = [];
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
} catch (error) {
|
|
106
|
+
console.error("Error deleting album:", error);
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
async fetchUserAlbums(userId) {
|
|
111
|
+
try {
|
|
112
|
+
const options = {
|
|
113
|
+
creator: userId,
|
|
114
|
+
limit: 100
|
|
115
|
+
};
|
|
116
|
+
const albums = await albumStore.read(options);
|
|
117
|
+
state.userAlbums = albums;
|
|
118
|
+
return albums;
|
|
119
|
+
} catch (error) {
|
|
120
|
+
console.error("Error fetching user albums:", error);
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
async addTrackToAlbum(albumId, trackId) {
|
|
125
|
+
try {
|
|
126
|
+
const response = await fetch(`${process.env.API_URL}/api/tracks/${trackId}`, {
|
|
127
|
+
method: "PUT",
|
|
128
|
+
headers: {
|
|
129
|
+
"Content-Type": "application/json"
|
|
130
|
+
},
|
|
131
|
+
body: JSON.stringify({ album: albumId })
|
|
132
|
+
});
|
|
133
|
+
const updatedTrack = await response.json();
|
|
134
|
+
if (state.currentAlbum && state.currentAlbum._id === albumId) {
|
|
135
|
+
state.currentAlbumTracks.push(updatedTrack);
|
|
136
|
+
}
|
|
137
|
+
return updatedTrack;
|
|
138
|
+
} catch (error) {
|
|
139
|
+
console.error("Error adding track to album:", error);
|
|
140
|
+
throw error;
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
async removeTrackFromAlbum(trackId) {
|
|
144
|
+
try {
|
|
145
|
+
const response = await fetch(`${process.env.API_URL}/api/tracks/${trackId}`, {
|
|
146
|
+
method: "PUT",
|
|
147
|
+
headers: {
|
|
148
|
+
"Content-Type": "application/json"
|
|
149
|
+
},
|
|
150
|
+
body: JSON.stringify({ album: null })
|
|
151
|
+
});
|
|
152
|
+
const updatedTrack = await response.json();
|
|
153
|
+
if (state.currentAlbumTracks.some((track) => track._id === trackId)) {
|
|
154
|
+
state.currentAlbumTracks = state.currentAlbumTracks.filter((track) => track._id !== trackId);
|
|
155
|
+
}
|
|
156
|
+
return updatedTrack;
|
|
157
|
+
} catch (error) {
|
|
158
|
+
console.error("Error removing track from album:", error);
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
export {
|
|
164
|
+
actions,
|
|
165
|
+
state
|
|
166
|
+
};
|
|
167
|
+
//# sourceMappingURL=albums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"albums.js","sources":["../../../../../../src/modules/music/store/albums.js"],"sourcesContent":["// store/albums.js\nimport Store from '@martyrs/src/modules/globals/views/classes/globals.store.js';\nimport { reactive } from 'vue';\n\n// Create store instance\nconst albumStore = new Store(`${process.env.API_URL}/api/albums`);\n\n// State\nexport const state = reactive({\n albums: [],\n featured: [],\n userAlbums: [],\n currentAlbum: null,\n currentAlbumTracks: [],\n isLoading: false,\n loadingFeatured: false,\n});\n\n// Actions\nexport const actions = {\n async fetchAlbums(options = {}) {\n state.isLoading = true;\n try {\n const albums = await albumStore.read(options);\n state.albums = albums;\n return albums;\n } catch (error) {\n console.error('Error fetching albums:', error);\n return [];\n } finally {\n state.isLoading = false;\n }\n },\n\n async fetchFeaturedAlbums() {\n state.loadingFeatured = true;\n try {\n const response = await fetch(`${process.env.API_URL}/api/albums/featured`);\n const albums = await response.json();\n state.featured = albums;\n return albums;\n } catch (error) {\n console.error('Error fetching featured albums:', error);\n return [];\n } finally {\n state.loadingFeatured = false;\n }\n },\n\n async fetchAlbumByUrl(url) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/albums/url/${url}`);\n const album = await response.json();\n state.currentAlbum = album;\n\n // Fetch album tracks\n await this.fetchAlbumTracks(album._id);\n\n return album;\n } catch (error) {\n console.error('Error fetching album by URL:', error);\n return null;\n }\n },\n\n async fetchAlbumTracks(albumId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/albums/${albumId}/tracks`);\n const tracks = await response.json();\n state.currentAlbumTracks = tracks;\n return tracks;\n } catch (error) {\n console.error('Error fetching album tracks:', error);\n return [];\n }\n },\n\n async createAlbum(albumData) {\n try {\n const createdAlbum = await albumStore.create(albumData);\n // Update local state\n state.albums.unshift(createdAlbum);\n state.userAlbums.unshift(createdAlbum);\n return createdAlbum;\n } catch (error) {\n console.error('Error creating album:', error);\n throw error;\n }\n },\n\n async updateAlbum(albumData) {\n try {\n const updatedAlbum = await albumStore.update(albumData);\n\n // Update local state\n const index = state.albums.findIndex(a => a._id === updatedAlbum._id);\n if (index !== -1) {\n state.albums[index] = updatedAlbum;\n }\n\n const userIndex = state.userAlbums.findIndex(a => a._id === updatedAlbum._id);\n if (userIndex !== -1) {\n state.userAlbums[userIndex] = updatedAlbum;\n }\n\n if (state.currentAlbum && state.currentAlbum._id === updatedAlbum._id) {\n state.currentAlbum = updatedAlbum;\n }\n\n return updatedAlbum;\n } catch (error) {\n console.error('Error updating album:', error);\n throw error;\n }\n },\n\n async deleteAlbum(albumId) {\n try {\n await albumStore.delete({ _id: albumId });\n\n // Update local state\n state.albums = state.albums.filter(a => a._id !== albumId);\n state.userAlbums = state.userAlbums.filter(a => a._id !== albumId);\n\n if (state.currentAlbum && state.currentAlbum._id === albumId) {\n state.currentAlbum = null;\n state.currentAlbumTracks = [];\n }\n\n return true;\n } catch (error) {\n console.error('Error deleting album:', error);\n throw error;\n }\n },\n\n async fetchUserAlbums(userId) {\n try {\n const options = {\n creator: userId,\n limit: 100,\n };\n\n const albums = await albumStore.read(options);\n state.userAlbums = albums;\n return albums;\n } catch (error) {\n console.error('Error fetching user albums:', error);\n return [];\n }\n },\n\n async addTrackToAlbum(albumId, trackId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/tracks/${trackId}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ album: albumId }),\n });\n\n const updatedTrack = await response.json();\n\n // Update the current album tracks if relevant\n if (state.currentAlbum && state.currentAlbum._id === albumId) {\n state.currentAlbumTracks.push(updatedTrack);\n }\n\n return updatedTrack;\n } catch (error) {\n console.error('Error adding track to album:', error);\n throw error;\n }\n },\n\n async removeTrackFromAlbum(trackId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/tracks/${trackId}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ album: null }),\n });\n\n const updatedTrack = await response.json();\n\n // Update the current album tracks if relevant\n if (state.currentAlbumTracks.some(track => track._id === trackId)) {\n state.currentAlbumTracks = state.currentAlbumTracks.filter(track => track._id !== trackId);\n }\n\n return updatedTrack;\n } catch (error) {\n console.error('Error removing track from album:', error);\n throw error;\n }\n },\n};\n"],"names":[],"mappings":"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"}
|