@kontent-ai/migration-toolkit 2.9.1 → 3.0.0-1

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.
Files changed (239) hide show
  1. package/README.md +19 -17
  2. package/dist/core/config.js +3 -3
  3. package/dist/core/config.js.map +1 -1
  4. package/dist/core/helpers/workflow-helper.d.ts +1 -1
  5. package/dist/core/helpers/workflow-helper.js +28 -26
  6. package/dist/core/helpers/workflow-helper.js.map +1 -1
  7. package/dist/core/logs/loggers.d.ts +1 -1
  8. package/dist/core/logs/loggers.js +15 -15
  9. package/dist/core/logs/loggers.js.map +1 -1
  10. package/dist/core/models/core.models.d.ts +29 -22
  11. package/dist/core/models/error.models.d.ts +26 -0
  12. package/dist/core/models/error.models.js +104 -0
  13. package/dist/core/models/error.models.js.map +1 -0
  14. package/dist/core/models/log.models.d.ts +2 -2
  15. package/dist/core/models/migration.models.d.ts +17 -19
  16. package/dist/core/models/migration.schema.d.ts +9 -9
  17. package/dist/core/models/migration.schema.js +28 -28
  18. package/dist/core/models/migration.schema.js.map +1 -1
  19. package/dist/core/utils/array.utils.d.ts +1 -1
  20. package/dist/core/utils/array.utils.js +4 -3
  21. package/dist/core/utils/array.utils.js.map +1 -1
  22. package/dist/core/utils/binary-data.utils.d.ts +1 -1
  23. package/dist/core/utils/binary-data.utils.js +6 -6
  24. package/dist/core/utils/binary-data.utils.js.map +1 -1
  25. package/dist/core/utils/confirm.utils.d.ts +3 -1
  26. package/dist/core/utils/confirm.utils.js +92 -24
  27. package/dist/core/utils/confirm.utils.js.map +1 -1
  28. package/dist/core/utils/error.utils.d.ts +1 -1
  29. package/dist/core/utils/error.utils.js +16 -14
  30. package/dist/core/utils/error.utils.js.map +1 -1
  31. package/dist/core/utils/external-id.utils.js +1 -1
  32. package/dist/core/utils/external-id.utils.js.map +1 -1
  33. package/dist/core/utils/global.utils.d.ts +3 -3
  34. package/dist/core/utils/global.utils.js +20 -18
  35. package/dist/core/utils/global.utils.js.map +1 -1
  36. package/dist/core/utils/http.utils.d.ts +2 -2
  37. package/dist/core/utils/http.utils.js +4 -4
  38. package/dist/core/utils/http.utils.js.map +1 -1
  39. package/dist/core/utils/management-client-utils.d.ts +4 -4
  40. package/dist/core/utils/management-client-utils.js +37 -34
  41. package/dist/core/utils/management-client-utils.js.map +1 -1
  42. package/dist/core/utils/processing-utils.d.ts +4 -4
  43. package/dist/core/utils/processing-utils.js +13 -13
  44. package/dist/core/utils/processing-utils.js.map +1 -1
  45. package/dist/core/utils/run.utils.d.ts +2 -2
  46. package/dist/core/utils/run.utils.js +7 -7
  47. package/dist/core/utils/run.utils.js.map +1 -1
  48. package/dist/core/utils/try.utils.d.ts +14 -0
  49. package/dist/core/utils/try.utils.js +18 -0
  50. package/dist/core/utils/try.utils.js.map +1 -0
  51. package/dist/export/context/export-context-fetcher.d.ts +1 -1
  52. package/dist/export/context/export-context-fetcher.js +92 -62
  53. package/dist/export/context/export-context-fetcher.js.map +1 -1
  54. package/dist/export/export-manager.d.ts +2 -2
  55. package/dist/export/export-manager.js +73 -59
  56. package/dist/export/export-manager.js.map +1 -1
  57. package/dist/export/export.models.d.ts +21 -2
  58. package/dist/export/utils/export.utils.d.ts +1 -1
  59. package/dist/export/utils/export.utils.js +3 -2
  60. package/dist/export/utils/export.utils.js.map +1 -1
  61. package/dist/file/file-manager.d.ts +2 -2
  62. package/dist/file/file-manager.js +7 -7
  63. package/dist/file/file-manager.js.map +1 -1
  64. package/dist/import/comparers/asset-comparer.d.ts +2 -2
  65. package/dist/import/comparers/asset-comparer.js +12 -11
  66. package/dist/import/comparers/asset-comparer.js.map +1 -1
  67. package/dist/import/context/import-context-fetcher.d.ts +1 -1
  68. package/dist/import/context/import-context-fetcher.js +77 -73
  69. package/dist/import/context/import-context-fetcher.js.map +1 -1
  70. package/dist/import/import-manager.d.ts +1 -1
  71. package/dist/import/import-manager.js +59 -56
  72. package/dist/import/import-manager.js.map +1 -1
  73. package/dist/import/import.models.d.ts +6 -2
  74. package/dist/import/importers/assets-importer.d.ts +3 -3
  75. package/dist/import/importers/assets-importer.js +46 -43
  76. package/dist/import/importers/assets-importer.js.map +1 -1
  77. package/dist/import/importers/content-items-importer.d.ts +3 -3
  78. package/dist/import/importers/content-items-importer.js +28 -25
  79. package/dist/import/importers/content-items-importer.js.map +1 -1
  80. package/dist/import/importers/language-variant-importer.d.ts +3 -3
  81. package/dist/import/importers/language-variant-importer.js +45 -45
  82. package/dist/import/importers/language-variant-importer.js.map +1 -1
  83. package/dist/import/importers/workflow-importer.d.ts +3 -2
  84. package/dist/import/importers/workflow-importer.js +58 -54
  85. package/dist/import/importers/workflow-importer.js.map +1 -1
  86. package/dist/import/utils/import.utils.d.ts +1 -1
  87. package/dist/import/utils/import.utils.js +3 -2
  88. package/dist/import/utils/import.utils.js.map +1 -1
  89. package/dist/index.d.ts +11 -7
  90. package/dist/index.js +10 -8
  91. package/dist/index.js.map +1 -1
  92. package/dist/metadata.js +3 -3
  93. package/dist/metadata.js.map +1 -1
  94. package/dist/node/cli/actions/export-action.d.ts +1 -1
  95. package/dist/node/cli/actions/export-action.js +29 -23
  96. package/dist/node/cli/actions/export-action.js.map +1 -1
  97. package/dist/node/cli/actions/import-action.d.ts +1 -1
  98. package/dist/node/cli/actions/import-action.js +15 -12
  99. package/dist/node/cli/actions/import-action.js.map +1 -1
  100. package/dist/node/cli/actions/migrate-action.d.ts +1 -1
  101. package/dist/node/cli/actions/migrate-action.js +26 -22
  102. package/dist/node/cli/actions/migrate-action.js.map +1 -1
  103. package/dist/node/cli/app.js +13 -12
  104. package/dist/node/cli/app.js.map +1 -1
  105. package/dist/node/cli/args/args-fetcher.d.ts +1 -1
  106. package/dist/node/cli/args/args-fetcher.js +14 -13
  107. package/dist/node/cli/args/args-fetcher.js.map +1 -1
  108. package/dist/node/cli/args/args-setter.d.ts +1 -1
  109. package/dist/node/cli/args/args-setter.js +8 -6
  110. package/dist/node/cli/args/args-setter.js.map +1 -1
  111. package/dist/node/cli/cli.models.d.ts +2 -2
  112. package/dist/node/cli/commands.js +68 -56
  113. package/dist/node/cli/commands.js.map +1 -1
  114. package/dist/toolkit/elements-builder.d.ts +1 -1
  115. package/dist/toolkit/elements-builder.js +12 -12
  116. package/dist/toolkit/elements-builder.js.map +1 -1
  117. package/dist/toolkit/export.d.ts +2 -2
  118. package/dist/toolkit/export.js +8 -8
  119. package/dist/toolkit/export.js.map +1 -1
  120. package/dist/toolkit/file.d.ts +2 -1
  121. package/dist/toolkit/file.js +18 -16
  122. package/dist/toolkit/file.js.map +1 -1
  123. package/dist/toolkit/import.d.ts +1 -1
  124. package/dist/toolkit/import.js +12 -12
  125. package/dist/toolkit/import.js.map +1 -1
  126. package/dist/toolkit/migrate.d.ts +13 -4
  127. package/dist/toolkit/migrate.js +15 -13
  128. package/dist/toolkit/migrate.js.map +1 -1
  129. package/dist/translation/extraction/items-extraction.processor.d.ts +5 -4
  130. package/dist/translation/extraction/items-extraction.processor.js +73 -35
  131. package/dist/translation/extraction/items-extraction.processor.js.map +1 -1
  132. package/dist/translation/helpers/export-placeholder.utils.d.ts +11 -0
  133. package/dist/translation/helpers/export-placeholder.utils.js +11 -0
  134. package/dist/translation/helpers/export-placeholder.utils.js.map +1 -0
  135. package/dist/translation/helpers/rich-text.processor.d.ts +6 -6
  136. package/dist/translation/helpers/rich-text.processor.js +38 -38
  137. package/dist/translation/helpers/rich-text.processor.js.map +1 -1
  138. package/dist/translation/transforms/export-transforms.d.ts +2 -2
  139. package/dist/translation/transforms/export-transforms.js +93 -67
  140. package/dist/translation/transforms/export-transforms.js.map +1 -1
  141. package/dist/translation/transforms/import-transforms.d.ts +2 -2
  142. package/dist/translation/transforms/import-transforms.js +38 -40
  143. package/dist/translation/transforms/import-transforms.js.map +1 -1
  144. package/dist/zip/zip-manager.d.ts +4 -3
  145. package/dist/zip/zip-manager.js +9 -9
  146. package/dist/zip/zip-manager.js.map +1 -1
  147. package/dist/zip/zip-packager.d.ts +2 -2
  148. package/dist/zip/zip-packager.js +19 -17
  149. package/dist/zip/zip-packager.js.map +1 -1
  150. package/dist/zip/zip-transformer.d.ts +3 -2
  151. package/dist/zip/zip-transformer.js +16 -15
  152. package/dist/zip/zip-transformer.js.map +1 -1
  153. package/dist/zip/zip.models.d.ts +2 -2
  154. package/lib/core/config.ts +6 -6
  155. package/lib/core/helpers/workflow-helper.ts +190 -185
  156. package/lib/core/logs/loggers.ts +52 -52
  157. package/lib/core/models/core.models.ts +130 -119
  158. package/lib/core/models/error.models.ts +148 -0
  159. package/lib/core/models/log.models.ts +20 -20
  160. package/lib/core/models/migration.models.ts +54 -57
  161. package/lib/core/models/migration.schema.ts +108 -108
  162. package/lib/core/utils/array.utils.ts +43 -42
  163. package/lib/core/utils/binary-data.utils.ts +16 -16
  164. package/lib/core/utils/confirm.utils.ts +184 -106
  165. package/lib/core/utils/error.utils.ts +69 -72
  166. package/lib/core/utils/external-id.utils.ts +4 -4
  167. package/lib/core/utils/global.utils.ts +81 -75
  168. package/lib/core/utils/http.utils.ts +23 -23
  169. package/lib/core/utils/management-client-utils.ts +189 -186
  170. package/lib/core/utils/processing-utils.ts +82 -82
  171. package/lib/core/utils/run.utils.ts +50 -50
  172. package/lib/core/utils/try.utils.ts +30 -0
  173. package/lib/export/context/export-context-fetcher.ts +472 -447
  174. package/lib/export/export-manager.ts +250 -232
  175. package/lib/export/export.models.ts +71 -56
  176. package/lib/export/utils/export.utils.ts +9 -7
  177. package/lib/file/file-manager.ts +28 -28
  178. package/lib/import/comparers/asset-comparer.ts +107 -106
  179. package/lib/import/context/import-context-fetcher.ts +462 -462
  180. package/lib/import/import-manager.ts +243 -240
  181. package/lib/import/import.models.ts +69 -67
  182. package/lib/import/importers/assets-importer.ts +240 -236
  183. package/lib/import/importers/content-items-importer.ts +126 -122
  184. package/lib/import/importers/language-variant-importer.ts +324 -328
  185. package/lib/import/importers/workflow-importer.ts +372 -367
  186. package/lib/import/utils/import.utils.ts +9 -7
  187. package/lib/index.ts +12 -8
  188. package/lib/metadata.ts +3 -4
  189. package/lib/node/cli/actions/export-action.ts +44 -38
  190. package/lib/node/cli/actions/import-action.ts +32 -29
  191. package/lib/node/cli/actions/migrate-action.ts +50 -46
  192. package/lib/node/cli/app.ts +21 -21
  193. package/lib/node/cli/args/args-fetcher.ts +55 -54
  194. package/lib/node/cli/args/args-setter.ts +34 -32
  195. package/lib/node/cli/cli.models.ts +17 -17
  196. package/lib/node/cli/commands.ts +165 -153
  197. package/lib/toolkit/elements-builder.ts +69 -69
  198. package/lib/toolkit/export.ts +21 -21
  199. package/lib/toolkit/file.ts +59 -53
  200. package/lib/toolkit/import.ts +32 -32
  201. package/lib/toolkit/migrate.ts +60 -49
  202. package/lib/translation/extraction/items-extraction.processor.ts +203 -173
  203. package/lib/translation/helpers/export-placeholder.utils.ts +10 -0
  204. package/lib/translation/helpers/rich-text.processor.ts +311 -311
  205. package/lib/translation/transforms/export-transforms.ts +313 -279
  206. package/lib/translation/transforms/import-transforms.ts +188 -191
  207. package/lib/zip/zip-manager.ts +28 -27
  208. package/lib/zip/zip-packager.ts +75 -73
  209. package/lib/zip/zip-transformer.ts +112 -107
  210. package/lib/zip/zip.models.ts +7 -7
  211. package/package.json +91 -84
  212. package/dist/core/index.d.ts +0 -16
  213. package/dist/core/index.js +0 -17
  214. package/dist/core/index.js.map +0 -1
  215. package/dist/export/index.d.ts +0 -2
  216. package/dist/export/index.js +0 -3
  217. package/dist/export/index.js.map +0 -1
  218. package/dist/file/index.d.ts +0 -1
  219. package/dist/file/index.js +0 -2
  220. package/dist/file/index.js.map +0 -1
  221. package/dist/import/index.d.ts +0 -2
  222. package/dist/import/index.js +0 -3
  223. package/dist/import/index.js.map +0 -1
  224. package/dist/toolkit/index.d.ts +0 -5
  225. package/dist/toolkit/index.js +0 -6
  226. package/dist/toolkit/index.js.map +0 -1
  227. package/dist/translation/index.d.ts +0 -4
  228. package/dist/translation/index.js +0 -5
  229. package/dist/translation/index.js.map +0 -1
  230. package/dist/zip/index.d.ts +0 -4
  231. package/dist/zip/index.js +0 -5
  232. package/dist/zip/index.js.map +0 -1
  233. package/lib/core/index.ts +0 -18
  234. package/lib/export/index.ts +0 -2
  235. package/lib/file/index.ts +0 -1
  236. package/lib/import/index.ts +0 -2
  237. package/lib/toolkit/index.ts +0 -5
  238. package/lib/translation/index.ts +0 -4
  239. package/lib/zip/index.ts +0 -4
