@open-mercato/core 0.6.8-develop.7100.1.fbf66fca35 → 0.7.0

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 (967) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/helpers/integration/api.js +1 -13
  3. package/dist/helpers/integration/api.js.map +2 -2
  4. package/dist/helpers/integration/communicationChannelsFixtures.js +0 -19
  5. package/dist/helpers/integration/communicationChannelsFixtures.js.map +2 -2
  6. package/dist/modules/api_keys/api/keys/route.js +1 -1
  7. package/dist/modules/api_keys/api/keys/route.js.map +2 -2
  8. package/dist/modules/api_keys/backend/api-keys/page.js +1 -3
  9. package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
  10. package/dist/modules/attachments/api/route.js +2 -2
  11. package/dist/modules/attachments/api/route.js.map +2 -2
  12. package/dist/modules/attachments/components/AttachmentLibrary.js +0 -2
  13. package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
  14. package/dist/modules/attachments/di.js +1 -11
  15. package/dist/modules/attachments/di.js.map +2 -2
  16. package/dist/modules/attachments/index.js.map +1 -1
  17. package/dist/modules/attachments/lib/scoped-upload-service.js +2 -15
  18. package/dist/modules/attachments/lib/scoped-upload-service.js.map +2 -2
  19. package/dist/modules/attachments/lib/upload-limits.js +2 -6
  20. package/dist/modules/attachments/lib/upload-limits.js.map +2 -2
  21. package/dist/modules/audit_logs/backend/audit-logs/page.js +0 -6
  22. package/dist/modules/audit_logs/backend/audit-logs/page.js.map +2 -2
  23. package/dist/modules/audit_logs/lib/display-helpers.js +11 -19
  24. package/dist/modules/audit_logs/lib/display-helpers.js.map +2 -2
  25. package/dist/modules/audit_logs/services/actionLogService.js +12 -57
  26. package/dist/modules/audit_logs/services/actionLogService.js.map +3 -3
  27. package/dist/modules/auth/acl.js +5 -30
  28. package/dist/modules/auth/acl.js.map +2 -2
  29. package/dist/modules/auth/api/feature-check.js +2 -8
  30. package/dist/modules/auth/api/feature-check.js.map +2 -2
  31. package/dist/modules/auth/api/login.js +20 -4
  32. package/dist/modules/auth/api/login.js.map +2 -2
  33. package/dist/modules/auth/api/roles/acl/route.js +33 -28
  34. package/dist/modules/auth/api/roles/acl/route.js.map +2 -2
  35. package/dist/modules/auth/api/routeError.js +11 -0
  36. package/dist/modules/auth/api/routeError.js.map +7 -0
  37. package/dist/modules/auth/api/session/refresh.js +1 -25
  38. package/dist/modules/auth/api/session/refresh.js.map +2 -2
  39. package/dist/modules/auth/api/users/acl/route.js +73 -102
  40. package/dist/modules/auth/api/users/acl/route.js.map +2 -2
  41. package/dist/modules/auth/api/users/route.js +5 -13
  42. package/dist/modules/auth/api/users/route.js.map +2 -2
  43. package/dist/modules/auth/backend/roles/[id]/edit/page.meta.js +1 -5
  44. package/dist/modules/auth/backend/roles/[id]/edit/page.meta.js.map +2 -2
  45. package/dist/modules/auth/backend/roles/page.js +1 -3
  46. package/dist/modules/auth/backend/roles/page.js.map +2 -2
  47. package/dist/modules/auth/backend/users/[id]/edit/page.meta.js +1 -5
  48. package/dist/modules/auth/backend/users/[id]/edit/page.meta.js.map +2 -2
  49. package/dist/modules/auth/backend/users/page.js +1 -2
  50. package/dist/modules/auth/backend/users/page.js.map +2 -2
  51. package/dist/modules/auth/components/AclEditor.js +30 -39
  52. package/dist/modules/auth/components/AclEditor.js.map +2 -2
  53. package/dist/modules/auth/data/entities.js.map +2 -2
  54. package/dist/modules/auth/data/validators.js +1 -5
  55. package/dist/modules/auth/data/validators.js.map +2 -2
  56. package/dist/modules/auth/di.js +9 -35
  57. package/dist/modules/auth/di.js.map +2 -2
  58. package/dist/modules/auth/frontend/reset/[token]/page.js +0 -46
  59. package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
  60. package/dist/modules/auth/lib/grantChecks.js.map +2 -2
  61. package/dist/modules/auth/services/authService.js +2 -16
  62. package/dist/modules/auth/services/authService.js.map +2 -2
  63. package/dist/modules/auth/services/rbacService.js +24 -67
  64. package/dist/modules/auth/services/rbacService.js.map +3 -3
  65. package/dist/modules/business_rules/backend/logs/page.js +1 -3
  66. package/dist/modules/business_rules/backend/logs/page.js.map +2 -2
  67. package/dist/modules/business_rules/backend/rules/[id]/page.meta.js +6 -1
  68. package/dist/modules/business_rules/backend/rules/[id]/page.meta.js.map +2 -2
  69. package/dist/modules/business_rules/backend/rules/create/page.meta.js +5 -1
  70. package/dist/modules/business_rules/backend/rules/create/page.meta.js.map +2 -2
  71. package/dist/modules/business_rules/backend/rules/page.js +1 -3
  72. package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
  73. package/dist/modules/business_rules/backend/sets/[id]/page.meta.js +6 -1
  74. package/dist/modules/business_rules/backend/sets/[id]/page.meta.js.map +2 -2
  75. package/dist/modules/business_rules/backend/sets/create/page.meta.js +5 -1
  76. package/dist/modules/business_rules/backend/sets/create/page.meta.js.map +2 -2
  77. package/dist/modules/business_rules/backend/sets/page.js +1 -3
  78. package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
  79. package/dist/modules/business_rules/lib/expression-evaluator.js +9 -9
  80. package/dist/modules/business_rules/lib/expression-evaluator.js.map +2 -2
  81. package/dist/modules/business_rules/lib/rule-evaluator.js +9 -10
  82. package/dist/modules/business_rules/lib/rule-evaluator.js.map +2 -2
  83. package/dist/modules/catalog/ai-agents.js +1 -1
  84. package/dist/modules/catalog/ai-agents.js.map +1 -1
  85. package/dist/modules/catalog/ai-tools/merchandising-pack.js +2 -2
  86. package/dist/modules/catalog/ai-tools/merchandising-pack.js.map +2 -2
  87. package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js +2 -5
  88. package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js.map +2 -2
  89. package/dist/modules/catalog/components/categories/CategoriesDataTable.js +0 -2
  90. package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
  91. package/dist/modules/catalog/components/products/ProductsDataTable.js +1 -7
  92. package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
  93. package/dist/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.js +0 -2
  94. package/dist/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.js.map +2 -2
  95. package/dist/modules/communication_channels/api/post/channels/[id]/test-send/route.js +1 -9
  96. package/dist/modules/communication_channels/api/post/channels/[id]/test-send/route.js.map +2 -2
  97. package/dist/modules/communication_channels/api/post/test-seed/route.js +10 -95
  98. package/dist/modules/communication_channels/api/post/test-seed/route.js.map +2 -2
  99. package/dist/modules/communication_channels/backend/communication_channels/channels/page.js +0 -3
  100. package/dist/modules/communication_channels/backend/communication_channels/channels/page.js.map +2 -2
  101. package/dist/modules/communication_channels/commands/ingest-inbound-message.js +1 -14
  102. package/dist/modules/communication_channels/commands/ingest-inbound-message.js.map +2 -2
  103. package/dist/modules/communication_channels/di.js +1 -7
  104. package/dist/modules/communication_channels/di.js.map +2 -2
  105. package/dist/modules/communication_channels/lib/email-capabilities.js +1 -4
  106. package/dist/modules/communication_channels/lib/email-capabilities.js.map +2 -2
  107. package/dist/modules/communication_channels/lib/test-seed.js +2 -41
  108. package/dist/modules/communication_channels/lib/test-seed.js.map +2 -2
  109. package/dist/modules/configs/lib/system-status.js +0 -9
  110. package/dist/modules/configs/lib/system-status.js.map +2 -2
  111. package/dist/modules/currencies/backend/currencies/page.js +1 -3
  112. package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
  113. package/dist/modules/currencies/backend/exchange-rates/page.js +1 -3
  114. package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
  115. package/dist/modules/customer_accounts/api/admin/domain-mappings.js +0 -9
  116. package/dist/modules/customer_accounts/api/admin/domain-mappings.js.map +2 -2
  117. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +1 -3
  118. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +2 -2
  119. package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js +84 -0
  120. package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js.map +7 -0
  121. package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js +7 -81
  122. package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js.map +2 -2
  123. package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js +523 -0
  124. package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js.map +7 -0
  125. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js +731 -0
  126. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js.map +7 -0
  127. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +7 -727
  128. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
  129. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +7 -521
  130. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
  131. package/dist/modules/customer_accounts/extension-points.js +1 -1
  132. package/dist/modules/customer_accounts/extension-points.js.map +2 -2
  133. package/dist/modules/customer_accounts/lib/portalUrl.js +69 -0
  134. package/dist/modules/customer_accounts/lib/portalUrl.js.map +7 -0
  135. package/dist/modules/customer_accounts/services/domainMappingService.js +0 -10
  136. package/dist/modules/customer_accounts/services/domainMappingService.js.map +2 -2
  137. package/dist/modules/customers/ai-tools/companies-pack.js +1 -4
  138. package/dist/modules/customers/ai-tools/companies-pack.js.map +2 -2
  139. package/dist/modules/customers/ai-tools/deal-analyzer-pack.js +2 -13
  140. package/dist/modules/customers/ai-tools/deal-analyzer-pack.js.map +2 -2
  141. package/dist/modules/customers/ai-tools/deals-pack.js +6 -52
  142. package/dist/modules/customers/ai-tools/deals-pack.js.map +2 -2
  143. package/dist/modules/customers/ai-tools/people-pack.js +1 -4
  144. package/dist/modules/customers/ai-tools/people-pack.js.map +2 -2
  145. package/dist/modules/customers/api/activities/route.js +6 -48
  146. package/dist/modules/customers/api/activities/route.js.map +2 -2
  147. package/dist/modules/customers/api/companies/[id]/people/route.js +64 -20
  148. package/dist/modules/customers/api/companies/[id]/people/route.js.map +2 -2
  149. package/dist/modules/customers/api/companies/[id]/route.js +94 -17
  150. package/dist/modules/customers/api/companies/[id]/route.js.map +2 -2
  151. package/dist/modules/customers/api/dashboard/widgets/customer-todos/route.js +5 -8
  152. package/dist/modules/customers/api/dashboard/widgets/customer-todos/route.js.map +2 -2
  153. package/dist/modules/customers/api/deals/[id]/companies/route.js +1 -1
  154. package/dist/modules/customers/api/deals/[id]/companies/route.js.map +2 -2
  155. package/dist/modules/customers/api/deals/[id]/people/route.js +1 -1
  156. package/dist/modules/customers/api/deals/[id]/people/route.js.map +2 -2
  157. package/dist/modules/customers/api/deals/[id]/route.js +25 -8
  158. package/dist/modules/customers/api/deals/[id]/route.js.map +2 -2
  159. package/dist/modules/customers/api/deals/[id]/stats/route.js +22 -3
  160. package/dist/modules/customers/api/deals/[id]/stats/route.js.map +2 -2
  161. package/dist/modules/customers/api/deals/aggregate/route.js +4 -11
  162. package/dist/modules/customers/api/deals/aggregate/route.js.map +2 -2
  163. package/dist/modules/customers/api/deals/map/route.js +1 -2
  164. package/dist/modules/customers/api/deals/map/route.js.map +2 -2
  165. package/dist/modules/customers/api/deals/route.js +1 -38
  166. package/dist/modules/customers/api/deals/route.js.map +2 -2
  167. package/dist/modules/customers/api/entity-roles-factory.js +4 -4
  168. package/dist/modules/customers/api/entity-roles-factory.js.map +2 -2
  169. package/dist/modules/customers/api/interactions/route.js +1 -3
  170. package/dist/modules/customers/api/interactions/route.js.map +2 -2
  171. package/dist/modules/customers/api/interactions/tasks/route.js +4 -27
  172. package/dist/modules/customers/api/interactions/tasks/route.js.map +2 -2
  173. package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js +3 -4
  174. package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js.map +2 -2
  175. package/dist/modules/customers/api/people/[id]/companies/context.js +1 -1
  176. package/dist/modules/customers/api/people/[id]/companies/context.js.map +2 -2
  177. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js +1 -1
  178. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js.map +2 -2
  179. package/dist/modules/customers/api/people/[id]/route.js +10 -11
  180. package/dist/modules/customers/api/people/[id]/route.js.map +2 -2
  181. package/dist/modules/customers/api/people/check-phone/route.js +9 -51
  182. package/dist/modules/customers/api/people/check-phone/route.js.map +2 -2
  183. package/dist/modules/customers/api/todos/route.js +5 -30
  184. package/dist/modules/customers/api/todos/route.js.map +2 -2
  185. package/dist/modules/customers/backend/customers/companies/page.js +4 -6
  186. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  187. package/dist/modules/customers/backend/customers/deals/[id]/page.js +1 -6
  188. package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +2 -2
  189. package/dist/modules/customers/backend/customers/deals/page.js +4 -7
  190. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  191. package/dist/modules/customers/backend/customers/deals/pipeline/components/Lane.js +13 -4
  192. package/dist/modules/customers/backend/customers/deals/pipeline/components/Lane.js.map +2 -2
  193. package/dist/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.js +14 -85
  194. package/dist/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.js.map +2 -2
  195. package/dist/modules/customers/backend/customers/people/page.js +4 -6
  196. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  197. package/dist/modules/customers/backend/hooks/useEmailDuplicateCheck.js +3 -9
  198. package/dist/modules/customers/backend/hooks/useEmailDuplicateCheck.js.map +2 -2
  199. package/dist/modules/customers/commands/deals.js +34 -21
  200. package/dist/modules/customers/commands/deals.js.map +2 -2
  201. package/dist/modules/customers/commands/interactions.js.map +1 -1
  202. package/dist/modules/customers/commands/personCompanyLinks.js +2 -131
  203. package/dist/modules/customers/commands/personCompanyLinks.js.map +2 -2
  204. package/dist/modules/customers/components/CustomerTodosTable.js +0 -1
  205. package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
  206. package/dist/modules/customers/components/DealsKpiStrip.js +6 -7
  207. package/dist/modules/customers/components/DealsKpiStrip.js.map +2 -2
  208. package/dist/modules/customers/components/calendar/AgendaList.js +2 -2
  209. package/dist/modules/customers/components/calendar/AgendaList.js.map +2 -2
  210. package/dist/modules/customers/components/calendar/CalendarEventEditor.js +1 -1
  211. package/dist/modules/customers/components/calendar/CalendarEventEditor.js.map +2 -2
  212. package/dist/modules/customers/components/calendar/CalendarScreen.js +1 -1
  213. package/dist/modules/customers/components/calendar/CalendarScreen.js.map +2 -2
  214. package/dist/modules/customers/components/calendar/CalendarSettingsModal.js +1 -1
  215. package/dist/modules/customers/components/calendar/CalendarSettingsModal.js.map +2 -2
  216. package/dist/modules/customers/components/calendar/EventBlock.js +1 -1
  217. package/dist/modules/customers/components/calendar/EventBlock.js.map +2 -2
  218. package/dist/modules/customers/components/calendar/EventPeekPopover.js +2 -3
  219. package/dist/modules/customers/components/calendar/EventPeekPopover.js.map +2 -2
  220. package/dist/modules/customers/components/calendar/editor/PeopleField.js +5 -40
  221. package/dist/modules/customers/components/calendar/editor/PeopleField.js.map +2 -2
  222. package/dist/modules/customers/components/calendar/editor/hooks.js +1 -2
  223. package/dist/modules/customers/components/calendar/editor/hooks.js.map +2 -2
  224. package/dist/modules/customers/components/calendar/types.js +1 -1
  225. package/dist/modules/customers/components/calendar/types.js.map +2 -2
  226. package/dist/modules/customers/components/detail/AssignRoleDialog.js +33 -28
  227. package/dist/modules/customers/components/detail/AssignRoleDialog.js.map +2 -2
  228. package/dist/modules/customers/components/detail/CompanyKpiBar.js +4 -5
  229. package/dist/modules/customers/components/detail/CompanyKpiBar.js.map +2 -2
  230. package/dist/modules/customers/components/detail/CompanyPeopleSection.js +1 -3
  231. package/dist/modules/customers/components/detail/CompanyPeopleSection.js.map +2 -2
  232. package/dist/modules/customers/components/detail/DealForm.js +7 -19
  233. package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
  234. package/dist/modules/customers/components/detail/DealsSection.js +5 -6
  235. package/dist/modules/customers/components/detail/DealsSection.js.map +2 -2
  236. package/dist/modules/customers/components/detail/EntityTagsDialog.js +11 -35
  237. package/dist/modules/customers/components/detail/EntityTagsDialog.js.map +2 -2
  238. package/dist/modules/customers/components/detail/PersonCompaniesSection.js +1 -3
  239. package/dist/modules/customers/components/detail/PersonCompaniesSection.js.map +2 -2
  240. package/dist/modules/customers/components/detail/hooks/usePersonTasks.js +13 -19
  241. package/dist/modules/customers/components/detail/hooks/usePersonTasks.js.map +2 -2
  242. package/dist/modules/customers/components/detail/schedule/ParticipantsField.js +4 -4
  243. package/dist/modules/customers/components/detail/schedule/ParticipantsField.js.map +2 -2
  244. package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js +3 -3
  245. package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js.map +2 -2
  246. package/dist/modules/customers/components/detail/utils.js +5 -5
  247. package/dist/modules/customers/components/detail/utils.js.map +2 -2
  248. package/dist/modules/customers/data/entities.js.map +1 -1
  249. package/dist/modules/customers/data/validators.js +3 -32
  250. package/dist/modules/customers/data/validators.js.map +2 -2
  251. package/dist/modules/customers/events.js +0 -5
  252. package/dist/modules/customers/events.js.map +2 -2
  253. package/dist/modules/customers/lib/calendar/conflicts.js +2 -8
  254. package/dist/modules/customers/lib/calendar/conflicts.js.map +2 -2
  255. package/dist/modules/customers/lib/calendar/editorPayload.js +2 -3
  256. package/dist/modules/customers/lib/calendar/editorPayload.js.map +2 -2
  257. package/dist/modules/customers/lib/calendar/mapItem.js +3 -8
  258. package/dist/modules/customers/lib/calendar/mapItem.js.map +2 -2
  259. package/dist/modules/customers/lib/dealStatus.js +0 -30
  260. package/dist/modules/customers/lib/dealStatus.js.map +2 -2
  261. package/dist/modules/customers/lib/findPeopleByAddresses.js +0 -1
  262. package/dist/modules/customers/lib/findPeopleByAddresses.js.map +2 -2
  263. package/dist/modules/customers/lib/personCompanies.js +2 -100
  264. package/dist/modules/customers/lib/personCompanies.js.map +2 -2
  265. package/dist/modules/customers/lib/todoCompatibility.js +0 -12
  266. package/dist/modules/customers/lib/todoCompatibility.js.map +2 -2
  267. package/dist/modules/dashboards/lib/widgetScope.js +1 -6
  268. package/dist/modules/dashboards/lib/widgetScope.js.map +2 -2
  269. package/dist/modules/data_sync/backend/data-sync/page.js +1 -3
  270. package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
  271. package/dist/modules/data_sync/lib/sync-engine.js +6 -72
  272. package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
  273. package/dist/modules/data_sync/workers/sync-export.js +1 -5
  274. package/dist/modules/data_sync/workers/sync-export.js.map +2 -2
  275. package/dist/modules/data_sync/workers/sync-import.js +1 -5
  276. package/dist/modules/data_sync/workers/sync-import.js.map +2 -2
  277. package/dist/modules/devices/acl.js +1 -9
  278. package/dist/modules/devices/acl.js.map +2 -2
  279. package/dist/modules/devices/api/admin/devices/[id]/route.js +32 -5
  280. package/dist/modules/devices/api/admin/devices/[id]/route.js.map +2 -2
  281. package/dist/modules/devices/api/admin/devices/route.js +1 -14
  282. package/dist/modules/devices/api/admin/devices/route.js.map +2 -2
  283. package/dist/modules/devices/api/deviceList.js +12 -99
  284. package/dist/modules/devices/api/deviceList.js.map +2 -2
  285. package/dist/modules/devices/api/openapi.js +1 -3
  286. package/dist/modules/devices/api/openapi.js.map +2 -2
  287. package/dist/modules/devices/api/route.js +1 -9
  288. package/dist/modules/devices/api/route.js.map +2 -2
  289. package/dist/modules/devices/backend/devices/[id]/page.js +26 -10
  290. package/dist/modules/devices/backend/devices/[id]/page.js.map +2 -2
  291. package/dist/modules/devices/backend/devices/create/page.js +1 -17
  292. package/dist/modules/devices/backend/devices/create/page.js.map +2 -2
  293. package/dist/modules/devices/backend/devices/page.js +34 -28
  294. package/dist/modules/devices/backend/devices/page.js.map +2 -2
  295. package/dist/modules/devices/setup.js +2 -6
  296. package/dist/modules/devices/setup.js.map +2 -2
  297. package/dist/modules/directory/backend/directory/organizations/page.js +1 -2
  298. package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
  299. package/dist/modules/directory/backend/directory/tenants/page.js +1 -2
  300. package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
  301. package/dist/modules/directory/di.js +0 -9
  302. package/dist/modules/directory/di.js.map +2 -2
  303. package/dist/modules/directory/utils/organizationScope.js.map +2 -2
  304. package/dist/modules/entities/api/records.js +2 -4
  305. package/dist/modules/entities/api/records.js.map +2 -2
  306. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +1 -3
  307. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
  308. package/dist/modules/eudr/api/plots/route.js +1 -5
  309. package/dist/modules/eudr/api/plots/route.js.map +2 -2
  310. package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js +3 -1
  311. package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js.map +2 -2
  312. package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js +1 -0
  313. package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js.map +2 -2
  314. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.js +0 -3
  315. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.js.map +2 -2
  316. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js +4 -1
  317. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js.map +2 -2
  318. package/dist/modules/eudr/backend/eudr/page.meta.js +2 -2
  319. package/dist/modules/eudr/backend/eudr/page.meta.js.map +2 -2
  320. package/dist/modules/eudr/backend/eudr/plots/[id]/page.js +8 -2
  321. package/dist/modules/eudr/backend/eudr/plots/[id]/page.js.map +2 -2
  322. package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js +3 -1
  323. package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js.map +2 -2
  324. package/dist/modules/eudr/backend/eudr/plots/create/page.js +8 -2
  325. package/dist/modules/eudr/backend/eudr/plots/create/page.js.map +2 -2
  326. package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js +1 -0
  327. package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js.map +2 -2
  328. package/dist/modules/eudr/backend/eudr/plots/page.js +0 -3
  329. package/dist/modules/eudr/backend/eudr/plots/page.js.map +2 -2
  330. package/dist/modules/eudr/backend/eudr/plots/page.meta.js +4 -1
  331. package/dist/modules/eudr/backend/eudr/plots/page.meta.js.map +2 -2
  332. package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js +3 -1
  333. package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js.map +2 -2
  334. package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js +1 -0
  335. package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js.map +2 -2
  336. package/dist/modules/eudr/backend/eudr/product-mappings/page.js +0 -3
  337. package/dist/modules/eudr/backend/eudr/product-mappings/page.js.map +2 -2
  338. package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js +4 -1
  339. package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js.map +2 -2
  340. package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js +3 -1
  341. package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js.map +2 -2
  342. package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js +1 -0
  343. package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js.map +2 -2
  344. package/dist/modules/eudr/backend/eudr/risk-assessments/page.js +0 -3
  345. package/dist/modules/eudr/backend/eudr/risk-assessments/page.js.map +2 -2
  346. package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js +4 -1
  347. package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js.map +2 -2
  348. package/dist/modules/eudr/backend/eudr/statements/[id]/page.js +2 -0
  349. package/dist/modules/eudr/backend/eudr/statements/[id]/page.js.map +2 -2
  350. package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js +3 -1
  351. package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js.map +2 -2
  352. package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js +1 -0
  353. package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js.map +2 -2
  354. package/dist/modules/eudr/backend/eudr/statements/page.js +30 -28
  355. package/dist/modules/eudr/backend/eudr/statements/page.js.map +2 -2
  356. package/dist/modules/eudr/backend/eudr/statements/page.meta.js +4 -1
  357. package/dist/modules/eudr/backend/eudr/statements/page.meta.js.map +2 -2
  358. package/dist/modules/eudr/commands/statements.js +8 -3
  359. package/dist/modules/eudr/commands/statements.js.map +2 -2
  360. package/dist/modules/eudr/components/crudErrorI18n.js +21 -1
  361. package/dist/modules/eudr/components/crudErrorI18n.js.map +2 -2
  362. package/dist/modules/eudr/components/formConfig.js +6 -2
  363. package/dist/modules/eudr/components/formConfig.js.map +2 -2
  364. package/dist/modules/eudr/data/validators.js +1 -4
  365. package/dist/modules/eudr/data/validators.js.map +2 -2
  366. package/dist/modules/eudr/lib/statement-lifecycle.js +9 -1
  367. package/dist/modules/eudr/lib/statement-lifecycle.js.map +2 -2
  368. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +0 -1
  369. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
  370. package/dist/modules/feature_toggles/components/OverridesTable.js +0 -1
  371. package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
  372. package/dist/modules/feature_toggles/defaults.json +8 -0
  373. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js +0 -3
  374. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js.map +2 -2
  375. package/dist/modules/inbox_ops/backend/inbox-ops/page.js +0 -3
  376. package/dist/modules/inbox_ops/backend/inbox-ops/page.js.map +2 -2
  377. package/dist/modules/inbox_ops/lib/htmlToPlainText.js +12 -1
  378. package/dist/modules/inbox_ops/lib/htmlToPlainText.js.map +2 -2
  379. package/dist/modules/integrations/api/[id]/credentials/route.js +1 -6
  380. package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
  381. package/dist/modules/integrations/backend/integrations/[id]/page.js +29 -38
  382. package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
  383. package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js +9 -36
  384. package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js.map +2 -2
  385. package/dist/modules/integrations/data/validators.js +3 -11
  386. package/dist/modules/integrations/data/validators.js.map +2 -2
  387. package/dist/modules/integrations/lib/credentials-masking.js +2 -6
  388. package/dist/modules/integrations/lib/credentials-masking.js.map +2 -2
  389. package/dist/modules/messages/api/[id]/route.js +1 -29
  390. package/dist/modules/messages/api/[id]/route.js.map +2 -2
  391. package/dist/modules/messages/api/openapi.js +2 -17
  392. package/dist/modules/messages/api/openapi.js.map +2 -2
  393. package/dist/modules/messages/api/route.js +2 -17
  394. package/dist/modules/messages/api/route.js.map +2 -2
  395. package/dist/modules/messages/components/MessagesInboxPageClient.js +14 -7
  396. package/dist/modules/messages/components/MessagesInboxPageClient.js.map +2 -2
  397. package/dist/modules/messages/components/inboxFilters.js +0 -15
  398. package/dist/modules/messages/components/inboxFilters.js.map +2 -2
  399. package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js +1 -11
  400. package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js.map +2 -2
  401. package/dist/modules/messages/components/message-detail/panels/MessageHeader.js +1 -3
  402. package/dist/modules/messages/components/message-detail/panels/MessageHeader.js.map +2 -2
  403. package/dist/modules/messages/components/message-detail/panels/thread-panel.js +1 -2
  404. package/dist/modules/messages/components/message-detail/panels/thread-panel.js.map +2 -2
  405. package/dist/modules/messages/components/messageListLabels.js +2 -14
  406. package/dist/modules/messages/components/messageListLabels.js.map +2 -2
  407. package/dist/modules/messages/data/validators.js +4 -18
  408. package/dist/modules/messages/data/validators.js.map +2 -2
  409. package/dist/modules/payment_gateways/api/webhook/[provider]/route.js +6 -4
  410. package/dist/modules/payment_gateways/api/webhook/[provider]/route.js.map +2 -2
  411. package/dist/modules/payment_gateways/backend/payment-gateways/page.js +1 -3
  412. package/dist/modules/payment_gateways/backend/payment-gateways/page.js.map +2 -2
  413. package/dist/modules/payment_gateways/lib/webhook-processor.js +0 -7
  414. package/dist/modules/payment_gateways/lib/webhook-processor.js.map +2 -2
  415. package/dist/modules/planner/backend/planner/availability-rulesets/page.js +0 -3
  416. package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
  417. package/dist/modules/push_notifications/backend/push_notifications/page.js +1 -3
  418. package/dist/modules/push_notifications/backend/push_notifications/page.js.map +2 -2
  419. package/dist/modules/push_notifications/backend/push_notifications/send/page.js +1 -1
  420. package/dist/modules/push_notifications/backend/push_notifications/send/page.js.map +2 -2
  421. package/dist/modules/query_index/lib/engine.js +51 -150
  422. package/dist/modules/query_index/lib/engine.js.map +2 -2
  423. package/dist/modules/query_index/lib/search-tokens.js +3 -79
  424. package/dist/modules/query_index/lib/search-tokens.js.map +2 -2
  425. package/dist/modules/resources/backend/resources/resource-types/page.js +1 -3
  426. package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
  427. package/dist/modules/resources/backend/resources/resources/page.js +1 -3
  428. package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
  429. package/dist/modules/sales/backend/sales/channels/offers/page.js +0 -3
  430. package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
  431. package/dist/modules/sales/backend/sales/channels/page.js +0 -3
  432. package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
  433. package/dist/modules/sales/backend/sales/documents/[id]/page.js +8 -10
  434. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  435. package/dist/modules/sales/commands/documents.js +1 -79
  436. package/dist/modules/sales/commands/documents.js.map +2 -2
  437. package/dist/modules/sales/components/PriceWithCurrency.js +5 -7
  438. package/dist/modules/sales/components/PriceWithCurrency.js.map +2 -2
  439. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +0 -3
  440. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
  441. package/dist/modules/sales/components/documents/AdjustmentsSection.js +6 -8
  442. package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
  443. package/dist/modules/sales/components/documents/ItemsSection.js +22 -51
  444. package/dist/modules/sales/components/documents/ItemsSection.js.map +2 -2
  445. package/dist/modules/sales/components/documents/LineItemDialog.js +19 -84
  446. package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
  447. package/dist/modules/sales/components/documents/PaymentsSection.js +9 -23
  448. package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
  449. package/dist/modules/sales/components/documents/ReturnsSection.js +6 -8
  450. package/dist/modules/sales/components/documents/ReturnsSection.js.map +2 -2
  451. package/dist/modules/sales/components/documents/SalesDocumentsTable.js +14 -68
  452. package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
  453. package/dist/modules/sales/components/documents/SalesOrderDraftLines.js +5 -6
  454. package/dist/modules/sales/components/documents/SalesOrderDraftLines.js.map +2 -2
  455. package/dist/modules/sales/components/documents/ShipmentDialog.js +4 -5
  456. package/dist/modules/sales/components/documents/ShipmentDialog.js.map +2 -2
  457. package/dist/modules/sales/components/documents/ShipmentsSection.js +6 -8
  458. package/dist/modules/sales/components/documents/ShipmentsSection.js.map +2 -2
  459. package/dist/modules/sales/components/documents/lineItemUtils.js +2 -2
  460. package/dist/modules/sales/components/documents/lineItemUtils.js.map +2 -2
  461. package/dist/modules/sales/data/entities.js +2 -8
  462. package/dist/modules/sales/data/entities.js.map +2 -2
  463. package/dist/modules/sales/extension-points.js +0 -1
  464. package/dist/modules/sales/extension-points.js.map +2 -2
  465. package/dist/modules/sales/setup.js +0 -2
  466. package/dist/modules/sales/setup.js.map +2 -2
  467. package/dist/modules/sales/widgets/injection/document-history/widget.client.js +44 -2
  468. package/dist/modules/sales/widgets/injection/document-history/widget.client.js.map +2 -2
  469. package/dist/modules/sales/widgets/injection/payment-gateway-status-column/widget.js +2 -10
  470. package/dist/modules/sales/widgets/injection/payment-gateway-status-column/widget.js.map +2 -2
  471. package/dist/modules/sales/widgets/injection-table.js +7 -4
  472. package/dist/modules/sales/widgets/injection-table.js.map +2 -2
  473. package/dist/modules/staff/backend/staff/leave-requests/page.js +0 -3
  474. package/dist/modules/staff/backend/staff/leave-requests/page.js.map +2 -2
  475. package/dist/modules/staff/backend/staff/my-leave-requests/page.js +0 -3
  476. package/dist/modules/staff/backend/staff/my-leave-requests/page.js.map +2 -2
  477. package/dist/modules/staff/backend/staff/team-members/page.js +0 -3
  478. package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
  479. package/dist/modules/staff/backend/staff/team-roles/page.js +0 -3
  480. package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
  481. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +0 -3
  482. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
  483. package/dist/modules/staff/backend/staff/teams/page.js +0 -3
  484. package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
  485. package/dist/modules/staff/backend/staff/timesheets/page.js +18 -29
  486. package/dist/modules/staff/backend/staff/timesheets/page.js.map +2 -2
  487. package/dist/modules/staff/backend/staff/timesheets/projects/page.js +0 -3
  488. package/dist/modules/staff/backend/staff/timesheets/projects/page.js.map +2 -2
  489. package/dist/modules/sync_excel/lib/adapters/customers.js +0 -1
  490. package/dist/modules/sync_excel/lib/adapters/customers.js.map +2 -2
  491. package/dist/modules/warranty_claims/api/assignees/route.js +3 -3
  492. package/dist/modules/warranty_claims/api/assignees/route.js.map +2 -2
  493. package/dist/modules/warranty_claims/api/portal/attachments/route.js +2 -2
  494. package/dist/modules/warranty_claims/api/portal/attachments/route.js.map +2 -2
  495. package/dist/modules/warranty_claims/api/portal/claims/route.js +9 -12
  496. package/dist/modules/warranty_claims/api/portal/claims/route.js.map +2 -2
  497. package/dist/modules/warranty_claims/backend/page.js +0 -3
  498. package/dist/modules/warranty_claims/backend/page.js.map +2 -2
  499. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js +0 -3
  500. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js.map +2 -2
  501. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js +0 -3
  502. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js.map +2 -2
  503. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js +0 -3
  504. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js.map +2 -2
  505. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js +0 -3
  506. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js.map +2 -2
  507. package/dist/modules/wms/api/warehouses/route.js +9 -13
  508. package/dist/modules/wms/api/warehouses/route.js.map +2 -2
  509. package/dist/modules/wms/api/zones/route.js +2 -15
  510. package/dist/modules/wms/api/zones/route.js.map +2 -2
  511. package/dist/modules/wms/commands/configuration.js +9 -121
  512. package/dist/modules/wms/commands/configuration.js.map +2 -2
  513. package/dist/modules/wms/commands/inventory-actions.js +0 -3
  514. package/dist/modules/wms/commands/inventory-actions.js.map +2 -2
  515. package/dist/modules/wms/commands/shared.js +1 -9
  516. package/dist/modules/wms/commands/shared.js.map +2 -2
  517. package/dist/modules/wms/components/backend/WmsConfigurationPage.js +111 -76
  518. package/dist/modules/wms/components/backend/WmsConfigurationPage.js.map +3 -3
  519. package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js +0 -1
  520. package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js.map +2 -2
  521. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +20 -16
  522. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
  523. package/dist/modules/wms/components/backend/WmsLotDetailPage.js +10 -6
  524. package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
  525. package/dist/modules/wms/components/backend/WmsLotsListPage.js +0 -1
  526. package/dist/modules/wms/components/backend/WmsLotsListPage.js.map +2 -2
  527. package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js +11 -7
  528. package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js.map +2 -2
  529. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +10 -6
  530. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
  531. package/dist/modules/wms/components/backend/inventoryMutationLoaders.js +20 -27
  532. package/dist/modules/wms/components/backend/inventoryMutationLoaders.js.map +2 -2
  533. package/dist/modules/workflows/backend/definitions/page.js +1 -3
  534. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  535. package/dist/modules/workflows/backend/events/page.js +1 -3
  536. package/dist/modules/workflows/backend/events/page.js.map +2 -2
  537. package/dist/modules/workflows/backend/instances/page.js +1 -3
  538. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  539. package/dist/modules/workflows/backend/tasks/page.js +1 -3
  540. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  541. package/dist/modules/workflows/lib/activity-executor.js +0 -4
  542. package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
  543. package/package.json +10 -9
  544. package/src/helpers/integration/api.ts +1 -33
  545. package/src/helpers/integration/communicationChannelsFixtures.ts +1 -69
  546. package/src/modules/api_keys/api/keys/route.ts +1 -3
  547. package/src/modules/api_keys/backend/api-keys/page.tsx +1 -4
  548. package/src/modules/attachments/AGENTS.md +0 -15
  549. package/src/modules/attachments/api/route.ts +2 -2
  550. package/src/modules/attachments/components/AttachmentLibrary.tsx +0 -3
  551. package/src/modules/attachments/di.ts +0 -16
  552. package/src/modules/attachments/i18n/de.json +0 -5
  553. package/src/modules/attachments/i18n/en.json +0 -5
  554. package/src/modules/attachments/i18n/es.json +0 -5
  555. package/src/modules/attachments/i18n/ko.json +0 -5
  556. package/src/modules/attachments/i18n/pl.json +0 -5
  557. package/src/modules/attachments/index.ts +0 -10
  558. package/src/modules/attachments/lib/scoped-upload-service.ts +0 -46
  559. package/src/modules/attachments/lib/upload-limits.ts +2 -6
  560. package/src/modules/audit_logs/backend/audit-logs/page.tsx +0 -8
  561. package/src/modules/audit_logs/lib/display-helpers.tsx +32 -42
  562. package/src/modules/audit_logs/services/actionLogService.ts +11 -74
  563. package/src/modules/auth/acl.ts +6 -30
  564. package/src/modules/auth/api/feature-check.ts +3 -10
  565. package/src/modules/auth/api/login.ts +24 -9
  566. package/src/modules/auth/api/roles/acl/route.ts +39 -42
  567. package/src/modules/auth/api/routeError.ts +30 -0
  568. package/src/modules/auth/api/session/refresh.ts +1 -32
  569. package/src/modules/auth/api/users/acl/route.ts +101 -185
  570. package/src/modules/auth/api/users/route.ts +5 -18
  571. package/src/modules/auth/backend/roles/[id]/edit/page.meta.ts +2 -5
  572. package/src/modules/auth/backend/roles/page.tsx +2 -4
  573. package/src/modules/auth/backend/users/[id]/edit/page.meta.ts +2 -5
  574. package/src/modules/auth/backend/users/page.tsx +2 -3
  575. package/src/modules/auth/components/AclEditor.tsx +33 -63
  576. package/src/modules/auth/data/entities.ts +1 -4
  577. package/src/modules/auth/data/validators.ts +0 -5
  578. package/src/modules/auth/di.ts +16 -46
  579. package/src/modules/auth/frontend/reset/[token]/page.tsx +0 -74
  580. package/src/modules/auth/i18n/de.json +0 -389
  581. package/src/modules/auth/i18n/en.json +0 -389
  582. package/src/modules/auth/i18n/es.json +0 -389
  583. package/src/modules/auth/i18n/ko.json +0 -389
  584. package/src/modules/auth/i18n/pl.json +2 -391
  585. package/src/modules/auth/lib/grantChecks.ts +0 -6
  586. package/src/modules/auth/services/authService.ts +2 -18
  587. package/src/modules/auth/services/rbacService.ts +24 -110
  588. package/src/modules/business_rules/backend/logs/page.tsx +1 -4
  589. package/src/modules/business_rules/backend/rules/[id]/page.meta.ts +5 -0
  590. package/src/modules/business_rules/backend/rules/create/page.meta.ts +5 -1
  591. package/src/modules/business_rules/backend/rules/page.tsx +1 -4
  592. package/src/modules/business_rules/backend/sets/[id]/page.meta.ts +5 -0
  593. package/src/modules/business_rules/backend/sets/create/page.meta.ts +5 -1
  594. package/src/modules/business_rules/backend/sets/page.tsx +1 -4
  595. package/src/modules/business_rules/lib/expression-evaluator.ts +9 -9
  596. package/src/modules/business_rules/lib/rule-evaluator.ts +9 -10
  597. package/src/modules/catalog/ai-agents.ts +1 -1
  598. package/src/modules/catalog/ai-tools/merchandising-pack.ts +2 -2
  599. package/src/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.tsx +5 -12
  600. package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +0 -3
  601. package/src/modules/catalog/components/products/ProductsDataTable.tsx +0 -7
  602. package/src/modules/catalog/i18n/de.json +0 -1
  603. package/src/modules/catalog/i18n/en.json +0 -1
  604. package/src/modules/catalog/i18n/es.json +0 -1
  605. package/src/modules/catalog/i18n/ko.json +0 -1
  606. package/src/modules/catalog/i18n/pl.json +0 -1
  607. package/src/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.tsx +0 -4
  608. package/src/modules/communication_channels/api/post/channels/[id]/test-send/route.ts +1 -17
  609. package/src/modules/communication_channels/api/post/test-seed/route.ts +16 -155
  610. package/src/modules/communication_channels/backend/communication_channels/channels/page.tsx +0 -4
  611. package/src/modules/communication_channels/commands/ingest-inbound-message.ts +1 -38
  612. package/src/modules/communication_channels/di.ts +0 -7
  613. package/src/modules/communication_channels/lib/adapter.ts +0 -14
  614. package/src/modules/communication_channels/lib/email-capabilities.ts +0 -4
  615. package/src/modules/communication_channels/lib/test-seed.ts +4 -64
  616. package/src/modules/configs/i18n/de.json +0 -2
  617. package/src/modules/configs/i18n/en.json +0 -2
  618. package/src/modules/configs/i18n/es.json +0 -2
  619. package/src/modules/configs/i18n/ko.json +0 -2
  620. package/src/modules/configs/i18n/pl.json +0 -2
  621. package/src/modules/configs/lib/system-status.ts +0 -9
  622. package/src/modules/currencies/backend/currencies/page.tsx +1 -4
  623. package/src/modules/currencies/backend/exchange-rates/page.tsx +1 -4
  624. package/src/modules/customer_accounts/api/admin/domain-mappings.ts +0 -7
  625. package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +1 -4
  626. package/src/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.tsx +138 -0
  627. package/src/modules/customer_accounts/backend/customer_accounts/settings/page.tsx +8 -132
  628. package/src/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.tsx +598 -0
  629. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.tsx +838 -0
  630. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +6 -838
  631. package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +6 -590
  632. package/src/modules/customer_accounts/extension-points.ts +1 -1
  633. package/src/modules/customer_accounts/lib/portalUrl.ts +112 -0
  634. package/src/modules/customer_accounts/services/domainMappingService.ts +0 -10
  635. package/src/modules/customers/ai-tools/companies-pack.ts +1 -4
  636. package/src/modules/customers/ai-tools/deal-analyzer-pack.ts +2 -17
  637. package/src/modules/customers/ai-tools/deals-pack.ts +1 -66
  638. package/src/modules/customers/ai-tools/people-pack.ts +1 -4
  639. package/src/modules/customers/api/activities/route.ts +0 -45
  640. package/src/modules/customers/api/companies/[id]/people/route.ts +73 -24
  641. package/src/modules/customers/api/companies/[id]/route.ts +107 -24
  642. package/src/modules/customers/api/dashboard/widgets/customer-todos/route.ts +8 -16
  643. package/src/modules/customers/api/deals/[id]/companies/route.ts +1 -4
  644. package/src/modules/customers/api/deals/[id]/people/route.ts +1 -4
  645. package/src/modules/customers/api/deals/[id]/route.ts +28 -17
  646. package/src/modules/customers/api/deals/[id]/stats/route.ts +25 -10
  647. package/src/modules/customers/api/deals/aggregate/route.ts +4 -14
  648. package/src/modules/customers/api/deals/map/route.ts +0 -1
  649. package/src/modules/customers/api/deals/route.ts +1 -50
  650. package/src/modules/customers/api/entity-roles-factory.ts +4 -8
  651. package/src/modules/customers/api/interactions/route.ts +2 -8
  652. package/src/modules/customers/api/interactions/tasks/route.ts +1 -24
  653. package/src/modules/customers/api/people/[id]/companies/[linkId]/route.ts +4 -12
  654. package/src/modules/customers/api/people/[id]/companies/context.ts +1 -4
  655. package/src/modules/customers/api/people/[id]/companies/enriched/route.ts +1 -4
  656. package/src/modules/customers/api/people/[id]/route.ts +11 -16
  657. package/src/modules/customers/api/people/check-phone/route.ts +10 -75
  658. package/src/modules/customers/api/todos/route.ts +2 -27
  659. package/src/modules/customers/backend/customers/companies/page.tsx +4 -7
  660. package/src/modules/customers/backend/customers/deals/[id]/page.tsx +2 -7
  661. package/src/modules/customers/backend/customers/deals/page.tsx +4 -10
  662. package/src/modules/customers/backend/customers/deals/pipeline/components/Lane.tsx +14 -5
  663. package/src/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.tsx +27 -109
  664. package/src/modules/customers/backend/customers/people/page.tsx +4 -7
  665. package/src/modules/customers/backend/hooks/useEmailDuplicateCheck.ts +4 -12
  666. package/src/modules/customers/commands/deals.ts +59 -34
  667. package/src/modules/customers/commands/interactions.ts +1 -1
  668. package/src/modules/customers/commands/personCompanyLinks.ts +8 -224
  669. package/src/modules/customers/components/CustomerTodosTable.tsx +0 -2
  670. package/src/modules/customers/components/DealsKpiStrip.tsx +7 -7
  671. package/src/modules/customers/components/calendar/AgendaList.tsx +3 -3
  672. package/src/modules/customers/components/calendar/CalendarEventEditor.tsx +1 -1
  673. package/src/modules/customers/components/calendar/CalendarScreen.tsx +1 -1
  674. package/src/modules/customers/components/calendar/CalendarSettingsModal.tsx +1 -1
  675. package/src/modules/customers/components/calendar/EventBlock.tsx +2 -2
  676. package/src/modules/customers/components/calendar/EventPeekPopover.tsx +2 -4
  677. package/src/modules/customers/components/calendar/editor/PeopleField.tsx +5 -61
  678. package/src/modules/customers/components/calendar/editor/hooks.ts +1 -7
  679. package/src/modules/customers/components/calendar/types.ts +2 -2
  680. package/src/modules/customers/components/detail/AssignRoleDialog.tsx +12 -7
  681. package/src/modules/customers/components/detail/CompanyKpiBar.tsx +4 -5
  682. package/src/modules/customers/components/detail/CompanyPeopleSection.tsx +1 -8
  683. package/src/modules/customers/components/detail/DealForm.tsx +2 -22
  684. package/src/modules/customers/components/detail/DealsSection.tsx +5 -11
  685. package/src/modules/customers/components/detail/EntityTagsDialog.tsx +12 -58
  686. package/src/modules/customers/components/detail/PersonCompaniesSection.tsx +1 -8
  687. package/src/modules/customers/components/detail/hooks/usePersonTasks.ts +14 -23
  688. package/src/modules/customers/components/detail/schedule/ParticipantsField.tsx +5 -5
  689. package/src/modules/customers/components/detail/schedule/useScheduleFormState.ts +5 -5
  690. package/src/modules/customers/components/detail/types.ts +1 -1
  691. package/src/modules/customers/components/detail/utils.ts +5 -15
  692. package/src/modules/customers/data/entities.ts +1 -1
  693. package/src/modules/customers/data/validators.ts +9 -50
  694. package/src/modules/customers/events.ts +0 -5
  695. package/src/modules/customers/i18n/de.json +1 -9
  696. package/src/modules/customers/i18n/en.json +1 -9
  697. package/src/modules/customers/i18n/es.json +1 -9
  698. package/src/modules/customers/i18n/ko.json +1 -9
  699. package/src/modules/customers/i18n/pl.json +1 -9
  700. package/src/modules/customers/lib/calendar/conflicts.ts +2 -10
  701. package/src/modules/customers/lib/calendar/editorPayload.ts +3 -4
  702. package/src/modules/customers/lib/calendar/mapItem.ts +3 -8
  703. package/src/modules/customers/lib/dealStatus.ts +0 -42
  704. package/src/modules/customers/lib/findPeopleByAddresses.ts +6 -8
  705. package/src/modules/customers/lib/personCompanies.ts +1 -136
  706. package/src/modules/customers/lib/todoCompatibility.ts +1 -19
  707. package/src/modules/dashboards/i18n/es.json +4 -4
  708. package/src/modules/dashboards/i18n/pl.json +7 -7
  709. package/src/modules/dashboards/lib/widgetScope.ts +0 -6
  710. package/src/modules/data_sync/AGENTS.md +1 -1
  711. package/src/modules/data_sync/backend/data-sync/page.tsx +1 -4
  712. package/src/modules/data_sync/lib/adapter.ts +0 -36
  713. package/src/modules/data_sync/lib/sync-engine.ts +5 -113
  714. package/src/modules/data_sync/workers/sync-export.ts +0 -4
  715. package/src/modules/data_sync/workers/sync-import.ts +0 -4
  716. package/src/modules/devices/AGENTS.md +1 -20
  717. package/src/modules/devices/acl.ts +1 -9
  718. package/src/modules/devices/api/admin/devices/[id]/route.ts +34 -5
  719. package/src/modules/devices/api/admin/devices/route.ts +1 -14
  720. package/src/modules/devices/api/deviceList.ts +11 -135
  721. package/src/modules/devices/api/openapi.ts +1 -9
  722. package/src/modules/devices/api/route.ts +1 -9
  723. package/src/modules/devices/backend/devices/[id]/page.tsx +32 -18
  724. package/src/modules/devices/backend/devices/create/page.tsx +1 -17
  725. package/src/modules/devices/backend/devices/page.tsx +45 -44
  726. package/src/modules/devices/i18n/de.json +2 -3
  727. package/src/modules/devices/i18n/en.json +2 -3
  728. package/src/modules/devices/i18n/es.json +2 -3
  729. package/src/modules/devices/i18n/ko.json +2 -3
  730. package/src/modules/devices/i18n/pl.json +2 -3
  731. package/src/modules/devices/setup.ts +2 -6
  732. package/src/modules/directory/backend/directory/organizations/page.tsx +1 -3
  733. package/src/modules/directory/backend/directory/tenants/page.tsx +1 -3
  734. package/src/modules/directory/di.ts +2 -14
  735. package/src/modules/directory/utils/organizationScope.ts +15 -4
  736. package/src/modules/entities/api/records.ts +0 -2
  737. package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +1 -4
  738. package/src/modules/eudr/api/plots/route.ts +0 -4
  739. package/src/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.ts +2 -0
  740. package/src/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.ts +1 -0
  741. package/src/modules/eudr/backend/eudr/evidence-submissions/page.meta.ts +4 -1
  742. package/src/modules/eudr/backend/eudr/evidence-submissions/page.tsx +0 -4
  743. package/src/modules/eudr/backend/eudr/page.meta.ts +2 -2
  744. package/src/modules/eudr/backend/eudr/plots/[id]/page.meta.ts +2 -0
  745. package/src/modules/eudr/backend/eudr/plots/[id]/page.tsx +8 -2
  746. package/src/modules/eudr/backend/eudr/plots/create/page.meta.ts +1 -0
  747. package/src/modules/eudr/backend/eudr/plots/create/page.tsx +8 -2
  748. package/src/modules/eudr/backend/eudr/plots/page.meta.ts +4 -1
  749. package/src/modules/eudr/backend/eudr/plots/page.tsx +0 -4
  750. package/src/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.ts +2 -0
  751. package/src/modules/eudr/backend/eudr/product-mappings/create/page.meta.ts +1 -0
  752. package/src/modules/eudr/backend/eudr/product-mappings/page.meta.ts +4 -1
  753. package/src/modules/eudr/backend/eudr/product-mappings/page.tsx +0 -4
  754. package/src/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.ts +2 -0
  755. package/src/modules/eudr/backend/eudr/risk-assessments/create/page.meta.ts +1 -0
  756. package/src/modules/eudr/backend/eudr/risk-assessments/page.meta.ts +4 -1
  757. package/src/modules/eudr/backend/eudr/risk-assessments/page.tsx +0 -4
  758. package/src/modules/eudr/backend/eudr/statements/[id]/page.meta.ts +2 -0
  759. package/src/modules/eudr/backend/eudr/statements/[id]/page.tsx +2 -0
  760. package/src/modules/eudr/backend/eudr/statements/create/page.meta.ts +1 -0
  761. package/src/modules/eudr/backend/eudr/statements/page.meta.ts +4 -1
  762. package/src/modules/eudr/backend/eudr/statements/page.tsx +32 -30
  763. package/src/modules/eudr/commands/statements.ts +7 -2
  764. package/src/modules/eudr/components/crudErrorI18n.ts +31 -0
  765. package/src/modules/eudr/components/formConfig.tsx +9 -1
  766. package/src/modules/eudr/data/validators.ts +1 -16
  767. package/src/modules/eudr/i18n/de.json +3 -2
  768. package/src/modules/eudr/i18n/en.json +3 -2
  769. package/src/modules/eudr/i18n/es.json +3 -2
  770. package/src/modules/eudr/i18n/ko.json +3 -2
  771. package/src/modules/eudr/i18n/pl.json +3 -2
  772. package/src/modules/eudr/lib/statement-lifecycle.ts +8 -0
  773. package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +1 -2
  774. package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -2
  775. package/src/modules/feature_toggles/defaults.json +8 -0
  776. package/src/modules/inbox_ops/backend/inbox-ops/log/page.tsx +0 -4
  777. package/src/modules/inbox_ops/backend/inbox-ops/page.tsx +0 -4
  778. package/src/modules/inbox_ops/lib/htmlToPlainText.ts +17 -1
  779. package/src/modules/integrations/api/[id]/credentials/route.ts +4 -6
  780. package/src/modules/integrations/backend/integrations/[id]/page.tsx +31 -61
  781. package/src/modules/integrations/backend/integrations/bundle/[id]/page.tsx +9 -44
  782. package/src/modules/integrations/data/validators.ts +2 -12
  783. package/src/modules/integrations/i18n/de.json +0 -1
  784. package/src/modules/integrations/i18n/en.json +0 -1
  785. package/src/modules/integrations/i18n/es.json +0 -1
  786. package/src/modules/integrations/i18n/ko.json +0 -1
  787. package/src/modules/integrations/i18n/pl.json +0 -1
  788. package/src/modules/integrations/lib/credentials-masking.ts +6 -10
  789. package/src/modules/messages/api/[id]/route.ts +1 -55
  790. package/src/modules/messages/api/openapi.ts +0 -20
  791. package/src/modules/messages/api/route.ts +2 -31
  792. package/src/modules/messages/components/MessagesInboxPageClient.tsx +16 -9
  793. package/src/modules/messages/components/inboxFilters.ts +0 -36
  794. package/src/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.ts +1 -14
  795. package/src/modules/messages/components/message-detail/panels/MessageHeader.tsx +1 -3
  796. package/src/modules/messages/components/message-detail/panels/thread-panel.tsx +1 -2
  797. package/src/modules/messages/components/message-detail/types.ts +0 -3
  798. package/src/modules/messages/components/messageListLabels.ts +3 -52
  799. package/src/modules/messages/data/validators.ts +4 -43
  800. package/src/modules/payment_gateways/api/webhook/[provider]/route.ts +6 -4
  801. package/src/modules/payment_gateways/backend/payment-gateways/page.tsx +1 -4
  802. package/src/modules/payment_gateways/lib/webhook-processor.ts +0 -11
  803. package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +0 -4
  804. package/src/modules/push_notifications/backend/push_notifications/page.tsx +1 -4
  805. package/src/modules/push_notifications/backend/push_notifications/send/page.tsx +4 -4
  806. package/src/modules/query_index/lib/engine.ts +61 -249
  807. package/src/modules/query_index/lib/search-tokens.ts +3 -135
  808. package/src/modules/resources/backend/resources/resource-types/page.tsx +1 -4
  809. package/src/modules/resources/backend/resources/resources/page.tsx +1 -4
  810. package/src/modules/sales/backend/sales/channels/offers/page.tsx +0 -4
  811. package/src/modules/sales/backend/sales/channels/page.tsx +0 -4
  812. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +8 -14
  813. package/src/modules/sales/commands/documents.ts +0 -93
  814. package/src/modules/sales/components/PriceWithCurrency.tsx +5 -17
  815. package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +0 -4
  816. package/src/modules/sales/components/documents/AdjustmentsSection.tsx +5 -6
  817. package/src/modules/sales/components/documents/ItemsSection.tsx +18 -56
  818. package/src/modules/sales/components/documents/LineItemDialog.tsx +21 -138
  819. package/src/modules/sales/components/documents/PaymentsSection.tsx +9 -20
  820. package/src/modules/sales/components/documents/ReturnsSection.tsx +5 -6
  821. package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +14 -106
  822. package/src/modules/sales/components/documents/SalesOrderDraftLines.tsx +5 -6
  823. package/src/modules/sales/components/documents/ShipmentDialog.tsx +4 -5
  824. package/src/modules/sales/components/documents/ShipmentsSection.tsx +5 -6
  825. package/src/modules/sales/components/documents/lineItemUtils.ts +2 -7
  826. package/src/modules/sales/data/entities.ts +0 -6
  827. package/src/modules/sales/extension-points.ts +0 -1
  828. package/src/modules/sales/i18n/de.json +37 -8
  829. package/src/modules/sales/i18n/en.json +37 -8
  830. package/src/modules/sales/i18n/es.json +37 -8
  831. package/src/modules/sales/i18n/ko.json +37 -8
  832. package/src/modules/sales/i18n/pl.json +37 -8
  833. package/src/modules/sales/migrations/.snapshot-open-mercato.json +0 -60
  834. package/src/modules/sales/setup.ts +0 -2
  835. package/src/modules/sales/widgets/injection/document-history/widget.client.tsx +42 -2
  836. package/src/modules/sales/widgets/injection/payment-gateway-status-column/widget.ts +1 -9
  837. package/src/modules/sales/widgets/injection-table.ts +7 -4
  838. package/src/modules/staff/backend/staff/leave-requests/page.tsx +0 -4
  839. package/src/modules/staff/backend/staff/my-leave-requests/page.tsx +0 -4
  840. package/src/modules/staff/backend/staff/team-members/page.tsx +0 -6
  841. package/src/modules/staff/backend/staff/team-roles/page.tsx +0 -4
  842. package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +0 -4
  843. package/src/modules/staff/backend/staff/teams/page.tsx +0 -4
  844. package/src/modules/staff/backend/staff/timesheets/page.tsx +1 -12
  845. package/src/modules/staff/backend/staff/timesheets/projects/page.tsx +0 -4
  846. package/src/modules/sync_excel/lib/adapters/customers.ts +0 -5
  847. package/src/modules/warranty_claims/api/assignees/route.ts +3 -3
  848. package/src/modules/warranty_claims/api/portal/attachments/route.ts +2 -2
  849. package/src/modules/warranty_claims/api/portal/claims/route.ts +9 -12
  850. package/src/modules/warranty_claims/backend/page.tsx +0 -4
  851. package/src/modules/warranty_claims/backend/warranty_claims/registrations/page.tsx +0 -4
  852. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.tsx +0 -4
  853. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.tsx +0 -4
  854. package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.tsx +0 -4
  855. package/src/modules/wms/api/warehouses/route.ts +9 -13
  856. package/src/modules/wms/api/zones/route.ts +0 -16
  857. package/src/modules/wms/commands/configuration.ts +10 -159
  858. package/src/modules/wms/commands/inventory-actions.ts +0 -3
  859. package/src/modules/wms/commands/shared.ts +0 -17
  860. package/src/modules/wms/components/backend/WmsConfigurationPage.tsx +141 -95
  861. package/src/modules/wms/components/backend/WmsInventoryConsolePage.tsx +0 -2
  862. package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +30 -26
  863. package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +21 -17
  864. package/src/modules/wms/components/backend/WmsLotsListPage.tsx +0 -2
  865. package/src/modules/wms/components/backend/WmsOperationalDashboardPage.tsx +17 -13
  866. package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +16 -12
  867. package/src/modules/wms/components/backend/inventoryMutationLoaders.ts +20 -36
  868. package/src/modules/wms/i18n/de.json +0 -2
  869. package/src/modules/wms/i18n/en.json +0 -2
  870. package/src/modules/wms/i18n/es.json +0 -2
  871. package/src/modules/wms/i18n/ko.json +0 -2
  872. package/src/modules/wms/i18n/pl.json +0 -2
  873. package/src/modules/workflows/backend/definitions/page.tsx +1 -4
  874. package/src/modules/workflows/backend/events/page.tsx +1 -4
  875. package/src/modules/workflows/backend/instances/page.tsx +1 -4
  876. package/src/modules/workflows/backend/tasks/page.tsx +1 -4
  877. package/src/modules/workflows/lib/activity-executor.ts +0 -9
  878. package/dist/modules/api_keys/di.js +0 -9
  879. package/dist/modules/api_keys/di.js.map +0 -7
  880. package/dist/modules/api_keys/services/principalService.js +0 -31
  881. package/dist/modules/api_keys/services/principalService.js.map +0 -7
  882. package/dist/modules/attachments/lib/attachment-service.js +0 -313
  883. package/dist/modules/attachments/lib/attachment-service.js.map +0 -7
  884. package/dist/modules/auth/api/reset/validate.js +0 -55
  885. package/dist/modules/auth/api/reset/validate.js.map +0 -7
  886. package/dist/modules/auth/commands/acl.js +0 -254
  887. package/dist/modules/auth/commands/acl.js.map +0 -7
  888. package/dist/modules/auth/lib/userIdFilter.js +0 -16
  889. package/dist/modules/auth/lib/userIdFilter.js.map +0 -7
  890. package/dist/modules/auth/services/principalService.js +0 -200
  891. package/dist/modules/auth/services/principalService.js.map +0 -7
  892. package/dist/modules/auth/services/roleOrganizationScope.js +0 -41
  893. package/dist/modules/auth/services/roleOrganizationScope.js.map +0 -7
  894. package/dist/modules/communication_channels/lib/outbound-recipient.js +0 -33
  895. package/dist/modules/communication_channels/lib/outbound-recipient.js.map +0 -7
  896. package/dist/modules/communication_channels/lib/resolve-channel-type.js +0 -51
  897. package/dist/modules/communication_channels/lib/resolve-channel-type.js.map +0 -7
  898. package/dist/modules/customers/backend/customers/deals/pipeline/components/toneClasses.js +0 -18
  899. package/dist/modules/customers/backend/customers/deals/pipeline/components/toneClasses.js.map +0 -7
  900. package/dist/modules/customers/lib/calendar/participantIdentity.js +0 -9
  901. package/dist/modules/customers/lib/calendar/participantIdentity.js.map +0 -7
  902. package/dist/modules/customers/lib/closureStage.js +0 -45
  903. package/dist/modules/customers/lib/closureStage.js.map +0 -7
  904. package/dist/modules/customers/lib/detailReadAccess.js +0 -12
  905. package/dist/modules/customers/lib/detailReadAccess.js.map +0 -7
  906. package/dist/modules/data_sync/lib/abandoned-run.js +0 -19
  907. package/dist/modules/data_sync/lib/abandoned-run.js.map +0 -7
  908. package/dist/modules/devices/api/deviceSerialization.js +0 -46
  909. package/dist/modules/devices/api/deviceSerialization.js.map +0 -7
  910. package/dist/modules/devices/backend/devices/useDeviceUserLabels.js +0 -34
  911. package/dist/modules/devices/backend/devices/useDeviceUserLabels.js.map +0 -7
  912. package/dist/modules/devices/backend/devices/userOptions.js +0 -52
  913. package/dist/modules/devices/backend/devices/userOptions.js.map +0 -7
  914. package/dist/modules/directory/services/organizationHierarchyService.js +0 -29
  915. package/dist/modules/directory/services/organizationHierarchyService.js.map +0 -7
  916. package/dist/modules/directory/services/organizationScopeService.js +0 -56
  917. package/dist/modules/directory/services/organizationScopeService.js.map +0 -7
  918. package/dist/modules/integrations/backend/integrations/credential-secret-fields.js +0 -55
  919. package/dist/modules/integrations/backend/integrations/credential-secret-fields.js.map +0 -7
  920. package/dist/modules/messages/lib/channel-sender-identity.js +0 -26
  921. package/dist/modules/messages/lib/channel-sender-identity.js.map +0 -7
  922. package/dist/modules/messages/lib/composeSourceChannelType.js +0 -41
  923. package/dist/modules/messages/lib/composeSourceChannelType.js.map +0 -7
  924. package/dist/modules/query_index/lib/search-entity-policy.js +0 -14
  925. package/dist/modules/query_index/lib/search-entity-policy.js.map +0 -7
  926. package/dist/modules/sales/components/documents/lineItemShipmentLock.js +0 -54
  927. package/dist/modules/sales/components/documents/lineItemShipmentLock.js.map +0 -7
  928. package/dist/modules/sales/lib/salesChannelsToggleSeed.js +0 -33
  929. package/dist/modules/sales/lib/salesChannelsToggleSeed.js.map +0 -7
  930. package/dist/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.js +0 -32
  931. package/dist/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.js.map +0 -7
  932. package/dist/modules/wms/api/warehouseSearch.js +0 -21
  933. package/dist/modules/wms/api/warehouseSearch.js.map +0 -7
  934. package/dist/modules/wms/components/backend/WarehouseEditDialog.js +0 -158
  935. package/dist/modules/wms/components/backend/WarehouseEditDialog.js.map +0 -7
  936. package/dist/modules/wms/components/backend/warehouseFormOptions.js +0 -66
  937. package/dist/modules/wms/components/backend/warehouseFormOptions.js.map +0 -7
  938. package/src/modules/api_keys/di.ts +0 -7
  939. package/src/modules/api_keys/services/principalService.ts +0 -33
  940. package/src/modules/attachments/lib/attachment-service.ts +0 -468
  941. package/src/modules/auth/api/reset/validate.ts +0 -57
  942. package/src/modules/auth/commands/acl.ts +0 -495
  943. package/src/modules/auth/lib/userIdFilter.ts +0 -31
  944. package/src/modules/auth/services/principalService.ts +0 -266
  945. package/src/modules/auth/services/roleOrganizationScope.ts +0 -70
  946. package/src/modules/communication_channels/lib/outbound-recipient.ts +0 -71
  947. package/src/modules/communication_channels/lib/resolve-channel-type.ts +0 -99
  948. package/src/modules/customers/backend/customers/deals/pipeline/components/toneClasses.ts +0 -21
  949. package/src/modules/customers/lib/calendar/participantIdentity.ts +0 -17
  950. package/src/modules/customers/lib/closureStage.ts +0 -76
  951. package/src/modules/customers/lib/detailReadAccess.ts +0 -35
  952. package/src/modules/data_sync/lib/abandoned-run.ts +0 -56
  953. package/src/modules/devices/api/deviceSerialization.ts +0 -50
  954. package/src/modules/devices/backend/devices/useDeviceUserLabels.ts +0 -45
  955. package/src/modules/devices/backend/devices/userOptions.ts +0 -99
  956. package/src/modules/directory/services/organizationHierarchyService.ts +0 -34
  957. package/src/modules/directory/services/organizationScopeService.ts +0 -85
  958. package/src/modules/integrations/backend/integrations/credential-secret-fields.ts +0 -84
  959. package/src/modules/messages/lib/channel-sender-identity.ts +0 -55
  960. package/src/modules/messages/lib/composeSourceChannelType.ts +0 -95
  961. package/src/modules/query_index/lib/search-entity-policy.ts +0 -46
  962. package/src/modules/sales/components/documents/lineItemShipmentLock.ts +0 -74
  963. package/src/modules/sales/lib/salesChannelsToggleSeed.ts +0 -42
  964. package/src/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.ts +0 -87
  965. package/src/modules/wms/api/warehouseSearch.ts +0 -23
  966. package/src/modules/wms/components/backend/WarehouseEditDialog.tsx +0 -216
  967. package/src/modules/wms/components/backend/warehouseFormOptions.ts +0 -72
