@ozdao/martyrs 0.2.586 → 0.2.588

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 (117) hide show
  1. package/dist/auth.server.js +14 -1
  2. package/dist/chats.server.js +1 -1
  3. package/dist/community.server.js +1 -1
  4. package/dist/core.server.js +24 -25
  5. package/dist/events.server.js +1 -1
  6. package/dist/files.server.js +1 -1
  7. package/dist/gallery.server.js +1 -1
  8. package/dist/inventory.server.js +1 -1
  9. package/dist/marketplace.server.js +1 -1
  10. package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
  11. package/dist/martyrs/src/components/Select/Select.vue2.js.map +1 -0
  12. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  13. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  14. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  15. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  16. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  17. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  18. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  19. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  20. package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js +10 -33
  21. package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js.map +1 -1
  22. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +1 -1
  23. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +1 -1
  24. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  25. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  26. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  27. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  28. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  29. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  30. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  31. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  32. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  33. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  34. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  35. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  36. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  37. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  38. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  39. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  40. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  41. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  42. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  43. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  44. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  45. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  46. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  47. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  48. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  49. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  50. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  51. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  52. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  53. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  54. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  55. package/dist/notifications.server.js +1 -1
  56. package/dist/orders.server.js +1 -1
  57. package/dist/organizations.server.js +1 -1
  58. package/dist/pages.server.js +1 -1
  59. package/dist/products.server.js +1 -1
  60. package/dist/rents.server.js +1 -1
  61. package/dist/reports.server.js +1 -1
  62. package/dist/spots.server.js +1 -1
  63. package/dist/style.css +2 -2
  64. package/dist/wallet.server.js +1 -1
  65. package/package.json +23 -18
  66. package/src/modules/auth/auth.server.js +15 -1
  67. package/src/modules/chats/chats.server.js +1 -1
  68. package/src/modules/community/community.server.js +1 -1
  69. package/src/modules/core/core.server.js +4 -31
  70. package/src/modules/core/models/log.model.js +24 -0
  71. package/src/modules/core/views/components/pages/404.vue +2 -3
  72. package/src/modules/events/events.server.js +1 -1
  73. package/src/modules/files/files.server.js +1 -1
  74. package/src/modules/gallery/gallery.server.js +1 -1
  75. package/src/modules/governance/governance.server.js +1 -1
  76. package/src/modules/icons/icons.server.js +1 -1
  77. package/src/modules/inventory/inventory.server.js +1 -1
  78. package/src/modules/marketplace/marketplace.server.js +1 -1
  79. package/src/modules/notifications/notifications.server.js +1 -1
  80. package/src/modules/orders/orders.server.js +1 -1
  81. package/src/modules/organizations/organizations.server.js +1 -1
  82. package/src/modules/pages/pages.server.js +1 -1
  83. package/src/modules/products/products.server.js +1 -1
  84. package/src/modules/rents/rents.server.js +1 -1
  85. package/src/modules/reports/reports.server.js +1 -1
  86. package/src/modules/spots/spots.server.js +1 -1
  87. package/src/modules/wallet/wallet.server.js +1 -1
  88. package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
  89. package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +0 -1
  90. package/src/cli/commands/create.js +0 -106
  91. package/src/cli/index.js +0 -25
  92. package/src/cli/templates/app/.env.development.mustache +0 -14
  93. package/src/cli/templates/app/.env.production.mustache +0 -14
  94. package/src/cli/templates/app/Dockerfile +0 -36
  95. package/src/cli/templates/app/babel.config.js +0 -14
  96. package/src/cli/templates/app/env.js +0 -3
  97. package/src/cli/templates/app/index.js +0 -46
  98. package/src/cli/templates/app/mongodb.config.js +0 -18
  99. package/src/cli/templates/app/package.json.mustache +0 -65
  100. package/src/cli/templates/app/src/client.js +0 -22
  101. package/src/cli/templates/app/src/components/pages/Index.vue +0 -11
  102. package/src/cli/templates/app/src/configs/global.config.js.mustache +0 -40
  103. package/src/cli/templates/app/src/localization/extensions.js +0 -2
  104. package/src/cli/templates/app/src/localization/index.js +0 -44
  105. package/src/cli/templates/app/src/localization/overrides.js +0 -2
  106. package/src/cli/templates/app/src/localization/translations.js +0 -10
  107. package/src/cli/templates/app/src/models/index.js +0 -9
  108. package/src/cli/templates/app/src/router/index.js +0 -48
  109. package/src/cli/templates/app/src/scss/theme.scss +0 -18
  110. package/src/cli/templates/app/src/server.js +0 -68
  111. package/src/cli/templates/app/src/store/index.js +0 -9
  112. package/src/cli/templates/docker-compose.yaml.mustache +0 -47
  113. package/src/cli/templates/nginx/Dockerfile +0 -5
  114. package/src/cli/templates/nginx/default.conf.mustache +0 -55
  115. package/src/cli/templates/public/favicon/.gitkeep +0 -0
  116. package/src/cli/templates/start-dev.sh.mustache +0 -131
  117. package/src/cli/templates/start-prod.sh.mustache +0 -12
