@iwonz/ywtc 3.5.0 → 4.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/CHANGELOG.md +31 -0
- package/README.md +14 -11
- package/dist/adapters/confluence.d.ts +0 -2
- package/dist/adapters/confluence.js +42 -23
- package/dist/adapters/confluence.js.map +1 -1
- package/dist/adapters/yandex.d.ts +0 -1
- package/dist/adapters/yandex.js +1 -6
- package/dist/adapters/yandex.js.map +1 -1
- package/dist/clients/confluence-cloud.d.ts +1 -0
- package/dist/clients/confluence-cloud.js +2 -2
- package/dist/clients/confluence-cloud.js.map +1 -1
- package/dist/clients/confluence.d.ts +1 -0
- package/dist/clients/confluence.js +4 -3
- package/dist/clients/confluence.js.map +1 -1
- package/dist/content-model.js +315 -24
- package/dist/content-model.js.map +1 -1
- package/dist/conversion.js +46 -10
- package/dist/conversion.js.map +1 -1
- package/dist/domain.d.ts +12 -3
- package/dist/domain.js +10 -0
- package/dist/domain.js.map +1 -1
- package/dist/filesystem-export.js +1 -1
- package/dist/filesystem-export.js.map +1 -1
- package/dist/layout.d.ts +18 -0
- package/dist/layout.js +134 -0
- package/dist/layout.js.map +1 -0
- package/dist/migrator.js +170 -59
- package/dist/migrator.js.map +1 -1
- package/dist/report-ui/index.html +6 -6
- package/dist/report.js +1 -1
- package/dist/report.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.js +2 -0
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-export.js","sourceRoot":"","sources":["../src/filesystem-export.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem-export.js","sourceRoot":"","sources":["../src/filesystem-export.ts"],"names":[],"mappings":"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"}
|
package/dist/layout.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface YfmContentSegment {
|
|
2
|
+
type: 'content';
|
|
3
|
+
raw: string;
|
|
4
|
+
}
|
|
5
|
+
interface YfmLayoutSegment {
|
|
6
|
+
type: 'layout';
|
|
7
|
+
raw: string;
|
|
8
|
+
gap?: string;
|
|
9
|
+
cells: string[];
|
|
10
|
+
}
|
|
11
|
+
export type YfmDocumentSegment = YfmContentSegment | YfmLayoutSegment;
|
|
12
|
+
/**
|
|
13
|
+
* Extract explicit YFM layout boundaries before Diplodoc discards them.
|
|
14
|
+
* Only balanced line directives outside fenced code are interpreted.
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseYfmDocumentSegments(value: string): YfmDocumentSegment[];
|
|
17
|
+
export declare function hasYfmLayouts(segments: YfmDocumentSegment[]): boolean;
|
|
18
|
+
export {};
|
package/dist/layout.js
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
const fencePattern = /^\s*(`{3,}|~{3,})/;
|
|
2
|
+
const layoutStartPattern = /^\s*{%\s*layout\b([^%]*?)%}\s*$/i;
|
|
3
|
+
const layoutEndPattern = /^\s*{%\s*endlayout\s*%}\s*$/i;
|
|
4
|
+
const blockStartPattern = /^\s*{%\s*block\s*%}\s*$/i;
|
|
5
|
+
const blockEndPattern = /^\s*{%\s*endblock\s*%}\s*$/i;
|
|
6
|
+
function splitLines(value) {
|
|
7
|
+
if (!value)
|
|
8
|
+
return [];
|
|
9
|
+
return value.match(/[^\r\n]*(?:\r\n|\n|\r|$)/g)?.filter(Boolean) ?? [];
|
|
10
|
+
}
|
|
11
|
+
function lineBody(line) {
|
|
12
|
+
return line.replace(/[\r\n]+$/, '');
|
|
13
|
+
}
|
|
14
|
+
function fenceMarker(line) {
|
|
15
|
+
return lineBody(line).match(fencePattern)?.[1];
|
|
16
|
+
}
|
|
17
|
+
function gapFrom(attributes) {
|
|
18
|
+
const quoted = attributes.match(/\bgap\s*=\s*["']([^"']+)["']/i)?.[1];
|
|
19
|
+
const bare = attributes.match(/\bgap\s*=\s*([^\s%]+)/i)?.[1];
|
|
20
|
+
const gap = (quoted ?? bare)?.trim().toLocaleLowerCase();
|
|
21
|
+
return gap || undefined;
|
|
22
|
+
}
|
|
23
|
+
function parseLayout(lines, startIndex, attributes) {
|
|
24
|
+
const cells = [];
|
|
25
|
+
let current;
|
|
26
|
+
let fence;
|
|
27
|
+
for (let index = startIndex + 1; index < lines.length; index += 1) {
|
|
28
|
+
const line = lines[index];
|
|
29
|
+
const body = lineBody(line);
|
|
30
|
+
const marker = fenceMarker(line);
|
|
31
|
+
if (marker) {
|
|
32
|
+
if (!fence)
|
|
33
|
+
fence = marker;
|
|
34
|
+
else if (marker[0] === fence[0] && marker.length >= fence.length)
|
|
35
|
+
fence = undefined;
|
|
36
|
+
if (current)
|
|
37
|
+
current.push(line);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (fence) {
|
|
41
|
+
if (current)
|
|
42
|
+
current.push(line);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (blockStartPattern.test(body)) {
|
|
46
|
+
if (current)
|
|
47
|
+
return undefined;
|
|
48
|
+
current = [];
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (blockEndPattern.test(body)) {
|
|
52
|
+
if (!current)
|
|
53
|
+
return undefined;
|
|
54
|
+
cells.push(current.join('').replace(/^(?:\r?\n)+|(?:\r?\n)+$/g, ''));
|
|
55
|
+
current = undefined;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (layoutEndPattern.test(body)) {
|
|
59
|
+
if (current || cells.length === 0)
|
|
60
|
+
return undefined;
|
|
61
|
+
const raw = lines.slice(startIndex, index + 1).join('');
|
|
62
|
+
const gap = gapFrom(attributes);
|
|
63
|
+
return {
|
|
64
|
+
segment: {
|
|
65
|
+
type: 'layout',
|
|
66
|
+
raw,
|
|
67
|
+
...(gap ? { gap } : {}),
|
|
68
|
+
cells,
|
|
69
|
+
},
|
|
70
|
+
endIndex: index,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (layoutStartPattern.test(body))
|
|
74
|
+
return undefined;
|
|
75
|
+
if (current)
|
|
76
|
+
current.push(line);
|
|
77
|
+
else if (body.trim())
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
function pushContent(segments, raw) {
|
|
83
|
+
if (!raw)
|
|
84
|
+
return;
|
|
85
|
+
const previous = segments.at(-1);
|
|
86
|
+
if (previous?.type === 'content')
|
|
87
|
+
previous.raw += raw;
|
|
88
|
+
else
|
|
89
|
+
segments.push({ type: 'content', raw });
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Extract explicit YFM layout boundaries before Diplodoc discards them.
|
|
93
|
+
* Only balanced line directives outside fenced code are interpreted.
|
|
94
|
+
*/
|
|
95
|
+
export function parseYfmDocumentSegments(value) {
|
|
96
|
+
const lines = splitLines(value);
|
|
97
|
+
if (lines.length === 0)
|
|
98
|
+
return [{ type: 'content', raw: value }];
|
|
99
|
+
const segments = [];
|
|
100
|
+
let pending = [];
|
|
101
|
+
let fence;
|
|
102
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
103
|
+
const line = lines[index];
|
|
104
|
+
const marker = fenceMarker(line);
|
|
105
|
+
if (marker) {
|
|
106
|
+
if (!fence)
|
|
107
|
+
fence = marker;
|
|
108
|
+
else if (marker[0] === fence[0] && marker.length >= fence.length)
|
|
109
|
+
fence = undefined;
|
|
110
|
+
pending.push(line);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (!fence) {
|
|
114
|
+
const start = lineBody(line).match(layoutStartPattern);
|
|
115
|
+
if (start) {
|
|
116
|
+
const parsed = parseLayout(lines, index, start[1] ?? '');
|
|
117
|
+
if (parsed) {
|
|
118
|
+
pushContent(segments, pending.join(''));
|
|
119
|
+
pending = [];
|
|
120
|
+
segments.push(parsed.segment);
|
|
121
|
+
index = parsed.endIndex;
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
pending.push(line);
|
|
127
|
+
}
|
|
128
|
+
pushContent(segments, pending.join(''));
|
|
129
|
+
return segments.length > 0 ? segments : [{ type: 'content', raw: value }];
|
|
130
|
+
}
|
|
131
|
+
export function hasYfmLayouts(segments) {
|
|
132
|
+
return segments.some((segment) => segment.type === 'layout');
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
|
package/dist/migrator.js
CHANGED
|
@@ -5,10 +5,10 @@ import { pathToFileURL } from 'node:url';
|
|
|
5
5
|
import PQueue from 'p-queue';
|
|
6
6
|
import { createProviderAdapter } from './adapters/factory.js';
|
|
7
7
|
import { secretValues } from './config.js';
|
|
8
|
-
import { appendGridSnapshots, assertDestinationContent, emptyRendererFallbackReason,
|
|
8
|
+
import { appendGridSnapshots, assertDestinationContent, emptyRendererFallbackReason, normalizePageContent, normalizedPreviewHtml, rawContentFallback, renderedPreviewHtml, renderConfluenceStorage, renderYfm, setSourceResourceBinding, sourceResourceBindings, verifyDestinationContent, } from './content-model.js';
|
|
9
9
|
import { commentAttachmentUses, createCommentArchiveZip, renderCommentArchive, renderCommentArchiveIndex, resolveCommentAttachmentReferences, verifyCommentArchive, } from './comments.js';
|
|
10
10
|
import { ConfirmedDestinationMissingError, verifyConfirmedDestinationPage } from './consistency.js';
|
|
11
|
-
import { DestinationTitleConflictError } from './domain.js';
|
|
11
|
+
import { DestinationRevisionConflictError, DestinationTitleConflictError } from './domain.js';
|
|
12
12
|
import { assertTransferCapabilities } from './domain.js';
|
|
13
13
|
import { FilesystemExporter } from './filesystem-export.js';
|
|
14
14
|
import { discoverPageGraph } from './graph.js';
|
|
@@ -105,6 +105,74 @@ function sourceDerivedTextMatches(expectedBody, actualBody, provider, page) {
|
|
|
105
105
|
const text = (value) => renderedPreviewHtml(value, provider).replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
|
|
106
106
|
return text(expectedBody) === text(actualBody);
|
|
107
107
|
}
|
|
108
|
+
const REVISION_RETRY_DELAYS_MS = [500, 1_000, 2_000];
|
|
109
|
+
async function revisionDelay(attempt, options) {
|
|
110
|
+
const base = REVISION_RETRY_DELAYS_MS[attempt];
|
|
111
|
+
const random = options.random ?? Math.random;
|
|
112
|
+
const delay = Math.max(1, Math.round(base * (0.8 + random() * 0.4)));
|
|
113
|
+
await (options.sleep ?? ((milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds))))(delay);
|
|
114
|
+
return delay;
|
|
115
|
+
}
|
|
116
|
+
async function updateMappedPage(input) {
|
|
117
|
+
let current = input.current;
|
|
118
|
+
for (let attempt = 0;; attempt += 1) {
|
|
119
|
+
const verification = verifyDestinationContent(input.body, current.content, input.destination.kind, input.sourcePage);
|
|
120
|
+
if (verification.status === 'complete' && current.title === input.title) {
|
|
121
|
+
return { page: current, updated: false, normalized: current.content !== input.body, verification };
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
const result = await input.destination.updatePage({ page: current, title: input.title, body: input.body });
|
|
125
|
+
const confirmed = await verifyConfirmedDestinationPage(input.destination, result, input.consistencyOptions);
|
|
126
|
+
return {
|
|
127
|
+
page: confirmed,
|
|
128
|
+
updated: true,
|
|
129
|
+
normalized: confirmed.content !== input.body,
|
|
130
|
+
verification: verifyDestinationContent(input.body, confirmed.content, input.destination.kind, input.sourcePage),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
if (!(error instanceof DestinationRevisionConflictError) || attempt >= REVISION_RETRY_DELAYS_MS.length)
|
|
135
|
+
throw error;
|
|
136
|
+
const delay = await revisionDelay(attempt, input.consistencyOptions);
|
|
137
|
+
input.report.issue({
|
|
138
|
+
code: 'destination-revision-retry',
|
|
139
|
+
severity: 'normalization',
|
|
140
|
+
phase: 'page',
|
|
141
|
+
pageId: input.sourcePage.canonicalId,
|
|
142
|
+
retryable: true,
|
|
143
|
+
message: `${input.sourcePage.title}: destination revision changed concurrently; retry ${attempt + 1} after ${delay} ms`,
|
|
144
|
+
});
|
|
145
|
+
current = await verifyConfirmedDestinationPage(input.destination, current, input.consistencyOptions);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async function reparentMappedPage(input) {
|
|
150
|
+
if (!input.destination.reparentPage)
|
|
151
|
+
throw new Error(`${input.destination.profile.name} does not implement page moves`);
|
|
152
|
+
let current = input.current;
|
|
153
|
+
for (let attempt = 0;; attempt += 1) {
|
|
154
|
+
if (current.parentId === input.parent.id)
|
|
155
|
+
return current;
|
|
156
|
+
try {
|
|
157
|
+
const moved = await input.destination.reparentPage({ page: current, parent: input.parent });
|
|
158
|
+
return verifyConfirmedDestinationPage(input.destination, moved, input.consistencyOptions);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
if (!(error instanceof DestinationRevisionConflictError) || attempt >= REVISION_RETRY_DELAYS_MS.length)
|
|
162
|
+
throw error;
|
|
163
|
+
const delay = await revisionDelay(attempt, input.consistencyOptions);
|
|
164
|
+
input.report.issue({
|
|
165
|
+
code: 'destination-revision-retry',
|
|
166
|
+
severity: 'normalization',
|
|
167
|
+
phase: 'page',
|
|
168
|
+
pageId: input.sourcePage.canonicalId,
|
|
169
|
+
retryable: true,
|
|
170
|
+
message: `${input.sourcePage.title}: destination revision changed during hierarchy repair; retry ${attempt + 1} after ${delay} ms`,
|
|
171
|
+
});
|
|
172
|
+
current = await verifyConfirmedDestinationPage(input.destination, current, input.consistencyOptions);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
108
176
|
function ambiguousCreateOutcome(error) {
|
|
109
177
|
return error instanceof HttpRequestError
|
|
110
178
|
&& (error.status === undefined || error.status >= 500);
|
|
@@ -185,6 +253,7 @@ function destinationFromState(state, adapter) {
|
|
|
185
253
|
url: state.destinationLocator,
|
|
186
254
|
locator: state.destinationId,
|
|
187
255
|
...(state.destinationFingerprint ? { fingerprint: state.destinationFingerprint } : {}),
|
|
256
|
+
...(state.destinationVersion ? { version: state.destinationVersion } : {}),
|
|
188
257
|
};
|
|
189
258
|
}
|
|
190
259
|
function reportPage(input) {
|
|
@@ -383,8 +452,9 @@ async function renderRemoteDocument(input) {
|
|
|
383
452
|
const rendered = input.destination.kind === 'confluence'
|
|
384
453
|
? await renderConfluenceStorage(input.document, input.page, input.context, input.container.space ?? '')
|
|
385
454
|
: await renderYfm(input.document, input.context);
|
|
386
|
-
if (!rendered.body.trim())
|
|
455
|
+
if (!rendered.body.trim() && !input.document.semanticallyEmpty) {
|
|
387
456
|
return rawContentFallback(input.page, input.destination.kind, emptyRendererFallbackReason(input.document));
|
|
457
|
+
}
|
|
388
458
|
return rendered;
|
|
389
459
|
}
|
|
390
460
|
catch (error) {
|
|
@@ -916,22 +986,6 @@ export class Migrator {
|
|
|
916
986
|
}
|
|
917
987
|
}
|
|
918
988
|
current ??= await destination.findArchiveComment?.(destinationPage, fingerprint);
|
|
919
|
-
if (current && previous?.destinationFingerprint && current.fingerprint !== previous.destinationFingerprint) {
|
|
920
|
-
const conflict = {
|
|
921
|
-
fingerprint,
|
|
922
|
-
destinationId: current.id,
|
|
923
|
-
destinationFingerprint: current.fingerprint,
|
|
924
|
-
...counts,
|
|
925
|
-
...(previous.archiveResourceId ? { archiveResourceId: previous.archiveResourceId } : {}),
|
|
926
|
-
...(previous.archiveName ? { archiveName: previous.archiveName } : {}),
|
|
927
|
-
...(previous.archivePath ? { archivePath: previous.archivePath } : {}),
|
|
928
|
-
...(previous.archiveSha256 ? { archiveSha256: previous.archiveSha256 } : {}),
|
|
929
|
-
status: 'conflict',
|
|
930
|
-
lastError: 'Destination comment archive was changed manually and was preserved.',
|
|
931
|
-
updatedAt: now(),
|
|
932
|
-
};
|
|
933
|
-
return conflict;
|
|
934
|
-
}
|
|
935
989
|
const remoteResources = await destination.listUploadedResources(destinationPage);
|
|
936
990
|
const remoteMatches = async (remote, file, trustedMapping) => {
|
|
937
991
|
if (remote.size !== undefined && remote.size !== file.size)
|
|
@@ -1045,7 +1099,15 @@ export class Migrator {
|
|
|
1045
1099
|
await prepareFullArchive(`Full comment archive exceeded ${maximumInlineBytes} inline bytes and was attached as Markdown.`);
|
|
1046
1100
|
}
|
|
1047
1101
|
let result = current;
|
|
1048
|
-
const
|
|
1102
|
+
const verifies = (comment) => {
|
|
1103
|
+
if (!comment)
|
|
1104
|
+
return false;
|
|
1105
|
+
const verification = verifyCommentArchive(fullArchiveState.fullArchiveName ? fingerprint : inventory, comment.body, archiveResource?.name);
|
|
1106
|
+
if (fullArchiveState.fullArchiveName && !comment.body.includes(fullArchiveState.fullArchiveName))
|
|
1107
|
+
return false;
|
|
1108
|
+
return verification.ok && verifyDestinationContent(expectedBody, comment.body, destination.kind, page).status === 'complete';
|
|
1109
|
+
};
|
|
1110
|
+
const requiresWrite = !verifies(result);
|
|
1049
1111
|
if (requiresWrite) {
|
|
1050
1112
|
const write = async (body) => {
|
|
1051
1113
|
if (input.signal?.aborted)
|
|
@@ -1053,7 +1115,30 @@ export class Migrator {
|
|
|
1053
1115
|
if (!result || !destination.capabilities.updateComments || !destination.updateArchiveComment) {
|
|
1054
1116
|
return destination.createArchiveComment({ page: destinationPage, body });
|
|
1055
1117
|
}
|
|
1056
|
-
|
|
1118
|
+
let currentComment = result;
|
|
1119
|
+
for (let attempt = 0;; attempt += 1) {
|
|
1120
|
+
try {
|
|
1121
|
+
return await destination.updateArchiveComment({ comment: currentComment, body });
|
|
1122
|
+
}
|
|
1123
|
+
catch (error) {
|
|
1124
|
+
if (!(error instanceof DestinationRevisionConflictError) || attempt >= REVISION_RETRY_DELAYS_MS.length)
|
|
1125
|
+
throw error;
|
|
1126
|
+
const delay = await revisionDelay(attempt, this.consistencyOptions);
|
|
1127
|
+
report.issue({
|
|
1128
|
+
code: 'destination-comment-revision-retry',
|
|
1129
|
+
severity: 'normalization',
|
|
1130
|
+
phase: 'comment',
|
|
1131
|
+
pageId: page.canonicalId,
|
|
1132
|
+
commentId: currentComment.id,
|
|
1133
|
+
retryable: true,
|
|
1134
|
+
message: `${page.title}: comment archive revision changed concurrently; retry ${attempt + 1} after ${delay} ms`,
|
|
1135
|
+
});
|
|
1136
|
+
currentComment = await destination.readArchiveComment({ page: destinationPage, commentId: currentComment.id });
|
|
1137
|
+
if (verifies(currentComment)) {
|
|
1138
|
+
return currentComment;
|
|
1139
|
+
}
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1057
1142
|
};
|
|
1058
1143
|
const presentations = fallbackReason ? [] : ['native', 'quote', 'code'];
|
|
1059
1144
|
let lastError;
|
|
@@ -1100,12 +1185,28 @@ export class Migrator {
|
|
|
1100
1185
|
}
|
|
1101
1186
|
if (!result)
|
|
1102
1187
|
throw new Error('Destination comment archive was not created');
|
|
1188
|
+
if (requiresWrite && current && destination.capabilities.updateComments && result.id === current.id) {
|
|
1189
|
+
report.issue({
|
|
1190
|
+
code: 'destination-revision-updated',
|
|
1191
|
+
severity: 'normalization',
|
|
1192
|
+
phase: 'comment',
|
|
1193
|
+
pageId: page.canonicalId,
|
|
1194
|
+
commentId: result.id,
|
|
1195
|
+
retryable: false,
|
|
1196
|
+
message: `${page.title}: applied the current source discussion as comment version ${result.version ?? 'confirmed'}`,
|
|
1197
|
+
});
|
|
1198
|
+
}
|
|
1103
1199
|
const verified = await destination.readArchiveComment({ page: destinationPage, commentId: result.id });
|
|
1104
1200
|
const verification = verifyCommentArchive(fullArchiveState.fullArchiveName ? fingerprint : inventory, verified.body, archiveResource?.name);
|
|
1105
1201
|
if (fullArchiveState.fullArchiveName && !verified.body.includes(fullArchiveState.fullArchiveName)) {
|
|
1106
1202
|
verification.ok = false;
|
|
1107
1203
|
verification.differences.push('full Markdown comment archive reference is missing');
|
|
1108
1204
|
}
|
|
1205
|
+
const semanticVerification = verifyDestinationContent(expectedBody, verified.body, destination.kind, page);
|
|
1206
|
+
if (semanticVerification.status !== 'complete') {
|
|
1207
|
+
verification.ok = false;
|
|
1208
|
+
verification.differences.push(...semanticVerification.differences);
|
|
1209
|
+
}
|
|
1109
1210
|
if (!verification.ok)
|
|
1110
1211
|
throw new Error(`Comment verification failed: ${verification.differences.join('; ')}`);
|
|
1111
1212
|
const previousIds = result.id !== current?.id && current
|
|
@@ -1115,6 +1216,7 @@ export class Migrator {
|
|
|
1115
1216
|
fingerprint,
|
|
1116
1217
|
destinationId: verified.id,
|
|
1117
1218
|
destinationFingerprint: verified.fingerprint,
|
|
1219
|
+
...(verified.version ? { destinationVersion: verified.version } : {}),
|
|
1118
1220
|
...(verified.url ? { destinationUrl: verified.url } : {}),
|
|
1119
1221
|
...(previousIds?.length ? { previousDestinationIds: previousIds } : {}),
|
|
1120
1222
|
...archiveState,
|
|
@@ -1138,7 +1240,8 @@ export class Migrator {
|
|
|
1138
1240
|
...counts,
|
|
1139
1241
|
...(pageState.comments?.destinationId ? { destinationId: pageState.comments.destinationId } : {}),
|
|
1140
1242
|
...(pageState.comments?.destinationFingerprint ? { destinationFingerprint: pageState.comments.destinationFingerprint } : {}),
|
|
1141
|
-
|
|
1243
|
+
...(pageState.comments?.destinationVersion ? { destinationVersion: pageState.comments.destinationVersion } : {}),
|
|
1244
|
+
status: 'failed',
|
|
1142
1245
|
lastError: message,
|
|
1143
1246
|
updatedAt: now(),
|
|
1144
1247
|
};
|
|
@@ -1207,6 +1310,7 @@ export class Migrator {
|
|
|
1207
1310
|
...(previous?.previousDestinationIds ? { previousDestinationIds: previous.previousDestinationIds } : {}),
|
|
1208
1311
|
sourceFingerprint: sourceFingerprints.get(page.canonicalId),
|
|
1209
1312
|
...(previous?.destinationFingerprint ? { destinationFingerprint: previous.destinationFingerprint } : {}),
|
|
1313
|
+
...(previous?.destinationVersion ? { destinationVersion: previous.destinationVersion } : {}),
|
|
1210
1314
|
status: 'blocked',
|
|
1211
1315
|
resources: blockedResourceStates(resources, previous?.resources ?? {}, cause),
|
|
1212
1316
|
...(comments ? { comments } : {}),
|
|
@@ -1234,7 +1338,9 @@ export class Migrator {
|
|
|
1234
1338
|
const cachedPage = await loadCachedPage(options.cacheDirectory, page.canonicalId);
|
|
1235
1339
|
const bootstrap = bootstrapBodies.get(page.canonicalId);
|
|
1236
1340
|
let created;
|
|
1237
|
-
const title = saved
|
|
1341
|
+
const title = saved && saved.destinationTitle !== saved.sourceTitle
|
|
1342
|
+
? saved.destinationTitle
|
|
1343
|
+
: page.title;
|
|
1238
1344
|
let resourcesForState = saved?.resources ?? {};
|
|
1239
1345
|
let commentsForState = saved?.comments;
|
|
1240
1346
|
let previousDestinationIds = saved?.previousDestinationIds ?? [];
|
|
@@ -1284,20 +1390,18 @@ export class Migrator {
|
|
|
1284
1390
|
message: `${page.title}: replaced unavailable destination mapping ${mapped.id} with ${created.id}`,
|
|
1285
1391
|
});
|
|
1286
1392
|
}
|
|
1287
|
-
|
|
1288
|
-
&&
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1393
|
+
if (!mappingRecovered
|
|
1394
|
+
&& saved.destinationFingerprint
|
|
1395
|
+
&& created.fingerprint
|
|
1396
|
+
&& created.fingerprint !== saved.destinationFingerprint) {
|
|
1397
|
+
report.issue({
|
|
1398
|
+
code: 'destination-revision-updated',
|
|
1399
|
+
severity: 'normalization',
|
|
1400
|
+
phase: 'page',
|
|
1401
|
+
pageId: page.canonicalId,
|
|
1402
|
+
retryable: false,
|
|
1403
|
+
message: `${page.title}: current destination revision differs from the last confirmed state and will be reconciled from source`,
|
|
1298
1404
|
});
|
|
1299
|
-
created = await verifyConfirmedDestinationPage(destination, created, this.consistencyOptions);
|
|
1300
|
-
assertDestinationContent(bootstrap.body, created.content, destination.kind, cachedPage);
|
|
1301
1405
|
}
|
|
1302
1406
|
if (!mappingRecovered && created.parentId !== parent.id) {
|
|
1303
1407
|
const oldPage = created;
|
|
@@ -1313,12 +1417,14 @@ export class Migrator {
|
|
|
1313
1417
|
});
|
|
1314
1418
|
}
|
|
1315
1419
|
else if (destination.capabilities.reparentPages && destination.reparentPage) {
|
|
1316
|
-
created = await
|
|
1317
|
-
|
|
1420
|
+
created = await reparentMappedPage({
|
|
1421
|
+
destination,
|
|
1422
|
+
current: created,
|
|
1318
1423
|
parent,
|
|
1319
|
-
|
|
1424
|
+
sourcePage: cachedPage,
|
|
1425
|
+
consistencyOptions: this.consistencyOptions,
|
|
1426
|
+
report,
|
|
1320
1427
|
});
|
|
1321
|
-
created = await verifyConfirmedDestinationPage(destination, created, this.consistencyOptions);
|
|
1322
1428
|
if (created.parentId !== parent.id) {
|
|
1323
1429
|
throw new Error(`Destination hierarchy verification failed for ${page.title}: expected parent ${parent.id}, received ${created.parentId ?? 'none'}`);
|
|
1324
1430
|
}
|
|
@@ -1409,11 +1515,12 @@ export class Migrator {
|
|
|
1409
1515
|
destinationId: created.id,
|
|
1410
1516
|
destinationCanonicalId: created.canonicalId,
|
|
1411
1517
|
destinationLocator: created.url,
|
|
1412
|
-
destinationTitle: created.title,
|
|
1518
|
+
destinationTitle: saved?.destinationId && !mappingRecovered ? title : created.title,
|
|
1413
1519
|
...(previousDestinationIds.length > 0 ? { previousDestinationIds } : {}),
|
|
1414
1520
|
sourceFingerprint: sourceFingerprints.get(page.canonicalId),
|
|
1415
1521
|
...(created.fingerprint ? { destinationFingerprint: created.fingerprint } : {}),
|
|
1416
|
-
|
|
1522
|
+
...(created.version ? { destinationVersion: created.version } : {}),
|
|
1523
|
+
status: options.dryRun ? 'planned' : 'skeleton-created',
|
|
1417
1524
|
resources: resourcesForState,
|
|
1418
1525
|
...(commentsForState ? { comments: commentsForState } : {}),
|
|
1419
1526
|
degradations: saved?.degradations ?? [],
|
|
@@ -1833,26 +1940,28 @@ export class Migrator {
|
|
|
1833
1940
|
let verificationDegradations = [];
|
|
1834
1941
|
if (!options.dryRun) {
|
|
1835
1942
|
const current = await verifyConfirmedDestinationPage(destination, destinationPage, this.consistencyOptions);
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
if (normalization.status !== 'complete') {
|
|
1841
|
-
throw new Error(`Destination conflict for ${page.title}: content changed while resources were transferred`);
|
|
1842
|
-
}
|
|
1843
|
-
rendered.normalizations.push('Destination normalized page markup without semantic content changes');
|
|
1844
|
-
}
|
|
1845
|
-
verified = await destination.updatePage({
|
|
1846
|
-
page: current,
|
|
1847
|
-
title: current.title,
|
|
1943
|
+
const update = await updateMappedPage({
|
|
1944
|
+
destination,
|
|
1945
|
+
current,
|
|
1946
|
+
title: state.destinationTitle,
|
|
1848
1947
|
body: rendered.body,
|
|
1849
|
-
|
|
1948
|
+
sourcePage: cachedPage,
|
|
1949
|
+
consistencyOptions: this.consistencyOptions,
|
|
1950
|
+
report,
|
|
1850
1951
|
});
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1952
|
+
verified = update.page;
|
|
1953
|
+
if (update.normalized)
|
|
1954
|
+
rendered.normalizations.push('Destination normalized page markup without semantic content changes');
|
|
1955
|
+
if (update.updated) {
|
|
1956
|
+
report.issue({
|
|
1957
|
+
code: 'destination-revision-updated',
|
|
1958
|
+
severity: 'normalization',
|
|
1959
|
+
phase: 'page',
|
|
1960
|
+
pageId: page.canonicalId,
|
|
1961
|
+
retryable: false,
|
|
1962
|
+
message: `${page.title}: applied the current source representation as destination version ${verified.version ?? 'confirmed'}`,
|
|
1963
|
+
});
|
|
1854
1964
|
}
|
|
1855
|
-
verified = await verifyConfirmedDestinationPage(destination, verified, this.consistencyOptions);
|
|
1856
1965
|
const verification = assertDestinationContent(rendered.body, verified.content, destination.kind, cachedPage);
|
|
1857
1966
|
verificationDegradations = verification.status === 'partial' ? verification.differences : [];
|
|
1858
1967
|
}
|
|
@@ -1911,6 +2020,7 @@ export class Migrator {
|
|
|
1911
2020
|
destinationLocator: verified.url,
|
|
1912
2021
|
destinationTitle: verified.title,
|
|
1913
2022
|
...(verified.fingerprint ? { destinationFingerprint: verified.fingerprint } : {}),
|
|
2023
|
+
...(verified.version ? { destinationVersion: verified.version } : {}),
|
|
1914
2024
|
status: options.dryRun ? 'planned' : partial ? 'partial' : 'complete',
|
|
1915
2025
|
comments: commentState,
|
|
1916
2026
|
degradations: [...new Set([...rendered.warnings, ...resourceProblems, ...verificationDegradations])],
|
|
@@ -1965,6 +2075,7 @@ export class Migrator {
|
|
|
1965
2075
|
await store.setPage({
|
|
1966
2076
|
...state,
|
|
1967
2077
|
...(actual?.fingerprint ? { destinationFingerprint: actual.fingerprint } : {}),
|
|
2078
|
+
...(actual?.version ? { destinationVersion: actual.version } : {}),
|
|
1968
2079
|
status: failureStatus,
|
|
1969
2080
|
lastError: message,
|
|
1970
2081
|
updatedAt: new Date().toISOString(),
|