@ozdao/martyrs 0.2.510 → 0.2.512

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 (351) 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/auth.server.cjs +1 -2
  6. package/dist/auth.server.js +1 -2
  7. package/dist/builder.cjs +105 -19
  8. package/dist/builder.js +107 -20
  9. package/dist/{main-XJQJFmgj.cjs → main-B1XN9Zjg.cjs} +7 -7
  10. package/dist/{main-DrpgUZcn.js → main-u7zgfMGL.js} +1850 -1856
  11. package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
  12. package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
  13. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
  14. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  15. package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
  16. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
  17. package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
  18. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
  19. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  20. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  21. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  22. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  23. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
  24. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  25. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  26. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  27. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  28. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  29. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  30. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  31. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  32. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  33. package/dist/martyrs/src/components/Select/{Select.vue.cjs → Select.vue2.cjs} +2 -2
  34. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +1 -0
  35. package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
  36. package/dist/martyrs/src/components/Select/{Select.vue.cjs.map → Select.vue2.js.map} +1 -1
  37. package/dist/martyrs/src/components/Tab/{Tab.vue.cjs → Tab.vue2.cjs} +2 -2
  38. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -0
  39. package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
  40. package/dist/martyrs/src/components/Tab/{Tab.vue.cjs.map → Tab.vue2.js.map} +1 -1
  41. package/dist/martyrs/src/modules/auth/locales/ru.cjs +2 -0
  42. package/dist/martyrs/src/modules/auth/locales/ru.cjs.map +1 -1
  43. package/dist/martyrs/src/modules/auth/locales/ru.js +2 -0
  44. package/dist/martyrs/src/modules/auth/locales/ru.js.map +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +2 -2
  46. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
  50. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  51. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  52. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  53. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
  54. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  55. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  56. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  58. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  59. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  61. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +2 -2
  62. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
  63. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +2 -2
  64. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +2 -2
  65. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +2 -2
  66. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
  67. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  69. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  71. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  73. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  74. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  75. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
  76. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
  77. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  79. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +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.cjs +1 -1
  82. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  83. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  85. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  87. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -2
  88. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  89. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  91. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  92. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  93. package/dist/martyrs/src/modules/globals/globals.client.cjs +4 -1
  94. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  95. package/dist/martyrs/src/modules/globals/globals.client.js +23 -20
  96. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  97. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  98. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  99. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  100. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  101. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
  103. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  105. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  107. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
  108. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
  110. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
  111. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  113. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  115. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +27 -27
  116. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -1
  117. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +28 -28
  118. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -1
  119. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  121. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +308 -0
  122. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs.map +1 -0
  123. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js +308 -0
  124. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js.map +1 -0
  125. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  127. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  129. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +3 -3
  130. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +2 -2
  131. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +3 -3
  132. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
  133. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  135. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +1 -1
  136. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  137. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  139. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  141. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +2 -2
  142. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  143. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
  144. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  145. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
  146. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  147. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  149. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +2 -2
  150. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  151. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +2 -2
  152. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  153. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  155. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  157. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
  158. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  159. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  161. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +2 -2
  162. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  163. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
  164. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  165. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
  166. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  167. package/dist/martyrs/src/modules/music/router/music.cjs +2 -2
  168. package/dist/martyrs/src/modules/music/router/music.js +2 -2
  169. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  171. package/dist/martyrs/src/modules/notifications/notifications.client.cjs +101 -32
  172. package/dist/martyrs/src/modules/notifications/notifications.client.cjs.map +1 -1
  173. package/dist/martyrs/src/modules/notifications/notifications.client.js +101 -32
  174. package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
  175. package/dist/martyrs/src/modules/notifications/store/notifications.store.cjs +45 -12
  176. package/dist/martyrs/src/modules/notifications/store/notifications.store.cjs.map +1 -1
  177. package/dist/martyrs/src/modules/notifications/store/notifications.store.js +38 -5
  178. package/dist/martyrs/src/modules/notifications/store/notifications.store.js.map +1 -1
  179. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +2 -2
  180. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  181. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +2 -2
  182. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  183. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +1 -1
  184. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  185. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
  186. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  187. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  189. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  190. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  191. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  192. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  193. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  195. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  197. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  199. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  201. package/dist/martyrs/src/modules/orders/store/shopcart.cjs +33 -23
  202. package/dist/martyrs/src/modules/orders/store/shopcart.cjs.map +1 -1
  203. package/dist/martyrs/src/modules/orders/store/shopcart.js +31 -21
  204. package/dist/martyrs/src/modules/orders/store/shopcart.js.map +1 -1
  205. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  206. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  207. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  208. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  209. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +3 -3
  210. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +3 -3
  211. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
  212. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
  213. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +3 -3
  214. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +3 -3
  215. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  216. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  217. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
  218. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  219. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  220. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  221. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  222. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  223. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
  224. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  225. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -2
  226. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  227. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  228. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  229. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  230. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  231. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  232. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  233. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  235. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  236. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  237. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  238. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  239. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -3
  240. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  241. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
  242. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
  243. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +3 -3
  244. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +3 -3
  245. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +64 -63
  246. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  247. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +64 -63
  248. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  250. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  251. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
  252. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  253. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
  254. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  255. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  256. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  257. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  258. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  259. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +2 -2
  260. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +2 -2
  261. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +3 -3
  262. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +3 -3
  263. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  264. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  265. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
  266. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  267. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  268. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  269. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  270. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  271. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  272. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  273. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  274. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  275. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
  276. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  277. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
  278. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  279. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  280. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  281. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
  282. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
  283. package/dist/martyrs.cjs.js +1 -1
  284. package/dist/martyrs.css +1 -1
  285. package/dist/martyrs.es.js +1 -1
  286. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.cjs +8 -0
  287. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.cjs.map +1 -0
  288. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js +8 -0
  289. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js.map +1 -0
  290. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.cjs +13 -0
  291. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.cjs.map +1 -0
  292. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.js +13 -0
  293. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.js.map +1 -0
  294. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs +43 -0
  295. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs.map +1 -0
  296. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js +43 -0
  297. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +1 -0
  298. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs +43 -0
  299. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs.map +1 -0
  300. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js +43 -0
  301. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js.map +1 -0
  302. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs +1630 -0
  303. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs.map +1 -0
  304. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js +1630 -0
  305. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +1 -0
  306. package/dist/notifications.server.cjs +205 -11
  307. package/dist/notifications.server.js +205 -11
  308. package/dist/orders.server.cjs +3 -0
  309. package/dist/orders.server.js +3 -0
  310. package/dist/products.server.cjs +9 -36
  311. package/dist/products.server.js +9 -36
  312. package/dist/style.css +199 -190
  313. package/dist/{web-C5cmb1FH.js → web--8-wgr6b.js} +1 -1
  314. package/dist/{web-d40xcY_Y.cjs → web-BS6utuAZ.cjs} +1 -1
  315. package/package.json +1 -1
  316. package/src/builder/CLAUDE.MD +405 -0
  317. package/src/builder/builder.js +3 -0
  318. package/src/builder/modes/spa.dev.js +35 -15
  319. package/src/builder/modes/spa.prod.js +5 -6
  320. package/src/builder/modes/spa.rspack.dev.js +110 -0
  321. package/src/components/Button/Button.vue +2 -2
  322. package/src/modules/auth/controllers/services/twofa.service.js +1 -1
  323. package/src/modules/auth/locales/ru.js +2 -0
  324. package/src/modules/auth/views/components/pages/EnterCode.vue +2 -2
  325. package/src/modules/globals/globals.client.js +4 -0
  326. package/src/modules/globals/views/components/layouts/Client.vue +1 -0
  327. package/src/modules/globals/views/components/sections/Filters.vue +26 -17
  328. package/src/modules/globals/views/components/sections/Walkthrough.vue +245 -57
  329. package/src/modules/notifications/FIXES.md +1 -0
  330. package/src/modules/notifications/controllers/notifications.controller.js +147 -7
  331. package/src/modules/notifications/models/user-device.model.js +10 -2
  332. package/src/modules/notifications/notifications.client.js +127 -41
  333. package/src/modules/notifications/routes/notifications.routes.js +4 -0
  334. package/src/modules/notifications/services/notification.service.js +93 -0
  335. package/src/modules/notifications/store/notifications.store.js +47 -7
  336. package/src/modules/orders/models/application.model.js +3 -0
  337. package/src/modules/orders/store/shopcart.js +34 -23
  338. package/src/modules/products/components/pages/Products.vue +12 -10
  339. package/src/modules/products/controllers/configs/products.lookup.config.js +0 -26
  340. package/src/modules/products/controllers/products.controller.js +3 -7
  341. package/src/modules/products/controllers/queries/products.queries.js +10 -5
  342. package/src/modules/products/migrations/categories-to-materialized-path.js +0 -3
  343. package/src/styles/base/backgrounds.scss +1 -0
  344. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
  345. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
  346. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
  347. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  348. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  349. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  350. package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
  351. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
