@iwonz/ywtc 3.0.0 → 3.2.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 (62) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +36 -12
  3. package/dist/adapters/confluence.js +12 -3
  4. package/dist/adapters/confluence.js.map +1 -1
  5. package/dist/adapters/yandex.js +8 -3
  6. package/dist/adapters/yandex.js.map +1 -1
  7. package/dist/cli-arguments.d.ts +12 -2
  8. package/dist/cli-arguments.js +23 -3
  9. package/dist/cli-arguments.js.map +1 -1
  10. package/dist/cli.js +70 -1
  11. package/dist/cli.js.map +1 -1
  12. package/dist/clients/confluence-cloud.d.ts +1 -0
  13. package/dist/clients/confluence-cloud.js +6 -0
  14. package/dist/clients/confluence-cloud.js.map +1 -1
  15. package/dist/clients/confluence.d.ts +1 -0
  16. package/dist/clients/confluence.js +9 -0
  17. package/dist/clients/confluence.js.map +1 -1
  18. package/dist/clients/yandex-wiki.d.ts +2 -1
  19. package/dist/clients/yandex-wiki.js +12 -0
  20. package/dist/clients/yandex-wiki.js.map +1 -1
  21. package/dist/config.d.ts +2 -0
  22. package/dist/config.js +15 -2
  23. package/dist/config.js.map +1 -1
  24. package/dist/connection-verifier.d.ts +17 -0
  25. package/dist/connection-verifier.js +94 -0
  26. package/dist/connection-verifier.js.map +1 -0
  27. package/dist/content-model.d.ts +7 -1
  28. package/dist/content-model.js +188 -16
  29. package/dist/content-model.js.map +1 -1
  30. package/dist/conversion.d.ts +1 -0
  31. package/dist/conversion.js +17 -0
  32. package/dist/conversion.js.map +1 -1
  33. package/dist/domain.d.ts +15 -4
  34. package/dist/domain.js.map +1 -1
  35. package/dist/filesystem-export.js +1 -1
  36. package/dist/filesystem-export.js.map +1 -1
  37. package/dist/http.d.ts +2 -1
  38. package/dist/http.js +4 -2
  39. package/dist/http.js.map +1 -1
  40. package/dist/init-prompts.d.ts +49 -0
  41. package/dist/init-prompts.js +63 -0
  42. package/dist/init-prompts.js.map +1 -0
  43. package/dist/interactive-config.d.ts +37 -0
  44. package/dist/interactive-config.js +226 -0
  45. package/dist/interactive-config.js.map +1 -0
  46. package/dist/interactive-init.d.ts +20 -0
  47. package/dist/interactive-init.js +450 -0
  48. package/dist/interactive-init.js.map +1 -0
  49. package/dist/migrator.d.ts +5 -0
  50. package/dist/migrator.js +283 -114
  51. package/dist/migrator.js.map +1 -1
  52. package/dist/report-catalog.d.ts +65 -0
  53. package/dist/report-catalog.js +117 -0
  54. package/dist/report-catalog.js.map +1 -0
  55. package/dist/report.d.ts +4 -0
  56. package/dist/report.js +1 -0
  57. package/dist/report.js.map +1 -1
  58. package/dist/types.d.ts +13 -0
  59. package/dist/workspace.d.ts +5 -0
  60. package/dist/workspace.js +10 -1
  61. package/dist/workspace.js.map +1 -1
  62. package/package.json +3 -1
