@kontent-ai/migration-toolkit 2.9.1 → 3.0.0-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/README.md +19 -17
- package/dist/core/config.js +3 -3
- package/dist/core/config.js.map +1 -1
- package/dist/core/helpers/workflow-helper.d.ts +1 -1
- package/dist/core/helpers/workflow-helper.js +28 -26
- package/dist/core/helpers/workflow-helper.js.map +1 -1
- package/dist/core/logs/loggers.d.ts +1 -1
- package/dist/core/logs/loggers.js +15 -15
- package/dist/core/logs/loggers.js.map +1 -1
- package/dist/core/models/core.models.d.ts +27 -22
- package/dist/core/models/error.models.d.ts +14 -0
- package/dist/core/models/error.models.js +25 -0
- package/dist/core/models/error.models.js.map +1 -0
- package/dist/core/models/log.models.d.ts +2 -2
- package/dist/core/models/migration.models.d.ts +14 -14
- package/dist/core/models/migration.schema.d.ts +9 -9
- package/dist/core/models/migration.schema.js +28 -28
- package/dist/core/models/migration.schema.js.map +1 -1
- package/dist/core/utils/array.utils.d.ts +1 -1
- package/dist/core/utils/array.utils.js +4 -3
- package/dist/core/utils/array.utils.js.map +1 -1
- package/dist/core/utils/binary-data.utils.d.ts +1 -1
- package/dist/core/utils/binary-data.utils.js +6 -6
- package/dist/core/utils/binary-data.utils.js.map +1 -1
- package/dist/core/utils/confirm.utils.d.ts +1 -1
- package/dist/core/utils/confirm.utils.js +21 -20
- package/dist/core/utils/confirm.utils.js.map +1 -1
- package/dist/core/utils/error.utils.d.ts +1 -1
- package/dist/core/utils/error.utils.js +16 -14
- package/dist/core/utils/error.utils.js.map +1 -1
- package/dist/core/utils/external-id.utils.js +1 -1
- package/dist/core/utils/external-id.utils.js.map +1 -1
- package/dist/core/utils/global.utils.d.ts +3 -3
- package/dist/core/utils/global.utils.js +20 -18
- package/dist/core/utils/global.utils.js.map +1 -1
- package/dist/core/utils/http.utils.d.ts +2 -2
- package/dist/core/utils/http.utils.js +4 -4
- package/dist/core/utils/http.utils.js.map +1 -1
- package/dist/core/utils/management-client-utils.d.ts +4 -4
- package/dist/core/utils/management-client-utils.js +34 -34
- package/dist/core/utils/management-client-utils.js.map +1 -1
- package/dist/core/utils/processing-utils.d.ts +4 -4
- package/dist/core/utils/processing-utils.js +13 -13
- package/dist/core/utils/processing-utils.js.map +1 -1
- package/dist/core/utils/run.utils.d.ts +2 -2
- package/dist/core/utils/run.utils.js +7 -7
- package/dist/core/utils/run.utils.js.map +1 -1
- package/dist/export/context/export-context-fetcher.d.ts +1 -1
- package/dist/export/context/export-context-fetcher.js +92 -62
- package/dist/export/context/export-context-fetcher.js.map +1 -1
- package/dist/export/export-manager.d.ts +2 -2
- package/dist/export/export-manager.js +46 -37
- package/dist/export/export-manager.js.map +1 -1
- package/dist/export/export.models.d.ts +21 -2
- package/dist/export/utils/export.utils.d.ts +1 -1
- package/dist/export/utils/export.utils.js +3 -2
- package/dist/export/utils/export.utils.js.map +1 -1
- package/dist/file/file-manager.d.ts +2 -2
- package/dist/file/file-manager.js +7 -7
- package/dist/file/file-manager.js.map +1 -1
- package/dist/import/comparers/asset-comparer.d.ts +2 -2
- package/dist/import/comparers/asset-comparer.js +12 -11
- package/dist/import/comparers/asset-comparer.js.map +1 -1
- package/dist/import/context/import-context-fetcher.d.ts +1 -1
- package/dist/import/context/import-context-fetcher.js +77 -73
- package/dist/import/context/import-context-fetcher.js.map +1 -1
- package/dist/import/import-manager.d.ts +1 -1
- package/dist/import/import-manager.js +59 -56
- package/dist/import/import-manager.js.map +1 -1
- package/dist/import/import.models.d.ts +6 -2
- package/dist/import/importers/assets-importer.d.ts +3 -3
- package/dist/import/importers/assets-importer.js +46 -43
- package/dist/import/importers/assets-importer.js.map +1 -1
- package/dist/import/importers/content-items-importer.d.ts +3 -3
- package/dist/import/importers/content-items-importer.js +28 -25
- package/dist/import/importers/content-items-importer.js.map +1 -1
- package/dist/import/importers/language-variant-importer.d.ts +3 -3
- package/dist/import/importers/language-variant-importer.js +45 -45
- package/dist/import/importers/language-variant-importer.js.map +1 -1
- package/dist/import/importers/workflow-importer.d.ts +3 -2
- package/dist/import/importers/workflow-importer.js +58 -54
- package/dist/import/importers/workflow-importer.js.map +1 -1
- package/dist/import/utils/import.utils.d.ts +1 -1
- package/dist/import/utils/import.utils.js +3 -2
- package/dist/import/utils/import.utils.js.map +1 -1
- package/dist/index.d.ts +11 -7
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/dist/metadata.js +3 -3
- package/dist/metadata.js.map +1 -1
- package/dist/node/cli/actions/export-action.d.ts +1 -1
- package/dist/node/cli/actions/export-action.js +28 -23
- package/dist/node/cli/actions/export-action.js.map +1 -1
- package/dist/node/cli/actions/import-action.d.ts +1 -1
- package/dist/node/cli/actions/import-action.js +15 -12
- package/dist/node/cli/actions/import-action.js.map +1 -1
- package/dist/node/cli/actions/migrate-action.d.ts +1 -1
- package/dist/node/cli/actions/migrate-action.js +25 -22
- package/dist/node/cli/actions/migrate-action.js.map +1 -1
- package/dist/node/cli/app.js +13 -12
- package/dist/node/cli/app.js.map +1 -1
- package/dist/node/cli/args/args-fetcher.d.ts +1 -1
- package/dist/node/cli/args/args-fetcher.js +14 -13
- package/dist/node/cli/args/args-fetcher.js.map +1 -1
- package/dist/node/cli/args/args-setter.d.ts +1 -1
- package/dist/node/cli/args/args-setter.js +8 -6
- package/dist/node/cli/args/args-setter.js.map +1 -1
- package/dist/node/cli/cli.models.d.ts +2 -2
- package/dist/node/cli/commands.js +68 -56
- package/dist/node/cli/commands.js.map +1 -1
- package/dist/toolkit/elements-builder.d.ts +1 -1
- package/dist/toolkit/elements-builder.js +12 -12
- package/dist/toolkit/elements-builder.js.map +1 -1
- package/dist/toolkit/export.d.ts +2 -2
- package/dist/toolkit/export.js +8 -8
- package/dist/toolkit/export.js.map +1 -1
- package/dist/toolkit/file.d.ts +2 -1
- package/dist/toolkit/file.js +18 -16
- package/dist/toolkit/file.js.map +1 -1
- package/dist/toolkit/import.d.ts +1 -1
- package/dist/toolkit/import.js +12 -12
- package/dist/toolkit/import.js.map +1 -1
- package/dist/toolkit/migrate.d.ts +13 -4
- package/dist/toolkit/migrate.js +15 -13
- package/dist/toolkit/migrate.js.map +1 -1
- package/dist/translation/extraction/items-extraction.processor.d.ts +5 -4
- package/dist/translation/extraction/items-extraction.processor.js +73 -35
- package/dist/translation/extraction/items-extraction.processor.js.map +1 -1
- package/dist/translation/helpers/export-placeholder.utils.d.ts +11 -0
- package/dist/translation/helpers/export-placeholder.utils.js +11 -0
- package/dist/translation/helpers/export-placeholder.utils.js.map +1 -0
- package/dist/translation/helpers/rich-text.processor.d.ts +6 -6
- package/dist/translation/helpers/rich-text.processor.js +38 -38
- package/dist/translation/helpers/rich-text.processor.js.map +1 -1
- package/dist/translation/transforms/export-transforms.d.ts +2 -2
- package/dist/translation/transforms/export-transforms.js +93 -67
- package/dist/translation/transforms/export-transforms.js.map +1 -1
- package/dist/translation/transforms/import-transforms.d.ts +2 -2
- package/dist/translation/transforms/import-transforms.js +38 -40
- package/dist/translation/transforms/import-transforms.js.map +1 -1
- package/dist/zip/zip-manager.d.ts +4 -3
- package/dist/zip/zip-manager.js +9 -9
- package/dist/zip/zip-manager.js.map +1 -1
- package/dist/zip/zip-packager.d.ts +2 -2
- package/dist/zip/zip-packager.js +19 -17
- package/dist/zip/zip-packager.js.map +1 -1
- package/dist/zip/zip-transformer.d.ts +3 -2
- package/dist/zip/zip-transformer.js +16 -15
- package/dist/zip/zip-transformer.js.map +1 -1
- package/dist/zip/zip.models.d.ts +2 -2
- package/lib/core/config.ts +6 -6
- package/lib/core/helpers/workflow-helper.ts +190 -185
- package/lib/core/logs/loggers.ts +52 -52
- package/lib/core/models/core.models.ts +128 -119
- package/lib/core/models/error.models.ts +41 -0
- package/lib/core/models/log.models.ts +20 -20
- package/lib/core/models/migration.models.ts +54 -54
- package/lib/core/models/migration.schema.ts +108 -108
- package/lib/core/utils/array.utils.ts +43 -42
- package/lib/core/utils/binary-data.utils.ts +16 -16
- package/lib/core/utils/confirm.utils.ts +106 -105
- package/lib/core/utils/error.utils.ts +69 -72
- package/lib/core/utils/external-id.utils.ts +4 -4
- package/lib/core/utils/global.utils.ts +81 -75
- package/lib/core/utils/http.utils.ts +23 -23
- package/lib/core/utils/management-client-utils.ts +186 -186
- package/lib/core/utils/processing-utils.ts +82 -82
- package/lib/core/utils/run.utils.ts +50 -50
- package/lib/export/context/export-context-fetcher.ts +472 -447
- package/lib/export/export-manager.ts +233 -232
- package/lib/export/export.models.ts +71 -56
- package/lib/export/utils/export.utils.ts +9 -7
- package/lib/file/file-manager.ts +28 -28
- package/lib/import/comparers/asset-comparer.ts +107 -106
- package/lib/import/context/import-context-fetcher.ts +462 -462
- package/lib/import/import-manager.ts +243 -240
- package/lib/import/import.models.ts +69 -67
- package/lib/import/importers/assets-importer.ts +240 -236
- package/lib/import/importers/content-items-importer.ts +126 -122
- package/lib/import/importers/language-variant-importer.ts +324 -328
- package/lib/import/importers/workflow-importer.ts +372 -367
- package/lib/import/utils/import.utils.ts +9 -7
- package/lib/index.ts +12 -8
- package/lib/metadata.ts +3 -4
- package/lib/node/cli/actions/export-action.ts +43 -38
- package/lib/node/cli/actions/import-action.ts +32 -29
- package/lib/node/cli/actions/migrate-action.ts +49 -46
- package/lib/node/cli/app.ts +21 -21
- package/lib/node/cli/args/args-fetcher.ts +55 -54
- package/lib/node/cli/args/args-setter.ts +34 -32
- package/lib/node/cli/cli.models.ts +17 -17
- package/lib/node/cli/commands.ts +165 -153
- package/lib/toolkit/elements-builder.ts +69 -69
- package/lib/toolkit/export.ts +21 -21
- package/lib/toolkit/file.ts +59 -53
- package/lib/toolkit/import.ts +32 -32
- package/lib/toolkit/migrate.ts +60 -49
- package/lib/translation/extraction/items-extraction.processor.ts +203 -173
- package/lib/translation/helpers/export-placeholder.utils.ts +10 -0
- package/lib/translation/helpers/rich-text.processor.ts +311 -311
- package/lib/translation/transforms/export-transforms.ts +313 -279
- package/lib/translation/transforms/import-transforms.ts +188 -191
- package/lib/zip/zip-manager.ts +28 -27
- package/lib/zip/zip-packager.ts +75 -73
- package/lib/zip/zip-transformer.ts +112 -107
- package/lib/zip/zip.models.ts +7 -7
- package/package.json +91 -84
- package/dist/core/index.d.ts +0 -16
- package/dist/core/index.js +0 -17
- package/dist/core/index.js.map +0 -1
- package/dist/export/index.d.ts +0 -2
- package/dist/export/index.js +0 -3
- package/dist/export/index.js.map +0 -1
- package/dist/file/index.d.ts +0 -1
- package/dist/file/index.js +0 -2
- package/dist/file/index.js.map +0 -1
- package/dist/import/index.d.ts +0 -2
- package/dist/import/index.js +0 -3
- package/dist/import/index.js.map +0 -1
- package/dist/toolkit/index.d.ts +0 -5
- package/dist/toolkit/index.js +0 -6
- package/dist/toolkit/index.js.map +0 -1
- package/dist/translation/index.d.ts +0 -4
- package/dist/translation/index.js +0 -5
- package/dist/translation/index.js.map +0 -1
- package/dist/zip/index.d.ts +0 -4
- package/dist/zip/index.js +0 -5
- package/dist/zip/index.js.map +0 -1
- package/lib/core/index.ts +0 -18
- package/lib/export/index.ts +0 -2
- package/lib/file/index.ts +0 -1
- package/lib/import/index.ts +0 -2
- package/lib/toolkit/index.ts +0 -5
- package/lib/translation/index.ts +0 -4
- package/lib/zip/index.ts +0 -4
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
const attributes = {
|
|
2
2
|
codenames: {
|
|
3
|
-
itemCodenameAttribute:
|
|
4
|
-
linkItemCodenameAttribute:
|
|
5
|
-
assetCodenameAttribute:
|
|
3
|
+
itemCodenameAttribute: "data-codename",
|
|
4
|
+
linkItemCodenameAttribute: "data-item-codename",
|
|
5
|
+
assetCodenameAttribute: "data-asset-codename",
|
|
6
6
|
},
|
|
7
7
|
ids: {
|
|
8
|
-
assetIdAttributeName:
|
|
9
|
-
itemIdAttributeName:
|
|
10
|
-
itemExternalIdAttributeName:
|
|
11
|
-
idAttributeName:
|
|
12
|
-
externalIdAttributeName:
|
|
13
|
-
externalAssetIdAttributeName:
|
|
8
|
+
assetIdAttributeName: "data-asset-id",
|
|
9
|
+
itemIdAttributeName: "data-item-id",
|
|
10
|
+
itemExternalIdAttributeName: "data-item-external-id",
|
|
11
|
+
idAttributeName: "data-id",
|
|
12
|
+
externalIdAttributeName: "data-external-id",
|
|
13
|
+
externalAssetIdAttributeName: "data-asset-external-id",
|
|
14
14
|
},
|
|
15
|
-
componentIdentifierAttribute: 'data-type="component"'
|
|
15
|
+
componentIdentifierAttribute: 'data-type="component"',
|
|
16
16
|
};
|
|
17
17
|
const rteRegexes = {
|
|
18
18
|
elements: {
|
|
19
|
-
objectTagRegex:
|
|
20
|
-
imgTagRegex:
|
|
21
|
-
figureTagRegex:
|
|
22
|
-
linkTagRegex:
|
|
19
|
+
objectTagRegex: /<object(.+?)<\/object>/gs,
|
|
20
|
+
imgTagRegex: /<img(.+?)<\/img>/gs,
|
|
21
|
+
figureTagRegex: /<figure(.+?)<\/figure>/gs,
|
|
22
|
+
linkTagRegex: /<a(.+?)<\/a>/gs,
|
|
23
23
|
},
|
|
24
24
|
ids: {
|
|
25
25
|
dataItemIdAttrRegex: new RegExp(`${attributes.ids.itemIdAttributeName}=\\"(.+?)\\"`),
|
|
26
26
|
dataAssetIdAttrRegex: new RegExp(`${attributes.ids.assetIdAttributeName}=\\"(.+?)\\"`),
|
|
27
|
-
dataIdAttrRegex: new RegExp(`${attributes.ids.idAttributeName}=\\"(.+?)\\"`)
|
|
27
|
+
dataIdAttrRegex: new RegExp(`${attributes.ids.idAttributeName}=\\"(.+?)\\"`),
|
|
28
28
|
},
|
|
29
29
|
codenames: {
|
|
30
30
|
rteItemCodenameRegex: new RegExp(`${attributes.codenames.itemCodenameAttribute}=\\"(.+?)\\"`),
|
|
31
31
|
rteLinkItemCodenameRegex: new RegExp(`${attributes.codenames.linkItemCodenameAttribute}=\\"(.+?)\\"`),
|
|
32
|
-
rteAssetCodenameRegex: new RegExp(`${attributes.codenames.assetCodenameAttribute}=\\"(.+?)\\"`)
|
|
33
|
-
}
|
|
32
|
+
rteAssetCodenameRegex: new RegExp(`${attributes.codenames.assetCodenameAttribute}=\\"(.+?)\\"`),
|
|
33
|
+
},
|
|
34
34
|
};
|
|
35
35
|
export function richTextProcessor() {
|
|
36
36
|
const processDataIds = (richTextHtml, replaceFunc) => {
|
|
@@ -41,7 +41,7 @@ export function richTextProcessor() {
|
|
|
41
41
|
return objectTag;
|
|
42
42
|
}
|
|
43
43
|
const itemIdMatch = objectTag.match(rteRegexes.ids.dataIdAttrRegex);
|
|
44
|
-
if (itemIdMatch &&
|
|
44
|
+
if (itemIdMatch && itemIdMatch.length >= 2) {
|
|
45
45
|
const itemId = itemIdMatch[1];
|
|
46
46
|
itemIds.add(itemId);
|
|
47
47
|
if (replaceFunc) {
|
|
@@ -53,14 +53,14 @@ export function richTextProcessor() {
|
|
|
53
53
|
});
|
|
54
54
|
return {
|
|
55
55
|
html: processedRte,
|
|
56
|
-
ids: itemIds
|
|
56
|
+
ids: itemIds,
|
|
57
57
|
};
|
|
58
58
|
};
|
|
59
59
|
const processAssetIds = (richTextHtml, replaceFunc) => {
|
|
60
60
|
const assetIds = new Set();
|
|
61
61
|
const processedRte = richTextHtml.replaceAll(rteRegexes.elements.figureTagRegex, (figureTag) => {
|
|
62
62
|
const assetIdMatch = figureTag.match(rteRegexes.ids.dataAssetIdAttrRegex);
|
|
63
|
-
if (assetIdMatch &&
|
|
63
|
+
if (assetIdMatch && assetIdMatch.length >= 2) {
|
|
64
64
|
const assetId = assetIdMatch[1];
|
|
65
65
|
assetIds.add(assetId);
|
|
66
66
|
if (replaceFunc) {
|
|
@@ -72,14 +72,14 @@ export function richTextProcessor() {
|
|
|
72
72
|
});
|
|
73
73
|
return {
|
|
74
74
|
html: processedRte,
|
|
75
|
-
ids: assetIds
|
|
75
|
+
ids: assetIds,
|
|
76
76
|
};
|
|
77
77
|
};
|
|
78
78
|
const processLinkAssetIds = (richTextHtml, replaceFunc) => {
|
|
79
79
|
const assetIds = new Set();
|
|
80
80
|
const processedRte = richTextHtml.replaceAll(rteRegexes.elements.linkTagRegex, (linkTag) => {
|
|
81
81
|
const assetIdMatch = linkTag.match(rteRegexes.ids.dataAssetIdAttrRegex);
|
|
82
|
-
if (assetIdMatch &&
|
|
82
|
+
if (assetIdMatch && assetIdMatch.length >= 2) {
|
|
83
83
|
const assetId = assetIdMatch[1];
|
|
84
84
|
assetIds.add(assetId);
|
|
85
85
|
if (replaceFunc) {
|
|
@@ -91,14 +91,14 @@ export function richTextProcessor() {
|
|
|
91
91
|
});
|
|
92
92
|
return {
|
|
93
93
|
html: processedRte,
|
|
94
|
-
ids: assetIds
|
|
94
|
+
ids: assetIds,
|
|
95
95
|
};
|
|
96
96
|
};
|
|
97
97
|
const processLinkItemIds = (richTextHtml, replaceFunc) => {
|
|
98
98
|
const linkItemIds = new Set();
|
|
99
99
|
const processedRte = richTextHtml.replaceAll(rteRegexes.elements.linkTagRegex, (linkTag) => {
|
|
100
100
|
const itemIdMatch = linkTag.match(rteRegexes.ids.dataItemIdAttrRegex);
|
|
101
|
-
if (itemIdMatch &&
|
|
101
|
+
if (itemIdMatch && itemIdMatch.length >= 2) {
|
|
102
102
|
const itemId = itemIdMatch[1];
|
|
103
103
|
linkItemIds.add(itemId);
|
|
104
104
|
if (replaceFunc) {
|
|
@@ -110,19 +110,19 @@ export function richTextProcessor() {
|
|
|
110
110
|
});
|
|
111
111
|
return {
|
|
112
112
|
html: processedRte,
|
|
113
|
-
ids: linkItemIds
|
|
113
|
+
ids: linkItemIds,
|
|
114
114
|
};
|
|
115
115
|
};
|
|
116
116
|
const processItemCodenames = (richTextHtml, replaceFunc) => {
|
|
117
117
|
const itemCodenames = new Set();
|
|
118
118
|
const processedRte = richTextHtml.replaceAll(rteRegexes.elements.objectTagRegex, (objectTag) => {
|
|
119
119
|
const codenameMatch = objectTag.match(rteRegexes.codenames.rteItemCodenameRegex);
|
|
120
|
-
if (codenameMatch &&
|
|
120
|
+
if (codenameMatch && codenameMatch.length >= 2) {
|
|
121
121
|
const codename = codenameMatch[1];
|
|
122
122
|
itemCodenames.add(codename);
|
|
123
123
|
if (replaceFunc) {
|
|
124
124
|
const itemState = replaceFunc(codename);
|
|
125
|
-
if (itemState.item && itemState.state ===
|
|
125
|
+
if (itemState.item && itemState.state === "exists") {
|
|
126
126
|
// no need to replace codename attribute
|
|
127
127
|
return objectTag;
|
|
128
128
|
}
|
|
@@ -133,19 +133,19 @@ export function richTextProcessor() {
|
|
|
133
133
|
});
|
|
134
134
|
return {
|
|
135
135
|
codenames: itemCodenames,
|
|
136
|
-
html: processedRte
|
|
136
|
+
html: processedRte,
|
|
137
137
|
};
|
|
138
138
|
};
|
|
139
139
|
const processLinkItemCodenames = (richTextHtml, replaceFunc) => {
|
|
140
140
|
const itemCodenames = new Set();
|
|
141
141
|
const processedRte = richTextHtml.replaceAll(rteRegexes.elements.linkTagRegex, (linkTag) => {
|
|
142
142
|
const codenameMatch = linkTag.match(rteRegexes.codenames.rteLinkItemCodenameRegex);
|
|
143
|
-
if (codenameMatch &&
|
|
143
|
+
if (codenameMatch && codenameMatch.length >= 2) {
|
|
144
144
|
const codename = codenameMatch[1];
|
|
145
145
|
itemCodenames.add(codename);
|
|
146
146
|
if (replaceFunc) {
|
|
147
147
|
const itemState = replaceFunc(codename);
|
|
148
|
-
if (itemState.item && itemState.state ===
|
|
148
|
+
if (itemState.item && itemState.state === "exists") {
|
|
149
149
|
return linkTag;
|
|
150
150
|
}
|
|
151
151
|
return linkTag.replaceAll(`${attributes.codenames.linkItemCodenameAttribute}="${codename}"`, `${attributes.ids.itemExternalIdAttributeName}="${itemState.externalIdToUse}"`);
|
|
@@ -155,19 +155,19 @@ export function richTextProcessor() {
|
|
|
155
155
|
});
|
|
156
156
|
return {
|
|
157
157
|
codenames: itemCodenames,
|
|
158
|
-
html: processedRte
|
|
158
|
+
html: processedRte,
|
|
159
159
|
};
|
|
160
160
|
};
|
|
161
161
|
const processAssetCodenames = (richTextHtml, replaceFunc) => {
|
|
162
162
|
const assetCodenames = new Set();
|
|
163
163
|
const processedRte = richTextHtml.replaceAll(rteRegexes.elements.figureTagRegex, (figureTag) => {
|
|
164
164
|
const codenameMatch = figureTag.match(rteRegexes.codenames.rteAssetCodenameRegex);
|
|
165
|
-
if (codenameMatch &&
|
|
165
|
+
if (codenameMatch && codenameMatch.length >= 2) {
|
|
166
166
|
const codename = codenameMatch[1];
|
|
167
167
|
assetCodenames.add(codename);
|
|
168
168
|
if (replaceFunc) {
|
|
169
169
|
const assetState = replaceFunc(codename);
|
|
170
|
-
if (assetState.asset && assetState.state ===
|
|
170
|
+
if (assetState.asset && assetState.state === "exists") {
|
|
171
171
|
return figureTag;
|
|
172
172
|
}
|
|
173
173
|
return figureTag.replaceAll(`${attributes.codenames.assetCodenameAttribute}="${codename}"`, `${attributes.ids.externalAssetIdAttributeName}="${assetState.externalIdToUse}"`);
|
|
@@ -177,19 +177,19 @@ export function richTextProcessor() {
|
|
|
177
177
|
});
|
|
178
178
|
return {
|
|
179
179
|
codenames: assetCodenames,
|
|
180
|
-
html: processedRte
|
|
180
|
+
html: processedRte,
|
|
181
181
|
};
|
|
182
182
|
};
|
|
183
183
|
const processLinkAssetCodenames = (richTextHtml, replaceFunc) => {
|
|
184
184
|
const assetCodenames = new Set();
|
|
185
185
|
const processedRte = richTextHtml.replaceAll(rteRegexes.elements.linkTagRegex, (linkTag) => {
|
|
186
186
|
const codenameMatch = linkTag.match(rteRegexes.codenames.rteAssetCodenameRegex);
|
|
187
|
-
if (codenameMatch &&
|
|
187
|
+
if (codenameMatch && codenameMatch.length >= 2) {
|
|
188
188
|
const codename = codenameMatch[1];
|
|
189
189
|
assetCodenames.add(codename);
|
|
190
190
|
if (replaceFunc) {
|
|
191
191
|
const assetState = replaceFunc(codename);
|
|
192
|
-
if (assetState.asset && assetState.state ===
|
|
192
|
+
if (assetState.asset && assetState.state === "exists") {
|
|
193
193
|
return linkTag;
|
|
194
194
|
}
|
|
195
195
|
return linkTag.replaceAll(`${attributes.codenames.assetCodenameAttribute}="${codename}"`, `${attributes.ids.externalAssetIdAttributeName}="${assetState.externalIdToUse}"`);
|
|
@@ -199,7 +199,7 @@ export function richTextProcessor() {
|
|
|
199
199
|
});
|
|
200
200
|
return {
|
|
201
201
|
codenames: assetCodenames,
|
|
202
|
-
html: processedRte
|
|
202
|
+
html: processedRte,
|
|
203
203
|
};
|
|
204
204
|
};
|
|
205
205
|
return {
|
|
@@ -210,7 +210,7 @@ export function richTextProcessor() {
|
|
|
210
210
|
processAssetCodenames,
|
|
211
211
|
processItemCodenames,
|
|
212
212
|
processLinkItemCodenames,
|
|
213
|
-
processLinkAssetCodenames
|
|
213
|
+
processLinkAssetCodenames,
|
|
214
214
|
};
|
|
215
215
|
}
|
|
216
216
|
//# sourceMappingURL=rich-text.processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text.processor.js","sourceRoot":"","sources":["../../../lib/translation/helpers/rich-text.processor.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,GAAG;
|
|
1
|
+
{"version":3,"file":"rich-text.processor.js","sourceRoot":"","sources":["../../../lib/translation/helpers/rich-text.processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { MigrationElementType } from
|
|
2
|
-
import type { ExportTransformFunc } from
|
|
1
|
+
import type { MigrationElementType } from "../../core/models/migration.models.js";
|
|
2
|
+
import type { ExportTransformFunc } from "../../export/export.models.js";
|
|
3
3
|
export declare const exportTransforms: Readonly<Record<MigrationElementType, ExportTransformFunc>>;
|
|
@@ -1,45 +1,49 @@
|
|
|
1
|
-
import chalk from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { match } from "ts-pattern";
|
|
3
|
+
import { MigrationToolkitError, MissingAssetError, MissingItemError } from "../../core/models/error.models.js";
|
|
4
|
+
import { findRequired } from "../../core/utils/array.utils.js";
|
|
5
|
+
import { isArray, isNotUndefined, isString } from "../../core/utils/global.utils.js";
|
|
6
|
+
import { getMissingReferencePlaceholder } from "../helpers/export-placeholder.utils.js";
|
|
7
|
+
import { richTextProcessor } from "../helpers/rich-text.processor.js";
|
|
4
8
|
export const exportTransforms = {
|
|
5
9
|
text: (data) => {
|
|
6
10
|
return {
|
|
7
|
-
value: data.exportElement.value && isString(data.exportElement.value) ? data.exportElement.value : undefined
|
|
11
|
+
value: data.exportElement.value && isString(data.exportElement.value) ? data.exportElement.value : undefined,
|
|
8
12
|
};
|
|
9
13
|
},
|
|
10
14
|
number: (data) => {
|
|
11
|
-
if (data.exportElement.value
|
|
15
|
+
if (!data.exportElement.value) {
|
|
12
16
|
return {
|
|
13
|
-
value: undefined
|
|
17
|
+
value: undefined,
|
|
14
18
|
};
|
|
15
19
|
}
|
|
16
20
|
if (isArray(data.exportElement.value)) {
|
|
17
|
-
throw
|
|
21
|
+
throw new MigrationToolkitError("invalidValue", `Expected value to be a number, not array`);
|
|
18
22
|
}
|
|
19
23
|
if (data.exportElement.value === 0) {
|
|
20
24
|
return {
|
|
21
|
-
value: 0
|
|
25
|
+
value: 0,
|
|
22
26
|
};
|
|
23
27
|
}
|
|
24
28
|
return {
|
|
25
|
-
value: +data.exportElement.value
|
|
29
|
+
value: +data.exportElement.value,
|
|
26
30
|
};
|
|
27
31
|
},
|
|
28
32
|
date_time: (data) => {
|
|
29
33
|
return {
|
|
30
34
|
value: data.exportElement.value && isString(data.exportElement.value) ? data.exportElement.value : undefined,
|
|
31
|
-
display_timezone: data.exportElement.displayTimezone ?? undefined
|
|
35
|
+
display_timezone: data.exportElement.displayTimezone ?? undefined,
|
|
32
36
|
};
|
|
33
37
|
},
|
|
34
38
|
rich_text: (data) => transformRichTextValue(data.exportElement, data.context),
|
|
35
39
|
asset: (data) => {
|
|
36
40
|
if (!data.exportElement.value) {
|
|
37
41
|
return {
|
|
38
|
-
value: []
|
|
42
|
+
value: [],
|
|
39
43
|
};
|
|
40
44
|
}
|
|
41
45
|
if (!isArray(data.exportElement.value)) {
|
|
42
|
-
throw
|
|
46
|
+
throw new MigrationToolkitError("invalidValue", `Expected value to be an array`);
|
|
43
47
|
}
|
|
44
48
|
return {
|
|
45
49
|
// translate asset id to codename
|
|
@@ -48,27 +52,31 @@ export const exportTransforms = {
|
|
|
48
52
|
.filter(isNotUndefined)
|
|
49
53
|
.map((id) => {
|
|
50
54
|
const assetState = data.context.getAssetStateInSourceEnvironment(id);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
return match(assetState)
|
|
56
|
+
.returnType()
|
|
57
|
+
.with({ state: "exists" }, (m) => {
|
|
58
|
+
return { codename: m.data.codename };
|
|
59
|
+
})
|
|
60
|
+
.with({ state: "skip" }, () => undefined)
|
|
61
|
+
.with({ state: "doesNotExists" }, () => {
|
|
62
|
+
throw new MissingAssetError(id);
|
|
63
|
+
})
|
|
64
|
+
.exhaustive();
|
|
58
65
|
})
|
|
66
|
+
.filter(isNotUndefined),
|
|
59
67
|
};
|
|
60
68
|
},
|
|
61
69
|
taxonomy: (data) => {
|
|
62
70
|
if (!data.exportElement.value) {
|
|
63
71
|
return {
|
|
64
|
-
value: []
|
|
72
|
+
value: [],
|
|
65
73
|
};
|
|
66
74
|
}
|
|
67
75
|
if (!isArray(data.exportElement.value)) {
|
|
68
|
-
throw
|
|
76
|
+
throw new MigrationToolkitError("invalidValue", `Expected value to be an array`);
|
|
69
77
|
}
|
|
70
78
|
const taxonomyElement = data.typeElement.element;
|
|
71
|
-
const taxonomyGroupId = taxonomyElement.taxonomy_group.id ??
|
|
79
|
+
const taxonomyGroupId = taxonomyElement.taxonomy_group.id ?? "n/a";
|
|
72
80
|
// get taxonomy group
|
|
73
81
|
const taxonomy = findRequired(data.context.environmentData.taxonomies, (taxonomy) => taxonomy.id === taxonomyGroupId, `Could not find taxonomy group with id '${chalk.red(taxonomyGroupId)}'`);
|
|
74
82
|
return {
|
|
@@ -82,20 +90,18 @@ export const exportTransforms = {
|
|
|
82
90
|
// reference taxonomy term by codename
|
|
83
91
|
return { codename: taxonomyTerm.codename };
|
|
84
92
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
})
|
|
93
|
+
throw new MigrationToolkitError("missingTaxonomyTerm", `Missing taxonomy term with id '${chalk.red(id)}'`);
|
|
94
|
+
}),
|
|
89
95
|
};
|
|
90
96
|
},
|
|
91
97
|
modular_content: (data) => {
|
|
92
98
|
if (!data.exportElement.value) {
|
|
93
99
|
return {
|
|
94
|
-
value: []
|
|
100
|
+
value: [],
|
|
95
101
|
};
|
|
96
102
|
}
|
|
97
103
|
if (!isArray(data.exportElement.value)) {
|
|
98
|
-
throw
|
|
104
|
+
throw new MigrationToolkitError("invalidValue", `Expected value to be an array`);
|
|
99
105
|
}
|
|
100
106
|
return {
|
|
101
107
|
// translate item id to codename
|
|
@@ -104,35 +110,39 @@ export const exportTransforms = {
|
|
|
104
110
|
.filter(isNotUndefined)
|
|
105
111
|
.map((id) => {
|
|
106
112
|
const itemState = data.context.getItemStateInSourceEnvironment(id);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
return match(itemState)
|
|
114
|
+
.returnType()
|
|
115
|
+
.with({ state: "exists" }, (m) => {
|
|
116
|
+
return { codename: m.data.codename };
|
|
117
|
+
})
|
|
118
|
+
.with({ state: "skip" }, () => undefined)
|
|
119
|
+
.with({ state: "doesNotExists" }, () => {
|
|
120
|
+
throw new MissingItemError(id);
|
|
121
|
+
})
|
|
122
|
+
.exhaustive();
|
|
114
123
|
})
|
|
124
|
+
.filter(isNotUndefined),
|
|
115
125
|
};
|
|
116
126
|
},
|
|
117
127
|
custom: (data) => {
|
|
118
128
|
return {
|
|
119
|
-
value: data.exportElement.value && isString(data.exportElement.value) ? data.exportElement.value : undefined
|
|
129
|
+
value: data.exportElement.value && isString(data.exportElement.value) ? data.exportElement.value : undefined,
|
|
120
130
|
};
|
|
121
131
|
},
|
|
122
132
|
url_slug: (data) => {
|
|
123
133
|
return {
|
|
124
134
|
value: data.exportElement.value && isString(data.exportElement.value) ? data.exportElement.value : undefined,
|
|
125
|
-
mode: data.exportElement.urlSlugMode ??
|
|
135
|
+
mode: data.exportElement.urlSlugMode ?? "autogenerated",
|
|
126
136
|
};
|
|
127
137
|
},
|
|
128
138
|
multiple_choice: (data) => {
|
|
129
139
|
if (!data.exportElement.value) {
|
|
130
140
|
return {
|
|
131
|
-
value: []
|
|
141
|
+
value: [],
|
|
132
142
|
};
|
|
133
143
|
}
|
|
134
144
|
if (!isArray(data.exportElement.value)) {
|
|
135
|
-
throw
|
|
145
|
+
throw new MigrationToolkitError("invalidValue", `Expected value to be an array`);
|
|
136
146
|
}
|
|
137
147
|
// translate multiple choice option id to codename
|
|
138
148
|
const multipleChoiceElement = data.typeElement.element;
|
|
@@ -143,20 +153,20 @@ export const exportTransforms = {
|
|
|
143
153
|
.map((id) => {
|
|
144
154
|
const option = findRequired(multipleChoiceElement.options, (option) => option.id === id, `Could not find multiple choice element with option id '${chalk.red(id)}'`);
|
|
145
155
|
if (!option.codename) {
|
|
146
|
-
throw
|
|
156
|
+
throw new MigrationToolkitError("invalidMultipleChoiceOption", `Invalid codename for multiple choice option '${chalk.red(option.name)}'`);
|
|
147
157
|
}
|
|
148
158
|
return { codename: option.codename };
|
|
149
|
-
})
|
|
159
|
+
}),
|
|
150
160
|
};
|
|
151
161
|
},
|
|
152
162
|
subpages: (data) => {
|
|
153
163
|
if (!data.exportElement.value) {
|
|
154
164
|
return {
|
|
155
|
-
value: []
|
|
165
|
+
value: [],
|
|
156
166
|
};
|
|
157
167
|
}
|
|
158
168
|
if (!isArray(data.exportElement.value)) {
|
|
159
|
-
throw
|
|
169
|
+
throw new MigrationToolkitError("invalidValue", `Expected value to be an array`);
|
|
160
170
|
}
|
|
161
171
|
return {
|
|
162
172
|
// translate item id to codename
|
|
@@ -165,22 +175,26 @@ export const exportTransforms = {
|
|
|
165
175
|
.filter(isNotUndefined)
|
|
166
176
|
.map((id) => {
|
|
167
177
|
const itemState = data.context.getItemStateInSourceEnvironment(id);
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
178
|
+
return match(itemState)
|
|
179
|
+
.returnType()
|
|
180
|
+
.with({ state: "exists" }, (m) => {
|
|
181
|
+
return { codename: m.data.codename };
|
|
182
|
+
})
|
|
183
|
+
.with({ state: "skip" }, () => undefined)
|
|
184
|
+
.with({ state: "doesNotExists" }, () => {
|
|
185
|
+
throw new MissingItemError(id);
|
|
186
|
+
})
|
|
187
|
+
.exhaustive();
|
|
175
188
|
})
|
|
189
|
+
.filter(isNotUndefined),
|
|
176
190
|
};
|
|
177
|
-
}
|
|
191
|
+
},
|
|
178
192
|
};
|
|
179
193
|
function findTaxonomy(termId, taxonomy) {
|
|
180
194
|
if (taxonomy.id === termId) {
|
|
181
195
|
return taxonomy;
|
|
182
196
|
}
|
|
183
|
-
if (taxonomy.terms) {
|
|
197
|
+
if (taxonomy.terms.length) {
|
|
184
198
|
const foundTerm = taxonomy.terms.find((term) => findTaxonomy(termId, term));
|
|
185
199
|
if (foundTerm) {
|
|
186
200
|
return foundTerm;
|
|
@@ -192,53 +206,65 @@ function transformRichTextValue(exportElement, context) {
|
|
|
192
206
|
if (!exportElement.value) {
|
|
193
207
|
return {
|
|
194
208
|
components: [],
|
|
195
|
-
value:
|
|
209
|
+
value: "",
|
|
196
210
|
};
|
|
197
211
|
}
|
|
198
|
-
let richTextHtml = exportElement.value && isString(exportElement.value) ? exportElement.value :
|
|
212
|
+
let richTextHtml = exportElement.value && isString(exportElement.value) ? exportElement.value : "";
|
|
199
213
|
// replace item ids with codenames
|
|
200
214
|
richTextHtml = richTextProcessor().processDataIds(richTextHtml, (id) => {
|
|
201
|
-
const itemInEnv = context.getItemStateInSourceEnvironment(id).
|
|
215
|
+
const itemInEnv = context.getItemStateInSourceEnvironment(id).data;
|
|
202
216
|
if (!itemInEnv) {
|
|
203
|
-
|
|
217
|
+
if (context.exportContextOptions.skipMissingReferences) {
|
|
218
|
+
return { codename: getMissingReferencePlaceholder({ type: "item", id }) };
|
|
219
|
+
}
|
|
220
|
+
throw new MissingItemError(id);
|
|
204
221
|
}
|
|
205
222
|
return {
|
|
206
|
-
codename: itemInEnv.codename
|
|
223
|
+
codename: itemInEnv.codename,
|
|
207
224
|
};
|
|
208
225
|
}).html;
|
|
209
226
|
// replace link item ids with codenames
|
|
210
227
|
richTextHtml = richTextProcessor().processLinkItemIds(richTextHtml, (id) => {
|
|
211
|
-
const itemInEnv = context.getItemStateInSourceEnvironment(id).
|
|
228
|
+
const itemInEnv = context.getItemStateInSourceEnvironment(id).data;
|
|
212
229
|
if (!itemInEnv) {
|
|
213
|
-
|
|
230
|
+
if (context.exportContextOptions.skipMissingReferences) {
|
|
231
|
+
return { codename: getMissingReferencePlaceholder({ type: "item", id }) };
|
|
232
|
+
}
|
|
233
|
+
throw new MissingItemError(id);
|
|
214
234
|
}
|
|
215
235
|
return {
|
|
216
|
-
codename: itemInEnv.codename
|
|
236
|
+
codename: itemInEnv.codename,
|
|
217
237
|
};
|
|
218
238
|
}).html;
|
|
219
239
|
// replace asset ids with codenames
|
|
220
240
|
richTextHtml = richTextProcessor().processAssetIds(richTextHtml, (id) => {
|
|
221
|
-
const assetInEnv = context.getAssetStateInSourceEnvironment(id).
|
|
241
|
+
const assetInEnv = context.getAssetStateInSourceEnvironment(id).data;
|
|
222
242
|
if (!assetInEnv) {
|
|
223
|
-
|
|
243
|
+
if (context.exportContextOptions.skipMissingReferences) {
|
|
244
|
+
return { codename: getMissingReferencePlaceholder({ type: "asset", id }) };
|
|
245
|
+
}
|
|
246
|
+
throw new MissingAssetError(id);
|
|
224
247
|
}
|
|
225
248
|
return {
|
|
226
|
-
codename: assetInEnv.codename
|
|
249
|
+
codename: assetInEnv.codename,
|
|
227
250
|
};
|
|
228
251
|
}).html;
|
|
229
252
|
// replace link asset ids with codenames
|
|
230
253
|
richTextHtml = richTextProcessor().processLinkAssetIds(richTextHtml, (id) => {
|
|
231
|
-
const assetInEnv = context.getAssetStateInSourceEnvironment(id).
|
|
254
|
+
const assetInEnv = context.getAssetStateInSourceEnvironment(id).data;
|
|
232
255
|
if (!assetInEnv) {
|
|
233
|
-
|
|
256
|
+
if (context.exportContextOptions.skipMissingReferences) {
|
|
257
|
+
return { codename: getMissingReferencePlaceholder({ type: "asset", id }) };
|
|
258
|
+
}
|
|
259
|
+
throw new MissingAssetError(id);
|
|
234
260
|
}
|
|
235
261
|
return {
|
|
236
|
-
codename: assetInEnv.codename
|
|
262
|
+
codename: assetInEnv.codename,
|
|
237
263
|
};
|
|
238
264
|
}).html;
|
|
239
265
|
return {
|
|
240
266
|
components: exportElement.components,
|
|
241
|
-
value: richTextHtml
|
|
267
|
+
value: richTextHtml,
|
|
242
268
|
};
|
|
243
269
|
}
|
|
244
270
|
//# sourceMappingURL=export-transforms.js.map
|