@iwonz/ywtc 3.2.2 → 3.4.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 (54) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +48 -43
  3. package/dist/adapters/confluence.d.ts +37 -2
  4. package/dist/adapters/confluence.js +115 -2
  5. package/dist/adapters/confluence.js.map +1 -1
  6. package/dist/adapters/yandex.d.ts +26 -2
  7. package/dist/adapters/yandex.js +113 -4
  8. package/dist/adapters/yandex.js.map +1 -1
  9. package/dist/cli-arguments.d.ts +5 -1
  10. package/dist/cli-arguments.js +10 -0
  11. package/dist/cli-arguments.js.map +1 -1
  12. package/dist/cli.js +16 -6
  13. package/dist/cli.js.map +1 -1
  14. package/dist/clients/confluence-cloud.d.ts +17 -1
  15. package/dist/clients/confluence-cloud.js +116 -0
  16. package/dist/clients/confluence-cloud.js.map +1 -1
  17. package/dist/clients/confluence.d.ts +13 -1
  18. package/dist/clients/confluence.js +89 -0
  19. package/dist/clients/confluence.js.map +1 -1
  20. package/dist/clients/yandex-wiki.d.ts +13 -2
  21. package/dist/clients/yandex-wiki.js +67 -5
  22. package/dist/clients/yandex-wiki.js.map +1 -1
  23. package/dist/comments.d.ts +66 -0
  24. package/dist/comments.js +478 -0
  25. package/dist/comments.js.map +1 -0
  26. package/dist/content-model.js +3 -2
  27. package/dist/content-model.js.map +1 -1
  28. package/dist/doctor.d.ts +14 -2
  29. package/dist/doctor.js +26 -4
  30. package/dist/doctor.js.map +1 -1
  31. package/dist/domain.d.ts +116 -2
  32. package/dist/domain.js +7 -1
  33. package/dist/domain.js.map +1 -1
  34. package/dist/filesystem-export.d.ts +16 -1
  35. package/dist/filesystem-export.js +88 -2
  36. package/dist/filesystem-export.js.map +1 -1
  37. package/dist/graph.d.ts +2 -1
  38. package/dist/graph.js +105 -15
  39. package/dist/graph.js.map +1 -1
  40. package/dist/issues.d.ts +1 -1
  41. package/dist/migrator.d.ts +4 -1
  42. package/dist/migrator.js +638 -27
  43. package/dist/migrator.js.map +1 -1
  44. package/dist/report-catalog.d.ts +30 -1
  45. package/dist/report-catalog.js +26 -0
  46. package/dist/report-catalog.js.map +1 -1
  47. package/dist/report.d.ts +47 -3
  48. package/dist/report.js +66 -3
  49. package/dist/report.js.map +1 -1
  50. package/dist/state.d.ts +42 -2
  51. package/dist/state.js +67 -1
  52. package/dist/state.js.map +1 -1
  53. package/dist/types.d.ts +79 -1
  54. package/package.json +1 -1
package/dist/report.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { DiscoveredPage, GraphEdgeStatus, ProviderKind, SourceResource, TransferScope } from './domain.js';
1
+ import type { DiscoveredPage, GraphEdgeStatus, ProviderKind, SourceResource, SourceSelection, SourceStatus, TransferScope } from './domain.js';
2
2
  import { type IssueInput, type MigrationIssue } from './issues.js';
3
- import type { PageTransferStatus, ResourceTransferState, RunStatus, StateLoadSource } from './state.js';
3
+ import type { CommentTransferStatus, PageTransferStatus, ResourceTransferState, RunStatus, StateLoadSource } from './state.js';
4
4
  export type ReportInventoryStatus = 'pending' | 'complete' | 'failed';
5
5
  export type ReportResourceStatus = ResourceTransferState['status'];
