@ozdao/martyrs 0.2.585 → 0.2.587

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/dist/auth.server.js +175 -97
  2. package/dist/{authJwt-J1csaMWA.js → authJwt-DKbMMjw0.js} +33 -0
  3. package/dist/chats.server.js +3 -3
  4. package/dist/community.server.js +2 -2
  5. package/dist/core.server.js +201 -13
  6. package/dist/{core.websocket-C2FxNmZ1.js → core.websocket-Cl76z2wT.js} +41 -5
  7. package/dist/{crud-q1ye5IhV.js → crud-DpOXTZep.js} +1 -1
  8. package/dist/events.server.js +3 -3
  9. package/dist/files.server.js +2 -2
  10. package/dist/gallery.server.js +2 -2
  11. package/dist/index-kvBwwb0w.js +427 -0
  12. package/dist/inventory.server.js +3 -3
  13. package/dist/{mailing-DuEFRsa3.js → mailing-DT7nbNjZ.js} +16 -3
  14. package/dist/{main-xL-jtBkT.js → main-BIf-WirR.js} +863 -865
  15. package/dist/marketplace.server.js +2 -2
  16. package/dist/martyrs/dist/{main-xL-jtBkT.js → main-BIf-WirR.js} +192 -38
  17. package/dist/martyrs/dist/main-BIf-WirR.js.map +1 -0
  18. package/dist/martyrs/dist/{web-BA6h6Z8P.js → web-O7lXcjg0.js} +2 -2
  19. package/dist/martyrs/dist/{web-BA6h6Z8P.js.map → web-O7lXcjg0.js.map} +1 -1
  20. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +8 -7
  21. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  22. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  23. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  24. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  25. package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +3 -3
  26. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -0
  27. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  28. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  29. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  30. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  31. package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
  32. package/dist/martyrs/src/components/Select/Select.vue2.js.map +1 -0
  33. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js +17 -22
  34. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +1 -1
  35. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
  36. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/auth.client.js +18 -24
  38. package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js +178 -0
  40. package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js.map +1 -0
  41. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +53 -45
  43. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +198 -14
  46. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +70 -29
  49. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  50. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +2 -2
  51. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  52. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +86 -30
  53. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  54. package/dist/martyrs/src/modules/auth/views/plugins/otp.plugin.js +100 -0
  55. package/dist/martyrs/src/modules/auth/views/plugins/otp.plugin.js.map +1 -0
  56. package/dist/martyrs/src/modules/auth/views/router/auth.router.js +2 -31
  57. package/dist/martyrs/src/modules/auth/views/router/auth.router.js.map +1 -1
  58. package/dist/martyrs/src/modules/auth/views/router/users.router.js +0 -14
  59. package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -1
  60. package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -56
  61. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  62. package/dist/martyrs/src/modules/auth/views/store/users.js +5 -1
  63. package/dist/martyrs/src/modules/auth/views/store/users.js.map +1 -1
  64. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  65. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  66. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  67. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +0 -1
  68. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
  69. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  70. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
  71. package/dist/martyrs/src/modules/core/views/components/elements/OnlineIndicator.vue.js +74 -0
  72. package/dist/martyrs/src/modules/core/views/components/elements/OnlineIndicator.vue.js.map +1 -0
  73. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js.map +1 -1
  74. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +64 -48
  75. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  76. package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js +10 -33
  77. package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js.map +1 -1
  78. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +2 -2
  79. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  80. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  81. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  82. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  83. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  84. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  85. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  86. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  87. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  88. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  89. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  90. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  91. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  92. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  93. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  94. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  95. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
  96. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  97. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  98. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  99. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  100. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  101. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
  102. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  103. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  104. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  105. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  106. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  107. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  108. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  109. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  110. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  111. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +0 -1
  112. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js.map +1 -1
  113. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +1 -1
  114. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  115. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  116. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  117. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +2 -2
  118. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  119. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  120. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -2
  121. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js.map +1 -1
  122. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  123. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  124. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  125. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  126. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  127. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  128. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  129. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  130. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  131. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
  132. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  133. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  134. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  135. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  136. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -2
  137. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
  138. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  139. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -2
  140. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +0 -1
  142. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  144. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  145. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  146. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +0 -1
  147. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  148. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  149. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +0 -1
  150. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  152. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  153. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  154. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  155. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  156. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  157. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  158. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  159. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  160. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  161. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  162. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  163. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  164. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  165. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  166. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  167. package/dist/martyrs.css +1 -1
  168. package/dist/martyrs.es.js +1 -1
  169. package/dist/music.server.js +1 -1
  170. package/dist/notifications.server.js +2 -2
  171. package/dist/orders.server.js +8 -7
  172. package/dist/organizations.server.js +3 -3
  173. package/dist/pages.server.js +1 -1
  174. package/dist/products.server.js +3 -3
  175. package/dist/profile.schema-C31Lynn3.js +21 -0
  176. package/dist/rents.server.js +2 -2
  177. package/dist/reports.server.js +1 -1
  178. package/dist/sessions.service-COcwjd0f.js +86 -0
  179. package/dist/spots.server.js +1 -1
  180. package/dist/style.css +180 -110
  181. package/dist/{tickets.controller-B7r0mK-5.js → tickets.controller-DdF85W-i.js} +1 -1
  182. package/dist/visitors.service-B1dhhuSo.js +83 -0
  183. package/dist/wallet.server.js +3 -3
  184. package/dist/{web-BA6h6Z8P.js → web-O7lXcjg0.js} +1 -1
  185. package/package.json +3 -1
  186. package/src/components/Button/Button.vue +61 -15
  187. package/src/components/Loader/Loader.vue +1 -1
  188. package/src/components/Tooltip/Tooltip.vue +31 -23
  189. package/src/modules/TASKS.MD +30 -1
  190. package/src/modules/auth/CLAUDE.md +381 -0
  191. package/src/modules/auth/FIXES.md +0 -38
  192. package/src/modules/auth/auth.client.js +4 -6
  193. package/src/modules/auth/auth.server.js +19 -16
  194. package/src/modules/auth/controllers/middlewares/authJwt.js +59 -17
  195. package/src/modules/auth/controllers/middlewares/index.js +4 -1
  196. package/src/modules/auth/controllers/middlewares/otp.middleware.js +166 -0
  197. package/src/modules/auth/controllers/middlewares/verifySignUp.js +0 -1
  198. package/src/modules/auth/controllers/middlewares/verifyUser.js +58 -11
  199. package/src/modules/auth/controllers/routes/auth.routes.js +48 -6
  200. package/src/modules/auth/controllers/routes/users.routes.js +29 -8
  201. package/src/modules/auth/controllers/services/auth.service.js +62 -12
  202. package/src/modules/auth/controllers/services/otp.service.js +109 -0
  203. package/src/modules/auth/controllers/services/users.service.js +46 -6
  204. package/src/modules/auth/models/otp.model.js +20 -0
  205. package/src/modules/auth/views/components/blocks/OtpDialog.vue +168 -0
  206. package/src/modules/auth/views/components/pages/Profile.vue +18 -13
  207. package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +199 -45
  208. package/src/modules/auth/views/components/pages/ResetPassword.vue +170 -132
  209. package/src/modules/auth/views/components/pages/SignIn.vue +2 -1
  210. package/src/modules/auth/views/components/pages/SignUp.vue +203 -147
  211. package/src/modules/auth/views/plugins/otp.plugin.js +104 -0
  212. package/src/modules/auth/views/router/auth.router.js +1 -24
  213. package/src/modules/auth/views/router/users.router.js +1 -12
  214. package/src/modules/auth/views/store/auth.js +0 -68
  215. package/src/modules/auth/views/store/users.js +6 -2
  216. package/src/modules/chats/chats.server.js +1 -1
  217. package/src/modules/community/community.server.js +1 -1
  218. package/src/modules/core/controllers/classes/core.websocket.js +57 -6
  219. package/src/modules/core/controllers/middlewares/visitor.logger.js +49 -0
  220. package/src/modules/core/controllers/services/requests.service.js +53 -0
  221. package/src/modules/core/controllers/services/sessions.service.js +98 -0
  222. package/src/modules/core/controllers/services/visitors.service.js +102 -0
  223. package/src/modules/core/controllers/utils/mailing.js +16 -3
  224. package/src/modules/core/core.server.js +31 -16
  225. package/src/modules/core/models/log.model.js +24 -0
  226. package/src/modules/core/models/request.model.js +30 -0
  227. package/src/modules/core/models/session.model.js +43 -0
  228. package/src/modules/core/models/visitor.model.js +28 -0
  229. package/src/modules/core/views/components/elements/OnlineIndicator.vue +115 -0
  230. package/src/modules/core/views/components/layouts/App.vue +2 -2
  231. package/src/modules/core/views/components/layouts/Client.vue +443 -477
  232. package/src/modules/core/views/components/pages/404.vue +2 -3
  233. package/src/modules/events/events.server.js +1 -1
  234. package/src/modules/files/files.server.js +1 -1
  235. package/src/modules/gallery/gallery.server.js +1 -1
  236. package/src/modules/governance/governance.server.js +1 -1
  237. package/src/modules/icons/icons.server.js +1 -1
  238. package/src/modules/inventory/inventory.server.js +1 -1
  239. package/src/modules/marketplace/marketplace.server.js +1 -1
  240. package/src/modules/notifications/notifications.server.js +1 -1
  241. package/src/modules/orders/controllers/orders.controller.js +3 -3
  242. package/src/modules/orders/orders.server.js +1 -1
  243. package/src/modules/organizations/organizations.server.js +1 -1
  244. package/src/modules/pages/pages.server.js +1 -1
  245. package/src/modules/products/components/pages/Products.vue +1 -1
  246. package/src/modules/products/products.server.js +1 -1
  247. package/src/modules/rents/rents.server.js +1 -1
  248. package/src/modules/reports/reports.server.js +1 -1
  249. package/src/modules/spots/spots.server.js +1 -1
  250. package/src/modules/wallet/wallet.server.js +1 -1
  251. package/dist/_virtual/alignment-pattern.js +0 -5
  252. package/dist/_virtual/alignment-pattern.js.map +0 -1
  253. package/dist/_virtual/browser.js +0 -8
  254. package/dist/_virtual/browser.js.map +0 -1
  255. package/dist/_virtual/browser2.js +0 -5
  256. package/dist/_virtual/browser2.js.map +0 -1
  257. package/dist/_virtual/canvas.js +0 -5
  258. package/dist/_virtual/canvas.js.map +0 -1
  259. package/dist/_virtual/dijkstra.js +0 -5
  260. package/dist/_virtual/dijkstra.js.map +0 -1
  261. package/dist/_virtual/error-correction-code.js +0 -5
  262. package/dist/_virtual/error-correction-code.js.map +0 -1
  263. package/dist/_virtual/error-correction-level.js +0 -5
  264. package/dist/_virtual/error-correction-level.js.map +0 -1
  265. package/dist/_virtual/finder-pattern.js +0 -5
  266. package/dist/_virtual/finder-pattern.js.map +0 -1
  267. package/dist/_virtual/format-info.js +0 -5
  268. package/dist/_virtual/format-info.js.map +0 -1
  269. package/dist/_virtual/galois-field.js +0 -5
  270. package/dist/_virtual/galois-field.js.map +0 -1
  271. package/dist/_virtual/mask-pattern.js +0 -5
  272. package/dist/_virtual/mask-pattern.js.map +0 -1
  273. package/dist/_virtual/mode.js +0 -5
  274. package/dist/_virtual/mode.js.map +0 -1
  275. package/dist/_virtual/polynomial.js +0 -5
  276. package/dist/_virtual/polynomial.js.map +0 -1
  277. package/dist/_virtual/qrcode.js +0 -5
  278. package/dist/_virtual/qrcode.js.map +0 -1
  279. package/dist/_virtual/regex.js +0 -5
  280. package/dist/_virtual/regex.js.map +0 -1
  281. package/dist/_virtual/segments.js +0 -5
  282. package/dist/_virtual/segments.js.map +0 -1
  283. package/dist/_virtual/svg-tag.js +0 -5
  284. package/dist/_virtual/svg-tag.js.map +0 -1
  285. package/dist/_virtual/utils.js +0 -5
  286. package/dist/_virtual/utils.js.map +0 -1
  287. package/dist/_virtual/utils2.js +0 -5
  288. package/dist/_virtual/utils2.js.map +0 -1
  289. package/dist/_virtual/version-check.js +0 -5
  290. package/dist/_virtual/version-check.js.map +0 -1
  291. package/dist/_virtual/version.js +0 -5
  292. package/dist/_virtual/version.js.map +0 -1
  293. package/dist/index-_Edcmck_.js +0 -170
  294. package/dist/martyrs/dist/main-xL-jtBkT.js.map +0 -1
  295. package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.1.2/node_modules/bignumber.js/bignumber.js +0 -1336
  296. package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.1.2/node_modules/bignumber.js/bignumber.js.map +0 -1
  297. package/dist/martyrs/src/components/Button/Button.vue2.js.map +0 -1
  298. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
  299. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  300. package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
  301. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +0 -166
  302. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +0 -1
  303. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +0 -118
  304. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +0 -1
  305. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +0 -360
  306. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js.map +0 -1
  307. package/dist/martyrs/src/modules/auth/views/store/twofa.js +0 -40
  308. package/dist/martyrs/src/modules/auth/views/store/twofa.js.map +0 -1
  309. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js +0 -43
  310. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js.map +0 -1
  311. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +0 -47
  312. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js.map +0 -1
  313. package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js +0 -29
  314. package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js.map +0 -1
  315. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +0 -89
  316. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +0 -1
  317. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js +0 -136
  318. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js.map +0 -1
  319. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +0 -238
  320. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +0 -1
  321. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.js +0 -9
  322. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.js.map +0 -1
  323. package/dist/martyrs/src/modules/wallet/views/store/wallet.store.js +0 -134
  324. package/dist/martyrs/src/modules/wallet/views/store/wallet.store.js.map +0 -1
  325. package/dist/node_modules/.pnpm/dijkstrajs@1.0.3/node_modules/dijkstrajs/dijkstra.js +0 -106
  326. package/dist/node_modules/.pnpm/dijkstrajs@1.0.3/node_modules/dijkstrajs/dijkstra.js.map +0 -1
  327. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/browser.js +0 -79
  328. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/browser.js.map +0 -1
  329. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/can-promise.js +0 -14
  330. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/can-promise.js.map +0 -1
  331. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/alignment-pattern.js +0 -43
  332. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/alignment-pattern.js.map +0 -1
  333. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/alphanumeric-data.js +0 -85
  334. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/alphanumeric-data.js.map +0 -1
  335. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/bit-buffer.js +0 -40
  336. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/bit-buffer.js.map +0 -1
  337. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/bit-matrix.js +0 -34
  338. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/bit-matrix.js.map +0 -1
  339. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/byte-data.js +0 -36
  340. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/byte-data.js.map +0 -1
  341. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/error-correction-code.js +0 -367
  342. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/error-correction-code.js.map +0 -1
  343. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/error-correction-level.js +0 -52
  344. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/error-correction-level.js.map +0 -1
  345. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/finder-pattern.js +0 -25
  346. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/finder-pattern.js.map +0 -1
  347. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/format-info.js +0 -24
  348. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/format-info.js.map +0 -1
  349. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/galois-field.js +0 -38
  350. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/galois-field.js.map +0 -1
  351. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/kanji-data.js +0 -46
  352. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/kanji-data.js.map +0 -1
  353. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/mask-pattern.js +0 -149
  354. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/mask-pattern.js.map +0 -1
  355. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/mode.js +0 -90
  356. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/mode.js.map +0 -1
  357. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/numeric-data.js +0 -41
  358. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/numeric-data.js.map +0 -1
  359. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/polynomial.js +0 -44
  360. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/polynomial.js.map +0 -1
  361. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/qrcode.js +0 -279
  362. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/qrcode.js.map +0 -1
  363. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/reed-solomon-encoder.js +0 -38
  364. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/reed-solomon-encoder.js.map +0 -1
  365. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/regex.js +0 -33
  366. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/regex.js.map +0 -1
  367. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/segments.js +0 -201
  368. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/segments.js.map +0 -1
  369. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +0 -84
  370. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js.map +0 -1
  371. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/version-check.js +0 -14
  372. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/version-check.js.map +0 -1
  373. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/version.js +0 -107
  374. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/version.js.map +0 -1
  375. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/canvas.js +0 -61
  376. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/canvas.js.map +0 -1
  377. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/svg-tag.js +0 -64
  378. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/svg-tag.js.map +0 -1
  379. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +0 -87
  380. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js.map +0 -1
  381. package/dist/profile.schema-CjLOfG7b.js +0 -92
  382. package/src/modules/auth/controllers/middlewares/visitor.logger.js +0 -75
  383. package/src/modules/auth/controllers/routes/twofa.routes.js +0 -8
  384. package/src/modules/auth/controllers/services/twofa.service.js +0 -30
  385. package/src/modules/auth/models/request.model.js +0 -14
  386. package/src/modules/auth/models/visitor.model.js +0 -11
  387. package/src/modules/auth/views/components/pages/EnterCode.vue +0 -204
  388. package/src/modules/auth/views/components/pages/EnterPassword.vue +0 -123
  389. package/src/modules/auth/views/components/sections/ProfileEditCredentials.vue +0 -329
  390. package/src/modules/auth/views/store/twofa.js +0 -70
  391. package/src/modules/auth//320/220/320/240/320/245/320/230/320/242/320/225/320/232/320/242/320/243/320/240/320/220.md +0 -445
