@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,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/modules/query_index/lib/search-entity-policy.ts"],
4
- "sourcesContent": ["import { parseBooleanWithDefault } from '@open-mercato/shared/lib/boolean'\n\n/**\n * The canonical customer record. Every customer also has a person or company profile indexed under\n * its own entity type, and it is the profile \u2014 not the base row \u2014 that carries the detail-page\n * navigation.\n */\nexport const CUSTOMERS_BASE_ENTITY_TYPE = 'customers:customer_entity'\n\n/**\n * Whether base customer rows are offered as search results.\n *\n * Why the knob exists: `search_tokens` is written by the query index for **every** entity a CRUD\n * route indexes, independently of any module's `search.ts` config. `customers:customer_entity` is\n * indexed but no module registers it for search, so its rows only ever surface a second,\n * navigation-less copy of a customer who is already represented by their person or company\n * profile \u2014 the duplicate reported in #5046. Worse, the duplicate was visible to superadmins only:\n * `resolveReadableEntityTypes` narrows every other caller to entity types a module registered for\n * search, so the same query returned different shapes for different users.\n *\n * Default `false`: the token strategy never returns base customer rows, so a customer appears\n * exactly once, as their profile. `OM_SEARCH_CUSTOMERS_INDEX_BASE_ENTITY=true` restores the\n * previous behavior, where both rows are returned and the presenter enricher's linked-result merge\n * collapses the pair into the canonical entity result.\n *\n * Deliberately a **read-side** filter. `search_tokens` is not only the token-search index: the\n * People and Companies list routes resolve their search box through\n * `findEntityIdsBySearchTokens` on this exact entity type, and both query engines rewrite\n * `like`/`ilike` on encrypted customer columns into the same table. Dropping the rows would\n * silently break list search on `display_name`, `primary_email`, `description` and friends, so the\n * rows stay and only the search strategy stops offering them.\n */\nexport function indexesCustomerBaseEntity(): boolean {\n return parseBooleanWithDefault(process.env.OM_SEARCH_CUSTOMERS_INDEX_BASE_ENTITY, false)\n}\n\n/**\n * Entity types the token search strategy must not return.\n *\n * Exposed as a list so the strategy can express the exclusion as a single `NOT IN` predicate\n * instead of post-filtering rows it already paid to fetch \u2014 a post-filter would silently shrink\n * the caller's `limit`.\n */\nexport function listSearchTokenExcludedEntityTypes(): string[] {\n return indexesCustomerBaseEntity() ? [] : [CUSTOMERS_BASE_ENTITY_TYPE]\n}\n"],
5
- "mappings": "AAAA,SAAS,+BAA+B;AAOjC,MAAM,6BAA6B;AAyBnC,SAAS,4BAAqC;AACnD,SAAO,wBAAwB,QAAQ,IAAI,uCAAuC,KAAK;AACzF;AASO,SAAS,qCAA+C;AAC7D,SAAO,0BAA0B,IAAI,CAAC,IAAI,CAAC,0BAA0B;AACvE;",
6
- "names": []
7
- }
@@ -1,54 +0,0 @@
1
- const SHIPPED_LINE_IMMUTABLE_PAYLOAD_FIELDS = [
2
- "kind",
3
- "productId",
4
- "productVariantId",
5
- "quantityUnit",
6
- "unitPriceNet",
7
- "unitPriceGross",
8
- "priceId",
9
- "priceMode",
10
- "taxRateId",
11
- "taxRate",
12
- "taxAmount",
13
- "discountAmount",
14
- "discountPercent",
15
- "catalogSnapshot",
16
- "metadata"
17
- ];
18
- function scaleTotal(total, previousQuantity, nextQuantity) {
19
- if (!Number.isFinite(total) || !Number.isFinite(previousQuantity) || previousQuantity <= 0) {
20
- return void 0;
21
- }
22
- return total * (nextQuantity / previousQuantity);
23
- }
24
- function prepareShippedLineUpdatePayload(payload, currentLine) {
25
- if (!currentLine) return payload;
26
- const nextPayload = { ...payload };
27
- for (const field of SHIPPED_LINE_IMMUTABLE_PAYLOAD_FIELDS) {
28
- delete nextPayload[field];
29
- }
30
- delete nextPayload.totalNetAmount;
31
- delete nextPayload.totalGrossAmount;
32
- const nextQuantity = Number(nextPayload.quantity);
33
- if (!Number.isFinite(nextQuantity) || nextQuantity === currentLine.quantity) {
34
- return nextPayload;
35
- }
36
- const scaledNetTotal = scaleTotal(
37
- currentLine.totalNetAmount,
38
- currentLine.quantity,
39
- nextQuantity
40
- );
41
- const scaledGrossTotal = scaleTotal(
42
- currentLine.totalGrossAmount,
43
- currentLine.quantity,
44
- nextQuantity
45
- );
46
- if (scaledNetTotal !== void 0) nextPayload.totalNetAmount = scaledNetTotal;
47
- if (scaledGrossTotal !== void 0)
48
- nextPayload.totalGrossAmount = scaledGrossTotal;
49
- return nextPayload;
50
- }
51
- export {
52
- prepareShippedLineUpdatePayload
53
- };
54
- //# sourceMappingURL=lineItemShipmentLock.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/sales/components/documents/lineItemShipmentLock.ts"],
4
- "sourcesContent": ["type ShippedLineSnapshot = {\n quantity: number;\n totalNetAmount?: number | null;\n totalGrossAmount?: number | null;\n};\n\nconst SHIPPED_LINE_IMMUTABLE_PAYLOAD_FIELDS = [\n \"kind\",\n \"productId\",\n \"productVariantId\",\n \"quantityUnit\",\n \"unitPriceNet\",\n \"unitPriceGross\",\n \"priceId\",\n \"priceMode\",\n \"taxRateId\",\n \"taxRate\",\n \"taxAmount\",\n \"discountAmount\",\n \"discountPercent\",\n \"catalogSnapshot\",\n \"metadata\",\n] as const;\n\nfunction scaleTotal(\n total: number | null | undefined,\n previousQuantity: number,\n nextQuantity: number,\n): number | undefined {\n if (\n !Number.isFinite(total) ||\n !Number.isFinite(previousQuantity) ||\n previousQuantity <= 0\n ) {\n return undefined;\n }\n return (total as number) * (nextQuantity / previousQuantity);\n}\n\nexport function prepareShippedLineUpdatePayload(\n payload: Record<string, unknown>,\n currentLine: ShippedLineSnapshot | null,\n): Record<string, unknown> {\n if (!currentLine) return payload;\n\n const nextPayload = { ...payload };\n for (const field of SHIPPED_LINE_IMMUTABLE_PAYLOAD_FIELDS) {\n delete nextPayload[field];\n }\n\n delete nextPayload.totalNetAmount;\n delete nextPayload.totalGrossAmount;\n\n const nextQuantity = Number(nextPayload.quantity);\n if (!Number.isFinite(nextQuantity) || nextQuantity === currentLine.quantity) {\n return nextPayload;\n }\n\n const scaledNetTotal = scaleTotal(\n currentLine.totalNetAmount,\n currentLine.quantity,\n nextQuantity,\n );\n const scaledGrossTotal = scaleTotal(\n currentLine.totalGrossAmount,\n currentLine.quantity,\n nextQuantity,\n );\n if (scaledNetTotal !== undefined) nextPayload.totalNetAmount = scaledNetTotal;\n if (scaledGrossTotal !== undefined)\n nextPayload.totalGrossAmount = scaledGrossTotal;\n\n return nextPayload;\n}\n"],
5
- "mappings": "AAMA,MAAM,wCAAwC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,WACP,OACA,kBACA,cACoB;AACpB,MACE,CAAC,OAAO,SAAS,KAAK,KACtB,CAAC,OAAO,SAAS,gBAAgB,KACjC,oBAAoB,GACpB;AACA,WAAO;AAAA,EACT;AACA,SAAQ,SAAoB,eAAe;AAC7C;AAEO,SAAS,gCACd,SACA,aACyB;AACzB,MAAI,CAAC,YAAa,QAAO;AAEzB,QAAM,cAAc,EAAE,GAAG,QAAQ;AACjC,aAAW,SAAS,uCAAuC;AACzD,WAAO,YAAY,KAAK;AAAA,EAC1B;AAEA,SAAO,YAAY;AACnB,SAAO,YAAY;AAEnB,QAAM,eAAe,OAAO,YAAY,QAAQ;AAChD,MAAI,CAAC,OAAO,SAAS,YAAY,KAAK,iBAAiB,YAAY,UAAU;AAC3E,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB;AAAA,IACrB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ;AAAA,EACF;AACA,QAAM,mBAAmB;AAAA,IACvB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ;AAAA,EACF;AACA,MAAI,mBAAmB,OAAW,aAAY,iBAAiB;AAC/D,MAAI,qBAAqB;AACvB,gBAAY,mBAAmB;AAEjC,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,33 +0,0 @@
1
- import { FeatureToggle } from "@open-mercato/core/modules/feature_toggles/data/entities";
2
- import { findOneWithDecryption } from "@open-mercato/shared/lib/encryption/find";
3
- import { SALES_CHANNELS_TOGGLE_ID } from "./salesChannelsToggleId.js";
4
- const SALES_CHANNELS_TOGGLE_DEFINITION = {
5
- identifier: SALES_CHANNELS_TOGGLE_ID,
6
- name: "Sales Channels",
7
- description: "Show sales channel pickers, filters, and management UI. Disable for tenants that do not use sales channels.",
8
- category: "sales",
9
- type: "boolean",
10
- defaultValue: true
11
- };
12
- async function seedSalesChannelsToggle(em) {
13
- const existing = await findOneWithDecryption(em, FeatureToggle, {
14
- identifier: SALES_CHANNELS_TOGGLE_DEFINITION.identifier
15
- });
16
- if (existing) return;
17
- em.persist(
18
- em.create(FeatureToggle, {
19
- identifier: SALES_CHANNELS_TOGGLE_DEFINITION.identifier,
20
- name: SALES_CHANNELS_TOGGLE_DEFINITION.name,
21
- description: SALES_CHANNELS_TOGGLE_DEFINITION.description,
22
- category: SALES_CHANNELS_TOGGLE_DEFINITION.category,
23
- type: SALES_CHANNELS_TOGGLE_DEFINITION.type,
24
- defaultValue: SALES_CHANNELS_TOGGLE_DEFINITION.defaultValue
25
- })
26
- );
27
- await em.flush();
28
- }
29
- export {
30
- SALES_CHANNELS_TOGGLE_DEFINITION,
31
- seedSalesChannelsToggle
32
- };
33
- //# sourceMappingURL=salesChannelsToggleSeed.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/modules/sales/lib/salesChannelsToggleSeed.ts"],
4
- "sourcesContent": ["import type { EntityManager } from '@mikro-orm/postgresql'\nimport { FeatureToggle } from '@open-mercato/core/modules/feature_toggles/data/entities'\nimport { findOneWithDecryption } from '@open-mercato/shared/lib/encryption/find'\nimport { SALES_CHANNELS_TOGGLE_ID } from './salesChannelsToggleId'\n\nexport const SALES_CHANNELS_TOGGLE_DEFINITION = {\n identifier: SALES_CHANNELS_TOGGLE_ID,\n name: 'Sales Channels',\n description: 'Show sales channel pickers, filters, and management UI. Disable for tenants that do not use sales channels.',\n category: 'sales',\n type: 'boolean' as const,\n defaultValue: true,\n} as const\n\n// The sales module owns this toggle definition, so tenant setup registers it the\n// same way portal, customers and wms register theirs. Shipping it only in the\n// core defaults file left it unregistered on every database initialized before\n// the toggle existed, and `useSalesChannelsEnabled` then 404s on every mount.\n//\n// The lookup deliberately does not filter on `deletedAt`. Deletion is soft\n// (`feature_toggles.global.delete`) while `feature_toggles_identifier_unique`\n// covers every row, so filtering would make this insert a duplicate and fail the\n// whole seed run on any installation where the toggle was deleted. Matching the\n// create command's own uniqueness check also leaves an operator's deletion alone\n// instead of resurrecting the definition on every tenant seed.\nexport async function seedSalesChannelsToggle(em: EntityManager): Promise<void> {\n const existing = await findOneWithDecryption(em, FeatureToggle, {\n identifier: SALES_CHANNELS_TOGGLE_DEFINITION.identifier,\n })\n if (existing) return\n em.persist(\n em.create(FeatureToggle, {\n identifier: SALES_CHANNELS_TOGGLE_DEFINITION.identifier,\n name: SALES_CHANNELS_TOGGLE_DEFINITION.name,\n description: SALES_CHANNELS_TOGGLE_DEFINITION.description,\n category: SALES_CHANNELS_TOGGLE_DEFINITION.category,\n type: SALES_CHANNELS_TOGGLE_DEFINITION.type,\n defaultValue: SALES_CHANNELS_TOGGLE_DEFINITION.defaultValue,\n }),\n )\n await em.flush()\n}\n"],
5
- "mappings": "AACA,SAAS,qBAAqB;AAC9B,SAAS,6BAA6B;AACtC,SAAS,gCAAgC;AAElC,MAAM,mCAAmC;AAAA,EAC9C,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,MAAM;AAAA,EACN,cAAc;AAChB;AAaA,eAAsB,wBAAwB,IAAkC;AAC9E,QAAM,WAAW,MAAM,sBAAsB,IAAI,eAAe;AAAA,IAC9D,YAAY,iCAAiC;AAAA,EAC/C,CAAC;AACD,MAAI,SAAU;AACd,KAAG;AAAA,IACD,GAAG,OAAO,eAAe;AAAA,MACvB,YAAY,iCAAiC;AAAA,MAC7C,MAAM,iCAAiC;AAAA,MACvC,aAAa,iCAAiC;AAAA,MAC9C,UAAU,iCAAiC;AAAA,MAC3C,MAAM,iCAAiC;AAAA,MACvC,cAAc,iCAAiC;AAAA,IACjD,CAAC;AAAA,EACH;AACA,QAAM,GAAG,MAAM;AACjB;",
6
- "names": []
7
- }
@@ -1,32 +0,0 @@
1
- import { Migration } from "@mikro-orm/migrations";
2
- class Migration20260821120000_sales_notes_addresses_context_idx extends Migration {
3
- isTransactional() {
4
- return false;
5
- }
6
- up() {
7
- this.addSql(`drop index concurrently if exists "sales_notes_context_idx";`);
8
- this.addSql(`create index concurrently "sales_notes_context_idx" on "sales_notes" ("context_id");`);
9
- this.addSql(`drop index concurrently if exists "sales_notes_order_idx";`);
10
- this.addSql(`create index concurrently "sales_notes_order_idx" on "sales_notes" ("order_id");`);
11
- this.addSql(`drop index concurrently if exists "sales_notes_quote_idx";`);
12
- this.addSql(`create index concurrently "sales_notes_quote_idx" on "sales_notes" ("quote_id");`);
13
- this.addSql(`drop index concurrently if exists "sales_document_addresses_document_idx";`);
14
- this.addSql(`create index concurrently "sales_document_addresses_document_idx" on "sales_document_addresses" ("document_id");`);
15
- this.addSql(`drop index concurrently if exists "sales_document_addresses_order_idx";`);
16
- this.addSql(`create index concurrently "sales_document_addresses_order_idx" on "sales_document_addresses" ("order_id");`);
17
- this.addSql(`drop index concurrently if exists "sales_document_addresses_quote_idx";`);
18
- this.addSql(`create index concurrently "sales_document_addresses_quote_idx" on "sales_document_addresses" ("quote_id");`);
19
- }
20
- down() {
21
- this.addSql(`drop index concurrently if exists "sales_document_addresses_quote_idx";`);
22
- this.addSql(`drop index concurrently if exists "sales_document_addresses_order_idx";`);
23
- this.addSql(`drop index concurrently if exists "sales_document_addresses_document_idx";`);
24
- this.addSql(`drop index concurrently if exists "sales_notes_quote_idx";`);
25
- this.addSql(`drop index concurrently if exists "sales_notes_order_idx";`);
26
- this.addSql(`drop index concurrently if exists "sales_notes_context_idx";`);
27
- }
28
- }
29
- export {
30
- Migration20260821120000_sales_notes_addresses_context_idx
31
- };
32
- //# sourceMappingURL=Migration20260821120000_sales_notes_addresses_context_idx.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.ts"],
4
- "sourcesContent": ["import { Migration } from '@mikro-orm/migrations';\n\n// sales_notes and sales_document_addresses each carried a single index \u2014\n// (organization_id, tenant_id) \u2014 and are never read by that predicate alone.\n// loadOrderSnapshot / loadQuoteSnapshot (commands/documents.ts) read them by\n// context in the same Promise.all:\n//\n// findWithDecryption(em, SalesNote, { contextType, contextId, ...scope })\n// findWithDecryption(em, SalesDocumentAddress, { documentId, documentKind, ...scope })\n//\n// On a single-organization deployment the scope index matches every row, so the\n// planner discards it and scans. The cost is CPU filtering, so a warm cache does\n// not reduce it. Measured on a table of ~331k rows / 110 MB: a parallel\n// sequential scan removing 110,457 rows per worker, 82 ms per read to return 0\n// rows. The command bus runs prepare() and captureAfter() around every command\n// and both load a document snapshot, so one written document \u2014 itself several\n// commands (the document, one per changed line, the payment reconcile) \u2014\n// performs roughly 20 of these reads. Counters over one bulk-import batch of 100\n// records showed 1,971 sequential scans reading 217,670,528 rows, 2.18M rows per\n// imported record; repeatable across consecutive batches (1,971 / 1,974 / 1,911).\n//\n// context_type and document_kind are deliberately omitted, as they were for\n// sales_document_tag_assignments_document_idx (Migration20260806120000), and the\n// scope columns with them. sales_orders.id and sales_quotes.id are both\n// gen_random_uuid() from their own tables, so a context_id already determines its\n// context_type and its tenant; the seek returns the handful of rows belonging to\n// one document and the remaining terms are rechecked over those. Folding three\n// more columns in \u2014 one text and two uuids \u2014 roughly triples the index entry for\n// no selectivity, on tables that take a write per document save and a note per\n// order status change. The sibling scope indexes that do fold scope in\n// (sales_order_lines_scope_idx, sales_payments_scope_idx) predate that reasoning.\n//\n// order_id and quote_id are separate indexes rather than a widening of the above:\n// both tables are the child side of `on delete set null` constraints, which\n// PostgreSQL does not index automatically, and the constraint check probes\n// order_id / quote_id \u2014 columns the context index cannot serve even though they\n// hold the same uuid. Without them every delete of a parent order or quote scans\n// the child table in full.\n//\n// Both tables are high-churn, so the indexes are built CONCURRENTLY to avoid\n// blocking writes during the build. CREATE INDEX CONCURRENTLY cannot run inside a\n// transaction, hence isTransactional() => false; the migration runner applies\n// migrations one-by-one, so this opt-out is safe. Drop first so retrying a failed\n// concurrent build removes PostgreSQL's invalid index stub instead of letting IF\n// NOT EXISTS silently accept it: a half-built concurrent index is left INVALID,\n// the planner ignores it, and IF NOT EXISTS would report success while the table\n// stays unindexed. Same shape as Migration20260806120000 and\n// Migration20260731105052_query_index.\n//\n// On a database that does not have these indexes yet \u2014 every fresh install \u2014 the\n// drops are no-ops and there is no window without them. An operator who already\n// created one out of band should expect it to be rebuilt here, and the reads that\n// depend on it to fall back to their pre-index cost until the concurrent build\n// finishes; on a large table, run this while the writers that depend on it are\n// paused.\nexport class Migration20260821120000_sales_notes_addresses_context_idx extends Migration {\n\n override isTransactional(): boolean {\n return false;\n }\n\n override up(): void | Promise<void> {\n this.addSql(`drop index concurrently if exists \"sales_notes_context_idx\";`);\n this.addSql(`create index concurrently \"sales_notes_context_idx\" on \"sales_notes\" (\"context_id\");`);\n this.addSql(`drop index concurrently if exists \"sales_notes_order_idx\";`);\n this.addSql(`create index concurrently \"sales_notes_order_idx\" on \"sales_notes\" (\"order_id\");`);\n this.addSql(`drop index concurrently if exists \"sales_notes_quote_idx\";`);\n this.addSql(`create index concurrently \"sales_notes_quote_idx\" on \"sales_notes\" (\"quote_id\");`);\n\n this.addSql(`drop index concurrently if exists \"sales_document_addresses_document_idx\";`);\n this.addSql(`create index concurrently \"sales_document_addresses_document_idx\" on \"sales_document_addresses\" (\"document_id\");`);\n this.addSql(`drop index concurrently if exists \"sales_document_addresses_order_idx\";`);\n this.addSql(`create index concurrently \"sales_document_addresses_order_idx\" on \"sales_document_addresses\" (\"order_id\");`);\n this.addSql(`drop index concurrently if exists \"sales_document_addresses_quote_idx\";`);\n this.addSql(`create index concurrently \"sales_document_addresses_quote_idx\" on \"sales_document_addresses\" (\"quote_id\");`);\n }\n\n override down(): void | Promise<void> {\n this.addSql(`drop index concurrently if exists \"sales_document_addresses_quote_idx\";`);\n this.addSql(`drop index concurrently if exists \"sales_document_addresses_order_idx\";`);\n this.addSql(`drop index concurrently if exists \"sales_document_addresses_document_idx\";`);\n this.addSql(`drop index concurrently if exists \"sales_notes_quote_idx\";`);\n this.addSql(`drop index concurrently if exists \"sales_notes_order_idx\";`);\n this.addSql(`drop index concurrently if exists \"sales_notes_context_idx\";`);\n }\n\n}\n"],
5
- "mappings": "AAAA,SAAS,iBAAiB;AAuDnB,MAAM,kEAAkE,UAAU;AAAA,EAE9E,kBAA2B;AAClC,WAAO;AAAA,EACT;AAAA,EAES,KAA2B;AAClC,SAAK,OAAO,8DAA8D;AAC1E,SAAK,OAAO,sFAAsF;AAClG,SAAK,OAAO,4DAA4D;AACxE,SAAK,OAAO,kFAAkF;AAC9F,SAAK,OAAO,4DAA4D;AACxE,SAAK,OAAO,kFAAkF;AAE9F,SAAK,OAAO,4EAA4E;AACxF,SAAK,OAAO,kHAAkH;AAC9H,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,4GAA4G;AACxH,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,4GAA4G;AAAA,EAC1H;AAAA,EAES,OAA6B;AACpC,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,4EAA4E;AACxF,SAAK,OAAO,4DAA4D;AACxE,SAAK,OAAO,4DAA4D;AACxE,SAAK,OAAO,8DAA8D;AAAA,EAC5E;AAEF;",
6
- "names": []
7
- }
@@ -1,21 +0,0 @@
1
- import { escapeLikePattern } from "@open-mercato/shared/lib/db/escapeLikePattern";
2
- import { locales } from "@open-mercato/shared/lib/i18n/config";
3
- import { matchCountryCodes } from "@open-mercato/shared/lib/location/countries";
4
- function buildWarehouseListSearchOr(term) {
5
- const like = `%${escapeLikePattern(term)}%`;
6
- const orFilters = [
7
- { name: { $ilike: like } },
8
- { code: { $ilike: like } },
9
- { city: { $ilike: like } },
10
- { country: { $ilike: like } }
11
- ];
12
- const matchedCountryCodes = matchCountryCodes(term, { locales });
13
- if (matchedCountryCodes.length > 0) {
14
- orFilters.push({ country: { $in: matchedCountryCodes } });
15
- }
16
- return orFilters;
17
- }
18
- export {
19
- buildWarehouseListSearchOr
20
- };
21
- //# sourceMappingURL=warehouseSearch.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/modules/wms/api/warehouseSearch.ts"],
4
- "sourcesContent": ["import { escapeLikePattern } from '@open-mercato/shared/lib/db/escapeLikePattern'\nimport { locales } from '@open-mercato/shared/lib/i18n/config'\nimport { matchCountryCodes } from '@open-mercato/shared/lib/location/countries'\n\n/**\n * Warehouse list search matches name/code/city plus both stored country values:\n * ISO codes (`PL`) and legacy free-text (`Poland`). Localized labels shown in\n * the table (`Poland` / `Polska`) must resolve back to the stored ISO code.\n */\nexport function buildWarehouseListSearchOr(term: string): Array<Record<string, unknown>> {\n const like = `%${escapeLikePattern(term)}%`\n const orFilters: Array<Record<string, unknown>> = [\n { name: { $ilike: like } },\n { code: { $ilike: like } },\n { city: { $ilike: like } },\n { country: { $ilike: like } },\n ]\n const matchedCountryCodes = matchCountryCodes(term, { locales })\n if (matchedCountryCodes.length > 0) {\n orFilters.push({ country: { $in: matchedCountryCodes } })\n }\n return orFilters\n}\n"],
5
- "mappings": "AAAA,SAAS,yBAAyB;AAClC,SAAS,eAAe;AACxB,SAAS,yBAAyB;AAO3B,SAAS,2BAA2B,MAA8C;AACvF,QAAM,OAAO,IAAI,kBAAkB,IAAI,CAAC;AACxC,QAAM,YAA4C;AAAA,IAChD,EAAE,MAAM,EAAE,QAAQ,KAAK,EAAE;AAAA,IACzB,EAAE,MAAM,EAAE,QAAQ,KAAK,EAAE;AAAA,IACzB,EAAE,MAAM,EAAE,QAAQ,KAAK,EAAE;AAAA,IACzB,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC9B;AACA,QAAM,sBAAsB,kBAAkB,MAAM,EAAE,QAAQ,CAAC;AAC/D,MAAI,oBAAoB,SAAS,GAAG;AAClC,cAAU,KAAK,EAAE,SAAS,EAAE,KAAK,oBAAoB,EAAE,CAAC;AAAA,EAC1D;AACA,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,158 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { z } from "zod";
5
- import { CrudForm } from "@open-mercato/ui/backend/CrudForm";
6
- import { flash } from "@open-mercato/ui/backend/FlashMessages";
7
- import { useGuardedMutation } from "@open-mercato/ui/backend/injection/useGuardedMutation";
8
- import { apiCall } from "@open-mercato/ui/backend/utils/apiCall";
9
- import { raiseCrudError } from "@open-mercato/ui/backend/utils/serverErrors";
10
- import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@open-mercato/ui/primitives/dialog";
11
- import { extractCustomFieldEntries } from "@open-mercato/shared/lib/crud/custom-fields-client";
12
- import { useLocale, useT } from "@open-mercato/shared/lib/i18n/context";
13
- import { E } from "../../../../generated/entities.ids.generated.js";
14
- import { flashMutationError } from "../../lib/flashMutationError.js";
15
- import {
16
- countryOptionFromStored,
17
- loadCountryOptions,
18
- loadTimezoneOptions,
19
- timezoneOptionFromStored
20
- } from "./warehouseFormOptions.js";
21
- const warehouseFormSchema = z.object({
22
- name: z.string().trim().min(1),
23
- code: z.string().trim().min(1),
24
- city: z.string().trim().optional(),
25
- country: z.string().trim().optional(),
26
- timezone: z.string().trim().optional(),
27
- isActive: z.boolean().default(true),
28
- isPrimary: z.boolean().default(false)
29
- }).passthrough();
30
- function WarehouseEditDialog({ open, onOpenChange, mode, row, onSaved }) {
31
- const t = useT();
32
- const locale = useLocale();
33
- const { runMutation } = useGuardedMutation({ contextId: "wms-config-warehouses" });
34
- const [submitting, setSubmitting] = React.useState(false);
35
- const countrySeedOptions = React.useMemo(() => {
36
- if (mode !== "edit" || !row?.country?.trim()) return void 0;
37
- return [countryOptionFromStored(row.country, locale)];
38
- }, [locale, mode, row]);
39
- const timezoneSeedOptions = React.useMemo(() => {
40
- if (mode !== "edit" || !row?.timezone?.trim()) return void 0;
41
- return [timezoneOptionFromStored(row.timezone)];
42
- }, [mode, row]);
43
- const fields = React.useMemo(() => [
44
- { id: "name", type: "text", label: t("wms.backend.config.warehouses.form.name", "Name"), required: true },
45
- { id: "code", type: "text", label: t("wms.backend.config.warehouses.form.code", "Code"), required: true },
46
- { id: "city", type: "text", label: t("wms.backend.config.warehouses.form.city", "City") },
47
- {
48
- id: "country",
49
- type: "combobox",
50
- label: t("wms.backend.config.warehouses.form.country", "Country"),
51
- placeholder: t("wms.backend.config.warehouses.form.countryPlaceholder", "Search country"),
52
- loadOptions: (query) => loadCountryOptions(query, locale),
53
- allowCustomValues: false,
54
- seedOptions: countrySeedOptions,
55
- resolveLabel: (value) => countryOptionFromStored(value, locale).label
56
- },
57
- {
58
- id: "timezone",
59
- type: "combobox",
60
- label: t("wms.backend.config.warehouses.form.timezone", "Timezone"),
61
- placeholder: t("wms.backend.config.warehouses.form.timezonePlaceholder", "Search timezone"),
62
- loadOptions: loadTimezoneOptions,
63
- allowCustomValues: false,
64
- seedOptions: timezoneSeedOptions
65
- },
66
- { id: "isPrimary", type: "checkbox", label: t("wms.backend.config.warehouses.form.primary", "Primary warehouse") },
67
- { id: "isActive", type: "checkbox", label: t("wms.backend.config.warehouses.form.active", "Active") }
68
- ], [countrySeedOptions, locale, t, timezoneSeedOptions]);
69
- const initialValues = React.useMemo(() => {
70
- if (mode === "edit" && row) {
71
- return {
72
- name: row.name || "",
73
- code: row.code || "",
74
- city: row.city || "",
75
- country: row.country || "",
76
- timezone: row.timezone || "",
77
- isActive: row.is_active !== false,
78
- isPrimary: row.is_primary === true,
79
- ...extractCustomFieldEntries(row)
80
- };
81
- }
82
- return {
83
- name: "",
84
- code: "",
85
- city: "",
86
- country: "",
87
- timezone: "",
88
- isActive: true,
89
- isPrimary: false
90
- };
91
- }, [mode, row]);
92
- const handleSubmit = React.useCallback(async (values) => {
93
- setSubmitting(true);
94
- try {
95
- const payload = mode === "edit" && row ? { id: row.id, ...values } : values;
96
- const call = await runMutation({
97
- operation: async () => {
98
- const result = await apiCall(
99
- "/api/wms/warehouses",
100
- {
101
- method: mode === "edit" ? "PUT" : "POST",
102
- headers: { "x-om-forbidden-redirect": "0" },
103
- body: JSON.stringify(payload)
104
- }
105
- );
106
- if (!result.ok) {
107
- await raiseCrudError(result.response, t("wms.backend.config.warehouses.errors.save", "Failed to save warehouse."));
108
- }
109
- return result;
110
- },
111
- context: {},
112
- mutationPayload: payload
113
- });
114
- flash(
115
- mode === "edit" ? t("wms.backend.config.warehouses.flash.updated", "Warehouse updated") : t("wms.backend.config.warehouses.flash.created", "Warehouse created"),
116
- "success"
117
- );
118
- const resultBody = call?.result && typeof call.result === "object" ? call.result : null;
119
- const createdId = mode === "create" && typeof resultBody?.id === "string" ? resultBody.id.trim() : void 0;
120
- const updatedAt = typeof resultBody?.updatedAt === "string" && resultBody.updatedAt.trim() || typeof resultBody?.updated_at === "string" && resultBody.updated_at.trim() || void 0;
121
- onOpenChange(false);
122
- await onSaved?.({
123
- mode,
124
- id: createdId || row?.id,
125
- values,
126
- updatedAt: updatedAt || null
127
- });
128
- } catch (error) {
129
- flashMutationError(error, t("wms.backend.config.warehouses.errors.save", "Failed to save warehouse."), t);
130
- } finally {
131
- setSubmitting(false);
132
- }
133
- }, [mode, onOpenChange, onSaved, row, runMutation, t]);
134
- return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { className: "max-w-3xl", children: [
135
- /* @__PURE__ */ jsx(DialogHeader, { children: /* @__PURE__ */ jsx(DialogTitle, { children: mode === "edit" ? t("wms.backend.config.warehouses.dialog.edit", "Edit warehouse") : t("wms.backend.config.warehouses.dialog.create", "Create warehouse") }) }),
136
- /* @__PURE__ */ jsx(
137
- CrudForm,
138
- {
139
- schema: warehouseFormSchema,
140
- fields,
141
- entityId: E.wms.warehouse,
142
- initialValues,
143
- submitLabel: t("common.save", "Save"),
144
- onSubmit: handleSubmit,
145
- embedded: true,
146
- disableInitialFocus: true,
147
- isLoading: submitting,
148
- twoColumn: true,
149
- optimisticLockUpdatedAt: mode === "edit" ? row?.updatedAt ?? row?.updated_at ?? null : void 0
150
- }
151
- )
152
- ] }) });
153
- }
154
- export {
155
- WarehouseEditDialog,
156
- warehouseFormSchema
157
- };
158
- //# sourceMappingURL=WarehouseEditDialog.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/wms/components/backend/WarehouseEditDialog.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { z } from 'zod'\nimport { CrudForm, type CrudField } from '@open-mercato/ui/backend/CrudForm'\nimport { flash } from '@open-mercato/ui/backend/FlashMessages'\nimport { useGuardedMutation } from '@open-mercato/ui/backend/injection/useGuardedMutation'\nimport { apiCall } from '@open-mercato/ui/backend/utils/apiCall'\nimport { raiseCrudError } from '@open-mercato/ui/backend/utils/serverErrors'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from '@open-mercato/ui/primitives/dialog'\nimport { extractCustomFieldEntries } from '@open-mercato/shared/lib/crud/custom-fields-client'\nimport { useLocale, useT } from '@open-mercato/shared/lib/i18n/context'\nimport { E } from '#generated/entities.ids.generated'\nimport { flashMutationError } from '../../lib/flashMutationError'\nimport {\n countryOptionFromStored,\n loadCountryOptions,\n loadTimezoneOptions,\n timezoneOptionFromStored,\n} from './warehouseFormOptions'\n\nexport type WarehouseDialogRow = {\n id: string\n name?: string | null\n code?: string | null\n city?: string | null\n country?: string | null\n timezone?: string | null\n is_active?: boolean | null\n is_primary?: boolean | null\n updated_at?: string | null\n updatedAt?: string | null\n customValues?: Record<string, unknown> | null\n}\n\nexport type WarehouseFormValues = {\n name: string\n code: string\n city?: string\n country?: string\n timezone?: string\n isActive: boolean\n isPrimary: boolean\n}\n\nexport const warehouseFormSchema = z.object({\n name: z.string().trim().min(1),\n code: z.string().trim().min(1),\n city: z.string().trim().optional(),\n country: z.string().trim().optional(),\n timezone: z.string().trim().optional(),\n isActive: z.boolean().default(true),\n isPrimary: z.boolean().default(false),\n}).passthrough()\n\ntype WarehouseEditDialogProps = {\n open: boolean\n onOpenChange: (open: boolean) => void\n mode: 'create' | 'edit'\n row?: WarehouseDialogRow | null\n onSaved?: (info: {\n mode: 'create' | 'edit'\n id?: string\n values: WarehouseFormValues\n updatedAt?: string | null\n }) => void | Promise<void>\n}\n\nexport function WarehouseEditDialog({ open, onOpenChange, mode, row, onSaved }: WarehouseEditDialogProps) {\n const t = useT()\n const locale = useLocale()\n const { runMutation } = useGuardedMutation<Record<string, unknown>>({ contextId: 'wms-config-warehouses' })\n const [submitting, setSubmitting] = React.useState(false)\n\n const countrySeedOptions = React.useMemo(() => {\n if (mode !== 'edit' || !row?.country?.trim()) return undefined\n return [countryOptionFromStored(row.country, locale)]\n }, [locale, mode, row])\n\n const timezoneSeedOptions = React.useMemo(() => {\n if (mode !== 'edit' || !row?.timezone?.trim()) return undefined\n return [timezoneOptionFromStored(row.timezone)]\n }, [mode, row])\n\n const fields = React.useMemo<CrudField[]>(() => [\n { id: 'name', type: 'text', label: t('wms.backend.config.warehouses.form.name', 'Name'), required: true },\n { id: 'code', type: 'text', label: t('wms.backend.config.warehouses.form.code', 'Code'), required: true },\n { id: 'city', type: 'text', label: t('wms.backend.config.warehouses.form.city', 'City') },\n {\n id: 'country',\n type: 'combobox',\n label: t('wms.backend.config.warehouses.form.country', 'Country'),\n placeholder: t('wms.backend.config.warehouses.form.countryPlaceholder', 'Search country'),\n loadOptions: (query) => loadCountryOptions(query, locale),\n allowCustomValues: false,\n seedOptions: countrySeedOptions,\n resolveLabel: (value) => countryOptionFromStored(value, locale).label,\n },\n {\n id: 'timezone',\n type: 'combobox',\n label: t('wms.backend.config.warehouses.form.timezone', 'Timezone'),\n placeholder: t('wms.backend.config.warehouses.form.timezonePlaceholder', 'Search timezone'),\n loadOptions: loadTimezoneOptions,\n allowCustomValues: false,\n seedOptions: timezoneSeedOptions,\n },\n { id: 'isPrimary', type: 'checkbox', label: t('wms.backend.config.warehouses.form.primary', 'Primary warehouse') },\n { id: 'isActive', type: 'checkbox', label: t('wms.backend.config.warehouses.form.active', 'Active') },\n ], [countrySeedOptions, locale, t, timezoneSeedOptions])\n\n const initialValues = React.useMemo<WarehouseFormValues>(() => {\n if (mode === 'edit' && row) {\n return {\n name: row.name || '',\n code: row.code || '',\n city: row.city || '',\n country: row.country || '',\n timezone: row.timezone || '',\n isActive: row.is_active !== false,\n isPrimary: row.is_primary === true,\n ...extractCustomFieldEntries(row as Record<string, unknown>),\n } as WarehouseFormValues\n }\n return {\n name: '',\n code: '',\n city: '',\n country: '',\n timezone: '',\n isActive: true,\n isPrimary: false,\n }\n }, [mode, row])\n\n const handleSubmit = React.useCallback(async (values: WarehouseFormValues) => {\n setSubmitting(true)\n try {\n const payload = mode === 'edit' && row ? { id: row.id, ...values } : values\n const call = await runMutation({\n operation: async () => {\n const result = await apiCall<{ id?: string | null; updatedAt?: string | null; updated_at?: string | null }>(\n '/api/wms/warehouses',\n {\n method: mode === 'edit' ? 'PUT' : 'POST',\n headers: { 'x-om-forbidden-redirect': '0' },\n body: JSON.stringify(payload),\n },\n )\n if (!result.ok) {\n await raiseCrudError(result.response, t('wms.backend.config.warehouses.errors.save', 'Failed to save warehouse.'))\n }\n return result\n },\n context: {},\n mutationPayload: payload,\n })\n flash(\n mode === 'edit'\n ? t('wms.backend.config.warehouses.flash.updated', 'Warehouse updated')\n : t('wms.backend.config.warehouses.flash.created', 'Warehouse created'),\n 'success',\n )\n const resultBody =\n call?.result && typeof call.result === 'object'\n ? (call.result as { id?: unknown; updatedAt?: unknown; updated_at?: unknown })\n : null\n const createdId =\n mode === 'create' && typeof resultBody?.id === 'string'\n ? resultBody.id.trim()\n : undefined\n const updatedAt =\n (typeof resultBody?.updatedAt === 'string' && resultBody.updatedAt.trim()) ||\n (typeof resultBody?.updated_at === 'string' && resultBody.updated_at.trim()) ||\n undefined\n onOpenChange(false)\n await onSaved?.({\n mode,\n id: createdId || row?.id,\n values,\n updatedAt: updatedAt || null,\n })\n } catch (error) {\n flashMutationError(error, t('wms.backend.config.warehouses.errors.save', 'Failed to save warehouse.'), t)\n } finally {\n setSubmitting(false)\n }\n }, [mode, onOpenChange, onSaved, row, runMutation, t])\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-w-3xl\">\n <DialogHeader>\n <DialogTitle>\n {mode === 'edit'\n ? t('wms.backend.config.warehouses.dialog.edit', 'Edit warehouse')\n : t('wms.backend.config.warehouses.dialog.create', 'Create warehouse')}\n </DialogTitle>\n </DialogHeader>\n <CrudForm<WarehouseFormValues>\n schema={warehouseFormSchema}\n fields={fields}\n entityId={E.wms.warehouse}\n initialValues={initialValues}\n submitLabel={t('common.save', 'Save')}\n onSubmit={handleSubmit}\n embedded\n disableInitialFocus\n isLoading={submitting}\n twoColumn\n optimisticLockUpdatedAt={mode === 'edit' ? (row?.updatedAt ?? row?.updated_at ?? null) : undefined}\n />\n </DialogContent>\n </Dialog>\n )\n}\n"],
5
- "mappings": ";AA+LM,SAEI,KAFJ;AA7LN,YAAY,WAAW;AACvB,SAAS,SAAS;AAClB,SAAS,gBAAgC;AACzC,SAAS,aAAa;AACtB,SAAS,0BAA0B;AACnC,SAAS,eAAe;AACxB,SAAS,sBAAsB;AAC/B,SAAS,QAAQ,eAAe,cAAc,mBAAmB;AACjE,SAAS,iCAAiC;AAC1C,SAAS,WAAW,YAAY;AAChC,SAAS,SAAS;AAClB,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA0BA,MAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC7B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC7B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS;AAAA,EACjC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS;AAAA,EACpC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS;AAAA,EACrC,UAAU,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAClC,WAAW,EAAE,QAAQ,EAAE,QAAQ,KAAK;AACtC,CAAC,EAAE,YAAY;AAeR,SAAS,oBAAoB,EAAE,MAAM,cAAc,MAAM,KAAK,QAAQ,GAA6B;AACxG,QAAM,IAAI,KAAK;AACf,QAAM,SAAS,UAAU;AACzB,QAAM,EAAE,YAAY,IAAI,mBAA4C,EAAE,WAAW,wBAAwB,CAAC;AAC1G,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,KAAK;AAExD,QAAM,qBAAqB,MAAM,QAAQ,MAAM;AAC7C,QAAI,SAAS,UAAU,CAAC,KAAK,SAAS,KAAK,EAAG,QAAO;AACrD,WAAO,CAAC,wBAAwB,IAAI,SAAS,MAAM,CAAC;AAAA,EACtD,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC;AAEtB,QAAM,sBAAsB,MAAM,QAAQ,MAAM;AAC9C,QAAI,SAAS,UAAU,CAAC,KAAK,UAAU,KAAK,EAAG,QAAO;AACtD,WAAO,CAAC,yBAAyB,IAAI,QAAQ,CAAC;AAAA,EAChD,GAAG,CAAC,MAAM,GAAG,CAAC;AAEd,QAAM,SAAS,MAAM,QAAqB,MAAM;AAAA,IAC9C,EAAE,IAAI,QAAQ,MAAM,QAAQ,OAAO,EAAE,2CAA2C,MAAM,GAAG,UAAU,KAAK;AAAA,IACxG,EAAE,IAAI,QAAQ,MAAM,QAAQ,OAAO,EAAE,2CAA2C,MAAM,GAAG,UAAU,KAAK;AAAA,IACxG,EAAE,IAAI,QAAQ,MAAM,QAAQ,OAAO,EAAE,2CAA2C,MAAM,EAAE;AAAA,IACxF;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO,EAAE,8CAA8C,SAAS;AAAA,MAChE,aAAa,EAAE,yDAAyD,gBAAgB;AAAA,MACxF,aAAa,CAAC,UAAU,mBAAmB,OAAO,MAAM;AAAA,MACxD,mBAAmB;AAAA,MACnB,aAAa;AAAA,MACb,cAAc,CAAC,UAAU,wBAAwB,OAAO,MAAM,EAAE;AAAA,IAClE;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO,EAAE,+CAA+C,UAAU;AAAA,MAClE,aAAa,EAAE,0DAA0D,iBAAiB;AAAA,MAC1F,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,aAAa;AAAA,IACf;AAAA,IACA,EAAE,IAAI,aAAa,MAAM,YAAY,OAAO,EAAE,8CAA8C,mBAAmB,EAAE;AAAA,IACjH,EAAE,IAAI,YAAY,MAAM,YAAY,OAAO,EAAE,6CAA6C,QAAQ,EAAE;AAAA,EACtG,GAAG,CAAC,oBAAoB,QAAQ,GAAG,mBAAmB,CAAC;AAEvD,QAAM,gBAAgB,MAAM,QAA6B,MAAM;AAC7D,QAAI,SAAS,UAAU,KAAK;AAC1B,aAAO;AAAA,QACL,MAAM,IAAI,QAAQ;AAAA,QAClB,MAAM,IAAI,QAAQ;AAAA,QAClB,MAAM,IAAI,QAAQ;AAAA,QAClB,SAAS,IAAI,WAAW;AAAA,QACxB,UAAU,IAAI,YAAY;AAAA,QAC1B,UAAU,IAAI,cAAc;AAAA,QAC5B,WAAW,IAAI,eAAe;AAAA,QAC9B,GAAG,0BAA0B,GAA8B;AAAA,MAC7D;AAAA,IACF;AACA,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW;AAAA,IACb;AAAA,EACF,GAAG,CAAC,MAAM,GAAG,CAAC;AAEd,QAAM,eAAe,MAAM,YAAY,OAAO,WAAgC;AAC5E,kBAAc,IAAI;AAClB,QAAI;AACF,YAAM,UAAU,SAAS,UAAU,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,OAAO,IAAI;AACrE,YAAM,OAAO,MAAM,YAAY;AAAA,QAC7B,WAAW,YAAY;AACrB,gBAAM,SAAS,MAAM;AAAA,YACnB;AAAA,YACA;AAAA,cACE,QAAQ,SAAS,SAAS,QAAQ;AAAA,cAClC,SAAS,EAAE,2BAA2B,IAAI;AAAA,cAC1C,MAAM,KAAK,UAAU,OAAO;AAAA,YAC9B;AAAA,UACF;AACA,cAAI,CAAC,OAAO,IAAI;AACd,kBAAM,eAAe,OAAO,UAAU,EAAE,6CAA6C,2BAA2B,CAAC;AAAA,UACnH;AACA,iBAAO;AAAA,QACT;AAAA,QACA,SAAS,CAAC;AAAA,QACV,iBAAiB;AAAA,MACnB,CAAC;AACD;AAAA,QACE,SAAS,SACL,EAAE,+CAA+C,mBAAmB,IACpE,EAAE,+CAA+C,mBAAmB;AAAA,QACxE;AAAA,MACF;AACA,YAAM,aACJ,MAAM,UAAU,OAAO,KAAK,WAAW,WAClC,KAAK,SACN;AACN,YAAM,YACJ,SAAS,YAAY,OAAO,YAAY,OAAO,WAC3C,WAAW,GAAG,KAAK,IACnB;AACN,YAAM,YACH,OAAO,YAAY,cAAc,YAAY,WAAW,UAAU,KAAK,KACvE,OAAO,YAAY,eAAe,YAAY,WAAW,WAAW,KAAK,KAC1E;AACF,mBAAa,KAAK;AAClB,YAAM,UAAU;AAAA,QACd;AAAA,QACA,IAAI,aAAa,KAAK;AAAA,QACtB;AAAA,QACA,WAAW,aAAa;AAAA,MAC1B,CAAC;AAAA,IACH,SAAS,OAAO;AACd,yBAAmB,OAAO,EAAE,6CAA6C,2BAA2B,GAAG,CAAC;AAAA,IAC1G,UAAE;AACA,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,MAAM,cAAc,SAAS,KAAK,aAAa,CAAC,CAAC;AAErD,SACE,oBAAC,UAAO,MAAY,cAClB,+BAAC,iBAAc,WAAU,aACvB;AAAA,wBAAC,gBACC,8BAAC,eACE,mBAAS,SACN,EAAE,6CAA6C,gBAAgB,IAC/D,EAAE,+CAA+C,kBAAkB,GACzE,GACF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,QAAQ;AAAA,QACR;AAAA,QACA,UAAU,EAAE,IAAI;AAAA,QAChB;AAAA,QACA,aAAa,EAAE,eAAe,MAAM;AAAA,QACpC,UAAU;AAAA,QACV,UAAQ;AAAA,QACR,qBAAmB;AAAA,QACnB,WAAW;AAAA,QACX,WAAS;AAAA,QACT,yBAAyB,SAAS,SAAU,KAAK,aAAa,KAAK,cAAc,OAAQ;AAAA;AAAA,IAC3F;AAAA,KACF,GACF;AAEJ;",
6
- "names": []
7
- }
@@ -1,66 +0,0 @@
1
- import { buildCountryOptions, resolveCountryName } from "@open-mercato/shared/lib/location/countries";
2
- const OPTION_LIMIT = 100;
3
- function matchesQuery(haystack, query) {
4
- return haystack.toLowerCase().includes(query.toLowerCase());
5
- }
6
- function countryOptionFromStored(value, locale) {
7
- const trimmed = value.trim();
8
- const code = trimmed.toUpperCase();
9
- const label = resolveCountryName(code, { locale });
10
- if (label && label !== code) {
11
- return { value: code, label };
12
- }
13
- return { value: trimmed, label: trimmed };
14
- }
15
- function formatWarehouseCountryLabel(value, locale) {
16
- const trimmed = value?.trim();
17
- if (!trimmed) return "\u2014";
18
- return countryOptionFromStored(trimmed, locale).label;
19
- }
20
- function timezoneOptionFromStored(value) {
21
- const trimmed = value.trim();
22
- return { value: trimmed, label: trimmed };
23
- }
24
- async function loadCountryOptions(query, locale) {
25
- const options = buildCountryOptions({ locale }).map((entry) => ({
26
- value: entry.code,
27
- label: entry.label
28
- }));
29
- const term = query?.trim();
30
- const filtered = term ? options.filter((option) => matchesQuery(option.label, term) || matchesQuery(option.value, term)) : options;
31
- return filtered.slice(0, OPTION_LIMIT);
32
- }
33
- function resolveLocalTimeZone() {
34
- try {
35
- return Intl.DateTimeFormat().resolvedOptions().timeZone || void 0;
36
- } catch {
37
- return void 0;
38
- }
39
- }
40
- function listSupportedTimeZones() {
41
- try {
42
- const intlWithSupportedValues = Intl;
43
- if (typeof intlWithSupportedValues.supportedValuesOf !== "function") return [];
44
- return intlWithSupportedValues.supportedValuesOf("timeZone").filter(Boolean);
45
- } catch {
46
- return [];
47
- }
48
- }
49
- async function loadTimezoneOptions(query) {
50
- const localZone = resolveLocalTimeZone();
51
- const preferred = localZone && localZone !== "UTC" ? ["UTC", localZone] : ["UTC"];
52
- const zones = /* @__PURE__ */ new Set([...preferred, ...listSupportedTimeZones()]);
53
- const rest = Array.from(zones).filter((tz) => !preferred.includes(tz));
54
- const allTz = [...preferred, ...rest];
55
- const term = query?.trim();
56
- const filtered = term ? allTz.filter((tz) => matchesQuery(tz, term)) : allTz;
57
- return filtered.slice(0, OPTION_LIMIT).map((tz) => ({ value: tz, label: tz }));
58
- }
59
- export {
60
- countryOptionFromStored,
61
- formatWarehouseCountryLabel,
62
- loadCountryOptions,
63
- loadTimezoneOptions,
64
- timezoneOptionFromStored
65
- };
66
- //# sourceMappingURL=warehouseFormOptions.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/wms/components/backend/warehouseFormOptions.ts"],
4
- "sourcesContent": ["import type { CrudFieldOption } from '@open-mercato/ui/backend/CrudForm'\nimport { buildCountryOptions, resolveCountryName } from '@open-mercato/shared/lib/location/countries'\n\nconst OPTION_LIMIT = 100\n\nfunction matchesQuery(haystack: string, query: string): boolean {\n return haystack.toLowerCase().includes(query.toLowerCase())\n}\n\nexport function countryOptionFromStored(value: string, locale?: string): CrudFieldOption {\n const trimmed = value.trim()\n const code = trimmed.toUpperCase()\n const label = resolveCountryName(code, { locale })\n if (label && label !== code) {\n return { value: code, label }\n }\n return { value: trimmed, label: trimmed }\n}\n\nexport function formatWarehouseCountryLabel(value: string | null | undefined, locale?: string): string {\n const trimmed = value?.trim()\n if (!trimmed) return '\u2014'\n return countryOptionFromStored(trimmed, locale).label\n}\n\nexport function timezoneOptionFromStored(value: string): CrudFieldOption {\n const trimmed = value.trim()\n return { value: trimmed, label: trimmed }\n}\n\nexport async function loadCountryOptions(query?: string, locale?: string): Promise<CrudFieldOption[]> {\n const options = buildCountryOptions({ locale }).map((entry) => ({\n value: entry.code,\n label: entry.label,\n }))\n const term = query?.trim()\n const filtered = term\n ? options.filter((option) => matchesQuery(option.label, term) || matchesQuery(option.value, term))\n : options\n return filtered.slice(0, OPTION_LIMIT)\n}\n\nfunction resolveLocalTimeZone(): string | undefined {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || undefined\n } catch {\n return undefined\n }\n}\n\nfunction listSupportedTimeZones(): string[] {\n try {\n const intlWithSupportedValues = Intl as typeof Intl & { supportedValuesOf?: (input: 'timeZone') => string[] }\n if (typeof intlWithSupportedValues.supportedValuesOf !== 'function') return []\n return intlWithSupportedValues.supportedValuesOf('timeZone').filter(Boolean)\n } catch {\n return []\n }\n}\n\nexport async function loadTimezoneOptions(query?: string): Promise<CrudFieldOption[]> {\n const localZone = resolveLocalTimeZone()\n const preferred = localZone && localZone !== 'UTC' ? ['UTC', localZone] : ['UTC']\n const zones = new Set<string>([...preferred, ...listSupportedTimeZones()])\n const rest = Array.from(zones).filter((tz) => !preferred.includes(tz))\n const allTz = [...preferred, ...rest]\n const term = query?.trim()\n const filtered = term\n ? allTz.filter((tz) => matchesQuery(tz, term))\n : allTz\n return filtered.slice(0, OPTION_LIMIT).map((tz) => ({ value: tz, label: tz }))\n}\n"],
5
- "mappings": "AACA,SAAS,qBAAqB,0BAA0B;AAExD,MAAM,eAAe;AAErB,SAAS,aAAa,UAAkB,OAAwB;AAC9D,SAAO,SAAS,YAAY,EAAE,SAAS,MAAM,YAAY,CAAC;AAC5D;AAEO,SAAS,wBAAwB,OAAe,QAAkC;AACvF,QAAM,UAAU,MAAM,KAAK;AAC3B,QAAM,OAAO,QAAQ,YAAY;AACjC,QAAM,QAAQ,mBAAmB,MAAM,EAAE,OAAO,CAAC;AACjD,MAAI,SAAS,UAAU,MAAM;AAC3B,WAAO,EAAE,OAAO,MAAM,MAAM;AAAA,EAC9B;AACA,SAAO,EAAE,OAAO,SAAS,OAAO,QAAQ;AAC1C;AAEO,SAAS,4BAA4B,OAAkC,QAAyB;AACrG,QAAM,UAAU,OAAO,KAAK;AAC5B,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,wBAAwB,SAAS,MAAM,EAAE;AAClD;AAEO,SAAS,yBAAyB,OAAgC;AACvE,QAAM,UAAU,MAAM,KAAK;AAC3B,SAAO,EAAE,OAAO,SAAS,OAAO,QAAQ;AAC1C;AAEA,eAAsB,mBAAmB,OAAgB,QAA6C;AACpG,QAAM,UAAU,oBAAoB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW;AAAA,IAC9D,OAAO,MAAM;AAAA,IACb,OAAO,MAAM;AAAA,EACf,EAAE;AACF,QAAM,OAAO,OAAO,KAAK;AACzB,QAAM,WAAW,OACb,QAAQ,OAAO,CAAC,WAAW,aAAa,OAAO,OAAO,IAAI,KAAK,aAAa,OAAO,OAAO,IAAI,CAAC,IAC/F;AACJ,SAAO,SAAS,MAAM,GAAG,YAAY;AACvC;AAEA,SAAS,uBAA2C;AAClD,MAAI;AACF,WAAO,KAAK,eAAe,EAAE,gBAAgB,EAAE,YAAY;AAAA,EAC7D,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,yBAAmC;AAC1C,MAAI;AACF,UAAM,0BAA0B;AAChC,QAAI,OAAO,wBAAwB,sBAAsB,WAAY,QAAO,CAAC;AAC7E,WAAO,wBAAwB,kBAAkB,UAAU,EAAE,OAAO,OAAO;AAAA,EAC7E,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,eAAsB,oBAAoB,OAA4C;AACpF,QAAM,YAAY,qBAAqB;AACvC,QAAM,YAAY,aAAa,cAAc,QAAQ,CAAC,OAAO,SAAS,IAAI,CAAC,KAAK;AAChF,QAAM,QAAQ,oBAAI,IAAY,CAAC,GAAG,WAAW,GAAG,uBAAuB,CAAC,CAAC;AACzE,QAAM,OAAO,MAAM,KAAK,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,SAAS,EAAE,CAAC;AACrE,QAAM,QAAQ,CAAC,GAAG,WAAW,GAAG,IAAI;AACpC,QAAM,OAAO,OAAO,KAAK;AACzB,QAAM,WAAW,OACb,MAAM,OAAO,CAAC,OAAO,aAAa,IAAI,IAAI,CAAC,IAC3C;AACJ,SAAO,SAAS,MAAM,GAAG,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,OAAO,GAAG,EAAE;AAC/E;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- import { asClass } from 'awilix'
2
- import type { AppContainer } from '@open-mercato/shared/lib/di/container'
3
- import { DefaultApiKeyPrincipalService } from './services/principalService'
4
-
5
- export function register(container: AppContainer) {
6
- container.register({ apiKeyPrincipalService: asClass(DefaultApiKeyPrincipalService).scoped() })
7
- }
@@ -1,33 +0,0 @@
1
- import type { FilterQuery } from '@mikro-orm/core'
2
- import type { EntityManager } from '@mikro-orm/postgresql'
3
- import type { ApiKeyPrincipalService, PrincipalScope } from '@open-mercato/shared/lib/auth/principal-service'
4
- import { findOneWithDecryption } from '@open-mercato/shared/lib/encryption/find'
5
- import { ApiKey } from '../data/entities'
6
-
7
- function normalizeIds(ids: unknown): string[] {
8
- if (!Array.isArray(ids)) return []
9
- return Array.from(new Set(ids
10
- .map((id) => typeof id === 'string' ? id.trim() : '')
11
- .filter(Boolean)))
12
- }
13
-
14
- export class DefaultApiKeyPrincipalService implements ApiKeyPrincipalService {
15
- constructor(private readonly em: EntityManager) {}
16
-
17
- async resolveAssignedRoleIds(apiKeyId: string, scope: PrincipalScope): Promise<string[]> {
18
- const apiKey = await findOneWithDecryption(
19
- this.em,
20
- ApiKey,
21
- {
22
- id: apiKeyId,
23
- tenantId: scope.tenantId,
24
- deletedAt: null,
25
- $or: [{ organizationId: null }, { organizationId: scope.organizationId }],
26
- } as FilterQuery<ApiKey>,
27
- { fields: ['rolesJson', 'expiresAt'] as const },
28
- scope,
29
- )
30
- if (!apiKey || (apiKey.expiresAt && apiKey.expiresAt.getTime() <= Date.now())) return []
31
- return normalizeIds(apiKey.rolesJson)
32
- }
33
- }