@open-mercato/core 0.6.8-develop.7099.1.7ba2771d06 → 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 (941) 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/backend/roles/[id]/edit/page.meta.js +1 -5
  42. package/dist/modules/auth/backend/roles/[id]/edit/page.meta.js.map +2 -2
  43. package/dist/modules/auth/backend/roles/page.js +1 -3
  44. package/dist/modules/auth/backend/roles/page.js.map +2 -2
  45. package/dist/modules/auth/backend/users/[id]/edit/page.meta.js +1 -5
  46. package/dist/modules/auth/backend/users/[id]/edit/page.meta.js.map +2 -2
  47. package/dist/modules/auth/backend/users/page.js +1 -2
  48. package/dist/modules/auth/backend/users/page.js.map +2 -2
  49. package/dist/modules/auth/components/AclEditor.js +30 -39
  50. package/dist/modules/auth/components/AclEditor.js.map +2 -2
  51. package/dist/modules/auth/data/entities.js.map +2 -2
  52. package/dist/modules/auth/data/validators.js +1 -5
  53. package/dist/modules/auth/data/validators.js.map +2 -2
  54. package/dist/modules/auth/di.js +9 -35
  55. package/dist/modules/auth/di.js.map +2 -2
  56. package/dist/modules/auth/frontend/reset/[token]/page.js +0 -46
  57. package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
  58. package/dist/modules/auth/lib/grantChecks.js.map +2 -2
  59. package/dist/modules/auth/services/authService.js +2 -16
  60. package/dist/modules/auth/services/authService.js.map +2 -2
  61. package/dist/modules/auth/services/rbacService.js +24 -67
  62. package/dist/modules/auth/services/rbacService.js.map +3 -3
  63. package/dist/modules/business_rules/backend/logs/page.js +1 -3
  64. package/dist/modules/business_rules/backend/logs/page.js.map +2 -2
  65. package/dist/modules/business_rules/backend/rules/[id]/page.meta.js +6 -1
  66. package/dist/modules/business_rules/backend/rules/[id]/page.meta.js.map +2 -2
  67. package/dist/modules/business_rules/backend/rules/create/page.meta.js +5 -1
  68. package/dist/modules/business_rules/backend/rules/create/page.meta.js.map +2 -2
  69. package/dist/modules/business_rules/backend/rules/page.js +1 -3
  70. package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
  71. package/dist/modules/business_rules/backend/sets/[id]/page.meta.js +6 -1
  72. package/dist/modules/business_rules/backend/sets/[id]/page.meta.js.map +2 -2
  73. package/dist/modules/business_rules/backend/sets/create/page.meta.js +5 -1
  74. package/dist/modules/business_rules/backend/sets/create/page.meta.js.map +2 -2
  75. package/dist/modules/business_rules/backend/sets/page.js +1 -3
  76. package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
  77. package/dist/modules/business_rules/lib/expression-evaluator.js +9 -9
  78. package/dist/modules/business_rules/lib/expression-evaluator.js.map +2 -2
  79. package/dist/modules/business_rules/lib/rule-evaluator.js +9 -10
  80. package/dist/modules/business_rules/lib/rule-evaluator.js.map +2 -2
  81. package/dist/modules/catalog/ai-agents.js +1 -1
  82. package/dist/modules/catalog/ai-agents.js.map +1 -1
  83. package/dist/modules/catalog/ai-tools/merchandising-pack.js +2 -2
  84. package/dist/modules/catalog/ai-tools/merchandising-pack.js.map +2 -2
  85. package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js +2 -5
  86. package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js.map +2 -2
  87. package/dist/modules/catalog/components/categories/CategoriesDataTable.js +0 -2
  88. package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
  89. package/dist/modules/catalog/components/products/ProductsDataTable.js +1 -7
  90. package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
  91. package/dist/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.js +0 -2
  92. package/dist/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.js.map +2 -2
  93. package/dist/modules/communication_channels/api/post/channels/[id]/test-send/route.js +1 -9
  94. package/dist/modules/communication_channels/api/post/channels/[id]/test-send/route.js.map +2 -2
  95. package/dist/modules/communication_channels/api/post/test-seed/route.js +10 -95
  96. package/dist/modules/communication_channels/api/post/test-seed/route.js.map +2 -2
  97. package/dist/modules/communication_channels/backend/communication_channels/channels/page.js +0 -3
  98. package/dist/modules/communication_channels/backend/communication_channels/channels/page.js.map +2 -2
  99. package/dist/modules/communication_channels/commands/ingest-inbound-message.js +1 -14
  100. package/dist/modules/communication_channels/commands/ingest-inbound-message.js.map +2 -2
  101. package/dist/modules/communication_channels/di.js +1 -7
  102. package/dist/modules/communication_channels/di.js.map +2 -2
  103. package/dist/modules/communication_channels/lib/email-capabilities.js +1 -4
  104. package/dist/modules/communication_channels/lib/email-capabilities.js.map +2 -2
  105. package/dist/modules/communication_channels/lib/test-seed.js +2 -41
  106. package/dist/modules/communication_channels/lib/test-seed.js.map +2 -2
  107. package/dist/modules/configs/lib/system-status.js +0 -9
  108. package/dist/modules/configs/lib/system-status.js.map +2 -2
  109. package/dist/modules/currencies/backend/currencies/page.js +1 -3
  110. package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
  111. package/dist/modules/currencies/backend/exchange-rates/page.js +1 -3
  112. package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
  113. package/dist/modules/customer_accounts/api/admin/domain-mappings.js +0 -9
  114. package/dist/modules/customer_accounts/api/admin/domain-mappings.js.map +2 -2
  115. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +1 -3
  116. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +2 -2
  117. package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js +84 -0
  118. package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js.map +7 -0
  119. package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js +7 -81
  120. package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js.map +2 -2
  121. package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js +523 -0
  122. package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js.map +7 -0
  123. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js +731 -0
  124. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js.map +7 -0
  125. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +7 -727
  126. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
  127. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +7 -521
  128. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
  129. package/dist/modules/customer_accounts/extension-points.js +1 -1
  130. package/dist/modules/customer_accounts/extension-points.js.map +2 -2
  131. package/dist/modules/customer_accounts/lib/portalUrl.js +69 -0
  132. package/dist/modules/customer_accounts/lib/portalUrl.js.map +7 -0
  133. package/dist/modules/customer_accounts/services/domainMappingService.js +0 -10
  134. package/dist/modules/customer_accounts/services/domainMappingService.js.map +2 -2
  135. package/dist/modules/customers/ai-tools/companies-pack.js +1 -4
  136. package/dist/modules/customers/ai-tools/companies-pack.js.map +2 -2
  137. package/dist/modules/customers/ai-tools/deal-analyzer-pack.js +2 -13
  138. package/dist/modules/customers/ai-tools/deal-analyzer-pack.js.map +2 -2
  139. package/dist/modules/customers/ai-tools/deals-pack.js +6 -52
  140. package/dist/modules/customers/ai-tools/deals-pack.js.map +2 -2
  141. package/dist/modules/customers/ai-tools/people-pack.js +1 -4
  142. package/dist/modules/customers/ai-tools/people-pack.js.map +2 -2
  143. package/dist/modules/customers/api/activities/route.js +6 -48
  144. package/dist/modules/customers/api/activities/route.js.map +2 -2
  145. package/dist/modules/customers/api/companies/[id]/people/route.js +64 -20
  146. package/dist/modules/customers/api/companies/[id]/people/route.js.map +2 -2
  147. package/dist/modules/customers/api/companies/[id]/route.js +94 -17
  148. package/dist/modules/customers/api/companies/[id]/route.js.map +2 -2
  149. package/dist/modules/customers/api/dashboard/widgets/customer-todos/route.js +5 -8
  150. package/dist/modules/customers/api/dashboard/widgets/customer-todos/route.js.map +2 -2
  151. package/dist/modules/customers/api/deals/[id]/companies/route.js +1 -1
  152. package/dist/modules/customers/api/deals/[id]/companies/route.js.map +2 -2
  153. package/dist/modules/customers/api/deals/[id]/people/route.js +1 -1
  154. package/dist/modules/customers/api/deals/[id]/people/route.js.map +2 -2
  155. package/dist/modules/customers/api/deals/[id]/route.js +25 -8
  156. package/dist/modules/customers/api/deals/[id]/route.js.map +2 -2
  157. package/dist/modules/customers/api/deals/[id]/stats/route.js +22 -3
  158. package/dist/modules/customers/api/deals/[id]/stats/route.js.map +2 -2
  159. package/dist/modules/customers/api/deals/aggregate/route.js +4 -11
  160. package/dist/modules/customers/api/deals/aggregate/route.js.map +2 -2
  161. package/dist/modules/customers/api/deals/map/route.js +1 -2
  162. package/dist/modules/customers/api/deals/map/route.js.map +2 -2
  163. package/dist/modules/customers/api/deals/route.js +1 -38
  164. package/dist/modules/customers/api/deals/route.js.map +2 -2
  165. package/dist/modules/customers/api/entity-roles-factory.js +4 -4
  166. package/dist/modules/customers/api/entity-roles-factory.js.map +2 -2
  167. package/dist/modules/customers/api/interactions/route.js +1 -3
  168. package/dist/modules/customers/api/interactions/route.js.map +2 -2
  169. package/dist/modules/customers/api/interactions/tasks/route.js +4 -27
  170. package/dist/modules/customers/api/interactions/tasks/route.js.map +2 -2
  171. package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js +3 -4
  172. package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js.map +2 -2
  173. package/dist/modules/customers/api/people/[id]/companies/context.js +1 -1
  174. package/dist/modules/customers/api/people/[id]/companies/context.js.map +2 -2
  175. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js +1 -1
  176. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js.map +2 -2
  177. package/dist/modules/customers/api/people/[id]/route.js +10 -11
  178. package/dist/modules/customers/api/people/[id]/route.js.map +2 -2
  179. package/dist/modules/customers/api/people/check-phone/route.js +9 -51
  180. package/dist/modules/customers/api/people/check-phone/route.js.map +2 -2
  181. package/dist/modules/customers/api/todos/route.js +5 -30
  182. package/dist/modules/customers/api/todos/route.js.map +2 -2
  183. package/dist/modules/customers/backend/customers/companies/page.js +4 -6
  184. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  185. package/dist/modules/customers/backend/customers/deals/[id]/page.js +1 -6
  186. package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +2 -2
  187. package/dist/modules/customers/backend/customers/deals/page.js +4 -7
  188. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  189. package/dist/modules/customers/backend/customers/deals/pipeline/components/Lane.js +13 -4
  190. package/dist/modules/customers/backend/customers/deals/pipeline/components/Lane.js.map +2 -2
  191. package/dist/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.js +14 -85
  192. package/dist/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.js.map +2 -2
  193. package/dist/modules/customers/backend/customers/people/page.js +4 -6
  194. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  195. package/dist/modules/customers/backend/hooks/useEmailDuplicateCheck.js +3 -9
  196. package/dist/modules/customers/backend/hooks/useEmailDuplicateCheck.js.map +2 -2
  197. package/dist/modules/customers/commands/deals.js +34 -21
  198. package/dist/modules/customers/commands/deals.js.map +2 -2
  199. package/dist/modules/customers/commands/interactions.js.map +1 -1
  200. package/dist/modules/customers/commands/personCompanyLinks.js +2 -131
  201. package/dist/modules/customers/commands/personCompanyLinks.js.map +2 -2
  202. package/dist/modules/customers/components/CustomerTodosTable.js +0 -1
  203. package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
  204. package/dist/modules/customers/components/DealsKpiStrip.js +6 -7
  205. package/dist/modules/customers/components/DealsKpiStrip.js.map +2 -2
  206. package/dist/modules/customers/components/calendar/AgendaList.js +2 -2
  207. package/dist/modules/customers/components/calendar/AgendaList.js.map +2 -2
  208. package/dist/modules/customers/components/calendar/CalendarEventEditor.js +1 -1
  209. package/dist/modules/customers/components/calendar/CalendarEventEditor.js.map +2 -2
  210. package/dist/modules/customers/components/calendar/CalendarScreen.js +1 -1
  211. package/dist/modules/customers/components/calendar/CalendarScreen.js.map +2 -2
  212. package/dist/modules/customers/components/calendar/CalendarSettingsModal.js +1 -1
  213. package/dist/modules/customers/components/calendar/CalendarSettingsModal.js.map +2 -2
  214. package/dist/modules/customers/components/calendar/EventBlock.js +1 -1
  215. package/dist/modules/customers/components/calendar/EventBlock.js.map +2 -2
  216. package/dist/modules/customers/components/calendar/EventPeekPopover.js +2 -3
  217. package/dist/modules/customers/components/calendar/EventPeekPopover.js.map +2 -2
  218. package/dist/modules/customers/components/calendar/editor/PeopleField.js +5 -40
  219. package/dist/modules/customers/components/calendar/editor/PeopleField.js.map +2 -2
  220. package/dist/modules/customers/components/calendar/editor/hooks.js +1 -2
  221. package/dist/modules/customers/components/calendar/editor/hooks.js.map +2 -2
  222. package/dist/modules/customers/components/calendar/types.js +1 -1
  223. package/dist/modules/customers/components/calendar/types.js.map +2 -2
  224. package/dist/modules/customers/components/detail/AssignRoleDialog.js +33 -28
  225. package/dist/modules/customers/components/detail/AssignRoleDialog.js.map +2 -2
  226. package/dist/modules/customers/components/detail/CompanyKpiBar.js +4 -5
  227. package/dist/modules/customers/components/detail/CompanyKpiBar.js.map +2 -2
  228. package/dist/modules/customers/components/detail/CompanyPeopleSection.js +1 -3
  229. package/dist/modules/customers/components/detail/CompanyPeopleSection.js.map +2 -2
  230. package/dist/modules/customers/components/detail/DealForm.js +7 -19
  231. package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
  232. package/dist/modules/customers/components/detail/DealsSection.js +5 -6
  233. package/dist/modules/customers/components/detail/DealsSection.js.map +2 -2
  234. package/dist/modules/customers/components/detail/EntityTagsDialog.js +11 -35
  235. package/dist/modules/customers/components/detail/EntityTagsDialog.js.map +2 -2
  236. package/dist/modules/customers/components/detail/PersonCompaniesSection.js +1 -3
  237. package/dist/modules/customers/components/detail/PersonCompaniesSection.js.map +2 -2
  238. package/dist/modules/customers/components/detail/hooks/usePersonTasks.js +13 -19
  239. package/dist/modules/customers/components/detail/hooks/usePersonTasks.js.map +2 -2
  240. package/dist/modules/customers/components/detail/schedule/ParticipantsField.js +4 -4
  241. package/dist/modules/customers/components/detail/schedule/ParticipantsField.js.map +2 -2
  242. package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js +3 -3
  243. package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js.map +2 -2
  244. package/dist/modules/customers/components/detail/utils.js +5 -5
  245. package/dist/modules/customers/components/detail/utils.js.map +2 -2
  246. package/dist/modules/customers/data/entities.js.map +1 -1
  247. package/dist/modules/customers/data/validators.js +3 -32
  248. package/dist/modules/customers/data/validators.js.map +2 -2
  249. package/dist/modules/customers/events.js +0 -5
  250. package/dist/modules/customers/events.js.map +2 -2
  251. package/dist/modules/customers/lib/calendar/conflicts.js +2 -8
  252. package/dist/modules/customers/lib/calendar/conflicts.js.map +2 -2
  253. package/dist/modules/customers/lib/calendar/editorPayload.js +2 -3
  254. package/dist/modules/customers/lib/calendar/editorPayload.js.map +2 -2
  255. package/dist/modules/customers/lib/calendar/mapItem.js +3 -8
  256. package/dist/modules/customers/lib/calendar/mapItem.js.map +2 -2
  257. package/dist/modules/customers/lib/dealStatus.js +0 -30
  258. package/dist/modules/customers/lib/dealStatus.js.map +2 -2
  259. package/dist/modules/customers/lib/findPeopleByAddresses.js +0 -1
  260. package/dist/modules/customers/lib/findPeopleByAddresses.js.map +2 -2
  261. package/dist/modules/customers/lib/personCompanies.js +2 -100
  262. package/dist/modules/customers/lib/personCompanies.js.map +2 -2
  263. package/dist/modules/customers/lib/todoCompatibility.js +0 -12
  264. package/dist/modules/customers/lib/todoCompatibility.js.map +2 -2
  265. package/dist/modules/dashboards/lib/widgetScope.js +1 -6
  266. package/dist/modules/dashboards/lib/widgetScope.js.map +2 -2
  267. package/dist/modules/data_sync/backend/data-sync/page.js +1 -3
  268. package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
  269. package/dist/modules/data_sync/lib/sync-engine.js +6 -72
  270. package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
  271. package/dist/modules/data_sync/workers/sync-export.js +1 -5
  272. package/dist/modules/data_sync/workers/sync-export.js.map +2 -2
  273. package/dist/modules/data_sync/workers/sync-import.js +1 -5
  274. package/dist/modules/data_sync/workers/sync-import.js.map +2 -2
  275. package/dist/modules/devices/api/admin/devices/[id]/route.js +32 -5
  276. package/dist/modules/devices/api/admin/devices/[id]/route.js.map +2 -2
  277. package/dist/modules/devices/api/admin/devices/route.js +1 -14
  278. package/dist/modules/devices/api/admin/devices/route.js.map +2 -2
  279. package/dist/modules/devices/api/deviceList.js +12 -99
  280. package/dist/modules/devices/api/deviceList.js.map +2 -2
  281. package/dist/modules/devices/api/openapi.js +1 -3
  282. package/dist/modules/devices/api/openapi.js.map +2 -2
  283. package/dist/modules/devices/api/route.js +1 -9
  284. package/dist/modules/devices/api/route.js.map +2 -2
  285. package/dist/modules/devices/backend/devices/[id]/page.js +8 -8
  286. package/dist/modules/devices/backend/devices/[id]/page.js.map +2 -2
  287. package/dist/modules/devices/backend/devices/page.js +13 -15
  288. package/dist/modules/devices/backend/devices/page.js.map +2 -2
  289. package/dist/modules/directory/backend/directory/organizations/page.js +1 -2
  290. package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
  291. package/dist/modules/directory/backend/directory/tenants/page.js +1 -2
  292. package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
  293. package/dist/modules/directory/di.js +0 -9
  294. package/dist/modules/directory/di.js.map +2 -2
  295. package/dist/modules/directory/utils/organizationScope.js.map +2 -2
  296. package/dist/modules/entities/api/records.js +2 -4
  297. package/dist/modules/entities/api/records.js.map +2 -2
  298. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +1 -3
  299. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
  300. package/dist/modules/eudr/api/plots/route.js +1 -5
  301. package/dist/modules/eudr/api/plots/route.js.map +2 -2
  302. package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js +3 -1
  303. package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js.map +2 -2
  304. package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js +1 -0
  305. package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js.map +2 -2
  306. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.js +0 -3
  307. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.js.map +2 -2
  308. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js +4 -1
  309. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js.map +2 -2
  310. package/dist/modules/eudr/backend/eudr/page.meta.js +2 -2
  311. package/dist/modules/eudr/backend/eudr/page.meta.js.map +2 -2
  312. package/dist/modules/eudr/backend/eudr/plots/[id]/page.js +8 -2
  313. package/dist/modules/eudr/backend/eudr/plots/[id]/page.js.map +2 -2
  314. package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js +3 -1
  315. package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js.map +2 -2
  316. package/dist/modules/eudr/backend/eudr/plots/create/page.js +8 -2
  317. package/dist/modules/eudr/backend/eudr/plots/create/page.js.map +2 -2
  318. package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js +1 -0
  319. package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js.map +2 -2
  320. package/dist/modules/eudr/backend/eudr/plots/page.js +0 -3
  321. package/dist/modules/eudr/backend/eudr/plots/page.js.map +2 -2
  322. package/dist/modules/eudr/backend/eudr/plots/page.meta.js +4 -1
  323. package/dist/modules/eudr/backend/eudr/plots/page.meta.js.map +2 -2
  324. package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js +3 -1
  325. package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js.map +2 -2
  326. package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js +1 -0
  327. package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js.map +2 -2
  328. package/dist/modules/eudr/backend/eudr/product-mappings/page.js +0 -3
  329. package/dist/modules/eudr/backend/eudr/product-mappings/page.js.map +2 -2
  330. package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js +4 -1
  331. package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js.map +2 -2
  332. package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js +3 -1
  333. package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js.map +2 -2
  334. package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js +1 -0
  335. package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js.map +2 -2
  336. package/dist/modules/eudr/backend/eudr/risk-assessments/page.js +0 -3
  337. package/dist/modules/eudr/backend/eudr/risk-assessments/page.js.map +2 -2
  338. package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js +4 -1
  339. package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js.map +2 -2
  340. package/dist/modules/eudr/backend/eudr/statements/[id]/page.js +2 -0
  341. package/dist/modules/eudr/backend/eudr/statements/[id]/page.js.map +2 -2
  342. package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js +3 -1
  343. package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js.map +2 -2
  344. package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js +1 -0
  345. package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js.map +2 -2
  346. package/dist/modules/eudr/backend/eudr/statements/page.js +30 -28
  347. package/dist/modules/eudr/backend/eudr/statements/page.js.map +2 -2
  348. package/dist/modules/eudr/backend/eudr/statements/page.meta.js +4 -1
  349. package/dist/modules/eudr/backend/eudr/statements/page.meta.js.map +2 -2
  350. package/dist/modules/eudr/commands/statements.js +8 -3
  351. package/dist/modules/eudr/commands/statements.js.map +2 -2
  352. package/dist/modules/eudr/components/crudErrorI18n.js +21 -1
  353. package/dist/modules/eudr/components/crudErrorI18n.js.map +2 -2
  354. package/dist/modules/eudr/components/formConfig.js +6 -2
  355. package/dist/modules/eudr/components/formConfig.js.map +2 -2
  356. package/dist/modules/eudr/data/validators.js +1 -4
  357. package/dist/modules/eudr/data/validators.js.map +2 -2
  358. package/dist/modules/eudr/lib/statement-lifecycle.js +9 -1
  359. package/dist/modules/eudr/lib/statement-lifecycle.js.map +2 -2
  360. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +0 -1
  361. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
  362. package/dist/modules/feature_toggles/components/OverridesTable.js +0 -1
  363. package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
  364. package/dist/modules/feature_toggles/defaults.json +8 -0
  365. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js +0 -3
  366. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js.map +2 -2
  367. package/dist/modules/inbox_ops/backend/inbox-ops/page.js +0 -3
  368. package/dist/modules/inbox_ops/backend/inbox-ops/page.js.map +2 -2
  369. package/dist/modules/inbox_ops/lib/htmlToPlainText.js +12 -1
  370. package/dist/modules/inbox_ops/lib/htmlToPlainText.js.map +2 -2
  371. package/dist/modules/integrations/api/[id]/credentials/route.js +1 -6
  372. package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
  373. package/dist/modules/integrations/backend/integrations/[id]/page.js +29 -38
  374. package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
  375. package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js +9 -36
  376. package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js.map +2 -2
  377. package/dist/modules/integrations/data/validators.js +3 -11
  378. package/dist/modules/integrations/data/validators.js.map +2 -2
  379. package/dist/modules/integrations/lib/credentials-masking.js +2 -6
  380. package/dist/modules/integrations/lib/credentials-masking.js.map +2 -2
  381. package/dist/modules/messages/api/[id]/route.js +1 -29
  382. package/dist/modules/messages/api/[id]/route.js.map +2 -2
  383. package/dist/modules/messages/api/openapi.js +2 -17
  384. package/dist/modules/messages/api/openapi.js.map +2 -2
  385. package/dist/modules/messages/api/route.js +2 -17
  386. package/dist/modules/messages/api/route.js.map +2 -2
  387. package/dist/modules/messages/components/MessagesInboxPageClient.js +14 -7
  388. package/dist/modules/messages/components/MessagesInboxPageClient.js.map +2 -2
  389. package/dist/modules/messages/components/inboxFilters.js +0 -15
  390. package/dist/modules/messages/components/inboxFilters.js.map +2 -2
  391. package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js +1 -11
  392. package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js.map +2 -2
  393. package/dist/modules/messages/components/message-detail/panels/MessageHeader.js +1 -3
  394. package/dist/modules/messages/components/message-detail/panels/MessageHeader.js.map +2 -2
  395. package/dist/modules/messages/components/message-detail/panels/thread-panel.js +1 -2
  396. package/dist/modules/messages/components/message-detail/panels/thread-panel.js.map +2 -2
  397. package/dist/modules/messages/components/messageListLabels.js +2 -14
  398. package/dist/modules/messages/components/messageListLabels.js.map +2 -2
  399. package/dist/modules/messages/data/validators.js +4 -18
  400. package/dist/modules/messages/data/validators.js.map +2 -2
  401. package/dist/modules/payment_gateways/api/webhook/[provider]/route.js +6 -4
  402. package/dist/modules/payment_gateways/api/webhook/[provider]/route.js.map +2 -2
  403. package/dist/modules/payment_gateways/backend/payment-gateways/page.js +1 -3
  404. package/dist/modules/payment_gateways/backend/payment-gateways/page.js.map +2 -2
  405. package/dist/modules/payment_gateways/lib/webhook-processor.js +0 -7
  406. package/dist/modules/payment_gateways/lib/webhook-processor.js.map +2 -2
  407. package/dist/modules/planner/backend/planner/availability-rulesets/page.js +0 -3
  408. package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
  409. package/dist/modules/push_notifications/backend/push_notifications/page.js +1 -3
  410. package/dist/modules/push_notifications/backend/push_notifications/page.js.map +2 -2
  411. package/dist/modules/push_notifications/backend/push_notifications/send/page.js +1 -1
  412. package/dist/modules/push_notifications/backend/push_notifications/send/page.js.map +2 -2
  413. package/dist/modules/query_index/lib/engine.js +51 -150
  414. package/dist/modules/query_index/lib/engine.js.map +2 -2
  415. package/dist/modules/query_index/lib/search-tokens.js +3 -79
  416. package/dist/modules/query_index/lib/search-tokens.js.map +2 -2
  417. package/dist/modules/resources/backend/resources/resource-types/page.js +1 -3
  418. package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
  419. package/dist/modules/resources/backend/resources/resources/page.js +1 -3
  420. package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
  421. package/dist/modules/sales/backend/sales/channels/offers/page.js +0 -3
  422. package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
  423. package/dist/modules/sales/backend/sales/channels/page.js +0 -3
  424. package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
  425. package/dist/modules/sales/backend/sales/documents/[id]/page.js +8 -10
  426. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  427. package/dist/modules/sales/commands/documents.js +1 -79
  428. package/dist/modules/sales/commands/documents.js.map +2 -2
  429. package/dist/modules/sales/components/PriceWithCurrency.js +5 -7
  430. package/dist/modules/sales/components/PriceWithCurrency.js.map +2 -2
  431. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +0 -3
  432. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
  433. package/dist/modules/sales/components/documents/AdjustmentsSection.js +6 -8
  434. package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
  435. package/dist/modules/sales/components/documents/ItemsSection.js +22 -51
  436. package/dist/modules/sales/components/documents/ItemsSection.js.map +2 -2
  437. package/dist/modules/sales/components/documents/LineItemDialog.js +19 -84
  438. package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
  439. package/dist/modules/sales/components/documents/PaymentsSection.js +9 -23
  440. package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
  441. package/dist/modules/sales/components/documents/ReturnsSection.js +6 -8
  442. package/dist/modules/sales/components/documents/ReturnsSection.js.map +2 -2
  443. package/dist/modules/sales/components/documents/SalesDocumentsTable.js +14 -68
  444. package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
  445. package/dist/modules/sales/components/documents/SalesOrderDraftLines.js +5 -6
  446. package/dist/modules/sales/components/documents/SalesOrderDraftLines.js.map +2 -2
  447. package/dist/modules/sales/components/documents/ShipmentDialog.js +4 -5
  448. package/dist/modules/sales/components/documents/ShipmentDialog.js.map +2 -2
  449. package/dist/modules/sales/components/documents/ShipmentsSection.js +6 -8
  450. package/dist/modules/sales/components/documents/ShipmentsSection.js.map +2 -2
  451. package/dist/modules/sales/components/documents/lineItemUtils.js +2 -2
  452. package/dist/modules/sales/components/documents/lineItemUtils.js.map +2 -2
  453. package/dist/modules/sales/data/entities.js +2 -8
  454. package/dist/modules/sales/data/entities.js.map +2 -2
  455. package/dist/modules/sales/extension-points.js +0 -1
  456. package/dist/modules/sales/extension-points.js.map +2 -2
  457. package/dist/modules/sales/setup.js +0 -2
  458. package/dist/modules/sales/setup.js.map +2 -2
  459. package/dist/modules/sales/widgets/injection/document-history/widget.client.js +44 -2
  460. package/dist/modules/sales/widgets/injection/document-history/widget.client.js.map +2 -2
  461. package/dist/modules/sales/widgets/injection/payment-gateway-status-column/widget.js +2 -10
  462. package/dist/modules/sales/widgets/injection/payment-gateway-status-column/widget.js.map +2 -2
  463. package/dist/modules/sales/widgets/injection-table.js +7 -4
  464. package/dist/modules/sales/widgets/injection-table.js.map +2 -2
  465. package/dist/modules/staff/backend/staff/leave-requests/page.js +0 -3
  466. package/dist/modules/staff/backend/staff/leave-requests/page.js.map +2 -2
  467. package/dist/modules/staff/backend/staff/my-leave-requests/page.js +0 -3
  468. package/dist/modules/staff/backend/staff/my-leave-requests/page.js.map +2 -2
  469. package/dist/modules/staff/backend/staff/team-members/page.js +0 -3
  470. package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
  471. package/dist/modules/staff/backend/staff/team-roles/page.js +0 -3
  472. package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
  473. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +0 -3
  474. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
  475. package/dist/modules/staff/backend/staff/teams/page.js +0 -3
  476. package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
  477. package/dist/modules/staff/backend/staff/timesheets/page.js +18 -29
  478. package/dist/modules/staff/backend/staff/timesheets/page.js.map +2 -2
  479. package/dist/modules/staff/backend/staff/timesheets/projects/page.js +0 -3
  480. package/dist/modules/staff/backend/staff/timesheets/projects/page.js.map +2 -2
  481. package/dist/modules/sync_excel/lib/adapters/customers.js +0 -1
  482. package/dist/modules/sync_excel/lib/adapters/customers.js.map +2 -2
  483. package/dist/modules/warranty_claims/api/assignees/route.js +3 -3
  484. package/dist/modules/warranty_claims/api/assignees/route.js.map +2 -2
  485. package/dist/modules/warranty_claims/api/portal/attachments/route.js +2 -2
  486. package/dist/modules/warranty_claims/api/portal/attachments/route.js.map +2 -2
  487. package/dist/modules/warranty_claims/api/portal/claims/route.js +9 -12
  488. package/dist/modules/warranty_claims/api/portal/claims/route.js.map +2 -2
  489. package/dist/modules/warranty_claims/backend/page.js +0 -3
  490. package/dist/modules/warranty_claims/backend/page.js.map +2 -2
  491. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js +0 -3
  492. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js.map +2 -2
  493. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js +0 -3
  494. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js.map +2 -2
  495. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js +0 -3
  496. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js.map +2 -2
  497. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js +0 -3
  498. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js.map +2 -2
  499. package/dist/modules/wms/api/warehouses/route.js +9 -13
  500. package/dist/modules/wms/api/warehouses/route.js.map +2 -2
  501. package/dist/modules/wms/api/zones/route.js +2 -15
  502. package/dist/modules/wms/api/zones/route.js.map +2 -2
  503. package/dist/modules/wms/commands/configuration.js +9 -121
  504. package/dist/modules/wms/commands/configuration.js.map +2 -2
  505. package/dist/modules/wms/commands/inventory-actions.js +0 -3
  506. package/dist/modules/wms/commands/inventory-actions.js.map +2 -2
  507. package/dist/modules/wms/commands/shared.js +1 -9
  508. package/dist/modules/wms/commands/shared.js.map +2 -2
  509. package/dist/modules/wms/components/backend/WmsConfigurationPage.js +111 -76
  510. package/dist/modules/wms/components/backend/WmsConfigurationPage.js.map +3 -3
  511. package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js +0 -1
  512. package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js.map +2 -2
  513. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +20 -16
  514. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
  515. package/dist/modules/wms/components/backend/WmsLotDetailPage.js +10 -6
  516. package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
  517. package/dist/modules/wms/components/backend/WmsLotsListPage.js +0 -1
  518. package/dist/modules/wms/components/backend/WmsLotsListPage.js.map +2 -2
  519. package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js +11 -7
  520. package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js.map +2 -2
  521. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +10 -6
  522. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
  523. package/dist/modules/wms/components/backend/inventoryMutationLoaders.js +20 -27
  524. package/dist/modules/wms/components/backend/inventoryMutationLoaders.js.map +2 -2
  525. package/dist/modules/workflows/backend/definitions/page.js +1 -3
  526. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  527. package/dist/modules/workflows/backend/events/page.js +1 -3
  528. package/dist/modules/workflows/backend/events/page.js.map +2 -2
  529. package/dist/modules/workflows/backend/instances/page.js +1 -3
  530. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  531. package/dist/modules/workflows/backend/tasks/page.js +1 -3
  532. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  533. package/dist/modules/workflows/lib/activity-executor.js +0 -4
  534. package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
  535. package/package.json +10 -9
  536. package/src/helpers/integration/api.ts +1 -33
  537. package/src/helpers/integration/communicationChannelsFixtures.ts +1 -69
  538. package/src/modules/api_keys/api/keys/route.ts +1 -3
  539. package/src/modules/api_keys/backend/api-keys/page.tsx +1 -4
  540. package/src/modules/attachments/AGENTS.md +0 -15
  541. package/src/modules/attachments/api/route.ts +2 -2
  542. package/src/modules/attachments/components/AttachmentLibrary.tsx +0 -3
  543. package/src/modules/attachments/di.ts +0 -16
  544. package/src/modules/attachments/i18n/de.json +0 -5
  545. package/src/modules/attachments/i18n/en.json +0 -5
  546. package/src/modules/attachments/i18n/es.json +0 -5
  547. package/src/modules/attachments/i18n/ko.json +0 -5
  548. package/src/modules/attachments/i18n/pl.json +0 -5
  549. package/src/modules/attachments/index.ts +0 -10
  550. package/src/modules/attachments/lib/scoped-upload-service.ts +0 -46
  551. package/src/modules/attachments/lib/upload-limits.ts +2 -6
  552. package/src/modules/audit_logs/backend/audit-logs/page.tsx +0 -8
  553. package/src/modules/audit_logs/lib/display-helpers.tsx +32 -42
  554. package/src/modules/audit_logs/services/actionLogService.ts +11 -74
  555. package/src/modules/auth/acl.ts +6 -30
  556. package/src/modules/auth/api/feature-check.ts +3 -10
  557. package/src/modules/auth/api/login.ts +24 -9
  558. package/src/modules/auth/api/roles/acl/route.ts +39 -42
  559. package/src/modules/auth/api/routeError.ts +30 -0
  560. package/src/modules/auth/api/session/refresh.ts +1 -32
  561. package/src/modules/auth/api/users/acl/route.ts +101 -185
  562. package/src/modules/auth/backend/roles/[id]/edit/page.meta.ts +2 -5
  563. package/src/modules/auth/backend/roles/page.tsx +2 -4
  564. package/src/modules/auth/backend/users/[id]/edit/page.meta.ts +2 -5
  565. package/src/modules/auth/backend/users/page.tsx +2 -3
  566. package/src/modules/auth/components/AclEditor.tsx +33 -63
  567. package/src/modules/auth/data/entities.ts +1 -4
  568. package/src/modules/auth/data/validators.ts +0 -5
  569. package/src/modules/auth/di.ts +16 -46
  570. package/src/modules/auth/frontend/reset/[token]/page.tsx +0 -74
  571. package/src/modules/auth/i18n/de.json +0 -389
  572. package/src/modules/auth/i18n/en.json +0 -389
  573. package/src/modules/auth/i18n/es.json +0 -389
  574. package/src/modules/auth/i18n/ko.json +0 -389
  575. package/src/modules/auth/i18n/pl.json +2 -391
  576. package/src/modules/auth/lib/grantChecks.ts +0 -6
  577. package/src/modules/auth/services/authService.ts +2 -18
  578. package/src/modules/auth/services/rbacService.ts +24 -110
  579. package/src/modules/business_rules/backend/logs/page.tsx +1 -4
  580. package/src/modules/business_rules/backend/rules/[id]/page.meta.ts +5 -0
  581. package/src/modules/business_rules/backend/rules/create/page.meta.ts +5 -1
  582. package/src/modules/business_rules/backend/rules/page.tsx +1 -4
  583. package/src/modules/business_rules/backend/sets/[id]/page.meta.ts +5 -0
  584. package/src/modules/business_rules/backend/sets/create/page.meta.ts +5 -1
  585. package/src/modules/business_rules/backend/sets/page.tsx +1 -4
  586. package/src/modules/business_rules/lib/expression-evaluator.ts +9 -9
  587. package/src/modules/business_rules/lib/rule-evaluator.ts +9 -10
  588. package/src/modules/catalog/ai-agents.ts +1 -1
  589. package/src/modules/catalog/ai-tools/merchandising-pack.ts +2 -2
  590. package/src/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.tsx +5 -12
  591. package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +0 -3
  592. package/src/modules/catalog/components/products/ProductsDataTable.tsx +0 -7
  593. package/src/modules/catalog/i18n/de.json +0 -1
  594. package/src/modules/catalog/i18n/en.json +0 -1
  595. package/src/modules/catalog/i18n/es.json +0 -1
  596. package/src/modules/catalog/i18n/ko.json +0 -1
  597. package/src/modules/catalog/i18n/pl.json +0 -1
  598. package/src/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.tsx +0 -4
  599. package/src/modules/communication_channels/api/post/channels/[id]/test-send/route.ts +1 -17
  600. package/src/modules/communication_channels/api/post/test-seed/route.ts +16 -155
  601. package/src/modules/communication_channels/backend/communication_channels/channels/page.tsx +0 -4
  602. package/src/modules/communication_channels/commands/ingest-inbound-message.ts +1 -38
  603. package/src/modules/communication_channels/di.ts +0 -7
  604. package/src/modules/communication_channels/lib/adapter.ts +0 -14
  605. package/src/modules/communication_channels/lib/email-capabilities.ts +0 -4
  606. package/src/modules/communication_channels/lib/test-seed.ts +4 -64
  607. package/src/modules/configs/i18n/de.json +0 -2
  608. package/src/modules/configs/i18n/en.json +0 -2
  609. package/src/modules/configs/i18n/es.json +0 -2
  610. package/src/modules/configs/i18n/ko.json +0 -2
  611. package/src/modules/configs/i18n/pl.json +0 -2
  612. package/src/modules/configs/lib/system-status.ts +0 -9
  613. package/src/modules/currencies/backend/currencies/page.tsx +1 -4
  614. package/src/modules/currencies/backend/exchange-rates/page.tsx +1 -4
  615. package/src/modules/customer_accounts/api/admin/domain-mappings.ts +0 -7
  616. package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +1 -4
  617. package/src/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.tsx +138 -0
  618. package/src/modules/customer_accounts/backend/customer_accounts/settings/page.tsx +8 -132
  619. package/src/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.tsx +598 -0
  620. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.tsx +838 -0
  621. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +6 -838
  622. package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +6 -590
  623. package/src/modules/customer_accounts/extension-points.ts +1 -1
  624. package/src/modules/customer_accounts/lib/portalUrl.ts +112 -0
  625. package/src/modules/customer_accounts/services/domainMappingService.ts +0 -10
  626. package/src/modules/customers/ai-tools/companies-pack.ts +1 -4
  627. package/src/modules/customers/ai-tools/deal-analyzer-pack.ts +2 -17
  628. package/src/modules/customers/ai-tools/deals-pack.ts +1 -66
  629. package/src/modules/customers/ai-tools/people-pack.ts +1 -4
  630. package/src/modules/customers/api/activities/route.ts +0 -45
  631. package/src/modules/customers/api/companies/[id]/people/route.ts +73 -24
  632. package/src/modules/customers/api/companies/[id]/route.ts +107 -24
  633. package/src/modules/customers/api/dashboard/widgets/customer-todos/route.ts +8 -16
  634. package/src/modules/customers/api/deals/[id]/companies/route.ts +1 -4
  635. package/src/modules/customers/api/deals/[id]/people/route.ts +1 -4
  636. package/src/modules/customers/api/deals/[id]/route.ts +28 -17
  637. package/src/modules/customers/api/deals/[id]/stats/route.ts +25 -10
  638. package/src/modules/customers/api/deals/aggregate/route.ts +4 -14
  639. package/src/modules/customers/api/deals/map/route.ts +0 -1
  640. package/src/modules/customers/api/deals/route.ts +1 -50
  641. package/src/modules/customers/api/entity-roles-factory.ts +4 -8
  642. package/src/modules/customers/api/interactions/route.ts +2 -8
  643. package/src/modules/customers/api/interactions/tasks/route.ts +1 -24
  644. package/src/modules/customers/api/people/[id]/companies/[linkId]/route.ts +4 -12
  645. package/src/modules/customers/api/people/[id]/companies/context.ts +1 -4
  646. package/src/modules/customers/api/people/[id]/companies/enriched/route.ts +1 -4
  647. package/src/modules/customers/api/people/[id]/route.ts +11 -16
  648. package/src/modules/customers/api/people/check-phone/route.ts +10 -75
  649. package/src/modules/customers/api/todos/route.ts +2 -27
  650. package/src/modules/customers/backend/customers/companies/page.tsx +4 -7
  651. package/src/modules/customers/backend/customers/deals/[id]/page.tsx +2 -7
  652. package/src/modules/customers/backend/customers/deals/page.tsx +4 -10
  653. package/src/modules/customers/backend/customers/deals/pipeline/components/Lane.tsx +14 -5
  654. package/src/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.tsx +27 -109
  655. package/src/modules/customers/backend/customers/people/page.tsx +4 -7
  656. package/src/modules/customers/backend/hooks/useEmailDuplicateCheck.ts +4 -12
  657. package/src/modules/customers/commands/deals.ts +59 -34
  658. package/src/modules/customers/commands/interactions.ts +1 -1
  659. package/src/modules/customers/commands/personCompanyLinks.ts +8 -224
  660. package/src/modules/customers/components/CustomerTodosTable.tsx +0 -2
  661. package/src/modules/customers/components/DealsKpiStrip.tsx +7 -7
  662. package/src/modules/customers/components/calendar/AgendaList.tsx +3 -3
  663. package/src/modules/customers/components/calendar/CalendarEventEditor.tsx +1 -1
  664. package/src/modules/customers/components/calendar/CalendarScreen.tsx +1 -1
  665. package/src/modules/customers/components/calendar/CalendarSettingsModal.tsx +1 -1
  666. package/src/modules/customers/components/calendar/EventBlock.tsx +2 -2
  667. package/src/modules/customers/components/calendar/EventPeekPopover.tsx +2 -4
  668. package/src/modules/customers/components/calendar/editor/PeopleField.tsx +5 -61
  669. package/src/modules/customers/components/calendar/editor/hooks.ts +1 -7
  670. package/src/modules/customers/components/calendar/types.ts +2 -2
  671. package/src/modules/customers/components/detail/AssignRoleDialog.tsx +12 -7
  672. package/src/modules/customers/components/detail/CompanyKpiBar.tsx +4 -5
  673. package/src/modules/customers/components/detail/CompanyPeopleSection.tsx +1 -8
  674. package/src/modules/customers/components/detail/DealForm.tsx +2 -22
  675. package/src/modules/customers/components/detail/DealsSection.tsx +5 -11
  676. package/src/modules/customers/components/detail/EntityTagsDialog.tsx +12 -58
  677. package/src/modules/customers/components/detail/PersonCompaniesSection.tsx +1 -8
  678. package/src/modules/customers/components/detail/hooks/usePersonTasks.ts +14 -23
  679. package/src/modules/customers/components/detail/schedule/ParticipantsField.tsx +5 -5
  680. package/src/modules/customers/components/detail/schedule/useScheduleFormState.ts +5 -5
  681. package/src/modules/customers/components/detail/types.ts +1 -1
  682. package/src/modules/customers/components/detail/utils.ts +5 -15
  683. package/src/modules/customers/data/entities.ts +1 -1
  684. package/src/modules/customers/data/validators.ts +9 -50
  685. package/src/modules/customers/events.ts +0 -5
  686. package/src/modules/customers/i18n/de.json +1 -9
  687. package/src/modules/customers/i18n/en.json +1 -9
  688. package/src/modules/customers/i18n/es.json +1 -9
  689. package/src/modules/customers/i18n/ko.json +1 -9
  690. package/src/modules/customers/i18n/pl.json +1 -9
  691. package/src/modules/customers/lib/calendar/conflicts.ts +2 -10
  692. package/src/modules/customers/lib/calendar/editorPayload.ts +3 -4
  693. package/src/modules/customers/lib/calendar/mapItem.ts +3 -8
  694. package/src/modules/customers/lib/dealStatus.ts +0 -42
  695. package/src/modules/customers/lib/findPeopleByAddresses.ts +6 -8
  696. package/src/modules/customers/lib/personCompanies.ts +1 -136
  697. package/src/modules/customers/lib/todoCompatibility.ts +1 -19
  698. package/src/modules/dashboards/i18n/es.json +4 -4
  699. package/src/modules/dashboards/i18n/pl.json +7 -7
  700. package/src/modules/dashboards/lib/widgetScope.ts +0 -6
  701. package/src/modules/data_sync/AGENTS.md +1 -1
  702. package/src/modules/data_sync/backend/data-sync/page.tsx +1 -4
  703. package/src/modules/data_sync/lib/adapter.ts +0 -36
  704. package/src/modules/data_sync/lib/sync-engine.ts +5 -113
  705. package/src/modules/data_sync/workers/sync-export.ts +0 -4
  706. package/src/modules/data_sync/workers/sync-import.ts +0 -4
  707. package/src/modules/devices/AGENTS.md +0 -8
  708. package/src/modules/devices/api/admin/devices/[id]/route.ts +34 -5
  709. package/src/modules/devices/api/admin/devices/route.ts +1 -14
  710. package/src/modules/devices/api/deviceList.ts +11 -135
  711. package/src/modules/devices/api/openapi.ts +1 -9
  712. package/src/modules/devices/api/route.ts +1 -9
  713. package/src/modules/devices/backend/devices/[id]/page.tsx +15 -15
  714. package/src/modules/devices/backend/devices/page.tsx +21 -24
  715. package/src/modules/directory/backend/directory/organizations/page.tsx +1 -3
  716. package/src/modules/directory/backend/directory/tenants/page.tsx +1 -3
  717. package/src/modules/directory/di.ts +2 -14
  718. package/src/modules/directory/utils/organizationScope.ts +15 -4
  719. package/src/modules/entities/api/records.ts +0 -2
  720. package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +1 -4
  721. package/src/modules/eudr/api/plots/route.ts +0 -4
  722. package/src/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.ts +2 -0
  723. package/src/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.ts +1 -0
  724. package/src/modules/eudr/backend/eudr/evidence-submissions/page.meta.ts +4 -1
  725. package/src/modules/eudr/backend/eudr/evidence-submissions/page.tsx +0 -4
  726. package/src/modules/eudr/backend/eudr/page.meta.ts +2 -2
  727. package/src/modules/eudr/backend/eudr/plots/[id]/page.meta.ts +2 -0
  728. package/src/modules/eudr/backend/eudr/plots/[id]/page.tsx +8 -2
  729. package/src/modules/eudr/backend/eudr/plots/create/page.meta.ts +1 -0
  730. package/src/modules/eudr/backend/eudr/plots/create/page.tsx +8 -2
  731. package/src/modules/eudr/backend/eudr/plots/page.meta.ts +4 -1
  732. package/src/modules/eudr/backend/eudr/plots/page.tsx +0 -4
  733. package/src/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.ts +2 -0
  734. package/src/modules/eudr/backend/eudr/product-mappings/create/page.meta.ts +1 -0
  735. package/src/modules/eudr/backend/eudr/product-mappings/page.meta.ts +4 -1
  736. package/src/modules/eudr/backend/eudr/product-mappings/page.tsx +0 -4
  737. package/src/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.ts +2 -0
  738. package/src/modules/eudr/backend/eudr/risk-assessments/create/page.meta.ts +1 -0
  739. package/src/modules/eudr/backend/eudr/risk-assessments/page.meta.ts +4 -1
  740. package/src/modules/eudr/backend/eudr/risk-assessments/page.tsx +0 -4
  741. package/src/modules/eudr/backend/eudr/statements/[id]/page.meta.ts +2 -0
  742. package/src/modules/eudr/backend/eudr/statements/[id]/page.tsx +2 -0
  743. package/src/modules/eudr/backend/eudr/statements/create/page.meta.ts +1 -0
  744. package/src/modules/eudr/backend/eudr/statements/page.meta.ts +4 -1
  745. package/src/modules/eudr/backend/eudr/statements/page.tsx +32 -30
  746. package/src/modules/eudr/commands/statements.ts +7 -2
  747. package/src/modules/eudr/components/crudErrorI18n.ts +31 -0
  748. package/src/modules/eudr/components/formConfig.tsx +9 -1
  749. package/src/modules/eudr/data/validators.ts +1 -16
  750. package/src/modules/eudr/i18n/de.json +3 -2
  751. package/src/modules/eudr/i18n/en.json +3 -2
  752. package/src/modules/eudr/i18n/es.json +3 -2
  753. package/src/modules/eudr/i18n/ko.json +3 -2
  754. package/src/modules/eudr/i18n/pl.json +3 -2
  755. package/src/modules/eudr/lib/statement-lifecycle.ts +8 -0
  756. package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +1 -2
  757. package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -2
  758. package/src/modules/feature_toggles/defaults.json +8 -0
  759. package/src/modules/inbox_ops/backend/inbox-ops/log/page.tsx +0 -4
  760. package/src/modules/inbox_ops/backend/inbox-ops/page.tsx +0 -4
  761. package/src/modules/inbox_ops/lib/htmlToPlainText.ts +17 -1
  762. package/src/modules/integrations/api/[id]/credentials/route.ts +4 -6
  763. package/src/modules/integrations/backend/integrations/[id]/page.tsx +31 -61
  764. package/src/modules/integrations/backend/integrations/bundle/[id]/page.tsx +9 -44
  765. package/src/modules/integrations/data/validators.ts +2 -12
  766. package/src/modules/integrations/i18n/de.json +0 -1
  767. package/src/modules/integrations/i18n/en.json +0 -1
  768. package/src/modules/integrations/i18n/es.json +0 -1
  769. package/src/modules/integrations/i18n/ko.json +0 -1
  770. package/src/modules/integrations/i18n/pl.json +0 -1
  771. package/src/modules/integrations/lib/credentials-masking.ts +6 -10
  772. package/src/modules/messages/api/[id]/route.ts +1 -55
  773. package/src/modules/messages/api/openapi.ts +0 -20
  774. package/src/modules/messages/api/route.ts +2 -31
  775. package/src/modules/messages/components/MessagesInboxPageClient.tsx +16 -9
  776. package/src/modules/messages/components/inboxFilters.ts +0 -36
  777. package/src/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.ts +1 -14
  778. package/src/modules/messages/components/message-detail/panels/MessageHeader.tsx +1 -3
  779. package/src/modules/messages/components/message-detail/panels/thread-panel.tsx +1 -2
  780. package/src/modules/messages/components/message-detail/types.ts +0 -3
  781. package/src/modules/messages/components/messageListLabels.ts +3 -52
  782. package/src/modules/messages/data/validators.ts +4 -43
  783. package/src/modules/payment_gateways/api/webhook/[provider]/route.ts +6 -4
  784. package/src/modules/payment_gateways/backend/payment-gateways/page.tsx +1 -4
  785. package/src/modules/payment_gateways/lib/webhook-processor.ts +0 -11
  786. package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +0 -4
  787. package/src/modules/push_notifications/backend/push_notifications/page.tsx +1 -4
  788. package/src/modules/push_notifications/backend/push_notifications/send/page.tsx +4 -4
  789. package/src/modules/query_index/lib/engine.ts +61 -249
  790. package/src/modules/query_index/lib/search-tokens.ts +3 -135
  791. package/src/modules/resources/backend/resources/resource-types/page.tsx +1 -4
  792. package/src/modules/resources/backend/resources/resources/page.tsx +1 -4
  793. package/src/modules/sales/backend/sales/channels/offers/page.tsx +0 -4
  794. package/src/modules/sales/backend/sales/channels/page.tsx +0 -4
  795. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +8 -14
  796. package/src/modules/sales/commands/documents.ts +0 -93
  797. package/src/modules/sales/components/PriceWithCurrency.tsx +5 -17
  798. package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +0 -4
  799. package/src/modules/sales/components/documents/AdjustmentsSection.tsx +5 -6
  800. package/src/modules/sales/components/documents/ItemsSection.tsx +18 -56
  801. package/src/modules/sales/components/documents/LineItemDialog.tsx +21 -138
  802. package/src/modules/sales/components/documents/PaymentsSection.tsx +9 -20
  803. package/src/modules/sales/components/documents/ReturnsSection.tsx +5 -6
  804. package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +14 -106
  805. package/src/modules/sales/components/documents/SalesOrderDraftLines.tsx +5 -6
  806. package/src/modules/sales/components/documents/ShipmentDialog.tsx +4 -5
  807. package/src/modules/sales/components/documents/ShipmentsSection.tsx +5 -6
  808. package/src/modules/sales/components/documents/lineItemUtils.ts +2 -7
  809. package/src/modules/sales/data/entities.ts +0 -6
  810. package/src/modules/sales/extension-points.ts +0 -1
  811. package/src/modules/sales/i18n/de.json +37 -8
  812. package/src/modules/sales/i18n/en.json +37 -8
  813. package/src/modules/sales/i18n/es.json +37 -8
  814. package/src/modules/sales/i18n/ko.json +37 -8
  815. package/src/modules/sales/i18n/pl.json +37 -8
  816. package/src/modules/sales/migrations/.snapshot-open-mercato.json +0 -60
  817. package/src/modules/sales/setup.ts +0 -2
  818. package/src/modules/sales/widgets/injection/document-history/widget.client.tsx +42 -2
  819. package/src/modules/sales/widgets/injection/payment-gateway-status-column/widget.ts +1 -9
  820. package/src/modules/sales/widgets/injection-table.ts +7 -4
  821. package/src/modules/staff/backend/staff/leave-requests/page.tsx +0 -4
  822. package/src/modules/staff/backend/staff/my-leave-requests/page.tsx +0 -4
  823. package/src/modules/staff/backend/staff/team-members/page.tsx +0 -6
  824. package/src/modules/staff/backend/staff/team-roles/page.tsx +0 -4
  825. package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +0 -4
  826. package/src/modules/staff/backend/staff/teams/page.tsx +0 -4
  827. package/src/modules/staff/backend/staff/timesheets/page.tsx +1 -12
  828. package/src/modules/staff/backend/staff/timesheets/projects/page.tsx +0 -4
  829. package/src/modules/sync_excel/lib/adapters/customers.ts +0 -5
  830. package/src/modules/warranty_claims/api/assignees/route.ts +3 -3
  831. package/src/modules/warranty_claims/api/portal/attachments/route.ts +2 -2
  832. package/src/modules/warranty_claims/api/portal/claims/route.ts +9 -12
  833. package/src/modules/warranty_claims/backend/page.tsx +0 -4
  834. package/src/modules/warranty_claims/backend/warranty_claims/registrations/page.tsx +0 -4
  835. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.tsx +0 -4
  836. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.tsx +0 -4
  837. package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.tsx +0 -4
  838. package/src/modules/wms/api/warehouses/route.ts +9 -13
  839. package/src/modules/wms/api/zones/route.ts +0 -16
  840. package/src/modules/wms/commands/configuration.ts +10 -159
  841. package/src/modules/wms/commands/inventory-actions.ts +0 -3
  842. package/src/modules/wms/commands/shared.ts +0 -17
  843. package/src/modules/wms/components/backend/WmsConfigurationPage.tsx +141 -95
  844. package/src/modules/wms/components/backend/WmsInventoryConsolePage.tsx +0 -2
  845. package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +30 -26
  846. package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +21 -17
  847. package/src/modules/wms/components/backend/WmsLotsListPage.tsx +0 -2
  848. package/src/modules/wms/components/backend/WmsOperationalDashboardPage.tsx +17 -13
  849. package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +16 -12
  850. package/src/modules/wms/components/backend/inventoryMutationLoaders.ts +20 -36
  851. package/src/modules/wms/i18n/de.json +0 -2
  852. package/src/modules/wms/i18n/en.json +0 -2
  853. package/src/modules/wms/i18n/es.json +0 -2
  854. package/src/modules/wms/i18n/ko.json +0 -2
  855. package/src/modules/wms/i18n/pl.json +0 -2
  856. package/src/modules/workflows/backend/definitions/page.tsx +1 -4
  857. package/src/modules/workflows/backend/events/page.tsx +1 -4
  858. package/src/modules/workflows/backend/instances/page.tsx +1 -4
  859. package/src/modules/workflows/backend/tasks/page.tsx +1 -4
  860. package/src/modules/workflows/lib/activity-executor.ts +0 -9
  861. package/dist/modules/api_keys/di.js +0 -9
  862. package/dist/modules/api_keys/di.js.map +0 -7
  863. package/dist/modules/api_keys/services/principalService.js +0 -31
  864. package/dist/modules/api_keys/services/principalService.js.map +0 -7
  865. package/dist/modules/attachments/lib/attachment-service.js +0 -313
  866. package/dist/modules/attachments/lib/attachment-service.js.map +0 -7
  867. package/dist/modules/auth/api/reset/validate.js +0 -55
  868. package/dist/modules/auth/api/reset/validate.js.map +0 -7
  869. package/dist/modules/auth/commands/acl.js +0 -254
  870. package/dist/modules/auth/commands/acl.js.map +0 -7
  871. package/dist/modules/auth/services/principalService.js +0 -200
  872. package/dist/modules/auth/services/principalService.js.map +0 -7
  873. package/dist/modules/auth/services/roleOrganizationScope.js +0 -41
  874. package/dist/modules/auth/services/roleOrganizationScope.js.map +0 -7
  875. package/dist/modules/communication_channels/lib/outbound-recipient.js +0 -33
  876. package/dist/modules/communication_channels/lib/outbound-recipient.js.map +0 -7
  877. package/dist/modules/communication_channels/lib/resolve-channel-type.js +0 -51
  878. package/dist/modules/communication_channels/lib/resolve-channel-type.js.map +0 -7
  879. package/dist/modules/customers/backend/customers/deals/pipeline/components/toneClasses.js +0 -18
  880. package/dist/modules/customers/backend/customers/deals/pipeline/components/toneClasses.js.map +0 -7
  881. package/dist/modules/customers/lib/calendar/participantIdentity.js +0 -9
  882. package/dist/modules/customers/lib/calendar/participantIdentity.js.map +0 -7
  883. package/dist/modules/customers/lib/closureStage.js +0 -45
  884. package/dist/modules/customers/lib/closureStage.js.map +0 -7
  885. package/dist/modules/customers/lib/detailReadAccess.js +0 -12
  886. package/dist/modules/customers/lib/detailReadAccess.js.map +0 -7
  887. package/dist/modules/data_sync/lib/abandoned-run.js +0 -19
  888. package/dist/modules/data_sync/lib/abandoned-run.js.map +0 -7
  889. package/dist/modules/devices/api/deviceSerialization.js +0 -46
  890. package/dist/modules/devices/api/deviceSerialization.js.map +0 -7
  891. package/dist/modules/directory/services/organizationHierarchyService.js +0 -29
  892. package/dist/modules/directory/services/organizationHierarchyService.js.map +0 -7
  893. package/dist/modules/directory/services/organizationScopeService.js +0 -56
  894. package/dist/modules/directory/services/organizationScopeService.js.map +0 -7
  895. package/dist/modules/integrations/backend/integrations/credential-secret-fields.js +0 -55
  896. package/dist/modules/integrations/backend/integrations/credential-secret-fields.js.map +0 -7
  897. package/dist/modules/messages/lib/channel-sender-identity.js +0 -26
  898. package/dist/modules/messages/lib/channel-sender-identity.js.map +0 -7
  899. package/dist/modules/messages/lib/composeSourceChannelType.js +0 -41
  900. package/dist/modules/messages/lib/composeSourceChannelType.js.map +0 -7
  901. package/dist/modules/query_index/lib/search-entity-policy.js +0 -14
  902. package/dist/modules/query_index/lib/search-entity-policy.js.map +0 -7
  903. package/dist/modules/sales/components/documents/lineItemShipmentLock.js +0 -54
  904. package/dist/modules/sales/components/documents/lineItemShipmentLock.js.map +0 -7
  905. package/dist/modules/sales/lib/salesChannelsToggleSeed.js +0 -33
  906. package/dist/modules/sales/lib/salesChannelsToggleSeed.js.map +0 -7
  907. package/dist/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.js +0 -32
  908. package/dist/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.js.map +0 -7
  909. package/dist/modules/wms/api/warehouseSearch.js +0 -21
  910. package/dist/modules/wms/api/warehouseSearch.js.map +0 -7
  911. package/dist/modules/wms/components/backend/WarehouseEditDialog.js +0 -158
  912. package/dist/modules/wms/components/backend/WarehouseEditDialog.js.map +0 -7
  913. package/dist/modules/wms/components/backend/warehouseFormOptions.js +0 -66
  914. package/dist/modules/wms/components/backend/warehouseFormOptions.js.map +0 -7
  915. package/src/modules/api_keys/di.ts +0 -7
  916. package/src/modules/api_keys/services/principalService.ts +0 -33
  917. package/src/modules/attachments/lib/attachment-service.ts +0 -468
  918. package/src/modules/auth/api/reset/validate.ts +0 -57
  919. package/src/modules/auth/commands/acl.ts +0 -495
  920. package/src/modules/auth/services/principalService.ts +0 -266
  921. package/src/modules/auth/services/roleOrganizationScope.ts +0 -70
  922. package/src/modules/communication_channels/lib/outbound-recipient.ts +0 -71
  923. package/src/modules/communication_channels/lib/resolve-channel-type.ts +0 -99
  924. package/src/modules/customers/backend/customers/deals/pipeline/components/toneClasses.ts +0 -21
  925. package/src/modules/customers/lib/calendar/participantIdentity.ts +0 -17
  926. package/src/modules/customers/lib/closureStage.ts +0 -76
  927. package/src/modules/customers/lib/detailReadAccess.ts +0 -35
  928. package/src/modules/data_sync/lib/abandoned-run.ts +0 -56
  929. package/src/modules/devices/api/deviceSerialization.ts +0 -50
  930. package/src/modules/directory/services/organizationHierarchyService.ts +0 -34
  931. package/src/modules/directory/services/organizationScopeService.ts +0 -85
  932. package/src/modules/integrations/backend/integrations/credential-secret-fields.ts +0 -84
  933. package/src/modules/messages/lib/channel-sender-identity.ts +0 -55
  934. package/src/modules/messages/lib/composeSourceChannelType.ts +0 -95
  935. package/src/modules/query_index/lib/search-entity-policy.ts +0 -46
  936. package/src/modules/sales/components/documents/lineItemShipmentLock.ts +0 -74
  937. package/src/modules/sales/lib/salesChannelsToggleSeed.ts +0 -42
  938. package/src/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.ts +0 -87
  939. package/src/modules/wms/api/warehouseSearch.ts +0 -23
  940. package/src/modules/wms/components/backend/WarehouseEditDialog.tsx +0 -216
  941. package/src/modules/wms/components/backend/warehouseFormOptions.ts +0 -72