@@ -1,36 +1,36 @@
1
1
  const attributes = {
2
2
  codenames: {
3
- itemCodenameAttribute: 'data-codename',
4
- linkItemCodenameAttribute: 'data-item-codename',
5
- assetCodenameAttribute: 'data-asset-codename'
3
+ itemCodenameAttribute: "data-codename",
4
+ linkItemCodenameAttribute: "data-item-codename",
5
+ assetCodenameAttribute: "data-asset-codename",
6
6
  },
7
7
  ids: {
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'
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: new RegExp(`<object(.+?)</object>`, 'gs'),
20
- imgTagRegex: new RegExp(`<img(.+?)</img>`, 'gs'),
21
- figureTagRegex: new RegExp(`<figure(.+?)</figure>`, 'gs'),
22
- linkTagRegex: new RegExp(`<a(.+?)</a>`, 'gs')
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 && (itemIdMatch?.length ?? 0) >= 2) {
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 && (assetIdMatch?.length ?? 0) >= 2) {
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 && (assetIdMatch?.length ?? 0) >= 2) {
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 && (itemIdMatch?.length ?? 0) >= 2) {
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 && (codenameMatch?.length ?? 0) >= 2) {
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 === 'exists') {
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 && (codenameMatch?.length ?? 0) >= 2) {
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 === 'exists') {
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 && (codenameMatch?.length ?? 0) >= 2) {
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 === 'exists') {
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 && (codenameMatch?.length ?? 0) >= 2) {
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 === 'exists') {
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":"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"}
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 '../../core/index.js';
2
- import type { ExportTransformFunc } from '../../export/index.js';
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 'chalk';
2
- import { findRequired, isArray, isNotUndefined, isString } from '../../core/index.js';
3
- import { richTextProcessor } from '../helpers/rich-text.processor.js';
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 === undefined || data.exportElement.value === null) {
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 Error(`Expected value to be a number, not array`);
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 Error(`Expected value to be an array`);
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
- if (assetState.asset) {
52
- // reference asset by codename
53
- return { codename: assetState.asset.codename };
54
- }
55
- else {
56
- throw Error(`Missing asset with id '${chalk.red(id)}'`);
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 Error(`Expected value to be an array`);
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 ?? 'n/a';
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
- else {
86
- throw Error(`Missing taxonomy term with id '${chalk.red(id)}'`);
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 Error(`Expected value to be an array`);
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
- if (itemState.item) {
108
- // reference item by codename
109
- return { codename: itemState.item.codename };
110
- }
111
- else {
112
- throw Error(`Missing item with id '${chalk.red(id)}'`);
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 ?? 'autogenerated'
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 Error(`Expected value to be an array`);
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 Error(`Invalid codename for multiple choice option '${chalk.red(option.name)}'`);
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 Error(`Expected value to be an array`);
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
- if (itemState.item) {
169
- // reference item by codename
170
- return { codename: itemState.item.codename };
171
- }
172
- else {
173
- throw Error(`Missing item with id '${chalk.red(id)}'`);
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).item;
215
+ const itemInEnv = context.getItemStateInSourceEnvironment(id).data;
202
216
  if (!itemInEnv) {
203
- throw Error(`Failed to get item with id '${chalk.red(id)}'`);
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).item;
228
+ const itemInEnv = context.getItemStateInSourceEnvironment(id).data;
212
229
  if (!itemInEnv) {
213
- throw Error(`Failed to get item with id '${chalk.red(id)}'`);
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).asset;
241
+ const assetInEnv = context.getAssetStateInSourceEnvironment(id).data;
222
242
  if (!assetInEnv) {
223
- throw Error(`Failed to get asset with id '${chalk.red(id)}'`);
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).asset;
254
+ const assetInEnv = context.getAssetStateInSourceEnvironment(id).data;
232
255
  if (!assetInEnv) {
233
- throw Error(`Failed to get asset with id '${chalk.red(id)}'`);
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