@@ -8,7 +8,6 @@ import { Badge } from '@open-mercato/ui/primitives/badge'
8
8
  import { Button } from '@open-mercato/ui/primitives/button'
9
9
  import { Switch } from '@open-mercato/ui/primitives/switch'
10
10
  import { Input } from '@open-mercato/ui/primitives/input'
11
- import { PasswordInput } from '@open-mercato/ui/primitives/password-input'
12
11
  import {
13
12
  Select,
14
13
  SelectContent,
@@ -24,11 +23,6 @@ import { flash } from '@open-mercato/ui/backend/FlashMessages'
24
23
  import { useT } from '@open-mercato/shared/lib/i18n/context'
25
24
  import type { CredentialFieldType, IntegrationCredentialField } from '@open-mercato/shared/modules/integrations/types'
26
25
  import { LoadingMessage, ErrorMessage, RecordNotFoundState } from '@open-mercato/ui/backend/detail'
27
- import {
28
- buildCredentialEditValues,
29
- buildCredentialSavePayload,
30
- type SecretFieldsConfigured,
31
- } from '../../credential-secret-fields'
32
26
 
33
27
  type CredentialField = IntegrationCredentialField
34
28
 
@@ -94,7 +88,6 @@ export default function BundleConfigPage({ params }: BundleConfigPageProps) {
94
88
  const [error, setError] = React.useState<string | null>(null)
95
89
  const [isNotFound, setIsNotFound] = React.useState(false)
96
90
  const [credValues, setCredValues] = React.useState<Record<string, unknown>>({})
97
- const [secretFieldsConfigured, setSecretFieldsConfigured] = React.useState<SecretFieldsConfigured>({})
98
91
  const [credentialsUpdatedAt, setCredentialsUpdatedAt] = React.useState<string | null>(null)
99
92
  const [isSavingCreds, setIsSavingCreds] = React.useState(false)
100
93
  const [togglingIds, setTogglingIds] = React.useState<Set<string>>(new Set())
@@ -141,18 +134,13 @@ export default function BundleConfigPage({ params }: BundleConfigPageProps) {
141
134
  }
142
135
  setDetail(call.result)
143
136
 
144
- const credCall = await apiCall<{
145
- credentials: Record<string, unknown>
146
- secretFieldsConfigured?: SecretFieldsConfigured
147
- updatedAt?: string | null
148
- }>(
137
+ const credCall = await apiCall<{ credentials: Record<string, unknown>; updatedAt?: string | null }>(
149
138
  `/api/integrations/${encodeURIComponent(currentBundleId)}/credentials`,
150
139
  undefined,
151
140
  { fallback: null },
152
141
  )
153
142
  if (credCall.ok && credCall.result) {
154
143
  setCredentialsUpdatedAt(credCall.result.updatedAt ?? null)
155
- setSecretFieldsConfigured(credCall.result.secretFieldsConfigured ?? {})
156
144
  }
157
145
  if (credCall.ok && credCall.result?.credentials) {
158
146
  const next = { ...credCall.result.credentials }
@@ -163,10 +151,7 @@ export default function BundleConfigPage({ params }: BundleConfigPageProps) {
163
151
  next.authMode = hasKeys ? 'access_keys' : 'ambient'
164
152
  }
165
153
  }
166
- setCredValues(buildCredentialEditValues(
167
- next,
168
- credCall.result.secretFieldsConfigured ?? {},
169
- ))
154
+ setCredValues(next)
170
155
  }
171
156
  setIsLoading(false)
172
157
  }, [resolveCurrentBundleId, t])