@@ -0,0 +1,405 @@
1
+ # Builder Module - Техническая документация
2
+
3
+ ## Архитектура
4
+
5
+ Builder - это модульная система сборки, поддерживающая 3 бандлера (Webpack, Rspack, Vite) и 2 режима рендеринга (SPA, SSR). Система построена для тестирования и публикации npm библиотеки с различными бандлерами.
6
+
7
+ ## Файловая структура
8
+
9
+ ```
10
+ builder/
11
+ ├── builder.js # Главный экспорт всех модулей
12
+ ├── modes/ # Режимы работы серверов
13
+ │ ├── spa.dev.js # SPA development server (Webpack)
14
+ │ ├── spa.rspack.dev.js # SPA development server (Rspack)
15
+ │ ├── spa.prod.js # SPA production server
16
+ │ ├── ssr.dev.js # SSR development (default Webpack)
17
+ │ ├── ssr.prod.js # SSR production server
18
+ │ ├── ssr.rspack.dev.js # SSR development с Rspack
19
+ │ └── ssr.vite.dev.js # SSR development с Vite
20
+ ├── webpack/ # Конфигурации Webpack
21
+ │ ├── index.js # Экспорт всех webpack конфигов
22
+ │ ├── webpack.config.base.js # Базовая конфигурация
23
+ │ ├── webpack.config.api.js # API server конфигурация
24
+ │ ├── webpack.config.spa.client.js # SPA клиент
25
+ │ ├── webpack.config.ssr.client.js # SSR клиент
26
+ │ └── webpack.config.ssr.server.js # SSR сервер
27
+ ├── rspack/ # Конфигурации Rspack
28
+ │ ├── index.js # Экспорт всех rspack конфигов
29
+ │ ├── rspack.config.base.js # Базовая конфигурация
30
+ │ ├── rspack.config.api.js # API server конфигурация
31
+ │ ├── rspack.config.spa.client.js # SPA клиент
32
+ │ ├── rspack.config.ssr.client.js # SSR клиент
33
+ │ └── rspack.config.ssr.server.js # SSR сервер
34
+ ├── vite/ # Конфигурации Vite
35
+ │ ├── index.js # Экспорт всех vite конфигов
36
+ │ ├── vite.config.base.js # Базовая конфигурация
37
+ │ ├── vite.config.api.js # API server конфигурация
38
+ │ ├── vite.config.spa.client.js # SPA клиент
39
+ │ ├── vite.config.ssr.client.js # SSR клиент
40
+ │ └── vite.config.ssr.server.js # SSR сервер
41
+ ├── ssr/ # SSR утилиты
42
+ │ ├── ssr-render-html.js # HTML рендеринг с отслеживанием обновлений
43
+ │ ├── ssr-render-html.vite.js # HTML рендеринг для Vite (без polling)
44
+ │ ├── ssr-transform-webpack-stats.js # Обработка webpack статистик
45
+ │ └── utils.js # Утилиты для работы с модулями
46
+ ├── templates/ # HTML шаблоны
47
+ │ ├── page.js # Полный HTML шаблон с аналитикой
48
+ │ └── screen.js # Упрощенный HTML шаблон
49
+ └── utils/
50
+ └── hot-reload.js # Утилиты для горячей перезагрузки
51
+ ```
52
+
53
+ ## Режимы работы (modes/)
54
+
55
+ ### Паттерн функций
56
+
57
+ Все файлы режимов экспортируют функции со структурой:
58
+
59
+ ```javascript
60
+ export default function createServer(projectRoot, configs) {
61
+ // настройка компиляторов и middleware
62
+ // динамический импорт серверного модуля через ESM
63
+
64
+ const startServer = async () => {
65
+ // запуск сервера на порту process.env.PORT || 8080
66
+ console.log(`Server started at localhost:${port}`);
67
+ };
68
+
69
+ return startServer;
70
+ }
71
+ ```
72
+
73
+ ### spa.dev.js
74
+
75
+ **Параметры:**
76
+ - `projectRoot` - корневая папка проекта
77
+ - `{ spaConfig, apiConfig }` - конфигурации webpack
78
+
79
+ **Функциональность:**
80
+ - Создает 2 webpack компилятора (SPA client + API server)
81
+ - Динамический импорт серверного модуля через ESM с cache busting
82
+ - Использует `webpack-dev-middleware` для горячей перекомпиляции
83
+ - Настраивает `connect-history-api-fallback` для SPA роутинга
84
+ - Обслуживает index.html из памяти компилятора
85
+ - Автоматический перезапуск при изменениях серверного кода
86
+
87
+ ### spa.rspack.dev.js
88
+
89
+ **Параметры:**
90
+ - `projectRoot` - корневая папка проекта
91
+ - `{ spaConfig, apiConfig }` - конфигурации rspack
92
+
93
+ **Функциональность:**
94
+ - Аналогичен spa.dev.js но использует Rspack вместо Webpack
95
+ - Более быстрая компиляция благодаря Rust-основе Rspack
96
+ - Встроенный SWC для трансформации JavaScript
97
+
98
+ ### spa.prod.js
99
+
100
+ **Параметры:**
101
+ - `projectRoot` - корневая папка
102
+
103
+ **Функциональность:**
104
+ - Обслуживает готовые файлы из `builds/web/spa/`
105
+ - Читает index.html с диска
106
+ - Настраивает кэширование на 1 день
107
+
108
+ ### ssr.dev.js
109
+
110
+ **Параметры:**
111
+ - `projectRoot` - корневая папка
112
+ - `{ clientConfig, apiConfig, ssrConfig }`
113
+
114
+ **Функциональность:**
115
+ - Использует @rspack/core по умолчанию
116
+ - Настраивает 3 компилятора (client, ssr, server)
117
+ - Динамический импорт SSR модулей через ESM
118
+ - Интеграция с `createHtmlRenderer` для финального HTML
119
+
120
+ ### ssr.rspack.dev.js
121
+
122
+ **Особенности:**
123
+ - Тройная компиляция с Rspack
124
+ - `fork` для изоляции процессов
125
+ - Watch mode с автоперезапуском сервера
126
+ - Импорт с временными метками для сброса кэша
127
+
128
+ ### ssr.vite.dev.js
129
+
130
+ **Особенности:**
131
+ - `createViteServer` в middleware режиме
132
+ - `vite.ssrLoadModule()` для динамической загрузки
133
+ - Встроенный HMR Vite
134
+ - File watching с debounce 500ms
135
+
136
+ ### ssr.prod.js
137
+
138
+ **Функциональность:**
139
+ - Читает готовые `stats.json` и `manifest.json`
140
+ - Импортирует готовый SSR модуль
141
+ - Обслуживает статические файлы с кэшированием
142
+
143
+ ## Конфигурации бандлеров
144
+
145
+ ### Общие алиасы
146
+
147
+ Все бандлеры используют одинаковые алиасы:
148
+ ```javascript
149
+ alias: {
150
+ '@': path.resolve(projectRoot, 'src'),
151
+ '@martyrs': path.resolve(projectRoot, 'martyrs'),
152
+ vue: path.resolve(projectRoot, 'node_modules/vue'),
153
+ 'vue-router': path.resolve(projectRoot, 'node_modules/vue-router'),
154
+ 'vue-i18n': path.resolve(projectRoot, 'node_modules/vue-i18n'),
155
+ }
156
+ ```
157
+
158
+ ### Webpack конфигурации
159
+
160
+ #### webpack.config.base.js
161
+
162
+ **Параметры:** `(projectRoot)`
163
+
164
+ **Ключевые лоадеры:**
165
+ - `babel-loader` - JS/ESM с поддержкой `modules: false`
166
+ - `vue-loader` - Vue SFC файлы
167
+ - `css-loader` + `sass-loader` - CSS/SCSS обработка
168
+ - `url-loader` - статические ресурсы с `emitFile: false`
169
+
170
+ **Плагины:**
171
+ - `VueLoaderPlugin`, `CleanWebpackPlugin`, `MiniCssExtractPlugin`
172
+ - `dotenv` для переменных окружения
173
+ - Условный `BundleAnalyzerPlugin`
174
+
175
+ #### webpack.config.api.js
176
+
177
+ **Особенности:**
178
+ - `target: 'node'` для серверной среды
179
+ - `libraryTarget: 'module'` + `outputModule: true` для ESM
180
+ - `webpack-node-externals` с `importType: 'module'`
181
+ - Entry: `src/server.js`
182
+
183
+ #### webpack.config.spa.client.js
184
+
185
+ **Наследует:** ssr.client.js
186
+ **Дополнительно:**
187
+ - `HtmlWebpackPlugin` с Mustache шаблоном
188
+ - `LimitChunkCountPlugin` (1 chunk)
189
+ - `TerserPlugin` + `CssMinimizerPlugin` оптимизация
190
+
191
+ #### webpack.config.ssr.client.js
192
+
193
+ **Наследует:** base.js
194
+ **Особенности:**
195
+ - Hot reload entry в development
196
+ - `PurgeCSSPlugin` с safelist для Vue scoped styles
197
+ - Code splitting для vendor chunks
198
+ - `StatsWriterPlugin` для статистики
199
+
200
+ #### webpack.config.ssr.server.js
201
+
202
+ **Особенности:**
203
+ - `target: 'node'` + ESM модули
204
+ - `null-loader` для CSS файлов
205
+ - `LimitChunkCountPlugin` (1 chunk)
206
+ - `WebpackManifestPlugin` в production
207
+
208
+ ### Rspack конфигурации
209
+
210
+ #### Ключевые отличия от Webpack:
211
+
212
+ **builtin:swc-loader вместо babel:**
213
+ ```javascript
214
+ {
215
+ test: /\.m?js$/,
216
+ use: {
217
+ loader: 'builtin:swc-loader',
218
+ options: {
219
+ jsc: {
220
+ parser: { syntax: 'ecmascript' },
221
+ target: 'es2020'
222
+ }
223
+ }
224
+ }
225
+ }
226
+ ```
227
+
228
+ **Встроенные минификаторы:**
229
+ ```javascript
230
+ optimization: {
231
+ minimizer: [
232
+ new rspack.SwcJsMinimizerRspackPlugin(),
233
+ new rspack.LightningCssMinimizerRspackPlugin()
234
+ ]
235
+ }
236
+ ```
237
+
238
+ **Кастомная обработка Vue шаблонов:**
239
+ - Поддержка сокращенного v-slot синтаксиса
240
+ - Regex трансформации для `#slotname`
241
+
242
+ ### Vite конфигурации
243
+
244
+ #### Ключевые отличия:
245
+
246
+ **Автоматическая обработка:**
247
+ - Нет необходимости в лоадерах для большинства файлов
248
+ - Автоматическая экстракция CSS в production
249
+ - `emptyOutDir: true` заменяет CleanWebpackPlugin
250
+
251
+ **Кастомные плагины:**
252
+ ```javascript
253
+ // PurgeCSS плагин
254
+ {
255
+ name: 'vite-plugin-purge-css',
256
+ apply: 'build',
257
+ enforce: 'post',
258
+ async generateBundle(options, bundle) {
259
+ // Логика очистки CSS
260
+ }
261
+ }
262
+ ```
263
+
264
+ **Умное разделение кода:**
265
+ ```javascript
266
+ manualChunks(id) {
267
+ if (id.includes('node_modules')) {
268
+ if (id.includes('vue')) return 'vue-vendor';
269
+ if (id.includes('@martyrs')) return 'martyrs-vendor';
270
+ }
271
+ if (id.includes('src/modules/')) {
272
+ const match = id.match(/src\/modules\/([^\/]+)/);
273
+ return `module-${match[1]}`;
274
+ }
275
+ }
276
+ ```
277
+
278
+ ## SSR утилиты
279
+
280
+ ### ssr-render-html.js
281
+
282
+ **Экспорт:**
283
+ - `renderHtml(stuff)` - рендеринг HTML с Mustache
284
+ - `createHtmlRenderer(onTemplateUpdate)` - фабрика с отслеживанием обновлений
285
+
286
+ **Функциональность:**
287
+ - Объединяет входные данные с переменными окружения
288
+ - `setInterval(1000ms)` для отслеживания изменений шаблонов
289
+ - Автоматическое внедрение ключей аналитики
290
+
291
+ ### ssr-render-html.vite.js
292
+
293
+ **Отличия:** Убран `setInterval` - Vite сам обрабатывает HMR
294
+
295
+ ### ssr-transform-webpack-stats.js
296
+
297
+ **Функции:**
298
+ - `extractAssets(stats, publicPath)` - извлечение JS/CSS из статистик
299
+ - `transformDevStats(stats, outputFileSystem)` - dev режим с inline CSS
300
+ - `transformProdStats({stats, publicPath})` - prod режим с файлами
301
+
302
+ **Dev vs Prod:**
303
+ - **Dev:** CSS встраивается в `<style>` теги через `outputFileSystem`
304
+ - **Prod:** CSS подключается через `<link>` теги
305
+
306
+ ### utils.js
307
+
308
+ **Утилиты:**
309
+ - `normalizeAssets(assets)` - приведение к массиву
310
+ - `hash(str)` - MD5 хеш
311
+ - `requireFromString(src, filename)` - выполнение модуля из строки
312
+
313
+ ## HTML шаблоны
314
+
315
+ ### page.js
316
+
317
+ **Полный HTML шаблон с:**
318
+ - Facebook Pixel и Domain Verification
319
+ - Google Analytics
320
+ - PWA манифест и иконки
321
+ - Мета-теги через `{{{ meta.* }}}`
322
+ - Встроенное состояние: `data-user-state` и `data-state`
323
+
324
+ ### screen.js
325
+
326
+ **Упрощенный шаблон:**
327
+ - Без Facebook интеграции
328
+ - Google Analytics в body
329
+ - Жестко установлен `lang="en"`
330
+
331
+ ## Переменные окружения
332
+
333
+ ### Выбор бандлера
334
+ ```bash
335
+ BUNDLER=RSPACK|VITE|WEBPACK # Default: WEBPACK
336
+ ```
337
+
338
+ ### Режим приложения
339
+ ```bash
340
+ MODE=SSR|SPA # Default: SSR
341
+ NODE_ENV=development|production
342
+ ```
343
+
344
+ ### Аналитика
345
+ ```bash
346
+ GOOGLE_TAG_ID=GA_MEASUREMENT_ID
347
+ FACEBOOK_PIXEL_ID=FB_PIXEL_ID
348
+ FACEBOOK_DOMAIN_VERIFICATION=VERIFICATION_CODE
349
+ GOOGLE_MAPS_API_KEY=MAPS_KEY
350
+ ```
351
+
352
+ ### Специальные режимы
353
+ ```bash
354
+ MOBILE_APP=true # Для Capacitor сборок
355
+ BUNDLE_ANALYZER=true # Анализ размера бандла
356
+ ```
357
+
358
+ ## Выбор конфигурации в index.js
359
+
360
+ ```javascript
361
+ const configs =
362
+ process.env.BUNDLER === 'RSPACK'
363
+ ? {
364
+ api: rspackConfigs.apiConfig(projectRoot),
365
+ spa: rspackConfigs.spaConfig(projectRoot),
366
+ client: rspackConfigs.clientConfig(projectRoot),
367
+ ssr: rspackConfigs.ssrConfig(projectRoot),
368
+ }
369
+ : process.env.BUNDLER === 'VITE'
370
+ ? {
371
+ api: viteConfigs.apiConfig(projectRoot),
372
+ spa: viteConfigs.spaClientConfig(projectRoot),
373
+ client: viteConfigs.ssrClientConfig(projectRoot),
374
+ ssr: viteConfigs.ssrServerConfig(projectRoot),
375
+ }
376
+ : {
377
+ api: webpackConfigs.apiConfig(projectRoot),
378
+ spa: webpackConfigs.spaClientConfig(projectRoot),
379
+ client: webpackConfigs.ssrClientConfig(projectRoot),
380
+ ssr: webpackConfigs.ssrServerConfig(projectRoot),
381
+ };
382
+
383
+ // Выбор функций создания серверов
384
+ const serverCreators = {
385
+ ssr: {
386
+ dev: bundler === 'RSPACK' ? createSsrRspackDevServer :
387
+ bundler === 'VITE' ? createSsrViteDevServer : createSsrDevServer,
388
+ prod: createSsrProdServer,
389
+ },
390
+ spa: {
391
+ dev: bundler === 'RSPACK' ? createSpaRspackDevServer : createSpaDevServer,
392
+ prod: createSpaProdServer,
393
+ },
394
+ };
395
+ ```
396
+
397
+ ## Архитектурные принципы
398
+
399
+ 1. **Модульность** - каждый бандлер изолирован в своей папке
400
+ 2. **Единый интерфейс** - все конфигурации принимают `projectRoot`
401
+ 3. **ESM First** - нативная поддержка ES модулей
402
+ 4. **Hot Reload** - различные стратегии для каждого бандлера
403
+ 5. **Тестируемость** - поддержка 3 бандлеров для npm публикации
404
+ 6. **Производительность** - Rspack как основной для SSR dev
405
+ 7. **Совместимость** - сохранение функциональности между бандлерами
@@ -1,5 +1,6 @@
1
1
  import createSpaDevServer from './modes/spa.dev.js';
