@kontent-ai/migration-toolkit 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.npmignore +13 -0
- package/LICENSE.md +9 -0
- package/README.md +272 -0
- package/dist/es2022/core/helpers/workflow-helper.d.ts +37 -0
- package/dist/es2022/core/helpers/workflow-helper.js +67 -0
- package/dist/es2022/core/helpers/workflow-helper.js.map +1 -0
- package/dist/es2022/core/index.d.ts +15 -0
- package/dist/es2022/core/index.js +16 -0
- package/dist/es2022/core/index.js.map +1 -0
- package/dist/es2022/core/logs/loggers.d.ts +2 -0
- package/dist/es2022/core/logs/loggers.js +69 -0
- package/dist/es2022/core/logs/loggers.js.map +1 -0
- package/dist/es2022/core/models/core.models.d.ts +91 -0
- package/dist/es2022/core/models/core.models.js +2 -0
- package/dist/es2022/core/models/core.models.js.map +1 -0
- package/dist/es2022/core/models/log.models.d.ts +15 -0
- package/dist/es2022/core/models/log.models.js +2 -0
- package/dist/es2022/core/models/log.models.js.map +1 -0
- package/dist/es2022/core/models/migration.models.d.ts +136 -0
- package/dist/es2022/core/models/migration.models.js +2 -0
- package/dist/es2022/core/models/migration.models.js.map +1 -0
- package/dist/es2022/core/utils/array.utils.d.ts +5 -0
- package/dist/es2022/core/utils/array.utils.js +27 -0
- package/dist/es2022/core/utils/array.utils.js.map +1 -0
- package/dist/es2022/core/utils/binary-data.utils.d.ts +5 -0
- package/dist/es2022/core/utils/binary-data.utils.js +21 -0
- package/dist/es2022/core/utils/binary-data.utils.js.map +1 -0
- package/dist/es2022/core/utils/confirm.utils.d.ts +31 -0
- package/dist/es2022/core/utils/confirm.utils.js +73 -0
- package/dist/es2022/core/utils/confirm.utils.js.map +1 -0
- package/dist/es2022/core/utils/error.utils.d.ts +4 -0
- package/dist/es2022/core/utils/error.utils.js +50 -0
- package/dist/es2022/core/utils/error.utils.js.map +1 -0
- package/dist/es2022/core/utils/external-id.utils.d.ts +5 -0
- package/dist/es2022/core/utils/external-id.utils.js +5 -0
- package/dist/es2022/core/utils/external-id.utils.js.map +1 -0
- package/dist/es2022/core/utils/global.utils.d.ts +14 -0
- package/dist/es2022/core/utils/global.utils.js +45 -0
- package/dist/es2022/core/utils/global.utils.js.map +1 -0
- package/dist/es2022/core/utils/http.utils.d.ts +3 -0
- package/dist/es2022/core/utils/http.utils.js +29 -0
- package/dist/es2022/core/utils/http.utils.js.map +1 -0
- package/dist/es2022/core/utils/management-client-utils.d.ts +19 -0
- package/dist/es2022/core/utils/management-client-utils.js +129 -0
- package/dist/es2022/core/utils/management-client-utils.js.map +1 -0
- package/dist/es2022/core/utils/processing-utils.d.ts +12 -0
- package/dist/es2022/core/utils/processing-utils.js +39 -0
- package/dist/es2022/core/utils/processing-utils.js.map +1 -0
- package/dist/es2022/core/utils/run.utils.d.ts +10 -0
- package/dist/es2022/core/utils/run.utils.js +37 -0
- package/dist/es2022/core/utils/run.utils.js.map +1 -0
- package/dist/es2022/export/context/export-context-fetcher.d.ts +4 -0
- package/dist/es2022/export/context/export-context-fetcher.js +289 -0
- package/dist/es2022/export/context/export-context-fetcher.js.map +1 -0
- package/dist/es2022/export/export-manager.d.ts +5 -0
- package/dist/es2022/export/export-manager.js +167 -0
- package/dist/es2022/export/export-manager.js.map +1 -0
- package/dist/es2022/export/export.models.d.ts +55 -0
- package/dist/es2022/export/export.models.js +2 -0
- package/dist/es2022/export/export.models.js.map +1 -0
- package/dist/es2022/export/index.d.ts +2 -0
- package/dist/es2022/export/index.js +3 -0
- package/dist/es2022/export/index.js.map +1 -0
- package/dist/es2022/export/utils/export.utils.d.ts +2 -0
- package/dist/es2022/export/utils/export.utils.js +5 -0
- package/dist/es2022/export/utils/export.utils.js.map +1 -0
- package/dist/es2022/file/file-manager.d.ts +5 -0
- package/dist/es2022/file/file-manager.js +29 -0
- package/dist/es2022/file/file-manager.js.map +1 -0
- package/dist/es2022/file/index.d.ts +1 -0
- package/dist/es2022/file/index.js +2 -0
- package/dist/es2022/file/index.js.map +1 -0
- package/dist/es2022/import/comparers/asset-comparer.d.ts +12 -0
- package/dist/es2022/import/comparers/asset-comparer.js +65 -0
- package/dist/es2022/import/comparers/asset-comparer.js.map +1 -0
- package/dist/es2022/import/context/import-context-fetcher.d.ts +4 -0
- package/dist/es2022/import/context/import-context-fetcher.js +235 -0
- package/dist/es2022/import/context/import-context-fetcher.js.map +1 -0
- package/dist/es2022/import/import-manager.d.ts +4 -0
- package/dist/es2022/import/import-manager.js +80 -0
- package/dist/es2022/import/import-manager.js.map +1 -0
- package/dist/es2022/import/import.models.d.ts +45 -0
- package/dist/es2022/import/import.models.js +2 -0
- package/dist/es2022/import/import.models.js.map +1 -0
- package/dist/es2022/import/importers/assets-importer.d.ts +10 -0
- package/dist/es2022/import/importers/assets-importer.js +175 -0
- package/dist/es2022/import/importers/assets-importer.js.map +1 -0
- package/dist/es2022/import/importers/content-items-importer.d.ts +10 -0
- package/dist/es2022/import/importers/content-items-importer.js +97 -0
- package/dist/es2022/import/importers/content-items-importer.js.map +1 -0
- package/dist/es2022/import/importers/language-variant-importer.d.ts +11 -0
- package/dist/es2022/import/importers/language-variant-importer.js +215 -0
- package/dist/es2022/import/importers/language-variant-importer.js.map +1 -0
- package/dist/es2022/import/importers/workflow-importer.d.ts +18 -0
- package/dist/es2022/import/importers/workflow-importer.js +122 -0
- package/dist/es2022/import/importers/workflow-importer.js.map +1 -0
- package/dist/es2022/import/index.d.ts +2 -0
- package/dist/es2022/import/index.js +3 -0
- package/dist/es2022/import/index.js.map +1 -0
- package/dist/es2022/import/utils/import.utils.d.ts +2 -0
- package/dist/es2022/import/utils/import.utils.js +5 -0
- package/dist/es2022/import/utils/import.utils.js.map +1 -0
- package/dist/es2022/index.d.ts +8 -0
- package/dist/es2022/index.js +10 -0
- package/dist/es2022/index.js.map +1 -0
- package/dist/es2022/metadata.d.ts +5 -0
- package/dist/es2022/metadata.js +6 -0
- package/dist/es2022/metadata.js.map +1 -0
- package/dist/es2022/node/cli/actions/export-action.d.ts +2 -0
- package/dist/es2022/node/cli/actions/export-action.js +40 -0
- package/dist/es2022/node/cli/actions/export-action.js.map +1 -0
- package/dist/es2022/node/cli/actions/import-action.d.ts +2 -0
- package/dist/es2022/node/cli/actions/import-action.js +29 -0
- package/dist/es2022/node/cli/actions/import-action.js.map +1 -0
- package/dist/es2022/node/cli/actions/migrate-action.d.ts +2 -0
- package/dist/es2022/node/cli/actions/migrate-action.js +47 -0
- package/dist/es2022/node/cli/actions/migrate-action.js.map +1 -0
- package/dist/es2022/node/cli/app.d.ts +2 -0
- package/dist/es2022/node/cli/app.js +27 -0
- package/dist/es2022/node/cli/app.js.map +1 -0
- package/dist/es2022/node/cli/args/args-fetcher.d.ts +2 -0
- package/dist/es2022/node/cli/args/args-fetcher.js +46 -0
- package/dist/es2022/node/cli/args/args-fetcher.js.map +1 -0
- package/dist/es2022/node/cli/args/args-setter.d.ts +2 -0
- package/dist/es2022/node/cli/args/args-setter.js +31 -0
- package/dist/es2022/node/cli/args/args-setter.js.map +1 -0
- package/dist/es2022/node/cli/cli.models.d.ts +24 -0
- package/dist/es2022/node/cli/cli.models.js +2 -0
- package/dist/es2022/node/cli/cli.models.js.map +1 -0
- package/dist/es2022/node/cli/commands.d.ts +1 -0
- package/dist/es2022/node/cli/commands.js +157 -0
- package/dist/es2022/node/cli/commands.js.map +1 -0
- package/dist/es2022/toolkit/elements-builder.d.ts +14 -0
- package/dist/es2022/toolkit/elements-builder.js +69 -0
- package/dist/es2022/toolkit/elements-builder.js.map +1 -0
- package/dist/es2022/toolkit/export.d.ts +3 -0
- package/dist/es2022/toolkit/export.js +21 -0
- package/dist/es2022/toolkit/export.js.map +1 -0
- package/dist/es2022/toolkit/file.d.ts +12 -0
- package/dist/es2022/toolkit/file.js +50 -0
- package/dist/es2022/toolkit/file.js.map +1 -0
- package/dist/es2022/toolkit/import.d.ts +2 -0
- package/dist/es2022/toolkit/import.js +21 -0
- package/dist/es2022/toolkit/import.js.map +1 -0
- package/dist/es2022/toolkit/index.d.ts +5 -0
- package/dist/es2022/toolkit/index.js +6 -0
- package/dist/es2022/toolkit/index.js.map +1 -0
- package/dist/es2022/toolkit/migrate.d.ts +21 -0
- package/dist/es2022/toolkit/migrate.js +39 -0
- package/dist/es2022/toolkit/migrate.js.map +1 -0
- package/dist/es2022/translation/extraction/items-extraction.processor.d.ts +24 -0
- package/dist/es2022/translation/extraction/items-extraction.processor.js +108 -0
- package/dist/es2022/translation/extraction/items-extraction.processor.js.map +1 -0
- package/dist/es2022/translation/helpers/rich-text.processor.d.ts +22 -0
- package/dist/es2022/translation/helpers/rich-text.processor.js +209 -0
- package/dist/es2022/translation/helpers/rich-text.processor.js.map +1 -0
- package/dist/es2022/translation/index.d.ts +4 -0
- package/dist/es2022/translation/index.js +5 -0
- package/dist/es2022/translation/index.js.map +1 -0
- package/dist/es2022/translation/transforms/export-transforms.d.ts +3 -0
- package/dist/es2022/translation/transforms/export-transforms.js +196 -0
- package/dist/es2022/translation/transforms/export-transforms.js.map +1 -0
- package/dist/es2022/translation/transforms/import-transforms.d.ts +7 -0
- package/dist/es2022/translation/transforms/import-transforms.js +183 -0
- package/dist/es2022/translation/transforms/import-transforms.js.map +1 -0
- package/dist/es2022/zip/index.d.ts +4 -0
- package/dist/es2022/zip/index.js +5 -0
- package/dist/es2022/zip/index.js.map +1 -0
- package/dist/es2022/zip/zip-manager.d.ts +6 -0
- package/dist/es2022/zip/zip-manager.js +27 -0
- package/dist/es2022/zip/zip-manager.js.map +1 -0
- package/dist/es2022/zip/zip-packager.d.ts +3 -0
- package/dist/es2022/zip/zip-packager.js +69 -0
- package/dist/es2022/zip/zip-packager.js.map +1 -0
- package/dist/es2022/zip/zip-transformer.d.ts +6 -0
- package/dist/es2022/zip/zip-transformer.js +82 -0
- package/dist/es2022/zip/zip-transformer.js.map +1 -0
- package/dist/es2022/zip/zip.models.d.ts +13 -0
- package/dist/es2022/zip/zip.models.js +2 -0
- package/dist/es2022/zip/zip.models.js.map +1 -0
- package/lib/core/helpers/workflow-helper.ts +104 -0
- package/lib/core/index.ts +17 -0
- package/lib/core/logs/loggers.ts +80 -0
- package/lib/core/models/core.models.ts +134 -0
- package/lib/core/models/log.models.ts +31 -0
- package/lib/core/models/migration.models.ts +165 -0
- package/lib/core/utils/array.utils.ts +49 -0
- package/lib/core/utils/binary-data.utils.ts +29 -0
- package/lib/core/utils/confirm.utils.ts +139 -0
- package/lib/core/utils/error.utils.ts +65 -0
- package/lib/core/utils/external-id.utils.ts +9 -0
- package/lib/core/utils/global.utils.ts +59 -0
- package/lib/core/utils/http.utils.ts +35 -0
- package/lib/core/utils/management-client-utils.ts +182 -0
- package/lib/core/utils/processing-utils.ts +71 -0
- package/lib/core/utils/run.utils.ts +51 -0
- package/lib/export/context/export-context-fetcher.ts +475 -0
- package/lib/export/export-manager.ts +249 -0
- package/lib/export/export.models.ts +87 -0
- package/lib/export/index.ts +2 -0
- package/lib/export/utils/export.utils.ts +10 -0
- package/lib/file/file-manager.ts +37 -0
- package/lib/file/index.ts +1 -0
- package/lib/import/comparers/asset-comparer.ts +113 -0
- package/lib/import/context/import-context-fetcher.ts +367 -0
- package/lib/import/import-manager.ts +103 -0
- package/lib/import/import.models.ts +84 -0
- package/lib/import/importers/assets-importer.ts +239 -0
- package/lib/import/importers/content-items-importer.ts +142 -0
- package/lib/import/importers/language-variant-importer.ts +342 -0
- package/lib/import/importers/workflow-importer.ts +159 -0
- package/lib/import/index.ts +2 -0
- package/lib/import/utils/import.utils.ts +10 -0
- package/lib/index.ts +9 -0
- package/lib/metadata.ts +6 -0
- package/lib/node/cli/actions/export-action.ts +45 -0
- package/lib/node/cli/actions/import-action.ts +34 -0
- package/lib/node/cli/actions/migrate-action.ts +52 -0
- package/lib/node/cli/app.ts +29 -0
- package/lib/node/cli/args/args-fetcher.ts +61 -0
- package/lib/node/cli/args/args-setter.ts +35 -0
- package/lib/node/cli/cli.models.ts +28 -0
- package/lib/node/cli/commands.ts +161 -0
- package/lib/toolkit/elements-builder.ts +84 -0
- package/lib/toolkit/export.ts +21 -0
- package/lib/toolkit/file.ts +70 -0
- package/lib/toolkit/import.ts +21 -0
- package/lib/toolkit/index.ts +5 -0
- package/lib/toolkit/migrate.ts +71 -0
- package/lib/translation/extraction/items-extraction.processor.ts +181 -0
- package/lib/translation/helpers/rich-text.processor.ts +300 -0
- package/lib/translation/index.ts +4 -0
- package/lib/translation/transforms/export-transforms.ts +253 -0
- package/lib/translation/transforms/import-transforms.ts +215 -0
- package/lib/zip/index.ts +4 -0
- package/lib/zip/zip-manager.ts +33 -0
- package/lib/zip/zip-packager.ts +86 -0
- package/lib/zip/zip-transformer.ts +105 -0
- package/lib/zip/zip.models.ts +12 -0
- package/package.json +88 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
export type MigrationElementType = 'text' | 'rich_text' | 'number' | 'multiple_choice' | 'date_time' | 'asset' | 'modular_content' | 'taxonomy' | 'url_slug' | 'custom' | 'subpages';
|
|
2
|
+
export type MigrationUrlSlugMode = 'autogenerated' | 'custom';
|
|
3
|
+
export interface MigrationRichTextElementValue {
|
|
4
|
+
value: string;
|
|
5
|
+
components: readonly MigrationComponent[];
|
|
6
|
+
}
|
|
7
|
+
export interface MigrationUrlSlugElementValue {
|
|
8
|
+
value: string | undefined;
|
|
9
|
+
mode: MigrationUrlSlugMode;
|
|
10
|
+
}
|
|
11
|
+
export interface MigrationComponent {
|
|
12
|
+
system: {
|
|
13
|
+
id: string;
|
|
14
|
+
type: MigrationReference;
|
|
15
|
+
};
|
|
16
|
+
elements: MigrationElements;
|
|
17
|
+
}
|
|
18
|
+
export type MigrationElementValue = string | undefined | MigrationReference[] | number | MigrationRichTextElementValue | MigrationUrlSlugElementValue;
|
|
19
|
+
export interface MigrationElement<TElementType extends MigrationElementType = MigrationElementType, TValue extends MigrationElementValue = MigrationElementValue> {
|
|
20
|
+
/**
|
|
21
|
+
* Value of the element
|
|
22
|
+
*/
|
|
23
|
+
readonly value: TValue;
|
|
24
|
+
/**
|
|
25
|
+
* Type of the element
|
|
26
|
+
*/
|
|
27
|
+
readonly type: TElementType;
|
|
28
|
+
}
|
|
29
|
+
export declare namespace MigrationElementModels {
|
|
30
|
+
interface TextElement extends MigrationElement<'text', string | undefined> {
|
|
31
|
+
}
|
|
32
|
+
interface NumberElement extends MigrationElement<'number', number | undefined> {
|
|
33
|
+
}
|
|
34
|
+
interface RichTextElement extends MigrationElement<'rich_text', MigrationRichTextElementValue | undefined> {
|
|
35
|
+
}
|
|
36
|
+
interface MultipleChoiceElement extends MigrationElement<'multiple_choice', MigrationReference[] | undefined> {
|
|
37
|
+
}
|
|
38
|
+
interface DateTimeElement extends MigrationElement<'date_time', string | undefined> {
|
|
39
|
+
}
|
|
40
|
+
interface AssetElement extends MigrationElement<'asset', MigrationReference[] | undefined> {
|
|
41
|
+
}
|
|
42
|
+
interface LinkedItemsElement extends MigrationElement<'modular_content', MigrationReference[] | undefined> {
|
|
43
|
+
}
|
|
44
|
+
interface TaxonomyElement extends MigrationElement<'taxonomy', MigrationReference[] | undefined> {
|
|
45
|
+
}
|
|
46
|
+
interface UrlSlugElement extends MigrationElement<'url_slug', MigrationUrlSlugElementValue | undefined> {
|
|
47
|
+
}
|
|
48
|
+
interface CustomElement extends MigrationElement<'custom', string | undefined> {
|
|
49
|
+
}
|
|
50
|
+
interface SubpagesElement extends MigrationElement<'subpages', MigrationReference[] | undefined> {
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export interface MigrationElements {
|
|
54
|
+
[elementCodename: string]: MigrationElement;
|
|
55
|
+
}
|
|
56
|
+
export interface MigrationItemVersion<TElements extends MigrationElements = MigrationElements> {
|
|
57
|
+
readonly elements: TElements;
|
|
58
|
+
readonly workflow_step: MigrationReference;
|
|
59
|
+
}
|
|
60
|
+
export interface MigrationItem<TElements extends MigrationElements = MigrationElements> {
|
|
61
|
+
readonly system: {
|
|
62
|
+
/**
|
|
63
|
+
* Codename of the content item
|
|
64
|
+
*/
|
|
65
|
+
readonly codename: string;
|
|
66
|
+
/**
|
|
67
|
+
* Name of the content item
|
|
68
|
+
*/
|
|
69
|
+
readonly name: string;
|
|
70
|
+
/**
|
|
71
|
+
* Language of the language variant
|
|
72
|
+
*/
|
|
73
|
+
readonly language: MigrationReference;
|
|
74
|
+
/**
|
|
75
|
+
* Content type of the item
|
|
76
|
+
*/
|
|
77
|
+
readonly type: MigrationReference;
|
|
78
|
+
/**
|
|
79
|
+
* Collection of the item
|
|
80
|
+
*/
|
|
81
|
+
readonly collection: MigrationReference;
|
|
82
|
+
/**
|
|
83
|
+
* Workflow of the item
|
|
84
|
+
*/
|
|
85
|
+
readonly workflow: MigrationReference;
|
|
86
|
+
};
|
|
87
|
+
readonly versions: MigrationItemVersion<TElements>[];
|
|
88
|
+
}
|
|
89
|
+
export interface MigrationReference {
|
|
90
|
+
/**
|
|
91
|
+
* Codename of the referenced object
|
|
92
|
+
*/
|
|
93
|
+
readonly codename: string;
|
|
94
|
+
}
|
|
95
|
+
export interface MigrationAssetDescription {
|
|
96
|
+
readonly language: MigrationReference;
|
|
97
|
+
readonly description?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface MigrationAsset {
|
|
100
|
+
/**
|
|
101
|
+
* Codename of the asset
|
|
102
|
+
*/
|
|
103
|
+
readonly codename: string;
|
|
104
|
+
/**
|
|
105
|
+
* Binary data of the asset
|
|
106
|
+
*/
|
|
107
|
+
readonly binaryData: Buffer | Blob;
|
|
108
|
+
/**
|
|
109
|
+
* Filename of the asset, will be used as a filename in Kontent.ai after importing the asset
|
|
110
|
+
*/
|
|
111
|
+
readonly filename: string;
|
|
112
|
+
/**
|
|
113
|
+
* Title of the asset
|
|
114
|
+
*/
|
|
115
|
+
readonly title: string;
|
|
116
|
+
/**
|
|
117
|
+
* Optional
|
|
118
|
+
* Collection of the asset
|
|
119
|
+
*/
|
|
120
|
+
readonly collection?: MigrationReference;
|
|
121
|
+
/**
|
|
122
|
+
* Optional.
|
|
123
|
+
* Descriptions of the assets
|
|
124
|
+
*/
|
|
125
|
+
readonly descriptions?: readonly MigrationAssetDescription[];
|
|
126
|
+
}
|
|
127
|
+
export interface MigrationData {
|
|
128
|
+
/**
|
|
129
|
+
* Array of migration items to process (export / import)
|
|
130
|
+
*/
|
|
131
|
+
readonly items: readonly MigrationItem[];
|
|
132
|
+
/**
|
|
133
|
+
* Array of migration assets to process
|
|
134
|
+
*/
|
|
135
|
+
readonly assets: readonly MigrationAsset[];
|
|
136
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.models.js","sourceRoot":"","sources":["../../../../lib/core/models/migration.models.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MigrationElementValue, MigrationReference } from '../models/migration.models.js';
|
|
2
|
+
export declare function parseAsMigrationReferencesArray(value: MigrationElementValue): readonly MigrationReference[];
|
|
3
|
+
export declare function findRequired<T>(array: readonly T[], predicate: (item: T, index: number) => boolean, errorMessage: string): T;
|
|
4
|
+
export declare function findRequired<T>(array: readonly T[], predicate: (item: T, index: number) => boolean, errorMessage: () => never): T;
|
|
5
|
+
export declare function mapAsync<Input, Result>(array: readonly Input[], callbackAsync: (item: Readonly<Input>, index: number, array: readonly Input[]) => Promise<Readonly<Result>>): Promise<Readonly<Result[]>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function parseAsMigrationReferencesArray(value) {
|
|
2
|
+
if (!value) {
|
|
3
|
+
return [];
|
|
4
|
+
}
|
|
5
|
+
if (Array.isArray(value)) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
throw Error(`Value is not an array`);
|
|
9
|
+
}
|
|
10
|
+
export function findRequired(array, predicate, errorMessage) {
|
|
11
|
+
const item = array.find(predicate);
|
|
12
|
+
if (item) {
|
|
13
|
+
return item;
|
|
14
|
+
}
|
|
15
|
+
if (typeof errorMessage === 'string' || errorMessage instanceof String) {
|
|
16
|
+
throw Error(errorMessage.toString());
|
|
17
|
+
}
|
|
18
|
+
return errorMessage();
|
|
19
|
+
}
|
|
20
|
+
export async function mapAsync(array, callbackAsync) {
|
|
21
|
+
const results = [];
|
|
22
|
+
for (let i = 0; i < array.length; i++) {
|
|
23
|
+
results.push(await callbackAsync(array[i], i, array));
|
|
24
|
+
}
|
|
25
|
+
return results;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=array.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.utils.js","sourceRoot":"","sources":["../../../../lib/core/utils/array.utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,+BAA+B,CAAC,KAA4B;IACxE,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACzC,CAAC;AAYD,MAAM,UAAU,YAAY,CACxB,KAAmB,EACnB,SAA8C,EAC9C,YAAoC;IAEpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEnC,IAAI,IAAI,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,YAAY,MAAM,EAAE,CAAC;QACrE,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,YAAY,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC1B,KAAuB,EACvB,aAA2G;IAE3G,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defaultHttpService, defaultRetryStrategy } from './http.utils.js';
|
|
2
|
+
export async function getBinaryDataFromUrlAsync(url) {
|
|
3
|
+
// temp fix for Kontent.ai Repository not validating url
|
|
4
|
+
url = url.replace('#', '%23');
|
|
5
|
+
const response = await defaultHttpService.getAsync({
|
|
6
|
+
url
|
|
7
|
+
}, {
|
|
8
|
+
responseType: 'arraybuffer',
|
|
9
|
+
retryStrategy: defaultRetryStrategy
|
|
10
|
+
});
|
|
11
|
+
const contentLengthHeader = response.headers.find((m) => m.header.toLowerCase() === 'content-length');
|
|
12
|
+
const contentLength = contentLengthHeader ? +contentLengthHeader.value : 0;
|
|
13
|
+
return { data: response.data, contentLength: contentLength };
|
|
14
|
+
}
|
|
15
|
+
export function geSizeInBytes(data) {
|
|
16
|
+
if (data instanceof Blob) {
|
|
17
|
+
return data.size;
|
|
18
|
+
}
|
|
19
|
+
return data.byteLength;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=binary-data.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-data.utils.js","sourceRoot":"","sources":["../../../../lib/core/utils/binary-data.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,GAAW;IACvD,wDAAwD;IACxD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAC9C;QACI,GAAG;KACN,EACD;QACI,YAAY,EAAE,aAAa;QAC3B,aAAa,EAAE,oBAAoB;KACtC,CACJ,CAAC;IAEF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,CAAC;IACtG,MAAM,aAAa,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC7C,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Logger } from '../models/log.models.js';
|
|
2
|
+
export declare function confirmExportAsync(data: {
|
|
3
|
+
readonly force: boolean;
|
|
4
|
+
readonly environmentId: string;
|
|
5
|
+
readonly apiKey: string;
|
|
6
|
+
readonly logger: Logger;
|
|
7
|
+
readonly dataToExport: {
|
|
8
|
+
readonly itemsCount: number;
|
|
9
|
+
};
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export declare function confirmMigrateAsync(data: {
|
|
12
|
+
readonly force: boolean;
|
|
13
|
+
readonly sourceEnvironment: {
|
|
14
|
+
readonly environmentId: string;
|
|
15
|
+
readonly apiKey: string;
|
|
16
|
+
};
|
|
17
|
+
readonly targetEnvironment: {
|
|
18
|
+
readonly environmentId: string;
|
|
19
|
+
readonly apiKey: string;
|
|
20
|
+
};
|
|
21
|
+
readonly logger: Logger;
|
|
22
|
+
readonly dataToMigrate: {
|
|
23
|
+
readonly itemsCount: number;
|
|
24
|
+
};
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
export declare function confirmImportAsync(data: {
|
|
27
|
+
readonly force: boolean;
|
|
28
|
+
readonly environmentId: string;
|
|
29
|
+
readonly apiKey: string;
|
|
30
|
+
readonly logger: Logger;
|
|
31
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { getMigrationManagementClient, managementClientUtils } from './management-client-utils.js';
|
|
3
|
+
export async function confirmExportAsync(data) {
|
|
4
|
+
const environment = await managementClientUtils(getMigrationManagementClient({
|
|
5
|
+
environmentId: data.environmentId,
|
|
6
|
+
apiKey: data.apiKey
|
|
7
|
+
}), data.logger).getEnvironmentAsync();
|
|
8
|
+
const text = `Are you sure to export '${chalk.cyan(data.dataToExport.itemsCount)}' content ${getItemsPluralText(data.dataToExport.itemsCount)} from ${chalk.yellow(environment.name)} (${chalk.yellow(environment.environment)}?`;
|
|
9
|
+
await confirmAsync({
|
|
10
|
+
force: data.force,
|
|
11
|
+
logger: data.logger,
|
|
12
|
+
action: 'Export',
|
|
13
|
+
message: text
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export async function confirmMigrateAsync(data) {
|
|
17
|
+
const sourceEnvironment = await managementClientUtils(getMigrationManagementClient({
|
|
18
|
+
environmentId: data.sourceEnvironment.environmentId,
|
|
19
|
+
apiKey: data.sourceEnvironment.apiKey
|
|
20
|
+
}), data.logger).getEnvironmentAsync();
|
|
21
|
+
const targetEnvironment = await managementClientUtils(getMigrationManagementClient({
|
|
22
|
+
environmentId: data.targetEnvironment.environmentId,
|
|
23
|
+
apiKey: data.targetEnvironment.apiKey
|
|
24
|
+
}), data.logger).getEnvironmentAsync();
|
|
25
|
+
const text = `Are you sure to migrate '${chalk.cyan(data.dataToMigrate.itemsCount)}' ${getItemsPluralText(data.dataToMigrate.itemsCount)} from ${chalk.yellow(sourceEnvironment.name)} (${chalk.yellow(sourceEnvironment.environment)}) to environment ${chalk.yellow(targetEnvironment.name)} (${chalk.yellow(targetEnvironment.environment)}) ?`;
|
|
26
|
+
await confirmAsync({
|
|
27
|
+
force: data.force,
|
|
28
|
+
logger: data.logger,
|
|
29
|
+
action: 'Migrate',
|
|
30
|
+
message: text
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export async function confirmImportAsync(data) {
|
|
34
|
+
const environment = await managementClientUtils(getMigrationManagementClient({
|
|
35
|
+
environmentId: data.environmentId,
|
|
36
|
+
apiKey: data.apiKey
|
|
37
|
+
}), data.logger).getEnvironmentAsync();
|
|
38
|
+
const text = `Are you sure to import data into ${chalk.yellow(environment.name)} (${chalk.yellow(environment.environment)})?`;
|
|
39
|
+
await confirmAsync({
|
|
40
|
+
force: data.force,
|
|
41
|
+
logger: data.logger,
|
|
42
|
+
action: 'Import',
|
|
43
|
+
message: text
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
async function confirmAsync(data) {
|
|
47
|
+
// Prompts is imported dynamically because it's a node.js only module and would not work if user
|
|
48
|
+
// tried using this library in a browser
|
|
49
|
+
const prompts = await import('prompts');
|
|
50
|
+
if (data.force) {
|
|
51
|
+
data.logger.log({
|
|
52
|
+
type: 'info',
|
|
53
|
+
message: `Skipping confirmation prompt due to the use of 'force' param`
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const confirmed = await prompts.default({
|
|
58
|
+
type: 'confirm',
|
|
59
|
+
name: 'confirm',
|
|
60
|
+
message: `${chalk.cyan(data.action)}: ${data.message}`
|
|
61
|
+
});
|
|
62
|
+
if (!confirmed.confirm) {
|
|
63
|
+
throw Error(`Confirmation refused.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function getItemsPluralText(count) {
|
|
68
|
+
if (count === 1) {
|
|
69
|
+
return 'item';
|
|
70
|
+
}
|
|
71
|
+
return 'items';
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=confirm.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirm.utils.js","sourceRoot":"","sources":["../../../../lib/core/utils/confirm.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { SharedModels } from '@kontent-ai/management-sdk';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
export function extractErrorData(error) {
|
|
4
|
+
let isUnknownError = true;
|
|
5
|
+
let message = `Unknown error`;
|
|
6
|
+
let requestUrl = undefined;
|
|
7
|
+
let requestData = undefined;
|
|
8
|
+
if (error instanceof SharedModels.ContentManagementBaseKontentError) {
|
|
9
|
+
isUnknownError = false;
|
|
10
|
+
message = `${error.message}`;
|
|
11
|
+
const originalError = error.originalError;
|
|
12
|
+
requestUrl = originalError?.response?.config?.url;
|
|
13
|
+
requestData = originalError?.response?.config?.data;
|
|
14
|
+
message += error.validationErrors.map((m) => m.message).join(', ');
|
|
15
|
+
}
|
|
16
|
+
else if (error instanceof Error) {
|
|
17
|
+
message = error.message;
|
|
18
|
+
}
|
|
19
|
+
const errorData = {
|
|
20
|
+
message: message,
|
|
21
|
+
requestData: requestData,
|
|
22
|
+
requestUrl: requestUrl,
|
|
23
|
+
error: error,
|
|
24
|
+
isUnknownError: isUnknownError
|
|
25
|
+
};
|
|
26
|
+
return errorData;
|
|
27
|
+
}
|
|
28
|
+
export function is404Error(error) {
|
|
29
|
+
if (error instanceof SharedModels.ContentManagementBaseKontentError) {
|
|
30
|
+
const originalError = error.originalError;
|
|
31
|
+
if (originalError?.response?.status === 404) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
export function handleError(error) {
|
|
38
|
+
const errorData = extractErrorData(error);
|
|
39
|
+
if (errorData.isUnknownError) {
|
|
40
|
+
console.error(error);
|
|
41
|
+
}
|
|
42
|
+
if (errorData.requestData) {
|
|
43
|
+
console.log(`${chalk.red('Request data')}: ${errorData.requestData}`);
|
|
44
|
+
}
|
|
45
|
+
if (errorData.requestUrl) {
|
|
46
|
+
console.log(`${chalk.red('Request url')}: ${errorData.requestUrl}`);
|
|
47
|
+
}
|
|
48
|
+
console.error(`${chalk.red('Error:')} ${errorData.message}`);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=error.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../../../lib/core/utils/error.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC3C,IAAI,cAAc,GAAY,IAAI,CAAC;IACnC,IAAI,OAAO,GAAW,eAAe,CAAC;IACtC,IAAI,UAAU,GAAuB,SAAS,CAAC;IAC/C,IAAI,WAAW,GAAuB,SAAS,CAAC;IAEhD,IAAI,KAAK,YAAY,YAAY,CAAC,iCAAiC,EAAE,CAAC;QAClE,cAAc,GAAG,KAAK,CAAC;QACvB,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAE7B,MAAM,aAAa,GAAwC,KAAK,CAAC,aAElD,CAAC;QAEhB,UAAU,GAAG,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC;QAClD,WAAW,GAAG,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;QACpD,OAAO,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAChC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,MAAM,SAAS,GAAc;QACzB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,cAAc;KACjC,CAAC;IAEF,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACrC,IAAI,KAAK,YAAY,YAAY,CAAC,iCAAiC,EAAE,CAAC;QAClE,MAAM,aAAa,GAAG,KAAK,CAAC,aAAoD,CAAC;QAEjF,IAAI,aAAa,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-id.utils.js","sourceRoot":"","sources":["../../../../lib/core/utils/external-id.utils.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,0BAA0B,GAAwB;IAC3D,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,QAAQ,EAAE;IAClD,qBAAqB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,QAAQ,EAAE;CAC1D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ITrackingEventData } from '@kontent-ai-consulting/tools-analytics';
|
|
2
|
+
import { EnvContext } from '../models/core.models.js';
|
|
3
|
+
export declare const isNotUndefined: <T>(item: T | undefined) => item is T;
|
|
4
|
+
export declare function formatBytes(bytes: number): string;
|
|
5
|
+
export declare function sleepAsync(ms: number): Promise<void>;
|
|
6
|
+
export declare function exitProgram(data: {
|
|
7
|
+
readonly message: string;
|
|
8
|
+
}): never;
|
|
9
|
+
export declare function getCurrentEnvironment(): EnvContext;
|
|
10
|
+
export declare function getDefaultZipFilename(): string;
|
|
11
|
+
export declare function executeWithTrackingAsync<TResult>(data: {
|
|
12
|
+
func: () => Promise<TResult extends void ? void : Readonly<TResult>>;
|
|
13
|
+
event: Readonly<ITrackingEventData>;
|
|
14
|
+
}): Promise<TResult extends void ? void : Readonly<TResult>>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { format } from 'bytes';
|
|
2
|
+
import { getTrackingService } from '@kontent-ai-consulting/tools-analytics';
|
|
3
|
+
import { isBrowser, isNode, isWebWorker } from 'browser-or-node';
|
|
4
|
+
export const isNotUndefined = (item) => item !== undefined;
|
|
5
|
+
export function formatBytes(bytes) {
|
|
6
|
+
return format(bytes);
|
|
7
|
+
}
|
|
8
|
+
export function sleepAsync(ms) {
|
|
9
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
10
|
+
}
|
|
11
|
+
export function exitProgram(data) {
|
|
12
|
+
throw Error(data.message);
|
|
13
|
+
}
|
|
14
|
+
export function getCurrentEnvironment() {
|
|
15
|
+
if (isNode) {
|
|
16
|
+
return 'node';
|
|
17
|
+
}
|
|
18
|
+
if (isBrowser || isWebWorker) {
|
|
19
|
+
return 'browser';
|
|
20
|
+
}
|
|
21
|
+
throw Error(`Invalid current environment. This library can be used in node.js or in browsers.`);
|
|
22
|
+
}
|
|
23
|
+
export function getDefaultZipFilename() {
|
|
24
|
+
return `data.zip`;
|
|
25
|
+
}
|
|
26
|
+
export async function executeWithTrackingAsync(data) {
|
|
27
|
+
const trackingService = getTrackingService();
|
|
28
|
+
const event = await trackingService.trackEventAsync(data.event);
|
|
29
|
+
try {
|
|
30
|
+
const result = await data.func();
|
|
31
|
+
await trackingService.setEventResultAsync({
|
|
32
|
+
eventId: event.eventId,
|
|
33
|
+
result: 'success'
|
|
34
|
+
});
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
await trackingService.setEventResultAsync({
|
|
39
|
+
eventId: event.eventId,
|
|
40
|
+
result: 'fail'
|
|
41
|
+
});
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=global.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.utils.js","sourceRoot":"","sources":["../../../../lib/core/utils/global.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAsB,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGjE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,IAAmB,EAAa,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;AAExF,MAAM,UAAU,WAAW,CAAC,KAAa;IACrC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAU;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAkC;IAC1D,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB;IACjC,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,CAAC,kFAAkF,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,qBAAqB;IACjC,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAU,IAGvD;IACG,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhE,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAEjC,MAAM,eAAe,CAAC,mBAAmB,CAAC;YACtC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,eAAe,CAAC,mBAAmB,CAAC;YACtC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { HttpService } from '@kontent-ai/core-sdk';
|
|
2
|
+
const rateExceededErrorCode = 10000;
|
|
3
|
+
const notFoundErrorCode = 10000;
|
|
4
|
+
export const defaultHttpService = new HttpService({
|
|
5
|
+
logErrorsToConsole: false
|
|
6
|
+
});
|
|
7
|
+
export const defaultRetryStrategy = {
|
|
8
|
+
addJitter: true,
|
|
9
|
+
canRetryError: (err) => {
|
|
10
|
+
const originalError = err;
|
|
11
|
+
const errorCode = originalError?.response?.data?.error_code ?? -1;
|
|
12
|
+
if (errorCode === rateExceededErrorCode) {
|
|
13
|
+
// retry rate exceeded error
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (errorCode === notFoundErrorCode) {
|
|
17
|
+
// do not retry errors indicating resource does not exist
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (errorCode >= 0) {
|
|
21
|
+
// otherwise if error code is set, do not retry the request
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
},
|
|
26
|
+
maxAttempts: 3,
|
|
27
|
+
deltaBackoffMs: 1000
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=http.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.utils.js","sourceRoot":"","sources":["../../../../lib/core/utils/http.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,sBAAsB,CAAC;AAG1E,MAAM,qBAAqB,GAAW,KAAK,CAAC;AAC5C,MAAM,iBAAiB,GAAW,KAAK,CAAC;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAA0B,IAAI,WAAW,CAAC;IACrE,kBAAkB,EAAE,KAAK;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAoC;IACjE,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,aAAa,GAAG,GAA0C,CAAC;QACjE,MAAM,SAAS,GAAW,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;QAE1E,IAAI,SAAS,KAAK,qBAAqB,EAAE,CAAC;YACtC,4BAA4B;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;YAClC,yDAAyD;YACzD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACjB,2DAA2D;YAC3D,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,IAAI;CACvB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CollectionModels, EnvironmentModels, LanguageModels, ManagementClient, TaxonomyModels, WorkflowModels } from '@kontent-ai/management-sdk';
|
|
2
|
+
import { IRetryStrategyOptions } from '@kontent-ai/core-sdk';
|
|
3
|
+
import { LogSpinnerData, Logger } from '../models/log.models.js';
|
|
4
|
+
import { FlattenedContentType } from '../models/core.models.js';
|
|
5
|
+
export interface ManagementClientConfig {
|
|
6
|
+
readonly environmentId: string;
|
|
7
|
+
readonly apiKey: string;
|
|
8
|
+
readonly retryStrategy?: Readonly<IRetryStrategyOptions>;
|
|
9
|
+
readonly baseUrl?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function getMigrationManagementClient(config: ManagementClientConfig): ManagementClient;
|
|
12
|
+
export declare function managementClientUtils(client: Readonly<ManagementClient>, logger: Logger): {
|
|
13
|
+
getAllCollectionsAsync: (logSpinner: LogSpinnerData) => Promise<readonly CollectionModels.Collection[]>;
|
|
14
|
+
getAllLanguagesAsync: (logSpinner: LogSpinnerData) => Promise<readonly LanguageModels.LanguageModel[]>;
|
|
15
|
+
getAllWorkflowsAsync: (logSpinner: LogSpinnerData) => Promise<readonly WorkflowModels.Workflow[]>;
|
|
16
|
+
getAllTaxonomiesAsync: (logSpinner: LogSpinnerData) => Promise<readonly TaxonomyModels.Taxonomy[]>;
|
|
17
|
+
getFlattenedContentTypesAsync: (logSpinner: LogSpinnerData) => Promise<readonly FlattenedContentType[]>;
|
|
18
|
+
getEnvironmentAsync: () => Promise<EnvironmentModels.EnvironmentInformationModel>;
|
|
19
|
+
};
|