@@ -178,13 +163,8 @@ export default function BundleConfigPage({ params }: BundleConfigPageProps) {
178
163
  if (!currentBundleId) return
179
164
  setIsSavingCreds(true)
180
165
  try {
181
- const savePayload = buildCredentialSavePayload(
182
- credValues,
183
- detail?.bundle?.credentials?.fields ?? [],
184
- secretFieldsConfigured,
185
- )
186
166
  const call = await runMutation({
187
- mutationPayload: { bundleId: currentBundleId, ...savePayload },
167
+ mutationPayload: { bundleId: currentBundleId, credentials: credValues },
188
168
  context: {
189
169
  formId: mutationContextId,
190
170
  operation: 'update',
@@ -199,7 +179,7 @@ export default function BundleConfigPage({ params }: BundleConfigPageProps) {
199
179
  () => apiCall(`/api/integrations/${encodeURIComponent(currentBundleId)}/credentials`, {
200
180
  method: 'PUT',
201
181
  headers: { 'Content-Type': 'application/json' },
202
- body: JSON.stringify(savePayload),
182
+ body: JSON.stringify({ credentials: credValues }),
203
183
  }, { fallback: null }),
204
184
  ),
205
185
  })
@@ -214,7 +194,7 @@ export default function BundleConfigPage({ params }: BundleConfigPageProps) {
214
194
  } finally {
215
195
  setIsSavingCreds(false)
216
196
  }
217
- }, [resolveCurrentBundleId, runMutation, mutationContextId, retryLastMutation, credValues, credentialsUpdatedAt, detail?.bundle?.credentials?.fields, load, secretFieldsConfigured, t])
197
+ }, [resolveCurrentBundleId, runMutation, mutationContextId, retryLastMutation, credValues, credentialsUpdatedAt, load, t])
218
198
 
