@thallylabs/migrate 0.2.40 → 0.2.41

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.
@@ -195,6 +195,25 @@ interface MigrationApiGroup {
195
195
  icon?: string;
196
196
  pages: Array<string | MigrationApiGroup>;
197
197
  }
198
+ /**
199
+ * Where an API tab sat in the source navigation, kept for the tab that lists its operations as pages: the tab as the projection
200
+ * built it (label, icon, presentation; no content) and the labels of the tabs before it, nearest first. Its API tab is not in
201
+ * `docsConfig.tabs` until the spec is bound (a remote spec only after its download), so the tab is put back after the first
202
+ * of those that is still there, or first when it had none.
203
+ */
204
+ interface EndpointTabSlot {
205
+ tab: MigrationNavigationTab;
206
+ preceding: Array<string>;
207
+ }
208
+ /**
209
+ * A spec whose `METHOD /path` operations docs.json lists, served by Mintlify as one generated page each at
210
+ * `/<directory>/<first tag>/<summary>`: they become pages of that tab rather than an API-bound tab's operations.
211
+ */
212
+ interface EndpointPagesTarget {
213
+ /** Mintlify's output folder for the generated pages (no surrounding slashes); `api-reference`, Mintlify's default, when docs.json names none. */
214
+ directory: string;
215
+ slot?: EndpointTabSlot;
216
+ }
198
217
  interface MigrationNavigationTab {
199
218
  tab: string;
200
219
  /** Reader-facing label when `tab` includes a version for unique identity. */
@@ -271,10 +290,14 @@ interface MigrationDocsConfig {
271
290
  breadcrumbs?: boolean;
272
291
  /** `path` shows the full group path above the title (Mintlify `styling.eyebrows: "breadcrumbs"`); the default shows the nearest group. */
273
292
  eyebrow?: 'group' | 'path';
293
+ /** `true` renders straight quotes in prose as curly ones, as Mintlify does. */
294
+ smartQuotes?: boolean;
274
295
  tabs: Array<MigrationNavigationTab>;
275
296
  navigation?: {
276
297
  /** How sibling documentation collections are presented to readers. */
277
298
  display?: 'tabs' | 'dropdown';
299
+ /** `all` keeps the heading of a sidebar group named after its tab, as Mintlify does. */
300
+ groupHeadings?: 'all';
278
301
  versions?: Array<{
279
302
  label: string;
280
303
  prefix: string;
@@ -414,13 +437,15 @@ interface MigrationPage {
414
437
  icon?: string;
415
438
  iconType?: 'regular' | 'solid' | 'outline' | 'brands';
416
439
  description: string;
417
- /** Keep SEO/search description without repeating it above Docusaurus body copy. */
418
- descriptionPlacement?: 'body';
440
+ /** Keep the SEO/search summary while prose is already in the body, or comes from the bound operation. */
441
+ descriptionPlacement?: 'body' | 'operation';
419
442
  badge?: string;
420
443
  keywords: Array<string>;
421
444
  mode?: 'default' | 'wide' | 'custom' | 'center' | 'home';
422
445
  hidden?: boolean;
423
446
  noindex?: boolean;
447
+ /** Mintlify frontmatter `url`: a web address the page's sidebar entry leaves for, which the page's own path redirects to. */
448
+ externalUrl?: string;
424
449
  /**
425
450
  * Reader access groups (frontmatter `groups`): trimmed, non-empty names the
426
451
  * runtime matches exactly. The page needs a signed-in reader in one of them.
@@ -477,6 +502,8 @@ interface RemoteApiSpec {
477
502
  groups?: Array<MigrationApiGroup>;
478
503
  /** Every reference sharing the tab lists operations and none survives (all hidden or restricted): no endpoint navigation is generated for it. */
479
504
  navigation?: false;
505
+ /** With `groups`: the listed operations become pages under this directory, in the tab's place, once the spec is downloaded. */
506
+ endpointPages?: EndpointPagesTarget;
480
507
  /** Operation keys (`get /x`) only access-restricted pages document; marked `x-excluded` after download. */
481
508
  withheldOperations?: Array<string>;
482
509
  /** Operation keys published pages or docs.json also name; keeps a shared `$ref` path item public. */
@@ -494,11 +521,14 @@ interface MigrationBundle {
494
521
  * 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
522
  * `remoteApiSpecs[].directories`. Present only alongside remote specs: a spec's id depends on which remote tabs bind ahead of it, so
496
523
  * hydration links the local and remote mounts together once every download has settled, and the links stay as authored until then.
524
+ * `endpointOperations` marks a mount whose listed operations are already pages of the site (those operations, in listed order): its endpoint
525
+ * URLs are those pages, so nothing is redirected from them.
497
526
  */
498
527
  localApiMounts?: Array<{
499
528
  filename: string;
500
529
  directory: string;
501
530
  tab?: string;
531
+ endpointOperations?: Array<string>;
502
532
  }>;
503
533
  /** Customer-owned component source and registry; paths are repository-relative. */
504
534
  componentFiles?: Array<RenderedMigrationFile>;
@@ -580,4 +610,4 @@ declare function validateUrlMigration(checkpoint: UrlMigrationCheckpoint, cancel
580
610
  /** Run capture/conversion in bounded batches and resume only reconciled artifacts. */
581
611
  declare function runUrlMigration(options: UrlMigrationRunOptions): Promise<UrlMigrationRun>;
582
612
 
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 };
613
+ 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.41",
4
4
  "description": "Shared repository and live-site migration engine for Thally",
5
5
  "type": "module",
6
6
  "publishConfig": {