6
6
  export interface TransferReportResource {
@@ -44,6 +44,20 @@ export interface TransferReportPage {
44
44
  warnings: string[];
45
45
  normalizations?: string[];
46
46
  error?: string;
47
+ comments: {
48
+ status: CommentTransferStatus;
49
+ threads: number;
50
+ comments: number;
51
+ participants: number;
52
+ attachments: number;
53
+ bytes: number;
54
+ archiveName?: string;
55
+ destinationId?: string;
56
+ revision?: boolean;
57
+ stale?: boolean;
58
+ error?: string;
59
+ preview?: string;
60
+ };
47
61
  }
48
62
  export interface TransferReportEdge {
49
63
  from: string;
@@ -61,8 +75,15 @@ export interface TransferReportIssue extends MigrationIssue {
61
75
  type PageStatusCounts = Record<PageTransferStatus, number>;
62
76
  type ResourceStatusCounts = Record<ReportResourceStatus, number>;
63
77
  type EdgeStatusCounts = Record<GraphEdgeStatus, number>;
78
+ type CommentStatusCounts = Record<CommentTransferStatus, number>;
64
79
  export interface TransferReportSummary {
65
80
  pages: number;
81
+ returnedDescendants: number;
82
+ selectedDescendants: number;
83
+ excludedPages: number;
84
+ maximumDepth: number;
85
+ hierarchyGaps: number;
86
+ hierarchyRepairs: number;
66
87
  complete: number;
67
88
  partial: number;
68
89
  failed: number;
@@ -93,6 +114,12 @@ export interface TransferReportSummary {
93
114
  inventoryComplete: boolean;
94
115
  inventoriedPages: number;
95
116
  inventoryFailedPages: number;
117
+ commentThreads: number;
118
+ comments: number;
119
+ commentParticipants: number;
120
+ commentAttachments: number;
121
+ commentBytes: number;
122
+ commentStatuses: CommentStatusCounts;
96
123
  durationMs?: number;
97
124
  pageStatuses: PageStatusCounts;
98
125
  resourceStatuses: ResourceStatusCounts;
@@ -104,7 +131,10 @@ export interface TransferReportData {
104
131
  finishedAt?: string;
105
132
  status: RunStatus;
106
133
  dryRun: boolean;
134
+ commentsEnabled: boolean;
107
135
  scope: TransferScope;
136
+ sourceStatus: SourceStatus;
137
+ selection: SourceSelection;
108
138
  direction: string;
109
139
  source: {
110
140
  provider: ProviderKind;
@@ -129,6 +159,15 @@ export interface TransferReportData {
129
159
  };
130
160
  pages: TransferReportPage[];
131
161
  edges: TransferReportEdge[];
162
+ hierarchyRepairs: Array<{
163
+ sourceCanonicalId: string;
164
+ mode: 'moved' | 'recreated';
165
+ oldParentId?: string;
166
+ newParentId: string;
167
+ oldDestinationId: string;
168
+ newDestinationId: string;
169
+ verified: boolean;
170
+ }>;
132
171
  warnings: string[];
133
172
  errors: string[];
134
173
  issues: TransferReportIssue[];
@@ -152,11 +191,16 @@ export declare class TransferReport {
152
191
  readonly data: TransferReportData;
153
192
  private readonly previews;
154
193
  private readonly issueCollector;
155
- constructor(input: Omit<TransferReportData, 'runId' | 'startedAt' | 'status' | 'pages' | 'edges' | 'warnings' | 'errors' | 'issues' | 'outputs' | 'summary'>);
194
+ constructor(input: Omit<TransferReportData, 'runId' | 'startedAt' | 'status' | 'sourceStatus' | 'commentsEnabled' | 'selection' | 'pages' | 'edges' | 'hierarchyRepairs' | 'warnings' | 'errors' | 'issues' | 'outputs' | 'summary'> & {
195
+ sourceStatus?: SourceStatus;
196
+ commentsEnabled?: boolean;
197
+ });
156
198
  registerPages(pages: DiscoveredPage[]): void;
157
199
  updatePage(sourceCanonicalId: string, update: Partial<TransferReportPage>): void;
158
200
  addPage(page: TransferReportPage, previews?: PreviewPair, collectIssues?: boolean): void;
159
201
  setEdges(edges: TransferReportEdge[]): void;
202
+ setSelection(selection: SourceSelection): void;
203
+ addHierarchyRepair(repair: TransferReportData['hierarchyRepairs'][number]): void;
160
204
  issue(input: IssueInput): void;
161
205
  warning(message: string): void;
162
206
  error(message: string): void;
package/dist/report.js CHANGED
@@ -14,12 +14,19 @@ const pageStatuses = [
14
14
  ];
15
15
  const resourceStatuses = ['planned', 'complete', 'partial', 'failed'];
16
16
  const edgeStatuses = ['resolved', 'external', 'inaccessible', 'broken', 'cycle', 'unsupported'];
17
+ const commentStatuses = ['planned', 'complete', 'partial', 'failed', 'conflict', 'stale', 'skipped'];
17
18
  function countRecord(values) {
18
19
  return Object.fromEntries(values.map((value) => [value, 0]));
19
20
  }
20
21
  function emptySummary() {
21
22
  return {
22
23
  pages: 0,
24
+ returnedDescendants: 0,
25
+ selectedDescendants: 0,
26
+ excludedPages: 0,
27
+ maximumDepth: 0,
28
+ hierarchyGaps: 0,
29
+ hierarchyRepairs: 0,
23
30
  complete: 0,
24
31
  partial: 0,
25
32
  failed: 0,
@@ -50,6 +57,12 @@ function emptySummary() {
50
57
  inventoryComplete: false,
51
58
  inventoriedPages: 0,
52
59
  inventoryFailedPages: 0,
60
+ commentThreads: 0,
61
+ comments: 0,
62
+ commentParticipants: 0,
63
+ commentAttachments: 0,
64
+ commentBytes: 0,
65
+ commentStatuses: countRecord(commentStatuses),
53
66
  pageStatuses: countRecord(pageStatuses),
54
67
  resourceStatuses: countRecord(resourceStatuses),
55
68
  traversalStatuses: countRecord(edgeStatuses),
@@ -131,14 +144,25 @@ function renderReport(data, previews) {
131
144
  : `${data.summary.inventoriedPages}/${data.summary.pages} pages inspected · ${data.summary.inventoryFailedPages} failed`;
132
145
  const sourceCards = [
133
146
  statCard('Selected pages', data.summary.pages, 'accessible in selected scope'),
147
+ statCard('Returned descendants', data.summary.returnedDescendants, `${data.summary.excludedPages} excluded by status`),
148
+ statCard('Tree depth', data.summary.maximumDepth, `${data.summary.hierarchyGaps} hierarchy gaps · ${data.summary.hierarchyRepairs} repaired`),
134
149
  statCard('Files', data.summary.resources, `${data.summary.attachments} attachments · ${data.summary.resourceImages} images`),
135
150
  statCard('Source bytes', formatBytes(data.summary.sourceBytes), data.summary.bytesUnknown ? `${data.summary.bytesUnknown} sizes unknown` : 'all sizes known'),
136
151
  statCard('Transferred bytes', formatBytes(data.summary.bytes), 'confirmed complete files'),
137
152
  statCard('Links', data.summary.links, `${data.summary.images} embedded images`),
138
153
  statCard('Structured content', data.summary.tables + data.summary.codeBlocks, `${data.summary.tables} tables · ${data.summary.grids} grids · ${data.summary.codeBlocks} code blocks`),
154
+ statCard('Comments', data.summary.comments, `${data.summary.commentThreads} threads · ${data.summary.commentParticipants} participants`),
155
+ statCard('Comment files', data.summary.commentAttachments, formatBytes(data.summary.commentBytes)),
139
156
  ].join('');
157
+ const excludedRows = data.selection.excluded.map((page) => `<tr><td>${escapeHtml(page.title ?? page.locator)}</td><td><code>${escapeHtml(page.id)}</code></td><td>${escapeHtml(page.status ?? 'non-current')}</td><td>${escapeHtml(page.reason)}</td></tr>`).join('');
158
+ const gapRows = data.selection.hierarchyGaps.map((gap) => `<tr><td><code>${escapeHtml(gap.pageId)}</code></td><td><code>${escapeHtml(gap.missingParentId ?? 'unknown')}</code></td><td><code>${escapeHtml(gap.selectedParentId)}</code></td><td>${escapeHtml(gap.reason)}</td></tr>`).join('');
159
+ const repairRows = data.hierarchyRepairs.map((repair) => `<tr><td><code>${escapeHtml(repair.sourceCanonicalId)}</code></td><td>${escapeHtml(repair.mode)}</td><td><code>${escapeHtml(repair.oldParentId ?? 'none')}</code></td><td><code>${escapeHtml(repair.newParentId)}</code></td><td><code>${escapeHtml(repair.oldDestinationId)} → ${escapeHtml(repair.newDestinationId)}</code></td><td>${repair.verified ? 'verified' : 'planned'}</td></tr>`).join('');
160
+ const selectionDetails = excludedRows || gapRows || repairRows || data.selection.notes.length
161
+ ? `<section class="panel" aria-labelledby="selection-title"><div class="section-head"><div><h2 id="selection-title">Selection and hierarchy</h2><p>Every source-status exclusion, projected hierarchy gap, and destination repair recorded for this run.</p></div></div>${excludedRows ? `<div class="table-wrap"><h3>Excluded pages</h3><table><thead><tr><th>Page</th><th>Source ID</th><th>Status</th><th>Reason</th></tr></thead><tbody>${excludedRows}</tbody></table></div>` : ''}${gapRows ? `<div class="table-wrap"><h3>Hierarchy gaps</h3><table><thead><tr><th>Page</th><th>Missing parent</th><th>Projected parent</th><th>Reason</th></tr></thead><tbody>${gapRows}</tbody></table></div>` : ''}${repairRows ? `<div class="table-wrap"><h3>Destination repairs</h3><table><thead><tr><th>Source page</th><th>Mode</th><th>Old parent</th><th>New parent</th><th>Destination mapping</th><th>Outcome</th></tr></thead><tbody>${repairRows}</tbody></table></div>` : ''}${data.selection.notes.length ? `<div class="callout"><h3>Provider notes</h3><ul>${data.selection.notes.map((note) => `<li>${escapeHtml(note)}</li>`).join('')}</ul></div>` : ''}</section>`
162
+ : '';
140
163
  const pageOutcomeStatuses = ['complete', 'partial', 'failed', 'blocked', 'conflict', 'planned', 'discovered', 'skeleton-created'];
141
164
  const resourceOutcomeStatuses = ['complete', 'partial', 'failed', 'planned'];
165
+ const commentOutcomeStatuses = ['complete', 'partial', 'failed', 'conflict', 'stale', 'skipped', 'planned'];
142
166
  const attentionIssues = data.issues.filter((issue) => issue.severity !== 'normalization');
143
167
  const normalizationIssues = data.issues.filter((issue) => issue.severity === 'normalization');
144
168
  const attentionSummary = [
@@ -162,6 +186,7 @@ function renderReport(data, previews) {
162
186
  return `<details id="${escapeHtml(pageAnchor(page.sourceCanonicalId))}" class="page" style="--depth:${Math.min(page.depth, 8)}"${page.status === 'complete' ? '' : ' open'}><summary><span class="status ${statusClass(page.status)}">${escapeHtml(page.status)}</span><strong>${escapeHtml(page.sourceTitle)}</strong><span>${escapeHtml(metrics)}</span></summary>
163
187
  <div class="meta"><span>inventory: <strong>${escapeHtml(page.inventoryStatus)}</strong></span><span>depth ${page.depth}</span>${page.parentId ? `<span>parent ${escapeHtml(page.parentId)}</span>` : ''}${source ? `<a href="${escapeHtml(source)}" target="_blank" rel="noreferrer">source</a>` : ''}${destination ? `<a href="${escapeHtml(destination)}" target="_blank" rel="noreferrer">destination</a>` : ''}<span>${escapeHtml(page.sourceCanonicalId)}</span><span>source ${page.sourceBytes === undefined ? 'size unknown' : escapeHtml(formatBytes(page.sourceBytes))} · transferred ${escapeHtml(formatBytes(page.transferredBytes))}${page.bytesUnknown ? ` · ${page.bytesUnknown} unknown` : ''}</span></div>
164
188
  ${page.error ? `<div class="callout bad"><strong>Page error</strong><p>${escapeHtml(page.error)}</p></div>` : ''}
189
+ <div class="callout ${page.comments.status === 'complete' || page.comments.status === 'skipped' ? '' : 'warn'}"><h3>Comments · <span class="status ${statusClass(page.comments.status)}">${escapeHtml(page.comments.status)}</span></h3><p>${page.comments.threads} threads · ${page.comments.comments} entries · ${page.comments.participants} participants · ${page.comments.attachments} archived files · ${escapeHtml(formatBytes(page.comments.bytes))}${page.comments.archiveName ? ` · <strong>${escapeHtml(page.comments.archiveName)}</strong>` : ''}</p>${page.comments.error ? `<p class="bad">${escapeHtml(page.comments.error)}</p>` : ''}${page.comments.preview ? `<details><summary>Destination archive preview</summary><pre>${escapeHtml(page.comments.preview)}</pre></details>` : ''}</div>
165
190
  ${pageIssues.length ? `<div><h3>Page issues</h3><ul class="issue-list compact">${pageIssues.map(issueRow).join('')}</ul></div>` : ''}
166
191
  ${page.resourceItems.length ? `<div class="table-wrap"><h3>Resources</h3><table><thead><tr><th>Source resource</th><th>Outcome</th><th>Source size</th><th>Transferred</th><th>Destination name</th><th>Problem</th></tr></thead><tbody>${resourceRows}</tbody></table></div>` : '<p class="muted">No transferable resources on this page.</p>'}
167
192
  ${preview ? `<div class="compare"><section><h3>Source preview</h3><p class="muted">Normalized source content</p><iframe title="Source preview: ${escapeHtml(page.sourceTitle)}" sandbox srcdoc="${escapeHtml(preview.source)}"></iframe></section><section><h3>Destination preview</h3><p class="muted">Body read back from destination</p><iframe title="Destination preview: ${escapeHtml(page.sourceTitle)}" sandbox srcdoc="${escapeHtml(preview.destination)}"></iframe></section></div>` : '<p class="muted">Destination preview is unavailable because no body was read back.</p>'}
@@ -186,10 +211,11 @@ function renderReport(data, previews) {
186
211
  : '';
187
212
  return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>ywtc transfer ${escapeHtml(data.runId)}</title><style>
188
213
  :root{font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f4f6fa;color-scheme:light}*{box-sizing:border-box}body{margin:0}a{color:#175cd3}main{max-width:1360px;margin:auto;padding:32px}.head,.section-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.head h1{margin:0}.head p,.section-head p{margin:.25rem 0}.muted{color:#667085}.run-meta,.meta,.mini-stats{display:flex;flex-wrap:wrap;gap:10px 18px}.run-meta{margin-top:18px;padding:14px 0;border-top:1px solid #dfe4ed}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:18px 0}.stat,.page,.panel{background:#fff;border:1px solid #dfe4ed;border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}.stat{padding:14px}.stat small,.stat strong,.stat span{display:block}.stat strong{font-size:24px}.stat span{font-size:12px;color:#667085;margin-top:2px}.panel{padding:20px;margin-top:20px;overflow:hidden}.panel h2{margin:0}.count{display:grid;place-items:center;min-width:38px;height:38px;border-radius:20px;background:#eef2f8;font-weight:800}.page{margin:10px 0 10px calc(var(--depth) * 12px);padding:14px;scroll-margin-top:18px}.page:target{outline:3px solid #84adff}.page summary{display:grid;grid-template-columns:120px minmax(180px,1fr) auto;gap:12px;cursor:pointer;align-items:center}.status{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.ok{color:#087443}.warn{color:#9a6500}.bad{color:#b42318}.meta{margin:14px 0;color:#667085;font-size:13px}.compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.compare section{min-width:0}.compare h3{margin-bottom:0}.compare iframe{width:100%;height:420px;border:1px solid #dfe4ed;border-radius:8px;background:#fff}.table-wrap{overflow:auto;margin-top:14px}table{border-collapse:collapse;width:100%;min-width:680px}th,td{padding:9px;border-bottom:1px solid #e6e9ef;text-align:left;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:#667085}td strong,td small{display:block}.outcomes td strong{font-size:18px;margin-top:3px}.issue-list{list-style:none;padding:0;margin:14px 0 0}.issue{border-left:4px solid #f79009;background:#fffaeb;padding:12px 14px;margin:8px 0;border-radius:6px}.issue.error{border-color:#f04438;background:#fef3f2}.issue.degradation{border-color:#f79009}.issue.normalization{border-color:#98a2b3;background:#f9fafb}.issue>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.issue p{margin:.35rem 0}.issue-context,.action{font-size:13px}.retry{font-size:11px;background:#fff0c2;border-radius:12px;padding:2px 7px}.compact .issue{padding:9px 11px}.callout{padding:12px 14px;border-radius:8px;background:#f9fafb;margin:12px 0}.callout.warn{background:#fffaeb}.callout.bad{background:#fef3f2}.empty{padding:14px;border-radius:8px;background:#f9fafb}.attention{border-top:4px solid #f79009}.attention:has(.empty.ok){border-top-color:#12b76a}.context-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.context-grid dl{margin:0}.context-grid dt{font-size:12px;text-transform:uppercase;color:#667085}.context-grid dd{margin:2px 0 12px;overflow-wrap:anywhere}code{overflow-wrap:anywhere}@media(max-width:760px){main{padding:16px}.page{margin-left:0}.page summary{grid-template-columns:1fr}.compare{grid-template-columns:1fr}.head,.section-head{display:block}.count{margin-top:10px}.stats{grid-template-columns:1fr 1fr}.panel{padding:14px}}@media(max-width:420px){.stats{grid-template-columns:1fr}}
189
- </style></head><body><main><header class="head"><div><h1>ywtc transfer report</h1><p>${escapeHtml(data.direction)} · ${escapeHtml(data.scope)} · ${data.dryRun ? 'dry-run' : 'live transfer'}</p></div><div><span class="status ${statusClass(data.status)}">${escapeHtml(data.status)}</span><p class="muted">${escapeHtml(data.runId)}</p></div></header>
214
+ </style></head><body><main><header class="head"><div><h1>ywtc transfer report</h1><p>${escapeHtml(data.direction)} · ${escapeHtml(data.scope)} · source status ${escapeHtml(data.sourceStatus)} · ${data.dryRun ? 'dry-run' : 'live transfer'}</p></div><div><span class="status ${statusClass(data.status)}">${escapeHtml(data.status)}</span><p class="muted">${escapeHtml(data.runId)}</p></div></header>
190
215
  <div class="run-meta"><span>Started <strong>${escapeHtml(data.startedAt)}</strong></span>${data.finishedAt ? `<span>Finished <strong>${escapeHtml(data.finishedAt)}</strong></span>` : ''}<span>Duration <strong>${escapeHtml(formatDuration(data.summary.durationMs))}</strong></span><span>Inventory <strong class="${data.summary.inventoryComplete ? 'ok' : 'warn'}">${escapeHtml(inventoryState)}</strong></span></div>
191
- <section class="panel" aria-labelledby="source-title"><div class="section-head"><div><h2 id="source-title">Source scope inventory</h2><p>Accessible content selected by <code>${escapeHtml(data.scope)}</code> scope; this is not the whole source instance.</p></div><span class="status ${data.summary.inventoryComplete ? 'ok' : 'warn'}">${data.summary.inventoryComplete ? 'complete' : 'incomplete'}</span></div><div class="stats">${sourceCards}</div></section>
192
- <section class="panel" aria-labelledby="outcome-title"><div class="section-head"><div><h2 id="outcome-title">Transfer outcomes</h2><p>Every selected page and discovered file is counted in exactly one status.</p></div><span class="count">${data.summary.pages}</span></div><div class="table-wrap"><table class="outcomes"><thead><tr><th>Object</th>${pageOutcomeStatuses.map((status) => `<th>${escapeHtml(status)}</th>`).join('')}<th>Total</th></tr></thead><tbody><tr><th>Pages</th>${statusCells(data.summary.pageStatuses, pageOutcomeStatuses)}<td><strong>${data.summary.pages}</strong></td></tr></tbody></table></div><div class="table-wrap"><table class="outcomes"><thead><tr><th>Object</th>${resourceOutcomeStatuses.map((status) => `<th>${escapeHtml(status)}</th>`).join('')}<th>Total</th></tr></thead><tbody><tr><th>Files</th>${statusCells(data.summary.resourceStatuses, resourceOutcomeStatuses)}<td><strong>${data.summary.resources}</strong></td></tr></tbody></table></div></section>
216
+ <section class="panel" aria-labelledby="source-title"><div class="section-head"><div><h2 id="source-title">Source scope inventory</h2><p>Root plus ${escapeHtml(data.summary.returnedDescendants)} accessible descendants; ${escapeHtml(data.summary.selectedDescendants)} selected and ${escapeHtml(data.summary.excludedPages)} excluded with source status <code>${escapeHtml(data.sourceStatus)}</code>.</p></div><span class="status ${data.summary.inventoryComplete ? 'ok' : 'warn'}">${data.summary.inventoryComplete ? 'complete' : 'incomplete'}</span></div><div class="stats">${sourceCards}</div></section>
217
+ ${selectionDetails}
218
+ <section class="panel" aria-labelledby="outcome-title"><div class="section-head"><div><h2 id="outcome-title">Transfer outcomes</h2><p>Every selected page, discovered file, and page comment archive is counted in exactly one status.</p></div><span class="count">${data.summary.pages}</span></div><div class="table-wrap"><table class="outcomes"><thead><tr><th>Object</th>${pageOutcomeStatuses.map((status) => `<th>${escapeHtml(status)}</th>`).join('')}<th>Total</th></tr></thead><tbody><tr><th>Pages</th>${statusCells(data.summary.pageStatuses, pageOutcomeStatuses)}<td><strong>${data.summary.pages}</strong></td></tr></tbody></table></div><div class="table-wrap"><table class="outcomes"><thead><tr><th>Object</th>${resourceOutcomeStatuses.map((status) => `<th>${escapeHtml(status)}</th>`).join('')}<th>Total</th></tr></thead><tbody><tr><th>Files</th>${statusCells(data.summary.resourceStatuses, resourceOutcomeStatuses)}<td><strong>${data.summary.resources}</strong></td></tr></tbody></table></div><div class="table-wrap"><table class="outcomes"><thead><tr><th>Object</th>${commentOutcomeStatuses.map((status) => `<th>${escapeHtml(status)}</th>`).join('')}<th>Total</th></tr></thead><tbody><tr><th>Page comment archives</th>${statusCells(data.summary.commentStatuses, commentOutcomeStatuses)}<td><strong>${data.summary.pages}</strong></td></tr></tbody></table></div></section>
193
219
  ${attention}
194
220
  <section aria-labelledby="pages-title"><div class="section-head"><div><h2 id="pages-title">Pages</h2><p>Projected hierarchy with exact outcomes, source metrics, resources, issues, and verified previews.</p></div></div>${pageRows || '<p class="empty">No source page was resolved before the run stopped.</p>'}</section>
195
221
  <section class="panel" aria-labelledby="links-title"><div class="section-head"><div><h2 id="links-title">Link traversal</h2><p>Traversal evidence used to select pages in linked scope; content link totals are shown in source inventory.</p></div><span class="count">${data.edges.length}</span></div>${traversalBody}</section>
@@ -202,18 +228,32 @@ export class TransferReport {
202
228
  previews = new Map();
203
229
  issueCollector = new IssueCollector();
204
230
  constructor(input) {
231
+ const sourceStatus = input.sourceStatus ?? 'all';
205
232
  this.data = {
206
233
  runId: randomUUID(),
207
234
  startedAt: new Date().toISOString(),
208
235
  status: 'running',
236
+ sourceStatus,
237
+ selection: {
238
+ requestedStatus: sourceStatus,
239
+ effectiveStatus: sourceStatus,
240
+ returnedDescendants: 0,
241
+ selectedDescendants: 0,
242
+ excluded: [],
243
+ maximumDepth: 0,
244
+ hierarchyGaps: [],
245
+ notes: [],
246
+ },
209
247
  pages: [],
210
248
  edges: [],
249
+ hierarchyRepairs: [],
211
250
  warnings: [],
212
251
  errors: [],
213
252
  issues: [],
214
253
  outputs: [],
215
254
  summary: emptySummary(),
216
255
  ...input,
256
+ commentsEnabled: input.commentsEnabled ?? true,
217
257
  };
218
258
  }
219
259
  registerPages(pages) {
@@ -242,6 +282,7 @@ export class TransferReport {
242
282
  resourceFallbacks: [],
243
283
  warnings: [],
244
284
  normalizations: [],
285
+ comments: { status: this.data.commentsEnabled ? 'planned' : 'skipped', threads: 0, comments: 0, participants: 0, attachments: 0, bytes: 0 },
245
286
  });
246
287
  }
247
288
  }
@@ -269,6 +310,13 @@ export class TransferReport {
269
310
  this.issue({ code: `warning:${message}`, severity: page.degraded ? 'degradation' : 'warning', phase: 'page', pageId: page.sourceCanonicalId, retryable: false, message });
270
311
  }
271
312
  setEdges(edges) { this.data.edges = edges; }
313
+ setSelection(selection) {
314
+ this.data.selection = selection;
315
+ this.data.sourceStatus = selection.effectiveStatus;
316
+ }
317
+ addHierarchyRepair(repair) {
318
+ this.data.hierarchyRepairs.push(repair);
319
+ }
272
320
  issue(input) { this.issueCollector.add(input); }
273
321
  warning(message) { this.issue({ code: `warning:${message}`, severity: 'warning', phase: 'report', retryable: false, message }); }
274
322
  error(message) { this.issue({ code: `error:${message}`, severity: 'error', phase: 'report', retryable: false, message }); }
@@ -292,6 +340,7 @@ export class TransferReport {
292
340
  const pageStatusCounts = countRecord(pageStatuses);
293
341
  const resourceStatusCounts = countRecord(resourceStatuses);
294
342
  const traversalStatusCounts = countRecord(edgeStatuses);
343
+ const commentStatusCounts = countRecord(commentStatuses);
295
344
  for (const page of this.data.pages)
296
345
  pageStatusCounts[page.status] += 1;
297
346
  const resources = this.data.pages.flatMap((page) => page.resourceItems);
@@ -299,6 +348,8 @@ export class TransferReport {
299
348
  resourceStatusCounts[resource.status] += 1;
300
349
  for (const edge of this.data.edges)
301
350
  traversalStatusCounts[edge.status] += 1;
351
+ for (const page of this.data.pages)
352
+ commentStatusCounts[page.comments.status] += 1;
302
353
  const started = Date.parse(this.data.startedAt);
303
354
  const finished = Date.parse(this.data.finishedAt);
304
355
  const sourceBytes = resources.reduce((total, resource) => total + (resource.sourceBytes ?? 0), 0);
@@ -307,6 +358,12 @@ export class TransferReport {
307
358
  const inventoryFailedPages = this.data.pages.filter((page) => page.inventoryStatus === 'failed').length;
308
359
  this.data.summary = {
309
360
  pages: this.data.pages.length,
361
+ returnedDescendants: this.data.selection.returnedDescendants,
362
+ selectedDescendants: this.data.selection.selectedDescendants,
363
+ excludedPages: this.data.selection.excluded.length,
364
+ maximumDepth: this.data.selection.maximumDepth,
365
+ hierarchyGaps: this.data.selection.hierarchyGaps.length,
366
+ hierarchyRepairs: this.data.hierarchyRepairs.length,
310
367
  complete: pageStatusCounts.complete,
311
368
  partial: pageStatusCounts.partial,
312
369
  failed: pageStatusCounts.failed,
@@ -337,6 +394,12 @@ export class TransferReport {
337
394
  inventoryComplete: this.data.pages.length > 0 && inventoriedPages === this.data.pages.length,
338
395
  inventoriedPages,
339
396
  inventoryFailedPages,
397
+ commentThreads: this.data.pages.reduce((total, page) => total + page.comments.threads, 0),
398
+ comments: this.data.pages.reduce((total, page) => total + page.comments.comments, 0),
399
+ commentParticipants: this.data.pages.reduce((total, page) => total + page.comments.participants, 0),
400
+ commentAttachments: this.data.pages.reduce((total, page) => total + page.comments.attachments, 0),
401
+ commentBytes: this.data.pages.reduce((total, page) => total + page.comments.bytes, 0),
402
+ commentStatuses: commentStatusCounts,
340
403
  ...(Number.isFinite(started) && Number.isFinite(finished) ? { durationMs: Math.max(0, finished - started) } : {}),
341
404
  pageStatuses: pageStatusCounts,
342
405
  resourceStatuses: resourceStatusCounts,
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
package/dist/state.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import type { ExportFormat, GraphEdgeStatus, ProviderKind } from './domain.js';
1
+ import type { ExportFormat, GraphEdgeStatus, ProviderKind, SourceSelection, SourceStatus } from './domain.js';
2
2
  export type PageTransferStatus = 'discovered' | 'planned' | 'skeleton-created' | 'complete' | 'partial' | 'conflict' | 'failed' | 'blocked';
3
3
  export type RunStatus = 'running' | 'completed' | 'completed-with-warnings' | 'partial' | 'failed' | 'cancelled' | 'interrupted';
4
+ export type CommentTransferStatus = 'planned' | 'complete' | 'partial' | 'failed' | 'conflict' | 'stale' | 'skipped';
4
5
  export interface EndpointIdentity {
5
6
  profile: string;
6
7
  provider: ProviderKind;
@@ -30,6 +31,29 @@ export interface ResourceTransferState {
30
31
  lastError?: string;
31
32
  updatedAt: string;
32
33
  }
34
+ export interface CommentTransferState {
35
+ fingerprint?: string;
36
+ destinationId?: string;
37
+ destinationFingerprint?: string;
38
+ previousDestinationIds?: string[];
39
+ archiveResourceId?: string;
40
+ archiveName?: string;
41
+ archivePath?: string;
42
+ archiveSha256?: string;
43
+ fullArchiveResourceId?: string;
44
+ fullArchiveName?: string;
45
+ fullArchivePath?: string;
46
+ fullArchiveSha256?: string;
47
+ status: CommentTransferStatus;
48
+ threads: number;
49
+ comments: number;
50
+ participants: number;
51
+ attachments: number;
52
+ bytes: number;
53
+ preview?: string;
54
+ lastError?: string;
55
+ updatedAt: string;
56
+ }
33
57
  export interface PageTransferState {
34
58
  sourceId: string;
35
59
  sourceCanonicalId: string;
@@ -45,6 +69,7 @@ export interface PageTransferState {
45
69
  destinationFingerprint?: string;
46
70
  status: PageTransferStatus;
47
71
  resources: Record<string, ResourceTransferState>;
72
+ comments?: CommentTransferState;
48
73
  degradations: string[];
49
74
  lastError?: string;
50
75
  updatedAt: string;
@@ -62,10 +87,19 @@ export interface StateRun {
62
87
  finishedAt?: string;
63
88
  status: RunStatus;
64
89
  scope: 'page' | 'subtree' | 'linked';
90
+ sourceStatus: SourceStatus;
65
91
  dryRun: boolean;
66
92
  pages: number;
93
+ returnedDescendants: number;
94
+ selectedDescendants: number;
95
+ excludedPages: number;
96
+ maximumDepth: number;
67
97
  warnings: number;
68
98
  errors: number;
99
+ commentsEnabled?: boolean;
100
+ commentThreads?: number;
101
+ comments?: number;
102
+ commentAttachments?: number;
69
103
  }
70
104
  export interface TransferState {
71
105
  identity: TransferIdentity;
@@ -109,7 +143,13 @@ export declare class StateStore {
109
143
  }): Promise<TransferState>;
110
144
  get value(): TransferState;
111
145
  get loadInfo(): StateLoadInfo;
112
- beginRun(scope: StateRun['scope'], dryRun: boolean): Promise<StateRun>;
146
+ beginRun(scope: StateRun['scope'], dryRun: boolean, sourceStatus?: SourceStatus, commentsEnabled?: boolean): Promise<StateRun>;
147
+ setRunComments(runId: string, counts: {
148
+ threads: number;
149
+ comments: number;
150
+ attachments: number;
151
+ }): Promise<void>;
152
+ setRunSelection(runId: string, selection: SourceSelection): Promise<void>;
113
153
  finishRun(runId: string, status: RunStatus, counts: {
114
154
  pages: number;
115
155
  warnings: number;
package/dist/state.js CHANGED
@@ -83,6 +83,29 @@ const resourceStateSchema = z.object({
83
83
  lastError: z.string().optional(),
84
84
  updatedAt: z.string(),
85
85
  }).strict();
86
+ const commentStateSchema = z.object({
87
+ fingerprint: z.string().optional(),
88
+ destinationId: z.string().optional(),
89
+ destinationFingerprint: z.string().optional(),
90
+ previousDestinationIds: z.array(z.string()).optional(),
91
+ archiveResourceId: z.string().optional(),
92
+ archiveName: z.string().optional(),
93
+ archivePath: z.string().optional(),
94
+ archiveSha256: z.string().optional(),
95
+ fullArchiveResourceId: z.string().optional(),
96
+ fullArchiveName: z.string().optional(),
97
+ fullArchivePath: z.string().optional(),
98
+ fullArchiveSha256: z.string().optional(),
99
+ status: z.enum(['planned', 'complete', 'partial', 'failed', 'conflict', 'stale', 'skipped']),
100
+ threads: z.number().int().nonnegative(),
101
+ comments: z.number().int().nonnegative(),
102
+ participants: z.number().int().nonnegative(),
103
+ attachments: z.number().int().nonnegative(),
104
+ bytes: z.number().int().nonnegative(),
105
+ preview: z.string().optional(),
106
+ lastError: z.string().optional(),
107
+ updatedAt: z.string(),
108
+ }).strict();
86
109
  const pageStateSchema = z.object({
87
110
  sourceId: z.string(),
88
111
  sourceCanonicalId: z.string(),
@@ -98,6 +121,7 @@ const pageStateSchema = z.object({
98
121
  destinationFingerprint: z.string().optional(),
99
122
  status: z.enum(['discovered', 'planned', 'skeleton-created', 'complete', 'partial', 'conflict', 'failed', 'blocked']),
100
123
  resources: z.record(z.string(), resourceStateSchema),
124
+ comments: commentStateSchema.optional(),
101
125
  degradations: z.array(z.string()),
102
126
  lastError: z.string().optional(),
103
127
  updatedAt: z.string(),
@@ -115,10 +139,19 @@ const runSchema = z.object({
115
139
  finishedAt: z.string().optional(),
116
140
  status: z.enum(['running', 'completed', 'completed-with-warnings', 'partial', 'failed', 'cancelled', 'interrupted']),
117
141
  scope: z.enum(['page', 'subtree', 'linked']),
142
+ sourceStatus: z.enum(['all', 'current']).optional().default('all'),
118
143
  dryRun: z.boolean(),
119
144
  pages: z.number().int().nonnegative(),
145
+ returnedDescendants: z.number().int().nonnegative().optional().default(0),
146
+ selectedDescendants: z.number().int().nonnegative().optional().default(0),
147
+ excludedPages: z.number().int().nonnegative().optional().default(0),
148
+ maximumDepth: z.number().int().nonnegative().optional().default(0),
120
149
  warnings: z.number().int().nonnegative(),
121
150
  errors: z.number().int().nonnegative(),
151
+ commentsEnabled: z.boolean().optional(),
152
+ commentThreads: z.number().int().nonnegative().optional(),
153
+ comments: z.number().int().nonnegative().optional(),
154
+ commentAttachments: z.number().int().nonnegative().optional(),
122
155
  }).strict();
123
156
  const transferStateSchema = z.object({
124
157
  identity: transferIdentitySchema,
@@ -219,22 +252,55 @@ export class StateStore {
219
252
  throw new Error('StateStore.load() must be called before accessing load information');
220
253
  return this.info;
221
254
  }
222
- async beginRun(scope, dryRun) {
255
+ async beginRun(scope, dryRun, sourceStatus = 'all', commentsEnabled = true) {
223
256
  const run = {
224
257
  id: randomUUID(),
225
258
  startedAt: new Date().toISOString(),
226
259
  status: 'running',
227
260
  scope,
261
+ sourceStatus,
228
262
  dryRun,
229
263
  pages: 0,
264
+ returnedDescendants: 0,
265
+ selectedDescendants: 0,
266
+ excludedPages: 0,
267
+ maximumDepth: 0,
230
268
  warnings: 0,
231
269
  errors: 0,
270
+ commentsEnabled,
271
+ commentThreads: 0,
272
+ comments: 0,
273
+ commentAttachments: 0,
232
274
  };
233
275
  this.value.runs.push(run);
234
276
  if (!dryRun)
235
277
  await this.save();
236
278
  return run;
237
279
  }
280
+ async setRunComments(runId, counts) {
281
+ const run = this.value.runs.find((candidate) => candidate.id === runId);
282
+ if (!run)
283
+ throw new Error(`State run ${runId} was not initialized`);
284
+ run.commentThreads = counts.threads;
285
+ run.comments = counts.comments;
286
+ run.commentAttachments = counts.attachments;
287
+ if (!this.readOnly)
288
+ await this.save();
289
+ }
290
+ async setRunSelection(runId, selection) {
291
+ const run = this.value.runs.find((candidate) => candidate.id === runId);
292
+ if (!run)
293
+ throw new Error(`State run ${runId} was not initialized`);
294
+ Object.assign(run, {
295
+ sourceStatus: selection.effectiveStatus,
296
+ returnedDescendants: selection.returnedDescendants,
297
+ selectedDescendants: selection.selectedDescendants,
298
+ excludedPages: selection.excluded.length,
299
+ maximumDepth: selection.maximumDepth,
300
+ });
301
+ if (!this.readOnly)
302
+ await this.save();
303
+ }
238
304
  async finishRun(runId, status, counts) {
239
305
  const run = this.value.runs.find((candidate) => candidate.id === runId);
240
306
  if (!run)