219
199
  const handleToggle = React.useCallback(async (integrationId: string, enabled: boolean, updatedAt?: string | null) => {
220
200
  setTogglingIds((prev) => new Set(prev).add(integrationId))
@@ -315,15 +295,15 @@ export default function BundleConfigPage({ params }: BundleConfigPageProps) {
315
295
  <CardContent className="space-y-4">
316
296
  {credFields.filter(isFieldVisible).map((field) => (
317
297
  <div key={field.key} className="space-y-1.5">
318
- <label htmlFor={`bundle-credential-${field.key}`} className="text-sm font-medium">
319
- {field.label}{field.required && <span className="ml-0.5 text-destructive">*</span>}
298
+ <label className="text-sm font-medium">
299
+ {field.label}{field.required && <span className="text-red-500 ml-0.5">*</span>}
320
300
  </label>
321
301
  {field.type === 'select' && field.options ? (
322
302
  <Select
323
303
  value={(credValues[field.key] as string) || undefined}
324
304
  onValueChange={(value) => setCredValues((prev) => ({ ...prev, [field.key]: value ?? '' }))}
325
305
  >
326
- <SelectTrigger id={`bundle-credential-${field.key}`}>
306
+ <SelectTrigger>
327
307
  <SelectValue placeholder="—" />
328
308
  </SelectTrigger>
329
309
  <SelectContent>
@@ -334,32 +314,17 @@ export default function BundleConfigPage({ params }: BundleConfigPageProps) {
334
314
  </Select>
335
315
  ) : field.type === 'boolean' ? (
336
316
  <Switch
337
- id={`bundle-credential-${field.key}`}
338
317
  checked={Boolean(credValues[field.key])}
339
318
  onCheckedChange={(checked) => setCredValues((prev) => ({ ...prev, [field.key]: checked }))}
340
319
  />
341
- ) : field.type === 'secret' ? (
342
- <PasswordInput
343
- id={`bundle-credential-${field.key}`}
344
- placeholder={field.placeholder}
345
- value={(credValues[field.key] as string) ?? ''}
346
- onChange={(event) => setCredValues((prev) => ({ ...prev, [field.key]: event.target.value }))}
347
- autoComplete="new-password"
348
- />
349
320
  ) : (
350
321
  <Input
351
- id={`bundle-credential-${field.key}`}
352
- type="text"
322
+ type={field.type === 'secret' ? 'password' : 'text'}
353
323
  placeholder={field.placeholder}
354
324
  value={(credValues[field.key] as string) ?? ''}
355
325
  onChange={(e) => setCredValues((prev) => ({ ...prev, [field.key]: e.target.value }))}
356
326
  />
357
327
  )}
358
- {field.type === 'secret' && secretFieldsConfigured[field.key] ? (
359
- <p className="text-xs text-muted-foreground">
360
- {t('integrations.detail.credentials.secretConfigured')}
361
- </p>
362
- ) : null}
363
328
  </div>
364
329
  ))}
365
330
  <Button type="button" onClick={() => void handleSaveCredentials()} disabled={isSavingCreds}>
@@ -1,23 +1,13 @@
1
1
  import { z } from 'zod'
2
2
 
3
- const credentialFieldKeySchema = z.string().min(1).max(128)
4
-
5
3
  export const saveCredentialsSchema = z.object({
6
4
  credentials: z.record(
7
- credentialFieldKeySchema,
5
+ z.string().min(1).max(128),
8
6
  z.union([z.string().max(20_000), z.number(), z.boolean(), z.null()]),
9
7
  ),
10
- unchangedSecretFields: z.array(credentialFieldKeySchema).max(200).optional(),
11
8
  }).refine((value) => Object.keys(value.credentials).length <= 200, {
12
9
  message: 'At most 200 credential fields are allowed',
13
- }).refine(
14
- (value) => !value.unchangedSecretFields
15
- || new Set(value.unchangedSecretFields).size === value.unchangedSecretFields.length,
16
- {
17
- message: 'Unchanged secret field names must be unique',
18
- path: ['unchangedSecretFields'],
19
- },
20
- )
10
+ })
21
11
 
22
12
  export type SaveCredentialsInput = z.infer<typeof saveCredentialsSchema>
23
13
 
@@ -15,7 +15,6 @@
15
15
  "integrations.detail.credentials.save": "Zugangsdaten speichern",
16
16
  "integrations.detail.credentials.saveError": "Zugangsdaten konnten nicht gespeichert werden",
17
17
  "integrations.detail.credentials.saved": "Zugangsdaten gespeichert",
18
- "integrations.detail.credentials.secretConfigured": "Konfiguriert. Geben Sie einen neuen Wert ein, um ihn zu ersetzen.",
19
18
  "integrations.detail.credentials.validation.boolean": "Select a valid value.",
20
19
  "integrations.detail.credentials.validation.option": "Select one of the available options.",
21
20
  "integrations.detail.credentials.validation.required": "{field} is required.",
@@ -15,7 +15,6 @@
15
15
  "integrations.detail.credentials.save": "Save Credentials",
16
16
  "integrations.detail.credentials.saveError": "Failed to save credentials",
17
17
  "integrations.detail.credentials.saved": "Credentials saved",
18
- "integrations.detail.credentials.secretConfigured": "Configured. Enter a new value to replace it.",
19
18
  "integrations.detail.credentials.validation.boolean": "Select a valid value.",
20
19
  "integrations.detail.credentials.validation.option": "Select one of the available options.",
21
20
  "integrations.detail.credentials.validation.required": "{field} is required.",
@@ -15,7 +15,6 @@
15
15
  "integrations.detail.credentials.save": "Guardar credenciales",
16
16
  "integrations.detail.credentials.saveError": "No se pudieron guardar las credenciales",
17
17
  "integrations.detail.credentials.saved": "Credenciales guardadas",
18
- "integrations.detail.credentials.secretConfigured": "Configurado. Introduce un valor nuevo para reemplazarlo.",
19
18
  "integrations.detail.credentials.validation.boolean": "Select a valid value.",
20
19
  "integrations.detail.credentials.validation.option": "Select one of the available options.",
21
20
  "integrations.detail.credentials.validation.required": "{field} is required.",
@@ -15,7 +15,6 @@
15
15
  "integrations.detail.credentials.save": "자격 증명 저장",
16
16
  "integrations.detail.credentials.saveError": "자격 증명 저장에 실패했습니다",
17
17
  "integrations.detail.credentials.saved": "자격 증명이 저장되었습니다",
18
- "integrations.detail.credentials.secretConfigured": "구성됨. 바꾸려면 새 값을 입력하세요.",
19
18
  "integrations.detail.credentials.validation.boolean": "유효한 값을 선택하세요.",
20
19
  "integrations.detail.credentials.validation.option": "사용 가능한 옵션 중 하나를 선택하세요.",
21
20
  "integrations.detail.credentials.validation.required": "{field}은(는) 필수입니다.",
@@ -15,7 +15,6 @@
15
15
  "integrations.detail.credentials.save": "Zapisz dane",
16
16
  "integrations.detail.credentials.saveError": "Nie udało się zapisać danych",
17
17
  "integrations.detail.credentials.saved": "Dane zapisane",
18
- "integrations.detail.credentials.secretConfigured": "Skonfigurowano. Wpisz nową wartość, aby ją zastąpić.",
19
18
  "integrations.detail.credentials.validation.boolean": "Select a valid value.",
20
19
  "integrations.detail.credentials.validation.option": "Select one of the available options.",
21
20
  "integrations.detail.credentials.validation.required": "{field} is required.",
@@ -84,26 +84,22 @@ export function maskSecretCredentials(
84
84
  }
85
85
 
86
86
  /**
87
- * Reverse of {@link maskSecretCredentials} for the save path. The exact mask
88
- * sentinel and explicitly listed omitted secret fields mean "leave unchanged".
89
- * Explicit values win over the list, including an empty string used to clear a
90
- * secret, while plain omission retains the full-replacement contract.
87
+ * Reverse of {@link maskSecretCredentials} for the save path. When the client
88
+ * submits the mask sentinel for a secret field it means "leave it unchanged":
89
+ * restore the existing stored secret, or drop the field entirely when nothing
90
+ * was previously stored (so the literal sentinel is never persisted). Any other
91
+ * value (including an empty string, which clears the secret) is written as-is.
91
92
  */
92
93
  export function mergeMaskedSecretCredentials(
93
94
  schema: IntegrationCredentialsSchema | undefined,
94
95
  incoming: Record<string, unknown>,
95
96
  existing: Record<string, unknown>,
96
- unchangedSecretFields: readonly string[] = [],
97
97
  ): Record<string, unknown> {
98
98
  const merged: Record<string, unknown> = { ...incoming }
99
- const unchangedSecretFieldSet = new Set(unchangedSecretFields)
100
99
 
101
100
  for (const field of schema?.fields ?? []) {
102
101
  if (!isSecretField(field.type)) continue
103
- const hasIncomingValue = Object.prototype.hasOwnProperty.call(merged, field.key)
104
- const submittedMask = merged[field.key] === MASKED_SECRET_VALUE
105
- const explicitlyUnchanged = !hasIncomingValue && unchangedSecretFieldSet.has(field.key)
106
- if (!submittedMask && !explicitlyUnchanged) continue
102
+ if (merged[field.key] !== MASKED_SECRET_VALUE) continue
107
103
 
108
104
  if (hasPresentValue(existing[field.key])) {
109
105
  merged[field.key] = existing[field.key]
@@ -2,7 +2,6 @@ import type { EntityManager } from '@mikro-orm/postgresql'
2
2
  import type { CommandBus } from '@open-mercato/shared/lib/commands/command-bus'
3
3
  import type { OpenApiRouteDoc } from '@open-mercato/shared/lib/openapi/types'
4
4
  import { isCrudHttpError } from '@open-mercato/shared/lib/crud/errors'
5
- import { applyResponseEnricherToRecord } from '@open-mercato/shared/lib/crud/enricher-runner'
6
5
  import { enforceCommandOptimisticLock } from '@open-mercato/shared/lib/crud/optimistic-lock-command'
7
6
  import { findOneWithDecryption, findWithDecryption } from '@open-mercato/shared/lib/encryption/find'
8
7
  import { User } from '../../../auth/data/entities'
@@ -39,36 +38,6 @@ type MessageObjectPreviewPayload = {
39
38
  metadata?: Record<string, string>
40
39
  } | null
41
40
 
42
- type RbacServiceLike = {
43
- getGrantedFeatures?: (
44
- userId: string,
45
- scope: { tenantId: string | null; organizationId: string | null },
46
- ) => Promise<string[]>
47
- }
48
-
49
- /**
50
- * Feature list for the enricher ACL gate, resolved from RBAC.
51
- *
52
- * Mirrors `customers/api/interactions/route.ts`. Returning `undefined` on
53
- * failure is deliberate — the runner then treats every feature-gated enricher
54
- * as denied, which is the safe direction.
55
- */
56
- async function resolveGrantedFeatures(
57
- container: { resolve: (name: string) => unknown },
58
- scope: { tenantId: string; organizationId: string | null; userId: string },
59
- ): Promise<string[] | undefined> {
60
- try {
61
- const rbac = container.resolve('rbacService') as RbacServiceLike | undefined
62
- if (!rbac?.getGrantedFeatures) return undefined
63
- return await rbac.getGrantedFeatures(scope.userId, {
64
- tenantId: scope.tenantId,
65
- organizationId: scope.organizationId,
66
- })
67
- } catch {
68
- return undefined
69
- }
70
- }
71
-
72
41
  export async function GET(req: Request, { params }: { params: { id: string } }) {
73
42
  const { ctx, scope } = await resolveMessageContext(req)
74
43
  const em = ctx.container.resolve('em') as EntityManager
@@ -221,7 +190,7 @@ export async function GET(req: Request, { params }: { params: { id: string } })
221
190
  })
222
191
  }
223
192
 
224
- const detail: Record<string, unknown> = {
193
+ return Response.json({
225
194
  id: message.id,
226
195
  updatedAt: message.updatedAt ?? null,
227
196
  type: message.type,
@@ -288,9 +257,6 @@ export async function GET(req: Request, { params }: { params: { id: string } })
288
257
  senderUserId: threadMessage.senderUserId,
289
258
  senderName: threadSenderName,
290
259
  senderEmail: sender?.email ?? null,
291
- externalName: threadMessage.externalName ?? null,
292
- externalEmail: threadMessage.externalEmail ?? null,
293
- sourceEntityType: threadMessage.sourceEntityType ?? null,
294
260
  body: threadMessage.body,
295
261
  bodyFormat: threadMessage.bodyFormat,
296
262
  sentAt: threadMessage.sentAt,
@@ -299,27 +265,7 @@ export async function GET(req: Request, { params }: { params: { id: string } })
299
265
  isRead: recipient ? (autoMarkRead || recipient.status !== 'unread') : true,
300
266
  conversationArchived,
301
267
  conversationAllUnread,
302
- }
303
-
304
- // Mirrors `enrichSingleRecord` in `shared/lib/crud/factory.ts`, which every
305
- // `makeCrudRoute` host gets for free: same `_meta` envelope, and no blanket
306
- // catch so a `critical: true` enricher still surfaces as an HTTP error.
307
- // Non-critical failures never escape the runner — it merges `fallback` and
308
- // records the id in `_meta.enricherErrors`.
309
- const enriched = await applyResponseEnricherToRecord(detail, 'messages.message', {
310
- organizationId: scope.organizationId ?? '',
311
- tenantId: scope.tenantId,
312
- userId: scope.userId,
313
- em,
314
- container: ctx.container,
315
- userFeatures: await resolveGrantedFeatures(ctx.container, scope),
316
268
  })
317
-
318
- if (enriched._meta.enrichedBy.length > 0 || enriched._meta.enricherErrors?.length) {
319
- return Response.json({ ...enriched.record, _meta: enriched._meta })
320
- }
321
-
322
- return Response.json(enriched.record)
323
269
  }
324
270
 
325
271
  export async function PATCH(req: Request, { params }: { params: { id: string } }) {
@@ -1,7 +1,6 @@
1
1
  import { z } from 'zod'
2
2
  import {
3
3
  attachmentIdsPayloadSchema,
4
- composeMessageRequestSchema,
5
4
  composeMessageSchema,
6
5
  executeActionSchema,
7
6
  forwardMessageSchema,
@@ -51,19 +50,11 @@ export const messageListItemSchema = z.object({
51
50
  threadId: z.string().uuid().nullable().optional(),
52
51
  })
53
52
 
54
- export const enrichmentMetaSchema = z.object({
55
- enrichedBy: z.array(z.string()),
56
- enricherErrors: z.array(z.string()).optional(),
57
- })
58
-
59
53
  export const messageThreadItemSchema = z.object({
60
54
  id: z.string().uuid(),
61
55
  senderUserId: z.string().uuid(),
62
56
  senderName: z.string().nullable().optional(),
63
57
  senderEmail: z.string().nullable().optional(),
64
- externalName: z.string().nullable().optional(),
65
- externalEmail: z.string().nullable().optional(),
66
- sourceEntityType: z.string().nullable().optional(),
67
58
  body: z.string(),
68
59
  bodyFormat: z.enum(['text', 'markdown']).optional(),
69
60
  sentAt: z.string().nullable().optional(),
@@ -135,17 +126,7 @@ export const messageDetailResponseSchema = z.object({
135
126
  isRead: z.boolean(),
136
127
  conversationArchived: z.boolean(),
137
128
  conversationAllUnread: z.boolean(),
138
- _channel: z.record(z.string(), z.unknown()).nullable().optional(),
139
- _channelPayload: z.record(z.string(), z.unknown()).nullable().optional(),
140
- _channelContact: z.record(z.string(), z.unknown()).nullable().optional(),
141
- _reactions: z.array(z.record(z.string(), z.unknown())).optional(),
142
- _meta: enrichmentMetaSchema.optional(),
143
129
  })
144
- // The detail route runs response enrichers for `messages.message`, so any
145
- // module registering one may contribute further `_`-prefixed keys. Without
146
- // this the generator emits `additionalProperties: false` and the published
147
- // spec forbids the very fields the route returns.
148
- .passthrough()
149
130
 
150
131
  export const messageTokenDetailResponseSchema = z.object({
151
132
  id: z.string().uuid(),
@@ -284,7 +265,6 @@ export {
284
265
  messageObjectSchema,
285
266
  messageRecipientSchema,
286
267
  composeMessageSchema,
287
- composeMessageRequestSchema,
288
268
  listMessagesSchema,
289
269
  forwardMessageSchema,
290
270
  replyMessageSchema,
@@ -17,11 +17,6 @@ import { lookupHashCandidates } from '@open-mercato/shared/lib/encryption/aes'
17
17
  import { User } from '../../auth/data/entities'
18
18
  import { Message, MessageObject } from '../data/entities'
19
19
  import { composeMessageSchema, listMessagesSchema, type ListMessagesInput } from '../data/validators'
20
- import {
21
- composeRequiresChannelTypeResolution,
22
- composeSourceHintSchema,
23
- resolveComposeSourceChannelType,
24
- } from '../lib/composeSourceChannelType'
25
20
  import { MESSAGE_ATTACHMENT_ENTITY_ID } from '../lib/constants'
26
21
  import { getMessageType } from '../lib/message-types-registry'
27
22
  import { validateMessageObjectsForType } from '../lib/object-validation'
@@ -32,7 +27,7 @@ import { resolveUserFeatures, runMessageMutationGuardAfterSuccess, runMessageMut
32
27
  import { findMessageIdsBySearchTokens } from '../lib/searchLookup'
33
28
  import { MessageCommandExecuteResult } from '../commands/shared'
34
29
  import {
35
- composeMessageRequestSchema as composeSchema,
30
+ composeMessageSchema as composeSchema,
36
31
  composeResponseSchema,
37
32
  listMessagesSchema as listSchema,
38
33
  messageListItemSchema,
@@ -450,31 +445,7 @@ export async function POST(req: Request) {
450
445
  const { ctx, scope } = await resolveMessageContext(req)
451
446
  const commandBus = ctx.container.resolve('commandBus') as CommandBus
452
447
  const body = await req.json().catch(() => ({}))
453
-
454
- // #4975: whether `externalEmail` is required depends on the channel this
455
- // message originates from, so the channel type has to be established BEFORE
456
- // validation. It is resolved server-side from the referenced conversation or
457
- // parent message and any client-sent `sourceChannelType` is dropped —
458
- // otherwise a caller could waive the requirement by asserting its own type.
459
- // An unresolvable source stays `undefined`, which the validator fails closed on.
460
- // Only the "public, non-draft, no address" branch of the validator reads the
461
- // answer, so every other compose skips the lookup instead of discarding it.
462
- const sourceHint = composeRequiresChannelTypeResolution(body)
463
- ? composeSourceHintSchema.safeParse(body)
464
- : null
465
- const sourceChannelType = sourceHint?.success
466
- ? await resolveComposeSourceChannelType(
467
- ctx.container,
468
- { tenantId: scope.tenantId, organizationId: scope.organizationId ?? null },
469
- sourceHint.data,
470
- )
471
- : undefined
472
- const { sourceChannelType: _clientSuppliedChannelType, ...clientBody } =
473
- (body ?? {}) as Record<string, unknown>
474
- const input = composeMessageSchema.parse({
475
- ...clientBody,
476
- ...(sourceChannelType ? { sourceChannelType } : {}),
477
- })
448
+ const input = composeMessageSchema.parse(body)
478
449
 
479
450
  const isPublicVisibility = input.visibility === 'public'
480
451
  const sendViaEmail = isPublicVisibility ? true : input.sendViaEmail
@@ -24,7 +24,6 @@ import { useMessagesInboxBulkActions, type MessageFolder } from './useMessagesIn
24
24
  import {
25
25
  buildMessagesInboxFilters,
26
26
  buildMessagesListParams,
27
- buildSenderOptionsFromMessages,
28
27
  type SenderOption,
29
28
  } from './inboxFilters'
30
29
  import { createLogger } from '@open-mercato/shared/lib/logger'
@@ -39,9 +38,6 @@ type MessageListItem = {
39
38
  senderUserId: string
40
39
  senderName?: string | null
41
40
  senderEmail?: string | null
42
- externalName?: string | null
43
- externalEmail?: string | null
44
- sourceEntityType?: string | null
45
41
  priority: string
46
42
  status: string
47
43
  hasObjects: boolean
@@ -62,7 +58,6 @@ type MessageListResponse = {
62
58
  page?: number
63
59
  pageSize?: number
64
60
  totalPages?: number
65
- totalIsCapped?: boolean
66
61
  }
67
62
 
68
63
  type MessageTypeItem = {
@@ -143,7 +138,6 @@ export function MessagesInboxPageClient() {
143
138
  page: Number(call.result?.page ?? page),
144
139
  pageSize: Number(call.result?.pageSize ?? pageSize),
145
140
  totalPages: Number(call.result?.totalPages ?? 0),
146
- totalIsCapped: call.result?.totalIsCapped === true,
147
141
  }
148
142
  },
149
143
  })
@@ -242,7 +236,22 @@ export function MessagesInboxPageClient() {
242
236
 
243
237
  React.useEffect(() => {
244
238
  const items = listQuery.data?.items ?? []
245
- mergeSenderOptions(buildSenderOptionsFromMessages(items))
239
+ const next = items.flatMap((item): SenderOption[] => {
240
+ if (typeof item.senderUserId !== 'string' || item.senderUserId.trim().length === 0) return []
241
+ const name = typeof item.senderName === 'string' && item.senderName.trim().length > 0
242
+ ? item.senderName.trim()
243
+ : null
244
+ const email = typeof item.senderEmail === 'string' && item.senderEmail.trim().length > 0
245
+ ? item.senderEmail.trim()
246
+ : null
247
+ const label = name ?? email ?? item.senderUserId
248
+ return [{
249
+ value: item.senderUserId,
250
+ label,
251
+ description: email && email !== label ? email : null,
252
+ }]
253
+ })
254
+ mergeSenderOptions(next)
246
255
  }, [listQuery.data?.items, mergeSenderOptions])
247
256
 
248
257
  React.useEffect(() => {
@@ -352,7 +361,6 @@ export function MessagesInboxPageClient() {
352
361
 
353
362
  const rows = listQuery.data?.items ?? []
354
363
  const total = listQuery.data?.total ?? 0
355
- const totalIsCapped = listQuery.data?.totalIsCapped === true
356
364
  const totalPages = listQuery.data?.totalPages ?? 0
357
365
 
358
366
  return (
@@ -390,7 +398,6 @@ export function MessagesInboxPageClient() {
390
398
  pageSize,
391
399
  total,
392
400
  totalPages,
393
- totalIsCapped,
394
401
  onPageChange: setPage,
395
402
  }}
396
403
  actions={
@@ -8,42 +8,6 @@ export type SenderOption = {
8
8
  description?: string | null
9
9
  }
10
10
 
11
- type SenderOptionSource = {
12
- senderUserId?: string | null
13
- senderName?: string | null
14
- senderEmail?: string | null
15
- }
16
-
17
- /**
18
- * Sender-filter options derived from the rows currently in the list.
19
- *
20
- * The filter narrows by `senderUserId`, so a row only yields an honest option
21
- * when it also carries the platform identity behind that id. Ingested external
22
- * mail does not: every such message in a tenant is composed under one
23
- * system-user id, so labelling that id with one external sender's name would
24
- * collapse every external sender into a single option that quietly returns all
25
- * of their mail. Those rows are skipped, and the directory-loaded options —
26
- * which are real platform users — stand alone.
27
- */
28
- export function buildSenderOptionsFromMessages(items: SenderOptionSource[]): SenderOption[] {
29
- return items.flatMap((item): SenderOption[] => {
30
- if (typeof item.senderUserId !== 'string' || item.senderUserId.trim().length === 0) return []
31
- const name = typeof item.senderName === 'string' && item.senderName.trim().length > 0
32
- ? item.senderName.trim()
33
- : null
34
- const email = typeof item.senderEmail === 'string' && item.senderEmail.trim().length > 0
35
- ? item.senderEmail.trim()
36
- : null
37
- const label = name ?? email
38
- if (!label) return []
39
- return [{
40
- value: item.senderUserId,
41
- label,
42
- description: email && email !== label ? email : null,
43
- }]
44
- })
45
- }
46
-
47
11
  export type MessagesInboxFilterContext = {
48
12
  t: Translator
49
13
  typeOptions: { value: string; label: string }[]
@@ -4,16 +4,12 @@ import * as React from 'react'
4
4
  import type { TranslateFn } from '@open-mercato/shared/lib/i18n/context'
5
5
  import type { MessageListItemProps } from '@open-mercato/shared/modules/messages/types'
6
6
  import type { MessageDetail } from '../types'
7
- import { getMessageParticipantLabel } from '../../messageListLabels'
8
7
 
9
8
  export type ConversationItem = {
10
9
  id: string
11
10
  senderUserId: string
12
11
  senderName?: string | null
13
12
  senderEmail?: string | null
14
- externalName?: string | null
15
- externalEmail?: string | null
16
- sourceEntityType?: string | null
17
13
  body: string
18
14
  bodyFormat?: 'text' | 'markdown'
19
15
  sentAt?: string | null
@@ -37,9 +33,6 @@ export function useMessageDetailsConversation({
37
33
  senderUserId: detail.senderUserId,
38
34
  senderName: detail.senderName,
39
35
  senderEmail: detail.senderEmail,
40
- externalName: detail.externalName,
41
- externalEmail: detail.externalEmail,
42
- sourceEntityType: detail.sourceEntityType,
43
36
  body: detail.body,
44
37
  bodyFormat: detail.bodyFormat,
45
38
  sentAt: detail.sentAt,
@@ -53,9 +46,6 @@ export function useMessageDetailsConversation({
53
46
  senderUserId: item.senderUserId,
54
47
  senderName: item.senderName,
55
48
  senderEmail: item.senderEmail,
56
- externalName: item.externalName,
57
- externalEmail: item.externalEmail,
58
- sourceEntityType: item.sourceEntityType,
59
49
  body: item.body,
60
50
  bodyFormat: item.bodyFormat,
61
51
  sentAt: item.sentAt,
@@ -68,9 +58,6 @@ export function useMessageDetailsConversation({
68
58
  senderUserId: detail.senderUserId,
69
59
  senderName: detail.senderName,
70
60
  senderEmail: detail.senderEmail,
71
- externalName: detail.externalName,
72
- externalEmail: detail.externalEmail,
73
- sourceEntityType: detail.sourceEntityType,
74
61
  body: detail.body,
75
62
  bodyFormat: detail.bodyFormat,
76
63
  sentAt: detail.sentAt,
@@ -127,7 +114,7 @@ export function useMessageDetailsConversation({
127
114
  bodyFormat: item.bodyFormat ?? 'text',
128
115
  priority: 'normal',
129
116
  sentAt: item.sentAt ? new Date(item.sentAt) : null,
130
- senderName: getMessageParticipantLabel(item),
117
+ senderName: item.senderName || item.senderEmail || item.senderUserId,
131
118
  hasObjects: (item.objects ?? []).length > 0,
132
119
  objectCount: (item.objects ?? []).length,
133
120
  hasAttachments: false,
@@ -18,7 +18,6 @@ import {
18
18
  } from 'lucide-react'
19
19
  import type { MessageDetail } from '../types'
20
20
  import { formatDateTime } from '../utils'
21
- import { getMessageParticipantLabel } from '../../messageListLabels'
22
21
 
23
22
  type MessageHeaderProps = {
24
23
  detail: MessageDetail
@@ -41,7 +40,6 @@ export function MessageHeader(props: MessageHeaderProps) {
41
40
  const t = useT()
42
41
  const showSubject = props.showSubject !== false
43
42
  const canReply = !props.detail.isDraft && props.detail.typeDefinition.allowReply
44
- const senderLabel = getMessageParticipantLabel(props.detail)
45
43
  const actionItems = React.useMemo(() => {
46
44
  const items: ActionItem[] = []
47
45
 
@@ -123,7 +121,7 @@ export function MessageHeader(props: MessageHeaderProps) {
123
121
  <FormHeader
124
122
  mode="detail"
125
123
  title={showSubject ? props.detail.subject : undefined}
126
- subtitle={`${t('messages.detail.from', 'From')}: ${senderLabel}`}
124
+ subtitle={`${t('messages.detail.from', 'From')}: ${props.detail.senderName || props.detail.senderEmail || props.detail.senderUserId}`}
127
125
  statusBadge={<p className="text-xs text-muted-foreground">{formatDateTime(props.detail.sentAt)}</p>}
128
126
  utilityActions={canReply ? (
129
127
  <IconButton