@open-mercato/core 0.4.2-canary-15c0b23a3a → 0.4.2-canary-da2b080494

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 (433) hide show
  1. package/dist/generated/entities.ids.generated.js +1 -5
  2. package/dist/generated/entities.ids.generated.js.map +2 -2
  3. package/dist/generated/entity-fields-registry.js +0 -2
  4. package/dist/generated/entity-fields-registry.js.map +2 -2
  5. package/dist/modules/api_docs/frontend/docs/api/page.js +2 -3
  6. package/dist/modules/api_docs/frontend/docs/api/page.js.map +2 -2
  7. package/dist/modules/api_keys/backend/api-keys/page.js +1 -1
  8. package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
  9. package/dist/modules/attachments/components/AttachmentLibrary.js +0 -4
  10. package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
  11. package/dist/modules/attachments/components/AttachmentPartitionSettings.js +0 -2
  12. package/dist/modules/attachments/components/AttachmentPartitionSettings.js.map +2 -2
  13. package/dist/modules/auth/api/admin/nav.js +3 -4
  14. package/dist/modules/auth/api/admin/nav.js.map +2 -2
  15. package/dist/modules/auth/api/reset/confirm.js +2 -25
  16. package/dist/modules/auth/api/reset/confirm.js.map +2 -2
  17. package/dist/modules/auth/api/reset.js +0 -23
  18. package/dist/modules/auth/api/reset.js.map +2 -2
  19. package/dist/modules/auth/api/sidebar/preferences/route.js +9 -14
  20. package/dist/modules/auth/api/sidebar/preferences/route.js.map +2 -2
  21. package/dist/modules/auth/api/users/route.js +2 -4
  22. package/dist/modules/auth/api/users/route.js.map +2 -2
  23. package/dist/modules/auth/backend/roles/[id]/edit/page.js +1 -4
  24. package/dist/modules/auth/backend/roles/[id]/edit/page.js.map +2 -2
  25. package/dist/modules/auth/backend/roles/page.js +3 -3
  26. package/dist/modules/auth/backend/roles/page.js.map +2 -2
  27. package/dist/modules/auth/backend/users/[id]/edit/page.js +3 -18
  28. package/dist/modules/auth/backend/users/[id]/edit/page.js.map +2 -2
  29. package/dist/modules/auth/backend/users/create/page.js +2 -15
  30. package/dist/modules/auth/backend/users/create/page.js.map +2 -2
  31. package/dist/modules/auth/backend/users/page.js +3 -3
  32. package/dist/modules/auth/backend/users/page.js.map +2 -2
  33. package/dist/modules/auth/cli.js +11 -25
  34. package/dist/modules/auth/cli.js.map +2 -2
  35. package/dist/modules/auth/commands/users.js +2 -59
  36. package/dist/modules/auth/commands/users.js.map +2 -2
  37. package/dist/modules/auth/data/validators.js +2 -4
  38. package/dist/modules/auth/data/validators.js.map +2 -2
  39. package/dist/modules/auth/frontend/reset/[token]/page.js +10 -20
  40. package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
  41. package/dist/modules/auth/lib/setup-app.js +0 -1
  42. package/dist/modules/auth/lib/setup-app.js.map +2 -2
  43. package/dist/modules/auth/services/authService.js +3 -3
  44. package/dist/modules/auth/services/authService.js.map +2 -2
  45. package/dist/modules/business_rules/api/execute/route.js +1 -7
  46. package/dist/modules/business_rules/api/execute/route.js.map +2 -2
  47. package/dist/modules/business_rules/backend/rules/page.js +0 -4
  48. package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
  49. package/dist/modules/business_rules/backend/sets/page.js +0 -3
  50. package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
  51. package/dist/modules/business_rules/lib/rule-engine.js +3 -33
  52. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  53. package/dist/modules/catalog/components/PriceKindSettings.js +0 -2
  54. package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
  55. package/dist/modules/catalog/components/categories/CategoriesDataTable.js +2 -2
  56. package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
  57. package/dist/modules/catalog/components/products/ProductsDataTable.js +0 -2
  58. package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
  59. package/dist/modules/configs/cli.js +0 -6
  60. package/dist/modules/configs/cli.js.map +2 -2
  61. package/dist/modules/configs/components/CachePanel.js +4 -4
  62. package/dist/modules/configs/components/CachePanel.js.map +2 -2
  63. package/dist/modules/configs/lib/system-status.js +1 -48
  64. package/dist/modules/configs/lib/system-status.js.map +2 -2
  65. package/dist/modules/configs/lib/upgrade-actions.js +0 -18
  66. package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
  67. package/dist/modules/currencies/backend/currencies/page.js +0 -3
  68. package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
  69. package/dist/modules/currencies/backend/exchange-rates/page.js +0 -2
  70. package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
  71. package/dist/modules/customers/backend/customers/companies/page.js +0 -3
  72. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  73. package/dist/modules/customers/backend/customers/deals/page.js +0 -3
  74. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  75. package/dist/modules/customers/backend/customers/people/page.js +0 -3
  76. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  77. package/dist/modules/customers/commands/deals.js +0 -31
  78. package/dist/modules/customers/commands/deals.js.map +2 -2
  79. package/dist/modules/customers/components/CustomerTodosTable.js +0 -1
  80. package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
  81. package/dist/modules/dashboards/cli.js +5 -44
  82. package/dist/modules/dashboards/cli.js.map +2 -2
  83. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +11 -16
  84. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +3 -3
  85. package/dist/modules/dashboards/services/widgetDataService.js +3 -132
  86. package/dist/modules/dashboards/services/widgetDataService.js.map +2 -2
  87. package/dist/modules/dictionaries/components/DictionaryTable.js +0 -2
  88. package/dist/modules/dictionaries/components/DictionaryTable.js.map +2 -2
  89. package/dist/modules/directory/backend/directory/organizations/page.js +2 -2
  90. package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
  91. package/dist/modules/directory/backend/directory/tenants/page.js +2 -2
  92. package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
  93. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +2 -2
  94. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
  95. package/dist/modules/entities/components/SystemEntitiesTable.js +1 -1
  96. package/dist/modules/entities/components/SystemEntitiesTable.js.map +2 -2
  97. package/dist/modules/entities/components/UserEntitiesTable.js +2 -2
  98. package/dist/modules/entities/components/UserEntitiesTable.js.map +2 -2
  99. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +3 -3
  100. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
  101. package/dist/modules/feature_toggles/components/OverridesTable.js +1 -1
  102. package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
  103. package/dist/modules/planner/backend/planner/availability-rulesets/page.js +2 -2
  104. package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
  105. package/dist/modules/query_index/components/QueryIndexesTable.js +1 -7
  106. package/dist/modules/query_index/components/QueryIndexesTable.js.map +2 -2
  107. package/dist/modules/resources/backend/resources/resource-types/page.js +2 -2
  108. package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
  109. package/dist/modules/resources/backend/resources/resources/page.js +2 -2
  110. package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
  111. package/dist/modules/sales/backend/sales/channels/offers/page.js +0 -2
  112. package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
  113. package/dist/modules/sales/backend/sales/channels/page.js +0 -2
  114. package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
  115. package/dist/modules/sales/commands/documents.js +0 -53
  116. package/dist/modules/sales/commands/documents.js.map +2 -2
  117. package/dist/modules/sales/commands/payments.js +0 -26
  118. package/dist/modules/sales/commands/payments.js.map +2 -2
  119. package/dist/modules/sales/components/AdjustmentKindSettings.js +2 -2
  120. package/dist/modules/sales/components/AdjustmentKindSettings.js.map +2 -2
  121. package/dist/modules/sales/components/PaymentMethodsSettings.js +2 -2
  122. package/dist/modules/sales/components/PaymentMethodsSettings.js.map +2 -2
  123. package/dist/modules/sales/components/ShippingMethodsSettings.js +2 -2
  124. package/dist/modules/sales/components/ShippingMethodsSettings.js.map +2 -2
  125. package/dist/modules/sales/components/TaxRatesSettings.js +2 -2
  126. package/dist/modules/sales/components/TaxRatesSettings.js.map +2 -2
  127. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +0 -2
  128. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
  129. package/dist/modules/sales/components/documents/AdjustmentsSection.js +0 -2
  130. package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
  131. package/dist/modules/sales/components/documents/PaymentsSection.js +1 -2
  132. package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
  133. package/dist/modules/sales/components/documents/SalesDocumentsTable.js +0 -2
  134. package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
  135. package/dist/modules/staff/backend/staff/team-members/page.js +1 -1
  136. package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
  137. package/dist/modules/staff/backend/staff/team-roles/page.js +2 -2
  138. package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
  139. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +2 -2
  140. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
  141. package/dist/modules/staff/backend/staff/teams/page.js +2 -2
  142. package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
  143. package/dist/modules/staff/commands/leave-requests.js +0 -79
  144. package/dist/modules/staff/commands/leave-requests.js.map +2 -2
  145. package/dist/modules/workflows/backend/definitions/page.js +0 -5
  146. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  147. package/dist/modules/workflows/backend/instances/page.js +0 -3
  148. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  149. package/dist/modules/workflows/backend/tasks/page.js +0 -3
  150. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  151. package/dist/modules/workflows/lib/transition-handler.js +6 -14
  152. package/dist/modules/workflows/lib/transition-handler.js.map +2 -2
  153. package/generated/entities.ids.generated.ts +1 -5
  154. package/generated/entity-fields-registry.ts +0 -2
  155. package/package.json +2 -2
  156. package/src/modules/api_docs/frontend/docs/api/page.tsx +2 -3
  157. package/src/modules/api_keys/backend/api-keys/page.tsx +1 -1
  158. package/src/modules/attachments/components/AttachmentLibrary.tsx +0 -4
  159. package/src/modules/attachments/components/AttachmentPartitionSettings.tsx +0 -2
  160. package/src/modules/auth/README.md +1 -1
  161. package/src/modules/auth/__tests__/cli-setup-acl.test.ts +1 -1
  162. package/src/modules/auth/api/admin/nav.ts +6 -10
  163. package/src/modules/auth/api/reset/confirm.ts +2 -25
  164. package/src/modules/auth/api/reset.ts +0 -23
  165. package/src/modules/auth/api/sidebar/preferences/route.ts +12 -21
  166. package/src/modules/auth/api/users/route.ts +2 -5
  167. package/src/modules/auth/backend/roles/[id]/edit/page.tsx +1 -4
  168. package/src/modules/auth/backend/roles/page.tsx +3 -3
  169. package/src/modules/auth/backend/users/[id]/edit/page.tsx +3 -22
  170. package/src/modules/auth/backend/users/create/page.tsx +2 -19
  171. package/src/modules/auth/backend/users/page.tsx +3 -3
  172. package/src/modules/auth/cli.ts +11 -38
  173. package/src/modules/auth/commands/users.ts +2 -73
  174. package/src/modules/auth/data/validators.ts +2 -5
  175. package/src/modules/auth/frontend/reset/[token]/page.tsx +11 -24
  176. package/src/modules/auth/i18n/de.json +1 -43
  177. package/src/modules/auth/i18n/en.json +1 -43
  178. package/src/modules/auth/i18n/es.json +1 -43
  179. package/src/modules/auth/i18n/pl.json +1 -43
  180. package/src/modules/auth/lib/setup-app.ts +0 -1
  181. package/src/modules/auth/services/authService.ts +4 -4
  182. package/src/modules/business_rules/api/execute/route.ts +1 -8
  183. package/src/modules/business_rules/backend/rules/page.tsx +0 -4
  184. package/src/modules/business_rules/backend/sets/page.tsx +0 -3
  185. package/src/modules/business_rules/i18n/en.json +1 -3
  186. package/src/modules/business_rules/lib/__tests__/rule-engine.test.ts +0 -51
  187. package/src/modules/business_rules/lib/rule-engine.ts +3 -57
  188. package/src/modules/catalog/components/PriceKindSettings.tsx +0 -2
  189. package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +2 -2
  190. package/src/modules/catalog/components/products/ProductsDataTable.tsx +0 -2
  191. package/src/modules/catalog/i18n/en.json +1 -3
  192. package/src/modules/configs/cli.ts +0 -6
  193. package/src/modules/configs/components/CachePanel.tsx +4 -4
  194. package/src/modules/configs/i18n/en.json +2 -12
  195. package/src/modules/configs/i18n/pl.json +2 -12
  196. package/src/modules/configs/lib/system-status.ts +1 -48
  197. package/src/modules/configs/lib/system-status.types.ts +0 -1
  198. package/src/modules/configs/lib/upgrade-actions.ts +0 -18
  199. package/src/modules/currencies/backend/currencies/page.tsx +0 -3
  200. package/src/modules/currencies/backend/exchange-rates/page.tsx +0 -2
  201. package/src/modules/customers/backend/customers/companies/page.tsx +0 -3
  202. package/src/modules/customers/backend/customers/deals/page.tsx +0 -3
  203. package/src/modules/customers/backend/customers/people/page.tsx +0 -3
  204. package/src/modules/customers/commands/deals.ts +0 -39
  205. package/src/modules/customers/components/CustomerTodosTable.tsx +0 -1
  206. package/src/modules/customers/i18n/en.json +1 -5
  207. package/src/modules/dashboards/cli.ts +5 -55
  208. package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +11 -22
  209. package/src/modules/dashboards/services/widgetDataService.ts +4 -157
  210. package/src/modules/dictionaries/components/DictionaryTable.tsx +0 -2
  211. package/src/modules/directory/backend/directory/organizations/page.tsx +2 -2
  212. package/src/modules/directory/backend/directory/tenants/page.tsx +2 -2
  213. package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +2 -2
  214. package/src/modules/entities/components/SystemEntitiesTable.tsx +1 -1
  215. package/src/modules/entities/components/UserEntitiesTable.tsx +2 -2
  216. package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +4 -3
  217. package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -1
  218. package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +2 -2
  219. package/src/modules/query_index/components/QueryIndexesTable.tsx +2 -8
  220. package/src/modules/resources/backend/resources/resource-types/page.tsx +2 -2
  221. package/src/modules/resources/backend/resources/resources/page.tsx +2 -2
  222. package/src/modules/sales/backend/sales/channels/offers/page.tsx +0 -2
  223. package/src/modules/sales/backend/sales/channels/page.tsx +0 -2
  224. package/src/modules/sales/commands/documents.ts +0 -65
  225. package/src/modules/sales/commands/payments.ts +0 -33
  226. package/src/modules/sales/components/AdjustmentKindSettings.tsx +2 -2
  227. package/src/modules/sales/components/PaymentMethodsSettings.tsx +2 -2
  228. package/src/modules/sales/components/ShippingMethodsSettings.tsx +2 -2
  229. package/src/modules/sales/components/TaxRatesSettings.tsx +2 -2
  230. package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +0 -2
  231. package/src/modules/sales/components/documents/AdjustmentsSection.tsx +0 -2
  232. package/src/modules/sales/components/documents/PaymentsSection.tsx +1 -2
  233. package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +0 -2
  234. package/src/modules/sales/i18n/de.json +0 -20
  235. package/src/modules/sales/i18n/en.json +1 -25
  236. package/src/modules/sales/i18n/es.json +0 -20
  237. package/src/modules/sales/i18n/pl.json +0 -20
  238. package/src/modules/staff/backend/staff/team-members/page.tsx +1 -1
  239. package/src/modules/staff/backend/staff/team-roles/page.tsx +2 -2
  240. package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +2 -2
  241. package/src/modules/staff/backend/staff/teams/page.tsx +2 -2
  242. package/src/modules/staff/commands/leave-requests.ts +0 -94
  243. package/src/modules/staff/i18n/de.json +0 -4
  244. package/src/modules/staff/i18n/en.json +1 -9
  245. package/src/modules/staff/i18n/es.json +0 -4
  246. package/src/modules/staff/i18n/pl.json +0 -4
  247. package/src/modules/workflows/backend/definitions/page.tsx +0 -5
  248. package/src/modules/workflows/backend/instances/page.tsx +1 -4
  249. package/src/modules/workflows/backend/tasks/page.tsx +1 -4
  250. package/src/modules/workflows/i18n/en.json +1 -3
  251. package/src/modules/workflows/lib/transition-handler.ts +6 -18
  252. package/dist/generated/entities/notification/index.js +0 -57
  253. package/dist/generated/entities/notification/index.js.map +0 -7
  254. package/dist/modules/auth/api/profile/route.js +0 -157
  255. package/dist/modules/auth/api/profile/route.js.map +0 -7
  256. package/dist/modules/auth/backend/auth/profile/page.js +0 -141
  257. package/dist/modules/auth/backend/auth/profile/page.js.map +0 -7
  258. package/dist/modules/auth/backend/auth/profile/page.meta.js +0 -13
  259. package/dist/modules/auth/backend/auth/profile/page.meta.js.map +0 -7
  260. package/dist/modules/auth/notifications.js +0 -112
  261. package/dist/modules/auth/notifications.js.map +0 -7
  262. package/dist/modules/business_rules/notifications.js +0 -28
  263. package/dist/modules/business_rules/notifications.js.map +0 -7
  264. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js +0 -37
  265. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js.map +0 -7
  266. package/dist/modules/catalog/notifications.js +0 -28
  267. package/dist/modules/catalog/notifications.js.map +0 -7
  268. package/dist/modules/catalog/subscribers/low-stock-notification.js +0 -38
  269. package/dist/modules/catalog/subscribers/low-stock-notification.js.map +0 -7
  270. package/dist/modules/customers/notifications.js +0 -48
  271. package/dist/modules/customers/notifications.js.map +0 -7
  272. package/dist/modules/dashboards/lib/role-widgets.js +0 -58
  273. package/dist/modules/dashboards/lib/role-widgets.js.map +0 -7
  274. package/dist/modules/notifications/acl.js +0 -11
  275. package/dist/modules/notifications/acl.js.map +0 -7
  276. package/dist/modules/notifications/api/[id]/action/route.js +0 -74
  277. package/dist/modules/notifications/api/[id]/action/route.js.map +0 -7
  278. package/dist/modules/notifications/api/[id]/dismiss/route.js +0 -15
  279. package/dist/modules/notifications/api/[id]/dismiss/route.js.map +0 -7
  280. package/dist/modules/notifications/api/[id]/read/route.js +0 -15
  281. package/dist/modules/notifications/api/[id]/read/route.js.map +0 -7
  282. package/dist/modules/notifications/api/[id]/restore/route.js +0 -53
  283. package/dist/modules/notifications/api/[id]/restore/route.js.map +0 -7
  284. package/dist/modules/notifications/api/batch/route.js +0 -17
  285. package/dist/modules/notifications/api/batch/route.js.map +0 -7
  286. package/dist/modules/notifications/api/feature/route.js +0 -17
  287. package/dist/modules/notifications/api/feature/route.js.map +0 -7
  288. package/dist/modules/notifications/api/mark-all-read/route.js +0 -35
  289. package/dist/modules/notifications/api/mark-all-read/route.js.map +0 -7
  290. package/dist/modules/notifications/api/openapi.js +0 -76
  291. package/dist/modules/notifications/api/openapi.js.map +0 -7
  292. package/dist/modules/notifications/api/role/route.js +0 -17
  293. package/dist/modules/notifications/api/role/route.js.map +0 -7
  294. package/dist/modules/notifications/api/route.js +0 -85
  295. package/dist/modules/notifications/api/route.js.map +0 -7
  296. package/dist/modules/notifications/api/settings/route.js +0 -155
  297. package/dist/modules/notifications/api/settings/route.js.map +0 -7
  298. package/dist/modules/notifications/api/unread-count/route.js +0 -38
  299. package/dist/modules/notifications/api/unread-count/route.js.map +0 -7
  300. package/dist/modules/notifications/backend/config/notifications/page.js +0 -10
  301. package/dist/modules/notifications/backend/config/notifications/page.js.map +0 -7
  302. package/dist/modules/notifications/backend/config/notifications/page.meta.js +0 -24
  303. package/dist/modules/notifications/backend/config/notifications/page.meta.js.map +0 -7
  304. package/dist/modules/notifications/cli.js +0 -16
  305. package/dist/modules/notifications/cli.js.map +0 -7
  306. package/dist/modules/notifications/data/entities.js +0 -112
  307. package/dist/modules/notifications/data/entities.js.map +0 -7
  308. package/dist/modules/notifications/data/validators.js +0 -98
  309. package/dist/modules/notifications/data/validators.js.map +0 -7
  310. package/dist/modules/notifications/di.js +0 -13
  311. package/dist/modules/notifications/di.js.map +0 -7
  312. package/dist/modules/notifications/emails/NotificationEmail.js +0 -58
  313. package/dist/modules/notifications/emails/NotificationEmail.js.map +0 -7
  314. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js +0 -44
  315. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js.map +0 -7
  316. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js +0 -220
  317. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js.map +0 -7
  318. package/dist/modules/notifications/index.js +0 -14
  319. package/dist/modules/notifications/index.js.map +0 -7
  320. package/dist/modules/notifications/lib/deliveryConfig.js +0 -107
  321. package/dist/modules/notifications/lib/deliveryConfig.js.map +0 -7
  322. package/dist/modules/notifications/lib/deliveryStrategies.js +0 -14
  323. package/dist/modules/notifications/lib/deliveryStrategies.js.map +0 -7
  324. package/dist/modules/notifications/lib/events.js +0 -12
  325. package/dist/modules/notifications/lib/events.js.map +0 -7
  326. package/dist/modules/notifications/lib/notificationBuilder.js +0 -66
  327. package/dist/modules/notifications/lib/notificationBuilder.js.map +0 -7
  328. package/dist/modules/notifications/lib/notificationFactory.js +0 -54
  329. package/dist/modules/notifications/lib/notificationFactory.js.map +0 -7
  330. package/dist/modules/notifications/lib/notificationMapper.js +0 -34
  331. package/dist/modules/notifications/lib/notificationMapper.js.map +0 -7
  332. package/dist/modules/notifications/lib/notificationRecipients.js +0 -35
  333. package/dist/modules/notifications/lib/notificationRecipients.js.map +0 -7
  334. package/dist/modules/notifications/lib/notificationService.js +0 -279
  335. package/dist/modules/notifications/lib/notificationService.js.map +0 -7
  336. package/dist/modules/notifications/lib/routeHelpers.js +0 -101
  337. package/dist/modules/notifications/lib/routeHelpers.js.map +0 -7
  338. package/dist/modules/notifications/lib/safeHref.js +0 -24
  339. package/dist/modules/notifications/lib/safeHref.js.map +0 -7
  340. package/dist/modules/notifications/migrations/Migration20260123000001.js +0 -70
  341. package/dist/modules/notifications/migrations/Migration20260123000001.js.map +0 -7
  342. package/dist/modules/notifications/migrations/Migration20260126150000.js +0 -37
  343. package/dist/modules/notifications/migrations/Migration20260126150000.js.map +0 -7
  344. package/dist/modules/notifications/subscribers/deliver-notification.js +0 -165
  345. package/dist/modules/notifications/subscribers/deliver-notification.js.map +0 -7
  346. package/dist/modules/notifications/workers/create-notification.worker.js +0 -70
  347. package/dist/modules/notifications/workers/create-notification.worker.js.map +0 -7
  348. package/dist/modules/sales/notifications.client.js +0 -51
  349. package/dist/modules/sales/notifications.client.js.map +0 -7
  350. package/dist/modules/sales/notifications.js +0 -88
  351. package/dist/modules/sales/notifications.js.map +0 -7
  352. package/dist/modules/sales/subscribers/quote-expiring-notification.js +0 -38
  353. package/dist/modules/sales/subscribers/quote-expiring-notification.js.map +0 -7
  354. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js +0 -137
  355. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js.map +0 -7
  356. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js +0 -137
  357. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js.map +0 -7
  358. package/dist/modules/sales/widgets/notifications/index.js +0 -7
  359. package/dist/modules/sales/widgets/notifications/index.js.map +0 -7
  360. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js +0 -60
  361. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js.map +0 -7
  362. package/dist/modules/staff/notifications.js +0 -75
  363. package/dist/modules/staff/notifications.js.map +0 -7
  364. package/dist/modules/workflows/notifications.js +0 -28
  365. package/dist/modules/workflows/notifications.js.map +0 -7
  366. package/dist/modules/workflows/subscribers/task-assigned-notification.js +0 -38
  367. package/dist/modules/workflows/subscribers/task-assigned-notification.js.map +0 -7
  368. package/generated/entities/notification/index.ts +0 -27
  369. package/src/modules/auth/api/profile/route.ts +0 -163
  370. package/src/modules/auth/backend/auth/profile/page.meta.ts +0 -9
  371. package/src/modules/auth/backend/auth/profile/page.tsx +0 -174
  372. package/src/modules/auth/notifications.ts +0 -109
  373. package/src/modules/business_rules/notifications.ts +0 -25
  374. package/src/modules/business_rules/subscribers/rule-execution-failed-notification.ts +0 -50
  375. package/src/modules/catalog/notifications.ts +0 -25
  376. package/src/modules/catalog/subscribers/low-stock-notification.ts +0 -52
  377. package/src/modules/customers/notifications.ts +0 -44
  378. package/src/modules/dashboards/lib/role-widgets.ts +0 -80
  379. package/src/modules/notifications/__tests__/deliver-notification.test.ts +0 -195
  380. package/src/modules/notifications/__tests__/deliveryStrategies.test.ts +0 -19
  381. package/src/modules/notifications/__tests__/notificationService.test.ts +0 -208
  382. package/src/modules/notifications/acl.ts +0 -7
  383. package/src/modules/notifications/api/[id]/action/route.ts +0 -75
  384. package/src/modules/notifications/api/[id]/dismiss/route.ts +0 -12
  385. package/src/modules/notifications/api/[id]/read/route.ts +0 -12
  386. package/src/modules/notifications/api/[id]/restore/route.ts +0 -53
  387. package/src/modules/notifications/api/batch/route.ts +0 -14
  388. package/src/modules/notifications/api/feature/route.ts +0 -14
  389. package/src/modules/notifications/api/mark-all-read/route.ts +0 -34
  390. package/src/modules/notifications/api/openapi.ts +0 -76
  391. package/src/modules/notifications/api/role/route.ts +0 -14
  392. package/src/modules/notifications/api/route.ts +0 -92
  393. package/src/modules/notifications/api/settings/route.ts +0 -157
  394. package/src/modules/notifications/api/unread-count/route.ts +0 -38
  395. package/src/modules/notifications/backend/config/notifications/page.meta.ts +0 -22
  396. package/src/modules/notifications/backend/config/notifications/page.tsx +0 -12
  397. package/src/modules/notifications/cli.ts +0 -18
  398. package/src/modules/notifications/data/entities.ts +0 -99
  399. package/src/modules/notifications/data/validators.ts +0 -115
  400. package/src/modules/notifications/di.ts +0 -11
  401. package/src/modules/notifications/emails/NotificationEmail.tsx +0 -98
  402. package/src/modules/notifications/frontend/NotificationInboxPageClient.tsx +0 -42
  403. package/src/modules/notifications/frontend/NotificationSettingsPageClient.tsx +0 -233
  404. package/src/modules/notifications/i18n/de.json +0 -50
  405. package/src/modules/notifications/i18n/en.json +0 -50
  406. package/src/modules/notifications/i18n/es.json +0 -50
  407. package/src/modules/notifications/i18n/pl.json +0 -50
  408. package/src/modules/notifications/index.ts +0 -12
  409. package/src/modules/notifications/lib/deliveryConfig.ts +0 -153
  410. package/src/modules/notifications/lib/deliveryStrategies.ts +0 -50
  411. package/src/modules/notifications/lib/events.ts +0 -48
  412. package/src/modules/notifications/lib/notificationBuilder.ts +0 -121
  413. package/src/modules/notifications/lib/notificationFactory.ts +0 -76
  414. package/src/modules/notifications/lib/notificationMapper.ts +0 -33
  415. package/src/modules/notifications/lib/notificationRecipients.ts +0 -83
  416. package/src/modules/notifications/lib/notificationService.ts +0 -414
  417. package/src/modules/notifications/lib/routeHelpers.ts +0 -151
  418. package/src/modules/notifications/lib/safeHref.ts +0 -29
  419. package/src/modules/notifications/migrations/.snapshot-open-mercato.json +0 -300
  420. package/src/modules/notifications/migrations/Migration20260123000001.ts +0 -73
  421. package/src/modules/notifications/migrations/Migration20260126150000.ts +0 -39
  422. package/src/modules/notifications/subscribers/deliver-notification.ts +0 -204
  423. package/src/modules/notifications/workers/create-notification.worker.ts +0 -122
  424. package/src/modules/sales/notifications.client.ts +0 -65
  425. package/src/modules/sales/notifications.ts +0 -82
  426. package/src/modules/sales/subscribers/quote-expiring-notification.ts +0 -53
  427. package/src/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.tsx +0 -156
  428. package/src/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.tsx +0 -156
  429. package/src/modules/sales/widgets/notifications/index.ts +0 -2
  430. package/src/modules/sales/widgets/notifications/useSalesDocumentTotals.ts +0 -81
  431. package/src/modules/staff/notifications.ts +0 -71
  432. package/src/modules/workflows/notifications.ts +0 -25
  433. package/src/modules/workflows/subscribers/task-assigned-notification.ts +0 -53
