@kontent-ai/migration-toolkit 3.0.0-0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/core/models/core.models.d.ts +2 -0
  2. package/dist/core/models/error.models.d.ts +12 -0
  3. package/dist/core/models/error.models.js +79 -0
  4. package/dist/core/models/error.models.js.map +1 -1
  5. package/dist/core/models/migration.models.d.ts +4 -6
  6. package/dist/core/utils/confirm.utils.d.ts +2 -0
  7. package/dist/core/utils/confirm.utils.js +72 -5
  8. package/dist/core/utils/confirm.utils.js.map +1 -1
  9. package/dist/core/utils/error.utils.js +1 -1
  10. package/dist/core/utils/error.utils.js.map +1 -1
  11. package/dist/core/utils/management-client-utils.js +3 -0
  12. package/dist/core/utils/management-client-utils.js.map +1 -1
  13. package/dist/core/utils/try.utils.d.ts +14 -0
  14. package/dist/core/utils/try.utils.js +18 -0
  15. package/dist/core/utils/try.utils.js.map +1 -0
  16. package/dist/export/export-manager.js +32 -27
  17. package/dist/export/export-manager.js.map +1 -1
  18. package/dist/node/cli/actions/export-action.js +1 -0
  19. package/dist/node/cli/actions/export-action.js.map +1 -1
  20. package/dist/node/cli/actions/migrate-action.js +1 -0
  21. package/dist/node/cli/actions/migrate-action.js.map +1 -1
  22. package/lib/core/models/core.models.ts +2 -0
  23. package/lib/core/models/error.models.ts +107 -0
  24. package/lib/core/models/migration.models.ts +3 -6
  25. package/lib/core/utils/confirm.utils.ts +88 -11
  26. package/lib/core/utils/error.utils.ts +1 -1
  27. package/lib/core/utils/management-client-utils.ts +3 -0
  28. package/lib/core/utils/try.utils.ts +30 -0
  29. package/lib/export/export-manager.ts +39 -22
  30. package/lib/node/cli/actions/export-action.ts +1 -0
  31. package/lib/node/cli/actions/migrate-action.ts +1 -0
  32. package/package.json +3 -3
@@ -81,12 +81,14 @@ export interface PackageDataOverview {
81
81
  }
82
82
  export interface FlattenedContentTypeElement {
83
83
  readonly codename: string;
84
+ readonly name: string | undefined;
84
85
  readonly id: string;
85
86
  readonly type: MigrationElementType;
86
87
  readonly element: Readonly<ContentTypeElements.ContentTypeElementModel>;
87
88
  }
88
89
  export interface FlattenedContentType {
89
90
  readonly contentTypeCodename: string;
91
+ readonly name: string;
90
92
  readonly contentTypeId: string;
91
93
  readonly elements: readonly FlattenedContentTypeElement[];
92
94
  }
@@ -1,3 +1,5 @@
1
+ import type { ExportItem, ExportItemVersion } from "../../export/export.models.js";
2
+ import type { ErrorData, FlattenedContentType, FlattenedContentTypeElement } from "./core.models.js";
1
3
  export type MigrationToolkitErrorType = "confirmationRefused" | "invalidZip" | "invalidFolder" | "unsupportedCommand" | "importFailedForItem" | "invalidElement" | "exportFailedForItem" | "missingContentType" | "invalidEnvironment" | "exitProgram" | "missingItem" | "findRequiredError" | "missingWorkflowStep" | "missingAsset" | "missingTaxonomyTerm" | "invalidValue" | "invalidMultipleChoiceOption";
2
4
  export declare class MigrationToolkitError extends Error {
3
5
  readonly type: MigrationToolkitErrorType;
@@ -12,3 +14,13 @@ export declare class MissingAssetError extends MigrationToolkitError {
12
14
  readonly id: string;
13
15
  constructor(id: string);
14
16
  }
17
+ export declare class InvalidValueError extends MigrationToolkitError {
18
+ constructor({ element, value, contentType, errorData, exportItem, exportItemVersion, }: {
19
+ readonly exportItem: ExportItem;
20
+ readonly exportItemVersion: ExportItemVersion;
21
+ readonly element: FlattenedContentTypeElement;
22
+ readonly contentType: FlattenedContentType;
23
+ readonly value: unknown;
24
+ readonly errorData: ErrorData;
25
+ });
26
+ }
@@ -1,4 +1,6 @@
1
1
  import chalk from "chalk";
2
+ import { match, P } from "ts-pattern";
3
+ const missingReferencesMessage = `You can skip missing references using the '${chalk.green("skipMissingReferences")}' option.`;
2
4
  export class MigrationToolkitError extends Error {
3
5
  type;
4
6
  message;
@@ -22,4 +24,81 @@ export class MissingAssetError extends MigrationToolkitError {
22
24
  this.id = id;
23
25
  }
24
26
  }
27
+ export class InvalidValueError extends MigrationToolkitError {
28
+ constructor({ element, value, contentType, errorData, exportItem, exportItemVersion, }) {
29
+ const { missingReferenceId, isMissingReference } = match(errorData.error)
30
+ .returnType()
31
+ .when((m) => m instanceof MissingAssetError || m instanceof MissingItemError, (m) => {
32
+ return {
33
+ missingReferenceId: m.id,
34
+ isMissingReference: true,
35
+ };
36
+ })
37
+ .otherwise(() => {
38
+ return {
39
+ missingReferenceId: undefined,
40
+ isMissingReference: false,
41
+ };
42
+ });
43
+ const getValueToDisplay = () => {
44
+ let jsonValue;
45
+ try {
46
+ jsonValue = JSON.stringify(value, null, 2);
47
+ }
48
+ catch {
49
+ jsonValue = undefined;
50
+ }
51
+ const baseValue = match(jsonValue)
52
+ .returnType()
53
+ .with(P.string, (jsonValue) => jsonValue
54
+ .split("\n")
55
+ .map((line) => ` ${line}`)
56
+ .join("\n"))
57
+ .otherwise(() => value?.toString() ?? "");
58
+ // Highlight missing reference ID in red if present
59
+ return missingReferenceId ? baseValue.replaceAll(missingReferenceId, chalk.red(missingReferenceId)) : baseValue;
60
+ };
61
+ const lines = [
62
+ "",
63
+ chalk.red("❌ Invalid value error"),
64
+ "",
65
+ `${chalk.cyan("📝 Content type:")}`,
66
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(contentType.name)}`,
67
+ ` ${chalk.gray("├─")} Codename: ${chalk.yellow.bold(contentType.contentTypeCodename)}`,
68
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(contentType.contentTypeId)}`,
69
+ "",
70
+ `${chalk.cyan("🔧 Element:")}`,
71
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(element.name)}`,
72
+ ` ${chalk.gray("├─")} Codename: ${chalk.yellow.bold(element.codename)}`,
73
+ ` ${chalk.gray("├─")} Type: ${chalk.green.bold(element.type)}`,
74
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(element.id)}`,
75
+ "",
76
+ `${chalk.cyan("📦 Item:")}`,
77
+ ` ${chalk.gray("├─")} Item codename: ${chalk.yellow.bold(exportItem.requestItem.itemCodename)}`,
78
+ ` ${chalk.gray("├─")} Language codename: ${chalk.yellow.bold(exportItem.requestItem.languageCodename)}`,
79
+ ` ${chalk.gray("└─")} Version codename: ${chalk.yellow.bold(exportItemVersion.workflowStepCodename)}`,
80
+ "",
81
+ `${chalk.cyan("📦 Item version:")}`,
82
+ ` ${chalk.gray("├─")} Workflow step codename: ${chalk.yellow.bold(exportItemVersion.workflowStepCodename)}`,
83
+ ` ${chalk.gray("└─")} Language variant: ${chalk.yellow.bold(exportItemVersion.languageVariant.language.codename)}`,
84
+ "",
85
+ chalk.cyan("Invalid Value:"),
86
+ chalk.dim(getValueToDisplay()),
87
+ "",
88
+ ...match(errorData.message)
89
+ .returnType()
90
+ .with(P.string, (message) => [chalk.cyan("Error Details:"), chalk.gray(` ${message}`), ""])
91
+ .otherwise(() => []),
92
+ ...match(errorData.requestUrl)
93
+ .returnType()
94
+ .with(P.string, (requestUrl) => [chalk.cyan("Request URL:"), chalk.gray(` ${requestUrl}`), ""])
95
+ .otherwise(() => []),
96
+ ...match(isMissingReference)
97
+ .returnType()
98
+ .with(true, () => [chalk.cyan("💡 Tip:"), chalk.gray(` ${missingReferencesMessage}`), ""])
99
+ .otherwise(() => []),
100
+ ];
101
+ super("invalidValue", lines.join("\n"));
102
+ }
103
+ }
25
104
  //# sourceMappingURL=error.models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.models.js","sourceRoot":"","sources":["../../../lib/core/models/error.models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAE9B;IACP;IAFV,YACiB,IAA+B,EACtC,OAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAA2B;QACtC,YAAO,GAAP,OAAO,CAAQ;IAGzB,CAAC;CACD;AAED,MAAM,OAAO,gBAAiB,SAAQ,qBAAqB;IAC9B;IAA5B,YAA4B,EAAU;QACrC,KAAK,CAAC,aAAa,EAAE,yBAAyB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QADrC,OAAE,GAAF,EAAE,CAAQ;IAEtC,CAAC;CACD;AAED,MAAM,OAAO,iBAAkB,SAAQ,qBAAqB;IAC/B;IAA5B,YAA4B,EAAU;QACrC,KAAK,CAAC,cAAc,EAAE,0BAA0B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QADvC,OAAE,GAAF,EAAE,CAAQ;IAEtC,CAAC;CACD"}
