@thallylabs/migrate 0.2.38 → 0.2.40
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/README.md +58 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +8707 -6632
- package/dist/index.js.map +1 -1
- package/dist/svg-policy.js +6 -0
- package/dist/svg-policy.js.map +1 -1
- package/dist/url-migration.d.ts +11 -1
- package/dist/url-migration.js +2220 -148
- package/dist/url-migration.js.map +1 -1
- package/dist/{url-migration-peVzTLjL.d.ts → url-run-DFnoqEi-.d.ts} +25 -1
- package/package.json +1 -1
|
@@ -7,6 +7,8 @@ interface MigrationNavigationOccurrence {
|
|
|
7
7
|
label: string;
|
|
8
8
|
/** Structured source roles retain top-level tabs separately from sidebar groups. */
|
|
9
9
|
kind?: 'tab' | 'group' | 'page';
|
|
10
|
+
/** Authored collection switchers retain their dropdown presentation. */
|
|
11
|
+
presentation?: 'dropdown';
|
|
10
12
|
/** A localized collection never merges with a same-named collection in another language. */
|
|
11
13
|
locale?: string;
|
|
12
14
|
url?: string;
|
|
@@ -22,6 +24,12 @@ interface MigrationCapturedAsset {
|
|
|
22
24
|
url: string;
|
|
23
25
|
contentType: string;
|
|
24
26
|
content: Uint8Array;
|
|
27
|
+
/** A trusted fetch boundary proved the original asset is already absent. */
|
|
28
|
+
unavailable?: {
|
|
29
|
+
status: 404 | 410;
|
|
30
|
+
};
|
|
31
|
+
/** Original SVG digest when a trusted host supplied an inert PNG rendering. */
|
|
32
|
+
derivedFromSha256?: string;
|
|
25
33
|
}
|
|
26
34
|
interface MigrationCapture extends MigrationFetchResponse {
|
|
27
35
|
/** Capture adapters expand only safe read-only states; no forms or API actions. */
|
|
@@ -55,6 +63,12 @@ interface MigrationEvidence {
|
|
|
55
63
|
code: Array<string>;
|
|
56
64
|
anchors: Array<string>;
|
|
57
65
|
links: Array<string>;
|
|
66
|
+
/** Exact observed canonical/article equality proof; never inferred from query names. */
|
|
67
|
+
articleIdentity?: {
|
|
68
|
+
canonicalUrl: string;
|
|
69
|
+
articleSha256: string;
|
|
70
|
+
sectionAnchor?: string;
|
|
71
|
+
};
|
|
58
72
|
}
|
|
59
73
|
interface MigrationJournalAsset {
|
|
60
74
|
url: string;
|
|
@@ -63,6 +77,8 @@ interface MigrationJournalAsset {
|
|
|
63
77
|
sha256: string;
|
|
64
78
|
/** Base64 keeps checkpoints portable through JSON persistence. */
|
|
65
79
|
base64: string;
|
|
80
|
+
/** Binds an optional trusted SVG rasterization to the original source bytes. */
|
|
81
|
+
derivedFromSha256?: string;
|
|
66
82
|
}
|
|
67
83
|
interface UrlMigrationRecord {
|
|
68
84
|
url: string;
|
|
@@ -70,6 +86,10 @@ interface UrlMigrationRecord {
|
|
|
70
86
|
outcome: 'pending' | 'imported' | 'excluded' | 'failed' | 'alias';
|
|
71
87
|
reason?: string;
|
|
72
88
|
aliasOf?: string;
|
|
89
|
+
/** A proven query section is projected to its captured article anchor. */
|
|
90
|
+
aliasAnchor?: string;
|
|
91
|
+
/** Observed redirect destination; external pages are links, never captured articles. */
|
|
92
|
+
redirectTo?: string;
|
|
73
93
|
/** Publisher-declared Markdown representation of this exact same-origin article. */
|
|
74
94
|
representationOf?: string;
|
|
75
95
|
/** Complete inert API schema observed at a declared same-route Markdown representation. */
|
|
@@ -82,6 +102,8 @@ interface UrlMigrationRecord {
|
|
|
82
102
|
page?: MigrationPage;
|
|
83
103
|
pageSha256?: string;
|
|
84
104
|
assets?: Array<MigrationJournalAsset>;
|
|
105
|
+
/** Proven source defects are retained for review without hiding import failures. */
|
|
106
|
+
warnings?: Array<UrlMigrationIssue>;
|
|
85
107
|
version?: string;
|
|
86
108
|
issues?: Array<UrlMigrationIssue>;
|
|
87
109
|
}
|
|
@@ -105,7 +127,7 @@ interface UrlMigrationCheckpointDelta {
|
|
|
105
127
|
navigation?: Array<MigrationNavigationOccurrence>;
|
|
106
128
|
}
|
|
107
129
|
interface UrlMigrationIssue {
|
|
108
|
-
code: 'missing-page' | 'missing-anchor' | 'source-link-warning' | 'code-mismatch' | 'asset-failed' | 'unsafe-content' | 'unsupported-component' | 'navigation-missing' | 'collision';
|
|
130
|
+
code: 'missing-page' | 'missing-anchor' | 'source-link-warning' | 'source-asset-warning' | 'code-mismatch' | 'asset-failed' | 'unsafe-content' | 'unsupported-component' | 'navigation-missing' | 'collision';
|
|
109
131
|
source: string;
|
|
110
132
|
message: string;
|
|
111
133
|
}
|
|
@@ -135,6 +157,8 @@ interface UrlMigrationRunOptions {
|
|
|
135
157
|
fetcher?: MigrationFetcher;
|
|
136
158
|
/** Hosts that inject text fetching must also inject their safe binary boundary. */
|
|
137
159
|
assetFetcher?: (url: URL, signal?: AbortSignal) => Promise<MigrationCapturedAsset>;
|
|
160
|
+
/** Optional trusted, offline SVG renderer. Unsupported SVG stays rejected by default. */
|
|
161
|
+
rasterizeSvg?: (asset: MigrationCapturedAsset, signal?: AbortSignal) => Promise<MigrationCapturedAsset>;
|
|
138
162
|
captureProvider?: MigrationCaptureProvider;
|
|
139
163
|
/** Change this when browser/extraction policy changes; prevents stale reuse. */
|
|
140
164
|
captureVersion?: string;
|