@mintlify/prebuild 1.0.1523 → 1.0.1525

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.
@@ -1,4 +1,4 @@
1
- import { isSdkFrontmatterValue, parseFrontmatter, parseSdkTargetFromMetadata, toPosixPath, } from '@mintlify/common';
1
+ import { isObject, isSdkFrontmatterValue, parseFrontmatter, parseSdkTargetFromMetadata, toPosixPath, } from '@mintlify/common';
2
2
  import { generateSdkReference, renderSdkTarget, } from '@mintlify/scraping';
3
3
  import { Unzip, UnzipInflate } from 'fflate';
4
4
  import fse from 'fs-extra';
@@ -115,6 +115,8 @@ function expandSdkGroups(reference, directory) {
115
115
  const pageBySlug = new Map(reference.pages.map((page) => [page.slug, page]));
116
116
  const groups = reference.groups.map((group) => prefixSdkGroup(group, directory));
117
117
  const groupedSlugs = collectSdkGroupSlugs(reference.groups);
118
+ if (reference.overview)
119
+ groupedSlugs.add(reference.overview);
118
120
  const orphanedSlugs = reference.pages
119
121
  .filter((page) => !page.target?.parent)
120
122
  .map((page) => page.slug)
@@ -160,7 +162,12 @@ export async function generateSdkDivisionsFromDocsConfig(docsConfig, loadReferen
160
162
  for (const page of topLevelPages) {
161
163
  rememberGenerated(toGeneratedPage(page, config, directory, referenceSlugs, true));
162
164
  }
163
- return { groups: expandSdkGroups({ ...reference, pages: topLevelPages }, directory) };
165
+ return {
166
+ groups: expandSdkGroups({ ...reference, pages: topLevelPages }, directory),
167
+ overview: reference.overview && referenceSlugs.has(reference.overview)
168
+ ? [path.posix.join(directory, reference.overview)]
169
+ : [],
170
+ };
164
171
  }
165
172
  async function processPages(pages, inherited) {
166
173
  if (!Array.isArray(pages))
@@ -196,23 +203,32 @@ export async function generateSdkDivisionsFromDocsConfig(docsConfig, loadReferen
196
203
  if (ownSdk && (isTab || isGroup)) {
197
204
  const skipBulk = hasExplicitSdkPages(node, pageMetadataBySlug, ownSdk);
198
205
  if (!skipBulk) {
199
- const { groups } = await materializeBulk(ownSdk);
206
+ const { groups, overview } = await materializeBulk(ownSdk);
200
207
  if (isTab) {
201
208
  const { sdk: _sdk, ...tab } = node;
202
209
  const existingGroups = Array.isArray(tab.groups)
203
210
  ? (await processNode(tab.groups, ownSdk))
204
211
  : [];
205
- const existingPages = Array.isArray(tab.pages)
206
- ? (await processPages(tab.pages, ownSdk))
207
- : [];
212
+ const existingPages = [
213
+ ...(Array.isArray(tab.pages)
214
+ ? (await processPages(tab.pages, ownSdk))
215
+ : []),
216
+ ...overview,
217
+ ];
208
218
  const restEntries = await Promise.all(Object.entries(tab)
209
219
  .filter(([key]) => key !== 'groups' && key !== 'pages')
210
220
  .map(async ([key, entry]) => [key, await processNode(entry, ownSdk)]));
221
+ const overviewIndex = existingGroups.findIndex((entry) => isObject(entry) && entry.group === 'Overview' && Array.isArray(entry.pages));
222
+ const mergedGroups = existingGroups.map((entry, index) => index === overviewIndex && isObject(entry) && Array.isArray(entry.pages)
223
+ ? { ...entry, pages: [...entry.pages, ...existingPages] }
224
+ : entry);
211
225
  return {
212
226
  ...Object.fromEntries(restEntries),
213
227
  groups: [
214
- ...existingGroups,
215
- ...(existingPages.length > 0 ? [{ group: 'Overview', pages: existingPages }] : []),
228
+ ...mergedGroups,
229
+ ...(overviewIndex === -1 && existingPages.length > 0
230
+ ? [{ group: 'Overview', pages: existingPages }]
231
+ : []),
216
232
  ...groups,
217
233
  ],
218
234
  };
@@ -223,7 +239,7 @@ export async function generateSdkDivisionsFromDocsConfig(docsConfig, loadReferen
223
239
  : [];
224
240
  return {
225
241
  ...group,
226
- pages: [...processedPages, ...groups],
242
+ pages: [...processedPages, ...overview, ...groups],
227
243
  };
228
244
  }
229
245
  if (isTab) {