From 18a946c0187feb868991cb68f05bbde7d53e943f Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Sat, 21 Feb 2026 11:37:14 -0600 Subject: [PATCH] Updated `@microsoft/api-extractor` to `7.57.2` Signed-off-by: Andre Wanlin --- .changeset/sixty-pianos-begin.md | 5 + packages/repo-tools/package.json | 2 +- .../api-reports/runApiExtraction.test.ts | 61 ++++++++ yarn.lock | 141 ++++++++++++------ 4 files changed, 161 insertions(+), 48 deletions(-) create mode 100644 .changeset/sixty-pianos-begin.md create mode 100644 packages/repo-tools/src/commands/api-reports/api-reports/runApiExtraction.test.ts diff --git a/.changeset/sixty-pianos-begin.md b/.changeset/sixty-pianos-begin.md new file mode 100644 index 0000000000..45acb8cde0 --- /dev/null +++ b/.changeset/sixty-pianos-begin.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Updated `@microsoft/api-extractor` to `7.57.2` and added tests for `getTsDocConfig` diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 57632eedd7..53e4c81139 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -52,7 +52,7 @@ "@electric-sql/pglite": "^0.3.0", "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.28.1", - "@microsoft/api-extractor": "^7.55.1", + "@microsoft/api-extractor": "^7.57.2", "@openapitools/openapi-generator-cli": "^2.7.0", "@prettier/sync": "^0.6.1", "@stoplight/spectral-core": "^1.18.0", diff --git a/packages/repo-tools/src/commands/api-reports/api-reports/runApiExtraction.test.ts b/packages/repo-tools/src/commands/api-reports/api-reports/runApiExtraction.test.ts new file mode 100644 index 0000000000..c99bdb90eb --- /dev/null +++ b/packages/repo-tools/src/commands/api-reports/api-reports/runApiExtraction.test.ts @@ -0,0 +1,61 @@ +/* + * Copyright 2026 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { TSDocTagSyntaxKind } from '@microsoft/tsdoc'; +import { getTsDocConfig } from './runApiExtraction'; + +describe('getTsDocConfig', () => { + it('should load the base TSDoc config from api-extractor', async () => { + const config = await getTsDocConfig(); + + expect(config).toBeDefined(); + expect(config.filePath).toContain('tsdoc-base.json'); + }); + + it('should add @ignore tag definition with ModifierTag syntax', async () => { + const config = await getTsDocConfig(); + + const ignoreTag = config.tagDefinitions.find( + tag => tag.tagName === '@ignore', + ); + expect(ignoreTag).toBeDefined(); + expect(ignoreTag?.tagName).toBe('@ignore'); + expect(ignoreTag?.syntaxKind).toBe(TSDocTagSyntaxKind.ModifierTag); + }); + + it('should add @config tag definition with BlockTag syntax', async () => { + const config = await getTsDocConfig(); + + const configTag = config.tagDefinitions.find( + tag => tag.tagName === '@config', + ); + expect(configTag).toBeDefined(); + expect(configTag?.tagName).toBe('@config'); + expect(configTag?.syntaxKind).toBe(TSDocTagSyntaxKind.BlockTag); + }); + + it('should enable support for @ignore tag', async () => { + const config = await getTsDocConfig(); + + expect(config.supportForTags.get('@ignore')).toBe(true); + }); + + it('should enable support for @config tag', async () => { + const config = await getTsDocConfig(); + + expect(config.supportForTags.get('@config')).toBe(true); + }); +}); diff --git a/yarn.lock b/yarn.lock index cd20368bc2..42f9181b78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7968,7 +7968,7 @@ __metadata: "@electric-sql/pglite": "npm:^0.3.0" "@manypkg/get-packages": "npm:^1.1.3" "@microsoft/api-documenter": "npm:^7.28.1" - "@microsoft/api-extractor": "npm:^7.55.1" + "@microsoft/api-extractor": "npm:^7.57.2" "@openapitools/openapi-generator-cli": "npm:^2.7.0" "@prettier/sync": "npm:^0.6.1" "@stoplight/spectral-core": "npm:^1.18.0" @@ -10165,22 +10165,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 10/102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8 - languageName: node - linkType: hard - -"@isaacs/brace-expansion@npm:^5.0.0": - version: 5.0.1 - resolution: "@isaacs/brace-expansion@npm:5.0.1" - dependencies: - "@isaacs/balanced-match": "npm:^4.0.1" - checksum: 10/aec226065bc4285436a27379e08cc35bf94ef59f5098ac1c026495c9ba4ab33d851964082d3648d56d63eb90f2642867bd15a3e1b810b98beb1a8c14efce6a94 - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -11248,27 +11232,38 @@ __metadata: languageName: node linkType: hard -"@microsoft/api-extractor@npm:^7.55.1": - version: 7.55.2 - resolution: "@microsoft/api-extractor@npm:7.55.2" +"@microsoft/api-extractor-model@npm:7.33.1": + version: 7.33.1 + resolution: "@microsoft/api-extractor-model@npm:7.33.1" dependencies: - "@microsoft/api-extractor-model": "npm:7.32.2" "@microsoft/tsdoc": "npm:~0.16.0" "@microsoft/tsdoc-config": "npm:~0.18.0" - "@rushstack/node-core-library": "npm:5.19.1" - "@rushstack/rig-package": "npm:0.6.0" - "@rushstack/terminal": "npm:0.19.5" - "@rushstack/ts-command-line": "npm:5.1.5" + "@rushstack/node-core-library": "npm:5.20.1" + checksum: 10/cb267ca0020a68b84570bc99e974d050acf8b17a47f1999998a9dbc2ef81453f8188a93970a6b2274890a5dd5015502b6cebe94da06d3583e65ca490dabf4c1e + languageName: node + linkType: hard + +"@microsoft/api-extractor@npm:^7.57.2": + version: 7.57.2 + resolution: "@microsoft/api-extractor@npm:7.57.2" + dependencies: + "@microsoft/api-extractor-model": "npm:7.33.1" + "@microsoft/tsdoc": "npm:~0.16.0" + "@microsoft/tsdoc-config": "npm:~0.18.0" + "@rushstack/node-core-library": "npm:5.20.1" + "@rushstack/rig-package": "npm:0.7.1" + "@rushstack/terminal": "npm:0.22.1" + "@rushstack/ts-command-line": "npm:5.3.1" diff: "npm:~8.0.2" - lodash: "npm:~4.17.15" - minimatch: "npm:10.0.3" + lodash: "npm:~4.17.23" + minimatch: "npm:10.2.1" resolve: "npm:~1.22.1" semver: "npm:~7.5.4" source-map: "npm:~0.6.1" typescript: "npm:5.8.2" bin: api-extractor: bin/api-extractor - checksum: 10/56b7e9338ad18cf3dc6aaefd679b90117c9d5498dee5c621e868a5fe5002656e62d08267525eb880221d4588afcf6d680604249a9c2fb5faaba8f9c87be16b3e + checksum: 10/7e6ff99a7ee07e34ae4e3d4e271ea794f20ba3b892932e94f3757f230b8f3d6a3f4c18c723c71d3bffdc7a5dd51c732201fc911089cdebae7a4a194d3e4de2e7 languageName: node linkType: hard @@ -17775,6 +17770,27 @@ __metadata: languageName: node linkType: hard +"@rushstack/node-core-library@npm:5.20.1": + version: 5.20.1 + resolution: "@rushstack/node-core-library@npm:5.20.1" + dependencies: + ajv: "npm:~8.13.0" + ajv-draft-04: "npm:~1.0.0" + ajv-formats: "npm:~3.0.1" + fs-extra: "npm:~11.3.0" + import-lazy: "npm:~4.0.0" + jju: "npm:~1.4.0" + resolve: "npm:~1.22.1" + semver: "npm:~7.5.4" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/bd05a400fd96818a6382df7bc6a284adc78bbc8ae81c40760f2fee56a4124f0e56a38e007745bcf39c7449913e97f182860c1a344b56a31b8ba8445c21c6c012 + languageName: node + linkType: hard + "@rushstack/problem-matcher@npm:0.1.1": version: 0.1.1 resolution: "@rushstack/problem-matcher@npm:0.1.1" @@ -17787,13 +17803,25 @@ __metadata: languageName: node linkType: hard -"@rushstack/rig-package@npm:0.6.0": - version: 0.6.0 - resolution: "@rushstack/rig-package@npm:0.6.0" +"@rushstack/problem-matcher@npm:0.2.1": + version: 0.2.1 + resolution: "@rushstack/problem-matcher@npm:0.2.1" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/62fda91629577a2f57de19be357cd0990da145ff4933f4d2cd48f423cc03b92fca06dd8916dcbaf1d307a201c104847c77066d45d79fd3c323c4949f0c99bf44 + languageName: node + linkType: hard + +"@rushstack/rig-package@npm:0.7.1": + version: 0.7.1 + resolution: "@rushstack/rig-package@npm:0.7.1" dependencies: resolve: "npm:~1.22.1" strip-json-comments: "npm:~3.1.1" - checksum: 10/6ca5d6615365dfe4d78fdc52a1a145bec92bba79d8692db91d05c774b4ec4d9dc6c41b31949708d0312896b9c1c205a0f0eaa32f51ac7b1780415ac51c76af71 + checksum: 10/080a80e5c36b6861ee4a9a6e5ad9692cc3861cfb9edd0b02e9438aaaaa5a6e1b6f65275469d9f997696487841c7bb7daa69bba69c5e7301426056437bf544138 languageName: node linkType: hard @@ -17813,6 +17841,22 @@ __metadata: languageName: node linkType: hard +"@rushstack/terminal@npm:0.22.1": + version: 0.22.1 + resolution: "@rushstack/terminal@npm:0.22.1" + dependencies: + "@rushstack/node-core-library": "npm:5.20.1" + "@rushstack/problem-matcher": "npm:0.2.1" + supports-color: "npm:~8.1.1" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/fe4da212e11c60b8a6a2de9cb7658b03c510831d365c560eedf26a20fa85c62a45f1865cff99c2b252dcd773329fcd2347dd89e5e2efd5694d7746f0a8aec172 + languageName: node + linkType: hard + "@rushstack/ts-command-line@npm:5.1.5": version: 5.1.5 resolution: "@rushstack/ts-command-line@npm:5.1.5" @@ -17825,6 +17869,18 @@ __metadata: languageName: node linkType: hard +"@rushstack/ts-command-line@npm:5.3.1": + version: 5.3.1 + resolution: "@rushstack/ts-command-line@npm:5.3.1" + dependencies: + "@rushstack/terminal": "npm:0.22.1" + "@types/argparse": "npm:1.0.38" + argparse: "npm:~1.0.9" + string-argv: "npm:~0.3.1" + checksum: 10/51ca262eefbf07875f3e57fb402cba80e7ff36c14c0fc98c59af7be65407cafb4cbfe9b6738b549d91e687e40bb5720afb214efa1352a7a13c186241f92795f0 + languageName: node + linkType: hard + "@sagold/json-pointer@npm:^5.1.2": version: 5.1.2 resolution: "@sagold/json-pointer@npm:5.1.2" @@ -37871,7 +37927,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.15.0, lodash@npm:^4.16.4, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.15, lodash@npm:~4.17.21, lodash@npm:~4.17.23": +"lodash@npm:^4.15.0, lodash@npm:^4.16.4, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.21, lodash@npm:~4.17.23": version: 4.17.23 resolution: "lodash@npm:4.17.23" checksum: 10/82504c88250f58da7a5a4289f57a4f759c44946c005dd232821c7688b5fcfbf4a6268f6a6cdde4b792c91edd2f3b5398c1d2a0998274432cff76def48735e233 @@ -39318,12 +39374,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:10.0.3": - version: 10.0.3 - resolution: "minimatch@npm:10.0.3" +"minimatch@npm:10.2.1, minimatch@npm:^10.1.1, minimatch@npm:^10.2.0, minimatch@npm:^10.2.1": + version: 10.2.1 + resolution: "minimatch@npm:10.2.1" dependencies: - "@isaacs/brace-expansion": "npm:^5.0.0" - checksum: 10/d5b8b2538b367f2cfd4aeef27539fddeee58d1efb692102b848e4a968a09780a302c530eb5aacfa8c57f7299155fb4b4e85219ad82664dcef5c66f657111d9b8 + brace-expansion: "npm:^5.0.2" + checksum: 10/d41c195ee1f2c70a75641088e36d0fa5fa286cb6fe48558e6d3bf3d95f640eda453c217707215389b12234df12175f65f338c0b841b36b0125177dbd6a80d026 languageName: node linkType: hard @@ -39345,15 +39401,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.1.1, minimatch@npm:^10.2.0, minimatch@npm:^10.2.1": - version: 10.2.1 - resolution: "minimatch@npm:10.2.1" - dependencies: - brace-expansion: "npm:^5.0.2" - checksum: 10/d41c195ee1f2c70a75641088e36d0fa5fa286cb6fe48558e6d3bf3d95f640eda453c217707215389b12234df12175f65f338c0b841b36b0125177dbd6a80d026 - languageName: node - linkType: hard - "minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": version: 5.1.6 resolution: "minimatch@npm:5.1.6"