@@ -1,70 +0,0 @@
1
- // Vue modules
2
- import { reactive, watch } from 'vue';
3
- // Globals
4
- import { setError } from '@martyrs/src/modules/core/views/store/core.store.js';
5
- // Setup Axios
6
- import $axios from '@martyrs/src/modules/core/views/utils/axios-instance.js';
7
- // State
8
- const state = reactive({
9
- code: {
10
- value: '',
11
- type: '',
12
- method: '',
13
- isSended: false,
14
- isValid: false,
15
- },
16
- });
17
-
18
- async function sendCode(user, method, type) {
19
- let api = '/api/twofa/sendcode';
20
-
21
- if (method === 'reset-password') api = '/api/twofa/sendcodereset';
22
-
23
- return await $axios
24
- .post(api, {
25
- phone: user.phone,
26
- email: user.email,
27
- method: method,
28
- type: type,
29
- })
30
- .then(
31
- response => {
32
- state.code = response.data;
33
- state.code.isSended = true;
34
- return Promise.resolve(response.data);
35
- },
36
- error => {
37
- console.log('error is', error);
38
- setError(error);
39
- return Promise.reject(error);
40
- }
41
- );
42
- }
43
-
44
- function validCode() {
45
- const rightcode = state.status.signup.code.value.code;
46
- const usercode = state.user.code;
47
-
48
- if (rightcode == usercode) {
49
- state.status.signup.code.isValid = true;
50
- } else {
51
- setError({
52
- response: {
53
- status: 'Неверный код',
54
- data: { message: 'Вы ввели неверный код. Попробуйте еще раз.' },
55
- },
56
- });
57
- }
58
- }
59
-
60
- // // History
61
- const history = [];
62
- history.push(state);
63
-
64
- // // Watch
65
- watch(state, (newState, oldState) => {
66
- history.push(newState);
67
- });
68
-
69
- // Module Export
70
- export { sendCode, state };
@@ -1,445 +0,0 @@
1
- # Модуль Auth - Техническая архитектура
2
-
3
- ## 1. Назначение модуля
4
-
5
- Модуль `auth` представляет собой изоморфное решение для аутентификации и управления пользователями в приложении OZDAO Martyrs. Модуль обеспечивает:
6
-
7
- - **Аутентификацию пользователей** через email, телефон или Apple ID
8
- - **Регистрацию новых пользователей** с поддержкой приглашений
9
- - **Двухфакторную аутентификацию** (2FA) для повышения безопасности
10
- - **Управление профилями пользователей** (CRUD операции)
11
- - **Восстановление паролей** через email или SMS
12
- - **Ролевую модель доступа** с поддержкой различных ролей
13
- - **JWT-токены** для безопасной авторизации
14
- - **Логирование посетителей** для аналитики
15
-
16
- ## 2. Архитектура взаимодействия клиент ⇄ сервер
17
-
18
- ```
19
- ┌─────────────────────────────────┐ ┌──────────────────────────────────┐
20
- │ КЛИЕНТ (Vue) │ │ СЕРВЕР (Express) │
21
- ├─────────────────────────────────┤ ├──────────────────────────────────┤
22
- │ Views/Components │ │ Routes │
23
- │ ├─ SignIn/SignUp │◄────────┤ ├─ /api/auth/signin │
24
- │ ├─ Profile/ProfileEdit │ │ ├─ /api/auth/signup │
25
- │ ├─ ResetPassword │ │ ├─ /api/auth/reset-password │
26
- │ └─ EnterCode/EnterPassword │ │ └─ /api/auth/update-password │
27
- │ │ │ │
28
- │ Stores (State Management) │ │ Services (Controllers) │
29
- │ ├─ auth.js (login/signup) │◄────────┤ ├─ auth.service.js │
30
- │ ├─ twofa.js (2FA codes) │ │ ├─ twofa.service.js │
31
- │ └─ users.js (CRUD operations) │ │ └─ users.service.js │
32
- │ │ │ │
33
- │ Router + Middleware │ │ Middleware │
34
- │ ├─ auth.validation.js │ │ ├─ authJwt.js (токены) │
35
- │ └─ ownership.validation.js │ │ ├─ verifySignUp.js │
36
- │ │ │ └─ verifyUser.js │
37
- │ │ │ │
38
- │ Cookie/Storage Management │ │ Models (MongoDB) │
39
- │ ├─ JWT tokens │ │ ├─ User │
40
- │ ├─ User data │ │ ├─ Role │
41
- │ └─ Capacitor support │ │ └─ Visitor │
42
- └─────────────────────────────────┘ └──────────────────────────────────┘
43
- ```
44
-
45
- ## 3. Точки входа и инициализация
46
-
47
- ### 3.1 Клиентская инициализация
48
-
49
- **Файл**: `auth.client.js:34`
50
-
51
- ```javascript
52
- function initializeAuth(app, store, router, options = {}) {
53
- const route = options.route || 'Home';
54
-
55
- // Регистрация локализации
56
- i18nManager.register('auth', locales);
57
-
58
- // Добавление маршрутов
59
- router.addRoute(route, routerAuth);
60
- router.addRoute(route, routerUsers);
61
-
62
- // Регистрация хранилищ
63
- store.addStore('auth', storeAuth);
64
- store.addStore('twofa', storeTwofa);
65
- store.addStore('users', storeUsers);
66
- }
67
- ```
68
-
69
- ### 3.2 Серверная инициализация
70
-
71
- **Файл**: `auth.server.js:12`
72
-
73
- ```javascript
74
- function initializeAuth(app, db, origins, publicPath) {
75
- // Настройка моделей
76
- db.role = RoleModel(db);
77
- db.user = UserModel(db);
78
- db.visitor = VisitorModel(db);
79
- db.request = RequestModel(db);
80
-
81
- // Подключение маршрутов
82
- authRoutes(app, db, origins, publicPath);
83
- twofaRoutes(app, db, origins, publicPath);
84
- usersRoutes(app, db, origins, publicPath);
85
-
86
- // Логирование посетителей
87
- const visitorModule = visitors(db);
88
- app.use(visitorModule.visitorLogger);
89
- }
90
- ```
91
-
92
- ## 4. Потоки аутентификации
93
-
94
- ### 4.1 Поток входа (Login)
95
-
96
- ```
97
- 1. Пользователь → SignIn.vue
98
- 2. Ввод email/phone + пароль
99
- 3. store/auth.js:login() → POST /api/auth/signin
100
- 4. Сервер:
101
- ├─ Проверка пользователя в БД
102
- ├─ Валидация пароля (bcrypt)
103
- ├─ Генерация JWT токена (10 дней)
104
- └─ Возврат данных пользователя + токен
105
- 5. Клиент:
106
- ├─ Сохранение в cookie/storage
107
- ├─ Установка токена в axios
108
- └─ GET /api/organizations/check-accesses для прав доступа
109
- ```
110
-
111
- ### 4.2 Поток регистрации (Signup)
112
-
113
- ```
114
- 1. Пользователь → SignUp.vue
115
- 2. Ввод данных + опциональный invite код
116
- 3. store/auth.js:signup() → POST /api/auth/signup
117
- 4. Сервер:
118
- ├─ Проверка дублирования (middleware)
119
- ├─ Хеширование пароля (bcrypt, salt:8)
120
- ├─ Создание пользователя
121
- ├─ Присвоение роли 'user'
122
- ├─ Обработка приглашения (если есть)
123
- └─ Генерация JWT токена
124
- 5. Клиент: как при входе
125
- ```
126
-
127
- ### 4.3 Поток 2FA и восстановления пароля
128
-
129
- ```
130
- 1. Запрос сброса → ResetPassword.vue
131
- 2. store/auth.js:resetPassword() → POST /api/auth/reset-password
132
- 3. Сервер:
133
- ├─ Проверка существования пользователя
134
- ├─ Генерация 4-значного кода
135
- └─ Отправка email/SMS
136
- 4. Клиент → EnterCode.vue
137
- 5. Ввод кода → EnterPassword.vue
138
- 6. store/auth.js:updatePassword() → POST /api/auth/update-password
139
- 7. Сервер: обновление пароля + новый JWT
140
- ```
141
-
142
- ### 4.4 Поток проверки доступов
143
-
144
- ```
145
- 1. Инициализация → store/auth.js:initialize()
146
- 2. GET /api/organizations/check-accesses (в модуле organizations!)
147
- 3. Сервер:
148
- ├─ Проверка JWT токена
149
- ├─ Поиск департаментов пользователя
150
- ├─ Поиск организаций в собственности
151
- └─ Формирование массива прав доступа
152
- 4. Клиент: сохранение в state.accesses
153
- ```
154
-
155
- ## 5. Структура файлов и их связи
156
-
157
- ### 5.1 Клиентская часть
158
-
159
- ```
160
- views/
161
- ├── components/
162
- │ ├── layouts/Auth.vue # Общий layout для auth страниц
163
- │ ├── pages/ # Страницы аутентификации
164
- │ │ ├── SignIn.vue # Вход в систему
165
- │ │ ├── SignUp.vue # Регистрация
166
- │ │ ├── ResetPassword.vue # Сброс пароля
167
- │ │ ├── EnterCode.vue # Ввод 2FA кода
168
- │ │ ├── EnterPassword.vue # Новый пароль
169
- │ │ ├── Invite.vue # Регистрация по приглашению
170
- │ │ ├── Profile.vue # Профиль пользователя
171
- │ │ └── ProfileEdit.vue # Редактирование профиля
172
- │ └── sections/ # Переиспользуемые секции
173
- ├── store/ # Vuex-подобные хранилища
174
- │ ├── auth.js # Основная аутентификация
175
- │ ├── twofa.js # Двухфакторная аутентификация
176
- │ └── users.js # Управление пользователями
177
- ├── router/ # Маршрутизация
178
- │ ├── auth.js # Маршруты аутентификации
179
- │ └── users.js # Маршруты пользователей
180
- ├── middlewares/ # Валидация на клиенте
181
- │ ├── auth.validation.js # Проверка аутентификации
182
- │ └── ownership.validation.js # Проверка прав доступа
183
- └── validations/
184
- └── inputs.validation.js # Валидация форм
185
- ```
186
-
187
- ### 5.2 Серверная часть
188
-
189
- ```
190
- controllers/
191
- ├── services/ # Бизнес-логика
192
- │ ├── auth.service.js # Аутентификация
193
- │ ├── twofa.service.js # 2FA коды
194
- │ └── users.service.js # CRUD пользователей
195
- ├── routes/ # API маршруты
196
- │ ├── auth.routes.js # /api/auth/*
197
- │ ├── twofa.routes.js # /api/twofa/*
198
- │ └── users.routes.js # /api/users/*
199
- ├── middlewares/ # Серверные middleware
200
- │ ├── authJwt.js # JWT валидация
201
- │ ├── verifySignUp.js # Валидация регистрации
202
- │ ├── verifyUser.js # Проверка пользователей
203
- │ └── visitor.logger.js # Логирование посещений
204
- └── utils/
205
- └── verifyAppleIdToken.js # Apple ID интеграция
206
- ```
207
-
208
- ### 5.3 Модели данных
209
-
210
- ```
211
- models/
212
- ├── user.model.js # Пользователи
213
- ├── role.model.js # Роли
214
- ├── visitor.model.js # Логи посещений
215
- └── request.model.js # Запросы
216
- ```
217
-
218
- ## 6. API Endpoints
219
-
220
- ### 6.1 Аутентификация (/api/auth/*)
221
-
222
- | Endpoint | Method | Middleware | Описание |
223
- |----------|---------|------------|----------|
224
- | `/api/auth/signin` | POST | - | Вход в систему |
225
- | `/api/auth/signup` | POST | `checkDuplicateUsernameOrEmail` | Регистрация |
226
- | `/api/auth/reset-password` | POST | `checkUserExist` | Сброс пароля |
227
- | `/api/auth/update-password` | POST | - | Обновление пароля |
228
-
229
- ### 6.2 Двухфакторная аутентификация (/api/twofa/*)
230
-
231
- | Endpoint | Method | Описание |
232
- |----------|---------|----------|
233
- | `/api/twofa/sendcode` | POST | Отправка кода при регистрации |
234
- | `/api/twofa/sendcodereset` | POST | Отправка кода для сброса пароля |
235
-
236
- ### 6.3 Пользователи (/api/users/*)
237
-
238
- | Endpoint | Method | Middleware | Описание |
239
- |----------|---------|------------|----------|
240
- | `/api/users` | GET | - | Получение пользователей |
241
- | `/api/users` | POST | `verifyToken, checkDuplicateUsername` | Создание |
242
- | `/api/users/:_id` | PUT | `verifyToken, checkDuplicateUsername` | Обновление |
243
- | `/api/users/:_id` | DELETE | `verifyToken` | Удаление |
244
-
245
- ### 6.4 Проверка доступов
246
-
247
- | Endpoint | Method | Middleware | Модуль | Описание |
248
- |----------|---------|------------|---------|----------|
249
- | `/api/organizations/check-accesses` | GET | `verifyToken` | **organizations** | Получение прав доступа |
250
-
251
- ## 7. Безопасность
252
-
253
- ### 7.1 Хеширование паролей
254
-
255
- **Файл**: `auth.service.js:93, 164`
256
-
257
- - Библиотека: `bcrypt`
258
- - Salt rounds: 8
259
- - Асинхронное хеширование при обновлении
260
-
261
- ### 7.2 JWT Токены
262
-
263
- **Конфигурация**:
264
- - Секретный ключ: `process.env.SECRET_KEY`
265
- - Время жизни: 864000 секунд (10 дней)
266
- - Содержит: `{ _id: userId, organization: orgId }`
267
-
268
- ### 7.3 Middleware безопасности
269
-
270
- **authJwt.js**:
271
- - `verifyToken(continueOnFail)` - проверка JWT
272
- - Поддержка сервисных ключей (`x-service-key`)
273
- - Извлечение токенов из headers или cookies
274
- - Роли: `isAdmin`, `isModerator`
275
-
276
- ### 7.4 CORS и Cookie
277
-
278
- **Настройки cookie**:
279
- ```javascript
280
- development: { secure: false, expires: 7, sameSite: 'Lax' }
281
- production: {
282
- expires: 7,
283
- domain: process.env.DOMAIN_URL,
284
- sameSite: 'strict',
285
- secure: true
286
- }
287
- ```
288
-
289
- ## 8. Интеграция в проект
290
-
291
- ### 8.1 Основная инициализация
292
-
293
- ```javascript
294
- // Клиент
295
- import ModuleAuth from '@martyrs/src/modules/auth/auth.client.js';
296
- ModuleAuth.initialize(app, store, router, { route: 'Home' });
297
-
298
- // Сервер
299
- import AuthModule from '@martyrs/src/modules/auth/auth.server.js';
300
- AuthModule.initialize(app, db, origins, publicPath);
301
- ```
302
-
303
- ### 8.2 Использование в компонентах
304
-
305
- ```javascript
306
- // Аутентификация
307
- import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
308
- await auth.actions.login({ email: 'user@example.com', password: '123' }, 'email');
309
-
310
- // Управление пользователями
311
- import * as users from '@martyrs/src/modules/auth/views/store/users.js';
312
- const users = await users.actions.read();
313
- ```
314
-
315
- ### 8.3 Защищенные маршруты
316
-
317
- ```javascript
318
- // Клиент
319
- import * as authValidation from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';
320
-
321
- {
322
- path: '/profile',
323
- beforeEnter: [authValidation.requiresAuth]
324
- }
325
-
326
- // Сервер
327
- import middlewareFactory from '@martyrs/src/modules/auth/controllers/middlewares/index.js';
328
- const { authJwt } = middlewareFactory(db);
329
-
330
- app.get('/api/protected', [authJwt.verifyToken()], controller);
331
- ```
332
-
333
- ## 9. Расширение и конфигурация
334
-
335
- ### 9.1 Добавление новой роли
336
-
337
- 1. **База данных**:
338
- ```javascript
339
- db.role.create({ name: 'editor' })
340
- ```
341
-
342
- 2. **Middleware**:
343
- ```javascript
344
- const isEditor = middlewareFactory(db).authJwt.checkRole('editor');
345
- ```
346
-
347
- 3. **Маршрут**:
348
- ```javascript
349
- app.post('/api/content', [authJwt.verifyToken(), isEditor], controller);
350
- ```
351
-
352
- ### 9.2 Добавление провайдера аутентификации
353
-
354
- 1. **Сервер** (`auth.service.js`):
355
- ```javascript
356
- if (type === 'google' && authorization.id_token) {
357
- payload = await verifyGoogleIdToken(authorization.id_token);
358
- // ...
359
- }
360
- ```
361
-
362
- 2. **Клиент** (`auth.js`):
363
- ```javascript
364
- await auth.actions.login({ authorization: googleToken }, 'google');
365
- ```
366
-
367
- ### 9.3 Переменные окружения
368
-
369
- ```bash
370
- SECRET_KEY=your-jwt-secret # JWT секрет
371
- DOMAIN_URL=example.com # Домен для cookies
372
- SERVICE_KEY=service-secret # Сервисные запросы
373
- NODE_ENV=production # Окружение
374
- MOBILE_APP=true # Мобильное приложение
375
- APP_NAME=MyApp # Название в письмах
376
- ```
377
-
378
- ### 9.4 Мобильная поддержка
379
-
380
- Модуль поддерживает Capacitor через `@capacitor/preferences`:
381
- - Автоматическое переключение между cookies и Capacitor storage
382
- - Определение через `process.env.MOBILE_APP`
383
-
384
- ## 10. Ключевые сценарии использования
385
-
386
- ### 10.1 Полный цикл аутентификации
387
-
388
- ```javascript
389
- // 1. Инициализация приложения
390
- const cookie = await getCookie('user');
391
- await auth.actions.initialize(cookie);
392
-
393
- // 2. Вход пользователя
394
- await auth.actions.login({
395
- email: 'user@example.com',
396
- password: 'password123'
397
- }, 'email');
398
-
399
- // 3. Проверка прав доступа происходит автоматически
400
- // state.accesses теперь содержит права пользователя
401
-
402
- // 4. Выход
403
- await auth.actions.logout();
404
- ```
405
-
406
- ### 10.2 Регистрация с приглашением
407
-
408
- ```javascript
409
- // 1. Переход по приглашению → /auth/invite?code=INVITE123
410
- // 2. Заполнение формы
411
- await auth.actions.signup({
412
- email: 'newuser@example.com',
413
- password: 'password123'
414
- }, 'email', 'INVITE123');
415
-
416
- // 3. Автоматическое создание membership в организации
417
- ```
418
-
419
- ### 10.3 Восстановление пароля
420
-
421
- ```javascript
422
- // 1. Запрос сброса
423
- await auth.actions.resetPassword({ email: 'user@example.com' }, 'email');
424
-
425
- // 2. Отправка кода → state.twofa.code.isSended = true
426
-
427
- // 3. Новый пароль
428
- state.user.password = 'newpassword123';
429
- state.user.passwordRepeat = 'newpassword123';
430
- await auth.actions.updatePassword({ email: 'user@example.com' }, 'email');
431
- ```
432
-
433
- ### 10.4 Управление профилем
434
-
435
- ```javascript
436
- // Получение данных профиля
437
- await users.actions.read({ _id: userId });
438
-
439
- // Обновление профиля
440
- await users.actions.update({
441
- _id: userId,
442
- profile: { name: 'New Name' },
443
- socials: { twitter: '@username' }
444
- });
445
- ```