@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.
Files changed (240) hide show
  1. package/.npmignore +13 -0
  2. package/LICENSE.md +9 -0
  3. package/README.md +272 -0
  4. package/dist/es2022/core/helpers/workflow-helper.d.ts +37 -0
  5. package/dist/es2022/core/helpers/workflow-helper.js +67 -0
  6. package/dist/es2022/core/helpers/workflow-helper.js.map +1 -0
  7. package/dist/es2022/core/index.d.ts +15 -0
  8. package/dist/es2022/core/index.js +16 -0
  9. package/dist/es2022/core/index.js.map +1 -0
  10. package/dist/es2022/core/logs/loggers.d.ts +2 -0
  11. package/dist/es2022/core/logs/loggers.js +69 -0
  12. package/dist/es2022/core/logs/loggers.js.map +1 -0
  13. package/dist/es2022/core/models/core.models.d.ts +91 -0
  14. package/dist/es2022/core/models/core.models.js +2 -0
  15. package/dist/es2022/core/models/core.models.js.map +1 -0
  16. package/dist/es2022/core/models/log.models.d.ts +15 -0
  17. package/dist/es2022/core/models/log.models.js +2 -0
  18. package/dist/es2022/core/models/log.models.js.map +1 -0
  19. package/dist/es2022/core/models/migration.models.d.ts +136 -0
  20. package/dist/es2022/core/models/migration.models.js +2 -0
  21. package/dist/es2022/core/models/migration.models.js.map +1 -0
  22. package/dist/es2022/core/utils/array.utils.d.ts +5 -0
  23. package/dist/es2022/core/utils/array.utils.js +27 -0
  24. package/dist/es2022/core/utils/array.utils.js.map +1 -0
  25. package/dist/es2022/core/utils/binary-data.utils.d.ts +5 -0
  26. package/dist/es2022/core/utils/binary-data.utils.js +21 -0
  27. package/dist/es2022/core/utils/binary-data.utils.js.map +1 -0
  28. package/dist/es2022/core/utils/confirm.utils.d.ts +31 -0
  29. package/dist/es2022/core/utils/confirm.utils.js +73 -0
  30. package/dist/es2022/core/utils/confirm.utils.js.map +1 -0
  31. package/dist/es2022/core/utils/error.utils.d.ts +4 -0
  32. package/dist/es2022/core/utils/error.utils.js +50 -0
  33. package/dist/es2022/core/utils/error.utils.js.map +1 -0
  34. package/dist/es2022/core/utils/external-id.utils.d.ts +5 -0
  35. package/dist/es2022/core/utils/external-id.utils.js +5 -0
  36. package/dist/es2022/core/utils/external-id.utils.js.map +1 -0
  37. package/dist/es2022/core/utils/global.utils.d.ts +14 -0
  38. package/dist/es2022/core/utils/global.utils.js +45 -0
  39. package/dist/es2022/core/utils/global.utils.js.map +1 -0
  40. package/dist/es2022/core/utils/http.utils.d.ts +3 -0
  41. package/dist/es2022/core/utils/http.utils.js +29 -0
  42. package/dist/es2022/core/utils/http.utils.js.map +1 -0
  43. package/dist/es2022/core/utils/management-client-utils.d.ts +19 -0
  44. package/dist/es2022/core/utils/management-client-utils.js +129 -0
  45. package/dist/es2022/core/utils/management-client-utils.js.map +1 -0
  46. package/dist/es2022/core/utils/processing-utils.d.ts +12 -0
  47. package/dist/es2022/core/utils/processing-utils.js +39 -0
  48. package/dist/es2022/core/utils/processing-utils.js.map +1 -0
  49. package/dist/es2022/core/utils/run.utils.d.ts +10 -0
  50. package/dist/es2022/core/utils/run.utils.js +37 -0
  51. package/dist/es2022/core/utils/run.utils.js.map +1 -0
  52. package/dist/es2022/export/context/export-context-fetcher.d.ts +4 -0
  53. package/dist/es2022/export/context/export-context-fetcher.js +289 -0
  54. package/dist/es2022/export/context/export-context-fetcher.js.map +1 -0
  55. package/dist/es2022/export/export-manager.d.ts +5 -0
  56. package/dist/es2022/export/export-manager.js +167 -0
  57. package/dist/es2022/export/export-manager.js.map +1 -0
  58. package/dist/es2022/export/export.models.d.ts +55 -0
  59. package/dist/es2022/export/export.models.js +2 -0
  60. package/dist/es2022/export/export.models.js.map +1 -0
  61. package/dist/es2022/export/index.d.ts +2 -0
  62. package/dist/es2022/export/index.js +3 -0
  63. package/dist/es2022/export/index.js.map +1 -0
  64. package/dist/es2022/export/utils/export.utils.d.ts +2 -0
  65. package/dist/es2022/export/utils/export.utils.js +5 -0
  66. package/dist/es2022/export/utils/export.utils.js.map +1 -0
  67. package/dist/es2022/file/file-manager.d.ts +5 -0
  68. package/dist/es2022/file/file-manager.js +29 -0
  69. package/dist/es2022/file/file-manager.js.map +1 -0
  70. package/dist/es2022/file/index.d.ts +1 -0
  71. package/dist/es2022/file/index.js +2 -0
  72. package/dist/es2022/file/index.js.map +1 -0
  73. package/dist/es2022/import/comparers/asset-comparer.d.ts +12 -0
  74. package/dist/es2022/import/comparers/asset-comparer.js +65 -0
  75. package/dist/es2022/import/comparers/asset-comparer.js.map +1 -0
  76. package/dist/es2022/import/context/import-context-fetcher.d.ts +4 -0
  77. package/dist/es2022/import/context/import-context-fetcher.js +235 -0
  78. package/dist/es2022/import/context/import-context-fetcher.js.map +1 -0
  79. package/dist/es2022/import/import-manager.d.ts +4 -0
  80. package/dist/es2022/import/import-manager.js +80 -0
  81. package/dist/es2022/import/import-manager.js.map +1 -0
  82. package/dist/es2022/import/import.models.d.ts +45 -0
  83. package/dist/es2022/import/import.models.js +2 -0
  84. package/dist/es2022/import/import.models.js.map +1 -0
  85. package/dist/es2022/import/importers/assets-importer.d.ts +10 -0
  86. package/dist/es2022/import/importers/assets-importer.js +175 -0
  87. package/dist/es2022/import/importers/assets-importer.js.map +1 -0
  88. package/dist/es2022/import/importers/content-items-importer.d.ts +10 -0
  89. package/dist/es2022/import/importers/content-items-importer.js +97 -0
  90. package/dist/es2022/import/importers/content-items-importer.js.map +1 -0
  91. package/dist/es2022/import/importers/language-variant-importer.d.ts +11 -0
  92. package/dist/es2022/import/importers/language-variant-importer.js +215 -0
  93. package/dist/es2022/import/importers/language-variant-importer.js.map +1 -0
  94. package/dist/es2022/import/importers/workflow-importer.d.ts +18 -0
  95. package/dist/es2022/import/importers/workflow-importer.js +122 -0
  96. package/dist/es2022/import/importers/workflow-importer.js.map +1 -0
  97. package/dist/es2022/import/index.d.ts +2 -0
  98. package/dist/es2022/import/index.js +3 -0
  99. package/dist/es2022/import/index.js.map +1 -0
  100. package/dist/es2022/import/utils/import.utils.d.ts +2 -0
  101. package/dist/es2022/import/utils/import.utils.js +5 -0
  102. package/dist/es2022/import/utils/import.utils.js.map +1 -0
  103. package/dist/es2022/index.d.ts +8 -0
  104. package/dist/es2022/index.js +10 -0
  105. package/dist/es2022/index.js.map +1 -0
  106. package/dist/es2022/metadata.d.ts +5 -0
  107. package/dist/es2022/metadata.js +6 -0
  108. package/dist/es2022/metadata.js.map +1 -0
  109. package/dist/es2022/node/cli/actions/export-action.d.ts +2 -0
  110. package/dist/es2022/node/cli/actions/export-action.js +40 -0
  111. package/dist/es2022/node/cli/actions/export-action.js.map +1 -0
  112. package/dist/es2022/node/cli/actions/import-action.d.ts +2 -0
  113. package/dist/es2022/node/cli/actions/import-action.js +29 -0
  114. package/dist/es2022/node/cli/actions/import-action.js.map +1 -0
  115. package/dist/es2022/node/cli/actions/migrate-action.d.ts +2 -0
  116. package/dist/es2022/node/cli/actions/migrate-action.js +47 -0
  117. package/dist/es2022/node/cli/actions/migrate-action.js.map +1 -0
  118. package/dist/es2022/node/cli/app.d.ts +2 -0
  119. package/dist/es2022/node/cli/app.js +27 -0
  120. package/dist/es2022/node/cli/app.js.map +1 -0
  121. package/dist/es2022/node/cli/args/args-fetcher.d.ts +2 -0
  122. package/dist/es2022/node/cli/args/args-fetcher.js +46 -0
  123. package/dist/es2022/node/cli/args/args-fetcher.js.map +1 -0
  124. package/dist/es2022/node/cli/args/args-setter.d.ts +2 -0
  125. package/dist/es2022/node/cli/args/args-setter.js +31 -0
  126. package/dist/es2022/node/cli/args/args-setter.js.map +1 -0
  127. package/dist/es2022/node/cli/cli.models.d.ts +24 -0
  128. package/dist/es2022/node/cli/cli.models.js +2 -0
  129. package/dist/es2022/node/cli/cli.models.js.map +1 -0
  130. package/dist/es2022/node/cli/commands.d.ts +1 -0
  131. package/dist/es2022/node/cli/commands.js +157 -0
  132. package/dist/es2022/node/cli/commands.js.map +1 -0
  133. package/dist/es2022/toolkit/elements-builder.d.ts +14 -0
  134. package/dist/es2022/toolkit/elements-builder.js +69 -0
  135. package/dist/es2022/toolkit/elements-builder.js.map +1 -0
  136. package/dist/es2022/toolkit/export.d.ts +3 -0
  137. package/dist/es2022/toolkit/export.js +21 -0
  138. package/dist/es2022/toolkit/export.js.map +1 -0
  139. package/dist/es2022/toolkit/file.d.ts +12 -0
  140. package/dist/es2022/toolkit/file.js +50 -0
  141. package/dist/es2022/toolkit/file.js.map +1 -0
  142. package/dist/es2022/toolkit/import.d.ts +2 -0
  143. package/dist/es2022/toolkit/import.js +21 -0
  144. package/dist/es2022/toolkit/import.js.map +1 -0
  145. package/dist/es2022/toolkit/index.d.ts +5 -0
  146. package/dist/es2022/toolkit/index.js +6 -0
  147. package/dist/es2022/toolkit/index.js.map +1 -0
  148. package/dist/es2022/toolkit/migrate.d.ts +21 -0
  149. package/dist/es2022/toolkit/migrate.js +39 -0
  150. package/dist/es2022/toolkit/migrate.js.map +1 -0
  151. package/dist/es2022/translation/extraction/items-extraction.processor.d.ts +24 -0
  152. package/dist/es2022/translation/extraction/items-extraction.processor.js +108 -0
  153. package/dist/es2022/translation/extraction/items-extraction.processor.js.map +1 -0
  154. package/dist/es2022/translation/helpers/rich-text.processor.d.ts +22 -0
  155. package/dist/es2022/translation/helpers/rich-text.processor.js +209 -0
  156. package/dist/es2022/translation/helpers/rich-text.processor.js.map +1 -0
  157. package/dist/es2022/translation/index.d.ts +4 -0
  158. package/dist/es2022/translation/index.js +5 -0
  159. package/dist/es2022/translation/index.js.map +1 -0
  160. package/dist/es2022/translation/transforms/export-transforms.d.ts +3 -0
  161. package/dist/es2022/translation/transforms/export-transforms.js +196 -0
  162. package/dist/es2022/translation/transforms/export-transforms.js.map +1 -0
  163. package/dist/es2022/translation/transforms/import-transforms.d.ts +7 -0
  164. package/dist/es2022/translation/transforms/import-transforms.js +183 -0
  165. package/dist/es2022/translation/transforms/import-transforms.js.map +1 -0
  166. package/dist/es2022/zip/index.d.ts +4 -0
  167. package/dist/es2022/zip/index.js +5 -0
  168. package/dist/es2022/zip/index.js.map +1 -0
  169. package/dist/es2022/zip/zip-manager.d.ts +6 -0
  170. package/dist/es2022/zip/zip-manager.js +27 -0
  171. package/dist/es2022/zip/zip-manager.js.map +1 -0
  172. package/dist/es2022/zip/zip-packager.d.ts +3 -0
  173. package/dist/es2022/zip/zip-packager.js +69 -0
  174. package/dist/es2022/zip/zip-packager.js.map +1 -0
  175. package/dist/es2022/zip/zip-transformer.d.ts +6 -0
  176. package/dist/es2022/zip/zip-transformer.js +82 -0
  177. package/dist/es2022/zip/zip-transformer.js.map +1 -0
  178. package/dist/es2022/zip/zip.models.d.ts +13 -0
  179. package/dist/es2022/zip/zip.models.js +2 -0
  180. package/dist/es2022/zip/zip.models.js.map +1 -0
  181. package/lib/core/helpers/workflow-helper.ts +104 -0
  182. package/lib/core/index.ts +17 -0
  183. package/lib/core/logs/loggers.ts +80 -0
  184. package/lib/core/models/core.models.ts +134 -0
  185. package/lib/core/models/log.models.ts +31 -0
  186. package/lib/core/models/migration.models.ts +165 -0
  187. package/lib/core/utils/array.utils.ts +49 -0
  188. package/lib/core/utils/binary-data.utils.ts +29 -0
  189. package/lib/core/utils/confirm.utils.ts +139 -0
  190. package/lib/core/utils/error.utils.ts +65 -0
  191. package/lib/core/utils/external-id.utils.ts +9 -0
  192. package/lib/core/utils/global.utils.ts +59 -0
  193. package/lib/core/utils/http.utils.ts +35 -0
  194. package/lib/core/utils/management-client-utils.ts +182 -0
  195. package/lib/core/utils/processing-utils.ts +71 -0
  196. package/lib/core/utils/run.utils.ts +51 -0
  197. package/lib/export/context/export-context-fetcher.ts +475 -0
  198. package/lib/export/export-manager.ts +249 -0
  199. package/lib/export/export.models.ts +87 -0
  200. package/lib/export/index.ts +2 -0
  201. package/lib/export/utils/export.utils.ts +10 -0
  202. package/lib/file/file-manager.ts +37 -0
  203. package/lib/file/index.ts +1 -0
  204. package/lib/import/comparers/asset-comparer.ts +113 -0
  205. package/lib/import/context/import-context-fetcher.ts +367 -0
  206. package/lib/import/import-manager.ts +103 -0
  207. package/lib/import/import.models.ts +84 -0
  208. package/lib/import/importers/assets-importer.ts +239 -0
  209. package/lib/import/importers/content-items-importer.ts +142 -0
  210. package/lib/import/importers/language-variant-importer.ts +342 -0
  211. package/lib/import/importers/workflow-importer.ts +159 -0
  212. package/lib/import/index.ts +2 -0
  213. package/lib/import/utils/import.utils.ts +10 -0
  214. package/lib/index.ts +9 -0
  215. package/lib/metadata.ts +6 -0
  216. package/lib/node/cli/actions/export-action.ts +45 -0
  217. package/lib/node/cli/actions/import-action.ts +34 -0
  218. package/lib/node/cli/actions/migrate-action.ts +52 -0
  219. package/lib/node/cli/app.ts +29 -0
  220. package/lib/node/cli/args/args-fetcher.ts +61 -0
  221. package/lib/node/cli/args/args-setter.ts +35 -0
  222. package/lib/node/cli/cli.models.ts +28 -0
  223. package/lib/node/cli/commands.ts +161 -0
  224. package/lib/toolkit/elements-builder.ts +84 -0
  225. package/lib/toolkit/export.ts +21 -0
  226. package/lib/toolkit/file.ts +70 -0
  227. package/lib/toolkit/import.ts +21 -0
  228. package/lib/toolkit/index.ts +5 -0
  229. package/lib/toolkit/migrate.ts +71 -0
  230. package/lib/translation/extraction/items-extraction.processor.ts +181 -0
  231. package/lib/translation/helpers/rich-text.processor.ts +300 -0
  232. package/lib/translation/index.ts +4 -0
  233. package/lib/translation/transforms/export-transforms.ts +253 -0
  234. package/lib/translation/transforms/import-transforms.ts +215 -0
  235. package/lib/zip/index.ts +4 -0
  236. package/lib/zip/zip-manager.ts +33 -0
  237. package/lib/zip/zip-packager.ts +86 -0
  238. package/lib/zip/zip-transformer.ts +105 -0
  239. package/lib/zip/zip.models.ts +12 -0
  240. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=migration.models.js.map
