@ozdao/martyrs 0.2.518 → 0.2.520

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 (509) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/{abac-Cf_9lCSh.js → abac-CnJsrv8S.js} +3 -3
  6. package/dist/{abac-6LjoG9u-.cjs → abac-DOyUjhee.cjs} +3 -3
  7. package/dist/builder.cjs +27 -25
  8. package/dist/builder.js +27 -25
  9. package/dist/chats.server.cjs +198 -1
  10. package/dist/chats.server.js +198 -1
  11. package/dist/{crud-sE7GLPbj.js → crud-BIFl1W1i.js} +6 -6
  12. package/dist/{crud-JN_LFj01.cjs → crud-CC6k6yY5.cjs} +6 -6
  13. package/dist/{globals.logger-CZMgIMlM.cjs → globals.logger-BuW7JHMY.cjs} +63 -53
  14. package/dist/{globals.logger-Bf6rRU7j.js → globals.logger-VRHh-WUW.js} +63 -53
  15. package/dist/{globals.observer-CV2wCzzh.cjs → globals.observer-C_FYclgV.cjs} +36 -1
  16. package/dist/{globals.observer-CDqUjVU5.js → globals.observer-MZsqaE6F.js} +36 -1
  17. package/dist/globals.server.cjs +1 -1
  18. package/dist/globals.server.js +1 -1
  19. package/dist/inventory.server.cjs +276 -376
  20. package/dist/inventory.server.js +276 -376
  21. package/dist/main-BM3GslOO.cjs +11 -0
  22. package/dist/{main-wmEhGVvD.js → main-Qcn7YlTx.js} +1834 -1830
  23. package/dist/martyrs/src/components/Address/{Address.vue2.cjs → Address.vue.cjs} +2 -2
  24. package/dist/martyrs/src/components/Address/{Address.vue2.js.map → Address.vue.cjs.map} +1 -1
  25. package/dist/martyrs/src/components/Address/{Address.vue2.js → Address.vue.js} +2 -2
  26. package/dist/martyrs/src/components/Address/Address.vue.js.map +1 -0
  27. package/dist/martyrs/src/components/Button/Button.vue.cjs +1 -1
  28. package/dist/martyrs/src/components/Button/Button.vue.cjs.map +1 -1
  29. package/dist/martyrs/src/components/Button/Button.vue.js +1 -1
  30. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -1
  31. package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
  32. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
  33. package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
  34. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
  35. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  36. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  37. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  38. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
  39. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -93
  40. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +1 -1
  41. package/dist/martyrs/src/components/EditImages/EditImages.vue.js +1 -94
  42. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
  43. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +93 -0
  44. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
  45. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +94 -1
  46. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
  47. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -3
  48. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -3
  50. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  51. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  52. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  53. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs +1 -1
  54. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -1
  55. package/dist/martyrs/src/components/Loader/Loader.vue2.js +1 -1
  56. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -1
  57. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.cjs → LocationMarker.vue.cjs} +2 -2
  58. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js.map → LocationMarker.vue.cjs.map} +1 -1
  59. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js → LocationMarker.vue.js} +2 -2
  60. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -0
  61. package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
  62. package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
  63. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  64. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  65. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.cjs +2 -2
  66. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
  67. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  70. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  72. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +4 -4
  74. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +41 -51
  76. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +59 -69
  78. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +11 -13
  80. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +11 -13
  82. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/auth/views/store/auth.cjs +10 -1
  84. package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
  85. package/dist/martyrs/src/modules/auth/views/store/auth.js +10 -1
  86. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  87. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +6 -0
  88. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
  89. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +6 -0
  90. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs +27 -11
  92. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +28 -12
  94. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +62 -0
  96. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +63 -1
  98. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/chats/store/chat.store.cjs +60 -1
  100. package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/chats/store/chat.store.js +60 -1
  102. package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
  103. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  105. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +3 -3
  106. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  107. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  108. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  110. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  111. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  113. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +50 -368
  114. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -1
  115. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +53 -371
  116. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  117. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  119. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  121. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  124. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -3
  126. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  127. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -3
  128. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  129. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +2 -2
  130. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  131. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
  132. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  134. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  135. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  136. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  137. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  138. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  139. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
  140. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
  142. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +2 -2
  144. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +2 -2
  145. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  146. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  147. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +16 -3
  148. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +17 -4
  150. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +7 -0
  153. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  154. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +7 -0
  155. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
  156. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -1
  157. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +67 -43
  158. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs.map +1 -1
  159. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +68 -44
  160. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
  161. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +22 -7
  162. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs.map +1 -1
  163. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +23 -8
  164. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js.map +1 -1
  165. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +47 -32
  166. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs.map +1 -1
  167. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +48 -33
  168. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
  169. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +47 -26
  170. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs.map +1 -1
  171. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +48 -27
  172. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
  173. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +42 -52
  174. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
  175. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +43 -53
  176. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +18 -18
  178. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
  180. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  181. package/dist/martyrs/src/modules/inventory/store/{ inventory.store.cjs → inventory.store.cjs} +46 -2
  182. package/dist/martyrs/src/modules/inventory/store/inventory.store.cjs.map +1 -0
  183. package/dist/martyrs/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +46 -2
  184. package/dist/martyrs/src/modules/inventory/store/inventory.store.js.map +1 -0
  185. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +180 -19
  186. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  187. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +181 -20
  188. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  189. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  190. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  191. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  192. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  193. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  195. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  197. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
  199. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  201. package/dist/martyrs/src/modules/music/router/music.cjs +1 -2
  202. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  203. package/dist/martyrs/src/modules/music/router/music.js +1 -2
  204. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  205. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +2 -2
  206. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
  207. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
  208. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  211. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
  212. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  213. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  215. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -4
  216. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  217. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -4
  218. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  220. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  221. package/dist/martyrs/src/modules/orders/orders.client.cjs +2 -2
  222. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  223. package/dist/martyrs/src/modules/orders/orders.client.js +2 -2
  224. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  225. package/dist/martyrs/src/modules/orders/router/customers.router.cjs +1 -1
  226. package/dist/martyrs/src/modules/orders/router/customers.router.cjs.map +1 -1
  227. package/dist/martyrs/src/modules/orders/router/customers.router.js +1 -1
  228. package/dist/martyrs/src/modules/orders/router/customers.router.js.map +1 -1
  229. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -24
  230. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
  231. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -27
  232. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  235. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs +4 -1
  236. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs.map +1 -1
  237. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +4 -1
  238. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
  239. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +3 -3
  240. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
  241. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +3 -3
  242. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
  243. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +195 -0
  244. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -0
  245. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +195 -0
  246. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -0
  247. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +402 -0
  248. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -0
  249. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +402 -0
  250. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -0
  251. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +86 -0
  252. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -0
  253. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +86 -0
  254. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -0
  255. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
  256. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  257. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +11 -11
  258. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  259. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +279 -191
  260. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
  261. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +285 -197
  262. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  263. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +7 -7
  264. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  265. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +7 -7
  266. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  267. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  268. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
  269. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  270. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  271. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  272. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  273. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  274. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  275. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  276. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  277. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  278. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
  279. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  280. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs +4 -4
  282. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
  283. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js +4 -4
  284. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
  285. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +42 -41
  286. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  287. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +53 -52
  288. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  289. package/dist/martyrs/src/modules/organizations/organizations.client.cjs +23 -16
  290. package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
  291. package/dist/martyrs/src/modules/organizations/organizations.client.js +35 -28
  292. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  293. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +0 -18
  294. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
  295. package/dist/martyrs/src/modules/organizations/router/departments.router.js +0 -18
  296. package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
  297. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs +6 -0
  298. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs.map +1 -0
  299. package/dist/martyrs/src/modules/organizations/store/departments.store.js +6 -0
  300. package/dist/martyrs/src/modules/organizations/store/departments.store.js.map +1 -0
  301. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs +6 -0
  302. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs.map +1 -0
  303. package/dist/martyrs/src/modules/organizations/store/invites.store.js +6 -0
  304. package/dist/martyrs/src/modules/organizations/store/invites.store.js.map +1 -0
  305. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs +20 -0
  306. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs.map +1 -0
  307. package/dist/martyrs/src/modules/organizations/store/memberships.store.js +20 -0
  308. package/dist/martyrs/src/modules/organizations/store/memberships.store.js.map +1 -0
  309. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  310. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  311. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -4
  312. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  313. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -4
  314. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  315. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  316. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  317. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  318. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  319. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  320. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  321. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  322. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  323. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
  324. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  325. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
  326. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  327. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  328. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  329. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +3 -3
  330. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  331. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +3 -3
  332. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  333. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  334. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  335. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  336. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  337. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
  338. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  339. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +60 -272
  340. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -1
  341. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +62 -274
  342. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  343. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  344. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  345. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  346. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  347. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
  348. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
  349. package/dist/martyrs.cjs.js +1 -1
  350. package/dist/martyrs.css +1 -1
  351. package/dist/martyrs.es.js +1 -1
  352. package/dist/music.server.cjs +9 -9
  353. package/dist/music.server.js +9 -9
  354. package/dist/notifications.server.cjs +0 -24
  355. package/dist/notifications.server.js +0 -24
  356. package/dist/orders.server.cjs +3 -6
  357. package/dist/orders.server.js +3 -6
  358. package/dist/organizations.server.cjs +119 -43
  359. package/dist/organizations.server.js +119 -43
  360. package/dist/products.server.cjs +5 -5
  361. package/dist/products.server.js +5 -5
  362. package/dist/rents.server.cjs +3 -3
  363. package/dist/rents.server.js +3 -3
  364. package/dist/style.css +16 -17
  365. package/dist/wallet.server.cjs +2 -2
  366. package/dist/wallet.server.js +2 -2
  367. package/dist/{web-B5wZTKbK.cjs → web-B0cfxzgu.cjs} +1 -1
  368. package/dist/{web-520xCgXy.js → web-DVR8m2fm.js} +1 -1
  369. package/package.json +1 -1
  370. package/src/builder/modes/ssr.rspack.dev.js +20 -12
  371. package/src/builder/rspack/rspack.config.base.js +16 -15
  372. package/src/components/Button/Button.vue +1 -1
  373. package/src/components/Feed/Feed.old.vue +0 -1
  374. package/src/components/Feed/Feed.vue +1 -31
  375. package/src/components/Loader/Loader.vue +1 -1
  376. package/src/modules/auth/FIXES.md +61 -0
  377. package/src/modules/auth/PROMT.md +33 -0
  378. package/src/modules/auth/auth.server.js +1 -0
  379. package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
  380. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  381. package/src/modules/auth/views/components/pages/Invite.vue +2 -2
  382. package/src/modules/auth/views/components/pages/Profile.vue +33 -48
  383. package/src/modules/auth/views/components/sections/SliderFeatures.vue +5 -7
  384. package/src/modules/auth/views/store/auth.js +16 -1
  385. 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 +445 -0
  386. package/src/modules/backoffice/components/partials/Sidebar.vue +6 -0
  387. package/src/modules/chats/CLAUDE.md +137 -0
  388. package/src/modules/chats/components/blocks/ChatMessage.vue +12 -0
  389. package/src/modules/chats/components/sections/ChatWindow.vue +84 -2
  390. package/src/modules/chats/controllers/chats.controller.js +187 -0
  391. package/src/modules/chats/models/chat.model.js +21 -0
  392. package/src/modules/chats/routes/chats.routes.js +46 -0
  393. package/src/modules/chats/store/chat.store.js +67 -0
  394. package/src/modules/community/components/layouts/Community.vue +2 -2
  395. package/src/modules/community/components/pages/Posts.vue +3 -328
  396. package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
  397. package/src/modules/events/components/pages/Events.vue +2 -2
  398. package/src/modules/globals/controllers/classes/globals.cache.js +64 -55
  399. package/src/modules/globals/controllers/classes/globals.logger.js +40 -4
  400. package/src/modules/globals/controllers/classes/globals.observer.js +54 -4
  401. package/src/modules/globals/views/components/partials/Header.vue +1 -1
  402. package/src/modules/globals/views/components/partials/Sidebar.vue +17 -13
  403. package/src/modules/globals/views/mixins/mixins.js +7 -0
  404. package/src/modules/inventory/CLAUDE.md +330 -0
  405. package/src/modules/inventory/PROMT.md +25 -0
  406. package/src/modules/inventory/components/forms/AdjustmentForm.vue +53 -36
  407. package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +11 -6
  408. package/src/modules/inventory/components/forms/HistoryView.vue +21 -9
  409. package/src/modules/inventory/components/forms/StockAlertsForm.vue +33 -22
  410. package/src/modules/inventory/components/pages/Inventory.vue +40 -40
  411. package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
  412. package/src/modules/inventory/docs/01-intro.md +126 -0
  413. package/src/modules/inventory/docs/02-architecture.md +266 -0
  414. package/src/modules/inventory/docs/03-components-and-relationships.md +338 -0
  415. package/src/modules/inventory/docs/04-business-logic-and-algorithms.md +376 -0
  416. package/src/modules/inventory/docs/05-api-specification.md +356 -0
  417. package/src/modules/inventory/docs/06-access-control.md +320 -0
  418. package/src/modules/inventory/inventory.server.js +6 -2
  419. package/src/modules/inventory/{services → middlewares}/inventory.verifier.js +5 -16
  420. package/src/modules/inventory/models/stock.availability.model.js +20 -7
  421. package/src/modules/inventory/routes/inventory.routes.js +14 -17
  422. package/src/modules/inventory/services/adjustment.service.js +137 -0
  423. package/src/modules/inventory/services/audit.service.js +160 -0
  424. package/src/modules/inventory/services/availability.service.js +323 -0
  425. package/src/modules/inventory/services/inventory.helpers.old.js +217 -0
  426. package/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +0 -14
  427. package/src/modules/inventory/workers/inventory.availability.worker.js +29 -30
  428. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +160 -8
  429. package/src/modules/notifications/controllers/notifications.controller.js +0 -6
  430. package/src/modules/notifications/services/notification.service.js +1 -17
  431. package/src/modules/notifications/services/web-push.service.js +0 -2
  432. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +2 -2
  433. package/src/modules/orders/components/blocks/CardOrderVar1.vue +1 -1
  434. package/src/modules/orders/controllers/orders.controller.js +2 -4
  435. package/src/modules/orders/orders.client.js +2 -2
  436. package/src/modules/orders/router/customers.router.js +1 -1
  437. package/src/modules/organizations/CLAUDE.md +259 -0
  438. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -22
  439. package/src/modules/organizations/components/blocks/Socials.vue +1 -1
  440. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +3 -3
  441. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +191 -0
  442. package/src/modules/organizations/components/forms/DepartmentForm.vue +390 -0
  443. package/src/modules/organizations/components/forms/InviteForm.vue +81 -0
  444. package/src/modules/organizations/components/pages/Department.vue +10 -10
  445. package/src/modules/organizations/components/pages/DepartmentEdit.vue +8 -8
  446. package/src/modules/organizations/components/pages/Members.vue +265 -171
  447. package/src/modules/organizations/components/pages/Organization.new.vue +172 -183
  448. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  449. package/src/modules/organizations/components/pages/OrganizationEdit.vue +1 -1
  450. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  451. package/src/modules/organizations/components/sections/Organizations.vue +2 -2
  452. package/src/modules/organizations/components/sections/Publics.vue +4 -4
  453. package/src/modules/organizations/configs/navigation.organization.config.js +40 -39
  454. package/src/modules/organizations/controllers/departments.controller.js +53 -34
  455. package/src/modules/organizations/controllers/invites.controller.js +44 -5
  456. package/src/modules/organizations/controllers/memberships.controller.js +43 -4
  457. package/src/modules/organizations/organizations.client.js +24 -15
  458. package/src/modules/organizations/router/departments.router.js +0 -18
  459. package/src/modules/organizations/routes/departments.routes.js +6 -8
  460. package/src/modules/organizations/routes/invites.routes.js +6 -4
  461. package/src/modules/organizations/routes/memberships.routes.js +6 -5
  462. package/src/modules/organizations/routes/organizations.routes.js +1 -1
  463. package/src/modules/organizations/store/departments.store.js +5 -0
  464. package/src/modules/organizations/store/invites.store.js +5 -0
  465. package/src/modules/organizations/store/memberships.store.js +23 -0
  466. package/src/modules/products/components/pages/Products.vue +0 -1
  467. package/src/modules/spots/components/blocks/CardSpot.vue +1 -1
  468. package/src/modules/spots/components/pages/Spots.vue +3 -203
  469. package/src/styles/base/all.scss +0 -15
  470. package/src/styles/responsive.scss +1 -31
  471. package/src/styles/typography.scss +20 -5
  472. package/dist/main-CSzPfQYR.cjs +0 -11
  473. package/dist/martyrs/src/components/Address/Address.vue2.cjs.map +0 -1
  474. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
  475. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
  476. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  477. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs.map +0 -1
  478. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
  479. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +0 -76
  480. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +0 -1
  481. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js +0 -76
  482. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +0 -1
  483. package/dist/martyrs/src/modules/inventory/store/ inventory.store.cjs.map +0 -1
  484. package/dist/martyrs/src/modules/inventory/store/ inventory.store.js.map +0 -1
  485. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +0 -280
  486. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +0 -1
  487. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +0 -280
  488. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +0 -1
  489. package/dist/martyrs/src/modules/organizations/store/departments.cjs +0 -121
  490. package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +0 -1
  491. package/dist/martyrs/src/modules/organizations/store/departments.js +0 -121
  492. package/dist/martyrs/src/modules/organizations/store/departments.js.map +0 -1
  493. package/dist/martyrs/src/modules/organizations/store/invites.cjs +0 -64
  494. package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +0 -1
  495. package/dist/martyrs/src/modules/organizations/store/invites.js +0 -64
  496. package/dist/martyrs/src/modules/organizations/store/invites.js.map +0 -1
  497. package/dist/martyrs/src/modules/organizations/store/memberships.cjs +0 -87
  498. package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +0 -1
  499. package/dist/martyrs/src/modules/organizations/store/memberships.js +0 -87
  500. package/dist/martyrs/src/modules/organizations/store/memberships.js.map +0 -1
  501. package/src/modules/globals/controllers/classes/globals.websocket.ws.js +0 -102
  502. package/src/modules/globals/views/components/blocks/BlockFilter.vue +0 -60
  503. package/src/modules/inventory/docs/README.md +0 -291
  504. package/src/modules/inventory/models/stock.balance.model.js +0 -43
  505. package/src/modules/inventory/services/inventory.crud.js +0 -710
  506. package/src/modules/inventory/tests/inventory.test.js +0 -281
  507. package/src/modules/organizations/store/departments.js +0 -137
  508. package/src/modules/organizations/store/invites.js +0 -76
  509. package/src/modules/organizations/store/memberships.js +0 -110
