@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,139 +1,143 @@
1
- import type { ContentItemModels, ManagementClient } from '@kontent-ai/management-sdk';
2
- import chalk from 'chalk';
3
- import type { LogSpinnerData, Logger, MigrationItem } from '../../core/index.js';
4
- import { findRequired, processItemsAsync, runMapiRequestAsync } from '../../core/index.js';
5
- import type { ImportContext, ImportedItem } from '../import.models.js';
1
+ import type { ContentItemModels, ManagementClient } from "@kontent-ai/management-sdk";
2
+ import chalk from "chalk";
3
+ import type { Logger, LogSpinnerData } from "../../core/models/log.models.js";
4
+ import type { MigrationItem } from "../../core/models/migration.models.js";
5
+ import { findRequired } from "../../core/utils/array.utils.js";
6
+ import { processItemsAsync } from "../../core/utils/processing-utils.js";
7
+ import { runMapiRequestAsync } from "../../core/utils/run.utils.js";
8
+ import type { ImportContext, ImportedItem } from "../import.models.js";
6
9
 
7
10
  export function contentItemsImporter(data: {
8
- readonly logger: Logger;
9
- readonly client: Readonly<ManagementClient>;
10
- readonly importContext: ImportContext;
11
+ readonly logger: Logger;
12
+ readonly client: Readonly<ManagementClient>;
13
+ readonly importContext: ImportContext;
11
14
  }) {
12
- const shouldUpdateContentItem = (migrationItem: MigrationItem, contentItem: Readonly<ContentItemModels.ContentItem>): boolean => {
13
- const collection = findRequired(
14
- data.importContext.environmentData.collections,
15
- (collection) => collection.id === contentItem.collection.id,
16
- `Invalid collection with id '${contentItem.collection.id}' for content item '${contentItem.codename}'`
17
- );
15
+ const shouldUpdateContentItem = (migrationItem: MigrationItem, contentItem: Readonly<ContentItemModels.ContentItem>): boolean => {
16
+ const collection = findRequired(
17
+ data.importContext.environmentData.collections,
18
+ (collection) => collection.id === contentItem.collection.id,
19
+ `Invalid collection with id '${contentItem.collection.id}' for content item '${contentItem.codename}'`,
20
+ );
18
21
 
19
- return migrationItem.system.name !== contentItem.name || migrationItem.system.collection.codename !== collection.codename;
20
- };
22
+ return migrationItem.system.name !== contentItem.name || migrationItem.system.collection.codename !== collection.codename;
23
+ };
21
24
 
22
- const prepareContentItemAsync = async (
23
- logSpinner: LogSpinnerData,
24
- migrationItem: MigrationItem
25
- ): Promise<{ contentItem: Readonly<ContentItemModels.ContentItem>; status: 'created' | 'itemAlreadyExists' }> => {
26
- const itemStateInTargetEnv = data.importContext.getItemStateInTargetEnvironment(migrationItem.system.codename);
25
+ const prepareContentItemAsync = async (
26
+ logSpinner: LogSpinnerData,
27
+ migrationItem: MigrationItem,
28
+ ): Promise<{ contentItem: Readonly<ContentItemModels.ContentItem>; status: "created" | "itemAlreadyExists" }> => {
29
+ const itemStateInTargetEnv = data.importContext.getItemStateInTargetEnvironment(migrationItem.system.codename);
27
30
 
28
- if (itemStateInTargetEnv.state === 'exists' && itemStateInTargetEnv.item) {
29
- return {
30
- contentItem: itemStateInTargetEnv.item,
31
- status: 'itemAlreadyExists'
32
- };
33
- }
31
+ if (itemStateInTargetEnv.state === "exists" && itemStateInTargetEnv.item) {
32
+ return {
33
+ contentItem: itemStateInTargetEnv.item,
34
+ status: "itemAlreadyExists",
35
+ };
36
+ }
34
37
 
35
- const createdContentItem = await runMapiRequestAsync({
36
- logger: data.logger,
37
- func: async () =>
38
- (
39
- await data.client
40
- .addContentItem()
41
- .withData({
42
- name: migrationItem.system.name,
43
- type: {
44
- codename: migrationItem.system.type.codename
45
- },
46
- external_id: itemStateInTargetEnv.externalIdToUse,
47
- codename: migrationItem.system.codename,
48
- collection: {
49
- codename: migrationItem.system.collection.codename
50
- }
51
- })
52
- .toPromise()
53
- ).data,
54
- action: 'create',
55
- type: 'contentItem',
56
- logSpinner: logSpinner,
57
- itemName: `${migrationItem.system.codename} (${migrationItem.system.language.codename})`
58
- });
38
+ const createdContentItem = await runMapiRequestAsync({
39
+ logger: data.logger,
40
+ func: async () =>
41
+ (
42
+ await data.client
43
+ .addContentItem()
44
+ .withData({
45
+ name: migrationItem.system.name,
46
+ type: {
47
+ codename: migrationItem.system.type.codename,
48
+ },
49
+ external_id: itemStateInTargetEnv.externalIdToUse,
50
+ codename: migrationItem.system.codename,
51
+ collection: {
52
+ codename: migrationItem.system.collection.codename,
53
+ },
54
+ })
55
+ .toPromise()
56
+ ).data,
57
+ action: "create",
58
+ type: "contentItem",
59
+ logSpinner: logSpinner,
60
+ itemName: `${migrationItem.system.codename} (${migrationItem.system.language.codename})`,
61
+ });
59
62
 
60
- return {
61
- contentItem: createdContentItem,
62
- status: 'created'
63
- };
64
- };
63
+ return {
64
+ contentItem: createdContentItem,
65
+ status: "created",
66
+ };
67
+ };
65
68
 
66
- const importContentItemAsync = async (
67
- logSpinner: LogSpinnerData,
68
- migrationItem: MigrationItem
69
- ): Promise<Readonly<ContentItemModels.ContentItem>> => {
70
- const preparedContentItemResult = await prepareContentItemAsync(logSpinner, migrationItem);
69
+ const importContentItemAsync = async (
70
+ logSpinner: LogSpinnerData,
71
+ migrationItem: MigrationItem,
72
+ ): Promise<Readonly<ContentItemModels.ContentItem>> => {
73
+ const preparedContentItemResult = await prepareContentItemAsync(logSpinner, migrationItem);
71
74
 
72
- // check if name should be updated, no other changes are supported
73
- if (preparedContentItemResult.status === 'itemAlreadyExists') {
74
- if (shouldUpdateContentItem(migrationItem, preparedContentItemResult.contentItem)) {
75
- await runMapiRequestAsync({
76
- logger: data.logger,
77
- func: async () => {
78
- await data.client
79
- .upsertContentItem()
80
- .byItemCodename(migrationItem.system.codename)
81
- .withData({
82
- name: migrationItem.system.name,
83
- collection: {
84
- codename: migrationItem.system.collection.codename
85
- }
86
- })
87
- .toPromise();
88
- },
89
- action: 'upsert',
90
- type: 'contentItem',
91
- logSpinner: logSpinner,
92
- itemName: `${migrationItem.system.codename} (${migrationItem.system.language.codename})`
93
- });
94
- }
95
- }
75
+ // check if name should be updated, no other changes are supported
76
+ if (preparedContentItemResult.status === "itemAlreadyExists") {
77
+ if (shouldUpdateContentItem(migrationItem, preparedContentItemResult.contentItem)) {
78
+ await runMapiRequestAsync({
79
+ logger: data.logger,
80
+ func: async () => {
81
+ await data.client
82
+ .upsertContentItem()
83
+ .byItemCodename(migrationItem.system.codename)
84
+ .withData({
85
+ name: migrationItem.system.name,
86
+ collection: {
87
+ codename: migrationItem.system.collection.codename,
88
+ },
89
+ })
90
+ .toPromise();
91
+ },
92
+ action: "upsert",
93
+ type: "contentItem",
94
+ logSpinner: logSpinner,
95
+ itemName: `${migrationItem.system.codename} (${migrationItem.system.language.codename})`,
96
+ });
97
+ }
98
+ }
96
99
 
97
- return preparedContentItemResult.contentItem;
98
- };
100
+ return preparedContentItemResult.contentItem;
101
+ };
99
102
 
100
- const importAsync = async (): Promise<readonly ImportedItem[]> => {
101
- // Only import unique content items based on their codename. The input may contain items in various language variants which share
102
- // the same underlying content item.
103
- const contentItemsToImport = data.importContext.categorizedImportData.contentItems.reduce<Readonly<MigrationItem[]>>(
104
- (filteredItems, item) => {
105
- if (filteredItems.some((m) => m.system.codename === item.system.codename)) {
106
- return filteredItems;
107
- }
103
+ const importAsync = async (): Promise<readonly ImportedItem[]> => {
104
+ // Only import unique content items based on their codename. The input may contain items in various language variants which share
105
+ // the same underlying content item.
106
+ const contentItemsToImport = data.importContext.categorizedImportData.contentItems.reduce<MigrationItem[]>(
107
+ (filteredItems, item) => {
108
+ if (filteredItems.some((m) => m.system.codename === item.system.codename)) {
109
+ return filteredItems;
110
+ }
108
111
 
109
- return [...filteredItems, item];
110
- },
111
- []
112
- );
112
+ filteredItems.push(item);
113
+ return filteredItems;
114
+ },
115
+ [],
116
+ );
113
117
 
114
- data.logger.log({
115
- type: 'info',
116
- message: `Importing '${chalk.yellow(contentItemsToImport.length.toString())}' content items`
117
- });
118
+ data.logger.log({
119
+ type: "info",
120
+ message: `Importing '${chalk.yellow(contentItemsToImport.length.toString())}' content items`,
121
+ });
118
122
 
119
- return await processItemsAsync<MigrationItem, Readonly<ContentItemModels.ContentItem>>({
120
- action: 'Importing content items',
121
- logger: data.logger,
122
- parallelLimit: 1,
123
- items: contentItemsToImport,
124
- itemInfo: (item) => {
125
- return {
126
- itemType: 'contentItem',
127
- title: `${item.system.codename} -> ${item.system.type.codename}`
128
- };
129
- },
130
- processAsync: async (item, logSpinner) => {
131
- return await importContentItemAsync(logSpinner, item);
132
- }
133
- });
134
- };
123
+ return await processItemsAsync<MigrationItem, Readonly<ContentItemModels.ContentItem>>({
124
+ action: "Importing content items",
125
+ logger: data.logger,
126
+ parallelLimit: 1,
127
+ items: contentItemsToImport,
128
+ itemInfo: (item) => {
129
+ return {
130
+ itemType: "contentItem",
131
+ title: `${item.system.codename} -> ${item.system.type.codename}`,
132
+ };
133
+ },
134
+ processAsync: async (item, logSpinner) => {
135
+ return await importContentItemAsync(logSpinner, item);
136
+ },
137
+ });
138
+ };
135
139
 
136
- return {
137
- importAsync
138
- };
140
+ return {
141
+ importAsync,
142
+ };
139
143
  }