@open-mercato/core 0.4.2-canary-15c0b23a3a → 0.4.2-canary-da2b080494
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/dist/generated/entities.ids.generated.js +1 -5
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/generated/entity-fields-registry.js +0 -2
- package/dist/generated/entity-fields-registry.js.map +2 -2
- package/dist/modules/api_docs/frontend/docs/api/page.js +2 -3
- package/dist/modules/api_docs/frontend/docs/api/page.js.map +2 -2
- package/dist/modules/api_keys/backend/api-keys/page.js +1 -1
- package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
- package/dist/modules/attachments/components/AttachmentLibrary.js +0 -4
- package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
- package/dist/modules/attachments/components/AttachmentPartitionSettings.js +0 -2
- package/dist/modules/attachments/components/AttachmentPartitionSettings.js.map +2 -2
- package/dist/modules/auth/api/admin/nav.js +3 -4
- package/dist/modules/auth/api/admin/nav.js.map +2 -2
- package/dist/modules/auth/api/reset/confirm.js +2 -25
- package/dist/modules/auth/api/reset/confirm.js.map +2 -2
- package/dist/modules/auth/api/reset.js +0 -23
- package/dist/modules/auth/api/reset.js.map +2 -2
- package/dist/modules/auth/api/sidebar/preferences/route.js +9 -14
- package/dist/modules/auth/api/sidebar/preferences/route.js.map +2 -2
- package/dist/modules/auth/api/users/route.js +2 -4
- package/dist/modules/auth/api/users/route.js.map +2 -2
- package/dist/modules/auth/backend/roles/[id]/edit/page.js +1 -4
- package/dist/modules/auth/backend/roles/[id]/edit/page.js.map +2 -2
- package/dist/modules/auth/backend/roles/page.js +3 -3
- package/dist/modules/auth/backend/roles/page.js.map +2 -2
- package/dist/modules/auth/backend/users/[id]/edit/page.js +3 -18
- package/dist/modules/auth/backend/users/[id]/edit/page.js.map +2 -2
- package/dist/modules/auth/backend/users/create/page.js +2 -15
- package/dist/modules/auth/backend/users/create/page.js.map +2 -2
- package/dist/modules/auth/backend/users/page.js +3 -3
- package/dist/modules/auth/backend/users/page.js.map +2 -2
- package/dist/modules/auth/cli.js +11 -25
- package/dist/modules/auth/cli.js.map +2 -2
- package/dist/modules/auth/commands/users.js +2 -59
- package/dist/modules/auth/commands/users.js.map +2 -2
- package/dist/modules/auth/data/validators.js +2 -4
- package/dist/modules/auth/data/validators.js.map +2 -2
- package/dist/modules/auth/frontend/reset/[token]/page.js +10 -20
- package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
- package/dist/modules/auth/lib/setup-app.js +0 -1
- package/dist/modules/auth/lib/setup-app.js.map +2 -2
- package/dist/modules/auth/services/authService.js +3 -3
- package/dist/modules/auth/services/authService.js.map +2 -2
- package/dist/modules/business_rules/api/execute/route.js +1 -7
- package/dist/modules/business_rules/api/execute/route.js.map +2 -2
- package/dist/modules/business_rules/backend/rules/page.js +0 -4
- package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
- package/dist/modules/business_rules/backend/sets/page.js +0 -3
- package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
- package/dist/modules/business_rules/lib/rule-engine.js +3 -33
- package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
- package/dist/modules/catalog/components/PriceKindSettings.js +0 -2
- package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
- package/dist/modules/catalog/components/categories/CategoriesDataTable.js +2 -2
- package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
- package/dist/modules/catalog/components/products/ProductsDataTable.js +0 -2
- package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
- package/dist/modules/configs/cli.js +0 -6
- package/dist/modules/configs/cli.js.map +2 -2
- package/dist/modules/configs/components/CachePanel.js +4 -4
- package/dist/modules/configs/components/CachePanel.js.map +2 -2
- package/dist/modules/configs/lib/system-status.js +1 -48
- package/dist/modules/configs/lib/system-status.js.map +2 -2
- package/dist/modules/configs/lib/upgrade-actions.js +0 -18
- package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
- package/dist/modules/currencies/backend/currencies/page.js +0 -3
- package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
- package/dist/modules/currencies/backend/exchange-rates/page.js +0 -2
- package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/companies/page.js +0 -3
- package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/page.js +0 -3
- package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/people/page.js +0 -3
- package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
- package/dist/modules/customers/commands/deals.js +0 -31
- package/dist/modules/customers/commands/deals.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/dashboards/cli.js +5 -44
- package/dist/modules/dashboards/cli.js.map +2 -2
- package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +11 -16
- package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +3 -3
- package/dist/modules/dashboards/services/widgetDataService.js +3 -132
- package/dist/modules/dashboards/services/widgetDataService.js.map +2 -2
- package/dist/modules/dictionaries/components/DictionaryTable.js +0 -2
- package/dist/modules/dictionaries/components/DictionaryTable.js.map +2 -2
- package/dist/modules/directory/backend/directory/organizations/page.js +2 -2
- package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
- package/dist/modules/directory/backend/directory/tenants/page.js +2 -2
- package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
- package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +2 -2
- package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
- package/dist/modules/entities/components/SystemEntitiesTable.js +1 -1
- package/dist/modules/entities/components/SystemEntitiesTable.js.map +2 -2
- package/dist/modules/entities/components/UserEntitiesTable.js +2 -2
- package/dist/modules/entities/components/UserEntitiesTable.js.map +2 -2
- package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +3 -3
- package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
- package/dist/modules/feature_toggles/components/OverridesTable.js +1 -1
- package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
- package/dist/modules/planner/backend/planner/availability-rulesets/page.js +2 -2
- package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
- package/dist/modules/query_index/components/QueryIndexesTable.js +1 -7
- package/dist/modules/query_index/components/QueryIndexesTable.js.map +2 -2
- package/dist/modules/resources/backend/resources/resource-types/page.js +2 -2
- package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
- package/dist/modules/resources/backend/resources/resources/page.js +2 -2
- package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/channels/offers/page.js +0 -2
- package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/channels/page.js +0 -2
- package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
- package/dist/modules/sales/commands/documents.js +0 -53
- package/dist/modules/sales/commands/documents.js.map +2 -2
- package/dist/modules/sales/commands/payments.js +0 -26
- package/dist/modules/sales/commands/payments.js.map +2 -2
- package/dist/modules/sales/components/AdjustmentKindSettings.js +2 -2
- package/dist/modules/sales/components/AdjustmentKindSettings.js.map +2 -2
- package/dist/modules/sales/components/PaymentMethodsSettings.js +2 -2
- package/dist/modules/sales/components/PaymentMethodsSettings.js.map +2 -2
- package/dist/modules/sales/components/ShippingMethodsSettings.js +2 -2
- package/dist/modules/sales/components/ShippingMethodsSettings.js.map +2 -2
- package/dist/modules/sales/components/TaxRatesSettings.js +2 -2
- package/dist/modules/sales/components/TaxRatesSettings.js.map +2 -2
- package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +0 -2
- package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
- package/dist/modules/sales/components/documents/AdjustmentsSection.js +0 -2
- package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/PaymentsSection.js +1 -2
- package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/SalesDocumentsTable.js +0 -2
- package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
- package/dist/modules/staff/backend/staff/team-members/page.js +1 -1
- package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/team-roles/page.js +2 -2
- package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +2 -2
- package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/teams/page.js +2 -2
- package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
- package/dist/modules/staff/commands/leave-requests.js +0 -79
- package/dist/modules/staff/commands/leave-requests.js.map +2 -2
- package/dist/modules/workflows/backend/definitions/page.js +0 -5
- package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
- package/dist/modules/workflows/backend/instances/page.js +0 -3
- package/dist/modules/workflows/backend/instances/page.js.map +2 -2
- package/dist/modules/workflows/backend/tasks/page.js +0 -3
- package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
- package/dist/modules/workflows/lib/transition-handler.js +6 -14
- package/dist/modules/workflows/lib/transition-handler.js.map +2 -2
- package/generated/entities.ids.generated.ts +1 -5
- package/generated/entity-fields-registry.ts +0 -2
- package/package.json +2 -2
- package/src/modules/api_docs/frontend/docs/api/page.tsx +2 -3
- package/src/modules/api_keys/backend/api-keys/page.tsx +1 -1
- package/src/modules/attachments/components/AttachmentLibrary.tsx +0 -4
- package/src/modules/attachments/components/AttachmentPartitionSettings.tsx +0 -2
- package/src/modules/auth/README.md +1 -1
- package/src/modules/auth/__tests__/cli-setup-acl.test.ts +1 -1
- package/src/modules/auth/api/admin/nav.ts +6 -10
- package/src/modules/auth/api/reset/confirm.ts +2 -25
- package/src/modules/auth/api/reset.ts +0 -23
- package/src/modules/auth/api/sidebar/preferences/route.ts +12 -21
- package/src/modules/auth/api/users/route.ts +2 -5
- package/src/modules/auth/backend/roles/[id]/edit/page.tsx +1 -4
- package/src/modules/auth/backend/roles/page.tsx +3 -3
- package/src/modules/auth/backend/users/[id]/edit/page.tsx +3 -22
- package/src/modules/auth/backend/users/create/page.tsx +2 -19
- package/src/modules/auth/backend/users/page.tsx +3 -3
- package/src/modules/auth/cli.ts +11 -38
- package/src/modules/auth/commands/users.ts +2 -73
- package/src/modules/auth/data/validators.ts +2 -5
- package/src/modules/auth/frontend/reset/[token]/page.tsx +11 -24
- package/src/modules/auth/i18n/de.json +1 -43
- package/src/modules/auth/i18n/en.json +1 -43
- package/src/modules/auth/i18n/es.json +1 -43
- package/src/modules/auth/i18n/pl.json +1 -43
- package/src/modules/auth/lib/setup-app.ts +0 -1
- package/src/modules/auth/services/authService.ts +4 -4
- package/src/modules/business_rules/api/execute/route.ts +1 -8
- package/src/modules/business_rules/backend/rules/page.tsx +0 -4
- package/src/modules/business_rules/backend/sets/page.tsx +0 -3
- package/src/modules/business_rules/i18n/en.json +1 -3
- package/src/modules/business_rules/lib/__tests__/rule-engine.test.ts +0 -51
- package/src/modules/business_rules/lib/rule-engine.ts +3 -57
- package/src/modules/catalog/components/PriceKindSettings.tsx +0 -2
- package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +2 -2
- package/src/modules/catalog/components/products/ProductsDataTable.tsx +0 -2
- package/src/modules/catalog/i18n/en.json +1 -3
- package/src/modules/configs/cli.ts +0 -6
- package/src/modules/configs/components/CachePanel.tsx +4 -4
- package/src/modules/configs/i18n/en.json +2 -12
- package/src/modules/configs/i18n/pl.json +2 -12
- package/src/modules/configs/lib/system-status.ts +1 -48
- package/src/modules/configs/lib/system-status.types.ts +0 -1
- package/src/modules/configs/lib/upgrade-actions.ts +0 -18
- package/src/modules/currencies/backend/currencies/page.tsx +0 -3
- package/src/modules/currencies/backend/exchange-rates/page.tsx +0 -2
- package/src/modules/customers/backend/customers/companies/page.tsx +0 -3
- package/src/modules/customers/backend/customers/deals/page.tsx +0 -3
- package/src/modules/customers/backend/customers/people/page.tsx +0 -3
- package/src/modules/customers/commands/deals.ts +0 -39
- package/src/modules/customers/components/CustomerTodosTable.tsx +0 -1
- package/src/modules/customers/i18n/en.json +1 -5
- package/src/modules/dashboards/cli.ts +5 -55
- package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +11 -22
- package/src/modules/dashboards/services/widgetDataService.ts +4 -157
- package/src/modules/dictionaries/components/DictionaryTable.tsx +0 -2
- package/src/modules/directory/backend/directory/organizations/page.tsx +2 -2
- package/src/modules/directory/backend/directory/tenants/page.tsx +2 -2
- package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +2 -2
- package/src/modules/entities/components/SystemEntitiesTable.tsx +1 -1
- package/src/modules/entities/components/UserEntitiesTable.tsx +2 -2
- package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +4 -3
- package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -1
- package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +2 -2
- package/src/modules/query_index/components/QueryIndexesTable.tsx +2 -8
- package/src/modules/resources/backend/resources/resource-types/page.tsx +2 -2
- package/src/modules/resources/backend/resources/resources/page.tsx +2 -2
- package/src/modules/sales/backend/sales/channels/offers/page.tsx +0 -2
- package/src/modules/sales/backend/sales/channels/page.tsx +0 -2
- package/src/modules/sales/commands/documents.ts +0 -65
- package/src/modules/sales/commands/payments.ts +0 -33
- package/src/modules/sales/components/AdjustmentKindSettings.tsx +2 -2
- package/src/modules/sales/components/PaymentMethodsSettings.tsx +2 -2
- package/src/modules/sales/components/ShippingMethodsSettings.tsx +2 -2
- package/src/modules/sales/components/TaxRatesSettings.tsx +2 -2
- package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +0 -2
- package/src/modules/sales/components/documents/AdjustmentsSection.tsx +0 -2
- package/src/modules/sales/components/documents/PaymentsSection.tsx +1 -2
- package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +0 -2
- package/src/modules/sales/i18n/de.json +0 -20
- package/src/modules/sales/i18n/en.json +1 -25
- package/src/modules/sales/i18n/es.json +0 -20
- package/src/modules/sales/i18n/pl.json +0 -20
- package/src/modules/staff/backend/staff/team-members/page.tsx +1 -1
- package/src/modules/staff/backend/staff/team-roles/page.tsx +2 -2
- package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +2 -2
- package/src/modules/staff/backend/staff/teams/page.tsx +2 -2
- package/src/modules/staff/commands/leave-requests.ts +0 -94
- package/src/modules/staff/i18n/de.json +0 -4
- package/src/modules/staff/i18n/en.json +1 -9
- package/src/modules/staff/i18n/es.json +0 -4
- package/src/modules/staff/i18n/pl.json +0 -4
- package/src/modules/workflows/backend/definitions/page.tsx +0 -5
- package/src/modules/workflows/backend/instances/page.tsx +1 -4
- package/src/modules/workflows/backend/tasks/page.tsx +1 -4
- package/src/modules/workflows/i18n/en.json +1 -3
- package/src/modules/workflows/lib/transition-handler.ts +6 -18
- package/dist/generated/entities/notification/index.js +0 -57
- package/dist/generated/entities/notification/index.js.map +0 -7
- package/dist/modules/auth/api/profile/route.js +0 -157
- package/dist/modules/auth/api/profile/route.js.map +0 -7
- package/dist/modules/auth/backend/auth/profile/page.js +0 -141
- package/dist/modules/auth/backend/auth/profile/page.js.map +0 -7
- package/dist/modules/auth/backend/auth/profile/page.meta.js +0 -13
- package/dist/modules/auth/backend/auth/profile/page.meta.js.map +0 -7
- package/dist/modules/auth/notifications.js +0 -112
- package/dist/modules/auth/notifications.js.map +0 -7
- package/dist/modules/business_rules/notifications.js +0 -28
- package/dist/modules/business_rules/notifications.js.map +0 -7
- package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js +0 -37
- package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js.map +0 -7
- package/dist/modules/catalog/notifications.js +0 -28
- package/dist/modules/catalog/notifications.js.map +0 -7
- package/dist/modules/catalog/subscribers/low-stock-notification.js +0 -38
- package/dist/modules/catalog/subscribers/low-stock-notification.js.map +0 -7
- package/dist/modules/customers/notifications.js +0 -48
- package/dist/modules/customers/notifications.js.map +0 -7
- package/dist/modules/dashboards/lib/role-widgets.js +0 -58
- package/dist/modules/dashboards/lib/role-widgets.js.map +0 -7
- package/dist/modules/notifications/acl.js +0 -11
- package/dist/modules/notifications/acl.js.map +0 -7
- package/dist/modules/notifications/api/[id]/action/route.js +0 -74
- package/dist/modules/notifications/api/[id]/action/route.js.map +0 -7
- package/dist/modules/notifications/api/[id]/dismiss/route.js +0 -15
- package/dist/modules/notifications/api/[id]/dismiss/route.js.map +0 -7
- package/dist/modules/notifications/api/[id]/read/route.js +0 -15
- package/dist/modules/notifications/api/[id]/read/route.js.map +0 -7
- package/dist/modules/notifications/api/[id]/restore/route.js +0 -53
- package/dist/modules/notifications/api/[id]/restore/route.js.map +0 -7
- package/dist/modules/notifications/api/batch/route.js +0 -17
- package/dist/modules/notifications/api/batch/route.js.map +0 -7
- package/dist/modules/notifications/api/feature/route.js +0 -17
- package/dist/modules/notifications/api/feature/route.js.map +0 -7
- package/dist/modules/notifications/api/mark-all-read/route.js +0 -35
- package/dist/modules/notifications/api/mark-all-read/route.js.map +0 -7
- package/dist/modules/notifications/api/openapi.js +0 -76
- package/dist/modules/notifications/api/openapi.js.map +0 -7
- package/dist/modules/notifications/api/role/route.js +0 -17
- package/dist/modules/notifications/api/role/route.js.map +0 -7
- package/dist/modules/notifications/api/route.js +0 -85
- package/dist/modules/notifications/api/route.js.map +0 -7
- package/dist/modules/notifications/api/settings/route.js +0 -155
- package/dist/modules/notifications/api/settings/route.js.map +0 -7
- package/dist/modules/notifications/api/unread-count/route.js +0 -38
- package/dist/modules/notifications/api/unread-count/route.js.map +0 -7
- package/dist/modules/notifications/backend/config/notifications/page.js +0 -10
- package/dist/modules/notifications/backend/config/notifications/page.js.map +0 -7
- package/dist/modules/notifications/backend/config/notifications/page.meta.js +0 -24
- package/dist/modules/notifications/backend/config/notifications/page.meta.js.map +0 -7
- package/dist/modules/notifications/cli.js +0 -16
- package/dist/modules/notifications/cli.js.map +0 -7
- package/dist/modules/notifications/data/entities.js +0 -112
- package/dist/modules/notifications/data/entities.js.map +0 -7
- package/dist/modules/notifications/data/validators.js +0 -98
- package/dist/modules/notifications/data/validators.js.map +0 -7
- package/dist/modules/notifications/di.js +0 -13
- package/dist/modules/notifications/di.js.map +0 -7
- package/dist/modules/notifications/emails/NotificationEmail.js +0 -58
- package/dist/modules/notifications/emails/NotificationEmail.js.map +0 -7
- package/dist/modules/notifications/frontend/NotificationInboxPageClient.js +0 -44
- package/dist/modules/notifications/frontend/NotificationInboxPageClient.js.map +0 -7
- package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js +0 -220
- package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js.map +0 -7
- package/dist/modules/notifications/index.js +0 -14
- package/dist/modules/notifications/index.js.map +0 -7
- package/dist/modules/notifications/lib/deliveryConfig.js +0 -107
- package/dist/modules/notifications/lib/deliveryConfig.js.map +0 -7
- package/dist/modules/notifications/lib/deliveryStrategies.js +0 -14
- package/dist/modules/notifications/lib/deliveryStrategies.js.map +0 -7
- package/dist/modules/notifications/lib/events.js +0 -12
- package/dist/modules/notifications/lib/events.js.map +0 -7
- package/dist/modules/notifications/lib/notificationBuilder.js +0 -66
- package/dist/modules/notifications/lib/notificationBuilder.js.map +0 -7
- package/dist/modules/notifications/lib/notificationFactory.js +0 -54
- package/dist/modules/notifications/lib/notificationFactory.js.map +0 -7
- package/dist/modules/notifications/lib/notificationMapper.js +0 -34
- package/dist/modules/notifications/lib/notificationMapper.js.map +0 -7
- package/dist/modules/notifications/lib/notificationRecipients.js +0 -35
- package/dist/modules/notifications/lib/notificationRecipients.js.map +0 -7
- package/dist/modules/notifications/lib/notificationService.js +0 -279
- package/dist/modules/notifications/lib/notificationService.js.map +0 -7
- package/dist/modules/notifications/lib/routeHelpers.js +0 -101
- package/dist/modules/notifications/lib/routeHelpers.js.map +0 -7
- package/dist/modules/notifications/lib/safeHref.js +0 -24
- package/dist/modules/notifications/lib/safeHref.js.map +0 -7
- package/dist/modules/notifications/migrations/Migration20260123000001.js +0 -70
- package/dist/modules/notifications/migrations/Migration20260123000001.js.map +0 -7
- package/dist/modules/notifications/migrations/Migration20260126150000.js +0 -37
- package/dist/modules/notifications/migrations/Migration20260126150000.js.map +0 -7
- package/dist/modules/notifications/subscribers/deliver-notification.js +0 -165
- package/dist/modules/notifications/subscribers/deliver-notification.js.map +0 -7
- package/dist/modules/notifications/workers/create-notification.worker.js +0 -70
- package/dist/modules/notifications/workers/create-notification.worker.js.map +0 -7
- package/dist/modules/sales/notifications.client.js +0 -51
- package/dist/modules/sales/notifications.client.js.map +0 -7
- package/dist/modules/sales/notifications.js +0 -88
- package/dist/modules/sales/notifications.js.map +0 -7
- package/dist/modules/sales/subscribers/quote-expiring-notification.js +0 -38
- package/dist/modules/sales/subscribers/quote-expiring-notification.js.map +0 -7
- package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js +0 -137
- package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js.map +0 -7
- package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js +0 -137
- package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js.map +0 -7
- package/dist/modules/sales/widgets/notifications/index.js +0 -7
- package/dist/modules/sales/widgets/notifications/index.js.map +0 -7
- package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js +0 -60
- package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js.map +0 -7
- package/dist/modules/staff/notifications.js +0 -75
- package/dist/modules/staff/notifications.js.map +0 -7
- package/dist/modules/workflows/notifications.js +0 -28
- package/dist/modules/workflows/notifications.js.map +0 -7
- package/dist/modules/workflows/subscribers/task-assigned-notification.js +0 -38
- package/dist/modules/workflows/subscribers/task-assigned-notification.js.map +0 -7
- package/generated/entities/notification/index.ts +0 -27
- package/src/modules/auth/api/profile/route.ts +0 -163
- package/src/modules/auth/backend/auth/profile/page.meta.ts +0 -9
- package/src/modules/auth/backend/auth/profile/page.tsx +0 -174
- package/src/modules/auth/notifications.ts +0 -109
- package/src/modules/business_rules/notifications.ts +0 -25
- package/src/modules/business_rules/subscribers/rule-execution-failed-notification.ts +0 -50
- package/src/modules/catalog/notifications.ts +0 -25
- package/src/modules/catalog/subscribers/low-stock-notification.ts +0 -52
- package/src/modules/customers/notifications.ts +0 -44
- package/src/modules/dashboards/lib/role-widgets.ts +0 -80
- package/src/modules/notifications/__tests__/deliver-notification.test.ts +0 -195
- package/src/modules/notifications/__tests__/deliveryStrategies.test.ts +0 -19
- package/src/modules/notifications/__tests__/notificationService.test.ts +0 -208
- package/src/modules/notifications/acl.ts +0 -7
- package/src/modules/notifications/api/[id]/action/route.ts +0 -75
- package/src/modules/notifications/api/[id]/dismiss/route.ts +0 -12
- package/src/modules/notifications/api/[id]/read/route.ts +0 -12
- package/src/modules/notifications/api/[id]/restore/route.ts +0 -53
- package/src/modules/notifications/api/batch/route.ts +0 -14
- package/src/modules/notifications/api/feature/route.ts +0 -14
- package/src/modules/notifications/api/mark-all-read/route.ts +0 -34
- package/src/modules/notifications/api/openapi.ts +0 -76
- package/src/modules/notifications/api/role/route.ts +0 -14
- package/src/modules/notifications/api/route.ts +0 -92
- package/src/modules/notifications/api/settings/route.ts +0 -157
- package/src/modules/notifications/api/unread-count/route.ts +0 -38
- package/src/modules/notifications/backend/config/notifications/page.meta.ts +0 -22
- package/src/modules/notifications/backend/config/notifications/page.tsx +0 -12
- package/src/modules/notifications/cli.ts +0 -18
- package/src/modules/notifications/data/entities.ts +0 -99
- package/src/modules/notifications/data/validators.ts +0 -115
- package/src/modules/notifications/di.ts +0 -11
- package/src/modules/notifications/emails/NotificationEmail.tsx +0 -98
- package/src/modules/notifications/frontend/NotificationInboxPageClient.tsx +0 -42
- package/src/modules/notifications/frontend/NotificationSettingsPageClient.tsx +0 -233
- package/src/modules/notifications/i18n/de.json +0 -50
- package/src/modules/notifications/i18n/en.json +0 -50
- package/src/modules/notifications/i18n/es.json +0 -50
- package/src/modules/notifications/i18n/pl.json +0 -50
- package/src/modules/notifications/index.ts +0 -12
- package/src/modules/notifications/lib/deliveryConfig.ts +0 -153
- package/src/modules/notifications/lib/deliveryStrategies.ts +0 -50
- package/src/modules/notifications/lib/events.ts +0 -48
- package/src/modules/notifications/lib/notificationBuilder.ts +0 -121
- package/src/modules/notifications/lib/notificationFactory.ts +0 -76
- package/src/modules/notifications/lib/notificationMapper.ts +0 -33
- package/src/modules/notifications/lib/notificationRecipients.ts +0 -83
- package/src/modules/notifications/lib/notificationService.ts +0 -414
- package/src/modules/notifications/lib/routeHelpers.ts +0 -151
- package/src/modules/notifications/lib/safeHref.ts +0 -29
- package/src/modules/notifications/migrations/.snapshot-open-mercato.json +0 -300
- package/src/modules/notifications/migrations/Migration20260123000001.ts +0 -73
- package/src/modules/notifications/migrations/Migration20260126150000.ts +0 -39
- package/src/modules/notifications/subscribers/deliver-notification.ts +0 -204
- package/src/modules/notifications/workers/create-notification.worker.ts +0 -122
- package/src/modules/sales/notifications.client.ts +0 -65
- package/src/modules/sales/notifications.ts +0 -82
- package/src/modules/sales/subscribers/quote-expiring-notification.ts +0 -53
- package/src/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.tsx +0 -156
- package/src/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.tsx +0 -156
- package/src/modules/sales/widgets/notifications/index.ts +0 -2
- package/src/modules/sales/widgets/notifications/useSalesDocumentTotals.ts +0 -81
- package/src/modules/staff/notifications.ts +0 -71
- package/src/modules/workflows/notifications.ts +0 -25
- package/src/modules/workflows/subscribers/task-assigned-notification.ts +0 -53
|
@@ -194,7 +194,7 @@ export function CachePanel() {
|
|
|
194
194
|
<header className="space-y-1">
|
|
195
195
|
<h2 className="text-lg font-semibold">{t('configs.cache.title', 'Cache overview')}</h2>
|
|
196
196
|
<p className="text-sm text-muted-foreground">
|
|
197
|
-
{t('configs.cache.description', 'Inspect cached responses and clear segments when necessary.')}
|
|
197
|
+
{t('configs.cache.description', 'Inspect cached CRUD responses and clear segments when necessary.')}
|
|
198
198
|
</p>
|
|
199
199
|
</header>
|
|
200
200
|
<div className="flex items-center gap-2 text-sm text-muted-foreground">
|
|
@@ -211,7 +211,7 @@ export function CachePanel() {
|
|
|
211
211
|
<header className="space-y-1">
|
|
212
212
|
<h2 className="text-lg font-semibold">{t('configs.cache.title', 'Cache overview')}</h2>
|
|
213
213
|
<p className="text-sm text-muted-foreground">
|
|
214
|
-
{t('configs.cache.description', 'Inspect cached responses and clear segments when necessary.')}
|
|
214
|
+
{t('configs.cache.description', 'Inspect cached CRUD responses and clear segments when necessary.')}
|
|
215
215
|
</p>
|
|
216
216
|
</header>
|
|
217
217
|
<div className="rounded border border-red-200 bg-red-50 p-3 text-sm text-red-700">
|
|
@@ -235,7 +235,7 @@ export function CachePanel() {
|
|
|
235
235
|
<div className="space-y-1">
|
|
236
236
|
<h2 className="text-lg font-semibold">{t('configs.cache.title', 'Cache overview')}</h2>
|
|
237
237
|
<p className="text-sm text-muted-foreground">
|
|
238
|
-
{t('configs.cache.description', 'Inspect cached responses and clear segments when necessary.')}
|
|
238
|
+
{t('configs.cache.description', 'Inspect cached CRUD responses and clear segments when necessary.')}
|
|
239
239
|
</p>
|
|
240
240
|
{stats ? (
|
|
241
241
|
<>
|
|
@@ -342,7 +342,7 @@ export function CachePanel() {
|
|
|
342
342
|
</div>
|
|
343
343
|
) : (
|
|
344
344
|
<p className="text-sm text-muted-foreground">
|
|
345
|
-
{t('configs.cache.empty', 'No cached responses for this tenant.')}
|
|
345
|
+
{t('configs.cache.empty', 'No cached CRUD responses for this tenant.')}
|
|
346
346
|
</p>
|
|
347
347
|
)}
|
|
348
348
|
</div>
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
"configs.systemStatus.actions.purgeCacheUnavailable": "Cache service is unavailable.",
|
|
36
36
|
"configs.config.nav.cache": "Cache",
|
|
37
37
|
"configs.cache.title": "Cache overview",
|
|
38
|
-
"configs.cache.description": "Inspect cached responses and clear segments when necessary.",
|
|
38
|
+
"configs.cache.description": "Inspect cached CRUD responses and clear segments when necessary.",
|
|
39
39
|
"configs.cache.loading": "Loading cache statistics…",
|
|
40
40
|
"configs.cache.loadError": "Failed to load cache statistics.",
|
|
41
41
|
"configs.cache.retry": "Retry",
|
|
42
42
|
"configs.cache.refresh": "Refresh",
|
|
43
43
|
"configs.cache.generatedAt": "Stats generated {{timestamp}}",
|
|
44
44
|
"configs.cache.totalEntries": "{{count}} cached entries",
|
|
45
|
-
"configs.cache.empty": "No cached responses for this tenant.",
|
|
45
|
+
"configs.cache.empty": "No cached CRUD responses for this tenant.",
|
|
46
46
|
"configs.cache.purgeAll": "Purge all cache",
|
|
47
47
|
"configs.cache.purgeAllLoading": "Purging…",
|
|
48
48
|
"configs.cache.purgeAllConfirm": "Purge all cached entries for this tenant?",
|
|
@@ -64,8 +64,6 @@
|
|
|
64
64
|
"configs.systemStatus.categories.profilingDescription": "Flags that control request and query profiling outputs.",
|
|
65
65
|
"configs.systemStatus.categories.logging": "Logging",
|
|
66
66
|
"configs.systemStatus.categories.loggingDescription": "Tune verbosity and SQL logging for diagnostics.",
|
|
67
|
-
"configs.systemStatus.categories.security": "Security",
|
|
68
|
-
"configs.systemStatus.categories.securityDescription": "Password policy requirements enforced at login and user creation.",
|
|
69
67
|
"configs.systemStatus.categories.caching": "Caching",
|
|
70
68
|
"configs.systemStatus.categories.cachingDescription": "Cache providers and TTL controls for backend responses.",
|
|
71
69
|
"configs.systemStatus.categories.queryIndex": "Query index",
|
|
@@ -86,14 +84,6 @@
|
|
|
86
84
|
"configs.systemStatus.variables.logVerbosity.description": "Overrides structured log verbosity such as debug or trace.",
|
|
87
85
|
"configs.systemStatus.variables.logLevel.label": "Log level",
|
|
88
86
|
"configs.systemStatus.variables.logLevel.description": "Fallback log level applied when verbosity is not set.",
|
|
89
|
-
"configs.systemStatus.variables.passwordMinLength.label": "Password min length",
|
|
90
|
-
"configs.systemStatus.variables.passwordMinLength.description": "Minimum number of characters required for passwords.",
|
|
91
|
-
"configs.systemStatus.variables.passwordRequireDigit.label": "Password requires digit",
|
|
92
|
-
"configs.systemStatus.variables.passwordRequireDigit.description": "Require at least one numeric character.",
|
|
93
|
-
"configs.systemStatus.variables.passwordRequireUppercase.label": "Password requires uppercase",
|
|
94
|
-
"configs.systemStatus.variables.passwordRequireUppercase.description": "Require at least one uppercase letter.",
|
|
95
|
-
"configs.systemStatus.variables.passwordRequireSpecial.label": "Password requires special",
|
|
96
|
-
"configs.systemStatus.variables.passwordRequireSpecial.description": "Require at least one special character.",
|
|
97
87
|
"configs.systemStatus.variables.enableCrudApiCache.label": "CRUD API cache",
|
|
98
88
|
"configs.systemStatus.variables.enableCrudApiCache.description": "Enable the CRUD API response cache layer.",
|
|
99
89
|
"configs.systemStatus.variables.cacheStrategy.label": "Cache strategy",
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
"configs.systemStatus.actions.purgeCacheUnavailable": "Usługa pamięci podręcznej jest niedostępna.",
|
|
36
36
|
"configs.config.nav.cache": "Pamięć podręczna",
|
|
37
37
|
"configs.cache.title": "Podgląd pamięci podręcznej",
|
|
38
|
-
"configs.cache.description": "Przeglądaj zapisane odpowiedzi i czyść segmenty w razie potrzeby.",
|
|
38
|
+
"configs.cache.description": "Przeglądaj zapisane odpowiedzi CRUD i czyść segmenty w razie potrzeby.",
|
|
39
39
|
"configs.cache.loading": "Ładowanie statystyk pamięci podręcznej…",
|
|
40
40
|
"configs.cache.loadError": "Nie udało się wczytać statystyk pamięci podręcznej.",
|
|
41
41
|
"configs.cache.retry": "Spróbuj ponownie",
|
|
42
42
|
"configs.cache.refresh": "Odśwież",
|
|
43
43
|
"configs.cache.generatedAt": "Statystyki z {{timestamp}}",
|
|
44
44
|
"configs.cache.totalEntries": "{{count}} wpisów w pamięci podręcznej",
|
|
45
|
-
"configs.cache.empty": "Brak zapisanych odpowiedzi dla tego tenanta.",
|
|
45
|
+
"configs.cache.empty": "Brak zapisanych odpowiedzi CRUD dla tego tenanta.",
|
|
46
46
|
"configs.cache.purgeAll": "Wyczyść całą pamięć",
|
|
47
47
|
"configs.cache.purgeAllLoading": "Czyszczenie…",
|
|
48
48
|
"configs.cache.purgeAllConfirm": "Wyczyścić wszystkie wpisy pamięci podręcznej dla tego tenanta?",
|
|
@@ -64,8 +64,6 @@
|
|
|
64
64
|
"configs.systemStatus.categories.profilingDescription": "Flagi sterujące generowaniem danych z profilowania zapytań i żądań.",
|
|
65
65
|
"configs.systemStatus.categories.logging": "Logowanie",
|
|
66
66
|
"configs.systemStatus.categories.loggingDescription": "Dostosuj poziom logowania i zapisywanie zapytań SQL na potrzeby diagnostyki.",
|
|
67
|
-
"configs.systemStatus.categories.security": "Bezpieczeństwo",
|
|
68
|
-
"configs.systemStatus.categories.securityDescription": "Wymagania polityki haseł stosowane przy logowaniu i tworzeniu użytkowników.",
|
|
69
67
|
"configs.systemStatus.categories.caching": "Buforowanie",
|
|
70
68
|
"configs.systemStatus.categories.cachingDescription": "Mechanizmy cache oraz kontrola czasu życia odpowiedzi backendu.",
|
|
71
69
|
"configs.systemStatus.categories.queryIndex": "Indeks zapytań",
|
|
@@ -86,14 +84,6 @@
|
|
|
86
84
|
"configs.systemStatus.variables.logVerbosity.description": "Nadpisuje poziom szczegółowości logów, np. debug lub trace.",
|
|
87
85
|
"configs.systemStatus.variables.logLevel.label": "Poziom logowania",
|
|
88
86
|
"configs.systemStatus.variables.logLevel.description": "Domyślny poziom logowania używany, gdy nie ustawiono szczegółowości.",
|
|
89
|
-
"configs.systemStatus.variables.passwordMinLength.label": "Minimalna długość hasła",
|
|
90
|
-
"configs.systemStatus.variables.passwordMinLength.description": "Minimalna liczba znaków wymagana w haśle.",
|
|
91
|
-
"configs.systemStatus.variables.passwordRequireDigit.label": "Hasło wymaga cyfry",
|
|
92
|
-
"configs.systemStatus.variables.passwordRequireDigit.description": "Wymagaj co najmniej jednej cyfry.",
|
|
93
|
-
"configs.systemStatus.variables.passwordRequireUppercase.label": "Hasło wymaga wielkiej litery",
|
|
94
|
-
"configs.systemStatus.variables.passwordRequireUppercase.description": "Wymagaj co najmniej jednej wielkiej litery.",
|
|
95
|
-
"configs.systemStatus.variables.passwordRequireSpecial.label": "Hasło wymaga znaku specjalnego",
|
|
96
|
-
"configs.systemStatus.variables.passwordRequireSpecial.description": "Wymagaj co najmniej jednego znaku specjalnego.",
|
|
97
87
|
"configs.systemStatus.variables.enableCrudApiCache.label": "Cache API CRUD",
|
|
98
88
|
"configs.systemStatus.variables.enableCrudApiCache.description": "Włącza warstwę buforowania odpowiedzi API CRUD.",
|
|
99
89
|
"configs.systemStatus.variables.cacheStrategy.label": "Strategia cache",
|
|
@@ -19,14 +19,7 @@ type SystemStatusVariableDefinition = {
|
|
|
19
19
|
defaultValue: string | null
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
const CATEGORY_ORDER: SystemStatusCategoryKey[] = [
|
|
23
|
-
'profiling',
|
|
24
|
-
'logging',
|
|
25
|
-
'security',
|
|
26
|
-
'caching',
|
|
27
|
-
'query_index',
|
|
28
|
-
'entities',
|
|
29
|
-
]
|
|
22
|
+
const CATEGORY_ORDER: SystemStatusCategoryKey[] = ['profiling', 'logging', 'caching', 'query_index', 'entities']
|
|
30
23
|
|
|
31
24
|
const CATEGORY_METADATA: Record<
|
|
32
25
|
SystemStatusCategoryKey,
|
|
@@ -40,10 +33,6 @@ const CATEGORY_METADATA: Record<
|
|
|
40
33
|
labelKey: 'configs.systemStatus.categories.logging',
|
|
41
34
|
descriptionKey: 'configs.systemStatus.categories.loggingDescription',
|
|
42
35
|
},
|
|
43
|
-
security: {
|
|
44
|
-
labelKey: 'configs.systemStatus.categories.security',
|
|
45
|
-
descriptionKey: 'configs.systemStatus.categories.securityDescription',
|
|
46
|
-
},
|
|
47
36
|
caching: {
|
|
48
37
|
labelKey: 'configs.systemStatus.categories.caching',
|
|
49
38
|
descriptionKey: 'configs.systemStatus.categories.cachingDescription',
|
|
@@ -124,42 +113,6 @@ export const SYSTEM_STATUS_VARIABLES: SystemStatusVariableDefinition[] = [
|
|
|
124
113
|
docUrl: `${SYSTEM_STATUS_DOC_BASE}#log_level`,
|
|
125
114
|
defaultValue: '',
|
|
126
115
|
},
|
|
127
|
-
{
|
|
128
|
-
key: 'OM_PASSWORD_MIN_LENGTH',
|
|
129
|
-
category: 'security',
|
|
130
|
-
kind: 'string',
|
|
131
|
-
labelKey: 'configs.systemStatus.variables.passwordMinLength.label',
|
|
132
|
-
descriptionKey: 'configs.systemStatus.variables.passwordMinLength.description',
|
|
133
|
-
docUrl: `${SYSTEM_STATUS_DOC_BASE}#om_password_min_length`,
|
|
134
|
-
defaultValue: '6',
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
key: 'OM_PASSWORD_REQUIRE_DIGIT',
|
|
138
|
-
category: 'security',
|
|
139
|
-
kind: 'boolean',
|
|
140
|
-
labelKey: 'configs.systemStatus.variables.passwordRequireDigit.label',
|
|
141
|
-
descriptionKey: 'configs.systemStatus.variables.passwordRequireDigit.description',
|
|
142
|
-
docUrl: `${SYSTEM_STATUS_DOC_BASE}#om_password_require_digit`,
|
|
143
|
-
defaultValue: 'true',
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
key: 'OM_PASSWORD_REQUIRE_UPPERCASE',
|
|
147
|
-
category: 'security',
|
|
148
|
-
kind: 'boolean',
|
|
149
|
-
labelKey: 'configs.systemStatus.variables.passwordRequireUppercase.label',
|
|
150
|
-
descriptionKey: 'configs.systemStatus.variables.passwordRequireUppercase.description',
|
|
151
|
-
docUrl: `${SYSTEM_STATUS_DOC_BASE}#om_password_require_uppercase`,
|
|
152
|
-
defaultValue: 'true',
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
key: 'OM_PASSWORD_REQUIRE_SPECIAL',
|
|
156
|
-
category: 'security',
|
|
157
|
-
kind: 'boolean',
|
|
158
|
-
labelKey: 'configs.systemStatus.variables.passwordRequireSpecial.label',
|
|
159
|
-
descriptionKey: 'configs.systemStatus.variables.passwordRequireSpecial.description',
|
|
160
|
-
docUrl: `${SYSTEM_STATUS_DOC_BASE}#om_password_require_special`,
|
|
161
|
-
defaultValue: 'true',
|
|
162
|
-
},
|
|
163
116
|
{
|
|
164
117
|
key: 'ENABLE_CRUD_API_CACHE',
|
|
165
118
|
category: 'caching',
|
|
@@ -11,7 +11,6 @@ import { seedExampleWorkflows } from '@open-mercato/core/modules/workflows/lib/s
|
|
|
11
11
|
import { seedPlannerAvailabilityRuleSetDefaults, seedPlannerUnavailabilityReasons } from '@open-mercato/core/modules/planner/lib/seeds'
|
|
12
12
|
import { seedResourcesAddressTypes, seedResourcesCapacityUnits, seedResourcesResourceExamples } from '@open-mercato/core/modules/resources/lib/seeds'
|
|
13
13
|
import { seedStaffTeamExamples } from '@open-mercato/core/modules/staff/lib/seeds'
|
|
14
|
-
import { appendWidgetsToRoles, resolveAnalyticsWidgetIds } from '@open-mercato/core/modules/dashboards/lib/role-widgets'
|
|
15
14
|
import { collectCrudCacheStats, purgeCrudCacheSegment } from '@open-mercato/shared/lib/crud/cache-stats'
|
|
16
15
|
import { isCrudCacheEnabled, resolveCrudCache } from '@open-mercato/shared/lib/crud/cache'
|
|
17
16
|
import * as semver from 'semver'
|
|
@@ -371,23 +370,6 @@ export const upgradeActions: UpgradeActionDefinition[] = [
|
|
|
371
370
|
await reindexModules(em, ['planner', 'staff', 'resources'], { tenantId, organizationId, vectorService })
|
|
372
371
|
},
|
|
373
372
|
},
|
|
374
|
-
{
|
|
375
|
-
id: 'configs.upgrades.dashboards.analytics_widgets',
|
|
376
|
-
version: '0.4.2',
|
|
377
|
-
messageKey: 'upgrades.v042.message',
|
|
378
|
-
ctaKey: 'upgrades.v042.cta',
|
|
379
|
-
successKey: 'upgrades.v042.success',
|
|
380
|
-
loadingKey: 'upgrades.v042.loading',
|
|
381
|
-
async run({ em, tenantId, organizationId }) {
|
|
382
|
-
const widgetIds = await resolveAnalyticsWidgetIds()
|
|
383
|
-
await appendWidgetsToRoles(em, {
|
|
384
|
-
tenantId,
|
|
385
|
-
organizationId,
|
|
386
|
-
roleNames: ['admin', 'employee'],
|
|
387
|
-
widgetIds,
|
|
388
|
-
})
|
|
389
|
-
},
|
|
390
|
-
},
|
|
391
373
|
]
|
|
392
374
|
|
|
393
375
|
export function actionsUpToVersion(version: string): UpgradeActionDefinition[] {
|
|
@@ -256,14 +256,12 @@ export default function CurrenciesPage() {
|
|
|
256
256
|
<RowActions
|
|
257
257
|
items={[
|
|
258
258
|
{
|
|
259
|
-
id: 'edit',
|
|
260
259
|
label: t('common.edit'),
|
|
261
260
|
href: `/backend/currencies/${row.id}`,
|
|
262
261
|
},
|
|
263
262
|
...(!row.isBase
|
|
264
263
|
? [
|
|
265
264
|
{
|
|
266
|
-
id: 'set-base',
|
|
267
265
|
label: t('currencies.list.actions.setBase'),
|
|
268
266
|
onSelect: () => handleSetBase(row),
|
|
269
267
|
},
|
|
@@ -272,7 +270,6 @@ export default function CurrenciesPage() {
|
|
|
272
270
|
...(!row.isBase
|
|
273
271
|
? [
|
|
274
272
|
{
|
|
275
|
-
id: 'delete',
|
|
276
273
|
label: t('common.delete'),
|
|
277
274
|
destructive: true,
|
|
278
275
|
onSelect: () => handleDelete(row),
|
|
@@ -279,12 +279,10 @@ export default function ExchangeRatesPage() {
|
|
|
279
279
|
<RowActions
|
|
280
280
|
items={[
|
|
281
281
|
{
|
|
282
|
-
id: 'edit',
|
|
283
282
|
label: t('common.edit'),
|
|
284
283
|
href: `/backend/exchange-rates/${row.id}`,
|
|
285
284
|
},
|
|
286
285
|
{
|
|
287
|
-
id: 'delete',
|
|
288
286
|
label: t('common.delete'),
|
|
289
287
|
destructive: true,
|
|
290
288
|
onSelect: () => handleDelete(row),
|
|
@@ -597,17 +597,14 @@ export default function CustomersCompaniesPage() {
|
|
|
597
597
|
<RowActions
|
|
598
598
|
items={[
|
|
599
599
|
{
|
|
600
|
-
id: 'view',
|
|
601
600
|
label: t('customers.companies.list.actions.view'),
|
|
602
601
|
onSelect: () => { router.push(`/backend/customers/companies/${row.id}`) },
|
|
603
602
|
},
|
|
604
603
|
{
|
|
605
|
-
id: 'open-new-tab',
|
|
606
604
|
label: t('customers.companies.list.actions.openInNewTab'),
|
|
607
605
|
onSelect: () => window.open(`/backend/customers/companies/${row.id}`, '_blank', 'noopener'),
|
|
608
606
|
},
|
|
609
607
|
{
|
|
610
|
-
id: 'delete',
|
|
611
608
|
label: t('customers.companies.list.actions.delete'),
|
|
612
609
|
destructive: true,
|
|
613
610
|
onSelect: () => handleDelete(row),
|
|
@@ -889,12 +889,10 @@ export default function CustomersDealsPage() {
|
|
|
889
889
|
<RowActions
|
|
890
890
|
items={[
|
|
891
891
|
{
|
|
892
|
-
id: 'edit',
|
|
893
892
|
label: t('customers.deals.list.actions.edit', 'Edit'),
|
|
894
893
|
onSelect: () => { router.push(`/backend/customers/deals/${row.id}`) },
|
|
895
894
|
},
|
|
896
895
|
{
|
|
897
|
-
id: 'open-new-tab',
|
|
898
896
|
label: t('customers.deals.list.actions.openInNewTab', 'Open in new tab'),
|
|
899
897
|
onSelect: () => {
|
|
900
898
|
if (typeof window !== 'undefined') {
|
|
@@ -903,7 +901,6 @@ export default function CustomersDealsPage() {
|
|
|
903
901
|
},
|
|
904
902
|
},
|
|
905
903
|
{
|
|
906
|
-
id: 'delete',
|
|
907
904
|
label: isDeleting
|
|
908
905
|
? t('customers.deals.list.actions.deleting', 'Deleting…')
|
|
909
906
|
: t('customers.deals.list.actions.delete', 'Delete'),
|
|
@@ -614,17 +614,14 @@ export default function CustomersPeoplePage() {
|
|
|
614
614
|
<RowActions
|
|
615
615
|
items={[
|
|
616
616
|
{
|
|
617
|
-
id: 'view',
|
|
618
617
|
label: t('customers.people.list.actions.view'),
|
|
619
618
|
onSelect: () => { router.push(`/backend/customers/people/${row.id}`) },
|
|
620
619
|
},
|
|
621
620
|
{
|
|
622
|
-
id: 'open-new-tab',
|
|
623
621
|
label: t('customers.people.list.actions.openInNewTab'),
|
|
624
622
|
onSelect: () => window.open(`/backend/customers/people/${row.id}`, '_blank', 'noopener'),
|
|
625
623
|
},
|
|
626
624
|
{
|
|
627
|
-
id: 'delete',
|
|
628
625
|
label: t('customers.people.list.actions.delete'),
|
|
629
626
|
destructive: true,
|
|
630
627
|
onSelect: () => handleDelete(row),
|
|
@@ -35,9 +35,6 @@ import { CrudHttpError } from '@open-mercato/shared/lib/crud/errors'
|
|
|
35
35
|
import type { CrudIndexerConfig } from '@open-mercato/shared/lib/crud/types'
|
|
36
36
|
import { E } from '#generated/entities.ids.generated'
|
|
37
37
|
import { findWithDecryption } from '@open-mercato/shared/lib/encryption/find'
|
|
38
|
-
import { resolveNotificationService } from '../../notifications/lib/notificationService'
|
|
39
|
-
import { buildNotificationFromType } from '../../notifications/lib/notificationBuilder'
|
|
40
|
-
import { notificationTypes } from '../notifications'
|
|
41
38
|
|
|
42
39
|
const DEAL_ENTITY_ID = 'customers:customer_deal'
|
|
43
40
|
const dealCrudIndexer: CrudIndexerConfig<CustomerDeal> = {
|
|
@@ -284,8 +281,6 @@ const updateDealCommand: CommandHandler<DealUpdateInput, { dealId: string }> = {
|
|
|
284
281
|
ensureTenantScope(ctx, record.tenantId)
|
|
285
282
|
ensureOrganizationScope(ctx, record.organizationId)
|
|
286
283
|
|
|
287
|
-
const previousStatus = record.status
|
|
288
|
-
|
|
289
284
|
if (parsed.title !== undefined) record.title = parsed.title
|
|
290
285
|
if (parsed.description !== undefined) record.description = parsed.description ?? null
|
|
291
286
|
if (parsed.status !== undefined) record.status = parsed.status ?? record.status
|
|
@@ -324,40 +319,6 @@ const updateDealCommand: CommandHandler<DealUpdateInput, { dealId: string }> = {
|
|
|
324
319
|
indexer: dealCrudIndexer,
|
|
325
320
|
})
|
|
326
321
|
|
|
327
|
-
// Send notifications for deal won/lost status changes
|
|
328
|
-
const newStatus = record.status
|
|
329
|
-
const normalizedStatus = newStatus === 'win' ? 'won' : newStatus === 'loose' ? 'lost' : newStatus
|
|
330
|
-
if (previousStatus !== newStatus && (normalizedStatus === 'won' || normalizedStatus === 'lost') && record.ownerUserId) {
|
|
331
|
-
try {
|
|
332
|
-
const notificationService = resolveNotificationService(ctx.container)
|
|
333
|
-
const notificationType = normalizedStatus === 'won' ? 'customers.deal.won' : 'customers.deal.lost'
|
|
334
|
-
const typeDef = notificationTypes.find((type) => type.type === notificationType)
|
|
335
|
-
if (typeDef) {
|
|
336
|
-
const valueDisplay = record.valueAmount && record.valueCurrency
|
|
337
|
-
? `${record.valueCurrency} ${record.valueAmount}`
|
|
338
|
-
: ''
|
|
339
|
-
|
|
340
|
-
const notificationInput = buildNotificationFromType(typeDef, {
|
|
341
|
-
recipientUserId: record.ownerUserId,
|
|
342
|
-
bodyVariables: {
|
|
343
|
-
dealTitle: record.title,
|
|
344
|
-
dealValue: valueDisplay,
|
|
345
|
-
},
|
|
346
|
-
sourceEntityType: 'customers:customer_deal',
|
|
347
|
-
sourceEntityId: record.id,
|
|
348
|
-
linkHref: `/backend/customers/deals/${record.id}`,
|
|
349
|
-
})
|
|
350
|
-
|
|
351
|
-
await notificationService.create(notificationInput, {
|
|
352
|
-
tenantId: record.tenantId,
|
|
353
|
-
organizationId: record.organizationId,
|
|
354
|
-
})
|
|
355
|
-
}
|
|
356
|
-
} catch {
|
|
357
|
-
// Notification creation is non-critical, don't fail the command
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
|
|
361
322
|
return { dealId: record.id }
|
|
362
323
|
},
|
|
363
324
|
buildLog: async ({ snapshots, ctx }) => {
|
|
@@ -943,9 +943,5 @@
|
|
|
943
943
|
"customers.workPlan.customerTodos.table.state.empty": "No customer tasks yet.",
|
|
944
944
|
"customers.workPlan.customerTodos.table.error.load": "Failed to load customer tasks.",
|
|
945
945
|
"customers.workPlan.customerTodos.table.export.view": "Exports the current list with filters and visible columns.",
|
|
946
|
-
"customers.workPlan.customerTodos.table.export.full": "Exports every linked task field, including hidden attributes."
|
|
947
|
-
"customers.notifications.deal.won.title": "Deal Won",
|
|
948
|
-
"customers.notifications.deal.won.body": "{dealTitle} has been marked as won{dealValue, select, other { ({dealValue})}}",
|
|
949
|
-
"customers.notifications.deal.lost.title": "Deal Lost",
|
|
950
|
-
"customers.notifications.deal.lost.body": "{dealTitle} has been marked as lost"
|
|
946
|
+
"customers.workPlan.customerTodos.table.export.full": "Exports every linked task field, including hidden attributes."
|
|
951
947
|
}
|
|
@@ -4,7 +4,6 @@ import type { EntityManager } from '@mikro-orm/postgresql'
|
|
|
4
4
|
import { DashboardRoleWidgets } from '@open-mercato/core/modules/dashboards/data/entities'
|
|
5
5
|
import { Role } from '@open-mercato/core/modules/auth/data/entities'
|
|
6
6
|
import { loadAllWidgets } from '@open-mercato/core/modules/dashboards/lib/widgets'
|
|
7
|
-
import { appendWidgetsToRoles, resolveAnalyticsWidgetIds } from '@open-mercato/core/modules/dashboards/lib/role-widgets'
|
|
8
7
|
import { seedAnalyticsData } from './seed/analytics'
|
|
9
8
|
|
|
10
9
|
type Args = Record<string, string>
|
|
@@ -42,25 +41,15 @@ export async function seedDashboardDefaultsForTenant(
|
|
|
42
41
|
const widgetMap = new Map(widgets.map((widget) => [widget.metadata.id, widget]))
|
|
43
42
|
const resolvedWidgetIds = widgetIds && widgetIds.length
|
|
44
43
|
? widgetIds.filter((id) => widgetMap.has(id))
|
|
45
|
-
:
|
|
46
|
-
const defaultWidgetIds = widgets
|
|
47
|
-
.filter((widget) => widget.metadata.defaultEnabled)
|
|
48
|
-
.map((widget) => widget.metadata.id)
|
|
49
|
-
const allWidgetIds = widgets.map((widget) => widget.metadata.id)
|
|
44
|
+
: widgets.filter((widget) => widget.metadata.defaultEnabled).map((widget) => widget.metadata.id)
|
|
50
45
|
|
|
51
|
-
if (resolvedWidgetIds
|
|
46
|
+
if (!resolvedWidgetIds.length) {
|
|
52
47
|
log('No widgets resolved for dashboard seeding.')
|
|
53
48
|
return false
|
|
54
49
|
}
|
|
55
50
|
|
|
56
51
|
await em.transactional(async (tem) => {
|
|
57
52
|
for (const roleName of roleNames) {
|
|
58
|
-
const isAdminRole = roleName === 'admin' || roleName === 'superadmin'
|
|
59
|
-
const roleWidgetIds = resolvedWidgetIds ?? (isAdminRole ? allWidgetIds : defaultWidgetIds)
|
|
60
|
-
if (!roleWidgetIds.length) {
|
|
61
|
-
log(`No widgets resolved for role "${roleName}".`)
|
|
62
|
-
continue
|
|
63
|
-
}
|
|
64
53
|
const role = await tem.findOne(Role, { name: roleName })
|
|
65
54
|
if (!role) {
|
|
66
55
|
log(`Skipping role "${roleName}" (not found)`)
|
|
@@ -73,7 +62,7 @@ export async function seedDashboardDefaultsForTenant(
|
|
|
73
62
|
deletedAt: null,
|
|
74
63
|
})
|
|
75
64
|
if (existing) {
|
|
76
|
-
existing.widgetIdsJson =
|
|
65
|
+
existing.widgetIdsJson = resolvedWidgetIds
|
|
77
66
|
tem.persist(existing)
|
|
78
67
|
log(`Updated dashboard widgets for role "${roleName}"`)
|
|
79
68
|
} else {
|
|
@@ -81,7 +70,7 @@ export async function seedDashboardDefaultsForTenant(
|
|
|
81
70
|
roleId: String(role.id),
|
|
82
71
|
tenantId,
|
|
83
72
|
organizationId,
|
|
84
|
-
widgetIdsJson:
|
|
73
|
+
widgetIdsJson: resolvedWidgetIds,
|
|
85
74
|
createdAt: new Date(),
|
|
86
75
|
updatedAt: null,
|
|
87
76
|
deletedAt: null,
|
|
@@ -131,45 +120,6 @@ const seedDefaults: ModuleCli = {
|
|
|
131
120
|
},
|
|
132
121
|
}
|
|
133
122
|
|
|
134
|
-
const enableAnalyticsWidgets: ModuleCli = {
|
|
135
|
-
command: 'enable-analytics-widgets',
|
|
136
|
-
async run(rest) {
|
|
137
|
-
const args = parseArgs(rest)
|
|
138
|
-
const tenantId = args.tenant || args.tenantId || null
|
|
139
|
-
const organizationId = args.organization || args.organizationId || args.org || null
|
|
140
|
-
const roleCsv = args.roles || 'admin,employee'
|
|
141
|
-
if (!tenantId) {
|
|
142
|
-
console.error('Usage: mercato dashboards enable-analytics-widgets --tenant <tenantId> [--org <orgId>] [--roles admin,employee]')
|
|
143
|
-
return
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
const roleNames = roleCsv
|
|
147
|
-
.split(',')
|
|
148
|
-
.map((name) => name.trim())
|
|
149
|
-
.filter(Boolean)
|
|
150
|
-
|
|
151
|
-
if (!roleNames.length) {
|
|
152
|
-
console.log('No roles provided, nothing to update.')
|
|
153
|
-
return
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
const { resolve } = await createRequestContainer()
|
|
157
|
-
const em = resolve('em') as EntityManager
|
|
158
|
-
const widgetIds = await resolveAnalyticsWidgetIds()
|
|
159
|
-
|
|
160
|
-
const updated = await appendWidgetsToRoles(em, {
|
|
161
|
-
tenantId,
|
|
162
|
-
organizationId,
|
|
163
|
-
roleNames,
|
|
164
|
-
widgetIds,
|
|
165
|
-
})
|
|
166
|
-
|
|
167
|
-
if (!updated) {
|
|
168
|
-
console.log('No dashboard role widgets updated.')
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
}
|
|
172
|
-
|
|
173
123
|
const seedAnalytics: ModuleCli = {
|
|
174
124
|
command: 'seed-analytics',
|
|
175
125
|
async run(rest) {
|
|
@@ -332,4 +282,4 @@ const debugAnalytics: ModuleCli = {
|
|
|
332
282
|
},
|
|
333
283
|
}
|
|
334
284
|
|
|
335
|
-
export default [seedDefaults,
|
|
285
|
+
export default [seedDefaults, seedAnalytics, debugAnalytics]
|
|
@@ -44,13 +44,9 @@ type UserProps = BaseProps & {
|
|
|
44
44
|
|
|
45
45
|
type WidgetVisibilityEditorProps = RoleProps | UserProps
|
|
46
46
|
|
|
47
|
-
export type WidgetVisibilityEditorHandle = {
|
|
48
|
-
save: () => Promise<void>
|
|
49
|
-
}
|
|
50
|
-
|
|
51
47
|
const EMPTY: string[] = []
|
|
52
48
|
|
|
53
|
-
export
|
|
49
|
+
export function WidgetVisibilityEditor(props: WidgetVisibilityEditorProps) {
|
|
54
50
|
const t = useT()
|
|
55
51
|
const { kind, targetId, tenantId, organizationId } = props
|
|
56
52
|
const [catalog, setCatalog] = React.useState<WidgetCatalogItem[]>([])
|
|
@@ -64,15 +60,6 @@ export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHan
|
|
|
64
60
|
const [originalMode, setOriginalMode] = React.useState<'inherit' | 'override'>('inherit')
|
|
65
61
|
const [effective, setEffective] = React.useState<string[]>(EMPTY)
|
|
66
62
|
|
|
67
|
-
const dirty = React.useMemo(() => {
|
|
68
|
-
if (kind === 'user') {
|
|
69
|
-
if (mode !== originalMode) return true
|
|
70
|
-
if (mode === 'override') return selected.join('|') !== original.join('|')
|
|
71
|
-
return false
|
|
72
|
-
}
|
|
73
|
-
return selected.join('|') !== original.join('|')
|
|
74
|
-
}, [kind, mode, original, originalMode, selected])
|
|
75
|
-
|
|
76
63
|
const loadCatalog = React.useCallback(async () => {
|
|
77
64
|
const data = await readApiResultOrThrow<{ items?: unknown[] }>(
|
|
78
65
|
'/api/dashboards/widgets/catalog',
|
|
@@ -162,9 +149,6 @@ export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHan
|
|
|
162
149
|
}, [original, originalMode])
|
|
163
150
|
|
|
164
151
|
const save = React.useCallback(async () => {
|
|
165
|
-
if (loading) return
|
|
166
|
-
if (error && catalog.length === 0) return
|
|
167
|
-
if (!dirty) return
|
|
168
152
|
setSaving(true)
|
|
169
153
|
setError(null)
|
|
170
154
|
try {
|
|
@@ -218,9 +202,16 @@ export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHan
|
|
|
218
202
|
} finally {
|
|
219
203
|
setSaving(false)
|
|
220
204
|
}
|
|
221
|
-
}, [
|
|
205
|
+
}, [kind, mode, organizationId, selected, t, targetId, tenantId])
|
|
222
206
|
|
|
223
|
-
React.
|
|
207
|
+
const dirty = React.useMemo(() => {
|
|
208
|
+
if (kind === 'user') {
|
|
209
|
+
if (mode !== originalMode) return true
|
|
210
|
+
if (mode === 'override') return selected.join('|') !== original.join('|')
|
|
211
|
+
return false
|
|
212
|
+
}
|
|
213
|
+
return selected.join('|') !== original.join('|')
|
|
214
|
+
}, [kind, mode, original, originalMode, selected])
|
|
224
215
|
|
|
225
216
|
if (loading) {
|
|
226
217
|
return (
|
|
@@ -306,6 +297,4 @@ export const WidgetVisibilityEditor = React.forwardRef<WidgetVisibilityEditorHan
|
|
|
306
297
|
</div>
|
|
307
298
|
</div>
|
|
308
299
|
)
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
WidgetVisibilityEditor.displayName = 'WidgetVisibilityEditor'
|
|
300
|
+
}
|