2
2
  import createSpaProdServer from './modes/spa.prod.js';
3
+ import createSpaRspackDevServer from './modes/spa.rspack.dev.js';
3
4
  import createSsrDevServer from './modes/ssr.dev.js';
4
5
  import createSsrProdServer from './modes/ssr.prod.js';
5
6
  import createSsrRspackDevServer from './modes/ssr.rspack.dev.js';
@@ -17,6 +18,7 @@ export {
17
18
  createSsrViteDevServer,
18
19
  createSsrProdServer,
19
20
  createSpaDevServer,
21
+ createSpaRspackDevServer,
20
22
  createSpaProdServer,
21
23
  };
22
24
 
@@ -29,6 +31,7 @@ export default {
29
31
  createSsrViteDevServer,
30
32
  createSsrProdServer,
31
33
  createSpaDevServer,
34
+ createSpaRspackDevServer,
32
35
  createSpaProdServer,
33
36
  };
34
37
 
@@ -1,8 +1,8 @@
1
- import * as history from 'connect-history-api-fallback';
1
+ import history from 'connect-history-api-fallback';
2
2
  import path from 'path';
3
3
  import webpack from 'webpack';
4
4
  import devMiddleware from 'webpack-dev-middleware';
5
- export default (function createSpaDevServer(projectRoot, { spaConfig, apiConfig, createServer }) {
5
+ export default function createSpaDevServer(projectRoot, { spaConfig, apiConfig }) {
6
6
  const spaCompiler = webpack(spaConfig);
7
7
  const serverCompiler = webpack(apiConfig);
8
8
  const createDevRenderer = () => {
@@ -23,26 +23,28 @@ export default (function createSpaDevServer(projectRoot, { spaConfig, apiConfig,
23
23
  spaConfig.plugins.push(progressPlugin);
24
24
  };
25
25
  let serverInstance;
26
+ let serverModule;
27
+
26
28
  const clientDevMiddleware = devMiddleware(spaCompiler, {
27
29
  publicPath: spaConfig.output.publicPath,
28
30
  stats: false,
29
31
  });
30
- // const clientHotMiddleware = hotMiddleware(spaCompiler, {
31
- // heartbeat: 5000,
32
- // log: false
33
- // });
32
+
34
33
  const port = process.env.PORT || 8080;
34
+
35
35
  // Функция для запуска сервера
36
36
  const startServer = async () => {
37
37
  if (serverInstance) {
38
38
  serverInstance.close();
39
39
  }
40
- // Очистка кэша модуля и всех его зависимостей
41
- Object.keys(require.cache).forEach(id => {
42
- delete require.cache[id];
43
- });
44
- const { createServer } = createServer;
45
- let { app, server, env } = await createServer();
40
+
41
+ // Проверяем, что серверный модуль загружен
42
+ if (!serverModule) {
43
+ console.error("Серверный модуль еще не скомпилирован");
44
+ return;
45
+ }
46
+
47
+ let { app, server, env } = await serverModule.createServer();
46
48
  // Используем connect-history-api-fallback перед другими middleware
47
49
  app.use(history());
48
50
  app.use(clientDevMiddleware);
@@ -77,10 +79,28 @@ export default (function createSpaDevServer(projectRoot, { spaConfig, apiConfig,
77
79
  console.error(err);
78
80
  return;
79
81
  }
82
+
80
83
  console.log(stats.toString(apiConfig.stats));
81
- console.log('Server.js has changed, updating...');
82
- await startServer();
84
+
85
+ try {
86
+ // Получаем путь к скомпилированному файлу
87
+ const { outputPath } = stats.toJson();
88
+ const entryName = Object.keys(stats.toJson().entrypoints)[0];
89
+ const assetName = stats.toJson().entrypoints[entryName].assets[0].name;
90
+
91
+ // Импортируем с уникальным параметром для сброса кэша
92
+ serverModule = await import(`file://${path.resolve(outputPath, assetName)}?t=${Date.now()}`);
93
+
94
+ if (typeof serverModule.createServer !== 'function') {
95
+ throw new Error("Экспорт createServer не найден");
96
+ }
97
+
98
+ console.log("Сервер скомпилирован, перезапуск...");
99
+ await startServer();
100
+ } catch (error) {
101
+ console.error("Ошибка при загрузке серверного модуля:", error);
102
+ }
83
103
  });
84
104
  createDevRenderer();
85
105
  return startServer;
86
- });
106
+ }
@@ -1,14 +1,13 @@
1
- import * as history from 'connect-history-api-fallback';
2
- import * as express from 'express';
1
+ import history from 'connect-history-api-fallback';
2
+ import express from 'express';
3
3
  import fs from 'fs';
4
4
  import path from 'path';
5
- export default (function createSpaProdServer(projectRoot, { createServer }) {
5
+ export default function createSpaProdServer(projectRoot, config, createServer) {
6
6
  let serverInstance;
7
7
  const port = process.env.PORT || 8080;
8
8
  // Функция для запуска сервера
9
9
  const startServer = async () => {
10
- const { createServer } = createServer;
11
- let { app, server } = await createServer();
10
+ let { app, server } = await createServer.createServer();
12
11
  // Включаем сжатие ответов
13
12
  // app.use(compression());
14
13
  // Статическое обслуживание сбилженных файлов
@@ -45,4 +44,4 @@ export default (function createSpaProdServer(projectRoot, { createServer }) {
45
44
  }
46
45
  };
47
46
  return startServer;
48
- });
47
+ }
@@ -0,0 +1,110 @@
1
+ import * as history from 'connect-history-api-fallback';
2
+ import path from 'path';
3
+ import chalk from 'chalk';
4
+ import { rspack, ProgressPlugin } from '@rspack/core';
5
+ import devMiddleware from 'webpack-dev-middleware';
6
+
7
+ export default function createSpaDevServer(projectRoot, { spaConfig, apiConfig }) {
8
+ const spaCompiler = rspack(spaConfig);
9
+ const serverCompiler = rspack(apiConfig);
10
+
11
+ const createDevRenderer = () => {
12
+ const progressPlugin = new ProgressPlugin((percentage, message, ...args) => {
13
+ console.log(
14
+ chalk.greenBright(`${(percentage * 100).toFixed(2)}% `) +
15
+ chalk.blueBright(message) +
16
+ " " +
17
+ args.map((arg) => chalk.yellow(arg)).join(" ")
18
+ );
19
+ });
20
+
21
+ spaConfig.plugins = spaConfig.plugins || [];
22
+ spaConfig.plugins.push(progressPlugin);
23
+ };
24
+
25
+ let serverInstance;
26
+ let serverModule;
27
+
28
+ const clientDevMiddleware = devMiddleware(spaCompiler, {
29
+ publicPath: spaConfig.output.publicPath,
30
+ stats: false,
31
+ });
32
+
33
+ const port = process.env.PORT || 8080;
34
+
35
+ // Function to start the server
36
+ const startServer = async () => {
37
+ if (serverInstance) {
38
+ serverInstance.close();
39
+ }
40
+
41
+ // Проверяем, что серверный модуль загружен
42
+ if (!serverModule) {
43
+ console.error("Серверный модуль еще не скомпилирован");
44
+ return;
45
+ }
46
+
47
+ let { app, server, env } = await serverModule.createServer();
48
+
49
+ // Используем connect-history-api-fallback перед другими middleware
50
+ app.use(history());
51
+
52
+ app.use(clientDevMiddleware);
53
+
54
+ // Обрабатываем все маршруты
55
+ app.get('*', (req, res, next) => {
56
+ const filename = path.join(spaCompiler.outputPath, 'index.html');
57
+ spaCompiler.outputFileSystem.readFile(filename, (err, result) => {
58
+ if (err) {
59
+ return next(err);
60
+ }
61
+ res.set('content-type', 'text/html');
62
+ res.send(result);
63
+ res.end();
64
+ });
65
+ });
66
+
67
+ serverInstance = server;
68
+
69
+ try {
70
+ await server.listen(port);
71
+ console.log(`Server started at http://localhost:${port}\n`);
72
+ } catch (err) {
73
+ console.error(err);
74
+ process.exit(1);
75
+ }
76
+ };
77
+
78
+ // Настройка наблюдения за изменениями
79
+ serverCompiler.watch({}, async (err, stats) => {
80
+ if (err) {
81
+ console.error(err);
82
+ return;
83
+ }
84
+
85
+ console.log(stats.toString(apiConfig.stats));
86
+
87
+ try {
88
+ // Получаем путь к скомпилированному файлу
89
+ const { outputPath } = stats.toJson();
90
+ const entryName = Object.keys(stats.toJson().entrypoints)[0];
91
+ const assetName = stats.toJson().entrypoints[entryName].assets[0].name;
92
+
93
+ // Импортируем с уникальным параметром для сброса кэша
94
+ serverModule = await import(`file://${path.resolve(outputPath, assetName)}?t=${Date.now()}`);
95
+
96
+ if (typeof serverModule.createServer !== 'function') {
97
+ throw new Error("Экспорт createServer не найден");
98
+ }
99
+
100
+ console.log("Сервер скомпилирован, перезапуск...");
101
+ await startServer();
102
+ } catch (error) {
103
+ console.error("Ошибка при загрузке серверного модуля:", error);
104
+ }
105
+ });
106
+
107
+ createDevRenderer();
108
+
109
+ return startServer;
110
+ }
@@ -158,8 +158,8 @@ a.button {
158
158
 
159
159
  .button {
160
160
  display: flex;
161
- padding: 0.5rem;
162
- border-radius: 3rem;
161
+ padding: var(--small);
162
+ border-radius: var(--small);
163
163
  text-box: trim-both cap alphabetic;
164
164
  transform: scale(1);
165
165
  opacity: 1;
@@ -14,7 +14,7 @@ const controllerFactory = db => {
14
14
  res.status(500).send('Failed to send email');
15
15
  }
16
16
  }
17
- if (type === 'phone') {
17
+ else if (type === 'phone') {
18
18
  const smsSent = await sendSms(req.body.phone, `Your ${process.env.APP_NAME} verification code: ${code}`);
19
19
  if (smsSent) {
20
20
  res.send({ code, type, method });
@@ -30,7 +30,9 @@ export default {
30
30
  },
31
31
  enterCode: {
32
32
  verifyNumberTitle: "Подтвердите номер",
33
+ verifyEmailTitle: "Подтвердите email",
33
34
  instructions: "Мы отправили код регистрации на ваш номер телефона. Введите его в поле ниже:",
35
+ instructionsEmail: "Мы отправили код регистрации на ваш email. Введите его в поле ниже:",
34
36
  resendCode: "Отправить код еще раз",
35
37
  secondsResend: "секунд до возможности отправить код еще раз."
36
38
  },
@@ -3,10 +3,10 @@
3
3
  <!-- <img loading="lazy" src="@/assets/icons/message1.png" class="i-extra mn-b-small"> -->
4
4
 
5
5
  <h3 class="mn-b-medium">
6
- {{ t('auth.enterCode.verifyNumberTitle') }}
6
+ {{ route.query.type === 'email' ? t('auth.enterCode.verifyEmailTitle') : t('auth.enterCode.verifyNumberTitle') }}
7
7
  </h3>
8
8
 
9
- <p class="mn-b-big t-transp">{{ t('auth.enterCode.instructions') }}</p>
9
+ <p class="mn-b-big t-transp">{{ route.query.type === 'email' ? t('auth.enterCode.instructionsEmail') : t('auth.enterCode.instructions') }}</p>
10
10
 
11
11
  <div class="w-100 mn-b-big flex-nowrap flex">
12
12
  <input