@thallylabs/migrate 0.2.27 → 0.2.29
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 +50 -0
- package/dist/index.d.ts +4 -360
- package/dist/index.js +1288 -33
- package/dist/index.js.map +1 -1
- package/dist/svg-policy.d.ts +16 -0
- package/dist/svg-policy.js +308 -0
- package/dist/svg-policy.js.map +1 -0
- package/dist/url-migration-CDjLZVaN.d.ts +512 -0
- package/dist/url-migration.d.ts +1 -0
- package/dist/url-migration.js +3872 -0
- package/dist/url-migration.js.map +1 -0
- package/package.json +13 -2
package/README.md
CHANGED
|
@@ -4,6 +4,56 @@ The shared migration engine used by the Thally CLI, MCP server, and Thally
|
|
|
4
4
|
Cloud. It imports documentation repositories and public documentation URLs
|
|
5
5
|
into one canonical bundle before any caller writes files.
|
|
6
6
|
|
|
7
|
+
`runUrlMigration` adds an evidence-bearing, resumable URL path. It accepts a
|
|
8
|
+
provider-neutral `captureProvider` (rendered HTML, read-only alternative states,
|
|
9
|
+
ordered navigation and binary assets), or uses ordinary local fetching. Hosted
|
|
10
|
+
callers must inject their own network-safe text/capture and binary boundaries.
|
|
11
|
+
No browser, model, credentials, sandbox or publishing provider is bundled here.
|
|
12
|
+
|
|
13
|
+
Server applications should import `@thallylabs/migrate/svg-policy` for the passive
|
|
14
|
+
SVG validator, or `@thallylabs/migrate/url-migration` for the URL runner, renderer
|
|
15
|
+
and their types. These independent entries avoid tracing repository cloning and
|
|
16
|
+
filesystem discovery into application routes. The root entry remains compatible.
|
|
17
|
+
|
|
18
|
+
The returned `checkpoint` is JSON-safe. `onRecord` lets a host persist a completed
|
|
19
|
+
page before acknowledging it; `onCheckpoint` emits bounded deltas, including
|
|
20
|
+
pending discoveries and checkpoint identity fields. Merge delta records by URL,
|
|
21
|
+
then pass the reconstructed checkpoint back to resume. Converted page and asset
|
|
22
|
+
hashes are checked before reuse, and `reconcile` verifies externally stored
|
|
23
|
+
artifacts. Capture adapters should persist raw source/state evidence before
|
|
24
|
+
returning an `artifactRef`. `maxCaptures` bounds a continuation; `signal` cancels
|
|
25
|
+
capture and returns committed progress. Failed pages retry on resume by default.
|
|
26
|
+
|
|
27
|
+
Page limits support 1–10,000 pages (default 1,000). This interface limit does not
|
|
28
|
+
establish that an arbitrary site can be imported completely. Every inventory
|
|
29
|
+
entry has an explicit outcome; pending/failed pages, missing anchors, technical
|
|
30
|
+
payload differences, unavailable assets and unsupported interactive components
|
|
31
|
+
make validation partial. Raster/PDF assets require matching MIME and signatures;
|
|
32
|
+
SVG must pass the exported `isPassiveSvg` policy: static drawing elements with
|
|
33
|
+
only in-document references, no scripts, external resources, styles or animations.
|
|
34
|
+
Rejected SVG and executable downloads are reported for review.
|
|
35
|
+
Responsive `picture`/`source`/`img` choices retain their descriptors, media
|
|
36
|
+
conditions, sizing and literal alt text. Every candidate is localized; shared
|
|
37
|
+
asset URLs are fetched once and identical payloads count once toward the byte
|
|
38
|
+
budget, including resumed journals. Complete static tab panels are preserved as
|
|
39
|
+
alternatives; empty/lazy panels still require a capture provider.
|
|
40
|
+
Observed locale metadata and URL prefixes are projected onto the runtime layout:
|
|
41
|
+
primary-language files are unprefixed and secondary-language files retain their
|
|
42
|
+
locale prefix. A single-language localized site uses that language as primary.
|
|
43
|
+
Missing primary counterparts and projected path collisions require review; the
|
|
44
|
+
engine does not invent translations. Fresh HTML captures also observe `html lang`; conflicting or unsupported
|
|
45
|
+
language evidence requires review. Capture adapters can supply `locale` when
|
|
46
|
+
no language is declared in HTML or identified by the scoped URL path.
|
|
47
|
+
The `url-evidence-v2` converter rejects earlier journals: replay retained raw
|
|
48
|
+
captures into a new journal rather than relabelling previously hashed pages.
|
|
49
|
+
|
|
50
|
+
`stopReason` distinguishes a resumable `capture-limit` from hard `page-limit`
|
|
51
|
+
or `byte-limit` outcomes. Hosts must not automatically retry a hard limit as an
|
|
52
|
+
unfinished capture slice. Discovery indexes drain independently of article caps.
|
|
53
|
+
Source validation remains independent of generated-site build/browser checks.
|
|
54
|
+
The CLI's programmatic `migrateDocs({ urlMigration: { ... } })` path retains
|
|
55
|
+
those source validation results in its migration report.
|
|
56
|
+
|
|
7
57
|
Repository migration includes dedicated Mintlify and Docusaurus adapters.
|
|
8
58
|
Mintlify repositories are located inside monorepos automatically. Their
|
|
9
59
|
`docs.json`/`mint.json` page and group trees are projected without flattening
|
package/dist/index.d.ts
CHANGED
|
@@ -1,352 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* normalization finish, so a partial crawl can never leave a half-written site.
|
|
5
|
-
*/
|
|
6
|
-
type MigrationPlatform = 'mintlify' | 'docusaurus' | 'fern' | 'gitbook' | 'nextra' | 'vitepress' | 'starlight' | 'thally' | 'generic' | 'unknown';
|
|
7
|
-
interface MigrationNavigationGroup {
|
|
8
|
-
defaultOpen?: boolean;
|
|
9
|
-
group: string;
|
|
10
|
-
icon?: string;
|
|
11
|
-
hidden?: boolean;
|
|
12
|
-
pages: Array<string | MigrationNavigationGroup>;
|
|
13
|
-
}
|
|
14
|
-
interface MigrationNavigationTab {
|
|
15
|
-
tab: string;
|
|
16
|
-
/** Reader-facing label when `tab` includes a version for unique identity. */
|
|
17
|
-
displayLabel?: string;
|
|
18
|
-
version?: string;
|
|
19
|
-
description?: string;
|
|
20
|
-
icon?: string;
|
|
21
|
-
href?: string;
|
|
22
|
-
hidden?: boolean;
|
|
23
|
-
/** Root page/group nodes used when the source has no synthetic section heading. */
|
|
24
|
-
pages?: Array<string | MigrationNavigationGroup>;
|
|
25
|
-
groups?: Array<MigrationNavigationGroup>;
|
|
26
|
-
api?: {
|
|
27
|
-
source: string;
|
|
28
|
-
navigation?: boolean;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
interface MigrationBannerConfig {
|
|
32
|
-
content: string | Record<string, string>;
|
|
33
|
-
dismissible?: boolean;
|
|
34
|
-
id?: string;
|
|
35
|
-
revision?: string;
|
|
36
|
-
type?: 'info' | 'warning' | 'critical';
|
|
37
|
-
color?: {
|
|
38
|
-
light?: string;
|
|
39
|
-
dark?: string;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
interface MigrationNavbarConfig {
|
|
43
|
-
links?: Array<{
|
|
44
|
-
label: string;
|
|
45
|
-
href: string;
|
|
46
|
-
type?: 'github';
|
|
47
|
-
button?: {
|
|
48
|
-
background: string;
|
|
49
|
-
color?: string;
|
|
50
|
-
};
|
|
51
|
-
}>;
|
|
52
|
-
/** Explicit null suppresses the starter's sample call to action. */
|
|
53
|
-
primary?: {
|
|
54
|
-
label: string;
|
|
55
|
-
href: string;
|
|
56
|
-
type?: 'github';
|
|
57
|
-
} | null;
|
|
58
|
-
/** Local public assets used until an owner uploads a brand replacement. */
|
|
59
|
-
/** Explicit null requests a text-only brand when the source has no logo. */
|
|
60
|
-
logo?: {
|
|
61
|
-
light: string;
|
|
62
|
-
dark?: string;
|
|
63
|
-
showTitle?: boolean;
|
|
64
|
-
rightText?: string;
|
|
65
|
-
} | null;
|
|
66
|
-
}
|
|
67
|
-
interface MigrationFooterConfig {
|
|
68
|
-
socials?: Record<string, string>;
|
|
69
|
-
/** Literal footer attribution; `{year}` is resolved by the site at render time. */
|
|
70
|
-
copyright?: string;
|
|
71
|
-
links?: Array<{
|
|
72
|
-
heading: string;
|
|
73
|
-
items: Array<{
|
|
74
|
-
label: string;
|
|
75
|
-
href: string;
|
|
76
|
-
}>;
|
|
77
|
-
}>;
|
|
78
|
-
}
|
|
79
|
-
interface MigrationDocsConfig {
|
|
80
|
-
markdown?: {
|
|
81
|
-
enabled?: boolean;
|
|
82
|
-
};
|
|
83
|
-
/** Local site-authored CSS projected from a source docs site, served from public/. */
|
|
84
|
-
stylesheets?: Array<string>;
|
|
85
|
-
/** `false` hides the breadcrumb trail; Mintlify pages show only a group eyebrow. */
|
|
86
|
-
breadcrumbs?: boolean;
|
|
87
|
-
tabs: Array<MigrationNavigationTab>;
|
|
88
|
-
navigation?: {
|
|
89
|
-
/** How sibling documentation collections are presented to readers. */
|
|
90
|
-
display?: 'tabs' | 'dropdown';
|
|
91
|
-
versions?: Array<{
|
|
92
|
-
label: string;
|
|
93
|
-
prefix: string;
|
|
94
|
-
href: string;
|
|
95
|
-
default?: boolean;
|
|
96
|
-
hidden?: boolean;
|
|
97
|
-
}>;
|
|
98
|
-
shortcuts?: Array<{
|
|
99
|
-
label: string;
|
|
100
|
-
href: string;
|
|
101
|
-
icon?: string;
|
|
102
|
-
}>;
|
|
103
|
-
};
|
|
104
|
-
theme?: 'default' | 'maple' | 'sharp' | 'minimal';
|
|
105
|
-
appearance?: {
|
|
106
|
-
default?: 'system' | 'light' | 'dark';
|
|
107
|
-
showToggle?: boolean;
|
|
108
|
-
};
|
|
109
|
-
background?: {
|
|
110
|
-
image?: string;
|
|
111
|
-
imageDark?: string;
|
|
112
|
-
decoration?: 'none' | 'grid' | 'gradient';
|
|
113
|
-
};
|
|
114
|
-
/** Icon set for content `icon` names; Mintlify's `icons.library` carries through. */
|
|
115
|
-
contextual?: {
|
|
116
|
-
options?: Array<string>;
|
|
117
|
-
};
|
|
118
|
-
colors?: Partial<Record<'light' | 'dark', {
|
|
119
|
-
primary?: string;
|
|
120
|
-
accent?: string;
|
|
121
|
-
}>>;
|
|
122
|
-
icons?: {
|
|
123
|
-
library?: 'lucide' | 'fontawesome' | 'tabler';
|
|
124
|
-
};
|
|
125
|
-
banner?: MigrationBannerConfig;
|
|
126
|
-
navbar?: MigrationNavbarConfig;
|
|
127
|
-
favicon?: {
|
|
128
|
-
light: string;
|
|
129
|
-
dark?: string;
|
|
130
|
-
};
|
|
131
|
-
footer?: MigrationFooterConfig;
|
|
132
|
-
seo?: {
|
|
133
|
-
indexing?: 'navigable' | 'all';
|
|
134
|
-
titleSeparator?: string;
|
|
135
|
-
sitemap?: 'navigable';
|
|
136
|
-
metatags?: Record<string, string>;
|
|
137
|
-
};
|
|
138
|
-
fonts?: {
|
|
139
|
-
body?: {
|
|
140
|
-
family: string;
|
|
141
|
-
weight?: Array<string>;
|
|
142
|
-
};
|
|
143
|
-
heading?: {
|
|
144
|
-
family: string;
|
|
145
|
-
weight?: Array<string>;
|
|
146
|
-
};
|
|
147
|
-
};
|
|
148
|
-
feedback?: {
|
|
149
|
-
thumbsRating?: boolean;
|
|
150
|
-
};
|
|
151
|
-
customScripts?: Array<{
|
|
152
|
-
src: string;
|
|
153
|
-
strategy?: 'beforeInteractive' | 'afterInteractive' | 'lazyOnload';
|
|
154
|
-
}>;
|
|
155
|
-
ai?: {
|
|
156
|
-
chat?: boolean;
|
|
157
|
-
label?: string;
|
|
158
|
-
icon?: string;
|
|
159
|
-
};
|
|
160
|
-
admin?: {
|
|
161
|
-
enabled?: boolean;
|
|
162
|
-
};
|
|
163
|
-
analytics?: {
|
|
164
|
-
enabled?: boolean;
|
|
165
|
-
};
|
|
166
|
-
/** Manual API pages: default server(s) and auth for `api:` frontmatter pages. */
|
|
167
|
-
api?: {
|
|
168
|
-
mdx?: {
|
|
169
|
-
server?: string | Array<string>;
|
|
170
|
-
auth?: {
|
|
171
|
-
method?: 'bearer' | 'basic' | 'key';
|
|
172
|
-
name?: string;
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
/** Mintlify `api.playground.display`; `auth` is carried as `simple`. */
|
|
176
|
-
playground?: {
|
|
177
|
-
display: 'interactive' | 'simple' | 'none';
|
|
178
|
-
};
|
|
179
|
-
/** `false` hides the visible "OpenAPI specification" line; Mintlify does not show it. */
|
|
180
|
-
specLink?: boolean;
|
|
181
|
-
};
|
|
182
|
-
/** Third-party analytics in Mintlify's `integrations` shape; validated again by the renderer. */
|
|
183
|
-
integrations?: {
|
|
184
|
-
ga4?: {
|
|
185
|
-
measurementId: string;
|
|
186
|
-
};
|
|
187
|
-
gtm?: {
|
|
188
|
-
tagId: string;
|
|
189
|
-
};
|
|
190
|
-
posthog?: {
|
|
191
|
-
apiKey: string;
|
|
192
|
-
apiHost?: string;
|
|
193
|
-
sessionRecording?: boolean;
|
|
194
|
-
};
|
|
195
|
-
plausible?: {
|
|
196
|
-
domain: string;
|
|
197
|
-
server?: string;
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
|
-
redirects?: Array<{
|
|
201
|
-
source: string;
|
|
202
|
-
destination: string;
|
|
203
|
-
permanent?: boolean;
|
|
204
|
-
}>;
|
|
205
|
-
i18n?: {
|
|
206
|
-
defaultLocale: string;
|
|
207
|
-
locales: Array<{
|
|
208
|
-
code: string;
|
|
209
|
-
label: string;
|
|
210
|
-
}>;
|
|
211
|
-
/** Source-authored navigation labels and ordering for each translation. */
|
|
212
|
-
navigation?: Record<string, Array<MigrationNavigationTab>>;
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
interface MigrationPage {
|
|
216
|
-
/** Path below `src/content`, without the `.mdx` extension. */
|
|
217
|
-
id: string;
|
|
218
|
-
/** Locale-independent page id used by the shared navigation projection. */
|
|
219
|
-
navigationId: string;
|
|
220
|
-
locale?: string;
|
|
221
|
-
title: string;
|
|
222
|
-
/** Authored display H1 when the source uses a different metadata title. */
|
|
223
|
-
headingTitle?: string;
|
|
224
|
-
navTitle?: string;
|
|
225
|
-
/** Sidebar icon name or image URL from page frontmatter, with its optional style. */
|
|
226
|
-
icon?: string;
|
|
227
|
-
iconType?: 'regular' | 'solid' | 'outline' | 'brands';
|
|
228
|
-
description: string;
|
|
229
|
-
/** Keep SEO/search description without repeating it above Docusaurus body copy. */
|
|
230
|
-
descriptionPlacement?: 'body';
|
|
231
|
-
badge?: string;
|
|
232
|
-
keywords: Array<string>;
|
|
233
|
-
mode?: 'default' | 'wide' | 'custom' | 'center' | 'home';
|
|
234
|
-
hidden?: boolean;
|
|
235
|
-
noindex?: boolean;
|
|
236
|
-
/**
|
|
237
|
-
* Reader access groups (frontmatter `groups`): trimmed, non-empty names the
|
|
238
|
-
* runtime matches exactly. The page needs a signed-in reader in one of them.
|
|
239
|
-
*/
|
|
240
|
-
groups?: Array<string>;
|
|
241
|
-
/** Frontmatter `public`: `true` opens the page to anyone, `false` needs any signed-in reader. */
|
|
242
|
-
public?: boolean;
|
|
243
|
-
/** Social/SEO overrides from `og:*` and `twitter:*` frontmatter, keyed by the migrated frontmatter field. */
|
|
244
|
-
meta?: Partial<Record<'ogTitle' | 'ogDescription' | 'ogImage' | 'twitterTitle' | 'twitterDescription' | 'twitterImage', string>>;
|
|
245
|
-
/** OpenAPI operation key rendered by Thally instead of ordinary MDX. */
|
|
246
|
-
openapi?: string;
|
|
247
|
-
/** Manual API page: `METHOD <url-or-path>`; rendered by Thally's playground. */
|
|
248
|
-
api?: string;
|
|
249
|
-
/** Page-level playground auth override: bearer | basic | key | none. */
|
|
250
|
-
authMethod?: string;
|
|
251
|
-
/** Page-level `playground` override: interactive | simple | none (`auth` becomes `simple`). */
|
|
252
|
-
playground?: 'interactive' | 'simple' | 'none';
|
|
253
|
-
body: string;
|
|
254
|
-
source: string;
|
|
255
|
-
/** Set when the page's frontmatter was invalid YAML; the page is kept with a best-effort salvage. */
|
|
256
|
-
frontmatterError?: string;
|
|
257
|
-
}
|
|
258
|
-
interface MigrationAsset {
|
|
259
|
-
/** Path below `public` (or below the project root when `projectRelative`), always normalized and traversal-free. */
|
|
260
|
-
path: string;
|
|
261
|
-
content: Uint8Array;
|
|
262
|
-
/** Write at the project root instead of `public/`, so the host never serves it statically. */
|
|
263
|
-
projectRelative?: boolean;
|
|
264
|
-
}
|
|
265
|
-
interface MigrationWarning {
|
|
266
|
-
code: 'collision' | 'invalid-page' | 'missing-page' | 'unsupported-config' | 'limit-reached' | 'fetch-failed' | 'skipped-file'
|
|
267
|
-
/** Access-restricted source content: migrated with access rules, withheld (quarantined), or a site-wide auth risk. */
|
|
268
|
-
| 'gated-page';
|
|
269
|
-
message: string;
|
|
270
|
-
source?: string;
|
|
271
|
-
}
|
|
272
|
-
/** A repository-configured remote OpenAPI spec, downloaded after the bundle is built. */
|
|
273
|
-
interface RemoteApiSpec {
|
|
274
|
-
url: string;
|
|
275
|
-
tabLabel?: string;
|
|
276
|
-
parentTab?: string;
|
|
277
|
-
icon?: string;
|
|
278
|
-
hidden?: boolean;
|
|
279
|
-
/** Operation keys (`get /x`) only access-restricted pages document; marked `x-excluded` after download. */
|
|
280
|
-
withheldOperations?: Array<string>;
|
|
281
|
-
/** Operation keys published pages or docs.json also name; keeps a shared `$ref` path item public. */
|
|
282
|
-
keptOperations?: Array<string>;
|
|
283
|
-
}
|
|
284
|
-
interface MigrationBundle {
|
|
285
|
-
sourceUrl: string;
|
|
286
|
-
sourceKind: 'repository' | 'url';
|
|
287
|
-
platform: MigrationPlatform;
|
|
288
|
-
pages: Array<MigrationPage>;
|
|
289
|
-
assets: Array<MigrationAsset>;
|
|
290
|
-
/** Repository-configured remote specs awaiting a bounded network fetch by the host. */
|
|
291
|
-
remoteApiSpecs?: Array<RemoteApiSpec>;
|
|
292
|
-
/** Customer-owned component source and registry; paths are repository-relative. */
|
|
293
|
-
componentFiles?: Array<RenderedMigrationFile>;
|
|
294
|
-
/**
|
|
295
|
-
* Restricted content that cannot be published safely (pages whose access
|
|
296
|
-
* rules are malformed or contradictory, and assets used only by restricted
|
|
297
|
-
* pages), written outside every published path.
|
|
298
|
-
*/
|
|
299
|
-
quarantinedFiles?: Array<RenderedMigrationFile>;
|
|
300
|
-
/** Access-restricted pages the file limit dropped: neither published nor saved in quarantinedFiles. */
|
|
301
|
-
droppedGatedPages?: number;
|
|
302
|
-
/** Mintlify `sourceRef` repositories imported under a mount path, with their page counts. */
|
|
303
|
-
sourceRefs?: Array<{
|
|
304
|
-
repo: string;
|
|
305
|
-
mountPath: string;
|
|
306
|
-
pages: number;
|
|
307
|
-
}>;
|
|
308
|
-
docsConfig: MigrationDocsConfig;
|
|
309
|
-
site?: {
|
|
310
|
-
name?: string;
|
|
311
|
-
description?: string;
|
|
312
|
-
/**
|
|
313
|
-
* Source theme accent color(s), each a `#rrggbb`/`#rgb` hex string.
|
|
314
|
-
* Follows Mintlify's own `colors` schema: `light` is the color used in
|
|
315
|
-
* dark mode and `dark` is the color used in light mode. Fern's colors
|
|
316
|
-
* are normal (its `light`/`dark` match the mode they paint), so
|
|
317
|
-
* extraction swaps them onto this shape for a single downstream contract.
|
|
318
|
-
*/
|
|
319
|
-
colors?: {
|
|
320
|
-
primary?: string;
|
|
321
|
-
light?: string;
|
|
322
|
-
dark?: string;
|
|
323
|
-
};
|
|
324
|
-
};
|
|
325
|
-
warnings: Array<MigrationWarning>;
|
|
326
|
-
stats: {
|
|
327
|
-
discovered: number;
|
|
328
|
-
imported: number;
|
|
329
|
-
skipped: number;
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
interface MigrationFetchRequest {
|
|
333
|
-
accept: string;
|
|
334
|
-
}
|
|
335
|
-
interface MigrationFetchResponse {
|
|
336
|
-
finalUrl: URL;
|
|
337
|
-
body: string;
|
|
338
|
-
contentType: string;
|
|
339
|
-
headers?: Record<string, string | undefined>;
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Network boundary injected by each host. Thally Cloud supplies a DNS-pinned,
|
|
343
|
-
* SSRF-safe implementation; the local CLI uses the user's normal network.
|
|
344
|
-
*/
|
|
345
|
-
type MigrationFetcher = (url: URL, request: MigrationFetchRequest) => Promise<MigrationFetchResponse>;
|
|
346
|
-
interface RenderedMigrationFile {
|
|
347
|
-
path: string;
|
|
348
|
-
content: string | Uint8Array;
|
|
349
|
-
}
|
|
1
|
+
import { M as MigrationPage, a as MigrationAsset, b as MigrationNavigationGroup, R as RenderedMigrationFile, c as MigrationWarning, d as MigrationFetcher, e as MigrationPlatform, f as MigrationBundle, g as MigrationDocsConfig } from './url-migration-CDjLZVaN.js';
|
|
2
|
+
export { h as MigrationCapture, i as MigrationCaptureProvider, j as MigrationCaptureState, k as MigrationCapturedAsset, l as MigrationEvidence, m as MigrationFetchRequest, n as MigrationFetchResponse, o as MigrationJournalAsset, p as MigrationNavigationOccurrence, q as MigrationNavigationTab, U as UrlMigrationCheckpoint, r as UrlMigrationCheckpointDelta, s as UrlMigrationIssue, t as UrlMigrationRecord, u as UrlMigrationRun, v as UrlMigrationRunOptions, w as UrlMigrationValidation, x as classifyMigrationResponse, y as mergeMigrationConfig, z as renderMigrationFiles, A as runUrlMigration, B as validateUrlMigration } from './url-migration-CDjLZVaN.js';
|
|
3
|
+
export { isPassiveSvg } from './svg-policy.js';
|
|
350
4
|
|
|
351
5
|
/**
|
|
352
6
|
* Mintlify `sourceRef` navigation nodes mount the docs of another repository
|
|
@@ -673,16 +327,6 @@ declare function projectMintlifyIntegrations(config: Record<string, unknown>): {
|
|
|
673
327
|
*/
|
|
674
328
|
declare function validateIntegrations(integrations: unknown): Array<string>;
|
|
675
329
|
|
|
676
|
-
/** Render canonical migration bundles into a portable Thally repository tree. */
|
|
677
|
-
|
|
678
|
-
/** Merge imported tabs into an existing site without duplicating changelog tabs. */
|
|
679
|
-
declare function mergeMigrationConfig(existing: MigrationDocsConfig, incoming: MigrationDocsConfig): MigrationDocsConfig;
|
|
680
|
-
/** Materialize every canonical page, asset, and config as repository file changes. */
|
|
681
|
-
declare function renderMigrationFiles(bundle: MigrationBundle, options?: {
|
|
682
|
-
existingConfig?: MigrationDocsConfig;
|
|
683
|
-
existingComponentRegistry?: string;
|
|
684
|
-
}): Array<RenderedMigrationFile>;
|
|
685
|
-
|
|
686
330
|
/**
|
|
687
331
|
* Public URL adapter for the shared migration engine. Discovery prefers
|
|
688
332
|
* machine-readable Markdown and sitemaps, remains scoped to the submitted docs
|
|
@@ -712,4 +356,4 @@ declare function migrateUrl(options: UrlMigrationOptions): Promise<MigrationBund
|
|
|
712
356
|
*/
|
|
713
357
|
declare function hydrateRemoteApiSpecs(bundle: MigrationBundle, fetcher?: MigrationFetcher): Promise<MigrationBundle>;
|
|
714
358
|
|
|
715
|
-
export { type GitHubRepositorySource,
|
|
359
|
+
export { type GitHubRepositorySource, MigrationAsset, MigrationBundle, MigrationDocsConfig, MigrationFetcher, MigrationNavigationGroup, MigrationPage, MigrationPlatform, MigrationWarning, RenderedMigrationFile, type RepositoryMigrationOptions, SOURCE_REF_MAX_BYTES, SOURCE_REF_MAX_FILES, SOURCE_REF_MAX_REPOSITORY_KB, type SourceRefImport, type SourceRefMapping, type UrlMigrationOptions, addMintlifyDirectoryRedirects, buildNavigationFromPages, cloneGitHubRepository, defaultMigrationFetcher, detectRepositoryDocsDir, detectRepositoryPlatform, gitmodulePaths, hydrateRemoteApiSpecs, importSourceRef, migrateRepository, migrateUrl, normalizeMdx, parseGitHubRepositoryUrl, parseMarkdownPage, parseSourceRefFlags, projectFernNavigation, projectMintlifyIntegrations, projectMintlifyNavigation, pruneMissingNavigationPages, readFernConfig, readMintlifyConfig, sourceRefOversizeReason, validateIntegrations, validateMigrationUrl };
|