@@ -1,9 +1,9 @@
1
1
  import { ref, onMounted, createElementBlock, createCommentVNode, unref, openBlock, createBlock, createElementVNode, withCtx, createVNode, toDisplayString, createTextVNode, isRef, withModifiers, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
4
- import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
4
+ import _sfc_main$3 from "../../../../components/Tab/Tab.vue.js";
5
5
  import Field from "../../../../components/Field/Field.vue.js";
6
- import Select from "../../../../components/Select/Select.vue.js";
6
+ import Select from "../../../../components/Select/Select.vue2.js";
7
7
  import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
8
8
  import _sfc_main$4 from "../../../../components/EditImages/EditImages.vue.js";
9
9
  import BlockMultiselect from "../../../core/views/components/blocks/BlockMultiselect.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, onMounted, onUnmounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createElementVNode, createVNode, unref, toDisplayString, Fragment, renderList, createTextVNode, createBlock, withCtx, normalizeClass, renderSlot } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
6
6
  import _sfc_main$2 from "../../../../components/Spoiler/Spoiler.vue.js";
7
7
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
@@ -3,7 +3,7 @@ import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
3
  import Field from "../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$5 from "../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
6
- import Select from "../../../../components/Select/Select.vue.js";
6
+ import Select from "../../../../components/Select/Select.vue2.js";
7
7
  import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
8
8
  import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
9
9
  const _hoisted_1 = {
@@ -7,7 +7,7 @@ import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
7
7
  import Field from "../../../../components/Field/Field.vue.js";
8
8
  import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
9
9
  import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
10
- import Select from "../../../../components/Select/Select.vue.js";
10
+ import Select from "../../../../components/Select/Select.vue2.js";
11
11
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
12
12
  import _sfc_main$9 from "../../../../components/EditImages/EditImages.vue.js";
13
13
  import _sfc_main$8 from "./EditIngredients.vue.js";
@@ -1,6 +1,6 @@
1
1
  import { computed, ref, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, createVNode, unref, toDisplayString, Transition, withCtx, Fragment, renderList, createTextVNode } from "vue";
2
2
  import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
3
- import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
3
+ import _sfc_main$3 from "../../../../components/Tab/Tab.vue.js";
4
4
  import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
5
5
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
6
6
  import Image360 from "../elements/Image360.vue.js";
@@ -1,6 +1,6 @@
1
1
  import { computed, ref, watch, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import dayjs from "../../../../../../../../_virtual/dayjs.min.js";
3
- import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue2.js";
3
+ import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue.js";
4
4
  import _sfc_main$3 from "../../../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$4 from "../../../../../../components/Dropdown/Dropdown.vue.js";
6
6
  import Calendar from "../../../../../../components/Calendar/Calendar.vue2.js";
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, createElementBlock, openBlock, createElementVNode, createVNode, unref, toDisplayString, withCtx } from "vue";
2
2
  import dayjs from "../../../../../../../_virtual/dayjs.min.js";
3
- /* empty css */
3
+ /* empty css */
4
4
  import _sfc_main$1 from "../../../../../components/Feed/Feed.vue.js";
5
5
  /* empty css */
6
6
  import _sfc_main$2 from "./Gant/GanttChart.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { reactive, ref, createElementBlock, openBlock, renderSlot, createVNode, withCtx, createElementVNode, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
3
3
  import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
4
- import Select from "../../../../components/Select/Select.vue.js";
4
+ import Select from "../../../../components/Select/Select.vue2.js";
5
5
  import { actions } from "../../store/reports.js";
6
6
  const _sfc_main = {
7
7
  __name: "FormReport",
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createBlock, toDisplayString } from "vue";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  /* empty css */
6
6
  const _hoisted_1 = { class: "br-grey-transp-25 radius-small mn-b-small" };
7
7
  const _hoisted_2 = {
@@ -2,9 +2,9 @@ import { ref, onMounted, createElementBlock, createCommentVNode, openBlock, crea
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
4
4
  import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
5
- /* empty css */
5
+ /* empty css */
6
6
  import Field from "../../../../components/Field/Field.vue.js";
7
- import Select from "../../../../components/Select/Select.vue.js";
7
+ import Select from "../../../../components/Select/Select.vue2.js";
8
8
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
9
9
  import _sfc_main$4 from "../../../../components/Address/Address.vue.js";
10
10
  import _sfc_main$5 from "../../../../components/LocationMarker/LocationMarker.vue.js";
@@ -2,7 +2,7 @@ import { mergeModels, useModel, ref, computed, onMounted, createElementBlock, op
2
2
  import { useI18n } from "vue-i18n";
3
3
  import _sfc_main$1 from "../../../../components/Button/Button.vue.js";
4
4
  import Field from "../../../../components/Field/Field.vue.js";
5
- import Select from "../../../../components/Select/Select.vue.js";
5
+ import Select from "../../../../components/Select/Select.vue2.js";
6
6
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
7
7
  import _sfc_main$2 from "../../../../components/Popup/Popup.vue.js";
8
8
  /* empty css */
@@ -760,7 +760,7 @@ const NotificationService = (function(db, wss) {
760
760
  sendToAnonymousDevices
761
761
  };
762
762
  });
763
- function initializeNotifications(app, db, wss, origins, publicPath) {
763
+ function initializeNotifications({ app, db, wss, origins, publicPath }) {
764
764
  db.notification = NotificationModel(db);
765
765
  db.userDevice = UserDeviceModel(db);
766
766
  db.notificationPreference = NotificationPreferenceModel(db);
@@ -1247,7 +1247,7 @@ function setupCustomersRoutes(app, db) {
1247
1247
  });
1248
1248
  return customersCRUD;
1249
1249
  }
1250
- function initializeOrders(app, db, origins, publicPath) {
1250
+ function initializeOrders({ app, db, origins, publicPath }) {
1251
1251
  db.order = ModelOrder(db);
1252
1252
  db.customer = ModelCustomer(db);
1253
1253
  db.testimonial = ModelTestimonial(db);
@@ -1320,7 +1320,7 @@ const initOrganizationPolicies = (function initializeOrganizationPolicies(abacAc
1320
1320
  return abacAccessControl;
1321
1321
  });
1322
1322
  const { getInstance } = coreabac;
1323
- function initializeOrganization(app, db, origins, publicPath) {
1323
+ function initializeOrganization({ app, db, origins, publicPath }) {
1324
1324
  db.department = DepartmentModel(db);
1325
1325
  db.organization = OrganizationModel(db);
1326
1326
  db.membership = MembershipModel(db);
@@ -112,7 +112,7 @@ const ModelPage = (db) => {
112
112
  const Page = db.mongoose.model("Page", PageSchema);
113
113
  return Page;
114
114
  };
115
- function initializePages(app, db, origins, publicPath) {
115
+ function initializePages({ app, db, origins, publicPath }) {
116
116
  db.page = ModelPage(db);
117
117
  if (app) {
118
118
  RoutesPage(app, db);
@@ -1513,7 +1513,7 @@ function setupVariantsRoutes(app, db) {
1513
1513
  });
1514
1514
  return variantsCRUD;
1515
1515
  }
1516
- function initializeProduct(app, db, origins, publicPath) {
1516
+ function initializeProduct({ app, db, origins, publicPath }) {
1517
1517
  db.product = ProductModel(db);
1518
1518
  db.variant = VariantModel(db);
1519
1519
  db.category = CategoryModel(db);
@@ -482,7 +482,7 @@ const RentModel = (db, additionalFields = {}) => {
482
482
  });
483
483
  return db.mongoose.model("Rent", RentSchema);
484
484
  };
485
- function initializeRenting(app, db, origins, publicPath, options = {}) {
485
+ function initializeRenting({ app, db, origins, publicPath, options = {} }) {
486
486
  const { rentFields = {} } = options;
487
487
  db.rent = RentModel(db, rentFields);
488
488
  if (app) {
@@ -103,7 +103,7 @@ const reportsRoutes = (function(app, db, origins) {
103
103
  app.post("/reports", controller.update);
104
104
  app.post("/reports", controller.delete);
105
105
  });
106
- function initializeReports(app, db, origins, publicPath) {
106
+ function initializeReports({ app, db, origins, publicPath }) {
107
107
  db.report = ReportModel(db);
108
108
  if (app) {
109
109
  reportsRoutes(app, db);
@@ -301,7 +301,7 @@ const RoutesSpot = (function(app, db) {
301
301
  app.post("/api/spots/:_id/update", controller.update);
302
302
  app.delete("/api/spots/:_id/delete", controller.delete);
303
303
  });
304
- function initializeSpots(app, db, origins, publicPath) {
304
+ function initializeSpots({ app, db, origins, publicPath }) {
305
305
  db.spot = ModelSpot(db);
306
306
  if (app) {
307
307
  RoutesSpot(app, db);
package/dist/style.css CHANGED
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";
2
- input[data-v-4a88f18b] { border: none; outline: none;
2
+ input[data-v-8c38488f] { border: none; outline: none;
3
3
  }
4
- input[data-v-4a88f18b]::placeholder { color: rgba(var(--dark), 0.4);
4
+ input[data-v-8c38488f]::placeholder { color: rgba(var(--dark), 0.4);
5
5
  }
6
6
 
7
7
  .help-card[data-v-cdb417ab] {
@@ -193,7 +193,7 @@ const ModelPayment = (db) => {
193
193
  const Payment = db.mongoose.model("Payment", PaymentSchema);
194
194
  return Payment;
195
195
  };
196
- function initializePayments(app, db, wss, origins, publicPath) {
196
+ function initializePayments({ app, db, wss, origins, publicPath }) {
197
197
  db.payment = ModelPayment(db);
198
198
  if (app) {
199
199
  RoutesPayments(app, db, origins, publicPath);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozdao/martyrs",
3
- "version": "0.2.586",
3
+ "version": "0.2.588",
4
4
  "description": "Fullstack framework focused on user experience and ease of development.",
5
5
  "author": "OZ DAO <hello@ozdao.dev>",
6
6
  "license": "GPL-3.0-or-later",
@@ -15,9 +15,6 @@
15
15
  "vue3",
16
16
  "express"
17
17
  ],
18
- "bin": {
19
- "martyrs": "./src/cli/index.js"
20
- },
21
18
  "type": "module",
22
19
  "sideEffects": [
23
20
  "*.css",
@@ -75,48 +72,56 @@
75
72
  "build:builder:rspack": "rspack --config rspack.builder.config.js"
76
73
  },
77
74
  "dependencies": {
75
+ "@aaroon/workbox-rspack-plugin": "0.3.2",
78
76
  "@capacitor/core": "7.4.4",
79
- "commander": "12.1.0",
80
77
  "@capacitor/preferences": "7.0.2",
81
78
  "@googlemaps/google-maps-services-js": "3.4.0",
79
+ "@rsdoctor/rspack-plugin": "0.4.13",
80
+ "@rspack/core": "1.5.3",
82
81
  "@vitejs/plugin-vue": "6.0.1",
82
+ "bcryptjs": "2.4.3",
83
+ "beasties": "0.3.5",
83
84
  "bignumber.js": "9.1.2",
85
+ "chalk": "5.4.1",
86
+ "clean-webpack-plugin": "4.0.0",
87
+ "commander": "12.1.0",
84
88
  "config": "3.3.12",
89
+ "connect-history-api-fallback": "2.0.0",
90
+ "dotenv-webpack": "8.1.0",
85
91
  "isomorphic-dompurify": "2.22.0",
92
+ "jsonwebtoken": "9.0.2",
86
93
  "jwk-to-pem": "2.0.7",
87
94
  "libphonenumber-js": "1.12.4",
88
95
  "mongoose": "8.12.0",
89
96
  "multer": "1.4.5-lts.1",
97
+ "mustache": "4.2.0",
90
98
  "node-polyfill-webpack-plugin": "4.1.0",
91
99
  "nodemailer": "6.10.0",
92
100
  "openai": "4.86.1",
101
+ "rspack-manifest-plugin": "5.0.3",
93
102
  "sharp": "0.33.5",
94
103
  "uuidv4": "6.2.13",
95
104
  "vite": "7.1.9",
96
105
  "vue": "3.5.13",
97
106
  "vue-i18n": "11.1.1",
98
- "vue-router": "4.5.0"
107
+ "vue-loader": "17.4.2",
108
+ "vue-router": "4.5.0",
109
+ "webpack": "5.98.0",
110
+ "webpack-bundle-analyzer": "4.10.2",
111
+ "webpack-dev-middleware": "7.4.2",
112
+ "webpack-merge": "6.0.1",
113
+ "webpack-node-externals": "3.0.0",
114
+ "webpack-stats-plugin": "1.1.3"
99
115
  },
100
116
  "devDependencies": {
101
- "@aaroon/workbox-rspack-plugin": "0.3.2",
102
117
  "@rollup/plugin-commonjs": "28.0.3",
103
- "@rsdoctor/rspack-plugin": "0.4.13",
104
118
  "@rspack/cli": "1.5.3",
105
- "@rspack/core": "1.5.3",
106
- "connect-history-api-fallback": "2.0.0",
107
119
  "css-minimizer-webpack-plugin": "7.0.0",
108
- "dotenv-webpack": "8.1.0",
109
- "mustache": "4.2.0",
110
120
  "null-loader": "4.0.1",
111
121
  "postcss-import": "16.1.0",
112
122
  "postcss-url": "10.1.3",
113
123
  "rimraf": "6.0.1",
114
- "sass": "1.85.1",
115
- "webpack": "5.98.0",
116
- "webpack-dev-middleware": "7.4.2",
117
- "webpack-merge": "6.0.1",
118
- "webpack-node-externals": "3.0.0",
119
- "webpack-stats-plugin": "1.1.3"
124
+ "sass": "1.85.1"
120
125
  },
121
126
  "bugs": {
122
127
  "url": "https://github.com/oz-digital/martyrs/issues"
@@ -7,7 +7,7 @@ import RoleModel from './models/role.model.js';
7
7
  import UserModel from './models/user.model.js';
8
8
  import OtpModel from './models/otp.model.js';
9
9
 
10
- function initializeAuth(app, db, origins, publicPath) {
10
+ function initializeAuth({ app, db, origins, publicPath, wss }) {
11
11
  db.role = RoleModel(db);
12
12
  db.user = UserModel(db);
13
13
  db.otp = OtpModel(db);
@@ -16,6 +16,20 @@ function initializeAuth(app, db, origins, publicPath) {
16
16
  authRoutes(app, db, origins, publicPath);
17
17
  usersRoutes(app, db, origins, publicPath);
18
18
  }
19
+
20
+ if (wss) {
21
+ wss.registerRpcMethod('auth', 'getOnlineStatus', async ({ userId }) => {
22
+ if (!userId) return { isOnline: false, lastSeenAt: null };
23
+ const isOnline = wss.userConnections.has(userId.toString());
24
+ if (isOnline) return { isOnline: true, lastSeenAt: new Date() };
25
+ const session = await db.session.findOne(
26
+ { target: new db.mongoose.Types.ObjectId(userId), isActive: true },
27
+ { lastSeenAt: 1 },
28
+ { sort: { lastSeenAt: -1 } }
29
+ ).lean();
30
+ return { isOnline: false, lastSeenAt: session?.lastSeenAt || null };
31
+ }, { requireAuth: false });
32
+ }
19
33
  }
20
34
  export const models = {
21
35
  RoleModel,
@@ -1,7 +1,7 @@
1
1
  import ChatsController from './controllers/chats.controller.js';
2
2
  import ChatModel from './models/chat.model.js';
3
3
  import chatsRoutes from './routes/chats.routes.js';
4
- function initializeChats(app, db, wss, origins, publicPath) {
4
+ function initializeChats({ app, db, wss, origins, publicPath }) {
5
5
  // Настраиваем модели в объекте базы данных
6
6
  db.chat = ChatModel(db);
7
7
  // Настраиваем маршруты, если объект приложения передан
@@ -9,7 +9,7 @@ import commentsRoutes from './routes/comments.routes.js';
9
9
  import reactionsRoutes from './routes/reactions.routes.js';
10
10
  import coreabac from '@martyrs/src/modules/core/controllers/classes/abac/abac.js';
11
11
  import initBlogPolicies from './policies/blog.policies.js';
12
- function initializeCommunity(app, db, origins, publicPath) {
12
+ function initializeCommunity({ app, db, origins, publicPath }) {
13
13
  // Настраиваем модели в объекте базы данных
14
14
  db.blogpost = BlogpostModel(db);
15
15
  db.comment = CommentModel(db);
@@ -1,6 +1,7 @@
1
1
  import coreabac from './controllers/classes/abac/abac.js';
2
2
  import initCorePolicies from './controllers/policies/core.policies.js';
3
3
 
4
+ import LogModel from './models/log.model.js';
4
5
  import SessionModel from './models/session.model.js';
5
6
  import VisitorModel from './models/visitor.model.js';
6
7
  import RequestModel from './models/request.model.js';
@@ -28,23 +29,9 @@ async function createWebSocketManager(...args) {
28
29
  // Для обратной совместимости экспортируем как WebSocketManager
29
30
  const WebSocketManager = createWebSocketManager;
30
31
 
31
- function initializeCore(app, db, origins, publicPath, wss = null) {
32
- // Log model
33
- db.log =
34
- db.mongoose.models.Log ||
35
- db.mongoose.model(
36
- 'Log',
37
- new db.mongoose.Schema(
38
- {
39
- timestamp: { type: Date, default: Date.now },
40
- level: String,
41
- message: String,
42
- },
43
- { versionKey: false }
44
- )
45
- );
46
-
47
- // Session, Visitor, Request models
32
+ function initializeCore({ app, db, origins, publicPath, wss }) {
33
+ // Models
34
+ db.log = LogModel(db);
48
35
  db.session = SessionModel(db);
49
36
  db.visitor = VisitorModel(db);
50
37
  db.request = RequestModel(db);
@@ -64,20 +51,6 @@ function initializeCore(app, db, origins, publicPath, wss = null) {
64
51
  app.use(visitorLogger);
65
52
  }
66
53
 
67
- // WebSocket RPC methods
68
- if (wss) {
69
- wss.registerRpcMethod('core', 'getOnlineStatus', async ({ userId }) => {
70
- if (!userId) return { isOnline: false, lastSeenAt: null };
71
- const isOnline = wss.userConnections.has(userId.toString());
72
- if (isOnline) return { isOnline: true, lastSeenAt: new Date() };
73
- const session = await db.session.findOne(
74
- { target: new db.mongoose.Types.ObjectId(userId), isActive: true },
75
- { lastSeenAt: 1 },
76
- { sort: { lastSeenAt: -1 } }
77
- ).lean();
78
- return { isOnline: false, lastSeenAt: session?.lastSeenAt || null };
79
- }, { requireAuth: false });
80
- }
81
54
  }
82
55
  export { WebSocketManager, initializeCore as initialize };
83
56
  export default {
@@ -0,0 +1,24 @@
1
+ export default db => {
2
+ const LogSchema = new db.mongoose.Schema(
3
+ {
4
+ level: {
5
+ type: String,
6
+ required: true,
7
+ },
8
+ message: {
9
+ type: String,
10
+ required: true,
11
+ },
12
+ },
13
+ {
14
+ timestamps: true,
15
+ versionKey: false,
16
+ }
17
+ );
18
+
19
+ LogSchema.index({ level: 1 });
20
+ LogSchema.index({ createdAt: -1 });
21
+
22
+ const Log = db.mongoose.models.Log || db.mongoose.model('Log', LogSchema);
23
+ return Log;
24
+ };
@@ -14,7 +14,6 @@ const goBack = () => window.history.length > 1 ? router.back() : router.push('/'
14
14
  <div class="bg-light w-100 h-100 flex flex-h-center flex-column radius-big pd-medium">
15
15
 
16
16
  <div class="flex flex-v-center gap-thin pd-thin radius-big bg-main w-fit mn-b-medium">
17
- <span class="i-medium radius-big bg-grey"></span>
18
17
  <span class="p-small">Error 404</span>
19
18
  </div>
20
19
 
@@ -35,7 +34,7 @@ const goBack = () => window.history.length > 1 ? router.back() : router.push('/'
35
34
  </button>
36
35
  </div>
37
36
 
38
- <div class="pd-t-medium w-max-25r">
37
+ <!-- <div class="pd-t-medium w-max-25r">
39
38
  <span class="p-micro t-transp t-upper t-500 ls-wide d-block mn-b-small">Search Documentation</span>
40
39
  <div class="field-wrapper bg-white flex flex-v-center radius-small pd-small gap-small">
41
40
  <IconSearch class="i-small t-transp" />
@@ -45,7 +44,7 @@ const goBack = () => window.history.length > 1 ? router.back() : router.push('/'
45
44
  <a href="#" class="flex flex-v-center gap-micro p-small t-transp"><IconInfo class="i-small" /> Help Center</a>
46
45
  <a href="#" class="p-small t-transp">API Status</a>
47
46
  </div>
48
- </div>
47
+ </div> -->
49
48
 
50
49
  </div>
51
50
  </div>
@@ -4,7 +4,7 @@ import createEventModel from './models/event.model.js';
4
4
  import createTicketModel from './models/ticket.model.js';
5
5
  import eventsRoutes from './routes/events.routes.js';
6
6
  import ticketsRoutes from './routes/tickets.routes.js';
7
- function initializeEvent(app, db, origins, publicPath, options = {}) {
7
+ function initializeEvent({ app, db, origins, publicPath, options = {} }) {
8
8
  console.log('initializeEvent publicPath:', publicPath);
9
9
  // Получаем дополнительные поля для моделей из options
10
10
  const { eventFields = {}, ticketFields = {} } = options;
@@ -1,6 +1,6 @@
1
1
  import filesController from './controllers/files.controller.js';
2
2
  import filesRoutes from './routes/files.routes.js';
3
- function initializeFiles(app, db, origins, publicPath) {
3
+ function initializeFiles({ app, db, origins, publicPath }) {
4
4
  // Настраиваем маршруты, если объект приложения передан
5
5
  if (app) {
6
6
  filesRoutes(app, db, origins, publicPath);
@@ -1,7 +1,7 @@
1
1
  import GalleryController from './controllers/gallery.controller.js';
2
2
  import PhotoModel from './models/photo.model.js';
3
3
  import galleryRoutes from './routes/gallery.routes.js';
4
- function initializeGallery(app, db, origins, publicPath) {
4
+ function initializeGallery({ app, db, origins, publicPath }) {
5
5
  // Настраиваем модели в объекте базы данных
6
6
  db.photo = PhotoModel(db);
7
7
  // Настраиваем маршруты, если объект приложения передан
@@ -8,7 +8,7 @@ import ModelMilestone from './models/milestone.model.js';
8
8
  import ModelTask from './models/task.model.js';
9
9
  import ModelVote from './models/vote.model.js';
10
10
  import ModelVoting from './models/voting.model.js';
11
- function initializeGovernance(app, db, origins, publicPath) {
11
+ function initializeGovernance({ app, db, origins, publicPath }) {
12
12
  // Setup models in the database object
13
13
  db.initiative = ModelInitiative(db);
14
14
  db.milestone = ModelMilestone(db);
@@ -271,7 +271,7 @@ export async function saveIconToDisk(iconId, category, iconName, mode = 'add', c
271
271
  }
272
272
 
273
273
  // Module initialization
274
- function initializeIcons(app, db, origins, publicPath, options = {}) {
274
+ function initializeIcons({ app, db, origins, publicPath, options = {} }) {
275
275
  console.log('initializeIcons publicPath:', publicPath);
276
276
 
277
277
  // Setup routes if app object is provided
@@ -7,7 +7,7 @@ import inventoryRoutes from './routes/inventory.routes.js';
7
7
  import inventoryPolicies from './policies/inventory.policies.js';
8
8
  import availabilityServiceFactory from './services/availability.service.js';
9
9
 
10
- function initializeInventory(app, db, origins, publicPath) {
10
+ function initializeInventory({ app, db, origins, publicPath }) {
11
11
  // Регистрация моделей
12
12
  db.stockAdjustment = StockAdjustmentModel(db);
13
13
  db.stockAvailability = StockAvailabilityModel(db);
@@ -1,6 +1,6 @@
1
1
  import marketplaceRoutes from './routes/marketplace.routes.js';
2
2
 
3
- function initializeMarketplace(app, db, origins, publicPath) {
3
+ function initializeMarketplace({ app, db, origins, publicPath }) {
4
4
  // Marketplace использует существующие модели (Spot, StockAvailability, Variant, Product, Organization)
5
5
  // Модели уже зарегистрированы в spots, inventory, products, organizations модулях
6
6
 
@@ -6,7 +6,7 @@ import UserDeviceModel from './models/user-device.model.js';
6
6
  import notificationsRoutes from './routes/notifications.routes.js';
7
7
  import NotificationService from './services/notification.service.js';
8
8
 
9
- function initializeNotifications(app, db, wss, origins, publicPath) {
9
+ function initializeNotifications({ app, db, wss, origins, publicPath }) {
10
10
  // Set up models in the database object
11
11
  db.notification = NotificationModel(db);
12
12
  db.userDevice = UserDeviceModel(db);
@@ -6,7 +6,7 @@ import ModelTestimonial from './models/testimonial.model.js';
6
6
  import RoutesApplications from './routes/applications.routes.js';
7
7
  import RoutesOrder from './routes/orders.routes.js';
8
8
  import RoutesCustomers from './routes/customers.routes.js';
9
- function initializeOrders(app, db, origins, publicPath) {
9
+ function initializeOrders({ app, db, origins, publicPath }) {
10
10
  // Setup models in the database object
11
11
  db.order = ModelOrder(db);
12
12
  db.customer = ModelCustomer(db);
@@ -20,7 +20,7 @@ import initOrganizationPolicies from './policies/organizations.policies.js';
20
20
 
21
21
  const { getInstance } = coreabac;
22
22
 
23
- function initializeOrganization(app, db, origins, publicPath) {
23
+ function initializeOrganization({ app, db, origins, publicPath }) {
24
24
  // Настраиваем модели в объекте базы данных
25
25
  db.department = DepartmentModel(db);
26
26
  db.organization = OrganizationModel(db);
@@ -1,7 +1,7 @@
1
1
  import FactoryPage from './controllers/factories/pages.factory.js';
2
2
  import RoutesPage from './controllers/routes/pages.routes.js';
3
3
  import ModelPage from './models/page.model.js';
4
- function initializePages(app, db, origins, publicPath) {
4
+ function initializePages({ app, db, origins, publicPath }) {
5
5
  // Setup models in the database object
6
6
  db.page = ModelPage(db);
7
7
  // Setup routes if the app object is provided
@@ -6,7 +6,7 @@ import VariantModel from './models/variant.model.js';
6
6
  import categoriesRoutes from './routes/categories.routes.js';
7
7
  import productsRoutes from './routes/products.routes.js';
8
8
  import variantsRoutes from './routes/variants.routes.js';
9
- function initializeProduct(app, db, origins, publicPath) {
9
+ function initializeProduct({ app, db, origins, publicPath }) {
10
10
  // Настраиваем модели в объекте базы данных
11
11
  db.product = ProductModel(db);
12
12
  db.variant = VariantModel(db);
@@ -1,7 +1,7 @@
1
1
  import RentRoutes from './controllers/routes/rents.routes.js';
2
2
  import RentServices from './controllers/services/rents.services.js';
3
3
  import RentModel from './models/rent.model.js';
4
- function initializeRenting(app, db, origins, publicPath, options = {}) {
4
+ function initializeRenting({ app, db, origins, publicPath, options = {} }) {
5
5
  // Получаем дополнительные поля для модели из options
6
6
  const { rentFields = {} } = options;
7
7
  // Инициализируем модель с дополнительными полями
@@ -1,7 +1,7 @@
1
1
  import ReportsController from './controllers/reports.controller.js';
2
2
  import ReportModel from './models/report.model.js';
3
3
  import reportsRoutes from './routes/reports.routes.js';
4
- function initializeReports(app, db, origins, publicPath) {
4
+ function initializeReports({ app, db, origins, publicPath }) {
5
5
  // Настраиваем модели в объекте базы данных
6
6
  db.report = ReportModel(db);
7
7
  // Настраиваем маршруты, если объект приложения передан
@@ -1,7 +1,7 @@
1
1
  import FactorySpot from './controllers/spots.controller.js';
2
2
  import ModelSpot from './models/spot.model.js';
3
3
  import RoutesSpot from './routes/spots.routes.js';
4
- function initializeSpots(app, db, origins, publicPath) {
4
+ function initializeSpots({ app, db, origins, publicPath }) {
5
5
  // Setup models in the database object
6
6
  db.spot = ModelSpot(db);
7
7
  // Setup routes if the app object is provided