@microsoft/api-extractor 7.19.3 → 7.19.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.json +5671 -5656
  2. package/CHANGELOG.md +2295 -2290
  3. package/README.md +51 -51
  4. package/extends/tsdoc-base.json +72 -72
  5. package/lib/aedoc/PackageDocComment.js.map +1 -1
  6. package/lib/analyzer/AstDeclaration.js.map +1 -1
  7. package/lib/analyzer/AstEntity.js.map +1 -1
  8. package/lib/analyzer/AstImport.js.map +1 -1
  9. package/lib/analyzer/AstModule.js.map +1 -1
  10. package/lib/analyzer/AstNamespaceImport.js.map +1 -1
  11. package/lib/analyzer/AstReferenceResolver.js.map +1 -1
  12. package/lib/analyzer/AstSymbol.js.map +1 -1
  13. package/lib/analyzer/AstSymbolTable.js.map +1 -1
  14. package/lib/analyzer/ExportAnalyzer.js.map +1 -1
  15. package/lib/analyzer/PackageMetadataManager.js.map +1 -1
  16. package/lib/analyzer/SourceFileLocationFormatter.js.map +1 -1
  17. package/lib/analyzer/Span.js.map +1 -1
  18. package/lib/analyzer/SyntaxHelpers.js.map +1 -1
  19. package/lib/analyzer/TypeScriptHelpers.js.map +1 -1
  20. package/lib/analyzer/TypeScriptInternals.js.map +1 -1
  21. package/lib/api/CompilerState.js.map +1 -1
  22. package/lib/api/ConsoleMessageId.js.map +1 -1
  23. package/lib/api/Extractor.js.map +1 -1
  24. package/lib/api/ExtractorConfig.js.map +1 -1
  25. package/lib/api/ExtractorLogLevel.js.map +1 -1
  26. package/lib/api/ExtractorMessage.js.map +1 -1
  27. package/lib/api/ExtractorMessageId.js.map +1 -1
  28. package/lib/api/IConfigFile.js.map +1 -1
  29. package/lib/cli/ApiExtractorCommandLine.js.map +1 -1
  30. package/lib/cli/InitAction.js.map +1 -1
  31. package/lib/cli/RunAction.js.map +1 -1
  32. package/lib/collector/ApiItemMetadata.js.map +1 -1
  33. package/lib/collector/Collector.js.map +1 -1
  34. package/lib/collector/CollectorEntity.js.map +1 -1
  35. package/lib/collector/DeclarationMetadata.js.map +1 -1
  36. package/lib/collector/MessageRouter.js.map +1 -1
  37. package/lib/collector/SourceMapper.js.map +1 -1
  38. package/lib/collector/SymbolMetadata.js.map +1 -1
  39. package/lib/collector/VisitorState.js.map +1 -1
  40. package/lib/collector/WorkingPackage.js.map +1 -1
  41. package/lib/enhancers/DocCommentEnhancer.js.map +1 -1
  42. package/lib/enhancers/ValidationEnhancer.js.map +1 -1
  43. package/lib/generators/ApiModelGenerator.js.map +1 -1
  44. package/lib/generators/ApiReportGenerator.js.map +1 -1
  45. package/lib/generators/DeclarationReferenceGenerator.js.map +1 -1
  46. package/lib/generators/DtsEmitHelpers.js.map +1 -1
  47. package/lib/generators/DtsRollupGenerator.js.map +1 -1
  48. package/lib/generators/ExcerptBuilder.js.map +1 -1
  49. package/lib/generators/IndentedWriter.js.map +1 -1
  50. package/lib/index.js.map +1 -1
  51. package/lib/schemas/api-extractor-defaults.json +84 -84
  52. package/lib/schemas/api-extractor-template.json +364 -364
  53. package/lib/schemas/api-extractor.schema.json +205 -205
  54. package/lib/start.js.map +1 -1
  55. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"IndentedWriter.js","sourceRoot":"","sources":["../../src/generators/IndentedWriter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport { StringBuilder, IStringBuilder } from '@rushstack/node-core-library';\r\n\r\n/**\r\n * A utility for writing indented text.\r\n *\r\n * @remarks\r\n *\r\n * Note that the indentation is inserted at the last possible opportunity.\r\n * For example, this code...\r\n *\r\n * ```ts\r\n * writer.write('begin\\n');\r\n * writer.increaseIndent();\r\n * writer.write('one\\ntwo\\n');\r\n * writer.decreaseIndent();\r\n * writer.increaseIndent();\r\n * writer.decreaseIndent();\r\n * writer.write('end');\r\n * ```\r\n *\r\n * ...would produce this output:\r\n *\r\n * ```\r\n * begin\r\n * one\r\n * two\r\n * end\r\n * ```\r\n */\r\nexport class IndentedWriter {\r\n /**\r\n * The text characters used to create one level of indentation.\r\n * Two spaces by default.\r\n */\r\n public defaultIndentPrefix: string = ' ';\r\n\r\n /**\r\n * Whether to indent blank lines\r\n */\r\n public indentBlankLines: boolean = false;\r\n\r\n /**\r\n * Trims leading spaces from the input text before applying the indent.\r\n *\r\n * @remarks\r\n * Consider the following example:\r\n *\r\n * ```ts\r\n * indentedWriter.increaseIndent(' '); // four spaces\r\n * indentedWriter.write(' a\\n b c\\n');\r\n * indentedWriter.decreaseIndent();\r\n * ```\r\n *\r\n * Normally the output would be indented by 6 spaces: 4 from `increaseIndent()`, plus the 2 spaces\r\n * from `write()`:\r\n * ```\r\n * a\r\n * b c\r\n * ```\r\n *\r\n * Setting `trimLeadingSpaces=true` will trim the leading spaces, so that the lines are indented\r\n * by 4 spaces only:\r\n * ```\r\n * a\r\n * b c\r\n * ```\r\n */\r\n public trimLeadingSpaces: boolean = false;\r\n\r\n private readonly _builder: IStringBuilder;\r\n\r\n private _latestChunk: string | undefined;\r\n private _previousChunk: string | undefined;\r\n private _atStartOfLine: boolean;\r\n\r\n private readonly _indentStack: string[];\r\n private _indentText: string;\r\n\r\n private _previousLineIsBlank: boolean;\r\n private _currentLineIsBlank: boolean;\r\n\r\n public constructor(builder?: IStringBuilder) {\r\n this._builder = builder === undefined ? new StringBuilder() : builder;\r\n this._latestChunk = undefined;\r\n this._previousChunk = undefined;\r\n this._atStartOfLine = true;\r\n this._previousLineIsBlank = true;\r\n this._currentLineIsBlank = true;\r\n\r\n this._indentStack = [];\r\n this._indentText = '';\r\n }\r\n\r\n /**\r\n * Retrieves the output that was built so far.\r\n */\r\n public getText(): string {\r\n return this._builder.toString();\r\n }\r\n\r\n public toString(): string {\r\n return this.getText();\r\n }\r\n\r\n /**\r\n * Increases the indentation. Normally the indentation is two spaces,\r\n * however an arbitrary prefix can optional be specified. (For example,\r\n * the prefix could be \"// \" to indent and comment simultaneously.)\r\n * Each call to IndentedWriter.increaseIndent() must be followed by a\r\n * corresponding call to IndentedWriter.decreaseIndent().\r\n */\r\n public increaseIndent(indentPrefix?: string): void {\r\n this._indentStack.push(indentPrefix !== undefined ? indentPrefix : this.defaultIndentPrefix);\r\n this._updateIndentText();\r\n }\r\n\r\n /**\r\n * Decreases the indentation, reverting the effect of the corresponding call\r\n * to IndentedWriter.increaseIndent().\r\n */\r\n public decreaseIndent(): void {\r\n this._indentStack.pop();\r\n this._updateIndentText();\r\n }\r\n\r\n /**\r\n * A shorthand for ensuring that increaseIndent()/decreaseIndent() occur\r\n * in pairs.\r\n */\r\n public indentScope(scope: () => void, indentPrefix?: string): void {\r\n this.increaseIndent(indentPrefix);\r\n scope();\r\n this.decreaseIndent();\r\n }\r\n\r\n /**\r\n * Adds a newline if the file pointer is not already at the start of the line (or start of the stream).\r\n */\r\n public ensureNewLine(): void {\r\n const lastCharacter: string = this.peekLastCharacter();\r\n if (lastCharacter !== '\\n' && lastCharacter !== '') {\r\n this._writeNewLine();\r\n }\r\n }\r\n\r\n /**\r\n * Adds up to two newlines to ensure that there is a blank line above the current position.\r\n * The start of the stream is considered to be a blank line, so `ensureSkippedLine()` has no effect\r\n * unless some text has been written.\r\n */\r\n public ensureSkippedLine(): void {\r\n this.ensureNewLine();\r\n if (!this._previousLineIsBlank) {\r\n this._writeNewLine();\r\n }\r\n }\r\n\r\n /**\r\n * Returns the last character that was written, or an empty string if no characters have been written yet.\r\n */\r\n public peekLastCharacter(): string {\r\n if (this._latestChunk !== undefined) {\r\n return this._latestChunk.substr(-1, 1);\r\n }\r\n return '';\r\n }\r\n\r\n /**\r\n * Returns the second to last character that was written, or an empty string if less than one characters\r\n * have been written yet.\r\n */\r\n public peekSecondLastCharacter(): string {\r\n if (this._latestChunk !== undefined) {\r\n if (this._latestChunk.length > 1) {\r\n return this._latestChunk.substr(-2, 1);\r\n }\r\n if (this._previousChunk !== undefined) {\r\n return this._previousChunk.substr(-1, 1);\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n /**\r\n * Writes some text to the internal string buffer, applying indentation according\r\n * to the current indentation level. If the string contains multiple newlines,\r\n * each line will be indented separately.\r\n */\r\n public write(message: string): void {\r\n if (message.length === 0) {\r\n return;\r\n }\r\n\r\n // If there are no newline characters, then append the string verbatim\r\n if (!/[\\r\\n]/.test(message)) {\r\n this._writeLinePart(message);\r\n return;\r\n }\r\n\r\n // Otherwise split the lines and write each one individually\r\n let first: boolean = true;\r\n for (const linePart of message.split('\\n')) {\r\n if (!first) {\r\n this._writeNewLine();\r\n } else {\r\n first = false;\r\n }\r\n if (linePart) {\r\n this._writeLinePart(linePart.replace(/[\\r]/g, ''));\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * A shorthand for writing an optional message, followed by a newline.\r\n * Indentation is applied following the semantics of IndentedWriter.write().\r\n */\r\n public writeLine(message: string = ''): void {\r\n if (message.length > 0) {\r\n this.write(message);\r\n }\r\n this._writeNewLine();\r\n }\r\n\r\n /**\r\n * Writes a string that does not contain any newline characters.\r\n */\r\n private _writeLinePart(message: string): void {\r\n let trimmedMessage: string = message;\r\n\r\n if (this.trimLeadingSpaces && this._atStartOfLine) {\r\n trimmedMessage = message.replace(/^ +/, '');\r\n }\r\n\r\n if (trimmedMessage.length > 0) {\r\n if (this._atStartOfLine && this._indentText.length > 0) {\r\n this._write(this._indentText);\r\n }\r\n this._write(trimmedMessage);\r\n if (this._currentLineIsBlank) {\r\n if (/\\S/.test(trimmedMessage)) {\r\n this._currentLineIsBlank = false;\r\n }\r\n }\r\n this._atStartOfLine = false;\r\n }\r\n }\r\n\r\n private _writeNewLine(): void {\r\n if (this.indentBlankLines) {\r\n if (this._atStartOfLine && this._indentText.length > 0) {\r\n this._write(this._indentText);\r\n }\r\n }\r\n\r\n this._previousLineIsBlank = this._currentLineIsBlank;\r\n this._write('\\n');\r\n this._currentLineIsBlank = true;\r\n this._atStartOfLine = true;\r\n }\r\n\r\n private _write(s: string): void {\r\n this._previousChunk = this._latestChunk;\r\n this._latestChunk = s;\r\n this._builder.append(s);\r\n }\r\n\r\n private _updateIndentText(): void {\r\n this._indentText = this._indentStack.join('');\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IndentedWriter.js","sourceRoot":"","sources":["../../src/generators/IndentedWriter.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,oEAA6E;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,cAAc;IAoDzB,YAAmB,OAAwB;QAnD3C;;;WAGG;QACI,wBAAmB,GAAW,MAAM,CAAC;QAE5C;;WAEG;QACI,qBAAgB,GAAY,KAAK,CAAC;QAEzC;;;;;;;;;;;;;;;;;;;;;;;;;WAyBG;QACI,sBAAiB,GAAY,KAAK,CAAC;QAexC,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,iCAAa,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACtE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,YAAqB;QACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7F,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,cAAc;QACnB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,KAAiB,EAAE,YAAqB;QACzD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,MAAM,aAAa,GAAW,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvD,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,EAAE,EAAE;YAClD,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED;;;;OAIG;IACI,iBAAiB;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED;;OAEG;IACI,iBAAiB;QACtB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACI,uBAAuB;QAC5B,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC;YACD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;gBACrC,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1C;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAe;QAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO;SACR;QAED,sEAAsE;QACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO;SACR;QAED,4DAA4D;QAC5D,IAAI,KAAK,GAAY,IAAI,CAAC;QAC1B,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC1C,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM;gBACL,KAAK,GAAG,KAAK,CAAC;aACf;YACD,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;aACpD;SACF;IACH,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,UAAkB,EAAE;QACnC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACpC,IAAI,cAAc,GAAW,OAAO,CAAC;QAErC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,EAAE;YACjD,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC7C;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC/B;YACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;iBAClC;aACF;YACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC/B;SACF;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEO,MAAM,CAAC,CAAS;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAjPD,wCAiPC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport { StringBuilder, IStringBuilder } from '@rushstack/node-core-library';\n\n/**\n * A utility for writing indented text.\n *\n * @remarks\n *\n * Note that the indentation is inserted at the last possible opportunity.\n * For example, this code...\n *\n * ```ts\n * writer.write('begin\\n');\n * writer.increaseIndent();\n * writer.write('one\\ntwo\\n');\n * writer.decreaseIndent();\n * writer.increaseIndent();\n * writer.decreaseIndent();\n * writer.write('end');\n * ```\n *\n * ...would produce this output:\n *\n * ```\n * begin\n * one\n * two\n * end\n * ```\n */\nexport class IndentedWriter {\n /**\n * The text characters used to create one level of indentation.\n * Two spaces by default.\n */\n public defaultIndentPrefix: string = ' ';\n\n /**\n * Whether to indent blank lines\n */\n public indentBlankLines: boolean = false;\n\n /**\n * Trims leading spaces from the input text before applying the indent.\n *\n * @remarks\n * Consider the following example:\n *\n * ```ts\n * indentedWriter.increaseIndent(' '); // four spaces\n * indentedWriter.write(' a\\n b c\\n');\n * indentedWriter.decreaseIndent();\n * ```\n *\n * Normally the output would be indented by 6 spaces: 4 from `increaseIndent()`, plus the 2 spaces\n * from `write()`:\n * ```\n * a\n * b c\n * ```\n *\n * Setting `trimLeadingSpaces=true` will trim the leading spaces, so that the lines are indented\n * by 4 spaces only:\n * ```\n * a\n * b c\n * ```\n */\n public trimLeadingSpaces: boolean = false;\n\n private readonly _builder: IStringBuilder;\n\n private _latestChunk: string | undefined;\n private _previousChunk: string | undefined;\n private _atStartOfLine: boolean;\n\n private readonly _indentStack: string[];\n private _indentText: string;\n\n private _previousLineIsBlank: boolean;\n private _currentLineIsBlank: boolean;\n\n public constructor(builder?: IStringBuilder) {\n this._builder = builder === undefined ? new StringBuilder() : builder;\n this._latestChunk = undefined;\n this._previousChunk = undefined;\n this._atStartOfLine = true;\n this._previousLineIsBlank = true;\n this._currentLineIsBlank = true;\n\n this._indentStack = [];\n this._indentText = '';\n }\n\n /**\n * Retrieves the output that was built so far.\n */\n public getText(): string {\n return this._builder.toString();\n }\n\n public toString(): string {\n return this.getText();\n }\n\n /**\n * Increases the indentation. Normally the indentation is two spaces,\n * however an arbitrary prefix can optional be specified. (For example,\n * the prefix could be \"// \" to indent and comment simultaneously.)\n * Each call to IndentedWriter.increaseIndent() must be followed by a\n * corresponding call to IndentedWriter.decreaseIndent().\n */\n public increaseIndent(indentPrefix?: string): void {\n this._indentStack.push(indentPrefix !== undefined ? indentPrefix : this.defaultIndentPrefix);\n this._updateIndentText();\n }\n\n /**\n * Decreases the indentation, reverting the effect of the corresponding call\n * to IndentedWriter.increaseIndent().\n */\n public decreaseIndent(): void {\n this._indentStack.pop();\n this._updateIndentText();\n }\n\n /**\n * A shorthand for ensuring that increaseIndent()/decreaseIndent() occur\n * in pairs.\n */\n public indentScope(scope: () => void, indentPrefix?: string): void {\n this.increaseIndent(indentPrefix);\n scope();\n this.decreaseIndent();\n }\n\n /**\n * Adds a newline if the file pointer is not already at the start of the line (or start of the stream).\n */\n public ensureNewLine(): void {\n const lastCharacter: string = this.peekLastCharacter();\n if (lastCharacter !== '\\n' && lastCharacter !== '') {\n this._writeNewLine();\n }\n }\n\n /**\n * Adds up to two newlines to ensure that there is a blank line above the current position.\n * The start of the stream is considered to be a blank line, so `ensureSkippedLine()` has no effect\n * unless some text has been written.\n */\n public ensureSkippedLine(): void {\n this.ensureNewLine();\n if (!this._previousLineIsBlank) {\n this._writeNewLine();\n }\n }\n\n /**\n * Returns the last character that was written, or an empty string if no characters have been written yet.\n */\n public peekLastCharacter(): string {\n if (this._latestChunk !== undefined) {\n return this._latestChunk.substr(-1, 1);\n }\n return '';\n }\n\n /**\n * Returns the second to last character that was written, or an empty string if less than one characters\n * have been written yet.\n */\n public peekSecondLastCharacter(): string {\n if (this._latestChunk !== undefined) {\n if (this._latestChunk.length > 1) {\n return this._latestChunk.substr(-2, 1);\n }\n if (this._previousChunk !== undefined) {\n return this._previousChunk.substr(-1, 1);\n }\n }\n return '';\n }\n\n /**\n * Writes some text to the internal string buffer, applying indentation according\n * to the current indentation level. If the string contains multiple newlines,\n * each line will be indented separately.\n */\n public write(message: string): void {\n if (message.length === 0) {\n return;\n }\n\n // If there are no newline characters, then append the string verbatim\n if (!/[\\r\\n]/.test(message)) {\n this._writeLinePart(message);\n return;\n }\n\n // Otherwise split the lines and write each one individually\n let first: boolean = true;\n for (const linePart of message.split('\\n')) {\n if (!first) {\n this._writeNewLine();\n } else {\n first = false;\n }\n if (linePart) {\n this._writeLinePart(linePart.replace(/[\\r]/g, ''));\n }\n }\n }\n\n /**\n * A shorthand for writing an optional message, followed by a newline.\n * Indentation is applied following the semantics of IndentedWriter.write().\n */\n public writeLine(message: string = ''): void {\n if (message.length > 0) {\n this.write(message);\n }\n this._writeNewLine();\n }\n\n /**\n * Writes a string that does not contain any newline characters.\n */\n private _writeLinePart(message: string): void {\n let trimmedMessage: string = message;\n\n if (this.trimLeadingSpaces && this._atStartOfLine) {\n trimmedMessage = message.replace(/^ +/, '');\n }\n\n if (trimmedMessage.length > 0) {\n if (this._atStartOfLine && this._indentText.length > 0) {\n this._write(this._indentText);\n }\n this._write(trimmedMessage);\n if (this._currentLineIsBlank) {\n if (/\\S/.test(trimmedMessage)) {\n this._currentLineIsBlank = false;\n }\n }\n this._atStartOfLine = false;\n }\n }\n\n private _writeNewLine(): void {\n if (this.indentBlankLines) {\n if (this._atStartOfLine && this._indentText.length > 0) {\n this._write(this._indentText);\n }\n }\n\n this._previousLineIsBlank = this._currentLineIsBlank;\n this._write('\\n');\n this._currentLineIsBlank = true;\n this._atStartOfLine = true;\n }\n\n private _write(s: string): void {\n this._previousChunk = this._latestChunk;\n this._latestChunk = s;\n this._builder.append(s);\n }\n\n private _updateIndentText(): void {\n this._indentText = this._indentStack.join('');\n }\n}\n"]}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAY3D,qDAAiF;AAAxE,8GAAA,aAAa,OAAA;AAEtB,6CAAsF;AAA7E,sGAAA,SAAS,OAAA;AAA2B,4GAAA,eAAe,OAAA;AAE5D,yDAI+B;AAD7B,kHAAA,eAAe,OAAA;AAKjB,2DAIgC;AAH9B,oHAAA,gBAAgB,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\n/**\r\n * API Extractor helps with validation, documentation, and reviewing of the exported API for a TypeScript library.\r\n * The `@microsoft/api-extractor` package provides the command-line tool. It also exposes a developer API that you\r\n * can use to invoke API Extractor programmatically.\r\n *\r\n * @packageDocumentation\r\n */\r\n\r\nexport { ConsoleMessageId } from './api/ConsoleMessageId';\r\n\r\nexport { CompilerState, ICompilerStateCreateOptions } from './api/CompilerState';\r\n\r\nexport { Extractor, IExtractorInvokeOptions, ExtractorResult } from './api/Extractor';\r\n\r\nexport {\r\n IExtractorConfigPrepareOptions,\r\n IExtractorConfigLoadForFolderOptions,\r\n ExtractorConfig\r\n} from './api/ExtractorConfig';\r\n\r\nexport { ExtractorLogLevel } from './api/ExtractorLogLevel';\r\n\r\nexport {\r\n ExtractorMessage,\r\n IExtractorMessageProperties,\r\n ExtractorMessageCategory\r\n} from './api/ExtractorMessage';\r\n\r\nexport { ExtractorMessageId } from './api/ExtractorMessageId';\r\n\r\nexport {\r\n IConfigCompiler,\r\n IConfigApiReport,\r\n IConfigDocModel,\r\n IConfigDtsRollup,\r\n IConfigTsdocMetadata,\r\n IConfigMessageReportingRule,\r\n IConfigMessageReportingTable,\r\n IExtractorMessagesConfig,\r\n IConfigFile\r\n} from './api/IConfigFile';\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAY3D,qDAAiF;AAAxE,8GAAA,aAAa,OAAA;AAEtB,6CAAsF;AAA7E,sGAAA,SAAS,OAAA;AAA2B,4GAAA,eAAe,OAAA;AAE5D,yDAI+B;AAD7B,kHAAA,eAAe,OAAA;AAKjB,2DAIgC;AAH9B,oHAAA,gBAAgB,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\n/**\n * API Extractor helps with validation, documentation, and reviewing of the exported API for a TypeScript library.\n * The `@microsoft/api-extractor` package provides the command-line tool. It also exposes a developer API that you\n * can use to invoke API Extractor programmatically.\n *\n * @packageDocumentation\n */\n\nexport { ConsoleMessageId } from './api/ConsoleMessageId';\n\nexport { CompilerState, ICompilerStateCreateOptions } from './api/CompilerState';\n\nexport { Extractor, IExtractorInvokeOptions, ExtractorResult } from './api/Extractor';\n\nexport {\n IExtractorConfigPrepareOptions,\n IExtractorConfigLoadForFolderOptions,\n ExtractorConfig\n} from './api/ExtractorConfig';\n\nexport { ExtractorLogLevel } from './api/ExtractorLogLevel';\n\nexport {\n ExtractorMessage,\n IExtractorMessageProperties,\n ExtractorMessageCategory\n} from './api/ExtractorMessage';\n\nexport { ExtractorMessageId } from './api/ExtractorMessageId';\n\nexport {\n IConfigCompiler,\n IConfigApiReport,\n IConfigDocModel,\n IConfigDtsRollup,\n IConfigTsdocMetadata,\n IConfigMessageReportingRule,\n IConfigMessageReportingTable,\n IExtractorMessagesConfig,\n IConfigFile\n} from './api/IConfigFile';\n"]}
