@open-mercato/core 0.6.8-develop.7100.1.fbf66fca35 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/dist/helpers/integration/api.js +1 -13
- package/dist/helpers/integration/api.js.map +2 -2
- package/dist/helpers/integration/communicationChannelsFixtures.js +0 -19
- package/dist/helpers/integration/communicationChannelsFixtures.js.map +2 -2
- package/dist/modules/api_keys/api/keys/route.js +1 -1
- package/dist/modules/api_keys/api/keys/route.js.map +2 -2
- package/dist/modules/api_keys/backend/api-keys/page.js +1 -3
- package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
- package/dist/modules/attachments/api/route.js +2 -2
- package/dist/modules/attachments/api/route.js.map +2 -2
- package/dist/modules/attachments/components/AttachmentLibrary.js +0 -2
- package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
- package/dist/modules/attachments/di.js +1 -11
- package/dist/modules/attachments/di.js.map +2 -2
- package/dist/modules/attachments/index.js.map +1 -1
- package/dist/modules/attachments/lib/scoped-upload-service.js +2 -15
- package/dist/modules/attachments/lib/scoped-upload-service.js.map +2 -2
- package/dist/modules/attachments/lib/upload-limits.js +2 -6
- package/dist/modules/attachments/lib/upload-limits.js.map +2 -2
- package/dist/modules/audit_logs/backend/audit-logs/page.js +0 -6
- package/dist/modules/audit_logs/backend/audit-logs/page.js.map +2 -2
- package/dist/modules/audit_logs/lib/display-helpers.js +11 -19
- package/dist/modules/audit_logs/lib/display-helpers.js.map +2 -2
- package/dist/modules/audit_logs/services/actionLogService.js +12 -57
- package/dist/modules/audit_logs/services/actionLogService.js.map +3 -3
- package/dist/modules/auth/acl.js +5 -30
- package/dist/modules/auth/acl.js.map +2 -2
- package/dist/modules/auth/api/feature-check.js +2 -8
- package/dist/modules/auth/api/feature-check.js.map +2 -2
- package/dist/modules/auth/api/login.js +20 -4
- package/dist/modules/auth/api/login.js.map +2 -2
- package/dist/modules/auth/api/roles/acl/route.js +33 -28
- package/dist/modules/auth/api/roles/acl/route.js.map +2 -2
- package/dist/modules/auth/api/routeError.js +11 -0
- package/dist/modules/auth/api/routeError.js.map +7 -0
- package/dist/modules/auth/api/session/refresh.js +1 -25
- package/dist/modules/auth/api/session/refresh.js.map +2 -2
- package/dist/modules/auth/api/users/acl/route.js +73 -102
- package/dist/modules/auth/api/users/acl/route.js.map +2 -2
- package/dist/modules/auth/api/users/route.js +5 -13
- package/dist/modules/auth/api/users/route.js.map +2 -2
- package/dist/modules/auth/backend/roles/[id]/edit/page.meta.js +1 -5
- package/dist/modules/auth/backend/roles/[id]/edit/page.meta.js.map +2 -2
- package/dist/modules/auth/backend/roles/page.js +1 -3
- package/dist/modules/auth/backend/roles/page.js.map +2 -2
- package/dist/modules/auth/backend/users/[id]/edit/page.meta.js +1 -5
- package/dist/modules/auth/backend/users/[id]/edit/page.meta.js.map +2 -2
- package/dist/modules/auth/backend/users/page.js +1 -2
- package/dist/modules/auth/backend/users/page.js.map +2 -2
- package/dist/modules/auth/components/AclEditor.js +30 -39
- package/dist/modules/auth/components/AclEditor.js.map +2 -2
- package/dist/modules/auth/data/entities.js.map +2 -2
- package/dist/modules/auth/data/validators.js +1 -5
- package/dist/modules/auth/data/validators.js.map +2 -2
- package/dist/modules/auth/di.js +9 -35
- package/dist/modules/auth/di.js.map +2 -2
- package/dist/modules/auth/frontend/reset/[token]/page.js +0 -46
- package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
- package/dist/modules/auth/lib/grantChecks.js.map +2 -2
- package/dist/modules/auth/services/authService.js +2 -16
- package/dist/modules/auth/services/authService.js.map +2 -2
- package/dist/modules/auth/services/rbacService.js +24 -67
- package/dist/modules/auth/services/rbacService.js.map +3 -3
- package/dist/modules/business_rules/backend/logs/page.js +1 -3
- package/dist/modules/business_rules/backend/logs/page.js.map +2 -2
- package/dist/modules/business_rules/backend/rules/[id]/page.meta.js +6 -1
- package/dist/modules/business_rules/backend/rules/[id]/page.meta.js.map +2 -2
- package/dist/modules/business_rules/backend/rules/create/page.meta.js +5 -1
- package/dist/modules/business_rules/backend/rules/create/page.meta.js.map +2 -2
- package/dist/modules/business_rules/backend/rules/page.js +1 -3
- package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
- package/dist/modules/business_rules/backend/sets/[id]/page.meta.js +6 -1
- package/dist/modules/business_rules/backend/sets/[id]/page.meta.js.map +2 -2
- package/dist/modules/business_rules/backend/sets/create/page.meta.js +5 -1
- package/dist/modules/business_rules/backend/sets/create/page.meta.js.map +2 -2
- package/dist/modules/business_rules/backend/sets/page.js +1 -3
- package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
- package/dist/modules/business_rules/lib/expression-evaluator.js +9 -9
- package/dist/modules/business_rules/lib/expression-evaluator.js.map +2 -2
- package/dist/modules/business_rules/lib/rule-evaluator.js +9 -10
- package/dist/modules/business_rules/lib/rule-evaluator.js.map +2 -2
- package/dist/modules/catalog/ai-agents.js +1 -1
- package/dist/modules/catalog/ai-agents.js.map +1 -1
- package/dist/modules/catalog/ai-tools/merchandising-pack.js +2 -2
- package/dist/modules/catalog/ai-tools/merchandising-pack.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js +2 -5
- package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js.map +2 -2
- package/dist/modules/catalog/components/categories/CategoriesDataTable.js +0 -2
- package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
- package/dist/modules/catalog/components/products/ProductsDataTable.js +1 -7
- package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
- package/dist/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.js +0 -2
- package/dist/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.js.map +2 -2
- package/dist/modules/communication_channels/api/post/channels/[id]/test-send/route.js +1 -9
- package/dist/modules/communication_channels/api/post/channels/[id]/test-send/route.js.map +2 -2
- package/dist/modules/communication_channels/api/post/test-seed/route.js +10 -95
- package/dist/modules/communication_channels/api/post/test-seed/route.js.map +2 -2
- package/dist/modules/communication_channels/backend/communication_channels/channels/page.js +0 -3
- package/dist/modules/communication_channels/backend/communication_channels/channels/page.js.map +2 -2
- package/dist/modules/communication_channels/commands/ingest-inbound-message.js +1 -14
- package/dist/modules/communication_channels/commands/ingest-inbound-message.js.map +2 -2
- package/dist/modules/communication_channels/di.js +1 -7
- package/dist/modules/communication_channels/di.js.map +2 -2
- package/dist/modules/communication_channels/lib/email-capabilities.js +1 -4
- package/dist/modules/communication_channels/lib/email-capabilities.js.map +2 -2
- package/dist/modules/communication_channels/lib/test-seed.js +2 -41
- package/dist/modules/communication_channels/lib/test-seed.js.map +2 -2
- package/dist/modules/configs/lib/system-status.js +0 -9
- package/dist/modules/configs/lib/system-status.js.map +2 -2
- package/dist/modules/currencies/backend/currencies/page.js +1 -3
- package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
- package/dist/modules/currencies/backend/exchange-rates/page.js +1 -3
- package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
- package/dist/modules/customer_accounts/api/admin/domain-mappings.js +0 -9
- package/dist/modules/customer_accounts/api/admin/domain-mappings.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +1 -3
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js +84 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js +7 -81
- package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js +523 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js +731 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +7 -727
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +7 -521
- package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
- package/dist/modules/customer_accounts/extension-points.js +1 -1
- package/dist/modules/customer_accounts/extension-points.js.map +2 -2
- package/dist/modules/customer_accounts/lib/portalUrl.js +69 -0
- package/dist/modules/customer_accounts/lib/portalUrl.js.map +7 -0
- package/dist/modules/customer_accounts/services/domainMappingService.js +0 -10
- package/dist/modules/customer_accounts/services/domainMappingService.js.map +2 -2
- package/dist/modules/customers/ai-tools/companies-pack.js +1 -4
- package/dist/modules/customers/ai-tools/companies-pack.js.map +2 -2
- package/dist/modules/customers/ai-tools/deal-analyzer-pack.js +2 -13
- package/dist/modules/customers/ai-tools/deal-analyzer-pack.js.map +2 -2
- package/dist/modules/customers/ai-tools/deals-pack.js +6 -52
- package/dist/modules/customers/ai-tools/deals-pack.js.map +2 -2
- package/dist/modules/customers/ai-tools/people-pack.js +1 -4
- package/dist/modules/customers/ai-tools/people-pack.js.map +2 -2
- package/dist/modules/customers/api/activities/route.js +6 -48
- package/dist/modules/customers/api/activities/route.js.map +2 -2
- package/dist/modules/customers/api/companies/[id]/people/route.js +64 -20
- package/dist/modules/customers/api/companies/[id]/people/route.js.map +2 -2
- package/dist/modules/customers/api/companies/[id]/route.js +94 -17
- package/dist/modules/customers/api/companies/[id]/route.js.map +2 -2
- package/dist/modules/customers/api/dashboard/widgets/customer-todos/route.js +5 -8
- package/dist/modules/customers/api/dashboard/widgets/customer-todos/route.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/companies/route.js +1 -1
- package/dist/modules/customers/api/deals/[id]/companies/route.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/people/route.js +1 -1
- package/dist/modules/customers/api/deals/[id]/people/route.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/route.js +25 -8
- package/dist/modules/customers/api/deals/[id]/route.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/stats/route.js +22 -3
- package/dist/modules/customers/api/deals/[id]/stats/route.js.map +2 -2
- package/dist/modules/customers/api/deals/aggregate/route.js +4 -11
- package/dist/modules/customers/api/deals/aggregate/route.js.map +2 -2
- package/dist/modules/customers/api/deals/map/route.js +1 -2
- package/dist/modules/customers/api/deals/map/route.js.map +2 -2
- package/dist/modules/customers/api/deals/route.js +1 -38
- package/dist/modules/customers/api/deals/route.js.map +2 -2
- package/dist/modules/customers/api/entity-roles-factory.js +4 -4
- package/dist/modules/customers/api/entity-roles-factory.js.map +2 -2
- package/dist/modules/customers/api/interactions/route.js +1 -3
- package/dist/modules/customers/api/interactions/route.js.map +2 -2
- package/dist/modules/customers/api/interactions/tasks/route.js +4 -27
- package/dist/modules/customers/api/interactions/tasks/route.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js +3 -4
- package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/companies/context.js +1 -1
- package/dist/modules/customers/api/people/[id]/companies/context.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/companies/enriched/route.js +1 -1
- package/dist/modules/customers/api/people/[id]/companies/enriched/route.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/route.js +10 -11
- package/dist/modules/customers/api/people/[id]/route.js.map +2 -2
- package/dist/modules/customers/api/people/check-phone/route.js +9 -51
- package/dist/modules/customers/api/people/check-phone/route.js.map +2 -2
- package/dist/modules/customers/api/todos/route.js +5 -30
- package/dist/modules/customers/api/todos/route.js.map +2 -2
- package/dist/modules/customers/backend/customers/companies/page.js +4 -6
- package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/[id]/page.js +1 -6
- package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/page.js +4 -7
- package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/pipeline/components/Lane.js +13 -4
- package/dist/modules/customers/backend/customers/deals/pipeline/components/Lane.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.js +14 -85
- package/dist/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.js.map +2 -2
- package/dist/modules/customers/backend/customers/people/page.js +4 -6
- package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
- package/dist/modules/customers/backend/hooks/useEmailDuplicateCheck.js +3 -9
- package/dist/modules/customers/backend/hooks/useEmailDuplicateCheck.js.map +2 -2
- package/dist/modules/customers/commands/deals.js +34 -21
- package/dist/modules/customers/commands/deals.js.map +2 -2
- package/dist/modules/customers/commands/interactions.js.map +1 -1
- package/dist/modules/customers/commands/personCompanyLinks.js +2 -131
- package/dist/modules/customers/commands/personCompanyLinks.js.map +2 -2
- package/dist/modules/customers/components/CustomerTodosTable.js +0 -1
- package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
- package/dist/modules/customers/components/DealsKpiStrip.js +6 -7
- package/dist/modules/customers/components/DealsKpiStrip.js.map +2 -2
- package/dist/modules/customers/components/calendar/AgendaList.js +2 -2
- package/dist/modules/customers/components/calendar/AgendaList.js.map +2 -2
- package/dist/modules/customers/components/calendar/CalendarEventEditor.js +1 -1
- package/dist/modules/customers/components/calendar/CalendarEventEditor.js.map +2 -2
- package/dist/modules/customers/components/calendar/CalendarScreen.js +1 -1
- package/dist/modules/customers/components/calendar/CalendarScreen.js.map +2 -2
- package/dist/modules/customers/components/calendar/CalendarSettingsModal.js +1 -1
- package/dist/modules/customers/components/calendar/CalendarSettingsModal.js.map +2 -2
- package/dist/modules/customers/components/calendar/EventBlock.js +1 -1
- package/dist/modules/customers/components/calendar/EventBlock.js.map +2 -2
- package/dist/modules/customers/components/calendar/EventPeekPopover.js +2 -3
- package/dist/modules/customers/components/calendar/EventPeekPopover.js.map +2 -2
- package/dist/modules/customers/components/calendar/editor/PeopleField.js +5 -40
- package/dist/modules/customers/components/calendar/editor/PeopleField.js.map +2 -2
- package/dist/modules/customers/components/calendar/editor/hooks.js +1 -2
- package/dist/modules/customers/components/calendar/editor/hooks.js.map +2 -2
- package/dist/modules/customers/components/calendar/types.js +1 -1
- package/dist/modules/customers/components/calendar/types.js.map +2 -2
- package/dist/modules/customers/components/detail/AssignRoleDialog.js +33 -28
- package/dist/modules/customers/components/detail/AssignRoleDialog.js.map +2 -2
- package/dist/modules/customers/components/detail/CompanyKpiBar.js +4 -5
- package/dist/modules/customers/components/detail/CompanyKpiBar.js.map +2 -2
- package/dist/modules/customers/components/detail/CompanyPeopleSection.js +1 -3
- package/dist/modules/customers/components/detail/CompanyPeopleSection.js.map +2 -2
- package/dist/modules/customers/components/detail/DealForm.js +7 -19
- package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
- package/dist/modules/customers/components/detail/DealsSection.js +5 -6
- package/dist/modules/customers/components/detail/DealsSection.js.map +2 -2
- package/dist/modules/customers/components/detail/EntityTagsDialog.js +11 -35
- package/dist/modules/customers/components/detail/EntityTagsDialog.js.map +2 -2
- package/dist/modules/customers/components/detail/PersonCompaniesSection.js +1 -3
- package/dist/modules/customers/components/detail/PersonCompaniesSection.js.map +2 -2
- package/dist/modules/customers/components/detail/hooks/usePersonTasks.js +13 -19
- package/dist/modules/customers/components/detail/hooks/usePersonTasks.js.map +2 -2
- package/dist/modules/customers/components/detail/schedule/ParticipantsField.js +4 -4
- package/dist/modules/customers/components/detail/schedule/ParticipantsField.js.map +2 -2
- package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js +3 -3
- package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js.map +2 -2
- package/dist/modules/customers/components/detail/utils.js +5 -5
- package/dist/modules/customers/components/detail/utils.js.map +2 -2
- package/dist/modules/customers/data/entities.js.map +1 -1
- package/dist/modules/customers/data/validators.js +3 -32
- package/dist/modules/customers/data/validators.js.map +2 -2
- package/dist/modules/customers/events.js +0 -5
- package/dist/modules/customers/events.js.map +2 -2
- package/dist/modules/customers/lib/calendar/conflicts.js +2 -8
- package/dist/modules/customers/lib/calendar/conflicts.js.map +2 -2
- package/dist/modules/customers/lib/calendar/editorPayload.js +2 -3
- package/dist/modules/customers/lib/calendar/editorPayload.js.map +2 -2
- package/dist/modules/customers/lib/calendar/mapItem.js +3 -8
- package/dist/modules/customers/lib/calendar/mapItem.js.map +2 -2
- package/dist/modules/customers/lib/dealStatus.js +0 -30
- package/dist/modules/customers/lib/dealStatus.js.map +2 -2
- package/dist/modules/customers/lib/findPeopleByAddresses.js +0 -1
- package/dist/modules/customers/lib/findPeopleByAddresses.js.map +2 -2
- package/dist/modules/customers/lib/personCompanies.js +2 -100
- package/dist/modules/customers/lib/personCompanies.js.map +2 -2
- package/dist/modules/customers/lib/todoCompatibility.js +0 -12
- package/dist/modules/customers/lib/todoCompatibility.js.map +2 -2
- package/dist/modules/dashboards/lib/widgetScope.js +1 -6
- package/dist/modules/dashboards/lib/widgetScope.js.map +2 -2
- package/dist/modules/data_sync/backend/data-sync/page.js +1 -3
- package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
- package/dist/modules/data_sync/lib/sync-engine.js +6 -72
- package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
- package/dist/modules/data_sync/workers/sync-export.js +1 -5
- package/dist/modules/data_sync/workers/sync-export.js.map +2 -2
- package/dist/modules/data_sync/workers/sync-import.js +1 -5
- package/dist/modules/data_sync/workers/sync-import.js.map +2 -2
- package/dist/modules/devices/acl.js +1 -9
- package/dist/modules/devices/acl.js.map +2 -2
- package/dist/modules/devices/api/admin/devices/[id]/route.js +32 -5
- package/dist/modules/devices/api/admin/devices/[id]/route.js.map +2 -2
- package/dist/modules/devices/api/admin/devices/route.js +1 -14
- package/dist/modules/devices/api/admin/devices/route.js.map +2 -2
- package/dist/modules/devices/api/deviceList.js +12 -99
- package/dist/modules/devices/api/deviceList.js.map +2 -2
- package/dist/modules/devices/api/openapi.js +1 -3
- package/dist/modules/devices/api/openapi.js.map +2 -2
- package/dist/modules/devices/api/route.js +1 -9
- package/dist/modules/devices/api/route.js.map +2 -2
- package/dist/modules/devices/backend/devices/[id]/page.js +26 -10
- package/dist/modules/devices/backend/devices/[id]/page.js.map +2 -2
- package/dist/modules/devices/backend/devices/create/page.js +1 -17
- package/dist/modules/devices/backend/devices/create/page.js.map +2 -2
- package/dist/modules/devices/backend/devices/page.js +34 -28
- package/dist/modules/devices/backend/devices/page.js.map +2 -2
- package/dist/modules/devices/setup.js +2 -6
- package/dist/modules/devices/setup.js.map +2 -2
- package/dist/modules/directory/backend/directory/organizations/page.js +1 -2
- package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
- package/dist/modules/directory/backend/directory/tenants/page.js +1 -2
- package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
- package/dist/modules/directory/di.js +0 -9
- package/dist/modules/directory/di.js.map +2 -2
- package/dist/modules/directory/utils/organizationScope.js.map +2 -2
- package/dist/modules/entities/api/records.js +2 -4
- package/dist/modules/entities/api/records.js.map +2 -2
- package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +1 -3
- package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
- package/dist/modules/eudr/api/plots/route.js +1 -5
- package/dist/modules/eudr/api/plots/route.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/evidence-submissions/page.js +0 -3
- package/dist/modules/eudr/backend/eudr/evidence-submissions/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/page.meta.js +2 -2
- package/dist/modules/eudr/backend/eudr/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/[id]/page.js +8 -2
- package/dist/modules/eudr/backend/eudr/plots/[id]/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/create/page.js +8 -2
- package/dist/modules/eudr/backend/eudr/plots/create/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/page.js +0 -3
- package/dist/modules/eudr/backend/eudr/plots/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/plots/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/product-mappings/page.js +0 -3
- package/dist/modules/eudr/backend/eudr/product-mappings/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/risk-assessments/page.js +0 -3
- package/dist/modules/eudr/backend/eudr/risk-assessments/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/[id]/page.js +2 -0
- package/dist/modules/eudr/backend/eudr/statements/[id]/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/page.js +30 -28
- package/dist/modules/eudr/backend/eudr/statements/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/statements/page.meta.js.map +2 -2
- package/dist/modules/eudr/commands/statements.js +8 -3
- package/dist/modules/eudr/commands/statements.js.map +2 -2
- package/dist/modules/eudr/components/crudErrorI18n.js +21 -1
- package/dist/modules/eudr/components/crudErrorI18n.js.map +2 -2
- package/dist/modules/eudr/components/formConfig.js +6 -2
- package/dist/modules/eudr/components/formConfig.js.map +2 -2
- package/dist/modules/eudr/data/validators.js +1 -4
- package/dist/modules/eudr/data/validators.js.map +2 -2
- package/dist/modules/eudr/lib/statement-lifecycle.js +9 -1
- package/dist/modules/eudr/lib/statement-lifecycle.js.map +2 -2
- package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +0 -1
- package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
- package/dist/modules/feature_toggles/components/OverridesTable.js +0 -1
- package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
- package/dist/modules/feature_toggles/defaults.json +8 -0
- package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js +0 -3
- package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js.map +2 -2
- package/dist/modules/inbox_ops/backend/inbox-ops/page.js +0 -3
- package/dist/modules/inbox_ops/backend/inbox-ops/page.js.map +2 -2
- package/dist/modules/inbox_ops/lib/htmlToPlainText.js +12 -1
- package/dist/modules/inbox_ops/lib/htmlToPlainText.js.map +2 -2
- package/dist/modules/integrations/api/[id]/credentials/route.js +1 -6
- package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
- package/dist/modules/integrations/backend/integrations/[id]/page.js +29 -38
- package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
- package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js +9 -36
- package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js.map +2 -2
- package/dist/modules/integrations/data/validators.js +3 -11
- package/dist/modules/integrations/data/validators.js.map +2 -2
- package/dist/modules/integrations/lib/credentials-masking.js +2 -6
- package/dist/modules/integrations/lib/credentials-masking.js.map +2 -2
- package/dist/modules/messages/api/[id]/route.js +1 -29
- package/dist/modules/messages/api/[id]/route.js.map +2 -2
- package/dist/modules/messages/api/openapi.js +2 -17
- package/dist/modules/messages/api/openapi.js.map +2 -2
- package/dist/modules/messages/api/route.js +2 -17
- package/dist/modules/messages/api/route.js.map +2 -2
- package/dist/modules/messages/components/MessagesInboxPageClient.js +14 -7
- package/dist/modules/messages/components/MessagesInboxPageClient.js.map +2 -2
- package/dist/modules/messages/components/inboxFilters.js +0 -15
- package/dist/modules/messages/components/inboxFilters.js.map +2 -2
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js +1 -11
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js.map +2 -2
- package/dist/modules/messages/components/message-detail/panels/MessageHeader.js +1 -3
- package/dist/modules/messages/components/message-detail/panels/MessageHeader.js.map +2 -2
- package/dist/modules/messages/components/message-detail/panels/thread-panel.js +1 -2
- package/dist/modules/messages/components/message-detail/panels/thread-panel.js.map +2 -2
- package/dist/modules/messages/components/messageListLabels.js +2 -14
- package/dist/modules/messages/components/messageListLabels.js.map +2 -2
- package/dist/modules/messages/data/validators.js +4 -18
- package/dist/modules/messages/data/validators.js.map +2 -2
- package/dist/modules/payment_gateways/api/webhook/[provider]/route.js +6 -4
- package/dist/modules/payment_gateways/api/webhook/[provider]/route.js.map +2 -2
- package/dist/modules/payment_gateways/backend/payment-gateways/page.js +1 -3
- package/dist/modules/payment_gateways/backend/payment-gateways/page.js.map +2 -2
- package/dist/modules/payment_gateways/lib/webhook-processor.js +0 -7
- package/dist/modules/payment_gateways/lib/webhook-processor.js.map +2 -2
- package/dist/modules/planner/backend/planner/availability-rulesets/page.js +0 -3
- package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
- package/dist/modules/push_notifications/backend/push_notifications/page.js +1 -3
- package/dist/modules/push_notifications/backend/push_notifications/page.js.map +2 -2
- package/dist/modules/push_notifications/backend/push_notifications/send/page.js +1 -1
- package/dist/modules/push_notifications/backend/push_notifications/send/page.js.map +2 -2
- package/dist/modules/query_index/lib/engine.js +51 -150
- package/dist/modules/query_index/lib/engine.js.map +2 -2
- package/dist/modules/query_index/lib/search-tokens.js +3 -79
- package/dist/modules/query_index/lib/search-tokens.js.map +2 -2
- package/dist/modules/resources/backend/resources/resource-types/page.js +1 -3
- package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
- package/dist/modules/resources/backend/resources/resources/page.js +1 -3
- package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/channels/offers/page.js +0 -3
- package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/channels/page.js +0 -3
- package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/documents/[id]/page.js +8 -10
- package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
- package/dist/modules/sales/commands/documents.js +1 -79
- package/dist/modules/sales/commands/documents.js.map +2 -2
- package/dist/modules/sales/components/PriceWithCurrency.js +5 -7
- package/dist/modules/sales/components/PriceWithCurrency.js.map +2 -2
- package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +0 -3
- package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
- package/dist/modules/sales/components/documents/AdjustmentsSection.js +6 -8
- package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/ItemsSection.js +22 -51
- package/dist/modules/sales/components/documents/ItemsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/LineItemDialog.js +19 -84
- package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
- package/dist/modules/sales/components/documents/PaymentsSection.js +9 -23
- package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/ReturnsSection.js +6 -8
- package/dist/modules/sales/components/documents/ReturnsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/SalesDocumentsTable.js +14 -68
- package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
- package/dist/modules/sales/components/documents/SalesOrderDraftLines.js +5 -6
- package/dist/modules/sales/components/documents/SalesOrderDraftLines.js.map +2 -2
- package/dist/modules/sales/components/documents/ShipmentDialog.js +4 -5
- package/dist/modules/sales/components/documents/ShipmentDialog.js.map +2 -2
- package/dist/modules/sales/components/documents/ShipmentsSection.js +6 -8
- package/dist/modules/sales/components/documents/ShipmentsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/lineItemUtils.js +2 -2
- package/dist/modules/sales/components/documents/lineItemUtils.js.map +2 -2
- package/dist/modules/sales/data/entities.js +2 -8
- package/dist/modules/sales/data/entities.js.map +2 -2
- package/dist/modules/sales/extension-points.js +0 -1
- package/dist/modules/sales/extension-points.js.map +2 -2
- package/dist/modules/sales/setup.js +0 -2
- package/dist/modules/sales/setup.js.map +2 -2
- package/dist/modules/sales/widgets/injection/document-history/widget.client.js +44 -2
- package/dist/modules/sales/widgets/injection/document-history/widget.client.js.map +2 -2
- package/dist/modules/sales/widgets/injection/payment-gateway-status-column/widget.js +2 -10
- package/dist/modules/sales/widgets/injection/payment-gateway-status-column/widget.js.map +2 -2
- package/dist/modules/sales/widgets/injection-table.js +7 -4
- package/dist/modules/sales/widgets/injection-table.js.map +2 -2
- package/dist/modules/staff/backend/staff/leave-requests/page.js +0 -3
- package/dist/modules/staff/backend/staff/leave-requests/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/my-leave-requests/page.js +0 -3
- package/dist/modules/staff/backend/staff/my-leave-requests/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/team-members/page.js +0 -3
- package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/team-roles/page.js +0 -3
- package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +0 -3
- package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/teams/page.js +0 -3
- package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/page.js +18 -29
- package/dist/modules/staff/backend/staff/timesheets/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/page.js +0 -3
- package/dist/modules/staff/backend/staff/timesheets/projects/page.js.map +2 -2
- package/dist/modules/sync_excel/lib/adapters/customers.js +0 -1
- package/dist/modules/sync_excel/lib/adapters/customers.js.map +2 -2
- package/dist/modules/warranty_claims/api/assignees/route.js +3 -3
- package/dist/modules/warranty_claims/api/assignees/route.js.map +2 -2
- package/dist/modules/warranty_claims/api/portal/attachments/route.js +2 -2
- package/dist/modules/warranty_claims/api/portal/attachments/route.js.map +2 -2
- package/dist/modules/warranty_claims/api/portal/claims/route.js +9 -12
- package/dist/modules/warranty_claims/api/portal/claims/route.js.map +2 -2
- package/dist/modules/warranty_claims/backend/page.js +0 -3
- package/dist/modules/warranty_claims/backend/page.js.map +2 -2
- package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js +0 -3
- package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js.map +2 -2
- package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js +0 -3
- package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js.map +2 -2
- package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js +0 -3
- package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js.map +2 -2
- package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js +0 -3
- package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js.map +2 -2
- package/dist/modules/wms/api/warehouses/route.js +9 -13
- package/dist/modules/wms/api/warehouses/route.js.map +2 -2
- package/dist/modules/wms/api/zones/route.js +2 -15
- package/dist/modules/wms/api/zones/route.js.map +2 -2
- package/dist/modules/wms/commands/configuration.js +9 -121
- package/dist/modules/wms/commands/configuration.js.map +2 -2
- package/dist/modules/wms/commands/inventory-actions.js +0 -3
- package/dist/modules/wms/commands/inventory-actions.js.map +2 -2
- package/dist/modules/wms/commands/shared.js +1 -9
- package/dist/modules/wms/commands/shared.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsConfigurationPage.js +111 -76
- package/dist/modules/wms/components/backend/WmsConfigurationPage.js.map +3 -3
- package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js +0 -1
- package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +20 -16
- package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsLotDetailPage.js +10 -6
- package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsLotsListPage.js +0 -1
- package/dist/modules/wms/components/backend/WmsLotsListPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js +11 -7
- package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +10 -6
- package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/inventoryMutationLoaders.js +20 -27
- package/dist/modules/wms/components/backend/inventoryMutationLoaders.js.map +2 -2
- package/dist/modules/workflows/backend/definitions/page.js +1 -3
- package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
- package/dist/modules/workflows/backend/events/page.js +1 -3
- package/dist/modules/workflows/backend/events/page.js.map +2 -2
- package/dist/modules/workflows/backend/instances/page.js +1 -3
- package/dist/modules/workflows/backend/instances/page.js.map +2 -2
- package/dist/modules/workflows/backend/tasks/page.js +1 -3
- package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
- package/dist/modules/workflows/lib/activity-executor.js +0 -4
- package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
- package/package.json +10 -9
- package/src/helpers/integration/api.ts +1 -33
- package/src/helpers/integration/communicationChannelsFixtures.ts +1 -69
- package/src/modules/api_keys/api/keys/route.ts +1 -3
- package/src/modules/api_keys/backend/api-keys/page.tsx +1 -4
- package/src/modules/attachments/AGENTS.md +0 -15
- package/src/modules/attachments/api/route.ts +2 -2
- package/src/modules/attachments/components/AttachmentLibrary.tsx +0 -3
- package/src/modules/attachments/di.ts +0 -16
- package/src/modules/attachments/i18n/de.json +0 -5
- package/src/modules/attachments/i18n/en.json +0 -5
- package/src/modules/attachments/i18n/es.json +0 -5
- package/src/modules/attachments/i18n/ko.json +0 -5
- package/src/modules/attachments/i18n/pl.json +0 -5
- package/src/modules/attachments/index.ts +0 -10
- package/src/modules/attachments/lib/scoped-upload-service.ts +0 -46
- package/src/modules/attachments/lib/upload-limits.ts +2 -6
- package/src/modules/audit_logs/backend/audit-logs/page.tsx +0 -8
- package/src/modules/audit_logs/lib/display-helpers.tsx +32 -42
- package/src/modules/audit_logs/services/actionLogService.ts +11 -74
- package/src/modules/auth/acl.ts +6 -30
- package/src/modules/auth/api/feature-check.ts +3 -10
- package/src/modules/auth/api/login.ts +24 -9
- package/src/modules/auth/api/roles/acl/route.ts +39 -42
- package/src/modules/auth/api/routeError.ts +30 -0
- package/src/modules/auth/api/session/refresh.ts +1 -32
- package/src/modules/auth/api/users/acl/route.ts +101 -185
- package/src/modules/auth/api/users/route.ts +5 -18
- package/src/modules/auth/backend/roles/[id]/edit/page.meta.ts +2 -5
- package/src/modules/auth/backend/roles/page.tsx +2 -4
- package/src/modules/auth/backend/users/[id]/edit/page.meta.ts +2 -5
- package/src/modules/auth/backend/users/page.tsx +2 -3
- package/src/modules/auth/components/AclEditor.tsx +33 -63
- package/src/modules/auth/data/entities.ts +1 -4
- package/src/modules/auth/data/validators.ts +0 -5
- package/src/modules/auth/di.ts +16 -46
- package/src/modules/auth/frontend/reset/[token]/page.tsx +0 -74
- package/src/modules/auth/i18n/de.json +0 -389
- package/src/modules/auth/i18n/en.json +0 -389
- package/src/modules/auth/i18n/es.json +0 -389
- package/src/modules/auth/i18n/ko.json +0 -389
- package/src/modules/auth/i18n/pl.json +2 -391
- package/src/modules/auth/lib/grantChecks.ts +0 -6
- package/src/modules/auth/services/authService.ts +2 -18
- package/src/modules/auth/services/rbacService.ts +24 -110
- package/src/modules/business_rules/backend/logs/page.tsx +1 -4
- package/src/modules/business_rules/backend/rules/[id]/page.meta.ts +5 -0
- package/src/modules/business_rules/backend/rules/create/page.meta.ts +5 -1
- package/src/modules/business_rules/backend/rules/page.tsx +1 -4
- package/src/modules/business_rules/backend/sets/[id]/page.meta.ts +5 -0
- package/src/modules/business_rules/backend/sets/create/page.meta.ts +5 -1
- package/src/modules/business_rules/backend/sets/page.tsx +1 -4
- package/src/modules/business_rules/lib/expression-evaluator.ts +9 -9
- package/src/modules/business_rules/lib/rule-evaluator.ts +9 -10
- package/src/modules/catalog/ai-agents.ts +1 -1
- package/src/modules/catalog/ai-tools/merchandising-pack.ts +2 -2
- package/src/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.tsx +5 -12
- package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +0 -3
- package/src/modules/catalog/components/products/ProductsDataTable.tsx +0 -7
- package/src/modules/catalog/i18n/de.json +0 -1
- package/src/modules/catalog/i18n/en.json +0 -1
- package/src/modules/catalog/i18n/es.json +0 -1
- package/src/modules/catalog/i18n/ko.json +0 -1
- package/src/modules/catalog/i18n/pl.json +0 -1
- package/src/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.tsx +0 -4
- package/src/modules/communication_channels/api/post/channels/[id]/test-send/route.ts +1 -17
- package/src/modules/communication_channels/api/post/test-seed/route.ts +16 -155
- package/src/modules/communication_channels/backend/communication_channels/channels/page.tsx +0 -4
- package/src/modules/communication_channels/commands/ingest-inbound-message.ts +1 -38
- package/src/modules/communication_channels/di.ts +0 -7
- package/src/modules/communication_channels/lib/adapter.ts +0 -14
- package/src/modules/communication_channels/lib/email-capabilities.ts +0 -4
- package/src/modules/communication_channels/lib/test-seed.ts +4 -64
- package/src/modules/configs/i18n/de.json +0 -2
- package/src/modules/configs/i18n/en.json +0 -2
- package/src/modules/configs/i18n/es.json +0 -2
- package/src/modules/configs/i18n/ko.json +0 -2
- package/src/modules/configs/i18n/pl.json +0 -2
- package/src/modules/configs/lib/system-status.ts +0 -9
- package/src/modules/currencies/backend/currencies/page.tsx +1 -4
- package/src/modules/currencies/backend/exchange-rates/page.tsx +1 -4
- package/src/modules/customer_accounts/api/admin/domain-mappings.ts +0 -7
- package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +1 -4
- package/src/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.tsx +138 -0
- package/src/modules/customer_accounts/backend/customer_accounts/settings/page.tsx +8 -132
- package/src/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.tsx +598 -0
- package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.tsx +838 -0
- package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +6 -838
- package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +6 -590
- package/src/modules/customer_accounts/extension-points.ts +1 -1
- package/src/modules/customer_accounts/lib/portalUrl.ts +112 -0
- package/src/modules/customer_accounts/services/domainMappingService.ts +0 -10
- package/src/modules/customers/ai-tools/companies-pack.ts +1 -4
- package/src/modules/customers/ai-tools/deal-analyzer-pack.ts +2 -17
- package/src/modules/customers/ai-tools/deals-pack.ts +1 -66
- package/src/modules/customers/ai-tools/people-pack.ts +1 -4
- package/src/modules/customers/api/activities/route.ts +0 -45
- package/src/modules/customers/api/companies/[id]/people/route.ts +73 -24
- package/src/modules/customers/api/companies/[id]/route.ts +107 -24
- package/src/modules/customers/api/dashboard/widgets/customer-todos/route.ts +8 -16
- package/src/modules/customers/api/deals/[id]/companies/route.ts +1 -4
- package/src/modules/customers/api/deals/[id]/people/route.ts +1 -4
- package/src/modules/customers/api/deals/[id]/route.ts +28 -17
- package/src/modules/customers/api/deals/[id]/stats/route.ts +25 -10
- package/src/modules/customers/api/deals/aggregate/route.ts +4 -14
- package/src/modules/customers/api/deals/map/route.ts +0 -1
- package/src/modules/customers/api/deals/route.ts +1 -50
- package/src/modules/customers/api/entity-roles-factory.ts +4 -8
- package/src/modules/customers/api/interactions/route.ts +2 -8
- package/src/modules/customers/api/interactions/tasks/route.ts +1 -24
- package/src/modules/customers/api/people/[id]/companies/[linkId]/route.ts +4 -12
- package/src/modules/customers/api/people/[id]/companies/context.ts +1 -4
- package/src/modules/customers/api/people/[id]/companies/enriched/route.ts +1 -4
- package/src/modules/customers/api/people/[id]/route.ts +11 -16
- package/src/modules/customers/api/people/check-phone/route.ts +10 -75
- package/src/modules/customers/api/todos/route.ts +2 -27
- package/src/modules/customers/backend/customers/companies/page.tsx +4 -7
- package/src/modules/customers/backend/customers/deals/[id]/page.tsx +2 -7
- package/src/modules/customers/backend/customers/deals/page.tsx +4 -10
- package/src/modules/customers/backend/customers/deals/pipeline/components/Lane.tsx +14 -5
- package/src/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.tsx +27 -109
- package/src/modules/customers/backend/customers/people/page.tsx +4 -7
- package/src/modules/customers/backend/hooks/useEmailDuplicateCheck.ts +4 -12
- package/src/modules/customers/commands/deals.ts +59 -34
- package/src/modules/customers/commands/interactions.ts +1 -1
- package/src/modules/customers/commands/personCompanyLinks.ts +8 -224
- package/src/modules/customers/components/CustomerTodosTable.tsx +0 -2
- package/src/modules/customers/components/DealsKpiStrip.tsx +7 -7
- package/src/modules/customers/components/calendar/AgendaList.tsx +3 -3
- package/src/modules/customers/components/calendar/CalendarEventEditor.tsx +1 -1
- package/src/modules/customers/components/calendar/CalendarScreen.tsx +1 -1
- package/src/modules/customers/components/calendar/CalendarSettingsModal.tsx +1 -1
- package/src/modules/customers/components/calendar/EventBlock.tsx +2 -2
- package/src/modules/customers/components/calendar/EventPeekPopover.tsx +2 -4
- package/src/modules/customers/components/calendar/editor/PeopleField.tsx +5 -61
- package/src/modules/customers/components/calendar/editor/hooks.ts +1 -7
- package/src/modules/customers/components/calendar/types.ts +2 -2
- package/src/modules/customers/components/detail/AssignRoleDialog.tsx +12 -7
- package/src/modules/customers/components/detail/CompanyKpiBar.tsx +4 -5
- package/src/modules/customers/components/detail/CompanyPeopleSection.tsx +1 -8
- package/src/modules/customers/components/detail/DealForm.tsx +2 -22
- package/src/modules/customers/components/detail/DealsSection.tsx +5 -11
- package/src/modules/customers/components/detail/EntityTagsDialog.tsx +12 -58
- package/src/modules/customers/components/detail/PersonCompaniesSection.tsx +1 -8
- package/src/modules/customers/components/detail/hooks/usePersonTasks.ts +14 -23
- package/src/modules/customers/components/detail/schedule/ParticipantsField.tsx +5 -5
- package/src/modules/customers/components/detail/schedule/useScheduleFormState.ts +5 -5
- package/src/modules/customers/components/detail/types.ts +1 -1
- package/src/modules/customers/components/detail/utils.ts +5 -15
- package/src/modules/customers/data/entities.ts +1 -1
- package/src/modules/customers/data/validators.ts +9 -50
- package/src/modules/customers/events.ts +0 -5
- package/src/modules/customers/i18n/de.json +1 -9
- package/src/modules/customers/i18n/en.json +1 -9
- package/src/modules/customers/i18n/es.json +1 -9
- package/src/modules/customers/i18n/ko.json +1 -9
- package/src/modules/customers/i18n/pl.json +1 -9
- package/src/modules/customers/lib/calendar/conflicts.ts +2 -10
- package/src/modules/customers/lib/calendar/editorPayload.ts +3 -4
- package/src/modules/customers/lib/calendar/mapItem.ts +3 -8
- package/src/modules/customers/lib/dealStatus.ts +0 -42
- package/src/modules/customers/lib/findPeopleByAddresses.ts +6 -8
- package/src/modules/customers/lib/personCompanies.ts +1 -136
- package/src/modules/customers/lib/todoCompatibility.ts +1 -19
- package/src/modules/dashboards/i18n/es.json +4 -4
- package/src/modules/dashboards/i18n/pl.json +7 -7
- package/src/modules/dashboards/lib/widgetScope.ts +0 -6
- package/src/modules/data_sync/AGENTS.md +1 -1
- package/src/modules/data_sync/backend/data-sync/page.tsx +1 -4
- package/src/modules/data_sync/lib/adapter.ts +0 -36
- package/src/modules/data_sync/lib/sync-engine.ts +5 -113
- package/src/modules/data_sync/workers/sync-export.ts +0 -4
- package/src/modules/data_sync/workers/sync-import.ts +0 -4
- package/src/modules/devices/AGENTS.md +1 -20
- package/src/modules/devices/acl.ts +1 -9
- package/src/modules/devices/api/admin/devices/[id]/route.ts +34 -5
- package/src/modules/devices/api/admin/devices/route.ts +1 -14
- package/src/modules/devices/api/deviceList.ts +11 -135
- package/src/modules/devices/api/openapi.ts +1 -9
- package/src/modules/devices/api/route.ts +1 -9
- package/src/modules/devices/backend/devices/[id]/page.tsx +32 -18
- package/src/modules/devices/backend/devices/create/page.tsx +1 -17
- package/src/modules/devices/backend/devices/page.tsx +45 -44
- package/src/modules/devices/i18n/de.json +2 -3
- package/src/modules/devices/i18n/en.json +2 -3
- package/src/modules/devices/i18n/es.json +2 -3
- package/src/modules/devices/i18n/ko.json +2 -3
- package/src/modules/devices/i18n/pl.json +2 -3
- package/src/modules/devices/setup.ts +2 -6
- package/src/modules/directory/backend/directory/organizations/page.tsx +1 -3
- package/src/modules/directory/backend/directory/tenants/page.tsx +1 -3
- package/src/modules/directory/di.ts +2 -14
- package/src/modules/directory/utils/organizationScope.ts +15 -4
- package/src/modules/entities/api/records.ts +0 -2
- package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +1 -4
- package/src/modules/eudr/api/plots/route.ts +0 -4
- package/src/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/evidence-submissions/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/evidence-submissions/page.tsx +0 -4
- package/src/modules/eudr/backend/eudr/page.meta.ts +2 -2
- package/src/modules/eudr/backend/eudr/plots/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/plots/[id]/page.tsx +8 -2
- package/src/modules/eudr/backend/eudr/plots/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/plots/create/page.tsx +8 -2
- package/src/modules/eudr/backend/eudr/plots/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/plots/page.tsx +0 -4
- package/src/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/product-mappings/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/product-mappings/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/product-mappings/page.tsx +0 -4
- package/src/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/risk-assessments/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/risk-assessments/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/risk-assessments/page.tsx +0 -4
- package/src/modules/eudr/backend/eudr/statements/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/statements/[id]/page.tsx +2 -0
- package/src/modules/eudr/backend/eudr/statements/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/statements/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/statements/page.tsx +32 -30
- package/src/modules/eudr/commands/statements.ts +7 -2
- package/src/modules/eudr/components/crudErrorI18n.ts +31 -0
- package/src/modules/eudr/components/formConfig.tsx +9 -1
- package/src/modules/eudr/data/validators.ts +1 -16
- package/src/modules/eudr/i18n/de.json +3 -2
- package/src/modules/eudr/i18n/en.json +3 -2
- package/src/modules/eudr/i18n/es.json +3 -2
- package/src/modules/eudr/i18n/ko.json +3 -2
- package/src/modules/eudr/i18n/pl.json +3 -2
- package/src/modules/eudr/lib/statement-lifecycle.ts +8 -0
- package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +1 -2
- package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -2
- package/src/modules/feature_toggles/defaults.json +8 -0
- package/src/modules/inbox_ops/backend/inbox-ops/log/page.tsx +0 -4
- package/src/modules/inbox_ops/backend/inbox-ops/page.tsx +0 -4
- package/src/modules/inbox_ops/lib/htmlToPlainText.ts +17 -1
- package/src/modules/integrations/api/[id]/credentials/route.ts +4 -6
- package/src/modules/integrations/backend/integrations/[id]/page.tsx +31 -61
- package/src/modules/integrations/backend/integrations/bundle/[id]/page.tsx +9 -44
- package/src/modules/integrations/data/validators.ts +2 -12
- package/src/modules/integrations/i18n/de.json +0 -1
- package/src/modules/integrations/i18n/en.json +0 -1
- package/src/modules/integrations/i18n/es.json +0 -1
- package/src/modules/integrations/i18n/ko.json +0 -1
- package/src/modules/integrations/i18n/pl.json +0 -1
- package/src/modules/integrations/lib/credentials-masking.ts +6 -10
- package/src/modules/messages/api/[id]/route.ts +1 -55
- package/src/modules/messages/api/openapi.ts +0 -20
- package/src/modules/messages/api/route.ts +2 -31
- package/src/modules/messages/components/MessagesInboxPageClient.tsx +16 -9
- package/src/modules/messages/components/inboxFilters.ts +0 -36
- package/src/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.ts +1 -14
- package/src/modules/messages/components/message-detail/panels/MessageHeader.tsx +1 -3
- package/src/modules/messages/components/message-detail/panels/thread-panel.tsx +1 -2
- package/src/modules/messages/components/message-detail/types.ts +0 -3
- package/src/modules/messages/components/messageListLabels.ts +3 -52
- package/src/modules/messages/data/validators.ts +4 -43
- package/src/modules/payment_gateways/api/webhook/[provider]/route.ts +6 -4
- package/src/modules/payment_gateways/backend/payment-gateways/page.tsx +1 -4
- package/src/modules/payment_gateways/lib/webhook-processor.ts +0 -11
- package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +0 -4
- package/src/modules/push_notifications/backend/push_notifications/page.tsx +1 -4
- package/src/modules/push_notifications/backend/push_notifications/send/page.tsx +4 -4
- package/src/modules/query_index/lib/engine.ts +61 -249
- package/src/modules/query_index/lib/search-tokens.ts +3 -135
- package/src/modules/resources/backend/resources/resource-types/page.tsx +1 -4
- package/src/modules/resources/backend/resources/resources/page.tsx +1 -4
- package/src/modules/sales/backend/sales/channels/offers/page.tsx +0 -4
- package/src/modules/sales/backend/sales/channels/page.tsx +0 -4
- package/src/modules/sales/backend/sales/documents/[id]/page.tsx +8 -14
- package/src/modules/sales/commands/documents.ts +0 -93
- package/src/modules/sales/components/PriceWithCurrency.tsx +5 -17
- package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +0 -4
- package/src/modules/sales/components/documents/AdjustmentsSection.tsx +5 -6
- package/src/modules/sales/components/documents/ItemsSection.tsx +18 -56
- package/src/modules/sales/components/documents/LineItemDialog.tsx +21 -138
- package/src/modules/sales/components/documents/PaymentsSection.tsx +9 -20
- package/src/modules/sales/components/documents/ReturnsSection.tsx +5 -6
- package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +14 -106
- package/src/modules/sales/components/documents/SalesOrderDraftLines.tsx +5 -6
- package/src/modules/sales/components/documents/ShipmentDialog.tsx +4 -5
- package/src/modules/sales/components/documents/ShipmentsSection.tsx +5 -6
- package/src/modules/sales/components/documents/lineItemUtils.ts +2 -7
- package/src/modules/sales/data/entities.ts +0 -6
- package/src/modules/sales/extension-points.ts +0 -1
- package/src/modules/sales/i18n/de.json +37 -8
- package/src/modules/sales/i18n/en.json +37 -8
- package/src/modules/sales/i18n/es.json +37 -8
- package/src/modules/sales/i18n/ko.json +37 -8
- package/src/modules/sales/i18n/pl.json +37 -8
- package/src/modules/sales/migrations/.snapshot-open-mercato.json +0 -60
- package/src/modules/sales/setup.ts +0 -2
- package/src/modules/sales/widgets/injection/document-history/widget.client.tsx +42 -2
- package/src/modules/sales/widgets/injection/payment-gateway-status-column/widget.ts +1 -9
- package/src/modules/sales/widgets/injection-table.ts +7 -4
- package/src/modules/staff/backend/staff/leave-requests/page.tsx +0 -4
- package/src/modules/staff/backend/staff/my-leave-requests/page.tsx +0 -4
- package/src/modules/staff/backend/staff/team-members/page.tsx +0 -6
- package/src/modules/staff/backend/staff/team-roles/page.tsx +0 -4
- package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +0 -4
- package/src/modules/staff/backend/staff/teams/page.tsx +0 -4
- package/src/modules/staff/backend/staff/timesheets/page.tsx +1 -12
- package/src/modules/staff/backend/staff/timesheets/projects/page.tsx +0 -4
- package/src/modules/sync_excel/lib/adapters/customers.ts +0 -5
- package/src/modules/warranty_claims/api/assignees/route.ts +3 -3
- package/src/modules/warranty_claims/api/portal/attachments/route.ts +2 -2
- package/src/modules/warranty_claims/api/portal/claims/route.ts +9 -12
- package/src/modules/warranty_claims/backend/page.tsx +0 -4
- package/src/modules/warranty_claims/backend/warranty_claims/registrations/page.tsx +0 -4
- package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.tsx +0 -4
- package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.tsx +0 -4
- package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.tsx +0 -4
- package/src/modules/wms/api/warehouses/route.ts +9 -13
- package/src/modules/wms/api/zones/route.ts +0 -16
- package/src/modules/wms/commands/configuration.ts +10 -159
- package/src/modules/wms/commands/inventory-actions.ts +0 -3
- package/src/modules/wms/commands/shared.ts +0 -17
- package/src/modules/wms/components/backend/WmsConfigurationPage.tsx +141 -95
- package/src/modules/wms/components/backend/WmsInventoryConsolePage.tsx +0 -2
- package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +30 -26
- package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +21 -17
- package/src/modules/wms/components/backend/WmsLotsListPage.tsx +0 -2
- package/src/modules/wms/components/backend/WmsOperationalDashboardPage.tsx +17 -13
- package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +16 -12
- package/src/modules/wms/components/backend/inventoryMutationLoaders.ts +20 -36
- package/src/modules/wms/i18n/de.json +0 -2
- package/src/modules/wms/i18n/en.json +0 -2
- package/src/modules/wms/i18n/es.json +0 -2
- package/src/modules/wms/i18n/ko.json +0 -2
- package/src/modules/wms/i18n/pl.json +0 -2
- package/src/modules/workflows/backend/definitions/page.tsx +1 -4
- package/src/modules/workflows/backend/events/page.tsx +1 -4
- package/src/modules/workflows/backend/instances/page.tsx +1 -4
- package/src/modules/workflows/backend/tasks/page.tsx +1 -4
- package/src/modules/workflows/lib/activity-executor.ts +0 -9
- package/dist/modules/api_keys/di.js +0 -9
- package/dist/modules/api_keys/di.js.map +0 -7
- package/dist/modules/api_keys/services/principalService.js +0 -31
- package/dist/modules/api_keys/services/principalService.js.map +0 -7
- package/dist/modules/attachments/lib/attachment-service.js +0 -313
- package/dist/modules/attachments/lib/attachment-service.js.map +0 -7
- package/dist/modules/auth/api/reset/validate.js +0 -55
- package/dist/modules/auth/api/reset/validate.js.map +0 -7
- package/dist/modules/auth/commands/acl.js +0 -254
- package/dist/modules/auth/commands/acl.js.map +0 -7
- package/dist/modules/auth/lib/userIdFilter.js +0 -16
- package/dist/modules/auth/lib/userIdFilter.js.map +0 -7
- package/dist/modules/auth/services/principalService.js +0 -200
- package/dist/modules/auth/services/principalService.js.map +0 -7
- package/dist/modules/auth/services/roleOrganizationScope.js +0 -41
- package/dist/modules/auth/services/roleOrganizationScope.js.map +0 -7
- package/dist/modules/communication_channels/lib/outbound-recipient.js +0 -33
- package/dist/modules/communication_channels/lib/outbound-recipient.js.map +0 -7
- package/dist/modules/communication_channels/lib/resolve-channel-type.js +0 -51
- package/dist/modules/communication_channels/lib/resolve-channel-type.js.map +0 -7
- package/dist/modules/customers/backend/customers/deals/pipeline/components/toneClasses.js +0 -18
- package/dist/modules/customers/backend/customers/deals/pipeline/components/toneClasses.js.map +0 -7
- package/dist/modules/customers/lib/calendar/participantIdentity.js +0 -9
- package/dist/modules/customers/lib/calendar/participantIdentity.js.map +0 -7
- package/dist/modules/customers/lib/closureStage.js +0 -45
- package/dist/modules/customers/lib/closureStage.js.map +0 -7
- package/dist/modules/customers/lib/detailReadAccess.js +0 -12
- package/dist/modules/customers/lib/detailReadAccess.js.map +0 -7
- package/dist/modules/data_sync/lib/abandoned-run.js +0 -19
- package/dist/modules/data_sync/lib/abandoned-run.js.map +0 -7
- package/dist/modules/devices/api/deviceSerialization.js +0 -46
- package/dist/modules/devices/api/deviceSerialization.js.map +0 -7
- package/dist/modules/devices/backend/devices/useDeviceUserLabels.js +0 -34
- package/dist/modules/devices/backend/devices/useDeviceUserLabels.js.map +0 -7
- package/dist/modules/devices/backend/devices/userOptions.js +0 -52
- package/dist/modules/devices/backend/devices/userOptions.js.map +0 -7
- package/dist/modules/directory/services/organizationHierarchyService.js +0 -29
- package/dist/modules/directory/services/organizationHierarchyService.js.map +0 -7
- package/dist/modules/directory/services/organizationScopeService.js +0 -56
- package/dist/modules/directory/services/organizationScopeService.js.map +0 -7
- package/dist/modules/integrations/backend/integrations/credential-secret-fields.js +0 -55
- package/dist/modules/integrations/backend/integrations/credential-secret-fields.js.map +0 -7
- package/dist/modules/messages/lib/channel-sender-identity.js +0 -26
- package/dist/modules/messages/lib/channel-sender-identity.js.map +0 -7
- package/dist/modules/messages/lib/composeSourceChannelType.js +0 -41
- package/dist/modules/messages/lib/composeSourceChannelType.js.map +0 -7
- package/dist/modules/query_index/lib/search-entity-policy.js +0 -14
- package/dist/modules/query_index/lib/search-entity-policy.js.map +0 -7
- package/dist/modules/sales/components/documents/lineItemShipmentLock.js +0 -54
- package/dist/modules/sales/components/documents/lineItemShipmentLock.js.map +0 -7
- package/dist/modules/sales/lib/salesChannelsToggleSeed.js +0 -33
- package/dist/modules/sales/lib/salesChannelsToggleSeed.js.map +0 -7
- package/dist/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.js +0 -32
- package/dist/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.js.map +0 -7
- package/dist/modules/wms/api/warehouseSearch.js +0 -21
- package/dist/modules/wms/api/warehouseSearch.js.map +0 -7
- package/dist/modules/wms/components/backend/WarehouseEditDialog.js +0 -158
- package/dist/modules/wms/components/backend/WarehouseEditDialog.js.map +0 -7
- package/dist/modules/wms/components/backend/warehouseFormOptions.js +0 -66
- package/dist/modules/wms/components/backend/warehouseFormOptions.js.map +0 -7
- package/src/modules/api_keys/di.ts +0 -7
- package/src/modules/api_keys/services/principalService.ts +0 -33
- package/src/modules/attachments/lib/attachment-service.ts +0 -468
- package/src/modules/auth/api/reset/validate.ts +0 -57
- package/src/modules/auth/commands/acl.ts +0 -495
- package/src/modules/auth/lib/userIdFilter.ts +0 -31
- package/src/modules/auth/services/principalService.ts +0 -266
- package/src/modules/auth/services/roleOrganizationScope.ts +0 -70
- package/src/modules/communication_channels/lib/outbound-recipient.ts +0 -71
- package/src/modules/communication_channels/lib/resolve-channel-type.ts +0 -99
- package/src/modules/customers/backend/customers/deals/pipeline/components/toneClasses.ts +0 -21
- package/src/modules/customers/lib/calendar/participantIdentity.ts +0 -17
- package/src/modules/customers/lib/closureStage.ts +0 -76
- package/src/modules/customers/lib/detailReadAccess.ts +0 -35
- package/src/modules/data_sync/lib/abandoned-run.ts +0 -56
- package/src/modules/devices/api/deviceSerialization.ts +0 -50
- package/src/modules/devices/backend/devices/useDeviceUserLabels.ts +0 -45
- package/src/modules/devices/backend/devices/userOptions.ts +0 -99
- package/src/modules/directory/services/organizationHierarchyService.ts +0 -34
- package/src/modules/directory/services/organizationScopeService.ts +0 -85
- package/src/modules/integrations/backend/integrations/credential-secret-fields.ts +0 -84
- package/src/modules/messages/lib/channel-sender-identity.ts +0 -55
- package/src/modules/messages/lib/composeSourceChannelType.ts +0 -95
- package/src/modules/query_index/lib/search-entity-policy.ts +0 -46
- package/src/modules/sales/components/documents/lineItemShipmentLock.ts +0 -74
- package/src/modules/sales/lib/salesChannelsToggleSeed.ts +0 -42
- package/src/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.ts +0 -87
- package/src/modules/wms/api/warehouseSearch.ts +0 -23
- package/src/modules/wms/components/backend/WarehouseEditDialog.tsx +0 -216
- package/src/modules/wms/components/backend/warehouseFormOptions.ts +0 -72
|
@@ -10,8 +10,6 @@ export const ACTIVITY_DATE_REQUIRED_MESSAGE_KEY = 'customers.activities.errors.d
|
|
|
10
10
|
export const ACTIVITY_TIME_REQUIRED_MESSAGE_KEY = 'customers.activities.errors.timeRequired'
|
|
11
11
|
export const ACTIVITY_PHONE_REQUIRED_MESSAGE_KEY = 'customers.activities.errors.phoneRequired'
|
|
12
12
|
export const ACTIVITY_PHONE_INVALID_MESSAGE_KEY = 'customers.activities.errors.phoneInvalid'
|
|
13
|
-
export const INTERACTION_PARTICIPANT_IDENTITY_REQUIRED_MESSAGE_KEY = 'customers.activities.errors.participantIdentityRequired'
|
|
14
|
-
export const INTERACTION_PARTICIPANT_EMAIL_INVALID_MESSAGE_KEY = 'customers.activities.errors.participantEmailInvalid'
|
|
15
13
|
|
|
16
14
|
// customer_deals.description is an unbounded `text` column; this cap only exists to keep
|
|
17
15
|
// request bodies, fulltext search documents and query-index documents from growing without limit.
|
|
@@ -426,36 +424,12 @@ export const interactionStatusValues = ['planned', 'done', 'canceled'] as const
|
|
|
426
424
|
/** @deprecated See {@link interactionStatusValues}. */
|
|
427
425
|
export type InteractionStatus = typeof interactionStatusValues[number]
|
|
428
426
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
.object({
|
|
436
|
-
userId: z.string().uuid().optional(),
|
|
437
|
-
name: z.string().trim().max(200).optional(),
|
|
438
|
-
email: z.string().trim().max(320).optional(),
|
|
439
|
-
status: z.string().trim().max(50).optional(),
|
|
440
|
-
})
|
|
441
|
-
.superRefine((participant, ctx) => {
|
|
442
|
-
if (participant.userId) return
|
|
443
|
-
if (!participant.email) {
|
|
444
|
-
ctx.addIssue({
|
|
445
|
-
code: z.ZodIssueCode.custom,
|
|
446
|
-
path: ['email'],
|
|
447
|
-
message: INTERACTION_PARTICIPANT_IDENTITY_REQUIRED_MESSAGE_KEY,
|
|
448
|
-
})
|
|
449
|
-
return
|
|
450
|
-
}
|
|
451
|
-
if (!z.string().email().safeParse(participant.email).success) {
|
|
452
|
-
ctx.addIssue({
|
|
453
|
-
code: z.ZodIssueCode.custom,
|
|
454
|
-
path: ['email'],
|
|
455
|
-
message: INTERACTION_PARTICIPANT_EMAIL_INVALID_MESSAGE_KEY,
|
|
456
|
-
})
|
|
457
|
-
}
|
|
458
|
-
})
|
|
427
|
+
const interactionParticipantSchema = z.object({
|
|
428
|
+
userId: z.string().uuid(),
|
|
429
|
+
name: z.string().trim().max(200).optional(),
|
|
430
|
+
email: z.string().trim().max(320).optional(),
|
|
431
|
+
status: z.string().trim().max(50).optional(),
|
|
432
|
+
})
|
|
459
433
|
|
|
460
434
|
const interactionLinkedEntitySchema = z.object({
|
|
461
435
|
id: z.string().uuid(),
|
|
@@ -800,24 +774,9 @@ export const personCompanyLinkUpdateSchema = scopedSchema.extend({
|
|
|
800
774
|
isPrimary: z.boolean(),
|
|
801
775
|
})
|
|
802
776
|
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
// link row was ever created (migrated CRM data, #5114). Both detaches go through the
|
|
807
|
-
// same command so audit, undo and cache invalidation stay consistent.
|
|
808
|
-
export const personCompanyLinkDeleteSchema = scopedSchema
|
|
809
|
-
.extend({
|
|
810
|
-
linkId: uuid().optional(),
|
|
811
|
-
personEntityId: uuid().optional(),
|
|
812
|
-
companyEntityId: uuid().optional(),
|
|
813
|
-
})
|
|
814
|
-
.refine(
|
|
815
|
-
(payload) => Boolean(payload.linkId) || Boolean(payload.personEntityId && payload.companyEntityId),
|
|
816
|
-
{
|
|
817
|
-
message: 'Provide either linkId or both personEntityId and companyEntityId.',
|
|
818
|
-
path: ['linkId'],
|
|
819
|
-
}
|
|
820
|
-
)
|
|
777
|
+
export const personCompanyLinkDeleteSchema = scopedSchema.extend({
|
|
778
|
+
linkId: uuid(),
|
|
779
|
+
})
|
|
821
780
|
|
|
822
781
|
export type PersonCompanyLinkCreateInput = z.infer<typeof personCompanyLinkCreateSchema>
|
|
823
782
|
export type PersonCompanyLinkUpdateInput = z.infer<typeof personCompanyLinkUpdateSchema>
|
|
@@ -78,11 +78,6 @@ const events = [
|
|
|
78
78
|
{ id: 'customers.person_company_link.created', label: 'Person Linked To Company', entity: 'person_company_link', category: 'crud', clientBroadcast: true },
|
|
79
79
|
{ id: 'customers.person_company_link.updated', label: 'Person-Company Link Updated', entity: 'person_company_link', category: 'crud', clientBroadcast: true },
|
|
80
80
|
{ id: 'customers.person_company_link.deleted', label: 'Person Unlinked From Company', entity: 'person_company_link', category: 'crud', clientBroadcast: true },
|
|
81
|
-
// Legacy profile-only company assignments (`customer_person_profiles.company_id` set with no
|
|
82
|
-
// backing link row, #5114) have no link entity, so detaching one cannot honestly emit
|
|
83
|
-
// `customers.person_company_link.deleted` — that event's payload promises a link id that never
|
|
84
|
-
// existed. This sibling carries the same live-refresh signal for that shape instead.
|
|
85
|
-
{ id: 'customers.person.company_assignment.detached', label: 'Legacy Company Assignment Detached', entity: 'person_company_link', category: 'lifecycle', clientBroadcast: true },
|
|
86
81
|
|
|
87
82
|
// ── Email integration (2026-05-27) ────────────────────────────────────────
|
|
88
83
|
{ id: 'customers.email.linked', label: 'Email Linked To Person', entity: 'email_link', category: 'lifecycle', clientBroadcast: true },
|
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
"customers.activities.card.overdue": "{count} überfällig",
|
|
29
29
|
"customers.activities.card.title": "Aktivitäten",
|
|
30
30
|
"customers.activities.errors.dateRequired": "Datum ist erforderlich",
|
|
31
|
-
"customers.activities.errors.participantEmailInvalid": "Geben Sie eine gültige E-Mail-Adresse für einen Gastteilnehmer ein (z. B. gast@example.org)",
|
|
32
|
-
"customers.activities.errors.participantIdentityRequired": "Ein Teilnehmer benötigt entweder einen Benutzerdatensatz oder eine E-Mail-Adresse",
|
|
33
31
|
"customers.activities.errors.phoneInvalid": "Geben Sie eine gültige Telefonnummer mit Ländervorwahl ein (z. B. +49 30 1234567)",
|
|
34
32
|
"customers.activities.errors.phoneRequired": "Telefonnummer ist für Anrufaktivitäten erforderlich",
|
|
35
33
|
"customers.activities.errors.timeRequired": "Uhrzeit ist erforderlich",
|
|
@@ -224,7 +222,6 @@
|
|
|
224
222
|
"customers.calendar.day.thu": "DO",
|
|
225
223
|
"customers.calendar.day.tue": "DI",
|
|
226
224
|
"customers.calendar.day.wed": "MI",
|
|
227
|
-
"customers.calendar.editor.addGuest": "{email} als Gast einladen",
|
|
228
225
|
"customers.calendar.editor.addPeoplePlaceholder": "Mitarbeiter oder Kunden hinzufügen…",
|
|
229
226
|
"customers.calendar.editor.addRecipientPlaceholder": "Empfänger hinzufügen…",
|
|
230
227
|
"customers.calendar.editor.allDay": "Ganztägig",
|
|
@@ -250,7 +247,6 @@
|
|
|
250
247
|
"customers.calendar.editor.description": "Beschreibung",
|
|
251
248
|
"customers.calendar.editor.descriptionPlaceholder": "Details hinzufügen…",
|
|
252
249
|
"customers.calendar.editor.error": "Termin konnte nicht gespeichert werden",
|
|
253
|
-
"customers.calendar.editor.guestBadge": "Gast",
|
|
254
250
|
"customers.calendar.editor.location": "Ort",
|
|
255
251
|
"customers.calendar.editor.locationPlaceholder": "Ort oder Link hinzufügen…",
|
|
256
252
|
"customers.calendar.editor.multiDayHint": "Mehrtägiger Termin · {count} Tage",
|
|
@@ -358,7 +354,7 @@
|
|
|
358
354
|
"customers.calendar.settings.activityTypesHint": "Die Aktivitätstypen, die Ihr Kalender beim Erstellen eines Ereignisses anbietet. Aus dem Workspace-Wörterbuch übernommen.",
|
|
359
355
|
"customers.calendar.settings.addCategory": "Kategorie hinzufügen…",
|
|
360
356
|
"customers.calendar.settings.addType": "Typ hinzufügen…",
|
|
361
|
-
"customers.calendar.settings.aiSummaries": "KI-Zusammenfassungen",
|
|
357
|
+
"customers.calendar.settings.aiSummaries": "KI-Zusammenfassungen & Schnellaktionen",
|
|
362
358
|
"customers.calendar.settings.cancel": "Abbrechen",
|
|
363
359
|
"customers.calendar.settings.close": "Schließen",
|
|
364
360
|
"customers.calendar.settings.conflictScope": "Konfliktbereich",
|
|
@@ -1323,9 +1319,6 @@
|
|
|
1323
1319
|
"customers.deals.kanban.filter.searchPlaceholder": "Search…",
|
|
1324
1320
|
"customers.deals.kanban.filter.selected": "selected",
|
|
1325
1321
|
"customers.deals.kanban.filter.status": "Status",
|
|
1326
|
-
"customers.deals.kanban.filter.status.closed": "Geschlossen",
|
|
1327
|
-
"customers.deals.kanban.filter.status.inProgress": "In Bearbeitung",
|
|
1328
|
-
"customers.deals.kanban.filter.status.loading": "Status werden geladen…",
|
|
1329
1322
|
"customers.deals.kanban.filter.status.lost": "Lost",
|
|
1330
1323
|
"customers.deals.kanban.filter.status.open": "Open",
|
|
1331
1324
|
"customers.deals.kanban.filter.status.title": "Filter · Status",
|
|
@@ -2416,7 +2409,6 @@
|
|
|
2416
2409
|
"customers.personTags.newLabel": "New label",
|
|
2417
2410
|
"customers.personTags.newLabelPlaceholder": "Label name...",
|
|
2418
2411
|
"customers.personTags.newTag": "Neuer Tag",
|
|
2419
|
-
"customers.personTags.retry": "Erneut versuchen",
|
|
2420
2412
|
"customers.personTags.save": "Save",
|
|
2421
2413
|
"customers.personTags.saveError": "Failed to save tags",
|
|
2422
2414
|
"customers.personTags.saveSuccess": "Tags updated.",
|
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
"customers.activities.card.overdue": "{count} overdue",
|
|
29
29
|
"customers.activities.card.title": "Activities",
|
|
30
30
|
"customers.activities.errors.dateRequired": "Date is required",
|
|
31
|
-
"customers.activities.errors.participantEmailInvalid": "Enter a valid email address for a guest participant (e.g. guest@example.org)",
|
|
32
|
-
"customers.activities.errors.participantIdentityRequired": "A participant needs either a user record or an email address",
|
|
33
31
|
"customers.activities.errors.phoneInvalid": "Enter a valid phone number with country code (e.g. +1 212 555 1234)",
|
|
34
32
|
"customers.activities.errors.phoneRequired": "Phone number is required for Call activities",
|
|
35
33
|
"customers.activities.errors.timeRequired": "Time is required",
|
|
@@ -224,7 +222,6 @@
|
|
|
224
222
|
"customers.calendar.day.thu": "THU",
|
|
225
223
|
"customers.calendar.day.tue": "TUE",
|
|
226
224
|
"customers.calendar.day.wed": "WED",
|
|
227
|
-
"customers.calendar.editor.addGuest": "Invite {email} as a guest",
|
|
228
225
|
"customers.calendar.editor.addPeoplePlaceholder": "Add staff or customer…",
|
|
229
226
|
"customers.calendar.editor.addRecipientPlaceholder": "Add recipient…",
|
|
230
227
|
"customers.calendar.editor.allDay": "All day",
|
|
@@ -250,7 +247,6 @@
|
|
|
250
247
|
"customers.calendar.editor.description": "Description",
|
|
251
248
|
"customers.calendar.editor.descriptionPlaceholder": "Add details…",
|
|
252
249
|
"customers.calendar.editor.error": "Failed to save event",
|
|
253
|
-
"customers.calendar.editor.guestBadge": "Guest",
|
|
254
250
|
"customers.calendar.editor.location": "Location",
|
|
255
251
|
"customers.calendar.editor.locationPlaceholder": "Add a location or link…",
|
|
256
252
|
"customers.calendar.editor.multiDayHint": "Multi-day event · {count} days",
|
|
@@ -358,7 +354,7 @@
|
|
|
358
354
|
"customers.calendar.settings.activityTypesHint": "The activity types your calendar surfaces when creating an event. Seeded from your workspace dictionary.",
|
|
359
355
|
"customers.calendar.settings.addCategory": "Add a category…",
|
|
360
356
|
"customers.calendar.settings.addType": "Add a type…",
|
|
361
|
-
"customers.calendar.settings.aiSummaries": "AI summaries",
|
|
357
|
+
"customers.calendar.settings.aiSummaries": "AI summaries & quick actions",
|
|
362
358
|
"customers.calendar.settings.cancel": "Cancel",
|
|
363
359
|
"customers.calendar.settings.close": "Close",
|
|
364
360
|
"customers.calendar.settings.conflictScope": "Conflict scope",
|
|
@@ -1323,9 +1319,6 @@
|
|
|
1323
1319
|
"customers.deals.kanban.filter.searchPlaceholder": "Search…",
|
|
1324
1320
|
"customers.deals.kanban.filter.selected": "selected",
|
|
1325
1321
|
"customers.deals.kanban.filter.status": "Status",
|
|
1326
|
-
"customers.deals.kanban.filter.status.closed": "Closed",
|
|
1327
|
-
"customers.deals.kanban.filter.status.inProgress": "In progress",
|
|
1328
|
-
"customers.deals.kanban.filter.status.loading": "Loading statuses…",
|
|
1329
1322
|
"customers.deals.kanban.filter.status.lost": "Lost",
|
|
1330
1323
|
"customers.deals.kanban.filter.status.open": "Open",
|
|
1331
1324
|
"customers.deals.kanban.filter.status.title": "Filter · Status",
|
|
@@ -2416,7 +2409,6 @@
|
|
|
2416
2409
|
"customers.personTags.newLabel": "New label",
|
|
2417
2410
|
"customers.personTags.newLabelPlaceholder": "Label name...",
|
|
2418
2411
|
"customers.personTags.newTag": "New tag",
|
|
2419
|
-
"customers.personTags.retry": "Retry",
|
|
2420
2412
|
"customers.personTags.save": "Save",
|
|
2421
2413
|
"customers.personTags.saveError": "Failed to save tags",
|
|
2422
2414
|
"customers.personTags.saveSuccess": "Tags updated.",
|
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
"customers.activities.card.overdue": "{count} vencidas",
|
|
29
29
|
"customers.activities.card.title": "Actividades",
|
|
30
30
|
"customers.activities.errors.dateRequired": "La fecha es obligatoria",
|
|
31
|
-
"customers.activities.errors.participantEmailInvalid": "Introduce una dirección de correo electrónico válida para un invitado (p. ej., invitado@example.org)",
|
|
32
|
-
"customers.activities.errors.participantIdentityRequired": "Un participante necesita un registro de usuario o una dirección de correo electrónico",
|
|
33
31
|
"customers.activities.errors.phoneInvalid": "Introduce un número de teléfono válido con prefijo internacional (p. ej., +34 912 345 678)",
|
|
34
32
|
"customers.activities.errors.phoneRequired": "El número de teléfono es obligatorio para actividades de llamada",
|
|
35
33
|
"customers.activities.errors.timeRequired": "La hora es obligatoria",
|
|
@@ -224,7 +222,6 @@
|
|
|
224
222
|
"customers.calendar.day.thu": "JUE",
|
|
225
223
|
"customers.calendar.day.tue": "MAR",
|
|
226
224
|
"customers.calendar.day.wed": "MIÉ",
|
|
227
|
-
"customers.calendar.editor.addGuest": "Invitar a {email} como invitado",
|
|
228
225
|
"customers.calendar.editor.addPeoplePlaceholder": "Añadir personal o cliente…",
|
|
229
226
|
"customers.calendar.editor.addRecipientPlaceholder": "Añadir destinatario…",
|
|
230
227
|
"customers.calendar.editor.allDay": "Todo el día",
|
|
@@ -250,7 +247,6 @@
|
|
|
250
247
|
"customers.calendar.editor.description": "Descripción",
|
|
251
248
|
"customers.calendar.editor.descriptionPlaceholder": "Añadir detalles…",
|
|
252
249
|
"customers.calendar.editor.error": "No se pudo guardar el evento",
|
|
253
|
-
"customers.calendar.editor.guestBadge": "Invitado",
|
|
254
250
|
"customers.calendar.editor.location": "Ubicación",
|
|
255
251
|
"customers.calendar.editor.locationPlaceholder": "Añadir una ubicación o enlace…",
|
|
256
252
|
"customers.calendar.editor.multiDayHint": "Evento de varios días · {count} días",
|
|
@@ -358,7 +354,7 @@
|
|
|
358
354
|
"customers.calendar.settings.activityTypesHint": "Los tipos de actividad que muestra tu calendario al crear un evento. Tomados del diccionario del espacio de trabajo.",
|
|
359
355
|
"customers.calendar.settings.addCategory": "Añadir una categoría…",
|
|
360
356
|
"customers.calendar.settings.addType": "Añadir un tipo…",
|
|
361
|
-
"customers.calendar.settings.aiSummaries": "Resúmenes de IA",
|
|
357
|
+
"customers.calendar.settings.aiSummaries": "Resúmenes de IA y acciones rápidas",
|
|
362
358
|
"customers.calendar.settings.cancel": "Cancelar",
|
|
363
359
|
"customers.calendar.settings.close": "Cerrar",
|
|
364
360
|
"customers.calendar.settings.conflictScope": "Ámbito de conflictos",
|
|
@@ -1323,9 +1319,6 @@
|
|
|
1323
1319
|
"customers.deals.kanban.filter.searchPlaceholder": "Search…",
|
|
1324
1320
|
"customers.deals.kanban.filter.selected": "selected",
|
|
1325
1321
|
"customers.deals.kanban.filter.status": "Status",
|
|
1326
|
-
"customers.deals.kanban.filter.status.closed": "Cerrado",
|
|
1327
|
-
"customers.deals.kanban.filter.status.inProgress": "En curso",
|
|
1328
|
-
"customers.deals.kanban.filter.status.loading": "Cargando estados…",
|
|
1329
1322
|
"customers.deals.kanban.filter.status.lost": "Lost",
|
|
1330
1323
|
"customers.deals.kanban.filter.status.open": "Open",
|
|
1331
1324
|
"customers.deals.kanban.filter.status.title": "Filter · Status",
|
|
@@ -2416,7 +2409,6 @@
|
|
|
2416
2409
|
"customers.personTags.newLabel": "New label",
|
|
2417
2410
|
"customers.personTags.newLabelPlaceholder": "Label name...",
|
|
2418
2411
|
"customers.personTags.newTag": "Nueva etiqueta",
|
|
2419
|
-
"customers.personTags.retry": "Reintentar",
|
|
2420
2412
|
"customers.personTags.save": "Save",
|
|
2421
2413
|
"customers.personTags.saveError": "Failed to save tags",
|
|
2422
2414
|
"customers.personTags.saveSuccess": "Tags updated.",
|
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
"customers.activities.card.overdue": "{count}건 기한 초과",
|
|
29
29
|
"customers.activities.card.title": "활동",
|
|
30
30
|
"customers.activities.errors.dateRequired": "날짜는 필수입니다",
|
|
31
|
-
"customers.activities.errors.participantEmailInvalid": "게스트 참가자의 유효한 이메일 주소를 입력하세요(예: guest@example.org)",
|
|
32
|
-
"customers.activities.errors.participantIdentityRequired": "참가자에게는 사용자 레코드 또는 이메일 주소가 필요합니다",
|
|
33
31
|
"customers.activities.errors.phoneInvalid": "국가 코드를 포함한 유효한 전화번호를 입력하세요(예: +1 212 555 1234)",
|
|
34
32
|
"customers.activities.errors.phoneRequired": "통화 활동에는 전화번호가 필요합니다",
|
|
35
33
|
"customers.activities.errors.timeRequired": "시간은 필수입니다",
|
|
@@ -224,7 +222,6 @@
|
|
|
224
222
|
"customers.calendar.day.thu": "목",
|
|
225
223
|
"customers.calendar.day.tue": "화",
|
|
226
224
|
"customers.calendar.day.wed": "수",
|
|
227
|
-
"customers.calendar.editor.addGuest": "{email}을(를) 게스트로 초대",
|
|
228
225
|
"customers.calendar.editor.addPeoplePlaceholder": "직원 또는 고객 추가…",
|
|
229
226
|
"customers.calendar.editor.addRecipientPlaceholder": "받는 사람 추가…",
|
|
230
227
|
"customers.calendar.editor.allDay": "종일",
|
|
@@ -250,7 +247,6 @@
|
|
|
250
247
|
"customers.calendar.editor.description": "설명",
|
|
251
248
|
"customers.calendar.editor.descriptionPlaceholder": "세부 정보 추가…",
|
|
252
249
|
"customers.calendar.editor.error": "이벤트를 저장하지 못했습니다",
|
|
253
|
-
"customers.calendar.editor.guestBadge": "게스트",
|
|
254
250
|
"customers.calendar.editor.location": "장소",
|
|
255
251
|
"customers.calendar.editor.locationPlaceholder": "장소 또는 링크 추가…",
|
|
256
252
|
"customers.calendar.editor.multiDayHint": "여러 날 이벤트 · {count}일",
|
|
@@ -358,7 +354,7 @@
|
|
|
358
354
|
"customers.calendar.settings.activityTypesHint": "이벤트를 생성할 때 캘린더에 표시되는 활동 유형입니다. 워크스페이스 사전에서 초기화됩니다.",
|
|
359
355
|
"customers.calendar.settings.addCategory": "카테고리 추가…",
|
|
360
356
|
"customers.calendar.settings.addType": "유형 추가…",
|
|
361
|
-
"customers.calendar.settings.aiSummaries": "AI 요약",
|
|
357
|
+
"customers.calendar.settings.aiSummaries": "AI 요약 및 빠른 작업",
|
|
362
358
|
"customers.calendar.settings.cancel": "취소",
|
|
363
359
|
"customers.calendar.settings.close": "닫기",
|
|
364
360
|
"customers.calendar.settings.conflictScope": "충돌 범위",
|
|
@@ -1323,9 +1319,6 @@
|
|
|
1323
1319
|
"customers.deals.kanban.filter.searchPlaceholder": "검색…",
|
|
1324
1320
|
"customers.deals.kanban.filter.selected": "선택됨",
|
|
1325
1321
|
"customers.deals.kanban.filter.status": "상태",
|
|
1326
|
-
"customers.deals.kanban.filter.status.closed": "마감",
|
|
1327
|
-
"customers.deals.kanban.filter.status.inProgress": "진행 중",
|
|
1328
|
-
"customers.deals.kanban.filter.status.loading": "상태 로드 중…",
|
|
1329
1322
|
"customers.deals.kanban.filter.status.lost": "실패",
|
|
1330
1323
|
"customers.deals.kanban.filter.status.open": "열림",
|
|
1331
1324
|
"customers.deals.kanban.filter.status.title": "필터 · 상태",
|
|
@@ -2416,7 +2409,6 @@
|
|
|
2416
2409
|
"customers.personTags.newLabel": "새 라벨",
|
|
2417
2410
|
"customers.personTags.newLabelPlaceholder": "라벨 이름...",
|
|
2418
2411
|
"customers.personTags.newTag": "새 태그",
|
|
2419
|
-
"customers.personTags.retry": "다시 시도",
|
|
2420
2412
|
"customers.personTags.save": "저장",
|
|
2421
2413
|
"customers.personTags.saveError": "태그 저장에 실패했습니다",
|
|
2422
2414
|
"customers.personTags.saveSuccess": "태그가 업데이트되었습니다.",
|
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
"customers.activities.card.overdue": "{count} zaległych",
|
|
29
29
|
"customers.activities.card.title": "Aktywności",
|
|
30
30
|
"customers.activities.errors.dateRequired": "Data jest wymagana",
|
|
31
|
-
"customers.activities.errors.participantEmailInvalid": "Wprowadź prawidłowy adres e-mail uczestnika zewnętrznego (np. gosc@example.org)",
|
|
32
|
-
"customers.activities.errors.participantIdentityRequired": "Uczestnik wymaga rekordu użytkownika lub adresu e-mail",
|
|
33
31
|
"customers.activities.errors.phoneInvalid": "Wprowadź prawidłowy numer telefonu z numerem kierunkowym kraju (np. +48 123 456 789)",
|
|
34
32
|
"customers.activities.errors.phoneRequired": "Numer telefonu jest wymagany dla aktywności typu Połączenie",
|
|
35
33
|
"customers.activities.errors.timeRequired": "Godzina jest wymagana",
|
|
@@ -224,7 +222,6 @@
|
|
|
224
222
|
"customers.calendar.day.thu": "CZ",
|
|
225
223
|
"customers.calendar.day.tue": "WT",
|
|
226
224
|
"customers.calendar.day.wed": "ŚR",
|
|
227
|
-
"customers.calendar.editor.addGuest": "Zaproś {email} jako gościa",
|
|
228
225
|
"customers.calendar.editor.addPeoplePlaceholder": "Dodaj pracownika lub klienta…",
|
|
229
226
|
"customers.calendar.editor.addRecipientPlaceholder": "Dodaj odbiorcę…",
|
|
230
227
|
"customers.calendar.editor.allDay": "Cały dzień",
|
|
@@ -250,7 +247,6 @@
|
|
|
250
247
|
"customers.calendar.editor.description": "Opis",
|
|
251
248
|
"customers.calendar.editor.descriptionPlaceholder": "Dodaj szczegóły…",
|
|
252
249
|
"customers.calendar.editor.error": "Nie udało się zapisać wydarzenia",
|
|
253
|
-
"customers.calendar.editor.guestBadge": "Gość",
|
|
254
250
|
"customers.calendar.editor.location": "Lokalizacja",
|
|
255
251
|
"customers.calendar.editor.locationPlaceholder": "Dodaj lokalizację lub link…",
|
|
256
252
|
"customers.calendar.editor.multiDayHint": "Wydarzenie wielodniowe · {count} dni",
|
|
@@ -358,7 +354,7 @@
|
|
|
358
354
|
"customers.calendar.settings.activityTypesHint": "Typy aktywności udostępniane przez kalendarz podczas tworzenia wydarzenia. Pobrane ze słownika obszaru roboczego.",
|
|
359
355
|
"customers.calendar.settings.addCategory": "Dodaj kategorię…",
|
|
360
356
|
"customers.calendar.settings.addType": "Dodaj typ…",
|
|
361
|
-
"customers.calendar.settings.aiSummaries": "Podsumowania AI",
|
|
357
|
+
"customers.calendar.settings.aiSummaries": "Podsumowania AI i szybkie akcje",
|
|
362
358
|
"customers.calendar.settings.cancel": "Anuluj",
|
|
363
359
|
"customers.calendar.settings.close": "Zamknij",
|
|
364
360
|
"customers.calendar.settings.conflictScope": "Zakres konfliktów",
|
|
@@ -1323,9 +1319,6 @@
|
|
|
1323
1319
|
"customers.deals.kanban.filter.searchPlaceholder": "Szukaj…",
|
|
1324
1320
|
"customers.deals.kanban.filter.selected": "zaznaczono",
|
|
1325
1321
|
"customers.deals.kanban.filter.status": "Status",
|
|
1326
|
-
"customers.deals.kanban.filter.status.closed": "Zamknięta",
|
|
1327
|
-
"customers.deals.kanban.filter.status.inProgress": "W toku",
|
|
1328
|
-
"customers.deals.kanban.filter.status.loading": "Ładowanie statusów…",
|
|
1329
1322
|
"customers.deals.kanban.filter.status.lost": "Przegrana",
|
|
1330
1323
|
"customers.deals.kanban.filter.status.open": "Otwarta",
|
|
1331
1324
|
"customers.deals.kanban.filter.status.title": "Filtr · Status",
|
|
@@ -2416,7 +2409,6 @@
|
|
|
2416
2409
|
"customers.personTags.newLabel": "Nowa etykieta",
|
|
2417
2410
|
"customers.personTags.newLabelPlaceholder": "Nazwa etykiety...",
|
|
2418
2411
|
"customers.personTags.newTag": "Nowy tag",
|
|
2419
|
-
"customers.personTags.retry": "Ponów próbę",
|
|
2420
2412
|
"customers.personTags.save": "Zapisz",
|
|
2421
2413
|
"customers.personTags.saveError": "Nie udało się zapisać tagów",
|
|
2422
2414
|
"customers.personTags.saveSuccess": "Tagi zostały zaktualizowane.",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { CalendarItem, CalendarItemStatus, CalendarParticipant } from '../../components/calendar/types'
|
|
2
|
-
import { participantActorKey } from './participantIdentity'
|
|
3
2
|
import type { ConflictScope } from './preferences'
|
|
4
3
|
|
|
5
4
|
export const EDITOR_DRAFT_CONFLICT_ID = '__draft__'
|
|
@@ -15,15 +14,8 @@ export type FindConflictsOptions = {
|
|
|
15
14
|
function sharesActor(first: CalendarItem, second: CalendarItem): boolean {
|
|
16
15
|
if (first.ownerUserId && second.ownerUserId && first.ownerUserId === second.ownerUserId) return true
|
|
17
16
|
if (first.participants.length === 0 || second.participants.length === 0) return false
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
.map(participantActorKey)
|
|
21
|
-
.filter((actorKey): actorKey is string => actorKey !== null),
|
|
22
|
-
)
|
|
23
|
-
return second.participants.some((participant) => {
|
|
24
|
-
const actorKey = participantActorKey(participant)
|
|
25
|
-
return actorKey !== null && firstActorKeys.has(actorKey)
|
|
26
|
-
})
|
|
17
|
+
const firstParticipantIds = new Set(first.participants.map((participant) => participant.userId))
|
|
18
|
+
return second.participants.some((participant) => firstParticipantIds.has(participant.userId))
|
|
27
19
|
}
|
|
28
20
|
|
|
29
21
|
function isActor(item: CalendarItem, userId: string): boolean {
|
|
@@ -112,7 +112,7 @@ export type EditorRelatedTo = {
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
export type EditorParticipant = {
|
|
115
|
-
userId
|
|
115
|
+
userId: string
|
|
116
116
|
name: string
|
|
117
117
|
email?: string
|
|
118
118
|
isCustomer: boolean
|
|
@@ -405,14 +405,13 @@ function parseParticipants(item: CalendarItem): EditorParticipant[] {
|
|
|
405
405
|
const rawParticipants = Array.isArray(item.raw.participants) ? item.raw.participants : []
|
|
406
406
|
const statusByUserId = new Map<string, string | null>()
|
|
407
407
|
for (const raw of rawParticipants) {
|
|
408
|
-
if (!raw.userId) continue
|
|
409
408
|
statusByUserId.set(raw.userId, readUnknownString((raw as Record<string, unknown>).status))
|
|
410
409
|
}
|
|
411
410
|
return item.participants.map((participant) => ({
|
|
412
411
|
userId: participant.userId,
|
|
413
|
-
name: participant.name ?? participant.email ?? participant.userId
|
|
412
|
+
name: participant.name ?? participant.email ?? participant.userId,
|
|
414
413
|
email: participant.email,
|
|
415
|
-
isCustomer:
|
|
414
|
+
isCustomer: statusByUserId.get(participant.userId) === 'customer',
|
|
416
415
|
}))
|
|
417
416
|
}
|
|
418
417
|
|
|
@@ -10,7 +10,6 @@ import type {
|
|
|
10
10
|
CalendarPlatform,
|
|
11
11
|
} from '../../components/calendar/types'
|
|
12
12
|
import { categoryOf } from './categories'
|
|
13
|
-
import { participantActorKey } from './participantIdentity'
|
|
14
13
|
|
|
15
14
|
const DEFAULT_DURATION_MINUTES = 30
|
|
16
15
|
|
|
@@ -44,13 +43,9 @@ function mapParticipants(payload: CalendarInteractionPayload): CalendarParticipa
|
|
|
44
43
|
const seen = new Set<string>()
|
|
45
44
|
const mapped: CalendarParticipant[] = []
|
|
46
45
|
for (const participant of participants) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
seen.add(dedupeKey)
|
|
51
|
-
}
|
|
52
|
-
const entry: CalendarParticipant = {}
|
|
53
|
-
if (typeof participant.userId === 'string') entry.userId = participant.userId
|
|
46
|
+
if (seen.has(participant.userId)) continue
|
|
47
|
+
seen.add(participant.userId)
|
|
48
|
+
const entry: CalendarParticipant = { userId: participant.userId }
|
|
54
49
|
if (typeof participant.name === 'string') entry.name = participant.name
|
|
55
50
|
if (typeof participant.email === 'string') entry.email = participant.email
|
|
56
51
|
mapped.push(entry)
|
|
@@ -46,45 +46,3 @@ export function isClosedDealStatus(value: string | null | undefined): boolean {
|
|
|
46
46
|
export function isOpenDealStatus(value: string | null | undefined): boolean {
|
|
47
47
|
return !isClosedDealStatus(value)
|
|
48
48
|
}
|
|
49
|
-
|
|
50
|
-
export function canonicalDealStatus(value: string): string {
|
|
51
|
-
const lower = value.toLowerCase()
|
|
52
|
-
if (lower === 'won') return DEAL_STATUS_WIN
|
|
53
|
-
if (lower === 'lost') return DEAL_STATUS_LOSE
|
|
54
|
-
// Canonical spellings normalize to lower-case too, so an upper-case selection still
|
|
55
|
-
// matches the lower-case persisted values and dictionary options.
|
|
56
|
-
if (lower === 'win' || lower === 'loose' || lower === 'open' || lower === 'closed') return lower
|
|
57
|
-
return value
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Expand operator-selected status filter values into the canonical vocabulary so a
|
|
62
|
-
* single selection matches every spelling the supported writers persist (#5107).
|
|
63
|
-
*
|
|
64
|
-
* Alias groups (`win`/`won`, `loose`/`lost`, `closed`) are matched case-insensitively,
|
|
65
|
-
* expanded to their canonical spellings, and also keep the caller's original token so
|
|
66
|
-
* the result is always a strict superset of a verbatim match. Unknown values emit both
|
|
67
|
-
* the trimmed original and its lower-case form — mixed-case tenant dictionary statuses
|
|
68
|
-
* match exactly while `?status=Open` still hits lower-case stored rows.
|
|
69
|
-
*/
|
|
70
|
-
export function expandDealStatusAliases(values: string[]): string[] {
|
|
71
|
-
const out = new Set<string>()
|
|
72
|
-
for (const value of values) {
|
|
73
|
-
const trimmed = value.trim()
|
|
74
|
-
const lower = trimmed.toLowerCase()
|
|
75
|
-
if (lower === 'win' || lower === 'won') {
|
|
76
|
-
WON_DEAL_STATUS_LIST.forEach((entry) => out.add(entry))
|
|
77
|
-
out.add(trimmed)
|
|
78
|
-
} else if (lower === 'loose' || lower === 'lost') {
|
|
79
|
-
LOST_DEAL_STATUS_LIST.forEach((entry) => out.add(entry))
|
|
80
|
-
out.add(trimmed)
|
|
81
|
-
} else if (lower === 'closed') {
|
|
82
|
-
CLOSED_DEAL_STATUS_LIST.forEach((entry) => out.add(entry))
|
|
83
|
-
out.add(trimmed)
|
|
84
|
-
} else {
|
|
85
|
-
out.add(trimmed)
|
|
86
|
-
out.add(lower)
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return Array.from(out)
|
|
90
|
-
}
|
|
@@ -32,15 +32,13 @@ export interface MatchedPerson {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* Max rows scanned by in-memory fallback
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* memory instead. Bounded to keep interactive lookups cheap; a blind-index
|
|
41
|
-
* (hash) column per field is the follow-up if tenants outgrow it (#5515).
|
|
35
|
+
* Max person rows scanned by the in-memory fallback match. `primary_email` is
|
|
36
|
+
* GDPR-encrypted with a random IV (see `customers/encryption.ts`), so it cannot
|
|
37
|
+
* be filtered by value in SQL when tenant data encryption is on — recent rows are
|
|
38
|
+
* decrypted and compared in memory instead. Bounded to keep the inbound path cheap;
|
|
39
|
+
* a `primary_email` blind-index (hash) column is the follow-up if tenants outgrow it.
|
|
42
40
|
*/
|
|
43
|
-
|
|
41
|
+
const MATCH_CANDIDATE_LIMIT = 500
|
|
44
42
|
|
|
45
43
|
/**
|
|
46
44
|
* Batch lookup of CustomerEntity rows (kind='person') whose `primaryEmail`
|
|
@@ -56,136 +56,6 @@ async function requireCompany(
|
|
|
56
56
|
return company
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
export type CompanyPersonUnionEntry = {
|
|
60
|
-
entity: CustomerEntity
|
|
61
|
-
profile: CustomerPersonProfile | null
|
|
62
|
-
linkedAt: string | null
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Resolve "people belonging to this company" as the union of active
|
|
67
|
-
* `CustomerPersonCompanyLink` rows and `CustomerPersonProfile.company`
|
|
68
|
-
* profile-only assignments (data that never got a link row, e.g. from
|
|
69
|
-
* migrated CRM imports). This is the single source of truth for both the
|
|
70
|
-
* company People tab list and its badge count — see #5114.
|
|
71
|
-
*/
|
|
72
|
-
export async function loadCompanyPeopleUnion(
|
|
73
|
-
em: EntityManager,
|
|
74
|
-
company: CustomerEntity,
|
|
75
|
-
scope: { tenantId?: string | null; organizationId?: string | null },
|
|
76
|
-
): Promise<CompanyPersonUnionEntry[]> {
|
|
77
|
-
const decryptionScope = {
|
|
78
|
-
tenantId: scope.tenantId ?? company.tenantId ?? null,
|
|
79
|
-
organizationId: scope.organizationId ?? company.organizationId ?? null,
|
|
80
|
-
}
|
|
81
|
-
const relatedPeopleById = new Map<string, CompanyPersonUnionEntry>()
|
|
82
|
-
|
|
83
|
-
const companyLinkWhere = await withActiveCustomerPersonCompanyLinkFilter(
|
|
84
|
-
em,
|
|
85
|
-
{ company: company.id, organizationId: company.organizationId, tenantId: company.tenantId },
|
|
86
|
-
'customers.companies.loadCompanyPeopleUnion',
|
|
87
|
-
)
|
|
88
|
-
const companyLinks = filterActivePersonCompanyLinks(
|
|
89
|
-
await findWithDecryption(
|
|
90
|
-
em,
|
|
91
|
-
CustomerPersonCompanyLink,
|
|
92
|
-
companyLinkWhere,
|
|
93
|
-
{ populate: ['person', 'person.personProfile'], orderBy: { isPrimary: 'desc', createdAt: 'asc' } },
|
|
94
|
-
decryptionScope,
|
|
95
|
-
),
|
|
96
|
-
)
|
|
97
|
-
companyLinks.forEach((link) => {
|
|
98
|
-
const entity = typeof link.person === 'string' ? null : link.person
|
|
99
|
-
if (!entity || entity.kind !== 'person' || entity.deletedAt) return
|
|
100
|
-
const personProfile =
|
|
101
|
-
entity.personProfile && typeof entity.personProfile !== 'string' ? entity.personProfile : null
|
|
102
|
-
relatedPeopleById.set(entity.id, {
|
|
103
|
-
entity,
|
|
104
|
-
profile: personProfile,
|
|
105
|
-
linkedAt: link.createdAt instanceof Date ? link.createdAt.toISOString() : null,
|
|
106
|
-
})
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
const profiles = await findWithDecryption(
|
|
110
|
-
em,
|
|
111
|
-
CustomerPersonProfile,
|
|
112
|
-
{
|
|
113
|
-
company: company.id,
|
|
114
|
-
tenantId: company.tenantId,
|
|
115
|
-
organizationId: company.organizationId,
|
|
116
|
-
entity: { deletedAt: null },
|
|
117
|
-
},
|
|
118
|
-
{ populate: ['entity'] },
|
|
119
|
-
decryptionScope,
|
|
120
|
-
)
|
|
121
|
-
profiles.forEach((entry) => {
|
|
122
|
-
const entity = entry.entity as CustomerEntity | null
|
|
123
|
-
if (!entity || entity.kind !== 'person' || entity.deletedAt) return
|
|
124
|
-
if (!relatedPeopleById.has(entity.id)) {
|
|
125
|
-
relatedPeopleById.set(entity.id, {
|
|
126
|
-
entity,
|
|
127
|
-
profile: entry ?? null,
|
|
128
|
-
linkedAt: entry.createdAt instanceof Date ? entry.createdAt.toISOString() : null,
|
|
129
|
-
})
|
|
130
|
-
}
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
return Array.from(relatedPeopleById.values())
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Count-only sibling of `loadCompanyPeopleUnion` for the company People badge, which
|
|
138
|
-
* needs the size of the union and nothing else. Both queries project just the foreign
|
|
139
|
-
* key column and push the `kind: 'person'` / `deletedAt: null` predicates into the
|
|
140
|
-
* WHERE clause, so no person row is hydrated and no PII is decrypted to produce a
|
|
141
|
-
* number — `findWithDecryption` is deliberately not used here because the projections
|
|
142
|
-
* select no encrypted column.
|
|
143
|
-
*/
|
|
144
|
-
export async function countCompanyPeopleUnion(
|
|
145
|
-
em: EntityManager,
|
|
146
|
-
company: CustomerEntity,
|
|
147
|
-
): Promise<number> {
|
|
148
|
-
const personIds = new Set<string>()
|
|
149
|
-
|
|
150
|
-
const companyLinkWhere = await withActiveCustomerPersonCompanyLinkFilter(
|
|
151
|
-
em,
|
|
152
|
-
{
|
|
153
|
-
company: company.id,
|
|
154
|
-
organizationId: company.organizationId,
|
|
155
|
-
tenantId: company.tenantId,
|
|
156
|
-
person: { kind: 'person', deletedAt: null },
|
|
157
|
-
},
|
|
158
|
-
'customers.companies.countCompanyPeopleUnion',
|
|
159
|
-
)
|
|
160
|
-
const companyLinks = filterActivePersonCompanyLinks(
|
|
161
|
-
await em.find(CustomerPersonCompanyLink, companyLinkWhere as any, {
|
|
162
|
-
fields: ['person', 'deletedAt'],
|
|
163
|
-
} as any),
|
|
164
|
-
)
|
|
165
|
-
companyLinks.forEach((link) => {
|
|
166
|
-
const personId = typeof link.person === 'string' ? link.person : link.person?.id
|
|
167
|
-
if (personId) personIds.add(personId)
|
|
168
|
-
})
|
|
169
|
-
|
|
170
|
-
const profiles = await em.find(
|
|
171
|
-
CustomerPersonProfile,
|
|
172
|
-
{
|
|
173
|
-
company: company.id,
|
|
174
|
-
tenantId: company.tenantId,
|
|
175
|
-
organizationId: company.organizationId,
|
|
176
|
-
entity: { kind: 'person', deletedAt: null },
|
|
177
|
-
} as any,
|
|
178
|
-
{ fields: ['entity'] } as any,
|
|
179
|
-
)
|
|
180
|
-
profiles.forEach((entry) => {
|
|
181
|
-
const entity = entry.entity as CustomerEntity | string | null
|
|
182
|
-
const entityId = typeof entity === 'string' ? entity : entity?.id
|
|
183
|
-
if (entityId) personIds.add(entityId)
|
|
184
|
-
})
|
|
185
|
-
|
|
186
|
-
return personIds.size
|
|
187
|
-
}
|
|
188
|
-
|
|
189
59
|
export async function loadPersonCompanyLinks(
|
|
190
60
|
em: EntityManager,
|
|
191
61
|
person: CustomerEntity,
|
|
@@ -428,12 +298,7 @@ export async function removePersonCompanyLink(
|
|
|
428
298
|
|
|
429
299
|
if (!link) {
|
|
430
300
|
if (profile.company && typeof profile.company !== 'string' && profile.company.id === linkId) {
|
|
431
|
-
|
|
432
|
-
// cleared. It must keep mirroring the primary link the way every other detach
|
|
433
|
-
// path leaves it, so promote a remaining primary link instead of nulling blindly.
|
|
434
|
-
const primary = existingLinks.find((entry) => entry.isPrimary) ?? null
|
|
435
|
-
const primaryCompany = primary ? resolveLinkedCompany(primary) : null
|
|
436
|
-
profile.company = primaryCompany ?? null
|
|
301
|
+
profile.company = null
|
|
437
302
|
return
|
|
438
303
|
}
|
|
439
304
|
throw notFound('Company link not found')
|