@@ -1,731 +1,11 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import Link from "next/link";
5
- import { useRouter } from "next/navigation";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { headers } from "next/headers";
6
3
  import { Page, PageBody } from "@open-mercato/ui/backend/Page";
7
- import { FormHeader } from "@open-mercato/ui/backend/forms";
8
- import { Button } from "@open-mercato/ui/primitives/button";
9
- import { Input } from "@open-mercato/ui/primitives/input";
10
- import { PasswordInput } from "@open-mercato/ui/primitives/password-input";
11
- import { Spinner } from "@open-mercato/ui/primitives/spinner";
12
- import { SwitchField } from "@open-mercato/ui/primitives/switch-field";
13
- import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@open-mercato/ui/primitives/dialog";
14
- import { apiCall, readApiResultOrThrow, withScopedApiRequestHeaders } from "@open-mercato/ui/backend/utils/apiCall";
15
- import { buildOptimisticLockHeader } from "@open-mercato/ui/backend/utils/optimisticLock";
16
- import { surfaceRecordConflict } from "@open-mercato/ui/backend/conflicts";
17
- import { flash } from "@open-mercato/ui/backend/FlashMessages";
18
- import { useT } from "@open-mercato/shared/lib/i18n/context";
19
- import { useConfirmDialog } from "@open-mercato/ui/backend/confirm-dialog";
20
- import { useGuardedMutation } from "@open-mercato/ui/backend/injection/useGuardedMutation";
21
- import { RecordNotFoundState, ErrorMessage } from "@open-mercato/ui/backend/detail";
22
- function formatDate(value, fallback) {
23
- if (!value) return fallback;
24
- const date = new Date(value);
25
- if (Number.isNaN(date.getTime())) return fallback;
26
- return date.toLocaleString();
27
- }
28
- function ResetPasswordDialog({
29
- open,
30
- onOpenChange,
31
- userId,
32
- onRunMutation
33
- }) {
34
- const t = useT();
35
- const [newPassword, setNewPassword] = React.useState("");
36
- const [isSubmitting, setIsSubmitting] = React.useState(false);
37
- const handleSubmit = React.useCallback(async (event) => {
38
- event.preventDefault();
39
- if (!newPassword.trim() || newPassword.length < 8) {
40
- flash(t("customer_accounts.admin.detail.resetPassword.error.minLength", "Password must be at least 8 characters"), "error");
41
- return;
42
- }
43
- setIsSubmitting(true);
44
- try {
45
- await onRunMutation(async () => {
46
- const call = await apiCall(
47
- `/api/customer_accounts/admin/users/${encodeURIComponent(userId)}/reset-password`,
48
- {
49
- method: "POST",
50
- headers: { "content-type": "application/json" },
51
- body: JSON.stringify({ newPassword })
52
- }
53
- );
54
- if (!call.ok) {
55
- flash(call.result?.error || t("customer_accounts.admin.detail.resetPassword.error.save", "Failed to reset password"), "error");
56
- return;
57
- }
58
- flash(t("customer_accounts.admin.detail.resetPassword.flash.success", "Password reset successfully"), "success");
59
- setNewPassword("");
60
- onOpenChange(false);
61
- });
62
- } catch (err) {
63
- const message = err instanceof Error ? err.message : t("customer_accounts.admin.detail.resetPassword.error.save", "Failed to reset password");
64
- flash(message, "error");
65
- } finally {
66
- setIsSubmitting(false);
67
- }
68
- }, [newPassword, onOpenChange, onRunMutation, t, userId]);
69
- const handleKeyDown = React.useCallback((event) => {
70
- if ((event.metaKey || event.ctrlKey) && event.key === "Enter") {
71
- event.preventDefault();
72
- const form = event.target.closest("form");
73
- if (form) form.requestSubmit();
74
- }
75
- }, []);
76
- return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: (next) => {
77
- if (!next) setNewPassword("");
78
- onOpenChange(next);
79
- }, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
80
- /* @__PURE__ */ jsx(DialogHeader, { children: /* @__PURE__ */ jsx(DialogTitle, { children: t("customer_accounts.admin.detail.resetPassword.title", "Reset Password") }) }),
81
- /* @__PURE__ */ jsxs("form", { onSubmit: (event) => {
82
- void handleSubmit(event);
83
- }, onKeyDown: handleKeyDown, className: "space-y-4", children: [
84
- /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
85
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium", htmlFor: "reset-password", children: t("customer_accounts.admin.detail.resetPassword.fields.newPassword", "New Password") }),
86
- /* @__PURE__ */ jsx(
87
- PasswordInput,
88
- {
89
- id: "reset-password",
90
- required: true,
91
- minLength: 8,
92
- value: newPassword,
93
- onChange: (event) => setNewPassword(event.target.value),
94
- placeholder: t("customer_accounts.admin.detail.resetPassword.fields.placeholder", "Min. 8 characters"),
95
- autoComplete: "new-password"
96
- }
97
- )
98
- ] }),
99
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [
100
- /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: () => {
101
- setNewPassword("");
102
- onOpenChange(false);
103
- }, children: t("customer_accounts.admin.detail.resetPassword.actions.cancel", "Cancel") }),
104
- /* @__PURE__ */ jsx(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? t("customer_accounts.admin.detail.resetPassword.actions.resetting", "Resetting...") : t("customer_accounts.admin.detail.resetPassword.actions.reset", "Reset Password") })
105
- ] })
106
- ] })
107
- ] }) });
108
- }
109
- function CustomerUserDetailPage({ params }) {
110
- const id = params?.id;
111
- const t = useT();
112
- const router = useRouter();
113
- const { confirm, ConfirmDialogElement } = useConfirmDialog();
114
- const [data, setData] = React.useState(null);
115
- const [isLoading, setIsLoading] = React.useState(true);
116
- const [error, setError] = React.useState(null);
117
- const [isNotFound, setIsNotFound] = React.useState(false);
118
- const [isSaving, setIsSaving] = React.useState(false);
119
- const [editActive, setEditActive] = React.useState(null);
120
- const [editDisplayName, setEditDisplayName] = React.useState("");
121
- const [availableRoles, setAvailableRoles] = React.useState([]);
122
- const [selectedRoleIds, setSelectedRoleIds] = React.useState([]);
123
- const [resetPasswordOpen, setResetPasswordOpen] = React.useState(false);
124
- const [isVerifying, setIsVerifying] = React.useState(false);
125
- const [editPersonEntityId, setEditPersonEntityId] = React.useState(null);
126
- const [editCustomerEntityId, setEditCustomerEntityId] = React.useState(null);
127
- const [personSearchQuery, setPersonSearchQuery] = React.useState("");
128
- const [companySearchQuery, setCompanySearchQuery] = React.useState("");
129
- const [personResults, setPersonResults] = React.useState([]);
130
- const [companyResults, setCompanyResults] = React.useState([]);
131
- const [personName, setPersonName] = React.useState(null);
132
- const [companyName, setCompanyName] = React.useState(null);
133
- const [isSendingResetLink, setIsSendingResetLink] = React.useState(false);
134
- const [resetLinkUrl, setResetLinkUrl] = React.useState(null);
135
- const mutationContextId = `customer_accounts:user:${id ?? "pending"}`;
136
- const { runMutation, retryLastMutation } = useGuardedMutation({
137
- contextId: mutationContextId
138
- });
139
- const runMutationWithContext = React.useCallback(
140
- async (operation, mutationPayload) => {
141
- return runMutation({
142
- operation,
143
- mutationPayload,
144
- context: { entityType: "customer_accounts:user", entityId: id }
145
- });
146
- },
147
- [id, runMutation]
148
- );
149
- React.useEffect(() => {
150
- if (!id) {
151
- setIsNotFound(true);
152
- setIsLoading(false);
153
- return;
154
- }
155
- let cancelled = false;
156
- async function load() {
157
- setIsLoading(true);
158
- setError(null);
159
- setIsNotFound(false);
160
- try {
161
- const payload = await readApiResultOrThrow(
162
- `/api/customer_accounts/admin/users/${encodeURIComponent(id)}`,
163
- void 0,
164
- { errorMessage: t("customer_accounts.admin.detail.error.load", "Failed to load user") }
165
- );
166
- if (cancelled) return;
167
- setData(payload);
168
- setEditActive(payload.isActive);
169
- setEditDisplayName(payload.displayName);
170
- setSelectedRoleIds(payload.roles.map((role) => role.id));
171
- setEditPersonEntityId(payload.personEntityId);
172
- setEditCustomerEntityId(payload.customerEntityId);
173
- } catch (err) {
174
- if (cancelled) return;
175
- if (err.status === 404) {
176
- setIsNotFound(true);
177
- } else {
178
- const message = err instanceof Error ? err.message : t("customer_accounts.admin.detail.error.load", "Failed to load user");
179
- setError(message);
180
- }
181
- } finally {
182
- if (!cancelled) setIsLoading(false);
183
- }
184
- }
185
- load();
186
- return () => {
187
- cancelled = true;
188
- };
189
- }, [id, t]);
190
- React.useEffect(() => {
191
- let cancelled = false;
192
- async function loadRoles() {
193
- try {
194
- const call = await apiCall(
195
- "/api/customer_accounts/admin/roles?pageSize=100"
196
- );
197
- if (cancelled || !call.ok) return;
198
- const items = Array.isArray(call.result?.items) ? call.result.items : [];
199
- setAvailableRoles(
200
- items.filter((item) => typeof item?.id === "string" && typeof item?.name === "string")
201
- );
202
- } catch {
203
- }
204
- }
205
- loadRoles();
206
- return () => {
207
- cancelled = true;
208
- };
209
- }, []);
210
- React.useEffect(() => {
211
- if (!data) return;
212
- let cancelled = false;
213
- async function loadPersonName() {
214
- if (!data.personEntityId) return;
215
- try {
216
- const call = await apiCall(`/api/customers/people/${encodeURIComponent(data.personEntityId)}`);
217
- if (!cancelled && call.ok && call.result) {
218
- setPersonName([call.result.firstName, call.result.lastName].filter(Boolean).join(" ") || call.result.id || null);
219
- }
220
- } catch {
221
- }
222
- }
223
- async function loadCompanyName() {
224
- if (!data.customerEntityId) return;
225
- try {
226
- const call = await apiCall(`/api/customers/${encodeURIComponent(data.customerEntityId)}`);
227
- if (!cancelled && call.ok && call.result) {
228
- setCompanyName(call.result.name || call.result.id || null);
229
- }
230
- } catch {
231
- }
232
- }
233
- void Promise.all([loadPersonName(), loadCompanyName()]);
234
- return () => {
235
- cancelled = true;
236
- };
237
- }, [data]);
238
- const handleSearchPeople = React.useCallback(async (query) => {
239
- setPersonSearchQuery(query);
240
- if (query.trim().length < 2) {
241
- setPersonResults([]);
242
- return;
243
- }
244
- try {
245
- const call = await apiCall(
246
- `/api/customers/people?search=${encodeURIComponent(query.trim())}&pageSize=10`
247
- );
248
- if (call.ok && Array.isArray(call.result?.items)) {
249
- setPersonResults(call.result.items.map((person) => ({
250
- id: person.id,
251
- label: [person.firstName, person.lastName].filter(Boolean).join(" ") || person.email || person.id
252
- })));
253
- }
254
- } catch {
255
- }
256
- }, []);
257
- const handleSearchCompanies = React.useCallback(async (query) => {
258
- setCompanySearchQuery(query);
259
- if (query.trim().length < 2) {
260
- setCompanyResults([]);
261
- return;
262
- }
263
- try {
264
- const call = await apiCall(
265
- `/api/customers?search=${encodeURIComponent(query.trim())}&pageSize=10`
266
- );
267
- if (call.ok && Array.isArray(call.result?.items)) {
268
- setCompanyResults(call.result.items.map((company) => ({
269
- id: company.id,
270
- label: company.name || company.id
271
- })));
272
- }
273
- } catch {
274
- }
275
- }, []);
276
- const handleSendResetLink = React.useCallback(async () => {
277
- if (!id) return;
278
- setIsSendingResetLink(true);
279
- try {
280
- await runMutationWithContext(async () => {
281
- const call = await apiCall(
282
- `/api/customer_accounts/admin/users/${encodeURIComponent(id)}/send-reset-link`,
283
- { method: "POST" }
284
- );
285
- if (!call.ok || !call.result?.resetLink) {
286
- flash(call.result?.error || t("customer_accounts.admin.detail.sendResetLink.error", "Failed to generate reset link"), "error");
287
- return;
288
- }
289
- setResetLinkUrl(call.result.resetLink);
290
- flash(t("customer_accounts.admin.detail.sendResetLink.flash.success", "Reset link generated"), "success");
291
- }, { id });
292
- } catch (err) {
293
- const message = err instanceof Error ? err.message : t("customer_accounts.admin.detail.sendResetLink.error", "Failed to generate reset link");
294
- flash(message, "error");
295
- } finally {
296
- setIsSendingResetLink(false);
297
- }
298
- }, [id, runMutationWithContext, t]);
299
- const handleSave = React.useCallback(async () => {
300
- if (!data || !id) return;
301
- setIsSaving(true);
302
- try {
303
- await runMutationWithContext(async () => {
304
- const call = await withScopedApiRequestHeaders(
305
- buildOptimisticLockHeader(data.updatedAt),
306
- () => apiCall(
307
- `/api/customer_accounts/admin/users/${encodeURIComponent(id)}`,
308
- {
309
- method: "PUT",
310
- headers: { "content-type": "application/json" },
311
- body: JSON.stringify({
312
- displayName: editDisplayName.trim() || void 0,
313
- isActive: editActive,
314
- roleIds: selectedRoleIds,
315
- personEntityId: editPersonEntityId,
316
- customerEntityId: editCustomerEntityId
317
- })
318
- }
319
- )
320
- );
321
- if (!call.ok) {
322
- if (surfaceRecordConflict({ status: call.status, body: call.result }, t)) return;
323
- flash(call.result?.error || t("customer_accounts.admin.detail.error.save", "Failed to save user"), "error");
324
- return;
325
- }
326
- flash(t("customer_accounts.admin.detail.flash.saved", "User updated"), "success");
327
- setData((prev) => prev ? {
328
- ...prev,
329
- isActive: editActive ?? prev.isActive,
330
- displayName: editDisplayName.trim() || prev.displayName,
331
- personEntityId: editPersonEntityId,
332
- customerEntityId: editCustomerEntityId,
333
- updatedAt: call.result?.updatedAt ?? prev.updatedAt
334
- } : prev);
335
- }, { displayName: editDisplayName, isActive: editActive, roleIds: selectedRoleIds, personEntityId: editPersonEntityId, customerEntityId: editCustomerEntityId });
336
- } catch (err) {
337
- const message = err instanceof Error ? err.message : t("customer_accounts.admin.detail.error.save", "Failed to save user");
338
- flash(message, "error");
339
- } finally {
340
- setIsSaving(false);
341
- }
342
- }, [data, editActive, editCustomerEntityId, editDisplayName, editPersonEntityId, id, runMutationWithContext, selectedRoleIds, t]);
343
- const handleDelete = React.useCallback(async () => {
344
- if (!data || !id) return;
345
- const confirmed = await confirm({
346
- title: t("customer_accounts.admin.confirm.delete", 'Delete user "{{name}}"?', {
347
- name: data.displayName || data.email
348
- }),
349
- variant: "destructive"
350
- });
351
- if (!confirmed) return;
352
- try {
353
- await runMutationWithContext(async () => {
354
- const call = await withScopedApiRequestHeaders(
355
- buildOptimisticLockHeader(data.updatedAt),
356
- () => apiCall(
357
- `/api/customer_accounts/admin/users/${encodeURIComponent(id)}`,
358
- { method: "DELETE" }
359
- )
360
- );
361
- if (!call.ok) {
362
- if (surfaceRecordConflict({ status: call.status, body: call.result }, t)) return;
363
- flash(t("customer_accounts.admin.error.delete", "Failed to delete user"), "error");
364
- return;
365
- }
366
- flash(t("customer_accounts.admin.flash.deleted", "User deleted"), "success");
367
- router.push("/backend/customer_accounts/users");
368
- }, { id });
369
- } catch (err) {
370
- const message = err instanceof Error ? err.message : t("customer_accounts.admin.error.delete", "Failed to delete user");
371
- flash(message, "error");
372
- }
373
- }, [confirm, data, id, router, runMutationWithContext, t]);
374
- const handleVerifyEmail = React.useCallback(async () => {
375
- if (!data || !id) return;
376
- const confirmed = await confirm({
377
- title: t("customer_accounts.admin.detail.verifyEmail.confirm", 'Mark email as verified for "{{name}}"?', {
378
- name: data.displayName || data.email
379
- })
380
- });
381
- if (!confirmed) return;
382
- setIsVerifying(true);
383
- try {
384
- await runMutationWithContext(async () => {
385
- const call = await apiCall(
386
- `/api/customer_accounts/admin/users/${encodeURIComponent(id)}/verify-email`,
387
- { method: "POST" }
388
- );
389
- if (!call.ok) {
390
- flash(call.result?.error || t("customer_accounts.admin.detail.verifyEmail.error", "Failed to verify email"), "error");
391
- return;
392
- }
393
- flash(t("customer_accounts.admin.detail.verifyEmail.flash.success", "Email marked as verified"), "success");
394
- setData((prev) => prev ? { ...prev, emailVerifiedAt: (/* @__PURE__ */ new Date()).toISOString() } : prev);
395
- }, { id });
396
- } catch (err) {
397
- const message = err instanceof Error ? err.message : t("customer_accounts.admin.detail.verifyEmail.error", "Failed to verify email");
398
- flash(message, "error");
399
- } finally {
400
- setIsVerifying(false);
401
- }
402
- }, [confirm, data, id, runMutationWithContext, t]);
403
- const handleRevokeSession = React.useCallback(async (sessionId) => {
404
- if (!id) return;
405
- try {
406
- await runMutationWithContext(async () => {
407
- const call = await apiCall(
408
- `/api/customer_accounts/admin/users/${encodeURIComponent(id)}/sessions/${encodeURIComponent(sessionId)}`,
409
- { method: "DELETE" }
410
- );
411
- if (!call.ok) {
412
- flash(t("customer_accounts.admin.detail.error.revokeSession", "Failed to revoke session"), "error");
413
- return;
414
- }
415
- flash(t("customer_accounts.admin.detail.flash.sessionRevoked", "Session revoked"), "success");
416
- setData((prev) => {
417
- if (!prev) return prev;
418
- return { ...prev, sessions: prev.sessions.filter((session) => session.id !== sessionId) };
419
- });
420
- }, { sessionId });
421
- } catch (err) {
422
- const message = err instanceof Error ? err.message : t("customer_accounts.admin.detail.error.revokeSession", "Failed to revoke session");
423
- flash(message, "error");
424
- }
425
- }, [id, runMutationWithContext, t]);
426
- const handleRoleToggle = React.useCallback((roleId) => {
427
- setSelectedRoleIds(
428
- (prev) => prev.includes(roleId) ? prev.filter((existingId) => existingId !== roleId) : [...prev, roleId]
429
- );
430
- }, []);
431
- if (isLoading) {
432
- return /* @__PURE__ */ jsx(Page, { children: /* @__PURE__ */ jsx(PageBody, { children: /* @__PURE__ */ jsxs("div", { className: "flex h-[50vh] flex-col items-center justify-center gap-2 text-muted-foreground", children: [
433
- /* @__PURE__ */ jsx(Spinner, { className: "h-6 w-6" }),
434
- /* @__PURE__ */ jsx("span", { children: t("customer_accounts.admin.detail.loading", "Loading user...") })
435
- ] }) }) });
436
- }
437
- if (isNotFound) {
438
- return /* @__PURE__ */ jsx(Page, { children: /* @__PURE__ */ jsx(PageBody, { children: /* @__PURE__ */ jsx(
439
- RecordNotFoundState,
440
- {
441
- label: t("customer_accounts.admin.detail.error.notFound", "User not found"),
442
- backHref: "/backend/customer_accounts/users",
443
- backLabel: t("customer_accounts.admin.detail.actions.backToList", "Back to list")
444
- }
445
- ) }) });
446
- }
447
- if (error || !data) {
448
- return /* @__PURE__ */ jsx(Page, { children: /* @__PURE__ */ jsx(PageBody, { children: /* @__PURE__ */ jsx(
449
- ErrorMessage,
450
- {
451
- label: error ?? t("customer_accounts.admin.detail.error.notFound", "User not found"),
452
- action: /* @__PURE__ */ jsx(Button, { asChild: true, variant: "outline", size: "sm", children: /* @__PURE__ */ jsx(Link, { href: "/backend/customer_accounts/users", children: t("customer_accounts.admin.detail.actions.backToList", "Back to list") }) })
453
- }
454
- ) }) });
455
- }
456
- return /* @__PURE__ */ jsxs(Page, { children: [
457
- /* @__PURE__ */ jsxs(PageBody, { className: "space-y-6", children: [
458
- /* @__PURE__ */ jsx(
459
- FormHeader,
460
- {
461
- mode: "detail",
462
- backHref: "/backend/customer_accounts/users",
463
- backLabel: t("customer_accounts.admin.detail.actions.backToList", "Back to list"),
464
- title: data.displayName,
465
- subtitle: data.email,
466
- onDelete: () => {
467
- void handleDelete();
468
- },
469
- deleteLabel: t("customer_accounts.admin.detail.actions.delete", "Delete")
470
- }
471
- ),
472
- /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-status-info-border bg-status-info-bg p-4", children: /* @__PURE__ */ jsx("div", { className: "flex items-start gap-3", children: /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
473
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-medium text-status-info-text", children: t("customer_accounts.admin.detail.portalAccess.title", "Customer Portal Access") }),
474
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-status-info-text", children: t("customer_accounts.admin.detail.portalAccess.description", "This user can access the customer portal at the URL below. The portal provides self-service access to orders, invoices, quotes, and account management.") }),
475
- /* @__PURE__ */ jsx("p", { className: "mt-2 text-xs text-status-info-text", children: t("customer_accounts.admin.detail.portalAccess.url", "Portal URL: {url}", {
476
- url: `${typeof window !== "undefined" ? window.location.origin : ""}/[org-slug]/portal`
477
- }) })
478
- ] }) }) }),
479
- /* @__PURE__ */ jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [
480
- /* @__PURE__ */ jsxs("div", { className: "rounded-lg border p-4 space-y-3", children: [
481
- /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold", children: t("customer_accounts.admin.detail.sections.info", "User Information") }),
482
- /* @__PURE__ */ jsxs("dl", { className: "space-y-2 text-sm", children: [
483
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
484
- /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground", children: t("customer_accounts.admin.detail.fields.email", "Email") }),
485
- /* @__PURE__ */ jsx("dd", { children: data.email })
486
- ] }),
487
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center", children: [
488
- /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground", children: t("customer_accounts.admin.detail.fields.emailVerified", "Email Verified") }),
489
- /* @__PURE__ */ jsxs("dd", { className: "flex items-center gap-2", children: [
490
- /* @__PURE__ */ jsx("span", { className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${data.emailVerifiedAt ? "bg-status-success-bg text-status-success-text" : "bg-status-warning-bg text-status-warning-text"}`, children: data.emailVerifiedAt ? t("customer_accounts.admin.verified", "Yes") : t("customer_accounts.admin.unverified", "No") }),
491
- !data.emailVerifiedAt && /* @__PURE__ */ jsx(
492
- Button,
493
- {
494
- variant: "outline",
495
- size: "sm",
496
- onClick: () => {
497
- void handleVerifyEmail();
498
- },
499
- disabled: isVerifying,
500
- children: isVerifying ? t("customer_accounts.admin.detail.verifyEmail.actions.verifying", "Verifying...") : t("customer_accounts.admin.detail.verifyEmail.actions.verify", "Mark Verified")
501
- }
502
- )
503
- ] })
504
- ] }),
505
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
506
- /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground", children: t("customer_accounts.admin.detail.fields.lastLogin", "Last Login") }),
507
- /* @__PURE__ */ jsx("dd", { children: formatDate(data.lastLoginAt, "-") })
508
- ] }),
509
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
510
- /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground", children: t("customer_accounts.admin.detail.fields.createdAt", "Created") }),
511
- /* @__PURE__ */ jsx("dd", { children: formatDate(data.createdAt, "-") })
512
- ] })
513
- ] })
514
- ] }),
515
- /* @__PURE__ */ jsxs("div", { className: "rounded-lg border p-4 space-y-3", children: [
516
- /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold", children: t("customer_accounts.admin.detail.sections.crmLinks", "CRM Links") }),
517
- /* @__PURE__ */ jsxs("div", { className: "space-y-3 text-sm", children: [
518
- /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
519
- /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: t("customer_accounts.admin.detail.fields.personEntity", "Linked Person") }),
520
- editPersonEntityId ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
521
- /* @__PURE__ */ jsx(Link, { href: `/backend/customers/people/${editPersonEntityId}`, className: "text-primary hover:underline", children: personName || editPersonEntityId }),
522
- /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: () => {
523
- setEditPersonEntityId(null);
524
- setPersonName(null);
525
- }, children: t("customer_accounts.admin.detail.actions.unlink", "Unlink") })
526
- ] }) : /* @__PURE__ */ jsx("div", { className: "space-y-1", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
527
- /* @__PURE__ */ jsx(
528
- Input,
529
- {
530
- type: "text",
531
- value: personSearchQuery,
532
- onChange: (event) => {
533
- void handleSearchPeople(event.target.value);
534
- },
535
- placeholder: t("customer_accounts.admin.detail.fields.searchPerson", "Search people by name...")
536
- }
537
- ),
538
- personResults.length > 0 && /* @__PURE__ */ jsx("div", { className: "absolute z-10 mt-1 w-full rounded-md border bg-background shadow-lg max-h-40 overflow-y-auto", children: personResults.map((person) => /* @__PURE__ */ jsx(
539
- "button",
540
- {
541
- type: "button",
542
- className: "w-full px-3 py-2 text-left text-sm hover:bg-muted",
543
- onClick: () => {
544
- setEditPersonEntityId(person.id);
545
- setPersonName(person.label);
546
- setPersonSearchQuery("");
547
- setPersonResults([]);
548
- },
549
- children: person.label
550
- },
551
- person.id
552
- )) })
553
- ] }) })
554
- ] }),
555
- /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
556
- /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: t("customer_accounts.admin.detail.fields.customerEntity", "Linked Company") }),
557
- editCustomerEntityId ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
558
- /* @__PURE__ */ jsx(Link, { href: `/backend/customers/companies/${editCustomerEntityId}`, className: "text-primary hover:underline", children: companyName || editCustomerEntityId }),
559
- /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: () => {
560
- setEditCustomerEntityId(null);
561
- setCompanyName(null);
562
- }, children: t("customer_accounts.admin.detail.actions.unlink", "Unlink") })
563
- ] }) : /* @__PURE__ */ jsx("div", { className: "space-y-1", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
564
- /* @__PURE__ */ jsx(
565
- Input,
566
- {
567
- type: "text",
568
- value: companySearchQuery,
569
- onChange: (event) => {
570
- void handleSearchCompanies(event.target.value);
571
- },
572
- placeholder: t("customer_accounts.admin.detail.fields.searchCompany", "Search companies by name...")
573
- }
574
- ),
575
- companyResults.length > 0 && /* @__PURE__ */ jsx("div", { className: "absolute z-10 mt-1 w-full rounded-md border bg-background shadow-lg max-h-40 overflow-y-auto", children: companyResults.map((company) => /* @__PURE__ */ jsx(
576
- "button",
577
- {
578
- type: "button",
579
- className: "w-full px-3 py-2 text-left text-sm hover:bg-muted",
580
- onClick: () => {
581
- setEditCustomerEntityId(company.id);
582
- setCompanyName(company.label);
583
- setCompanySearchQuery("");
584
- setCompanyResults([]);
585
- },
586
- children: company.label
587
- },
588
- company.id
589
- )) })
590
- ] }) })
591
- ] }),
592
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: t("customer_accounts.admin.detail.crmLinks.hint", "Changes to CRM links are saved when you click Save Changes below.") })
593
- ] })
594
- ] })
595
- ] }),
596
- /* @__PURE__ */ jsxs("div", { className: "rounded-lg border p-4 space-y-4", children: [
597
- /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold", children: t("customer_accounts.admin.detail.sections.settings", "Account Settings") }),
598
- /* @__PURE__ */ jsxs("div", { className: "grid gap-4 md:grid-cols-2", children: [
599
- /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
600
- /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
601
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium", htmlFor: "user-display-name", children: t("customer_accounts.admin.detail.fields.displayName", "Display Name") }),
602
- /* @__PURE__ */ jsx(
603
- Input,
604
- {
605
- id: "user-display-name",
606
- type: "text",
607
- value: editDisplayName,
608
- onChange: (event) => setEditDisplayName(event.target.value)
609
- }
610
- )
611
- ] }),
612
- /* @__PURE__ */ jsx(
613
- SwitchField,
614
- {
615
- id: "user-active-toggle",
616
- label: t("customer_accounts.admin.detail.fields.isActive", "Active"),
617
- checked: editActive ?? data.isActive,
618
- onCheckedChange: (next) => setEditActive(next)
619
- }
620
- )
621
- ] }),
622
- /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
623
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: t("customer_accounts.admin.detail.fields.roles", "Roles") }),
624
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-2", children: [
625
- availableRoles.map((role) => {
626
- const isSelected = selectedRoleIds.includes(role.id);
627
- return /* @__PURE__ */ jsx(
628
- Button,
629
- {
630
- type: "button",
631
- variant: "outline",
632
- size: "sm",
633
- onClick: () => handleRoleToggle(role.id),
634
- className: `rounded-full ${isSelected ? "border-primary bg-primary/10 text-primary" : ""}`,
635
- children: role.name
636
- },
637
- role.id
638
- );
639
- }),
640
- availableRoles.length === 0 && /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: t("customer_accounts.admin.detail.noRolesAvailable", "No roles available") })
641
- ] })
642
- ] })
643
- ] }),
644
- /* @__PURE__ */ jsx("div", { className: "pt-2", children: /* @__PURE__ */ jsx(Button, { onClick: () => {
645
- void handleSave();
646
- }, disabled: isSaving, children: isSaving ? t("customer_accounts.admin.detail.actions.saving", "Saving...") : t("customer_accounts.admin.detail.actions.save", "Save Changes") }) })
647
- ] }),
648
- /* @__PURE__ */ jsxs("div", { className: "rounded-lg border p-4 space-y-3", children: [
649
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold", children: t("customer_accounts.admin.detail.sections.security", "Security") }) }),
650
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-2", children: [
651
- /* @__PURE__ */ jsx(Button, { variant: "outline", onClick: () => setResetPasswordOpen(true), children: t("customer_accounts.admin.detail.resetPassword.actions.open", "Reset Password") }),
652
- /* @__PURE__ */ jsx(
653
- Button,
654
- {
655
- variant: "outline",
656
- onClick: () => {
657
- void handleSendResetLink();
658
- },
659
- disabled: isSendingResetLink,
660
- children: isSendingResetLink ? t("customer_accounts.admin.detail.sendResetLink.actions.sending", "Generating...") : t("customer_accounts.admin.detail.sendResetLink.actions.send", "Send Reset Link")
661
- }
662
- )
663
- ] }),
664
- resetLinkUrl && /* @__PURE__ */ jsxs("div", { className: "rounded-md border border-status-info-border bg-status-info-bg p-3", children: [
665
- /* @__PURE__ */ jsx("p", { className: "mb-1.5 text-sm font-medium text-status-info-text", children: t("customer_accounts.admin.detail.sendResetLink.linkLabel", "Password reset link (valid for 60 minutes):") }),
666
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
667
- /* @__PURE__ */ jsx("code", { className: "flex-1 break-all rounded bg-status-info-bg px-2 py-1 text-xs text-status-info-text", children: resetLinkUrl }),
668
- /* @__PURE__ */ jsx(
669
- Button,
670
- {
671
- type: "button",
672
- variant: "outline",
673
- size: "sm",
674
- onClick: () => {
675
- void navigator.clipboard.writeText(resetLinkUrl);
676
- flash(t("customer_accounts.admin.detail.sendResetLink.flash.copied", "Link copied to clipboard"), "success");
677
- },
678
- children: t("customer_accounts.admin.detail.sendResetLink.actions.copy", "Copy")
679
- }
680
- )
681
- ] }),
682
- /* @__PURE__ */ jsx("p", { className: "mt-1.5 text-xs text-status-info-text", children: t("customer_accounts.admin.detail.sendResetLink.hint", "Share this link with the customer to let them set a new password.") })
683
- ] })
684
- ] }),
685
- /* @__PURE__ */ jsxs("div", { className: "rounded-lg border p-4 space-y-3", children: [
686
- /* @__PURE__ */ jsxs("h2", { className: "text-sm font-semibold", children: [
687
- t("customer_accounts.admin.detail.sections.sessions", "Active Sessions"),
688
- data.sessions.length > 0 && /* @__PURE__ */ jsxs("span", { className: "ml-2 text-xs font-normal text-muted-foreground", children: [
689
- "(",
690
- data.sessions.length,
691
- ")"
692
- ] })
693
- ] }),
694
- data.sessions.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("customer_accounts.admin.detail.noSessions", "No active sessions") }) : /* @__PURE__ */ jsx("div", { className: "divide-y", children: data.sessions.map((session) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-2 text-sm", children: [
695
- /* @__PURE__ */ jsxs("div", { className: "space-y-0.5", children: [
696
- /* @__PURE__ */ jsx("p", { className: "font-medium", children: session.ipAddress || t("customer_accounts.admin.detail.unknownIp", "Unknown IP") }),
697
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground truncate max-w-xs", children: session.userAgent || t("customer_accounts.admin.detail.unknownDevice", "Unknown device") }),
698
- /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground", children: [
699
- t("customer_accounts.admin.detail.fields.lastUsed", "Last used"),
700
- ": ",
701
- formatDate(session.lastUsedAt, "-")
702
- ] })
703
- ] }),
704
- /* @__PURE__ */ jsx(
705
- Button,
706
- {
707
- variant: "outline",
708
- size: "sm",
709
- onClick: () => {
710
- void handleRevokeSession(session.id);
711
- },
712
- children: t("customer_accounts.admin.detail.actions.revoke", "Revoke")
713
- }
714
- )
715
- ] }, session.id)) })
716
- ] }),
717
- /* @__PURE__ */ jsx(
718
- ResetPasswordDialog,
719
- {
720
- open: resetPasswordOpen,
721
- onOpenChange: setResetPasswordOpen,
722
- userId: id,
723
- onRunMutation: runMutationWithContext
724
- }
725
- )
726
- ] }),
727
- ConfirmDialogElement
728
- ] });
4
+ import { resolvePortalRequestOrigin } from "../../../../lib/portalUrl.js";
5
+ import { PortalUserDetailPageClient } from "./PortalUserDetailPageClient.js";
6
+ async function CustomerUserDetailPage({ params }) {
7
+ const portalOrigin = resolvePortalRequestOrigin(await headers());
8
+ return /* @__PURE__ */ jsx(Page, { children: /* @__PURE__ */ jsx(PageBody, { className: "space-y-6", children: /* @__PURE__ */ jsx(PortalUserDetailPageClient, { params, portalOrigin }) }) });
729
9
  }
730
10
  export {
731
11
  CustomerUserDetailPage as default