@@ -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,5 @@
1
+ export declare function getBinaryDataFromUrlAsync(url: string): Promise<{
2
+ data: Buffer | Blob;
3
+ contentLength: number;
4
+ }>;
5
+ export declare function geSizeInBytes(data: Blob | Buffer): number;
@@ -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,4 @@
1
+ import { ErrorData } from '../models/core.models.js';
2
+ export declare function extractErrorData(error: unknown): ErrorData;
3
+ export declare function is404Error(error: unknown): boolean;
4
+ export declare function handleError(error: unknown): void;
@@ -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,5 @@
1
+ export interface ExternalIdGenerator {
2
+ readonly assetExternalId: (codename: string) => string;
3
+ readonly contentItemExternalId: (codename: string) => string;
4
+ }
5
+ export declare const defaultExternalIdGenerator: ExternalIdGenerator;
@@ -0,0 +1,5 @@
1
+ export const defaultExternalIdGenerator = {
2
+ assetExternalId: (codename) => `asset_${codename}`,
3
+ contentItemExternalId: (codename) => `item_${codename}`
4
+ };
5
+ //# sourceMappingURL=external-id.utils.js.map
@@ -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,3 @@
1
+ import { HttpService, IRetryStrategyOptions } from '@kontent-ai/core-sdk';
2
+ export declare const defaultHttpService: Readonly<HttpService>;
3
+ export declare const defaultRetryStrategy: Readonly<IRetryStrategyOptions>;
@@ -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
+ };