diff --git a/README.md b/README.md index dcf1894f854..30916cd232e 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,7 @@ These GitHub repositories provide supplementary resources for Rush Stack: | [/build-tests-samples/heft-web-rig-library-tutorial](./build-tests-samples/heft-web-rig-library-tutorial/) | (Copy of sample project) Building this project is a regression test for Heft | | [/build-tests-samples/heft-webpack-basic-tutorial](./build-tests-samples/heft-webpack-basic-tutorial/) | (Copy of sample project) Building this project is a regression test for Heft | | [/build-tests-samples/packlets-tutorial](./build-tests-samples/packlets-tutorial/) | (Copy of sample project) Building this project is a regression test for @rushstack/eslint-plugin-packlets | +| [/build-tests/api-documenter-scenarios](./build-tests/api-documenter-scenarios/) | Building this project is a regression test for api-documenter | | [/build-tests/api-documenter-test](./build-tests/api-documenter-test/) | Building this project is a regression test for api-documenter | | [/build-tests/api-extractor-lib1-test](./build-tests/api-extractor-lib1-test/) | Building this project is a regression test for api-extractor | | [/build-tests/api-extractor-lib2-test](./build-tests/api-extractor-lib2-test/) | Building this project is a regression test for api-extractor | diff --git a/apps/api-documenter/src/documenters/DocumenterConfig.ts b/apps/api-documenter/src/documenters/DocumenterConfig.ts index e3fbb3cc4f4..18d13550c6e 100644 --- a/apps/api-documenter/src/documenters/DocumenterConfig.ts +++ b/apps/api-documenter/src/documenters/DocumenterConfig.ts @@ -21,14 +21,14 @@ export class DocumenterConfig { public readonly newlineKind: NewlineKind; /** - * The JSON Schema for API Extractor config file (api-extractor.schema.json). + * The JSON Schema for API Documenter config file (api-documenter.schema.json). */ public static readonly jsonSchema: JsonSchema = JsonSchema.fromFile( path.join(__dirname, '..', 'schemas', 'api-documenter.schema.json') ); /** - * The config file name "api-extractor.json". + * The config file name "api-documenter.json". */ public static readonly FILENAME: string = 'api-documenter.json'; diff --git a/apps/api-documenter/src/documenters/IConfigFile.ts b/apps/api-documenter/src/documenters/IConfigFile.ts index c3116b6f119..3c60580fd4a 100644 --- a/apps/api-documenter/src/documenters/IConfigFile.ts +++ b/apps/api-documenter/src/documenters/IConfigFile.ts @@ -103,4 +103,9 @@ export interface IConfigFile { /** {@inheritDoc IConfigTableOfContents} */ tableOfContents?: IConfigTableOfContents; + + /** + * Specifies whether inherited members should also be shown on an API item's page. + */ + showInheritedMembers?: boolean; } diff --git a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts index bfefbbe212c..e8f374c476d 100644 --- a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts +++ b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts @@ -43,7 +43,8 @@ import { ApiOptionalMixin, ApiInitializerMixin, ApiProtectedMixin, - ApiReadonlyMixin + ApiReadonlyMixin, + IFindApiItemsResult } from '@microsoft/api-extractor-model'; import { CustomDocNodes } from '../nodes/CustomDocNodeKind'; @@ -118,7 +119,7 @@ export class MarkdownDocumenter { private _writeApiItemPage(apiItem: ApiItem): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; - const output: DocSection = new DocSection({ configuration: this._tsdocConfiguration }); + const output: DocSection = new DocSection({ configuration }); this._writeBreadcrumb(output, apiItem); @@ -190,10 +191,10 @@ export class MarkdownDocumenter { if (tsdocComment.deprecatedBlock) { output.appendNode( - new DocNoteBox({ configuration: this._tsdocConfiguration }, [ - new DocParagraph({ configuration: this._tsdocConfiguration }, [ + new DocNoteBox({ configuration }, [ + new DocParagraph({ configuration }, [ new DocPlainText({ - configuration: this._tsdocConfiguration, + configuration, text: 'Warning: This API is now obsolete. ' }) ]), @@ -339,7 +340,7 @@ export class MarkdownDocumenter { output.appendNode(extendsParagraph); } if (apiItem.implementsTypes.length > 0) { - const extendsParagraph: DocParagraph = new DocParagraph({ configuration }, [ + const implementsParagraph: DocParagraph = new DocParagraph({ configuration }, [ new DocEmphasisSpan({ configuration, bold: true }, [ new DocPlainText({ configuration, text: 'Implements: ' }) ]) @@ -347,12 +348,12 @@ export class MarkdownDocumenter { let needsComma: boolean = false; for (const implementsType of apiItem.implementsTypes) { if (needsComma) { - extendsParagraph.appendNode(new DocPlainText({ configuration, text: ', ' })); + implementsParagraph.appendNode(new DocPlainText({ configuration, text: ', ' })); } - this._appendExcerptWithHyperlinks(extendsParagraph, implementsType.excerpt); + this._appendExcerptWithHyperlinks(implementsParagraph, implementsType.excerpt); needsComma = true; } - output.appendNode(extendsParagraph); + output.appendNode(implementsParagraph); } } @@ -409,13 +410,15 @@ export class MarkdownDocumenter { } private _writeRemarksSection(output: DocSection, apiItem: ApiItem): void { + const configuration: TSDocConfiguration = this._tsdocConfiguration; + if (apiItem instanceof ApiDocumentedItem) { const tsdocComment: DocComment | undefined = apiItem.tsdocComment; if (tsdocComment) { // Write the @remarks block if (tsdocComment.remarksBlock) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Remarks' })); + output.appendNode(new DocHeading({ configuration, title: 'Remarks' })); this._appendSection(output, tsdocComment.remarksBlock.content); } @@ -428,7 +431,7 @@ export class MarkdownDocumenter { for (const exampleBlock of exampleBlocks) { const heading: string = exampleBlocks.length > 1 ? `Example ${exampleNumber}` : 'Example'; - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: heading })); + output.appendNode(new DocHeading({ configuration, title: heading })); this._appendSection(output, exampleBlock.content); @@ -439,6 +442,8 @@ export class MarkdownDocumenter { } private _writeThrowsSection(output: DocSection, apiItem: ApiItem): void { + const configuration: TSDocConfiguration = this._tsdocConfiguration; + if (apiItem instanceof ApiDocumentedItem) { const tsdocComment: DocComment | undefined = apiItem.tsdocComment; @@ -450,7 +455,7 @@ export class MarkdownDocumenter { if (throwsBlocks.length > 0) { const heading: string = 'Exceptions'; - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: heading })); + output.appendNode(new DocHeading({ configuration, title: heading })); for (const throwsBlock of throwsBlocks) { this._appendSection(output, throwsBlock.content); @@ -486,7 +491,7 @@ export class MarkdownDocumenter { } if (packagesTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Packages' })); + output.appendNode(new DocHeading({ configuration, title: 'Packages' })); output.appendNode(packagesTable); } } @@ -582,36 +587,36 @@ export class MarkdownDocumenter { } if (classesTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Classes' })); + output.appendNode(new DocHeading({ configuration, title: 'Classes' })); output.appendNode(classesTable); } if (enumerationsTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Enumerations' })); + output.appendNode(new DocHeading({ configuration, title: 'Enumerations' })); output.appendNode(enumerationsTable); } if (functionsTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Functions' })); + output.appendNode(new DocHeading({ configuration, title: 'Functions' })); output.appendNode(functionsTable); } if (interfacesTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Interfaces' })); + output.appendNode(new DocHeading({ configuration, title: 'Interfaces' })); output.appendNode(interfacesTable); } if (namespacesTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Namespaces' })); + output.appendNode(new DocHeading({ configuration, title: 'Namespaces' })); output.appendNode(namespacesTable); } if (variablesTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Variables' })); + output.appendNode(new DocHeading({ configuration, title: 'Variables' })); output.appendNode(variablesTable); } if (typeAliasesTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Type Aliases' })); + output.appendNode(new DocHeading({ configuration, title: 'Type Aliases' })); output.appendNode(typeAliasesTable); } } @@ -642,14 +647,16 @@ export class MarkdownDocumenter { headerTitles: ['Method', 'Modifiers', 'Description'] }); - for (const apiMember of apiClass.members) { + const apiMembers: readonly ApiItem[] = this._getMembersAndWriteIncompleteWarning(apiClass, output); + for (const apiMember of apiMembers) { + const isInherited: boolean = apiMember.parent !== apiClass; switch (apiMember.kind) { case ApiItemKind.Constructor: { constructorsTable.addRow( new DocTableRow({ configuration }, [ this._createTitleCell(apiMember), this._createModifiersCell(apiMember), - this._createDescriptionCell(apiMember) + this._createDescriptionCell(apiMember, isInherited) ]) ); @@ -661,7 +668,7 @@ export class MarkdownDocumenter { new DocTableRow({ configuration }, [ this._createTitleCell(apiMember), this._createModifiersCell(apiMember), - this._createDescriptionCell(apiMember) + this._createDescriptionCell(apiMember, isInherited) ]) ); @@ -675,7 +682,7 @@ export class MarkdownDocumenter { this._createTitleCell(apiMember), this._createModifiersCell(apiMember), this._createPropertyTypeCell(apiMember), - this._createDescriptionCell(apiMember) + this._createDescriptionCell(apiMember, isInherited) ]) ); } else { @@ -684,7 +691,7 @@ export class MarkdownDocumenter { this._createTitleCell(apiMember), this._createModifiersCell(apiMember), this._createPropertyTypeCell(apiMember), - this._createDescriptionCell(apiMember) + this._createDescriptionCell(apiMember, isInherited) ]) ); } @@ -696,22 +703,22 @@ export class MarkdownDocumenter { } if (eventsTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Events' })); + output.appendNode(new DocHeading({ configuration, title: 'Events' })); output.appendNode(eventsTable); } if (constructorsTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Constructors' })); + output.appendNode(new DocHeading({ configuration, title: 'Constructors' })); output.appendNode(constructorsTable); } if (propertiesTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Properties' })); + output.appendNode(new DocHeading({ configuration, title: 'Properties' })); output.appendNode(propertiesTable); } if (methodsTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Methods' })); + output.appendNode(new DocHeading({ configuration, title: 'Methods' })); output.appendNode(methodsTable); } } @@ -742,9 +749,7 @@ export class MarkdownDocumenter { } if (enumMembersTable.rows.length > 0) { - output.appendNode( - new DocHeading({ configuration: this._tsdocConfiguration, title: 'Enumeration Members' }) - ); + output.appendNode(new DocHeading({ configuration, title: 'Enumeration Members' })); output.appendNode(enumMembersTable); } } @@ -752,7 +757,7 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: INTERFACE */ - private _writeInterfaceTables(output: DocSection, apiClass: ApiInterface): void { + private _writeInterfaceTables(output: DocSection, apiInterface: ApiInterface): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const eventsTable: DocTable = new DocTable({ @@ -770,14 +775,16 @@ export class MarkdownDocumenter { headerTitles: ['Method', 'Description'] }); - for (const apiMember of apiClass.members) { + const apiMembers: readonly ApiItem[] = this._getMembersAndWriteIncompleteWarning(apiInterface, output); + for (const apiMember of apiMembers) { + const isInherited: boolean = apiMember.parent !== apiInterface; switch (apiMember.kind) { case ApiItemKind.ConstructSignature: case ApiItemKind.MethodSignature: { methodsTable.addRow( new DocTableRow({ configuration }, [ this._createTitleCell(apiMember), - this._createDescriptionCell(apiMember) + this._createDescriptionCell(apiMember, isInherited) ]) ); @@ -791,7 +798,7 @@ export class MarkdownDocumenter { this._createTitleCell(apiMember), this._createModifiersCell(apiMember), this._createPropertyTypeCell(apiMember), - this._createDescriptionCell(apiMember) + this._createDescriptionCell(apiMember, isInherited) ]) ); } else { @@ -800,7 +807,7 @@ export class MarkdownDocumenter { this._createTitleCell(apiMember), this._createModifiersCell(apiMember), this._createPropertyTypeCell(apiMember), - this._createDescriptionCell(apiMember) + this._createDescriptionCell(apiMember, isInherited) ]) ); } @@ -812,17 +819,17 @@ export class MarkdownDocumenter { } if (eventsTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Events' })); + output.appendNode(new DocHeading({ configuration, title: 'Events' })); output.appendNode(eventsTable); } if (propertiesTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Properties' })); + output.appendNode(new DocHeading({ configuration, title: 'Properties' })); output.appendNode(propertiesTable); } if (methodsTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Methods' })); + output.appendNode(new DocHeading({ configuration, title: 'Methods' })); output.appendNode(methodsTable); } } @@ -869,7 +876,7 @@ export class MarkdownDocumenter { } if (parametersTable.rows.length > 0) { - output.appendNode(new DocHeading({ configuration: this._tsdocConfiguration, title: 'Parameters' })); + output.appendNode(new DocHeading({ configuration, title: 'Parameters' })); output.appendNode(parametersTable); } @@ -972,7 +979,7 @@ export class MarkdownDocumenter { * We mostly assume that the input is an ApiDocumentedItem, but it's easier to perform this as a runtime * check than to have each caller perform a type cast. */ - private _createDescriptionCell(apiItem: ApiItem): DocTableCell { + private _createDescriptionCell(apiItem: ApiItem, isInherited: boolean = false): DocTableCell { const configuration: TSDocConfiguration = this._tsdocConfiguration; const section: DocSection = new DocSection({ configuration }); @@ -1003,6 +1010,21 @@ export class MarkdownDocumenter { } } + if (isInherited && apiItem.parent) { + section.appendNode( + new DocParagraph({ configuration }, [ + new DocPlainText({ configuration, text: '(Inherited from ' }), + new DocLinkTag({ + configuration, + tagName: '@link', + linkText: apiItem.parent.displayName, + urlDestination: this._getLinkFilenameForApiItem(apiItem.parent) + }), + new DocPlainText({ configuration, text: ')' }) + ]) + ); + } + return new DocTableCell({ configuration }, section.nodes); } @@ -1067,9 +1089,11 @@ export class MarkdownDocumenter { } private _writeBreadcrumb(output: DocSection, apiItem: ApiItem): void { + const configuration: TSDocConfiguration = this._tsdocConfiguration; + output.appendNodeInParagraph( new DocLinkTag({ - configuration: this._tsdocConfiguration, + configuration, tagName: '@link', linkText: 'Home', urlDestination: this._getLinkFilenameForApiItem(this._apiModel) @@ -1087,11 +1111,11 @@ export class MarkdownDocumenter { default: output.appendNodesInParagraph([ new DocPlainText({ - configuration: this._tsdocConfiguration, + configuration, text: ' > ' }), new DocLinkTag({ - configuration: this._tsdocConfiguration, + configuration, tagName: '@link', linkText: hierarchyItem.displayName, urlDestination: this._getLinkFilenameForApiItem(hierarchyItem) @@ -1135,6 +1159,40 @@ export class MarkdownDocumenter { } } + private _getMembersAndWriteIncompleteWarning( + apiClassOrInterface: ApiClass | ApiInterface, + output: DocSection + ): readonly ApiItem[] { + const configuration: TSDocConfiguration = this._tsdocConfiguration; + const showInheritedMembers: boolean = !!this._documenterConfig?.configFile.showInheritedMembers; + if (!showInheritedMembers) { + return apiClassOrInterface.members; + } + + const result: IFindApiItemsResult = apiClassOrInterface.findMembersWithInheritance(); + + // If the result is potentially incomplete, write a short warning communicating this. + if (result.maybeIncompleteResult) { + output.appendNode( + new DocParagraph({ configuration }, [ + new DocEmphasisSpan({ configuration, italic: true }, [ + new DocPlainText({ + configuration, + text: '(Some inherited members may not be shown because they are not represented in the documentation.)' + }) + ]) + ]) + ); + } + + // Log the messages for diagnostic purposes. + for (const message of result.messages) { + console.log(`Diagnostic message for findMembersWithInheritance: ${message.text}`); + } + + return result.items; + } + private _getFilenameForApiItem(apiItem: ApiItem): string { if (apiItem.kind === ApiItemKind.Model) { return 'index.md'; diff --git a/apps/api-documenter/src/schemas/api-documenter-template.json b/apps/api-documenter/src/schemas/api-documenter-template.json index 1e57fd7f120..cab40e42c74 100644 --- a/apps/api-documenter/src/schemas/api-documenter-template.json +++ b/apps/api-documenter/src/schemas/api-documenter-template.json @@ -89,4 +89,11 @@ */ // "filterByInlineTag": "@docCategory" } + + /** + * Specifies whether inherited members should also be shown on an API item's page. + * + * DEFAULT VALUE: false + */ + // "showInheritedMembers": false } diff --git a/apps/api-documenter/src/schemas/api-documenter.schema.json b/apps/api-documenter/src/schemas/api-documenter.schema.json index 7282baf3b00..a61c9894a8f 100644 --- a/apps/api-documenter/src/schemas/api-documenter.schema.json +++ b/apps/api-documenter/src/schemas/api-documenter.schema.json @@ -35,6 +35,11 @@ "description": "Configures how the table of contents is generated.", "type": "object", "additionalProperties": true + }, + + "showInheritedMembers": { + "description": "Specifies whether inherited members should also be shown on an API item's page.", + "type": "boolean" } }, diff --git a/build-tests/api-documenter-scenarios/build.js b/build-tests/api-documenter-scenarios/build.js new file mode 100644 index 00000000000..04eec231385 --- /dev/null +++ b/build-tests/api-documenter-scenarios/build.js @@ -0,0 +1,27 @@ +const fsx = require('fs-extra'); +const child_process = require('child_process'); +const path = require('path'); +const process = require('process'); + +function executeCommand(command) { + console.log('---> ' + command); + child_process.execSync(command, { stdio: 'inherit' }); +} + +console.log(`==> Starting build.js for ${path.basename(process.cwd())}`); +console.log(); + +// Clean the old build outputs +fsx.emptyDirSync('dist'); +fsx.emptyDirSync('lib'); +fsx.emptyDirSync('temp'); +fsx.emptyDirSync('etc'); + +// Run the TypeScript compiler +executeCommand('node node_modules/typescript/lib/tsc'); + +// Run the scenario runner +require('./lib/runScenarios').runScenarios('./config/build-config.json'); + +console.log(); +console.log(`==> Finished build.js for ${path.basename(process.cwd())}`); diff --git a/build-tests/api-documenter-scenarios/config/build-config.json b/build-tests/api-documenter-scenarios/config/build-config.json new file mode 100644 index 00000000000..d6bb035b7cd --- /dev/null +++ b/build-tests/api-documenter-scenarios/config/build-config.json @@ -0,0 +1,3 @@ +{ + "scenarioFolderNames": ["inheritedMembers"] +} diff --git a/build-tests/api-documenter-scenarios/config/rush-project.json b/build-tests/api-documenter-scenarios/config/rush-project.json new file mode 100644 index 00000000000..247dc17187a --- /dev/null +++ b/build-tests/api-documenter-scenarios/config/rush-project.json @@ -0,0 +1,8 @@ +{ + "operationSettings": [ + { + "operationName": "build", + "outputFolderNames": ["lib", "dist"] + } + ] +} diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.json b/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.json new file mode 100644 index 00000000000..52a666a5ac6 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.json @@ -0,0 +1,1083 @@ +{ + "metadata": { + "toolPackage": "@microsoft/api-extractor", + "toolVersion": "[test mode]", + "schemaVersion": 1009, + "oldestForwardsCompatibleVersion": 1001, + "tsdocConfig": { + "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", + "noStandardTags": true, + "tagDefinitions": [ + { + "tagName": "@alpha", + "syntaxKind": "modifier" + }, + { + "tagName": "@beta", + "syntaxKind": "modifier" + }, + { + "tagName": "@defaultValue", + "syntaxKind": "block" + }, + { + "tagName": "@decorator", + "syntaxKind": "block", + "allowMultiple": true + }, + { + "tagName": "@deprecated", + "syntaxKind": "block" + }, + { + "tagName": "@eventProperty", + "syntaxKind": "modifier" + }, + { + "tagName": "@example", + "syntaxKind": "block", + "allowMultiple": true + }, + { + "tagName": "@experimental", + "syntaxKind": "modifier" + }, + { + "tagName": "@inheritDoc", + "syntaxKind": "inline" + }, + { + "tagName": "@internal", + "syntaxKind": "modifier" + }, + { + "tagName": "@label", + "syntaxKind": "inline" + }, + { + "tagName": "@link", + "syntaxKind": "inline", + "allowMultiple": true + }, + { + "tagName": "@override", + "syntaxKind": "modifier" + }, + { + "tagName": "@packageDocumentation", + "syntaxKind": "modifier" + }, + { + "tagName": "@param", + "syntaxKind": "block", + "allowMultiple": true + }, + { + "tagName": "@privateRemarks", + "syntaxKind": "block" + }, + { + "tagName": "@public", + "syntaxKind": "modifier" + }, + { + "tagName": "@readonly", + "syntaxKind": "modifier" + }, + { + "tagName": "@remarks", + "syntaxKind": "block" + }, + { + "tagName": "@returns", + "syntaxKind": "block" + }, + { + "tagName": "@sealed", + "syntaxKind": "modifier" + }, + { + "tagName": "@see", + "syntaxKind": "block" + }, + { + "tagName": "@throws", + "syntaxKind": "block", + "allowMultiple": true + }, + { + "tagName": "@typeParam", + "syntaxKind": "block", + "allowMultiple": true + }, + { + "tagName": "@virtual", + "syntaxKind": "modifier" + }, + { + "tagName": "@betaDocumentation", + "syntaxKind": "modifier" + }, + { + "tagName": "@internalRemarks", + "syntaxKind": "block" + }, + { + "tagName": "@preapproved", + "syntaxKind": "modifier" + } + ], + "supportForTags": { + "@alpha": true, + "@beta": true, + "@defaultValue": true, + "@decorator": true, + "@deprecated": true, + "@eventProperty": true, + "@example": true, + "@experimental": true, + "@inheritDoc": true, + "@internal": true, + "@label": true, + "@link": true, + "@override": true, + "@packageDocumentation": true, + "@param": true, + "@privateRemarks": true, + "@public": true, + "@readonly": true, + "@remarks": true, + "@returns": true, + "@sealed": true, + "@see": true, + "@throws": true, + "@typeParam": true, + "@virtual": true, + "@betaDocumentation": true, + "@internalRemarks": true, + "@preapproved": true + }, + "reportUnsupportedHtmlElements": false + } + }, + "kind": "Package", + "canonicalReference": "api-documenter-scenarios!", + "docComment": "", + "name": "api-documenter-scenarios", + "preserveMemberOrder": false, + "members": [ + { + "kind": "EntryPoint", + "canonicalReference": "api-documenter-scenarios!", + "name": "", + "preserveMemberOrder": false, + "members": [ + { + "kind": "Class", + "canonicalReference": "api-documenter-scenarios!Class1:class", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare class Class1 extends " + }, + { + "kind": "Reference", + "text": "Class2", + "canonicalReference": "api-documenter-scenarios!Class2:class" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "Class1", + "preserveMemberOrder": false, + "members": [ + { + "kind": "Property", + "canonicalReference": "api-documenter-scenarios!Class1#fourthProp:member", + "docComment": "/**\n * A fourth prop\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "fourthProp: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "fourthProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isStatic": false, + "isProtected": false + }, + { + "kind": "Property", + "canonicalReference": "api-documenter-scenarios!Class1#secondProp:member", + "docComment": "/**\n * A second prop. Overrides `Class2.secondProp`.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "secondProp: " + }, + { + "kind": "Content", + "text": "boolean" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "secondProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isStatic": false, + "isProtected": false + }, + { + "kind": "Method", + "canonicalReference": "api-documenter-scenarios!Class1#someOverload:member(1)", + "docComment": "/**\n * Some overload. Overrides `Class3.someOverload`.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "someOverload(x: " + }, + { + "kind": "Content", + "text": "boolean | string" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": false, + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + }, + "releaseTag": "Public", + "isProtected": false, + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "isOptional": false, + "name": "someOverload" + } + ], + "extendsTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "implementsTokenRanges": [] + }, + { + "kind": "Class", + "canonicalReference": "api-documenter-scenarios!Class2:class", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare class Class2 extends " + }, + { + "kind": "Reference", + "text": "Namespace1.Class3", + "canonicalReference": "api-documenter-scenarios!Namespace1.Class3:class" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "typeParameters": [ + { + "typeParameterName": "T", + "constraintTokenRange": { + "startIndex": 0, + "endIndex": 0 + }, + "defaultTypeTokenRange": { + "startIndex": 0, + "endIndex": 0 + } + } + ], + "name": "Class2", + "preserveMemberOrder": false, + "members": [ + { + "kind": "Property", + "canonicalReference": "api-documenter-scenarios!Class2#secondProp:member", + "docComment": "/**\n * A second prop.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "secondProp: " + }, + { + "kind": "Content", + "text": "boolean | string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "secondProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isStatic": false, + "isProtected": false + }, + { + "kind": "Method", + "canonicalReference": "api-documenter-scenarios!Class2#someMethod:member(1)", + "docComment": "/**\n * Some method. Overrides `Class3.someMethod`.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "someMethod(x: " + }, + { + "kind": "Content", + "text": "boolean" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": false, + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + }, + "releaseTag": "Public", + "isProtected": false, + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "isOptional": false, + "name": "someMethod" + }, + { + "kind": "Property", + "canonicalReference": "api-documenter-scenarios!Class2#thirdProp:member", + "docComment": "/**\n * A third prop.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "thirdProp: " + }, + { + "kind": "Content", + "text": "T" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "thirdProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isStatic": false, + "isProtected": false + } + ], + "extendsTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "implementsTokenRanges": [] + }, + { + "kind": "Variable", + "canonicalReference": "api-documenter-scenarios!ClassLikeVariable:var", + "docComment": "/**\n * Some class-like variable.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "ClassLikeVariable: " + }, + { + "kind": "Content", + "text": "{\n new (): {\n someProp: number;\n };\n}" + } + ], + "isReadonly": true, + "releaseTag": "Public", + "name": "ClassLikeVariable", + "variableTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "Class", + "canonicalReference": "api-documenter-scenarios!ExtendsAnonymousClass:class", + "docComment": "/**\n * Some class that extends an anonymous class.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare class ExtendsAnonymousClass extends " + }, + { + "kind": "Reference", + "text": "ExtendsAnonymousClass_base", + "canonicalReference": "api-documenter-scenarios!~ExtendsAnonymousClass_base" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "ExtendsAnonymousClass", + "preserveMemberOrder": false, + "members": [], + "extendsTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "implementsTokenRanges": [] + }, + { + "kind": "Class", + "canonicalReference": "api-documenter-scenarios!ExtendsClassFromAnotherPackage:class", + "docComment": "/**\n * Some class that extends a class from another package. This base class is not in any API doc model.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare class ExtendsClassFromAnotherPackage extends " + }, + { + "kind": "Reference", + "text": "Extractor", + "canonicalReference": "@microsoft/api-extractor!Extractor:class" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "ExtendsClassFromAnotherPackage", + "preserveMemberOrder": false, + "members": [], + "extendsTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "implementsTokenRanges": [] + }, + { + "kind": "Class", + "canonicalReference": "api-documenter-scenarios!ExtendsClassLikeVariable:class", + "docComment": "/**\n * Some class that extends a class-like variable.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare class ExtendsClassLikeVariable extends " + }, + { + "kind": "Reference", + "text": "ClassLikeVariable", + "canonicalReference": "api-documenter-scenarios!ClassLikeVariable" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "ExtendsClassLikeVariable", + "preserveMemberOrder": false, + "members": [], + "extendsTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "implementsTokenRanges": [] + }, + { + "kind": "Class", + "canonicalReference": "api-documenter-scenarios!ExtendsUnexportedClass:class", + "docComment": "/**\n * Some class that extends an unexported class.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare class ExtendsUnexportedClass extends " + }, + { + "kind": "Reference", + "text": "UnexportedClass", + "canonicalReference": "api-documenter-scenarios!~UnexportedClass:class" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "ExtendsUnexportedClass", + "preserveMemberOrder": false, + "members": [], + "extendsTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "implementsTokenRanges": [] + }, + { + "kind": "Interface", + "canonicalReference": "api-documenter-scenarios!IExtendsInterfaceLikeTypeAlias:interface", + "docComment": "/**\n * Some interface that extends an interface-like type alias as well as another interface.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export interface IExtendsInterfaceLikeTypeAlias extends " + }, + { + "kind": "Reference", + "text": "IInterfaceLikeTypeAlias", + "canonicalReference": "api-documenter-scenarios!IInterfaceLikeTypeAlias:type" + }, + { + "kind": "Content", + "text": ", " + }, + { + "kind": "Reference", + "text": "IInterface1", + "canonicalReference": "api-documenter-scenarios!IInterface1:interface" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "IExtendsInterfaceLikeTypeAlias", + "preserveMemberOrder": false, + "members": [], + "extendsTokenRanges": [ + { + "startIndex": 1, + "endIndex": 2 + }, + { + "startIndex": 3, + "endIndex": 4 + } + ] + }, + { + "kind": "Interface", + "canonicalReference": "api-documenter-scenarios!IExtendsMultipleInterfaces:interface", + "docComment": "/**\n * Some interface that extends multiple interfaces.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export interface IExtendsMultipleInterfaces extends " + }, + { + "kind": "Reference", + "text": "IInterface1", + "canonicalReference": "api-documenter-scenarios!IInterface1:interface" + }, + { + "kind": "Content", + "text": ", " + }, + { + "kind": "Reference", + "text": "IInterface2", + "canonicalReference": "api-documenter-scenarios!IInterface2:interface" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "IExtendsMultipleInterfaces", + "preserveMemberOrder": false, + "members": [ + { + "kind": "PropertySignature", + "canonicalReference": "api-documenter-scenarios!IExtendsMultipleInterfaces#secondProp:member", + "docComment": "/**\n * A second prop. Overrides `IInterface1.someProp`.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "secondProp: " + }, + { + "kind": "Content", + "text": "boolean" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "secondProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "api-documenter-scenarios!IExtendsMultipleInterfaces#thirdProp:member", + "docComment": "/**\n * A third prop.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "thirdProp: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "thirdProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + } + ], + "extendsTokenRanges": [ + { + "startIndex": 1, + "endIndex": 2 + }, + { + "startIndex": 3, + "endIndex": 4 + } + ] + }, + { + "kind": "Interface", + "canonicalReference": "api-documenter-scenarios!IInterface1:interface", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export interface IInterface1 " + } + ], + "releaseTag": "Public", + "name": "IInterface1", + "preserveMemberOrder": false, + "members": [ + { + "kind": "PropertySignature", + "canonicalReference": "api-documenter-scenarios!IInterface1#secondProp:member", + "docComment": "/**\n * A second prop.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "secondProp: " + }, + { + "kind": "Content", + "text": "boolean | string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "secondProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "api-documenter-scenarios!IInterface1#someProp:member", + "docComment": "/**\n * Some prop.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "someProp: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "someProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + } + ], + "extendsTokenRanges": [] + }, + { + "kind": "Interface", + "canonicalReference": "api-documenter-scenarios!IInterface2:interface", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export interface IInterface2 " + } + ], + "releaseTag": "Public", + "name": "IInterface2", + "preserveMemberOrder": false, + "members": [ + { + "kind": "PropertySignature", + "canonicalReference": "api-documenter-scenarios!IInterface2#someProp:member", + "docComment": "/**\n * Some prop.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "someProp: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "someProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + } + ], + "extendsTokenRanges": [] + }, + { + "kind": "TypeAlias", + "canonicalReference": "api-documenter-scenarios!IInterfaceLikeTypeAlias:type", + "docComment": "/**\n * Some interface-like type alias.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare type IInterfaceLikeTypeAlias = " + }, + { + "kind": "Content", + "text": "{\n someProp: number;\n}" + }, + { + "kind": "Content", + "text": ";" + } + ], + "releaseTag": "Public", + "name": "IInterfaceLikeTypeAlias", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "Namespace", + "canonicalReference": "api-documenter-scenarios!Namespace1:namespace", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare namespace Namespace1 " + } + ], + "releaseTag": "Public", + "name": "Namespace1", + "preserveMemberOrder": false, + "members": [ + { + "kind": "Class", + "canonicalReference": "api-documenter-scenarios!Namespace1.Class3:class", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "class Class3 " + } + ], + "releaseTag": "Public", + "name": "Class3", + "preserveMemberOrder": false, + "members": [ + { + "kind": "Method", + "canonicalReference": "api-documenter-scenarios!Namespace1.Class3#someMethod:member(1)", + "docComment": "/**\n * Some method.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "someMethod(x: " + }, + { + "kind": "Content", + "text": "boolean | string" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": false, + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + }, + "releaseTag": "Public", + "isProtected": false, + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "isOptional": false, + "name": "someMethod" + }, + { + "kind": "Method", + "canonicalReference": "api-documenter-scenarios!Namespace1.Class3#someOverload:member(1)", + "docComment": "/**\n * Some overload.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "someOverload(x: " + }, + { + "kind": "Content", + "text": "boolean" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": false, + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + }, + "releaseTag": "Public", + "isProtected": false, + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "isOptional": false, + "name": "someOverload" + }, + { + "kind": "Method", + "canonicalReference": "api-documenter-scenarios!Namespace1.Class3#someOverload:member(2)", + "docComment": "/**\n * Some overload.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "someOverload(x: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": false, + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + }, + "releaseTag": "Public", + "isProtected": false, + "overloadIndex": 2, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "isOptional": false, + "name": "someOverload" + }, + { + "kind": "Property", + "canonicalReference": "api-documenter-scenarios!Namespace1.Class3#someProp:member", + "docComment": "/**\n * Some prop.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "someProp: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "someProp", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isStatic": false, + "isProtected": false + } + ], + "implementsTokenRanges": [] + } + ] + } + ] + } + ] +} diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.md new file mode 100644 index 00000000000..e3a1dc2acaf --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.md @@ -0,0 +1,89 @@ +## API Report File for "api-documenter-scenarios" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Extractor } from '@microsoft/api-extractor'; + +// @public (undocumented) +export class Class1 extends Class2 { + fourthProp: number; + secondProp: boolean; + someOverload(x: boolean | string): void; +} + +// @public (undocumented) +export class Class2 extends Namespace1.Class3 { + secondProp: boolean | string; + someMethod(x: boolean): void; + thirdProp: T; +} + +// @public +export const ClassLikeVariable: { + new (): { + someProp: number; + }; +}; + +// Warning: (ae-forgotten-export) The symbol "ExtendsAnonymousClass_base" needs to be exported by the entry point index.d.ts +// +// @public +export class ExtendsAnonymousClass extends ExtendsAnonymousClass_base { +} + +// @public +export class ExtendsClassFromAnotherPackage extends Extractor { +} + +// @public +export class ExtendsClassLikeVariable extends ClassLikeVariable { +} + +// Warning: (ae-forgotten-export) The symbol "UnexportedClass" needs to be exported by the entry point index.d.ts +// +// @public +export class ExtendsUnexportedClass extends UnexportedClass { +} + +// @public +export interface IExtendsInterfaceLikeTypeAlias extends IInterfaceLikeTypeAlias, IInterface1 { +} + +// @public +export interface IExtendsMultipleInterfaces extends IInterface1, IInterface2 { + secondProp: boolean; + thirdProp: string; +} + +// @public (undocumented) +export interface IInterface1 { + secondProp: boolean | string; + someProp: number; +} + +// @public (undocumented) +export interface IInterface2 { + someProp: number; +} + +// @public +export type IInterfaceLikeTypeAlias = { + someProp: number; +}; + +// @public (undocumented) +export namespace Namespace1 { + // (undocumented) + export class Class3 { + someMethod(x: boolean | string): void; + someOverload(x: boolean): void; + someOverload(x: string): void; + someProp: number; + } +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.fourthprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.fourthprop.md new file mode 100644 index 00000000000..5e54a34385e --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.fourthprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Class1](./api-documenter-scenarios.class1.md) > [fourthProp](./api-documenter-scenarios.class1.fourthprop.md) + +## Class1.fourthProp property + +A fourth prop + +Signature: + +```typescript +fourthProp: number; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.md new file mode 100644 index 00000000000..13c8cd45b3d --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.md @@ -0,0 +1,30 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Class1](./api-documenter-scenarios.class1.md) + +## Class1 class + + +Signature: + +```typescript +export declare class Class1 extends Class2 +``` +Extends: [Class2](./api-documenter-scenarios.class2.md) + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [fourthProp](./api-documenter-scenarios.class1.fourthprop.md) | | number | A fourth prop | +| [secondProp](./api-documenter-scenarios.class1.secondprop.md) | | boolean | A second prop. Overrides Class2.secondProp. | +| [someProp](./api-documenter-scenarios.namespace1.class3.someprop.md) | | number |

Some prop.

(Inherited from [Class3](./api-documenter-scenarios.namespace1.class3.md))

| +| [thirdProp](./api-documenter-scenarios.class2.thirdprop.md) | | T |

A third prop.

(Inherited from [Class2](./api-documenter-scenarios.class2.md))

| + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [someMethod(x)](./api-documenter-scenarios.class2.somemethod.md) | |

Some method. Overrides Class3.someMethod.

(Inherited from [Class2](./api-documenter-scenarios.class2.md))

| +| [someOverload(x)](./api-documenter-scenarios.class1.someoverload.md) | | Some overload. Overrides Class3.someOverload. | + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.secondprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.secondprop.md new file mode 100644 index 00000000000..88d937932c6 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.secondprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Class1](./api-documenter-scenarios.class1.md) > [secondProp](./api-documenter-scenarios.class1.secondprop.md) + +## Class1.secondProp property + +A second prop. Overrides `Class2.secondProp`. + +Signature: + +```typescript +secondProp: boolean; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.someoverload.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.someoverload.md new file mode 100644 index 00000000000..4d3c6e4e0c0 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.someoverload.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Class1](./api-documenter-scenarios.class1.md) > [someOverload](./api-documenter-scenarios.class1.someoverload.md) + +## Class1.someOverload() method + +Some overload. Overrides `Class3.someOverload`. + +Signature: + +```typescript +someOverload(x: boolean | string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| x | boolean \| string | | + +Returns: + +void + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.md new file mode 100644 index 00000000000..ed505536b4c --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.md @@ -0,0 +1,30 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Class2](./api-documenter-scenarios.class2.md) + +## Class2 class + + +Signature: + +```typescript +export declare class Class2 extends Namespace1.Class3 +``` +Extends: [Namespace1.Class3](./api-documenter-scenarios.namespace1.class3.md) + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [secondProp](./api-documenter-scenarios.class2.secondprop.md) | | boolean \| string | A second prop. | +| [someProp](./api-documenter-scenarios.namespace1.class3.someprop.md) | | number |

Some prop.

(Inherited from [Class3](./api-documenter-scenarios.namespace1.class3.md))

| +| [thirdProp](./api-documenter-scenarios.class2.thirdprop.md) | | T | A third prop. | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [someMethod(x)](./api-documenter-scenarios.class2.somemethod.md) | | Some method. Overrides Class3.someMethod. | +| [someOverload(x)](./api-documenter-scenarios.namespace1.class3.someoverload.md) | |

Some overload.

(Inherited from [Class3](./api-documenter-scenarios.namespace1.class3.md))

| +| [someOverload(x)](./api-documenter-scenarios.namespace1.class3.someoverload_1.md) | |

Some overload.

(Inherited from [Class3](./api-documenter-scenarios.namespace1.class3.md))

| + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.secondprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.secondprop.md new file mode 100644 index 00000000000..3cd6d33ddf1 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.secondprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Class2](./api-documenter-scenarios.class2.md) > [secondProp](./api-documenter-scenarios.class2.secondprop.md) + +## Class2.secondProp property + +A second prop. + +Signature: + +```typescript +secondProp: boolean | string; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.somemethod.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.somemethod.md new file mode 100644 index 00000000000..76593e3305b --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.somemethod.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Class2](./api-documenter-scenarios.class2.md) > [someMethod](./api-documenter-scenarios.class2.somemethod.md) + +## Class2.someMethod() method + +Some method. Overrides `Class3.someMethod`. + +Signature: + +```typescript +someMethod(x: boolean): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| x | boolean | | + +Returns: + +void + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.thirdprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.thirdprop.md new file mode 100644 index 00000000000..c9e77cd20b1 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.thirdprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Class2](./api-documenter-scenarios.class2.md) > [thirdProp](./api-documenter-scenarios.class2.thirdprop.md) + +## Class2.thirdProp property + +A third prop. + +Signature: + +```typescript +thirdProp: T; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.classlikevariable.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.classlikevariable.md new file mode 100644 index 00000000000..f1511fa4620 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.classlikevariable.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [ClassLikeVariable](./api-documenter-scenarios.classlikevariable.md) + +## ClassLikeVariable variable + +Some class-like variable. + +Signature: + +```typescript +ClassLikeVariable: { + new (): { + someProp: number; + }; +} +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsanonymousclass.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsanonymousclass.md new file mode 100644 index 00000000000..097aad9a4d2 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsanonymousclass.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [ExtendsAnonymousClass](./api-documenter-scenarios.extendsanonymousclass.md) + +## ExtendsAnonymousClass class + +Some class that extends an anonymous class. + +Signature: + +```typescript +export declare class ExtendsAnonymousClass extends ExtendsAnonymousClass_base +``` +Extends: ExtendsAnonymousClass\_base + +(Some inherited members may not be shown because they are not represented in the documentation.) + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclassfromanotherpackage.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclassfromanotherpackage.md new file mode 100644 index 00000000000..a920ca7732c --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclassfromanotherpackage.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [ExtendsClassFromAnotherPackage](./api-documenter-scenarios.extendsclassfromanotherpackage.md) + +## ExtendsClassFromAnotherPackage class + +Some class that extends a class from another package. This base class is not in any API doc model. + +Signature: + +```typescript +export declare class ExtendsClassFromAnotherPackage extends Extractor +``` +Extends: Extractor + +(Some inherited members may not be shown because they are not represented in the documentation.) + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclasslikevariable.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclasslikevariable.md new file mode 100644 index 00000000000..ce358851bfa --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclasslikevariable.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [ExtendsClassLikeVariable](./api-documenter-scenarios.extendsclasslikevariable.md) + +## ExtendsClassLikeVariable class + +Some class that extends a class-like variable. + +Signature: + +```typescript +export declare class ExtendsClassLikeVariable extends ClassLikeVariable +``` +Extends: ClassLikeVariable + +(Some inherited members may not be shown because they are not represented in the documentation.) + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsunexportedclass.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsunexportedclass.md new file mode 100644 index 00000000000..355d9611d44 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsunexportedclass.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [ExtendsUnexportedClass](./api-documenter-scenarios.extendsunexportedclass.md) + +## ExtendsUnexportedClass class + +Some class that extends an unexported class. + +Signature: + +```typescript +export declare class ExtendsUnexportedClass extends UnexportedClass +``` +Extends: UnexportedClass + +(Some inherited members may not be shown because they are not represented in the documentation.) + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsinterfaceliketypealias.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsinterfaceliketypealias.md new file mode 100644 index 00000000000..ddf3ffe6f3e --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsinterfaceliketypealias.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IExtendsInterfaceLikeTypeAlias](./api-documenter-scenarios.iextendsinterfaceliketypealias.md) + +## IExtendsInterfaceLikeTypeAlias interface + +Some interface that extends an interface-like type alias as well as another interface. + +Signature: + +```typescript +export interface IExtendsInterfaceLikeTypeAlias extends IInterfaceLikeTypeAlias, IInterface1 +``` +Extends: [IInterfaceLikeTypeAlias](./api-documenter-scenarios.iinterfaceliketypealias.md), [IInterface1](./api-documenter-scenarios.iinterface1.md) + +(Some inherited members may not be shown because they are not represented in the documentation.) + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [secondProp](./api-documenter-scenarios.iinterface1.secondprop.md) | | boolean \| string |

A second prop.

(Inherited from [IInterface1](./api-documenter-scenarios.iinterface1.md))

| +| [someProp](./api-documenter-scenarios.iinterface1.someprop.md) | | number |

Some prop.

(Inherited from [IInterface1](./api-documenter-scenarios.iinterface1.md))

| + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.md new file mode 100644 index 00000000000..77e1c48bca6 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IExtendsMultipleInterfaces](./api-documenter-scenarios.iextendsmultipleinterfaces.md) + +## IExtendsMultipleInterfaces interface + +Some interface that extends multiple interfaces. + +Signature: + +```typescript +export interface IExtendsMultipleInterfaces extends IInterface1, IInterface2 +``` +Extends: [IInterface1](./api-documenter-scenarios.iinterface1.md), [IInterface2](./api-documenter-scenarios.iinterface2.md) + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [secondProp](./api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md) | | boolean | A second prop. Overrides IInterface1.someProp. | +| [someProp](./api-documenter-scenarios.iinterface1.someprop.md) | | number |

Some prop.

(Inherited from [IInterface1](./api-documenter-scenarios.iinterface1.md))

| +| [thirdProp](./api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md) | | string | A third prop. | + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md new file mode 100644 index 00000000000..5a9fb3b83fa --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IExtendsMultipleInterfaces](./api-documenter-scenarios.iextendsmultipleinterfaces.md) > [secondProp](./api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md) + +## IExtendsMultipleInterfaces.secondProp property + +A second prop. Overrides `IInterface1.someProp`. + +Signature: + +```typescript +secondProp: boolean; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md new file mode 100644 index 00000000000..835f41f7860 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IExtendsMultipleInterfaces](./api-documenter-scenarios.iextendsmultipleinterfaces.md) > [thirdProp](./api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md) + +## IExtendsMultipleInterfaces.thirdProp property + +A third prop. + +Signature: + +```typescript +thirdProp: string; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.md new file mode 100644 index 00000000000..7ec58265781 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IInterface1](./api-documenter-scenarios.iinterface1.md) + +## IInterface1 interface + + +Signature: + +```typescript +export interface IInterface1 +``` + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [secondProp](./api-documenter-scenarios.iinterface1.secondprop.md) | | boolean \| string | A second prop. | +| [someProp](./api-documenter-scenarios.iinterface1.someprop.md) | | number | Some prop. | + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.secondprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.secondprop.md new file mode 100644 index 00000000000..05ce9c31e1e --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.secondprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IInterface1](./api-documenter-scenarios.iinterface1.md) > [secondProp](./api-documenter-scenarios.iinterface1.secondprop.md) + +## IInterface1.secondProp property + +A second prop. + +Signature: + +```typescript +secondProp: boolean | string; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.someprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.someprop.md new file mode 100644 index 00000000000..da41c88728e --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.someprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IInterface1](./api-documenter-scenarios.iinterface1.md) > [someProp](./api-documenter-scenarios.iinterface1.someprop.md) + +## IInterface1.someProp property + +Some prop. + +Signature: + +```typescript +someProp: number; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.md new file mode 100644 index 00000000000..4816e2799d3 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IInterface2](./api-documenter-scenarios.iinterface2.md) + +## IInterface2 interface + + +Signature: + +```typescript +export interface IInterface2 +``` + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [someProp](./api-documenter-scenarios.iinterface2.someprop.md) | | number | Some prop. | + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.someprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.someprop.md new file mode 100644 index 00000000000..4079ad6f63f --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.someprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IInterface2](./api-documenter-scenarios.iinterface2.md) > [someProp](./api-documenter-scenarios.iinterface2.someprop.md) + +## IInterface2.someProp property + +Some prop. + +Signature: + +```typescript +someProp: number; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterfaceliketypealias.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterfaceliketypealias.md new file mode 100644 index 00000000000..adb92231563 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterfaceliketypealias.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [IInterfaceLikeTypeAlias](./api-documenter-scenarios.iinterfaceliketypealias.md) + +## IInterfaceLikeTypeAlias type + +Some interface-like type alias. + +Signature: + +```typescript +export declare type IInterfaceLikeTypeAlias = { + someProp: number; +}; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.md new file mode 100644 index 00000000000..32669c2e697 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.md @@ -0,0 +1,44 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) + +## api-documenter-scenarios package + +## Classes + +| Class | Description | +| --- | --- | +| [Class1](./api-documenter-scenarios.class1.md) | | +| [Class2](./api-documenter-scenarios.class2.md) | | +| [ExtendsAnonymousClass](./api-documenter-scenarios.extendsanonymousclass.md) | Some class that extends an anonymous class. | +| [ExtendsClassFromAnotherPackage](./api-documenter-scenarios.extendsclassfromanotherpackage.md) | Some class that extends a class from another package. This base class is not in any API doc model. | +| [ExtendsClassLikeVariable](./api-documenter-scenarios.extendsclasslikevariable.md) | Some class that extends a class-like variable. | +| [ExtendsUnexportedClass](./api-documenter-scenarios.extendsunexportedclass.md) | Some class that extends an unexported class. | + +## Interfaces + +| Interface | Description | +| --- | --- | +| [IExtendsInterfaceLikeTypeAlias](./api-documenter-scenarios.iextendsinterfaceliketypealias.md) | Some interface that extends an interface-like type alias as well as another interface. | +| [IExtendsMultipleInterfaces](./api-documenter-scenarios.iextendsmultipleinterfaces.md) | Some interface that extends multiple interfaces. | +| [IInterface1](./api-documenter-scenarios.iinterface1.md) | | +| [IInterface2](./api-documenter-scenarios.iinterface2.md) | | + +## Namespaces + +| Namespace | Description | +| --- | --- | +| [Namespace1](./api-documenter-scenarios.namespace1.md) | | + +## Variables + +| Variable | Description | +| --- | --- | +| [ClassLikeVariable](./api-documenter-scenarios.classlikevariable.md) | Some class-like variable. | + +## Type Aliases + +| Type Alias | Description | +| --- | --- | +| [IInterfaceLikeTypeAlias](./api-documenter-scenarios.iinterfaceliketypealias.md) | Some interface-like type alias. | + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.md new file mode 100644 index 00000000000..a5014d799fc --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.md @@ -0,0 +1,27 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Namespace1](./api-documenter-scenarios.namespace1.md) > [Class3](./api-documenter-scenarios.namespace1.class3.md) + +## Namespace1.Class3 class + + +Signature: + +```typescript +class Class3 +``` + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [someProp](./api-documenter-scenarios.namespace1.class3.someprop.md) | | number | Some prop. | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [someMethod(x)](./api-documenter-scenarios.namespace1.class3.somemethod.md) | | Some method. | +| [someOverload(x)](./api-documenter-scenarios.namespace1.class3.someoverload.md) | | Some overload. | +| [someOverload(x)](./api-documenter-scenarios.namespace1.class3.someoverload_1.md) | | Some overload. | + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.somemethod.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.somemethod.md new file mode 100644 index 00000000000..4975757832e --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.somemethod.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Namespace1](./api-documenter-scenarios.namespace1.md) > [Class3](./api-documenter-scenarios.namespace1.class3.md) > [someMethod](./api-documenter-scenarios.namespace1.class3.somemethod.md) + +## Namespace1.Class3.someMethod() method + +Some method. + +Signature: + +```typescript +someMethod(x: boolean | string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| x | boolean \| string | | + +Returns: + +void + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload.md new file mode 100644 index 00000000000..23b0f47ddd0 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Namespace1](./api-documenter-scenarios.namespace1.md) > [Class3](./api-documenter-scenarios.namespace1.class3.md) > [someOverload](./api-documenter-scenarios.namespace1.class3.someoverload.md) + +## Namespace1.Class3.someOverload() method + +Some overload. + +Signature: + +```typescript +someOverload(x: boolean): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| x | boolean | | + +Returns: + +void + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload_1.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload_1.md new file mode 100644 index 00000000000..cc9cc6b5006 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload_1.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Namespace1](./api-documenter-scenarios.namespace1.md) > [Class3](./api-documenter-scenarios.namespace1.class3.md) > [someOverload](./api-documenter-scenarios.namespace1.class3.someoverload_1.md) + +## Namespace1.Class3.someOverload() method + +Some overload. + +Signature: + +```typescript +someOverload(x: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| x | string | | + +Returns: + +void + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someprop.md new file mode 100644 index 00000000000..2083e377c19 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someprop.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Namespace1](./api-documenter-scenarios.namespace1.md) > [Class3](./api-documenter-scenarios.namespace1.class3.md) > [someProp](./api-documenter-scenarios.namespace1.class3.someprop.md) + +## Namespace1.Class3.someProp property + +Some prop. + +Signature: + +```typescript +someProp: number; +``` diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.md new file mode 100644 index 00000000000..3e8b7e5051b --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [api-documenter-scenarios](./api-documenter-scenarios.md) > [Namespace1](./api-documenter-scenarios.namespace1.md) + +## Namespace1 namespace + + +Signature: + +```typescript +export declare namespace Namespace1 +``` + +## Classes + +| Class | Description | +| --- | --- | +| [Class3](./api-documenter-scenarios.namespace1.class3.md) | | + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/index.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/index.md new file mode 100644 index 00000000000..f5ce6743125 --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/index.md @@ -0,0 +1,12 @@ + + +[Home](./index.md) + +## API Reference + +## Packages + +| Package | Description | +| --- | --- | +| [api-documenter-scenarios](./api-documenter-scenarios.md) | | + diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/rollup.d.ts b/build-tests/api-documenter-scenarios/etc/inheritedMembers/rollup.d.ts new file mode 100644 index 00000000000..5a2309fcc4f --- /dev/null +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/rollup.d.ts @@ -0,0 +1,128 @@ +import { Extractor } from '@microsoft/api-extractor'; + +/** @public */ +export declare class Class1 extends Class2 { + /** A second prop. Overrides `Class2.secondProp`. */ + secondProp: boolean; + /** A fourth prop */ + fourthProp: number; + /** Some overload. Overrides `Class3.someOverload`. */ + someOverload(x: boolean | string): void; +} + +/** @public */ +export declare class Class2 extends Namespace1.Class3 { + /** A second prop. */ + secondProp: boolean | string; + /** A third prop. */ + thirdProp: T; + /** Some method. Overrides `Class3.someMethod`. */ + someMethod(x: boolean): void; +} + +/** + * Some class-like variable. + * @public + */ +export declare const ClassLikeVariable: { + new (): { + someProp: number; + }; +}; + +/** + * Some class that extends an anonymous class. + * @public + */ +export declare class ExtendsAnonymousClass extends ExtendsAnonymousClass_base { +} + +declare const ExtendsAnonymousClass_base: { + new (): { + someProp: number; + }; +}; + +/** + * Some class that extends a class from another package. This base class + * is not in any API doc model. + * @public + */ +export declare class ExtendsClassFromAnotherPackage extends Extractor { +} + +/** + * Some class that extends a class-like variable. + * @public + */ +export declare class ExtendsClassLikeVariable extends ClassLikeVariable { +} + +/** + * Some class that extends an unexported class. + * @public + */ +export declare class ExtendsUnexportedClass extends UnexportedClass { +} + +/** + * Some interface that extends an interface-like type alias as well as + * another interface. + * @public + */ +export declare interface IExtendsInterfaceLikeTypeAlias extends IInterfaceLikeTypeAlias, IInterface1 { +} + +/** + * Some interface that extends multiple interfaces. + * @public + */ +export declare interface IExtendsMultipleInterfaces extends IInterface1, IInterface2 { + /** A second prop. Overrides `IInterface1.someProp`. */ + secondProp: boolean; + /** A third prop. */ + thirdProp: string; +} + +/** @public */ +export declare interface IInterface1 { + /** Some prop. */ + someProp: number; + /** A second prop. */ + secondProp: boolean | string; +} + +/** @public */ +export declare interface IInterface2 { + /** Some prop. */ + someProp: number; +} + +/** + * Some interface-like type alias. + * @public + */ +export declare type IInterfaceLikeTypeAlias = { + someProp: number; +}; + +/** @public */ +export declare namespace Namespace1 { + /** @public */ + export class Class3 { + /** Some prop. */ + someProp: number; + /** Some method. */ + someMethod(x: boolean | string): void; + /** Some overload. */ + someOverload(x: boolean): void; + /** Some overload. */ + someOverload(x: string): void; + } +} + +declare class UnexportedClass { + someProp: number; +} + +export { } diff --git a/build-tests/api-documenter-scenarios/package.json b/build-tests/api-documenter-scenarios/package.json new file mode 100644 index 00000000000..90d886fe951 --- /dev/null +++ b/build-tests/api-documenter-scenarios/package.json @@ -0,0 +1,21 @@ +{ + "name": "api-documenter-scenarios", + "description": "Building this project is a regression test for api-documenter", + "version": "1.0.0", + "private": true, + "typings": "dist/internal/some-fake-file.d.ts", + "scripts": { + "build": "node build.js", + "_phase:build": "node build.js" + }, + "devDependencies": { + "@microsoft/api-documenter": "workspace:*", + "@microsoft/api-extractor": "workspace:*", + "@microsoft/teams-js": "1.3.0-beta.4", + "@rushstack/node-core-library": "workspace:*", + "@types/jest": "27.4.0", + "@types/node": "12.20.24", + "fs-extra": "~7.0.1", + "typescript": "~4.6.3" + } +} diff --git a/build-tests/api-documenter-scenarios/src/inheritedMembers/config/api-documenter-overrides.json b/build-tests/api-documenter-scenarios/src/inheritedMembers/config/api-documenter-overrides.json new file mode 100644 index 00000000000..f13c2e1fd70 --- /dev/null +++ b/build-tests/api-documenter-scenarios/src/inheritedMembers/config/api-documenter-overrides.json @@ -0,0 +1,3 @@ +{ + "showInheritedMembers": true +} diff --git a/build-tests/api-documenter-scenarios/src/inheritedMembers/index.ts b/build-tests/api-documenter-scenarios/src/inheritedMembers/index.ts new file mode 100644 index 00000000000..5852291681b --- /dev/null +++ b/build-tests/api-documenter-scenarios/src/inheritedMembers/index.ts @@ -0,0 +1,126 @@ +import { Extractor } from '@microsoft/api-extractor'; + +/** @public */ +export namespace Namespace1 { + /** @public */ + export class Class3 { + /** Some prop. */ + someProp: number; + + /** Some method. */ + someMethod(x: boolean | string): void {} + + /** Some overload. */ + someOverload(x: boolean): void; + + /** Some overload. */ + someOverload(x: string): void; + + someOverload(x: boolean | string): void {} + } +} + +/** @public */ +export class Class2 extends Namespace1.Class3 { + /** A second prop. */ + secondProp: boolean | string; + + /** A third prop. */ + thirdProp: T; + + /** Some method. Overrides `Class3.someMethod`. */ + someMethod(x: boolean): void {} +} + +/** @public */ +export class Class1 extends Class2 { + /** A second prop. Overrides `Class2.secondProp`. */ + secondProp: boolean; + + /** A fourth prop */ + fourthProp: number; + + /** Some overload. Overrides `Class3.someOverload`. */ + someOverload(x: boolean | string): void {} +} + +/** @public */ +export interface IInterface1 { + /** Some prop. */ + someProp: number; + + /** A second prop. */ + secondProp: boolean | string; +} + +/** @public */ +export interface IInterface2 { + /** Some prop. */ + someProp: number; +} + +/** + * Some interface that extends multiple interfaces. + * @public + */ +export interface IExtendsMultipleInterfaces extends IInterface1, IInterface2 { + /** A second prop. Overrides `IInterface1.someProp`. */ + secondProp: boolean; + + /** A third prop. */ + thirdProp: string; +} + +class UnexportedClass { + someProp: number; +} + +/** + * Some class that extends an unexported class. + * @public + */ +export class ExtendsUnexportedClass extends UnexportedClass {} + +/** + * Some class that extends an anonymous class. + * @public + */ +export class ExtendsAnonymousClass extends class { + someProp: number; +} {} + +/** + * Some class-like variable. + * @public + */ +export const ClassLikeVariable = class { + someProp: number; +}; + +/** + * Some class that extends a class-like variable. + * @public + */ +export class ExtendsClassLikeVariable extends ClassLikeVariable {} + +/** + * Some interface-like type alias. + * @public + */ +export type IInterfaceLikeTypeAlias = { + someProp: number; +}; + +/** + * Some interface that extends an interface-like type alias as well as + * another interface. + * @public + */ +export interface IExtendsInterfaceLikeTypeAlias extends IInterfaceLikeTypeAlias, IInterface1 {} + +/** + * Some class that extends a class from another package. This base class + * is not in any API doc model. + * @public + */ +export class ExtendsClassFromAnotherPackage extends Extractor {} diff --git a/build-tests/api-documenter-scenarios/src/runScenarios.ts b/build-tests/api-documenter-scenarios/src/runScenarios.ts new file mode 100644 index 00000000000..ed160fdd283 --- /dev/null +++ b/build-tests/api-documenter-scenarios/src/runScenarios.ts @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import * as path from 'path'; +import child_process = require('child_process'); +import { AlreadyExistsBehavior, FileSystem, JsonFile } from '@rushstack/node-core-library'; +import { + Extractor, + ExtractorConfig, + CompilerState, + ExtractorResult, + ExtractorMessage, + ConsoleMessageId, + ExtractorLogLevel +} from '@microsoft/api-extractor'; + +export function runScenarios(buildConfigPath: string): void { + const buildConfig = JsonFile.load(buildConfigPath); + + // Copy any .d.ts files into the "lib/" folder + FileSystem.copyFiles({ + sourcePath: './src/', + destinationPath: './lib/', + alreadyExistsBehavior: AlreadyExistsBehavior.Overwrite, + filter: (sourcePath: string): boolean => { + if (sourcePath.endsWith('.d.ts') || !sourcePath.endsWith('.ts')) { + // console.log('COPY ' + sourcePath); + return true; + } + return false; + } + }); + + const entryPoints: string[] = []; + + for (const scenarioFolderName of buildConfig.scenarioFolderNames) { + const entryPoint: string = path.resolve(`./lib/${scenarioFolderName}/index.d.ts`); + entryPoints.push(entryPoint); + + const apiExtractorOverridesPath = path.resolve( + `./src/${scenarioFolderName}/config/api-extractor-overrides.json` + ); + const apiExtractorJsonOverrides = FileSystem.exists(apiExtractorOverridesPath) + ? JsonFile.load(apiExtractorOverridesPath) + : {}; + const apiExtractorJson = { + $schema: 'https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json', + + mainEntryPointFilePath: entryPoint, + + apiReport: { + enabled: true, + reportFolder: `/etc/${scenarioFolderName}` + }, + + dtsRollup: { + enabled: true, + untrimmedFilePath: `/etc/${scenarioFolderName}/rollup.d.ts` + }, + + docModel: { + enabled: true, + apiJsonFilePath: `/etc/${scenarioFolderName}/.api.json` + }, + + testMode: true, + ...apiExtractorJsonOverrides + }; + + const apiExtractorJsonPath: string = `./temp/configs/api-extractor-${scenarioFolderName}.json`; + + JsonFile.save(apiExtractorJson, apiExtractorJsonPath, { ensureFolderExists: true }); + } + + const apiDocumenterJsonPath: string = `./config/api-documenter.json`; + + let compilerState: CompilerState | undefined = undefined; + let anyErrors: boolean = false; + process.exitCode = 1; + + for (const scenarioFolderName of buildConfig.scenarioFolderNames) { + console.log('Scenario: ' + scenarioFolderName); + + // Run the API Extractor programmtically + const apiExtractorJsonPath: string = `./temp/configs/api-extractor-${scenarioFolderName}.json`; + const extractorConfig: ExtractorConfig = ExtractorConfig.loadFileAndPrepare(apiExtractorJsonPath); + + if (!compilerState) { + compilerState = CompilerState.create(extractorConfig, { + additionalEntryPoints: entryPoints + }); + } + + const extractorResult: ExtractorResult = Extractor.invoke(extractorConfig, { + localBuild: true, + showVerboseMessages: true, + messageCallback: (message: ExtractorMessage) => { + switch (message.messageId) { + case ConsoleMessageId.ApiReportCreated: + // This script deletes the outputs for a clean build, so don't issue a warning if the file gets created + message.logLevel = ExtractorLogLevel.None; + break; + case ConsoleMessageId.Preamble: + // Less verbose output + message.logLevel = ExtractorLogLevel.None; + break; + } + }, + compilerState + }); + + if (extractorResult.errorCount > 0) { + anyErrors = true; + } + + // API Documenter will always look for a config file in the same place (it cannot be configured), so this script + // manually overwrites the API documenter config for each scenario. This is in contrast to the separate config files + // created when invoking API Extractor above. + const apiDocumenterOverridesPath = path.resolve( + `./src/${scenarioFolderName}/config/api-documenter-overrides.json` + ); + const apiDocumenterJsonOverrides = FileSystem.exists(apiDocumenterOverridesPath) + ? JsonFile.load(apiDocumenterOverridesPath) + : {}; + const apiDocumenterJson = { + $schema: 'https://developer.microsoft.com/json-schemas/api-extractor/v7/api-documenter.schema.json', + outputTarget: 'markdown', + tableOfContents: {}, + ...apiDocumenterJsonOverrides + }; + + JsonFile.save(apiDocumenterJson, apiDocumenterJsonPath, { ensureFolderExists: true }); + + // Run the API Documenter command-line + executeCommand( + 'node node_modules/@microsoft/api-documenter/lib/start ' + + `generate --input-folder etc/${scenarioFolderName} --output-folder etc/${scenarioFolderName}/markdown` + ); + } + + // Delete the transient `api-documenter.json` file before completing, as it'll just be whatever the last scenario + // was, and shouldn't be committed. + FileSystem.deleteFile(apiDocumenterJsonPath); + + if (!anyErrors) { + process.exitCode = 0; + } +} + +function executeCommand(command) { + console.log('---> ' + command); + child_process.execSync(command, { stdio: 'inherit' }); +} diff --git a/build-tests/api-documenter-scenarios/tsconfig.json b/build-tests/api-documenter-scenarios/tsconfig.json new file mode 100644 index 00000000000..748d07a6ea4 --- /dev/null +++ b/build-tests/api-documenter-scenarios/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "es6", + "forceConsistentCasingInFileNames": true, + "module": "commonjs", + "declaration": true, + "sourceMap": true, + "declarationMap": true, + "experimentalDecorators": true, + "strictNullChecks": true, + "types": ["node", "jest"], + "lib": ["es5", "scripthost", "es2015.collection", "es2015.promise", "es2015.iterable", "dom"], + "outDir": "lib" + }, + "include": ["src/**/*.ts"] +} diff --git a/build-tests/api-extractor-scenarios/build.js b/build-tests/api-extractor-scenarios/build.js index b15b2f947ca..04eec231385 100644 --- a/build-tests/api-extractor-scenarios/build.js +++ b/build-tests/api-extractor-scenarios/build.js @@ -15,7 +15,7 @@ console.log(); fsx.emptyDirSync('dist'); fsx.emptyDirSync('lib'); fsx.emptyDirSync('temp'); -fsx.emptyDirSync('etc/test-outputs'); +fsx.emptyDirSync('etc'); // Run the TypeScript compiler executeCommand('node node_modules/typescript/lib/tsc'); diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/ambientNameConflict/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/ambientNameConflict/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/ambientNameConflict/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/ambientNameConflict/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/ambientNameConflict/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/ambientNameConflict/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/ambientNameConflict2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/ambientNameConflict2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/ambientNameConflict2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/ambientNameConflict2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/ambientNameConflict2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/ambientNameConflict2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/apiItemKinds/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/apiItemKinds/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/apiItemKinds/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/apiItemKinds/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/apiItemKinds/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/apiItemKinds/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/bundledPackages/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/bundledPackages/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/bundledPackages/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/bundledPackages/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/bundledPackages/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/bundledPackages/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/circularImport/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/circularImport/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/circularImport/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/circularImport/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/circularImport/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/circularImport/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/circularImport2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/circularImport2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/circularImport2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/circularImport2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/circularImport2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/circularImport2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/docReferences/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/docReferences/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/docReferences/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/docReferences/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/docReferences/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/docReferences/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/docReferences2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/docReferences2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/docReferences2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/docReferences2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/docReferences2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/docReferences2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/docReferences3/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/docReferences3/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/docReferences3/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/docReferences3/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/docReferences3/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/docReferences3/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/dynamicImportType/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/dynamicImportType/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/dynamicImportType/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/dynamicImportType/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/dynamicImportType/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/dynamicImportType/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/dynamicImportType2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/dynamicImportType2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/dynamicImportType2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/dynamicImportType2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/dynamicImportType2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/dynamicImportType2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/dynamicImportType3/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/dynamicImportType3/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/dynamicImportType3/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/dynamicImportType3/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/dynamicImportType3/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/dynamicImportType3/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/enumSorting/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/enumSorting/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/enumSorting/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/enumSorting/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/enumSorting/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/enumSorting/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/excerptTokens/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/excerptTokens/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/excerptTokens/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/excerptTokens/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/excerptTokens/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/excerptTokens/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportDuplicate/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportDuplicate/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportDuplicate/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportDuplicate/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportDuplicate/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportDuplicate/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportEquals/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportEquals/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportEquals/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportEquals/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportEquals/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportEquals/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportStarAs/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportImportStarAs/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportImportStarAs/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportImportStarAs/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportImportStarAs/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportImportStarAs/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportStarAs2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportImportStarAs2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportImportStarAs2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportImportStarAs2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportImportStarAs2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportImportStarAs2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportedExternal/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportImportedExternal/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportImportedExternal/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportImportedExternal/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportImportedExternal/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportImportedExternal/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportedExternal2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportImportedExternal2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportImportedExternal2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportImportedExternal2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportImportedExternal2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportImportedExternal2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportStar/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportStar/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportStar/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportStar/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportStar/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportStar/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportStar2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportStar2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportStar2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportStar2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportStar2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportStar2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportStar3/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/exportStar3/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/exportStar3/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/exportStar3/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/exportStar3/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/exportStar3/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/alpha-rollup.d.ts b/build-tests/api-extractor-scenarios/etc/functionOverload/alpha-rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/alpha-rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/functionOverload/alpha-rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/functionOverload/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/functionOverload/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/functionOverload/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/functionOverload/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/beta-rollup.d.ts b/build-tests/api-extractor-scenarios/etc/functionOverload/beta-rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/beta-rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/functionOverload/beta-rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/public-rollup.d.ts b/build-tests/api-extractor-scenarios/etc/functionOverload/public-rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/public-rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/functionOverload/public-rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/functionOverload/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/functionOverload/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/importEquals/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/importEquals/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/importEquals/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/importEquals/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/importEquals/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/importEquals/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/importType/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/importType/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/importType/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/importType/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/importType/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/importType/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/importType/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/importType/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/importType/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/importType/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/importType/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/importType/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/internationalCharacters/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/internationalCharacters/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/internationalCharacters/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/internationalCharacters/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/internationalCharacters/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/internationalCharacters/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/mergedDeclarations/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/mergedDeclarations/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/mergedDeclarations/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/mergedDeclarations/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/mergedDeclarations/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/mergedDeclarations/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/mergedDeclarations/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/mergedDeclarations/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/mergedDeclarations/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/mergedDeclarations/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/mergedDeclarations/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/mergedDeclarations/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/mixinPattern/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/mixinPattern/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/mixinPattern/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/mixinPattern/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/mixinPattern/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/mixinPattern/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/mixinPattern/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/mixinPattern/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/mixinPattern/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/mixinPattern/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/mixinPattern/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/mixinPattern/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/namedDefaultImport/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/namedDefaultImport/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/namedDefaultImport/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/namedDefaultImport/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/namedDefaultImport/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/namedDefaultImport/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/preapproved/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/preapproved/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/preapproved/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/preapproved/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/preapproved/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/preapproved/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/readonlyDeclarations/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/readonlyDeclarations/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/readonlyDeclarations/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/readonlyDeclarations/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/readonlyDeclarations/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/readonlyDeclarations/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/spanSorting/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/spanSorting/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/spanSorting/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/spanSorting/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/spanSorting/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/spanSorting/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeOf/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/typeOf/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/typeOf/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/typeOf/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/typeOf/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/typeOf/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeOf2/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/typeOf2/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/typeOf2/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/typeOf2/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/typeOf2/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/typeOf2/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeOf3/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/typeOf3/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/typeOf3/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/typeOf3/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/typeOf3/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/typeOf3/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeParameters/api-extractor-scenarios.api.json similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/api-extractor-scenarios.api.json rename to build-tests/api-extractor-scenarios/etc/typeParameters/api-extractor-scenarios.api.json diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/typeParameters/api-extractor-scenarios.api.md similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/api-extractor-scenarios.api.md rename to build-tests/api-extractor-scenarios/etc/typeParameters/api-extractor-scenarios.api.md diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/typeParameters/rollup.d.ts similarity index 100% rename from build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/rollup.d.ts rename to build-tests/api-extractor-scenarios/etc/typeParameters/rollup.d.ts diff --git a/build-tests/api-extractor-scenarios/package.json b/build-tests/api-extractor-scenarios/package.json index 6481b1a3198..45a48508331 100644 --- a/build-tests/api-extractor-scenarios/package.json +++ b/build-tests/api-extractor-scenarios/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "private": true, "main": "lib/index.js", - "typings": "dist/internal/api-extractor-test-01.d.ts", + "typings": "dist/internal/some-fake-file.d.ts", "scripts": { "build": "node build.js", "_phase:build": "node build.js" diff --git a/build-tests/api-extractor-scenarios/src/functionOverload/config/api-extractor-overrides.json b/build-tests/api-extractor-scenarios/src/functionOverload/config/api-extractor-overrides.json index f11b72cb8a3..10a6d0092aa 100644 --- a/build-tests/api-extractor-scenarios/src/functionOverload/config/api-extractor-overrides.json +++ b/build-tests/api-extractor-scenarios/src/functionOverload/config/api-extractor-overrides.json @@ -1,9 +1,9 @@ { "dtsRollup": { "enabled": true, - "untrimmedFilePath": "/etc/test-outputs/functionOverload/rollup.d.ts", - "alphaTrimmedFilePath": "/etc/test-outputs/functionOverload/alpha-rollup.d.ts", - "betaTrimmedFilePath": "/etc/test-outputs/functionOverload/beta-rollup.d.ts", - "publicTrimmedFilePath": "/etc/test-outputs/functionOverload/public-rollup.d.ts" + "untrimmedFilePath": "/etc/functionOverload/rollup.d.ts", + "alphaTrimmedFilePath": "/etc/functionOverload/alpha-rollup.d.ts", + "betaTrimmedFilePath": "/etc/functionOverload/beta-rollup.d.ts", + "publicTrimmedFilePath": "/etc/functionOverload/public-rollup.d.ts" } } diff --git a/build-tests/api-extractor-scenarios/src/runScenarios.ts b/build-tests/api-extractor-scenarios/src/runScenarios.ts index d33e8fdee77..a973ed03b0e 100644 --- a/build-tests/api-extractor-scenarios/src/runScenarios.ts +++ b/build-tests/api-extractor-scenarios/src/runScenarios.ts @@ -21,7 +21,7 @@ export function runScenarios(buildConfigPath: string): void { sourcePath: './src/', destinationPath: './lib/', alreadyExistsBehavior: AlreadyExistsBehavior.Overwrite, - filter: (sourcePath: string, destinationPath: string): boolean => { + filter: (sourcePath: string): boolean => { if (sourcePath.endsWith('.d.ts') || !sourcePath.endsWith('.ts')) { // console.log('COPY ' + sourcePath); return true; @@ -32,8 +32,6 @@ export function runScenarios(buildConfigPath: string): void { const entryPoints: string[] = []; - // TODO: Eliminate this workaround - // See GitHub issue https://github.com/microsoft/rushstack/issues/1017 for (const scenarioFolderName of buildConfig.scenarioFolderNames) { const entryPoint: string = path.resolve(`./lib/${scenarioFolderName}/index.d.ts`); entryPoints.push(entryPoint); @@ -47,17 +45,17 @@ export function runScenarios(buildConfigPath: string): void { apiReport: { enabled: true, - reportFolder: `/etc/test-outputs/${scenarioFolderName}` + reportFolder: `/etc/${scenarioFolderName}` }, dtsRollup: { enabled: true, - untrimmedFilePath: `/etc/test-outputs/${scenarioFolderName}/rollup.d.ts` + untrimmedFilePath: `/etc/${scenarioFolderName}/rollup.d.ts` }, docModel: { enabled: true, - apiJsonFilePath: `/etc/test-outputs/${scenarioFolderName}/.api.json` + apiJsonFilePath: `/etc/${scenarioFolderName}/.api.json` }, messages: { @@ -89,11 +87,10 @@ export function runScenarios(buildConfigPath: string): void { process.exitCode = 1; for (const scenarioFolderName of buildConfig.scenarioFolderNames) { - const apiExtractorJsonPath: string = `./temp/configs/api-extractor-${scenarioFolderName}.json`; - console.log('Scenario: ' + scenarioFolderName); - // Run the API Extractor command-line + // Run the API Extractor programmatically + const apiExtractorJsonPath: string = `./temp/configs/api-extractor-${scenarioFolderName}.json`; const extractorConfig: ExtractorConfig = ExtractorConfig.loadFileAndPrepare(apiExtractorJsonPath); if (!compilerState) { diff --git a/build-tests/install-test-workspace/workspace/common/pnpm-lock.yaml b/build-tests/install-test-workspace/workspace/common/pnpm-lock.yaml index 780ce0e4c6f..32016a04725 100644 --- a/build-tests/install-test-workspace/workspace/common/pnpm-lock.yaml +++ b/build-tests/install-test-workspace/workspace/common/pnpm-lock.yaml @@ -5,13 +5,13 @@ importers: typescript-newest-test: specifiers: '@rushstack/eslint-config': file:rushstack-eslint-config-2.6.2.tgz - '@rushstack/heft': file:rushstack-heft-0.46.4.tgz + '@rushstack/heft': file:rushstack-heft-0.46.5.tgz eslint: ~8.7.0 tslint: ~5.20.1 typescript: ~4.6.3 devDependencies: '@rushstack/eslint-config': file:../temp/tarballs/rushstack-eslint-config-2.6.2.tgz_eslint@8.7.0+typescript@4.6.4 - '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.46.4.tgz + '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.46.5.tgz eslint: 8.7.0 tslint: 5.20.1_typescript@4.6.4 typescript: 4.6.4 @@ -19,13 +19,13 @@ importers: typescript-v3-test: specifiers: '@rushstack/eslint-config': file:rushstack-eslint-config-2.6.2.tgz - '@rushstack/heft': file:rushstack-heft-0.46.4.tgz + '@rushstack/heft': file:rushstack-heft-0.46.5.tgz eslint: ~8.7.0 tslint: ~5.20.1 typescript: ~4.6.3 devDependencies: '@rushstack/eslint-config': file:../temp/tarballs/rushstack-eslint-config-2.6.2.tgz_eslint@8.7.0+typescript@4.6.4 - '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.46.4.tgz + '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.46.5.tgz eslint: 8.7.0 tslint: 5.20.1_typescript@4.6.4 typescript: 4.6.4 @@ -1804,10 +1804,10 @@ packages: - typescript dev: true - file:../temp/tarballs/rushstack-heft-0.46.4.tgz: - resolution: {tarball: file:../temp/tarballs/rushstack-heft-0.46.4.tgz} + file:../temp/tarballs/rushstack-heft-0.46.5.tgz: + resolution: {tarball: file:../temp/tarballs/rushstack-heft-0.46.5.tgz} name: '@rushstack/heft' - version: 0.46.4 + version: 0.46.5 engines: {node: '>=10.13.0'} hasBin: true dependencies: diff --git a/common/changes/@microsoft/api-documenter/inheritance-docs-api-documenter_2022-07-18-21-09.json b/common/changes/@microsoft/api-documenter/inheritance-docs-api-documenter_2022-07-18-21-09.json new file mode 100644 index 00000000000..a1abcb1062e --- /dev/null +++ b/common/changes/@microsoft/api-documenter/inheritance-docs-api-documenter_2022-07-18-21-09.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@microsoft/api-documenter", + "comment": "Add showInheritedMembers config to api-documenter that allows it to show an API item's inherited members.", + "type": "minor" + } + ], + "packageName": "@microsoft/api-documenter" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush/inheritance-docs-api-documenter_2022-07-21-21-31.json b/common/changes/@microsoft/rush/inheritance-docs-api-documenter_2022-07-21-21-31.json new file mode 100644 index 00000000000..bd7ff97cb34 --- /dev/null +++ b/common/changes/@microsoft/rush/inheritance-docs-api-documenter_2022-07-21-21-31.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 11f5bbaf4ad..82eea581898 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -480,6 +480,26 @@ importers: eslint: 8.7.0 typescript: 4.6.4 + ../../build-tests/api-documenter-scenarios: + specifiers: + '@microsoft/api-documenter': workspace:* + '@microsoft/api-extractor': workspace:* + '@microsoft/teams-js': 1.3.0-beta.4 + '@rushstack/node-core-library': workspace:* + '@types/jest': 27.4.0 + '@types/node': 12.20.24 + fs-extra: ~7.0.1 + typescript: ~4.6.3 + devDependencies: + '@microsoft/api-documenter': link:../../apps/api-documenter + '@microsoft/api-extractor': link:../../apps/api-extractor + '@microsoft/teams-js': 1.3.0-beta.4 + '@rushstack/node-core-library': link:../../libraries/node-core-library + '@types/jest': 27.4.0 + '@types/node': 12.20.24 + fs-extra: 7.0.1 + typescript: 4.6.4 + ../../build-tests/api-documenter-test: specifiers: '@microsoft/api-documenter': workspace:* diff --git a/libraries/rush-lib/src/api/RushConfiguration.ts b/libraries/rush-lib/src/api/RushConfiguration.ts index f7d5841a4d1..c5941db9f7d 100644 --- a/libraries/rush-lib/src/api/RushConfiguration.ts +++ b/libraries/rush-lib/src/api/RushConfiguration.ts @@ -127,8 +127,8 @@ export interface IRushRepositoryJsonMultipleUrls extends IRushRepositoryJsonBase /** * Remote url(s) of the repository. If a value is provided, \"rush change\" will * use one of these to find the right remote to compare against. Specifying multiple URLs - * is useful if a GitHub repository is renamed or for ".visualstudio.com" vs - * "dev.azure.com/" URLs. + * is useful if a GitHub repository is renamed or for `.visualstudio.com` versus + * `dev.azure.com/` URLs. */ urls?: string[]; } @@ -1273,7 +1273,7 @@ export class RushConfiguration { * The minimum allowable folder depth for the projectFolder field in the rush.json file. * This setting provides a way for repository maintainers to discourage nesting of project folders * that makes the directory tree more difficult to navigate. The default value is 2, - * which implements a standard 2-level hierarchy of //package.json. + * which implements a standard 2-level hierarchy of `//package.json`. */ public get projectFolderMinDepth(): number { return this._projectFolderMinDepth; @@ -1283,7 +1283,7 @@ export class RushConfiguration { * The maximum allowable folder depth for the projectFolder field in the rush.json file. * This setting provides a way for repository maintainers to discourage nesting of project folders * that makes the directory tree more difficult to navigate. The default value is 2, - * which implements on a standard convention of //package.json. + * which implements on a standard convention of `//package.json`. */ public get projectFolderMaxDepth(): number { return this._projectFolderMaxDepth; @@ -1367,8 +1367,8 @@ export class RushConfiguration { /** * Remote URL(s) of the repository. If a value is provided, \"rush change\" will * use one of these to find the right remote to compare against. Specifying multiple URLs - * is useful if a GitHub repository is renamed or for ".visualstudio.com" vs - * "dev.azure.com/" URLs. + * is useful if a GitHub repository is renamed or for `.visualstudio.com` versus + * `dev.azure.com/` URLs. */ public get repositoryUrls(): string[] { return this._repositoryUrls; diff --git a/rush.json b/rush.json index fcaf81fecfd..45ceab59859 100644 --- a/rush.json +++ b/rush.json @@ -488,6 +488,12 @@ "reviewCategory": "tests", "shouldPublish": false }, + { + "packageName": "api-documenter-scenarios", + "projectFolder": "build-tests/api-documenter-scenarios", + "reviewCategory": "tests", + "shouldPublish": false + }, { "packageName": "api-extractor-lib1-test", "projectFolder": "build-tests/api-extractor-lib1-test",