@ozdao/martyrs 0.2.470 → 0.2.472
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Media-CR0V1zvB.js → Media-DW8RLbfM.js} +1 -1
- package/dist/{Media-C4Ges_Sd.mjs → Media-y_TX6us_.mjs} +1 -1
- package/dist/_virtual/index.cjs +1 -1
- package/dist/_virtual/index.js +1 -1
- package/dist/auth.server.js +1 -1
- package/dist/auth.server.mjs +1 -1
- package/dist/chats.server.js +1 -1
- package/dist/chats.server.mjs +1 -1
- package/dist/community.server.js +1 -1
- package/dist/community.server.mjs +1 -1
- package/dist/events.server.js +1 -1
- package/dist/events.server.mjs +1 -1
- package/dist/files.server.js +1 -1
- package/dist/files.server.mjs +1 -1
- package/dist/gallery.server.js +1 -1
- package/dist/gallery.server.mjs +1 -1
- package/dist/{index-DQqZReAr.js → index-CVXl1rB5.js} +0 -1
- package/dist/{index-DICZTQ-1.mjs → index-Df8vtZx7.mjs} +0 -1
- package/dist/{main-CsZAG5Wz.js → main-CCfQH-Dd.js} +2 -2
- package/dist/{main-CTcal9qN.mjs → main-CgmHzhq5.mjs} +74 -74
- package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs +1 -1
- package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +1 -0
- package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js +1 -1
- package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
- package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +1 -0
- package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs +5 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
- package/dist/{node_modules/.pnpm/uuid@11.1.0 → martyrs}/node_modules/uuid/dist/esm-browser/rng.cjs +4 -4
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs +17 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs +13 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs +8 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.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/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/Skeleton/Skeleton.vue.cjs +5 -5
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js +5 -5
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js.map +1 -1
- package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tree/Tree.vue.cjs +3 -1
- package/dist/martyrs/src/components/Tree/Tree.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Tree/Tree.vue.js +3 -1
- package/dist/martyrs/src/components/Tree/Tree.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.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 +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
- 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/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/store/auth.cjs +1 -0
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -0
- package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +107 -21
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +107 -21
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +10 -14
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +12 -16
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +7 -13
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +7 -13
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +6 -7
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +7 -8
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- 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/pages/Orders.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
- 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 +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
- 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/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.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/products/components/blocks/CardCategory.vue.cjs +11 -5
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +12 -6
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +34 -13
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +35 -14
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +20 -9
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +21 -10
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.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/GanttChart.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.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.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/notifications.server.js +35 -2
- package/dist/notifications.server.mjs +35 -2
- package/dist/orders.server.js +3 -3
- package/dist/orders.server.mjs +3 -3
- package/dist/organizations.server.js +1 -1
- package/dist/organizations.server.mjs +1 -1
- package/dist/products.server.js +78 -53
- package/dist/products.server.mjs +78 -53
- package/dist/rents.server.js +1 -1
- package/dist/rents.server.mjs +1 -1
- package/dist/style.css +37 -38
- package/dist/wallet.server.js +1 -1
- package/dist/wallet.server.mjs +1 -1
- package/package.json +2 -1
- package/src/components/Feed/Feed.vue +2 -7
- package/src/components/Skeleton/Skeleton.vue +4 -5
- package/src/components/Tree/Tree.vue +5 -2
- package/src/modules/auth/controllers/middlewares/authJwt.js +1 -1
- package/src/modules/auth/views/store/auth.js +2 -1
- package/src/modules/globals/controllers/classes/globals.crud.js +2 -2
- package/src/modules/globals/views/classes/globals.store.js +119 -31
- package/src/modules/globals/views/components/partials/Navigation.vue +11 -10
- package/src/modules/globals/views/utils/vue-app-renderer.js +7 -16
- package/src/modules/icons/entities/IconMusic.vue +14 -0
- package/src/modules/icons/navigation/IconCheck.vue +31 -0
- package/src/modules/icons/navigation/IconHeart.vue +26 -0
- package/src/modules/icons/navigation/IconPause.vue +31 -0
- package/src/modules/icons/navigation/IconPlay.vue +17 -0
- package/src/modules/icons/navigation/IconRefresh.vue +31 -0
- package/src/modules/icons/navigation/IconShuffle.vue +31 -0
- package/src/modules/icons/navigation/IconVolume.vue +31 -0
- package/src/modules/music/components/SidebarMusic.vue +156 -0
- package/src/modules/music/components/cards/AlbumCard.vue +107 -0
- package/src/modules/music/components/cards/ArtistCard.vue +37 -0
- package/src/modules/music/components/cards/PlaylistCard.vue +100 -0
- package/src/modules/music/components/cards/TrackCard.vue +86 -0
- package/src/modules/music/components/forms/PlaylistForm.vue +156 -0
- package/src/modules/music/components/forms/SearchForm.vue +82 -0
- package/src/modules/music/components/forms/UploadForm.vue +313 -0
- package/src/modules/music/components/layouts/MusicLayout.vue +137 -0
- package/src/modules/music/components/lists/AlbumList.vue +25 -0
- package/src/modules/music/components/lists/ArtistList.vue +25 -0
- package/src/modules/music/components/lists/PlaylistList.vue +25 -0
- package/src/modules/music/components/lists/TrackList.vue +175 -0
- package/src/modules/music/components/pages/AlbumDetail.vue +265 -0
- package/src/modules/music/components/pages/ArtistDetail.vue +247 -0
- package/src/modules/music/components/pages/MusicHome.vue +177 -0
- package/src/modules/music/components/pages/MusicLibrary.vue +192 -0
- package/src/modules/music/components/pages/MusicUpload.vue +44 -0
- package/src/modules/music/components/pages/PlaylistDetail.vue +504 -0
- package/src/modules/music/components/pages/SearchResults.vue +397 -0
- package/src/modules/music/components/pages/TrackDetail.vue +143 -0
- package/src/modules/music/components/player/MusicPlayer.vue +202 -0
- package/src/modules/music/components/player/TrackProgress.vue +110 -0
- package/src/modules/music/components/player/VolumeControl.vue +98 -0
- package/src/modules/music/controllers/album.controller.js +98 -0
- package/src/modules/music/controllers/artist.controller.js +111 -0
- package/src/modules/music/controllers/genre.controller.js +71 -0
- package/src/modules/music/controllers/music.controller.js +174 -0
- package/src/modules/music/controllers/playlist.controller.js +182 -0
- package/src/modules/music/controllers/search.controller.js +103 -0
- package/src/modules/music/controllers/stream.controller.js +106 -0
- package/src/modules/music/models/album.model.js +61 -0
- package/src/modules/music/models/artist.model.js +67 -0
- package/src/modules/music/models/genre.model.js +42 -0
- package/src/modules/music/models/play-history.model.js +51 -0
- package/src/modules/music/models/playlist.model.js +69 -0
- package/src/modules/music/models/track.model.js +94 -0
- package/src/modules/music/music.client.js +186 -0
- package/src/modules/music/music.server.js +114 -0
- package/src/modules/music/policies/music.policies.js +84 -0
- package/src/modules/music/router/music.js +77 -0
- package/src/modules/music/routes/album.routes.js +62 -0
- package/src/modules/music/routes/artist.routes.js +67 -0
- package/src/modules/music/routes/genre.routes.js +60 -0
- package/src/modules/music/routes/music.routes.js +145 -0
- package/src/modules/music/routes/playlist.routes.js +99 -0
- package/src/modules/music/routes/search.routes.js +10 -0
- package/src/modules/music/routes/stream.routes.js +38 -0
- package/src/modules/music/store/albums.js +200 -0
- package/src/modules/music/store/artists.js +180 -0
- package/src/modules/music/store/player.js +397 -0
- package/src/modules/music/store/playlists.js +211 -0
- package/src/modules/music/store/search.js +126 -0
- package/src/modules/music/store/tracks.js +230 -0
- package/src/modules/music/websocket/streaming.handler.js +151 -0
- package/src/modules/notifications/controllers/notifications.controller.js +44 -1
- package/src/modules/notifications/notifications.server.js +0 -1
- package/src/modules/notifications/routes/notifications.routes.js +3 -0
- package/src/modules/orders/components/pages/OrderCreate.vue +0 -2
- package/src/modules/products/components/blocks/CardCategory.vue +5 -4
- package/src/modules/products/components/pages/Categories.vue +38 -20
- package/src/modules/products/components/pages/CategoryEdit.vue +16 -7
- package/src/modules/products/components/pages/ProductEdit.vue +1 -0
- package/src/modules/products/controllers/categories.controller.js +155 -103
- 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/components/Tab/Tab.vue2.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +0 -1
- package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs +0 -6
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs +0 -11
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs +0 -21
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -21
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
- /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.cjs +0 -0
- /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs.map +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js.map +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, Transition, withCtx, withDirectives, vShow, createTextVNode } from "vue";
|
|
2
|
-
import _sfc_main$1 from "../../../../../components/Tab/Tab.
|
|
2
|
+
import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
|
|
3
3
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
|
|
5
5
|
import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.cjs","sources":["../../../../../../../src/modules/auth/views/store/auth.js"],"sourcesContent":["// Dependencies\nimport $axios, { setAuthToken } from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\nimport Cookies from 'js-cookie'\n// Capacitor\nimport { Preferences } from '@capacitor/preferences';\n// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// State\nimport * as twofa from './twofa'\n\n// State\nconst state = reactive({\n user: {\n _id: undefined,\n avatar: null,\n username: '',\n email: '',\n phone: '',\n password: '',\n passwordRepeat: ''\n },\n access: {\n roles: null,\n token: null,\n status: false\n },\n accesses: []\n});\n\nconst actions = {\n async initialize(cookie) {\n try {\n const userCookie = cookie ? cookie : await getCookie('user');\n\n if (userCookie) {\n const { _id, email, phone, avatar, roles, accessToken } = userCookie;\n\n setAuthToken(accessToken);\n\n // Проверка токена через серверный маршрут\n const response = await $axios.get('/api/auth/check-accesses');\n const userAccesses = response.data;\n state.accesses = userAccesses;\n\n // Обновление состояния приложения с информацией о пользователе и его правах доступа\n Object.assign(state.user, { _id, email, phone, avatar });\n Object.assign(state.access, { token: accessToken, roles, status: !!accessToken });\n } else {\n console.log('no cookies')\n setAuthToken(null);\n this.resetState();\n }\n } catch (error) {\n console.error('Error initializing auth:', error);\n // Make sure we remove the cookie when there's an error\n await removeCookie('user');\n setAuthToken(null);\n this.resetState();\n setError(error)\n }\n },\n \n // Helper method to reset state\n resetState() {\n state.accesses = [];\n state.user = {\n _id: undefined,\n avatar: null,\n username: '',\n email: '',\n phone: '',\n password: '',\n passwordRepeat: ''\n };\n state.access = {\n roles: null,\n token: null,\n status: false\n };\n },\n \n async login(user, type) {\n try {\n const response = await $axios.post('/api/auth/signin', {\n ...user,\n type\n });\n\n setCookie('user', response.data);\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true,\n roles: response.data.roles\n });\n\n await this.initialize();\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on login error\n await removeCookie('user');\n \n Object.assign(state.access, {\n token: null,\n status: false,\n roles: null\n });\n\n console.log(error);\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async signup(user, type, invite) {\n const { password, passwordRepeat } = state.user;\n\n console.log(password);\n console.log(passwordRepeat);\n\n if (password !== passwordRepeat) {\n const error = {\n response: {\n data: { errorCode: \"PASSWORDS_DO_NOT_MATCH\" }\n }\n };\n setError(error);\n throw new Error(error.response.status);\n }\n\n try {\n const response = await $axios.post('/api/auth/signup', {\n ...user,\n type,\n inviteCode: invite\n });\n\n console.log(response);\n\n if (response.data.accessToken) {\n setCookie('user', response.data);\n }\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true,\n roles: response.data.roles\n });\n\n await this.initialize();\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on signup error\n await removeCookie('user');\n setError(error);\n console.log('Sign up failed');\n throw error;\n }\n },\n\n async logout() {\n await removeCookie('user');\n setAuthToken(null);\n this.resetState();\n },\n\n async resetPassword(user, type) {\n try {\n const response = await $axios.post('/api/auth/reset-password', {\n email: user.email,\n phone: user.phone,\n type\n });\n\n Object.assign(twofa.state.code, {\n ...response.data,\n isSended: true\n });\n\n return response.data;\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async updatePassword(user, type) {\n const { password, passwordRepeat } = state.user;\n\n if (password !== passwordRepeat) {\n const error = {\n response: {\n data: { errorCode: \"PASSWORDS_DO_NOT_MATCH\" }\n }\n };\n setError(error);\n throw new Error(error.response.status);\n }\n\n try {\n const response = await $axios.post('/api/auth/update-password', {\n email: user.email,\n phone: user.phone,\n password: user.password,\n passwordRepeat: user.passwordRepeat,\n type\n });\n\n if (response.data.accessToken) {\n setCookie('user', response.data);\n }\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true\n });\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on password update error\n await removeCookie('user');\n setError(error);\n return Promise.reject(error);\n }\n }\n};\n\n// Cookies\nconst optionsDefault = {\n development: { secure: false, expires: 7, sameSite: 'Lax' },\n production: { expires: 7, path: '/', domain: process.env.DOMAIN_URL, sameSite: 'strict', secure: true }\n};\n\nasync function getCookie(name) {\n if (process.env.MOBILE_APP) {\n const { value } = await Preferences.get({ key: name });\n return value ? JSON.parse(value) : null;\n } else {\n const cookie = Cookies.get(name);\n return cookie ? JSON.parse(cookie) : null;\n }\n}\n\nasync function setCookie(name, data, env = process.env.DOMAIN_URL) {\n if (process.env.MOBILE_APP) {\n // Если приложение запущено в Capacitor\n await Preferences.set({\n key: name,\n value: JSON.stringify(data)\n });\n } else {\n // Для веб-версии\n Cookies.set(name, JSON.stringify(data), optionsDefault[env]);\n }\n}\n\nasync function removeCookie(name, env = process.env.NODE_ENV) {\n if (process.env.MOBILE_APP) {\n // Если приложение запущено в Capacitor\n await Preferences.remove({ key: name });\n } else {\n // Для веб-версии\n const options = env === 'production' ? { domain: process.env.DOMAIN_URL, path: '/' } : {};\n Cookies.remove(name, options);\n }\n}\n\n// History\nconst history = [];\nhistory.push(state);\n\n// Watch\nwatch(state, (newState, oldState) => {\n history.push(newState);\n});\n\n// Module Export\nexport {\n state,\n actions\n};"],"names":["reactive","setAuthToken","$axios","setError","twofa.state","Preferences","Cookies","watch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.cjs","sources":["../../../../../../../src/modules/auth/views/store/auth.js"],"sourcesContent":["// Dependencies\nimport $axios, { setAuthToken } from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\nimport Cookies from 'js-cookie'\n// Capacitor\nimport { Preferences } from '@capacitor/preferences';\n// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// State\nimport * as twofa from './twofa'\n\n// State\nconst state = reactive({\n user: {\n _id: undefined,\n avatar: null,\n username: '',\n email: '',\n phone: '',\n password: '',\n passwordRepeat: ''\n },\n access: {\n roles: null,\n token: null,\n status: false\n },\n accesses: []\n});\n\nconst actions = {\n async initialize(cookie) {\n try {\n const userCookie = cookie ? cookie : await getCookie('user');\n\n if (userCookie) {\n const { _id, email, phone, avatar, roles, accessToken } = userCookie;\n\n setAuthToken(accessToken);\n\n // Проверка токена через серверный маршрут\n const response = await $axios.get('/api/auth/check-accesses');\n const userAccesses = response.data;\n state.accesses = userAccesses;\n\n // Обновление состояния приложения с информацией о пользователе и его правах доступа\n Object.assign(state.user, { _id, email, phone, avatar });\n Object.assign(state.access, { token: accessToken, roles, status: !!accessToken });\n } else {\n console.log('no cookies')\n setAuthToken(null);\n this.resetState();\n }\n } catch (error) {\n console.error('Error initializing auth:', error);\n // Make sure we remove the cookie when there's an error\n await removeCookie('user');\n setAuthToken(null);\n this.resetState();\n setError(error)\n }\n },\n \n // Helper method to reset state\n resetState() {\n state.accesses = [];\n state.user = {\n _id: undefined,\n avatar: null,\n username: '',\n email: '',\n phone: '',\n password: '',\n passwordRepeat: ''\n };\n state.access = {\n roles: null,\n token: null,\n status: false\n };\n },\n \n async login(user, type) {\n try {\n const response = await $axios.post('/api/auth/signin', {\n ...user,\n type\n });\n\n setCookie('user', response.data);\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true,\n roles: response.data.roles\n });\n\n await this.initialize();\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on login error\n await removeCookie('user');\n \n Object.assign(state.access, {\n token: null,\n status: false,\n roles: null\n });\n\n console.log(error);\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async signup(user, type, invite) {\n const { password, passwordRepeat } = state.user;\n\n console.log(password);\n console.log(passwordRepeat);\n\n if (password !== passwordRepeat) {\n const error = {\n response: {\n data: { errorCode: \"PASSWORDS_DO_NOT_MATCH\" }\n }\n };\n setError(error);\n throw new Error(error.response.status);\n }\n\n try {\n const response = await $axios.post('/api/auth/signup', {\n ...user,\n type,\n inviteCode: invite\n });\n\n console.log(response);\n\n if (response.data.accessToken) {\n setCookie('user', response.data);\n }\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true,\n roles: response.data.roles\n });\n\n await this.initialize();\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on signup error\n await removeCookie('user');\n setError(error);\n console.log('Sign up failed');\n throw error;\n }\n },\n\n async logout() {\n await removeCookie('user');\n setAuthToken(null);\n this.resetState();\n },\n\n async resetPassword(user, type) {\n try {\n const response = await $axios.post('/api/auth/reset-password', {\n email: user.email,\n phone: user.phone,\n type\n });\n\n Object.assign(twofa.state.code, {\n ...response.data,\n isSended: true\n });\n\n return response.data;\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async updatePassword(user, type) {\n const { password, passwordRepeat } = state.user;\n\n if (password !== passwordRepeat) {\n const error = {\n response: {\n data: { errorCode: \"PASSWORDS_DO_NOT_MATCH\" }\n }\n };\n setError(error);\n throw new Error(error.response.status);\n }\n\n try {\n const response = await $axios.post('/api/auth/update-password', {\n email: user.email,\n phone: user.phone,\n password: user.password,\n passwordRepeat: user.passwordRepeat,\n type\n });\n\n if (response.data.accessToken) {\n setCookie('user', response.data);\n }\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true\n });\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on password update error\n await removeCookie('user');\n setError(error);\n return Promise.reject(error);\n }\n }\n};\n\n// Cookies\nconst optionsDefault = {\n development: { secure: false, expires: 7, sameSite: 'Lax' },\n production: { expires: 7, path: '/', domain: process.env.DOMAIN_URL, sameSite: 'strict', secure: true }\n};\n\nasync function getCookie(name) {\n if (process.env.MOBILE_APP) {\n const { value } = await Preferences.get({ key: name });\n return value ? JSON.parse(value) : null;\n } else {\n const cookie = Cookies.get(name);\n return cookie ? JSON.parse(cookie) : null;\n }\n}\n\nasync function setCookie(name, data, env = process.env.DOMAIN_URL) {\n if (process.env.MOBILE_APP) {\n // Если приложение запущено в Capacitor\n await Preferences.set({\n key: name,\n value: JSON.stringify(data)\n });\n } else {\n // Для веб-версии\n Cookies.set(name, JSON.stringify(data), optionsDefault[env]);\n }\n}\n\nasync function removeCookie(name, env = process.env.NODE_ENV) {\n if (process.env.MOBILE_APP) {\n // Если приложение запущено в Capacitor\n await Preferences.remove({ key: name });\n } else {\n // Для веб-версии\n const options = env === 'production' ? { domain: process.env.DOMAIN_URL, path: '/' } : {};\n Cookies.remove(name, options);\n }\n}\n\n// History\nconst history = [];\nhistory.push(state);\n\n// Watch\nwatch(state, (newState, oldState) => {\n history.push(newState);\n});\n\n// Module Export\nexport {\n state,\n actions,\n removeCookie\n};"],"names":["reactive","setAuthToken","$axios","setError","twofa.state","Preferences","Cookies","watch"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sources":["../../../../../../../src/modules/auth/views/store/auth.js"],"sourcesContent":["// Dependencies\nimport $axios, { setAuthToken } from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\nimport Cookies from 'js-cookie'\n// Capacitor\nimport { Preferences } from '@capacitor/preferences';\n// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// State\nimport * as twofa from './twofa'\n\n// State\nconst state = reactive({\n user: {\n _id: undefined,\n avatar: null,\n username: '',\n email: '',\n phone: '',\n password: '',\n passwordRepeat: ''\n },\n access: {\n roles: null,\n token: null,\n status: false\n },\n accesses: []\n});\n\nconst actions = {\n async initialize(cookie) {\n try {\n const userCookie = cookie ? cookie : await getCookie('user');\n\n if (userCookie) {\n const { _id, email, phone, avatar, roles, accessToken } = userCookie;\n\n setAuthToken(accessToken);\n\n // Проверка токена через серверный маршрут\n const response = await $axios.get('/api/auth/check-accesses');\n const userAccesses = response.data;\n state.accesses = userAccesses;\n\n // Обновление состояния приложения с информацией о пользователе и его правах доступа\n Object.assign(state.user, { _id, email, phone, avatar });\n Object.assign(state.access, { token: accessToken, roles, status: !!accessToken });\n } else {\n console.log('no cookies')\n setAuthToken(null);\n this.resetState();\n }\n } catch (error) {\n console.error('Error initializing auth:', error);\n // Make sure we remove the cookie when there's an error\n await removeCookie('user');\n setAuthToken(null);\n this.resetState();\n setError(error)\n }\n },\n \n // Helper method to reset state\n resetState() {\n state.accesses = [];\n state.user = {\n _id: undefined,\n avatar: null,\n username: '',\n email: '',\n phone: '',\n password: '',\n passwordRepeat: ''\n };\n state.access = {\n roles: null,\n token: null,\n status: false\n };\n },\n \n async login(user, type) {\n try {\n const response = await $axios.post('/api/auth/signin', {\n ...user,\n type\n });\n\n setCookie('user', response.data);\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true,\n roles: response.data.roles\n });\n\n await this.initialize();\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on login error\n await removeCookie('user');\n \n Object.assign(state.access, {\n token: null,\n status: false,\n roles: null\n });\n\n console.log(error);\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async signup(user, type, invite) {\n const { password, passwordRepeat } = state.user;\n\n console.log(password);\n console.log(passwordRepeat);\n\n if (password !== passwordRepeat) {\n const error = {\n response: {\n data: { errorCode: \"PASSWORDS_DO_NOT_MATCH\" }\n }\n };\n setError(error);\n throw new Error(error.response.status);\n }\n\n try {\n const response = await $axios.post('/api/auth/signup', {\n ...user,\n type,\n inviteCode: invite\n });\n\n console.log(response);\n\n if (response.data.accessToken) {\n setCookie('user', response.data);\n }\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true,\n roles: response.data.roles\n });\n\n await this.initialize();\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on signup error\n await removeCookie('user');\n setError(error);\n console.log('Sign up failed');\n throw error;\n }\n },\n\n async logout() {\n await removeCookie('user');\n setAuthToken(null);\n this.resetState();\n },\n\n async resetPassword(user, type) {\n try {\n const response = await $axios.post('/api/auth/reset-password', {\n email: user.email,\n phone: user.phone,\n type\n });\n\n Object.assign(twofa.state.code, {\n ...response.data,\n isSended: true\n });\n\n return response.data;\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async updatePassword(user, type) {\n const { password, passwordRepeat } = state.user;\n\n if (password !== passwordRepeat) {\n const error = {\n response: {\n data: { errorCode: \"PASSWORDS_DO_NOT_MATCH\" }\n }\n };\n setError(error);\n throw new Error(error.response.status);\n }\n\n try {\n const response = await $axios.post('/api/auth/update-password', {\n email: user.email,\n phone: user.phone,\n password: user.password,\n passwordRepeat: user.passwordRepeat,\n type\n });\n\n if (response.data.accessToken) {\n setCookie('user', response.data);\n }\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true\n });\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on password update error\n await removeCookie('user');\n setError(error);\n return Promise.reject(error);\n }\n }\n};\n\n// Cookies\nconst optionsDefault = {\n development: { secure: false, expires: 7, sameSite: 'Lax' },\n production: { expires: 7, path: '/', domain: process.env.DOMAIN_URL, sameSite: 'strict', secure: true }\n};\n\nasync function getCookie(name) {\n if (process.env.MOBILE_APP) {\n const { value } = await Preferences.get({ key: name });\n return value ? JSON.parse(value) : null;\n } else {\n const cookie = Cookies.get(name);\n return cookie ? JSON.parse(cookie) : null;\n }\n}\n\nasync function setCookie(name, data, env = process.env.DOMAIN_URL) {\n if (process.env.MOBILE_APP) {\n // Если приложение запущено в Capacitor\n await Preferences.set({\n key: name,\n value: JSON.stringify(data)\n });\n } else {\n // Для веб-версии\n Cookies.set(name, JSON.stringify(data), optionsDefault[env]);\n }\n}\n\nasync function removeCookie(name, env = process.env.NODE_ENV) {\n if (process.env.MOBILE_APP) {\n // Если приложение запущено в Capacitor\n await Preferences.remove({ key: name });\n } else {\n // Для веб-версии\n const options = env === 'production' ? { domain: process.env.DOMAIN_URL, path: '/' } : {};\n Cookies.remove(name, options);\n }\n}\n\n// History\nconst history = [];\nhistory.push(state);\n\n// Watch\nwatch(state, (newState, oldState) => {\n history.push(newState);\n});\n\n// Module Export\nexport {\n state,\n actions\n};"],"names":["twofa.state","Cookies"],"mappings":";;;;;;AAaK,MAAC,QAAQ,SAAS;AAAA,EACrB,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,gBAAgB;AAAA,EACjB;AAAA,EACD,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,UAAU,CAAA;AACZ,CAAC;AAEI,MAAC,UAAU;AAAA,EACd,MAAM,WAAW,QAAQ;AACvB,QAAI;AACF,YAAM,aAAa,SAAS,SAAS,MAAM,UAAU,MAAM;AAE3D,UAAI,YAAY;AACd,cAAM,EAAE,KAAK,OAAO,OAAO,QAAQ,OAAO,YAAW,IAAK;AAE1D,qBAAa,WAAW;AAGxB,cAAM,WAAW,MAAM,OAAO,IAAI,0BAA0B;AAC5D,cAAM,eAAe,SAAS;AAC9B,cAAM,WAAW;AAGjB,eAAO,OAAO,MAAM,MAAM,EAAE,KAAK,OAAO,OAAO,QAAQ;AACvD,eAAO,OAAO,MAAM,QAAQ,EAAE,OAAO,aAAa,OAAO,QAAQ,CAAC,CAAC,YAAW,CAAE;AAAA,MACxF,OAAa;AACL,gBAAQ,IAAI,YAAY;AACxB,qBAAa,IAAI;AACjB,aAAK,WAAY;AAAA,MACzB;AAAA,IACK,SAAQ,OAAO;AACd,cAAQ,MAAM,4BAA4B,KAAK;AAE/C,YAAM,aAAa,MAAM;AACzB,mBAAa,IAAI;AACjB,WAAK,WAAY;AACjB,eAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA;AAAA,EAGD,aAAa;AACX,UAAM,WAAW,CAAE;AACnB,UAAM,OAAO;AAAA,MACX,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,OAAO;AAAA,MACP,OAAO;AAAA,MACP,UAAU;AAAA,MACV,gBAAgB;AAAA,IACjB;AACD,UAAM,SAAS;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EAED,MAAM,MAAM,MAAM,MAAM;AACtB,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,oBAAoB;AAAA,QACrD,GAAG;AAAA,QACH;AAAA,MACR,CAAO;AAED,gBAAU,QAAQ,SAAS,IAAI;AAE/B,aAAO,OAAO,MAAM,MAAM;AAAA,QACxB,GAAG,SAAS;AAAA,MACpB,CAAO;AAED,aAAO,OAAO,MAAM,QAAQ;AAAA,QAC1B,OAAO,SAAS,KAAK;AAAA,QACrB,QAAQ;AAAA,QACR,OAAO,SAAS,KAAK;AAAA,MAC7B,CAAO;AAED,YAAM,KAAK,WAAY;AAEvB,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AAEd,YAAM,aAAa,MAAM;AAEzB,aAAO,OAAO,MAAM,QAAQ;AAAA,QAC1B,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,MACf,CAAO;AAED,cAAQ,IAAI,KAAK;AACjB,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IACjC;AAAA,EACG;AAAA,EAED,MAAM,OAAO,MAAM,MAAM,QAAQ;AAC/B,UAAM,EAAE,UAAU,eAAgB,IAAG,MAAM;AAE3C,YAAQ,IAAI,QAAQ;AACpB,YAAQ,IAAI,cAAc;AAE1B,QAAI,aAAa,gBAAgB;AAC/B,YAAM,QAAQ;AAAA,QACZ,UAAU;AAAA,UACR,MAAM,EAAE,WAAW,yBAAwB;AAAA,QACrD;AAAA,MACO;AACD,eAAS,KAAK;AACd,YAAM,IAAI,MAAM,MAAM,SAAS,MAAM;AAAA,IAC3C;AAEI,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,oBAAoB;AAAA,QACrD,GAAG;AAAA,QACH;AAAA,QACA,YAAY;AAAA,MACpB,CAAO;AAED,cAAQ,IAAI,QAAQ;AAEpB,UAAI,SAAS,KAAK,aAAa;AAC7B,kBAAU,QAAQ,SAAS,IAAI;AAAA,MACvC;AAEM,aAAO,OAAO,MAAM,MAAM;AAAA,QACxB,GAAG,SAAS;AAAA,MACpB,CAAO;AAED,aAAO,OAAO,MAAM,QAAQ;AAAA,QAC1B,OAAO,SAAS,KAAK;AAAA,QACrB,QAAQ;AAAA,QACR,OAAO,SAAS,KAAK;AAAA,MAC7B,CAAO;AAED,YAAM,KAAK,WAAY;AAEvB,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AAEd,YAAM,aAAa,MAAM;AACzB,eAAS,KAAK;AACd,cAAQ,IAAI,gBAAgB;AAC5B,YAAM;AAAA,IACZ;AAAA,EACG;AAAA,EAED,MAAM,SAAS;AACb,UAAM,aAAa,MAAM;AACzB,iBAAa,IAAI;AACjB,SAAK,WAAY;AAAA,EAClB;AAAA,EAED,MAAM,cAAc,MAAM,MAAM;AAC9B,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,4BAA4B;AAAA,QAC7D,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,QACZ;AAAA,MACR,CAAO;AAED,aAAO,OAAOA,QAAY,MAAM;AAAA,QAC9B,GAAG,SAAS;AAAA,QACZ,UAAU;AAAA,MAClB,CAAO;AAED,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACd,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IACjC;AAAA,EACG;AAAA,EAED,MAAM,eAAe,MAAM,MAAM;AAC/B,UAAM,EAAE,UAAU,eAAgB,IAAG,MAAM;AAE3C,QAAI,aAAa,gBAAgB;AAC/B,YAAM,QAAQ;AAAA,QACZ,UAAU;AAAA,UACR,MAAM,EAAE,WAAW,yBAAwB;AAAA,QACrD;AAAA,MACO;AACD,eAAS,KAAK;AACd,YAAM,IAAI,MAAM,MAAM,SAAS,MAAM;AAAA,IAC3C;AAEI,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,6BAA6B;AAAA,QAC9D,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,QACZ,UAAU,KAAK;AAAA,QACf,gBAAgB,KAAK;AAAA,QACrB;AAAA,MACR,CAAO;AAED,UAAI,SAAS,KAAK,aAAa;AAC7B,kBAAU,QAAQ,SAAS,IAAI;AAAA,MACvC;AAEM,aAAO,OAAO,MAAM,MAAM;AAAA,QACxB,GAAG,SAAS;AAAA,MACpB,CAAO;AAED,aAAO,OAAO,MAAM,QAAQ;AAAA,QAC1B,OAAO,SAAS,KAAK;AAAA,QACrB,QAAQ;AAAA,MAChB,CAAO;AAED,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AAEd,YAAM,aAAa,MAAM;AACzB,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IACjC;AAAA,EACA;AACA;AAGA,MAAM,iBAAiB;AAAA,EACrB,aAAa,EAAE,QAAQ,OAAO,SAAS,GAAG,UAAU,MAAO;AAAA,EAC3D,YAAY,EAAE,SAAS,GAAG,MAAM,KAAK,QAAQ,QAAQ,IAAI,YAAY,UAAU,UAAU,QAAQ,KAAI;AACvG;AAEA,eAAe,UAAU,MAAM;AAC7B,MAAI,QAAQ,IAAI,YAAY;AAC1B,UAAM,EAAE,MAAK,IAAK,MAAM,YAAY,IAAI,EAAE,KAAK,MAAM;AACrD,WAAO,QAAQ,KAAK,MAAM,KAAK,IAAI;AAAA,EACvC,OAAS;AACL,UAAM,SAASC,IAAQ,IAAI,IAAI;AAC/B,WAAO,SAAS,KAAK,MAAM,MAAM,IAAI;AAAA,EACzC;AACA;AAEA,eAAe,UAAU,MAAM,MAAM,MAAM,QAAQ,IAAI,YAAY;AACjE,MAAI,QAAQ,IAAI,YAAY;AAE1B,UAAM,YAAY,IAAI;AAAA,MACpB,KAAK;AAAA,MACL,OAAO,KAAK,UAAU,IAAI;AAAA,IAChC,CAAK;AAAA,EACL,OAAS;AAELA,QAAQ,IAAI,MAAM,KAAK,UAAU,IAAI,GAAG,eAAe,GAAG,CAAC;AAAA,EAC/D;AACA;AAEA,eAAe,aAAa,MAAM,MAAM,QAAQ,IAAI,UAAU;AAC5D,MAAI,QAAQ,IAAI,YAAY;AAE1B,UAAM,YAAY,OAAO,EAAE,KAAK,KAAI,CAAE;AAAA,EAC1C,OAAS;AAEL,UAAM,UAAU,QAAQ,eAAe,EAAE,QAAQ,QAAQ,IAAI,YAAY,MAAM,IAAK,IAAG,CAAE;AACzFA,QAAQ,OAAO,MAAM,OAAO;AAAA,EAChC;AACA;AAOA,MAAM,OAAO,CAAC,UAAU,aAAa;AAErC,CAAC;"}
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../../../../../../../src/modules/auth/views/store/auth.js"],"sourcesContent":["// Dependencies\nimport $axios, { setAuthToken } from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\nimport Cookies from 'js-cookie'\n// Capacitor\nimport { Preferences } from '@capacitor/preferences';\n// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// State\nimport * as twofa from './twofa'\n\n// State\nconst state = reactive({\n user: {\n _id: undefined,\n avatar: null,\n username: '',\n email: '',\n phone: '',\n password: '',\n passwordRepeat: ''\n },\n access: {\n roles: null,\n token: null,\n status: false\n },\n accesses: []\n});\n\nconst actions = {\n async initialize(cookie) {\n try {\n const userCookie = cookie ? cookie : await getCookie('user');\n\n if (userCookie) {\n const { _id, email, phone, avatar, roles, accessToken } = userCookie;\n\n setAuthToken(accessToken);\n\n // Проверка токена через серверный маршрут\n const response = await $axios.get('/api/auth/check-accesses');\n const userAccesses = response.data;\n state.accesses = userAccesses;\n\n // Обновление состояния приложения с информацией о пользователе и его правах доступа\n Object.assign(state.user, { _id, email, phone, avatar });\n Object.assign(state.access, { token: accessToken, roles, status: !!accessToken });\n } else {\n console.log('no cookies')\n setAuthToken(null);\n this.resetState();\n }\n } catch (error) {\n console.error('Error initializing auth:', error);\n // Make sure we remove the cookie when there's an error\n await removeCookie('user');\n setAuthToken(null);\n this.resetState();\n setError(error)\n }\n },\n \n // Helper method to reset state\n resetState() {\n state.accesses = [];\n state.user = {\n _id: undefined,\n avatar: null,\n username: '',\n email: '',\n phone: '',\n password: '',\n passwordRepeat: ''\n };\n state.access = {\n roles: null,\n token: null,\n status: false\n };\n },\n \n async login(user, type) {\n try {\n const response = await $axios.post('/api/auth/signin', {\n ...user,\n type\n });\n\n setCookie('user', response.data);\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true,\n roles: response.data.roles\n });\n\n await this.initialize();\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on login error\n await removeCookie('user');\n \n Object.assign(state.access, {\n token: null,\n status: false,\n roles: null\n });\n\n console.log(error);\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async signup(user, type, invite) {\n const { password, passwordRepeat } = state.user;\n\n console.log(password);\n console.log(passwordRepeat);\n\n if (password !== passwordRepeat) {\n const error = {\n response: {\n data: { errorCode: \"PASSWORDS_DO_NOT_MATCH\" }\n }\n };\n setError(error);\n throw new Error(error.response.status);\n }\n\n try {\n const response = await $axios.post('/api/auth/signup', {\n ...user,\n type,\n inviteCode: invite\n });\n\n console.log(response);\n\n if (response.data.accessToken) {\n setCookie('user', response.data);\n }\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true,\n roles: response.data.roles\n });\n\n await this.initialize();\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on signup error\n await removeCookie('user');\n setError(error);\n console.log('Sign up failed');\n throw error;\n }\n },\n\n async logout() {\n await removeCookie('user');\n setAuthToken(null);\n this.resetState();\n },\n\n async resetPassword(user, type) {\n try {\n const response = await $axios.post('/api/auth/reset-password', {\n email: user.email,\n phone: user.phone,\n type\n });\n\n Object.assign(twofa.state.code, {\n ...response.data,\n isSended: true\n });\n\n return response.data;\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async updatePassword(user, type) {\n const { password, passwordRepeat } = state.user;\n\n if (password !== passwordRepeat) {\n const error = {\n response: {\n data: { errorCode: \"PASSWORDS_DO_NOT_MATCH\" }\n }\n };\n setError(error);\n throw new Error(error.response.status);\n }\n\n try {\n const response = await $axios.post('/api/auth/update-password', {\n email: user.email,\n phone: user.phone,\n password: user.password,\n passwordRepeat: user.passwordRepeat,\n type\n });\n\n if (response.data.accessToken) {\n setCookie('user', response.data);\n }\n\n Object.assign(state.user, {\n ...response.data\n });\n\n Object.assign(state.access, {\n token: response.data.accessToken,\n status: true\n });\n\n return response.data;\n } catch (error) {\n // Make sure cookie is removed on password update error\n await removeCookie('user');\n setError(error);\n return Promise.reject(error);\n }\n }\n};\n\n// Cookies\nconst optionsDefault = {\n development: { secure: false, expires: 7, sameSite: 'Lax' },\n production: { expires: 7, path: '/', domain: process.env.DOMAIN_URL, sameSite: 'strict', secure: true }\n};\n\nasync function getCookie(name) {\n if (process.env.MOBILE_APP) {\n const { value } = await Preferences.get({ key: name });\n return value ? JSON.parse(value) : null;\n } else {\n const cookie = Cookies.get(name);\n return cookie ? JSON.parse(cookie) : null;\n }\n}\n\nasync function setCookie(name, data, env = process.env.DOMAIN_URL) {\n if (process.env.MOBILE_APP) {\n // Если приложение запущено в Capacitor\n await Preferences.set({\n key: name,\n value: JSON.stringify(data)\n });\n } else {\n // Для веб-версии\n Cookies.set(name, JSON.stringify(data), optionsDefault[env]);\n }\n}\n\nasync function removeCookie(name, env = process.env.NODE_ENV) {\n if (process.env.MOBILE_APP) {\n // Если приложение запущено в Capacitor\n await Preferences.remove({ key: name });\n } else {\n // Для веб-версии\n const options = env === 'production' ? { domain: process.env.DOMAIN_URL, path: '/' } : {};\n Cookies.remove(name, options);\n }\n}\n\n// History\nconst history = [];\nhistory.push(state);\n\n// Watch\nwatch(state, (newState, oldState) => {\n history.push(newState);\n});\n\n// Module Export\nexport {\n state,\n actions,\n removeCookie\n};"],"names":["twofa.state","Cookies"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const Card = require("../elements/Card.vue.cjs");
|
|
|
8
8
|
const Audio = require("../elements/Audio.vue.cjs");
|
|
9
9
|
const Video = require("../elements/Video.vue.cjs");
|
|
10
10
|
const Draggable = require("../../../../components/Draggable/Draggable.vue.cjs");
|
|
11
|
-
const v4 = require("
|
|
11
|
+
const v4 = require("../../../../../node_modules/uuid/dist/esm-browser/v4.cjs");
|
|
12
12
|
const _hoisted_1 = ["data-index"];
|
|
13
13
|
const _hoisted_2 = ["onMouseover"];
|
|
14
14
|
const _hoisted_3 = {
|
|
@@ -6,7 +6,7 @@ import _sfc_main$6 from "../elements/Card.vue.js";
|
|
|
6
6
|
import _sfc_main$3 from "../elements/Audio.vue.js";
|
|
7
7
|
import _sfc_main$2 from "../elements/Video.vue.js";
|
|
8
8
|
import _sfc_main$1 from "../../../../components/Draggable/Draggable.vue.js";
|
|
9
|
-
import v4 from "
|
|
9
|
+
import v4 from "../../../../../node_modules/uuid/dist/esm-browser/v4.js";
|
|
10
10
|
const _hoisted_1 = ["data-index"];
|
|
11
11
|
const _hoisted_2 = ["onMouseover"];
|
|
12
12
|
const _hoisted_3 = {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
|
-
const Tab = require("../../../../components/Tab/Tab.
|
|
5
|
+
const Tab = require("../../../../components/Tab/Tab.vue.cjs");
|
|
6
6
|
const Feed = require("../../../../components/Feed/Feed.vue.cjs");
|
|
7
7
|
const CardEvent = require("../blocks/CardEvent.vue.cjs");
|
|
8
8
|
const auth = require("../../../auth/views/store/auth.cjs");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, watch, createElementBlock, openBlock, createElementVNode, createCommentVNode, unref, createBlock, createVNode, isRef, withCtx, Fragment, renderList, withModifiers } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
|
-
import _sfc_main$1 from "../../../../components/Tab/Tab.
|
|
3
|
+
import _sfc_main$1 from "../../../../components/Tab/Tab.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
|
|
5
5
|
import _sfc_main$3 from "../blocks/CardEvent.vue.js";
|
|
6
6
|
import { state } from "../../../auth/views/store/auth.js";
|
|
@@ -9,10 +9,12 @@ class Store {
|
|
|
9
9
|
current: {}
|
|
10
10
|
});
|
|
11
11
|
this.apiUrl = apiUrl;
|
|
12
|
+
console.log(`Store initialized with API URL: ${apiUrl}`);
|
|
12
13
|
}
|
|
13
|
-
// Simplified request method
|
|
14
|
+
// Simplified request method with enhanced debugging
|
|
14
15
|
async request(endpoint, options = {}) {
|
|
15
16
|
const url = endpoint.startsWith("http") ? endpoint : `${this.apiUrl}${endpoint}`;
|
|
17
|
+
console.log(`Making request to: ${url}`, { method: options.method || "GET" });
|
|
16
18
|
const defaultOptions = {
|
|
17
19
|
credentials: "include",
|
|
18
20
|
// Assumes credentials needed for each request
|
|
@@ -27,53 +29,131 @@ class Store {
|
|
|
27
29
|
finalOptions.body = JSON.stringify(options.body);
|
|
28
30
|
}
|
|
29
31
|
try {
|
|
32
|
+
console.log("Request options:", JSON.stringify({
|
|
33
|
+
method: finalOptions.method,
|
|
34
|
+
headers: finalOptions.headers,
|
|
35
|
+
bodyLength: finalOptions.body ? JSON.stringify(finalOptions.body).length : 0
|
|
36
|
+
}));
|
|
30
37
|
const response = await fetch(url, finalOptions);
|
|
38
|
+
console.log(`Response status: ${response.status}`);
|
|
39
|
+
const responseHeaders = {};
|
|
40
|
+
response.headers.forEach((value, key) => {
|
|
41
|
+
responseHeaders[key] = value;
|
|
42
|
+
});
|
|
43
|
+
console.log("Response headers:", responseHeaders);
|
|
31
44
|
if (!response.ok) {
|
|
32
|
-
|
|
33
|
-
|
|
45
|
+
let errorData;
|
|
46
|
+
try {
|
|
47
|
+
errorData = await response.json();
|
|
48
|
+
} catch (jsonError) {
|
|
49
|
+
console.error("Failed to parse error response as JSON:", jsonError);
|
|
50
|
+
errorData = { message: "Failed to parse server response" };
|
|
51
|
+
}
|
|
52
|
+
console.error("Server returned error:", errorData);
|
|
53
|
+
const error = new Error(errorData.message || `Server returned ${response.status}`);
|
|
54
|
+
error.status = response.status;
|
|
34
55
|
error.errorCode = errorData.errorCode || "UNKNOWN_ERROR";
|
|
56
|
+
error.responseText = await response.text().catch(() => "Unable to get response text");
|
|
35
57
|
throw error;
|
|
36
58
|
}
|
|
37
|
-
|
|
59
|
+
const data = await response.json();
|
|
60
|
+
console.log("Response data received successfully");
|
|
61
|
+
return data;
|
|
38
62
|
} catch (error) {
|
|
39
|
-
console.error(error);
|
|
63
|
+
console.error("Request failed:", error);
|
|
64
|
+
if (error.name === "TypeError" && error.message.includes("Failed to fetch")) {
|
|
65
|
+
console.error("Network error detected. This might indicate a CORS issue, network connectivity problem, or the server is down.");
|
|
66
|
+
const enhancedError = new Error("Network error: Unable to connect to the server");
|
|
67
|
+
enhancedError.originalError = error;
|
|
68
|
+
globals.setError(enhancedError);
|
|
69
|
+
throw enhancedError;
|
|
70
|
+
}
|
|
40
71
|
globals.setError(error);
|
|
41
72
|
throw error;
|
|
42
73
|
}
|
|
43
74
|
}
|
|
44
75
|
async create(item) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
76
|
+
console.log("Creating item:", item);
|
|
77
|
+
try {
|
|
78
|
+
const result = await this.request("/create", {
|
|
79
|
+
method: "POST",
|
|
80
|
+
body: item
|
|
81
|
+
});
|
|
82
|
+
console.log("Create operation succeeded:", result);
|
|
83
|
+
return result;
|
|
84
|
+
} catch (error) {
|
|
85
|
+
console.error("Create operation failed:", error);
|
|
86
|
+
if (error.status) {
|
|
87
|
+
console.error(`HTTP Status: ${error.status}`);
|
|
88
|
+
}
|
|
89
|
+
if (error.errorCode) {
|
|
90
|
+
console.error(`Error Code: ${error.errorCode}`);
|
|
91
|
+
}
|
|
92
|
+
globals.setError(error);
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
49
95
|
}
|
|
50
96
|
async read(options = {}) {
|
|
51
|
-
|
|
52
|
-
|
|
97
|
+
console.log("Reading items with options:", options);
|
|
98
|
+
try {
|
|
99
|
+
const queryParams = new URLSearchParams(options).toString();
|
|
100
|
+
const result = await this.request(`/read?${queryParams}`);
|
|
101
|
+
console.log(`Read operation returned ${result.length || 0} items`);
|
|
102
|
+
return result;
|
|
103
|
+
} catch (error) {
|
|
104
|
+
console.error("Read operation failed:", error);
|
|
105
|
+
globals.setError(error);
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
53
108
|
}
|
|
54
109
|
async update(item) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
110
|
+
console.log("Updating item:", item);
|
|
111
|
+
try {
|
|
112
|
+
const result = await this.request("/update", {
|
|
113
|
+
method: "PUT",
|
|
114
|
+
body: item
|
|
115
|
+
});
|
|
116
|
+
console.log("Update operation succeeded:", result);
|
|
117
|
+
return result;
|
|
118
|
+
} catch (error) {
|
|
119
|
+
console.error("Update operation failed:", error);
|
|
120
|
+
globals.setError(error);
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
59
123
|
}
|
|
60
124
|
async delete(item) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
125
|
+
console.log("Deleting item:", item);
|
|
126
|
+
try {
|
|
127
|
+
const result = await this.request(`/delete`, {
|
|
128
|
+
method: "DELETE",
|
|
129
|
+
body: item
|
|
130
|
+
});
|
|
131
|
+
console.log("Delete operation succeeded");
|
|
132
|
+
return result;
|
|
133
|
+
} catch (error) {
|
|
134
|
+
console.error("Delete operation failed:", error);
|
|
135
|
+
globals.setError(error);
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
65
138
|
}
|
|
66
139
|
// Enhanced Mutations utilizing Vue reactivity system efficiently
|
|
67
140
|
setItems(items, state) {
|
|
68
|
-
|
|
69
|
-
state.
|
|
141
|
+
console.log(`Setting ${items.length} items in state`);
|
|
142
|
+
const targetState = state || this.state.items;
|
|
143
|
+
if (Array.isArray(targetState)) {
|
|
144
|
+
targetState.splice(0, targetState.length, ...items);
|
|
145
|
+
} else {
|
|
146
|
+
console.error("Target state is not an array in setItems");
|
|
147
|
+
}
|
|
70
148
|
}
|
|
71
149
|
addItem(item, state, property = "_id") {
|
|
72
150
|
const targetState = state || this.state.items;
|
|
73
151
|
const existingItemIndex = targetState.findIndex((i) => i[property] === item[property]);
|
|
74
152
|
if (existingItemIndex === -1) {
|
|
153
|
+
console.log("Adding new item to state");
|
|
75
154
|
targetState.splice(0, 0, item);
|
|
76
155
|
} else {
|
|
156
|
+
console.log("Updating existing item in state");
|
|
77
157
|
Object.assign(targetState[existingItemIndex], item);
|
|
78
158
|
}
|
|
79
159
|
}
|
|
@@ -81,14 +161,20 @@ class Store {
|
|
|
81
161
|
const targetState = state || this.state.items;
|
|
82
162
|
const index = targetState.findIndex((i) => i[property] === item[property]);
|
|
83
163
|
if (index !== -1) {
|
|
164
|
+
console.log("Replacing item in state");
|
|
84
165
|
targetState.splice(index, 1, item);
|
|
166
|
+
} else {
|
|
167
|
+
console.log("Item not found for update in state");
|
|
85
168
|
}
|
|
86
169
|
}
|
|
87
170
|
removeItem(item, state, property = "_id") {
|
|
88
171
|
const targetState = state || this.state.items;
|
|
89
172
|
const index = targetState.findIndex((i) => i[property] === item[property]);
|
|
90
173
|
if (index !== -1) {
|
|
174
|
+
console.log("Removing item from state");
|
|
91
175
|
targetState.splice(index, 1);
|
|
176
|
+
} else {
|
|
177
|
+
console.log("Item not found for removal from state");
|
|
92
178
|
}
|
|
93
179
|
}
|
|
94
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globals.store.cjs","sources":["../../../../../../../src/modules/globals/views/classes/globals.store.js"],"sourcesContent":["import { reactive } from 'vue';\n\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n\nclass Store {\n constructor(apiUrl) {\n this.state = reactive({\n items: [],\n current: {}\n });\n this.apiUrl = apiUrl;\n }\n\n // Simplified request method to avoid repetition and enhance maintainability\n async request(endpoint, options = {}) {\n const url = endpoint.startsWith('http') ? endpoint : `${this.apiUrl}${endpoint}`;\n\n const defaultOptions = {\n credentials: 'include', // Assumes credentials needed for each request\n headers: {}\n };\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n\n // Set default headers if content type is not explicitly set\n if (!finalOptions.headers['Content-Type'] && options.body) {\n finalOptions.headers['Content-Type'] = 'application/json';\n finalOptions.body = JSON.stringify(options.body);\n }\n\n try {\n const response = await fetch(url, finalOptions);\n\n if (!response.ok) {\n const errorData = await response.json();\n const error = new Error(errorData.message || 'Unknown error');\n error.errorCode = errorData.errorCode || 'UNKNOWN_ERROR';\n throw error;\n }\n\n return await response.json();\n\n } catch (error) {\n console.error(error);\n setError(error);\n throw error;\n }\n }\n\n async create(item) {\n return await this.request('/create', {\n method: 'POST',\n body: item\n });\n }\n\n async read(options = {}) {\n const queryParams = new URLSearchParams(options).toString();\n \n return await this.request(`/read?${queryParams}`);\n }\n\n async update(item) {\n return await this.request('/update', {\n method: 'PUT',\n body: item\n });\n }\n\n async delete(item) {\n return await this.request(`/delete`, {\n method: 'DELETE',\n body: item\n });\n }\n\n // Enhanced Mutations utilizing Vue reactivity system efficiently \n setItems(items, state) {\n const targetState = state || this.state.items;\n\n state.splice(0, state.length, ...items);\n }\n\n addItem(item, state, property = '_id') {\n const targetState = state || this.state.items;\n const existingItemIndex = targetState.findIndex(i => i[property] === item[property]);\n \n if (existingItemIndex === -1) {\n targetState.splice(0, 0, item);\n } else {\n Object.assign(targetState[existingItemIndex], item);\n }\n }\n\n updateItem(item, state, property = '_id') {\n const targetState = state || this.state.items;\n const index = targetState.findIndex(i => i[property] === item[property]);\n if (index !== -1) {\n targetState.splice(index, 1, item);\n }\n }\n\n removeItem(item, state, property = '_id') {\n const targetState = state || this.state.items;\n // Поиск и удаление элемента по указанному ключу\n const index = targetState.findIndex(i => i[property] === item[property]);\n if (index !== -1) {\n targetState.splice(index, 1);\n }\n }\n}\n\nexport default Store;"],"names":["reactive","setError"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"globals.store.cjs","sources":["../../../../../../../src/modules/globals/views/classes/globals.store.js"],"sourcesContent":["import { reactive } from 'vue';\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals';\n\nclass Store {\n constructor(apiUrl) {\n this.state = reactive({\n items: [],\n current: {}\n });\n this.apiUrl = apiUrl;\n console.log(`Store initialized with API URL: ${apiUrl}`);\n }\n\n // Simplified request method with enhanced debugging\n async request(endpoint, options = {}) {\n const url = endpoint.startsWith('http') ? endpoint : `${this.apiUrl}${endpoint}`;\n console.log(`Making request to: ${url}`, { method: options.method || 'GET' });\n \n const defaultOptions = {\n credentials: 'include', // Assumes credentials needed for each request\n headers: {}\n };\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n\n // Set default headers if content type is not explicitly set\n if (!finalOptions.headers['Content-Type'] && options.body) {\n finalOptions.headers['Content-Type'] = 'application/json';\n finalOptions.body = JSON.stringify(options.body);\n }\n\n try {\n console.log('Request options:', JSON.stringify({\n method: finalOptions.method,\n headers: finalOptions.headers,\n bodyLength: finalOptions.body ? JSON.stringify(finalOptions.body).length : 0\n }));\n \n const response = await fetch(url, finalOptions);\n console.log(`Response status: ${response.status}`);\n \n // Log response headers for debugging\n const responseHeaders = {};\n response.headers.forEach((value, key) => {\n responseHeaders[key] = value;\n });\n console.log('Response headers:', responseHeaders);\n\n if (!response.ok) {\n let errorData;\n try {\n errorData = await response.json();\n } catch (jsonError) {\n console.error('Failed to parse error response as JSON:', jsonError);\n errorData = { message: 'Failed to parse server response' };\n }\n \n console.error('Server returned error:', errorData);\n const error = new Error(errorData.message || `Server returned ${response.status}`);\n error.status = response.status;\n error.errorCode = errorData.errorCode || 'UNKNOWN_ERROR';\n error.responseText = await response.text().catch(() => 'Unable to get response text');\n throw error;\n }\n\n const data = await response.json();\n console.log('Response data received successfully');\n return data;\n } catch (error) {\n console.error('Request failed:', error);\n if (error.name === 'TypeError' && error.message.includes('Failed to fetch')) {\n console.error('Network error detected. This might indicate a CORS issue, network connectivity problem, or the server is down.');\n const enhancedError = new Error('Network error: Unable to connect to the server');\n enhancedError.originalError = error;\n setError(enhancedError);\n throw enhancedError;\n }\n \n setError(error);\n throw error;\n }\n }\n\n async create(item) {\n console.log('Creating item:', item);\n try {\n const result = await this.request('/create', {\n method: 'POST',\n body: item\n });\n console.log('Create operation succeeded:', result);\n return result;\n } catch (error) {\n console.error('Create operation failed:', error);\n // Log specific error details\n if (error.status) {\n console.error(`HTTP Status: ${error.status}`);\n }\n if (error.errorCode) {\n console.error(`Error Code: ${error.errorCode}`);\n }\n setError(error);\n throw error;\n }\n }\n\n async read(options = {}) {\n console.log('Reading items with options:', options);\n try {\n const queryParams = new URLSearchParams(options).toString();\n const result = await this.request(`/read?${queryParams}`);\n console.log(`Read operation returned ${result.length || 0} items`);\n return result;\n } catch (error) {\n console.error('Read operation failed:', error);\n setError(error);\n throw error;\n }\n }\n\n async update(item) {\n console.log('Updating item:', item);\n try {\n const result = await this.request('/update', {\n method: 'PUT',\n body: item\n });\n console.log('Update operation succeeded:', result);\n return result;\n } catch (error) {\n console.error('Update operation failed:', error);\n setError(error);\n throw error;\n }\n }\n\n async delete(item) {\n console.log('Deleting item:', item);\n try {\n const result = await this.request(`/delete`, {\n method: 'DELETE',\n body: item\n });\n console.log('Delete operation succeeded');\n return result;\n } catch (error) {\n console.error('Delete operation failed:', error);\n setError(error);\n throw error;\n }\n }\n\n // Enhanced Mutations utilizing Vue reactivity system efficiently \n setItems(items, state) {\n console.log(`Setting ${items.length} items in state`);\n const targetState = state || this.state.items;\n if (Array.isArray(targetState)) {\n targetState.splice(0, targetState.length, ...items);\n } else {\n console.error('Target state is not an array in setItems');\n }\n }\n\n addItem(item, state, property = '_id') {\n const targetState = state || this.state.items;\n const existingItemIndex = targetState.findIndex(i => i[property] === item[property]);\n \n if (existingItemIndex === -1) {\n console.log('Adding new item to state');\n targetState.splice(0, 0, item);\n } else {\n console.log('Updating existing item in state');\n Object.assign(targetState[existingItemIndex], item);\n }\n }\n\n updateItem(item, state, property = '_id') {\n const targetState = state || this.state.items;\n const index = targetState.findIndex(i => i[property] === item[property]);\n if (index !== -1) {\n console.log('Replacing item in state');\n targetState.splice(index, 1, item);\n } else {\n console.log('Item not found for update in state');\n }\n }\n\n removeItem(item, state, property = '_id') {\n const targetState = state || this.state.items;\n // Поиск и удаление элемента по указанному ключу\n const index = targetState.findIndex(i => i[property] === item[property]);\n if (index !== -1) {\n console.log('Removing item from state');\n targetState.splice(index, 1);\n } else {\n console.log('Item not found for removal from state');\n }\n }\n}\n\nexport default Store;"],"names":["reactive","setError"],"mappings":"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"}
|
|
@@ -7,10 +7,12 @@ class Store {
|
|
|
7
7
|
current: {}
|
|
8
8
|
});
|
|
9
9
|
this.apiUrl = apiUrl;
|
|
10
|
+
console.log(`Store initialized with API URL: ${apiUrl}`);
|
|
10
11
|
}
|
|
11
|
-
// Simplified request method
|
|
12
|
+
// Simplified request method with enhanced debugging
|
|
12
13
|
async request(endpoint, options = {}) {
|
|
13
14
|
const url = endpoint.startsWith("http") ? endpoint : `${this.apiUrl}${endpoint}`;
|
|
15
|
+
console.log(`Making request to: ${url}`, { method: options.method || "GET" });
|
|
14
16
|
const defaultOptions = {
|
|
15
17
|
credentials: "include",
|
|
16
18
|
// Assumes credentials needed for each request
|
|
@@ -25,53 +27,131 @@ class Store {
|
|
|
25
27
|
finalOptions.body = JSON.stringify(options.body);
|
|
26
28
|
}
|
|
27
29
|
try {
|
|
30
|
+
console.log("Request options:", JSON.stringify({
|
|
31
|
+
method: finalOptions.method,
|
|
32
|
+
headers: finalOptions.headers,
|
|
33
|
+
bodyLength: finalOptions.body ? JSON.stringify(finalOptions.body).length : 0
|
|
34
|
+
}));
|
|
28
35
|
const response = await fetch(url, finalOptions);
|
|
36
|
+
console.log(`Response status: ${response.status}`);
|
|
37
|
+
const responseHeaders = {};
|
|
38
|
+
response.headers.forEach((value, key) => {
|
|
39
|
+
responseHeaders[key] = value;
|
|
40
|
+
});
|
|
41
|
+
console.log("Response headers:", responseHeaders);
|
|
29
42
|
if (!response.ok) {
|
|
30
|
-
|
|
31
|
-
|
|
43
|
+
let errorData;
|
|
44
|
+
try {
|
|
45
|
+
errorData = await response.json();
|
|
46
|
+
} catch (jsonError) {
|
|
47
|
+
console.error("Failed to parse error response as JSON:", jsonError);
|
|
48
|
+
errorData = { message: "Failed to parse server response" };
|
|
49
|
+
}
|
|
50
|
+
console.error("Server returned error:", errorData);
|
|
51
|
+
const error = new Error(errorData.message || `Server returned ${response.status}`);
|
|
52
|
+
error.status = response.status;
|
|
32
53
|
error.errorCode = errorData.errorCode || "UNKNOWN_ERROR";
|
|
54
|
+
error.responseText = await response.text().catch(() => "Unable to get response text");
|
|
33
55
|
throw error;
|
|
34
56
|
}
|
|
35
|
-
|
|
57
|
+
const data = await response.json();
|
|
58
|
+
console.log("Response data received successfully");
|
|
59
|
+
return data;
|
|
36
60
|
} catch (error) {
|
|
37
|
-
console.error(error);
|
|
61
|
+
console.error("Request failed:", error);
|
|
62
|
+
if (error.name === "TypeError" && error.message.includes("Failed to fetch")) {
|
|
63
|
+
console.error("Network error detected. This might indicate a CORS issue, network connectivity problem, or the server is down.");
|
|
64
|
+
const enhancedError = new Error("Network error: Unable to connect to the server");
|
|
65
|
+
enhancedError.originalError = error;
|
|
66
|
+
setError(enhancedError);
|
|
67
|
+
throw enhancedError;
|
|
68
|
+
}
|
|
38
69
|
setError(error);
|
|
39
70
|
throw error;
|
|
40
71
|
}
|
|
41
72
|
}
|
|
42
73
|
async create(item) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
74
|
+
console.log("Creating item:", item);
|
|
75
|
+
try {
|
|
76
|
+
const result = await this.request("/create", {
|
|
77
|
+
method: "POST",
|
|
78
|
+
body: item
|
|
79
|
+
});
|
|
80
|
+
console.log("Create operation succeeded:", result);
|
|
81
|
+
return result;
|
|
82
|
+
} catch (error) {
|
|
83
|
+
console.error("Create operation failed:", error);
|
|
84
|
+
if (error.status) {
|
|
85
|
+
console.error(`HTTP Status: ${error.status}`);
|
|
86
|
+
}
|
|
87
|
+
if (error.errorCode) {
|
|
88
|
+
console.error(`Error Code: ${error.errorCode}`);
|
|
89
|
+
}
|
|
90
|
+
setError(error);
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
47
93
|
}
|
|
48
94
|
async read(options = {}) {
|
|
49
|
-
|
|
50
|
-
|
|
95
|
+
console.log("Reading items with options:", options);
|
|
96
|
+
try {
|
|
97
|
+
const queryParams = new URLSearchParams(options).toString();
|
|
98
|
+
const result = await this.request(`/read?${queryParams}`);
|
|
99
|
+
console.log(`Read operation returned ${result.length || 0} items`);
|
|
100
|
+
return result;
|
|
101
|
+
} catch (error) {
|
|
102
|
+
console.error("Read operation failed:", error);
|
|
103
|
+
setError(error);
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
51
106
|
}
|
|
52
107
|
async update(item) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
108
|
+
console.log("Updating item:", item);
|
|
109
|
+
try {
|
|
110
|
+
const result = await this.request("/update", {
|
|
111
|
+
method: "PUT",
|
|
112
|
+
body: item
|
|
113
|
+
});
|
|
114
|
+
console.log("Update operation succeeded:", result);
|
|
115
|
+
return result;
|
|
116
|
+
} catch (error) {
|
|
117
|
+
console.error("Update operation failed:", error);
|
|
118
|
+
setError(error);
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
57
121
|
}
|
|
58
122
|
async delete(item) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
123
|
+
console.log("Deleting item:", item);
|
|
124
|
+
try {
|
|
125
|
+
const result = await this.request(`/delete`, {
|
|
126
|
+
method: "DELETE",
|
|
127
|
+
body: item
|
|
128
|
+
});
|
|
129
|
+
console.log("Delete operation succeeded");
|
|
130
|
+
return result;
|
|
131
|
+
} catch (error) {
|
|
132
|
+
console.error("Delete operation failed:", error);
|
|
133
|
+
setError(error);
|
|
134
|
+
throw error;
|
|
135
|
+
}
|
|
63
136
|
}
|
|
64
137
|
// Enhanced Mutations utilizing Vue reactivity system efficiently
|
|
65
138
|
setItems(items, state) {
|
|
66
|
-
|
|
67
|
-
state.
|
|
139
|
+
console.log(`Setting ${items.length} items in state`);
|
|
140
|
+
const targetState = state || this.state.items;
|
|
141
|
+
if (Array.isArray(targetState)) {
|
|
142
|
+
targetState.splice(0, targetState.length, ...items);
|
|
143
|
+
} else {
|
|
144
|
+
console.error("Target state is not an array in setItems");
|
|
145
|
+
}
|
|
68
146
|
}
|
|
69
147
|
addItem(item, state, property = "_id") {
|
|
70
148
|
const targetState = state || this.state.items;
|
|
71
149
|
const existingItemIndex = targetState.findIndex((i) => i[property] === item[property]);
|
|
72
150
|
if (existingItemIndex === -1) {
|
|
151
|
+
console.log("Adding new item to state");
|
|
73
152
|
targetState.splice(0, 0, item);
|
|
74
153
|
} else {
|
|
154
|
+
console.log("Updating existing item in state");
|
|
75
155
|
Object.assign(targetState[existingItemIndex], item);
|
|
76
156
|
}
|
|
77
157
|
}
|
|
@@ -79,14 +159,20 @@ class Store {
|
|
|
79
159
|
const targetState = state || this.state.items;
|
|
80
160
|
const index = targetState.findIndex((i) => i[property] === item[property]);
|
|
81
161
|
if (index !== -1) {
|
|
162
|
+
console.log("Replacing item in state");
|
|
82
163
|
targetState.splice(index, 1, item);
|
|
164
|
+
} else {
|
|
165
|
+
console.log("Item not found for update in state");
|
|
83
166
|
}
|
|
84
167
|
}
|
|
85
168
|
removeItem(item, state, property = "_id") {
|
|
86
169
|
const targetState = state || this.state.items;
|
|
87
170
|
const index = targetState.findIndex((i) => i[property] === item[property]);
|
|
88
171
|
if (index !== -1) {
|
|
172
|
+
console.log("Removing item from state");
|
|
89
173
|
targetState.splice(index, 1);
|
|
174
|
+
} else {
|
|
175
|
+
console.log("Item not found for removal from state");
|
|
90
176
|
}
|
|
91
177
|
}
|
|
92
178
|
}
|