@open-mercato/core 0.6.7-develop.6606.1.3b1ec9b1ea → 0.6.7-develop.6621.1.cdbe9dee3d
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/modules/auth/api/session/refresh.js +12 -11
- package/dist/modules/auth/api/session/refresh.js.map +2 -2
- package/dist/modules/auth/lib/rateLimitCheck.js +4 -4
- package/dist/modules/auth/lib/rateLimitCheck.js.map +2 -2
- package/dist/modules/catalog/api/categories/route.js +8 -14
- package/dist/modules/catalog/api/categories/route.js.map +2 -2
- package/dist/modules/catalog/api/tags/route.js +3 -10
- package/dist/modules/catalog/api/tags/route.js.map +2 -2
- package/dist/modules/customers/api/interactions/[id]/visibility/route.js +15 -17
- package/dist/modules/customers/api/interactions/[id]/visibility/route.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/email-threads/route.js +6 -4
- package/dist/modules/customers/api/people/[id]/email-threads/route.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/emails/route.js +19 -17
- package/dist/modules/customers/api/people/[id]/emails/route.js.map +2 -2
- package/dist/modules/customers/components/detail/CustomFieldValuesList.js +22 -5
- package/dist/modules/customers/components/detail/CustomFieldValuesList.js.map +2 -2
- package/dist/modules/customers/components/detail/create/CreateDealForm.js +5 -2
- package/dist/modules/customers/components/detail/create/CreateDealForm.js.map +2 -2
- package/dist/modules/customers/components/detail/customFieldUtils.js +10 -3
- package/dist/modules/customers/components/detail/customFieldUtils.js.map +2 -2
- package/dist/modules/directory/backend/directory/organizations/[id]/edit/page.meta.js +4 -2
- package/dist/modules/directory/backend/directory/organizations/[id]/edit/page.meta.js.map +2 -2
- package/dist/modules/directory/backend/directory/tenants/[id]/edit/page.meta.js +4 -2
- package/dist/modules/directory/backend/directory/tenants/[id]/edit/page.meta.js.map +2 -2
- package/dist/modules/integrations/api/[id]/credentials/route.js +10 -7
- package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
- package/dist/modules/integrations/api/[id]/health/route.js +6 -4
- package/dist/modules/integrations/api/[id]/health/route.js.map +2 -2
- package/dist/modules/integrations/api/[id]/route.js +4 -2
- package/dist/modules/integrations/api/[id]/route.js.map +2 -2
- package/dist/modules/integrations/api/[id]/state/route.js +7 -5
- package/dist/modules/integrations/api/[id]/state/route.js.map +2 -2
- package/dist/modules/integrations/api/[id]/version/route.js +7 -5
- package/dist/modules/integrations/api/[id]/version/route.js.map +2 -2
- package/dist/modules/integrations/api/logs/route.js +4 -2
- package/dist/modules/integrations/api/logs/route.js.map +2 -2
- package/dist/modules/integrations/api/route.js +4 -2
- package/dist/modules/integrations/api/route.js.map +2 -2
- package/dist/modules/integrations/api/umes-read.js +2 -1
- package/dist/modules/integrations/api/umes-read.js.map +2 -2
- package/dist/modules/integrations/lib/organization-scope.js +12 -0
- package/dist/modules/integrations/lib/organization-scope.js.map +7 -0
- package/dist/modules/payment_gateways/lib/gateway-service.js +10 -1
- package/dist/modules/payment_gateways/lib/gateway-service.js.map +2 -2
- package/dist/modules/sales/api/document-history/route.js +6 -9
- package/dist/modules/sales/api/document-history/route.js.map +2 -2
- package/dist/modules/sales/api/quotes/accept/route.js +3 -3
- package/dist/modules/sales/api/quotes/accept/route.js.map +2 -2
- package/dist/modules/sales/api/returns/[id]/route.js +6 -9
- package/dist/modules/sales/api/returns/[id]/route.js.map +2 -2
- package/dist/modules/sales/backend/sales/documents/[id]/page.js +6 -2
- package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
- package/dist/modules/sales/components/documents/AddressesSection.js +6 -4
- package/dist/modules/sales/components/documents/AddressesSection.js.map +2 -2
- package/dist/modules/sales/workflows.js +1 -1
- package/dist/modules/sales/workflows.js.map +1 -1
- package/dist/modules/workflows/api/definitions/[id]/route.js +10 -1
- package/dist/modules/workflows/api/definitions/[id]/route.js.map +2 -2
- package/dist/modules/workflows/lib/event-trigger-service.js +44 -3
- package/dist/modules/workflows/lib/event-trigger-service.js.map +2 -2
- package/package.json +7 -7
- package/src/modules/auth/api/session/refresh.ts +19 -11
- package/src/modules/auth/lib/rateLimitCheck.ts +4 -4
- package/src/modules/catalog/api/categories/route.ts +14 -16
- package/src/modules/catalog/api/tags/route.ts +6 -10
- package/src/modules/catalog/i18n/pl.json +9 -9
- package/src/modules/customer_accounts/i18n/pl.json +129 -129
- package/src/modules/customers/api/interactions/[id]/visibility/route.ts +24 -20
- package/src/modules/customers/api/people/[id]/email-threads/route.ts +10 -6
- package/src/modules/customers/api/people/[id]/emails/route.ts +25 -21
- package/src/modules/customers/components/detail/CustomFieldValuesList.tsx +28 -4
- package/src/modules/customers/components/detail/create/CreateDealForm.tsx +7 -2
- package/src/modules/customers/components/detail/customFieldUtils.ts +15 -3
- package/src/modules/data_sync/i18n/pl.json +68 -68
- package/src/modules/directory/backend/directory/organizations/[id]/edit/page.meta.ts +4 -2
- package/src/modules/directory/backend/directory/tenants/[id]/edit/page.meta.ts +4 -2
- package/src/modules/integrations/api/[id]/credentials/route.ts +10 -7
- package/src/modules/integrations/api/[id]/health/route.ts +6 -4
- package/src/modules/integrations/api/[id]/route.ts +4 -2
- package/src/modules/integrations/api/[id]/state/route.ts +7 -5
- package/src/modules/integrations/api/[id]/version/route.ts +7 -5
- package/src/modules/integrations/api/logs/route.ts +4 -2
- package/src/modules/integrations/api/route.ts +4 -2
- package/src/modules/integrations/api/umes-read.ts +2 -1
- package/src/modules/integrations/i18n/de.json +0 -76
- package/src/modules/integrations/i18n/en.json +0 -76
- package/src/modules/integrations/i18n/es.json +0 -76
- package/src/modules/integrations/i18n/pl.json +0 -76
- package/src/modules/integrations/lib/organization-scope.ts +27 -0
- package/src/modules/payment_gateways/lib/gateway-service.ts +12 -1
- package/src/modules/sales/api/document-history/route.ts +10 -9
- package/src/modules/sales/api/quotes/accept/route.ts +3 -3
- package/src/modules/sales/api/returns/[id]/route.ts +10 -9
- package/src/modules/sales/backend/sales/documents/[id]/page.tsx +26 -19
- package/src/modules/sales/components/documents/AddressesSection.tsx +8 -4
- package/src/modules/sales/i18n/pl.json +24 -24
- package/src/modules/sales/workflows.ts +1 -1
- package/src/modules/staff/i18n/pl.json +178 -178
- package/src/modules/workflows/api/definitions/[id]/route.ts +14 -1
- package/src/modules/workflows/i18n/pl.json +128 -128
- package/src/modules/workflows/lib/event-trigger-service.ts +87 -8
|
@@ -102,150 +102,150 @@
|
|
|
102
102
|
"workflows.activities.waitUntilDescription": "Konkretna data i godzina, do której czekać",
|
|
103
103
|
"workflows.backToList": "Powrót do przepływów",
|
|
104
104
|
"workflows.backend.definitions.visual_editor.title": "Wizualny Edytor Przepływów Pracy",
|
|
105
|
-
"workflows.checkoutDemo.cart.decreaseQty": "
|
|
105
|
+
"workflows.checkoutDemo.cart.decreaseQty": "Zmniejsz ilość",
|
|
106
106
|
"workflows.checkoutDemo.cart.empty.hint": "Dodaj produkty z listy powyżej",
|
|
107
107
|
"workflows.checkoutDemo.cart.empty.title": "Twój koszyk jest pusty",
|
|
108
|
-
"workflows.checkoutDemo.cart.increaseQty": "
|
|
109
|
-
"workflows.checkoutDemo.cart.pricePerUnitSuffix": "
|
|
110
|
-
"workflows.checkoutDemo.cart.removeItemTitle": "
|
|
111
|
-
"workflows.checkoutDemo.cart.selectHint": "
|
|
112
|
-
"workflows.checkoutDemo.cart.shipping": "
|
|
113
|
-
"workflows.checkoutDemo.cart.subtotal": "
|
|
114
|
-
"workflows.checkoutDemo.cart.tax": "
|
|
115
|
-
"workflows.checkoutDemo.cart.total": "
|
|
116
|
-
"workflows.checkoutDemo.cartValidation.available": "✓
|
|
117
|
-
"workflows.checkoutDemo.cartValidation.inventoryCheck": "
|
|
118
|
-
"workflows.checkoutDemo.cartValidation.processingActivities": "
|
|
119
|
-
"workflows.checkoutDemo.cartValidation.processingActivitiesHint": "
|
|
120
|
-
"workflows.checkoutDemo.cartValidation.qtyPrefix": "
|
|
121
|
-
"workflows.checkoutDemo.cartValidation.title": "
|
|
122
|
-
"workflows.checkoutDemo.cartValidation.totalPrefix": "
|
|
123
|
-
"workflows.checkoutDemo.checkout.fixValidationErrors": "
|
|
124
|
-
"workflows.checkoutDemo.checkout.pleaseSelectCustomer": "
|
|
125
|
-
"workflows.checkoutDemo.checkout.selectCustomerFirst": "
|
|
126
|
-
"workflows.checkoutDemo.checkout.start": "
|
|
127
|
-
"workflows.checkoutDemo.checkout.starting": "
|
|
128
|
-
"workflows.checkoutDemo.checkout.validating": "
|
|
129
|
-
"workflows.checkoutDemo.checkout.workflowStarted": "Workflow
|
|
130
|
-
"workflows.checkoutDemo.completed.emailSent": "✉️
|
|
131
|
-
"workflows.checkoutDemo.completed.orderDateLabel": "
|
|
132
|
-
"workflows.checkoutDemo.completed.orderItemsLabel": "
|
|
133
|
-
"workflows.checkoutDemo.completed.orderNumberPrefix": "
|
|
134
|
-
"workflows.checkoutDemo.completed.paymentMethodLabel": "
|
|
135
|
-
"workflows.checkoutDemo.completed.paymentMethodValue": "
|
|
136
|
-
"workflows.checkoutDemo.completed.startNew": "
|
|
137
|
-
"workflows.checkoutDemo.completed.title": "
|
|
138
|
-
"workflows.checkoutDemo.completed.totalPaidLabel": "
|
|
108
|
+
"workflows.checkoutDemo.cart.increaseQty": "Zwiększ ilość",
|
|
109
|
+
"workflows.checkoutDemo.cart.pricePerUnitSuffix": "za szt.",
|
|
110
|
+
"workflows.checkoutDemo.cart.removeItemTitle": "Usuń z koszyka",
|
|
111
|
+
"workflows.checkoutDemo.cart.selectHint": "Wybierz produkty z listy, aby dodać je do koszyka",
|
|
112
|
+
"workflows.checkoutDemo.cart.shipping": "Dostawa",
|
|
113
|
+
"workflows.checkoutDemo.cart.subtotal": "Suma częściowa",
|
|
114
|
+
"workflows.checkoutDemo.cart.tax": "Podatek (8%)",
|
|
115
|
+
"workflows.checkoutDemo.cart.total": "Razem",
|
|
116
|
+
"workflows.checkoutDemo.cartValidation.available": "✓ Dostępny",
|
|
117
|
+
"workflows.checkoutDemo.cartValidation.inventoryCheck": "Sprawdzanie pozycji koszyka i dostępności w magazynie...",
|
|
118
|
+
"workflows.checkoutDemo.cartValidation.processingActivities": "Przetwarzanie działań w tle...",
|
|
119
|
+
"workflows.checkoutDemo.cartValidation.processingActivitiesHint": "Workflow czeka na zakończenie zadań asynchronicznych, zanim przejdzie dalej.",
|
|
120
|
+
"workflows.checkoutDemo.cartValidation.qtyPrefix": "Ilość:",
|
|
121
|
+
"workflows.checkoutDemo.cartValidation.title": "Walidacja koszyka",
|
|
122
|
+
"workflows.checkoutDemo.cartValidation.totalPrefix": "Razem:",
|
|
123
|
+
"workflows.checkoutDemo.checkout.fixValidationErrors": "Popraw błędy walidacji",
|
|
124
|
+
"workflows.checkoutDemo.checkout.pleaseSelectCustomer": "Wybierz klienta, aby kontynuować",
|
|
125
|
+
"workflows.checkoutDemo.checkout.selectCustomerFirst": "Wybierz klienta, aby kontynuować",
|
|
126
|
+
"workflows.checkoutDemo.checkout.start": "Uruchom workflow zakupu",
|
|
127
|
+
"workflows.checkoutDemo.checkout.starting": "Uruchamianie...",
|
|
128
|
+
"workflows.checkoutDemo.checkout.validating": "Walidacja...",
|
|
129
|
+
"workflows.checkoutDemo.checkout.workflowStarted": "Workflow uruchomiony",
|
|
130
|
+
"workflows.checkoutDemo.completed.emailSent": "✉️ E-mail z potwierdzeniem został wysłany na demo@example.com",
|
|
131
|
+
"workflows.checkoutDemo.completed.orderDateLabel": "Data zamówienia:",
|
|
132
|
+
"workflows.checkoutDemo.completed.orderItemsLabel": "Pozycje zamówienia:",
|
|
133
|
+
"workflows.checkoutDemo.completed.orderNumberPrefix": "Zamówienie nr ",
|
|
134
|
+
"workflows.checkoutDemo.completed.paymentMethodLabel": "Metoda płatności:",
|
|
135
|
+
"workflows.checkoutDemo.completed.paymentMethodValue": "Karta kredytowa ****4242",
|
|
136
|
+
"workflows.checkoutDemo.completed.startNew": "Rozpocznij nowe zamówienie",
|
|
137
|
+
"workflows.checkoutDemo.completed.title": "Zamówienie potwierdzone!",
|
|
138
|
+
"workflows.checkoutDemo.completed.totalPaidLabel": "Zapłacono łącznie:",
|
|
139
139
|
"workflows.checkoutDemo.currency.label": "Waluta",
|
|
140
140
|
"workflows.checkoutDemo.customer.loading": "Ładowanie klientów...",
|
|
141
141
|
"workflows.checkoutDemo.customer.noneFound": "Nie znaleziono klientów. Najpierw utwórz klienta.",
|
|
142
142
|
"workflows.checkoutDemo.customer.selectLabel": "Wybierz klienta",
|
|
143
143
|
"workflows.checkoutDemo.customer.selectPlaceholder": "-- Wybierz klienta --",
|
|
144
|
-
"workflows.checkoutDemo.customerInfo.errorLoadingTask": "
|
|
145
|
-
"workflows.checkoutDemo.customerInfo.loading": "
|
|
146
|
-
"workflows.checkoutDemo.customerInfo.noTaskHint": "
|
|
147
|
-
"workflows.checkoutDemo.customerInfo.noTaskTitle": "
|
|
148
|
-
"workflows.checkoutDemo.customerInfo.promptHint": "
|
|
149
|
-
"workflows.checkoutDemo.customerInfo.promptTitle": "
|
|
150
|
-
"workflows.checkoutDemo.customerInfo.refresh": "
|
|
151
|
-
"workflows.checkoutDemo.customerInfo.retry": "
|
|
152
|
-
"workflows.checkoutDemo.customerInfo.submit": "
|
|
153
|
-
"workflows.checkoutDemo.customerInfo.submitting": "
|
|
154
|
-
"workflows.checkoutDemo.customerInfo.title": "
|
|
155
|
-
"workflows.checkoutDemo.customerInfo.unknownError": "
|
|
156
|
-
"workflows.checkoutDemo.events.detailsLink": "
|
|
157
|
-
"workflows.checkoutDemo.events.liveBadge": "
|
|
158
|
-
"workflows.checkoutDemo.events.title": "
|
|
159
|
-
"workflows.checkoutDemo.events.viewAllLink": "
|
|
160
|
-
"workflows.checkoutDemo.events.viewAllPrefix": "
|
|
161
|
-
"workflows.checkoutDemo.events.viewAllSuffix": "
|
|
162
|
-
"workflows.checkoutDemo.events.viewData": "
|
|
163
|
-
"workflows.checkoutDemo.failed.message": "
|
|
164
|
-
"workflows.checkoutDemo.failed.title": "
|
|
165
|
-
"workflows.checkoutDemo.failed.tryAgain": "
|
|
166
|
-
"workflows.checkoutDemo.features.businessRulesIntegration.body": "
|
|
167
|
-
"workflows.checkoutDemo.features.businessRulesIntegration.label": "
|
|
168
|
-
"workflows.checkoutDemo.features.completeOrderFlow.body": "
|
|
169
|
-
"workflows.checkoutDemo.features.completeOrderFlow.label": "
|
|
170
|
-
"workflows.checkoutDemo.features.interactiveUi.body": "
|
|
171
|
-
"workflows.checkoutDemo.features.interactiveUi.label": "
|
|
172
|
-
"workflows.checkoutDemo.features.liveEventTimeline.body": "
|
|
173
|
-
"workflows.checkoutDemo.features.liveEventTimeline.label": "
|
|
174
|
-
"workflows.checkoutDemo.features.realtimeProgress.body": "
|
|
175
|
-
"workflows.checkoutDemo.features.realtimeProgress.label": "
|
|
176
|
-
"workflows.checkoutDemo.features.signalFlow.body": "
|
|
177
|
-
"workflows.checkoutDemo.features.signalFlow.label": "
|
|
178
|
-
"workflows.checkoutDemo.features.startPreconditions.body": "
|
|
179
|
-
"workflows.checkoutDemo.features.startPreconditions.label": "
|
|
180
|
-
"workflows.checkoutDemo.features.title": "
|
|
181
|
-
"workflows.checkoutDemo.features.userTaskIntegration.body": "
|
|
182
|
-
"workflows.checkoutDemo.features.userTaskIntegration.label": "
|
|
183
|
-
"workflows.checkoutDemo.features.viewAllWorkflowsLink": "
|
|
184
|
-
"workflows.checkoutDemo.features.webhookSimulation.body": "
|
|
185
|
-
"workflows.checkoutDemo.features.webhookSimulation.label": "
|
|
186
|
-
"workflows.checkoutDemo.formField.selectOption": "--
|
|
187
|
-
"workflows.checkoutDemo.orderConfirmation.creatingRecord": "
|
|
188
|
-
"workflows.checkoutDemo.orderConfirmation.paymentSuccess": "
|
|
189
|
-
"workflows.checkoutDemo.orderConfirmation.sendingEmail": "
|
|
190
|
-
"workflows.checkoutDemo.orderConfirmation.title": "
|
|
191
|
-
"workflows.checkoutDemo.orderConfirmation.transactionIdPrefix": "
|
|
192
|
-
"workflows.checkoutDemo.orderConfirmation.updatingInventory": "
|
|
144
|
+
"workflows.checkoutDemo.customerInfo.errorLoadingTask": "Błąd ładowania zadania",
|
|
145
|
+
"workflows.checkoutDemo.customerInfo.loading": "Ładowanie zadania...",
|
|
146
|
+
"workflows.checkoutDemo.customerInfo.noTaskHint": "Zadanie użytkownika może się jeszcze tworzyć. Zwykle trwa to poniżej sekundy.",
|
|
147
|
+
"workflows.checkoutDemo.customerInfo.noTaskTitle": "Nie znaleziono zadania",
|
|
148
|
+
"workflows.checkoutDemo.customerInfo.promptHint": "Workflow jest wstrzymany i czeka na dane klienta. Wypełnij formularz, aby kontynuować zakup.",
|
|
149
|
+
"workflows.checkoutDemo.customerInfo.promptTitle": "Podaj dane do wysyłki",
|
|
150
|
+
"workflows.checkoutDemo.customerInfo.refresh": "Odśwież",
|
|
151
|
+
"workflows.checkoutDemo.customerInfo.retry": "Ponów",
|
|
152
|
+
"workflows.checkoutDemo.customerInfo.submit": "Zapisz i kontynuuj zakup",
|
|
153
|
+
"workflows.checkoutDemo.customerInfo.submitting": "Wysyłanie...",
|
|
154
|
+
"workflows.checkoutDemo.customerInfo.title": "Wymagane dane klienta",
|
|
155
|
+
"workflows.checkoutDemo.customerInfo.unknownError": "Nieznany błąd",
|
|
156
|
+
"workflows.checkoutDemo.events.detailsLink": "Szczegóły",
|
|
157
|
+
"workflows.checkoutDemo.events.liveBadge": "Na żywo",
|
|
158
|
+
"workflows.checkoutDemo.events.title": "Zdarzenia workflow",
|
|
159
|
+
"workflows.checkoutDemo.events.viewAllLink": "Zobacz wszystkie zdarzenia →",
|
|
160
|
+
"workflows.checkoutDemo.events.viewAllPrefix": "Zobacz wszystkie",
|
|
161
|
+
"workflows.checkoutDemo.events.viewAllSuffix": "zdarzenia →",
|
|
162
|
+
"workflows.checkoutDemo.events.viewData": "Zobacz dane zdarzenia",
|
|
163
|
+
"workflows.checkoutDemo.failed.message": "Niestety nie udało się przetworzyć zamówienia. Spróbuj ponownie.",
|
|
164
|
+
"workflows.checkoutDemo.failed.title": "Zamówienie nieudane",
|
|
165
|
+
"workflows.checkoutDemo.failed.tryAgain": "Spróbuj ponownie",
|
|
166
|
+
"workflows.checkoutDemo.features.businessRulesIntegration.body": " Reguły strażnicze walidują przejścia, zwracając szczegółowe informacje o niepowodzeniu",
|
|
167
|
+
"workflows.checkoutDemo.features.businessRulesIntegration.label": "Integracja z regułami biznesowymi:",
|
|
168
|
+
"workflows.checkoutDemo.features.completeOrderFlow.body": " Przejdź pełną ścieżkę zakupu od koszyka po potwierdzenie, z asynchroniczną obsługą płatności",
|
|
169
|
+
"workflows.checkoutDemo.features.completeOrderFlow.label": "Pełna ścieżka zamówienia:",
|
|
170
|
+
"workflows.checkoutDemo.features.interactiveUi.body": " Lewy panel dynamicznie pokazuje kolejne ekrany: walidację koszyka, inicjowanie płatności, oczekiwanie na webhook i potwierdzenie zamówienia",
|
|
171
|
+
"workflows.checkoutDemo.features.interactiveUi.label": "Interaktywne zmiany interfejsu:",
|
|
172
|
+
"workflows.checkoutDemo.features.liveEventTimeline.body": " Nowe zdarzenia workflow pojawiają się na bieżąco, w tym SIGNAL_AWAITING i SIGNAL_RECEIVED",
|
|
173
|
+
"workflows.checkoutDemo.features.liveEventTimeline.label": "Oś zdarzeń na żywo:",
|
|
174
|
+
"workflows.checkoutDemo.features.realtimeProgress.body": " Obserwuj, jak workflow automatycznie przechodzi przez kolejne kroki, ze statusem aktualizowanym na bieżąco",
|
|
175
|
+
"workflows.checkoutDemo.features.realtimeProgress.label": "Śledzenie postępu w czasie rzeczywistym:",
|
|
176
|
+
"workflows.checkoutDemo.features.signalFlow.body": " Pokazuje realny wzorzec webhooka z krokiem typu WAIT_FOR_SIGNAL",
|
|
177
|
+
"workflows.checkoutDemo.features.signalFlow.label": "Płatność oparta na sygnale:",
|
|
178
|
+
"workflows.checkoutDemo.features.startPreconditions.body": " Walidacja reguł biznesowych przed uruchomieniem workflow (np. koszyk nie może być pusty) z komunikatami błędów w języku użytkownika",
|
|
179
|
+
"workflows.checkoutDemo.features.startPreconditions.label": "Warunki wstępne kroku START:",
|
|
180
|
+
"workflows.checkoutDemo.features.title": "Funkcje",
|
|
181
|
+
"workflows.checkoutDemo.features.userTaskIntegration.body": " Dane wprowadzane przez użytkownika w formularzu, z wstrzymaniem i wznowieniem workflow po wykonaniu zadania",
|
|
182
|
+
"workflows.checkoutDemo.features.userTaskIntegration.label": "Integracja z zadaniami użytkownika:",
|
|
183
|
+
"workflows.checkoutDemo.features.viewAllWorkflowsLink": "Zobacz wszystkie workflowy →",
|
|
184
|
+
"workflows.checkoutDemo.features.webhookSimulation.body": " Przetestuj wznowienie workflow sygnałem, symulując webhook od dostawcy płatności",
|
|
185
|
+
"workflows.checkoutDemo.features.webhookSimulation.label": "Symulacja webhooka:",
|
|
186
|
+
"workflows.checkoutDemo.formField.selectOption": "-- Wybierz opcję --",
|
|
187
|
+
"workflows.checkoutDemo.orderConfirmation.creatingRecord": "Tworzenie rekordu zamówienia",
|
|
188
|
+
"workflows.checkoutDemo.orderConfirmation.paymentSuccess": "Płatność zrealizowana!",
|
|
189
|
+
"workflows.checkoutDemo.orderConfirmation.sendingEmail": "Wysyłanie e-maila z potwierdzeniem",
|
|
190
|
+
"workflows.checkoutDemo.orderConfirmation.title": "Tworzenie zamówienia",
|
|
191
|
+
"workflows.checkoutDemo.orderConfirmation.transactionIdPrefix": "ID transakcji: ",
|
|
192
|
+
"workflows.checkoutDemo.orderConfirmation.updatingInventory": "Aktualizacja stanów magazynowych",
|
|
193
193
|
"workflows.checkoutDemo.orderSummary.title": "Podsumowanie zamówienia",
|
|
194
|
-
"workflows.checkoutDemo.paymentInitiation.amountLabel": "
|
|
195
|
-
"workflows.checkoutDemo.paymentInitiation.detailsTitle": "
|
|
196
|
-
"workflows.checkoutDemo.paymentInitiation.methodLabel": "
|
|
197
|
-
"workflows.checkoutDemo.paymentInitiation.methodValue": "
|
|
198
|
-
"workflows.checkoutDemo.paymentInitiation.sending": "
|
|
199
|
-
"workflows.checkoutDemo.paymentInitiation.title": "
|
|
194
|
+
"workflows.checkoutDemo.paymentInitiation.amountLabel": "Kwota:",
|
|
195
|
+
"workflows.checkoutDemo.paymentInitiation.detailsTitle": "Szczegóły płatności",
|
|
196
|
+
"workflows.checkoutDemo.paymentInitiation.methodLabel": "Metoda:",
|
|
197
|
+
"workflows.checkoutDemo.paymentInitiation.methodValue": "Karta kredytowa ****4242",
|
|
198
|
+
"workflows.checkoutDemo.paymentInitiation.sending": "Wysyłanie żądania płatności...",
|
|
199
|
+
"workflows.checkoutDemo.paymentInitiation.title": "Inicjowanie płatności",
|
|
200
200
|
"workflows.checkoutDemo.product.addLabel": "Dodaj produkty do koszyka",
|
|
201
201
|
"workflows.checkoutDemo.product.loading": "Ładowanie produktów...",
|
|
202
202
|
"workflows.checkoutDemo.product.noneFound": "Nie znaleziono produktów. Najpierw utwórz produkty w katalogu.",
|
|
203
203
|
"workflows.checkoutDemo.product.selectPlaceholder": "-- Wybierz produkt do dodania --",
|
|
204
|
-
"workflows.checkoutDemo.progress.advance": "
|
|
205
|
-
"workflows.checkoutDemo.progress.advancing": "
|
|
206
|
-
"workflows.checkoutDemo.progress.completeTask": "
|
|
207
|
-
"workflows.checkoutDemo.progress.duePrefix": "
|
|
208
|
-
"workflows.checkoutDemo.progress.errorDismiss": "
|
|
209
|
-
"workflows.checkoutDemo.progress.errorTitle": "
|
|
210
|
-
"workflows.checkoutDemo.progress.manualProgression": "
|
|
211
|
-
"workflows.checkoutDemo.progress.manualProgressionHint": "
|
|
212
|
-
"workflows.checkoutDemo.progress.processing": "
|
|
213
|
-
"workflows.checkoutDemo.progress.prompt": "
|
|
214
|
-
"workflows.checkoutDemo.progress.startNewCheckout": "
|
|
215
|
-
"workflows.checkoutDemo.progress.startingWorkflow": "
|
|
204
|
+
"workflows.checkoutDemo.progress.advance": "Przejdź do następnego kroku →",
|
|
205
|
+
"workflows.checkoutDemo.progress.advancing": "Przechodzenie...",
|
|
206
|
+
"workflows.checkoutDemo.progress.completeTask": "Wykonaj zadanie →",
|
|
207
|
+
"workflows.checkoutDemo.progress.duePrefix": "Termin: ",
|
|
208
|
+
"workflows.checkoutDemo.progress.errorDismiss": "Zamknij",
|
|
209
|
+
"workflows.checkoutDemo.progress.errorTitle": "Błąd",
|
|
210
|
+
"workflows.checkoutDemo.progress.manualProgression": "Ręczne przejście",
|
|
211
|
+
"workflows.checkoutDemo.progress.manualProgressionHint": "Przejdź ręcznie do następnego kroku na potrzeby testów",
|
|
212
|
+
"workflows.checkoutDemo.progress.processing": "Przetwarzanie...",
|
|
213
|
+
"workflows.checkoutDemo.progress.prompt": "Kliknij „Uruchom workflow zakupu”, aby rozpocząć",
|
|
214
|
+
"workflows.checkoutDemo.progress.startNewCheckout": "Rozpocznij nowy zakup",
|
|
215
|
+
"workflows.checkoutDemo.progress.startingWorkflow": "Uruchamianie workflow...",
|
|
216
216
|
"workflows.checkoutDemo.progress.statusLabel": "Status",
|
|
217
|
-
"workflows.checkoutDemo.progress.stepsLabel": "
|
|
218
|
-
"workflows.checkoutDemo.progress.title": "
|
|
219
|
-
"workflows.checkoutDemo.progress.userActionHint": "
|
|
220
|
-
"workflows.checkoutDemo.progress.userActionTitle": "
|
|
221
|
-
"workflows.checkoutDemo.progress.viewInAdmin": "
|
|
222
|
-
"workflows.checkoutDemo.progress.waitingForInput": "
|
|
223
|
-
"workflows.checkoutDemo.progress.workflowCompleted": "Workflow
|
|
224
|
-
"workflows.checkoutDemo.progress.workflowCompletedHint": "
|
|
217
|
+
"workflows.checkoutDemo.progress.stepsLabel": "Kroki",
|
|
218
|
+
"workflows.checkoutDemo.progress.title": "Postęp workflow",
|
|
219
|
+
"workflows.checkoutDemo.progress.userActionHint": "Ten workflow jest wstrzymany i czeka na dane od użytkownika. Wykonaj poniższe zadanie, aby kontynuować.",
|
|
220
|
+
"workflows.checkoutDemo.progress.userActionTitle": "Wymagane działanie użytkownika",
|
|
221
|
+
"workflows.checkoutDemo.progress.viewInAdmin": "Zobacz w panelu",
|
|
222
|
+
"workflows.checkoutDemo.progress.waitingForInput": "Oczekiwanie na dane",
|
|
223
|
+
"workflows.checkoutDemo.progress.workflowCompleted": "Workflow zakończony!",
|
|
224
|
+
"workflows.checkoutDemo.progress.workflowCompletedHint": "Wszystkie kroki wykonane pomyślnie",
|
|
225
225
|
"workflows.checkoutDemo.subtitle": "Interaktywna demonstracja workflow z sygnałowym potwierdzeniem płatności (WAIT_FOR_SIGNAL)",
|
|
226
226
|
"workflows.checkoutDemo.title": "Demo zamówienia z webhookami płatności",
|
|
227
|
-
"workflows.checkoutDemo.validation.errorTitle": "
|
|
228
|
-
"workflows.checkoutDemo.waitPayment.demoTestingHint": "
|
|
229
|
-
"workflows.checkoutDemo.waitPayment.demoTestingTitle": "
|
|
230
|
-
"workflows.checkoutDemo.waitPayment.description": "
|
|
231
|
-
"workflows.checkoutDemo.waitPayment.dismiss": "
|
|
232
|
-
"workflows.checkoutDemo.waitPayment.heading": "
|
|
233
|
-
"workflows.checkoutDemo.waitPayment.noteLabel": "
|
|
234
|
-
"workflows.checkoutDemo.waitPayment.noteStatusPrefix": "
|
|
235
|
-
"workflows.checkoutDemo.waitPayment.noteStatusSuffix": ".
|
|
236
|
-
"workflows.checkoutDemo.waitPayment.realWorldLabel": "
|
|
237
|
-
"workflows.checkoutDemo.waitPayment.realWorldPart1": "
|
|
238
|
-
"workflows.checkoutDemo.waitPayment.realWorldPart2": "),
|
|
239
|
-
"workflows.checkoutDemo.waitPayment.realWorldPart3": "
|
|
240
|
-
"workflows.checkoutDemo.waitPayment.sendingSignal": "
|
|
241
|
-
"workflows.checkoutDemo.waitPayment.sendsPrefix": "
|
|
242
|
-
"workflows.checkoutDemo.waitPayment.sendsSuffix": "
|
|
243
|
-
"workflows.checkoutDemo.waitPayment.signalErrorTitle": "
|
|
244
|
-
"workflows.checkoutDemo.waitPayment.signalNameLabel": "
|
|
245
|
-
"workflows.checkoutDemo.waitPayment.simulateWebhook": "🔔
|
|
227
|
+
"workflows.checkoutDemo.validation.errorTitle": "Nie można rozpocząć zakupu",
|
|
228
|
+
"workflows.checkoutDemo.waitPayment.demoTestingHint": "Kliknij przycisk poniżej, aby zasymulować webhook od dostawcy płatności potwierdzający transakcję.",
|
|
229
|
+
"workflows.checkoutDemo.waitPayment.demoTestingTitle": "Na potrzeby testów demo:",
|
|
230
|
+
"workflows.checkoutDemo.waitPayment.description": "Workflow jest wstrzymany i czeka, aż dostawca płatności potwierdzi transakcję webhookiem. W środowisku produkcyjnym wysłałby go automatycznie Stripe, PayPal itp.",
|
|
231
|
+
"workflows.checkoutDemo.waitPayment.dismiss": "Zamknij",
|
|
232
|
+
"workflows.checkoutDemo.waitPayment.heading": "Oczekiwanie na webhook dostawcy płatności",
|
|
233
|
+
"workflows.checkoutDemo.waitPayment.noteLabel": "Uwaga:",
|
|
234
|
+
"workflows.checkoutDemo.waitPayment.noteStatusPrefix": "Status workflow to ",
|
|
235
|
+
"workflows.checkoutDemo.waitPayment.noteStatusSuffix": ". Przycisk sygnału pojawi się, gdy workflow zostanie w pełni wstrzymany na tym kroku.",
|
|
236
|
+
"workflows.checkoutDemo.waitPayment.realWorldLabel": "Scenariusz produkcyjny:",
|
|
237
|
+
"workflows.checkoutDemo.waitPayment.realWorldPart1": "Twój dostawca płatności (Stripe, PayPal) wysłałby webhook na endpoint Twojego serwera (np. ",
|
|
238
|
+
"workflows.checkoutDemo.waitPayment.realWorldPart2": "), który następnie wywołałby ",
|
|
239
|
+
"workflows.checkoutDemo.waitPayment.realWorldPart3": ", aby wznowić workflow.",
|
|
240
|
+
"workflows.checkoutDemo.waitPayment.sendingSignal": "Wysyłanie sygnału...",
|
|
241
|
+
"workflows.checkoutDemo.waitPayment.sendsPrefix": "Spowoduje to wysłanie zdarzenia ",
|
|
242
|
+
"workflows.checkoutDemo.waitPayment.sendsSuffix": ".",
|
|
243
|
+
"workflows.checkoutDemo.waitPayment.signalErrorTitle": "Błąd sygnału",
|
|
244
|
+
"workflows.checkoutDemo.waitPayment.signalNameLabel": "Nazwa sygnału:",
|
|
245
|
+
"workflows.checkoutDemo.waitPayment.simulateWebhook": "🔔 Symuluj webhook płatności",
|
|
246
246
|
"workflows.checkoutDemo.waitPayment.statusLabel": "Status:",
|
|
247
|
-
"workflows.checkoutDemo.waitPayment.timeout": "
|
|
248
|
-
"workflows.checkoutDemo.waitPayment.title": "
|
|
247
|
+
"workflows.checkoutDemo.waitPayment.timeout": "Limit czasu: 5 minut",
|
|
248
|
+
"workflows.checkoutDemo.waitPayment.title": "Oczekiwanie na potwierdzenie płatności",
|
|
249
249
|
"workflows.common.back": "Wstecz",
|
|
250
250
|
"workflows.common.browse": "Przeglądaj",
|
|
251
251
|
"workflows.common.cancel": "Anuluj",
|
|
@@ -22,6 +22,8 @@ import {
|
|
|
22
22
|
type WorkflowDefinitionTrigger,
|
|
23
23
|
} from '../data/entities'
|
|
24
24
|
import { startWorkflow, executeWorkflow } from './workflow-executor'
|
|
25
|
+
import { getAllCodeWorkflows } from './code-registry'
|
|
26
|
+
import { codeWorkflowUuid } from './find-definition'
|
|
25
27
|
import { createLogger } from '@open-mercato/shared/lib/logger'
|
|
26
28
|
|
|
27
29
|
const logger = createLogger('workflows').child({ component: 'event-trigger' })
|
|
@@ -59,7 +61,7 @@ export interface UnifiedTrigger {
|
|
|
59
61
|
workflowDefinitionId: string
|
|
60
62
|
workflowId: string
|
|
61
63
|
workflowVersion: number
|
|
62
|
-
source: 'legacy' | 'embedded'
|
|
64
|
+
source: 'legacy' | 'embedded' | 'code'
|
|
63
65
|
tenantId: string
|
|
64
66
|
organizationId: string
|
|
65
67
|
}
|
|
@@ -413,21 +415,26 @@ async function loadLegacyTriggers(
|
|
|
413
415
|
/**
|
|
414
416
|
* Load embedded triggers from workflow definitions.
|
|
415
417
|
* New triggers are embedded directly in the definition JSONB.
|
|
418
|
+
*
|
|
419
|
+
* Also returns the set of every non-deleted DB definition's `workflowId` — even
|
|
420
|
+
* those with no triggers — so the caller can let a materialized (customized)
|
|
421
|
+
* definition suppress its code-registry counterpart regardless of whether the
|
|
422
|
+
* customization kept any triggers (#4425).
|
|
416
423
|
*/
|
|
417
424
|
async function loadEmbeddedTriggers(
|
|
418
425
|
em: EntityManager,
|
|
419
426
|
tenantId: string,
|
|
420
427
|
organizationId: string
|
|
421
|
-
): Promise<UnifiedTrigger[]> {
|
|
428
|
+
): Promise<{ triggers: UnifiedTrigger[]; workflowIds: Set<string> }> {
|
|
422
429
|
const postgresEm = em as unknown as PostgreSqlEntityManager
|
|
423
|
-
// Load all
|
|
430
|
+
// Load all definitions so disabled customizations still shadow their code
|
|
431
|
+
// counterpart. Only enabled definitions contribute embedded triggers below.
|
|
424
432
|
const definitions = await findWithDecryption(
|
|
425
433
|
postgresEm,
|
|
426
434
|
WorkflowDefinition,
|
|
427
435
|
{
|
|
428
436
|
tenantId,
|
|
429
437
|
organizationId,
|
|
430
|
-
enabled: true,
|
|
431
438
|
deletedAt: null,
|
|
432
439
|
},
|
|
433
440
|
{},
|
|
@@ -435,8 +442,12 @@ async function loadEmbeddedTriggers(
|
|
|
435
442
|
)
|
|
436
443
|
|
|
437
444
|
const triggers: UnifiedTrigger[] = []
|
|
445
|
+
const workflowIds = new Set<string>()
|
|
438
446
|
|
|
439
447
|
for (const def of definitions) {
|
|
448
|
+
workflowIds.add(def.workflowId)
|
|
449
|
+
if (!def.enabled) continue
|
|
450
|
+
|
|
440
451
|
const embeddedTriggers = def.definition?.triggers as WorkflowDefinitionTrigger[] | undefined
|
|
441
452
|
if (!embeddedTriggers || embeddedTriggers.length === 0) continue
|
|
442
453
|
|
|
@@ -462,12 +473,70 @@ async function loadEmbeddedTriggers(
|
|
|
462
473
|
}
|
|
463
474
|
}
|
|
464
475
|
|
|
476
|
+
return { triggers, workflowIds }
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
/**
|
|
480
|
+
* Project triggers declared on code-defined workflows into UnifiedTriggers.
|
|
481
|
+
*
|
|
482
|
+
* Code workflows live only in the in-memory registry, so their `triggers`
|
|
483
|
+
* arrays never reached the DB-backed loaders — a code-declared trigger was inert
|
|
484
|
+
* until an operator ran `POST …/code:<id>/customize` to materialize the
|
|
485
|
+
* definition into a `workflow_definitions` row (#4425). This projects them
|
|
486
|
+
* directly. It is synchronous (no DB) and scoped to the caller's tenant/org via
|
|
487
|
+
* the deterministic virtual definition id, matching what `startWorkflow`
|
|
488
|
+
* persists as the instance's `definitionId` so the concurrency limit counts
|
|
489
|
+
* correctly.
|
|
490
|
+
*
|
|
491
|
+
* `dbBackedWorkflowIds` are workflowIds already contributed by the legacy or
|
|
492
|
+
* embedded (DB) sources; a code workflow whose id appears there is skipped so a
|
|
493
|
+
* customized DB override wins and its trigger is not double-registered.
|
|
494
|
+
*/
|
|
495
|
+
export function loadCodeTriggers(
|
|
496
|
+
tenantId: string,
|
|
497
|
+
organizationId: string,
|
|
498
|
+
dbBackedWorkflowIds: Set<string>,
|
|
499
|
+
): UnifiedTrigger[] {
|
|
500
|
+
const triggers: UnifiedTrigger[] = []
|
|
501
|
+
|
|
502
|
+
for (const codeDef of getAllCodeWorkflows()) {
|
|
503
|
+
if (!codeDef.enabled) continue
|
|
504
|
+
if (dbBackedWorkflowIds.has(codeDef.workflowId)) continue
|
|
505
|
+
|
|
506
|
+
const embeddedTriggers = codeDef.definition?.triggers
|
|
507
|
+
if (!embeddedTriggers || embeddedTriggers.length === 0) continue
|
|
508
|
+
|
|
509
|
+
const definitionId = codeWorkflowUuid(codeDef.workflowId)
|
|
510
|
+
for (const trigger of embeddedTriggers) {
|
|
511
|
+
if (!trigger.enabled) continue
|
|
512
|
+
|
|
513
|
+
triggers.push({
|
|
514
|
+
id: `code:${codeDef.workflowId}:${trigger.triggerId}`,
|
|
515
|
+
triggerId: trigger.triggerId,
|
|
516
|
+
name: trigger.name,
|
|
517
|
+
description: trigger.description ?? null,
|
|
518
|
+
eventPattern: trigger.eventPattern,
|
|
519
|
+
config: (trigger.config ?? null) as WorkflowEventTriggerConfig | null,
|
|
520
|
+
enabled: trigger.enabled,
|
|
521
|
+
priority: trigger.priority,
|
|
522
|
+
workflowDefinitionId: definitionId,
|
|
523
|
+
workflowId: codeDef.workflowId,
|
|
524
|
+
workflowVersion: codeDef.version,
|
|
525
|
+
source: 'code' as const,
|
|
526
|
+
tenantId,
|
|
527
|
+
organizationId,
|
|
528
|
+
})
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
|
|
465
532
|
return triggers
|
|
466
533
|
}
|
|
467
534
|
|
|
468
535
|
/**
|
|
469
536
|
* Load all enabled triggers for a tenant/organization with caching.
|
|
470
|
-
* Merges
|
|
537
|
+
* Merges legacy (entity), embedded (definition), and code-registry triggers;
|
|
538
|
+
* a DB-backed source for a given workflowId takes precedence over its code
|
|
539
|
+
* trigger so `customize` semantics are preserved.
|
|
471
540
|
*/
|
|
472
541
|
export async function loadTriggersForTenant(
|
|
473
542
|
em: EntityManager,
|
|
@@ -484,14 +553,24 @@ export async function loadTriggersForTenant(
|
|
|
484
553
|
return cached.triggers
|
|
485
554
|
}
|
|
486
555
|
|
|
487
|
-
// Load from both sources
|
|
488
|
-
const [legacyTriggers,
|
|
556
|
+
// Load from both DB sources
|
|
557
|
+
const [legacyTriggers, embedded] = await Promise.all([
|
|
489
558
|
loadLegacyTriggers(em, tenantId, organizationId),
|
|
490
559
|
loadEmbeddedTriggers(em, tenantId, organizationId),
|
|
491
560
|
])
|
|
561
|
+
const embeddedTriggers = embedded.triggers
|
|
562
|
+
|
|
563
|
+
// Project code-registry triggers, letting any DB-backed definition for the
|
|
564
|
+
// same workflowId win (preserves `customize` override semantics — including
|
|
565
|
+
// a customization that removed its triggers).
|
|
566
|
+
const dbBackedWorkflowIds = new Set<string>([
|
|
567
|
+
...embedded.workflowIds,
|
|
568
|
+
...legacyTriggers.map((t) => t.workflowId),
|
|
569
|
+
])
|
|
570
|
+
const codeTriggers = loadCodeTriggers(tenantId, organizationId, dbBackedWorkflowIds)
|
|
492
571
|
|
|
493
572
|
// Merge and sort by priority (higher first)
|
|
494
|
-
const allTriggers = [...legacyTriggers, ...embeddedTriggers]
|
|
573
|
+
const allTriggers = [...legacyTriggers, ...embeddedTriggers, ...codeTriggers]
|
|
495
574
|
.sort((a, b) => b.priority - a.priority)
|
|
496
575
|
|
|
497
576
|
// Update cache
|