1
+ {"version":3,"file":"error.models.js","sourceRoot":"","sources":["../../../lib/core/models/error.models.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { z } from "zod";
2
- import type { MigrationAssetDescriptionSchema, MigrationAssetSchema, MigrationComponentSchema, MigrationDataSchema, MigrationElementSchema, MigrationElementsSchema, MigrationElementTypeSchema, MigrationElementValueSchema, MigrationItemSchema, MigrationItemSystemSchema, MigrationItemVersionSchema, MigrationReferenceSchema, MigrationUrlSlugModeSchema } from "./migration.schema.js";
2
+ import type { MigrationAssetDescriptionSchema, MigrationAssetSchema, MigrationComponentSchema, MigrationDataSchema, MigrationElementSchema, MigrationElementsSchema, MigrationElementTypeSchema, MigrationElementValueSchema, MigrationItemSystemSchema, MigrationItemVersionSchema, MigrationReferenceSchema, MigrationUrlSlugModeSchema } from "./migration.schema.js";
3
3
  export declare namespace MigrationElementModels {
4
4
  type MigrationElementDef<TElementType extends MigrationElementType = MigrationElementType, TValue extends MigrationElementValue = MigrationElementValue> = {
5
5
  readonly value: TValue | undefined;
@@ -18,12 +18,10 @@ export declare namespace MigrationElementModels {
18
18
  export type SubpagesElement = MigrationElementDef<"subpages", MigrationReference[]>;
19
19
  export {};
20
20
  }
21
- export type MigrationReference<T extends string = string> = z.infer<typeof MigrationReferenceSchema> & {
21
+ export type MigrationReference<T extends string = string> = Omit<z.infer<typeof MigrationReferenceSchema>, "codename"> & {
22
22
  readonly codename: T;
23
23
  };
24
- export type MigrationItemSystem<TTypeCodenames extends string = string, TLanguageCodenames extends string = string, TCollectionCodenames extends string = string, TWorkflowCodenames extends string = string> = z.infer<typeof MigrationItemSystemSchema> & {
25
- readonly codename: string;
26
- readonly name: string;
24
+ export type MigrationItemSystem<TTypeCodenames extends string = string, TLanguageCodenames extends string = string, TCollectionCodenames extends string = string, TWorkflowCodenames extends string = string> = Pick<z.infer<typeof MigrationItemSystemSchema>, "codename" | "name"> & {
27
25
  readonly language: MigrationReference<TLanguageCodenames>;
28
26
  readonly type: MigrationReference<TTypeCodenames>;
29
27
  readonly collection: MigrationReference<TCollectionCodenames>;
@@ -43,7 +41,7 @@ export type MigrationItemVersion<TElements extends MigrationElements = Migration
43
41
  readonly elements: Readonly<TElements>;
44
42
  readonly workflow_step: MigrationReference<TWorkflowStepCodenames>;
45
43
  };
46
- export type MigrationItem<TElements extends MigrationElements = MigrationElements, TSystem extends MigrationItemSystem = MigrationItemSystem, TWorkflowStepCodenames extends string = string> = z.infer<typeof MigrationItemSchema> & {
44
+ export type MigrationItem<TElements extends MigrationElements = MigrationElements, TSystem extends MigrationItemSystem = MigrationItemSystem, TWorkflowStepCodenames extends string = string> = {
47
45
  readonly versions: Readonly<MigrationItemVersion<TElements, TWorkflowStepCodenames>[]>;
48
46
  readonly system: TSystem;
49
47
  };
@@ -4,6 +4,7 @@ export declare function confirmExportAsync(data: {
4
4
  readonly environmentId: string;
5
5
  readonly apiKey: string;
6
6
  readonly logger: Logger;
7
+ readonly skipMissingReferences: boolean;
7
8
  readonly dataToExport: {
8
9
  readonly itemsCount: number;
9
10
  };
@@ -18,6 +19,7 @@ export declare function confirmMigrateAsync(data: {
18
19
  readonly environmentId: string;
19
20
  readonly apiKey: string;
20
21
  };
22
+ readonly skipMissingReferences: boolean;
21
23
  readonly logger: Logger;
22
24
  readonly dataToMigrate: {
23
25
  readonly itemsCount: number;
@@ -1,4 +1,5 @@
1
1
  import chalk from "chalk";
2
+ import { match, P } from "ts-pattern";
2
3
  import { MigrationToolkitError } from "../models/error.models.js";
3
4
  import { getMigrationManagementClient, managementClientUtils } from "./management-client-utils.js";
4
5
  export async function confirmExportAsync(data) {
@@ -6,7 +7,12 @@ export async function confirmExportAsync(data) {
6
7
  environmentId: data.environmentId,
7
8
  apiKey: data.apiKey,
8
9
  }), data.logger).getEnvironmentAsync();
9
- const text = `Are you sure to export '${chalk.cyan(data.dataToExport.itemsCount)}' content ${getItemsPluralText(data.dataToExport.itemsCount)} from ${chalk.yellow(environment.name)} (${chalk.magenta(environment.environment)})?`;
10
+ const text = getConfirmText({
11
+ action: "export",
12
+ itemsCount: data.dataToExport.itemsCount,
13
+ sourceEnvironment: environment,
14
+ skipMissingReferences: data.skipMissingReferences,
15
+ });
10
16
  await confirmAsync({
11
17
  force: data.force,
12
18
  logger: data.logger,
@@ -23,7 +29,13 @@ export async function confirmMigrateAsync(data) {
23
29
  environmentId: data.targetEnvironment.environmentId,
24
30
  apiKey: data.targetEnvironment.apiKey,
25
31
  }), data.logger).getEnvironmentAsync();
26
- const text = `Are you sure to migrate '${chalk.cyan(data.dataToMigrate.itemsCount)}' ${getItemsPluralText(data.dataToMigrate.itemsCount)} from ${chalk.yellow(sourceEnvironment.name)} (${chalk.magenta(sourceEnvironment.environment)}) to environment ${chalk.yellow(targetEnvironment.name)} (${chalk.magenta(targetEnvironment.environment)}) ?`;
32
+ const text = getConfirmText({
33
+ action: "migrate",
34
+ itemsCount: data.dataToMigrate.itemsCount,
35
+ sourceEnvironment,
36
+ targetEnvironment,
37
+ skipMissingReferences: data.skipMissingReferences,
38
+ });
27
39
  await confirmAsync({
28
40
  force: data.force,
29
41
  logger: data.logger,
@@ -36,7 +48,11 @@ export async function confirmImportAsync(data) {
36
48
  environmentId: data.environmentId,
37
49
  apiKey: data.apiKey,
38
50
  }), data.logger).getEnvironmentAsync();
39
- const text = `Are you sure to import data into ${chalk.yellow(environment.name)} (${chalk.magenta(environment.environment)})?`;
51
+ const text = getConfirmText({
52
+ action: "import",
53
+ targetEnvironment: environment,
54
+ itemsCount: undefined,
55
+ });
40
56
  await confirmAsync({
41
57
  force: data.force,
42
58
  logger: data.logger,
@@ -64,7 +80,58 @@ async function confirmAsync(data) {
64
80
  throw new MigrationToolkitError("confirmationRefused", `Confirmation refused.`);
65
81
  }
66
82
  }
67
- function getItemsPluralText(count) {
68
- return count === 1 ? "item" : "items";
83
+ function getConfirmText({ action, itemsCount, sourceEnvironment, targetEnvironment, skipMissingReferences, }) {
84
+ const lines = [
85
+ `\n${"=".repeat(70)}`,
86
+ ...match(action)
87
+ .returnType()
88
+ .with("export", () => [
89
+ `${chalk.cyan("📤 Source environment:")}`,
90
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(sourceEnvironment?.name)}`,
91
+ ` ${chalk.gray("├─")} Environment: ${chalk.green.bold(sourceEnvironment?.environment)}`,
92
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(sourceEnvironment?.id)}`,
93
+ ])
94
+ .with("import", () => [
95
+ `${chalk.cyan("📥 Target environment:")}`,
96
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(targetEnvironment?.name)}`,
97
+ ` ${chalk.gray("├─")} Environment: ${chalk.green.bold(targetEnvironment?.environment)}`,
98
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(targetEnvironment?.id)}`,
99
+ ])
100
+ .with("migrate", () => [
101
+ `${chalk.cyan("📤 Source environment:")}`,
102
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(sourceEnvironment?.name)}`,
103
+ ` ${chalk.gray("├─")} Environment: ${chalk.green.bold(sourceEnvironment?.environment)}`,
104
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(sourceEnvironment?.id)}`,
105
+ `${chalk.cyan("📥 Target environment:")}`,
106
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(targetEnvironment?.name)}`,
107
+ ` ${chalk.gray("├─")} Environment: ${chalk.green.bold(targetEnvironment?.environment)}`,
108
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(targetEnvironment?.id)}`,
109
+ ])
110
+ .exhaustive(),
111
+ "\n",
112
+ ...match(itemsCount)
113
+ .returnType()
114
+ .with(P.nonNullable, (itemsCount) => [
115
+ `${chalk.cyan("📦 Items to process:")}`,
116
+ ` ${chalk.gray("├─")} Count: ${chalk.green.bold(itemsCount)}`,
117
+ "",
118
+ ])
119
+ .otherwise(() => []),
120
+ ...match(action)
121
+ .returnType()
122
+ .with(P.union("export", "migrate"), () => [
123
+ `${chalk.cyan("⚙️ Configuration:")}`,
124
+ ` ${chalk.gray("└─")} Skip missing references: ${chalk.green.bold(skipMissingReferences ? "Yes" : "No")}`,
125
+ "",
126
+ ])
127
+ .otherwise(() => []),
128
+ `${chalk.yellow("⚠")} ${match(action)
129
+ .returnType()
130
+ .with("export", () => "Are you sure you want to export the data?")
131
+ .with("import", () => "Are you sure you want to import the data?")
132
+ .with("migrate", () => "Are you sure you want to migrate the data?")
133
+ .exhaustive()}`,
134
+ ];
135
+ return lines.join("\n");
69
136
  }
70
137
  //# sourceMappingURL=confirm.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.utils.js","sourceRoot":"","sources":["../../../lib/core/utils/confirm.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confirm.utils.js","sourceRoot":"","sources":["../../../lib/core/utils/confirm.utils.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,6 @@ export function handleError(error) {
61
61
  if (errorData.requestUrl) {
62
62
  console.log(`${chalk.red("Request url")}: ${errorData.requestUrl}`);
63
63
  }
64
- console.error(`${chalk.red("Error:")} ${errorData.message}`);
64
+ console.error(errorData.message);
65
65
  }
66
66
  //# sourceMappingURL=error.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../../lib/core/utils/error.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../../lib/core/utils/error.utils.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,7 @@ export function managementClientUtils(client, logger) {
91
91
  }
92
92
  const flattenedElement = {
93
93
  codename: snippetElement.codename,
94
+ name: snippetElement.name,
94
95
  type: snippetElement.type,
95
96
  id: snippetElement.id,
96
97
  element: snippetElement,
@@ -100,6 +101,7 @@ export function managementClientUtils(client, logger) {
100
101
  }
101
102
  const flattenedElement = {
102
103
  codename: element.codename,
104
+ name: element.name,
103
105
  id: element.id,
104
106
  type: element.type,
105
107
  element: element,
@@ -126,6 +128,7 @@ export function managementClientUtils(client, logger) {
126
128
  return [
127
129
  ...contentTypes.map((contentType) => {
128
130
  const importType = {
131
+ name: contentType.name,
129
132
  contentTypeCodename: contentType.codename,
130
133
  contentTypeId: contentType.id,
131
134
  elements: getContentTypeElements(contentType, contentTypeSnippets),
@@ -1 +1 @@
1
- {"version":3,"file":"management-client-utils.js","sourceRoot":"","sources":["../../../lib/core/utils/management-client-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"management-client-utils.js","sourceRoot":"","sources":["../../../lib/core/utils/management-client-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ type Success<TData> = {
2
+ readonly success: true;
3
+ readonly data: TData;
4
+ readonly error?: never;
5
+ };
6
+ type Failure<TError = unknown> = {
7
+ readonly success: false;
8
+ readonly data?: never;
9
+ readonly error: TError;
10
+ };
11
+ export type Result<TData, TError = unknown> = Success<TData> | Failure<TError>;
12
+ export declare function tryCatchAsync<T>(fn: () => Promise<T>): Promise<Result<T>>;
13
+ export declare function tryCatch<T>(fn: () => T): Result<T>;
14
+ export {};
@@ -0,0 +1,18 @@
1
+ export async function tryCatchAsync(fn) {
2
+ try {
3
+ const data = await fn();
4
+ return { success: true, data };
5
+ }
6
+ catch (error) {
7
+ return { success: false, error };
8
+ }
9
+ }
10
+ export function tryCatch(fn) {
11
+ try {
12
+ return { success: true, data: fn() };
13
+ }
14
+ catch (error) {
15
+ return { success: false, error };
16
+ }
17
+ }
18
+ //# sourceMappingURL=try.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"try.utils.js","sourceRoot":"","sources":["../../../lib/core/utils/try.utils.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAoB;IAC1D,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,EAAW;IACtC,IAAI,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;AACF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import chalk from "chalk";
2
2
  import { getDefaultLogger } from "../core/logs/loggers.js";
3
- import { MigrationToolkitError } from "../core/models/error.models.js";
3
+ import { InvalidValueError, MigrationToolkitError } from "../core/models/error.models.js";
4
4
  import { MigrationAssetsSchema, MigrationItemsSchema } from "../core/models/migration.schema.js";
5
5
  import { findRequired } from "../core/utils/array.utils.js";
6
6
  import { getBinaryDataFromUrlAsync } from "../core/utils/binary-data.utils.js";
@@ -8,6 +8,7 @@ import { extractErrorData } from "../core/utils/error.utils.js";
8
8
  import { isNotUndefined } from "../core/utils/global.utils.js";
9
9
  import { getMigrationManagementClient } from "../core/utils/management-client-utils.js";
10
10
  import { processItemsAsync } from "../core/utils/processing-utils.js";
11
+ import { tryCatch } from "../core/utils/try.utils.js";
11
12
  import { exportTransforms } from "../translation/transforms/export-transforms.js";
12
13
  import { exportContextFetcherAsync } from "./context/export-context-fetcher.js";
13
14
  export function exportManager(config) {
@@ -29,8 +30,8 @@ export function exportManager(config) {
29
30
  },
30
31
  },
31
32
  versions: exportItem.versions.map((version) => {
32
- return {
33
- elements: getMigrationElements(context, exportItem.contentType, version.languageVariant.elements),
33
+ const migrationItemVersion = {
34
+ elements: getMigrationElements(exportItem, version, context, exportItem.contentType, version.languageVariant.elements),
34
35
  schedule: {
35
36
  publish_time: version.languageVariant.schedule.publishTime ?? undefined,
36
37
  publish_display_timezone: version.languageVariant.schedule.publishDisplayTimezone ?? undefined,
@@ -41,11 +42,12 @@ export function exportManager(config) {
41
42
  codename: version.workflowStepCodename,
42
43
  },
43
44
  };
45
+ return migrationItemVersion;
44
46
  }),
45
47
  };
46
48
  return migrationItem;
47
49
  };
48
- const mapToMigrationComponent = (context, component) => {
50
+ const mapToMigrationComponent = (exportItem, exportItemVersion, context, component) => {
49
51
  const componentType = context.environmentData.contentTypes.find((m) => m.contentTypeId === component.type.id);
50
52
  if (!componentType) {
51
53
  throw new MigrationToolkitError("missingContentType", `Could not find content type with id '${chalk.red(component.type.id)}' for component '${chalk.red(component.id)}'`);
@@ -57,11 +59,11 @@ export function exportManager(config) {
57
59
  codename: componentType.contentTypeCodename,
58
60
  },
59
61
  },
60
- elements: getMigrationElements(context, componentType, component.elements),
62
+ elements: getMigrationElements(exportItem, exportItemVersion, context, componentType, component.elements),
61
63
  };
62
64
  return migrationItem;
63
65
  };
64
- const getMigrationElements = (context, contentType, elements) => {
66
+ const getMigrationElements = (exportItem, exportItemVersion, context, contentType, elements) => {
65
67
  return contentType.elements
66
68
  .toSorted((a, b) => {
67
69
  if (a.codename < b.codename) {
@@ -77,6 +79,8 @@ export function exportManager(config) {
77
79
  model[typeElement.codename] = {
78
80
  type: typeElement.type,
79
81
  ...getMigrationElementToStore({
82
+ exportItem: exportItem,
83
+ exportItemVersion: exportItemVersion,
80
84
  context: context,
81
85
  contentType: contentType,
82
86
  exportElement: itemElement,
@@ -87,29 +91,30 @@ export function exportManager(config) {
87
91
  }, {});
88
92
  };
89
93
  const getMigrationElementToStore = (data) => {
90
- try {
91
- return exportTransforms[data.typeElement.type]({
92
- context: data.context,
93
- typeElement: data.typeElement,
94
- exportElement: {
95
- components: data.exportElement.components.map((component) => mapToMigrationComponent(data.context, component)),
96
- value: data.exportElement.value,
97
- urlSlugMode: data.exportElement.mode,
98
- displayTimezone: data.exportElement.display_timezone ?? undefined,
99
- },
100
- });
101
- }
102
- catch (error) {
94
+ const { success, data: migrationElement, error, } = tryCatch(() => exportTransforms[data.typeElement.type]({
95
+ context: data.context,
96
+ typeElement: data.typeElement,
97
+ exportElement: {
98
+ components: data.exportElement.components.map((component) => {
99
+ return mapToMigrationComponent(data.exportItem, data.exportItemVersion, data.context, component);
100
+ }),
101
+ value: data.exportElement.value,
102
+ urlSlugMode: data.exportElement.mode,
103
+ displayTimezone: data.exportElement.display_timezone ?? undefined,
104
+ },
105
+ }));
106
+ if (!success) {
103
107
  const errorData = extractErrorData(error);
104
- let jsonValue = "n/a";
105
- try {
106
- jsonValue = JSON.stringify(data.exportElement.value);
107
- }
108
- catch (jsonError) {
109
- console.error(`Failed to convert json value`, jsonError);
110
- }
111
- throw new Error(`Failed to map value of element '${chalk.yellow(data.typeElement.codename)}' of type '${chalk.cyan(data.typeElement.type)}'. Value: ${chalk.bgMagenta(jsonValue)}. Message: ${errorData.message}`);
108
+ throw new InvalidValueError({
109
+ element: data.typeElement,
110
+ contentType: data.contentType,
111
+ exportItem: data.exportItem,
112
+ exportItemVersion: data.exportItemVersion,
113
+ value: data.exportElement.value,
114
+ errorData: errorData,
115
+ });
112
116
  }
117
+ return migrationElement;
113
118
  };
114
119
  const exportAssetsAsync = async (context) => {
115
120
  const assets = Array.from(context.referencedData.assetIds)
@@ -1 +1 @@
1
- {"version":3,"file":"export-manager.js","sourceRoot":"","sources":["../../lib/export/export-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-manager.js","sourceRoot":"","sources":["../../lib/export/export-manager.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export async function exportActionAsync(cliFetcher) {
21
21
  dataToExport: {
22
22
  itemsCount: items.length,
23
23
  },
24
+ skipMissingReferences,
24
25
  });
25
26
  const exportedData = await exportAsync({
26
27
  logger,
@@ -1 +1 @@
1
- {"version":3,"file":"export-action.js","sourceRoot":"","sources":["../../../../lib/node/cli/actions/export-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAA+B;IACtE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,UAAU,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,UAAU,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,qBAAqB,GAAG,UAAU,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC;IAEvF,MAAM,kBAAkB,CAAC;QACxB,KAAK;QACL,MAAM;QACN,aAAa;QACb,MAAM;QACN,YAAY,EAAE;YACb,UAAU,EAAE,KAAK,CAAC,MAAM;SACxB;KACD,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC;QACtC,MAAM;QACN,aAAa;QACb,MAAM;QACN,OAAO;QACP,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,OAAO;gBACN,YAAY,EAAE,CAAC;gBACf,gBAAgB,EAAE,QAAQ;aAC1B,CAAC;QACH,CAAC,CAAC;QACF,qBAAqB;KACrB,CAAC,CAAC;IAEH,MAAM,UAAU,CAAC;QAChB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"export-action.js","sourceRoot":"","sources":["../../../../lib/node/cli/actions/export-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAA+B;IACtE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,UAAU,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,UAAU,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,qBAAqB,GAAG,UAAU,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC;IAEvF,MAAM,kBAAkB,CAAC;QACxB,KAAK;QACL,MAAM;QACN,aAAa;QACb,MAAM;QACN,YAAY,EAAE;YACb,UAAU,EAAE,KAAK,CAAC,MAAM;SACxB;QACD,qBAAqB;KACrB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC;QACtC,MAAM;QACN,aAAa;QACb,MAAM;QACN,OAAO;QACP,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,OAAO;gBACN,YAAY,EAAE,CAAC;gBACf,gBAAgB,EAAE,QAAQ;aAC1B,CAAC;QACH,CAAC,CAAC;QACF,qBAAqB;KACrB,CAAC,CAAC;IAEH,MAAM,UAAU,CAAC;QAChB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;AAC1E,CAAC"}
@@ -18,6 +18,7 @@ export async function migrateActionAsync(argsFetcher) {
18
18
  };
19
19
  });
20
20
  await confirmMigrateAsync({
21
+ skipMissingReferences,
21
22
  force,
22
23
  sourceEnvironment: {
23
24
  apiKey: sourceApiKey,
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-action.js","sourceRoot":"","sources":["../../../../lib/node/cli/actions/migrate-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAgC;IACxE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,mBAAmB,GAAG,WAAW,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,WAAW,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,mBAAmB,GAAG,WAAW,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,WAAW,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,qBAAqB,GAAG,WAAW,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAClG,MAAM,KAAK,GAAG,WAAW,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,YAAY,GAAgC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjE,OAAO;YACN,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,QAAQ;SAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,mBAAmB,CAAC;QACzB,KAAK;QACL,iBAAiB,EAAE;YAClB,MAAM,EAAE,YAAY;YACpB,aAAa,EAAE,mBAAmB;SAClC;QACD,iBAAiB,EAAE;YAClB,MAAM,EAAE,YAAY;YACpB,aAAa,EAAE,mBAAmB;SAClC;QACD,MAAM;QACN,aAAa,EAAE;YACd,UAAU,EAAE,YAAY,CAAC,MAAM;SAC/B;KACD,CAAC,CAAC;IAEH,MAAM,YAAY,CAAC;QAClB,MAAM;QACN,iBAAiB,EAAE;YAClB,aAAa,EAAE,mBAAmB;YAClC,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,YAAY;YACnB,qBAAqB;SACrB;QACD,iBAAiB,EAAE;YAClB,aAAa,EAAE,mBAAmB;YAClC,MAAM,EAAE,YAAY;SACpB;KACD,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"migrate-action.js","sourceRoot":"","sources":["../../../../lib/node/cli/actions/migrate-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAgC;IACxE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,mBAAmB,GAAG,WAAW,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,WAAW,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,mBAAmB,GAAG,WAAW,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,WAAW,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,qBAAqB,GAAG,WAAW,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAClG,MAAM,KAAK,GAAG,WAAW,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,YAAY,GAAgC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjE,OAAO;YACN,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,QAAQ;SAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,mBAAmB,CAAC;QACzB,qBAAqB;QACrB,KAAK;QACL,iBAAiB,EAAE;YAClB,MAAM,EAAE,YAAY;YACpB,aAAa,EAAE,mBAAmB;SAClC;QACD,iBAAiB,EAAE;YAClB,MAAM,EAAE,YAAY;YACpB,aAAa,EAAE,mBAAmB;SAClC;QACD,MAAM;QACN,aAAa,EAAE;YACd,UAAU,EAAE,YAAY,CAAC,MAAM;SAC/B;KACD,CAAC,CAAC;IAEH,MAAM,YAAY,CAAC;QAClB,MAAM;QACN,iBAAiB,EAAE;YAClB,aAAa,EAAE,mBAAmB;YAClC,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,YAAY;YACnB,qBAAqB;SACrB;QACD,iBAAiB,EAAE;YAClB,aAAa,EAAE,mBAAmB;YAClC,MAAM,EAAE,YAAY;SACpB;KACD,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;AAC7E,CAAC"}
@@ -137,6 +137,7 @@ export interface PackageDataOverview {
137
137
 
138
138
  export interface FlattenedContentTypeElement {
139
139
  readonly codename: string;
140
+ readonly name: string | undefined;
140
141
  readonly id: string;
141
142
  readonly type: MigrationElementType;
142
143
  readonly element: Readonly<ContentTypeElements.ContentTypeElementModel>;
@@ -144,6 +145,7 @@ export interface FlattenedContentTypeElement {
144
145
 
145
146
  export interface FlattenedContentType {
146
147
  readonly contentTypeCodename: string;
148
+ readonly name: string;
147
149
  readonly contentTypeId: string;
148
150
  readonly elements: readonly FlattenedContentTypeElement[];
149
151
  }
@@ -1,4 +1,9 @@
1
1
  import chalk from "chalk";
2
+ import { match, P } from "ts-pattern";
3
+ import type { ExportItem, ExportItemVersion } from "../../export/export.models.js";
4
+ import type { ErrorData, FlattenedContentType, FlattenedContentTypeElement } from "./core.models.js";
5
+
6
+ const missingReferencesMessage = `You can skip missing references using the '${chalk.green("skipMissingReferences")}' option.`;
2
7
 
3
8
  export type MigrationToolkitErrorType =
4
9
  | "confirmationRefused"
@@ -39,3 +44,105 @@ export class MissingAssetError extends MigrationToolkitError {
39
44
  super("missingAsset", `Missing asset with id '${chalk.red(id)}'`);
40
45
  }
41
46
  }
47
+
48
+ export class InvalidValueError extends MigrationToolkitError {
49
+ constructor({
50
+ element,
51
+ value,
52
+ contentType,
53
+ errorData,
54
+ exportItem,
55
+ exportItemVersion,
56
+ }: {
57
+ readonly exportItem: ExportItem;
58
+ readonly exportItemVersion: ExportItemVersion;
59
+ readonly element: FlattenedContentTypeElement;
60
+ readonly contentType: FlattenedContentType;
61
+ readonly value: unknown;
62
+ readonly errorData: ErrorData;
63
+ }) {
64
+ const { missingReferenceId, isMissingReference } = match(errorData.error)
65
+ .returnType<{ readonly missingReferenceId: string | undefined; readonly isMissingReference: boolean }>()
66
+ .when(
67
+ (m) => m instanceof MissingAssetError || m instanceof MissingItemError,
68
+ (m) => {
69
+ return {
70
+ missingReferenceId: m.id,
71
+ isMissingReference: true,
72
+ };
73
+ },
74
+ )
75
+ .otherwise(() => {
76
+ return {
77
+ missingReferenceId: undefined,
78
+ isMissingReference: false,
79
+ };
80
+ });
81
+
82
+ const getValueToDisplay = () => {
83
+ let jsonValue: string | undefined;
84
+
85
+ try {
86
+ jsonValue = JSON.stringify(value, null, 2);
87
+ } catch {
88
+ jsonValue = undefined;
89
+ }
90
+
91
+ const baseValue = match(jsonValue)
92
+ .returnType<string>()
93
+ .with(P.string, (jsonValue) =>
94
+ jsonValue
95
+ .split("\n")
96
+ .map((line) => ` ${line}`)
97
+ .join("\n"),
98
+ )
99
+ .otherwise(() => value?.toString() ?? "");
100
+
101
+ // Highlight missing reference ID in red if present
102
+ return missingReferenceId ? baseValue.replaceAll(missingReferenceId, chalk.red(missingReferenceId)) : baseValue;
103
+ };
104
+
105
+ const lines: readonly string[] = [
106
+ "",
107
+ chalk.red("❌ Invalid value error"),
108
+ "",
109
+ `${chalk.cyan("📝 Content type:")}`,
110
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(contentType.name)}`,
111
+ ` ${chalk.gray("├─")} Codename: ${chalk.yellow.bold(contentType.contentTypeCodename)}`,
112
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(contentType.contentTypeId)}`,
113
+ "",
114
+ `${chalk.cyan("🔧 Element:")}`,
115
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(element.name)}`,
116
+ ` ${chalk.gray("├─")} Codename: ${chalk.yellow.bold(element.codename)}`,
117
+ ` ${chalk.gray("├─")} Type: ${chalk.green.bold(element.type)}`,
118
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(element.id)}`,
119
+ "",
120
+ `${chalk.cyan("📦 Item:")}`,
121
+ ` ${chalk.gray("├─")} Item codename: ${chalk.yellow.bold(exportItem.requestItem.itemCodename)}`,
122
+ ` ${chalk.gray("├─")} Language codename: ${chalk.yellow.bold(exportItem.requestItem.languageCodename)}`,
123
+ ` ${chalk.gray("└─")} Version codename: ${chalk.yellow.bold(exportItemVersion.workflowStepCodename)}`,
124
+ "",
125
+ `${chalk.cyan("📦 Item version:")}`,
126
+ ` ${chalk.gray("├─")} Workflow step codename: ${chalk.yellow.bold(exportItemVersion.workflowStepCodename)}`,
127
+ ` ${chalk.gray("└─")} Language variant: ${chalk.yellow.bold(exportItemVersion.languageVariant.language.codename)}`,
128
+ "",
129
+ chalk.cyan("Invalid Value:"),
130
+ chalk.dim(getValueToDisplay()),
131
+ "",
132
+ ...match(errorData.message)
133
+ .returnType<readonly string[]>()
134
+ .with(P.string, (message) => [chalk.cyan("Error Details:"), chalk.gray(` ${message}`), ""])
135
+ .otherwise(() => []),
136
+ ...match(errorData.requestUrl)
137
+ .returnType<readonly string[]>()
138
+ .with(P.string, (requestUrl) => [chalk.cyan("Request URL:"), chalk.gray(` ${requestUrl}`), ""])
139
+ .otherwise(() => []),
140
+ ...match(isMissingReference)
141
+ .returnType<readonly string[]>()
142
+ .with(true, () => [chalk.cyan("💡 Tip:"), chalk.gray(` ${missingReferencesMessage}`), ""])
143
+ .otherwise(() => []),
144
+ ];
145
+
146
+ super("invalidValue", lines.join("\n"));
147
+ }
148
+ }
@@ -8,7 +8,6 @@ import type {
8
8
  MigrationElementsSchema,
9
9
  MigrationElementTypeSchema,
10
10
  MigrationElementValueSchema,
11
- MigrationItemSchema,
12
11
  MigrationItemSystemSchema,
13
12
  MigrationItemVersionSchema,
14
13
  MigrationReferenceSchema,
@@ -37,7 +36,7 @@ export namespace MigrationElementModels {
37
36
  export type SubpagesElement = MigrationElementDef<"subpages", MigrationReference[]>;
38
37
  }
39
38
 
40
- export type MigrationReference<T extends string = string> = z.infer<typeof MigrationReferenceSchema> & {
39
+ export type MigrationReference<T extends string = string> = Omit<z.infer<typeof MigrationReferenceSchema>, "codename"> & {
41
40
  readonly codename: T;
42
41
  };
43
42
 
@@ -46,9 +45,7 @@ export type MigrationItemSystem<
46
45
  TLanguageCodenames extends string = string,
47
46
  TCollectionCodenames extends string = string,
48
47
  TWorkflowCodenames extends string = string,
49
- > = z.infer<typeof MigrationItemSystemSchema> & {
50
- readonly codename: string;
51
- readonly name: string;
48
+ > = Pick<z.infer<typeof MigrationItemSystemSchema>, "codename" | "name"> & {
52
49
  readonly language: MigrationReference<TLanguageCodenames>;
53
50
  readonly type: MigrationReference<TTypeCodenames>;
54
51
  readonly collection: MigrationReference<TCollectionCodenames>;
@@ -77,7 +74,7 @@ export type MigrationItem<
77
74
  TElements extends MigrationElements = MigrationElements,
78
75
  TSystem extends MigrationItemSystem = MigrationItemSystem,
79
76
  TWorkflowStepCodenames extends string = string,
80
- > = z.infer<typeof MigrationItemSchema> & {
77
+ > = {
81
78
  readonly versions: Readonly<MigrationItemVersion<TElements, TWorkflowStepCodenames>[]>;
82
79
  readonly system: TSystem;
83
80
  };
@@ -1,4 +1,6 @@
1
+ import type { EnvironmentModels } from "@kontent-ai/management-sdk";
1
2
  import chalk from "chalk";
3
+ import { match, P } from "ts-pattern";
2
4
  import { MigrationToolkitError } from "../models/error.models.js";
3
5
  import type { Logger } from "../models/log.models.js";
4
6
  import { getMigrationManagementClient, managementClientUtils } from "./management-client-utils.js";
@@ -8,6 +10,7 @@ export async function confirmExportAsync(data: {
8
10
  readonly environmentId: string;
9
11
  readonly apiKey: string;
10
12
  readonly logger: Logger;
13
+ readonly skipMissingReferences: boolean;
11
14
  readonly dataToExport: {
12
15
  readonly itemsCount: number;
13
16
  };
@@ -20,9 +23,12 @@ export async function confirmExportAsync(data: {
20
23
  data.logger,
21
24
  ).getEnvironmentAsync();
22
25
 
23
- const text: string = `Are you sure to export '${chalk.cyan(data.dataToExport.itemsCount)}' content ${getItemsPluralText(
24
- data.dataToExport.itemsCount,
25
- )} from ${chalk.yellow(environment.name)} (${chalk.magenta(environment.environment)})?`;
26
+ const text = getConfirmText({
27
+ action: "export",
28
+ itemsCount: data.dataToExport.itemsCount,
29
+ sourceEnvironment: environment,
30
+ skipMissingReferences: data.skipMissingReferences,
31
+ });
26
32
 
27
33
  await confirmAsync({
28
34
  force: data.force,
@@ -42,6 +48,7 @@ export async function confirmMigrateAsync(data: {
42
48
  readonly environmentId: string;
43
49
  readonly apiKey: string;
44
50
  };
51
+ readonly skipMissingReferences: boolean;
45
52
  readonly logger: Logger;
46
53
  readonly dataToMigrate: {
47
54
  readonly itemsCount: number;
@@ -62,11 +69,13 @@ export async function confirmMigrateAsync(data: {
62
69
  data.logger,
63
70
  ).getEnvironmentAsync();
64
71
 
65
- const text: string = `Are you sure to migrate '${chalk.cyan(data.dataToMigrate.itemsCount)}' ${getItemsPluralText(
66
- data.dataToMigrate.itemsCount,
67
- )} from ${chalk.yellow(sourceEnvironment.name)} (${chalk.magenta(sourceEnvironment.environment)}) to environment ${chalk.yellow(
68
- targetEnvironment.name,
69
- )} (${chalk.magenta(targetEnvironment.environment)}) ?`;
72
+ const text = getConfirmText({
73
+ action: "migrate",
74
+ itemsCount: data.dataToMigrate.itemsCount,
75
+ sourceEnvironment,
76
+ targetEnvironment,
77
+ skipMissingReferences: data.skipMissingReferences,
78
+ });
70
79
 
71
80
  await confirmAsync({
72
81
  force: data.force,
@@ -90,7 +99,11 @@ export async function confirmImportAsync(data: {
90
99
  data.logger,
91
100
  ).getEnvironmentAsync();
92
101
 
93
- const text: string = `Are you sure to import data into ${chalk.yellow(environment.name)} (${chalk.magenta(environment.environment)})?`;
102
+ const text = getConfirmText({
103
+ action: "import",
104
+ targetEnvironment: environment,
105
+ itemsCount: undefined,
106
+ });
94
107
 
95
108
  await confirmAsync({
96
109
  force: data.force,
@@ -129,6 +142,70 @@ async function confirmAsync(data: {
129
142
  }
130
143
  }
131
144
 
132
- function getItemsPluralText(count: number): string {
133
- return count === 1 ? "item" : "items";
145
+ function getConfirmText({
146
+ action,
147
+ itemsCount,
148
+ sourceEnvironment,
149
+ targetEnvironment,
150
+ skipMissingReferences,
151
+ }: {
152
+ readonly action: "export" | "import" | "migrate";
153
+ readonly skipMissingReferences?: boolean;
154
+ readonly itemsCount?: number;
155
+ readonly sourceEnvironment?: EnvironmentModels.EnvironmentInformationModel;
156
+ readonly targetEnvironment?: EnvironmentModels.EnvironmentInformationModel;
157
+ }): string {
158
+ const lines: readonly string[] = [
159
+ `\n${"=".repeat(70)}`,
160
+ ...match(action)
161
+ .returnType<readonly string[]>()
162
+ .with("export", () => [
163
+ `${chalk.cyan("📤 Source environment:")}`,
164
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(sourceEnvironment?.name)}`,
165
+ ` ${chalk.gray("├─")} Environment: ${chalk.green.bold(sourceEnvironment?.environment)}`,
166
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(sourceEnvironment?.id)}`,
167
+ ])
168
+ .with("import", () => [
169
+ `${chalk.cyan("📥 Target environment:")}`,
170
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(targetEnvironment?.name)}`,
171
+ ` ${chalk.gray("├─")} Environment: ${chalk.green.bold(targetEnvironment?.environment)}`,
172
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(targetEnvironment?.id)}`,
173
+ ])
174
+ .with("migrate", () => [
175
+ `${chalk.cyan("📤 Source environment:")}`,
176
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(sourceEnvironment?.name)}`,
177
+ ` ${chalk.gray("├─")} Environment: ${chalk.green.bold(sourceEnvironment?.environment)}`,
178
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(sourceEnvironment?.id)}`,
179
+ `${chalk.cyan("📥 Target environment:")}`,
180
+ ` ${chalk.gray("├─")} Name: ${chalk.yellow.bold(targetEnvironment?.name)}`,
181
+ ` ${chalk.gray("├─")} Environment: ${chalk.green.bold(targetEnvironment?.environment)}`,
182
+ ` ${chalk.gray("└─")} ID: ${chalk.dim(targetEnvironment?.id)}`,
183
+ ])
184
+ .exhaustive(),
185
+ "\n",
186
+ ...match(itemsCount)
187
+ .returnType<readonly string[]>()
188
+ .with(P.nonNullable, (itemsCount) => [
189
+ `${chalk.cyan("📦 Items to process:")}`,
190
+ ` ${chalk.gray("├─")} Count: ${chalk.green.bold(itemsCount)}`,
191
+ "",
192
+ ])
193
+ .otherwise(() => []),
194
+ ...match(action)
195
+ .returnType<readonly string[]>()
196
+ .with(P.union("export", "migrate"), () => [
197
+ `${chalk.cyan("⚙️ Configuration:")}`,
198
+ ` ${chalk.gray("└─")} Skip missing references: ${chalk.green.bold(skipMissingReferences ? "Yes" : "No")}`,
199
+ "",
200
+ ])
201
+ .otherwise(() => []),
202
+ `${chalk.yellow("⚠")} ${match(action)
203
+ .returnType<string>()
204
+ .with("export", () => "Are you sure you want to export the data?")
205
+ .with("import", () => "Are you sure you want to import the data?")
206
+ .with("migrate", () => "Are you sure you want to migrate the data?")
207
+ .exhaustive()}`,
208
+ ];
209
+
210
+ return lines.join("\n");
134
211
  }
@@ -81,5 +81,5 @@ export function handleError(error: unknown): void {
81
81
  console.log(`${chalk.red("Request url")}: ${errorData.requestUrl}`);
82
82
  }
83
83
 
84
- console.error(`${chalk.red("Error:")} ${errorData.message}`);
84
+ console.error(errorData.message);
85
85
  }
@@ -134,6 +134,7 @@ export function managementClientUtils(client: Readonly<ManagementClient>, logger
134
134
 
135
135
  const flattenedElement: FlattenedContentTypeElement = {
136
136
  codename: snippetElement.codename,
137
+ name: snippetElement.name,
137
138
  type: snippetElement.type,
138
139
  id: snippetElement.id,
139
140
  element: snippetElement,
@@ -144,6 +145,7 @@ export function managementClientUtils(client: Readonly<ManagementClient>, logger
144
145
  }
145
146
  const flattenedElement: FlattenedContentTypeElement = {
146
147
  codename: element.codename,
148
+ name: element.name,
147
149
  id: element.id,
148
150
  type: element.type,
149
151
  element: element,
@@ -174,6 +176,7 @@ export function managementClientUtils(client: Readonly<ManagementClient>, logger
174
176
  return [
175
177
  ...contentTypes.map((contentType) => {
176
178
  const importType: FlattenedContentType = {
179
+ name: contentType.name,
177
180
  contentTypeCodename: contentType.codename,
178
181
  contentTypeId: contentType.id,
179
182
  elements: getContentTypeElements(contentType, contentTypeSnippets),
@@ -0,0 +1,30 @@
1
+ type Success<TData> = {
2
+ readonly success: true;
3
+ readonly data: TData;
4
+ readonly error?: never;
5
+ };
6
+
7
+ type Failure<TError = unknown> = {
8
+ readonly success: false;
9
+ readonly data?: never;
10
+ readonly error: TError;
11
+ };
12
+
13
+ export type Result<TData, TError = unknown> = Success<TData> | Failure<TError>;
14
+
15
+ export async function tryCatchAsync<T>(fn: () => Promise<T>): Promise<Result<T>> {
16
+ try {
17
+ const data = await fn();
18
+ return { success: true, data };
19
+ } catch (error) {
20
+ return { success: false, error };
21
+ }
22
+ }
23
+
24
+ export function tryCatch<T>(fn: () => T): Result<T> {
25
+ try {
26
+ return { success: true, data: fn() };
27
+ } catch (error) {
28
+ return { success: false, error };
29
+ }
30
+ }
@@ -3,7 +3,7 @@ import chalk from "chalk";
3
3
  import type { Writeable } from "zod/v3";
4
4
  import { getDefaultLogger } from "../core/logs/loggers.js";
5
5
  import type { FlattenedContentType, FlattenedContentTypeElement } from "../core/models/core.models.js";
6
- import { MigrationToolkitError } from "../core/models/error.models.js";
6
+ import { InvalidValueError, MigrationToolkitError } from "../core/models/error.models.js";
7
7
  import type {
8
8
  MigrationAsset,
9
9
  MigrationComponent,
@@ -20,9 +20,10 @@ import { extractErrorData } from "../core/utils/error.utils.js";
20
20
  import { isNotUndefined } from "../core/utils/global.utils.js";
21
21
  import { getMigrationManagementClient } from "../core/utils/management-client-utils.js";
22
22
  import { processItemsAsync } from "../core/utils/processing-utils.js";
23
+ import { tryCatch } from "../core/utils/try.utils.js";
23
24
  import { exportTransforms } from "../translation/transforms/export-transforms.js";
24
25
  import { exportContextFetcherAsync } from "./context/export-context-fetcher.js";
25
- import type { ExportConfig, ExportContext, ExportItem } from "./export.models.js";
26
+ import type { ExportConfig, ExportContext, ExportItem, ExportItemVersion } from "./export.models.js";
26
27
 
27
28
  export function exportManager(config: ExportConfig) {
28
29
  const logger = config.logger ?? getDefaultLogger();
@@ -45,8 +46,8 @@ export function exportManager(config: ExportConfig) {
45
46
  },
46
47
  },
47
48
  versions: exportItem.versions.map<MigrationItemVersion>((version) => {
48
- return {
49
- elements: getMigrationElements(context, exportItem.contentType, version.languageVariant.elements),
49
+ const migrationItemVersion: MigrationItemVersion = {
50
+ elements: getMigrationElements(exportItem, version, context, exportItem.contentType, version.languageVariant.elements),
50
51
  schedule: {
51
52
  publish_time: version.languageVariant.schedule.publishTime ?? undefined,
52
53
  publish_display_timezone: version.languageVariant.schedule.publishDisplayTimezone ?? undefined,
@@ -57,6 +58,8 @@ export function exportManager(config: ExportConfig) {
57
58
  codename: version.workflowStepCodename,
58
59
  },
59
60
  };
61
+
62
+ return migrationItemVersion;
60
63
  }),
61
64
  };
62
65
 
@@ -64,6 +67,8 @@ export function exportManager(config: ExportConfig) {
64
67
  };
65
68
 
66
69
  const mapToMigrationComponent = (
70
+ exportItem: ExportItem,
71
+ exportItemVersion: ExportItemVersion,
67
72
  context: ExportContext,
68
73
  component: Readonly<ElementModels.ContentItemElementComponent>,
69
74
  ): MigrationComponent => {
@@ -83,13 +88,15 @@ export function exportManager(config: ExportConfig) {
83
88
  codename: componentType.contentTypeCodename,
84
89
  },
85
90
  },
86
- elements: getMigrationElements(context, componentType, component.elements),
91
+ elements: getMigrationElements(exportItem, exportItemVersion, context, componentType, component.elements),
87
92
  };
88
93
 
89
94
  return migrationItem;
90
95
  };
91
96
 
92
97
  const getMigrationElements = (
98
+ exportItem: ExportItem,
99
+ exportItemVersion: ExportItemVersion,
93
100
  context: ExportContext,
94
101
  contentType: FlattenedContentType,
95
102
  elements: readonly Readonly<ElementModels.ContentItemElement>[],
@@ -114,6 +121,8 @@ export function exportManager(config: ExportConfig) {
114
121
  model[typeElement.codename] = {
115
122
  type: typeElement.type,
116
123
  ...getMigrationElementToStore({
124
+ exportItem: exportItem,
125
+ exportItemVersion: exportItemVersion,
117
126
  context: context,
118
127
  contentType: contentType,
119
128
  exportElement: itemElement,
@@ -126,38 +135,46 @@ export function exportManager(config: ExportConfig) {
126
135
  };
127
136
 
128
137
  const getMigrationElementToStore = (data: {
138
+ readonly exportItem: ExportItem;
139
+ readonly exportItemVersion: ExportItemVersion;
129
140
  readonly context: ExportContext;
130
141
  readonly contentType: FlattenedContentType;
131
142
  readonly typeElement: FlattenedContentTypeElement;
132
143
  readonly exportElement: ElementModels.ContentItemElement;
133
144
  }): MigrationElementTransformData => {
134
- try {
135
- return exportTransforms[data.typeElement.type]({
145
+ const {
146
+ success,
147
+ data: migrationElement,
148
+ error,
149
+ } = tryCatch(() =>
150
+ exportTransforms[data.typeElement.type]({
136
151
  context: data.context,
137
152
  typeElement: data.typeElement,
138
153
  exportElement: {
139
- components: data.exportElement.components.map((component) => mapToMigrationComponent(data.context, component)),
154
+ components: data.exportElement.components.map((component) => {
155
+ return mapToMigrationComponent(data.exportItem, data.exportItemVersion, data.context, component);
156
+ }),
140
157
  value: data.exportElement.value,
141
158
  urlSlugMode: data.exportElement.mode,
142
159
  displayTimezone: data.exportElement.display_timezone ?? undefined,
143
160
  },
144
- });
145
- } catch (error) {
146
- const errorData = extractErrorData(error);
147
- let jsonValue = "n/a";
161
+ }),
162
+ );
148
163
 
149
- try {
150
- jsonValue = JSON.stringify(data.exportElement.value);
151
- } catch (jsonError) {
152
- console.error(`Failed to convert json value`, jsonError);
153
- }
164
+ if (!success) {
165
+ const errorData = extractErrorData(error);
154
166
 
155
- throw new Error(
156
- `Failed to map value of element '${chalk.yellow(data.typeElement.codename)}' of type '${chalk.cyan(
157
- data.typeElement.type,
158
- )}'. Value: ${chalk.bgMagenta(jsonValue)}. Message: ${errorData.message}`,
159
- );
167
+ throw new InvalidValueError({
168
+ element: data.typeElement,
169
+ contentType: data.contentType,
170
+ exportItem: data.exportItem,
171
+ exportItemVersion: data.exportItemVersion,
172
+ value: data.exportElement.value,
173
+ errorData: errorData,
174
+ });
160
175
  }
176
+
177
+ return migrationElement;
161
178
  };
162
179
 
163
180
  const exportAssetsAsync = async (context: ExportContext): Promise<readonly Readonly<MigrationAsset>[]> => {
@@ -24,6 +24,7 @@ export async function exportActionAsync(cliFetcher: CliArgumentsFetcher): Promis
24
24
  dataToExport: {
25
25
  itemsCount: items.length,
26
26
  },
27
+ skipMissingReferences,
27
28
  });
28
29
 
29
30
  const exportedData = await exportAsync({
@@ -22,6 +22,7 @@ export async function migrateActionAsync(argsFetcher: CliArgumentsFetcher): Prom
22
22
  });
23
23
 
24
24
  await confirmMigrateAsync({
25
+ skipMissingReferences,
25
26
  force,
26
27
  sourceEnvironment: {
27
28
  apiKey: sourceApiKey,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kontent-ai/migration-toolkit",
3
- "version": "3.0.0-0",
3
+ "version": "3.0.0",
4
4
  "description": "This program can be used to import content related data into Kontent.ai from various sources. The included functionality enables the content & asset export/import from Kontent.ai environments.",
5
5
  "preferGlobal": true,
6
6
  "private": false,
@@ -87,7 +87,7 @@
87
87
  "tslib": "2.8.1",
88
88
  "tsx": "4.20.6",
89
89
  "typescript": "5.9.3",
90
- "typescript-eslint": "8.47.0",
91
- "vitest": "4.0.13"
90
+ "typescript-eslint": "8.48.0",
91
+ "vitest": "4.0.14"
92
92
  }
93
93
  }