@@ -0,0 +1,450 @@
1
+ import { verifyConnection, ConnectionVerificationError } from './connection-verifier.js';
2
+ import { commitInteractiveConfig, createInteractiveConfigDocument, defaultConfluenceProfile, defaultYandexProfile, readExistingInteractiveConfig, updateInteractiveProfile, validateInteractiveDocument, } from './interactive-config.js';
3
+ import { WizardCancelledError } from './init-prompts.js';
4
+ import { redact } from './logger.js';
5
+ import { resolveInitWorkspace } from './workspace.js';
6
+ class InteractiveTerminalError extends Error {
7
+ constructor() {
8
+ super('init --interactive requires an interactive TTY. Run "ywtc init" and edit ywtc.config.yaml for non-interactive setup.');
9
+ this.name = 'InteractiveTerminalError';
10
+ }
11
+ }
12
+ export function assertInteractiveTerminal(inputIsTTY, outputIsTTY) {
13
+ if (!inputIsTTY || !outputIsTTY)
14
+ throw new InteractiveTerminalError();
15
+ }
16
+ function required(value) {
17
+ return value.trim() ? undefined : 'Value is required.';
18
+ }
19
+ function profileName(value) {
20
+ return /^[a-z0-9][a-z0-9._-]*$/.test(value.trim())
21
+ ? undefined
22
+ : 'Use lowercase letters, digits, dots, underscores, or dashes; start with a letter or digit.';
23
+ }
24
+ function httpUrl(value) {
25
+ try {
26
+ const url = new URL(value.trim());
27
+ return ['http:', 'https:'].includes(url.protocol) ? undefined : 'Use an absolute HTTP(S) URL.';
28
+ }
29
+ catch {
30
+ return 'Use an absolute HTTP(S) URL.';
31
+ }
32
+ }
33
+ function email(value) {
34
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value.trim()) ? undefined : 'Enter a valid email address.';
35
+ }
36
+ function withoutTrailingSlash(value) {
37
+ return value.trim().replace(/\/+$/, '');
38
+ }
39
+ function availableName(base, used) {
40
+ if (!used.has(base))
41
+ return base;
42
+ for (let suffix = 2;; suffix += 1) {
43
+ const candidate = `${base}-${suffix}`;
44
+ if (!used.has(candidate))
45
+ return candidate;
46
+ }
47
+ }
48
+ function usedProfileNames(context, excluding = []) {
49
+ const names = new Set(Object.keys(context.baseConfig?.profiles ?? {}));
50
+ for (const name of excluding)
51
+ names.delete(name);
52
+ if (!excluding.includes(context.yandex?.profile.name ?? ''))
53
+ names.add(context.yandex?.profile.name ?? '');
54
+ if (!excluding.includes(context.confluence?.profile.name ?? ''))
55
+ names.add(context.confluence?.profile.name ?? '');
56
+ names.delete('');
57
+ return names;
58
+ }
59
+ function uniqueProfileName(context, ...excluding) {
60
+ return (value) => {
61
+ const syntax = profileName(value);
62
+ if (syntax)
63
+ return syntax;
64
+ if (usedProfileNames(context, excluding.filter((item) => Boolean(item))).has(value.trim()))
65
+ return 'Another connection already uses this name.';
66
+ return undefined;
67
+ };
68
+ }
69
+ async function navigation(prompter, id, canBack = true) {
70
+ return prompter.select({
71
+ id,
72
+ message: 'Next step',
73
+ options: [
74
+ { value: 'continue', label: 'Continue' },
75
+ ...(canBack ? [{ value: 'back', label: 'Back' }] : []),
76
+ { value: 'cancel', label: 'Cancel' },
77
+ ],
78
+ initialValue: 'continue',
79
+ });
80
+ }
81
+ async function selectExistingProfile(input) {
82
+ if (input.context.mode !== 'edit')
83
+ return input.current;
84
+ const profiles = Object.values(input.context.baseConfig?.profiles ?? {}).filter((profile) => profile.type === input.type);
85
+ const currentIsUnsaved = input.current !== undefined
86
+ && input.current.previousName === undefined
87
+ && !profiles.some((profile) => profile.name === input.current?.profile.name);
88
+ const choices = [
89
+ ...profiles.map((profile) => ({ value: profile.name, label: profile.name, hint: 'existing' })),
90
+ ...(currentIsUnsaved ? [{ value: '__draft__', label: input.current.profile.name, hint: 'current draft' }] : []),
91
+ { value: '__new__', label: `Add ${input.label} connection`, hint: 'new profile' },
92
+ ];
93
+ const selected = await input.prompter.select({
94
+ id: input.id,
95
+ message: `${input.label} profile to configure`,
96
+ options: choices,
97
+ initialValue: input.current?.previousName ?? (currentIsUnsaved ? '__draft__' : input.current?.profile.name) ?? profiles[0]?.name ?? '__new__',
98
+ });
99
+ if (selected === '__new__') {
100
+ return null;
101
+ }
102
+ if (selected === '__draft__'
103
+ || selected === input.current?.previousName
104
+ || selected === input.current?.profile.name) {
105
+ return input.current;
106
+ }
107
+ const profile = input.context.baseConfig?.profiles[selected];
108
+ return profile?.type === input.type ? { profile: profile, previousName: selected } : undefined;
109
+ }
110
+ async function yandexStep(context, prompter) {
111
+ prompter.info('Step 2 of 4 · Yandex Wiki');
112
+ const selected = await selectExistingProfile({
113
+ context, prompter, type: 'yandex-wiki', ...(context.yandex ? { current: context.yandex } : {}), id: 'yandex.profile', label: 'Yandex Wiki',
114
+ });
115
+ const draft = selected === null
116
+ ? defaultYandexProfile(availableName('yandex', usedProfileNames(context, [context.yandex?.profile.name ?? ''])))
117
+ : selected?.profile ?? context.yandex?.profile ?? defaultYandexProfile(availableName('yandex', usedProfileNames(context)));
118
+ const previousName = selected?.previousName;
119
+ const name = (await prompter.text({
120
+ id: 'yandex.name', message: 'Yandex Wiki profile name', initialValue: draft.name,
121
+ validate: uniqueProfileName(context, previousName, context.yandex?.profile.name),
122
+ })).trim();
123
+ const apiUrl = withoutTrailingSlash(await prompter.text({
124
+ id: 'yandex.apiUrl', message: 'Yandex Wiki API URL', initialValue: draft.apiUrl, validate: httpUrl,
125
+ }));
126
+ const webUrl = withoutTrailingSlash(await prompter.text({
127
+ id: 'yandex.webUrl', message: 'Yandex Wiki web URL', initialValue: draft.webUrl, validate: httpUrl,
128
+ }));
129
+ const authType = await prompter.select({
130
+ id: 'yandex.authType', message: 'Yandex authentication', initialValue: draft.authType,
131
+ options: [
132
+ { value: 'oauth', label: 'OAuth', hint: 'Yandex 360 or Identity Hub' },
133
+ { value: 'iam', label: 'IAM token', hint: 'Yandex Cloud only' },
134
+ ],
135
+ });
136
+ const organizationType = authType === 'iam'
137
+ ? 'cloud'
138
+ : await prompter.select({
139
+ id: 'yandex.organization.type', message: 'Yandex organization type', initialValue: draft.organization.type,
140
+ options: [
141
+ { value: 'yandex360', label: 'Yandex 360' },
142
+ { value: 'cloud', label: 'Yandex Cloud / Identity Hub' },
143
+ ],
144
+ });
145
+ if (authType === 'iam')
146
+ prompter.info('IAM uses the Yandex Cloud organization header.');
147
+ const organizationId = (await prompter.text({
148
+ id: 'yandex.organization.id', message: 'Yandex organization ID', initialValue: draft.organization.id, validate: required,
149
+ })).trim();
150
+ const enteredToken = await prompter.password({
151
+ id: 'yandex.token',
152
+ message: draft.token ? 'Yandex token (leave empty to keep the configured token)' : 'Yandex token',
153
+ validate: (value) => draft.token || value.trim() ? undefined : 'Token is required.',
154
+ });
155
+ context.yandex = {
156
+ ...(previousName ? { previousName } : {}),
157
+ profile: {
158
+ ...draft,
159
+ name,
160
+ apiUrl,
161
+ webUrl,
162
+ authType,
163
+ token: enteredToken.trim() || draft.token,
164
+ organization: { type: organizationType, id: organizationId },
165
+ },
166
+ };
167
+ return navigation(prompter, 'yandex.navigation');
168
+ }
169
+ async function confluenceStep(context, prompter) {
170
+ prompter.info('Step 3 of 4 · Confluence');
171
+ const selected = await selectExistingProfile({
172
+ context, prompter, type: 'confluence', ...(context.confluence ? { current: context.confluence } : {}), id: 'confluence.profile', label: 'Confluence',
173
+ });
174
+ const draft = selected === null
175
+ ? defaultConfluenceProfile(availableName('confluence', usedProfileNames(context, [context.confluence?.profile.name ?? ''])))
176
+ : selected?.profile ?? context.confluence?.profile ?? defaultConfluenceProfile(availableName('confluence', usedProfileNames(context)));
177
+ const previousName = selected?.previousName;
178
+ const name = (await prompter.text({
179
+ id: 'confluence.name', message: 'Confluence profile name', initialValue: draft.name,
180
+ validate: uniqueProfileName(context, previousName, context.confluence?.profile.name),
181
+ })).trim();
182
+ const deployment = await prompter.select({
183
+ id: 'confluence.deployment', message: 'Confluence deployment', initialValue: draft.deployment,
184
+ options: [
185
+ { value: 'data-center', label: 'Data Center', hint: 'PAT authentication' },
186
+ { value: 'cloud', label: 'Cloud', hint: 'email and Atlassian API token' },
187
+ ],
188
+ });
189
+ const baseUrl = withoutTrailingSlash(await prompter.text({
190
+ id: 'confluence.baseUrl',
191
+ message: 'Confluence base URL',
192
+ initialValue: draft.baseUrl,
193
+ placeholder: deployment === 'cloud' ? 'https://example.atlassian.net' : 'https://confluence.example.com/confluence',
194
+ validate: (value) => required(value) ?? httpUrl(value),
195
+ }));
196
+ const cloudEmail = deployment === 'cloud'
197
+ ? (await prompter.text({
198
+ id: 'confluence.email', message: 'Atlassian account email', initialValue: draft.email ?? '', validate: email,
199
+ })).trim()
200
+ : undefined;
201
+ const enteredToken = await prompter.password({
202
+ id: 'confluence.token',
203
+ message: draft.token
204
+ ? `Confluence ${deployment === 'cloud' ? 'API token' : 'PAT'} (leave empty to keep the configured token)`
205
+ : `Confluence ${deployment === 'cloud' ? 'API token' : 'PAT'}`,
206
+ validate: (value) => draft.token || value.trim() ? undefined : 'Token is required.',
207
+ });
208
+ context.confluence = {
209
+ ...(previousName ? { previousName } : {}),
210
+ profile: {
211
+ ...draft,
212
+ name,
213
+ deployment,
214
+ baseUrl,
215
+ authType: deployment === 'cloud' ? 'api-token' : 'pat',
216
+ token: enteredToken.trim() || draft.token,
217
+ ...(cloudEmail !== undefined ? { email: cloudEmail } : {}),
218
+ },
219
+ };
220
+ if (deployment === 'data-center')
221
+ delete context.confluence.profile.email;
222
+ return navigation(prompter, 'confluence.navigation');
223
+ }
224
+ function buildDocument(context) {
225
+ if (!context.yandex || !context.confluence)
226
+ throw new Error('Both connection stages must be complete.');
227
+ const document = context.baseDocument.clone();
228
+ updateInteractiveProfile(document, context.yandex.previousName, context.yandex.profile);
229
+ updateInteractiveProfile(document, context.confluence.previousName, context.confluence.profile);
230
+ return document;
231
+ }
232
+ function selectedProfiles(config, context) {
233
+ const yandex = config.profiles[context.yandex.profile.name];
234
+ const confluence = config.profiles[context.confluence.profile.name];
235
+ if (yandex?.type !== 'yandex-wiki' || confluence?.type !== 'confluence') {
236
+ throw new Error('Configured connection profiles could not be resolved.');
237
+ }
238
+ return [yandex, confluence];
239
+ }
240
+ function review(context) {
241
+ const yandex = context.yandex.profile;
242
+ const confluence = context.confluence.profile;
243
+ return [
244
+ `Workdir: ${context.workspace.root}`,
245
+ `Yandex Wiki: ${yandex.name} · ${yandex.authType} · ${yandex.organization.type} · ${yandex.webUrl}`,
246
+ `Confluence: ${confluence.name} · ${confluence.deployment} · ${confluence.baseUrl}`,
247
+ 'Credentials: configured and hidden',
248
+ ].join('\n');
249
+ }
250
+ function firstDryRun(context, options) {
251
+ const command = 'ywtc migrate --source "<yandex-page-url>" --destination "<confluence-page-url>" --dry-run';
252
+ const defaultWorkspace = resolveInitWorkspace({
253
+ ...(options.cwd ? { cwd: options.cwd } : {}),
254
+ ...(options.homeDirectory ? { homeDirectory: options.homeDirectory } : {}),
255
+ });
256
+ return context.workspace.root === defaultWorkspace.root
257
+ ? command
258
+ : `${command} --workdir ${JSON.stringify(context.workspace.root)}`;
259
+ }
260
+ async function workspaceStep(options, prior) {
261
+ const { prompter } = options;
262
+ prompter.info('Step 1 of 4 · Workspace');
263
+ let initialPath = prior?.workspace.root ?? options.workdir ?? '~/.ywtc';
264
+ while (true) {
265
+ const selectedPath = (await prompter.text({
266
+ id: 'workspace.path', message: 'Working directory', initialValue: initialPath, validate: required,
267
+ })).trim();
268
+ let workspace;
269
+ try {
270
+ workspace = resolveInitWorkspace({
271
+ explicit: selectedPath,
272
+ ...(options.cwd ? { cwd: options.cwd } : {}),
273
+ ...(options.homeDirectory ? { homeDirectory: options.homeDirectory } : {}),
274
+ });
275
+ }
276
+ catch (error) {
277
+ prompter.error(error instanceof Error ? error.message : String(error));
278
+ initialPath = selectedPath;
279
+ continue;
280
+ }
281
+ const original = await readExistingInteractiveConfig(workspace);
282
+ if (!original) {
283
+ const same = prior?.workspace.root === workspace.root && prior.mode === 'new';
284
+ return same ? prior : { workspace, mode: 'new', baseDocument: createInteractiveConfigDocument() };
285
+ }
286
+ if (original.error)
287
+ prompter.error(`Existing configuration is invalid: ${original.error}`);
288
+ const action = await prompter.select({
289
+ id: 'workspace.action',
290
+ message: `Workspace already exists at ${workspace.root}`,
291
+ options: [
292
+ ...(!original.error ? [{ value: 'edit', label: 'Change connection settings', hint: 'preserve other profiles and state' }] : []),
293
+ { value: 'reset', label: 'Configure from scratch', hint: 'backup config; preserve .states' },
294
+ { value: 'change', label: 'Choose another directory' },
295
+ { value: 'exit', label: 'Do nothing and exit' },
296
+ ],
297
+ initialValue: original.error ? 'reset' : 'edit',
298
+ });
299
+ if (action === 'exit') {
300
+ prompter.outro('Workspace left unchanged.');
301
+ return { status: 'no-op', code: 0, workspace };
302
+ }
303
+ if (action === 'change') {
304
+ initialPath = workspace.root;
305
+ continue;
306
+ }
307
+ const same = prior?.workspace.root === workspace.root && prior.mode === action
308
+ && prior.original?.fingerprint === original.fingerprint;
309
+ if (same)
310
+ return prior;
311
+ if (action === 'edit' && original.document && original.config) {
312
+ return {
313
+ workspace,
314
+ mode: 'edit',
315
+ original,
316
+ baseDocument: original.document.clone(),
317
+ baseConfig: original.config,
318
+ };
319
+ }
320
+ return { workspace, mode: 'reset', original, baseDocument: createInteractiveConfigDocument() };
321
+ }
322
+ }
323
+ async function verifyAndCommit(context, prompter, verify, options) {
324
+ prompter.info('Step 4 of 4 · Review and verify');
325
+ prompter.note(review(context), 'Configuration summary');
326
+ const action = await prompter.select({
327
+ id: 'review.action',
328
+ message: 'Review action',
329
+ options: [
330
+ { value: 'save', label: 'Verify connections and save' },
331
+ { value: 'yandex', label: 'Back to Yandex Wiki' },
332
+ { value: 'confluence', label: 'Back to Confluence' },
333
+ { value: 'workspace', label: 'Back to workspace' },
334
+ { value: 'cancel', label: 'Cancel' },
335
+ ],
336
+ initialValue: 'save',
337
+ });
338
+ if (action === 'workspace')
339
+ return 0;
340
+ if (action === 'yandex')
341
+ return 1;
342
+ if (action === 'confluence')
343
+ return 2;
344
+ if (action === 'cancel')
345
+ throw new WizardCancelledError();
346
+ const document = buildDocument(context);
347
+ const config = validateInteractiveDocument(document, context.workspace.configFile);
348
+ const [yandex, confluence] = selectedProfiles(config, context);
349
+ while (true) {
350
+ try {
351
+ await prompter.task('Checking Yandex Wiki API and credentials', () => verify(config, yandex), verifiedLabel);
352
+ await prompter.task('Checking Confluence API and credentials', () => verify(config, confluence), verifiedLabel);
353
+ break;
354
+ }
355
+ catch (error) {
356
+ const safe = redact(error, [yandex.token, confluence.token, confluence.email ?? '']);
357
+ prompter.error(safe);
358
+ const failureAction = await prompter.select({
359
+ id: 'verification.failure',
360
+ message: 'Connection verification failed',
361
+ options: [
362
+ { value: 'retry', label: 'Retry' },
363
+ { value: 'yandex', label: 'Edit Yandex Wiki' },
364
+ { value: 'confluence', label: 'Edit Confluence' },
365
+ { value: 'workspace', label: 'Back to workspace' },
366
+ { value: 'cancel', label: 'Cancel' },
367
+ ],
368
+ initialValue: error instanceof ConnectionVerificationError && error.provider === 'confluence' ? 'confluence' : 'yandex',
369
+ });
370
+ if (failureAction === 'retry')
371
+ continue;
372
+ if (failureAction === 'workspace')
373
+ return 0;
374
+ if (failureAction === 'yandex')
375
+ return 1;
376
+ if (failureAction === 'confluence')
377
+ return 2;
378
+ throw new WizardCancelledError();
379
+ }
380
+ }
381
+ const committed = await prompter.task('Saving verified workspace configuration', () => commitInteractiveConfig({
382
+ workspace: context.workspace,
383
+ document,
384
+ ...(context.original ? { original: context.original } : {}),
385
+ reset: context.mode === 'reset',
386
+ }), () => 'Workspace configuration saved');
387
+ const dryRunCommand = firstDryRun(context, options);
388
+ prompter.success(`Config: ${committed.configFile}`);
389
+ if (committed.backupFile)
390
+ prompter.info(`Backup: ${committed.backupFile}`);
391
+ prompter.note(dryRunCommand, 'First migration dry-run');
392
+ prompter.info('Connection checks passed. Page-specific read/write access is checked by doctor or migrate.');
393
+ prompter.outro('ywtc workspace is ready.');
394
+ return {
395
+ status: 'completed',
396
+ code: 0,
397
+ workspace: context.workspace,
398
+ configFile: committed.configFile,
399
+ ...(committed.backupFile ? { backupFile: committed.backupFile } : {}),
400
+ dryRunCommand,
401
+ };
402
+ }
403
+ function verifiedLabel(value) {
404
+ return `${value.product}${value.version ? ` ${value.version}` : ''} authenticated`;
405
+ }
406
+ export async function runInteractiveInit(options) {
407
+ const { prompter } = options;
408
+ prompter.intro('ywtc interactive setup');
409
+ let context;
410
+ let step = 0;
411
+ try {
412
+ while (true) {
413
+ if (step === 0) {
414
+ const result = await workspaceStep(options, context);
415
+ if ('status' in result)
416
+ return result;
417
+ context = result;
418
+ step = 1;
419
+ continue;
420
+ }
421
+ if (!context)
422
+ throw new Error('Workspace step did not complete.');
423
+ if (step === 1) {
424
+ const next = await yandexStep(context, prompter);
425
+ if (next === 'cancel')
426
+ throw new WizardCancelledError();
427
+ step = next === 'back' ? 0 : 2;
428
+ continue;
429
+ }
430
+ if (step === 2) {
431
+ const next = await confluenceStep(context, prompter);
432
+ if (next === 'cancel')
433
+ throw new WizardCancelledError();
434
+ step = next === 'back' ? 1 : 3;
435
+ continue;
436
+ }
437
+ const result = await verifyAndCommit(context, prompter, options.verify ?? verifyConnection, options);
438
+ if (typeof result !== 'number')
439
+ return result;
440
+ step = result;
441
+ }
442
+ }
443
+ catch (error) {
444
+ if (!(error instanceof WizardCancelledError))
445
+ throw error;
446
+ prompter.cancel('Interactive setup cancelled; no configuration was changed.');
447
+ return { status: 'cancelled', code: 130, ...(context ? { workspace: context.workspace } : {}) };
448
+ }
449
+ }
450
+ //# sourceMappingURL=interactive-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-init.js","sourceRoot":"","sources":["../src/interactive-init.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,11 @@ export interface TransferResult {
42
42
  errors: number;
43
43
  };
44
44
  }
45
+ export declare class MigrationRunError extends Error {
46
+ readonly reportPaths: MigrationReportPaths;
47
+ readonly stateFilename: string;
48
+ constructor(message: string, reportPaths: MigrationReportPaths, stateFilename: string, options?: ErrorOptions);
49
+ }
45
50
  export declare class Migrator {
46
51
  private readonly config;
47
52
  private readonly logger;