@@ -1,84 +1,84 @@
1
- {
2
- "projectFolder": "<lookup>",
3
-
4
- // ("mainEntryPointFilePath" is required)
5
-
6
- "bundledPackages": [],
7
-
8
- "newlineKind": "crlf",
9
-
10
- "compiler": {
11
- "tsconfigFilePath": "<projectFolder>/tsconfig.json",
12
- "skipLibCheck": false
13
- },
14
-
15
- "apiReport": {
16
- // ("enabled" is required)
17
- "reportFileName": "<unscopedPackageName>.api.md",
18
- "reportFolder": "<projectFolder>/etc/",
19
- "reportTempFolder": "<projectFolder>/temp/"
20
- },
21
-
22
- "docModel": {
23
- // ("enabled" is required)
24
- "apiJsonFilePath": "<projectFolder>/temp/<unscopedPackageName>.api.json"
25
- },
26
-
27
- "dtsRollup": {
28
- // ("enabled" is required)
29
-
30
- "untrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>.d.ts",
31
- "betaTrimmedFilePath": "",
32
- "publicTrimmedFilePath": "",
33
- "omitTrimmingComments": false
34
- },
35
-
36
- "tsdocMetadata": {
37
- "enabled": true,
38
- "tsdocMetadataFilePath": "<lookup>"
39
- },
40
-
41
- "messages": {
42
- "compilerMessageReporting": {
43
- "default": {
44
- "logLevel": "warning"
45
- }
46
- },
47
- "extractorMessageReporting": {
48
- "default": {
49
- "logLevel": "warning"
50
- },
51
- "ae-forgotten-export": {
52
- "logLevel": "warning",
53
- "addToApiReportFile": true
54
- },
55
- "ae-incompatible-release-tags": {
56
- "logLevel": "warning",
57
- "addToApiReportFile": true
58
- },
59
- "ae-internal-missing-underscore": {
60
- "logLevel": "warning",
61
- "addToApiReportFile": true
62
- },
63
- "ae-internal-mixed-release-tag": {
64
- "logLevel": "warning",
65
- "addToApiReportFile": true
66
- },
67
- "ae-unresolved-inheritdoc-reference": {
68
- "logLevel": "warning",
69
- "addToApiReportFile": true
70
- },
71
- "ae-unresolved-inheritdoc-base": {
72
- "logLevel": "warning",
73
- "addToApiReportFile": true
74
- }
75
- },
76
- "tsdocMessageReporting": {
77
- "default": {
78
- "logLevel": "warning"
79
- }
80
- }
81
- },
82
-
83
- "testMode": false
84
- }
1
+ {
2
+ "projectFolder": "<lookup>",
3
+
4
+ // ("mainEntryPointFilePath" is required)
5
+
6
+ "bundledPackages": [],
7
+
8
+ "newlineKind": "crlf",
9
+
10
+ "compiler": {
11
+ "tsconfigFilePath": "<projectFolder>/tsconfig.json",
12
+ "skipLibCheck": false
13
+ },
14
+
15
+ "apiReport": {
16
+ // ("enabled" is required)
17
+ "reportFileName": "<unscopedPackageName>.api.md",
18
+ "reportFolder": "<projectFolder>/etc/",
19
+ "reportTempFolder": "<projectFolder>/temp/"
20
+ },
21
+
22
+ "docModel": {
23
+ // ("enabled" is required)
24
+ "apiJsonFilePath": "<projectFolder>/temp/<unscopedPackageName>.api.json"
25
+ },
26
+
27
+ "dtsRollup": {
28
+ // ("enabled" is required)
29
+
30
+ "untrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>.d.ts",
31
+ "betaTrimmedFilePath": "",
32
+ "publicTrimmedFilePath": "",
33
+ "omitTrimmingComments": false
34
+ },
35
+
36
+ "tsdocMetadata": {
37
+ "enabled": true,
38
+ "tsdocMetadataFilePath": "<lookup>"
39
+ },
40
+
41
+ "messages": {
42
+ "compilerMessageReporting": {
43
+ "default": {
44
+ "logLevel": "warning"
45
+ }
46
+ },
47
+ "extractorMessageReporting": {
48
+ "default": {
49
+ "logLevel": "warning"
50
+ },
51
+ "ae-forgotten-export": {
52
+ "logLevel": "warning",
53
+ "addToApiReportFile": true
54
+ },
55
+ "ae-incompatible-release-tags": {
56
+ "logLevel": "warning",
57
+ "addToApiReportFile": true
58
+ },
59
+ "ae-internal-missing-underscore": {
60
+ "logLevel": "warning",
61
+ "addToApiReportFile": true
62
+ },
63
+ "ae-internal-mixed-release-tag": {
64
+ "logLevel": "warning",
65
+ "addToApiReportFile": true
66
+ },
67
+ "ae-unresolved-inheritdoc-reference": {
68
+ "logLevel": "warning",
69
+ "addToApiReportFile": true
70
+ },
71
+ "ae-unresolved-inheritdoc-base": {
72
+ "logLevel": "warning",
73
+ "addToApiReportFile": true
74
+ }
75
+ },
76
+ "tsdocMessageReporting": {
77
+ "default": {
78
+ "logLevel": "warning"
79
+ }
80
+ }
81
+ },
82
+
83
+ "testMode": false
84
+ }