@kontent-ai/migration-toolkit 2.2.1 → 2.3.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 +10 -9
- package/dist/es2022/core/logs/loggers.js +4 -1
- package/dist/es2022/core/logs/loggers.js.map +1 -1
- package/dist/es2022/core/models/core.models.d.ts +12 -0
- package/dist/es2022/core/models/log.models.d.ts +2 -2
- package/dist/es2022/core/models/migration.models.d.ts +3 -3
- package/dist/es2022/core/models/migration.schema.d.ts +12 -12
- package/dist/es2022/core/models/migration.schema.js +2 -2
- package/dist/es2022/core/models/migration.schema.js.map +1 -1
- package/dist/es2022/core/utils/binary-data.utils.d.ts +4 -4
- package/dist/es2022/core/utils/binary-data.utils.js +2 -2
- package/dist/es2022/core/utils/binary-data.utils.js.map +1 -1
- package/dist/es2022/core/utils/global.utils.d.ts +3 -3
- package/dist/es2022/core/utils/global.utils.js +1 -1
- package/dist/es2022/core/utils/global.utils.js.map +1 -1
- package/dist/es2022/core/utils/http.utils.js +0 -3
- package/dist/es2022/core/utils/http.utils.js.map +1 -1
- package/dist/es2022/core/utils/management-client-utils.d.ts +1 -1
- package/dist/es2022/core/utils/processing-utils.d.ts +3 -3
- package/dist/es2022/core/utils/processing-utils.js +31 -4
- package/dist/es2022/core/utils/processing-utils.js.map +1 -1
- package/dist/es2022/export/context/export-context-fetcher.js +13 -7
- package/dist/es2022/export/context/export-context-fetcher.js.map +1 -1
- package/dist/es2022/export/export-manager.js +5 -4
- package/dist/es2022/export/export-manager.js.map +1 -1
- package/dist/es2022/file/file-manager.d.ts +3 -2
- package/dist/es2022/file/file-manager.js.map +1 -1
- package/dist/es2022/import/context/import-context-fetcher.js +14 -8
- package/dist/es2022/import/context/import-context-fetcher.js.map +1 -1
- package/dist/es2022/import/import-manager.d.ts +4 -0
- package/dist/es2022/import/import-manager.js +134 -5
- package/dist/es2022/import/import-manager.js.map +1 -1
- package/dist/es2022/import/import.models.d.ts +15 -5
- package/dist/es2022/import/importers/assets-importer.js.map +1 -1
- package/dist/es2022/import/importers/content-items-importer.d.ts +3 -3
- package/dist/es2022/import/importers/content-items-importer.js +11 -5
- package/dist/es2022/import/importers/content-items-importer.js.map +1 -1
- package/dist/es2022/import/importers/language-variant-importer.d.ts +4 -4
- package/dist/es2022/import/importers/language-variant-importer.js +4 -4
- package/dist/es2022/import/importers/language-variant-importer.js.map +1 -1
- package/dist/es2022/metadata.js +2 -2
- package/dist/es2022/node/cli/actions/import-action.js +3 -1
- package/dist/es2022/node/cli/actions/import-action.js.map +1 -1
- package/dist/es2022/toolkit/file.js +2 -2
- package/dist/es2022/toolkit/file.js.map +1 -1
- package/dist/es2022/toolkit/import.js +14 -2
- package/dist/es2022/toolkit/import.js.map +1 -1
- package/dist/es2022/translation/extraction/items-extraction.processor.d.ts +1 -1
- package/dist/es2022/translation/extraction/items-extraction.processor.js.map +1 -1
- package/dist/es2022/zip/zip-manager.d.ts +2 -2
- package/dist/es2022/zip/zip-manager.js.map +1 -1
- package/dist/es2022/zip/zip-packager.js +3 -4
- package/dist/es2022/zip/zip-packager.js.map +1 -1
- package/dist/es2022/zip/zip-transformer.js.map +1 -1
- package/dist/es2022/zip/zip.models.d.ts +4 -4
- package/lib/core/logs/loggers.ts +5 -1
- package/lib/core/models/core.models.ts +16 -0
- package/lib/core/models/log.models.ts +2 -2
- package/lib/core/models/migration.models.ts +3 -3
- package/lib/core/models/migration.schema.ts +2 -2
- package/lib/core/utils/binary-data.utils.ts +6 -6
- package/lib/core/utils/global.utils.ts +8 -5
- package/lib/core/utils/http.utils.ts +1 -4
- package/lib/core/utils/management-client-utils.ts +1 -1
- package/lib/core/utils/processing-utils.ts +48 -18
- package/lib/export/context/export-context-fetcher.ts +67 -60
- package/lib/export/export-manager.ts +58 -56
- package/lib/file/file-manager.ts +4 -3
- package/lib/import/context/import-context-fetcher.ts +18 -13
- package/lib/import/import-manager.ts +176 -12
- package/lib/import/import.models.ts +20 -4
- package/lib/import/importers/assets-importer.ts +3 -9
- package/lib/import/importers/content-items-importer.ts +18 -17
- package/lib/import/importers/language-variant-importer.ts +32 -34
- package/lib/metadata.ts +2 -2
- package/lib/node/cli/actions/import-action.ts +3 -1
- package/lib/toolkit/file.ts +2 -2
- package/lib/toolkit/import.ts +16 -2
- package/lib/translation/extraction/items-extraction.processor.ts +3 -3
- package/lib/zip/zip-manager.ts +2 -2
- package/lib/zip/zip-packager.ts +3 -4
- package/lib/zip/zip-transformer.ts +1 -1
- package/lib/zip/zip.models.ts +3 -3
- package/package.json +13 -13
|
@@ -5,6 +5,7 @@ export async function importActionAsync(argsFetcher) {
|
|
|
5
5
|
const environmentId = argsFetcher.getRequiredArgumentValue('targetEnvironmentId');
|
|
6
6
|
const apiKey = argsFetcher.getRequiredArgumentValue('targetApiKey');
|
|
7
7
|
const baseUrl = argsFetcher.getOptionalArgumentValue('baseUrl');
|
|
8
|
+
const createReportFile = argsFetcher.getBooleanArgumentValue('createReportFile', false);
|
|
8
9
|
const force = argsFetcher.getBooleanArgumentValue('force', false);
|
|
9
10
|
const filename = argsFetcher.getOptionalArgumentValue('filename') ?? defaultZipFilename;
|
|
10
11
|
await confirmImportAsync({
|
|
@@ -22,7 +23,8 @@ export async function importActionAsync(argsFetcher) {
|
|
|
22
23
|
data: importData,
|
|
23
24
|
baseUrl: baseUrl,
|
|
24
25
|
environmentId: environmentId,
|
|
25
|
-
apiKey: apiKey
|
|
26
|
+
apiKey: apiKey,
|
|
27
|
+
createReportFile: createReportFile
|
|
26
28
|
});
|
|
27
29
|
log.log({ type: 'completed', message: `Import has been successful` });
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-action.js","sourceRoot":"","sources":["../../../../../lib/node/cli/actions/import-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGtE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAgC;IACpE,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,WAAW,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,WAAW,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC;IAExF,MAAM,kBAAkB,CAAC;QACrB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,GAAG;KACd,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC;QAClC,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,QAAQ;KACrB,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC;QACd,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;QAChB,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"import-action.js","sourceRoot":"","sources":["../../../../../lib/node/cli/actions/import-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGtE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAgC;IACpE,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,WAAW,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,WAAW,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,WAAW,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC;IAExF,MAAM,kBAAkB,CAAC;QACrB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,GAAG;KACd,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC;QAClC,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,QAAQ;KACrB,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC;QACd,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;QAChB,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,MAAM;QACd,gBAAgB,EAAE,gBAAgB;KACrC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
1
|
+
import { Buffer as BufferProxy } from 'buffer';
|
|
2
2
|
import { defaultZipFilename, executeWithTrackingAsync, getDefaultLogger } from '../core/index.js';
|
|
3
3
|
import { fileManager } from '../file/index.js';
|
|
4
4
|
import { libMetadata } from '../metadata.js';
|
|
@@ -19,7 +19,7 @@ export async function storeAsync(config) {
|
|
|
19
19
|
},
|
|
20
20
|
func: async () => {
|
|
21
21
|
const zipData = await zipManager(logger).createZipAsync(config.data);
|
|
22
|
-
if (zipData instanceof
|
|
22
|
+
if (zipData instanceof BufferProxy) {
|
|
23
23
|
await fileManager(logger).writeFileAsync(filename, zipData);
|
|
24
24
|
}
|
|
25
25
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../lib/toolkit/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../lib/toolkit/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,gBAAgB,EAAyB,MAAM,kBAAkB,CAAC;AACzH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAa7C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAmB;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IAEvD,MAAM,wBAAwB,CAAO;QACjC,KAAK,EAAE;YACH,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;aAC/B;YACD,MAAM,EAAE,OAAO;YACf,oBAAoB,EAAE,SAAS;YAC/B,OAAO,EAAE,EAAE;SACd;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAErE,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;gBACjC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACJ,MAAM,KAAK,CAAC,iBAAiB,QAAQ,2DAA2D,CAAC,CAAC;YACtG,CAAC;QACL,CAAC;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;KACxB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAqB;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IAEvD,OAAO,MAAM,wBAAwB,CAAC;QAClC,KAAK,EAAE;YACH,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;aAC/B;YACD,MAAM,EAAE,SAAS;YACjB,oBAAoB,EAAE,SAAS;YAC/B,OAAO,EAAE,EAAE;SACd;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnE,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;KACxB,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { writeFile } from 'fs/promises';
|
|
1
3
|
import { executeWithTrackingAsync } from '../core/index.js';
|
|
2
|
-
import { importManager } from '../import/index.js';
|
|
4
|
+
import { importManager as _importManager } from '../import/index.js';
|
|
3
5
|
import { libMetadata } from '../metadata.js';
|
|
4
6
|
export async function importAsync(config) {
|
|
5
7
|
return await executeWithTrackingAsync({
|
|
@@ -14,7 +16,17 @@ export async function importAsync(config) {
|
|
|
14
16
|
details: {}
|
|
15
17
|
},
|
|
16
18
|
func: async () => {
|
|
17
|
-
|
|
19
|
+
const importManager = _importManager(config);
|
|
20
|
+
const importResult = await importManager.importAsync();
|
|
21
|
+
if (config.createReportFile) {
|
|
22
|
+
const reportFile = importManager.getReportFile(importResult);
|
|
23
|
+
await writeFile(reportFile.filename, reportFile.content);
|
|
24
|
+
config.logger?.log({
|
|
25
|
+
type: 'writeFs',
|
|
26
|
+
message: `Report '${chalk.yellow(reportFile.filename)}' was created`
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return importResult;
|
|
18
30
|
},
|
|
19
31
|
logger: config.logger
|
|
20
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../lib/toolkit/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAA8B,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../lib/toolkit/import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAA8B,aAAa,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAoB;IAClD,OAAO,MAAM,wBAAwB,CAAC;QAClC,KAAK,EAAE;YACH,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;aAC/B;YACD,MAAM,EAAE,QAAQ;YAChB,oBAAoB,EAAE,SAAS;YAC/B,OAAO,EAAE,EAAE;SACd;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YAEvD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBAC7D,MAAM,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;gBACzD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,WAAW,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe;iBACvE,CAAC,CAAC;YACP,CAAC;YAED,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;KACxB,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { GetFlattenedElementByIds } from 'lib/export/export.models.js';
|
|
|
3
3
|
import { MigrationElements, ReferencedDataInLanguageVariants, ReferencedDataInMigrationItems } from '../../core/index.js';
|
|
4
4
|
import { GetFlattenedElementByCodenames } from '../../import/index.js';
|
|
5
5
|
export interface ExtractItemById {
|
|
6
|
-
readonly elements: Readonly<ElementModels.ContentItemElement>[];
|
|
6
|
+
readonly elements: readonly Readonly<ElementModels.ContentItemElement>[];
|
|
7
7
|
readonly contentTypeId: string;
|
|
8
8
|
}
|
|
9
9
|
export interface ExtractItemByCodename {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"items-extraction.processor.js","sourceRoot":"","sources":["../../../../lib/translation/extraction/items-extraction.processor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"items-extraction.processor.js","sourceRoot":"","sources":["../../../../lib/translation/extraction/items-extraction.processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
1
|
+
import { Buffer as BufferProxy } from 'buffer';
|
|
2
2
|
import { Logger, MigrationData } from '../core/index.js';
|
|
3
3
|
import { FileBinaryData } from './zip.models.js';
|
|
4
4
|
export declare function zipManager(logger?: Logger): {
|
|
5
5
|
createZipAsync: (migrationData: MigrationData) => Promise<FileBinaryData>;
|
|
6
|
-
parseZipAsync: (zipFile:
|
|
6
|
+
parseZipAsync: (zipFile: BufferProxy) => Promise<MigrationData>;
|
|
7
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-manager.js","sourceRoot":"","sources":["../../../lib/zip/zip-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAyB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,UAAU,UAAU,CAAC,MAAe;IACtC,MAAM,WAAW,GAAG,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAEjD,MAAM,cAAc,GAAG,KAAK,EAAE,aAA4B,EAA2B,EAAE;QACnF,WAAW,CAAC,GAAG,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,sBAAsB;SAClC,CAAC,CAAC;QAEH,OAAO,MAAM,cAAc,CAAC,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACrG,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"zip-manager.js","sourceRoot":"","sources":["../../../lib/zip/zip-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAyB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,UAAU,UAAU,CAAC,MAAe;IACtC,MAAM,WAAW,GAAG,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAEjD,MAAM,cAAc,GAAG,KAAK,EAAE,aAA4B,EAA2B,EAAE;QACnF,WAAW,CAAC,GAAG,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,sBAAsB;SAClC,CAAC,CAAC;QAEH,OAAO,MAAM,cAAc,CAAC,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACrG,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,OAAoB,EAA0B,EAAE;QACzE,WAAW,CAAC,GAAG,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,kBAAkB;SAC9B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,MAAM,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;IACtE,CAAC,CAAC;IAEF,OAAO;QACH,cAAc;QACd,aAAa;KAChB,CAAC;AACN,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
1
|
+
import { Buffer as BufferProxy } from 'buffer';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { match } from 'ts-pattern';
|
|
4
4
|
import { exitProgram, formatBytes, getCurrentEnvironment, getDefaultLogger } from '../core/index.js';
|
|
@@ -13,7 +13,7 @@ export function zipPackager(jsZip) {
|
|
|
13
13
|
const getZipSizeInBytes = (zipData) => {
|
|
14
14
|
return match(zipData)
|
|
15
15
|
.when((data) => data instanceof Blob, (data) => data.size)
|
|
16
|
-
.when((data) => data instanceof
|
|
16
|
+
.when((data) => data instanceof BufferProxy, (data) => data.byteLength)
|
|
17
17
|
.otherwise(() => {
|
|
18
18
|
exitProgram({
|
|
19
19
|
message: `Unrecognized zip data type '${typeof zipData}'`
|
|
@@ -54,8 +54,7 @@ export function zipPackager(jsZip) {
|
|
|
54
54
|
return result;
|
|
55
55
|
},
|
|
56
56
|
async getBinaryDataAsync(filePath) {
|
|
57
|
-
|
|
58
|
-
return binaryData;
|
|
57
|
+
return await jsZip.file(filePath)?.async(getZipOutputType());
|
|
59
58
|
},
|
|
60
59
|
async getFileContentAsync(filePath) {
|
|
61
60
|
return await jsZip.file(filePath)?.async('string');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-packager.js","sourceRoot":"","sources":["../../../lib/zip/zip-packager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"zip-packager.js","sourceRoot":"","sources":["../../../lib/zip/zip-packager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAU,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAK7G,MAAM,UAAU,WAAW,CAAC,KAAY;IACpC,MAAM,gBAAgB,GAAG,GAA0B,EAAE;QACjD,OAAO,KAAK,CAAC,qBAAqB,EAAE,CAAC;aAChC,UAAU,EAAiB;aAC3B,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;aAC7B,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC;aAChC,UAAU,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,OAAuB,EAAU,EAAE;QAC1D,OAAO,KAAK,CAAC,OAAO,CAAC;aAChB,IAAI,CACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,IAAI,EAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CACtB;aACA,IAAI,CACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,WAAW,EACrC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAC5B;aACA,SAAS,CAAC,GAAG,EAAE;YACZ,WAAW,CAAC;gBACR,OAAO,EAAE,+BAA+B,OAAO,OAAO,GAAG;aAC5D,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO;QACH,OAAO,CAAC,QAAgB,EAAE,IAA6B;YACnD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,SAAS,CAAC,IAAY;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,MAAmE;YACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACnD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,gBAAgB,GAAwB,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;YAE3E,MAAM,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,4BAA4B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,6BAA6B,KAAK,CAAC,MAAM,CACrG,gBAAgB,CAAC,QAAQ,EAAE,CAC9B,GAAG;aACP,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;gBACrC,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,SAAS;gBACtB,kBAAkB,EAAE;oBAChB,KAAK,EAAE,gBAAgB;iBAC1B;gBACD,WAAW,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,+BAA+B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;aAClG,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,kBAAkB,CAAC,QAAgB;YACrC,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,QAAgB;YACtC,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-transformer.js","sourceRoot":"","sources":["../../../lib/zip/zip-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAKH,oBAAoB,EAEpB,wBAAwB,EACxB,gBAAgB,EAChB,QAAQ,EACX,MAAM,kBAAkB,CAAC;AAK1B,MAAM,UAAU,cAAc,CAAC,GAAgB,EAAE,MAAe;IAC5D,MAAM,WAAW,GAAW,MAAM,IAAI,gBAAgB,EAAE,CAAC;IACzD,MAAM,QAAQ,GAAW,YAAY,CAAC;IACtC,MAAM,cAAc,GAAW,aAAa,CAAC;IAC7C,MAAM,sBAAsB,GAAW,aAAa,CAAC;IAErD,MAAM,oBAAoB,GAAG,CAAC,KAAqB,
|
|
1
|
+
{"version":3,"file":"zip-transformer.js","sourceRoot":"","sources":["../../../lib/zip/zip-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
1
|
+
import { Buffer as BufferProxy } from 'buffer';
|
|
2
2
|
import { Logger } from '../core/index.js';
|
|
3
|
-
export type FileBinaryData =
|
|
3
|
+
export type FileBinaryData = BufferProxy | Blob;
|
|
4
4
|
export type ZipCompressionLevel = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
|
|
5
5
|
export type ZipPackager = {
|
|
6
6
|
addFile(filePath: string, data: string | FileBinaryData): void;
|
|
7
7
|
addFolder(name: string): ZipPackager;
|
|
8
8
|
generateZipAsync(config: {
|
|
9
|
-
logger?: Logger;
|
|
10
|
-
compressionLevel?: ZipCompressionLevel;
|
|
9
|
+
readonly logger?: Logger;
|
|
10
|
+
readonly compressionLevel?: ZipCompressionLevel;
|
|
11
11
|
}): Promise<FileBinaryData>;
|
|
12
12
|
getBinaryDataAsync(filePath: string): Promise<FileBinaryData | undefined>;
|
|
13
13
|
getFileContentAsync(filePath: string): Promise<string | undefined>;
|
package/lib/core/logs/loggers.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import chalk, { ChalkInstance } from 'chalk';
|
|
2
|
+
import { match, P } from 'ts-pattern';
|
|
2
3
|
import { Logger, LogSpinnerMessage } from '../models/log.models.js';
|
|
3
4
|
import { getCurrentEnvironment } from '../utils/global.utils.js';
|
|
4
|
-
import { match, P } from 'ts-pattern';
|
|
5
5
|
|
|
6
6
|
const originalWarn = console.warn;
|
|
7
7
|
|
|
@@ -55,6 +55,10 @@ const defaultBrowserLogger: Logger = {
|
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
function getLogDataMessage(data: LogSpinnerMessage): string {
|
|
58
|
+
if (!data.type) {
|
|
59
|
+
return data.message;
|
|
60
|
+
}
|
|
61
|
+
|
|
58
62
|
const color = match(data.type)
|
|
59
63
|
.returnType<ChalkInstance>()
|
|
60
64
|
.with('info', () => chalk.cyan)
|
|
@@ -145,3 +145,19 @@ export interface OriginalManagementError {
|
|
|
145
145
|
};
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
|
+
|
|
149
|
+
export type ItemProcessingResult<InputItem, OutputItem> =
|
|
150
|
+
| {
|
|
151
|
+
readonly state: 'valid';
|
|
152
|
+
readonly inputItem: InputItem;
|
|
153
|
+
readonly outputItem: OutputItem;
|
|
154
|
+
}
|
|
155
|
+
| {
|
|
156
|
+
readonly state: 'error';
|
|
157
|
+
readonly inputItem: InputItem;
|
|
158
|
+
readonly error: unknown;
|
|
159
|
+
}
|
|
160
|
+
| {
|
|
161
|
+
readonly state: '404';
|
|
162
|
+
readonly inputItem: InputItem;
|
|
163
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MapiAction, MapiType, MigrationItemType } from '../index.js';
|
|
2
2
|
|
|
3
3
|
export type DebugType =
|
|
4
4
|
| 'error'
|
|
@@ -17,7 +17,7 @@ export type DebugType =
|
|
|
17
17
|
| MapiAction;
|
|
18
18
|
|
|
19
19
|
export interface LogMessage {
|
|
20
|
-
readonly type
|
|
20
|
+
readonly type?: DebugType;
|
|
21
21
|
readonly message: string;
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -26,13 +26,13 @@ export namespace MigrationElementModels {
|
|
|
26
26
|
|
|
27
27
|
export type TextElement = MigrationElementDef<'text', string>;
|
|
28
28
|
export type NumberElement = MigrationElementDef<'number', number>;
|
|
29
|
-
export type RichTextElement = MigrationElementDef<'rich_text', string>;
|
|
29
|
+
export type RichTextElement = MigrationElementDef<'rich_text', string> & Pick<MigrationElement, 'components'>;
|
|
30
30
|
export type MultipleChoiceElement = MigrationElementDef<'multiple_choice', MigrationReference[]>;
|
|
31
|
-
export type DateTimeElement = MigrationElementDef<'date_time', string>;
|
|
31
|
+
export type DateTimeElement = MigrationElementDef<'date_time', string> & Pick<MigrationElement, 'display_timezone'>;
|
|
32
32
|
export type AssetElement = MigrationElementDef<'asset', MigrationReference[]>;
|
|
33
33
|
export type LinkedItemsElement = MigrationElementDef<'modular_content', MigrationReference[]>;
|
|
34
34
|
export type TaxonomyElement = MigrationElementDef<'taxonomy', MigrationReference[]>;
|
|
35
|
-
export type UrlSlugElement = MigrationElementDef<'url_slug', string>;
|
|
35
|
+
export type UrlSlugElement = MigrationElementDef<'url_slug', string> & Pick<MigrationElement, 'mode'>;
|
|
36
36
|
export type CustomElement = MigrationElementDef<'custom', string>;
|
|
37
37
|
export type SubpagesElement = MigrationElementDef<'subpages', MigrationReference[]>;
|
|
38
38
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
1
|
+
import { Buffer as BufferProxy } from 'buffer';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
interface Elements {
|
|
@@ -145,7 +145,7 @@ const BaseMigrationAssetSchema = z.strictObject({
|
|
|
145
145
|
});
|
|
146
146
|
|
|
147
147
|
export const MigrationAssetSchema = BaseMigrationAssetSchema.extend({
|
|
148
|
-
binary_data: z.union([z.instanceof(
|
|
148
|
+
binary_data: z.union([z.instanceof(BufferProxy), z.instanceof(Blob)])
|
|
149
149
|
}).readonly();
|
|
150
150
|
|
|
151
151
|
export const ZipMigrationAssetSchema = BaseMigrationAssetSchema.extend({
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FileBinaryData } from '../../zip/index.js';
|
|
2
2
|
import { defaultHttpService, defaultRetryStrategy } from './http.utils.js';
|
|
3
3
|
|
|
4
|
-
export async function getBinaryDataFromUrlAsync(url: string): Promise<{ data:
|
|
4
|
+
export async function getBinaryDataFromUrlAsync(url: string): Promise<{ readonly data: FileBinaryData; readonly contentLength: number }> {
|
|
5
5
|
// temp fix for Kontent.ai Repository not validating url
|
|
6
|
-
|
|
6
|
+
const fixedUrl = url.replace('#', '%23');
|
|
7
7
|
|
|
8
|
-
const response = await defaultHttpService.getAsync<
|
|
8
|
+
const response = await defaultHttpService.getAsync<FileBinaryData>(
|
|
9
9
|
{
|
|
10
|
-
url
|
|
10
|
+
url: fixedUrl
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
responseType: 'arraybuffer',
|
|
@@ -20,6 +20,6 @@ export async function getBinaryDataFromUrlAsync(url: string): Promise<{ data: Bu
|
|
|
20
20
|
return { data: response.data, contentLength: contentLength };
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export function geSizeInBytes(data:
|
|
23
|
+
export function geSizeInBytes(data: FileBinaryData): number {
|
|
24
24
|
return data instanceof Blob ? data.size : data.byteLength;
|
|
25
25
|
}
|
|
@@ -11,7 +11,7 @@ export type Writeable<T> = { -readonly [P in keyof T]: T[P] };
|
|
|
11
11
|
export const isNotUndefined = <T>(item: T | undefined): item is T => item !== undefined;
|
|
12
12
|
|
|
13
13
|
export function formatBytes(bytes: number): string {
|
|
14
|
-
return format(bytes);
|
|
14
|
+
return format(bytes) ?? 'n/a';
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export function sleepAsync(ms: number): Promise<void> {
|
|
@@ -36,9 +36,9 @@ export function getCurrentEnvironment(): EnvContext {
|
|
|
36
36
|
export const defaultZipFilename: string = 'data.zip';
|
|
37
37
|
|
|
38
38
|
export async function executeWithTrackingAsync<TResult>(data: {
|
|
39
|
-
func: () => Promise<TResult extends void ? void : Readonly<TResult>>;
|
|
40
|
-
event: Readonly<ITrackingEventData>;
|
|
41
|
-
logger?: Logger;
|
|
39
|
+
readonly func: () => Promise<TResult extends void ? void : Readonly<TResult>>;
|
|
40
|
+
readonly event: Readonly<ITrackingEventData>;
|
|
41
|
+
readonly logger?: Logger;
|
|
42
42
|
}): Promise<TResult extends void ? void : Readonly<TResult>> {
|
|
43
43
|
const trackingService = getTrackingService();
|
|
44
44
|
const logger = data.logger ?? getDefaultLogger();
|
|
@@ -83,7 +83,10 @@ export async function executeWithTrackingAsync<TResult>(data: {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
async function runTrackingFuncWithErrorHadlingAsync<T>(data: {
|
|
86
|
+
async function runTrackingFuncWithErrorHadlingAsync<T>(data: {
|
|
87
|
+
readonly func: () => Promise<T>;
|
|
88
|
+
readonly logger: Logger;
|
|
89
|
+
}): Promise<T | void> {
|
|
87
90
|
try {
|
|
88
91
|
return await data.func();
|
|
89
92
|
} catch (trackingError) {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { HttpService, IRetryStrategyOptions } from '@kontent-ai/core-sdk';
|
|
2
|
-
import { OriginalManagementError } from '../models/core.models.js';
|
|
3
2
|
import { match } from 'ts-pattern';
|
|
3
|
+
import { OriginalManagementError } from '../models/core.models.js';
|
|
4
4
|
|
|
5
5
|
const rateExceededErrorCode: number = 10000;
|
|
6
|
-
const notFoundErrorCode: number = 10000;
|
|
7
6
|
|
|
8
7
|
export const defaultHttpService: Readonly<HttpService> = new HttpService({
|
|
9
8
|
logErrorsToConsole: false
|
|
@@ -19,8 +18,6 @@ export const defaultRetryStrategy: Readonly<IRetryStrategyOptions> = {
|
|
|
19
18
|
match(errorCode)
|
|
20
19
|
// retry rate exceeded error
|
|
21
20
|
.with(rateExceededErrorCode, () => true)
|
|
22
|
-
// do not retry errors indicating resource does not exist
|
|
23
|
-
.with(notFoundErrorCode, () => false)
|
|
24
21
|
// if error code is set, do not retry the request
|
|
25
22
|
.when(
|
|
26
23
|
(errorCode) => errorCode >= 0,
|
|
@@ -27,7 +27,7 @@ export interface ManagementClientConfig {
|
|
|
27
27
|
readonly baseUrl?: string;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export function getMigrationManagementClient(config: ManagementClientConfig): ManagementClient {
|
|
30
|
+
export function getMigrationManagementClient(config: ManagementClientConfig): Readonly<ManagementClient> {
|
|
31
31
|
return createManagementClient({
|
|
32
32
|
environmentId: config.environmentId,
|
|
33
33
|
retryStrategy: config.retryStrategy ?? defaultRetryStrategy,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import pLimit from 'p-limit';
|
|
3
|
-
import { ItemInfo } from '../models/core.models.js';
|
|
3
|
+
import { ItemInfo, ItemProcessingResult } from '../models/core.models.js';
|
|
4
4
|
import { LogSpinnerData, Logger } from '../models/log.models.js';
|
|
5
5
|
|
|
6
6
|
type ProcessSetAction =
|
|
@@ -19,9 +19,9 @@ export async function processItemsAsync<InputItem, OutputItem>(data: {
|
|
|
19
19
|
readonly logger: Logger;
|
|
20
20
|
readonly items: Readonly<InputItem[]>;
|
|
21
21
|
readonly parallelLimit: number;
|
|
22
|
-
readonly processAsync: (item: Readonly<InputItem>, logSpinner: LogSpinnerData) => Promise<Readonly<OutputItem
|
|
22
|
+
readonly processAsync: (item: Readonly<InputItem>, logSpinner: LogSpinnerData) => Promise<Readonly<OutputItem> | '404'>;
|
|
23
23
|
readonly itemInfo: (item: Readonly<InputItem>) => ItemInfo;
|
|
24
|
-
}): Promise<readonly OutputItem[]> {
|
|
24
|
+
}): Promise<readonly ItemProcessingResult<InputItem, OutputItem>[]> {
|
|
25
25
|
if (!data.items.length) {
|
|
26
26
|
return [];
|
|
27
27
|
}
|
|
@@ -32,21 +32,43 @@ export async function processItemsAsync<InputItem, OutputItem>(data: {
|
|
|
32
32
|
const limit = pLimit(data.parallelLimit);
|
|
33
33
|
let processedItemsCount: number = 1;
|
|
34
34
|
|
|
35
|
-
const requests: Promise<OutputItem
|
|
35
|
+
const requests: Promise<ItemProcessingResult<InputItem, OutputItem>>[] = data.items.map((item) =>
|
|
36
36
|
limit(() => {
|
|
37
|
-
return data
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
return data
|
|
38
|
+
.processAsync(item, logSpinner)
|
|
39
|
+
.then<OutputItem | '404'>((output) => {
|
|
40
|
+
const itemInfo = data.itemInfo(item);
|
|
41
|
+
const prefix = getPercentagePrefix(processedItemsCount, data.items.length);
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
logSpinner({
|
|
44
|
+
prefix: prefix,
|
|
45
|
+
message: itemInfo.title,
|
|
46
|
+
type: itemInfo.itemType
|
|
47
|
+
});
|
|
46
48
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
processedItemsCount++;
|
|
50
|
+
return output;
|
|
51
|
+
})
|
|
52
|
+
.then<ItemProcessingResult<InputItem, OutputItem>>((outputItem) => {
|
|
53
|
+
if (outputItem === '404') {
|
|
54
|
+
return {
|
|
55
|
+
state: '404',
|
|
56
|
+
inputItem: item
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
inputItem: item,
|
|
61
|
+
outputItem: outputItem,
|
|
62
|
+
state: 'valid'
|
|
63
|
+
};
|
|
64
|
+
})
|
|
65
|
+
.catch<ItemProcessingResult<InputItem, OutputItem>>((error) => {
|
|
66
|
+
return {
|
|
67
|
+
state: 'error',
|
|
68
|
+
inputItem: item,
|
|
69
|
+
error: error
|
|
70
|
+
};
|
|
71
|
+
});
|
|
50
72
|
})
|
|
51
73
|
);
|
|
52
74
|
|
|
@@ -58,11 +80,19 @@ export async function processItemsAsync<InputItem, OutputItem>(data: {
|
|
|
58
80
|
});
|
|
59
81
|
|
|
60
82
|
// Only '<parallelLimit>' promises at a time
|
|
61
|
-
const
|
|
83
|
+
const resultItems = await Promise.all(requests);
|
|
84
|
+
|
|
85
|
+
const failedItemsCount = resultItems.filter((m) => m.state === 'error').length;
|
|
86
|
+
const failedText = failedItemsCount ? ` Failed '${chalk.red(failedItemsCount)}' items` : ``;
|
|
62
87
|
|
|
63
|
-
logSpinner({
|
|
88
|
+
logSpinner({
|
|
89
|
+
type: 'info',
|
|
90
|
+
message: `Completed '${chalk.yellow(data.action)}'. Successfully processed '${chalk.green(
|
|
91
|
+
resultItems.filter((m) => m.state === 'valid').length
|
|
92
|
+
)}' items.${failedText}`
|
|
93
|
+
});
|
|
64
94
|
|
|
65
|
-
return
|
|
95
|
+
return resultItems;
|
|
66
96
|
});
|
|
67
97
|
}
|
|
68
98
|
|