diff --git a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts
index 7bcf4aec49a..bfefbbe212c 100644
--- a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts
+++ b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts
@@ -41,7 +41,9 @@ import {
ApiTypeAlias,
ExcerptToken,
ApiOptionalMixin,
- ApiInitializerMixin
+ ApiInitializerMixin,
+ ApiProtectedMixin,
+ ApiReadonlyMixin
} from '@microsoft/api-extractor-model';
import { CustomDocNodes } from '../nodes/CustomDocNodeKind';
@@ -755,12 +757,12 @@ export class MarkdownDocumenter {
const eventsTable: DocTable = new DocTable({
configuration,
- headerTitles: ['Property', 'Type', 'Description']
+ headerTitles: ['Property', 'Modifiers', 'Type', 'Description']
});
const propertiesTable: DocTable = new DocTable({
configuration,
- headerTitles: ['Property', 'Type', 'Description']
+ headerTitles: ['Property', 'Modifiers', 'Type', 'Description']
});
const methodsTable: DocTable = new DocTable({
@@ -787,6 +789,7 @@ export class MarkdownDocumenter {
eventsTable.addRow(
new DocTableRow({ configuration }, [
this._createTitleCell(apiMember),
+ this._createModifiersCell(apiMember),
this._createPropertyTypeCell(apiMember),
this._createDescriptionCell(apiMember)
])
@@ -795,6 +798,7 @@ export class MarkdownDocumenter {
propertiesTable.addRow(
new DocTableRow({ configuration }, [
this._createTitleCell(apiMember),
+ this._createModifiersCell(apiMember),
this._createPropertyTypeCell(apiMember),
this._createDescriptionCell(apiMember)
])
@@ -1007,9 +1011,27 @@ export class MarkdownDocumenter {
const section: DocSection = new DocSection({ configuration });
+ if (ApiProtectedMixin.isBaseClassOf(apiItem)) {
+ if (apiItem.isProtected) {
+ section.appendNode(
+ new DocParagraph({ configuration }, [new DocCodeSpan({ configuration, code: 'protected' })])
+ );
+ }
+ }
+
+ if (ApiReadonlyMixin.isBaseClassOf(apiItem)) {
+ if (apiItem.isReadonly) {
+ section.appendNode(
+ new DocParagraph({ configuration }, [new DocCodeSpan({ configuration, code: 'readonly' })])
+ );
+ }
+ }
+
if (ApiStaticMixin.isBaseClassOf(apiItem)) {
if (apiItem.isStatic) {
- section.appendNodeInParagraph(new DocCodeSpan({ configuration, code: 'static' }));
+ section.appendNode(
+ new DocParagraph({ configuration }, [new DocCodeSpan({ configuration, code: 'static' })])
+ );
}
}
diff --git a/apps/api-documenter/src/markdown/CustomMarkdownEmitter.ts b/apps/api-documenter/src/markdown/CustomMarkdownEmitter.ts
index 413c7ae620b..edec714d34a 100644
--- a/apps/api-documenter/src/markdown/CustomMarkdownEmitter.ts
+++ b/apps/api-documenter/src/markdown/CustomMarkdownEmitter.ts
@@ -147,7 +147,7 @@ export class CustomMarkdownEmitter extends MarkdownEmitter {
break;
}
default:
- super.writeNode(docNode, context, false);
+ super.writeNode(docNode, context, docNodeSiblings);
}
}
diff --git a/apps/api-documenter/src/markdown/MarkdownEmitter.ts b/apps/api-documenter/src/markdown/MarkdownEmitter.ts
index 7b1299d833b..85d76d4f09a 100644
--- a/apps/api-documenter/src/markdown/MarkdownEmitter.ts
+++ b/apps/api-documenter/src/markdown/MarkdownEmitter.ts
@@ -141,9 +141,13 @@ export class MarkdownEmitter {
const trimmedParagraph: DocParagraph = DocNodeTransforms.trimSpacesInParagraph(docParagraph);
if (context.insideTable) {
if (docNodeSiblings) {
- writer.write('
');
- this.writeNodes(trimmedParagraph.nodes, context);
- writer.write('
');
+ // This tentative write is necessary to avoid writing empty paragraph tags (i.e. ``). At the
+ // time this code runs, we do not know whether the `writeNodes` call below will actually write
+ // anything. Thus, we want to only write a `` tag (as well as eventually a corresponding
+ // `
` tag) if something ends up being written within the tags.
+ writer.writeTentative('', '
', () => {
+ this.writeNodes(trimmedParagraph.nodes, context);
+ });
} else {
// Special case: If we are the only element inside this table cell, then we can omit the container.
this.writeNodes(trimmedParagraph.nodes, context);
diff --git a/apps/api-documenter/src/utils/IndentedWriter.ts b/apps/api-documenter/src/utils/IndentedWriter.ts
index 6b57676b530..cd5d1a31020 100644
--- a/apps/api-documenter/src/utils/IndentedWriter.ts
+++ b/apps/api-documenter/src/utils/IndentedWriter.ts
@@ -46,6 +46,9 @@ export class IndentedWriter {
private readonly _indentStack: string[];
private _indentText: string;
+ private _beforeStack: string[];
+ private _isWritingBeforeStack: boolean;
+
public constructor(builder?: IStringBuilder) {
this._builder = builder === undefined ? new StringBuilder() : builder;
@@ -55,6 +58,9 @@ export class IndentedWriter {
this._indentStack = [];
this._indentText = '';
+
+ this._beforeStack = [];
+ this._isWritingBeforeStack = false;
}
/**
@@ -149,6 +155,30 @@ export class IndentedWriter {
return '';
}
+ /**
+ * Writes `before` and `after` messages if and only if `mayWrite` writes anything.
+ *
+ * If `mayWrite` writes "CONTENT", this method will write "CONTENT".
+ * If `mayWrite` writes nothing, this method will write nothing.
+ */
+ public writeTentative(before: string, after: string, mayWrite: () => void): void {
+ this._beforeStack.push(before);
+
+ // If this function writes anything, then _all_ messages in the "before stack" will also be
+ // written. This means that the stack will be empty (as when we write a message from the stack,
+ // we remove it from the stack).
+ mayWrite();
+
+ // If the stack is not empty, it means that `mayWrite` didn't write anything. Pop the last-
+ // added message from the stack, we'll never write it. Otherwise, if the stack is empty, then
+ // write the "after" message.
+ if (this._beforeStack.length > 0) {
+ this._beforeStack.pop();
+ } else {
+ this.write(after);
+ }
+ }
+
/**
* Writes some text to the internal string buffer, applying indentation according
* to the current indentation level. If the string contains multiple newlines,
@@ -159,6 +189,10 @@ export class IndentedWriter {
return;
}
+ if (!this._isWritingBeforeStack) {
+ this._writeBeforeStack();
+ }
+
// If there are no newline characters, then append the string verbatim
if (!/[\r\n]/.test(message)) {
this._writeLinePart(message);
@@ -186,7 +220,10 @@ export class IndentedWriter {
public writeLine(message: string = ''): void {
if (message.length > 0) {
this.write(message);
+ } else if (!this._isWritingBeforeStack) {
+ this._writeBeforeStack();
}
+
this._writeNewLine();
}
@@ -218,6 +255,21 @@ export class IndentedWriter {
this._builder.append(s);
}
+ /**
+ * Writes all messages in our before stack, processing them in FIFO order. This stack is
+ * populated by the `writeTentative` method.
+ */
+ private _writeBeforeStack(): void {
+ this._isWritingBeforeStack = true;
+
+ for (const message of this._beforeStack) {
+ this.write(message);
+ }
+
+ this._isWritingBeforeStack = false;
+ this._beforeStack = [];
+ }
+
private _updateIndentText(): void {
this._indentText = this._indentStack.join('');
}
diff --git a/apps/api-extractor/src/generators/ApiModelGenerator.ts b/apps/api-extractor/src/generators/ApiModelGenerator.ts
index 3c849eba5e2..5fae347ee5b 100644
--- a/apps/api-extractor/src/generators/ApiModelGenerator.ts
+++ b/apps/api-extractor/src/generators/ApiModelGenerator.ts
@@ -609,6 +609,7 @@ export class ApiModelGenerator {
const apiItemMetadata: ApiItemMetadata = this._collector.fetchApiItemMetadata(astDeclaration);
const docComment: tsdoc.DocComment | undefined = apiItemMetadata.tsdocComment;
const releaseTag: ReleaseTag = apiItemMetadata.effectiveReleaseTag;
+ const isReadonly: boolean = this._isReadonly(astDeclaration);
apiIndexSignature = new ApiIndexSignature({
docComment,
@@ -616,7 +617,8 @@ export class ApiModelGenerator {
parameters,
overloadIndex,
excerptTokens,
- returnTypeTokenRange
+ returnTypeTokenRange,
+ isReadonly
});
parentApiItem.addMember(apiIndexSignature);
@@ -862,7 +864,7 @@ export class ApiModelGenerator {
const isOptional: boolean =
(astDeclaration.astSymbol.followedSymbol.flags & ts.SymbolFlags.Optional) !== 0;
const isProtected: boolean = (astDeclaration.modifierFlags & ts.ModifierFlags.Protected) !== 0;
- const isReadonly: boolean = this._determineReadonly(astDeclaration);
+ const isReadonly: boolean = this._isReadonly(astDeclaration);
apiProperty = new ApiProperty({
name,
@@ -909,7 +911,7 @@ export class ApiModelGenerator {
const releaseTag: ReleaseTag = apiItemMetadata.effectiveReleaseTag;
const isOptional: boolean =
(astDeclaration.astSymbol.followedSymbol.flags & ts.SymbolFlags.Optional) !== 0;
- const isReadonly: boolean = this._determineReadonly(astDeclaration);
+ const isReadonly: boolean = this._isReadonly(astDeclaration);
apiPropertySignature = new ApiPropertySignature({
name,
@@ -1003,7 +1005,7 @@ export class ApiModelGenerator {
const apiItemMetadata: ApiItemMetadata = this._collector.fetchApiItemMetadata(astDeclaration);
const docComment: tsdoc.DocComment | undefined = apiItemMetadata.tsdocComment;
const releaseTag: ReleaseTag = apiItemMetadata.effectiveReleaseTag;
- const isReadonly: boolean = this._determineReadonly(astDeclaration);
+ const isReadonly: boolean = this._isReadonly(astDeclaration);
apiVariable = new ApiVariable({
name,
@@ -1087,21 +1089,34 @@ export class ApiModelGenerator {
return parameters;
}
- private _determineReadonly(astDeclaration: AstDeclaration): boolean {
- const apiItemMetadata: ApiItemMetadata = this._collector.fetchApiItemMetadata(astDeclaration);
- const docComment: tsdoc.DocComment | undefined = apiItemMetadata.tsdocComment;
- const declarationMetadata: DeclarationMetadata = this._collector.fetchDeclarationMetadata(astDeclaration);
- //Line 1: sees whether the readonly or const modifiers are present
- //Line 2: sees if the TSDoc comment for @readonly is present
- //Line 3: sees whether a getter is present for a property with no setter
- //Line 4: sees if the var declaration has Const keyword
- return (
- (astDeclaration.modifierFlags & (ts.ModifierFlags.Readonly + ts.ModifierFlags.Const)) !== 0 ||
- (docComment !== undefined && docComment.modifierTagSet.hasTagName('@readonly')) ||
- (declarationMetadata.ancillaryDeclarations.length === 0 &&
- astDeclaration.declaration.kind === ts.SyntaxKind.GetAccessor) ||
- (ts.isVariableDeclaration(astDeclaration.declaration) &&
- TypeScriptInternals.isVarConst(astDeclaration.declaration))
- );
+ private _isReadonly(astDeclaration: AstDeclaration): boolean {
+ switch (astDeclaration.declaration.kind) {
+ case ts.SyntaxKind.GetAccessor:
+ case ts.SyntaxKind.IndexSignature:
+ case ts.SyntaxKind.PropertyDeclaration:
+ case ts.SyntaxKind.PropertySignature:
+ case ts.SyntaxKind.SetAccessor:
+ case ts.SyntaxKind.VariableDeclaration: {
+ const apiItemMetadata: ApiItemMetadata = this._collector.fetchApiItemMetadata(astDeclaration);
+ const docComment: tsdoc.DocComment | undefined = apiItemMetadata.tsdocComment;
+ const declarationMetadata: DeclarationMetadata =
+ this._collector.fetchDeclarationMetadata(astDeclaration);
+
+ const hasReadonlyModifier: boolean = (astDeclaration.modifierFlags & ts.ModifierFlags.Readonly) !== 0;
+ const hasReadonlyDocTag: boolean = !!docComment?.modifierTagSet?.hasTagName('@readonly');
+ const isGetterWithNoSetter: boolean =
+ ts.isGetAccessorDeclaration(astDeclaration.declaration) &&
+ declarationMetadata.ancillaryDeclarations.length === 0;
+ const isVarConst: boolean =
+ ts.isVariableDeclaration(astDeclaration.declaration) &&
+ TypeScriptInternals.isVarConst(astDeclaration.declaration);
+
+ return hasReadonlyModifier || hasReadonlyDocTag || isGetterWithNoSetter || isVarConst;
+ }
+ default: {
+ // Readonly-ness does not make sense for any other declaration kind.
+ return false;
+ }
+ }
}
}
diff --git a/build-tests/api-documenter-test/etc/api-documenter-test.api.json b/build-tests/api-documenter-test/etc/api-documenter-test.api.json
index 90764316f67..da1af672e6a 100644
--- a/build-tests/api-documenter-test/etc/api-documenter-test.api.json
+++ b/build-tests/api-documenter-test/etc/api-documenter-test.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
@@ -704,6 +704,35 @@
"isStatic": false,
"isProtected": false
},
+ {
+ "kind": "Property",
+ "canonicalReference": "api-documenter-test!DocClass1.multipleModifiersProperty:member",
+ "docComment": "/**\n * Some property with multiple modifiers.\n */\n",
+ "excerptTokens": [
+ {
+ "kind": "Content",
+ "text": "protected static readonly multipleModifiersProperty: "
+ },
+ {
+ "kind": "Content",
+ "text": "boolean"
+ },
+ {
+ "kind": "Content",
+ "text": ";"
+ }
+ ],
+ "isReadonly": true,
+ "isOptional": false,
+ "releaseTag": "Public",
+ "name": "multipleModifiersProperty",
+ "propertyTypeTokenRange": {
+ "startIndex": 1,
+ "endIndex": 2
+ },
+ "isStatic": true,
+ "isProtected": true
+ },
{
"kind": "Method",
"canonicalReference": "api-documenter-test!DocClass1#optionalParamFunction:member(1)",
@@ -753,12 +782,12 @@
},
{
"kind": "Property",
- "canonicalReference": "api-documenter-test!DocClass1#readonlyProperty:member",
- "docComment": "",
+ "canonicalReference": "api-documenter-test!DocClass1#protectedProperty:member",
+ "docComment": "/**\n * Some protected property.\n */\n",
"excerptTokens": [
{
"kind": "Content",
- "text": "get readonlyProperty(): "
+ "text": "protected protectedProperty: "
},
{
"kind": "Content",
@@ -769,40 +798,39 @@
"text": ";"
}
],
- "isReadonly": true,
+ "isReadonly": false,
"isOptional": false,
"releaseTag": "Public",
- "name": "readonlyProperty",
+ "name": "protectedProperty",
"propertyTypeTokenRange": {
"startIndex": 1,
"endIndex": 2
},
"isStatic": false,
- "isProtected": false
+ "isProtected": true
},
{
"kind": "Property",
- "canonicalReference": "api-documenter-test!DocClass1#regularProperty:member",
- "docComment": "/**\n * This is a regular property that happens to use the SystemEvent type.\n */\n",
+ "canonicalReference": "api-documenter-test!DocClass1#readonlyProperty:member",
+ "docComment": "",
"excerptTokens": [
{
"kind": "Content",
- "text": "regularProperty: "
+ "text": "get readonlyProperty(): "
},
{
- "kind": "Reference",
- "text": "SystemEvent",
- "canonicalReference": "api-documenter-test!SystemEvent:class"
+ "kind": "Content",
+ "text": "string"
},
{
"kind": "Content",
"text": ";"
}
],
- "isReadonly": false,
+ "isReadonly": true,
"isOptional": false,
"releaseTag": "Public",
- "name": "regularProperty",
+ "name": "readonlyProperty",
"propertyTypeTokenRange": {
"startIndex": 1,
"endIndex": 2
@@ -812,31 +840,32 @@
},
{
"kind": "Property",
- "canonicalReference": "api-documenter-test!DocClass1.staticReadonlyThing:member",
- "docComment": "",
+ "canonicalReference": "api-documenter-test!DocClass1#regularProperty:member",
+ "docComment": "/**\n * This is a regular property that happens to use the SystemEvent type.\n */\n",
"excerptTokens": [
{
"kind": "Content",
- "text": "static readonly staticReadonlyThing: "
+ "text": "regularProperty: "
},
{
- "kind": "Content",
- "text": "boolean"
+ "kind": "Reference",
+ "text": "SystemEvent",
+ "canonicalReference": "api-documenter-test!SystemEvent:class"
},
{
"kind": "Content",
"text": ";"
}
],
- "isReadonly": true,
+ "isReadonly": false,
"isOptional": false,
"releaseTag": "Public",
- "name": "staticReadonlyThing",
+ "name": "regularProperty",
"propertyTypeTokenRange": {
"startIndex": 1,
"endIndex": 2
},
- "isStatic": true,
+ "isStatic": false,
"isProtected": false
},
{
@@ -1766,6 +1795,7 @@
"text": ";"
}
],
+ "isReadonly": false,
"returnTypeTokenRange": {
"startIndex": 3,
"endIndex": 4
diff --git a/build-tests/api-documenter-test/etc/api-documenter-test.api.md b/build-tests/api-documenter-test/etc/api-documenter-test.api.md
index e9e1412b999..22fa1fef52d 100644
--- a/build-tests/api-documenter-test/etc/api-documenter-test.api.md
+++ b/build-tests/api-documenter-test/etc/api-documenter-test.api.md
@@ -40,12 +40,12 @@ export class DocClass1 extends DocBaseClass implements IDocInterface1, IDocInter
malformedEvent: SystemEvent;
// @eventProperty
readonly modifiedEvent: SystemEvent;
+ protected static readonly multipleModifiersProperty: boolean;
optionalParamFunction(x?: number): void;
+ protected protectedProperty: string;
// (undocumented)
get readonlyProperty(): string;
regularProperty: SystemEvent;
- // (undocumented)
- static readonly staticReadonlyThing: boolean;
static sumWithExample(x: number, y: number): number;
tableExample(): void;
// (undocumented)
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.md
index e6c3fa4b49d..4ae28213699 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.md
@@ -29,15 +29,16 @@ The constructor for this class is marked as internal. Third-party code should no
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [malformedEvent](./api-documenter-test.docclass1.malformedevent.md) | | [SystemEvent](./api-documenter-test.systemevent.md) | This event should have been marked as readonly. |
-| [modifiedEvent](./api-documenter-test.docclass1.modifiedevent.md) | | [SystemEvent](./api-documenter-test.systemevent.md) | This event is fired whenever the object is modified. |
+| [modifiedEvent](./api-documenter-test.docclass1.modifiedevent.md) | readonly | [SystemEvent](./api-documenter-test.systemevent.md) | This event is fired whenever the object is modified. |
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
-| [readonlyProperty](./api-documenter-test.docclass1.readonlyproperty.md) | | string | |
+| [multipleModifiersProperty](./api-documenter-test.docclass1.multiplemodifiersproperty.md) | protected
readonly
static
| boolean | Some property with multiple modifiers. |
+| [protectedProperty](./api-documenter-test.docclass1.protectedproperty.md) | protected | string | Some protected property. |
+| [readonlyProperty](./api-documenter-test.docclass1.readonlyproperty.md) | readonly | string | |
| [regularProperty](./api-documenter-test.docclass1.regularproperty.md) | | [SystemEvent](./api-documenter-test.systemevent.md) | This is a regular property that happens to use the SystemEvent type. |
-| [staticReadonlyThing](./api-documenter-test.docclass1.staticreadonlything.md) | static | boolean | |
| [writeableProperty](./api-documenter-test.docclass1.writeableproperty.md) | | string | |
| [writeonlyProperty](./api-documenter-test.docclass1.writeonlyproperty.md) | | string | API Extractor will surface an ae-missing-getter finding for this property. |
@@ -49,7 +50,7 @@ The constructor for this class is marked as internal. Third-party code should no
| [exampleFunction(a, b)](./api-documenter-test.docclass1.examplefunction.md) | | This is an overloaded function. |
| [exampleFunction(x)](./api-documenter-test.docclass1.examplefunction_1.md) | | This is also an overloaded function. |
| [genericWithConstraintAndDefault(x)](./api-documenter-test.docclass1.genericwithconstraintanddefault.md) | | This is a method with a complex type parameter. |
-| [interestingEdgeCases()](./api-documenter-test.docclass1.interestingedgecases.md) | | Example: "{ \\"maxItemsToShow\\": 123 }"The regular expression used to validate the constraints is /^\[a-zA-Z0-9\\-\_\]+$/ |
+| [interestingEdgeCases()](./api-documenter-test.docclass1.interestingedgecases.md) | | Example: "{ \\"maxItemsToShow\\": 123 }"
The regular expression used to validate the constraints is /^\[a-zA-Z0-9\\-\_\]+$/
|
| [optionalParamFunction(x)](./api-documenter-test.docclass1.optionalparamfunction.md) | | This is a function with an optional parameter. |
| [sumWithExample(x, y)](./api-documenter-test.docclass1.sumwithexample.md) | static | Returns the sum of two numbers. |
| [tableExample()](./api-documenter-test.docclass1.tableexample.md) | | An example with tables: |
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.multiplemodifiersproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.multiplemodifiersproperty.md
new file mode 100644
index 00000000000..852ce939e10
--- /dev/null
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.multiplemodifiersproperty.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [api-documenter-test](./api-documenter-test.md) > [DocClass1](./api-documenter-test.docclass1.md) > [multipleModifiersProperty](./api-documenter-test.docclass1.multiplemodifiersproperty.md)
+
+## DocClass1.multipleModifiersProperty property
+
+Some property with multiple modifiers.
+
+Signature:
+
+```typescript
+protected static readonly multipleModifiersProperty: boolean;
+```
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.staticreadonlything.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.protectedproperty.md
similarity index 58%
rename from build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.staticreadonlything.md
rename to build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.protectedproperty.md
index ecb46a0668b..1520c48dc75 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.staticreadonlything.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.protectedproperty.md
@@ -1,11 +1,13 @@
-[Home](./index.md) > [api-documenter-test](./api-documenter-test.md) > [DocClass1](./api-documenter-test.docclass1.md) > [staticReadonlyThing](./api-documenter-test.docclass1.staticreadonlything.md)
+[Home](./index.md) > [api-documenter-test](./api-documenter-test.md) > [DocClass1](./api-documenter-test.docclass1.md) > [protectedProperty](./api-documenter-test.docclass1.protectedproperty.md)
-## DocClass1.staticReadonlyThing property
+## DocClass1.protectedProperty property
+
+Some protected property.
Signature:
```typescript
-static readonly staticReadonlyThing: boolean;
+protected protectedProperty: string;
```
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenum.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenum.md
index 54a5b4a9e4f..876add8c2a7 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenum.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenum.md
@@ -18,6 +18,6 @@ export declare enum DocEnum
| Member | Value | Description |
| --- | --- | --- |
| One | 1 | These are some docs for One |
-| Two | 2 | These are some docs for Two.[DocEnum.One](./api-documenter-test.docenum.md) is a direct link to another enum member. |
+| Two | 2 | These are some docs for Two.
[DocEnum.One](./api-documenter-test.docenum.md) is a direct link to another enum member.
|
| Zero | 0 | These are some docs for Zero |
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.md
index aef6e27fba1..6c820eb9c87 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.md
@@ -13,7 +13,7 @@ export interface IDocInterface1
## Properties
-| Property | Type | Description |
-| --- | --- | --- |
-| [regularProperty](./api-documenter-test.idocinterface1.regularproperty.md) | [SystemEvent](./api-documenter-test.systemevent.md) | Does something |
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [regularProperty](./api-documenter-test.idocinterface1.regularproperty.md) | | [SystemEvent](./api-documenter-test.systemevent.md) | Does something |
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.md
index 3da3486adfa..0bff0e7ba91 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.md
@@ -15,11 +15,11 @@ export interface IDocInterface3
## Properties
-| Property | Type | Description |
-| --- | --- | --- |
-| ["\[not.a.symbol\]"](./api-documenter-test.idocinterface3.__not.a.symbol__.md) | string | An identifier that does need quotes. It misleadingly looks like an ECMAScript symbol. |
-| [\[EcmaSmbols.example\]](./api-documenter-test.idocinterface3._ecmasmbols.example_.md) | string | ECMAScript symbol |
-| [redundantQuotes](./api-documenter-test.idocinterface3.redundantquotes.md) | string | A quoted identifier with redundant quotes. |
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| ["\[not.a.symbol\]"](./api-documenter-test.idocinterface3.__not.a.symbol__.md) | | string | An identifier that does need quotes. It misleadingly looks like an ECMAScript symbol. |
+| [\[EcmaSmbols.example\]](./api-documenter-test.idocinterface3._ecmasmbols.example_.md) | | string | ECMAScript symbol |
+| [redundantQuotes](./api-documenter-test.idocinterface3.redundantquotes.md) | | string | A quoted identifier with redundant quotes. |
## Methods
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.md
index 0338865b6fb..c57e796aee0 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.md
@@ -15,10 +15,10 @@ export interface IDocInterface4
## Properties
-| Property | Type | Description |
-| --- | --- | --- |
-| [Context](./api-documenter-test.idocinterface4.context.md) | ({ children }: { children: string; }) => boolean | Test newline rendering when code blocks are used in tables |
-| [generic](./api-documenter-test.idocinterface4.generic.md) | [Generic](./api-documenter-test.generic.md)<number> | make sure html entities are escaped in tables. |
-| [numberOrFunction](./api-documenter-test.idocinterface4.numberorfunction.md) | number \| (() => number) | a union type with a function |
-| [stringOrNumber](./api-documenter-test.idocinterface4.stringornumber.md) | string \| number | a union type |
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [Context](./api-documenter-test.idocinterface4.context.md) | | ({ children }: { children: string; }) => boolean | Test newline rendering when code blocks are used in tables |
+| [generic](./api-documenter-test.idocinterface4.generic.md) | | [Generic](./api-documenter-test.generic.md)<number> | make sure html entities are escaped in tables. |
+| [numberOrFunction](./api-documenter-test.idocinterface4.numberorfunction.md) | | number \| (() => number) | a union type with a function |
+| [stringOrNumber](./api-documenter-test.idocinterface4.stringornumber.md) | | string \| number | a union type |
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.md
index 687b39f2867..9053af2cfba 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.md
@@ -14,7 +14,7 @@ export interface IDocInterface5
## Properties
-| Property | Type | Description |
-| --- | --- | --- |
-| [regularProperty](./api-documenter-test.idocinterface5.regularproperty.md) | string | Property of type string that does something |
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [regularProperty](./api-documenter-test.idocinterface5.regularproperty.md) | | string | Property of type string that does something |
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.md
index bc4e5bc899e..b9d96a22ed8 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.md
@@ -14,14 +14,14 @@ export interface IDocInterface6
## Properties
-| Property | Type | Description |
-| --- | --- | --- |
-| [arrayProperty](./api-documenter-test.idocinterface6.arrayproperty.md) | [IDocInterface1](./api-documenter-test.idocinterface1.md)\[\] | |
-| [intersectionProperty](./api-documenter-test.idocinterface6.intersectionproperty.md) | [IDocInterface1](./api-documenter-test.idocinterface1.md) & [IDocInterface2](./api-documenter-test.idocinterface2.md) | |
-| [regularProperty](./api-documenter-test.idocinterface6.regularproperty.md) | number | Property of type number that does something |
-| [tupleProperty](./api-documenter-test.idocinterface6.tupleproperty.md) | \[[IDocInterface1](./api-documenter-test.idocinterface1.md), [IDocInterface2](./api-documenter-test.idocinterface2.md)\] | |
-| [typeReferenceProperty](./api-documenter-test.idocinterface6.typereferenceproperty.md) | [Generic](./api-documenter-test.generic.md)<[IDocInterface1](./api-documenter-test.idocinterface1.md)> | |
-| [unionProperty](./api-documenter-test.idocinterface6.unionproperty.md) | [IDocInterface1](./api-documenter-test.idocinterface1.md) \| [IDocInterface2](./api-documenter-test.idocinterface2.md) | |
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [arrayProperty](./api-documenter-test.idocinterface6.arrayproperty.md) | | [IDocInterface1](./api-documenter-test.idocinterface1.md)\[\] | |
+| [intersectionProperty](./api-documenter-test.idocinterface6.intersectionproperty.md) | | [IDocInterface1](./api-documenter-test.idocinterface1.md) & [IDocInterface2](./api-documenter-test.idocinterface2.md) | |
+| [regularProperty](./api-documenter-test.idocinterface6.regularproperty.md) | | number | Property of type number that does something |
+| [tupleProperty](./api-documenter-test.idocinterface6.tupleproperty.md) | | \[[IDocInterface1](./api-documenter-test.idocinterface1.md), [IDocInterface2](./api-documenter-test.idocinterface2.md)\] | |
+| [typeReferenceProperty](./api-documenter-test.idocinterface6.typereferenceproperty.md) | | [Generic](./api-documenter-test.generic.md)<[IDocInterface1](./api-documenter-test.idocinterface1.md)> | |
+| [unionProperty](./api-documenter-test.idocinterface6.unionproperty.md) | | [IDocInterface1](./api-documenter-test.idocinterface1.md) \| [IDocInterface2](./api-documenter-test.idocinterface2.md) | |
## Methods
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.md
index 122ab2bb909..39f6bb81fea 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.md
@@ -14,11 +14,11 @@ export interface IDocInterface7
## Properties
-| Property | Type | Description |
-| --- | --- | --- |
-| [optionalField?](./api-documenter-test.idocinterface7.optionalfield.md) | boolean | (Optional) Description of optionalField |
-| [optionalReadonlyField?](./api-documenter-test.idocinterface7.optionalreadonlyfield.md) | boolean | (Optional) Description of optionalReadonlyField |
-| [optionalUndocumentedField?](./api-documenter-test.idocinterface7.optionalundocumentedfield.md) | boolean | (Optional) |
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [optionalField?](./api-documenter-test.idocinterface7.optionalfield.md) | | boolean | (Optional) Description of optionalField |
+| [optionalReadonlyField?](./api-documenter-test.idocinterface7.optionalreadonlyfield.md) | readonly | boolean | (Optional) Description of optionalReadonlyField |
+| [optionalUndocumentedField?](./api-documenter-test.idocinterface7.optionalundocumentedfield.md) | | boolean | (Optional) |
## Methods
diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.md
index 55397ec2ff8..8ac3f68444c 100644
--- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.md
+++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.md
@@ -13,17 +13,17 @@ This project tests various documentation generation scenarios and doc comment sy
| Class | Description |
| --- | --- |
| [DecoratorExample](./api-documenter-test.decoratorexample.md) | |
-| [DocBaseClass](./api-documenter-test.docbaseclass.md) | Example base class |
+| [DocBaseClass](./api-documenter-test.docbaseclass.md) | Example base class
|
| [DocClass1](./api-documenter-test.docclass1.md) | This is an example class. |
| [DocClassInterfaceMerge](./api-documenter-test.docclassinterfacemerge.md) | Class that merges with interface |
| [Generic](./api-documenter-test.generic.md) | Generic class. |
-| [SystemEvent](./api-documenter-test.systemevent.md) | A class used to exposed events. |
+| [SystemEvent](./api-documenter-test.systemevent.md) | A class used to exposed events.
|
## Enumerations
| Enumeration | Description |
| --- | --- |
-| [DocEnum](./api-documenter-test.docenum.md) | Docs for DocEnum |
+| [DocEnum](./api-documenter-test.docenum.md) | Docs for DocEnum
|
| [DocEnumNamespaceMerge](./api-documenter-test.docenumnamespacemerge.md) | Enum that merges with namespace |
## Functions
@@ -42,8 +42,8 @@ This project tests various documentation generation scenarios and doc comment sy
| [DocClassInterfaceMerge](./api-documenter-test.docclassinterfacemerge.md) | Interface that merges with class |
| [IDocInterface1](./api-documenter-test.idocinterface1.md) | |
| [IDocInterface2](./api-documenter-test.idocinterface2.md) | |
-| [IDocInterface3](./api-documenter-test.idocinterface3.md) | Some less common TypeScript declaration kinds. |
-| [IDocInterface4](./api-documenter-test.idocinterface4.md) | Type union in an interface. |
+| [IDocInterface3](./api-documenter-test.idocinterface3.md) | Some less common TypeScript declaration kinds.
|
+| [IDocInterface4](./api-documenter-test.idocinterface4.md) | Type union in an interface.
|
| [IDocInterface5](./api-documenter-test.idocinterface5.md) | Interface without inline tag to test custom TOC |
| [IDocInterface6](./api-documenter-test.idocinterface6.md) | Interface without inline tag to test custom TOC with injection |
| [IDocInterface7](./api-documenter-test.idocinterface7.md) | Interface for testing optional properties |
diff --git a/build-tests/api-documenter-test/etc/markdown/index.md b/build-tests/api-documenter-test/etc/markdown/index.md
index 7688a1d4bb3..1eb428e99a5 100644
--- a/build-tests/api-documenter-test/etc/markdown/index.md
+++ b/build-tests/api-documenter-test/etc/markdown/index.md
@@ -8,5 +8,5 @@
| Package | Description |
| --- | --- |
-| [api-documenter-test](./api-documenter-test.md) | api-extractor-test-05This project tests various documentation generation scenarios and doc comment syntaxes. |
+| [api-documenter-test](./api-documenter-test.md) | api-extractor-test-05
This project tests various documentation generation scenarios and doc comment syntaxes.
|
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docclass1.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docclass1.yml
index 5914b86ab2b..c1149bb8c2e 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docclass1.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docclass1.yml
@@ -19,6 +19,32 @@ isPreview: false
isDeprecated: false
type: class
properties:
+ - name: multipleModifiersProperty
+ uid: 'api-documenter-test!DocClass1.multipleModifiersProperty:member'
+ package: api-documenter-test!
+ fullName: multipleModifiersProperty
+ summary: Some property with multiple modifiers.
+ remarks: ''
+ example: []
+ isPreview: false
+ isDeprecated: false
+ syntax:
+ content: 'protected static readonly multipleModifiersProperty: boolean;'
+ return:
+ type: boolean
+ - name: protectedProperty
+ uid: 'api-documenter-test!DocClass1#protectedProperty:member'
+ package: api-documenter-test!
+ fullName: protectedProperty
+ summary: Some protected property.
+ remarks: ''
+ example: []
+ isPreview: false
+ isDeprecated: false
+ syntax:
+ content: 'protected protectedProperty: string;'
+ return:
+ type: string
- name: readonlyProperty
uid: 'api-documenter-test!DocClass1#readonlyProperty:member'
package: api-documenter-test!
@@ -45,19 +71,6 @@ properties:
content: 'regularProperty: SystemEvent;'
return:
type: ''
- - name: staticReadonlyThing
- uid: 'api-documenter-test!DocClass1.staticReadonlyThing:member'
- package: api-documenter-test!
- fullName: staticReadonlyThing
- summary: ''
- remarks: ''
- example: []
- isPreview: false
- isDeprecated: false
- syntax:
- content: 'static readonly staticReadonlyThing: boolean;'
- return:
- type: boolean
- name: writeableProperty
uid: 'api-documenter-test!DocClass1#writeableProperty:member'
package: api-documenter-test!
diff --git a/build-tests/api-documenter-test/src/DocClass1.ts b/build-tests/api-documenter-test/src/DocClass1.ts
index 08c5764ca10..221cc7862c2 100644
--- a/build-tests/api-documenter-test/src/DocClass1.ts
+++ b/build-tests/api-documenter-test/src/DocClass1.ts
@@ -169,7 +169,15 @@ export class DocClass1 extends DocBaseClass implements IDocInterface1, IDocInter
super();
}
- static readonly staticReadonlyThing: boolean;
+ /**
+ * Some protected property.
+ */
+ protected protectedProperty: string;
+
+ /**
+ * Some property with multiple modifiers.
+ */
+ protected static readonly multipleModifiersProperty: boolean;
/**
* This is an overloaded function.
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/api-extractor-scenarios.api.json
index f8fb3950fd3..15d21093905 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/api-extractor-scenarios.api.json
index 7b945bd7b3d..13fc823e445 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/ambientNameConflict2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/api-extractor-scenarios.api.json
index f51afd1122a..dc2a0908811 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/ancillaryDeclarations/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/api-extractor-scenarios.api.json
index 6d6ade1472a..8de3dee8084 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/apiItemKinds/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/api-extractor-scenarios.api.json
index bbbb9e9b9fa..f06c0ef3955 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/bundledPackages/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/api-extractor-scenarios.api.json
index 27887678ec4..18e5df66989 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/api-extractor-scenarios.api.json
index 515f18204ca..48a2c25fb89 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/circularImport2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/api-extractor-scenarios.api.json
index bc260ed67a6..2ddcd94bcd4 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json
index 0d605caaa0b..14319542b2d 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json
index 17482fd5d84..cd9e37d93ba 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json
index eaccdd37969..45ad0c1c0da 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/api-extractor-scenarios.api.json
index 76c94b52b79..4ccfd7d2936 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/api-extractor-scenarios.api.json
index 36fb5846706..ac73eed8be7 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/api-extractor-scenarios.api.json
index e923066ee18..d571b9b5007 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/docReferences3/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/api-extractor-scenarios.api.json
index 1e10260a919..22c6d529f22 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/api-extractor-scenarios.api.json
index 928f05ac718..564c7b70b61 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/api-extractor-scenarios.api.json
index 671e0cc52aa..5f8b4e07e2a 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/dynamicImportType3/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/api-extractor-scenarios.api.json
index f0a10cc2f0b..dbb4a5ec3e0 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/ecmaScriptPrivateFields/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/api-extractor-scenarios.api.json
index 217d6a28cf4..d2faaaf6ddd 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/enumSorting/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/api-extractor-scenarios.api.json
index 2b8de636ef0..06618818269 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/excerptTokens/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/api-extractor-scenarios.api.json
index 927f84c4026..e8ef7fafe38 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportDuplicate/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/api-extractor-scenarios.api.json
index 61b6e35cefd..384bbe35cea 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportEquals/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/api-extractor-scenarios.api.json
index 1cc85f0032c..0c8f7cfee5f 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/api-extractor-scenarios.api.json
index 7742d23a688..fc67ce054b7 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportStarAs2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/api-extractor-scenarios.api.json
index b1eb10ea631..33359e87daa 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/api-extractor-scenarios.api.json
index b1eb10ea631..33359e87daa 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternal2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/api-extractor-scenarios.api.json
index e45043a3750..6270a70daef 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportImportedExternalDefault/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/api-extractor-scenarios.api.json
index 90874a6fbc8..34410a430fb 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/api-extractor-scenarios.api.json
index 6848852e3c3..876cc39e167 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/api-extractor-scenarios.api.json
index 6848852e3c3..876cc39e167 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/exportStar3/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/api-extractor-scenarios.api.json
index c6a0eefd17a..0e1499bd192 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/functionOverload/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/api-extractor-scenarios.api.json
index 68a453bc58e..c7fd110c62c 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/importEquals/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/importType/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/importType/api-extractor-scenarios.api.json
index b23608efeeb..198da231a40 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/importType/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/importType/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/api-extractor-scenarios.api.json
index 0b2047d65a6..1c0fc7510ad 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/inconsistentReleaseTags/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/api-extractor-scenarios.api.json
index a92869f57a8..0f2f17b021f 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/internationalCharacters/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/api-extractor-scenarios.api.json
index 10a252e777a..75915bd6498 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/namedDefaultImport/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/api-extractor-scenarios.api.json
index b1eb10ea631..33359e87daa 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/preapproved/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.json
index 2facbcc3767..42af2ebf181 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
@@ -173,27 +173,27 @@
"preserveMemberOrder": false,
"members": [
{
- "kind": "Interface",
- "canonicalReference": "api-extractor-scenarios!_IInternalThing:interface",
+ "kind": "Class",
+ "canonicalReference": "api-extractor-scenarios!MyClass:class",
"docComment": "/**\n * @public\n */\n",
"excerptTokens": [
{
"kind": "Content",
- "text": "export interface _IInternalThing "
+ "text": "export declare class MyClass "
}
],
"releaseTag": "Public",
- "name": "_IInternalThing",
+ "name": "MyClass",
"preserveMemberOrder": false,
"members": [
{
- "kind": "PropertySignature",
- "canonicalReference": "api-extractor-scenarios!_IInternalThing#title:member",
+ "kind": "Property",
+ "canonicalReference": "api-extractor-scenarios!MyClass#_onlyGetter:member",
"docComment": "",
"excerptTokens": [
{
"kind": "Content",
- "text": "title: "
+ "text": "get _onlyGetter(): "
},
{
"kind": "Content",
@@ -204,71 +204,104 @@
"text": ";"
}
],
- "isReadonly": false,
+ "isReadonly": true,
"isOptional": false,
"releaseTag": "Public",
- "name": "title",
+ "name": "_onlyGetter",
"propertyTypeTokenRange": {
"startIndex": 1,
"endIndex": 2
- }
- }
- ],
- "extendsTokenRanges": []
- },
- {
- "kind": "Variable",
- "canonicalReference": "api-extractor-scenarios!FOO:var",
- "docComment": "/**\n * @public\n */\n",
- "excerptTokens": [
+ },
+ "isStatic": false,
+ "isProtected": false
+ },
{
- "kind": "Content",
- "text": "FOO = "
+ "kind": "Property",
+ "canonicalReference": "api-extractor-scenarios!MyClass#readonlyModifier:member",
+ "docComment": "",
+ "excerptTokens": [
+ {
+ "kind": "Content",
+ "text": "readonly readonlyModifier: "
+ },
+ {
+ "kind": "Content",
+ "text": "string"
+ },
+ {
+ "kind": "Content",
+ "text": ";"
+ }
+ ],
+ "isReadonly": true,
+ "isOptional": false,
+ "releaseTag": "Public",
+ "name": "readonlyModifier",
+ "propertyTypeTokenRange": {
+ "startIndex": 1,
+ "endIndex": 2
+ },
+ "isStatic": false,
+ "isProtected": false
},
{
- "kind": "Content",
- "text": "\"foo\""
+ "kind": "Property",
+ "canonicalReference": "api-extractor-scenarios!MyClass#tsDocReadonly:member",
+ "docComment": "/**\n * @readonly\n */\n",
+ "excerptTokens": [
+ {
+ "kind": "Content",
+ "text": "tsDocReadonly: "
+ },
+ {
+ "kind": "Content",
+ "text": "string"
+ },
+ {
+ "kind": "Content",
+ "text": ";"
+ }
+ ],
+ "isReadonly": true,
+ "isOptional": false,
+ "releaseTag": "Public",
+ "name": "tsDocReadonly",
+ "propertyTypeTokenRange": {
+ "startIndex": 1,
+ "endIndex": 2
+ },
+ "isStatic": false,
+ "isProtected": false
}
],
- "initializerTokenRange": {
- "startIndex": 1,
- "endIndex": 2
- },
- "isReadonly": true,
- "releaseTag": "Public",
- "name": "FOO",
- "variableTypeTokenRange": {
- "startIndex": 0,
- "endIndex": 0
- }
+ "implementsTokenRanges": []
},
{
- "kind": "Class",
- "canonicalReference": "api-extractor-scenarios!MyClass:class",
+ "kind": "Interface",
+ "canonicalReference": "api-extractor-scenarios!MyInterface:interface",
"docComment": "/**\n * @public\n */\n",
"excerptTokens": [
{
"kind": "Content",
- "text": "export declare class MyClass "
+ "text": "export interface MyInterface "
}
],
"releaseTag": "Public",
- "name": "MyClass",
+ "name": "MyInterface",
"preserveMemberOrder": false,
"members": [
{
"kind": "Property",
- "canonicalReference": "api-extractor-scenarios!MyClass#_onlyHasGetterThing:member",
+ "canonicalReference": "api-extractor-scenarios!MyInterface#_onlyGetter:member",
"docComment": "",
"excerptTokens": [
{
"kind": "Content",
- "text": "get _onlyHasGetterThing(): "
+ "text": "get _onlyGetter(): "
},
{
- "kind": "Reference",
- "text": "_IInternalThing",
- "canonicalReference": "api-extractor-scenarios!_IInternalThing:interface"
+ "kind": "Content",
+ "text": "string"
},
{
"kind": "Content",
@@ -278,7 +311,7 @@
"isReadonly": true,
"isOptional": false,
"releaseTag": "Public",
- "name": "_onlyHasGetterThing",
+ "name": "_onlyGetter",
"propertyTypeTokenRange": {
"startIndex": 1,
"endIndex": 2
@@ -287,61 +320,61 @@
"isProtected": false
},
{
- "kind": "Property",
- "canonicalReference": "api-extractor-scenarios!MyClass#_writableThing:member",
+ "kind": "IndexSignature",
+ "canonicalReference": "api-extractor-scenarios!MyInterface:index(1)",
"docComment": "",
"excerptTokens": [
{
"kind": "Content",
- "text": "get _writableThing(): "
- },
- {
- "kind": "Reference",
- "text": "_IInternalThing",
- "canonicalReference": "api-extractor-scenarios!_IInternalThing:interface"
+ "text": "readonly [x: "
},
{
"kind": "Content",
- "text": ";"
+ "text": "number"
},
{
"kind": "Content",
- "text": "\n\nset _writableThing(value: "
+ "text": "]: "
},
{
- "kind": "Reference",
- "text": "_IInternalThing",
- "canonicalReference": "api-extractor-scenarios!_IInternalThing:interface"
+ "kind": "Content",
+ "text": "void"
},
{
"kind": "Content",
- "text": ");"
+ "text": ";"
}
],
- "isReadonly": false,
- "isOptional": false,
- "releaseTag": "Public",
- "name": "_writableThing",
- "propertyTypeTokenRange": {
- "startIndex": 1,
- "endIndex": 2
+ "isReadonly": true,
+ "returnTypeTokenRange": {
+ "startIndex": 3,
+ "endIndex": 4
},
- "isStatic": false,
- "isProtected": false
+ "releaseTag": "Public",
+ "overloadIndex": 1,
+ "parameters": [
+ {
+ "parameterName": "x",
+ "parameterTypeTokenRange": {
+ "startIndex": 1,
+ "endIndex": 2
+ },
+ "isOptional": false
+ }
+ ]
},
{
- "kind": "Property",
- "canonicalReference": "api-extractor-scenarios!MyClass.declaredReadonlyThing:member",
+ "kind": "PropertySignature",
+ "canonicalReference": "api-extractor-scenarios!MyInterface#readonlyModifier:member",
"docComment": "",
"excerptTokens": [
{
"kind": "Content",
- "text": "static readonly declaredReadonlyThing: "
+ "text": "readonly readonlyModifier: "
},
{
- "kind": "Reference",
- "text": "_IInternalThing",
- "canonicalReference": "api-extractor-scenarios!_IInternalThing:interface"
+ "kind": "Content",
+ "text": "string"
},
{
"kind": "Content",
@@ -351,37 +384,34 @@
"isReadonly": true,
"isOptional": false,
"releaseTag": "Public",
- "name": "declaredReadonlyThing",
+ "name": "readonlyModifier",
"propertyTypeTokenRange": {
"startIndex": 1,
"endIndex": 2
- },
- "isStatic": true,
- "isProtected": false
+ }
},
{
"kind": "Property",
- "canonicalReference": "api-extractor-scenarios!MyClass#tsDocReadonlyThing:member",
- "docComment": "/**\n * Technically isn't but for testing purposes\n *\n * @readonly\n */\n",
+ "canonicalReference": "api-extractor-scenarios!MyInterface#tsDocReadonly:member",
+ "docComment": "/**\n * @readonly\n */\n",
"excerptTokens": [
{
"kind": "Content",
- "text": "tsDocReadonlyThing: "
+ "text": "set tsDocReadonly(value: "
},
{
- "kind": "Reference",
- "text": "_IInternalThing",
- "canonicalReference": "api-extractor-scenarios!_IInternalThing:interface"
+ "kind": "Content",
+ "text": "string"
},
{
"kind": "Content",
- "text": ";"
+ "text": ");"
}
],
"isReadonly": true,
"isOptional": false,
"releaseTag": "Public",
- "name": "tsDocReadonlyThing",
+ "name": "tsDocReadonly",
"propertyTypeTokenRange": {
"startIndex": 1,
"endIndex": 2
@@ -390,7 +420,55 @@
"isProtected": false
}
],
- "implementsTokenRanges": []
+ "extendsTokenRanges": []
+ },
+ {
+ "kind": "Variable",
+ "canonicalReference": "api-extractor-scenarios!READONLY_VARIABLE:var",
+ "docComment": "/**\n * @public\n */\n",
+ "excerptTokens": [
+ {
+ "kind": "Content",
+ "text": "READONLY_VARIABLE = "
+ },
+ {
+ "kind": "Content",
+ "text": "\"Hello world!\""
+ }
+ ],
+ "initializerTokenRange": {
+ "startIndex": 1,
+ "endIndex": 2
+ },
+ "isReadonly": true,
+ "releaseTag": "Public",
+ "name": "READONLY_VARIABLE",
+ "variableTypeTokenRange": {
+ "startIndex": 0,
+ "endIndex": 0
+ }
+ },
+ {
+ "kind": "Variable",
+ "canonicalReference": "api-extractor-scenarios!TSDOC_READONLY_VARIABLE:var",
+ "docComment": "/**\n * @public @readonly\n */\n",
+ "excerptTokens": [
+ {
+ "kind": "Content",
+ "text": "TSDOC_READONLY_VARIABLE: "
+ },
+ {
+ "kind": "Content",
+ "text": "string"
+ }
+ ],
+ "isReadonly": true,
+ "releaseTag": "Public",
+ "name": "TSDOC_READONLY_VARIABLE",
+ "variableTypeTokenRange": {
+ "startIndex": 1,
+ "endIndex": 2
+ }
}
]
}
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.md
index a3b886324d9..50b0d1f6853 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.md
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/api-extractor-scenarios.api.md
@@ -5,26 +5,33 @@
```ts
// @public (undocumented)
-export const FOO = "foo";
-
-// @public (undocumented)
-export interface _IInternalThing {
+export class MyClass {
// (undocumented)
- title: string;
+ get _onlyGetter(): string;
+ // (undocumented)
+ readonly readonlyModifier: string;
+ // (undocumented)
+ tsDocReadonly: string;
}
// @public (undocumented)
-export class MyClass {
+export interface MyInterface {
// (undocumented)
- static readonly declaredReadonlyThing: _IInternalThing;
+ readonly [x: number]: void;
// (undocumented)
- get _onlyHasGetterThing(): _IInternalThing;
- tsDocReadonlyThing: _IInternalThing;
+ get _onlyGetter(): string;
// (undocumented)
- get _writableThing(): _IInternalThing;
- set _writableThing(value: _IInternalThing);
+ readonly readonlyModifier: string;
+ // (undocumented)
+ set tsDocReadonly(value: string);
}
+// @public (undocumented)
+export const READONLY_VARIABLE = "Hello world!";
+
+// @public (undocumented)
+export let TSDOC_READONLY_VARIABLE: string;
+
// (No @packageDocumentation comment for this package)
```
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/rollup.d.ts
index d133028f380..34b82b0af57 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/rollup.d.ts
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/readonlyDeclarations/rollup.d.ts
@@ -1,22 +1,27 @@
/** @public */
-export declare const FOO = "foo";
+export declare class MyClass {
+ get _onlyGetter(): string;
+ readonly readonlyModifier: string;
+ /** @readonly */
+ tsDocReadonly: string;
+}
/** @public */
-export declare interface _IInternalThing {
- title: string;
+export declare interface MyInterface {
+ get _onlyGetter(): string;
+ readonly readonlyModifier: string;
+ /** @readonly */
+ set tsDocReadonly(value: string);
+ readonly [x: number]: void;
}
/** @public */
-export declare class MyClass {
- get _writableThing(): _IInternalThing;
- set _writableThing(value: _IInternalThing);
- get _onlyHasGetterThing(): _IInternalThing;
- static readonly declaredReadonlyThing: _IInternalThing;
- /**
- * Technically isn't but for testing purposes
- * @readonly
- */
- tsDocReadonlyThing: _IInternalThing;
-}
+export declare const READONLY_VARIABLE = "Hello world!";
+
+/**
+ * @public
+ * @readonly
+ */
+export declare let TSDOC_READONLY_VARIABLE: string;
export { }
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/api-extractor-scenarios.api.json
index 6e62d5d4667..e59358c5b10 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/spanSorting/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/api-extractor-scenarios.api.json
index d7cfe6e7bb6..ca123080893 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/api-extractor-scenarios.api.json
index 58336890617..99213e236ab 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf2/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.json
index 7ca3f35aa65..4632c0ca9ff 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/api-extractor-scenarios.api.json
index b3f7925e727..a7758beb154 100644
--- a/build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/api-extractor-scenarios.api.json
+++ b/build-tests/api-extractor-scenarios/etc/test-outputs/typeParameters/api-extractor-scenarios.api.json
@@ -2,7 +2,7 @@
"metadata": {
"toolPackage": "@microsoft/api-extractor",
"toolVersion": "[test mode]",
- "schemaVersion": 1008,
+ "schemaVersion": 1009,
"oldestForwardsCompatibleVersion": 1001,
"tsdocConfig": {
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
diff --git a/build-tests/api-extractor-scenarios/src/readonlyDeclarations/config/api-extractor-overrides.json b/build-tests/api-extractor-scenarios/src/readonlyDeclarations/config/api-extractor-overrides.json
new file mode 100644
index 00000000000..f287d642746
--- /dev/null
+++ b/build-tests/api-extractor-scenarios/src/readonlyDeclarations/config/api-extractor-overrides.json
@@ -0,0 +1,10 @@
+{
+ "messages": {
+ "extractorMessageReporting": {
+ // Purposefully disabled for the `MyInterface.tsDocReadonly` test case.
+ "ae-missing-getter": {
+ "logLevel": "none"
+ }
+ }
+ }
+}
diff --git a/build-tests/api-extractor-scenarios/src/readonlyDeclarations/index.ts b/build-tests/api-extractor-scenarios/src/readonlyDeclarations/index.ts
index 9d627cc9b4c..d964044840e 100644
--- a/build-tests/api-extractor-scenarios/src/readonlyDeclarations/index.ts
+++ b/build-tests/api-extractor-scenarios/src/readonlyDeclarations/index.ts
@@ -2,30 +2,34 @@
// See LICENSE in the project root for license information.
/** @public */
-export interface _IInternalThing {
- title: string;
-}
+export const READONLY_VARIABLE = 'Hello world!';
-/** @public */
-export const FOO = 'foo';
+/**
+ * @public
+ * @readonly
+ */
+export let TSDOC_READONLY_VARIABLE: string;
/** @public */
export class MyClass {
- public get _writableThing(): _IInternalThing {
- return { title: 'thing' };
+ get _onlyGetter(): string {
+ return 'Hello world!';
}
- public set _writableThing(value: _IInternalThing) {}
+ readonly readonlyModifier: string;
- public get _onlyHasGetterThing(): _IInternalThing {
- return { title: 'thing' };
- }
+ /** @readonly */
+ tsDocReadonly: string;
+}
+
+/** @public */
+export interface MyInterface {
+ get _onlyGetter(): string;
+
+ readonly readonlyModifier: string;
- static readonly declaredReadonlyThing: _IInternalThing;
+ /** @readonly */
+ set tsDocReadonly(value: string);
- /**
- * Technically isn't but for testing purposes
- * @readonly
- */
- public tsDocReadonlyThing: _IInternalThing;
+ readonly [x: number]: void;
}
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 17784b5b2a9..956480b95df 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.45.14.tgz
+ '@rushstack/heft': file:rushstack-heft-0.46.0.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.45.14.tgz
+ '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.46.0.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.45.14.tgz
+ '@rushstack/heft': file:rushstack-heft-0.46.0.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.45.14.tgz
+ '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.46.0.tgz
eslint: 8.7.0
tslint: 5.20.1_typescript@4.6.4
typescript: 4.6.4
@@ -1804,15 +1804,15 @@ packages:
- typescript
dev: true
- file:../temp/tarballs/rushstack-heft-0.45.14.tgz:
- resolution: {tarball: file:../temp/tarballs/rushstack-heft-0.45.14.tgz}
+ file:../temp/tarballs/rushstack-heft-0.46.0.tgz:
+ resolution: {tarball: file:../temp/tarballs/rushstack-heft-0.46.0.tgz}
name: '@rushstack/heft'
- version: 0.45.14
+ version: 0.46.0
engines: {node: '>=10.13.0'}
hasBin: true
dependencies:
- '@rushstack/heft-config-file': file:../temp/tarballs/rushstack-heft-config-file-0.8.9.tgz
- '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.48.0.tgz
+ '@rushstack/heft-config-file': file:../temp/tarballs/rushstack-heft-config-file-0.8.10.tgz
+ '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.49.0.tgz
'@rushstack/rig-package': file:../temp/tarballs/rushstack-rig-package-0.3.13.tgz
'@rushstack/ts-command-line': file:../temp/tarballs/rushstack-ts-command-line-4.12.1.tgz
'@types/tapable': 1.0.6
@@ -1827,21 +1827,21 @@ packages:
true-case-path: 2.2.1
dev: true
- file:../temp/tarballs/rushstack-heft-config-file-0.8.9.tgz:
- resolution: {tarball: file:../temp/tarballs/rushstack-heft-config-file-0.8.9.tgz}
+ file:../temp/tarballs/rushstack-heft-config-file-0.8.10.tgz:
+ resolution: {tarball: file:../temp/tarballs/rushstack-heft-config-file-0.8.10.tgz}
name: '@rushstack/heft-config-file'
- version: 0.8.9
+ version: 0.8.10
engines: {node: '>=10.13.0'}
dependencies:
- '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.48.0.tgz
+ '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.49.0.tgz
'@rushstack/rig-package': file:../temp/tarballs/rushstack-rig-package-0.3.13.tgz
jsonpath-plus: 4.0.0
dev: true
- file:../temp/tarballs/rushstack-node-core-library-3.48.0.tgz:
- resolution: {tarball: file:../temp/tarballs/rushstack-node-core-library-3.48.0.tgz}
+ file:../temp/tarballs/rushstack-node-core-library-3.49.0.tgz:
+ resolution: {tarball: file:../temp/tarballs/rushstack-node-core-library-3.49.0.tgz}
name: '@rushstack/node-core-library'
- version: 3.48.0
+ version: 3.49.0
dependencies:
'@types/node': 12.20.24
colors: 1.2.5
diff --git a/common/changes/@microsoft/api-documenter/empty-paragraph-bug-fix_2022-06-17-23-02.json b/common/changes/@microsoft/api-documenter/empty-paragraph-bug-fix_2022-06-17-23-02.json
new file mode 100644
index 00000000000..a1c472227f9
--- /dev/null
+++ b/common/changes/@microsoft/api-documenter/empty-paragraph-bug-fix_2022-06-17-23-02.json
@@ -0,0 +1,10 @@
+{
+ "changes": [
+ {
+ "packageName": "@microsoft/api-documenter",
+ "comment": "Show protected and readonly modifiers for relevant API items",
+ "type": "minor"
+ }
+ ],
+ "packageName": "@microsoft/api-documenter"
+}
\ No newline at end of file
diff --git a/common/changes/@microsoft/api-extractor-model/empty-paragraph-bug-fix_2022-06-17-23-02.json b/common/changes/@microsoft/api-extractor-model/empty-paragraph-bug-fix_2022-06-17-23-02.json
new file mode 100644
index 00000000000..ca08d1d7363
--- /dev/null
+++ b/common/changes/@microsoft/api-extractor-model/empty-paragraph-bug-fix_2022-06-17-23-02.json
@@ -0,0 +1,10 @@
+{
+ "changes": [
+ {
+ "packageName": "@microsoft/api-extractor-model",
+ "comment": "Update model to reflect that index signatures can also be readonly",
+ "type": "minor"
+ }
+ ],
+ "packageName": "@microsoft/api-extractor-model"
+}
\ No newline at end of file
diff --git a/common/changes/@microsoft/api-extractor/empty-paragraph-bug-fix_2022-06-17-23-02.json b/common/changes/@microsoft/api-extractor/empty-paragraph-bug-fix_2022-06-17-23-02.json
new file mode 100644
index 00000000000..8f8249adc5b
--- /dev/null
+++ b/common/changes/@microsoft/api-extractor/empty-paragraph-bug-fix_2022-06-17-23-02.json
@@ -0,0 +1,10 @@
+{
+ "changes": [
+ {
+ "packageName": "@microsoft/api-extractor",
+ "comment": "Improve logic that determines whether an API item is readonly",
+ "type": "patch"
+ }
+ ],
+ "packageName": "@microsoft/api-extractor"
+}
\ No newline at end of file
diff --git a/common/reviews/api/api-extractor-model.api.md b/common/reviews/api/api-extractor-model.api.md
index a4b8a228509..39181dc5eb5 100644
--- a/common/reviews/api/api-extractor-model.api.md
+++ b/common/reviews/api/api-extractor-model.api.md
@@ -742,7 +742,7 @@ export interface IApiFunctionOptions extends IApiNameMixinOptions, IApiTypeParam
}
// @public
-export interface IApiIndexSignatureOptions extends IApiParameterListMixinOptions, IApiReleaseTagMixinOptions, IApiReturnTypeMixinOptions, IApiDeclaredItemOptions {
+export interface IApiIndexSignatureOptions extends IApiParameterListMixinOptions, IApiReleaseTagMixinOptions, IApiReturnTypeMixinOptions, IApiReadonlyMixinOptions, IApiDeclaredItemOptions {
}
// @public
diff --git a/libraries/api-extractor-model/src/model/ApiIndexSignature.ts b/libraries/api-extractor-model/src/model/ApiIndexSignature.ts
index b2ad57b68a3..e30925d43d0 100644
--- a/libraries/api-extractor-model/src/model/ApiIndexSignature.ts
+++ b/libraries/api-extractor-model/src/model/ApiIndexSignature.ts
@@ -11,6 +11,7 @@ import { IApiDeclaredItemOptions, ApiDeclaredItem } from '../items/ApiDeclaredIt
import { IApiParameterListMixinOptions, ApiParameterListMixin } from '../mixins/ApiParameterListMixin';
import { IApiReleaseTagMixinOptions, ApiReleaseTagMixin } from '../mixins/ApiReleaseTagMixin';
import { IApiReturnTypeMixinOptions, ApiReturnTypeMixin } from '../mixins/ApiReturnTypeMixin';
+import { IApiReadonlyMixinOptions, ApiReadonlyMixin } from '../mixins/ApiReadonlyMixin';
/**
* Constructor options for {@link ApiIndexSignature}.
@@ -20,6 +21,7 @@ export interface IApiIndexSignatureOptions
extends IApiParameterListMixinOptions,
IApiReleaseTagMixinOptions,
IApiReturnTypeMixinOptions,
+ IApiReadonlyMixinOptions,
IApiDeclaredItemOptions {}
/**
@@ -45,7 +47,7 @@ export interface IApiIndexSignatureOptions
* @public
*/
export class ApiIndexSignature extends ApiParameterListMixin(
- ApiReleaseTagMixin(ApiReturnTypeMixin(ApiDeclaredItem))
+ ApiReleaseTagMixin(ApiReturnTypeMixin(ApiReadonlyMixin(ApiDeclaredItem)))
) {
public constructor(options: IApiIndexSignatureOptions) {
super(options);
diff --git a/libraries/api-extractor-model/src/model/DeserializerContext.ts b/libraries/api-extractor-model/src/model/DeserializerContext.ts
index a5caaacd79f..710ed6c4f79 100644
--- a/libraries/api-extractor-model/src/model/DeserializerContext.ts
+++ b/libraries/api-extractor-model/src/model/DeserializerContext.ts
@@ -68,13 +68,20 @@ export enum ApiJsonSchemaVersion {
*/
V_1008 = 1008,
+ /**
+ * Add an `isReadonly` field to `ApiIndexSignature` to track whether the item is readonly.
+ *
+ * When loading older JSON files, the values defaults to `false`.
+ */
+ V_1009 = 1009,
+
/**
* The current latest .api.json schema version.
*
* IMPORTANT: When incrementing this number, consider whether `OLDEST_SUPPORTED` or `OLDEST_FORWARDS_COMPATIBLE`
* should be updated.
*/
- LATEST = V_1008,
+ LATEST = V_1009,
/**
* The oldest .api.json schema version that is still supported for backwards compatibility.