@thallylabs/migrate 0.2.40 → 0.2.42

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.
@@ -63,6 +63,8 @@ interface MigrationEvidence {
63
63
  code: Array<string>;
64
64
  anchors: Array<string>;
65
65
  links: Array<string>;
66
+ /** Explicit same-route Markdown alternates, retained to rebuild journal edges. */
67
+ markdownRepresentations?: Array<string>;
66
68
  /** Exact observed canonical/article equality proof; never inferred from query names. */
67
69
  articleIdentity?: {
68
70
  canonicalUrl: string;
@@ -195,6 +197,25 @@ interface MigrationApiGroup {
195
197
  icon?: string;
196
198
  pages: Array<string | MigrationApiGroup>;
197
199
  }
200
+ /**
201
+ * Where an API tab sat in the source navigation, kept for the tab that lists its operations as pages: the tab as the projection
202
+ * built it (label, icon, presentation; no content) and the labels of the tabs before it, nearest first. Its API tab is not in
203
+ * `docsConfig.tabs` until the spec is bound (a remote spec only after its download), so the tab is put back after the first
204
+ * of those that is still there, or first when it had none.
205
+ */
206
+ interface EndpointTabSlot {
207
+ tab: MigrationNavigationTab;
208
+ preceding: Array<string>;
209
+ }
210
+ /**
211
+ * A spec whose `METHOD /path` operations docs.json lists, served by Mintlify as one generated page each at
212
+ * `/<directory>/<first tag>/<summary>`: they become pages of that tab rather than an API-bound tab's operations.
213
+ */
214
+ interface EndpointPagesTarget {
215
+ /** Mintlify's output folder for the generated pages (no surrounding slashes); `api-reference`, Mintlify's default, when docs.json names none. */
216
+ directory: string;
217
+ slot?: EndpointTabSlot;
218
+ }
198
219
  interface MigrationNavigationTab {
199
220
  tab: string;
200
221
  /** Reader-facing label when `tab` includes a version for unique identity. */
@@ -271,10 +292,14 @@ interface MigrationDocsConfig {
271
292
  breadcrumbs?: boolean;
272
293
  /** `path` shows the full group path above the title (Mintlify `styling.eyebrows: "breadcrumbs"`); the default shows the nearest group. */
273
294
  eyebrow?: 'group' | 'path';
295
+ /** `true` renders straight quotes in prose as curly ones, as Mintlify does. */
296
+ smartQuotes?: boolean;
274
297
  tabs: Array<MigrationNavigationTab>;
275
298
  navigation?: {
276
299
  /** How sibling documentation collections are presented to readers. */
277
300
  display?: 'tabs' | 'dropdown';
301
+ /** `all` keeps the heading of a sidebar group named after its tab, as Mintlify does. */
302
+ groupHeadings?: 'all';
278
303
  versions?: Array<{
279
304
  label: string;
280
305
  prefix: string;
@@ -414,13 +439,15 @@ interface MigrationPage {
414
439
  icon?: string;
415
440
  iconType?: 'regular' | 'solid' | 'outline' | 'brands';
416
441
  description: string;
417
- /** Keep SEO/search description without repeating it above Docusaurus body copy. */
418
- descriptionPlacement?: 'body';
442
+ /** Keep the SEO/search summary while prose is already in the body, or comes from the bound operation. */
443
+ descriptionPlacement?: 'body' | 'operation';
419
444
  badge?: string;
420
445
  keywords: Array<string>;
421
446
  mode?: 'default' | 'wide' | 'custom' | 'center' | 'home';
422
447
  hidden?: boolean;
423
448
  noindex?: boolean;
449
+ /** Mintlify frontmatter `url`: a web address the page's sidebar entry leaves for, which the page's own path redirects to. */
450
+ externalUrl?: string;
424
451
  /**
425
452
  * Reader access groups (frontmatter `groups`): trimmed, non-empty names the
426
453
  * runtime matches exactly. The page needs a signed-in reader in one of them.
@@ -477,6 +504,8 @@ interface RemoteApiSpec {
477
504
  groups?: Array<MigrationApiGroup>;
478
505
  /** Every reference sharing the tab lists operations and none survives (all hidden or restricted): no endpoint navigation is generated for it. */
479
506
  navigation?: false;
507
+ /** With `groups`: the listed operations become pages under this directory, in the tab's place, once the spec is downloaded. */
508
+ endpointPages?: EndpointPagesTarget;
480
509
  /** Operation keys (`get /x`) only access-restricted pages document; marked `x-excluded` after download. */
481
510
  withheldOperations?: Array<string>;
482
511
  /** Operation keys published pages or docs.json also name; keeps a shared `$ref` path item public. */
@@ -494,11 +523,14 @@ interface MigrationBundle {
494
523
  * Repository OpenAPI specs docs.json mounts under a `directory` (no surrounding slashes), with the tab each is bound to; the remote ones are in
495
524
  * `remoteApiSpecs[].directories`. Present only alongside remote specs: a spec's id depends on which remote tabs bind ahead of it, so
496
525
  * hydration links the local and remote mounts together once every download has settled, and the links stay as authored until then.
526
+ * `endpointOperations` marks a mount whose listed operations are already pages of the site (those operations, in listed order): its endpoint
527
+ * URLs are those pages, so nothing is redirected from them.
497
528
  */
498
529
  localApiMounts?: Array<{
499
530
  filename: string;
500
531
  directory: string;
501
532
  tab?: string;
533
+ endpointOperations?: Array<string>;
502
534
  }>;
503
535
  /** Customer-owned component source and registry; paths are repository-relative. */
504
536
  componentFiles?: Array<RenderedMigrationFile>;
@@ -580,4 +612,4 @@ declare function validateUrlMigration(checkpoint: UrlMigrationCheckpoint, cancel
580
612
  /** Run capture/conversion in bounded batches and resume only reconciled artifacts. */
581
613
  declare function runUrlMigration(options: UrlMigrationRunOptions): Promise<UrlMigrationRun>;
582
614
 
583
- export { runUrlMigration as A, validateUrlMigration as B, type MigrationPage as M, type RenderedMigrationFile as R, type UrlMigrationCheckpoint as U, type MigrationAsset as a, type MigrationNavigationGroup as b, type MigrationWarning as c, type MigrationFetcher as d, type MigrationPlatform as e, type MigrationBundle as f, type MigrationDocsConfig as g, type MigrationCapture as h, type MigrationCaptureProvider as i, type MigrationCaptureState as j, type MigrationCapturedAsset as k, type MigrationEvidence as l, type MigrationFetchRequest as m, type MigrationFetchResponse as n, type MigrationJournalAsset as o, type MigrationNavigationOccurrence as p, type MigrationNavigationTab as q, type UrlMigrationCheckpointDelta as r, type UrlMigrationIssue as s, type UrlMigrationRecord as t, type UrlMigrationRun as u, type UrlMigrationRunOptions as v, type UrlMigrationValidation as w, classifyMigrationResponse as x, mergeMigrationConfig as y, renderMigrationFiles as z };
615
+ export { runUrlMigration as A, validateUrlMigration as B, type EndpointTabSlot as E, type MigrationPage as M, type RenderedMigrationFile as R, type UrlMigrationCheckpoint as U, type MigrationAsset as a, type MigrationNavigationGroup as b, type MigrationWarning as c, type MigrationFetcher as d, type MigrationPlatform as e, type MigrationBundle as f, type MigrationDocsConfig as g, type MigrationCapture as h, type MigrationCaptureProvider as i, type MigrationCaptureState as j, type MigrationCapturedAsset as k, type MigrationEvidence as l, type MigrationFetchRequest as m, type MigrationFetchResponse as n, type MigrationJournalAsset as o, type MigrationNavigationOccurrence as p, type MigrationNavigationTab as q, type UrlMigrationCheckpointDelta as r, type UrlMigrationIssue as s, type UrlMigrationRecord as t, type UrlMigrationRun as u, type UrlMigrationRunOptions as v, type UrlMigrationValidation as w, classifyMigrationResponse as x, mergeMigrationConfig as y, renderMigrationFiles as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thallylabs/migrate",
3
- "version": "0.2.40",
3
+ "version": "0.2.42",
4
4
  "description": "Shared repository and live-site migration engine for Thally",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -44,6 +44,7 @@
44
44
  "htmlparser2": "^9.1.0",
45
45
  "ignore": "^5.3.2",
46
46
  "json5": "^2.2.3",
47
+ "micromark": "^4.0.2",
47
48
  "postcss": "^8.5.23",
48
49
  "postcss-selector-parser": "^6.1.3",
49
50
  "remark-gfm": "^4.0.1",