@@ -0,0 +1,445 @@
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
+ ```
@@ -112,6 +112,12 @@ const menuItems = [
112
112
  routeName: 'Backoffice Gallery',
113
113
  icon: IconGallery
114
114
  },
115
+ {
116
+ name: 'applications',
117
+ title: 'Applications',
118
+ routeName: 'BackofficeApplications',
119
+ icon: IconEvents
120
+ },
115
121
  {
116
122
  name: 'events',
117
123
  title: 'Events',
@@ -0,0 +1,137 @@
1
+ # Модуль чатов
2
+
3
+ ## Обзор архитектуры
4
+
5
+ Модуль реализует real-time чат с использованием WebSocket и MongoDB для хранения истории сообщений.
6
+
7
+ ### Структура файлов
8
+
9
+ ```
10
+ chats/
11
+ ├── chats.client.js # Точка входа клиентской части
12
+ ├── chats.server.js # Точка входа серверной части
13
+ ├── components/
14
+ │ ├── pages/
15
+ │ │ └── ChatPage.vue # Главная страница чата
16
+ │ ├── sections/
17
+ │ │ └── ChatWindow.vue # Окно чата с сообщениями
18
+ │ └── blocks/
19
+ │ └── ChatMessage.vue # Компонент отдельного сообщения
20
+ ├── controllers/
21
+ │ └── chats.controller.js # Бизнес-логика (сохранение/получение сообщений)
22
+ ├── models/
23
+ │ └── chat.model.js # MongoDB модель сообщения
24
+ ├── routes/
25
+ │ └── chats.routes.js # HTTP маршруты и WebSocket обработчики
26
+ └── store/
27
+ └── chat.store.js # Управление состоянием на клиенте
28
+ ```
29
+
30
+ ## Ключевые компоненты
31
+
32
+ ### WebSocket интеграция
33
+
34
+ Модуль использует глобальный WebSocket класс из `@martyrs/src/modules/globals/views/classes/globals.websocket.js`:
35
+
36
+ - Подключение: `globalWebSocket.connect(userId)`
37
+ - Подписка на модуль: `globalWebSocket.subscribeModule('chat')`
38
+ - Отправка сообщений: `globalWebSocket.send({ type: 'message', module: 'chat', ... })`
39
+
40
+ ### Store (chat.store.js)
41
+
42
+ Управляет состоянием чата на клиенте:
43
+ - `state.messages` - массив сообщений текущего чата
44
+ - `state.currentChatId` - ID активного чата
45
+ - `state.username` - имя текущего пользователя
46
+
47
+ Основные методы:
48
+ - `connectWebSocket(userId)` - подключение к WebSocket
49
+ - `setCurrentChat(chatId)` - переключение чата и загрузка истории
50
+ - `addMessage(message)` - отправка нового сообщения
51
+
52
+ ### Серверные обработчики
53
+
54
+ WebSocket обработчики регистрируются через `wss.registerModule('chat', handler)`:
55
+
56
+ 1. `joinChat` - присоединение к чату (добавление chatId в ws.activeChats)
57
+ 2. `message` - обработка входящего сообщения:
58
+ - Сохранение в БД
59
+ - Рассылка всем участникам чата через `broadcastToModuleWithFilter`
60
+
61
+ REST API:
62
+ - `GET /messages/:chatId` - получение истории сообщений
63
+
64
+ ## Модель данных
65
+
66
+ ```javascript
67
+ ChatMessageSchema = {
68
+ username: String, // Имя отправителя
69
+ chatId: String, // ID чата
70
+ text: String, // Текст сообщения
71
+ createdAt: Date // Время создания (автоматически)
72
+ }
73
+ ```
74
+
75
+ ## Проблемы и TODO
76
+
77
+ ### Критические проблемы
78
+
79
+ 1. **Нет авторизации** в WebSocket обработчиках
80
+ - Любой может отправлять сообщения от имени любого пользователя
81
+ - Нет проверки прав доступа к чату
82
+
83
+ 3. **Отсутствует валидация данных**
84
+ - Нет проверки обязательных полей
85
+ - Нет санитизации входящих данных
86
+
87
+ ### Улучшения
88
+
89
+ 1. **Обработка ошибок**
90
+ - Добавить try/catch в компоненты
91
+ - Показывать уведомления об ошибках пользователю
92
+
93
+ 2. **Оптимизация**
94
+ - Пагинация для истории сообщений
95
+ - Виртуальный скроллинг для больших чатов
96
+
97
+ 3. **Функциональность**
98
+ - Индикатор набора текста
99
+ - Статусы доставки сообщений
100
+ - Поддержка файлов/изображений
101
+ - Уведомления о новых сообщениях
102
+
103
+ ## Использование
104
+
105
+ ### Инициализация на клиенте
106
+
107
+ ```javascript
108
+ import ModuleChats from '@martyrs/src/modules/chats/chats.client.js';
109
+
110
+ // В главном приложении
111
+ ModuleChats.initialize(app, store, router);
112
+ ```
113
+
114
+ ### Использование в компоненте
115
+
116
+ ```vue
117
+ <ChatPage
118
+ :username="currentUser.name"
119
+ :user="currentUser.id"
120
+ :chatID="selectedChatId"
121
+ />
122
+ ```
123
+
124
+ ### Инициализация на сервере
125
+
126
+ ```javascript
127
+ import { initialize } from '@martyrs/src/modules/chats/chats.server.js';
128
+
129
+ // При старте сервера
130
+ initialize(app, db, wss, origins, publicPath);
131
+ ```
132
+
133
+ ## Зависимости
134
+
135
+ - `globals.websocket.js` - глобальный WebSocket класс
136
+ - `auth/controllers/middlewares` - middleware для авторизации (не используется)
137
+ - `globals/controllers/utils/mailing.js` - отправка уведомлений (импортирован, но не используется)
@@ -2,22 +2,34 @@
2
2
  <div
3
3
  class="pd-small"
4
4
  :class="{'bg-main-nano': message.username === 'Support'}"
5
+ :data-message-id="message._id"
5
6
  >
6
7
  <p class="flex-v-center gap-thin flex-nowrap flex w-100 p-small">
7
8
  <!-- <img loading="lazy" v-if="message.username === 'Weeder Support'" src="/logo/logo.png" class="i-medium"> -->
8
9
  <strong class="mn-r-auto"><span class="t-semi">{{ message.username }}</span> <span class="t-transp">{{formatDate(message.createdAt)}}</span></strong>
10
+ <IconCheckmark v-if="isMessageRead" class="i-small t-main" />
9
11
  </p>
10
12
  <p>{{ message.text }}</p>
11
13
  </div>
12
14
  </template>
13
15
 
14
16
  <script>
17
+ import IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';
18
+
15
19
  export default {
20
+ components: {
21
+ IconCheckmark
22
+ },
16
23
  props: {
17
24
  message: {
18
25
  type: Object,
19
26
  required: true
20
27
  }
28
+ },
29
+ computed: {
30
+ isMessageRead() {
31
+ return this.message.readBy && this.message.readBy.length > 0;
32
+ }
21
33
  }
22
34
  };
23
35
  </script>