@open-mercato/core 0.4.2-canary-3b5064ce72 → 0.4.2-canary-7732371765

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 (497) 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/login.js +6 -25
  16. package/dist/modules/auth/api/login.js.map +2 -2
  17. package/dist/modules/auth/api/reset/confirm.js +2 -25
  18. package/dist/modules/auth/api/reset/confirm.js.map +2 -2
  19. package/dist/modules/auth/api/reset.js +0 -23
  20. package/dist/modules/auth/api/reset.js.map +2 -2
  21. package/dist/modules/auth/api/sidebar/preferences/route.js +9 -14
  22. package/dist/modules/auth/api/sidebar/preferences/route.js.map +2 -2
  23. package/dist/modules/auth/api/users/route.js +2 -4
  24. package/dist/modules/auth/api/users/route.js.map +2 -2
  25. package/dist/modules/auth/backend/roles/[id]/edit/page.js +1 -4
  26. package/dist/modules/auth/backend/roles/[id]/edit/page.js.map +2 -2
  27. package/dist/modules/auth/backend/roles/page.js +3 -3
  28. package/dist/modules/auth/backend/roles/page.js.map +2 -2
  29. package/dist/modules/auth/backend/users/[id]/edit/page.js +3 -18
  30. package/dist/modules/auth/backend/users/[id]/edit/page.js.map +2 -2
  31. package/dist/modules/auth/backend/users/create/page.js +2 -15
  32. package/dist/modules/auth/backend/users/create/page.js.map +2 -2
  33. package/dist/modules/auth/backend/users/page.js +3 -3
  34. package/dist/modules/auth/backend/users/page.js.map +2 -2
  35. package/dist/modules/auth/cli.js +11 -25
  36. package/dist/modules/auth/cli.js.map +2 -2
  37. package/dist/modules/auth/commands/users.js +2 -59
  38. package/dist/modules/auth/commands/users.js.map +2 -2
  39. package/dist/modules/auth/data/validators.js +3 -6
  40. package/dist/modules/auth/data/validators.js.map +2 -2
  41. package/dist/modules/auth/frontend/login.js +3 -112
  42. package/dist/modules/auth/frontend/login.js.map +2 -2
  43. package/dist/modules/auth/frontend/reset/[token]/page.js +10 -20
  44. package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
  45. package/dist/modules/auth/lib/setup-app.js +8 -42
  46. package/dist/modules/auth/lib/setup-app.js.map +2 -2
  47. package/dist/modules/auth/services/authService.js +3 -24
  48. package/dist/modules/auth/services/authService.js.map +2 -2
  49. package/dist/modules/business_rules/api/execute/route.js +1 -7
  50. package/dist/modules/business_rules/api/execute/route.js.map +2 -2
  51. package/dist/modules/business_rules/backend/rules/page.js +0 -4
  52. package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
  53. package/dist/modules/business_rules/backend/sets/page.js +0 -3
  54. package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
  55. package/dist/modules/business_rules/cli.js +1 -2
  56. package/dist/modules/business_rules/cli.js.map +2 -2
  57. package/dist/modules/business_rules/lib/rule-engine.js +3 -33
  58. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  59. package/dist/modules/catalog/components/PriceKindSettings.js +0 -2
  60. package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
  61. package/dist/modules/catalog/components/categories/CategoriesDataTable.js +2 -2
  62. package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
  63. package/dist/modules/catalog/components/products/ProductsDataTable.js +0 -2
  64. package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
  65. package/dist/modules/configs/cli.js +0 -6
  66. package/dist/modules/configs/cli.js.map +2 -2
  67. package/dist/modules/configs/components/CachePanel.js +4 -4
  68. package/dist/modules/configs/components/CachePanel.js.map +2 -2
  69. package/dist/modules/configs/lib/system-status.js +1 -48
  70. package/dist/modules/configs/lib/system-status.js.map +2 -2
  71. package/dist/modules/configs/lib/upgrade-actions.js +0 -18
  72. package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
  73. package/dist/modules/currencies/backend/currencies/page.js +0 -3
  74. package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
  75. package/dist/modules/currencies/backend/exchange-rates/page.js +0 -2
  76. package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
  77. package/dist/modules/customers/backend/customers/companies/page.js +0 -3
  78. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  79. package/dist/modules/customers/backend/customers/deals/page.js +0 -3
  80. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  81. package/dist/modules/customers/backend/customers/people/page.js +0 -3
  82. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  83. package/dist/modules/customers/commands/deals.js +0 -31
  84. package/dist/modules/customers/commands/deals.js.map +2 -2
  85. package/dist/modules/customers/components/CustomerTodosTable.js +0 -1
  86. package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
  87. package/dist/modules/customers/widgets/dashboard/customer-todos/widget.js +1 -2
  88. package/dist/modules/customers/widgets/dashboard/customer-todos/widget.js.map +2 -2
  89. package/dist/modules/customers/widgets/dashboard/new-customers/widget.js +1 -2
  90. package/dist/modules/customers/widgets/dashboard/new-customers/widget.js.map +2 -2
  91. package/dist/modules/customers/widgets/dashboard/new-deals/widget.js +1 -2
  92. package/dist/modules/customers/widgets/dashboard/new-deals/widget.js.map +2 -2
  93. package/dist/modules/customers/widgets/dashboard/next-interactions/widget.js +1 -2
  94. package/dist/modules/customers/widgets/dashboard/next-interactions/widget.js.map +2 -2
  95. package/dist/modules/dashboards/cli.js +5 -44
  96. package/dist/modules/dashboards/cli.js.map +2 -2
  97. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +11 -16
  98. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +3 -3
  99. package/dist/modules/dashboards/services/widgetDataService.js +3 -139
  100. package/dist/modules/dashboards/services/widgetDataService.js.map +2 -2
  101. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.js +1 -2
  102. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.js.map +2 -2
  103. package/dist/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.js +1 -2
  104. package/dist/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.js.map +2 -2
  105. package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.js +1 -2
  106. package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.js.map +2 -2
  107. package/dist/modules/dashboards/widgets/dashboard/orders-kpi/widget.js +1 -2
  108. package/dist/modules/dashboards/widgets/dashboard/orders-kpi/widget.js.map +2 -2
  109. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js +1 -2
  110. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js.map +2 -2
  111. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.js +1 -2
  112. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.js.map +2 -2
  113. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.js +1 -2
  114. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.js.map +2 -2
  115. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.js +1 -2
  116. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.js.map +2 -2
  117. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.js +1 -2
  118. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.js.map +2 -2
  119. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.js +1 -2
  120. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.js.map +2 -2
  121. package/dist/modules/dictionaries/components/DictionaryTable.js +0 -2
  122. package/dist/modules/dictionaries/components/DictionaryTable.js.map +2 -2
  123. package/dist/modules/directory/backend/directory/organizations/page.js +2 -2
  124. package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
  125. package/dist/modules/directory/backend/directory/tenants/page.js +2 -2
  126. package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
  127. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +2 -2
  128. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
  129. package/dist/modules/entities/components/SystemEntitiesTable.js +1 -1
  130. package/dist/modules/entities/components/SystemEntitiesTable.js.map +2 -2
  131. package/dist/modules/entities/components/UserEntitiesTable.js +2 -2
  132. package/dist/modules/entities/components/UserEntitiesTable.js.map +2 -2
  133. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +3 -3
  134. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
  135. package/dist/modules/feature_toggles/components/OverridesTable.js +1 -1
  136. package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
  137. package/dist/modules/planner/backend/planner/availability-rulesets/page.js +2 -2
  138. package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
  139. package/dist/modules/query_index/cli.js +7 -63
  140. package/dist/modules/query_index/cli.js.map +2 -2
  141. package/dist/modules/query_index/components/QueryIndexesTable.js +1 -7
  142. package/dist/modules/query_index/components/QueryIndexesTable.js.map +2 -2
  143. package/dist/modules/resources/backend/resources/resource-types/page.js +2 -2
  144. package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
  145. package/dist/modules/resources/backend/resources/resources/page.js +2 -2
  146. package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
  147. package/dist/modules/sales/backend/sales/channels/offers/page.js +0 -2
  148. package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
  149. package/dist/modules/sales/backend/sales/channels/page.js +0 -2
  150. package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
  151. package/dist/modules/sales/commands/documents.js +0 -53
  152. package/dist/modules/sales/commands/documents.js.map +2 -2
  153. package/dist/modules/sales/commands/payments.js +0 -26
  154. package/dist/modules/sales/commands/payments.js.map +2 -2
  155. package/dist/modules/sales/components/AdjustmentKindSettings.js +2 -2
  156. package/dist/modules/sales/components/AdjustmentKindSettings.js.map +2 -2
  157. package/dist/modules/sales/components/PaymentMethodsSettings.js +2 -2
  158. package/dist/modules/sales/components/PaymentMethodsSettings.js.map +2 -2
  159. package/dist/modules/sales/components/ShippingMethodsSettings.js +2 -2
  160. package/dist/modules/sales/components/ShippingMethodsSettings.js.map +2 -2
  161. package/dist/modules/sales/components/TaxRatesSettings.js +2 -2
  162. package/dist/modules/sales/components/TaxRatesSettings.js.map +2 -2
  163. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +0 -2
  164. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
  165. package/dist/modules/sales/components/documents/AdjustmentsSection.js +0 -2
  166. package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
  167. package/dist/modules/sales/components/documents/PaymentsSection.js +1 -2
  168. package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
  169. package/dist/modules/sales/components/documents/SalesDocumentsTable.js +0 -2
  170. package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
  171. package/dist/modules/staff/backend/staff/team-members/page.js +1 -1
  172. package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
  173. package/dist/modules/staff/backend/staff/team-roles/page.js +2 -2
  174. package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
  175. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +2 -2
  176. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
  177. package/dist/modules/staff/backend/staff/teams/page.js +2 -2
  178. package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
  179. package/dist/modules/staff/commands/leave-requests.js +0 -79
  180. package/dist/modules/staff/commands/leave-requests.js.map +2 -2
  181. package/dist/modules/workflows/backend/definitions/page.js +0 -5
  182. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  183. package/dist/modules/workflows/backend/instances/page.js +0 -3
  184. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  185. package/dist/modules/workflows/backend/tasks/page.js +0 -3
  186. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  187. package/dist/modules/workflows/cli.js +12 -12
  188. package/dist/modules/workflows/cli.js.map +2 -2
  189. package/dist/modules/workflows/lib/transition-handler.js +6 -14
  190. package/dist/modules/workflows/lib/transition-handler.js.map +2 -2
  191. package/generated/entities.ids.generated.ts +1 -5
  192. package/generated/entity-fields-registry.ts +0 -2
  193. package/package.json +2 -2
  194. package/src/modules/api_docs/frontend/docs/api/page.tsx +2 -3
  195. package/src/modules/api_keys/backend/api-keys/page.tsx +1 -1
  196. package/src/modules/attachments/components/AttachmentLibrary.tsx +0 -4
  197. package/src/modules/attachments/components/AttachmentPartitionSettings.tsx +0 -2
  198. package/src/modules/auth/README.md +1 -1
  199. package/src/modules/auth/__tests__/cli-setup-acl.test.ts +1 -1
  200. package/src/modules/auth/api/__tests__/login.test.ts +0 -2
  201. package/src/modules/auth/api/admin/nav.ts +6 -10
  202. package/src/modules/auth/api/login.ts +7 -26
  203. package/src/modules/auth/api/reset/confirm.ts +2 -25
  204. package/src/modules/auth/api/reset.ts +0 -23
  205. package/src/modules/auth/api/sidebar/preferences/route.ts +12 -21
  206. package/src/modules/auth/api/users/route.ts +2 -5
  207. package/src/modules/auth/backend/roles/[id]/edit/page.tsx +1 -4
  208. package/src/modules/auth/backend/roles/page.tsx +3 -3
  209. package/src/modules/auth/backend/users/[id]/edit/page.tsx +3 -22
  210. package/src/modules/auth/backend/users/create/page.tsx +2 -19
  211. package/src/modules/auth/backend/users/page.tsx +3 -3
  212. package/src/modules/auth/cli.ts +11 -38
  213. package/src/modules/auth/commands/users.ts +2 -73
  214. package/src/modules/auth/data/validators.ts +2 -6
  215. package/src/modules/auth/frontend/login.tsx +5 -134
  216. package/src/modules/auth/frontend/reset/[token]/page.tsx +11 -24
  217. package/src/modules/auth/i18n/de.json +1 -48
  218. package/src/modules/auth/i18n/en.json +1 -48
  219. package/src/modules/auth/i18n/es.json +1 -48
  220. package/src/modules/auth/i18n/pl.json +1 -48
  221. package/src/modules/auth/lib/setup-app.ts +9 -58
  222. package/src/modules/auth/services/authService.ts +4 -27
  223. package/src/modules/business_rules/api/execute/route.ts +1 -8
  224. package/src/modules/business_rules/backend/rules/page.tsx +0 -4
  225. package/src/modules/business_rules/backend/sets/page.tsx +0 -3
  226. package/src/modules/business_rules/cli.ts +1 -2
  227. package/src/modules/business_rules/i18n/en.json +1 -3
  228. package/src/modules/business_rules/lib/__tests__/rule-engine.test.ts +0 -51
  229. package/src/modules/business_rules/lib/rule-engine.ts +3 -57
  230. package/src/modules/catalog/components/PriceKindSettings.tsx +0 -2
  231. package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +2 -2
  232. package/src/modules/catalog/components/products/ProductsDataTable.tsx +0 -2
  233. package/src/modules/catalog/i18n/en.json +1 -3
  234. package/src/modules/configs/cli.ts +0 -6
  235. package/src/modules/configs/components/CachePanel.tsx +4 -4
  236. package/src/modules/configs/i18n/en.json +2 -12
  237. package/src/modules/configs/i18n/pl.json +2 -12
  238. package/src/modules/configs/lib/system-status.ts +1 -48
  239. package/src/modules/configs/lib/system-status.types.ts +0 -1
  240. package/src/modules/configs/lib/upgrade-actions.ts +0 -18
  241. package/src/modules/currencies/backend/currencies/page.tsx +0 -3
  242. package/src/modules/currencies/backend/exchange-rates/page.tsx +0 -2
  243. package/src/modules/customers/backend/customers/companies/page.tsx +0 -3
  244. package/src/modules/customers/backend/customers/deals/page.tsx +0 -3
  245. package/src/modules/customers/backend/customers/people/page.tsx +0 -3
  246. package/src/modules/customers/commands/deals.ts +0 -39
  247. package/src/modules/customers/components/CustomerTodosTable.tsx +0 -1
  248. package/src/modules/customers/i18n/en.json +1 -5
  249. package/src/modules/customers/widgets/dashboard/customer-todos/widget.ts +2 -2
  250. package/src/modules/customers/widgets/dashboard/new-customers/widget.ts +2 -2
  251. package/src/modules/customers/widgets/dashboard/new-deals/widget.ts +2 -2
  252. package/src/modules/customers/widgets/dashboard/next-interactions/widget.ts +2 -2
  253. package/src/modules/dashboards/cli.ts +5 -55
  254. package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +11 -22
  255. package/src/modules/dashboards/services/widgetDataService.ts +4 -164
  256. package/src/modules/dashboards/widgets/dashboard/aov-kpi/widget.ts +2 -2
  257. package/src/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.ts +2 -2
  258. package/src/modules/dashboards/widgets/dashboard/orders-by-status/widget.ts +2 -2
  259. package/src/modules/dashboards/widgets/dashboard/orders-kpi/widget.ts +2 -2
  260. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/widget.ts +2 -2
  261. package/src/modules/dashboards/widgets/dashboard/revenue-kpi/widget.ts +2 -2
  262. package/src/modules/dashboards/widgets/dashboard/revenue-trend/widget.ts +2 -2
  263. package/src/modules/dashboards/widgets/dashboard/sales-by-region/widget.ts +2 -2
  264. package/src/modules/dashboards/widgets/dashboard/top-customers/widget.ts +2 -2
  265. package/src/modules/dashboards/widgets/dashboard/top-products/widget.ts +2 -2
  266. package/src/modules/dictionaries/components/DictionaryTable.tsx +0 -2
  267. package/src/modules/directory/backend/directory/organizations/page.tsx +2 -2
  268. package/src/modules/directory/backend/directory/tenants/page.tsx +2 -2
  269. package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +2 -2
  270. package/src/modules/entities/components/SystemEntitiesTable.tsx +1 -1
  271. package/src/modules/entities/components/UserEntitiesTable.tsx +2 -2
  272. package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +4 -3
  273. package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -1
  274. package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +2 -2
  275. package/src/modules/query_index/cli.ts +13 -82
  276. package/src/modules/query_index/components/QueryIndexesTable.tsx +2 -8
  277. package/src/modules/resources/backend/resources/resource-types/page.tsx +2 -2
  278. package/src/modules/resources/backend/resources/resources/page.tsx +2 -2
  279. package/src/modules/sales/backend/sales/channels/offers/page.tsx +0 -2
  280. package/src/modules/sales/backend/sales/channels/page.tsx +0 -2
  281. package/src/modules/sales/commands/documents.ts +0 -65
  282. package/src/modules/sales/commands/payments.ts +0 -33
  283. package/src/modules/sales/components/AdjustmentKindSettings.tsx +2 -2
  284. package/src/modules/sales/components/PaymentMethodsSettings.tsx +2 -2
  285. package/src/modules/sales/components/ShippingMethodsSettings.tsx +2 -2
  286. package/src/modules/sales/components/TaxRatesSettings.tsx +2 -2
  287. package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +0 -2
  288. package/src/modules/sales/components/documents/AdjustmentsSection.tsx +0 -2
  289. package/src/modules/sales/components/documents/PaymentsSection.tsx +1 -2
  290. package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +0 -2
  291. package/src/modules/sales/i18n/de.json +0 -20
  292. package/src/modules/sales/i18n/en.json +1 -25
  293. package/src/modules/sales/i18n/es.json +0 -20
  294. package/src/modules/sales/i18n/pl.json +0 -20
  295. package/src/modules/staff/backend/staff/team-members/page.tsx +1 -1
  296. package/src/modules/staff/backend/staff/team-roles/page.tsx +2 -2
  297. package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +2 -2
  298. package/src/modules/staff/backend/staff/teams/page.tsx +2 -2
  299. package/src/modules/staff/commands/leave-requests.ts +0 -94
  300. package/src/modules/staff/i18n/de.json +0 -4
  301. package/src/modules/staff/i18n/en.json +1 -9
  302. package/src/modules/staff/i18n/es.json +0 -4
  303. package/src/modules/staff/i18n/pl.json +0 -4
  304. package/src/modules/workflows/backend/definitions/page.tsx +0 -5
  305. package/src/modules/workflows/backend/instances/page.tsx +1 -4
  306. package/src/modules/workflows/backend/tasks/page.tsx +1 -4
  307. package/src/modules/workflows/cli.ts +12 -12
  308. package/src/modules/workflows/i18n/en.json +1 -3
  309. package/src/modules/workflows/lib/transition-handler.ts +6 -18
  310. package/dist/generated/entities/notification/index.js +0 -57
  311. package/dist/generated/entities/notification/index.js.map +0 -7
  312. package/dist/modules/auth/api/profile/route.js +0 -157
  313. package/dist/modules/auth/api/profile/route.js.map +0 -7
  314. package/dist/modules/auth/backend/auth/profile/page.js +0 -141
  315. package/dist/modules/auth/backend/auth/profile/page.js.map +0 -7
  316. package/dist/modules/auth/backend/auth/profile/page.meta.js +0 -13
  317. package/dist/modules/auth/backend/auth/profile/page.meta.js.map +0 -7
  318. package/dist/modules/auth/notifications.js +0 -112
  319. package/dist/modules/auth/notifications.js.map +0 -7
  320. package/dist/modules/business_rules/notifications.js +0 -28
  321. package/dist/modules/business_rules/notifications.js.map +0 -7
  322. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js +0 -37
  323. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js.map +0 -7
  324. package/dist/modules/catalog/notifications.js +0 -28
  325. package/dist/modules/catalog/notifications.js.map +0 -7
  326. package/dist/modules/catalog/subscribers/low-stock-notification.js +0 -38
  327. package/dist/modules/catalog/subscribers/low-stock-notification.js.map +0 -7
  328. package/dist/modules/customers/notifications.js +0 -48
  329. package/dist/modules/customers/notifications.js.map +0 -7
  330. package/dist/modules/dashboards/lib/role-widgets.js +0 -58
  331. package/dist/modules/dashboards/lib/role-widgets.js.map +0 -7
  332. package/dist/modules/directory/api/get/tenants/lookup.js +0 -70
  333. package/dist/modules/directory/api/get/tenants/lookup.js.map +0 -7
  334. package/dist/modules/notifications/acl.js +0 -11
  335. package/dist/modules/notifications/acl.js.map +0 -7
  336. package/dist/modules/notifications/api/[id]/action/route.js +0 -74
  337. package/dist/modules/notifications/api/[id]/action/route.js.map +0 -7
  338. package/dist/modules/notifications/api/[id]/dismiss/route.js +0 -15
  339. package/dist/modules/notifications/api/[id]/dismiss/route.js.map +0 -7
  340. package/dist/modules/notifications/api/[id]/read/route.js +0 -15
  341. package/dist/modules/notifications/api/[id]/read/route.js.map +0 -7
  342. package/dist/modules/notifications/api/[id]/restore/route.js +0 -53
  343. package/dist/modules/notifications/api/[id]/restore/route.js.map +0 -7
  344. package/dist/modules/notifications/api/batch/route.js +0 -17
  345. package/dist/modules/notifications/api/batch/route.js.map +0 -7
  346. package/dist/modules/notifications/api/feature/route.js +0 -17
  347. package/dist/modules/notifications/api/feature/route.js.map +0 -7
  348. package/dist/modules/notifications/api/mark-all-read/route.js +0 -35
  349. package/dist/modules/notifications/api/mark-all-read/route.js.map +0 -7
  350. package/dist/modules/notifications/api/openapi.js +0 -76
  351. package/dist/modules/notifications/api/openapi.js.map +0 -7
  352. package/dist/modules/notifications/api/role/route.js +0 -17
  353. package/dist/modules/notifications/api/role/route.js.map +0 -7
  354. package/dist/modules/notifications/api/route.js +0 -85
  355. package/dist/modules/notifications/api/route.js.map +0 -7
  356. package/dist/modules/notifications/api/settings/route.js +0 -155
  357. package/dist/modules/notifications/api/settings/route.js.map +0 -7
  358. package/dist/modules/notifications/api/unread-count/route.js +0 -38
  359. package/dist/modules/notifications/api/unread-count/route.js.map +0 -7
  360. package/dist/modules/notifications/backend/config/notifications/page.js +0 -10
  361. package/dist/modules/notifications/backend/config/notifications/page.js.map +0 -7
  362. package/dist/modules/notifications/backend/config/notifications/page.meta.js +0 -24
  363. package/dist/modules/notifications/backend/config/notifications/page.meta.js.map +0 -7
  364. package/dist/modules/notifications/cli.js +0 -16
  365. package/dist/modules/notifications/cli.js.map +0 -7
  366. package/dist/modules/notifications/data/entities.js +0 -112
  367. package/dist/modules/notifications/data/entities.js.map +0 -7
  368. package/dist/modules/notifications/data/validators.js +0 -98
  369. package/dist/modules/notifications/data/validators.js.map +0 -7
  370. package/dist/modules/notifications/di.js +0 -13
  371. package/dist/modules/notifications/di.js.map +0 -7
  372. package/dist/modules/notifications/emails/NotificationEmail.js +0 -58
  373. package/dist/modules/notifications/emails/NotificationEmail.js.map +0 -7
  374. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js +0 -44
  375. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js.map +0 -7
  376. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js +0 -220
  377. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js.map +0 -7
  378. package/dist/modules/notifications/index.js +0 -14
  379. package/dist/modules/notifications/index.js.map +0 -7
  380. package/dist/modules/notifications/lib/deliveryConfig.js +0 -107
  381. package/dist/modules/notifications/lib/deliveryConfig.js.map +0 -7
  382. package/dist/modules/notifications/lib/deliveryStrategies.js +0 -14
  383. package/dist/modules/notifications/lib/deliveryStrategies.js.map +0 -7
  384. package/dist/modules/notifications/lib/events.js +0 -12
  385. package/dist/modules/notifications/lib/events.js.map +0 -7
  386. package/dist/modules/notifications/lib/notificationBuilder.js +0 -66
  387. package/dist/modules/notifications/lib/notificationBuilder.js.map +0 -7
  388. package/dist/modules/notifications/lib/notificationFactory.js +0 -54
  389. package/dist/modules/notifications/lib/notificationFactory.js.map +0 -7
  390. package/dist/modules/notifications/lib/notificationMapper.js +0 -34
  391. package/dist/modules/notifications/lib/notificationMapper.js.map +0 -7
  392. package/dist/modules/notifications/lib/notificationRecipients.js +0 -35
  393. package/dist/modules/notifications/lib/notificationRecipients.js.map +0 -7
  394. package/dist/modules/notifications/lib/notificationService.js +0 -279
  395. package/dist/modules/notifications/lib/notificationService.js.map +0 -7
  396. package/dist/modules/notifications/lib/routeHelpers.js +0 -101
  397. package/dist/modules/notifications/lib/routeHelpers.js.map +0 -7
  398. package/dist/modules/notifications/lib/safeHref.js +0 -24
  399. package/dist/modules/notifications/lib/safeHref.js.map +0 -7
  400. package/dist/modules/notifications/migrations/Migration20260123000001.js +0 -70
  401. package/dist/modules/notifications/migrations/Migration20260123000001.js.map +0 -7
  402. package/dist/modules/notifications/migrations/Migration20260126150000.js +0 -37
  403. package/dist/modules/notifications/migrations/Migration20260126150000.js.map +0 -7
  404. package/dist/modules/notifications/migrations/Migration20260129082610.js +0 -13
  405. package/dist/modules/notifications/migrations/Migration20260129082610.js.map +0 -7
  406. package/dist/modules/notifications/subscribers/deliver-notification.js +0 -165
  407. package/dist/modules/notifications/subscribers/deliver-notification.js.map +0 -7
  408. package/dist/modules/notifications/workers/create-notification.worker.js +0 -70
  409. package/dist/modules/notifications/workers/create-notification.worker.js.map +0 -7
  410. package/dist/modules/sales/notifications.client.js +0 -51
  411. package/dist/modules/sales/notifications.client.js.map +0 -7
  412. package/dist/modules/sales/notifications.js +0 -88
  413. package/dist/modules/sales/notifications.js.map +0 -7
  414. package/dist/modules/sales/subscribers/quote-expiring-notification.js +0 -38
  415. package/dist/modules/sales/subscribers/quote-expiring-notification.js.map +0 -7
  416. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js +0 -137
  417. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js.map +0 -7
  418. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js +0 -137
  419. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js.map +0 -7
  420. package/dist/modules/sales/widgets/notifications/index.js +0 -7
  421. package/dist/modules/sales/widgets/notifications/index.js.map +0 -7
  422. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js +0 -60
  423. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js.map +0 -7
  424. package/dist/modules/staff/notifications.js +0 -75
  425. package/dist/modules/staff/notifications.js.map +0 -7
  426. package/dist/modules/workflows/notifications.js +0 -28
  427. package/dist/modules/workflows/notifications.js.map +0 -7
  428. package/dist/modules/workflows/subscribers/task-assigned-notification.js +0 -38
  429. package/dist/modules/workflows/subscribers/task-assigned-notification.js.map +0 -7
  430. package/generated/entities/notification/index.ts +0 -27
  431. package/src/modules/auth/api/profile/route.ts +0 -163
  432. package/src/modules/auth/backend/auth/profile/page.meta.ts +0 -9
  433. package/src/modules/auth/backend/auth/profile/page.tsx +0 -174
  434. package/src/modules/auth/notifications.ts +0 -109
  435. package/src/modules/business_rules/notifications.ts +0 -25
  436. package/src/modules/business_rules/subscribers/rule-execution-failed-notification.ts +0 -50
  437. package/src/modules/catalog/notifications.ts +0 -25
  438. package/src/modules/catalog/subscribers/low-stock-notification.ts +0 -52
  439. package/src/modules/customers/notifications.ts +0 -44
  440. package/src/modules/dashboards/lib/role-widgets.ts +0 -80
  441. package/src/modules/directory/api/get/tenants/lookup.ts +0 -75
  442. package/src/modules/notifications/__tests__/deliver-notification.test.ts +0 -195
  443. package/src/modules/notifications/__tests__/deliveryStrategies.test.ts +0 -19
  444. package/src/modules/notifications/__tests__/notificationService.test.ts +0 -208
  445. package/src/modules/notifications/acl.ts +0 -7
  446. package/src/modules/notifications/api/[id]/action/route.ts +0 -75
  447. package/src/modules/notifications/api/[id]/dismiss/route.ts +0 -12
  448. package/src/modules/notifications/api/[id]/read/route.ts +0 -12
  449. package/src/modules/notifications/api/[id]/restore/route.ts +0 -53
  450. package/src/modules/notifications/api/batch/route.ts +0 -14
  451. package/src/modules/notifications/api/feature/route.ts +0 -14
  452. package/src/modules/notifications/api/mark-all-read/route.ts +0 -34
  453. package/src/modules/notifications/api/openapi.ts +0 -76
  454. package/src/modules/notifications/api/role/route.ts +0 -14
  455. package/src/modules/notifications/api/route.ts +0 -92
  456. package/src/modules/notifications/api/settings/route.ts +0 -157
  457. package/src/modules/notifications/api/unread-count/route.ts +0 -38
  458. package/src/modules/notifications/backend/config/notifications/page.meta.ts +0 -22
  459. package/src/modules/notifications/backend/config/notifications/page.tsx +0 -12
  460. package/src/modules/notifications/cli.ts +0 -18
  461. package/src/modules/notifications/data/entities.ts +0 -99
  462. package/src/modules/notifications/data/validators.ts +0 -115
  463. package/src/modules/notifications/di.ts +0 -11
  464. package/src/modules/notifications/emails/NotificationEmail.tsx +0 -98
  465. package/src/modules/notifications/frontend/NotificationInboxPageClient.tsx +0 -42
  466. package/src/modules/notifications/frontend/NotificationSettingsPageClient.tsx +0 -233
  467. package/src/modules/notifications/i18n/de.json +0 -50
  468. package/src/modules/notifications/i18n/en.json +0 -50
  469. package/src/modules/notifications/i18n/es.json +0 -50
  470. package/src/modules/notifications/i18n/pl.json +0 -50
  471. package/src/modules/notifications/index.ts +0 -12
  472. package/src/modules/notifications/lib/deliveryConfig.ts +0 -153
  473. package/src/modules/notifications/lib/deliveryStrategies.ts +0 -50
  474. package/src/modules/notifications/lib/events.ts +0 -48
  475. package/src/modules/notifications/lib/notificationBuilder.ts +0 -121
  476. package/src/modules/notifications/lib/notificationFactory.ts +0 -76
  477. package/src/modules/notifications/lib/notificationMapper.ts +0 -33
  478. package/src/modules/notifications/lib/notificationRecipients.ts +0 -83
  479. package/src/modules/notifications/lib/notificationService.ts +0 -414
  480. package/src/modules/notifications/lib/routeHelpers.ts +0 -151
  481. package/src/modules/notifications/lib/safeHref.ts +0 -29
  482. package/src/modules/notifications/migrations/.snapshot-open-mercato.json +0 -336
  483. package/src/modules/notifications/migrations/Migration20260123000001.ts +0 -73
  484. package/src/modules/notifications/migrations/Migration20260126150000.ts +0 -39
  485. package/src/modules/notifications/migrations/Migration20260129082610.ts +0 -13
  486. package/src/modules/notifications/subscribers/deliver-notification.ts +0 -204
  487. package/src/modules/notifications/workers/create-notification.worker.ts +0 -122
  488. package/src/modules/sales/notifications.client.ts +0 -65
  489. package/src/modules/sales/notifications.ts +0 -82
  490. package/src/modules/sales/subscribers/quote-expiring-notification.ts +0 -53
  491. package/src/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.tsx +0 -156
  492. package/src/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.tsx +0 -156
  493. package/src/modules/sales/widgets/notifications/index.ts +0 -2
  494. package/src/modules/sales/widgets/notifications/useSalesDocumentTotals.ts +0 -81
  495. package/src/modules/staff/notifications.ts +0 -71
  496. package/src/modules/workflows/notifications.ts +0 -25
  497. package/src/modules/workflows/subscribers/task-assigned-notification.ts +0 -53
