@wix/bex-core 2.327.0 → 2.329.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/locale/messages_ar.json +12 -0
- package/dist/cjs/assets/locale/messages_bg.json +12 -0
- package/dist/cjs/assets/locale/messages_ca.json +12 -0
- package/dist/cjs/assets/locale/messages_cs.json +12 -0
- package/dist/cjs/assets/locale/messages_da.json +17 -5
- package/dist/cjs/assets/locale/messages_de.json +12 -0
- package/dist/cjs/assets/locale/messages_el.json +12 -0
- package/dist/cjs/assets/locale/messages_en.json +12 -0
- package/dist/cjs/assets/locale/messages_es.json +16 -4
- package/dist/cjs/assets/locale/messages_fi.json +12 -0
- package/dist/cjs/assets/locale/messages_fr.json +12 -0
- package/dist/cjs/assets/locale/messages_he.json +12 -0
- package/dist/cjs/assets/locale/messages_hi.json +17 -5
- package/dist/cjs/assets/locale/messages_hu.json +12 -0
- package/dist/cjs/assets/locale/messages_id.json +17 -5
- package/dist/cjs/assets/locale/messages_it.json +17 -5
- package/dist/cjs/assets/locale/messages_ja.json +12 -0
- package/dist/cjs/assets/locale/messages_ko.json +17 -5
- package/dist/cjs/assets/locale/messages_lt.json +12 -0
- package/dist/cjs/assets/locale/messages_ms.json +12 -0
- package/dist/cjs/assets/locale/messages_nl.json +16 -4
- package/dist/cjs/assets/locale/messages_no.json +12 -0
- package/dist/cjs/assets/locale/messages_pl.json +12 -0
- package/dist/cjs/assets/locale/messages_pt.json +16 -4
- package/dist/cjs/assets/locale/messages_ro.json +12 -0
- package/dist/cjs/assets/locale/messages_ru.json +12 -0
- package/dist/cjs/assets/locale/messages_sk.json +12 -0
- package/dist/cjs/assets/locale/messages_sl.json +12 -0
- package/dist/cjs/assets/locale/messages_sv.json +17 -5
- package/dist/cjs/assets/locale/messages_th.json +17 -5
- package/dist/cjs/assets/locale/messages_tl.json +12 -0
- package/dist/cjs/assets/locale/messages_tr.json +17 -5
- package/dist/cjs/assets/locale/messages_uk.json +12 -0
- package/dist/cjs/assets/locale/messages_vi.json +17 -5
- package/dist/cjs/assets/locale/messages_zh.json +12 -0
- package/dist/cjs/assets/locale/version_file +1 -1
- package/dist/cjs/assets/visual-e2e-locale/messages_visuale2e.json +4 -1
- package/dist/cjs/hooks/useImport.js +7 -5
- package/dist/cjs/hooks/useImport.js.map +1 -1
- package/dist/cjs/hooks/useImportConfig.js.map +1 -1
- package/dist/cjs/services/translations.js.map +1 -1
- package/dist/cjs/state/ImportState/ImportState.js +363 -109
- package/dist/cjs/state/ImportState/ImportState.js.map +1 -1
- package/dist/cjs/state/ImportState/__tests__/ImportState.engine.spec.js +536 -0
- package/dist/cjs/state/ImportState/__tests__/ImportState.engine.spec.js.map +1 -0
- package/dist/cjs/state/ImportState/__tests__/hubJobClient.spec.js +209 -0
- package/dist/cjs/state/ImportState/__tests__/hubJobClient.spec.js.map +1 -0
- package/dist/cjs/state/ImportState/__tests__/importJobPoller.spec.js +86 -0
- package/dist/cjs/state/ImportState/__tests__/importJobPoller.spec.js.map +1 -0
- package/dist/cjs/state/ImportState/__tests__/parseCsv.spec.js +52 -0
- package/dist/cjs/state/ImportState/__tests__/parseCsv.spec.js.map +1 -0
- package/dist/cjs/state/ImportState/__tests__/rewriteCsv.spec.js +81 -0
- package/dist/cjs/state/ImportState/__tests__/rewriteCsv.spec.js.map +1 -0
- package/dist/cjs/state/ImportState/fieldEdit.js +46 -0
- package/dist/cjs/state/ImportState/fieldEdit.js.map +1 -0
- package/dist/cjs/state/ImportState/hubJobClient.js +101 -0
- package/dist/cjs/state/ImportState/hubJobClient.js.map +1 -0
- package/dist/cjs/state/ImportState/importJobPoller.js +44 -0
- package/dist/cjs/state/ImportState/importJobPoller.js.map +1 -0
- package/dist/cjs/state/ImportState/index.js +12 -0
- package/dist/cjs/state/ImportState/index.js.map +1 -1
- package/dist/cjs/state/ImportState/parseCsv.js +39 -10
- package/dist/cjs/state/ImportState/parseCsv.js.map +1 -1
- package/dist/cjs/state/ImportState/rewriteCsv.js +46 -0
- package/dist/cjs/state/ImportState/rewriteCsv.js.map +1 -0
- package/dist/cjs/testkit/WixPatternsContainer.driver.js +4 -1
- package/dist/cjs/testkit/WixPatternsContainer.driver.js.map +1 -1
- package/dist/cjs/testkit/client.js +6 -0
- package/dist/cjs/testkit/client.js.map +1 -1
- package/dist/cjs/testkit/hubJobImportMocks.js +166 -0
- package/dist/cjs/testkit/hubJobImportMocks.js.map +1 -0
- package/dist/cjs/testkit/index.js +6 -0
- package/dist/cjs/testkit/index.js.map +1 -1
- package/dist/esm/assets/locale/messages_ar.json +12 -0
- package/dist/esm/assets/locale/messages_bg.json +12 -0
- package/dist/esm/assets/locale/messages_ca.json +12 -0
- package/dist/esm/assets/locale/messages_cs.json +12 -0
- package/dist/esm/assets/locale/messages_da.json +17 -5
- package/dist/esm/assets/locale/messages_de.json +12 -0
- package/dist/esm/assets/locale/messages_el.json +12 -0
- package/dist/esm/assets/locale/messages_en.json +12 -0
- package/dist/esm/assets/locale/messages_es.json +16 -4
- package/dist/esm/assets/locale/messages_fi.json +12 -0
- package/dist/esm/assets/locale/messages_fr.json +12 -0
- package/dist/esm/assets/locale/messages_he.json +12 -0
- package/dist/esm/assets/locale/messages_hi.json +17 -5
- package/dist/esm/assets/locale/messages_hu.json +12 -0
- package/dist/esm/assets/locale/messages_id.json +17 -5
- package/dist/esm/assets/locale/messages_it.json +17 -5
- package/dist/esm/assets/locale/messages_ja.json +12 -0
- package/dist/esm/assets/locale/messages_ko.json +17 -5
- package/dist/esm/assets/locale/messages_lt.json +12 -0
- package/dist/esm/assets/locale/messages_ms.json +12 -0
- package/dist/esm/assets/locale/messages_nl.json +16 -4
- package/dist/esm/assets/locale/messages_no.json +12 -0
- package/dist/esm/assets/locale/messages_pl.json +12 -0
- package/dist/esm/assets/locale/messages_pt.json +16 -4
- package/dist/esm/assets/locale/messages_ro.json +12 -0
- package/dist/esm/assets/locale/messages_ru.json +12 -0
- package/dist/esm/assets/locale/messages_sk.json +12 -0
- package/dist/esm/assets/locale/messages_sl.json +12 -0
- package/dist/esm/assets/locale/messages_sv.json +17 -5
- package/dist/esm/assets/locale/messages_th.json +17 -5
- package/dist/esm/assets/locale/messages_tl.json +12 -0
- package/dist/esm/assets/locale/messages_tr.json +17 -5
- package/dist/esm/assets/locale/messages_uk.json +12 -0
- package/dist/esm/assets/locale/messages_vi.json +17 -5
- package/dist/esm/assets/locale/messages_zh.json +12 -0
- package/dist/esm/assets/locale/version_file +1 -1
- package/dist/esm/assets/visual-e2e-locale/messages_visuale2e.json +4 -1
- package/dist/esm/hooks/useImport.js +5 -4
- package/dist/esm/hooks/useImport.js.map +1 -1
- package/dist/esm/hooks/useImportConfig.js.map +1 -1
- package/dist/esm/state/ImportState/ImportState.js +293 -101
- package/dist/esm/state/ImportState/ImportState.js.map +1 -1
- package/dist/esm/state/ImportState/__tests__/ImportState.engine.spec.js +385 -0
- package/dist/esm/state/ImportState/__tests__/ImportState.engine.spec.js.map +1 -0
- package/dist/esm/state/ImportState/__tests__/hubJobClient.spec.js +139 -0
- package/dist/esm/state/ImportState/__tests__/hubJobClient.spec.js.map +1 -0
- package/dist/esm/state/ImportState/__tests__/importJobPoller.spec.js +62 -0
- package/dist/esm/state/ImportState/__tests__/importJobPoller.spec.js.map +1 -0
- package/dist/esm/state/ImportState/__tests__/parseCsv.spec.js +59 -0
- package/dist/esm/state/ImportState/__tests__/parseCsv.spec.js.map +1 -0
- package/dist/esm/state/ImportState/__tests__/rewriteCsv.spec.js +68 -0
- package/dist/esm/state/ImportState/__tests__/rewriteCsv.spec.js.map +1 -0
- package/dist/esm/state/ImportState/fieldEdit.js +33 -0
- package/dist/esm/state/ImportState/fieldEdit.js.map +1 -0
- package/dist/esm/state/ImportState/hubJobClient.js +43 -0
- package/dist/esm/state/ImportState/hubJobClient.js.map +1 -0
- package/dist/esm/state/ImportState/importJobPoller.js +34 -0
- package/dist/esm/state/ImportState/importJobPoller.js.map +1 -0
- package/dist/esm/state/ImportState/index.js +2 -0
- package/dist/esm/state/ImportState/index.js.map +1 -1
- package/dist/esm/state/ImportState/parseCsv.js +34 -10
- package/dist/esm/state/ImportState/parseCsv.js.map +1 -1
- package/dist/esm/state/ImportState/rewriteCsv.js +39 -0
- package/dist/esm/state/ImportState/rewriteCsv.js.map +1 -0
- package/dist/esm/testkit/WixPatternsContainer.driver.js +4 -1
- package/dist/esm/testkit/WixPatternsContainer.driver.js.map +1 -1
- package/dist/esm/testkit/client.js +1 -0
- package/dist/esm/testkit/client.js.map +1 -1
- package/dist/esm/testkit/hubJobImportMocks.js +173 -0
- package/dist/esm/testkit/hubJobImportMocks.js.map +1 -0
- package/dist/esm/testkit/index.js +1 -0
- package/dist/esm/testkit/index.js.map +1 -1
- package/dist/types/hooks/useImport.d.ts +5 -3
- package/dist/types/hooks/useImport.d.ts.map +1 -1
- package/dist/types/hooks/useImportConfig.d.ts +2 -3
- package/dist/types/hooks/useImportConfig.d.ts.map +1 -1
- package/dist/types/services/translations.d.ts +1 -1
- package/dist/types/services/translations.d.ts.map +1 -1
- package/dist/types/state/ImportState/ImportState.d.ts +118 -20
- package/dist/types/state/ImportState/ImportState.d.ts.map +1 -1
- package/dist/types/state/ImportState/__tests__/ImportState.engine.spec.d.ts +2 -0
- package/dist/types/state/ImportState/__tests__/ImportState.engine.spec.d.ts.map +1 -0
- package/dist/types/state/ImportState/__tests__/hubJobClient.spec.d.ts +2 -0
- package/dist/types/state/ImportState/__tests__/hubJobClient.spec.d.ts.map +1 -0
- package/dist/types/state/ImportState/__tests__/importJobPoller.spec.d.ts +2 -0
- package/dist/types/state/ImportState/__tests__/importJobPoller.spec.d.ts.map +1 -0
- package/dist/types/state/ImportState/__tests__/parseCsv.spec.d.ts +2 -0
- package/dist/types/state/ImportState/__tests__/parseCsv.spec.d.ts.map +1 -0
- package/dist/types/state/ImportState/__tests__/rewriteCsv.spec.d.ts +2 -0
- package/dist/types/state/ImportState/__tests__/rewriteCsv.spec.d.ts.map +1 -0
- package/dist/types/state/ImportState/fieldEdit.d.ts +10 -0
- package/dist/types/state/ImportState/fieldEdit.d.ts.map +1 -0
- package/dist/types/state/ImportState/hubJobClient.d.ts +47 -0
- package/dist/types/state/ImportState/hubJobClient.d.ts.map +1 -0
- package/dist/types/state/ImportState/importJobPoller.d.ts +20 -0
- package/dist/types/state/ImportState/importJobPoller.d.ts.map +1 -0
- package/dist/types/state/ImportState/index.d.ts +2 -0
- package/dist/types/state/ImportState/index.d.ts.map +1 -1
- package/dist/types/state/ImportState/parseCsv.d.ts +7 -0
- package/dist/types/state/ImportState/parseCsv.d.ts.map +1 -1
- package/dist/types/state/ImportState/rewriteCsv.d.ts +25 -0
- package/dist/types/state/ImportState/rewriteCsv.d.ts.map +1 -0
- package/dist/types/testkit/WixPatternsContainer.driver.d.ts +22 -0
- package/dist/types/testkit/WixPatternsContainer.driver.d.ts.map +1 -1
- package/dist/types/testkit/client.d.ts +1 -0
- package/dist/types/testkit/client.d.ts.map +1 -1
- package/dist/types/testkit/hubJobImportMocks.d.ts +40 -0
- package/dist/types/testkit/hubJobImportMocks.d.ts.map +1 -0
- package/dist/types/testkit/index.d.ts +1 -0
- package/dist/types/testkit/index.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubJobClient.spec.js","sourceRoot":"","sources":["../../../../../src/state/ImportState/__tests__/hubJobClient.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { pollImportJob, isTerminalJobStatus } from '../importJobPoller';
|
|
2
|
+
import { JobStatus, } from '@wix/bex-utils/@wix/ambassador-hub-v1-job/types';
|
|
3
|
+
const noWait = () => Promise.resolve();
|
|
4
|
+
describe('isTerminalJobStatus', () => {
|
|
5
|
+
it('is true for completed / partially successful / failed', () => {
|
|
6
|
+
expect(isTerminalJobStatus(JobStatus.COMPLETED)).toBe(true);
|
|
7
|
+
expect(isTerminalJobStatus(JobStatus.PARTIALLY_SUCCESSFUL)).toBe(true);
|
|
8
|
+
expect(isTerminalJobStatus(JobStatus.FAILED)).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
it('is false for in-progress / initializing / undefined', () => {
|
|
11
|
+
expect(isTerminalJobStatus(JobStatus.IN_PROGRESS)).toBe(false);
|
|
12
|
+
expect(isTerminalJobStatus(JobStatus.INITIALIZING)).toBe(false);
|
|
13
|
+
expect(isTerminalJobStatus(undefined)).toBe(false);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
describe('pollImportJob', () => {
|
|
17
|
+
it('polls until terminal and returns the terminal job', async () => {
|
|
18
|
+
const jobs = [
|
|
19
|
+
{ id: 'j', status: JobStatus.INITIALIZING },
|
|
20
|
+
{ id: 'j', status: JobStatus.IN_PROGRESS },
|
|
21
|
+
{ id: 'j', status: JobStatus.COMPLETED },
|
|
22
|
+
];
|
|
23
|
+
const getJob = jest.fn(async () => jobs.shift());
|
|
24
|
+
const result = await pollImportJob(getJob, 'j', { wait: noWait });
|
|
25
|
+
expect(getJob).toHaveBeenCalledTimes(3);
|
|
26
|
+
expect(result?.status).toBe(JobStatus.COMPLETED);
|
|
27
|
+
});
|
|
28
|
+
it('reports progress for every fetched job', async () => {
|
|
29
|
+
const jobs = [
|
|
30
|
+
{ id: 'j', status: JobStatus.IN_PROGRESS, progress: { current: 1 } },
|
|
31
|
+
{ id: 'j', status: JobStatus.COMPLETED, progress: { current: 2 } },
|
|
32
|
+
];
|
|
33
|
+
const getJob = jest.fn(async () => jobs.shift());
|
|
34
|
+
const onProgress = jest.fn();
|
|
35
|
+
await pollImportJob(getJob, 'j', { wait: noWait, onProgress });
|
|
36
|
+
expect(onProgress).toHaveBeenCalledTimes(2);
|
|
37
|
+
expect(onProgress.mock.calls[1][0].progress.current).toBe(2);
|
|
38
|
+
});
|
|
39
|
+
it('stops and returns null when cancelled before the first poll', async () => {
|
|
40
|
+
const getJob = jest.fn();
|
|
41
|
+
const result = await pollImportJob(getJob, 'j', {
|
|
42
|
+
wait: noWait,
|
|
43
|
+
isCancelled: () => true,
|
|
44
|
+
});
|
|
45
|
+
expect(result).toBeNull();
|
|
46
|
+
expect(getJob).not.toHaveBeenCalled();
|
|
47
|
+
});
|
|
48
|
+
it('stops between polls when cancelled mid-run', async () => {
|
|
49
|
+
let cancelled = false;
|
|
50
|
+
const getJob = jest.fn(async () => {
|
|
51
|
+
cancelled = true; // cancel after the first fetch
|
|
52
|
+
return { id: 'j', status: JobStatus.IN_PROGRESS };
|
|
53
|
+
});
|
|
54
|
+
const result = await pollImportJob(getJob, 'j', {
|
|
55
|
+
wait: noWait,
|
|
56
|
+
isCancelled: () => cancelled,
|
|
57
|
+
});
|
|
58
|
+
expect(result).toBeNull();
|
|
59
|
+
expect(getJob).toHaveBeenCalledTimes(1);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=importJobPoller.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importJobPoller.spec.js","sourceRoot":"","sources":["../../../../../src/state/ImportState/__tests__/importJobPoller.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { parseCsv, parseCsvSample, unparseCsv } from '../parseCsv';
|
|
2
|
+
describe('parseCsv', () => {
|
|
3
|
+
it('splits headers from data rows', () => {
|
|
4
|
+
const result = parseCsv('a,b\n1,2\n3,4');
|
|
5
|
+
expect(result).toEqual({
|
|
6
|
+
headers: ['a', 'b'],
|
|
7
|
+
rows: [
|
|
8
|
+
['1', '2'],
|
|
9
|
+
['3', '4'],
|
|
10
|
+
],
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
it('drops fully empty rows', () => {
|
|
14
|
+
const result = parseCsv('a,b\n1,2\n\n3,4');
|
|
15
|
+
expect(result).toEqual({
|
|
16
|
+
headers: ['a', 'b'],
|
|
17
|
+
rows: [
|
|
18
|
+
['1', '2'],
|
|
19
|
+
['3', '4'],
|
|
20
|
+
],
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
it('returns empty headers/rows for empty content', () => {
|
|
24
|
+
expect(parseCsv('')).toEqual({ headers: [], rows: [] });
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe('parseCsvSample', () => {
|
|
28
|
+
it('returns the header plus at most maxRows data rows', () => {
|
|
29
|
+
const content = 'a,b\n1,1\n2,2\n3,3\n4,4\n5,5';
|
|
30
|
+
const result = parseCsvSample(content, 2);
|
|
31
|
+
expect(result).toEqual({
|
|
32
|
+
headers: ['a', 'b'],
|
|
33
|
+
rows: [
|
|
34
|
+
['1', '1'],
|
|
35
|
+
['2', '2'],
|
|
36
|
+
],
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
it('returns all rows when fewer than maxRows exist', () => {
|
|
40
|
+
const result = parseCsvSample('a,b\n1,1', 10);
|
|
41
|
+
expect(result).toEqual({ headers: ['a', 'b'], rows: [['1', '1']] });
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
describe('unparseCsv', () => {
|
|
45
|
+
it('round-trips through parseCsv', () => {
|
|
46
|
+
const csv = unparseCsv(['title', 'price'], [
|
|
47
|
+
['Apple', '1'],
|
|
48
|
+
['Pear, Inc.', '2'],
|
|
49
|
+
]);
|
|
50
|
+
expect(parseCsv(csv)).toEqual({
|
|
51
|
+
headers: ['title', 'price'],
|
|
52
|
+
rows: [
|
|
53
|
+
['Apple', '1'],
|
|
54
|
+
['Pear, Inc.', '2'],
|
|
55
|
+
],
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=parseCsv.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseCsv.spec.js","sourceRoot":"","sources":["../../../../../src/state/ImportState/__tests__/parseCsv.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnE,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACnB,IAAI,EAAE;gBACJ,CAAC,GAAG,EAAE,GAAG,CAAC;gBACV,CAAC,GAAG,EAAE,GAAG,CAAC;aACX;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACnB,IAAI,EAAE;gBACJ,CAAC,GAAG,EAAE,GAAG,CAAC;gBACV,CAAC,GAAG,EAAE,GAAG,CAAC;aACX;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,OAAO,GAAG,8BAA8B,CAAC;QAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACnB,IAAI,EAAE;gBACJ,CAAC,GAAG,EAAE,GAAG,CAAC;gBACV,CAAC,GAAG,EAAE,GAAG,CAAC;aACX;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,GAAG,GAAG,UAAU,CACpB,CAAC,OAAO,EAAE,OAAO,CAAC,EAClB;YACE,CAAC,OAAO,EAAE,GAAG,CAAC;YACd,CAAC,YAAY,EAAE,GAAG,CAAC;SACpB,CACF,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YAC3B,IAAI,EAAE;gBACJ,CAAC,OAAO,EAAE,GAAG,CAAC;gBACd,CAAC,YAAY,EAAE,GAAG,CAAC;aACpB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { rewriteCsvForImport } from '../rewriteCsv';
|
|
2
|
+
import { parseCsv } from '../parseCsv';
|
|
3
|
+
// Parse the rewritten output back so assertions are on logical rows, not on
|
|
4
|
+
// exact serialization details.
|
|
5
|
+
function reparse(content) {
|
|
6
|
+
const result = parseCsv(content);
|
|
7
|
+
if ('code' in result) {
|
|
8
|
+
throw new Error('rewrite produced unparseable CSV');
|
|
9
|
+
}
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
describe('rewriteCsvForImport', () => {
|
|
13
|
+
it('renames headers to the destination field keys, keeping the data', () => {
|
|
14
|
+
const content = 'Name,Price\nApple,1\nPear,2';
|
|
15
|
+
const out = reparse(rewriteCsvForImport(content, { Name: 'title', Price: 'price' }));
|
|
16
|
+
expect(out.headers).toEqual(['title', 'price']);
|
|
17
|
+
expect(out.rows).toEqual([
|
|
18
|
+
['Apple', '1'],
|
|
19
|
+
['Pear', '2'],
|
|
20
|
+
]);
|
|
21
|
+
});
|
|
22
|
+
it('drops columns mapped to null', () => {
|
|
23
|
+
const content = 'Name,Price,Internal\nApple,1,x\nPear,2,y';
|
|
24
|
+
const out = reparse(rewriteCsvForImport(content, {
|
|
25
|
+
Name: 'title',
|
|
26
|
+
Price: 'price',
|
|
27
|
+
Internal: null,
|
|
28
|
+
}));
|
|
29
|
+
expect(out.headers).toEqual(['title', 'price']);
|
|
30
|
+
expect(out.rows).toEqual([
|
|
31
|
+
['Apple', '1'],
|
|
32
|
+
['Pear', '2'],
|
|
33
|
+
]);
|
|
34
|
+
});
|
|
35
|
+
it('drops columns absent from the mapping (treated as skip)', () => {
|
|
36
|
+
const content = 'Name,Extra\nApple,x';
|
|
37
|
+
const out = reparse(rewriteCsvForImport(content, { Name: 'title' }));
|
|
38
|
+
expect(out.headers).toEqual(['title']);
|
|
39
|
+
expect(out.rows).toEqual([['Apple']]);
|
|
40
|
+
});
|
|
41
|
+
it('keeps original column order', () => {
|
|
42
|
+
const content = 'A,B,C\n1,2,3';
|
|
43
|
+
const out = reparse(rewriteCsvForImport(content, { A: 'a', B: null, C: 'c' }));
|
|
44
|
+
expect(out.headers).toEqual(['a', 'c']);
|
|
45
|
+
expect(out.rows).toEqual([['1', '3']]);
|
|
46
|
+
});
|
|
47
|
+
it('fills missing trailing cells with empty strings', () => {
|
|
48
|
+
// second row is missing the Price cell
|
|
49
|
+
const content = 'Name,Price\nApple,1\nPear';
|
|
50
|
+
const out = reparse(rewriteCsvForImport(content, { Name: 'title', Price: 'price' }));
|
|
51
|
+
expect(out.rows).toEqual([
|
|
52
|
+
['Apple', '1'],
|
|
53
|
+
['Pear', ''],
|
|
54
|
+
]);
|
|
55
|
+
});
|
|
56
|
+
it('returns an empty result when nothing is mapped', () => {
|
|
57
|
+
const content = 'Name,Price\nApple,1';
|
|
58
|
+
const out = rewriteCsvForImport(content, { Name: null, Price: null });
|
|
59
|
+
// no headers, no rows
|
|
60
|
+
expect(reparse(out)).toEqual({ headers: [], rows: [] });
|
|
61
|
+
});
|
|
62
|
+
it('quotes values containing commas so the round-trip is safe', () => {
|
|
63
|
+
const content = 'Name\n"Apple, Inc."';
|
|
64
|
+
const out = reparse(rewriteCsvForImport(content, { Name: 'title' }));
|
|
65
|
+
expect(out.rows).toEqual([['Apple, Inc.']]);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=rewriteCsv.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewriteCsv.spec.js","sourceRoot":"","sources":["../../../../../src/state/ImportState/__tests__/rewriteCsv.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Reverse of the import detector's vocabulary: maps a schema field type
|
|
2
|
+
// (`PatternsFieldType`, uppercase) back to the import flow's `NewFieldType`. Only
|
|
3
|
+
// the types the field editor can produce need entries; anything else falls back
|
|
4
|
+
// to `text`.
|
|
5
|
+
const PATTERNS_TO_NEW_FIELD_TYPE = {
|
|
6
|
+
SHORT_TEXT: 'text',
|
|
7
|
+
LONG_TEXT: 'text',
|
|
8
|
+
NUMBER: 'number',
|
|
9
|
+
DATE: 'date',
|
|
10
|
+
DATETIME: 'date',
|
|
11
|
+
BOOLEAN: 'boolean',
|
|
12
|
+
URL: 'url',
|
|
13
|
+
IMAGE: 'image',
|
|
14
|
+
VIDEO: 'video',
|
|
15
|
+
DOCUMENT: 'document',
|
|
16
|
+
AUDIO: 'audio',
|
|
17
|
+
};
|
|
18
|
+
export const toNewFieldType = (type) => PATTERNS_TO_NEW_FIELD_TYPE[type] ?? 'text';
|
|
19
|
+
// Converts an edited field spec (the field editor's output) into the per-column
|
|
20
|
+
// new-field type + config the import flow stores via `setNewFieldConfig`.
|
|
21
|
+
export function toFieldEdit(field) {
|
|
22
|
+
const config = {
|
|
23
|
+
...(field.validation && { validation: field.validation }),
|
|
24
|
+
...(field.isPii && { isPii: true }),
|
|
25
|
+
...(field.helpText && { helpText: field.helpText }),
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
fieldType: toNewFieldType(field.type),
|
|
29
|
+
displayName: field.displayName,
|
|
30
|
+
config: Object.keys(config).length > 0 ? config : undefined,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=fieldEdit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldEdit.js","sourceRoot":"","sources":["../../../../src/state/ImportState/fieldEdit.ts"],"names":[],"mappings":"AAIA,wEAAwE;AACxE,kFAAkF;AAClF,gFAAgF;AAChF,aAAa;AACb,MAAM,0BAA0B,GAE5B;IACF,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAuB,EAAgB,EAAE,CACtE,0BAA0B,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AAE7C,gFAAgF;AAChF,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,KAAgB;IAK1C,MAAM,MAAM,GAAmB;QAC7B,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;KACpD,CAAC;IACF,OAAO;QACL,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC5D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { submitJob as submitJobRequest, createFileUploadUrl as createFileUploadUrlRequest, getJob as getJobRequest, terminateJob as terminateJobRequest, listMovementLogs as listMovementLogsRequest, } from '@wix/bex-utils/@wix/ambassador-hub-v1-job/http';
|
|
2
|
+
import { FileFormat, } from '@wix/bex-utils/@wix/ambassador-hub-v1-job/types';
|
|
3
|
+
export function createHubJobClient({ httpClient, errorHandler, }) {
|
|
4
|
+
// Empty error-code map = default handling. Specific codes/messages need
|
|
5
|
+
// translation keys and are deferred to the translations task.
|
|
6
|
+
return {
|
|
7
|
+
async uploadFile(file) {
|
|
8
|
+
const { data: { uploadUrl, fileId }, } = await errorHandler.withErrorHandler(() => httpClient.request(createFileUploadUrlRequest({ fileName: file.name })), {});
|
|
9
|
+
if (!uploadUrl || !fileId) {
|
|
10
|
+
throw new Error('createFileUploadUrl returned no uploadUrl/fileId');
|
|
11
|
+
}
|
|
12
|
+
await errorHandler.withErrorHandler(() => httpClient.request({ url: uploadUrl, method: 'PUT', data: file }), {});
|
|
13
|
+
return fileId;
|
|
14
|
+
},
|
|
15
|
+
async submitImportJob({ fileId, destination, name, fileFormat = FileFormat.CSV, transformations, }) {
|
|
16
|
+
const { data: { job }, } = await errorHandler.withErrorHandler(() => httpClient.request(submitJobRequest({
|
|
17
|
+
name,
|
|
18
|
+
source: { file: { fileId, format: fileFormat } },
|
|
19
|
+
destination,
|
|
20
|
+
...(transformations && { transformations }),
|
|
21
|
+
})), {});
|
|
22
|
+
if (!job?.id) {
|
|
23
|
+
throw new Error('submitJob returned no job id');
|
|
24
|
+
}
|
|
25
|
+
return job.id;
|
|
26
|
+
},
|
|
27
|
+
async getJob(jobId) {
|
|
28
|
+
const { data: { job }, } = await errorHandler.withErrorHandler(() => httpClient.request(getJobRequest({ jobId })), {});
|
|
29
|
+
if (!job) {
|
|
30
|
+
throw new Error(`getJob returned no job for "${jobId}"`);
|
|
31
|
+
}
|
|
32
|
+
return job;
|
|
33
|
+
},
|
|
34
|
+
async terminateJob(jobId) {
|
|
35
|
+
await errorHandler.withErrorHandler(() => httpClient.request(terminateJobRequest({ jobId })), {});
|
|
36
|
+
},
|
|
37
|
+
async listMovementLogs(jobId, paging) {
|
|
38
|
+
const { data } = await errorHandler.withErrorHandler(() => httpClient.request(listMovementLogsRequest({ jobId, ...(paging && { paging }) })), {});
|
|
39
|
+
return data;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=hubJobClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubJobClient.js","sourceRoot":"","sources":["../../../../src/state/ImportState/hubJobClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,IAAI,gBAAgB,EAC7B,mBAAmB,IAAI,0BAA0B,EACjD,MAAM,IAAI,aAAa,EACvB,YAAY,IAAI,mBAAmB,EACnC,gBAAgB,IAAI,uBAAuB,GAC5C,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,UAAU,GAMX,MAAM,iDAAiD,CAAC;AAoDzD,MAAM,UAAU,kBAAkB,CAAC,EACjC,UAAU,EACV,YAAY,GACK;IACjB,wEAAwE;IACxE,8DAA8D;IAC9D,OAAO;QACL,KAAK,CAAC,UAAU,CAAC,IAAI;YACnB,MAAM,EACJ,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAC5B,GAAG,MAAM,YAAY,CAAC,gBAAgB,CACrC,GAAG,EAAE,CACH,UAAU,CAAC,OAAO,CAChB,0BAA0B,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CACpD,EACH,EAAE,CACH,CAAC;YAEF,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;aACrE;YAED,MAAM,YAAY,CAAC,gBAAgB,CACjC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EACvE,EAAE,CACH,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,EACpB,MAAM,EACN,WAAW,EACX,IAAI,EACJ,UAAU,GAAG,UAAU,CAAC,GAAG,EAC3B,eAAe,GAChB;YACC,MAAM,EACJ,IAAI,EAAE,EAAE,GAAG,EAAE,GACd,GAAG,MAAM,YAAY,CAAC,gBAAgB,CACrC,GAAG,EAAE,CACH,UAAU,CAAC,OAAO,CAChB,gBAAgB,CAAC;gBACf,IAAI;gBACJ,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;gBAChD,WAAW;gBACX,GAAG,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,CAAC;aAC5C,CAAC,CACH,EACH,EAAE,CACH,CAAC;YAEF,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;YAED,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAK;YAChB,MAAM,EACJ,IAAI,EAAE,EAAE,GAAG,EAAE,GACd,GAAG,MAAM,YAAY,CAAC,gBAAgB,CACrC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAClD,EAAE,CACH,CAAC;YAEF,IAAI,CAAC,GAAG,EAAE;gBACR,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAC;aAC1D;YAED,OAAO,GAAG,CAAC;QACb,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,KAAK;YACtB,MAAM,YAAY,CAAC,gBAAgB,CACjC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EACxD,EAAE,CACH,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAClD,GAAG,EAAE,CACH,UAAU,CAAC,OAAO,CAChB,uBAAuB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAC9D,EACH,EAAE,CACH,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { JobStatus, } from '@wix/bex-utils/@wix/ambassador-hub-v1-job/types';
|
|
2
|
+
export const JOB_POLL_INTERVAL_MS = 2000;
|
|
3
|
+
/** A job is terminal once it has succeeded, partially succeeded, or failed. */
|
|
4
|
+
export function isTerminalJobStatus(status) {
|
|
5
|
+
return (status === JobStatus.COMPLETED ||
|
|
6
|
+
status === JobStatus.PARTIALLY_SUCCESSFUL ||
|
|
7
|
+
status === JobStatus.FAILED);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Polls a data-movement job until it reaches a terminal status, then resolves
|
|
11
|
+
* with the terminal job. Resolves `null` if cancelled mid-poll. Pure async unit
|
|
12
|
+
* (no MobX) so `ImportState` stays thin and this is testable on its own.
|
|
13
|
+
*/
|
|
14
|
+
export async function pollImportJob(getJob, jobId, options = {}) {
|
|
15
|
+
const { intervalMs = JOB_POLL_INTERVAL_MS, onProgress, isCancelled, wait = defaultWait, } = options;
|
|
16
|
+
for (;;) {
|
|
17
|
+
if (isCancelled?.()) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const job = await getJob(jobId);
|
|
21
|
+
onProgress?.(job);
|
|
22
|
+
if (isTerminalJobStatus(job.status)) {
|
|
23
|
+
return job;
|
|
24
|
+
}
|
|
25
|
+
if (isCancelled?.()) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
await wait(intervalMs);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function defaultWait(ms) {
|
|
32
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=importJobPoller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importJobPoller.js","sourceRoot":"","sources":["../../../../src/state/ImportState/importJobPoller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,GAEV,MAAM,iDAAiD,CAAC;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,UAAU,mBAAmB,CAAC,MAAkB;IACpD,OAAO,CACL,MAAM,KAAK,SAAS,CAAC,SAAS;QAC9B,MAAM,KAAK,SAAS,CAAC,oBAAoB;QACzC,MAAM,KAAK,SAAS,CAAC,MAAM,CAC5B,CAAC;AACJ,CAAC;AAYD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAmD,EACnD,KAAa,EACb,UAAgC,EAAE;IAElC,MAAM,EACJ,UAAU,GAAG,oBAAoB,EACjC,UAAU,EACV,WAAW,EACX,IAAI,GAAG,WAAW,GACnB,GAAG,OAAO,CAAC;IAEZ,SAAS;QACP,IAAI,WAAW,EAAE,EAAE,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;QAElB,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnC,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,WAAW,EAAE,EAAE,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;KACxB;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/state/ImportState/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/state/ImportState/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
import Papa from 'papaparse';
|
|
2
|
-
|
|
3
|
-
const result = Papa.parse(content, {
|
|
4
|
-
skipEmptyLines: true,
|
|
5
|
-
});
|
|
6
|
-
if (result.errors.length > 0) {
|
|
7
|
-
return {
|
|
8
|
-
code: 'PARSE_ERROR',
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
const data = result.data;
|
|
2
|
+
function toParseResult(data) {
|
|
12
3
|
if (!data || data.length === 0) {
|
|
13
4
|
return { headers: [], rows: [] };
|
|
14
5
|
}
|
|
@@ -18,6 +9,39 @@ export function parseCsv(content) {
|
|
|
18
9
|
.filter((row) => row.some((cell) => String(cell).trim() !== ''));
|
|
19
10
|
return { headers, rows };
|
|
20
11
|
}
|
|
12
|
+
function parseWith(content, extra) {
|
|
13
|
+
const result = Papa.parse(content, {
|
|
14
|
+
// Fix the delimiter to a comma rather than letting papaparse auto-detect:
|
|
15
|
+
// detection fails on single-column files (`UndetectableDelimiter`), and the
|
|
16
|
+
// import format is comma-separated anyway.
|
|
17
|
+
delimiter: ',',
|
|
18
|
+
skipEmptyLines: true,
|
|
19
|
+
...extra,
|
|
20
|
+
});
|
|
21
|
+
// `FieldMismatch` (a row with too few/many cells) is recoverable — papaparse
|
|
22
|
+
// still returns the row's data, and the rewrite/consumer pads or ignores
|
|
23
|
+
// extras. Treat only other error types as fatal.
|
|
24
|
+
const fatalErrors = result.errors.filter((error) => error.type !== 'FieldMismatch');
|
|
25
|
+
if (fatalErrors.length > 0) {
|
|
26
|
+
return {
|
|
27
|
+
code: 'PARSE_ERROR',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return toParseResult(result.data);
|
|
31
|
+
}
|
|
32
|
+
export function parseCsv(content) {
|
|
33
|
+
return parseWith(content, {});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parses only the header row plus up to `maxRows` data rows — enough to drive
|
|
37
|
+
* the mapping UI and column type detection without reading the whole file
|
|
38
|
+
* (plan D1). Uses papaparse `preview` so parsing stops early instead of
|
|
39
|
+
* parsing everything and slicing.
|
|
40
|
+
*/
|
|
41
|
+
export function parseCsvSample(content, maxRows) {
|
|
42
|
+
// `preview` counts the header row, so add one to keep `maxRows` data rows.
|
|
43
|
+
return parseWith(content, { preview: maxRows + 1 });
|
|
44
|
+
}
|
|
21
45
|
export function unparseCsv(headers, rows) {
|
|
22
46
|
return Papa.unparse([headers, ...rows]);
|
|
23
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCsv.js","sourceRoot":"","sources":["../../../../src/state/ImportState/parseCsv.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAW7B,
|
|
1
|
+
{"version":3,"file":"parseCsv.js","sourceRoot":"","sources":["../../../../src/state/ImportState/parseCsv.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAW7B,SAAS,aAAa,CAAC,IAA4B;IACjD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KAClC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI;SACd,KAAK,CAAC,CAAC,CAAC;SACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAEnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAChB,OAAe,EACf,KAAiC;IAEjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAW,OAAO,EAAE;QAC3C,0EAA0E;QAC1E,4EAA4E;QAC5E,2CAA2C;QAC3C,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,IAAI;QACpB,GAAG,KAAK;KACT,CAAC,CAAC;IAEH,6EAA6E;IAC7E,yEAAyE;IACzE,iDAAiD;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CACtC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAC1C,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,OAAO;YACL,IAAI,EAAE,aAAa;SACpB,CAAC;KACH;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,OAAe;IAEf,2EAA2E;IAC3E,OAAO,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAiB,EAAE,IAAgB;IAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { parseCsv, unparseCsv } from './parseCsv';
|
|
2
|
+
/**
|
|
3
|
+
* Rewrites a CSV so its header row matches the destination field keys and the
|
|
4
|
+
* columns the user chose to skip are dropped.
|
|
5
|
+
*
|
|
6
|
+
* The data-hub import maps columns to fields strictly by `header == field-key`
|
|
7
|
+
* (there is no server-side column mapping), so the chosen mapping has to be
|
|
8
|
+
* applied to the file itself before upload — see plan O1.
|
|
9
|
+
*
|
|
10
|
+
* `resolvedMapping` maps each *original* CSV header to its destination field
|
|
11
|
+
* key, or `null`/absent to skip that column — exactly what
|
|
12
|
+
* `ImportState._resolveFieldMapping` produces. Columns are kept in their
|
|
13
|
+
* original order (order is irrelevant to the server, which maps by header name,
|
|
14
|
+
* but it keeps the output readable).
|
|
15
|
+
*
|
|
16
|
+
* NOTE: this reads the whole file into memory. For very large files a streaming
|
|
17
|
+
* rewrite (papaparse `step`) would avoid that — deferred until it's a problem.
|
|
18
|
+
*/
|
|
19
|
+
export function rewriteCsvForImport(content, resolvedMapping) {
|
|
20
|
+
const parsed = parseCsv(content);
|
|
21
|
+
if ('code' in parsed) {
|
|
22
|
+
throw new Error('Failed to parse CSV for import rewrite');
|
|
23
|
+
}
|
|
24
|
+
return rewriteParsedCsvForImport(parsed.headers, parsed.rows, resolvedMapping);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Same rewrite as {@link rewriteCsvForImport} but from already-parsed rows —
|
|
28
|
+
* used by `ImportState`, which holds the parsed CSV in memory and doesn't need
|
|
29
|
+
* to re-parse.
|
|
30
|
+
*/
|
|
31
|
+
export function rewriteParsedCsvForImport(headers, rows, resolvedMapping) {
|
|
32
|
+
const kept = headers
|
|
33
|
+
.map((header, index) => ({ index, key: resolvedMapping[header] }))
|
|
34
|
+
.filter((col) => col.key != null);
|
|
35
|
+
const newHeaders = kept.map((col) => col.key);
|
|
36
|
+
const newRows = rows.map((row) => kept.map((col) => row[col.index] ?? ''));
|
|
37
|
+
return unparseCsv(newHeaders, newRows);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=rewriteCsv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewriteCsv.js","sourceRoot":"","sources":["../../../../src/state/ImportState/rewriteCsv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,eAA8C;IAE9C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,MAAM,IAAI,MAAM,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED,OAAO,yBAAyB,CAC9B,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,IAAI,EACX,eAAe,CAChB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAiB,EACjB,IAAgB,EAChB,eAA8C;IAE9C,MAAM,IAAI,GAAG,OAAO;SACjB,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACjE,MAAM,CAAC,CAAC,GAAG,EAAyC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IAE3E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3E,OAAO,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -3,12 +3,13 @@ import { QueryCache } from 'react-query/core';
|
|
|
3
3
|
import { createMemoryHistory } from 'history';
|
|
4
4
|
import { testkit, } from '@wix/fe-essentials-standalone/testkit';
|
|
5
5
|
import { Trans, useExperiments, useTranslation, } from '@wix/fe-essentials-standalone/react';
|
|
6
|
-
import { whenRequest } from '@wix/fe-essentials/http-client/testkit/client';
|
|
6
|
+
import { whenRequest, when, } from '@wix/fe-essentials/http-client/testkit/client';
|
|
7
7
|
import { AppSettingsStorageStrategy, DataCapsule, } from '@wix/fe-essentials/data-capsule';
|
|
8
8
|
import { WixPatternsContainer } from '../state';
|
|
9
9
|
import { partialLodashMock } from '../mocks/partialLodashMock';
|
|
10
10
|
import { debounce, throttle } from 'lodash';
|
|
11
11
|
import { exportServiceMocks } from './exportServiceMocks';
|
|
12
|
+
import { hubJobImportMocks } from './hubJobImportMocks';
|
|
12
13
|
import { NavigationManager } from '../services/navigationManager';
|
|
13
14
|
import { matchMediaMock } from './matchMediaMock';
|
|
14
15
|
import { isJestExists, isTestEnvironment } from '../test-utils/jest';
|
|
@@ -70,6 +71,7 @@ export class WixPatternsContainerDriver {
|
|
|
70
71
|
this.dataCapsuleInstances = new Map();
|
|
71
72
|
this.componentSettingsInstances = new Map();
|
|
72
73
|
this.exportServiceMocks = exportServiceMocks(whenRequest);
|
|
74
|
+
this.hubJobImportMocks = hubJobImportMocks(whenRequest, when);
|
|
73
75
|
this.testContext = testkit.getTestContext({
|
|
74
76
|
experiments: {
|
|
75
77
|
bag: overrides.experiments,
|
|
@@ -89,6 +91,7 @@ export class WixPatternsContainerDriver {
|
|
|
89
91
|
...(overrides.appSettingsCustomMocks ?? []),
|
|
90
92
|
...appSettingsMocks(whenRequest),
|
|
91
93
|
...this.exportServiceMocks.mocks,
|
|
94
|
+
...this.hubJobImportMocks.mocks,
|
|
92
95
|
...(overrides.httpMocks ?? []),
|
|
93
96
|
],
|
|
94
97
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WixPatternsContainer.driver.js","sourceRoot":"","sources":["../../../src/testkit/WixPatternsContainer.driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAW,MAAM,SAAS,CAAC;AACvD,OAAO,EAGL,OAAO,GACR,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,EACL,cAAc,EACd,cAAc,GACf,MAAM,qCAAqC,CAAC;AAE7C,OAAO,
|
|
1
|
+
{"version":3,"file":"WixPatternsContainer.driver.js","sourceRoot":"","sources":["../../../src/testkit/WixPatternsContainer.driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/testkit/client.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/testkit/client.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|