@mintlify/scraping 4.0.216 → 4.0.218
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.
|
@@ -357,7 +357,197 @@ export const pathsAndWebhooksDoc: DocumentV3 = {
|
|
|
357
357
|
},
|
|
358
358
|
};
|
|
359
359
|
|
|
360
|
-
export const
|
|
360
|
+
export const excludedPlantStore = {
|
|
361
|
+
openapi: '3.1.0',
|
|
362
|
+
info: {
|
|
363
|
+
title: 'OpenAPI Plant Store',
|
|
364
|
+
description:
|
|
365
|
+
'A sample API that uses a plant store as an example to demonstrate features in the OpenAPI specification',
|
|
366
|
+
license: {
|
|
367
|
+
name: 'MIT',
|
|
368
|
+
},
|
|
369
|
+
version: '1.0.0',
|
|
370
|
+
},
|
|
371
|
+
servers: [
|
|
372
|
+
{
|
|
373
|
+
url: 'http://sandbox.mintlify.com',
|
|
374
|
+
},
|
|
375
|
+
],
|
|
376
|
+
security: [
|
|
377
|
+
{
|
|
378
|
+
bearerAuth: [],
|
|
379
|
+
},
|
|
380
|
+
],
|
|
381
|
+
paths: {
|
|
382
|
+
'/secretPlants': {
|
|
383
|
+
get: {
|
|
384
|
+
'x-excluded': true,
|
|
385
|
+
description:
|
|
386
|
+
'Returns all secret plants from the system that the user has access to, but you should never see this in the API reference',
|
|
387
|
+
responses: {
|
|
388
|
+
200: {
|
|
389
|
+
description: 'Secret plant response',
|
|
390
|
+
},
|
|
391
|
+
},
|
|
392
|
+
},
|
|
393
|
+
},
|
|
394
|
+
'/plants': {
|
|
395
|
+
get: {
|
|
396
|
+
description: 'Returns all plants from the system that the user has access to',
|
|
397
|
+
parameters: [
|
|
398
|
+
{
|
|
399
|
+
name: 'limit',
|
|
400
|
+
in: 'query',
|
|
401
|
+
description: 'The maximum number of results to return',
|
|
402
|
+
schema: {
|
|
403
|
+
type: 'integer',
|
|
404
|
+
format: 'int32',
|
|
405
|
+
},
|
|
406
|
+
},
|
|
407
|
+
],
|
|
408
|
+
responses: {
|
|
409
|
+
200: {
|
|
410
|
+
description: 'Plant response',
|
|
411
|
+
content: {
|
|
412
|
+
'application/json': {
|
|
413
|
+
schema: {
|
|
414
|
+
type: 'array',
|
|
415
|
+
items: {
|
|
416
|
+
$ref: '#/components/schemas/Plant',
|
|
417
|
+
},
|
|
418
|
+
},
|
|
419
|
+
},
|
|
420
|
+
},
|
|
421
|
+
},
|
|
422
|
+
404: {
|
|
423
|
+
description: 'Plant not found',
|
|
424
|
+
},
|
|
425
|
+
400: {
|
|
426
|
+
description: 'Unexpected error',
|
|
427
|
+
content: {
|
|
428
|
+
'application/json': {
|
|
429
|
+
schema: {
|
|
430
|
+
$ref: '#/components/schemas/Error',
|
|
431
|
+
},
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
},
|
|
435
|
+
},
|
|
436
|
+
},
|
|
437
|
+
post: {
|
|
438
|
+
description: 'Creates a new plant in the store',
|
|
439
|
+
requestBody: {
|
|
440
|
+
description: 'Plant to add to the store',
|
|
441
|
+
content: {
|
|
442
|
+
'application/json': {
|
|
443
|
+
schema: {
|
|
444
|
+
$ref: '#/components/schemas/NewPlant',
|
|
445
|
+
},
|
|
446
|
+
},
|
|
447
|
+
},
|
|
448
|
+
required: true,
|
|
449
|
+
},
|
|
450
|
+
responses: {
|
|
451
|
+
200: {
|
|
452
|
+
description: 'plant response',
|
|
453
|
+
content: {
|
|
454
|
+
'application/json': {
|
|
455
|
+
schema: {
|
|
456
|
+
$ref: '#/components/schemas/Plant',
|
|
457
|
+
},
|
|
458
|
+
},
|
|
459
|
+
},
|
|
460
|
+
},
|
|
461
|
+
400: {
|
|
462
|
+
description: 'unexpected error',
|
|
463
|
+
content: {
|
|
464
|
+
'application/json': {
|
|
465
|
+
schema: {
|
|
466
|
+
$ref: '#/components/schemas/Error',
|
|
467
|
+
},
|
|
468
|
+
},
|
|
469
|
+
},
|
|
470
|
+
},
|
|
471
|
+
},
|
|
472
|
+
},
|
|
473
|
+
},
|
|
474
|
+
},
|
|
475
|
+
webhooks: {
|
|
476
|
+
'/plant/secret-webhook': {
|
|
477
|
+
post: {
|
|
478
|
+
'x-excluded': true,
|
|
479
|
+
description: 'Secret webhook for plant events',
|
|
480
|
+
requestBody: {
|
|
481
|
+
description: 'Plant added to the store',
|
|
482
|
+
content: {
|
|
483
|
+
'application/json': {
|
|
484
|
+
schema: {},
|
|
485
|
+
},
|
|
486
|
+
},
|
|
487
|
+
},
|
|
488
|
+
},
|
|
489
|
+
},
|
|
490
|
+
'/plant/webhook': {
|
|
491
|
+
post: {
|
|
492
|
+
description: 'Information about a new plant added to the store',
|
|
493
|
+
requestBody: {
|
|
494
|
+
description: 'Plant added to the store',
|
|
495
|
+
content: {
|
|
496
|
+
'application/json': {
|
|
497
|
+
schema: {
|
|
498
|
+
$ref: '#/components/schemas/NewPlant',
|
|
499
|
+
},
|
|
500
|
+
},
|
|
501
|
+
},
|
|
502
|
+
},
|
|
503
|
+
responses: {
|
|
504
|
+
200: {
|
|
505
|
+
description: 'Return a 200 status to indicate that the data was received successfully',
|
|
506
|
+
},
|
|
507
|
+
},
|
|
508
|
+
},
|
|
509
|
+
},
|
|
510
|
+
},
|
|
511
|
+
components: {
|
|
512
|
+
schemas: {
|
|
513
|
+
Plant: {
|
|
514
|
+
required: ['name'],
|
|
515
|
+
type: 'object',
|
|
516
|
+
properties: {
|
|
517
|
+
name: {
|
|
518
|
+
description: 'The name of the plant',
|
|
519
|
+
type: 'string',
|
|
520
|
+
},
|
|
521
|
+
tag: {
|
|
522
|
+
description: 'Tag to specify the type',
|
|
523
|
+
type: 'string',
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
},
|
|
527
|
+
Error: {
|
|
528
|
+
required: ['error', 'message'],
|
|
529
|
+
type: 'object',
|
|
530
|
+
properties: {
|
|
531
|
+
error: {
|
|
532
|
+
type: 'integer',
|
|
533
|
+
format: 'int32',
|
|
534
|
+
},
|
|
535
|
+
message: {
|
|
536
|
+
type: 'string',
|
|
537
|
+
},
|
|
538
|
+
},
|
|
539
|
+
},
|
|
540
|
+
},
|
|
541
|
+
securitySchemes: {
|
|
542
|
+
bearerAuth: {
|
|
543
|
+
type: 'http',
|
|
544
|
+
scheme: 'bearer',
|
|
545
|
+
},
|
|
546
|
+
},
|
|
547
|
+
},
|
|
548
|
+
};
|
|
549
|
+
|
|
550
|
+
export const hiddenPlantStore = {
|
|
361
551
|
openapi: '3.1.0',
|
|
362
552
|
info: {
|
|
363
553
|
title: 'OpenAPI Plant Store',
|
|
@@ -10,7 +10,8 @@ import {
|
|
|
10
10
|
complexDoc,
|
|
11
11
|
webhooksDoc,
|
|
12
12
|
pathsAndWebhooksDoc,
|
|
13
|
-
|
|
13
|
+
excludedPlantStore,
|
|
14
|
+
hiddenPlantStore,
|
|
14
15
|
} from './fixtures/openapi.js';
|
|
15
16
|
|
|
16
17
|
describe('generateOpenApiPagesForDocsConfig', () => {
|
|
@@ -85,8 +86,8 @@ describe('generateOpenApiPagesForDocsConfig', () => {
|
|
|
85
86
|
expect((result.nav[0] as { pages: string[] }).pages[3]).toBe('newplant');
|
|
86
87
|
});
|
|
87
88
|
|
|
88
|
-
it('should not create pages for paths with x-
|
|
89
|
-
const result = await generateOpenApiPagesForDocsConfig(
|
|
89
|
+
it('should not create pages for paths with x-excluded', async () => {
|
|
90
|
+
const result = await generateOpenApiPagesForDocsConfig(excludedPlantStore as OpenAPI.Document);
|
|
90
91
|
expect(result.nav).toHaveLength(1);
|
|
91
92
|
expect(result.nav[0]).toHaveProperty('group', DEFAULT_API_GROUP_NAME);
|
|
92
93
|
expect(result.nav[0]).toHaveProperty('pages');
|
|
@@ -97,7 +98,25 @@ describe('generateOpenApiPagesForDocsConfig', () => {
|
|
|
97
98
|
expect(result.pagesAcc['get-plants']).toBeDefined();
|
|
98
99
|
expect(result.pagesAcc['post-plants']).toBeDefined();
|
|
99
100
|
expect(result.pagesAcc['plantwebhook']).toBeDefined();
|
|
101
|
+
// excluded pages should be undefined
|
|
100
102
|
expect(result.pagesAcc['get-secretplants']).toBeUndefined();
|
|
101
103
|
expect(result.pagesAcc['plantsecretwebhook']).toBeUndefined();
|
|
102
104
|
});
|
|
105
|
+
|
|
106
|
+
it('should create pages for paths with x-hidden, but exclude them from the nav', async () => {
|
|
107
|
+
const result = await generateOpenApiPagesForDocsConfig(hiddenPlantStore as OpenAPI.Document);
|
|
108
|
+
expect(result.nav).toHaveLength(1);
|
|
109
|
+
expect(result.nav[0]).toHaveProperty('group', DEFAULT_API_GROUP_NAME);
|
|
110
|
+
expect(result.nav[0]).toHaveProperty('pages');
|
|
111
|
+
expect((result.nav[0] as { pages: string[] }).pages.length).toBe(3);
|
|
112
|
+
expect((result.nav[0] as { pages: string[] }).pages[0]).toBe('get-plants');
|
|
113
|
+
expect((result.nav[0] as { pages: string[] }).pages[1]).toBe('post-plants');
|
|
114
|
+
expect((result.nav[0] as { pages: string[] }).pages[2]).toBe('plantwebhook');
|
|
115
|
+
expect(result.pagesAcc['get-plants']).toBeDefined();
|
|
116
|
+
expect(result.pagesAcc['post-plants']).toBeDefined();
|
|
117
|
+
expect(result.pagesAcc['plantwebhook']).toBeDefined();
|
|
118
|
+
// hidden pages should be defined
|
|
119
|
+
expect(result.pagesAcc['get-secretplants']).toBeDefined();
|
|
120
|
+
expect(result.pagesAcc['plantsecret-webhook']).toBeDefined();
|
|
121
|
+
});
|
|
103
122
|
});
|
package/bin/openapi/common.js
CHANGED
|
@@ -43,6 +43,9 @@ openapi: ${openApiMetaTag}${version ? `\nversion: ${version}` : ''}
|
|
|
43
43
|
const isHiddenOperation = (operation) => {
|
|
44
44
|
return operation['x-hidden'];
|
|
45
45
|
};
|
|
46
|
+
const isExcludedOperation = (operation) => {
|
|
47
|
+
return operation['x-excluded'];
|
|
48
|
+
};
|
|
46
49
|
export function processOpenApiPath(path, pathItemObject, schema, nav, decoratedNav, writePromises, pagesAcc, options,
|
|
47
50
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
51
|
findNavGroup) {
|
|
@@ -52,7 +55,7 @@ findNavGroup) {
|
|
|
52
55
|
Object.values(OpenAPIV3.HttpMethods).forEach((method) => {
|
|
53
56
|
if (method in pathItemObject) {
|
|
54
57
|
const operation = pathItemObject[method];
|
|
55
|
-
if (
|
|
58
|
+
if (isExcludedOperation(operation)) {
|
|
56
59
|
return;
|
|
57
60
|
}
|
|
58
61
|
const groupName = operation?.tags?.[0];
|
|
@@ -73,7 +76,6 @@ findNavGroup) {
|
|
|
73
76
|
originalFileLocation: options.openApiFilePath,
|
|
74
77
|
},
|
|
75
78
|
], openapiMetaTag);
|
|
76
|
-
navGroup.push(filenameWithoutExtension);
|
|
77
79
|
const page = {
|
|
78
80
|
openapi: openapiMetaTag,
|
|
79
81
|
href: resolve('/', filenameWithoutExtension),
|
|
@@ -81,7 +83,10 @@ findNavGroup) {
|
|
|
81
83
|
description,
|
|
82
84
|
version: options.version,
|
|
83
85
|
};
|
|
84
|
-
|
|
86
|
+
if (!isHiddenOperation(operation)) {
|
|
87
|
+
navGroup.push(filenameWithoutExtension);
|
|
88
|
+
decoratedNavGroup.push(page);
|
|
89
|
+
}
|
|
85
90
|
pagesAcc[filenameWithoutExtension] = page;
|
|
86
91
|
const targetPath = options.outDirBasePath
|
|
87
92
|
? join(options.outDirBasePath, `${filenameWithoutExtension}.mdx`)
|
|
@@ -101,7 +106,7 @@ findNavGroup) {
|
|
|
101
106
|
Object.values(OpenAPIV3.HttpMethods).forEach((method) => {
|
|
102
107
|
if (method in webhookObject) {
|
|
103
108
|
const operation = webhookObject[method];
|
|
104
|
-
if (
|
|
109
|
+
if (isExcludedOperation(operation)) {
|
|
105
110
|
return;
|
|
106
111
|
}
|
|
107
112
|
const groupName = operation?.tags?.[0];
|
|
@@ -114,7 +119,6 @@ findNavGroup) {
|
|
|
114
119
|
const filenameWithoutExtension = generateUniqueFilenameWithoutExtension(navGroup, base);
|
|
115
120
|
const openapiMetaTag = `${openApiFilePathFromRoot ? `${openApiFilePathFromRoot} ` : ''}webhook ${webhook}`;
|
|
116
121
|
const description = operation?.description;
|
|
117
|
-
navGroup.push(filenameWithoutExtension);
|
|
118
122
|
const page = {
|
|
119
123
|
openapi: openapiMetaTag,
|
|
120
124
|
href: resolve('/', filenameWithoutExtension),
|
|
@@ -122,7 +126,10 @@ findNavGroup) {
|
|
|
122
126
|
description,
|
|
123
127
|
version: options.version,
|
|
124
128
|
};
|
|
125
|
-
|
|
129
|
+
if (!isHiddenOperation(operation)) {
|
|
130
|
+
navGroup.push(filenameWithoutExtension);
|
|
131
|
+
decoratedNavGroup.push(page);
|
|
132
|
+
}
|
|
126
133
|
pagesAcc[filenameWithoutExtension] = page;
|
|
127
134
|
const targetPath = options.outDirBasePath
|
|
128
135
|
? join(options.outDirBasePath, `${filenameWithoutExtension}.mdx`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/openapi/common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE7B,yBAAyB,EACzB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAW,SAAS,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,EACL,8BAA8B,EAC9B,sCAAsC,GACvC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,mBAAoD,EACK,EAAE;IAC3D,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;QAC5C,IAAI,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,yDAAyD;YACzD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACzC,mBAAmB,GAAG,GAAG,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1E,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClD,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAqB,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,mBAAmB,YAAY,GAAG,CAAC;IACjD,IAAI,mBAAmB,YAAY,GAAG,EAAE,CAAC;QACvC,IAAI,mBAAmB,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,mBAAmB,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,QAAgB,EAChB,cAAsB,EACtB,OAAgB,EAChB,EAAE;IACF,MAAM,IAAI,GAAG;WACJ,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;IAC9D,CAAC;IAEH,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/openapi/common.ts"],"names":[],"mappings":"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"}
|