@@ -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
+ }
@@ -1,10 +1,6 @@
1
1
  import type { EntityManager } from '@mikro-orm/postgresql'
2
2
  import type { CacheStrategy } from '@open-mercato/cache'
3
3
  import { createHash } from 'node:crypto'
4
- import { decryptWithAesGcm } from '@open-mercato/shared/lib/encryption/aes'
5
- import { resolveTenantEncryptionService } from '@open-mercato/shared/lib/encryption/customFieldValues'
6
- import { resolveEntityIdFromMetadata } from '@open-mercato/shared/lib/encryption/entityIds'
7
- import { findWithDecryption } from '@open-mercato/shared/lib/encryption/find'
8
4
  import {
9
5
  type DateRangePreset,
10
6
  resolveDateRange,
@@ -21,8 +17,6 @@ import {
21
17
  import type { AnalyticsRegistry } from './analyticsRegistry'
22
18
 
23
19
  const WIDGET_DATA_CACHE_TTL = 120_000
24
- const WIDGET_DATA_SEGMENT_TTL = 86_400_000
25
- const WIDGET_DATA_SEGMENT_KEY = 'widget-data:__segment__'
26
20
 
27
21
  const SAFE_IDENTIFIER_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_]*$/
28
22
 
@@ -174,11 +168,6 @@ export class WidgetDataService {
174
168
  const tags = this.getCacheTags(request.entityType)
175
169
  try {
176
170
  await this.cache.set(cacheKey, response, { ttl: WIDGET_DATA_CACHE_TTL, tags })
177
- await this.cache.set(
178
- WIDGET_DATA_SEGMENT_KEY,
179
- { updatedAt: response.metadata.fetchedAt },
180
- { ttl: WIDGET_DATA_SEGMENT_TTL, tags: ['widget-data'] },
181
- )
182
171
  } catch {
183
172
  }
184
173
  }
@@ -293,75 +282,6 @@ export class WidgetDataService {
293
282
  assertSafeIdentifier(config.idColumn, 'id column')
294
283
  assertSafeIdentifier(config.labelColumn, 'label column')
295
284
 
296
- const meta = this.resolveEntityMetadata(config.table)
297
- const idProp = meta ? this.resolveEntityPropertyName(meta, config.idColumn) : null
298
- const labelProp = meta ? this.resolveEntityPropertyName(meta, config.labelColumn) : null
299
- const tenantProp = meta
300
- ? (this.resolveEntityPropertyName(meta, 'tenant_id') ?? this.resolveEntityPropertyName(meta, 'tenantId'))
301
- : null
302
- const organizationProp = meta
303
- ? (this.resolveEntityPropertyName(meta, 'organization_id') ?? this.resolveEntityPropertyName(meta, 'organizationId'))
304
- : null
305
- const entityName = meta ? ((meta as any).class ?? meta.className ?? meta.name) : null
306
-
307
- if (meta && idProp && labelProp && tenantProp && entityName) {
308
- const where: Record<string, unknown> = {
309
- [idProp]: { $in: uniqueIds },
310
- [tenantProp]: this.scope.tenantId,
311
- }
312
- if (organizationProp && this.scope.organizationIds && this.scope.organizationIds.length > 0) {
313
- where[organizationProp] = { $in: this.scope.organizationIds }
314
- }
315
-
316
- try {
317
- const records = await findWithDecryption(
318
- this.em,
319
- entityName,
320
- where,
321
- { fields: [idProp, labelProp, tenantProp, organizationProp].filter(Boolean) },
322
- { tenantId: this.scope.tenantId, organizationId: this.resolveOrganizationId() },
323
- )
324
-
325
- const encryptionService = resolveTenantEncryptionService(this.em as any)
326
- const dek = encryptionService?.isEnabled() ? await encryptionService.getDek(this.scope.tenantId) : null
327
- let hasEncryptedLabels = false
328
- let hasDecryptedLabels = false
329
-
330
- const labelMap = new Map<string, string>()
331
- for (const record of records as Array<Record<string, unknown>>) {
332
- const id = record[idProp]
333
- let labelValue = record[labelProp]
334
- if (typeof labelValue === 'string' && this.isEncryptedPayload(labelValue)) {
335
- hasEncryptedLabels = true
336
- if (dek?.key) {
337
- const decrypted = this.decryptWithDek(labelValue, dek.key)
338
- if (decrypted !== null) {
339
- labelValue = decrypted
340
- hasDecryptedLabels = true
341
- }
342
- }
343
- } else if (labelValue != null && labelValue !== '') {
344
- hasDecryptedLabels = true
345
- }
346
-
347
- if (typeof id === 'string' && labelValue != null && labelValue !== '') {
348
- labelMap.set(id, String(labelValue))
349
- }
350
- }
351
-
352
- if (labelMap.size > 0 && (!hasEncryptedLabels || hasDecryptedLabels)) {
353
- return data.map((item) => ({
354
- ...item,
355
- groupLabel: typeof item.groupKey === 'string' && labelMap.has(item.groupKey)
356
- ? labelMap.get(item.groupKey)!
357
- : undefined,
358
- }))
359
- }
360
- } catch {
361
- // fall through to SQL resolution
362
- }
363
- }
364
-
365
285
  const clauses = [`"${config.idColumn}" = ANY(?::uuid[])`, 'tenant_id = ?']
366
286
  const params: unknown[] = [`{${uniqueIds.join(',')}}`, this.scope.tenantId]
367
287
 
@@ -370,43 +290,17 @@ export class WidgetDataService {
370
290
  params.push(`{${this.scope.organizationIds.join(',')}}`)
371
291
  }
372
292
 
373
- const sql = `SELECT "${config.idColumn}" as id, "${config.labelColumn}" as label, tenant_id, organization_id FROM "${config.table}" WHERE ${clauses.join(
293
+ const sql = `SELECT "${config.idColumn}" as id, "${config.labelColumn}" as label FROM "${config.table}" WHERE ${clauses.join(
374
294
  ' AND ',
375
295
  )}`
376
296
 
377
297
  try {
378
298
  const labelRows = await this.em.getConnection().execute(sql, params)
379
- const entityId = this.resolveEntityId(meta)
380
- const encryptionService = resolveTenantEncryptionService(this.em as any)
381
- const organizationId = this.resolveOrganizationId()
382
- const dek = encryptionService?.isEnabled() ? await encryptionService.getDek(this.scope.tenantId) : null
383
299
 
384
300
  const labelMap = new Map<string, string>()
385
- for (const row of labelRows as Array<{ id: string; label: string | null; tenant_id?: string | null; organization_id?: string | null }>) {
386
- let labelValue = row.label
387
- if (entityId && encryptionService?.isEnabled() && labelValue != null) {
388
- const rowOrgId = row.organization_id ?? organizationId ?? null
389
- const decrypted = await encryptionService.decryptEntityPayload(
390
- entityId,
391
- { [config.labelColumn]: labelValue },
392
- this.scope.tenantId,
393
- rowOrgId,
394
- )
395
- const resolved = decrypted[config.labelColumn]
396
- if (typeof resolved === 'string' || typeof resolved === 'number') {
397
- labelValue = String(resolved)
398
- }
399
- }
400
-
401
- if (labelValue && dek?.key && this.isEncryptedPayload(labelValue)) {
402
- const decrypted = this.decryptWithDek(labelValue, dek.key)
403
- if (decrypted !== null) {
404
- labelValue = decrypted
405
- }
406
- }
407
-
408
- if (row.id && labelValue != null && labelValue !== '') {
409
- labelMap.set(row.id, labelValue)
301
+ for (const row of labelRows as Array<{ id: string; label: string | null }>) {
302
+ if (row.id && row.label != null && row.label !== '') {
303
+ labelMap.set(row.id, row.label)
410
304
  }
411
305
  }
412
306
 
@@ -423,60 +317,6 @@ export class WidgetDataService {
423
317
  }))
424
318
  }
425
319
  }
426
-
427
- private resolveOrganizationId(): string | null {
428
- if (!this.scope.organizationIds || this.scope.organizationIds.length !== 1) return null
429
- return this.scope.organizationIds[0] ?? null
430
- }
431
-
432
- private resolveEntityMetadata(tableName: string): Record<string, any> | null {
433
- const registry = (this.em as any)?.getMetadata?.()
434
- if (!registry) return null
435
- const entries =
436
- (typeof registry.getAll === 'function' && registry.getAll()) ||
437
- (Array.isArray(registry.metadata) ? registry.metadata : Object.values(registry.metadata ?? {}))
438
- const metas = Array.isArray(entries) ? entries : Object.values(entries ?? {})
439
- const match = metas.find((meta: any) => {
440
- const table = meta?.tableName ?? meta?.collection
441
- if (typeof table !== 'string') return false
442
- if (table === tableName) return true
443
- return table.split('.').pop() === tableName
444
- })
445
- return match ?? null
446
- }
447
-
448
- private resolveEntityPropertyName(meta: Record<string, any>, columnName: string): string | null {
449
- const properties = meta?.properties ? Object.values(meta.properties) : []
450
- for (const prop of properties as Array<Record<string, any>>) {
451
- const fieldName = prop?.fieldName
452
- const fieldNames = prop?.fieldNames
453
- if (typeof fieldName === 'string' && fieldName === columnName) return prop?.name ?? null
454
- if (Array.isArray(fieldNames) && fieldNames.includes(columnName)) return prop?.name ?? null
455
- if (prop?.name === columnName) return prop?.name ?? null
456
- }
457
- return null
458
- }
459
-
460
- private resolveEntityId(meta: Record<string, any> | null): string | null {
461
- if (!meta) return null
462
- try {
463
- return resolveEntityIdFromMetadata(meta as any)
464
- } catch {
465
- return null
466
- }
467
- }
468
-
469
- private isEncryptedPayload(value: string): boolean {
470
- const parts = value.split(':')
471
- return parts.length === 4 && parts[3] === 'v1'
472
- }
473
-
474
- private decryptWithDek(value: string, dek: string): string | null {
475
- const first = decryptWithAesGcm(value, dek)
476
- if (first === null) return null
477
- if (!this.isEncryptedPayload(first)) return first
478
- return decryptWithAesGcm(first, dek) ?? first
479
- }
480
320
  }
481
321
 
482
322
  export function createWidgetDataService(
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import AovKpiWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type AovKpiSettings } from './config'
3
- const AovKpiWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<AovKpiSettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import NewCustomersKpiWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type NewCustomersKpiSettings } from './config'
3
- const NewCustomersKpiWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<NewCustomersKpiSettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import OrdersByStatusWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type OrdersByStatusSettings } from './config'
3
- const OrdersByStatusWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<OrdersByStatusSettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import OrdersKpiWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type OrdersKpiSettings } from './config'
3
- const OrdersKpiWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<OrdersKpiSettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import PipelineSummaryWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type PipelineSummarySettings } from './config'
3
- const PipelineSummaryWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<PipelineSummarySettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import RevenueKpiWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type RevenueKpiSettings } from './config'
3
- const RevenueKpiWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<RevenueKpiSettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import RevenueTrendWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type RevenueTrendSettings } from './config'
3
- const RevenueTrendWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<RevenueTrendSettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import SalesByRegionWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type SalesByRegionSettings } from './config'
3
- const SalesByRegionWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<SalesByRegionSettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import TopCustomersWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type TopCustomersSettings } from './config'
3
- const TopCustomersWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<TopCustomersSettings> = {
6
6
  metadata: {
@@ -1,6 +1,6 @@
1
- import { lazyDashboardWidget, type DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
1
+ import type { DashboardWidgetModule } from '@open-mercato/shared/modules/dashboard/widgets'
2
+ import TopProductsWidget from './widget.client'
2
3
  import { DEFAULT_SETTINGS, hydrateSettings, type TopProductsSettings } from './config'
3
- const TopProductsWidget = lazyDashboardWidget(() => import('./widget.client'))
4
4
 
5
5
  const widget: DashboardWidgetModule<TopProductsSettings> = {
6
6
  metadata: {
@@ -171,14 +171,12 @@ export function DictionaryTable({
171
171
  const items: RowActionItem[] = []
172
172
  if (onEdit) {
173
173
  items.push({
174
- id: 'edit',
175
174
  label: translations.editLabel,
176
175
  onSelect: () => onEdit(entry),
177
176
  })
178
177
  }
179
178
  if (onDelete) {
180
179
  items.push({
181
- id: 'delete',
182
180
  label: translations.deleteLabel,
183
181
  onSelect: () => onDelete(entry),
184
182
  destructive: true,
@@ -235,8 +235,8 @@ export default function DirectoryOrganizationsPage() {
235
235
  canManage ? (
236
236
  <RowActions
237
237
  items={[
238
- { id: 'edit', label: t('directory.organizations.list.actions.edit', 'Edit'), href: `/backend/directory/organizations/${row.id}/edit` },
239
- { id: 'delete', label: t('directory.organizations.list.actions.delete', 'Delete'), destructive: true, onSelect: () => handleDelete(row) },
238
+ { label: t('directory.organizations.list.actions.edit', 'Edit'), href: `/backend/directory/organizations/${row.id}/edit` },
239
+ { label: t('directory.organizations.list.actions.delete', 'Delete'), destructive: true, onSelect: () => handleDelete(row) },
240
240
  ]}
241
241
  />
242
242
  ) : null
@@ -160,8 +160,8 @@ export default function DirectoryTenantsPage() {
160
160
  canManage ? (
161
161
  <RowActions
162
162
  items={[
163
- { id: 'edit', label: t('common.edit', 'Edit'), href: `/backend/directory/tenants/${row.id}/edit` },
164
- { id: 'delete', label: t('common.delete', 'Delete'), destructive: true, onSelect: () => handleDelete(row) },
163
+ { label: t('common.edit', 'Edit'), href: `/backend/directory/tenants/${row.id}/edit` },
164
+ { label: t('common.delete', 'Delete'), destructive: true, onSelect: () => handleDelete(row) },
165
165
  ]}
166
166
  />
167
167
  ) : null
@@ -338,8 +338,8 @@ export RECORD_ID="<record uuid>"`}</code></pre>
338
338
  rowActions={(row) => (
339
339
  <RowActions
340
340
  items={[
341
- { id: 'edit', label: 'Edit', href: `/backend/entities/user/${encodeURIComponent(entityId)}/records/${encodeURIComponent(String((row as any).id))}` },
342
- { id: 'delete', label: 'Delete', destructive: true, onSelect: async () => {
341
+ { label: 'Edit', href: `/backend/entities/user/${encodeURIComponent(entityId)}/records/${encodeURIComponent(String((row as any).id))}` },
342
+ { label: 'Delete', destructive: true, onSelect: async () => {
343
343
  try {
344
344
  if (typeof window !== 'undefined') {
345
345
  const ok = window.confirm('Delete this record?')
@@ -88,7 +88,7 @@ export default function SystemEntitiesTable() {
88
88
  rowActions={(row) => (
89
89
  <RowActions
90
90
  items={[
91
- { id: 'edit', label: 'Edit', href: `/backend/entities/system/${encodeURIComponent(row.entityId)}` },
91
+ { label: 'Edit', href: `/backend/entities/system/${encodeURIComponent(row.entityId)}` },
92
92
  ]}
93
93
  />
94
94
  )}
@@ -110,8 +110,8 @@ export default function UserEntitiesTable() {
110
110
  rowActions={(row) => (
111
111
  <RowActions
112
112
  items={[
113
- { id: 'edit', label: t('common.edit', 'Edit'), href: `/backend/entities/user/${encodeURIComponent(row.entityId)}` },
114
- { id: 'show-records', label: t('entities.user.table.actions.showRecords', 'Show records'), href: `/backend/entities/user/${encodeURIComponent(row.entityId)}/records` },
113
+ { label: t('common.edit', 'Edit'), href: `/backend/entities/user/${encodeURIComponent(row.entityId)}` },
114
+ { label: t('entities.user.table.actions.showRecords', 'Show records'), href: `/backend/entities/user/${encodeURIComponent(row.entityId)}/records` },
115
115
  ]}
116
116
  />
117
117
  )}
@@ -205,11 +205,12 @@ export function FeatureTogglesTable() {
205
205
  }}
206
206
  rowActions={(row) => (
207
207
  <RowActions items={[
208
- { id: 'edit', label: t('common.edit', 'Edit'), href: `/backend/feature-toggles/global/${row.id}/edit` },
209
- { id: 'view', label: t('common.view', 'Overrides'), href: `/backend/feature-toggles/global/${row.id}` },
210
- { id: 'delete', label: t('common.delete', 'Delete'), destructive: true, onSelect: () => { void handleDelete(row) } },
208
+ { label: t('common.edit', 'Edit'), href: `/backend/feature-toggles/global/${row.id}/edit` },
209
+ { label: t('common.view', 'Overrides'), href: `/backend/feature-toggles/global/${row.id}` },
210
+ { label: t('common.delete', 'Delete'), destructive: true, onSelect: () => { void handleDelete(row) } },
211
211
  ]} />
212
212
  )}
213
213
  />
214
214
  )
215
215
  }
216
+
@@ -161,7 +161,7 @@ export default function OverridesTable() {
161
161
  }}
162
162
  rowActions={(row) => (
163
163
  <RowActions items={[
164
- { id: 'edit', label: t('common.edit', 'Edit'), href: `/backend/feature-toggles/global/${row.toggleId}` },
164
+ { label: t('common.edit', 'Edit'), href: `/backend/feature-toggles/global/${row.toggleId}` },
165
165
  ]} />
166
166
  )}
167
167
  error={error ? error.message : undefined}
@@ -202,8 +202,8 @@ export default function PlannerAvailabilityRuleSetsPage() {
202
202
  rowActions={(row) => (
203
203
  <RowActions
204
204
  items={[
205
- { id: 'edit', label: labels.actions.edit, href: `/backend/planner/availability-rulesets/${row.id}` },
206
- { id: 'delete', label: labels.actions.delete, destructive: true, onSelect: () => { void handleDelete(row) } },
205
+ { label: labels.actions.edit, href: `/backend/planner/availability-rulesets/${row.id}` },
206
+ { label: labels.actions.delete, destructive: true, onSelect: () => { void handleDelete(row) } },
207
207
  ]}
208
208
  />
209
209
  )}