@@ -194,7 +194,7 @@ export function CachePanel() {
194
194
  <header className="space-y-1">
195
195
  <h2 className="text-lg font-semibold">{t('configs.cache.title', 'Cache overview')}</h2>
196
196
  <p className="text-sm text-muted-foreground">
197
- {t('configs.cache.description', 'Inspect cached responses and clear segments when necessary.')}
197
+ {t('configs.cache.description', 'Inspect cached CRUD responses and clear segments when necessary.')}
198
198
  </p>
199
199
  </header>
200
200
  <div className="flex items-center gap-2 text-sm text-muted-foreground">
@@ -211,7 +211,7 @@ export function CachePanel() {
211
211
  <header className="space-y-1">
212
212
  <h2 className="text-lg font-semibold">{t('configs.cache.title', 'Cache overview')}</h2>
213
213
  <p className="text-sm text-muted-foreground">
214
- {t('configs.cache.description', 'Inspect cached responses and clear segments when necessary.')}
214
+ {t('configs.cache.description', 'Inspect cached CRUD responses and clear segments when necessary.')}
215
215
  </p>
216
216
  </header>
217
217
  <div className="rounded border border-red-200 bg-red-50 p-3 text-sm text-red-700">
@@ -235,7 +235,7 @@ export function CachePanel() {
235
235
  <div className="space-y-1">
236
236
  <h2 className="text-lg font-semibold">{t('configs.cache.title', 'Cache overview')}</h2>
237
237
  <p className="text-sm text-muted-foreground">
238
- {t('configs.cache.description', 'Inspect cached responses and clear segments when necessary.')}
238
+ {t('configs.cache.description', 'Inspect cached CRUD responses and clear segments when necessary.')}
239
239
  </p>
240
240
  {stats ? (
241
241
  <>
@@ -342,7 +342,7 @@ export function CachePanel() {
342
342
  </div>
343
343
  ) : (
344
344
  <p className="text-sm text-muted-foreground">
345
- {t('configs.cache.empty', 'No cached responses for this tenant.')}
345
+ {t('configs.cache.empty', 'No cached CRUD responses for this tenant.')}
346
346
  </p>
347
347
  )}
348
348
  </div>
@@ -35,14 +35,14 @@
35
35
  "configs.systemStatus.actions.purgeCacheUnavailable": "Cache service is unavailable.",
36
36
  "configs.config.nav.cache": "Cache",
37
37
  "configs.cache.title": "Cache overview",
38
- "configs.cache.description": "Inspect cached responses and clear segments when necessary.",
38
+ "configs.cache.description": "Inspect cached CRUD responses and clear segments when necessary.",
39
39
  "configs.cache.loading": "Loading cache statistics…",
40
40
  "configs.cache.loadError": "Failed to load cache statistics.",
41
41
  "configs.cache.retry": "Retry",
42
42
  "configs.cache.refresh": "Refresh",
43
43
  "configs.cache.generatedAt": "Stats generated {{timestamp}}",
44
44
  "configs.cache.totalEntries": "{{count}} cached entries",
45
- "configs.cache.empty": "No cached responses for this tenant.",
45
+ "configs.cache.empty": "No cached CRUD responses for this tenant.",
46
46
  "configs.cache.purgeAll": "Purge all cache",
47
47
  "configs.cache.purgeAllLoading": "Purging…",
48
48
  "configs.cache.purgeAllConfirm": "Purge all cached entries for this tenant?",
@@ -64,8 +64,6 @@
64
64
  "configs.systemStatus.categories.profilingDescription": "Flags that control request and query profiling outputs.",
65
65
  "configs.systemStatus.categories.logging": "Logging",
66
66
  "configs.systemStatus.categories.loggingDescription": "Tune verbosity and SQL logging for diagnostics.",
67
- "configs.systemStatus.categories.security": "Security",
68
- "configs.systemStatus.categories.securityDescription": "Password policy requirements enforced at login and user creation.",
69
67
  "configs.systemStatus.categories.caching": "Caching",
70
68
  "configs.systemStatus.categories.cachingDescription": "Cache providers and TTL controls for backend responses.",
71
69
  "configs.systemStatus.categories.queryIndex": "Query index",
@@ -86,14 +84,6 @@
86
84
  "configs.systemStatus.variables.logVerbosity.description": "Overrides structured log verbosity such as debug or trace.",
87
85
  "configs.systemStatus.variables.logLevel.label": "Log level",
88
86
  "configs.systemStatus.variables.logLevel.description": "Fallback log level applied when verbosity is not set.",
89
- "configs.systemStatus.variables.passwordMinLength.label": "Password min length",
90
- "configs.systemStatus.variables.passwordMinLength.description": "Minimum number of characters required for passwords.",
91
- "configs.systemStatus.variables.passwordRequireDigit.label": "Password requires digit",
92
- "configs.systemStatus.variables.passwordRequireDigit.description": "Require at least one numeric character.",
93
- "configs.systemStatus.variables.passwordRequireUppercase.label": "Password requires uppercase",
94
- "configs.systemStatus.variables.passwordRequireUppercase.description": "Require at least one uppercase letter.",
95
- "configs.systemStatus.variables.passwordRequireSpecial.label": "Password requires special",
96
- "configs.systemStatus.variables.passwordRequireSpecial.description": "Require at least one special character.",
97
87
  "configs.systemStatus.variables.enableCrudApiCache.label": "CRUD API cache",
98
88
  "configs.systemStatus.variables.enableCrudApiCache.description": "Enable the CRUD API response cache layer.",
99
89
  "configs.systemStatus.variables.cacheStrategy.label": "Cache strategy",
@@ -35,14 +35,14 @@
35
35
  "configs.systemStatus.actions.purgeCacheUnavailable": "Usługa pamięci podręcznej jest niedostępna.",
36
36
  "configs.config.nav.cache": "Pamięć podręczna",
37
37
  "configs.cache.title": "Podgląd pamięci podręcznej",
38
- "configs.cache.description": "Przeglądaj zapisane odpowiedzi i czyść segmenty w razie potrzeby.",
38
+ "configs.cache.description": "Przeglądaj zapisane odpowiedzi CRUD i czyść segmenty w razie potrzeby.",
39
39
  "configs.cache.loading": "Ładowanie statystyk pamięci podręcznej…",
40
40
  "configs.cache.loadError": "Nie udało się wczytać statystyk pamięci podręcznej.",
41
41
  "configs.cache.retry": "Spróbuj ponownie",
42
42
  "configs.cache.refresh": "Odśwież",
43
43
  "configs.cache.generatedAt": "Statystyki z {{timestamp}}",
44
44
  "configs.cache.totalEntries": "{{count}} wpisów w pamięci podręcznej",
45
- "configs.cache.empty": "Brak zapisanych odpowiedzi dla tego tenanta.",
45
+ "configs.cache.empty": "Brak zapisanych odpowiedzi CRUD dla tego tenanta.",
46
46
  "configs.cache.purgeAll": "Wyczyść całą pamięć",
47
47
  "configs.cache.purgeAllLoading": "Czyszczenie…",
48
48
  "configs.cache.purgeAllConfirm": "Wyczyścić wszystkie wpisy pamięci podręcznej dla tego tenanta?",
@@ -64,8 +64,6 @@
64
64
  "configs.systemStatus.categories.profilingDescription": "Flagi sterujące generowaniem danych z profilowania zapytań i żądań.",
65
65
  "configs.systemStatus.categories.logging": "Logowanie",
66
66
  "configs.systemStatus.categories.loggingDescription": "Dostosuj poziom logowania i zapisywanie zapytań SQL na potrzeby diagnostyki.",
67
- "configs.systemStatus.categories.security": "Bezpieczeństwo",
68
- "configs.systemStatus.categories.securityDescription": "Wymagania polityki haseł stosowane przy logowaniu i tworzeniu użytkowników.",
69
67
  "configs.systemStatus.categories.caching": "Buforowanie",
70
68
  "configs.systemStatus.categories.cachingDescription": "Mechanizmy cache oraz kontrola czasu życia odpowiedzi backendu.",
71
69
  "configs.systemStatus.categories.queryIndex": "Indeks zapytań",
@@ -86,14 +84,6 @@
86
84
  "configs.systemStatus.variables.logVerbosity.description": "Nadpisuje poziom szczegółowości logów, np. debug lub trace.",
87
85
  "configs.systemStatus.variables.logLevel.label": "Poziom logowania",
88
86
  "configs.systemStatus.variables.logLevel.description": "Domyślny poziom logowania używany, gdy nie ustawiono szczegółowości.",
89
- "configs.systemStatus.variables.passwordMinLength.label": "Minimalna długość hasła",
90
- "configs.systemStatus.variables.passwordMinLength.description": "Minimalna liczba znaków wymagana w haśle.",
91
- "configs.systemStatus.variables.passwordRequireDigit.label": "Hasło wymaga cyfry",
92
- "configs.systemStatus.variables.passwordRequireDigit.description": "Wymagaj co najmniej jednej cyfry.",
93
- "configs.systemStatus.variables.passwordRequireUppercase.label": "Hasło wymaga wielkiej litery",
94
- "configs.systemStatus.variables.passwordRequireUppercase.description": "Wymagaj co najmniej jednej wielkiej litery.",
95
- "configs.systemStatus.variables.passwordRequireSpecial.label": "Hasło wymaga znaku specjalnego",
96
- "configs.systemStatus.variables.passwordRequireSpecial.description": "Wymagaj co najmniej jednego znaku specjalnego.",
97
87
  "configs.systemStatus.variables.enableCrudApiCache.label": "Cache API CRUD",
98
88
  "configs.systemStatus.variables.enableCrudApiCache.description": "Włącza warstwę buforowania odpowiedzi API CRUD.",
99
89
  "configs.systemStatus.variables.cacheStrategy.label": "Strategia cache",
@@ -19,14 +19,7 @@ type SystemStatusVariableDefinition = {
19
19
  defaultValue: string | null
20
20
  }
21
21
 
22
- const CATEGORY_ORDER: SystemStatusCategoryKey[] = [
23
- 'profiling',
24
- 'logging',
25
- 'security',
26
- 'caching',
27
- 'query_index',
28
- 'entities',
29
- ]
22
+ const CATEGORY_ORDER: SystemStatusCategoryKey[] = ['profiling', 'logging', 'caching', 'query_index', 'entities']
30
23
 
31
24
  const CATEGORY_METADATA: Record<
32
25
  SystemStatusCategoryKey,
@@ -40,10 +33,6 @@ const CATEGORY_METADATA: Record<
40
33
  labelKey: 'configs.systemStatus.categories.logging',
41
34
  descriptionKey: 'configs.systemStatus.categories.loggingDescription',
42
35
  },
43
- security: {
44
- labelKey: 'configs.systemStatus.categories.security',
45
- descriptionKey: 'configs.systemStatus.categories.securityDescription',
46
- },
47
36
  caching: {
48
37
  labelKey: 'configs.systemStatus.categories.caching',
49
38
  descriptionKey: 'configs.systemStatus.categories.cachingDescription',
@@ -124,42 +113,6 @@ export const SYSTEM_STATUS_VARIABLES: SystemStatusVariableDefinition[] = [
124
113
  docUrl: `${SYSTEM_STATUS_DOC_BASE}#log_level`,
125
114
  defaultValue: '',
126
115
  },
127
- {
128
- key: 'OM_PASSWORD_MIN_LENGTH',
129
- category: 'security',
130
- kind: 'string',
131
- labelKey: 'configs.systemStatus.variables.passwordMinLength.label',
132
- descriptionKey: 'configs.systemStatus.variables.passwordMinLength.description',
133
- docUrl: `${SYSTEM_STATUS_DOC_BASE}#om_password_min_length`,
134
- defaultValue: '6',
135
- },
136
- {
137
- key: 'OM_PASSWORD_REQUIRE_DIGIT',
138
- category: 'security',
139
- kind: 'boolean',
140
- labelKey: 'configs.systemStatus.variables.passwordRequireDigit.label',
141
- descriptionKey: 'configs.systemStatus.variables.passwordRequireDigit.description',
142
- docUrl: `${SYSTEM_STATUS_DOC_BASE}#om_password_require_digit`,
143
- defaultValue: 'true',
144
- },
145
- {
146
- key: 'OM_PASSWORD_REQUIRE_UPPERCASE',
147
- category: 'security',
148
- kind: 'boolean',
149
- labelKey: 'configs.systemStatus.variables.passwordRequireUppercase.label',
150
- descriptionKey: 'configs.systemStatus.variables.passwordRequireUppercase.description',
151
- docUrl: `${SYSTEM_STATUS_DOC_BASE}#om_password_require_uppercase`,
152
- defaultValue: 'true',
153
- },
154
- {
155
- key: 'OM_PASSWORD_REQUIRE_SPECIAL',
156
- category: 'security',
157
- kind: 'boolean',
158
- labelKey: 'configs.systemStatus.variables.passwordRequireSpecial.label',
159
- descriptionKey: 'configs.systemStatus.variables.passwordRequireSpecial.description',
160
- docUrl: `${SYSTEM_STATUS_DOC_BASE}#om_password_require_special`,
161
- defaultValue: 'true',
162
- },
163
116
  {
164
117
  key: 'ENABLE_CRUD_API_CACHE',
165
118
  category: 'caching',
@@ -1,7 +1,6 @@
1
1
  export type SystemStatusCategoryKey =
2
2
  | 'profiling'
3
3
  | 'logging'
4
- | 'security'
5
4
  | 'caching'
6
5
  | 'query_index'
7
6
  | 'entities'
@@ -11,7 +11,6 @@ import { seedExampleWorkflows } from '@open-mercato/core/modules/workflows/lib/s
11
11
  import { seedPlannerAvailabilityRuleSetDefaults, seedPlannerUnavailabilityReasons } from '@open-mercato/core/modules/planner/lib/seeds'
12
12
  import { seedResourcesAddressTypes, seedResourcesCapacityUnits, seedResourcesResourceExamples } from '@open-mercato/core/modules/resources/lib/seeds'
13
13
  import { seedStaffTeamExamples } from '@open-mercato/core/modules/staff/lib/seeds'
14
- import { appendWidgetsToRoles, resolveAnalyticsWidgetIds } from '@open-mercato/core/modules/dashboards/lib/role-widgets'
15
14
  import { collectCrudCacheStats, purgeCrudCacheSegment } from '@open-mercato/shared/lib/crud/cache-stats'
16
15
  import { isCrudCacheEnabled, resolveCrudCache } from '@open-mercato/shared/lib/crud/cache'
17
16
  import * as semver from 'semver'
@@ -371,23 +370,6 @@ export const upgradeActions: UpgradeActionDefinition[] = [
371
370
  await reindexModules(em, ['planner', 'staff', 'resources'], { tenantId, organizationId, vectorService })
372
371
  },
373
372
  },
374
- {
375
- id: 'configs.upgrades.dashboards.analytics_widgets',
376
- version: '0.4.2',
377
- messageKey: 'upgrades.v042.message',
378
- ctaKey: 'upgrades.v042.cta',
379
- successKey: 'upgrades.v042.success',
380
- loadingKey: 'upgrades.v042.loading',
381
- async run({ em, tenantId, organizationId }) {
382
- const widgetIds = await resolveAnalyticsWidgetIds()
383
- await appendWidgetsToRoles(em, {
384
- tenantId,
385
- organizationId,
386
- roleNames: ['admin', 'employee'],
387
- widgetIds,
388
- })
389
- },
390
- },
391
373
  ]
392
374
 
393
375
  export function actionsUpToVersion(version: string): UpgradeActionDefinition[] {
@@ -256,14 +256,12 @@ export default function CurrenciesPage() {
256
256
  <RowActions
257
257
  items={[
258
258
  {
259
- id: 'edit',
260
259
  label: t('common.edit'),
261
260
  href: `/backend/currencies/${row.id}`,
262
261
  },
263
262
  ...(!row.isBase
264
263
  ? [
265
264
  {
266
- id: 'set-base',
267
265
  label: t('currencies.list.actions.setBase'),
268
266
  onSelect: () => handleSetBase(row),
269
267
  },
@@ -272,7 +270,6 @@ export default function CurrenciesPage() {
272
270
  ...(!row.isBase
273
271
  ? [
274
272
  {
275
- id: 'delete',
276
273
  label: t('common.delete'),
277
274
  destructive: true,
278
275
  onSelect: () => handleDelete(row),
@@ -279,12 +279,10 @@ export default function ExchangeRatesPage() {
279
279
  <RowActions
280
280
  items={[
281
281
  {
282
- id: 'edit',
283
282
  label: t('common.edit'),
284
283
  href: `/backend/exchange-rates/${row.id}`,
285
284
  },
286
285
  {
287
- id: 'delete',
288
286
  label: t('common.delete'),
289
287
  destructive: true,
290
288
  onSelect: () => handleDelete(row),
@@ -597,17 +597,14 @@ export default function CustomersCompaniesPage() {
597
597
  <RowActions
598
598
  items={[
599
599
  {
600
- id: 'view',
601
600
  label: t('customers.companies.list.actions.view'),
602
601
  onSelect: () => { router.push(`/backend/customers/companies/${row.id}`) },
603
602
  },
604
603
  {
605
- id: 'open-new-tab',
606
604
  label: t('customers.companies.list.actions.openInNewTab'),
607
605
  onSelect: () => window.open(`/backend/customers/companies/${row.id}`, '_blank', 'noopener'),
608
606
  },
609
607
  {
610
- id: 'delete',
611
608
  label: t('customers.companies.list.actions.delete'),
612
609
  destructive: true,
613
610
  onSelect: () => handleDelete(row),
@@ -889,12 +889,10 @@ export default function CustomersDealsPage() {
889
889
  <RowActions
890
890
  items={[
891
891
  {
892
- id: 'edit',
893
892
  label: t('customers.deals.list.actions.edit', 'Edit'),
894
893
  onSelect: () => { router.push(`/backend/customers/deals/${row.id}`) },
895
894
  },
896
895
  {
897
- id: 'open-new-tab',
898
896
  label: t('customers.deals.list.actions.openInNewTab', 'Open in new tab'),
899
897
  onSelect: () => {
900
898
  if (typeof window !== 'undefined') {
@@ -903,7 +901,6 @@ export default function CustomersDealsPage() {
903
901
  },
904
902
  },
905
903
  {
906
- id: 'delete',
907
904
  label: isDeleting
908
905
  ? t('customers.deals.list.actions.deleting', 'Deleting…')
909
906
  : t('customers.deals.list.actions.delete', 'Delete'),
@@ -614,17 +614,14 @@ export default function CustomersPeoplePage() {
614
614
  <RowActions
615
615
  items={[
616
616
  {
617
- id: 'view',
618
617
  label: t('customers.people.list.actions.view'),
619
618
  onSelect: () => { router.push(`/backend/customers/people/${row.id}`) },
620
619
  },
621
620
  {
622
- id: 'open-new-tab',
623
621
  label: t('customers.people.list.actions.openInNewTab'),
624
622
  onSelect: () => window.open(`/backend/customers/people/${row.id}`, '_blank', 'noopener'),
625
623
  },
626
624
  {
627
- id: 'delete',
628
625
  label: t('customers.people.list.actions.delete'),
629
626
  destructive: true,
630
627
  onSelect: () => handleDelete(row),
@@ -35,9 +35,6 @@ import { CrudHttpError } from '@open-mercato/shared/lib/crud/errors'
35
35
  import type { CrudIndexerConfig } from '@open-mercato/shared/lib/crud/types'
36
36
  import { E } from '#generated/entities.ids.generated'
37
37
  import { findWithDecryption } from '@open-mercato/shared/lib/encryption/find'
38
- import { resolveNotificationService } from '../../notifications/lib/notificationService'
39
- import { buildNotificationFromType } from '../../notifications/lib/notificationBuilder'
40
- import { notificationTypes } from '../notifications'
41
38
 
42
39
  const DEAL_ENTITY_ID = 'customers:customer_deal'
43
40
  const dealCrudIndexer: CrudIndexerConfig<CustomerDeal> = {
@@ -284,8 +281,6 @@ const updateDealCommand: CommandHandler<DealUpdateInput, { dealId: string }> = {
284
281
  ensureTenantScope(ctx, record.tenantId)
285
282
  ensureOrganizationScope(ctx, record.organizationId)
286
283
 
287
- const previousStatus = record.status
288
-
289
284
  if (parsed.title !== undefined) record.title = parsed.title
290
285
  if (parsed.description !== undefined) record.description = parsed.description ?? null
291
286
  if (parsed.status !== undefined) record.status = parsed.status ?? record.status
@@ -324,40 +319,6 @@ const updateDealCommand: CommandHandler<DealUpdateInput, { dealId: string }> = {
324
319
  indexer: dealCrudIndexer,
325
320
  })
326
321
 
327
- // Send notifications for deal won/lost status changes
328
- const newStatus = record.status
329
- const normalizedStatus = newStatus === 'win' ? 'won' : newStatus === 'loose' ? 'lost' : newStatus
330
- if (previousStatus !== newStatus && (normalizedStatus === 'won' || normalizedStatus === 'lost') && record.ownerUserId) {
331
- try {
332
- const notificationService = resolveNotificationService(ctx.container)
333
- const notificationType = normalizedStatus === 'won' ? 'customers.deal.won' : 'customers.deal.lost'
334
- const typeDef = notificationTypes.find((type) => type.type === notificationType)
335
- if (typeDef) {
336
- const valueDisplay = record.valueAmount && record.valueCurrency
337
- ? `${record.valueCurrency} ${record.valueAmount}`
338
- : ''
339
-
340
- const notificationInput = buildNotificationFromType(typeDef, {
341
- recipientUserId: record.ownerUserId,
342
- bodyVariables: {
343
- dealTitle: record.title,
344
- dealValue: valueDisplay,
345
- },
346
- sourceEntityType: 'customers:customer_deal',
347
- sourceEntityId: record.id,
348
- linkHref: `/backend/customers/deals/${record.id}`,
349
- })
350
-
351
- await notificationService.create(notificationInput, {
352
- tenantId: record.tenantId,
353
- organizationId: record.organizationId,
354
- })
355
- }
356
- } catch {
357
- // Notification creation is non-critical, don't fail the command
358
- }
359
- }
360
-
361
322
  return { dealId: record.id }
362
323
  },
363
324
  buildLog: async ({ snapshots, ctx }) => {
@@ -253,7 +253,6 @@ export function CustomerTodosTable(): React.JSX.Element {
253
253
  <RowActions
254
254
  items={[
255
255
  {
256
- id: 'open-customer',
257
256
  label: t('customers.workPlan.customerTodos.table.actions.openCustomer'),
258
257
  href: customerLink,
259
258
  },
@@ -943,9 +943,5 @@
943
943
  "customers.workPlan.customerTodos.table.state.empty": "No customer tasks yet.",
944
944
  "customers.workPlan.customerTodos.table.error.load": "Failed to load customer tasks.",
945
945
  "customers.workPlan.customerTodos.table.export.view": "Exports the current list with filters and visible columns.",
946
- "customers.workPlan.customerTodos.table.export.full": "Exports every linked task field, including hidden attributes.",
947
- "customers.notifications.deal.won.title": "Deal Won",
948
- "customers.notifications.deal.won.body": "{dealTitle} has been marked as won{dealValue, select, other { ({dealValue})}}",
949
- "customers.notifications.deal.lost.title": "Deal Lost",
950
- "customers.notifications.deal.lost.body": "{dealTitle} has been marked as lost"
946
+ "customers.workPlan.customerTodos.table.export.full": "Exports every linked task field, including hidden attributes."
951
947
  }
@@ -4,7 +4,6 @@ import type { EntityManager } from '@mikro-orm/postgresql'
4
4
  import { DashboardRoleWidgets } from '@open-mercato/core/modules/dashboards/data/entities'
5
5
  import { Role } from '@open-mercato/core/modules/auth/data/entities'
6
6
  import { loadAllWidgets } from '@open-mercato/core/modules/dashboards/lib/widgets'
7
- import { appendWidgetsToRoles, resolveAnalyticsWidgetIds } from '@open-mercato/core/modules/dashboards/lib/role-widgets'
8
7
  import { seedAnalyticsData } from './seed/analytics'
9
8
 
10
9
  type Args = Record<string, string>
@@ -42,25 +41,15 @@ export async function seedDashboardDefaultsForTenant(
42
41
  const widgetMap = new Map(widgets.map((widget) => [widget.metadata.id, widget]))
43
42
  const resolvedWidgetIds = widgetIds && widgetIds.length
44
43
  ? widgetIds.filter((id) => widgetMap.has(id))
45
- : null
46
- const defaultWidgetIds = widgets
47
- .filter((widget) => widget.metadata.defaultEnabled)
48
- .map((widget) => widget.metadata.id)
49
- const allWidgetIds = widgets.map((widget) => widget.metadata.id)
44
+ : widgets.filter((widget) => widget.metadata.defaultEnabled).map((widget) => widget.metadata.id)
50
45
 
51
- if (resolvedWidgetIds && resolvedWidgetIds.length === 0) {
46
+ if (!resolvedWidgetIds.length) {
52
47
  log('No widgets resolved for dashboard seeding.')
53
48
  return false
54
49
  }
55
50
 
56
51
  await em.transactional(async (tem) => {
57
52
  for (const roleName of roleNames) {
58
- const isAdminRole = roleName === 'admin' || roleName === 'superadmin'
59
- const roleWidgetIds = resolvedWidgetIds ?? (isAdminRole ? allWidgetIds : defaultWidgetIds)
60
- if (!roleWidgetIds.length) {
61
- log(`No widgets resolved for role "${roleName}".`)
62
- continue
63
- }
64
53
  const role = await tem.findOne(Role, { name: roleName })
65
54
  if (!role) {
66
55
  log(`Skipping role "${roleName}" (not found)`)
@@ -73,7 +62,7 @@ export async function seedDashboardDefaultsForTenant(
73
62
  deletedAt: null,
74
63
  })
75
64
  if (existing) {
76
- existing.widgetIdsJson = roleWidgetIds
65
+ existing.widgetIdsJson = resolvedWidgetIds
77
66
  tem.persist(existing)
78
67
  log(`Updated dashboard widgets for role "${roleName}"`)
79
68
  } else {
@@ -81,7 +70,7 @@ export async function seedDashboardDefaultsForTenant(
81
70
  roleId: String(role.id),
82
71
  tenantId,
83
72
  organizationId,
84
- widgetIdsJson: roleWidgetIds,
73
+ widgetIdsJson: resolvedWidgetIds,
85
74
  createdAt: new Date(),
86
75
  updatedAt: null,
87
76
  deletedAt: null,
@@ -131,45 +120,6 @@ const seedDefaults: ModuleCli = {
131
120
  },
132
121
  }
133
122
 
134
- const enableAnalyticsWidgets: ModuleCli = {
135
- command: 'enable-analytics-widgets',
136
- async run(rest) {
137
- const args = parseArgs(rest)
138
- const tenantId = args.tenant || args.tenantId || null
139
- const organizationId = args.organization || args.organizationId || args.org || null
140
- const roleCsv = args.roles || 'admin,employee'
141
- if (!tenantId) {
142
- console.error('Usage: mercato dashboards enable-analytics-widgets --tenant <tenantId> [--org <orgId>] [--roles admin,employee]')
143
- return
144
- }
145
-
146
- const roleNames = roleCsv
147
- .split(',')
148
- .map((name) => name.trim())
149
- .filter(Boolean)
150
-
151
- if (!roleNames.length) {
152
- console.log('No roles provided, nothing to update.')
153
- return
154
- }
155
-
156
- const { resolve } = await createRequestContainer()
157
- const em = resolve('em') as EntityManager
158
- const widgetIds = await resolveAnalyticsWidgetIds()
159
-
160
- const updated = await appendWidgetsToRoles(em, {
161
- tenantId,
162
- organizationId,
163
- roleNames,
164
- widgetIds,
165
- })
166
-
167
- if (!updated) {
168
- console.log('No dashboard role widgets updated.')
169
- }
170
- },
171
- }
172
-
173
123
  const seedAnalytics: ModuleCli = {
174
124
  command: 'seed-analytics',
175
125
  async run(rest) {
@@ -332,4 +282,4 @@ const debugAnalytics: ModuleCli = {
332
282
  },
333
283
  }
334
284
 
335
- export default [seedDefaults, enableAnalyticsWidgets, seedAnalytics, debugAnalytics]
285
+ export default [seedDefaults, seedAnalytics, debugAnalytics]
@@ -44,13 +44,9 @@ type UserProps = BaseProps & {
44
44
 
45
45
  type WidgetVisibilityEditorProps = RoleProps | UserProps
46
46
 
47
- export type WidgetVisibilityEditorHandle = {
48
- save: () => Promise<void>
49
- }
50
-
51
47
  const EMPTY: string[] = []
52
48
 
53
- export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHandle, WidgetVisibilityEditorProps>(function WidgetVisibilityEditor(props, ref) {
49
+ export function WidgetVisibilityEditor(props: WidgetVisibilityEditorProps) {
54
50
  const t = useT()
55
51
  const { kind, targetId, tenantId, organizationId } = props
56
52
  const [catalog, setCatalog] = React.useState<WidgetCatalogItem[]>([])
@@ -64,15 +60,6 @@ export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHan
64
60
  const [originalMode, setOriginalMode] = React.useState<'inherit' | 'override'>('inherit')
65
61
  const [effective, setEffective] = React.useState<string[]>(EMPTY)
66
62
 
67
- const dirty = React.useMemo(() => {
68
- if (kind === 'user') {
69
- if (mode !== originalMode) return true
70
- if (mode === 'override') return selected.join('|') !== original.join('|')
71
- return false
72
- }
73
- return selected.join('|') !== original.join('|')
74
- }, [kind, mode, original, originalMode, selected])
75
-
76
63
  const loadCatalog = React.useCallback(async () => {
77
64
  const data = await readApiResultOrThrow<{ items?: unknown[] }>(
78
65
  '/api/dashboards/widgets/catalog',
@@ -162,9 +149,6 @@ export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHan
162
149
  }, [original, originalMode])
163
150
 
164
151
  const save = React.useCallback(async () => {
165
- if (loading) return
166
- if (error && catalog.length === 0) return
167
- if (!dirty) return
168
152
  setSaving(true)
169
153
  setError(null)
170
154
  try {
@@ -218,9 +202,16 @@ export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHan
218
202
  } finally {
219
203
  setSaving(false)
220
204
  }
221
- }, [catalog.length, dirty, error, kind, loading, mode, organizationId, selected, t, targetId, tenantId])
205
+ }, [kind, mode, organizationId, selected, t, targetId, tenantId])
222
206
 
223
- React.useImperativeHandle(ref, () => ({ save }), [save])
207
+ const dirty = React.useMemo(() => {
208
+ if (kind === 'user') {
209
+ if (mode !== originalMode) return true
210
+ if (mode === 'override') return selected.join('|') !== original.join('|')
211
+ return false
212
+ }
213
+ return selected.join('|') !== original.join('|')
214
+ }, [kind, mode, original, originalMode, selected])
224
215
 
225
216
  if (loading) {
226
217
  return (
@@ -306,6 +297,4 @@ export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHan
306
297
  </div>
307
298
  </div>
308
299
  )
309
- })
310
-
311
- WidgetVisibilityEditor.displayName = 'WidgetVisibilityEditor'
300
+ }