@open-mercato/core 0.6.2-develop.3330.1.8ad2b3b84c → 0.6.2-develop.3366.1.4692954e44
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 +2 -2
- package/dist/generated/entities/sync_excel_upload/index.js +37 -0
- package/dist/generated/entities/sync_excel_upload/index.js.map +7 -0
- package/dist/generated/entities.ids.generated.js +4 -0
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/generated/entity-fields-registry.js +19 -0
- package/dist/generated/entity-fields-registry.js.map +2 -2
- package/dist/modules/customers/search.js +3 -2
- package/dist/modules/customers/search.js.map +2 -2
- package/dist/modules/data_sync/api/runs/[id]/cancel.js +16 -0
- package/dist/modules/data_sync/api/runs/[id]/cancel.js.map +2 -2
- package/dist/modules/data_sync/di.js +2 -1
- package/dist/modules/data_sync/di.js.map +2 -2
- package/dist/modules/data_sync/lib/sync-engine.js +178 -54
- package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
- package/dist/modules/data_sync/lib/sync-run-service.js +23 -0
- package/dist/modules/data_sync/lib/sync-run-service.js.map +3 -3
- package/dist/modules/integrations/backend/integrations/[id]/page.js +241 -55
- package/dist/modules/integrations/backend/integrations/[id]/page.js.map +3 -3
- package/dist/modules/sync_excel/acl.js +10 -0
- package/dist/modules/sync_excel/acl.js.map +7 -0
- package/dist/modules/sync_excel/api/import/route.js +164 -0
- package/dist/modules/sync_excel/api/import/route.js.map +7 -0
- package/dist/modules/sync_excel/api/preview/route.js +84 -0
- package/dist/modules/sync_excel/api/preview/route.js.map +7 -0
- package/dist/modules/sync_excel/api/upload/route.js +131 -0
- package/dist/modules/sync_excel/api/upload/route.js.map +7 -0
- package/dist/modules/sync_excel/data/entities.js +79 -0
- package/dist/modules/sync_excel/data/entities.js.map +7 -0
- package/dist/modules/sync_excel/data/validators.js +58 -0
- package/dist/modules/sync_excel/data/validators.js.map +7 -0
- package/dist/modules/sync_excel/di.js +11 -0
- package/dist/modules/sync_excel/di.js.map +7 -0
- package/dist/modules/sync_excel/index.js +11 -0
- package/dist/modules/sync_excel/index.js.map +7 -0
- package/dist/modules/sync_excel/integration.js +36 -0
- package/dist/modules/sync_excel/integration.js.map +7 -0
- package/dist/modules/sync_excel/lib/adapters/customers.js +852 -0
- package/dist/modules/sync_excel/lib/adapters/customers.js.map +7 -0
- package/dist/modules/sync_excel/lib/column-detector.js +77 -0
- package/dist/modules/sync_excel/lib/column-detector.js.map +7 -0
- package/dist/modules/sync_excel/lib/mapping.js +16 -0
- package/dist/modules/sync_excel/lib/mapping.js.map +7 -0
- package/dist/modules/sync_excel/lib/parser.js +125 -0
- package/dist/modules/sync_excel/lib/parser.js.map +7 -0
- package/dist/modules/sync_excel/lib/scope.js +44 -0
- package/dist/modules/sync_excel/lib/scope.js.map +7 -0
- package/dist/modules/sync_excel/lib/upload-storage.js +63 -0
- package/dist/modules/sync_excel/lib/upload-storage.js.map +7 -0
- package/dist/modules/sync_excel/migrations/Migration20260329181120_sync_excel.js +11 -0
- package/dist/modules/sync_excel/migrations/Migration20260329181120_sync_excel.js.map +7 -0
- package/dist/modules/sync_excel/setup.js +19 -0
- package/dist/modules/sync_excel/setup.js.map +7 -0
- package/dist/modules/sync_excel/widgets/injection/upload-config/target-options.js +293 -0
- package/dist/modules/sync_excel/widgets/injection/upload-config/target-options.js.map +7 -0
- package/dist/modules/sync_excel/widgets/injection/upload-config/widget.client.js +934 -0
- package/dist/modules/sync_excel/widgets/injection/upload-config/widget.client.js.map +7 -0
- package/dist/modules/sync_excel/widgets/injection/upload-config/widget.js +15 -0
- package/dist/modules/sync_excel/widgets/injection/upload-config/widget.js.map +7 -0
- package/dist/modules/sync_excel/widgets/injection-table.js +17 -0
- package/dist/modules/sync_excel/widgets/injection-table.js.map +7 -0
- package/generated/entities/sync_excel_upload/index.ts +17 -0
- package/generated/entities.ids.generated.ts +4 -0
- package/generated/entity-fields-registry.ts +19 -0
- package/package.json +7 -7
- package/src/modules/customers/search.ts +3 -2
- package/src/modules/data_sync/api/runs/[id]/cancel.ts +18 -0
- package/src/modules/data_sync/di.ts +4 -1
- package/src/modules/data_sync/lib/adapter.ts +15 -0
- package/src/modules/data_sync/lib/sync-engine.ts +205 -52
- package/src/modules/data_sync/lib/sync-run-service.ts +24 -0
- package/src/modules/integrations/backend/integrations/[id]/page.tsx +220 -15
- package/src/modules/integrations/i18n/de.json +9 -0
- package/src/modules/integrations/i18n/en.json +9 -0
- package/src/modules/integrations/i18n/es.json +9 -0
- package/src/modules/integrations/i18n/pl.json +9 -0
- package/src/modules/sync_excel/acl.ts +6 -0
- package/src/modules/sync_excel/api/import/route.ts +182 -0
- package/src/modules/sync_excel/api/preview/route.ts +89 -0
- package/src/modules/sync_excel/api/upload/route.ts +144 -0
- package/src/modules/sync_excel/data/entities.ts +61 -0
- package/src/modules/sync_excel/data/validators.ts +58 -0
- package/src/modules/sync_excel/di.ts +9 -0
- package/src/modules/sync_excel/i18n/de.json +107 -0
- package/src/modules/sync_excel/i18n/en.json +107 -0
- package/src/modules/sync_excel/i18n/es.json +107 -0
- package/src/modules/sync_excel/i18n/pl.json +107 -0
- package/src/modules/sync_excel/index.ts +7 -0
- package/src/modules/sync_excel/integration.ts +31 -0
- package/src/modules/sync_excel/lib/adapters/customers.ts +1097 -0
- package/src/modules/sync_excel/lib/column-detector.ts +91 -0
- package/src/modules/sync_excel/lib/mapping.ts +19 -0
- package/src/modules/sync_excel/lib/parser.ts +165 -0
- package/src/modules/sync_excel/lib/scope.ts +63 -0
- package/src/modules/sync_excel/lib/upload-storage.ts +79 -0
- package/src/modules/sync_excel/migrations/.snapshot-open-mercato.json +199 -0
- package/src/modules/sync_excel/migrations/Migration20260329181120_sync_excel.ts +10 -0
- package/src/modules/sync_excel/setup.ts +20 -0
- package/src/modules/sync_excel/widgets/injection/upload-config/target-options.ts +351 -0
- package/src/modules/sync_excel/widgets/injection/upload-config/widget.client.tsx +1224 -0
- package/src/modules/sync_excel/widgets/injection/upload-config/widget.ts +30 -0
- package/src/modules/sync_excel/widgets/injection-table.ts +15 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sync_excel.integration.description": "Przesyłaj pliki CSV, podglądaj mapowanie i uruchamiaj importy plikowe przez Data Sync.",
|
|
3
|
+
"sync_excel.integration.title": "Import Excel / CSV",
|
|
4
|
+
"sync_excel.mapping.targets.addressCompanyName": "Firma adresowa",
|
|
5
|
+
"sync_excel.mapping.targets.addressLine1": "Linia adresu 1",
|
|
6
|
+
"sync_excel.mapping.targets.addressLine2": "Linia adresu 2",
|
|
7
|
+
"sync_excel.mapping.targets.addressName": "Etykieta adresu",
|
|
8
|
+
"sync_excel.mapping.targets.addressPurpose": "Przeznaczenie adresu",
|
|
9
|
+
"sync_excel.mapping.targets.buildingNumber": "Numer budynku",
|
|
10
|
+
"sync_excel.mapping.targets.city": "Miasto",
|
|
11
|
+
"sync_excel.mapping.targets.country": "Kraj",
|
|
12
|
+
"sync_excel.mapping.targets.description": "Opis",
|
|
13
|
+
"sync_excel.mapping.targets.displayName": "Nazwa wyświetlana",
|
|
14
|
+
"sync_excel.mapping.targets.externalId": "Zewnętrzne ID",
|
|
15
|
+
"sync_excel.mapping.targets.firstName": "Imię",
|
|
16
|
+
"sync_excel.mapping.targets.flatNumber": "Numer lokalu",
|
|
17
|
+
"sync_excel.mapping.targets.ignore": "Zostaw bez mapowania",
|
|
18
|
+
"sync_excel.mapping.targets.jobTitle": "Stanowisko",
|
|
19
|
+
"sync_excel.mapping.targets.lastName": "Nazwisko",
|
|
20
|
+
"sync_excel.mapping.targets.latitude": "Szerokość geograficzna",
|
|
21
|
+
"sync_excel.mapping.targets.longitude": "Długość geograficzna",
|
|
22
|
+
"sync_excel.mapping.targets.postalCode": "Kod pocztowy",
|
|
23
|
+
"sync_excel.mapping.targets.primaryEmail": "Główny e-mail",
|
|
24
|
+
"sync_excel.mapping.targets.primaryPhone": "Główny telefon",
|
|
25
|
+
"sync_excel.mapping.targets.region": "Region / Województwo",
|
|
26
|
+
"sync_excel.mapping.targets.source": "Źródło",
|
|
27
|
+
"sync_excel.mapping.targets.status": "Status",
|
|
28
|
+
"sync_excel.preview.errors.notFound": "Nie znaleziono podglądu przesłanego pliku.",
|
|
29
|
+
"sync_excel.tabs.import": "Import CSV",
|
|
30
|
+
"sync_excel.upload.errors.fileRequired": "Wybierz plik CSV do przesłania.",
|
|
31
|
+
"sync_excel.upload.errors.invalidPayload": "Nieprawidłowe dane przesłania.",
|
|
32
|
+
"sync_excel.upload.errors.invalidType": "W tym etapie wspierane są tylko importy CSV.",
|
|
33
|
+
"sync_excel.widget.actions.cancel": "Anuluj przebieg",
|
|
34
|
+
"sync_excel.widget.actions.cancelPending": "Anulowanie...",
|
|
35
|
+
"sync_excel.widget.actions.refresh": "Odśwież podgląd",
|
|
36
|
+
"sync_excel.widget.actions.refreshPending": "Odświeżanie...",
|
|
37
|
+
"sync_excel.widget.actions.refreshRun": "Odśwież status importu",
|
|
38
|
+
"sync_excel.widget.actions.reset": "Przywróć sugestię",
|
|
39
|
+
"sync_excel.widget.actions.start": "Uruchom import",
|
|
40
|
+
"sync_excel.widget.actions.startPending": "Uruchamianie...",
|
|
41
|
+
"sync_excel.widget.actions.upload": "Prześlij i pokaż podgląd",
|
|
42
|
+
"sync_excel.widget.actions.uploadPending": "Przesyłanie...",
|
|
43
|
+
"sync_excel.widget.disabled.message": "Włącz tę integrację, aby przesyłać pliki CSV i uruchamiać importy.",
|
|
44
|
+
"sync_excel.widget.disabled.title": "Integracja wyłączona",
|
|
45
|
+
"sync_excel.widget.mapping.sampleValue": "Przykładowa wartość",
|
|
46
|
+
"sync_excel.widget.mapping.sourceColumn": "Kolumna źródłowa",
|
|
47
|
+
"sync_excel.widget.mapping.targetField": "Pole docelowe",
|
|
48
|
+
"sync_excel.widget.matchStrategy.custom": "Niestandardowe dopasowanie",
|
|
49
|
+
"sync_excel.widget.matchStrategy.customDescription": "Opcja zaawansowana. Używaj tylko wtedy, gdy wiesz, jak w tym imporcie powinny być identyfikowane istniejące rekordy.",
|
|
50
|
+
"sync_excel.widget.matchStrategy.customWarningMessage": "Niestandardowe dopasowanie może tworzyć duplikaty, jeśli zmapowane pola nie identyfikują jednoznacznie osoby.",
|
|
51
|
+
"sync_excel.widget.matchStrategy.customWarningTitle": "Używaj ostrożnie",
|
|
52
|
+
"sync_excel.widget.matchStrategy.email": "Adres e-mail",
|
|
53
|
+
"sync_excel.widget.matchStrategy.emailDescription": "Dopasowuje osoby po adresie e-mail. Najlepiej działa, gdy każda osoba ma jeden unikalny i wiarygodny adres e-mail.",
|
|
54
|
+
"sync_excel.widget.matchStrategy.externalId": "ID rekordu źródłowego (Rekomendowane)",
|
|
55
|
+
"sync_excel.widget.matchStrategy.externalIdDescription": "Najlepsza opcja przy ponownych importach z tego samego źródła. Kolejne importy zaktualizują te same osoby zamiast tworzyć duplikaty.",
|
|
56
|
+
"sync_excel.widget.matchStrategy.help": "To ustawienie decyduje, czy importowane wiersze zaktualizują istniejące osoby, czy utworzą nowe rekordy.",
|
|
57
|
+
"sync_excel.widget.matchStrategy.label": "Jak dopasowywać istniejące osoby",
|
|
58
|
+
"sync_excel.widget.messages.cancelError": "Nie udało się anulować importu.",
|
|
59
|
+
"sync_excel.widget.messages.cancelSuccess": "Import został anulowany.",
|
|
60
|
+
"sync_excel.widget.messages.fileRequired": "Najpierw wybierz plik CSV.",
|
|
61
|
+
"sync_excel.widget.messages.importError": "Nie udało się uruchomić importu.",
|
|
62
|
+
"sync_excel.widget.messages.importStarted": "Uruchomiono import.",
|
|
63
|
+
"sync_excel.widget.messages.mappingReset": "Przywrócono sugerowane mapowanie.",
|
|
64
|
+
"sync_excel.widget.messages.previewError": "Nie udało się odświeżyć podglądu.",
|
|
65
|
+
"sync_excel.widget.messages.previewRefreshed": "Podgląd został odświeżony.",
|
|
66
|
+
"sync_excel.widget.messages.restoringSession": "Przywracanie ostatniej sesji importu CSV...",
|
|
67
|
+
"sync_excel.widget.messages.uploadError": "Nie udało się przesłać pliku CSV.",
|
|
68
|
+
"sync_excel.widget.messages.uploadSuccess": "Podgląd CSV jest gotowy.",
|
|
69
|
+
"sync_excel.widget.metrics.entity": "Encja docelowa",
|
|
70
|
+
"sync_excel.widget.metrics.identity": "Strategia dopasowania",
|
|
71
|
+
"sync_excel.widget.metrics.mapped": "Zmapowane kolumny",
|
|
72
|
+
"sync_excel.widget.metrics.unmapped": "Niezmapowane kolumny",
|
|
73
|
+
"sync_excel.widget.preview.description": "Każda kolumna źródłowa pozostaje tutaj widoczna. Pozostaw pusty target, aby na razie nie mapować kolumny.",
|
|
74
|
+
"sync_excel.widget.preview.rows": "{count} wierszy",
|
|
75
|
+
"sync_excel.widget.preview.title": "Podgląd i mapowanie",
|
|
76
|
+
"sync_excel.widget.run.description": "Import działa w tle przez Data Sync i aktualizuje ten widok wraz ze zmianą postępu.",
|
|
77
|
+
"sync_excel.widget.run.errorTitle": "Błąd przebiegu",
|
|
78
|
+
"sync_excel.widget.run.metrics.created": "Utworzone",
|
|
79
|
+
"sync_excel.widget.run.metrics.failed": "Błędne",
|
|
80
|
+
"sync_excel.widget.run.metrics.processed": "Przetworzone",
|
|
81
|
+
"sync_excel.widget.run.metrics.skipped": "Pominięte",
|
|
82
|
+
"sync_excel.widget.run.metrics.updated": "Zaktualizowane",
|
|
83
|
+
"sync_excel.widget.run.progressLabel": "Postęp",
|
|
84
|
+
"sync_excel.widget.run.status.cancelled": "Anulowany",
|
|
85
|
+
"sync_excel.widget.run.status.completed": "Zakończony",
|
|
86
|
+
"sync_excel.widget.run.status.failed": "Nieudany",
|
|
87
|
+
"sync_excel.widget.run.status.idle": "Bezczynny",
|
|
88
|
+
"sync_excel.widget.run.status.pending": "Oczekuje",
|
|
89
|
+
"sync_excel.widget.run.status.running": "Trwa",
|
|
90
|
+
"sync_excel.widget.run.title": "Status importu",
|
|
91
|
+
"sync_excel.widget.upload.description": "Prześlij plik CSV, sprawdź proponowane mapowanie osób i uruchom import w tle.",
|
|
92
|
+
"sync_excel.widget.upload.fileLabel": "Plik CSV",
|
|
93
|
+
"sync_excel.widget.upload.selectedFile": "Wybrany plik",
|
|
94
|
+
"sync_excel.widget.upload.title": "Prześlij CSV",
|
|
95
|
+
"sync_excel.widget.validation.duplicateRiskMessage": "To mapowanie nie używa rekomendowanej strategii Zewnętrznego ID ani E-maila. Ponowny import tego samego zestawu danych może utworzyć duplikaty osób.",
|
|
96
|
+
"sync_excel.widget.validation.duplicateRiskTitle": "Ryzyko duplikatów",
|
|
97
|
+
"sync_excel.widget.validation.duplicateTargetsMessage": "Każde pole docelowe może być zmapowane tylko raz w tym pierwszym zakresie: {targets}",
|
|
98
|
+
"sync_excel.widget.validation.duplicateTargetsTitle": "Powielone pola docelowe",
|
|
99
|
+
"sync_excel.widget.validation.identityMessage": "Zmapuj Zewnętrzne ID albo Główny e-mail, aby kolejne importy mogły dopasować istniejące osoby.",
|
|
100
|
+
"sync_excel.widget.validation.identityTitle": "Zmapuj pole identyfikujące",
|
|
101
|
+
"sync_excel.widget.validation.nameMessage": "Zmapuj Nazwisko albo Nazwę wyświetlaną, aby importer mógł zbudować rekordy osób.",
|
|
102
|
+
"sync_excel.widget.validation.nameTitle": "Zmapuj pole nazwy",
|
|
103
|
+
"sync_excel.widget.validation.readyMessage": "Bieżące mapowanie jest poprawne dla pierwszego zakresu customers.person.",
|
|
104
|
+
"sync_excel.widget.validation.readyTitle": "Gotowe do importu",
|
|
105
|
+
"sync_excel.widget.validation.reimportMessage": "Uruchomienie kolejnego importu z tego samego przesłanego CSV może utworzyć duplikaty, jeśli strategia dopasowania nie identyfikuje wiarygodnie istniejących osób.",
|
|
106
|
+
"sync_excel.widget.validation.reimportTitle": "Ten upload ma już uruchomiony import"
|
|
107
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { buildIntegrationDetailWidgetSpotId, type IntegrationBundle, type IntegrationDefinition } from '@open-mercato/shared/modules/integrations/types'
|
|
2
|
+
|
|
3
|
+
export const syncExcelDetailWidgetSpotId = buildIntegrationDetailWidgetSpotId('sync_excel')
|
|
4
|
+
|
|
5
|
+
export const integration: IntegrationDefinition = {
|
|
6
|
+
id: 'sync_excel',
|
|
7
|
+
title: 'Excel / CSV Import',
|
|
8
|
+
description: 'Upload CSV files, preview mappings, and run file-based imports through Data Sync.',
|
|
9
|
+
category: 'data_sync',
|
|
10
|
+
hub: 'data_sync',
|
|
11
|
+
providerKey: 'excel',
|
|
12
|
+
icon: 'file-spreadsheet',
|
|
13
|
+
version: '1.0.0',
|
|
14
|
+
author: 'Open Mercato Team',
|
|
15
|
+
company: 'Open Mercato',
|
|
16
|
+
license: 'MIT',
|
|
17
|
+
tags: ['excel', 'csv', 'file-upload', 'import', 'spreadsheet'],
|
|
18
|
+
detailPage: {
|
|
19
|
+
widgetSpotId: syncExcelDetailWidgetSpotId,
|
|
20
|
+
},
|
|
21
|
+
defaultState: {
|
|
22
|
+
isEnabled: true,
|
|
23
|
+
},
|
|
24
|
+
credentials: {
|
|
25
|
+
fields: [],
|
|
26
|
+
},
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const integrations: IntegrationDefinition[] = [integration]
|
|
30
|
+
export const bundles: IntegrationBundle[] = []
|
|
31
|
+
export const bundle: IntegrationBundle | undefined = undefined
|