From 56358299a3322592b424716c4fd8f9d2c7c28d66 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Sun, 27 Sep 2020 18:16:34 -0700 Subject: [PATCH 01/36] Make the rigs' tsconfigs more strict. --- rigs/heft-node-rig/profiles/default/tsconfig-base.json | 4 ++-- rigs/heft-web-rig/profiles/library/tsconfig-base.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rigs/heft-node-rig/profiles/default/tsconfig-base.json b/rigs/heft-node-rig/profiles/default/tsconfig-base.json index 9be65e387ad..32896d98bad 100644 --- a/rigs/heft-node-rig/profiles/default/tsconfig-base.json +++ b/rigs/heft-node-rig/profiles/default/tsconfig-base.json @@ -12,8 +12,8 @@ "declarationMap": true, "inlineSources": true, "experimentalDecorators": true, - "strictNullChecks": true, - "noUnusedLocals": true, + "strict": true, + "esModuleInterop": true, "types": [], "module": "commonjs", diff --git a/rigs/heft-web-rig/profiles/library/tsconfig-base.json b/rigs/heft-web-rig/profiles/library/tsconfig-base.json index 3f20403c96b..3e38314026f 100644 --- a/rigs/heft-web-rig/profiles/library/tsconfig-base.json +++ b/rigs/heft-web-rig/profiles/library/tsconfig-base.json @@ -12,8 +12,8 @@ "declarationMap": true, "inlineSources": true, "experimentalDecorators": true, - "strictNullChecks": true, - "noUnusedLocals": true, + "strict": true, + "esModuleInterop": true, "types": [], "module": "esnext", From 75b9bab8f0444824e09a1aad2124e0100a7018d3 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Sun, 27 Sep 2020 18:27:33 -0700 Subject: [PATCH 02/36] Fix strict compiler issues with rundown --- apps/rundown/.eslintrc.js | 10 ++++++++++ apps/rundown/src/Rundown.ts | 6 +++--- apps/rundown/src/cli/BaseReportAction.ts | 8 ++++---- apps/rundown/src/cli/InspectAction.ts | 2 +- apps/rundown/src/launcher.ts | 15 ++++++++------- apps/rundown/src/start.ts | 4 +++- 6 files changed, 29 insertions(+), 16 deletions(-) create mode 100644 apps/rundown/.eslintrc.js diff --git a/apps/rundown/.eslintrc.js b/apps/rundown/.eslintrc.js new file mode 100644 index 00000000000..4c934799d67 --- /dev/null +++ b/apps/rundown/.eslintrc.js @@ -0,0 +1,10 @@ +// This is a workaround for https://github.com/eslint/eslint/issues/3458 +require('@rushstack/eslint-config/patch/modern-module-resolution'); + +module.exports = { + extends: [ + '@rushstack/eslint-config/profile/node-trusted-tool', + '@rushstack/eslint-config/mixins/friendly-locals' + ], + parserOptions: { tsconfigRootDir: __dirname } +}; diff --git a/apps/rundown/src/Rundown.ts b/apps/rundown/src/Rundown.ts index 2b8d4c13518..27cf8806776 100644 --- a/apps/rundown/src/Rundown.ts +++ b/apps/rundown/src/Rundown.ts @@ -65,7 +65,7 @@ export class Rundown { } Sort.sortSet(importedPackageFolders); - let data: string = [...importedPackageFolders].join('\n') + '\n'; + const data: string = [...importedPackageFolders].join('\n') + '\n'; FileSystem.writeFile(reportPath, data); } @@ -84,9 +84,9 @@ export class Rundown { data += importedPath + '\n'; let current: string = importedPath; - let visited: Set = new Set(); + const visited: Set = new Set(); for (;;) { - const callerPath = this._importedModuleMap.get(current); + const callerPath: string | undefined = this._importedModuleMap.get(current); if (!callerPath) { break; } diff --git a/apps/rundown/src/cli/BaseReportAction.ts b/apps/rundown/src/cli/BaseReportAction.ts index 13b25ec6283..0854462ef93 100644 --- a/apps/rundown/src/cli/BaseReportAction.ts +++ b/apps/rundown/src/cli/BaseReportAction.ts @@ -12,10 +12,10 @@ import { } from '@rushstack/ts-command-line'; export abstract class BaseReportAction extends CommandLineAction { - protected scriptParameter: CommandLineStringParameter; - protected argsParameter: CommandLineStringParameter; - protected quietParameter: CommandLineFlagParameter; - protected ignoreExitCodeParameter: CommandLineFlagParameter; + protected scriptParameter!: CommandLineStringParameter; + protected argsParameter!: CommandLineStringParameter; + protected quietParameter!: CommandLineFlagParameter; + protected ignoreExitCodeParameter!: CommandLineFlagParameter; public constructor(options: ICommandLineActionOptions) { super(options); diff --git a/apps/rundown/src/cli/InspectAction.ts b/apps/rundown/src/cli/InspectAction.ts index de4ab4d8c9e..df7f046846a 100644 --- a/apps/rundown/src/cli/InspectAction.ts +++ b/apps/rundown/src/cli/InspectAction.ts @@ -7,7 +7,7 @@ import { BaseReportAction } from './BaseReportAction'; import { Rundown } from '../Rundown'; export class InspectAction extends BaseReportAction { - private _traceParameter: CommandLineFlagParameter; + private _traceParameter!: CommandLineFlagParameter; public constructor() { super({ diff --git a/apps/rundown/src/launcher.ts b/apps/rundown/src/launcher.ts index 35635d09901..9be47bd52a9 100644 --- a/apps/rundown/src/launcher.ts +++ b/apps/rundown/src/launcher.ts @@ -30,15 +30,16 @@ class Launcher { return [nodeArg, this.targetScriptPathArg, ...remainderArgs]; } - private static _copyProperties(dst: object, src: object): void { - for (var prop of Object.keys(src)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private static _copyProperties(dst: any, src: any): void { + for (const prop of Object.keys(src)) { dst[prop] = src[prop]; } } private _sendIpcTraceBatch(): void { if (this._ipcTraceRecordsBatch.length > 0) { - const batch = [...this._ipcTraceRecordsBatch]; + const batch: IIpcTraceRecord[] = [...this._ipcTraceRecordsBatch]; this._ipcTraceRecordsBatch.length = 0; process.send!({ @@ -49,26 +50,26 @@ class Launcher { } public installHook(): void { - const realRequire = moduleApi.Module.prototype.require; + const realRequire: NodeRequireFunction = moduleApi.Module.prototype.require; const importedModules: Set = this._importedModules; // for closure const importedModulePaths: Set = this._importedModulePaths; // for closure const ipcTraceRecordsBatch: IIpcTraceRecord[] = this._ipcTraceRecordsBatch; // for closure const sendIpcTraceBatch: () => void = this._sendIpcTraceBatch.bind(this); // for closure - function hookedRequire(moduleName: string): unknown { + function hookedRequire(this: NodeModule, moduleName: string): unknown { // NOTE: The "this" pointer is the calling NodeModule, so we rely on closure // variable here. const callingModuleInfo: NodeModule = this; - const importedModule: unknown = realRequire.apply(callingModuleInfo, arguments); + const importedModule: unknown = realRequire.apply(callingModuleInfo, [moduleName]); if (!importedModules.has(importedModule)) { importedModules.add(importedModule); // Find the info for the imported module let importedModuleInfo: NodeModule | undefined = undefined; - const children = callingModuleInfo.children || []; + const children: NodeModule[] = callingModuleInfo.children || []; for (const child of children) { if (child.exports === importedModule) { importedModuleInfo = child; diff --git a/apps/rundown/src/start.ts b/apps/rundown/src/start.ts index c5ffc77a28b..9f503b2b91c 100644 --- a/apps/rundown/src/start.ts +++ b/apps/rundown/src/start.ts @@ -12,4 +12,6 @@ console.log(`Rundown ${toolVersion} - https://rushstack.io`); console.log(); const commandLine: RundownCommandLine = new RundownCommandLine(); -commandLine.execute(); +commandLine.execute().catch((error) => { + console.error(error); +}); From 6c2cd7c7f6ab2a8eb1d7a1d5cc0ac1c16ddabdf6 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Sun, 27 Sep 2020 20:11:44 -0700 Subject: [PATCH 03/36] Fix strict compiler issues with module-minifier-plugin --- common/config/rush/common-versions.json | 4 ++++ common/config/rush/pnpm-lock.yaml | 6 ++++-- common/config/rush/repo-state.json | 2 +- webpack/module-minifier-plugin/package.json | 3 ++- .../src/ModuleMinifierPlugin.ts | 21 ++++++++++--------- .../src/PortableMinifierIdsPlugin.ts | 4 ++-- .../src/RehydrateAsset.ts | 8 +++---- .../src/terser/MinifySingleFile.ts | 2 +- .../src/test/RehydrateAsset.test.ts | 16 +++++++------- .../src/workerPool/WebpackWorker.ts | 2 +- webpack/module-minifier-plugin/tsconfig.json | 3 ++- 11 files changed, 40 insertions(+), 31 deletions(-) diff --git a/common/config/rush/common-versions.json b/common/config/rush/common-versions.json index dcd9fc8c6aa..fe9a04032bf 100644 --- a/common/config/rush/common-versions.json +++ b/common/config/rush/common-versions.json @@ -80,6 +80,10 @@ "~3.7.2", "~3.8.3", "~3.9.5" + ], + + "source-map": [ + "~0.6.1" // API Extractor is using an older version of source-map because newer versions are async ] } } diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 274a35189a4..90d2c0e8ee2 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -2215,7 +2215,7 @@ importers: dependencies: '@types/node': 10.17.13 '@types/tapable': 1.0.5 - source-map: 0.6.1 + source-map: 0.7.3 tapable: 1.1.3 terser: 4.7.0 devDependencies: @@ -2224,6 +2224,7 @@ importers: '@rushstack/heft-node-rig': 'link:../../rigs/heft-node-rig' '@types/heft-jest': 1.0.1 '@types/webpack': 4.39.8 + '@types/webpack-sources': 1.4.2 webpack: 4.31.0_webpack@4.31.0 webpack-sources: 1.4.3 specifiers: @@ -2234,7 +2235,8 @@ importers: '@types/node': 10.17.13 '@types/tapable': 1.0.5 '@types/webpack': 4.39.8 - source-map: ~0.6.1 + '@types/webpack-sources': 1.4.2 + source-map: ~0.7.3 tapable: 1.1.3 terser: 4.7.0 webpack: ~4.31.0 diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json index 8a9b3fcddba..54c3cba0f7b 100644 --- a/common/config/rush/repo-state.json +++ b/common/config/rush/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "cddffbd9c5f4145528f38f9616c6fb299c30d89b", + "pnpmShrinkwrapHash": "bcb20252d9571b4bcb40647a6506e2b62896897b", "preferredVersionsHash": "334ea62b6a2798dcf80917b79555983377e7435e" } diff --git a/webpack/module-minifier-plugin/package.json b/webpack/module-minifier-plugin/package.json index 47f7092b608..d930789ef0f 100644 --- a/webpack/module-minifier-plugin/package.json +++ b/webpack/module-minifier-plugin/package.json @@ -28,7 +28,7 @@ "dependencies": { "@types/node": "10.17.13", "@types/tapable": "1.0.5", - "source-map": "~0.6.1", + "source-map": "~0.7.3", "tapable": "1.1.3", "terser": "4.7.0" }, @@ -38,6 +38,7 @@ "@rushstack/heft-node-rig": "workspace:*", "@types/heft-jest": "1.0.1", "@types/webpack": "4.39.8", + "@types/webpack-sources": "1.4.2", "webpack": "~4.31.0", "webpack-sources": "~1.4.3" }, diff --git a/webpack/module-minifier-plugin/src/ModuleMinifierPlugin.ts b/webpack/module-minifier-plugin/src/ModuleMinifierPlugin.ts index a94975f8ab7..ef7eab31b79 100644 --- a/webpack/module-minifier-plugin/src/ModuleMinifierPlugin.ts +++ b/webpack/module-minifier-plugin/src/ModuleMinifierPlugin.ts @@ -49,7 +49,7 @@ const TAP_AFTER: Tap = { interface IExtendedChunkTemplate { hooks: { - modules: SyncWaterfallHook; + modules: SyncWaterfallHook; }; } @@ -196,10 +196,7 @@ export class ModuleMinifierPlugin implements webpack.Plugin { /** * Callback to invoke for a chunk during render to replace the modules with CHUNK_MODULES_TOKEN */ - function dehydrateAsset( - modules: webpack.compilation.Module[], - chunk: webpack.compilation.Chunk - ): Source { + function dehydrateAsset(modules: Source, chunk: webpack.compilation.Chunk): Source { for (const mod of chunk.modulesIterable) { if (!submittedModules.has(mod.id)) { console.error(`Chunk ${chunk.id} failed to render module ${mod.id} for ${mod.resourcePath}`); @@ -278,9 +275,9 @@ export class ModuleMinifierPlugin implements webpack.Plugin { ? new SourceMapSource( minified, // Code nameForMap, // File - minifierMap, // Base source map + minifierMap!, // Base source map sourceForMap, // Source from before transform - map, // Source Map from before transform + map!, // Source Map from before transform false // Remove original source ) : new RawSource(minified); @@ -357,7 +354,11 @@ export class ModuleMinifierPlugin implements webpack.Plugin { const chunkModules: (string | number)[] = Array.from(chunkModuleSet); // Sort by id before rehydration in case we rehydrate a given chunk multiple times - chunkModules.sort(hasNonNumber ? stringifyIdSortPredicate : (x: number, y: number) => x - y); + chunkModules.sort( + hasNonNumber + ? stringifyIdSortPredicate + : (x: string | number, y: string | number) => (x as number) - (y as number) + ); for (const assetName of chunk.files) { const asset: Source = compilation.assets[assetName]; @@ -366,7 +367,7 @@ export class ModuleMinifierPlugin implements webpack.Plugin { if (/\.m?js(\?.+)?$/.test(assetName)) { ++pendingMinificationRequests; - const rawCode: string = asset.source(); + const rawCode: string = asset.source() as string; const nameForMap: string = `(chunks)/${assetName}`; const hash: string = hashCodeFragment(rawCode); @@ -399,7 +400,7 @@ export class ModuleMinifierPlugin implements webpack.Plugin { ? new SourceMapSource( minified, // Code nameForMap, // File - minifierMap, // Base source map + minifierMap!, // Base source map codeForMap, // Source from before transform undefined, // Source Map from before transform false // Remove original source diff --git a/webpack/module-minifier-plugin/src/PortableMinifierIdsPlugin.ts b/webpack/module-minifier-plugin/src/PortableMinifierIdsPlugin.ts index 6836b76dd72..95679b3acab 100644 --- a/webpack/module-minifier-plugin/src/PortableMinifierIdsPlugin.ts +++ b/webpack/module-minifier-plugin/src/PortableMinifierIdsPlugin.ts @@ -5,7 +5,7 @@ import { compilation, Compiler, Plugin } from 'webpack'; import { ReplaceSource } from 'webpack-sources'; import { createHash } from 'crypto'; import { Tap } from 'tapable'; -import * as RequestShortener from 'webpack/lib/RequestShortener'; +import RequestShortener from 'webpack/lib/RequestShortener'; import { STAGE_AFTER, STAGE_BEFORE } from './Constants'; import { @@ -93,7 +93,7 @@ export class PortableMinifierModuleIdsPlugin implements Plugin { }); this._minifierHooks.postProcessCodeFragment.tap(PLUGIN_NAME, (source: ReplaceSource, context: string) => { - const code: string = source.original().source(); + const code: string = source.original().source() as string; STABLE_MODULE_ID_REGEX.lastIndex = -1; // RegExp.exec uses null or an array as the return type, explicitly diff --git a/webpack/module-minifier-plugin/src/RehydrateAsset.ts b/webpack/module-minifier-plugin/src/RehydrateAsset.ts index 5fc9ca519b1..86131c91d5e 100644 --- a/webpack/module-minifier-plugin/src/RehydrateAsset.ts +++ b/webpack/module-minifier-plugin/src/RehydrateAsset.ts @@ -16,7 +16,7 @@ import { IAssetInfo, IModuleMap, IModuleInfo } from './ModuleMinifierPlugin.type export function rehydrateAsset(asset: IAssetInfo, moduleMap: IModuleMap, banner: string): Source { const { source: assetSource, modules, externalNames } = asset; - const assetCode: string = assetSource.source(); + const assetCode: string = assetSource.source() as string; const tokenIndex: number = assetCode.indexOf(CHUNK_MODULES_TOKEN); const suffixStart: number = tokenIndex + CHUNK_MODULES_TOKEN.length; @@ -142,7 +142,7 @@ export function rehydrateAsset(asset: IAssetInfo, moduleMap: IModuleMap, banner: if (externalNames.size) { const replaceSource: ReplaceSource = new ReplaceSource(cached); - const code: string = cached.source(); + const code: string = cached.source() as string; const externalIdRegex: RegExp = /__WEBPACK_EXTERNAL_MODULE_[A-Za-z0-9_$]+/g; @@ -154,9 +154,9 @@ export function rehydrateAsset(asset: IAssetInfo, moduleMap: IModuleMap, banner: if (mapped === undefined) { console.error(`Missing minified external for ${id} in ${asset.fileName}!`); + } else { + replaceSource.replace(match.index, externalIdRegex.lastIndex - 1, mapped); } - - replaceSource.replace(match.index, externalIdRegex.lastIndex - 1, mapped); } return new CachedSource(replaceSource); diff --git a/webpack/module-minifier-plugin/src/terser/MinifySingleFile.ts b/webpack/module-minifier-plugin/src/terser/MinifySingleFile.ts index 9531fc19c0f..f3327236fed 100644 --- a/webpack/module-minifier-plugin/src/terser/MinifySingleFile.ts +++ b/webpack/module-minifier-plugin/src/terser/MinifySingleFile.ts @@ -108,7 +108,7 @@ export function minifySingleFile( return { error: undefined, code: minified.code!, - map: minified.map as RawSourceMap, + map: (minified.map as unknown) as RawSourceMap, hash, extractedComments }; diff --git a/webpack/module-minifier-plugin/src/test/RehydrateAsset.test.ts b/webpack/module-minifier-plugin/src/test/RehydrateAsset.test.ts index 403c9475b9c..8102161fe4c 100644 --- a/webpack/module-minifier-plugin/src/test/RehydrateAsset.test.ts +++ b/webpack/module-minifier-plugin/src/test/RehydrateAsset.test.ts @@ -79,7 +79,7 @@ describe('rehydrateAsset', () => { externalNames: new Map() }; - const result: string = rehydrateAsset(asset, modules, banner).source(); + const result: string = rehydrateAsset(asset, modules, banner).source() as string; const expected: string = `/* fnord */\n{a:foo,b:bar,"0b":baz,"=":bak,a0:bal}`; if (result !== expected) { @@ -97,7 +97,7 @@ describe('rehydrateAsset', () => { externalNames: new Map() }; - const result: string = rehydrateAsset(asset, modules, banner).source(); + const result: string = rehydrateAsset(asset, modules, banner).source() as string; const expected: string = `/* fnord */\n{0:fizz,25:bang}`; if (result !== expected) { @@ -115,7 +115,7 @@ describe('rehydrateAsset', () => { externalNames: new Map() }; - const result: string = rehydrateAsset(asset, modules, banner).source(); + const result: string = rehydrateAsset(asset, modules, banner).source() as string; const expected: string = `/* fnord */\n[,,buzz]`; if (result !== expected) { @@ -133,7 +133,7 @@ describe('rehydrateAsset', () => { externalNames: new Map() }; - const result: string = rehydrateAsset(asset, modules, banner).source(); + const result: string = rehydrateAsset(asset, modules, banner).source() as string; const expected: string = `/* fnord */\n[,,,,,,,,,,,,,,bozz,bozz,bozz,bozz,bozz,bozz,bozz,bozz,bozz,bozz,bozz,bang,bozz,bozz,bozz,bozz]`; if (result !== expected) { @@ -151,7 +151,7 @@ describe('rehydrateAsset', () => { externalNames: new Map() }; - const result: string = rehydrateAsset(asset, modules, banner).source(); + const result: string = rehydrateAsset(asset, modules, banner).source() as string; const expected: string = `/* fnord */\nArray(1000).concat([b1000,b1001,b1002,b1003,b1004,b1005,b1006,b1007,b1008,b1009])`; if (result !== expected) { @@ -169,7 +169,7 @@ describe('rehydrateAsset', () => { externalNames: new Map() }; - const result: string = rehydrateAsset(asset, modules, banner).source(); + const result: string = rehydrateAsset(asset, modules, banner).source() as string; const expected: string = `/* fnord */\n[fizz,,buzz].concat(Array(997),[b1000,b1001,b1002,b1003,b1004,b1005,b1006,b1007,b1008,b1009])`; if (result !== expected) { @@ -187,7 +187,7 @@ describe('rehydrateAsset', () => { externalNames: new Map() }; - const result: string = rehydrateAsset(asset, modules, banner).source(); + const result: string = rehydrateAsset(asset, modules, banner).source() as string; const expected: string = `/* fnord */\n[,,buzz].concat(Array(997),[b1000,b1001,b1002,b1003,b1004,b1005,b1006,b1007,b1008,b1009])`; if (result !== expected) { @@ -205,7 +205,7 @@ describe('rehydrateAsset', () => { externalNames: new Map([['__WEBPACK_EXTERNAL_MODULE_fizz__', 'TREBLE']]) }; - const result: string = rehydrateAsset(asset, modules, banner).source(); + const result: string = rehydrateAsset(asset, modules, banner).source() as string; const expected: string = `/* fnord */\n{255:TREBLE}`; if (result !== expected) { diff --git a/webpack/module-minifier-plugin/src/workerPool/WebpackWorker.ts b/webpack/module-minifier-plugin/src/workerPool/WebpackWorker.ts index 2bd420aad8b..ab4f495a0a1 100644 --- a/webpack/module-minifier-plugin/src/workerPool/WebpackWorker.ts +++ b/webpack/module-minifier-plugin/src/workerPool/WebpackWorker.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as webpack from 'webpack'; +import webpack = require('webpack'); import * as workerThreads from 'worker_threads'; import { MessagePortMinifier } from '../MessagePortMinifier'; import { ModuleMinifierPlugin } from '../ModuleMinifierPlugin'; diff --git a/webpack/module-minifier-plugin/tsconfig.json b/webpack/module-minifier-plugin/tsconfig.json index 86e3ef4a1a0..b620ff7f9f6 100644 --- a/webpack/module-minifier-plugin/tsconfig.json +++ b/webpack/module-minifier-plugin/tsconfig.json @@ -2,6 +2,7 @@ "extends": "./node_modules/@rushstack/heft-node-rig/profiles/default/tsconfig-base.json", "compilerOptions": { "target": "ESNext", - "types": ["heft-jest", "node"] + "types": ["heft-jest", "node"], + "noImplicitAny": false // Some typings are missing } } From fea0e36e466b5a5c172603da0c57ac0556d5e540 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Sun, 27 Sep 2020 21:13:30 -0700 Subject: [PATCH 04/36] Fix strict compiler issues with api-documenter --- apps/api-documenter/src/cli/BaseAction.ts | 33 +++++----- apps/api-documenter/src/cli/GenerateAction.ts | 7 +- apps/api-documenter/src/cli/MarkdownAction.ts | 5 +- apps/api-documenter/src/cli/YamlAction.ts | 11 ++-- .../documenters/ExperimentalYamlDocumenter.ts | 2 +- .../src/documenters/MarkdownDocumenter.ts | 65 ++++++++++--------- .../src/documenters/OfficeYamlDocumenter.ts | 2 +- .../src/documenters/YamlDocumenter.ts | 33 +++++----- .../src/markdown/CustomMarkdownEmitter.ts | 2 +- .../src/plugin/MarkdownDocumenterFeature.ts | 2 +- .../src/plugin/PluginFeature.ts | 2 +- .../api-documenter/src/plugin/PluginLoader.ts | 8 +-- apps/api-documenter/src/start.ts | 2 +- 13 files changed, 88 insertions(+), 86 deletions(-) diff --git a/apps/api-documenter/src/cli/BaseAction.ts b/apps/api-documenter/src/cli/BaseAction.ts index d6335ce614b..64753a40579 100644 --- a/apps/api-documenter/src/cli/BaseAction.ts +++ b/apps/api-documenter/src/cli/BaseAction.ts @@ -3,7 +3,7 @@ import * as path from 'path'; import * as tsdoc from '@microsoft/tsdoc'; -import * as colors from 'colors'; +import colors from 'colors'; import { CommandLineAction, CommandLineStringParameter } from '@rushstack/ts-command-line'; import { FileSystem } from '@rushstack/node-core-library'; @@ -15,12 +15,15 @@ import { IResolveDeclarationReferenceResult } from '@microsoft/api-extractor-model'; -export abstract class BaseAction extends CommandLineAction { - protected inputFolder: string; - protected outputFolder: string; +export interface IBuildApiModelResult { + apiModel: ApiModel; + inputFolder: string; + outputFolder: string; +} - private _inputFolderParameter: CommandLineStringParameter; - private _outputFolderParameter: CommandLineStringParameter; +export abstract class BaseAction extends CommandLineAction { + private _inputFolderParameter!: CommandLineStringParameter; + private _outputFolderParameter!: CommandLineStringParameter; protected onDefineParameters(): void { // override @@ -44,28 +47,28 @@ export abstract class BaseAction extends CommandLineAction { }); } - protected buildApiModel(): ApiModel { + protected buildApiModel(): IBuildApiModelResult { const apiModel: ApiModel = new ApiModel(); - this.inputFolder = this._inputFolderParameter.value || './input'; - if (!FileSystem.exists(this.inputFolder)) { - throw new Error('The input folder does not exist: ' + this.inputFolder); + const inputFolder: string = this._inputFolderParameter.value || './input'; + if (!FileSystem.exists(inputFolder)) { + throw new Error('The input folder does not exist: ' + inputFolder); } - this.outputFolder = this._outputFolderParameter.value || `./${this.actionName}`; - FileSystem.ensureFolder(this.outputFolder); + const outputFolder: string = this._outputFolderParameter.value || `./${this.actionName}`; + FileSystem.ensureFolder(outputFolder); - for (const filename of FileSystem.readFolder(this.inputFolder)) { + for (const filename of FileSystem.readFolder(inputFolder)) { if (filename.match(/\.api\.json$/i)) { console.log(`Reading ${filename}`); - const filenamePath: string = path.join(this.inputFolder, filename); + const filenamePath: string = path.join(inputFolder, filename); apiModel.loadPackage(filenamePath); } } this._applyInheritDoc(apiModel, apiModel); - return apiModel; + return { apiModel, inputFolder, outputFolder }; } // TODO: This is a temporary workaround. The long term plan is for API Extractor's DocCommentEnhancer diff --git a/apps/api-documenter/src/cli/GenerateAction.ts b/apps/api-documenter/src/cli/GenerateAction.ts index d0beb56d8c1..f0eb29063cd 100644 --- a/apps/api-documenter/src/cli/GenerateAction.ts +++ b/apps/api-documenter/src/cli/GenerateAction.ts @@ -8,7 +8,6 @@ import { BaseAction } from './BaseAction'; import { DocumenterConfig } from '../documenters/DocumenterConfig'; import { ExperimentalYamlDocumenter } from '../documenters/ExperimentalYamlDocumenter'; -import { ApiModel } from '@microsoft/api-extractor-model'; import { FileSystem } from '@rushstack/node-core-library'; import { MarkdownDocumenter } from '../documenters/MarkdownDocumenter'; @@ -42,17 +41,17 @@ export class GenerateAction extends BaseAction { const documenterConfig: DocumenterConfig = DocumenterConfig.loadFile(configFilePath); - const apiModel: ApiModel = this.buildApiModel(); + const { apiModel, outputFolder } = this.buildApiModel(); if (documenterConfig.configFile.outputTarget === 'markdown') { const markdownDocumenter: MarkdownDocumenter = new MarkdownDocumenter(apiModel, documenterConfig); - markdownDocumenter.generateFiles(this.outputFolder); + markdownDocumenter.generateFiles(outputFolder); } else { const yamlDocumenter: ExperimentalYamlDocumenter = new ExperimentalYamlDocumenter( apiModel, documenterConfig ); - yamlDocumenter.generateFiles(this.outputFolder); + yamlDocumenter.generateFiles(outputFolder); } return Promise.resolve(); diff --git a/apps/api-documenter/src/cli/MarkdownAction.ts b/apps/api-documenter/src/cli/MarkdownAction.ts index 6cbc9be633e..c9101654379 100644 --- a/apps/api-documenter/src/cli/MarkdownAction.ts +++ b/apps/api-documenter/src/cli/MarkdownAction.ts @@ -4,7 +4,6 @@ import { ApiDocumenterCommandLine } from './ApiDocumenterCommandLine'; import { BaseAction } from './BaseAction'; import { MarkdownDocumenter } from '../documenters/MarkdownDocumenter'; -import { ApiModel } from '@microsoft/api-extractor-model'; export class MarkdownAction extends BaseAction { public constructor(parser: ApiDocumenterCommandLine) { @@ -19,10 +18,10 @@ export class MarkdownAction extends BaseAction { protected onExecute(): Promise { // override - const apiModel: ApiModel = this.buildApiModel(); + const { apiModel, outputFolder } = this.buildApiModel(); const markdownDocumenter: MarkdownDocumenter = new MarkdownDocumenter(apiModel, undefined); - markdownDocumenter.generateFiles(this.outputFolder); + markdownDocumenter.generateFiles(outputFolder); return Promise.resolve(); } } diff --git a/apps/api-documenter/src/cli/YamlAction.ts b/apps/api-documenter/src/cli/YamlAction.ts index 3722174de3f..f2bf166c315 100644 --- a/apps/api-documenter/src/cli/YamlAction.ts +++ b/apps/api-documenter/src/cli/YamlAction.ts @@ -8,11 +8,10 @@ import { BaseAction } from './BaseAction'; import { YamlDocumenter } from '../documenters/YamlDocumenter'; import { OfficeYamlDocumenter } from '../documenters/OfficeYamlDocumenter'; -import { ApiModel } from '@microsoft/api-extractor-model'; export class YamlAction extends BaseAction { - private _officeParameter: CommandLineFlagParameter; - private _newDocfxNamespacesParameter: CommandLineFlagParameter; + private _officeParameter!: CommandLineFlagParameter; + private _newDocfxNamespacesParameter!: CommandLineFlagParameter; public constructor(parser: ApiDocumenterCommandLine) { super({ @@ -45,13 +44,13 @@ export class YamlAction extends BaseAction { protected onExecute(): Promise { // override - const apiModel: ApiModel = this.buildApiModel(); + const { apiModel, inputFolder, outputFolder } = this.buildApiModel(); const yamlDocumenter: YamlDocumenter = this._officeParameter.value - ? new OfficeYamlDocumenter(apiModel, this.inputFolder, this._newDocfxNamespacesParameter.value) + ? new OfficeYamlDocumenter(apiModel, inputFolder, this._newDocfxNamespacesParameter.value) : new YamlDocumenter(apiModel, this._newDocfxNamespacesParameter.value); - yamlDocumenter.generateFiles(this.outputFolder); + yamlDocumenter.generateFiles(outputFolder); return Promise.resolve(); } } diff --git a/apps/api-documenter/src/documenters/ExperimentalYamlDocumenter.ts b/apps/api-documenter/src/documenters/ExperimentalYamlDocumenter.ts index 66d3b626771..af20c75f7c4 100644 --- a/apps/api-documenter/src/documenters/ExperimentalYamlDocumenter.ts +++ b/apps/api-documenter/src/documenters/ExperimentalYamlDocumenter.ts @@ -16,7 +16,7 @@ import { DocumenterConfig } from './DocumenterConfig'; export class ExperimentalYamlDocumenter extends YamlDocumenter { private _config: IConfigTableOfContents; private _tocPointerMap: { [key: string]: IYamlTocItem }; - private _catchAllPointer: IYamlTocItem; + private _catchAllPointer: IYamlTocItem | undefined; public constructor(apiModel: ApiModel, documenterConfig: DocumenterConfig) { super(apiModel, documenterConfig.configFile.newDocfxNamespaces); diff --git a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts index dc87c28dc5c..d37685ee827 100644 --- a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts +++ b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts @@ -66,7 +66,6 @@ export class MarkdownDocumenter { private readonly _documenterConfig: DocumenterConfig | undefined; private readonly _tsdocConfiguration: TSDocConfiguration; private readonly _markdownEmitter: CustomMarkdownEmitter; - private _outputFolder: string; private readonly _pluginLoader: PluginLoader; public constructor(apiModel: ApiModel, documenterConfig: DocumenterConfig | undefined) { @@ -79,8 +78,6 @@ export class MarkdownDocumenter { } public generateFiles(outputFolder: string): void { - this._outputFolder = outputFolder; - if (this._documenterConfig) { this._pluginLoader.load(this._documenterConfig, () => { return new MarkdownDocumenterFeatureContext({ @@ -96,16 +93,16 @@ export class MarkdownDocumenter { } console.log(); - this._deleteOldOutputFiles(); + this._deleteOldOutputFiles(outputFolder); - this._writeApiItemPage(this._apiModel); + this._writeApiItemPage(outputFolder, this._apiModel); if (this._pluginLoader.markdownDocumenterFeature) { this._pluginLoader.markdownDocumenterFeature.onFinished({}); } } - private _writeApiItemPage(apiItem: ApiItem): void { + private _writeApiItemPage(outputFolder: string, apiItem: ApiItem): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const output: DocSection = new DocSection({ configuration: this._tsdocConfiguration }); @@ -221,13 +218,13 @@ export class MarkdownDocumenter { switch (apiItem.kind) { case ApiItemKind.Class: - this._writeClassTables(output, apiItem as ApiClass); + this._writeClassTables(outputFolder, output, apiItem as ApiClass); break; case ApiItemKind.Enum: this._writeEnumTables(output, apiItem as ApiEnum); break; case ApiItemKind.Interface: - this._writeInterfaceTables(output, apiItem as ApiInterface); + this._writeInterfaceTables(outputFolder, output, apiItem as ApiInterface); break; case ApiItemKind.Constructor: case ApiItemKind.ConstructSignature: @@ -238,13 +235,13 @@ export class MarkdownDocumenter { this._writeThrowsSection(output, apiItem); break; case ApiItemKind.Namespace: - this._writePackageOrNamespaceTables(output, apiItem as ApiNamespace); + this._writePackageOrNamespaceTables(outputFolder, output, apiItem as ApiNamespace); break; case ApiItemKind.Model: - this._writeModelTable(output, apiItem as ApiModel); + this._writeModelTable(outputFolder, output, apiItem as ApiModel); break; case ApiItemKind.Package: - this._writePackageOrNamespaceTables(output, apiItem as ApiPackage); + this._writePackageOrNamespaceTables(outputFolder, output, apiItem as ApiPackage); break; case ApiItemKind.Property: case ApiItemKind.PropertySignature: @@ -261,7 +258,7 @@ export class MarkdownDocumenter { this._writeRemarksSection(output, apiItem); } - const filename: string = path.join(this._outputFolder, this._getFilenameForApiItem(apiItem)); + const filename: string = path.join(outputFolder, this._getFilenameForApiItem(apiItem)); const stringBuilder: StringBuilder = new StringBuilder(); stringBuilder.append( @@ -399,7 +396,7 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: MODEL */ - private _writeModelTable(output: DocSection, apiModel: ApiModel): void { + private _writeModelTable(outputFolder: string, output: DocSection, apiModel: ApiModel): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const packagesTable: DocTable = new DocTable({ @@ -416,7 +413,7 @@ export class MarkdownDocumenter { switch (apiMember.kind) { case ApiItemKind.Package: packagesTable.addRow(row); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; } } @@ -430,7 +427,11 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: PACKAGE or NAMESPACE */ - private _writePackageOrNamespaceTables(output: DocSection, apiContainer: ApiPackage | ApiNamespace): void { + private _writePackageOrNamespaceTables( + outputFolder: string, + output: DocSection, + apiContainer: ApiPackage | ApiNamespace + ): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const classesTable: DocTable = new DocTable({ @@ -482,37 +483,37 @@ export class MarkdownDocumenter { switch (apiMember.kind) { case ApiItemKind.Class: classesTable.addRow(row); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; case ApiItemKind.Enum: enumerationsTable.addRow(row); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; case ApiItemKind.Interface: interfacesTable.addRow(row); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; case ApiItemKind.Namespace: namespacesTable.addRow(row); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; case ApiItemKind.Function: functionsTable.addRow(row); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; case ApiItemKind.TypeAlias: typeAliasesTable.addRow(row); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; case ApiItemKind.Variable: variablesTable.addRow(row); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; } } @@ -555,7 +556,7 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: CLASS */ - private _writeClassTables(output: DocSection, apiClass: ApiClass): void { + private _writeClassTables(outputFolder: string, output: DocSection, apiClass: ApiClass): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const eventsTable: DocTable = new DocTable({ @@ -589,7 +590,7 @@ export class MarkdownDocumenter { ]) ); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; } case ApiItemKind.Method: { @@ -601,7 +602,7 @@ export class MarkdownDocumenter { ]) ); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; } case ApiItemKind.Property: { @@ -625,7 +626,7 @@ export class MarkdownDocumenter { ); } - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; } } @@ -694,7 +695,7 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: INTERFACE */ - private _writeInterfaceTables(output: DocSection, apiClass: ApiInterface): void { + private _writeInterfaceTables(outputFolder: string, output: DocSection, apiClass: ApiInterface): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const eventsTable: DocTable = new DocTable({ @@ -723,7 +724,7 @@ export class MarkdownDocumenter { ]) ); - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; } case ApiItemKind.PropertySignature: { @@ -745,7 +746,7 @@ export class MarkdownDocumenter { ); } - this._writeApiItemPage(apiMember); + this._writeApiItemPage(outputFolder, apiMember); break; } } @@ -1048,8 +1049,8 @@ export class MarkdownDocumenter { return './' + this._getFilenameForApiItem(apiItem); } - private _deleteOldOutputFiles(): void { - console.log('Deleting old output from ' + this._outputFolder); - FileSystem.ensureEmptyFolder(this._outputFolder); + private _deleteOldOutputFiles(outputFolder: string): void { + console.log('Deleting old output from ' + outputFolder); + FileSystem.ensureEmptyFolder(outputFolder); } } diff --git a/apps/api-documenter/src/documenters/OfficeYamlDocumenter.ts b/apps/api-documenter/src/documenters/OfficeYamlDocumenter.ts index 40194106e93..6116e869426 100644 --- a/apps/api-documenter/src/documenters/OfficeYamlDocumenter.ts +++ b/apps/api-documenter/src/documenters/OfficeYamlDocumenter.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as path from 'path'; import yaml = require('js-yaml'); diff --git a/apps/api-documenter/src/documenters/YamlDocumenter.ts b/apps/api-documenter/src/documenters/YamlDocumenter.ts index 3154556dc14..6a73d7b5caa 100644 --- a/apps/api-documenter/src/documenters/YamlDocumenter.ts +++ b/apps/api-documenter/src/documenters/YamlDocumenter.ts @@ -89,7 +89,6 @@ export class YamlDocumenter { private _apiItemsByCanonicalReference: Map; private _yamlReferences: IYamlReferences | undefined; - private _outputFolder: string; public constructor(apiModel: ApiModel, newDocfxNamespaces: boolean = false) { this._apiModel = apiModel; @@ -102,17 +101,15 @@ export class YamlDocumenter { /** @virtual */ public generateFiles(outputFolder: string): void { - this._outputFolder = outputFolder; - console.log(); - this._deleteOldOutputFiles(); + this._deleteOldOutputFiles(outputFolder); for (const apiPackage of this._apiModel.packages) { console.log(`Writing ${apiPackage.name} package`); - this._visitApiItems(apiPackage, undefined); + this._visitApiItems(outputFolder, apiPackage, undefined); } - this._writeTocFile(this._apiModel.packages); + this._writeTocFile(outputFolder, this._apiModel.packages); } /** @virtual */ @@ -130,7 +127,11 @@ export class YamlDocumenter { // (overridden by child class) } - private _visitApiItems(apiItem: ApiDocumentedItem, parentYamlFile: IYamlApiFile | undefined): boolean { + private _visitApiItems( + outputFolder: string, + apiItem: ApiDocumentedItem, + parentYamlFile: IYamlApiFile | undefined + ): boolean { let savedYamlReferences: IYamlReferences | undefined; if (!this._shouldEmbed(apiItem.kind)) { savedYamlReferences = this._yamlReferences; @@ -158,7 +159,7 @@ export class YamlDocumenter { const children: ApiItem[] = this._getLogicalChildren(apiItem); for (const child of children) { if (child instanceof ApiDocumentedItem) { - if (this._visitApiItems(child, newYamlFile)) { + if (this._visitApiItems(outputFolder, child, newYamlFile)) { if (!yamlItem.children) { yamlItem.children = []; } @@ -173,7 +174,7 @@ export class YamlDocumenter { this._yamlReferences = savedYamlReferences; - const yamlFilePath: string = this._getYamlFilePath(apiItem); + const yamlFilePath: string = this._getYamlFilePath(outputFolder, apiItem); if (apiItem.kind === ApiItemKind.Package) { console.log('Writing ' + yamlFilePath); @@ -270,10 +271,10 @@ export class YamlDocumenter { /** * Write the table of contents */ - private _writeTocFile(apiItems: ReadonlyArray): void { + private _writeTocFile(outputFolder: string, apiItems: ReadonlyArray): void { const tocFile: IYamlTocFile = this.buildYamlTocFile(apiItems); - const tocFilePath: string = path.join(this._outputFolder, 'toc.yml'); + const tocFilePath: string = path.join(outputFolder, 'toc.yml'); console.log('Writing ' + tocFilePath); this._writeYamlFile(tocFile, tocFilePath, '', undefined); } @@ -994,7 +995,7 @@ export class YamlDocumenter { } } - private _getYamlFilePath(apiItem: ApiItem): string { + private _getYamlFilePath(outputFolder: string, apiItem: ApiItem): string { let result: string = ''; for (const current of apiItem.getHierarchy()) { @@ -1021,11 +1022,11 @@ export class YamlDocumenter { disambiguator = `-${apiItem.kind.toLowerCase()}`; } - return path.join(this._outputFolder, result + disambiguator + '.yml'); + return path.join(outputFolder, result + disambiguator + '.yml'); } - private _deleteOldOutputFiles(): void { - console.log('Deleting old output from ' + this._outputFolder); - FileSystem.ensureEmptyFolder(this._outputFolder); + private _deleteOldOutputFiles(outputFolder: string): void { + console.log('Deleting old output from ' + outputFolder); + FileSystem.ensureEmptyFolder(outputFolder); } } diff --git a/apps/api-documenter/src/markdown/CustomMarkdownEmitter.ts b/apps/api-documenter/src/markdown/CustomMarkdownEmitter.ts index d843ad1809e..413c7ae620b 100644 --- a/apps/api-documenter/src/markdown/CustomMarkdownEmitter.ts +++ b/apps/api-documenter/src/markdown/CustomMarkdownEmitter.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import { DocNode, DocLinkTag, StringBuilder } from '@microsoft/tsdoc'; import { ApiModel, IResolveDeclarationReferenceResult, ApiItem } from '@microsoft/api-extractor-model'; diff --git a/apps/api-documenter/src/plugin/MarkdownDocumenterFeature.ts b/apps/api-documenter/src/plugin/MarkdownDocumenterFeature.ts index 2059945e64f..8a15c0f1435 100644 --- a/apps/api-documenter/src/plugin/MarkdownDocumenterFeature.ts +++ b/apps/api-documenter/src/plugin/MarkdownDocumenterFeature.ts @@ -74,7 +74,7 @@ const uuidMarkdownDocumenterFeature: string = '34196154-9eb3-4de0-a8c8-7e9539dfe */ export class MarkdownDocumenterFeature extends PluginFeature { /** {@inheritdoc PluginFeature.context} */ - public context: MarkdownDocumenterFeatureContext; + public context!: MarkdownDocumenterFeatureContext; /** * This event occurs before each markdown file is written. It provides an opportunity to customize the diff --git a/apps/api-documenter/src/plugin/PluginFeature.ts b/apps/api-documenter/src/plugin/PluginFeature.ts index 4fec08de175..adc1389989c 100644 --- a/apps/api-documenter/src/plugin/PluginFeature.ts +++ b/apps/api-documenter/src/plugin/PluginFeature.ts @@ -13,7 +13,7 @@ import { TypeUuid } from '@rushstack/node-core-library'; */ export class PluginFeatureInitialization { /** @internal */ - public _context: PluginFeatureContext; + public _context!: PluginFeatureContext; /** @internal */ public constructor() { diff --git a/apps/api-documenter/src/plugin/PluginLoader.ts b/apps/api-documenter/src/plugin/PluginLoader.ts index 2216598f4da..efd583b4b9f 100644 --- a/apps/api-documenter/src/plugin/PluginLoader.ts +++ b/apps/api-documenter/src/plugin/PluginLoader.ts @@ -30,15 +30,15 @@ export class PluginLoader { }); // Load the package - const entryPoint: object | undefined = require(resolvedEntryPointPath); + const entryPoint: + | { apiDocumenterPluginManifest: IApiDocumenterPluginManifest } + | undefined = require(resolvedEntryPointPath); if (!entryPoint) { throw new Error('Invalid entry point'); } - const manifest: IApiDocumenterPluginManifest = - // eslint-disable-next-line dot-notation - entryPoint['apiDocumenterPluginManifest'] as IApiDocumenterPluginManifest; + const manifest: IApiDocumenterPluginManifest = entryPoint.apiDocumenterPluginManifest; if (!manifest) { throw new Error( diff --git a/apps/api-documenter/src/start.ts b/apps/api-documenter/src/start.ts index 68cae42998b..592e84d2ed6 100644 --- a/apps/api-documenter/src/start.ts +++ b/apps/api-documenter/src/start.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as os from 'os'; -import * as colors from 'colors'; +import colors from 'colors'; import { PackageJsonLookup } from '@rushstack/node-core-library'; From ffa4e0517d357fe40dcecff0599fb01c4ce5a35d Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Sun, 27 Sep 2020 21:50:56 -0700 Subject: [PATCH 05/36] Fix strict compiler issues with load-themed-styles --- libraries/load-themed-styles/src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/load-themed-styles/src/index.ts b/libraries/load-themed-styles/src/index.ts index e6486d5d047..867df3703ef 100644 --- a/libraries/load-themed-styles/src/index.ts +++ b/libraries/load-themed-styles/src/index.ts @@ -209,7 +209,7 @@ export function flush(): void { measure(() => { const styleArrays: ThemableArray[] = _themeState.runState.buffer.slice(); _themeState.runState.buffer = []; - const mergedStyleArray: ThemableArray = [].concat.apply([], styleArrays); + const mergedStyleArray: ThemableArray = ([] as ThemableArray).concat.apply([], styleArrays); if (mergedStyleArray.length > 0) { applyThemableStyles(mergedStyleArray); } @@ -288,7 +288,7 @@ function reloadStyles(): void { } if (themableStyles.length > 0) { clearStyles(ClearStyleOptions.onlyThemable); - applyThemableStyles([].concat.apply([], themableStyles)); + applyThemableStyles(([] as ThemableArray).concat.apply([], themableStyles)); } } } From 01406edd27eeb4affc8f54602930ac8d1213adf0 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Sun, 27 Sep 2020 21:56:35 -0700 Subject: [PATCH 06/36] Fix strict compiler issues with terminal --- libraries/terminal/src/test/RemoveColorsTextRewriter.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/terminal/src/test/RemoveColorsTextRewriter.test.ts b/libraries/terminal/src/test/RemoveColorsTextRewriter.test.ts index ab769cfbb19..0a7f5c142a1 100644 --- a/libraries/terminal/src/test/RemoveColorsTextRewriter.test.ts +++ b/libraries/terminal/src/test/RemoveColorsTextRewriter.test.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import { RemoveColorsTextRewriter } from '../RemoveColorsTextRewriter'; import { TextRewriterState } from '../TextRewriter'; From ef421c3ce085f974ebb83bfb8066313c8764101c Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Mon, 28 Sep 2020 00:40:46 -0700 Subject: [PATCH 07/36] Fix strict compiler issues with rush-lib --- apps/rush-lib/package.json | 3 +- apps/rush-lib/src/__mocks__/child_process.ts | 6 +-- .../src/api/ApprovedPackagesConfiguration.ts | 15 ++++-- apps/rush-lib/src/api/Changelog.ts | 11 +--- .../src/api/CommonVersionsConfiguration.ts | 26 +++++----- apps/rush-lib/src/api/EventHooks.ts | 21 ++++---- apps/rush-lib/src/api/Rush.ts | 2 +- apps/rush-lib/src/api/RushConfiguration.ts | 16 +++--- .../src/api/RushConfigurationProject.ts | 6 +-- apps/rush-lib/src/api/VersionPolicy.ts | 33 ++++++++++-- .../src/api/packageManager/PackageManager.ts | 2 +- .../src/cli/CommandLineMigrationAdvisor.ts | 2 +- .../rush-lib/src/cli/RushCommandLineParser.ts | 8 +-- apps/rush-lib/src/cli/RushXCommandLine.ts | 2 +- apps/rush-lib/src/cli/actions/AddAction.ts | 14 +++--- .../src/cli/actions/BaseInstallAction.ts | 16 +++--- .../src/cli/actions/BaseRushAction.ts | 4 +- apps/rush-lib/src/cli/actions/ChangeAction.ts | 28 +++++------ apps/rush-lib/src/cli/actions/CheckAction.ts | 6 +-- apps/rush-lib/src/cli/actions/DeployAction.ts | 10 ++-- apps/rush-lib/src/cli/actions/InitAction.ts | 6 +-- .../cli/actions/InitAutoinstallerAction.ts | 4 +- .../src/cli/actions/InitDeployAction.ts | 6 +-- .../rush-lib/src/cli/actions/InstallAction.ts | 4 +- apps/rush-lib/src/cli/actions/LinkAction.ts | 2 +- apps/rush-lib/src/cli/actions/ListAction.ts | 8 +-- .../rush-lib/src/cli/actions/PublishAction.ts | 50 +++++++++---------- apps/rush-lib/src/cli/actions/PurgeAction.ts | 4 +- apps/rush-lib/src/cli/actions/ScanAction.ts | 2 +- apps/rush-lib/src/cli/actions/UpdateAction.ts | 4 +- .../cli/actions/UpdateAutoinstallerAction.ts | 2 +- .../rush-lib/src/cli/actions/VersionAction.ts | 33 ++++++------ .../src/cli/scriptActions/BulkScriptAction.ts | 14 +++--- .../cli/scriptActions/GlobalScriptAction.ts | 2 +- .../src/logic/ApprovedPackagesChecker.ts | 2 +- apps/rush-lib/src/logic/Autoinstaller.ts | 2 +- apps/rush-lib/src/logic/ChangeFiles.ts | 10 ++-- apps/rush-lib/src/logic/ChangeManager.ts | 10 ++-- apps/rush-lib/src/logic/ChangelogGenerator.ts | 2 +- apps/rush-lib/src/logic/EventHooksManager.ts | 2 +- .../src/logic/InstallManagerFactory.ts | 2 +- .../rush-lib/src/logic/NodeJsCompatibility.ts | 2 +- .../src/logic/PackageChangeAnalyzer.ts | 2 +- apps/rush-lib/src/logic/PackageJsonUpdater.ts | 2 +- apps/rush-lib/src/logic/PublishUtilities.ts | 14 +++++- apps/rush-lib/src/logic/PurgeManager.ts | 2 +- apps/rush-lib/src/logic/SetupChecks.ts | 2 +- apps/rush-lib/src/logic/TaskSelector.ts | 25 ++++++---- apps/rush-lib/src/logic/UnlinkManager.ts | 2 +- .../src/logic/base/BaseInstallManager.ts | 2 +- .../src/logic/base/BaseLinkManager.ts | 2 +- .../src/logic/base/BaseShrinkwrapFile.ts | 2 +- .../src/logic/deploy/DeployArchiver.ts | 2 +- .../src/logic/deploy/DeployManager.ts | 2 +- .../deploy/DeployScenarioConfiguration.ts | 2 +- .../logic/installManager/InstallHelpers.ts | 2 +- .../installManager/RushInstallManager.ts | 4 +- .../installManager/WorkspaceInstallManager.ts | 2 +- apps/rush-lib/src/logic/npm/NpmLinkManager.ts | 2 +- .../src/logic/pnpm/PnpmLinkManager.ts | 2 +- .../pnpm/PnpmProjectDependencyManifest.ts | 2 +- .../src/logic/pnpm/PnpmShrinkwrapFile.ts | 17 +++---- .../src/logic/pnpm/PnpmWorkspaceFile.ts | 2 +- .../src/logic/policy/GitEmailPolicy.ts | 2 +- .../src/logic/taskRunner/ProjectBuilder.ts | 7 ++- apps/rush-lib/src/logic/taskRunner/Task.ts | 15 ++++-- .../src/logic/taskRunner/TaskCollection.ts | 6 +-- .../src/logic/taskRunner/TaskRunner.ts | 14 +++--- .../logic/taskRunner/test/TaskRunner.test.ts | 8 +-- .../versionMismatch/VersionMismatchFinder.ts | 2 +- .../src/logic/yarn/YarnShrinkwrapFile.ts | 17 +++++-- apps/rush-lib/src/utilities/Npm.ts | 4 +- apps/rush-lib/src/utilities/Utilities.ts | 2 +- apps/rush-lib/src/utilities/VersionControl.ts | 2 +- common/config/rush/pnpm-lock.yaml | 6 +++ common/config/rush/repo-state.json | 2 +- common/reviews/api/rush-lib.api.md | 6 ++- 77 files changed, 321 insertions(+), 270 deletions(-) diff --git a/apps/rush-lib/package.json b/apps/rush-lib/package.json index 2d1031a2118..1d50d29df92 100644 --- a/apps/rush-lib/package.json +++ b/apps/rush-lib/package.json @@ -55,14 +55,15 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", + "@types/cli-table": "0.3.0", "@types/glob": "7.1.1", "@types/heft-jest": "1.0.1", "@types/inquirer": "0.0.43", "@types/js-yaml": "3.12.1", "@types/lodash": "4.14.116", "@types/minimatch": "2.0.29", - "@types/node": "10.17.13", "@types/node-fetch": "1.6.9", + "@types/node": "10.17.13", "@types/npm-package-arg": "6.1.0", "@types/npm-packlist": "~1.1.1", "@types/read-package-tree": "5.1.0", diff --git a/apps/rush-lib/src/__mocks__/child_process.ts b/apps/rush-lib/src/__mocks__/child_process.ts index baed2e43cb5..f3ed28847e0 100644 --- a/apps/rush-lib/src/__mocks__/child_process.ts +++ b/apps/rush-lib/src/__mocks__/child_process.ts @@ -15,7 +15,7 @@ let spawnMockConfig = normalizeSpawnMockConfig(); /** * Helper to initialize how the `spawn` mock should behave. */ -function normalizeSpawnMockConfig(maybeConfig?) { +function normalizeSpawnMockConfig(maybeConfig?: any) { const config = maybeConfig || {}; return { emitError: typeof config.emitError !== 'undefined' ? config.emitError : false, @@ -28,14 +28,14 @@ function normalizeSpawnMockConfig(maybeConfig?) { * * Not a pure function. */ -function setSpawnMockConfig(spawnConfig) { +function setSpawnMockConfig(spawnConfig: any) { spawnMockConfig = normalizeSpawnMockConfig(spawnConfig); } /** * Mock of `spawn`. */ -function spawn(file, args, options) { +function spawn(file: string, args: string[], options: {}) { const cpMock = new childProcess.ChildProcess(); // Add working event emitters ourselves since `genMockFromModule` does not add them because they diff --git a/apps/rush-lib/src/api/ApprovedPackagesConfiguration.ts b/apps/rush-lib/src/api/ApprovedPackagesConfiguration.ts index c3c3b23e0ba..610e8496916 100644 --- a/apps/rush-lib/src/api/ApprovedPackagesConfiguration.ts +++ b/apps/rush-lib/src/api/ApprovedPackagesConfiguration.ts @@ -40,6 +40,13 @@ export class ApprovedPackagesItem { * The project categories that are allowed to use this package. */ public allowedCategories: Set = new Set(); + + /** + * @internal + */ + public constructor(packageName: string) { + this.packageName = packageName; + } } /** @@ -55,7 +62,7 @@ export class ApprovedPackagesConfiguration { private _itemsByName: Map = new Map(); - private _loadedJson: IApprovedPackagesJson; + private _loadedJson!: IApprovedPackagesJson; private _jsonFilename: string; public constructor(jsonFilename: string) { @@ -84,8 +91,7 @@ export class ApprovedPackagesConfiguration { let item: ApprovedPackagesItem | undefined = this._itemsByName.get(packageName); if (!item) { - item = new ApprovedPackagesItem(); - item.packageName = packageName; + item = new ApprovedPackagesItem(packageName); this._addItem(item); changed = true; } @@ -191,8 +197,7 @@ export class ApprovedPackagesConfiguration { ); } - const item: ApprovedPackagesItem = new ApprovedPackagesItem(); - item.packageName = itemJson.name; + const item: ApprovedPackagesItem = new ApprovedPackagesItem(itemJson.name); if (itemJson.allowedCategories) { for (const allowedCategory of itemJson.allowedCategories) { item.allowedCategories.add(allowedCategory); diff --git a/apps/rush-lib/src/api/Changelog.ts b/apps/rush-lib/src/api/Changelog.ts index 7aeeb25efd2..f566549cd34 100644 --- a/apps/rush-lib/src/api/Changelog.ts +++ b/apps/rush-lib/src/api/Changelog.ts @@ -40,16 +40,7 @@ export interface IChangeLogEntry { * Comments for the entry, where key represents the ChangeType string (Example: major) */ comments: { - /** Describes changes which cause a patch-level SemVer bump */ - patch?: IChangeLogComment[]; - /** Describes changes which cause a minor-level SemVer bump */ - minor?: IChangeLogComment[]; - /** Describes changes which cause a major-level SemVer bump */ - major?: IChangeLogComment[]; - /** Describes changes to the package's dependencies */ - dependency?: IChangeLogComment[]; - /** Describe changes that do not have version information */ - none?: IChangeLogComment[]; + [changeTypeName: string]: IChangeLogComment[]; }; } diff --git a/apps/rush-lib/src/api/CommonVersionsConfiguration.ts b/apps/rush-lib/src/api/CommonVersionsConfiguration.ts index 90514feacec..e7adbbf68bb 100644 --- a/apps/rush-lib/src/api/CommonVersionsConfiguration.ts +++ b/apps/rush-lib/src/api/CommonVersionsConfiguration.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as crypto from 'crypto'; +import crypto from 'crypto'; import * as path from 'path'; import { JsonFile, @@ -66,7 +66,7 @@ export class CommonVersionsConfiguration { private _implicitlyPreferredVersions: boolean | undefined; private _xstitchPreferredVersions: ProtectableMap; private _allowedAlternativeVersions: ProtectableMap; - private _modified: boolean; + private _modified: boolean = false; private constructor(commonVersionsJson: ICommonVersionsJson | undefined, filePath: string) { this._preferredVersions = new ProtectableMap({ @@ -122,22 +122,24 @@ export class CommonVersionsConfiguration { return new CommonVersionsConfiguration(commonVersionsJson, jsonFilename); } - private static _deserializeTable(map: Map, object: {} | undefined): void { + private static _deserializeTable( + map: Map, + object: { [key: string]: TValue } | undefined + ): void { if (object) { - for (const key of Object.getOwnPropertyNames(object)) { - const value: TValue = object[key]; + for (const [key, value] of Object.entries(object)) { map.set(key, value); } } } - private static _serializeTable(map: Map): {} { - const table: {} = {}; + private static _serializeTable(map: Map): { [key: string]: TValue } { + const table: { [key: string]: TValue } = {}; const keys: string[] = [...map.keys()]; keys.sort(); for (const key of keys) { - table[key] = map.get(key); + table[key] = map.get(key)!; } return table; @@ -277,10 +279,10 @@ export class CommonVersionsConfiguration { } private _onSetAllowedAlternativeVersions( - source: ProtectableMap, + source: ProtectableMap, key: string, - value: string - ): string { + value: string[] + ): string[] { PackageNameParsers.permissive.validate(key); this._modified = true; @@ -306,7 +308,7 @@ export class CommonVersionsConfiguration { if (this._allowedAlternativeVersions.size) { result.allowedAlternativeVersions = CommonVersionsConfiguration._serializeTable( this.allowedAlternativeVersions - ); + ) as ICommonVersionsJsonVersionsMap; } return result; diff --git a/apps/rush-lib/src/api/EventHooks.ts b/apps/rush-lib/src/api/EventHooks.ts index f153243a1c8..921295907e0 100644 --- a/apps/rush-lib/src/api/EventHooks.ts +++ b/apps/rush-lib/src/api/EventHooks.ts @@ -26,6 +26,13 @@ export enum Event { postRushBuild = 4 } +const EVENT_NAME_MAPPING: { [name: string]: Event } = { + preRushInstall: Event.preRushInstall, + postRushInstall: Event.postRushInstall, + preRushBuild: Event.preRushBuild, + postRushBuild: Event.postRushBuild +}; + /** * This class represents Rush event hooks configured for this repo. * Hooks are customized script actions that Rush executes when specific events occur. @@ -40,18 +47,12 @@ export class EventHooks { */ public constructor(eventHooksJson: IEventHooksJson) { this._hooks = new Map(); - Object.getOwnPropertyNames(eventHooksJson).forEach((name) => { - const eventName: Event = Event[name]; + for (const [name, eventHooks] of Object.entries(eventHooksJson)) { + const eventName: Event | undefined = EVENT_NAME_MAPPING[name]; if (eventName) { - const foundHooks: string[] = []; - if (eventHooksJson[name]) { - eventHooksJson[name].forEach((hook) => { - foundHooks.push(hook); - }); - } - this._hooks.set(eventName, foundHooks); + this._hooks.set(eventName, eventHooks || []); } - }); + } } /** diff --git a/apps/rush-lib/src/api/Rush.ts b/apps/rush-lib/src/api/Rush.ts index 49b69d13261..785fb4fce9a 100644 --- a/apps/rush-lib/src/api/Rush.ts +++ b/apps/rush-lib/src/api/Rush.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import { EOL } from 'os'; -import * as colors from 'colors'; +import colors from 'colors'; import { PackageJsonLookup } from '@rushstack/node-core-library'; import { RushCommandLineParser } from '../cli/RushCommandLineParser'; diff --git a/apps/rush-lib/src/api/RushConfiguration.ts b/apps/rush-lib/src/api/RushConfiguration.ts index 49ac7b110af..58e4874a9be 100644 --- a/apps/rush-lib/src/api/RushConfiguration.ts +++ b/apps/rush-lib/src/api/RushConfiguration.ts @@ -441,7 +441,7 @@ export class RushConfiguration { private _commonTempFolder: string; private _commonScriptsFolder: string; private _commonRushConfigFolder: string; - private _packageManager: PackageManagerName; + private _packageManager!: PackageManagerName; private _packageManagerWrapper: PackageManager; private _npmCacheFolder: string; private _npmTmpFolder: string; @@ -478,7 +478,7 @@ export class RushConfiguration { private _npmOptions: NpmOptionsConfiguration; private _pnpmOptions: PnpmOptionsConfiguration; private _yarnOptions: YarnOptionsConfiguration; - private _packageManagerConfigurationOptions: PackageManagerOptionsConfigurationBase; + private _packageManagerConfigurationOptions!: PackageManagerOptionsConfigurationBase; // Rush hooks private _eventHooks: EventHooks; @@ -488,10 +488,10 @@ export class RushConfiguration { private _telemetryEnabled: boolean; // Lazily loaded when the projects() getter is called. - private _projects: RushConfigurationProject[]; + private _projects: RushConfigurationProject[] | undefined; // Lazily loaded when the projectsByName() getter is called. - private _projectsByName: Map; + private _projectsByName: Map | undefined; private _versionPolicyConfiguration: VersionPolicyConfiguration; private _experimentsConfiguration: ExperimentsConfiguration; @@ -693,9 +693,7 @@ export class RushConfiguration { this._repositoryDefaultRemote = rushConfigurationJson.repository.defaultRemote || DEFAULT_REMOTE; this._telemetryEnabled = !!rushConfigurationJson.telemetryEnabled; - if (rushConfigurationJson.eventHooks) { - this._eventHooks = new EventHooks(rushConfigurationJson.eventHooks); - } + this._eventHooks = new EventHooks(rushConfigurationJson.eventHooks || {}); const versionPolicyConfigFile: string = path.join( this._commonRushConfigFolder, @@ -1363,7 +1361,7 @@ export class RushConfiguration { this._initializeAndValidateLocalProjects(); } - return this._projects; + return this._projects!; } public get projectsByName(): Map { @@ -1371,7 +1369,7 @@ export class RushConfiguration { this._initializeAndValidateLocalProjects(); } - return this._projectsByName; + return this._projectsByName!; } /** diff --git a/apps/rush-lib/src/api/RushConfigurationProject.ts b/apps/rush-lib/src/api/RushConfigurationProject.ts index 2fd12e439b1..be63dd7e764 100644 --- a/apps/rush-lib/src/api/RushConfigurationProject.ts +++ b/apps/rush-lib/src/api/RushConfigurationProject.ts @@ -41,14 +41,14 @@ export class RushConfigurationProject { private _projectFolder: string; private _projectRelativeFolder: string; private _projectRushTempFolder: string; - private _reviewCategory: string; + private _reviewCategory: string | undefined; private _packageJson: IPackageJson; private _packageJsonEditor: PackageJsonEditor; private _tempProjectName: string; private _unscopedTempProjectName: string; private _cyclicDependencyProjects: Set; private _versionPolicyName: string | undefined; - private _versionPolicy: VersionPolicy; + private _versionPolicy: VersionPolicy | undefined; private _shouldPublish: boolean; private _skipRushCheck: boolean; private _downstreamDependencyProjects: string[]; @@ -192,7 +192,7 @@ export class RushConfigurationProject { * The review category name, or undefined if no category was assigned. * This name must be one of the valid choices listed in RushConfiguration.reviewCategories. */ - public get reviewCategory(): string { + public get reviewCategory(): string | undefined { return this._reviewCategory; } diff --git a/apps/rush-lib/src/api/VersionPolicy.ts b/apps/rush-lib/src/api/VersionPolicy.ts index 51712c24254..b7272e9b1df 100644 --- a/apps/rush-lib/src/api/VersionPolicy.ts +++ b/apps/rush-lib/src/api/VersionPolicy.ts @@ -46,6 +46,20 @@ export enum VersionPolicyDefinitionName { 'individualVersion' } +const BUMP_TYPE_NAME_MAP: { [name: string]: BumpType } = { + none: BumpType.none, + prerelease: BumpType.prerelease, + patch: BumpType.patch, + preminor: BumpType.preminor, + minor: BumpType.minor, + major: BumpType.major +}; + +const VERSION_POLICY_DEFINITION_NAME_NAME_MAP: { [name: string]: VersionPolicyDefinitionName } = { + lockStepVersion: VersionPolicyDefinitionName.lockStepVersion, + individualVersion: VersionPolicyDefinitionName.individualVersion +}; + /** * This is the base class for version policy which controls how versions get bumped. * @beta @@ -62,7 +76,7 @@ export abstract class VersionPolicy { */ public constructor(versionPolicyJson: IVersionPolicyJson) { this._policyName = versionPolicyJson.policyName; - this._definitionName = VersionPolicyDefinitionName[versionPolicyJson.definitionName]; + this._definitionName = VERSION_POLICY_DEFINITION_NAME_NAME_MAP[versionPolicyJson.definitionName]; this._exemptFromRushChange = versionPolicyJson.exemptFromRushChange || false; const jsonDependencies: IVersionPolicyDependencyJson = versionPolicyJson.dependencies || {}; @@ -71,6 +85,13 @@ export abstract class VersionPolicy { jsonDependencies.versionFormatForPublish || VersionFormatForPublish.original; } + /** + * @internal + */ + public static tryParseBumpType(bumpTypeName: string): BumpType | undefined { + return BUMP_TYPE_NAME_MAP[bumpTypeName]; + } + /** * Loads from version policy json * @@ -80,7 +101,7 @@ export abstract class VersionPolicy { */ public static load(versionPolicyJson: IVersionPolicyJson): VersionPolicy | undefined { const definition: VersionPolicyDefinitionName = - VersionPolicyDefinitionName[versionPolicyJson.definitionName]; + VERSION_POLICY_DEFINITION_NAME_NAME_MAP[versionPolicyJson.definitionName]; if (definition === VersionPolicyDefinitionName.lockStepVersion) { // eslint-disable-next-line @typescript-eslint/no-use-before-define return new LockStepVersionPolicy(versionPolicyJson as ILockStepVersionJson); @@ -218,8 +239,14 @@ export class LockStepVersionPolicy extends VersionPolicy { public constructor(versionPolicyJson: ILockStepVersionJson) { super(versionPolicyJson); this._version = new semver.SemVer(versionPolicyJson.version); - this._nextBump = BumpType[versionPolicyJson.nextBump]; this._mainProject = versionPolicyJson.mainProject; + + const nextBump: BumpType | undefined = VersionPolicy.tryParseBumpType(versionPolicyJson.nextBump); + if (!nextBump) { + throw new Error(`Unknown bump type: ${versionPolicyJson.nextBump}`); + } + + this._nextBump = nextBump; } /** diff --git a/apps/rush-lib/src/api/packageManager/PackageManager.ts b/apps/rush-lib/src/api/packageManager/PackageManager.ts index 198769de58d..9da9e3cdcaf 100644 --- a/apps/rush-lib/src/api/packageManager/PackageManager.ts +++ b/apps/rush-lib/src/api/packageManager/PackageManager.ts @@ -22,7 +22,7 @@ export abstract class PackageManager { */ public readonly version: string; - protected _shrinkwrapFilename: string; + protected _shrinkwrapFilename!: string; /** @internal */ protected constructor(version: string, packageManager: PackageManagerName) { diff --git a/apps/rush-lib/src/cli/CommandLineMigrationAdvisor.ts b/apps/rush-lib/src/cli/CommandLineMigrationAdvisor.ts index 158aa740d5b..dbb70d0f164 100644 --- a/apps/rush-lib/src/cli/CommandLineMigrationAdvisor.ts +++ b/apps/rush-lib/src/cli/CommandLineMigrationAdvisor.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import { RushConstants } from '../logic/RushConstants'; import { Utilities } from '../utilities/Utilities'; diff --git a/apps/rush-lib/src/cli/RushCommandLineParser.ts b/apps/rush-lib/src/cli/RushCommandLineParser.ts index 36e96844f8c..65e9a74f2de 100644 --- a/apps/rush-lib/src/cli/RushCommandLineParser.ts +++ b/apps/rush-lib/src/cli/RushCommandLineParser.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import * as path from 'path'; @@ -50,10 +50,10 @@ export interface IRushCommandLineParserOptions { export class RushCommandLineParser extends CommandLineParser { public telemetry: Telemetry | undefined; - public rushGlobalFolder: RushGlobalFolder; - public rushConfiguration: RushConfiguration; + public rushGlobalFolder!: RushGlobalFolder; + public rushConfiguration!: RushConfiguration; - private _debugParameter: CommandLineFlagParameter; + private _debugParameter!: CommandLineFlagParameter; private _rushOptions: IRushCommandLineParserOptions; public constructor(options?: Partial) { diff --git a/apps/rush-lib/src/cli/RushXCommandLine.ts b/apps/rush-lib/src/cli/RushXCommandLine.ts index 754c7cc8d88..a963f91c701 100644 --- a/apps/rush-lib/src/cli/RushXCommandLine.ts +++ b/apps/rush-lib/src/cli/RushXCommandLine.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import * as path from 'path'; diff --git a/apps/rush-lib/src/cli/actions/AddAction.ts b/apps/rush-lib/src/cli/actions/AddAction.ts index a456d428e49..42b3bd7d953 100644 --- a/apps/rush-lib/src/cli/actions/AddAction.ts +++ b/apps/rush-lib/src/cli/actions/AddAction.ts @@ -19,13 +19,13 @@ const packageJsonUpdaterModule: typeof PackageJsonUpdaterTypes = Import.lazy( ); export class AddAction extends BaseRushAction { - private _allFlag: CommandLineFlagParameter; - private _exactFlag: CommandLineFlagParameter; - private _caretFlag: CommandLineFlagParameter; - private _devDependencyFlag: CommandLineFlagParameter; - private _makeConsistentFlag: CommandLineFlagParameter; - private _skipUpdateFlag: CommandLineFlagParameter; - private _packageName: CommandLineStringParameter; + private _allFlag!: CommandLineFlagParameter; + private _exactFlag!: CommandLineFlagParameter; + private _caretFlag!: CommandLineFlagParameter; + private _devDependencyFlag!: CommandLineFlagParameter; + private _makeConsistentFlag!: CommandLineFlagParameter; + private _skipUpdateFlag!: CommandLineFlagParameter; + private _packageName!: CommandLineStringParameter; public constructor(parser: RushCommandLineParser) { const documentation: string[] = [ diff --git a/apps/rush-lib/src/cli/actions/BaseInstallAction.ts b/apps/rush-lib/src/cli/actions/BaseInstallAction.ts index 7306b37eb14..3633ad97b26 100644 --- a/apps/rush-lib/src/cli/actions/BaseInstallAction.ts +++ b/apps/rush-lib/src/cli/actions/BaseInstallAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import { Import } from '@rushstack/node-core-library'; @@ -31,13 +31,13 @@ const installManagerFactoryModule: typeof import('../../logic/InstallManagerFact * This is the common base class for InstallAction and UpdateAction. */ export abstract class BaseInstallAction extends BaseRushAction { - protected _variant: CommandLineStringParameter; - protected _purgeParameter: CommandLineFlagParameter; - protected _bypassPolicyParameter: CommandLineFlagParameter; - protected _noLinkParameter: CommandLineFlagParameter; - protected _networkConcurrencyParameter: CommandLineIntegerParameter; - protected _debugPackageManagerParameter: CommandLineFlagParameter; - protected _maxInstallAttempts: CommandLineIntegerParameter; + protected _variant!: CommandLineStringParameter; + protected _purgeParameter!: CommandLineFlagParameter; + protected _bypassPolicyParameter!: CommandLineFlagParameter; + protected _noLinkParameter!: CommandLineFlagParameter; + protected _networkConcurrencyParameter!: CommandLineIntegerParameter; + protected _debugPackageManagerParameter!: CommandLineFlagParameter; + protected _maxInstallAttempts!: CommandLineIntegerParameter; protected onDefineParameters(): void { this._purgeParameter = this.defineFlagParameter({ diff --git a/apps/rush-lib/src/cli/actions/BaseRushAction.ts b/apps/rush-lib/src/cli/actions/BaseRushAction.ts index 9ed81e8b405..c740312abb1 100644 --- a/apps/rush-lib/src/cli/actions/BaseRushAction.ts +++ b/apps/rush-lib/src/cli/actions/BaseRushAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import * as path from 'path'; @@ -109,7 +109,7 @@ export abstract class BaseConfiglessRushAction extends CommandLineAction { * The base class that most Rush command-line actions should extend. */ export abstract class BaseRushAction extends BaseConfiglessRushAction { - private _eventHooksManager: EventHooksManager; + private _eventHooksManager: EventHooksManager | undefined; protected get eventHooksManager(): EventHooksManager { if (!this._eventHooksManager) { diff --git a/apps/rush-lib/src/cli/actions/ChangeAction.ts b/apps/rush-lib/src/cli/actions/ChangeAction.ts index 85f48285124..30341ef82b7 100644 --- a/apps/rush-lib/src/cli/actions/ChangeAction.ts +++ b/apps/rush-lib/src/cli/actions/ChangeAction.ts @@ -4,7 +4,7 @@ import * as os from 'os'; import * as path from 'path'; import * as child_process from 'child_process'; -import * as colors from 'colors'; +import colors from 'colors'; import { CommandLineFlagParameter, @@ -32,17 +32,16 @@ import * as inquirerTypes from 'inquirer'; const inquirer: typeof inquirerTypes = Import.lazy('inquirer', require); export class ChangeAction extends BaseRushAction { - private _verifyParameter: CommandLineFlagParameter; - private _noFetchParameter: CommandLineFlagParameter; - private _targetBranchParameter: CommandLineStringParameter; - private _changeEmailParameter: CommandLineStringParameter; - private _bulkChangeParameter: CommandLineFlagParameter; - private _bulkChangeMessageParameter: CommandLineStringParameter; - private _bulkChangeBumpTypeParameter: CommandLineChoiceParameter; - private _overwriteFlagParameter: CommandLineFlagParameter; - - private _targetBranchName: string; - private _projectHostMap: Map; + private _verifyParameter!: CommandLineFlagParameter; + private _noFetchParameter!: CommandLineFlagParameter; + private _targetBranchParameter!: CommandLineStringParameter; + private _changeEmailParameter!: CommandLineStringParameter; + private _bulkChangeParameter!: CommandLineFlagParameter; + private _bulkChangeMessageParameter!: CommandLineStringParameter; + private _bulkChangeBumpTypeParameter!: CommandLineChoiceParameter; + private _overwriteFlagParameter!: CommandLineFlagParameter; + + private _targetBranchName: string | undefined; public constructor(parser: RushCommandLineParser) { const documentation: string[] = [ @@ -146,7 +145,6 @@ export class ChangeAction extends BaseRushAction { public async runAsync(): Promise { console.log(`The target branch is ${this._targetBranch}`); - this._projectHostMap = this._generateHostMap(); if (this._verifyParameter.value) { const errors: string[] = [ @@ -324,6 +322,8 @@ export class ChangeAction extends BaseRushAction { const changedPackageNames: Set = new Set(); const repoRootFolder: string | undefined = VersionControl.getRepositoryRootPath(); + const projectHostMap: Map = this._generateHostMap(); + this.rushConfiguration.projects .filter((project) => project.shouldPublish) .filter((project) => !project.versionPolicy || !project.versionPolicy.exemptFromRushChange) @@ -334,7 +334,7 @@ export class ChangeAction extends BaseRushAction { return this._hasProjectChanged(changedFolders, projectFolder); }) .forEach((project) => { - const hostName: string | undefined = this._projectHostMap.get(project.packageName); + const hostName: string | undefined = projectHostMap.get(project.packageName); if (hostName) { changedPackageNames.add(hostName); } diff --git a/apps/rush-lib/src/cli/actions/CheckAction.ts b/apps/rush-lib/src/cli/actions/CheckAction.ts index 79597504a8d..6c4b1cb3f69 100644 --- a/apps/rush-lib/src/cli/actions/CheckAction.ts +++ b/apps/rush-lib/src/cli/actions/CheckAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import { CommandLineStringParameter, CommandLineFlagParameter } from '@rushstack/ts-command-line'; import { RushCommandLineParser } from '../RushCommandLineParser'; @@ -10,8 +10,8 @@ import { VersionMismatchFinder } from '../../logic/versionMismatch/VersionMismat import { Variants } from '../../api/Variants'; export class CheckAction extends BaseRushAction { - private _variant: CommandLineStringParameter; - private _jsonFlag: CommandLineFlagParameter; + private _variant!: CommandLineStringParameter; + private _jsonFlag!: CommandLineFlagParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/DeployAction.ts b/apps/rush-lib/src/cli/actions/DeployAction.ts index 417259f1f12..bc66ed4467d 100644 --- a/apps/rush-lib/src/cli/actions/DeployAction.ts +++ b/apps/rush-lib/src/cli/actions/DeployAction.ts @@ -15,11 +15,11 @@ const deployManagerModule: typeof deployManagerTypes = Import.lazy( ); export class DeployAction extends BaseRushAction { - private _scenario: CommandLineStringParameter; - private _project: CommandLineStringParameter; - private _overwrite: CommandLineFlagParameter; - private _targetFolder: CommandLineStringParameter; - private _createArchivePath: CommandLineStringParameter; + private _scenario!: CommandLineStringParameter; + private _project!: CommandLineStringParameter; + private _overwrite!: CommandLineFlagParameter; + private _targetFolder!: CommandLineStringParameter; + private _createArchivePath!: CommandLineStringParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/InitAction.ts b/apps/rush-lib/src/cli/actions/InitAction.ts index 4cc9486a555..f8d0f6fb84e 100644 --- a/apps/rush-lib/src/cli/actions/InitAction.ts +++ b/apps/rush-lib/src/cli/actions/InitAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; @@ -44,8 +44,8 @@ export class InitAction extends BaseConfiglessRushAction { // Used to catch malformed macro expressions private static _anyMacroRegExp: RegExp = /\/\*\s*\[.*\]\s*\*\//; - private _overwriteParameter: CommandLineFlagParameter; - private _rushExampleParameter: CommandLineFlagParameter; + private _overwriteParameter!: CommandLineFlagParameter; + private _rushExampleParameter!: CommandLineFlagParameter; // template section name --> whether it should be commented out private _commentedBySectionName: Map = new Map(); diff --git a/apps/rush-lib/src/cli/actions/InitAutoinstallerAction.ts b/apps/rush-lib/src/cli/actions/InitAutoinstallerAction.ts index 1a06642df1e..551b0927dbd 100644 --- a/apps/rush-lib/src/cli/actions/InitAutoinstallerAction.ts +++ b/apps/rush-lib/src/cli/actions/InitAutoinstallerAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import { CommandLineStringParameter } from '@rushstack/ts-command-line'; import { FileSystem, NewlineKind, IPackageJson, JsonFile } from '@rushstack/node-core-library'; @@ -11,7 +11,7 @@ import { RushCommandLineParser } from '../RushCommandLineParser'; import { Autoinstaller } from '../../logic/Autoinstaller'; export class InitAutoinstallerAction extends BaseRushAction { - private _name: CommandLineStringParameter; + private _name!: CommandLineStringParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/InitDeployAction.ts b/apps/rush-lib/src/cli/actions/InitDeployAction.ts index 416d2f3b0de..c537e68264a 100644 --- a/apps/rush-lib/src/cli/actions/InitDeployAction.ts +++ b/apps/rush-lib/src/cli/actions/InitDeployAction.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as path from 'path'; -import * as colors from 'colors'; +import colors from 'colors'; import { BaseRushAction } from './BaseRushAction'; import { RushCommandLineParser } from '../RushCommandLineParser'; import { CommandLineStringParameter } from '@rushstack/ts-command-line'; @@ -15,8 +15,8 @@ export class InitDeployAction extends BaseRushAction { __dirname, '../../../assets/rush-init-deploy/scenario-template.json' ); - private _project: CommandLineStringParameter; - private _scenario: CommandLineStringParameter; + private _project!: CommandLineStringParameter; + private _scenario!: CommandLineStringParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/InstallAction.ts b/apps/rush-lib/src/cli/actions/InstallAction.ts index 28dccdd3a01..81fa35f50b1 100644 --- a/apps/rush-lib/src/cli/actions/InstallAction.ts +++ b/apps/rush-lib/src/cli/actions/InstallAction.ts @@ -8,8 +8,8 @@ import { IInstallManagerOptions } from '../../logic/base/BaseInstallManager'; import { RushCommandLineParser } from '../RushCommandLineParser'; export class InstallAction extends BaseInstallAction { - protected _toFlag: CommandLineStringListParameter; - protected _toVersionPolicy: CommandLineStringListParameter; + protected _toFlag!: CommandLineStringListParameter; + protected _toVersionPolicy!: CommandLineStringListParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/LinkAction.ts b/apps/rush-lib/src/cli/actions/LinkAction.ts index 616b0204f95..ab648a1631a 100644 --- a/apps/rush-lib/src/cli/actions/LinkAction.ts +++ b/apps/rush-lib/src/cli/actions/LinkAction.ts @@ -17,7 +17,7 @@ const linkManagerFactoryModule: typeof LinkManagerFactoryTypes = Import.lazy( ); export class LinkAction extends BaseRushAction { - private _force: CommandLineFlagParameter; + private _force!: CommandLineFlagParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/ListAction.ts b/apps/rush-lib/src/cli/actions/ListAction.ts index 4f6dbaace17..cfe2f9e8246 100644 --- a/apps/rush-lib/src/cli/actions/ListAction.ts +++ b/apps/rush-lib/src/cli/actions/ListAction.ts @@ -21,10 +21,10 @@ export interface IJsonOutput { } export class ListAction extends BaseRushAction { - private _version: CommandLineFlagParameter; - private _path: CommandLineFlagParameter; - private _fullPath: CommandLineFlagParameter; - private _jsonFlag: CommandLineFlagParameter; + private _version!: CommandLineFlagParameter; + private _path!: CommandLineFlagParameter; + private _fullPath!: CommandLineFlagParameter; + private _jsonFlag!: CommandLineFlagParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/PublishAction.ts b/apps/rush-lib/src/cli/actions/PublishAction.ts index eb6747b3513..943bb73f843 100644 --- a/apps/rush-lib/src/cli/actions/PublishAction.ts +++ b/apps/rush-lib/src/cli/actions/PublishAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import { EOL } from 'os'; import * as path from 'path'; import * as semver from 'semver'; @@ -29,30 +29,30 @@ import { DEFAULT_PACKAGE_UPDATE_MESSAGE } from './VersionAction'; import { Utilities } from '../../utilities/Utilities'; export class PublishAction extends BaseRushAction { - private _addCommitDetails: CommandLineFlagParameter; - private _apply: CommandLineFlagParameter; - private _includeAll: CommandLineFlagParameter; - private _npmAuthToken: CommandLineStringParameter; - private _npmTag: CommandLineStringParameter; - private _npmAccessLevel: CommandLineChoiceParameter; - private _publish: CommandLineFlagParameter; - private _regenerateChangelogs: CommandLineFlagParameter; - private _registryUrl: CommandLineStringParameter; - private _targetBranch: CommandLineStringParameter; - private _prereleaseName: CommandLineStringParameter; - private _partialPrerelease: CommandLineFlagParameter; - private _suffix: CommandLineStringParameter; - private _force: CommandLineFlagParameter; - private _versionPolicy: CommandLineStringParameter; - private _applyGitTagsOnPack: CommandLineFlagParameter; - private _commitId: CommandLineStringParameter; - private _releaseFolder: CommandLineStringParameter; - private _pack: CommandLineFlagParameter; - - private _prereleaseToken: PrereleaseToken; - private _hotfixTagOverride: string; - private _targetNpmrcPublishFolder: string; - private _targetNpmrcPublishPath: string; + private _addCommitDetails!: CommandLineFlagParameter; + private _apply!: CommandLineFlagParameter; + private _includeAll!: CommandLineFlagParameter; + private _npmAuthToken!: CommandLineStringParameter; + private _npmTag!: CommandLineStringParameter; + private _npmAccessLevel!: CommandLineChoiceParameter; + private _publish!: CommandLineFlagParameter; + private _regenerateChangelogs!: CommandLineFlagParameter; + private _registryUrl!: CommandLineStringParameter; + private _targetBranch!: CommandLineStringParameter; + private _prereleaseName!: CommandLineStringParameter; + private _partialPrerelease!: CommandLineFlagParameter; + private _suffix!: CommandLineStringParameter; + private _force!: CommandLineFlagParameter; + private _versionPolicy!: CommandLineStringParameter; + private _applyGitTagsOnPack!: CommandLineFlagParameter; + private _commitId!: CommandLineStringParameter; + private _releaseFolder!: CommandLineStringParameter; + private _pack!: CommandLineFlagParameter; + + private _prereleaseToken!: PrereleaseToken; + private _hotfixTagOverride!: string; + private _targetNpmrcPublishFolder!: string; + private _targetNpmrcPublishPath!: string; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/PurgeAction.ts b/apps/rush-lib/src/cli/actions/PurgeAction.ts index 20dc563c542..5ad59cca9b2 100644 --- a/apps/rush-lib/src/cli/actions/PurgeAction.ts +++ b/apps/rush-lib/src/cli/actions/PurgeAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import { CommandLineFlagParameter } from '@rushstack/ts-command-line'; @@ -13,7 +13,7 @@ import { PurgeManager } from '../../logic/PurgeManager'; import { UnlinkManager } from '../../logic/UnlinkManager'; export class PurgeAction extends BaseRushAction { - private _unsafeParameter: CommandLineFlagParameter; + private _unsafeParameter!: CommandLineFlagParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/ScanAction.ts b/apps/rush-lib/src/cli/actions/ScanAction.ts index 458df28a21e..bd51138a163 100644 --- a/apps/rush-lib/src/cli/actions/ScanAction.ts +++ b/apps/rush-lib/src/cli/actions/ScanAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as path from 'path'; import * as builtinPackageNames from 'builtin-modules'; diff --git a/apps/rush-lib/src/cli/actions/UpdateAction.ts b/apps/rush-lib/src/cli/actions/UpdateAction.ts index 410b8827c91..f51b0f20f66 100644 --- a/apps/rush-lib/src/cli/actions/UpdateAction.ts +++ b/apps/rush-lib/src/cli/actions/UpdateAction.ts @@ -8,8 +8,8 @@ import { IInstallManagerOptions } from '../../logic/base/BaseInstallManager'; import { RushCommandLineParser } from '../RushCommandLineParser'; export class UpdateAction extends BaseInstallAction { - private _fullParameter: CommandLineFlagParameter; - private _recheckParameter: CommandLineFlagParameter; + private _fullParameter!: CommandLineFlagParameter; + private _recheckParameter!: CommandLineFlagParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/UpdateAutoinstallerAction.ts b/apps/rush-lib/src/cli/actions/UpdateAutoinstallerAction.ts index 252c71cc3d2..5bc8a0508f8 100644 --- a/apps/rush-lib/src/cli/actions/UpdateAutoinstallerAction.ts +++ b/apps/rush-lib/src/cli/actions/UpdateAutoinstallerAction.ts @@ -8,7 +8,7 @@ import { RushCommandLineParser } from '../RushCommandLineParser'; import { Autoinstaller } from '../../logic/Autoinstaller'; export class UpdateAutoinstallerAction extends BaseRushAction { - private _name: CommandLineStringParameter; + private _name!: CommandLineStringParameter; public constructor(parser: RushCommandLineParser) { super({ diff --git a/apps/rush-lib/src/cli/actions/VersionAction.ts b/apps/rush-lib/src/cli/actions/VersionAction.ts index 3cf1f4efc42..6f1a15d0ee4 100644 --- a/apps/rush-lib/src/cli/actions/VersionAction.ts +++ b/apps/rush-lib/src/cli/actions/VersionAction.ts @@ -5,7 +5,7 @@ import * as semver from 'semver'; import { IPackageJson, FileConstants, Import } from '@rushstack/node-core-library'; import { CommandLineFlagParameter, CommandLineStringParameter } from '@rushstack/ts-command-line'; -import { BumpType, LockStepVersionPolicy } from '../../api/VersionPolicy'; +import { LockStepVersionPolicy, VersionPolicy } from '../../api/VersionPolicy'; import { VersionPolicyConfiguration } from '../../api/VersionPolicyConfiguration'; import { RushConfiguration } from '../../api/RushConfiguration'; import { VersionControl } from '../../utilities/VersionControl'; @@ -23,16 +23,14 @@ const versionManagerModule: typeof VersionManagerTypes = Import.lazy('../../logi export const DEFAULT_PACKAGE_UPDATE_MESSAGE: string = 'Applying package updates.'; export class VersionAction extends BaseRushAction { - private _ensureVersionPolicy: CommandLineFlagParameter; - private _overrideVersion: CommandLineStringParameter; - private _bumpVersion: CommandLineFlagParameter; - private _versionPolicy: CommandLineStringParameter; - private _bypassPolicy: CommandLineFlagParameter; - private _targetBranch: CommandLineStringParameter; - private _overwriteBump: CommandLineStringParameter; - private _prereleaseIdentifier: CommandLineStringParameter; - - private _versionManager: VersionManagerTypes.VersionManager; + private _ensureVersionPolicy!: CommandLineFlagParameter; + private _overrideVersion!: CommandLineStringParameter; + private _bumpVersion!: CommandLineFlagParameter; + private _versionPolicy!: CommandLineStringParameter; + private _bypassPolicy!: CommandLineFlagParameter; + private _targetBranch!: CommandLineStringParameter; + private _overwriteBump!: CommandLineStringParameter; + private _prereleaseIdentifier!: CommandLineStringParameter; public constructor(parser: RushCommandLineParser) { super({ @@ -100,8 +98,7 @@ export class VersionAction extends BaseRushAction { const userEmail: string = Git.getGitEmail(this.rushConfiguration); this._validateInput(); - - this._versionManager = new versionManagerModule.VersionManager( + const versionManager: VersionManagerTypes.VersionManager = new versionManagerModule.VersionManager( this.rushConfiguration, userEmail, this.rushConfiguration.versionPolicyConfiguration @@ -110,22 +107,22 @@ export class VersionAction extends BaseRushAction { if (this._ensureVersionPolicy.value) { this._overwritePolicyVersionIfNeeded(); const tempBranch: string = 'version/ensure-' + new Date().getTime(); - this._versionManager.ensure( + versionManager.ensure( this._versionPolicy.value, true, !!this._overrideVersion.value || !!this._prereleaseIdentifier.value ); - const updatedPackages: Map = this._versionManager.updatedProjects; + const updatedPackages: Map = versionManager.updatedProjects; if (updatedPackages.size > 0) { console.log(`${updatedPackages.size} packages are getting updated.`); this._gitProcess(tempBranch); } } else if (this._bumpVersion.value) { const tempBranch: string = 'version/bump-' + new Date().getTime(); - await this._versionManager.bumpAsync( + await versionManager.bumpAsync( this._versionPolicy.value, - this._overwriteBump.value ? BumpType[this._overwriteBump.value] : undefined, + this._overwriteBump.value ? VersionPolicy.tryParseBumpType(this._overwriteBump.value) : undefined, this._prereleaseIdentifier.value, true ); @@ -189,7 +186,7 @@ export class VersionAction extends BaseRushAction { throw new Error('Please choose --bump or --ensure-version-policy but not together.'); } - if (this._overwriteBump.value && !BumpType[this._overwriteBump.value]) { + if (this._overwriteBump.value && !VersionPolicy.tryParseBumpType(this._overwriteBump.value)) { throw new Error( 'The value of override-bump is not valid. ' + 'Valid values include prerelease, patch, preminor, minor, and major' diff --git a/apps/rush-lib/src/cli/scriptActions/BulkScriptAction.ts b/apps/rush-lib/src/cli/scriptActions/BulkScriptAction.ts index 31909eccc1f..98ad7cc8892 100644 --- a/apps/rush-lib/src/cli/scriptActions/BulkScriptAction.ts +++ b/apps/rush-lib/src/cli/scriptActions/BulkScriptAction.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as os from 'os'; -import * as colors from 'colors'; +import colors from 'colors'; import { AlreadyReportedError } from '@rushstack/node-core-library'; import { @@ -57,12 +57,12 @@ export class BulkScriptAction extends BaseScriptAction { private _isIncrementalBuildAllowed: boolean; private _commandToRun: string; - private _changedProjectsOnly: CommandLineFlagParameter; - private _fromFlag: CommandLineStringListParameter; - private _toFlag: CommandLineStringListParameter; - private _fromVersionPolicy: CommandLineStringListParameter; - private _toVersionPolicy: CommandLineStringListParameter; - private _verboseParameter: CommandLineFlagParameter; + private _changedProjectsOnly!: CommandLineFlagParameter; + private _fromFlag!: CommandLineStringListParameter; + private _toFlag!: CommandLineStringListParameter; + private _fromVersionPolicy!: CommandLineStringListParameter; + private _toVersionPolicy!: CommandLineStringListParameter; + private _verboseParameter!: CommandLineFlagParameter; private _parallelismParameter: CommandLineStringParameter | undefined; private _ignoreDependencyOrder: boolean; private _allowWarningsInSuccessfulBuild: boolean; diff --git a/apps/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts b/apps/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts index 1566aba951f..653807ce56d 100644 --- a/apps/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts +++ b/apps/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import * as path from 'path'; diff --git a/apps/rush-lib/src/logic/ApprovedPackagesChecker.ts b/apps/rush-lib/src/logic/ApprovedPackagesChecker.ts index d3410b3136b..99e432a6ba9 100644 --- a/apps/rush-lib/src/logic/ApprovedPackagesChecker.ts +++ b/apps/rush-lib/src/logic/ApprovedPackagesChecker.ts @@ -82,7 +82,7 @@ export class ApprovedPackagesChecker { const scope: string = this._rushConfiguration.packageNameParser.getScope(referencedPackageName); // Make sure the scope isn't something like "@types" which should be ignored - if (!approvedPackagesPolicy.ignoredNpmScopes.has(scope)) { + if (!approvedPackagesPolicy.ignoredNpmScopes.has(scope) && rushProject.reviewCategory) { // Yes, add it to the list if it's not already there let updated: boolean = false; diff --git a/apps/rush-lib/src/logic/Autoinstaller.ts b/apps/rush-lib/src/logic/Autoinstaller.ts index e97c552cec1..f0ae64ff16c 100644 --- a/apps/rush-lib/src/logic/Autoinstaller.ts +++ b/apps/rush-lib/src/logic/Autoinstaller.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as path from 'path'; import { FileSystem, NewlineKind } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/ChangeFiles.ts b/apps/rush-lib/src/logic/ChangeFiles.ts index 61c9a1fa96a..7d8e4d8a707 100644 --- a/apps/rush-lib/src/logic/ChangeFiles.ts +++ b/apps/rush-lib/src/logic/ChangeFiles.ts @@ -19,7 +19,7 @@ export class ChangeFiles { /** * Change file path relative to changes folder. */ - private _files: string[]; + private _files: string[] | undefined; private _changesPath: string; public constructor(changesPath: string) { @@ -103,11 +103,11 @@ export class ChangeFiles { * Get the array of absolute paths of change files. */ public getFiles(): string[] { - if (this._files) { - return this._files; + if (!this._files) { + this._files = glob.sync(`${this._changesPath}/**/*.json`) || []; } - this._files = glob.sync(`${this._changesPath}/**/*.json`); - return this._files || []; + + return this._files; } /** diff --git a/apps/rush-lib/src/logic/ChangeManager.ts b/apps/rush-lib/src/logic/ChangeManager.ts index fce07684dbf..f56e1d2bfb2 100644 --- a/apps/rush-lib/src/logic/ChangeManager.ts +++ b/apps/rush-lib/src/logic/ChangeManager.ts @@ -18,11 +18,11 @@ import { ChangelogGenerator } from './ChangelogGenerator'; * can be applied to package.json and change logs. */ export class ChangeManager { - private _prereleaseToken: PrereleaseToken; - private _orderedChanges: IChangeInfo[]; - private _allPackages: Map; - private _allChanges: IChangeInfoHash; - private _changeFiles: ChangeFiles; + private _prereleaseToken!: PrereleaseToken; + private _orderedChanges!: IChangeInfo[]; + private _allPackages!: Map; + private _allChanges!: IChangeInfoHash; + private _changeFiles!: ChangeFiles; private _rushConfiguration: RushConfiguration; private _lockStepProjectsToExclude: Set | undefined; diff --git a/apps/rush-lib/src/logic/ChangelogGenerator.ts b/apps/rush-lib/src/logic/ChangelogGenerator.ts index 01d26030d93..29c56baa9b8 100644 --- a/apps/rush-lib/src/logic/ChangelogGenerator.ts +++ b/apps/rush-lib/src/logic/ChangelogGenerator.ts @@ -251,7 +251,7 @@ export class ChangelogGenerator { /** * Helper to return the comments string to be appends to the markdown content. */ - private static _getChangeComments(title: string, commentsArray: IChangeLogComment[]): string { + private static _getChangeComments(title: string, commentsArray: IChangeLogComment[] | undefined): string { let comments: string = ''; if (commentsArray) { diff --git a/apps/rush-lib/src/logic/EventHooksManager.ts b/apps/rush-lib/src/logic/EventHooksManager.ts index 094f762f742..d15ed9c380e 100644 --- a/apps/rush-lib/src/logic/EventHooksManager.ts +++ b/apps/rush-lib/src/logic/EventHooksManager.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as os from 'os'; -import * as colors from 'colors'; +import colors from 'colors'; import { EventHooks } from '../api/EventHooks'; import { Utilities } from '../utilities/Utilities'; diff --git a/apps/rush-lib/src/logic/InstallManagerFactory.ts b/apps/rush-lib/src/logic/InstallManagerFactory.ts index 8970a67b0ff..38b2eb1d6cd 100644 --- a/apps/rush-lib/src/logic/InstallManagerFactory.ts +++ b/apps/rush-lib/src/logic/InstallManagerFactory.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as semver from 'semver'; import { AlreadyReportedError, Import } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/NodeJsCompatibility.ts b/apps/rush-lib/src/logic/NodeJsCompatibility.ts index 9e6703a70ba..08e4f87e840 100644 --- a/apps/rush-lib/src/logic/NodeJsCompatibility.ts +++ b/apps/rush-lib/src/logic/NodeJsCompatibility.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as semver from 'semver'; import { RushConfiguration } from '../api/RushConfiguration'; diff --git a/apps/rush-lib/src/logic/PackageChangeAnalyzer.ts b/apps/rush-lib/src/logic/PackageChangeAnalyzer.ts index 23612b66666..dc119ce8c8f 100644 --- a/apps/rush-lib/src/logic/PackageChangeAnalyzer.ts +++ b/apps/rush-lib/src/logic/PackageChangeAnalyzer.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as path from 'path'; -import * as colors from 'colors'; +import colors from 'colors'; import { getPackageDeps, getGitHashForFiles, IPackageDeps } from '@rushstack/package-deps-hash'; import { Path, InternalError, FileSystem } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/PackageJsonUpdater.ts b/apps/rush-lib/src/logic/PackageJsonUpdater.ts index 02d649879a9..ad699c97405 100644 --- a/apps/rush-lib/src/logic/PackageJsonUpdater.ts +++ b/apps/rush-lib/src/logic/PackageJsonUpdater.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as semver from 'semver'; import { RushConfiguration } from '../api/RushConfiguration'; diff --git a/apps/rush-lib/src/logic/PublishUtilities.ts b/apps/rush-lib/src/logic/PublishUtilities.ts index 3d168069bf5..e00690471a0 100644 --- a/apps/rush-lib/src/logic/PublishUtilities.ts +++ b/apps/rush-lib/src/logic/PublishUtilities.ts @@ -25,6 +25,15 @@ export interface IChangeInfoHash { [key: string]: IChangeInfo; } +const CHANGE_TYPE_NAME_MAP: { [name: string]: ChangeType } = { + none: ChangeType.none, + dependency: ChangeType.dependency, + hotfix: ChangeType.hotfix, + patch: ChangeType.patch, + minor: ChangeType.minor, + major: ChangeType.major +}; + export class PublishUtilities { /** * Finds change requests in the given folder. @@ -509,7 +518,10 @@ export class PublishUtilities { // If the given change does not have a changeType, derive it from the "type" string. if (change.changeType === undefined) { - change.changeType = ChangeType[change.type!]; + change.changeType = CHANGE_TYPE_NAME_MAP[change.type!]; + if (change.changeType === undefined) { + throw new Error(`Unknown change type "${change.type}"`); + } } if (!allChanges[packageName]) { diff --git a/apps/rush-lib/src/logic/PurgeManager.ts b/apps/rush-lib/src/logic/PurgeManager.ts index 57029d749b2..d65bfe9b429 100644 --- a/apps/rush-lib/src/logic/PurgeManager.ts +++ b/apps/rush-lib/src/logic/PurgeManager.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as path from 'path'; import { AsyncRecycler } from '../utilities/AsyncRecycler'; diff --git a/apps/rush-lib/src/logic/SetupChecks.ts b/apps/rush-lib/src/logic/SetupChecks.ts index 65b29f1aadb..7769bc6ebea 100644 --- a/apps/rush-lib/src/logic/SetupChecks.ts +++ b/apps/rush-lib/src/logic/SetupChecks.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as path from 'path'; import * as semver from 'semver'; import { FileSystem, AlreadyReportedError } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/TaskSelector.ts b/apps/rush-lib/src/logic/TaskSelector.ts index f866271a9e0..f5e7b4d888e 100644 --- a/apps/rush-lib/src/logic/TaskSelector.ts +++ b/apps/rush-lib/src/logic/TaskSelector.ts @@ -28,7 +28,6 @@ export interface ITaskSelectorConstructor { */ export class TaskSelector { private _taskCollection: TaskCollection; - private _dependentList: Map>; private _options: ITaskSelectorConstructor; private _packageChangeAnalyzer: PackageChangeAnalyzer; @@ -77,11 +76,11 @@ export class TaskSelector { } private _registerFromProjects(fromProjects: ReadonlyArray): void { - this._buildDependentGraph(); + const dependentList: Map> = this._getDependentGraph(); const dependents: Map = new Map(); for (const fromProject of fromProjects) { - this._collectAllDependents(fromProject, dependents); + this._collectAllDependents(dependentList, fromProject, dependents); } // Register all downstream dependents @@ -140,14 +139,15 @@ export class TaskSelector { * Collects all downstream dependents of a certain project */ private _collectAllDependents( + dependentList: Map>, project: RushConfigurationProject, result: Map ): void { if (!result.has(project.packageName)) { result.set(project.packageName, project); - for (const dependent of this._dependentList.get(project.packageName) || []) { - this._collectAllDependents(dependent, result); + for (const dependent of dependentList.get(project.packageName) || []) { + this._collectAllDependents(dependentList, dependent, result); } } } @@ -155,18 +155,23 @@ export class TaskSelector { /** * Inverts the localLinks to arrive at the dependent graph. This helps when using the --from flag */ - private _buildDependentGraph(): void { - this._dependentList = new Map>(); + private _getDependentGraph(): Map> { + const dependentList: Map> = new Map< + string, + Set + >(); for (const project of this._options.rushConfiguration.projects) { for (const { packageName } of project.localDependencyProjects) { - if (!this._dependentList.has(packageName)) { - this._dependentList.set(packageName, new Set()); + if (!dependentList.has(packageName)) { + dependentList.set(packageName, new Set()); } - this._dependentList.get(packageName)!.add(project); + dependentList.get(packageName)!.add(project); } } + + return dependentList; } private _registerTask(project: RushConfigurationProject | undefined): void { diff --git a/apps/rush-lib/src/logic/UnlinkManager.ts b/apps/rush-lib/src/logic/UnlinkManager.ts index 74171638d39..e9147087e09 100644 --- a/apps/rush-lib/src/logic/UnlinkManager.ts +++ b/apps/rush-lib/src/logic/UnlinkManager.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as path from 'path'; import { FileSystem, AlreadyReportedError } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/base/BaseInstallManager.ts b/apps/rush-lib/src/logic/base/BaseInstallManager.ts index 07a8f72f001..033ba967e1d 100644 --- a/apps/rush-lib/src/logic/base/BaseInstallManager.ts +++ b/apps/rush-lib/src/logic/base/BaseInstallManager.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as fetch from 'node-fetch'; import * as fs from 'fs'; import * as http from 'http'; diff --git a/apps/rush-lib/src/logic/base/BaseLinkManager.ts b/apps/rush-lib/src/logic/base/BaseLinkManager.ts index 0b22666fcf9..235735b4926 100644 --- a/apps/rush-lib/src/logic/base/BaseLinkManager.ts +++ b/apps/rush-lib/src/logic/base/BaseLinkManager.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; diff --git a/apps/rush-lib/src/logic/base/BaseShrinkwrapFile.ts b/apps/rush-lib/src/logic/base/BaseShrinkwrapFile.ts index eb46a829821..48419d41bf3 100644 --- a/apps/rush-lib/src/logic/base/BaseShrinkwrapFile.ts +++ b/apps/rush-lib/src/logic/base/BaseShrinkwrapFile.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as semver from 'semver'; import { FileSystem } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/deploy/DeployArchiver.ts b/apps/rush-lib/src/logic/deploy/DeployArchiver.ts index 8db2901a1cb..df577642352 100644 --- a/apps/rush-lib/src/logic/deploy/DeployArchiver.ts +++ b/apps/rush-lib/src/logic/deploy/DeployArchiver.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as JSZip from 'jszip'; +import JSZip = require('jszip'); import * as path from 'path'; import { FileSystem, FileSystemStats } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/deploy/DeployManager.ts b/apps/rush-lib/src/logic/deploy/DeployManager.ts index fba1766463f..b1fe844eca7 100644 --- a/apps/rush-lib/src/logic/deploy/DeployManager.ts +++ b/apps/rush-lib/src/logic/deploy/DeployManager.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as path from 'path'; import * as resolve from 'resolve'; import * as npmPacklist from 'npm-packlist'; diff --git a/apps/rush-lib/src/logic/deploy/DeployScenarioConfiguration.ts b/apps/rush-lib/src/logic/deploy/DeployScenarioConfiguration.ts index 98011f78ff7..4fc6ba6ed7c 100644 --- a/apps/rush-lib/src/logic/deploy/DeployScenarioConfiguration.ts +++ b/apps/rush-lib/src/logic/deploy/DeployScenarioConfiguration.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as path from 'path'; import { FileSystem, JsonFile, JsonSchema } from '@rushstack/node-core-library'; import { RushConfiguration } from '../../api/RushConfiguration'; diff --git a/apps/rush-lib/src/logic/installManager/InstallHelpers.ts b/apps/rush-lib/src/logic/installManager/InstallHelpers.ts index 464a257fc01..40d354f07fd 100644 --- a/apps/rush-lib/src/logic/installManager/InstallHelpers.ts +++ b/apps/rush-lib/src/logic/installManager/InstallHelpers.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import * as path from 'path'; import * as semver from 'semver'; diff --git a/apps/rush-lib/src/logic/installManager/RushInstallManager.ts b/apps/rush-lib/src/logic/installManager/RushInstallManager.ts index 80f7e0dfd94..1a3b7fd3fec 100644 --- a/apps/rush-lib/src/logic/installManager/RushInstallManager.ts +++ b/apps/rush-lib/src/logic/installManager/RushInstallManager.ts @@ -2,13 +2,13 @@ // See LICENSE in the project root for license information. import * as glob from 'glob'; -import * as colors from 'colors'; +import colors from 'colors'; import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; import * as semver from 'semver'; import * as ssri from 'ssri'; -import * as globEscape from 'glob-escape'; +const globEscape: (unescaped: string) => string = require('glob-escape'); // No @types/glob-escape package exists import { JsonFile, Text, diff --git a/apps/rush-lib/src/logic/installManager/WorkspaceInstallManager.ts b/apps/rush-lib/src/logic/installManager/WorkspaceInstallManager.ts index 19354641292..57acbcb6d60 100644 --- a/apps/rush-lib/src/logic/installManager/WorkspaceInstallManager.ts +++ b/apps/rush-lib/src/logic/installManager/WorkspaceInstallManager.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import * as path from 'path'; import * as semver from 'semver'; diff --git a/apps/rush-lib/src/logic/npm/NpmLinkManager.ts b/apps/rush-lib/src/logic/npm/NpmLinkManager.ts index dc46fffb73e..fcdbc60177b 100644 --- a/apps/rush-lib/src/logic/npm/NpmLinkManager.ts +++ b/apps/rush-lib/src/logic/npm/NpmLinkManager.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import * as path from 'path'; import * as semver from 'semver'; diff --git a/apps/rush-lib/src/logic/pnpm/PnpmLinkManager.ts b/apps/rush-lib/src/logic/pnpm/PnpmLinkManager.ts index 3e69a9e0a32..13264400a5b 100644 --- a/apps/rush-lib/src/logic/pnpm/PnpmLinkManager.ts +++ b/apps/rush-lib/src/logic/pnpm/PnpmLinkManager.ts @@ -6,7 +6,7 @@ import * as path from 'path'; import uriEncode = require('strict-uri-encode'); import pnpmLinkBins from '@pnpm/link-bins'; import * as semver from 'semver'; -import * as colors from 'colors'; +import colors from 'colors'; import { Text, diff --git a/apps/rush-lib/src/logic/pnpm/PnpmProjectDependencyManifest.ts b/apps/rush-lib/src/logic/pnpm/PnpmProjectDependencyManifest.ts index 9096374b8f5..2d51aee6edd 100644 --- a/apps/rush-lib/src/logic/pnpm/PnpmProjectDependencyManifest.ts +++ b/apps/rush-lib/src/logic/pnpm/PnpmProjectDependencyManifest.ts @@ -3,7 +3,7 @@ import * as path from 'path'; import * as semver from 'semver'; -import * as crypto from 'crypto'; +import crypto from 'crypto'; import { JsonFile, InternalError, FileSystem } from '@rushstack/node-core-library'; import { diff --git a/apps/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts b/apps/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts index e319987aaec..5a2f0192972 100644 --- a/apps/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts +++ b/apps/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts @@ -4,8 +4,8 @@ import * as os from 'os'; import * as path from 'path'; import * as semver from 'semver'; -import * as crypto from 'crypto'; -import * as colors from 'colors'; +import crypto from 'crypto'; +import colors from 'colors'; import { FileSystem, AlreadyReportedError, Import } from '@rushstack/node-core-library'; import { BaseShrinkwrapFile } from '../base/BaseShrinkwrapFile'; @@ -415,16 +415,11 @@ export class PnpmShrinkwrapFile extends BaseShrinkwrapFile { * @override */ protected serialize(): string { - // Ensure that if any of the top-level properties are provided but empty that they are removed. We populate the object + // Ensure that if any of the top-level properties are provided but empty are removed. We populate the object // properties when we read the shrinkwrap but PNPM does not set these top-level properties unless they are present. - const shrinkwrapToSerialize: Partial = { ...this._shrinkwrapJson }; - for (const key of Object.keys(shrinkwrapToSerialize).filter((key) => - shrinkwrapToSerialize.hasOwnProperty(key) - )) { - if ( - typeof shrinkwrapToSerialize[key] === 'object' && - Object.entries(shrinkwrapToSerialize[key] || {}).length === 0 - ) { + const shrinkwrapToSerialize: { [key: string]: unknown } = { ...this._shrinkwrapJson }; + for (const [key, value] of Object.entries(shrinkwrapToSerialize)) { + if (typeof value === 'object' && Object.entries(value || {}).length === 0) { delete shrinkwrapToSerialize[key]; } } diff --git a/apps/rush-lib/src/logic/pnpm/PnpmWorkspaceFile.ts b/apps/rush-lib/src/logic/pnpm/PnpmWorkspaceFile.ts index 5ff10093673..6e750c060d2 100644 --- a/apps/rush-lib/src/logic/pnpm/PnpmWorkspaceFile.ts +++ b/apps/rush-lib/src/logic/pnpm/PnpmWorkspaceFile.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as globEscape from 'glob-escape'; +const globEscape: (unescaped: string) => string = require('glob-escape'); // No @types/glob-escape package exists import * as os from 'os'; import * as path from 'path'; import { FileSystem, Sort, Text, Import } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/policy/GitEmailPolicy.ts b/apps/rush-lib/src/logic/policy/GitEmailPolicy.ts index 1bd9c63bd29..4978154b2c8 100644 --- a/apps/rush-lib/src/logic/policy/GitEmailPolicy.ts +++ b/apps/rush-lib/src/logic/policy/GitEmailPolicy.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import * as os from 'os'; import { AlreadyReportedError } from '@rushstack/node-core-library'; diff --git a/apps/rush-lib/src/logic/taskRunner/ProjectBuilder.ts b/apps/rush-lib/src/logic/taskRunner/ProjectBuilder.ts index 53e80ba38f6..192532df45b 100644 --- a/apps/rush-lib/src/logic/taskRunner/ProjectBuilder.ts +++ b/apps/rush-lib/src/logic/taskRunner/ProjectBuilder.ts @@ -70,7 +70,6 @@ export class ProjectBuilder extends BaseBuilder { public isIncrementalBuildAllowed: boolean; public hadEmptyScript: boolean = false; - private _hasWarningOrError: boolean; private _rushProject: RushConfigurationProject; private _rushConfiguration: RushConfiguration; private _commandToRun: string; @@ -173,7 +172,7 @@ export class ProjectBuilder extends BaseBuilder { const terminal: CollatedTerminal = new CollatedTerminal(normalizeNewlineTransform); - this._hasWarningOrError = false; + let hasWarningOrError: boolean = false; const projectFolder: string = this._rushProject.projectFolder; let lastPackageDeps: IPackageDependencies | undefined = undefined; @@ -248,7 +247,7 @@ export class ProjectBuilder extends BaseBuilder { task.stderr.on('data', (data: Buffer) => { const text: string = data.toString(); terminal.writeChunk({ text, kind: TerminalChunkKind.Stderr }); - this._hasWarningOrError = true; + hasWarningOrError = true; }); } @@ -266,7 +265,7 @@ export class ProjectBuilder extends BaseBuilder { if (code !== 0) { reject(new TaskError('error', `Returned error code: ${code}`)); - } else if (this._hasWarningOrError) { + } else if (hasWarningOrError) { resolve(TaskStatus.SuccessWithWarning); } else { // Write deps on success. diff --git a/apps/rush-lib/src/logic/taskRunner/Task.ts b/apps/rush-lib/src/logic/taskRunner/Task.ts index e29f921ca92..ddb17bbeb63 100644 --- a/apps/rush-lib/src/logic/taskRunner/Task.ts +++ b/apps/rush-lib/src/logic/taskRunner/Task.ts @@ -33,12 +33,12 @@ export class Task { * A set of all dependencies which must be executed before this task is complete. * When dependencies finish execution, they are removed from this list. */ - public dependencies: Set; + public dependencies: Set = new Set(); /** * The inverse of dependencies, lists all projects which are directly dependent on this one. */ - public dependents: Set; + public dependents: Set = new Set(); /** * This number represents how far away this Task is from the furthest "root" project (i.e. @@ -80,14 +80,19 @@ export class Task { /** * The task writer which contains information from the output streams of this task */ - public collatedWriter: CollatedWriter; + public collatedWriter!: CollatedWriter; - public stdioSummarizer: StdioSummarizer; + public stdioSummarizer!: StdioSummarizer; /** * The stopwatch which measures how long it takes the task to execute */ - public stopwatch: Stopwatch; + public stopwatch!: Stopwatch; + + public constructor(builder: BaseBuilder, initialStatus: TaskStatus) { + this.builder = builder; + this.status = initialStatus; + } public get name(): string { return this.builder.name; diff --git a/apps/rush-lib/src/logic/taskRunner/TaskCollection.ts b/apps/rush-lib/src/logic/taskRunner/TaskCollection.ts index d4f1b15051e..c21d1484bc1 100644 --- a/apps/rush-lib/src/logic/taskRunner/TaskCollection.ts +++ b/apps/rush-lib/src/logic/taskRunner/TaskCollection.ts @@ -27,11 +27,7 @@ export class TaskCollection { throw new Error('A task with that name has already been registered.'); } - const task: Task = new Task(); - task.builder = builder; - task.dependencies = new Set(); - task.dependents = new Set(); - task.status = TaskStatus.Ready; + const task: Task = new Task(builder, TaskStatus.Ready); task.criticalPathLength = undefined; this._tasks.set(task.name, task); } diff --git a/apps/rush-lib/src/logic/taskRunner/TaskRunner.ts b/apps/rush-lib/src/logic/taskRunner/TaskRunner.ts index 65ede1303ef..c7d62d5b0c6 100644 --- a/apps/rush-lib/src/logic/taskRunner/TaskRunner.ts +++ b/apps/rush-lib/src/logic/taskRunner/TaskRunner.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as os from 'os'; -import * as colors from 'colors'; +import colors from 'colors'; import { StdioSummarizer, TerminalWritable, @@ -44,9 +44,9 @@ export class TaskRunner { private _hasAnyFailures: boolean; private _hasAnyWarnings: boolean; private _parallelism: number; - private _currentActiveTasks: number; - private _totalTasks: number; - private _completedTasks: number; + private _currentActiveTasks!: number; + private _totalTasks!: number; + private _completedTasks!: number; private readonly _outputWritable: TerminalWritable; private readonly _colorsNewlinesTransform: TextRewriterTransform; @@ -359,7 +359,7 @@ export class TaskRunner { * Prints out a report of the status of each project */ private _printTaskStatus(): void { - const tasksByStatus: { [status: number]: Task[] } = {}; + const tasksByStatus: { [status: string]: Task[] } = {}; for (const task of this._tasks) { switch (task.status) { // These are the sections that we will report below @@ -417,7 +417,7 @@ export class TaskRunner { private _writeCondensedSummary( status: TaskStatus, - tasksByStatus: { [status: number]: Task[] }, + tasksByStatus: { [status: string]: Task[] }, headingColor: (text: string) => string, preamble: string ): void { @@ -455,7 +455,7 @@ export class TaskRunner { private _writeDetailedSummary( status: TaskStatus, - tasksByStatus: { [status: number]: Task[] }, + tasksByStatus: { [status: string]: Task[] }, headingColor: (text: string) => string, shortStatusName?: string ): void { diff --git a/apps/rush-lib/src/logic/taskRunner/test/TaskRunner.test.ts b/apps/rush-lib/src/logic/taskRunner/test/TaskRunner.test.ts index 08870a922b6..e0cf3af4bbb 100644 --- a/apps/rush-lib/src/logic/taskRunner/test/TaskRunner.test.ts +++ b/apps/rush-lib/src/logic/taskRunner/test/TaskRunner.test.ts @@ -4,7 +4,7 @@ // The TaskRunner prints "x.xx seconds" in TestRunner.test.ts.snap; ensure that the Stopwatch timing is deterministic jest.mock('../../../utilities/Utilities'); -import * as colors from 'colors'; +import colors from 'colors'; import { EOL } from 'os'; import { CollatedTerminal } from '@rushstack/stream-collator'; import { MockWritable } from '@rushstack/terminal'; @@ -29,11 +29,7 @@ mockGetTimeInMs.mockImplementation(() => { const mockWritable: MockWritable = new MockWritable(); function createTaskRunner(taskRunnerOptions: ITaskRunnerOptions, builder: BaseBuilder): TaskRunner { - const task: Task = new Task(); - task.dependencies = new Set(); - task.dependents = new Set(); - task.status = TaskStatus.Ready; - task.builder = builder; + const task: Task = new Task(builder, TaskStatus.Ready); return new TaskRunner([task], taskRunnerOptions); } diff --git a/apps/rush-lib/src/logic/versionMismatch/VersionMismatchFinder.ts b/apps/rush-lib/src/logic/versionMismatch/VersionMismatchFinder.ts index 98296944805..05d685c2d1e 100644 --- a/apps/rush-lib/src/logic/versionMismatch/VersionMismatchFinder.ts +++ b/apps/rush-lib/src/logic/versionMismatch/VersionMismatchFinder.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as colors from 'colors'; +import colors from 'colors'; import { AlreadyReportedError } from '@rushstack/node-core-library'; import { RushConfiguration } from '../../api/RushConfiguration'; diff --git a/apps/rush-lib/src/logic/yarn/YarnShrinkwrapFile.ts b/apps/rush-lib/src/logic/yarn/YarnShrinkwrapFile.ts index f2e8660a1a0..38982fff922 100644 --- a/apps/rush-lib/src/logic/yarn/YarnShrinkwrapFile.ts +++ b/apps/rush-lib/src/logic/yarn/YarnShrinkwrapFile.ts @@ -8,8 +8,19 @@ import { RushConstants } from '../RushConstants'; import { DependencySpecifier } from '../DependencySpecifier'; import { PackageNameParsers } from '../../api/PackageNameParsers'; -// TODO: Convert this to "import type" after we upgrade to TypeScript 3.8 -import * as YarnPkgLockfileTypes from '@yarnpkg/lockfile'; +/** + * @yarnpkg/lockfile doesn't have types + */ +// eslint-disable-next-line +declare module YarnPkgLockfileTypes { + export class ParseResult { + public object: IYarnShrinkwrapJson; + } + + export function parse(shrinkwrapJson: string): ParseResult; + + export function stringify(shrinkwrap: IYarnShrinkwrapJson): string; +} const lockfileModule: typeof YarnPkgLockfileTypes = Import.lazy('@yarnpkg/lockfile', require); /** @@ -161,7 +172,7 @@ export class YarnShrinkwrapFile extends BaseShrinkwrapFile { throw new Error(`Error reading "${shrinkwrapFilename}":` + os.EOL + ` ${error.message}`); } - return new YarnShrinkwrapFile(shrinkwrapJson.object as IYarnShrinkwrapJson); + return new YarnShrinkwrapFile(shrinkwrapJson.object); } /** diff --git a/apps/rush-lib/src/utilities/Npm.ts b/apps/rush-lib/src/utilities/Npm.ts index 3e10352abfe..4556d242ec0 100644 --- a/apps/rush-lib/src/utilities/Npm.ts +++ b/apps/rush-lib/src/utilities/Npm.ts @@ -37,8 +37,8 @@ export class Npm { true ); if (packageVersions && packageVersions.length > 0) { - JSON.parse(packageVersions).forEach((v) => { - versions.push(v); + JSON.parse(packageVersions).forEach((version: string) => { + versions.push(version); }); } else { console.log(`No version is found for ${packageName}`); diff --git a/apps/rush-lib/src/utilities/Utilities.ts b/apps/rush-lib/src/utilities/Utilities.ts index abc62f03d41..9a7a01b815a 100644 --- a/apps/rush-lib/src/utilities/Utilities.ts +++ b/apps/rush-lib/src/utilities/Utilities.ts @@ -6,7 +6,7 @@ import * as fs from 'fs'; import * as os from 'os'; import * as tty from 'tty'; import * as path from 'path'; -import * as wordwrap from 'wordwrap'; +import wordwrap = require('wordwrap'); import { JsonFile, IPackageJson, FileSystem, FileConstants } from '@rushstack/node-core-library'; import { RushConfiguration } from '../api/RushConfiguration'; import { Stream } from 'stream'; diff --git a/apps/rush-lib/src/utilities/VersionControl.ts b/apps/rush-lib/src/utilities/VersionControl.ts index d6d0223c3b3..8451e8350ca 100644 --- a/apps/rush-lib/src/utilities/VersionControl.ts +++ b/apps/rush-lib/src/utilities/VersionControl.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as child_process from 'child_process'; -import * as colors from 'colors'; +import colors from 'colors'; import { Executable, Path } from '@rushstack/node-core-library'; import { RushConfiguration } from '../api/RushConfiguration'; diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 90d2c0e8ee2..e2fced29917 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -251,6 +251,7 @@ importers: '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 'link:../heft' '@rushstack/heft-node-rig': 'link:../../rigs/heft-node-rig' + '@types/cli-table': 0.3.0 '@types/glob': 7.1.1 '@types/heft-jest': 1.0.1 '@types/inquirer': 0.0.43 @@ -280,6 +281,7 @@ importers: '@rushstack/stream-collator': 'workspace:*' '@rushstack/terminal': 'workspace:*' '@rushstack/ts-command-line': 'workspace:*' + '@types/cli-table': 0.3.0 '@types/glob': 7.1.1 '@types/heft-jest': 1.0.1 '@types/inquirer': 0.0.43 @@ -3208,6 +3210,10 @@ packages: dev: true resolution: integrity: sha512-A1HQhQ0hkvqqByJMgg+Wiv9p9XdoYEzuwm11SVo1mX2/4PSdhjcrUlilJQoqLscIheC51t1D5g+EFWCXZ2VTQQ== + /@types/cli-table/0.3.0: + dev: true + resolution: + integrity: sha512-QnZUISJJXyhyD6L1e5QwXDV/A5i2W1/gl6D6YMc8u0ncPepbv/B4w3S+izVvtAg60m6h+JP09+Y/0zF2mojlFQ== /@types/color-name/1.1.1: resolution: integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json index 54c3cba0f7b..890a65bddeb 100644 --- a/common/config/rush/repo-state.json +++ b/common/config/rush/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "bcb20252d9571b4bcb40647a6506e2b62896897b", + "pnpmShrinkwrapHash": "97caf0256fdfec1d0ea3500471409b80eb5c88f9", "preferredVersionsHash": "334ea62b6a2798dcf80917b79555983377e7435e" } diff --git a/common/reviews/api/rush-lib.api.md b/common/reviews/api/rush-lib.api.md index 23bd9475031..dd875c08cfd 100644 --- a/common/reviews/api/rush-lib.api.md +++ b/common/reviews/api/rush-lib.api.md @@ -25,6 +25,8 @@ export class ApprovedPackagesConfiguration { // @public export class ApprovedPackagesItem { + // @internal + constructor(packageName: string); allowedCategories: Set; packageName: string; } @@ -416,7 +418,7 @@ export class RushConfigurationProject { readonly projectFolder: string; readonly projectRelativeFolder: string; readonly projectRushTempFolder: string; - readonly reviewCategory: string; + readonly reviewCategory: string | undefined; readonly rushConfiguration: RushConfiguration; readonly shouldPublish: boolean; readonly skipRushCheck: boolean; @@ -453,6 +455,8 @@ export abstract class VersionPolicy { readonly policyName: string; setDependenciesBeforeCommit(packageName: string, configuration: RushConfiguration): void; setDependenciesBeforePublish(packageName: string, configuration: RushConfiguration): void; + // @internal (undocumented) + static tryParseBumpType(bumpTypeName: string): BumpType | undefined; abstract validate(versionString: string, packageName: string): void; } From 84599d602a0fccb68576e3966b83dc4a39f55c5d Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Mon, 28 Sep 2020 00:52:47 -0700 Subject: [PATCH 08/36] Fix strict compiler issues with rush --- apps/rush/package.json | 5 +---- .../src/test/MinimalRushConfiguration.test.ts | 18 +++++------------- .../rush/nonbrowser-approved-packages.json | 12 ------------ 3 files changed, 6 insertions(+), 29 deletions(-) diff --git a/apps/rush/package.json b/apps/rush/package.json index 44212032042..09231886234 100644 --- a/apps/rush/package.json +++ b/apps/rush/package.json @@ -42,9 +42,6 @@ "@rushstack/heft-node-rig": "workspace:*", "@types/heft-jest": "1.0.1", "@types/node": "10.17.13", - "@types/semver": "~7.3.1", - "@types/sinon": "1.16.34", - "chai": "~3.5.0", - "sinon": "~1.17.3" + "@types/semver": "~7.3.1" } } diff --git a/apps/rush/src/test/MinimalRushConfiguration.test.ts b/apps/rush/src/test/MinimalRushConfiguration.test.ts index 37fc95b8e22..4de2d1fd322 100644 --- a/apps/rush/src/test/MinimalRushConfiguration.test.ts +++ b/apps/rush/src/test/MinimalRushConfiguration.test.ts @@ -1,42 +1,34 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import * as sinon from 'sinon'; import * as path from 'path'; -import { assert } from 'chai'; import { MinimalRushConfiguration } from '../MinimalRushConfiguration'; describe('MinimalRushConfiguration', () => { - let sandbox: sinon.SinonSandbox; - - beforeEach(() => { - sandbox = sinon.sandbox.create(); - }); - afterEach(() => { - sandbox.restore(); + jest.restoreAllMocks(); }); describe('legacy rush config', () => { beforeEach(() => { - sandbox.stub(process, 'cwd', () => path.join(__dirname, 'sandbox', 'legacy-repo', 'project')); + jest.spyOn(process, 'cwd').mockReturnValue(path.join(__dirname, 'sandbox', 'legacy-repo', 'project')); }); it('correctly loads the rush.json file', () => { const config: MinimalRushConfiguration = MinimalRushConfiguration.loadFromDefaultLocation() as MinimalRushConfiguration; - assert.equal(config.rushVersion, '2.5.0'); + expect(config.rushVersion).toEqual('2.5.0'); }); }); describe('non-legacy rush config', () => { beforeEach(() => { - sandbox.stub(process, 'cwd', () => path.join(__dirname, 'sandbox', 'repo', 'project')); + jest.spyOn(process, 'cwd').mockReturnValue(path.join(__dirname, 'sandbox', 'repo', 'project')); }); it('correctly loads the rush.json file', () => { const config: MinimalRushConfiguration = MinimalRushConfiguration.loadFromDefaultLocation() as MinimalRushConfiguration; - assert.equal(config.rushVersion, '4.0.0'); + expect(config.rushVersion).toEqual('4.0.0'); }); }); }); diff --git a/common/config/rush/nonbrowser-approved-packages.json b/common/config/rush/nonbrowser-approved-packages.json index d9786ceabf9..e702402f67c 100644 --- a/common/config/rush/nonbrowser-approved-packages.json +++ b/common/config/rush/nonbrowser-approved-packages.json @@ -294,10 +294,6 @@ "name": "builtin-modules", "allowedCategories": [ "libraries" ] }, - { - "name": "chai", - "allowedCategories": [ "libraries", "tests" ] - }, { "name": "chalk", "allowedCategories": [ "libraries" ] @@ -662,14 +658,6 @@ "name": "semver", "allowedCategories": [ "libraries", "tests" ] }, - { - "name": "sinon", - "allowedCategories": [ "libraries" ] - }, - { - "name": "sinon-chai", - "allowedCategories": [ "libraries" ] - }, { "name": "source-map", "allowedCategories": [ "libraries" ] From 049515a3241f1ff696be8164a4c880390237a4f5 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Mon, 28 Sep 2020 00:56:15 -0700 Subject: [PATCH 09/36] Fix strict compiler issues with set-webpack-public-path-plugin --- .../src/SetPublicPathPlugin.ts | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/webpack/set-webpack-public-path-plugin/src/SetPublicPathPlugin.ts b/webpack/set-webpack-public-path-plugin/src/SetPublicPathPlugin.ts index 37598973235..49267a1d43f 100644 --- a/webpack/set-webpack-public-path-plugin/src/SetPublicPathPlugin.ts +++ b/webpack/set-webpack-public-path-plugin/src/SetPublicPathPlugin.ts @@ -106,23 +106,24 @@ interface IExtendedMainTemplate extends Webpack.compilation.MainTemplate { requireFn: string; } +const SHOULD_REPLACE_ASSET_NAME_TOKEN: unique symbol = Symbol( + 'set-public-path-plugin-should-replace-asset-name' +); + interface IExtendedChunk extends Webpack.compilation.Chunk { + [SHOULD_REPLACE_ASSET_NAME_TOKEN]: boolean; forEachModule(callback: (module: Webpack.compilation.Module) => void): void; } interface IStartupCodeOptions { source: string; - chunk: Webpack.compilation.Chunk; + chunk: IExtendedChunk; hash: string; requireFn: string; } const PLUGIN_NAME: string = 'set-webpack-public-path'; -const SHOULD_REPLACE_ASSET_NAME_TOKEN: unique symbol = Symbol( - 'set-public-path-plugin-should-replace-asset-name' -); - const ASSET_NAME_TOKEN: string = '-ASSET-NAME-c0ef4f86-b570-44d3-b210-4428c5b7825c'; const ASSET_NAME_TOKEN_REGEX: RegExp = new RegExp(ASSET_NAME_TOKEN); @@ -157,19 +158,24 @@ export class SetPublicPathPlugin implements Webpack.Plugin { compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation: Webpack.compilation.Compilation) => { const v4MainTemplate: IExtendedMainTemplate = compilation.mainTemplate as IExtendedMainTemplate; - v4MainTemplate.hooks.startup.tap(PLUGIN_NAME, (source: string, chunk: IExtendedChunk, hash: string) => { - const assetOrChunkFound: boolean = !!this.options.skipDetection || this._detectAssetsOrChunks(chunk); - if (assetOrChunkFound) { - return this._getStartupCode({ - source, - chunk, - hash, - requireFn: v4MainTemplate.requireFn - }); - } else { - return source; + v4MainTemplate.hooks.startup.tap( + PLUGIN_NAME, + (source: string, chunk: Webpack.compilation.Chunk, hash: string) => { + const extendedChunk: IExtendedChunk = chunk as IExtendedChunk; + const assetOrChunkFound: boolean = + !!this.options.skipDetection || this._detectAssetsOrChunks(extendedChunk); + if (assetOrChunkFound) { + return this._getStartupCode({ + source, + chunk: extendedChunk, + hash, + requireFn: v4MainTemplate.requireFn + }); + } else { + return source; + } } - }); + ); }); compiler.hooks.emit.tap(PLUGIN_NAME, (compilation: Webpack.compilation.Compilation) => { From d6a357990aae5f01cfe21af0b72d86fbac71efdf Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Mon, 28 Sep 2020 00:58:07 -0700 Subject: [PATCH 10/36] Fix strict compiler issues with loader-load-themed-styles --- .../src/test/LoadThemedStylesLoader.test.ts | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/webpack/loader-load-themed-styles/src/test/LoadThemedStylesLoader.test.ts b/webpack/loader-load-themed-styles/src/test/LoadThemedStylesLoader.test.ts index 8897e083248..ccb8a162d0b 100644 --- a/webpack/loader-load-themed-styles/src/test/LoadThemedStylesLoader.test.ts +++ b/webpack/loader-load-themed-styles/src/test/LoadThemedStylesLoader.test.ts @@ -1,3 +1,4 @@ +import webpack = require('webpack'); // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. @@ -31,7 +32,7 @@ describe('LoadThemedStylesLoader', () => { it('it inserts the resolved load-themed-styles path', () => { const expectedPath: string = require.resolve('@microsoft/load-themed-styles'); - const loaderResult: string = LoadThemedStylesLoader.pitch.call({}, ''); + const loaderResult: string = LoadThemedStylesLoader.pitch.call({} as webpack.loader.LoaderContext, ''); expect(loaderResult.indexOf(expectedPath)).not.toBeNull(); }); @@ -47,14 +48,17 @@ describe('LoadThemedStylesLoader', () => { it('it inserts the overridden load-themed-styles path', () => { const expectedPath: string = './testData/LoadThemedStylesMock'; - const loaderResult: string = LoadThemedStylesLoader.pitch.call({}, ''); + const loaderResult: string = LoadThemedStylesLoader.pitch.call({} as webpack.loader.LoaderContext, ''); expect(loaderResult.indexOf(expectedPath)).not.toBeNull(); }); it('correctly calls loadStyles in load-themed-styles with a module reference', () => { LoadThemedStylesLoader.loadedThemedStylesPath = './testData/LoadThemedStylesMock'; - let loaderResult: string = LoadThemedStylesLoader.pitch.call({}, './testData/MockStyle1'); + let loaderResult: string = LoadThemedStylesLoader.pitch.call( + {} as webpack.loader.LoaderContext, + './testData/MockStyle1' + ); loaderResult = loaderResult.replace(/require\(\"!!/, 'require("'); loaderResult = wrapResult(loaderResult); @@ -72,7 +76,10 @@ describe('LoadThemedStylesLoader', () => { it('correctly calls loadStyles in load-themed-styles with a string reference', () => { LoadThemedStylesLoader.loadedThemedStylesPath = './testData/LoadThemedStylesMock'; - let loaderResult: string = LoadThemedStylesLoader.pitch.call({}, './testData/MockStyle2'); + let loaderResult: string = LoadThemedStylesLoader.pitch.call( + {} as webpack.loader.LoaderContext, + './testData/MockStyle2' + ); loaderResult = loaderResult.replace(/require\(\"!!/, 'require("'); loaderResult = wrapResult(loaderResult); @@ -87,7 +94,10 @@ describe('LoadThemedStylesLoader', () => { LoadThemedStylesLoader.loadedThemedStylesPath = './testData/LoadThemedStylesMock'; const query: {} = { namedExport: 'default' }; - let loaderResult: string = LoadThemedStylesLoader.pitch.call({ query }, './testData/MockStyle1'); + let loaderResult: string = LoadThemedStylesLoader.pitch.call( + { query } as webpack.loader.LoaderContext, + './testData/MockStyle1' + ); loaderResult = loaderResult.replace(/require\(\"!!/, 'require("'); loaderResult = wrapResult(loaderResult); @@ -106,7 +116,10 @@ describe('LoadThemedStylesLoader', () => { LoadThemedStylesLoader.loadedThemedStylesPath = './testData/LoadThemedStylesMock'; const query: {} = { async: true }; - let loaderResult: string = LoadThemedStylesLoader.pitch.call({ query }, './testData/MockStyle1'); + let loaderResult: string = LoadThemedStylesLoader.pitch.call( + { query } as webpack.loader.LoaderContext, + './testData/MockStyle1' + ); loaderResult = loaderResult.replace(/require\(\"!!/, 'require("'); loaderResult = wrapResult(loaderResult); @@ -124,7 +137,10 @@ describe('LoadThemedStylesLoader', () => { it('correctly handles the async option set to a non-boolean', () => { LoadThemedStylesLoader.loadedThemedStylesPath = './testData/LoadThemedStylesMock'; - let loaderResult: string = LoadThemedStylesLoader.pitch.call({}, './testData/MockStyle1'); + let loaderResult: string = LoadThemedStylesLoader.pitch.call( + {} as webpack.loader.LoaderContext, + './testData/MockStyle1' + ); loaderResult = loaderResult.replace(/require\(\"!!/, 'require("'); loaderResult = wrapResult(loaderResult); From 10bf5d6df07e4dc238127688684f1318fc59d02d Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Mon, 28 Sep 2020 01:05:54 -0700 Subject: [PATCH 11/36] Fix strict compiler issues with localization-plugin --- .../localization-plugin/src/AssetProcessor.ts | 6 +- .../src/LocalizationPlugin.ts | 170 +++++++++--------- .../src/loaders/LoaderFactory.ts | 6 +- .../src/utilities/EntityMarker.ts | 8 +- 4 files changed, 104 insertions(+), 86 deletions(-) diff --git a/webpack/localization-plugin/src/AssetProcessor.ts b/webpack/localization-plugin/src/AssetProcessor.ts index 558ee6794e4..ca47d46210f 100644 --- a/webpack/localization-plugin/src/AssetProcessor.ts +++ b/webpack/localization-plugin/src/AssetProcessor.ts @@ -28,7 +28,7 @@ interface ILocalizedReconstructionElement extends IReconstructionElement { interface IDynamicReconstructionElement extends IReconstructionElement { kind: 'dynamic'; - valueFn: (locale: string | undefined, token: string | undefined) => string; + valueFn: (locale: string, token: string | undefined) => string; size: number; escapedBackslash: string; token?: string; @@ -331,7 +331,7 @@ export class AssetProcessor { private static _parseStringToReconstructionSequence( plugin: LocalizationPlugin, source: string, - jsonpFunction: (locale: string, chunkIdToken: string) => string + jsonpFunction: (locale: string, chunkIdToken: string | undefined) => string ): IParseResult { const issues: string[] = []; const reconstructionSeries: IReconstructionElement[] = []; @@ -454,7 +454,7 @@ export class AssetProcessor { chunkMapping[idWithoutStrings] = 1; } - return (locale: string, chunkIdToken: string) => { + return (locale: string, chunkIdToken: string | undefined) => { if (!locale) { throw new Error('Missing locale name.'); } diff --git a/webpack/localization-plugin/src/LocalizationPlugin.ts b/webpack/localization-plugin/src/LocalizationPlugin.ts index 52d6f77f4f7..c9e44d50d18 100644 --- a/webpack/localization-plugin/src/LocalizationPlugin.ts +++ b/webpack/localization-plugin/src/LocalizationPlugin.ts @@ -94,7 +94,7 @@ export class LocalizationPlugin implements Webpack.Plugin { public stringKeys: Map = new Map(); private _options: ILocalizationPluginOptions; - private _resolvedTranslatedStringsFromOptions: ILocalizedStrings; + private _resolvedTranslatedStringsFromOptions!: ILocalizedStrings; private _filesToIgnore: Set = new Set(); private _stringPlaceholderCounter: number = 0; private _stringPlaceholderMap: Map = new Map< @@ -102,10 +102,10 @@ export class LocalizationPlugin implements Webpack.Plugin { IStringSerialNumberData >(); private _locales: Set = new Set(); - private _passthroughLocaleName: string; - private _defaultLocale: string; - private _noStringsLocaleName: string; - private _fillMissingTranslationStrings: boolean; + private _passthroughLocaleName!: string; + private _defaultLocale!: string; + private _noStringsLocaleName!: string; + private _fillMissingTranslationStrings!: boolean; private _pseudolocalizers: Map string> = new Map< string, (str: string) => string @@ -226,93 +226,103 @@ export class LocalizationPlugin implements Webpack.Plugin { WebpackConfigurationUpdater.amendWebpackConfigurationForMultiLocale(webpackConfigurationUpdaterOptions); if (errors.length === 0) { - compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation: IExtendedConfiguration) => { - ((compilation.mainTemplate as unknown) as IExtendedMainTemplate).hooks.assetPath.tap( - PLUGIN_NAME, - (assetPath: string, options: IAssetPathOptions) => { - if ( - options.contentHashType === 'javascript' && - assetPath.match(Constants.LOCALE_FILENAME_TOKEN_REGEX) - ) { - // Does this look like an async chunk URL generator? - if (typeof options.chunk.id === 'string' && options.chunk.id.match(/^\" \+/)) { - return assetPath.replace( - Constants.LOCALE_FILENAME_TOKEN_REGEX, - `" + ${Constants.JSONP_PLACEHOLDER} + "` + compiler.hooks.thisCompilation.tap( + PLUGIN_NAME, + (untypedCompilation: Webpack.compilation.Compilation) => { + const compilation: IExtendedConfiguration = untypedCompilation as IExtendedConfiguration; + ((compilation.mainTemplate as unknown) as IExtendedMainTemplate).hooks.assetPath.tap( + PLUGIN_NAME, + (assetPath: string, options: IAssetPathOptions) => { + if ( + options.contentHashType === 'javascript' && + assetPath.match(Constants.LOCALE_FILENAME_TOKEN_REGEX) + ) { + // Does this look like an async chunk URL generator? + if (typeof options.chunk.id === 'string' && options.chunk.id.match(/^\" \+/)) { + return assetPath.replace( + Constants.LOCALE_FILENAME_TOKEN_REGEX, + `" + ${Constants.JSONP_PLACEHOLDER} + "` + ); + } else { + return assetPath.replace( + Constants.LOCALE_FILENAME_TOKEN_REGEX, + Constants.LOCALE_NAME_PLACEHOLDER + ); + } + } else if (assetPath.match(Constants.NO_LOCALE_SOURCE_MAP_FILENAME_TOKEN_REGEX)) { + // Replace the placeholder with the [locale] token for sourcemaps + const deLocalizedFilename: string = options.filename.replace( + PLACEHOLDER_REGEX, + Constants.LOCALE_FILENAME_TOKEN ); - } else { return assetPath.replace( - Constants.LOCALE_FILENAME_TOKEN_REGEX, - Constants.LOCALE_NAME_PLACEHOLDER + Constants.NO_LOCALE_SOURCE_MAP_FILENAME_TOKEN_REGEX, + deLocalizedFilename ); + } else { + return assetPath; } - } else if (assetPath.match(Constants.NO_LOCALE_SOURCE_MAP_FILENAME_TOKEN_REGEX)) { - // Replace the placeholder with the [locale] token for sourcemaps - const deLocalizedFilename: string = options.filename.replace( - PLACEHOLDER_REGEX, - Constants.LOCALE_FILENAME_TOKEN - ); - return assetPath.replace( - Constants.NO_LOCALE_SOURCE_MAP_FILENAME_TOKEN_REGEX, - deLocalizedFilename - ); - } else { - return assetPath; } - } - ); + ); - compilation.hooks.optimizeChunks.tap( - PLUGIN_NAME, - (chunks: IExtendedChunk[], chunkGroups: IExtendedChunkGroup[]) => { - let chunksHaveAnyChildren: boolean = false; - for (const chunkGroup of chunkGroups) { - const children: Webpack.compilation.Chunk[] = chunkGroup.getChildren(); - if (children.length > 0) { - chunksHaveAnyChildren = true; - break; + compilation.hooks.optimizeChunks.tap( + PLUGIN_NAME, + ( + untypedChunks: Webpack.compilation.Chunk[], + untypedChunkGroups: Webpack.compilation.ChunkGroup[] + ) => { + const chunks: IExtendedChunk[] = untypedChunks as IExtendedChunk[]; + const chunkGroups: IExtendedChunkGroup[] = untypedChunkGroups as IExtendedChunkGroup[]; + + let chunksHaveAnyChildren: boolean = false; + for (const chunkGroup of chunkGroups) { + const children: Webpack.compilation.Chunk[] = chunkGroup.getChildren(); + if (children.length > 0) { + chunksHaveAnyChildren = true; + break; + } } - } - - if ( - chunksHaveAnyChildren && - (!compilation.options.output || - !compilation.options.output.chunkFilename || - compilation.options.output.chunkFilename.indexOf(Constants.LOCALE_FILENAME_TOKEN) === -1) - ) { - compilation.errors.push( - new Error( - 'The configuration.output.chunkFilename property must be provided and must include ' + - `the ${Constants.LOCALE_FILENAME_TOKEN} placeholder` - ) - ); - return; - } + if ( + chunksHaveAnyChildren && + (!compilation.options.output || + !compilation.options.output.chunkFilename || + compilation.options.output.chunkFilename.indexOf(Constants.LOCALE_FILENAME_TOKEN) === -1) + ) { + compilation.errors.push( + new Error( + 'The configuration.output.chunkFilename property must be provided and must include ' + + `the ${Constants.LOCALE_FILENAME_TOKEN} placeholder` + ) + ); - for (const chunk of chunks) { - // See if the chunk contains any localized modules or loads any localized chunks - const localizedChunk: boolean = this._chunkHasLocalizedModules(chunk); + return; + } - // Change the chunk's name to include either the locale name or the locale name for chunks without strings - const replacementValue: string = localizedChunk - ? Constants.LOCALE_NAME_PLACEHOLDER - : this._noStringsLocaleName; - if (chunk.hasRuntime()) { - chunk.filenameTemplate = (compilation.options.output!.filename as string).replace( - Constants.LOCALE_FILENAME_TOKEN_REGEX, - replacementValue - ); - } else { - chunk.filenameTemplate = compilation.options.output!.chunkFilename!.replace( - Constants.LOCALE_FILENAME_TOKEN_REGEX, - replacementValue - ); + for (const chunk of chunks) { + // See if the chunk contains any localized modules or loads any localized chunks + const localizedChunk: boolean = this._chunkHasLocalizedModules(chunk); + + // Change the chunk's name to include either the locale name or the locale name for chunks without strings + const replacementValue: string = localizedChunk + ? Constants.LOCALE_NAME_PLACEHOLDER + : this._noStringsLocaleName; + if (chunk.hasRuntime()) { + chunk.filenameTemplate = (compilation.options.output!.filename as string).replace( + Constants.LOCALE_FILENAME_TOKEN_REGEX, + replacementValue + ); + } else { + chunk.filenameTemplate = compilation.options.output!.chunkFilename!.replace( + Constants.LOCALE_FILENAME_TOKEN_REGEX, + replacementValue + ); + } } } - } - ); - }); + ); + } + ); compiler.hooks.emit.tap(PLUGIN_NAME, (compilation: Webpack.compilation.Compilation) => { const localizationStats: ILocalizationStats = { diff --git a/webpack/localization-plugin/src/loaders/LoaderFactory.ts b/webpack/localization-plugin/src/loaders/LoaderFactory.ts index 2506df79a6f..a2f26496dec 100644 --- a/webpack/localization-plugin/src/loaders/LoaderFactory.ts +++ b/webpack/localization-plugin/src/loaders/LoaderFactory.ts @@ -16,8 +16,12 @@ export interface ILoaderResult { export function loaderFactory( innerLoader: (locFilePath: string, content: string, options: TOptions) => ILoaderResult ): loader.Loader { - return function (this: loader.LoaderContext, content: string): string { + return function (this: loader.LoaderContext, content: string | Buffer): string { const options: TOptions = loaderUtils.getOptions(this) as TOptions; + if (typeof content !== 'string') { + content = content.toString(); + } + const resultObject: ILoaderResult = innerLoader.call(this, this.resourcePath, content, options); return JSON.stringify(resultObject); }; diff --git a/webpack/localization-plugin/src/utilities/EntityMarker.ts b/webpack/localization-plugin/src/utilities/EntityMarker.ts index 31855580ba9..b8ff07e4508 100644 --- a/webpack/localization-plugin/src/utilities/EntityMarker.ts +++ b/webpack/localization-plugin/src/utilities/EntityMarker.ts @@ -3,15 +3,19 @@ const LABEL: unique symbol = Symbol('loc-plugin-marked'); +export interface IMarkable { + [LABEL]: boolean; +} + /** * Use the functions on this class to mark webpack entities that contain localized resources. */ export class EntityMarker { public static markEntity(module: TModule, value: boolean): void { - module[LABEL] = value; + ((module as unknown) as IMarkable)[LABEL] = value; } public static getMark(module: TModule): boolean | undefined { - return module[LABEL]; + return ((module as unknown) as IMarkable)[LABEL]; } } From 2ba527a117c8a7092b4d9ca1f2ae556fa116c678 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Mon, 28 Sep 2020 12:20:06 -0700 Subject: [PATCH 12/36] Rush change --- .../ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../rush/ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../rundown/ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ .../terminal/ianc-strict-rigs_2020-09-28-19-19.json | 11 +++++++++++ 11 files changed, 121 insertions(+) create mode 100644 common/changes/@microsoft/api-documenter/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@microsoft/load-themed-styles/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@microsoft/loader-load-themed-styles/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@microsoft/rush/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@rushstack/heft-node-rig/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@rushstack/heft-web-rig/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@rushstack/localization-plugin/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@rushstack/module-minifier-plugin/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@rushstack/rundown/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@rushstack/set-webpack-public-path-plugin/ianc-strict-rigs_2020-09-28-19-19.json create mode 100644 common/changes/@rushstack/terminal/ianc-strict-rigs_2020-09-28-19-19.json diff --git a/common/changes/@microsoft/api-documenter/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@microsoft/api-documenter/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..771f7e84c78 --- /dev/null +++ b/common/changes/@microsoft/api-documenter/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@microsoft/api-documenter" + } + ], + "packageName": "@microsoft/api-documenter", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/load-themed-styles/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@microsoft/load-themed-styles/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..92655aea088 --- /dev/null +++ b/common/changes/@microsoft/load-themed-styles/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@microsoft/load-themed-styles" + } + ], + "packageName": "@microsoft/load-themed-styles", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/loader-load-themed-styles/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@microsoft/loader-load-themed-styles/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..99a0421e842 --- /dev/null +++ b/common/changes/@microsoft/loader-load-themed-styles/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@microsoft/loader-load-themed-styles" + } + ], + "packageName": "@microsoft/loader-load-themed-styles", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@microsoft/rush/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..efcd84c45fb --- /dev/null +++ b/common/changes/@microsoft/rush/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@microsoft/rush" + } + ], + "packageName": "@microsoft/rush", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-node-rig/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@rushstack/heft-node-rig/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..a22c0447499 --- /dev/null +++ b/common/changes/@rushstack/heft-node-rig/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/heft-node-rig" + } + ], + "packageName": "@rushstack/heft-node-rig", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-web-rig/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@rushstack/heft-web-rig/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..557f0364f04 --- /dev/null +++ b/common/changes/@rushstack/heft-web-rig/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/heft-web-rig" + } + ], + "packageName": "@rushstack/heft-web-rig", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/localization-plugin/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@rushstack/localization-plugin/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..fdeb832ec7f --- /dev/null +++ b/common/changes/@rushstack/localization-plugin/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/localization-plugin" + } + ], + "packageName": "@rushstack/localization-plugin", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/module-minifier-plugin/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@rushstack/module-minifier-plugin/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..354d7032e1e --- /dev/null +++ b/common/changes/@rushstack/module-minifier-plugin/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/module-minifier-plugin" + } + ], + "packageName": "@rushstack/module-minifier-plugin", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rundown/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@rushstack/rundown/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..96f1931da4f --- /dev/null +++ b/common/changes/@rushstack/rundown/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/rundown" + } + ], + "packageName": "@rushstack/rundown", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/set-webpack-public-path-plugin/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@rushstack/set-webpack-public-path-plugin/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..d68748afb18 --- /dev/null +++ b/common/changes/@rushstack/set-webpack-public-path-plugin/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/set-webpack-public-path-plugin" + } + ], + "packageName": "@rushstack/set-webpack-public-path-plugin", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/terminal/ianc-strict-rigs_2020-09-28-19-19.json b/common/changes/@rushstack/terminal/ianc-strict-rigs_2020-09-28-19-19.json new file mode 100644 index 00000000000..13894830365 --- /dev/null +++ b/common/changes/@rushstack/terminal/ianc-strict-rigs_2020-09-28-19-19.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/terminal" + } + ], + "packageName": "@rushstack/terminal", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file From 472ebe06ac5d1d595621ee455e34cc32c5245479 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 14:43:01 -0700 Subject: [PATCH 13/36] Avoid passing outputFolder as function parameter --- apps/api-documenter/src/cli/GenerateAction.ts | 8 +- apps/api-documenter/src/cli/MarkdownAction.ts | 8 +- .../src/documenters/MarkdownDocumenter.ts | 80 ++++++++++--------- 3 files changed, 54 insertions(+), 42 deletions(-) diff --git a/apps/api-documenter/src/cli/GenerateAction.ts b/apps/api-documenter/src/cli/GenerateAction.ts index f0eb29063cd..988eb2759d5 100644 --- a/apps/api-documenter/src/cli/GenerateAction.ts +++ b/apps/api-documenter/src/cli/GenerateAction.ts @@ -44,8 +44,12 @@ export class GenerateAction extends BaseAction { const { apiModel, outputFolder } = this.buildApiModel(); if (documenterConfig.configFile.outputTarget === 'markdown') { - const markdownDocumenter: MarkdownDocumenter = new MarkdownDocumenter(apiModel, documenterConfig); - markdownDocumenter.generateFiles(outputFolder); + const markdownDocumenter: MarkdownDocumenter = new MarkdownDocumenter({ + apiModel, + documenterConfig, + outputFolder + }); + markdownDocumenter.generateFiles(); } else { const yamlDocumenter: ExperimentalYamlDocumenter = new ExperimentalYamlDocumenter( apiModel, diff --git a/apps/api-documenter/src/cli/MarkdownAction.ts b/apps/api-documenter/src/cli/MarkdownAction.ts index c9101654379..db3291025c6 100644 --- a/apps/api-documenter/src/cli/MarkdownAction.ts +++ b/apps/api-documenter/src/cli/MarkdownAction.ts @@ -20,8 +20,12 @@ export class MarkdownAction extends BaseAction { // override const { apiModel, outputFolder } = this.buildApiModel(); - const markdownDocumenter: MarkdownDocumenter = new MarkdownDocumenter(apiModel, undefined); - markdownDocumenter.generateFiles(outputFolder); + const markdownDocumenter: MarkdownDocumenter = new MarkdownDocumenter({ + apiModel, + documenterConfig: undefined, + outputFolder + }); + markdownDocumenter.generateFiles(); return Promise.resolve(); } } diff --git a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts index d37685ee827..410c55af306 100644 --- a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts +++ b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts @@ -57,6 +57,12 @@ import { import { DocumenterConfig } from './DocumenterConfig'; import { MarkdownDocumenterAccessor } from '../plugin/MarkdownDocumenterAccessor'; +export interface IMarkdownDocumenterOptions { + apiModel: ApiModel; + documenterConfig: DocumenterConfig | undefined; + outputFolder: string; +} + /** * Renders API documentation in the Markdown file format. * For more info: https://en.wikipedia.org/wiki/Markdown @@ -66,23 +72,25 @@ export class MarkdownDocumenter { private readonly _documenterConfig: DocumenterConfig | undefined; private readonly _tsdocConfiguration: TSDocConfiguration; private readonly _markdownEmitter: CustomMarkdownEmitter; + private readonly _outputFolder: string; private readonly _pluginLoader: PluginLoader; - public constructor(apiModel: ApiModel, documenterConfig: DocumenterConfig | undefined) { - this._apiModel = apiModel; - this._documenterConfig = documenterConfig; + public constructor(options: IMarkdownDocumenterOptions) { + this._apiModel = options.apiModel; + this._documenterConfig = options.documenterConfig; + this._outputFolder = options.outputFolder; this._tsdocConfiguration = CustomDocNodes.configuration; this._markdownEmitter = new CustomMarkdownEmitter(this._apiModel); this._pluginLoader = new PluginLoader(); } - public generateFiles(outputFolder: string): void { + public generateFiles(): void { if (this._documenterConfig) { this._pluginLoader.load(this._documenterConfig, () => { return new MarkdownDocumenterFeatureContext({ apiModel: this._apiModel, - outputFolder: outputFolder, + outputFolder: this._outputFolder, documenter: new MarkdownDocumenterAccessor({ getLinkForApiItem: (apiItem: ApiItem) => { return this._getLinkFilenameForApiItem(apiItem); @@ -93,16 +101,16 @@ export class MarkdownDocumenter { } console.log(); - this._deleteOldOutputFiles(outputFolder); + this._deleteOldOutputFiles(); - this._writeApiItemPage(outputFolder, this._apiModel); + this._writeApiItemPage(this._apiModel); if (this._pluginLoader.markdownDocumenterFeature) { this._pluginLoader.markdownDocumenterFeature.onFinished({}); } } - private _writeApiItemPage(outputFolder: string, apiItem: ApiItem): void { + private _writeApiItemPage(apiItem: ApiItem): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const output: DocSection = new DocSection({ configuration: this._tsdocConfiguration }); @@ -218,13 +226,13 @@ export class MarkdownDocumenter { switch (apiItem.kind) { case ApiItemKind.Class: - this._writeClassTables(outputFolder, output, apiItem as ApiClass); + this._writeClassTables(output, apiItem as ApiClass); break; case ApiItemKind.Enum: this._writeEnumTables(output, apiItem as ApiEnum); break; case ApiItemKind.Interface: - this._writeInterfaceTables(outputFolder, output, apiItem as ApiInterface); + this._writeInterfaceTables(output, apiItem as ApiInterface); break; case ApiItemKind.Constructor: case ApiItemKind.ConstructSignature: @@ -235,13 +243,13 @@ export class MarkdownDocumenter { this._writeThrowsSection(output, apiItem); break; case ApiItemKind.Namespace: - this._writePackageOrNamespaceTables(outputFolder, output, apiItem as ApiNamespace); + this._writePackageOrNamespaceTables(output, apiItem as ApiNamespace); break; case ApiItemKind.Model: - this._writeModelTable(outputFolder, output, apiItem as ApiModel); + this._writeModelTable(output, apiItem as ApiModel); break; case ApiItemKind.Package: - this._writePackageOrNamespaceTables(outputFolder, output, apiItem as ApiPackage); + this._writePackageOrNamespaceTables(output, apiItem as ApiPackage); break; case ApiItemKind.Property: case ApiItemKind.PropertySignature: @@ -258,7 +266,7 @@ export class MarkdownDocumenter { this._writeRemarksSection(output, apiItem); } - const filename: string = path.join(outputFolder, this._getFilenameForApiItem(apiItem)); + const filename: string = path.join(this._outputFolder, this._getFilenameForApiItem(apiItem)); const stringBuilder: StringBuilder = new StringBuilder(); stringBuilder.append( @@ -396,7 +404,7 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: MODEL */ - private _writeModelTable(outputFolder: string, output: DocSection, apiModel: ApiModel): void { + private _writeModelTable(output: DocSection, apiModel: ApiModel): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const packagesTable: DocTable = new DocTable({ @@ -413,7 +421,7 @@ export class MarkdownDocumenter { switch (apiMember.kind) { case ApiItemKind.Package: packagesTable.addRow(row); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; } } @@ -427,11 +435,7 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: PACKAGE or NAMESPACE */ - private _writePackageOrNamespaceTables( - outputFolder: string, - output: DocSection, - apiContainer: ApiPackage | ApiNamespace - ): void { + private _writePackageOrNamespaceTables(output: DocSection, apiContainer: ApiPackage | ApiNamespace): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const classesTable: DocTable = new DocTable({ @@ -483,37 +487,37 @@ export class MarkdownDocumenter { switch (apiMember.kind) { case ApiItemKind.Class: classesTable.addRow(row); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; case ApiItemKind.Enum: enumerationsTable.addRow(row); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; case ApiItemKind.Interface: interfacesTable.addRow(row); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; case ApiItemKind.Namespace: namespacesTable.addRow(row); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; case ApiItemKind.Function: functionsTable.addRow(row); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; case ApiItemKind.TypeAlias: typeAliasesTable.addRow(row); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; case ApiItemKind.Variable: variablesTable.addRow(row); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; } } @@ -556,7 +560,7 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: CLASS */ - private _writeClassTables(outputFolder: string, output: DocSection, apiClass: ApiClass): void { + private _writeClassTables(output: DocSection, apiClass: ApiClass): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const eventsTable: DocTable = new DocTable({ @@ -590,7 +594,7 @@ export class MarkdownDocumenter { ]) ); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; } case ApiItemKind.Method: { @@ -602,7 +606,7 @@ export class MarkdownDocumenter { ]) ); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; } case ApiItemKind.Property: { @@ -626,7 +630,7 @@ export class MarkdownDocumenter { ); } - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; } } @@ -695,7 +699,7 @@ export class MarkdownDocumenter { /** * GENERATE PAGE: INTERFACE */ - private _writeInterfaceTables(outputFolder: string, output: DocSection, apiClass: ApiInterface): void { + private _writeInterfaceTables(output: DocSection, apiClass: ApiInterface): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; const eventsTable: DocTable = new DocTable({ @@ -724,7 +728,7 @@ export class MarkdownDocumenter { ]) ); - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; } case ApiItemKind.PropertySignature: { @@ -746,7 +750,7 @@ export class MarkdownDocumenter { ); } - this._writeApiItemPage(outputFolder, apiMember); + this._writeApiItemPage(apiMember); break; } } @@ -1049,8 +1053,8 @@ export class MarkdownDocumenter { return './' + this._getFilenameForApiItem(apiItem); } - private _deleteOldOutputFiles(outputFolder: string): void { - console.log('Deleting old output from ' + outputFolder); - FileSystem.ensureEmptyFolder(outputFolder); + private _deleteOldOutputFiles(): void { + console.log('Deleting old output from ' + this._outputFolder); + FileSystem.ensureEmptyFolder(this._outputFolder); } } From de4c7c914b9a2422f6dfe4c03da637f5cf999f92 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 15:03:13 -0700 Subject: [PATCH 14/36] Don't assume that require() passes only one argument --- apps/rundown/src/launcher.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/rundown/src/launcher.ts b/apps/rundown/src/launcher.ts index 9be47bd52a9..6a4910442e7 100644 --- a/apps/rundown/src/launcher.ts +++ b/apps/rundown/src/launcher.ts @@ -62,7 +62,9 @@ class Launcher { // variable here. const callingModuleInfo: NodeModule = this; - const importedModule: unknown = realRequire.apply(callingModuleInfo, [moduleName]); + // Paranoidly use "arguments" in case some implementor passes additional undocumented arguments + // @typescript-eslint/no-explicit-any + const importedModule: unknown = (realRequire as any).apply(callingModuleInfo, arguments); if (!importedModules.has(importedModule)) { importedModules.add(importedModule); From 77761ac1434eff0f9a509c42754a75c3b736cb07 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 16:02:11 -0700 Subject: [PATCH 15/36] Tune up PluginLoader.ts --- apps/api-documenter/src/plugin/PluginLoader.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/api-documenter/src/plugin/PluginLoader.ts b/apps/api-documenter/src/plugin/PluginLoader.ts index efd583b4b9f..ac92d10e8c6 100644 --- a/apps/api-documenter/src/plugin/PluginLoader.ts +++ b/apps/api-documenter/src/plugin/PluginLoader.ts @@ -31,22 +31,22 @@ export class PluginLoader { // Load the package const entryPoint: - | { apiDocumenterPluginManifest: IApiDocumenterPluginManifest } + | { apiDocumenterPluginManifest?: IApiDocumenterPluginManifest } | undefined = require(resolvedEntryPointPath); if (!entryPoint) { throw new Error('Invalid entry point'); } - const manifest: IApiDocumenterPluginManifest = entryPoint.apiDocumenterPluginManifest; - - if (!manifest) { + if (!entryPoint.apiDocumenterPluginManifest) { throw new Error( `The package is not an API documenter plugin;` + ` the "apiDocumenterPluginManifest" export was not found` ); } + const manifest: IApiDocumenterPluginManifest = entryPoint.apiDocumenterPluginManifest; + if (manifest.manifestVersion !== 1000) { throw new Error( `The plugin is not compatible with this version of API Documenter;` + From 549147d41f2597d8153ceebb0b94d85040a0c1c3 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 16:03:49 -0700 Subject: [PATCH 16/36] Fix up types for Changelog.ts --- apps/rush-lib/src/api/Changelog.ts | 22 ++++++++++-- apps/rush-lib/src/logic/ChangelogGenerator.ts | 36 +++++++------------ 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/apps/rush-lib/src/api/Changelog.ts b/apps/rush-lib/src/api/Changelog.ts index f566549cd34..7cad096e95e 100644 --- a/apps/rush-lib/src/api/Changelog.ts +++ b/apps/rush-lib/src/api/Changelog.ts @@ -17,6 +17,24 @@ export interface IChangelog { entries: IChangeLogEntry[]; } +/** + * Interface representing a single published entry in the changelog. + */ +export interface IChangeLogEntryComments { + /** Describes changes which cause a patch-level SemVer bump */ + patch?: IChangeLogComment[]; + /** Describes changes which cause a minor-level SemVer bump */ + minor?: IChangeLogComment[]; + /** Describes changes which cause a major-level SemVer bump */ + major?: IChangeLogComment[]; + /** Describes changes to the package's dependencies */ + dependency?: IChangeLogComment[]; + /** Describe changes that do not have version information */ + none?: IChangeLogComment[]; + /** Describe changes that do not have version information */ + hotfix?: IChangeLogComment[]; +} + /** * Interface representing a single published entry in the changelog. */ @@ -39,9 +57,7 @@ export interface IChangeLogEntry { /** * Comments for the entry, where key represents the ChangeType string (Example: major) */ - comments: { - [changeTypeName: string]: IChangeLogComment[]; - }; + comments: IChangeLogEntryComments; } /** diff --git a/apps/rush-lib/src/logic/ChangelogGenerator.ts b/apps/rush-lib/src/logic/ChangelogGenerator.ts index 29c56baa9b8..d18bee01712 100644 --- a/apps/rush-lib/src/logic/ChangelogGenerator.ts +++ b/apps/rush-lib/src/logic/ChangelogGenerator.ts @@ -8,7 +8,7 @@ import { FileSystem, JsonFile } from '@rushstack/node-core-library'; import { PublishUtilities, IChangeInfoHash } from './PublishUtilities'; import { IChangeInfo, ChangeType } from '../api/ChangeManagement'; -import { IChangelog, IChangeLogEntry, IChangeLogComment } from '../api/Changelog'; +import { IChangelog, IChangeLogEntry, IChangeLogComment, IChangeLogEntryComments } from '../api/Changelog'; import { RushConfigurationProject } from '../api/RushConfigurationProject'; import { RushConfiguration } from '../api/RushConfiguration'; @@ -110,9 +110,12 @@ export class ChangelogGenerator { change.changes!.forEach((individualChange) => { if (individualChange.comment) { // Initialize the comments array only as necessary. - const changeTypeString: string = ChangeType[individualChange.changeType!]; - const comments: IChangeLogComment[] = (changelogEntry.comments[changeTypeString] = - changelogEntry.comments[changeTypeString] || []); + const changeTypeString: keyof IChangeLogEntryComments = ChangeType[ + individualChange.changeType! + ] as keyof IChangeLogEntryComments; + + changelogEntry.comments[changeTypeString] = changelogEntry.comments[changeTypeString] || []; + const comments: IChangeLogComment[] = changelogEntry.comments[changeTypeString]!; const changeLogComment: IChangeLogComment = { comment: individualChange.comment @@ -205,34 +208,19 @@ export class ChangelogGenerator { let comments: string = ''; - comments += ChangelogGenerator._getChangeComments( - 'Breaking changes', - entry.comments[ChangeType[ChangeType.major]] - ); + comments += ChangelogGenerator._getChangeComments('Breaking changes', entry.comments.major); - comments += ChangelogGenerator._getChangeComments( - 'Minor changes', - entry.comments[ChangeType[ChangeType.minor]] - ); + comments += ChangelogGenerator._getChangeComments('Minor changes', entry.comments.minor); - comments += ChangelogGenerator._getChangeComments( - 'Patches', - entry.comments[ChangeType[ChangeType.patch]] - ); + comments += ChangelogGenerator._getChangeComments('Patches', entry.comments.patch); if (isLockstepped) { // In lockstepped projects, all changes are of type ChangeType.none. - comments += ChangelogGenerator._getChangeComments( - 'Updates', - entry.comments[ChangeType[ChangeType.none]] - ); + comments += ChangelogGenerator._getChangeComments('Updates', entry.comments.none); } if (rushConfiguration.hotfixChangeEnabled) { - comments += ChangelogGenerator._getChangeComments( - 'Hotfixes', - entry.comments[ChangeType[ChangeType.hotfix]] - ); + comments += ChangelogGenerator._getChangeComments('Hotfixes', entry.comments.hotfix); } if (!comments) { From 6a62ac5868e5ab1f67aacc027bc1b79afca624cf Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 18:52:51 -0700 Subject: [PATCH 17/36] Add test case for typeOf bug --- .../config/build-config.json | 1 + .../src/typeOf3/index.ts | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 build-tests/api-extractor-scenarios/src/typeOf3/index.ts diff --git a/build-tests/api-extractor-scenarios/config/build-config.json b/build-tests/api-extractor-scenarios/config/build-config.json index ee4bc6e2718..80ec5180ec8 100644 --- a/build-tests/api-extractor-scenarios/config/build-config.json +++ b/build-tests/api-extractor-scenarios/config/build-config.json @@ -31,6 +31,7 @@ "preapproved", "typeOf", "typeOf2", + "typeOf3", "typeParameters" ] } diff --git a/build-tests/api-extractor-scenarios/src/typeOf3/index.ts b/build-tests/api-extractor-scenarios/src/typeOf3/index.ts new file mode 100644 index 00000000000..7a1063e7349 --- /dev/null +++ b/build-tests/api-extractor-scenarios/src/typeOf3/index.ts @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +/** + * A function that references its own parameter type. + */ +export function f1(x: number): typeof x { + return x; +} + +/** + * A function that indirectly references its own parameter type. + */ +export function f2(x: number): keyof typeof x { + return 'valueOf'; +} + +/** + * A function that references its own type. + */ +export function f3(): typeof f3 | undefined { + return undefined; +} From 04e50597ab1eb3023f072367a1425be52eae5a05 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 18:53:00 -0700 Subject: [PATCH 18/36] Fix typeOf bug --- .../src/analyzer/ExportAnalyzer.ts | 11 ++ .../typeOf3/api-extractor-scenarios.api.json | 153 ++++++++++++++++++ .../typeOf3/api-extractor-scenarios.api.md | 19 +++ .../etc/test-outputs/typeOf3/rollup.d.ts | 17 ++ .../src/typeOf3/index.ts | 3 + 5 files changed, 203 insertions(+) create mode 100644 build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.json create mode 100644 build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.md create mode 100644 build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/rollup.d.ts diff --git a/apps/api-extractor/src/analyzer/ExportAnalyzer.ts b/apps/api-extractor/src/analyzer/ExportAnalyzer.ts index 7ac791ea39a..6400c1bc470 100644 --- a/apps/api-extractor/src/analyzer/ExportAnalyzer.ts +++ b/apps/api-extractor/src/analyzer/ExportAnalyzer.ts @@ -348,6 +348,17 @@ export class ExportAnalyzer { symbol: ts.Symbol, referringModuleIsExternal: boolean ): AstEntity | undefined { + // eslint-disable-next-line no-bitwise + if ((symbol.flags & ts.SymbolFlags.FunctionScopedVariable) !== 0) { + // If a symbol refers back to part of its own definition, don't follow that rabbit hole + // Example: + // + // function f(x: number): typeof x { + // return 123; + // } + return undefined; + } + let current: ts.Symbol = symbol; if (referringModuleIsExternal) { 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 new file mode 100644 index 00000000000..19f566fe69e --- /dev/null +++ b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.json @@ -0,0 +1,153 @@ +{ + "metadata": { + "toolPackage": "@microsoft/api-extractor", + "toolVersion": "[test mode]", + "schemaVersion": 1003, + "oldestForwardsCompatibleVersion": 1001 + }, + "kind": "Package", + "canonicalReference": "api-extractor-scenarios!", + "docComment": "", + "name": "api-extractor-scenarios", + "members": [ + { + "kind": "EntryPoint", + "canonicalReference": "api-extractor-scenarios!", + "name": "", + "members": [ + { + "kind": "Function", + "canonicalReference": "api-extractor-scenarios!f1:function(1)", + "docComment": "/**\n * A function that references its own parameter type.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare function f1(x: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "typeof " + }, + { + "kind": "Reference", + "text": "x", + "canonicalReference": "api-extractor-scenarios!~x:var" + }, + { + "kind": "Content", + "text": ";" + } + ], + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 5 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + } + ], + "name": "f1" + }, + { + "kind": "Function", + "canonicalReference": "api-extractor-scenarios!f2:function(1)", + "docComment": "/**\n * A function that indirectly references its own parameter type.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare function f2(x: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "keyof typeof " + }, + { + "kind": "Reference", + "text": "x", + "canonicalReference": "api-extractor-scenarios!~x:var" + }, + { + "kind": "Content", + "text": ";" + } + ], + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 5 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + } + ], + "name": "f2" + }, + { + "kind": "Function", + "canonicalReference": "api-extractor-scenarios!f3:function(1)", + "docComment": "/**\n * A function that references its own type.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare function f3(): " + }, + { + "kind": "Content", + "text": "typeof " + }, + { + "kind": "Reference", + "text": "f3", + "canonicalReference": "api-extractor-scenarios!f3:function" + }, + { + "kind": "Content", + "text": " | undefined" + }, + { + "kind": "Content", + "text": ";" + } + ], + "returnTypeTokenRange": { + "startIndex": 1, + "endIndex": 4 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [], + "name": "f3" + } + ] + } + ] +} diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.md new file mode 100644 index 00000000000..eb5a7b06549 --- /dev/null +++ b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/api-extractor-scenarios.api.md @@ -0,0 +1,19 @@ +## API Report File for "api-extractor-scenarios" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public +export function f1(x: number): typeof x; + +// @public +export function f2(x: number): keyof typeof x; + +// @public +export function f3(): typeof f3 | undefined; + + +// (No @packageDocumentation comment for this package) + +``` diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/rollup.d.ts new file mode 100644 index 00000000000..b6babbe2c89 --- /dev/null +++ b/build-tests/api-extractor-scenarios/etc/test-outputs/typeOf3/rollup.d.ts @@ -0,0 +1,17 @@ + +/** + * A function that references its own parameter type. + */ +export declare function f1(x: number): typeof x; + +/** + * A function that indirectly references its own parameter type. + */ +export declare function f2(x: number): keyof typeof x; + +/** + * A function that references its own type. + */ +export declare function f3(): typeof f3 | undefined; + +export { } diff --git a/build-tests/api-extractor-scenarios/src/typeOf3/index.ts b/build-tests/api-extractor-scenarios/src/typeOf3/index.ts index 7a1063e7349..5819fffecae 100644 --- a/build-tests/api-extractor-scenarios/src/typeOf3/index.ts +++ b/build-tests/api-extractor-scenarios/src/typeOf3/index.ts @@ -3,6 +3,7 @@ /** * A function that references its own parameter type. + * @public */ export function f1(x: number): typeof x { return x; @@ -10,6 +11,7 @@ export function f1(x: number): typeof x { /** * A function that indirectly references its own parameter type. + * @public */ export function f2(x: number): keyof typeof x { return 'valueOf'; @@ -17,6 +19,7 @@ export function f2(x: number): keyof typeof x { /** * A function that references its own type. + * @public */ export function f3(): typeof f3 | undefined { return undefined; From b4233dfff093cfb5dbb5c412631b9a3b22fd86dc Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 18:59:06 -0700 Subject: [PATCH 19/36] rush change --- .../octgonz-ae-typeof-fix_2020-09-29-01-58.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@microsoft/api-extractor/octgonz-ae-typeof-fix_2020-09-29-01-58.json diff --git a/common/changes/@microsoft/api-extractor/octgonz-ae-typeof-fix_2020-09-29-01-58.json b/common/changes/@microsoft/api-extractor/octgonz-ae-typeof-fix_2020-09-29-01-58.json new file mode 100644 index 00000000000..76b1ccb8b87 --- /dev/null +++ b/common/changes/@microsoft/api-extractor/octgonz-ae-typeof-fix_2020-09-29-01-58.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/api-extractor", + "comment": "Fix an InternalError reported when a declaration referred to itself using \"tyepof\"", + "type": "patch" + } + ], + "packageName": "@microsoft/api-extractor", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file From 0b5fe841bdd99587c1d2bb3a1d7e2b54caee351f Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 19:03:21 -0700 Subject: [PATCH 20/36] Add new "Enum" API for node-core-library --- libraries/node-core-library/src/Enum.ts | 154 ++++++++++++++++++ libraries/node-core-library/src/index.ts | 1 + .../node-core-library/src/test/Enum.test.ts | 78 +++++++++ 3 files changed, 233 insertions(+) create mode 100644 libraries/node-core-library/src/Enum.ts create mode 100644 libraries/node-core-library/src/test/Enum.test.ts diff --git a/libraries/node-core-library/src/Enum.ts b/libraries/node-core-library/src/Enum.ts new file mode 100644 index 00000000000..abf486bdac5 --- /dev/null +++ b/libraries/node-core-library/src/Enum.ts @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +/** + * A helper for looking up TypeScript `enum` keys/values. + * + * @remarks + * TypeScript enums implement a lookup table for mapping between their keys and values: + * + * ```ts + * enum Colors { + * Red = 1 + * } + * + * // Prints "Red" + * console.log(Colors[1]); + * + * // Prints "1" + * console.log(Colors["Red]); + * ``` + * + * However the compiler's "noImplicitAny" validation has trouble with these mappings, because + * there are so many possible types for the map elements: + * + * ```ts + * function f(s: string): Colors | undefined { + * // (TS 7015) Element implicitly has an 'any' type because + * // index expression is not of type 'number'. + * return Colors[s]; + * } + * ``` + * + * The `Enum` helper provides a more specific, strongly typed way to access members: + * + * ```ts + * function f(s: string): Colors | undefined { + * return Enum.tryGetValueByKey(Colors, s); + * } + * ``` + * + * @public + */ +export class Enum { + private constructor() {} + + /** + * Returns an enum value, given its key. Returns `undefined` if no matching key is found. + * + * @example + * + * Example usage: + * ```ts + * enum Colors { + * Red = 1 + * } + * + * // Prints "1" + * console.log(Enum.tryGetValueByKey(Colors, "Red")); + * + * // Prints "undefined" + * console.log(Enum.tryGetValueByKey(Colors, "Black")); + * ``` + */ + public static tryGetValueByKey( + enumObject: { + [key: string]: TEnumValue | string; + [key: number]: TEnumValue | string; + }, + key: string + ): TEnumValue | undefined { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return enumObject[key] as any; + } + + /** + * This API is similar to {@link Enum.tryGetValueByKey}, except that it throws an exception + * if the key is undefined. + */ + public static getValueByKey( + enumObject: { + [key: string]: TEnumValue | string; + [key: number]: TEnumValue | string; + }, + key: string + ): TEnumValue { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result: TEnumValue | undefined = enumObject[key] as any; + if (result === undefined) { + throw new Error(`The lookup key ${JSON.stringify(key)} is not defined`); + } + return result; + } + + /** + * Returns an enum string key, given its numeric value. Returns `undefined` if no matching value + * is found. + * + * @remarks + * The TypeScript compiler only creates a reverse mapping for enum members whose value is numeric. + * For example: + * + * ```ts + * enum E { + * A = 1, + * B = 'c' + * } + * + * // Prints "A" + * console.log(E[1]); + * + * // Prints "undefined" + * console.log(E["c"]); + * ``` + * + * @example + * + * Example usage: + * ```ts + * enum Colors { + * Red = 1, + * Blue = 'blue' + * } + * + * // Prints "Red" + * console.log(Enum.tryGetKeyByNumber(Colors, 1)); + * + * // Prints "undefined" + * console.log(Enum.tryGetKeyByNumber(Colors, -1)); + * ``` + */ + public static tryGetKeyByNumber( + enumObject: TEnumObject, + value: number + ): keyof typeof enumObject | undefined { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return enumObject[value] as any; + } + + /** + * This API is similar to {@link Enum.tryGetKeyByNumber}, except that it throws an exception + * if the key is undefined. + */ + public static getKeyByNumber( + enumObject: TEnumObject, + value: number + ): keyof typeof enumObject { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result: keyof typeof enumObject | undefined = enumObject[value] as any; + if (result === undefined) { + throw new Error(`The value ${value} does not exist in the mapping`); + } + return result; + } +} diff --git a/libraries/node-core-library/src/index.ts b/libraries/node-core-library/src/index.ts index f5a02c3f8fc..543bb0c9396 100644 --- a/libraries/node-core-library/src/index.ts +++ b/libraries/node-core-library/src/index.ts @@ -11,6 +11,7 @@ export { AlreadyReportedError } from './AlreadyReportedError'; export { AnsiEscape, IAnsiEscapeConvertForTestsOptions } from './Terminal/AnsiEscape'; export { Brand } from './PrimitiveTypes'; export { FileConstants, FolderConstants } from './Constants'; +export { Enum } from './Enum'; export { ExecutableStdioStreamMapping, ExecutableStdioMapping, diff --git a/libraries/node-core-library/src/test/Enum.test.ts b/libraries/node-core-library/src/test/Enum.test.ts new file mode 100644 index 00000000000..1546b6ceec3 --- /dev/null +++ b/libraries/node-core-library/src/test/Enum.test.ts @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { Enum } from '../Enum'; + +// Bidirectional map +enum NumericEnum { + Apple = 1, + Banana +} + +// Unidirectional map +enum StringEnum { + Apple = 'apple', + Banana = 'banana' +} + +enum MixedEnum { + // Bidirectional map + Apple = 1, + // Unidirectional map + Banana = 'banana' +} + +describe('Enum', () => { + test('tryGetValueByKey', () => { + // NumericEnum + const numeric1: NumericEnum | undefined = Enum.tryGetValueByKey(NumericEnum, 'Apple'); + expect(numeric1).toBe(NumericEnum.Apple); + + const numeric2: NumericEnum | undefined = Enum.tryGetValueByKey(NumericEnum, 'Coconut'); + expect(numeric2).toBeUndefined(); + + // StringEnum + const string1: StringEnum | undefined = Enum.tryGetValueByKey(StringEnum, 'Apple'); + expect(string1).toBe(StringEnum.Apple); + + const string2: StringEnum | undefined = Enum.tryGetValueByKey(StringEnum, 'Coconut'); + expect(string2).toBeUndefined(); + + // MixedEnum + const mixed1: MixedEnum | undefined = Enum.tryGetValueByKey(MixedEnum, 'Apple'); + expect(mixed1).toBe(MixedEnum.Apple); + + const mixed2: MixedEnum | undefined = Enum.tryGetValueByKey(MixedEnum, 'Banana'); + expect(mixed2).toBe(MixedEnum.Banana); + + const mixed3: MixedEnum | undefined = Enum.tryGetValueByKey(MixedEnum, 'Coconut'); + expect(mixed3).toBeUndefined(); + }); + + test('tryGetKeyByNumber', () => { + // NumericEnum + const numeric1: string | undefined = Enum.tryGetKeyByNumber(NumericEnum, NumericEnum.Apple as number); + expect(numeric1).toBe('Apple'); + + const numeric2: string | undefined = Enum.tryGetKeyByNumber(NumericEnum, -1); + expect(numeric2).toBeUndefined(); + + // StringEnum + + // Not allowed because values must be numeric: + // const string1: string | undefined = Enum.tryGetKeyByNumber(StringEnum, StringEnum.Apple); + + const string2: string | undefined = Enum.tryGetKeyByNumber(StringEnum, -1); + expect(string2).toBeUndefined(); + + // MixedEnum + const mixed1: string | undefined = Enum.tryGetKeyByNumber(MixedEnum, MixedEnum.Apple); + expect(mixed1).toBe('Apple'); + + // Not allowed because values must be numeric: + // const mixed2: string | undefined = Enum.tryGetKeyByNumber(MixedEnum, MixedEnum.Banana); + + const mixed3: string | undefined = Enum.tryGetKeyByNumber(MixedEnum, -1); + expect(mixed3).toBeUndefined(); + }); +}); From c7baffb3a1ab4f224f88cb96de840588bdaed902 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 21:47:41 -0700 Subject: [PATCH 21/36] Upgrade projects from RSC 3.5 --> RSC 3.9 --- apps/api-extractor-model/package.json | 2 +- apps/api-extractor/package.json | 2 +- .../localization-plugin-test-01/package.json | 2 +- .../localization-plugin-test-02/package.json | 2 +- .../localization-plugin-test-03/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../web-library-build-test/package.json | 2 +- core-build/gulp-core-build-mocha/package.json | 2 +- core-build/gulp-core-build-sass/package.json | 2 +- core-build/gulp-core-build-serve/package.json | 2 +- .../gulp-core-build-typescript/package.json | 2 +- .../gulp-core-build-webpack/package.json | 2 +- core-build/gulp-core-build/package.json | 2 +- core-build/node-library-build/package.json | 2 +- core-build/web-library-build/package.json | 2 +- libraries/node-core-library/package.json | 2 +- libraries/rig-package/package.json | 2 +- libraries/tree-pattern/package.json | 2 +- libraries/ts-command-line/package.json | 2 +- rush.json | 20 +++++++++---------- stack/eslint-patch/package.json | 2 +- stack/eslint-plugin-security/package.json | 2 +- stack/eslint-plugin/package.json | 2 +- stack/rush-stack-compiler-2.4/package.json | 2 +- stack/rush-stack-compiler-2.7/package.json | 2 +- stack/rush-stack-compiler-2.8/package.json | 2 +- stack/rush-stack-compiler-2.9/package.json | 2 +- 28 files changed, 37 insertions(+), 37 deletions(-) diff --git a/apps/api-extractor-model/package.json b/apps/api-extractor-model/package.json index 0fa820b5b60..be0bffb885f 100644 --- a/apps/api-extractor-model/package.json +++ b/apps/api-extractor-model/package.json @@ -18,7 +18,7 @@ "@rushstack/node-core-library": "workspace:*" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", "@types/heft-jest": "1.0.1", diff --git a/apps/api-extractor/package.json b/apps/api-extractor/package.json index 07540a99374..d7d0f6c533e 100644 --- a/apps/api-extractor/package.json +++ b/apps/api-extractor/package.json @@ -47,7 +47,7 @@ "typescript": "~3.9.5" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", "@types/heft-jest": "1.0.1", diff --git a/build-tests/localization-plugin-test-01/package.json b/build-tests/localization-plugin-test-01/package.json index 4471ab15df9..a8b23b73507 100644 --- a/build-tests/localization-plugin-test-01/package.json +++ b/build-tests/localization-plugin-test-01/package.json @@ -8,7 +8,7 @@ "serve": "node serve.js" }, "dependencies": { - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/localization-plugin": "workspace:*", "@rushstack/module-minifier-plugin": "workspace:*", "@rushstack/node-core-library": "workspace:*", diff --git a/build-tests/localization-plugin-test-02/package.json b/build-tests/localization-plugin-test-02/package.json index 2213d6e5bb9..8f7ca7f81b5 100644 --- a/build-tests/localization-plugin-test-02/package.json +++ b/build-tests/localization-plugin-test-02/package.json @@ -8,7 +8,7 @@ "serve": "node serve.js" }, "dependencies": { - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/localization-plugin": "workspace:*", "@rushstack/module-minifier-plugin": "workspace:*", "@rushstack/node-core-library": "workspace:*", diff --git a/build-tests/localization-plugin-test-03/package.json b/build-tests/localization-plugin-test-03/package.json index aa09d153bce..18643c27252 100644 --- a/build-tests/localization-plugin-test-03/package.json +++ b/build-tests/localization-plugin-test-03/package.json @@ -8,7 +8,7 @@ "serve": "node serve.js" }, "dependencies": { - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/localization-plugin": "workspace:*", "@rushstack/node-core-library": "workspace:*", "@rushstack/set-webpack-public-path-plugin": "workspace:*", diff --git a/build-tests/node-library-build-eslint-test/package.json b/build-tests/node-library-build-eslint-test/package.json index ee0c2da1123..3d68df1768f 100644 --- a/build-tests/node-library-build-eslint-test/package.json +++ b/build-tests/node-library-build-eslint-test/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "@microsoft/node-library-build": "workspace:*", - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@types/node": "10.17.13", "gulp": "~4.0.2" diff --git a/build-tests/node-library-build-tslint-test/package.json b/build-tests/node-library-build-tslint-test/package.json index ebaeebdf2fc..8757ea65629 100644 --- a/build-tests/node-library-build-tslint-test/package.json +++ b/build-tests/node-library-build-tslint-test/package.json @@ -9,7 +9,7 @@ }, "devDependencies": { "@microsoft/node-library-build": "workspace:*", - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@types/node": "10.17.13", "gulp": "~4.0.2" } diff --git a/build-tests/web-library-build-test/package.json b/build-tests/web-library-build-test/package.json index c642a755bef..a6f1c7bb4de 100644 --- a/build-tests/web-library-build-test/package.json +++ b/build-tests/web-library-build-test/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "@microsoft/load-themed-styles": "workspace:*", - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/web-library-build": "workspace:*", "@types/jest": "25.2.1", "gulp": "~4.0.2", diff --git a/core-build/gulp-core-build-mocha/package.json b/core-build/gulp-core-build-mocha/package.json index 5ed254431ed..817dc8cce50 100644 --- a/core-build/gulp-core-build-mocha/package.json +++ b/core-build/gulp-core-build-mocha/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@microsoft/node-library-build": "6.4.31", - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@types/glob": "7.1.1", "@types/gulp": "4.0.6", diff --git a/core-build/gulp-core-build-sass/package.json b/core-build/gulp-core-build-sass/package.json index 8442582c6ed..ec1707f0a58 100644 --- a/core-build/gulp-core-build-sass/package.json +++ b/core-build/gulp-core-build-sass/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@microsoft/node-library-build": "workspace:*", - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@types/autoprefixer": "9.7.2", "@types/clean-css": "4.2.1", diff --git a/core-build/gulp-core-build-serve/package.json b/core-build/gulp-core-build-serve/package.json index 1abd69c9264..4b125154a15 100644 --- a/core-build/gulp-core-build-serve/package.json +++ b/core-build/gulp-core-build-serve/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@microsoft/node-library-build": "workspace:*", - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@types/express": "4.11.0", "@types/express-serve-static-core": "4.11.0", diff --git a/core-build/gulp-core-build-typescript/package.json b/core-build/gulp-core-build-typescript/package.json index d3b4e0e5a9e..75c1396b5f6 100644 --- a/core-build/gulp-core-build-typescript/package.json +++ b/core-build/gulp-core-build-typescript/package.json @@ -25,7 +25,7 @@ "@microsoft/api-extractor": "workspace:*", "@microsoft/node-library-build": "6.4.31", "@microsoft/rush-stack-compiler-3.1": "workspace:*", - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@types/glob": "7.1.1", "@types/resolve": "1.17.1", diff --git a/core-build/gulp-core-build-webpack/package.json b/core-build/gulp-core-build-webpack/package.json index ffcf30bc32f..dff4bb041a2 100644 --- a/core-build/gulp-core-build-webpack/package.json +++ b/core-build/gulp-core-build-webpack/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@microsoft/node-library-build": "workspace:*", - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@types/orchestrator": "0.0.30", "@types/source-map": "0.5.0", diff --git a/core-build/gulp-core-build/package.json b/core-build/gulp-core-build/package.json index 6b8a68c62d0..896aecc0fcd 100644 --- a/core-build/gulp-core-build/package.json +++ b/core-build/gulp-core-build/package.json @@ -55,7 +55,7 @@ }, "devDependencies": { "@microsoft/node-library-build": "6.4.31", - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@types/glob": "7.1.1", "@types/jest": "25.2.1", diff --git a/core-build/node-library-build/package.json b/core-build/node-library-build/package.json index 10e03431d3c..74725df0416 100644 --- a/core-build/node-library-build/package.json +++ b/core-build/node-library-build/package.json @@ -21,7 +21,7 @@ "gulp": "~4.0.2" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/eslint-config": "workspace:*" } } diff --git a/core-build/web-library-build/package.json b/core-build/web-library-build/package.json index 8773624fe20..cfb578f4a25 100644 --- a/core-build/web-library-build/package.json +++ b/core-build/web-library-build/package.json @@ -28,7 +28,7 @@ }, "devDependencies": { "@microsoft/node-library-build": "workspace:*", - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/eslint-config": "workspace:*" } } diff --git a/libraries/node-core-library/package.json b/libraries/node-core-library/package.json index ce374974154..430f8bbef1f 100644 --- a/libraries/node-core-library/package.json +++ b/libraries/node-core-library/package.json @@ -23,7 +23,7 @@ "z-schema": "~3.18.3" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", "@types/fs-extra": "7.0.0", diff --git a/libraries/rig-package/package.json b/libraries/rig-package/package.json index e0e629e8b32..a5b6c21b362 100644 --- a/libraries/rig-package/package.json +++ b/libraries/rig-package/package.json @@ -17,7 +17,7 @@ "strip-json-comments": "~3.1.1" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", "@types/heft-jest": "1.0.1", diff --git a/libraries/tree-pattern/package.json b/libraries/tree-pattern/package.json index 7e51c81f804..195fd83ea06 100644 --- a/libraries/tree-pattern/package.json +++ b/libraries/tree-pattern/package.json @@ -13,7 +13,7 @@ }, "dependencies": {}, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "1.4.0", "@rushstack/heft": "0.8.0", "@types/heft-jest": "1.0.1", diff --git a/libraries/ts-command-line/package.json b/libraries/ts-command-line/package.json index 58c25bd0c76..7ec28793025 100644 --- a/libraries/ts-command-line/package.json +++ b/libraries/ts-command-line/package.json @@ -19,7 +19,7 @@ "string-argv": "~0.3.1" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", "@types/heft-jest": "1.0.1", diff --git a/rush.json b/rush.json index 47a6f76d3bc..c27e0b09a2f 100644 --- a/rush.json +++ b/rush.json @@ -432,14 +432,14 @@ "projectFolder": "apps/api-extractor", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.5", "@rushstack/heft"] + "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.9", "@rushstack/heft"] }, { "packageName": "@microsoft/api-extractor-model", "projectFolder": "apps/api-extractor-model", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.5", "@rushstack/heft"] + "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.9", "@rushstack/heft"] }, { "packageName": "@rushstack/heft", @@ -745,14 +745,14 @@ "projectFolder": "core-build/gulp-core-build", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/node-library-build", "@microsoft/rush-stack-compiler-3.5"] + "cyclicDependencyProjects": ["@microsoft/node-library-build", "@microsoft/rush-stack-compiler-3.9"] }, { "packageName": "@microsoft/gulp-core-build-mocha", "projectFolder": "core-build/gulp-core-build-mocha", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/node-library-build", "@microsoft/rush-stack-compiler-3.5"] + "cyclicDependencyProjects": ["@microsoft/node-library-build", "@microsoft/rush-stack-compiler-3.9"] }, { "packageName": "@microsoft/gulp-core-build-sass", @@ -771,7 +771,7 @@ "projectFolder": "core-build/gulp-core-build-typescript", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/node-library-build", "@microsoft/rush-stack-compiler-3.5"] + "cyclicDependencyProjects": ["@microsoft/node-library-build", "@microsoft/rush-stack-compiler-3.9"] }, { "packageName": "@microsoft/gulp-core-build-webpack", @@ -825,7 +825,7 @@ "projectFolder": "libraries/node-core-library", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.5", "@rushstack/heft"] + "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.9", "@rushstack/heft"] }, { "packageName": "@rushstack/package-deps-hash", @@ -838,7 +838,7 @@ "projectFolder": "libraries/rig-package", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.5", "@rushstack/heft"] + "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.9", "@rushstack/heft"] }, { "packageName": "@microsoft/rushell", @@ -864,7 +864,7 @@ "reviewCategory": "libraries", "shouldPublish": true, "cyclicDependencyProjects": [ - "@microsoft/rush-stack-compiler-3.5", + "@microsoft/rush-stack-compiler-3.9", "@rushstack/heft", "@rushstack/eslint-config" ] @@ -874,7 +874,7 @@ "projectFolder": "libraries/ts-command-line", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.5", "@rushstack/heft"] + "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.9", "@rushstack/heft"] }, { "packageName": "@rushstack/typings-generator", @@ -929,7 +929,7 @@ "projectFolder": "stack/eslint-patch", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.5", "@rushstack/heft"] + "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.9", "@rushstack/heft"] }, { "packageName": "@rushstack/eslint-plugin", diff --git a/stack/eslint-patch/package.json b/stack/eslint-patch/package.json index 940be435628..27f7546fba0 100644 --- a/stack/eslint-patch/package.json +++ b/stack/eslint-patch/package.json @@ -23,7 +23,7 @@ ], "dependencies": {}, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "0.8.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/heft": "0.8.0", "@types/node": "10.17.13" } diff --git a/stack/eslint-plugin-security/package.json b/stack/eslint-plugin-security/package.json index 149bbe1bb80..dfd7b09cc21 100644 --- a/stack/eslint-plugin-security/package.json +++ b/stack/eslint-plugin-security/package.json @@ -24,7 +24,7 @@ "eslint": "^6.0.0 || ^7.0.0" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.9": "0.4.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/heft": "0.8.0", "@types/eslint": "7.2.0", "@types/estree": "0.0.44", diff --git a/stack/eslint-plugin/package.json b/stack/eslint-plugin/package.json index 80a6d5f7c6f..3205d7f91fc 100644 --- a/stack/eslint-plugin/package.json +++ b/stack/eslint-plugin/package.json @@ -28,7 +28,7 @@ "eslint": "^6.0.0 || ^7.0.0" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.9": "0.4.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/heft": "0.8.0", "@types/eslint": "7.2.0", "@types/estree": "0.0.44", diff --git a/stack/rush-stack-compiler-2.4/package.json b/stack/rush-stack-compiler-2.4/package.json index 420ece62f01..f0150280c2b 100644 --- a/stack/rush-stack-compiler-2.4/package.json +++ b/stack/rush-stack-compiler-2.4/package.json @@ -30,7 +30,7 @@ "typescript": "~2.4.2" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-2.7/package.json b/stack/rush-stack-compiler-2.7/package.json index 0629a447513..aca05caa267 100644 --- a/stack/rush-stack-compiler-2.7/package.json +++ b/stack/rush-stack-compiler-2.7/package.json @@ -30,7 +30,7 @@ "typescript": "~2.7.2" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-2.8/package.json b/stack/rush-stack-compiler-2.8/package.json index 0a253a9f0fb..4a46b7f9045 100644 --- a/stack/rush-stack-compiler-2.8/package.json +++ b/stack/rush-stack-compiler-2.8/package.json @@ -30,7 +30,7 @@ "typescript": "~2.8.4" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-2.9/package.json b/stack/rush-stack-compiler-2.9/package.json index 9c148974e72..3a560693c05 100644 --- a/stack/rush-stack-compiler-2.9/package.json +++ b/stack/rush-stack-compiler-2.9/package.json @@ -30,7 +30,7 @@ "typescript": "~2.9.2" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.5": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", From a2edf9462c32dfb470be19b73f5659c8e6f1a810 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 21:51:19 -0700 Subject: [PATCH 22/36] Upgrade some other odd cases --- apps/heft/package.json | 2 +- heft-plugins/pre-compile-hardlink-or-copy-plugin/package.json | 2 +- libraries/heft-config-file/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/heft/package.json b/apps/heft/package.json index 6a0912c7be0..a9bf213a8c8 100644 --- a/apps/heft/package.json +++ b/apps/heft/package.json @@ -55,7 +55,7 @@ }, "devDependencies": { "@jest/types": "~25.4.0", - "@microsoft/rush-stack-compiler-3.7": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", "@types/argparse": "1.0.38", diff --git a/heft-plugins/pre-compile-hardlink-or-copy-plugin/package.json b/heft-plugins/pre-compile-hardlink-or-copy-plugin/package.json index 26f6e3e804b..d3d8a5a62e3 100644 --- a/heft-plugins/pre-compile-hardlink-or-copy-plugin/package.json +++ b/heft-plugins/pre-compile-hardlink-or-copy-plugin/package.json @@ -19,7 +19,7 @@ "@types/node": "10.17.13" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.7": "0.6.10", + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0" } diff --git a/libraries/heft-config-file/package.json b/libraries/heft-config-file/package.json index 2c12fea93cf..51bab599409 100644 --- a/libraries/heft-config-file/package.json +++ b/libraries/heft-config-file/package.json @@ -23,7 +23,7 @@ "jsonpath-plus": "~4.0.0" }, "devDependencies": { - "@microsoft/rush-stack-compiler-3.7": "workspace:*", + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", "@types/heft-jest": "1.0.1", From 217780048762e60f11e3773401f580ee2dd50aef Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 21:56:09 -0700 Subject: [PATCH 23/36] Upgrade the "typescript" dependency --- apps/api-extractor/package.json | 2 +- build-tests/api-documenter-test/package.json | 2 +- build-tests/api-extractor-lib2-test/package.json | 2 +- build-tests/api-extractor-lib3-test/package.json | 2 +- build-tests/api-extractor-scenarios/package.json | 2 +- build-tests/api-extractor-test-01/package.json | 2 +- build-tests/api-extractor-test-02/package.json | 2 +- build-tests/api-extractor-test-03/package.json | 2 +- build-tests/api-extractor-test-04/package.json | 2 +- build-tests/heft-action-plugin/package.json | 2 +- build-tests/heft-example-plugin-01/package.json | 2 +- build-tests/heft-example-plugin-02/package.json | 2 +- build-tests/heft-minimal-rig-test/package.json | 2 +- build-tests/heft-node-basic-test/package.json | 2 +- build-tests/heft-node-everything-test/package.json | 2 +- build-tests/heft-node-jest-test/package.json | 2 +- build-tests/heft-webpack-basic-test/package.json | 2 +- build-tests/heft-webpack-everything-test/package.json | 2 +- build-tests/localization-plugin-test-01/package.json | 2 +- build-tests/localization-plugin-test-02/package.json | 2 +- build-tests/localization-plugin-test-03/package.json | 2 +- build-tests/ts-command-line-test/package.json | 2 +- common/config/rush/common-versions.json | 4 ++-- core-build/gulp-core-build-typescript/package.json | 2 +- libraries/tree-pattern/package.json | 2 +- rigs/heft-node-rig/package.json | 2 +- rigs/heft-web-rig/package.json | 2 +- rush.json | 2 +- stack/eslint-config/package.json | 2 +- stack/eslint-plugin-security/package.json | 2 +- stack/eslint-plugin/package.json | 2 +- stack/rush-stack-compiler-3.9/package.json | 2 +- 32 files changed, 33 insertions(+), 33 deletions(-) diff --git a/apps/api-extractor/package.json b/apps/api-extractor/package.json index d7d0f6c533e..60b5554c3f3 100644 --- a/apps/api-extractor/package.json +++ b/apps/api-extractor/package.json @@ -44,7 +44,7 @@ "resolve": "~1.17.0", "semver": "~7.3.0", "source-map": "~0.6.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" }, "devDependencies": { "@microsoft/rush-stack-compiler-3.9": "0.4.21", diff --git a/build-tests/api-documenter-test/package.json b/build-tests/api-documenter-test/package.json index eb9612a1e0d..e8eae351b9c 100644 --- a/build-tests/api-documenter-test/package.json +++ b/build-tests/api-documenter-test/package.json @@ -14,6 +14,6 @@ "@types/jest": "25.2.1", "@types/node": "10.17.13", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/api-extractor-lib2-test/package.json b/build-tests/api-extractor-lib2-test/package.json index c70b4f61059..66aead963e5 100644 --- a/build-tests/api-extractor-lib2-test/package.json +++ b/build-tests/api-extractor-lib2-test/package.json @@ -13,6 +13,6 @@ "@types/jest": "25.2.1", "@types/node": "10.17.13", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/api-extractor-lib3-test/package.json b/build-tests/api-extractor-lib3-test/package.json index db4bd5217a6..ccad598df6a 100644 --- a/build-tests/api-extractor-lib3-test/package.json +++ b/build-tests/api-extractor-lib3-test/package.json @@ -16,6 +16,6 @@ "@types/jest": "25.2.1", "@types/node": "10.17.13", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/api-extractor-scenarios/package.json b/build-tests/api-extractor-scenarios/package.json index c11adcbf9ea..103af40b9bc 100644 --- a/build-tests/api-extractor-scenarios/package.json +++ b/build-tests/api-extractor-scenarios/package.json @@ -19,6 +19,6 @@ "api-extractor-lib3-test": "workspace:*", "colors": "~1.2.1", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/api-extractor-test-01/package.json b/build-tests/api-extractor-test-01/package.json index cdfa347786d..468e196b2a9 100644 --- a/build-tests/api-extractor-test-01/package.json +++ b/build-tests/api-extractor-test-01/package.json @@ -18,6 +18,6 @@ "@types/heft-jest": "1.0.1", "@types/node": "10.17.13", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/api-extractor-test-02/package.json b/build-tests/api-extractor-test-02/package.json index 4db1455a5cc..dc381fcb417 100644 --- a/build-tests/api-extractor-test-02/package.json +++ b/build-tests/api-extractor-test-02/package.json @@ -17,6 +17,6 @@ "@microsoft/api-extractor": "workspace:*", "@types/node": "10.17.13", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/api-extractor-test-03/package.json b/build-tests/api-extractor-test-03/package.json index 54f85e26e48..a2f6efbd707 100644 --- a/build-tests/api-extractor-test-03/package.json +++ b/build-tests/api-extractor-test-03/package.json @@ -11,6 +11,6 @@ "@types/node": "10.17.13", "api-extractor-test-02": "workspace:*", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/api-extractor-test-04/package.json b/build-tests/api-extractor-test-04/package.json index b1d040c6a77..20b1949577c 100644 --- a/build-tests/api-extractor-test-04/package.json +++ b/build-tests/api-extractor-test-04/package.json @@ -12,6 +12,6 @@ "@microsoft/api-extractor": "workspace:*", "api-extractor-lib1-test": "workspace:*", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/heft-action-plugin/package.json b/build-tests/heft-action-plugin/package.json index e29b47d8821..77c349fad8d 100644 --- a/build-tests/heft-action-plugin/package.json +++ b/build-tests/heft-action-plugin/package.json @@ -13,6 +13,6 @@ "@rushstack/heft": "workspace:*", "@types/node": "10.17.13", "eslint": "~7.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/heft-example-plugin-01/package.json b/build-tests/heft-example-plugin-01/package.json index ffc7db5a600..b17554739f9 100644 --- a/build-tests/heft-example-plugin-01/package.json +++ b/build-tests/heft-example-plugin-01/package.json @@ -18,6 +18,6 @@ "@types/node": "10.17.13", "@types/tapable": "1.0.5", "eslint": "~7.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/heft-example-plugin-02/package.json b/build-tests/heft-example-plugin-02/package.json index b605d3941b7..f2df012264b 100644 --- a/build-tests/heft-example-plugin-02/package.json +++ b/build-tests/heft-example-plugin-02/package.json @@ -23,6 +23,6 @@ "@types/node": "10.17.13", "eslint": "~7.2.0", "heft-example-plugin-01": "workspace:*", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/heft-minimal-rig-test/package.json b/build-tests/heft-minimal-rig-test/package.json index 0bf59d7d470..6870e120242 100644 --- a/build-tests/heft-minimal-rig-test/package.json +++ b/build-tests/heft-minimal-rig-test/package.json @@ -8,6 +8,6 @@ "build": "" }, "dependencies": { - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/heft-node-basic-test/package.json b/build-tests/heft-node-basic-test/package.json index 2033f0a8e75..dab4df91cbb 100644 --- a/build-tests/heft-node-basic-test/package.json +++ b/build-tests/heft-node-basic-test/package.json @@ -14,6 +14,6 @@ "@types/heft-jest": "1.0.1", "@types/node": "10.17.13", "eslint": "~7.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/heft-node-everything-test/package.json b/build-tests/heft-node-everything-test/package.json index 587f229a8c9..da7204e7690 100644 --- a/build-tests/heft-node-everything-test/package.json +++ b/build-tests/heft-node-everything-test/package.json @@ -19,6 +19,6 @@ "heft-example-plugin-02": "workspace:*", "tslint": "~5.20.1", "tslint-microsoft-contrib": "~6.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/heft-node-jest-test/package.json b/build-tests/heft-node-jest-test/package.json index 4ec5852d884..2085d4758b6 100644 --- a/build-tests/heft-node-jest-test/package.json +++ b/build-tests/heft-node-jest-test/package.json @@ -13,6 +13,6 @@ "@types/heft-jest": "1.0.1", "@types/node": "10.17.13", "eslint": "~7.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/build-tests/heft-webpack-basic-test/package.json b/build-tests/heft-webpack-basic-test/package.json index 25dc4f33e18..dada92b01b6 100644 --- a/build-tests/heft-webpack-basic-test/package.json +++ b/build-tests/heft-webpack-basic-test/package.json @@ -20,7 +20,7 @@ "react": "~16.13.1", "react-dom": "~16.13.1", "style-loader": "~1.2.1", - "typescript": "~3.9.5", + "typescript": "~3.9.7", "webpack": "~4.31.0" } } diff --git a/build-tests/heft-webpack-everything-test/package.json b/build-tests/heft-webpack-everything-test/package.json index 969dd73c7c8..d35a479c750 100644 --- a/build-tests/heft-webpack-everything-test/package.json +++ b/build-tests/heft-webpack-everything-test/package.json @@ -16,7 +16,7 @@ "file-loader": "~6.0.0", "tslint": "~5.20.1", "tslint-microsoft-contrib": "~6.2.0", - "typescript": "~3.9.5", + "typescript": "~3.9.7", "webpack": "~4.31.0" } } diff --git a/build-tests/localization-plugin-test-01/package.json b/build-tests/localization-plugin-test-01/package.json index a8b23b73507..294be790e71 100644 --- a/build-tests/localization-plugin-test-01/package.json +++ b/build-tests/localization-plugin-test-01/package.json @@ -16,7 +16,7 @@ "@types/webpack-env": "1.13.0", "html-webpack-plugin": "~3.2.0", "ts-loader": "6.0.0", - "typescript": "~3.7.2", + "typescript": "~3.9.7", "webpack": "~4.31.0", "webpack-bundle-analyzer": "~3.6.0", "webpack-cli": "~3.3.2", diff --git a/build-tests/localization-plugin-test-02/package.json b/build-tests/localization-plugin-test-02/package.json index 8f7ca7f81b5..0bdc8b8f21a 100644 --- a/build-tests/localization-plugin-test-02/package.json +++ b/build-tests/localization-plugin-test-02/package.json @@ -18,7 +18,7 @@ "html-webpack-plugin": "~3.2.0", "lodash": "~4.17.15", "ts-loader": "6.0.0", - "typescript": "~3.7.2", + "typescript": "~3.9.7", "webpack": "~4.31.0", "webpack-bundle-analyzer": "~3.6.0", "webpack-cli": "~3.3.2", diff --git a/build-tests/localization-plugin-test-03/package.json b/build-tests/localization-plugin-test-03/package.json index 18643c27252..12ad3286e61 100644 --- a/build-tests/localization-plugin-test-03/package.json +++ b/build-tests/localization-plugin-test-03/package.json @@ -15,7 +15,7 @@ "@types/webpack-env": "1.13.0", "html-webpack-plugin": "~3.2.0", "ts-loader": "6.0.0", - "typescript": "~3.7.2", + "typescript": "~3.9.7", "webpack": "~4.31.0", "webpack-bundle-analyzer": "~3.6.0", "webpack-cli": "~3.3.2", diff --git a/build-tests/ts-command-line-test/package.json b/build-tests/ts-command-line-test/package.json index 0e3ded617af..41d08f1ccc6 100644 --- a/build-tests/ts-command-line-test/package.json +++ b/build-tests/ts-command-line-test/package.json @@ -11,6 +11,6 @@ "@rushstack/ts-command-line": "workspace:*", "@types/node": "10.17.13", "fs-extra": "~7.0.1", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/common/config/rush/common-versions.json b/common/config/rush/common-versions.json index fe9a04032bf..3c8bded1131 100644 --- a/common/config/rush/common-versions.json +++ b/common/config/rush/common-versions.json @@ -28,7 +28,7 @@ // From the allowedAlternativeVersions list below, this should be the TypeScript version that's used to // build most of the projects in the repo. Preferring it avoids errors for indirect dependencies // that request it as a peer dependency. - "typescript": "~3.5.3", + "typescript": "~3.9.7", // Workaround for https://github.com/microsoft/rushstack/issues/1466 "eslint": "~7.2.0", @@ -79,7 +79,7 @@ "~3.6.4", "~3.7.2", "~3.8.3", - "~3.9.5" + "~3.9.7" ], "source-map": [ diff --git a/core-build/gulp-core-build-typescript/package.json b/core-build/gulp-core-build-typescript/package.json index 75c1396b5f6..848f3cc3f8d 100644 --- a/core-build/gulp-core-build-typescript/package.json +++ b/core-build/gulp-core-build-typescript/package.json @@ -30,6 +30,6 @@ "@types/glob": "7.1.1", "@types/resolve": "1.17.1", "gulp": "~4.0.2", - "typescript": "~3.2.4" + "typescript": "~3.9.7" } } diff --git a/libraries/tree-pattern/package.json b/libraries/tree-pattern/package.json index 195fd83ea06..244ea892147 100644 --- a/libraries/tree-pattern/package.json +++ b/libraries/tree-pattern/package.json @@ -18,6 +18,6 @@ "@rushstack/heft": "0.8.0", "@types/heft-jest": "1.0.1", "eslint": "~7.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/rigs/heft-node-rig/package.json b/rigs/heft-node-rig/package.json index 335f0835640..314d7f0b9dd 100644 --- a/rigs/heft-node-rig/package.json +++ b/rigs/heft-node-rig/package.json @@ -16,6 +16,6 @@ "dependencies": { "@microsoft/api-extractor": "workspace:*", "eslint": "~7.2.0", - "typescript": "~3.5.3" + "typescript": "~3.9.7" } } diff --git a/rigs/heft-web-rig/package.json b/rigs/heft-web-rig/package.json index 213d9822d6a..37f6a04db3e 100644 --- a/rigs/heft-web-rig/package.json +++ b/rigs/heft-web-rig/package.json @@ -16,6 +16,6 @@ "dependencies": { "@microsoft/api-extractor": "workspace:*", "eslint": "~7.2.0", - "typescript": "~3.5.3" + "typescript": "~3.9.7" } } diff --git a/rush.json b/rush.json index c27e0b09a2f..55ec9ed17c0 100644 --- a/rush.json +++ b/rush.json @@ -797,7 +797,7 @@ "packageName": "@rushstack/pre-compile-hardlink-or-copy-plugin", "projectFolder": "heft-plugins/pre-compile-hardlink-or-copy-plugin", "reviewCategory": "libraries", - "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.7", "@rushstack/heft"] + "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.9", "@rushstack/heft"] }, // "libraries" folder (alphabetical order) diff --git a/stack/eslint-config/package.json b/stack/eslint-config/package.json index 3e317756c93..f2b865ab8c7 100644 --- a/stack/eslint-config/package.json +++ b/stack/eslint-config/package.json @@ -37,6 +37,6 @@ }, "devDependencies": { "eslint": "~7.2.0", - "typescript": "~3.7.2" + "typescript": "~3.9.7" } } diff --git a/stack/eslint-plugin-security/package.json b/stack/eslint-plugin-security/package.json index dfd7b09cc21..0b42eb4cef0 100644 --- a/stack/eslint-plugin-security/package.json +++ b/stack/eslint-plugin-security/package.json @@ -34,6 +34,6 @@ "@typescript-eslint/parser": "3.4.0", "@typescript-eslint/typescript-estree": "3.4.0", "eslint": "~7.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/stack/eslint-plugin/package.json b/stack/eslint-plugin/package.json index 3205d7f91fc..21e8197b6c4 100644 --- a/stack/eslint-plugin/package.json +++ b/stack/eslint-plugin/package.json @@ -38,6 +38,6 @@ "@typescript-eslint/parser": "3.4.0", "@typescript-eslint/typescript-estree": "3.4.0", "eslint": "~7.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" } } diff --git a/stack/rush-stack-compiler-3.9/package.json b/stack/rush-stack-compiler-3.9/package.json index d5c0d954fe4..b22993b3064 100644 --- a/stack/rush-stack-compiler-3.9/package.json +++ b/stack/rush-stack-compiler-3.9/package.json @@ -27,7 +27,7 @@ "import-lazy": "~4.0.0", "tslint": "~5.20.1", "tslint-microsoft-contrib": "~6.2.0", - "typescript": "~3.9.5" + "typescript": "~3.9.7" }, "devDependencies": { "@microsoft/rush-stack-compiler-shared": "workspace:*", From f431b746e84af60fcc75a57734e2e93a5f33f377 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 21:57:17 -0700 Subject: [PATCH 24/36] rush update --- common/config/rush/pnpm-lock.yaml | 683 ++++++++--------------------- common/config/rush/repo-state.json | 4 +- 2 files changed, 186 insertions(+), 501 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index e2fced29917..bcba10bb3b2 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -49,7 +49,7 @@ importers: source-map: 0.6.1 typescript: 3.9.7 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 0.8.0 '@types/heft-jest': 1.0.1 @@ -59,7 +59,7 @@ importers: '@types/semver': 7.3.4 specifiers: '@microsoft/api-extractor-model': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@microsoft/tsdoc': 0.12.19 '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -76,19 +76,19 @@ importers: resolve: ~1.17.0 semver: ~7.3.0 source-map: ~0.6.1 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../apps/api-extractor-model: dependencies: '@microsoft/tsdoc': 0.12.19 '@rushstack/node-core-library': 'link:../../libraries/node-core-library' devDependencies: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 0.8.0 '@types/heft-jest': 1.0.1 '@types/node': 10.17.13 specifiers: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@microsoft/tsdoc': 0.12.19 '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -119,7 +119,7 @@ importers: webpack-dev-server: 3.11.0_webpack@4.31.0 devDependencies: '@jest/types': 25.4.0 - '@microsoft/rush-stack-compiler-3.7': 'link:../../stack/rush-stack-compiler-3.7' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 0.8.0 '@types/argparse': 1.0.38 @@ -135,7 +135,7 @@ importers: '@jest/reporters': ~25.4.0 '@jest/transform': ~25.4.0 '@jest/types': ~25.4.0 - '@microsoft/rush-stack-compiler-3.7': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 '@rushstack/heft-config-file': 'workspace:*' @@ -196,9 +196,6 @@ importers: '@types/heft-jest': 1.0.1 '@types/node': 10.17.13 '@types/semver': 7.3.4 - '@types/sinon': 1.16.34 - chai: 3.5.0 - sinon: 1.17.7 specifiers: '@microsoft/rush-lib': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' @@ -208,11 +205,8 @@ importers: '@types/heft-jest': 1.0.1 '@types/node': 10.17.13 '@types/semver': ~7.3.1 - '@types/sinon': 1.16.34 - chai: ~3.5.0 colors: ~1.2.1 semver: ~7.3.0 - sinon: ~1.17.3 ../../apps/rush-lib: dependencies: '@pnpm/link-bins': 5.3.13 @@ -341,7 +335,7 @@ importers: '@types/jest': 25.2.1 '@types/node': 10.17.13 fs-extra: ~7.0.1 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/api-extractor-lib1-test: devDependencies: '@microsoft/api-extractor': 'link:../../apps/api-extractor' @@ -365,7 +359,7 @@ importers: '@types/jest': 25.2.1 '@types/node': 10.17.13 fs-extra: ~7.0.1 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/api-extractor-lib3-test: dependencies: api-extractor-lib1-test: 'link:../api-extractor-lib1-test' @@ -381,7 +375,7 @@ importers: '@types/node': 10.17.13 api-extractor-lib1-test: 'workspace:*' fs-extra: ~7.0.1 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/api-extractor-scenarios: devDependencies: '@microsoft/api-extractor': 'link:../../apps/api-extractor' @@ -406,7 +400,7 @@ importers: api-extractor-lib3-test: 'workspace:*' colors: ~1.2.1 fs-extra: ~7.0.1 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/api-extractor-test-01: dependencies: '@types/jest': 25.2.1 @@ -426,7 +420,7 @@ importers: '@types/node': 10.17.13 fs-extra: ~7.0.1 long: ^4.0.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/api-extractor-test-02: dependencies: '@types/semver': 7.3.4 @@ -444,7 +438,7 @@ importers: api-extractor-test-01: 'workspace:*' fs-extra: ~7.0.1 semver: ~7.3.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/api-extractor-test-03: devDependencies: '@types/jest': 25.2.1 @@ -457,7 +451,7 @@ importers: '@types/node': 10.17.13 api-extractor-test-02: 'workspace:*' fs-extra: ~7.0.1 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/api-extractor-test-04: dependencies: '@microsoft/api-extractor': 'link:../../apps/api-extractor' @@ -468,7 +462,7 @@ importers: '@microsoft/api-extractor': 'workspace:*' api-extractor-lib1-test: 'workspace:*' fs-extra: ~7.0.1 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/heft-action-plugin: devDependencies: '@rushstack/eslint-config': 'link:../../stack/eslint-config' @@ -481,7 +475,7 @@ importers: '@rushstack/heft': 'workspace:*' '@types/node': 10.17.13 eslint: ~7.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/heft-action-plugin-test: devDependencies: '@rushstack/heft': 'link:../../apps/heft' @@ -506,7 +500,7 @@ importers: '@types/tapable': 1.0.5 eslint: ~7.2.0 tapable: 1.1.3 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/heft-example-plugin-02: devDependencies: '@rushstack/eslint-config': 'link:../../stack/eslint-config' @@ -521,12 +515,12 @@ importers: '@types/node': 10.17.13 eslint: ~7.2.0 heft-example-plugin-01: 'workspace:*' - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/heft-minimal-rig-test: dependencies: typescript: 3.9.7 specifiers: - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/heft-minimal-rig-usage-test: devDependencies: '@rushstack/heft': 'link:../../apps/heft' @@ -552,7 +546,7 @@ importers: '@types/heft-jest': 1.0.1 '@types/node': 10.17.13 eslint: ~7.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/heft-node-everything-test: devDependencies: '@microsoft/api-extractor': 'link:../../apps/api-extractor' @@ -577,7 +571,7 @@ importers: heft-example-plugin-02: 'workspace:*' tslint: ~5.20.1 tslint-microsoft-contrib: ~6.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/heft-node-jest-test: devDependencies: '@rushstack/eslint-config': 'link:../../stack/eslint-config' @@ -592,7 +586,7 @@ importers: '@types/heft-jest': 1.0.1 '@types/node': 10.17.13 eslint: ~7.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/heft-oldest-compiler-test: devDependencies: '@microsoft/rush-stack-compiler-2.9': 'link:../../stack/rush-stack-compiler-2.9' @@ -651,7 +645,7 @@ importers: react: ~16.13.1 react-dom: ~16.13.1 style-loader: ~1.2.1 - typescript: ~3.9.5 + typescript: ~3.9.7 webpack: ~4.31.0 ../../build-tests/heft-webpack-everything-test: devDependencies: @@ -674,25 +668,25 @@ importers: file-loader: ~6.0.0 tslint: ~5.20.1 tslint-microsoft-contrib: ~6.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 webpack: ~4.31.0 ../../build-tests/localization-plugin-test-01: dependencies: - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/localization-plugin': 'link:../../webpack/localization-plugin' '@rushstack/module-minifier-plugin': 'link:../../webpack/module-minifier-plugin' '@rushstack/node-core-library': 'link:../../libraries/node-core-library' '@rushstack/set-webpack-public-path-plugin': 'link:../../webpack/set-webpack-public-path-plugin' '@types/webpack-env': 1.13.0 html-webpack-plugin: 3.2.0_webpack@4.31.0 - ts-loader: 6.0.0_typescript@3.7.5 - typescript: 3.7.5 + ts-loader: 6.0.0_typescript@3.9.7 + typescript: 3.9.7 webpack: 4.31.0_webpack@4.31.0 webpack-bundle-analyzer: 3.6.1 webpack-cli: 3.3.12_webpack@4.31.0 webpack-dev-server: 3.11.0_02f5d96eff481652da7f60f5bdc33255 specifiers: - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/localization-plugin': 'workspace:*' '@rushstack/module-minifier-plugin': 'workspace:*' '@rushstack/node-core-library': 'workspace:*' @@ -700,14 +694,14 @@ importers: '@types/webpack-env': 1.13.0 html-webpack-plugin: ~3.2.0 ts-loader: 6.0.0 - typescript: ~3.7.2 + typescript: ~3.9.7 webpack: ~4.31.0 webpack-bundle-analyzer: ~3.6.0 webpack-cli: ~3.3.2 webpack-dev-server: ~3.11.0 ../../build-tests/localization-plugin-test-02: dependencies: - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/localization-plugin': 'link:../../webpack/localization-plugin' '@rushstack/module-minifier-plugin': 'link:../../webpack/module-minifier-plugin' '@rushstack/node-core-library': 'link:../../libraries/node-core-library' @@ -716,14 +710,14 @@ importers: '@types/webpack-env': 1.13.0 html-webpack-plugin: 3.2.0_webpack@4.31.0 lodash: 4.17.20 - ts-loader: 6.0.0_typescript@3.7.5 - typescript: 3.7.5 + ts-loader: 6.0.0_typescript@3.9.7 + typescript: 3.9.7 webpack: 4.31.0_webpack@4.31.0 webpack-bundle-analyzer: 3.6.1 webpack-cli: 3.3.12_webpack@4.31.0 webpack-dev-server: 3.11.0_02f5d96eff481652da7f60f5bdc33255 specifiers: - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/localization-plugin': 'workspace:*' '@rushstack/module-minifier-plugin': 'workspace:*' '@rushstack/node-core-library': 'workspace:*' @@ -733,34 +727,34 @@ importers: html-webpack-plugin: ~3.2.0 lodash: ~4.17.15 ts-loader: 6.0.0 - typescript: ~3.7.2 + typescript: ~3.9.7 webpack: ~4.31.0 webpack-bundle-analyzer: ~3.6.0 webpack-cli: ~3.3.2 webpack-dev-server: ~3.11.0 ../../build-tests/localization-plugin-test-03: dependencies: - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/localization-plugin': 'link:../../webpack/localization-plugin' '@rushstack/node-core-library': 'link:../../libraries/node-core-library' '@rushstack/set-webpack-public-path-plugin': 'link:../../webpack/set-webpack-public-path-plugin' '@types/webpack-env': 1.13.0 html-webpack-plugin: 3.2.0_webpack@4.31.0 - ts-loader: 6.0.0_typescript@3.7.5 - typescript: 3.7.5 + ts-loader: 6.0.0_typescript@3.9.7 + typescript: 3.9.7 webpack: 4.31.0_webpack@4.31.0 webpack-bundle-analyzer: 3.6.1 webpack-cli: 3.3.12_webpack@4.31.0 webpack-dev-server: 3.11.0_02f5d96eff481652da7f60f5bdc33255 specifiers: - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/localization-plugin': 'workspace:*' '@rushstack/node-core-library': 'workspace:*' '@rushstack/set-webpack-public-path-plugin': 'workspace:*' '@types/webpack-env': 1.13.0 html-webpack-plugin: ~3.2.0 ts-loader: 6.0.0 - typescript: ~3.7.2 + typescript: ~3.9.7 webpack: ~4.31.0 webpack-bundle-analyzer: ~3.6.0 webpack-cli: ~3.3.2 @@ -768,25 +762,25 @@ importers: ../../build-tests/node-library-build-eslint-test: devDependencies: '@microsoft/node-library-build': 'link:../../core-build/node-library-build' - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@types/node': 10.17.13 gulp: 4.0.2 specifiers: '@microsoft/node-library-build': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@types/node': 10.17.13 gulp: ~4.0.2 ../../build-tests/node-library-build-tslint-test: devDependencies: '@microsoft/node-library-build': 'link:../../core-build/node-library-build' - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@types/node': 10.17.13 gulp: 4.0.2 specifiers: '@microsoft/node-library-build': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@types/node': 10.17.13 gulp: ~4.0.2 ../../build-tests/rush-stack-compiler-2.4-library-test: @@ -953,11 +947,11 @@ importers: '@rushstack/ts-command-line': 'workspace:*' '@types/node': 10.17.13 fs-extra: ~7.0.1 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../build-tests/web-library-build-test: devDependencies: '@microsoft/load-themed-styles': 'link:../../libraries/load-themed-styles' - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@microsoft/web-library-build': 'link:../../core-build/web-library-build' '@types/jest': 25.2.1 gulp: 4.0.2 @@ -965,7 +959,7 @@ importers: ts-jest: 25.1.0_jest@25.4.0 specifiers: '@microsoft/load-themed-styles': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/web-library-build': 'workspace:*' '@types/jest': 25.2.1 gulp: ~4.0.2 @@ -1014,7 +1008,7 @@ importers: z-schema: 3.18.4 devDependencies: '@microsoft/node-library-build': 6.4.31 - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@types/glob': 7.1.1 '@types/z-schema': 3.16.31 @@ -1022,7 +1016,7 @@ importers: '@jest/core': ~25.4.0 '@jest/reporters': ~25.4.0 '@microsoft/node-library-build': 6.4.31 - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'workspace:*' '@rushstack/node-core-library': 'workspace:*' '@types/chalk': 0.4.31 @@ -1073,7 +1067,7 @@ importers: gulp-mocha: 6.0.0 devDependencies: '@microsoft/node-library-build': 6.4.31 - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@types/glob': 7.1.1 '@types/gulp': 4.0.6 @@ -1084,7 +1078,7 @@ importers: specifiers: '@microsoft/gulp-core-build': 'workspace:*' '@microsoft/node-library-build': 6.4.31 - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'workspace:*' '@types/glob': 7.1.1 '@types/gulp': 4.0.6 @@ -1112,7 +1106,7 @@ importers: postcss-modules: 1.5.0 devDependencies: '@microsoft/node-library-build': 'link:../node-library-build' - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@types/autoprefixer': 9.7.2 '@types/clean-css': 4.2.1 @@ -1125,7 +1119,7 @@ importers: '@microsoft/gulp-core-build': 'workspace:*' '@microsoft/load-themed-styles': 'workspace:*' '@microsoft/node-library-build': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/node-core-library': 'workspace:*' '@types/autoprefixer': 9.7.2 @@ -1157,7 +1151,7 @@ importers: sudo: 1.0.3 devDependencies: '@microsoft/node-library-build': 'link:../node-library-build' - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@types/express': 4.11.0 '@types/express-serve-static-core': 4.11.0 @@ -1170,7 +1164,7 @@ importers: specifiers: '@microsoft/gulp-core-build': 'workspace:*' '@microsoft/node-library-build': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/debug-certificate-manager': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/node-core-library': 'workspace:*' @@ -1202,18 +1196,18 @@ importers: '@microsoft/api-extractor': 'link:../../apps/api-extractor' '@microsoft/node-library-build': 6.4.31 '@microsoft/rush-stack-compiler-3.1': 'link:../../stack/rush-stack-compiler-3.1' - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@types/glob': 7.1.1 '@types/resolve': 1.17.1 gulp: 4.0.2 - typescript: 3.2.4 + typescript: 3.9.7 specifiers: '@microsoft/api-extractor': 'workspace:*' '@microsoft/gulp-core-build': 'workspace:*' '@microsoft/node-library-build': 6.4.31 '@microsoft/rush-stack-compiler-3.1': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'workspace:*' '@rushstack/node-core-library': 'workspace:*' '@types/glob': 7.1.1 @@ -1224,7 +1218,7 @@ importers: glob-escape: ~0.0.2 gulp: ~4.0.2 resolve: ~1.17.0 - typescript: ~3.2.4 + typescript: ~3.9.7 ../../core-build/gulp-core-build-webpack: dependencies: '@microsoft/gulp-core-build': 'link:../gulp-core-build' @@ -1235,7 +1229,7 @@ importers: webpack: 4.31.0_webpack@4.31.0 devDependencies: '@microsoft/node-library-build': 'link:../node-library-build' - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@types/orchestrator': 0.0.30 '@types/source-map': 0.5.0 @@ -1245,7 +1239,7 @@ importers: specifiers: '@microsoft/gulp-core-build': 'workspace:*' '@microsoft/node-library-build': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@types/gulp': 4.0.6 '@types/node': 10.17.13 @@ -1266,13 +1260,13 @@ importers: '@types/node': 10.17.13 gulp: 4.0.2 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/eslint-config': 'link:../../stack/eslint-config' specifiers: '@microsoft/gulp-core-build': 'workspace:*' '@microsoft/gulp-core-build-mocha': 'workspace:*' '@microsoft/gulp-core-build-typescript': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@types/gulp': 4.0.6 '@types/node': 10.17.13 @@ -1290,7 +1284,7 @@ importers: gulp-replace: 0.5.4 devDependencies: '@microsoft/node-library-build': 'link:../node-library-build' - '@microsoft/rush-stack-compiler-3.5': 'link:../../stack/rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/eslint-config': 'link:../../stack/eslint-config' specifiers: '@microsoft/gulp-core-build': 'workspace:*' @@ -1299,7 +1293,7 @@ importers: '@microsoft/gulp-core-build-typescript': 'workspace:*' '@microsoft/gulp-core-build-webpack': 'workspace:*' '@microsoft/node-library-build': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@types/gulp': 4.0.6 '@types/node': 10.17.13 @@ -1310,11 +1304,11 @@ importers: '@rushstack/node-core-library': 'link:../../libraries/node-core-library' '@types/node': 10.17.13 devDependencies: - '@microsoft/rush-stack-compiler-3.7': 0.6.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 0.8.0 specifiers: - '@microsoft/rush-stack-compiler-3.7': 0.6.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 '@rushstack/node-core-library': 'workspace:*' @@ -1349,13 +1343,13 @@ importers: '@rushstack/rig-package': 'link:../rig-package' jsonpath-plus: 4.0.0 devDependencies: - '@microsoft/rush-stack-compiler-3.7': 'link:../../stack/rush-stack-compiler-3.7' + '@microsoft/rush-stack-compiler-3.9': 'link:../../stack/rush-stack-compiler-3.9' '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 0.8.0 '@types/heft-jest': 1.0.1 '@types/node': 10.17.13 specifiers: - '@microsoft/rush-stack-compiler-3.7': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 '@rushstack/node-core-library': 'workspace:*' @@ -1388,7 +1382,7 @@ importers: timsort: 0.3.0 z-schema: 3.18.4 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 0.8.0 '@types/fs-extra': 7.0.0 @@ -1399,7 +1393,7 @@ importers: '@types/timsort': 0.3.0 '@types/z-schema': 3.16.31 specifiers: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 '@types/fs-extra': 7.0.0 @@ -1440,14 +1434,14 @@ importers: resolve: 1.17.0 strip-json-comments: 3.1.1 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 0.8.0 '@types/heft-jest': 1.0.1 '@types/resolve': 1.17.1 ajv: 6.12.5 specifiers: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 '@types/heft-jest': 1.0.1 @@ -1514,19 +1508,19 @@ importers: colors: ~1.2.1 ../../libraries/tree-pattern: devDependencies: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 1.4.0_eslint@7.2.0+typescript@3.9.7 '@rushstack/heft': 0.8.0 '@types/heft-jest': 1.0.1 eslint: 7.2.0 typescript: 3.9.7 specifiers: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 1.4.0 '@rushstack/heft': 0.8.0 '@types/heft-jest': 1.0.1 eslint: ~7.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../libraries/ts-command-line: dependencies: '@types/argparse': 1.0.38 @@ -1534,13 +1528,13 @@ importers: colors: 1.2.5 string-argv: 0.3.1 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'link:../../stack/eslint-config' '@rushstack/heft': 0.8.0 '@types/heft-jest': 1.0.1 '@types/node': 10.17.13 specifiers: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 '@types/argparse': 1.0.38 @@ -1626,35 +1620,35 @@ importers: dependencies: '@microsoft/api-extractor': 'link:../../apps/api-extractor' eslint: 7.2.0 - typescript: 3.5.3 + typescript: 3.9.7 specifiers: '@microsoft/api-extractor': 'workspace:*' eslint: ~7.2.0 - typescript: ~3.5.3 + typescript: ~3.9.7 ../../rigs/heft-web-rig: dependencies: '@microsoft/api-extractor': 'link:../../apps/api-extractor' eslint: 7.2.0 - typescript: 3.5.3 + typescript: 3.9.7 specifiers: '@microsoft/api-extractor': 'workspace:*' eslint: ~7.2.0 - typescript: ~3.5.3 + typescript: ~3.9.7 ../../stack/eslint-config: dependencies: '@rushstack/eslint-patch': 'link:../eslint-patch' '@rushstack/eslint-plugin': 'link:../eslint-plugin' '@rushstack/eslint-plugin-security': 'link:../eslint-plugin-security' - '@typescript-eslint/eslint-plugin': 3.4.0_43170e314695d1b0876b4d3c3574f4a4 - '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.7.5 - '@typescript-eslint/parser': 3.4.0_eslint@7.2.0+typescript@3.7.5 - '@typescript-eslint/typescript-estree': 3.4.0_typescript@3.7.5 + '@typescript-eslint/eslint-plugin': 3.4.0_def47c0014fd51b1497b94bf8e50ada2 + '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.9.7 + '@typescript-eslint/parser': 3.4.0_eslint@7.2.0+typescript@3.9.7 + '@typescript-eslint/typescript-estree': 3.4.0_typescript@3.9.7 eslint-plugin-promise: 4.2.1 eslint-plugin-react: 7.20.6_eslint@7.2.0 eslint-plugin-tsdoc: 0.2.7 devDependencies: eslint: 7.2.0 - typescript: 3.7.5 + typescript: 3.9.7 specifiers: '@rushstack/eslint-patch': 'workspace:*' '@rushstack/eslint-plugin': 'workspace:*' @@ -1667,21 +1661,21 @@ importers: eslint-plugin-promise: ~4.2.1 eslint-plugin-react: ~7.20.0 eslint-plugin-tsdoc: ~0.2.5 - typescript: ~3.7.2 + typescript: ~3.9.7 ../../stack/eslint-patch: devDependencies: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/heft': 0.8.0 '@types/node': 10.17.13 specifiers: - '@microsoft/rush-stack-compiler-3.5': 0.8.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/heft': 0.8.0 '@types/node': 10.17.13 ../../stack/eslint-plugin: dependencies: '@rushstack/tree-pattern': 'link:../../libraries/tree-pattern' devDependencies: - '@microsoft/rush-stack-compiler-3.9': 0.4.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/heft': 0.8.0 '@types/eslint': 7.2.0 '@types/estree': 0.0.44 @@ -1693,7 +1687,7 @@ importers: eslint: 7.2.0 typescript: 3.9.7 specifiers: - '@microsoft/rush-stack-compiler-3.9': 0.4.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/heft': 0.8.0 '@rushstack/tree-pattern': 'workspace:*' '@types/eslint': 7.2.0 @@ -1704,12 +1698,12 @@ importers: '@typescript-eslint/parser': 3.4.0 '@typescript-eslint/typescript-estree': 3.4.0 eslint: ~7.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../stack/eslint-plugin-security: dependencies: '@rushstack/tree-pattern': 'link:../../libraries/tree-pattern' devDependencies: - '@microsoft/rush-stack-compiler-3.9': 0.4.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/heft': 0.8.0 '@types/eslint': 7.2.0 '@types/estree': 0.0.44 @@ -1721,7 +1715,7 @@ importers: eslint: 7.2.0 typescript: 3.9.7 specifiers: - '@microsoft/rush-stack-compiler-3.9': 0.4.10 + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@rushstack/heft': 0.8.0 '@rushstack/tree-pattern': 'workspace:*' '@types/eslint': 7.2.0 @@ -1732,7 +1726,7 @@ importers: '@typescript-eslint/parser': 3.4.0 '@typescript-eslint/typescript-estree': 3.4.0 eslint: ~7.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../stack/rush-stack-compiler-2.4: dependencies: '@microsoft/api-extractor': 'link:../../apps/api-extractor' @@ -1745,13 +1739,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@2.4.2 typescript: 2.4.2 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 'link:../rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -1775,13 +1769,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@2.7.2 typescript: 2.7.2 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 'link:../rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -1805,13 +1799,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@2.8.4 typescript: 2.8.4 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 'link:../rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -1835,13 +1829,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@2.9.2 typescript: 2.9.2 devDependencies: - '@microsoft/rush-stack-compiler-3.5': 'link:../rush-stack-compiler-3.5' + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' - '@microsoft/rush-stack-compiler-3.5': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -2132,7 +2126,7 @@ importers: import-lazy: ~4.0.0 tslint: ~5.20.1 tslint-microsoft-contrib: ~6.2.0 - typescript: ~3.9.5 + typescript: ~3.9.7 ../../stack/rush-stack-compiler-shared: specifiers: {} ../../webpack/loader-load-themed-styles: @@ -2730,19 +2724,19 @@ packages: node: '>= 8.3' resolution: integrity: sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== - /@microsoft/api-extractor-model/7.8.19: + /@microsoft/api-extractor-model/7.9.7: dependencies: '@microsoft/tsdoc': 0.12.19 - '@rushstack/node-core-library': 3.30.0 + '@rushstack/node-core-library': 3.33.6 dev: true resolution: - integrity: sha512-tEEPuww0Gbyw9LuTcJ7nDCTjb+aLSAox8Xl9/iSxNTv5yHJN1QX3cqajlC3ibDHlRz7oMpQfHZX7YpAygbgIvg== - /@microsoft/api-extractor/7.9.11: + integrity: sha512-9ztrVtUYsnpUC6S+0PR72h7CGvzAX6ljdo6FOzq+jVte743Nb9TMdV97fnJO/n8XRSGUOAKsApgED0GgAek4jw== + /@microsoft/api-extractor/7.9.22: dependencies: - '@microsoft/api-extractor-model': 7.8.19 + '@microsoft/api-extractor-model': 7.9.7 '@microsoft/tsdoc': 0.12.19 - '@rushstack/node-core-library': 3.30.0 - '@rushstack/ts-command-line': 4.6.4 + '@rushstack/node-core-library': 3.33.6 + '@rushstack/ts-command-line': 4.6.10 colors: 1.2.5 lodash: 4.17.20 resolve: 1.17.0 @@ -2752,7 +2746,7 @@ packages: dev: true hasBin: true resolution: - integrity: sha512-t+LwGAuTjr+odFEl5xV3vl7qOWf84CM8BWKgb93kEnVd8uha3KfuWtDfnstxG4oC/TL6tu5+9rOwKJiNIidf2A== + integrity: sha512-SfXgds7T8Je6XemNX4WFhoynd0QbH4EaPL5Ez8WxzLCY69iv9PMs+VPwKh1+bzm2WAp0hDkK8/itP0FIOgDI+w== /@microsoft/gulp-core-build-mocha/3.8.20: dependencies: '@microsoft/gulp-core-build': 3.16.11 @@ -2831,41 +2825,11 @@ packages: dev: true resolution: integrity: sha512-2BT2gnJ+isO7d2tmhqoUA1t2g8w19ZqOd9bzYURfen18iQpZi0hLzu3E8+/isS8xE9PU++ggEaYDSz75XsgrjA== - /@microsoft/rush-stack-compiler-3.5/0.8.10: + /@microsoft/rush-stack-compiler-3.9/0.4.21: dependencies: - '@microsoft/api-extractor': 7.9.11 - '@rushstack/eslint-config': 1.3.0_eslint@7.2.0+typescript@3.5.3 - '@rushstack/node-core-library': 3.30.0 - '@types/node': 10.17.13 - eslint: 7.2.0 - import-lazy: 4.0.0 - tslint: 5.20.1_typescript@3.5.3 - tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.5.3 - typescript: 3.5.3 - dev: true - hasBin: true - resolution: - integrity: sha512-sqWxN7ceoOuGLqTjrWaMkGEv3yFBXFAWVMpgCPLnM+z+lJrNjNRhT39XpavmaR61UWVKRnk6RTlWjJMX8HuStw== - /@microsoft/rush-stack-compiler-3.7/0.6.10: - dependencies: - '@microsoft/api-extractor': 7.9.11 - '@rushstack/eslint-config': 1.3.0_eslint@7.2.0+typescript@3.7.5 - '@rushstack/node-core-library': 3.30.0 - '@types/node': 10.17.13 - eslint: 7.2.0 - import-lazy: 4.0.0 - tslint: 5.20.1_typescript@3.7.5 - tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.7.5 - typescript: 3.7.5 - dev: true - hasBin: true - resolution: - integrity: sha512-8ay0FMxLi2pqu+IXmoNYAwR1mFBbdpnDxhHUlWw9xUYowKwUvQdvF0jvhGDwPEBzrDoIsOpVYBs3lmOFRtTB7A== - /@microsoft/rush-stack-compiler-3.9/0.4.10: - dependencies: - '@microsoft/api-extractor': 7.9.11 - '@rushstack/eslint-config': 1.3.0_eslint@7.2.0+typescript@3.9.7 - '@rushstack/node-core-library': 3.30.0 + '@microsoft/api-extractor': 7.9.22 + '@rushstack/eslint-config': 2.1.1_eslint@7.2.0+typescript@3.9.7 + '@rushstack/node-core-library': 3.33.6 '@types/node': 10.17.13 eslint: 7.2.0 import-lazy: 4.0.0 @@ -2875,7 +2839,7 @@ packages: dev: true hasBin: true resolution: - integrity: sha512-Z81kDhJn6hH32eFeqXgc0t4V1nNT1PvN62UeeuRnvndEbNmv7F7+DzKG3094a57b/KHqwqEX087BPUWpfB0E5w== + integrity: sha512-Y+QUpx4GC2ot8/LIaIezLXSUpHQthD+j58R132d00sGuBprro+81hkFJkEu5asNwsvhqWKWJly8ldn3OaYrbAA== /@microsoft/teams-js/1.3.0-beta.4: dev: true resolution: @@ -2986,47 +2950,7 @@ packages: node: '>=10.13' resolution: integrity: sha512-diiSQt85CJ2mEf06NSKN/T2LNpfabVg9yDz7ysZ7J9h+SFHc/yKR+AgQYUHlNwGHFqZoO09JS755hlHHM2f+lg== - /@rushstack/eslint-config/1.3.0_eslint@7.2.0+typescript@3.5.3: - dependencies: - '@rushstack/eslint-patch': 1.0.3 - '@rushstack/eslint-plugin': 0.6.1_eslint@7.2.0 - '@typescript-eslint/eslint-plugin': 3.4.0_cda7146ea5fa41161805b85f9284f6bd - '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.5.3 - '@typescript-eslint/parser': 3.4.0_eslint@7.2.0+typescript@3.5.3 - '@typescript-eslint/typescript-estree': 3.4.0_typescript@3.5.3 - eslint: 7.2.0 - eslint-plugin-promise: 4.2.1 - eslint-plugin-react: 7.20.6_eslint@7.2.0 - eslint-plugin-security: 1.4.0 - eslint-plugin-tsdoc: 0.2.7 - typescript: 3.5.3 - dev: true - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 - typescript: '>=3.0.0' - resolution: - integrity: sha512-Bxf1x3jjDRFujp66mKMukQsZGJGmO14SxNKPEpcg2MUSbvx2BsUA2B3oRUYyiYfbhmoWpmAXbWJOFBvZpGZMCw== - /@rushstack/eslint-config/1.3.0_eslint@7.2.0+typescript@3.7.5: - dependencies: - '@rushstack/eslint-patch': 1.0.3 - '@rushstack/eslint-plugin': 0.6.1_eslint@7.2.0 - '@typescript-eslint/eslint-plugin': 3.4.0_43170e314695d1b0876b4d3c3574f4a4 - '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.7.5 - '@typescript-eslint/parser': 3.4.0_eslint@7.2.0+typescript@3.7.5 - '@typescript-eslint/typescript-estree': 3.4.0_typescript@3.7.5 - eslint: 7.2.0 - eslint-plugin-promise: 4.2.1 - eslint-plugin-react: 7.20.6_eslint@7.2.0 - eslint-plugin-security: 1.4.0 - eslint-plugin-tsdoc: 0.2.7 - typescript: 3.7.5 - dev: true - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 - typescript: '>=3.0.0' - resolution: - integrity: sha512-Bxf1x3jjDRFujp66mKMukQsZGJGmO14SxNKPEpcg2MUSbvx2BsUA2B3oRUYyiYfbhmoWpmAXbWJOFBvZpGZMCw== - /@rushstack/eslint-config/1.3.0_eslint@7.2.0+typescript@3.9.7: + /@rushstack/eslint-config/1.4.0_eslint@7.2.0+typescript@3.9.7: dependencies: '@rushstack/eslint-patch': 1.0.3 '@rushstack/eslint-plugin': 0.6.1_eslint@7.2.0 @@ -3045,11 +2969,12 @@ packages: eslint: ^6.0.0 || ^7.0.0 typescript: '>=3.0.0' resolution: - integrity: sha512-Bxf1x3jjDRFujp66mKMukQsZGJGmO14SxNKPEpcg2MUSbvx2BsUA2B3oRUYyiYfbhmoWpmAXbWJOFBvZpGZMCw== - /@rushstack/eslint-config/1.4.0_eslint@7.2.0+typescript@3.9.7: + integrity: sha512-B7KgKj2qk2snXDQZnLS8d/5Xu1B3DtNe8z1PvR75fzuAXfXIH6JPNyXU4lhR/wARUJ5ulWKaeHQudYI8tGJUOg== + /@rushstack/eslint-config/2.1.1_eslint@7.2.0+typescript@3.9.7: dependencies: '@rushstack/eslint-patch': 1.0.3 - '@rushstack/eslint-plugin': 0.6.1_eslint@7.2.0 + '@rushstack/eslint-plugin': 0.7.0_eslint@7.2.0 + '@rushstack/eslint-plugin-security': 0.1.1_eslint@7.2.0 '@typescript-eslint/eslint-plugin': 3.4.0_def47c0014fd51b1497b94bf8e50ada2 '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.9.7 '@typescript-eslint/parser': 3.4.0_eslint@7.2.0+typescript@3.9.7 @@ -3057,7 +2982,6 @@ packages: eslint: 7.2.0 eslint-plugin-promise: 4.2.1 eslint-plugin-react: 7.20.6_eslint@7.2.0 - eslint-plugin-security: 1.4.0 eslint-plugin-tsdoc: 0.2.7 typescript: 3.9.7 dev: true @@ -3065,11 +2989,20 @@ packages: eslint: ^6.0.0 || ^7.0.0 typescript: '>=3.0.0' resolution: - integrity: sha512-B7KgKj2qk2snXDQZnLS8d/5Xu1B3DtNe8z1PvR75fzuAXfXIH6JPNyXU4lhR/wARUJ5ulWKaeHQudYI8tGJUOg== + integrity: sha512-da+MYQVtr9EaKky3I1ifCFg4h64f0WYAX5867NAK+/fNqFI5bBIheXOQNyBz2qv9LLXhkKvcyM1cGvQUkpRaBw== /@rushstack/eslint-patch/1.0.3: dev: true resolution: integrity: sha512-Oq5EYosOGfqE8r2tuRMfJSeZKO+M3QozrYKs5bPuqyWB9pHhclS/Kp8boyu/pPwskE9PtPkagc+qwW+yO2b9Kw== + /@rushstack/eslint-plugin-security/0.1.1_eslint@7.2.0: + dependencies: + '@rushstack/tree-pattern': 0.1.0 + eslint: 7.2.0 + dev: true + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 + resolution: + integrity: sha512-h3XeAvFiP11XvkWTJmzaLUG+M5furqtKyhcV4Mu2UUnwYxv4qWOWIoZfdIgfCgNV6S3d6Lk307mDQy3dHSXZsQ== /@rushstack/eslint-plugin/0.6.1_eslint@7.2.0: dependencies: eslint: 7.2.0 @@ -3078,6 +3011,15 @@ packages: eslint: ^6.0.0 || ^7.0.0 resolution: integrity: sha512-+Tg+htYAKl+44IIDe6vUcFWRxSs8utmtDlRM5NZF7ogCOmDsO9acG2JnPJXIB0O1PbQIAVf6Vs5xPn2TdkHGhg== + /@rushstack/eslint-plugin/0.7.0_eslint@7.2.0: + dependencies: + '@rushstack/tree-pattern': 0.1.0 + eslint: 7.2.0 + dev: true + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 + resolution: + integrity: sha512-Yz0NtcUyM9sLcI/TnWhS8dEpaULUFIo7sXbMa4ovqACj3RfKzFOetbOgl3UIcQkSTIb4cLmllnqh8UkBELda/g== /@rushstack/heft-config-file/0.1.0: dependencies: '@rushstack/node-core-library': 3.30.0 @@ -3138,6 +3080,33 @@ packages: dev: true resolution: integrity: sha512-vZo1fi/ObL3CmRXlQUX/E1xL9KL9arBfCJ7pYf3O/vFrD8ffSfpQ6+6lhgAsKrCIM5Epddsgeb2REPxMwYZX1g== + /@rushstack/node-core-library/3.33.6: + dependencies: + '@types/node': 10.17.13 + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.17.0 + semver: 7.3.2 + timsort: 0.3.0 + z-schema: 3.18.4 + dev: true + resolution: + integrity: sha512-930AP4Zj14Z4ulQ6ty2v3DM+D31zpLslAJuHB5E1qh/0+8JLkA0cf+wd2QiXjdIBpG/UdrHbReh5e9/e920YJw== + /@rushstack/tree-pattern/0.1.0: + dev: true + resolution: + integrity: sha512-OgOn8WSVaSyUCms4fkUlyItm//9PzxrDkaFRXRh04Euvx/YuL9h47H+AjjgR1fpWX5nRzIGJkXmXIViQ/37TSg== + /@rushstack/ts-command-line/4.6.10: + dependencies: + '@types/argparse': 1.0.38 + argparse: 1.0.10 + colors: 1.2.5 + string-argv: 0.3.1 + dev: true + resolution: + integrity: sha512-WhB/+yGvfmdsMFhEeVaJ9lBwPANFdsoKPsEkzSOVj60qG4aLWABeEl5rOdEwbbnx83RaNN2oQW8TX3enD+vdmw== /@rushstack/ts-command-line/4.6.4: dependencies: '@types/argparse': 1.0.38 @@ -3571,10 +3540,6 @@ packages: dev: true resolution: integrity: sha512-jDMH+3BQPtvqZVIcsH700Dfi8Q3MIcEx16g/VdxjoqiGR/NntekB10xdBpirMKnPe9z2C5cBmL0vte0YttOr3Q== - /@types/sinon/1.16.34: - dev: true - resolution: - integrity: sha1-qXYf/zPQ97P+YYdbV3d4oldqmgM= /@types/source-list-map/0.1.2: resolution: integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== @@ -3698,51 +3663,6 @@ packages: dev: true resolution: integrity: sha1-LrHQCl5Ow/pYx2r94S4YK2bcXBw= - /@typescript-eslint/eslint-plugin/3.4.0_43170e314695d1b0876b4d3c3574f4a4: - dependencies: - '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.7.5 - '@typescript-eslint/parser': 3.4.0_eslint@7.2.0+typescript@3.7.5 - debug: 4.2.0 - eslint: 7.2.0 - functional-red-black-tree: 1.0.1 - regexpp: 3.1.0 - semver: 7.3.2 - tsutils: 3.17.1_typescript@3.7.5 - typescript: 3.7.5 - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - '@typescript-eslint/parser': ^3.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - resolution: - integrity: sha512-wfkpiqaEVhZIuQRmudDszc01jC/YR7gMSxa6ulhggAe/Hs0KVIuo9wzvFiDbG3JD5pRFQoqnf4m7REDsUvBnMQ== - /@typescript-eslint/eslint-plugin/3.4.0_cda7146ea5fa41161805b85f9284f6bd: - dependencies: - '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.5.3 - '@typescript-eslint/parser': 3.4.0_eslint@7.2.0+typescript@3.5.3 - debug: 4.2.0 - eslint: 7.2.0 - functional-red-black-tree: 1.0.1 - regexpp: 3.1.0 - semver: 7.3.2 - tsutils: 3.17.1_typescript@3.5.3 - typescript: 3.5.3 - dev: true - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - '@typescript-eslint/parser': ^3.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - resolution: - integrity: sha512-wfkpiqaEVhZIuQRmudDszc01jC/YR7gMSxa6ulhggAe/Hs0KVIuo9wzvFiDbG3JD5pRFQoqnf4m7REDsUvBnMQ== /@typescript-eslint/eslint-plugin/3.4.0_def47c0014fd51b1497b94bf8e50ada2: dependencies: '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.9.7 @@ -3754,7 +3674,6 @@ packages: semver: 7.3.2 tsutils: 3.17.1_typescript@3.9.7 typescript: 3.9.7 - dev: true engines: node: ^10.12.0 || >=12.0.0 peerDependencies: @@ -3766,37 +3685,6 @@ packages: optional: true resolution: integrity: sha512-wfkpiqaEVhZIuQRmudDszc01jC/YR7gMSxa6ulhggAe/Hs0KVIuo9wzvFiDbG3JD5pRFQoqnf4m7REDsUvBnMQ== - /@typescript-eslint/experimental-utils/3.4.0_eslint@7.2.0+typescript@3.5.3: - dependencies: - '@types/json-schema': 7.0.6 - '@typescript-eslint/typescript-estree': 3.4.0_typescript@3.5.3 - eslint: 7.2.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - typescript: 3.5.3 - dev: true - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - eslint: '*' - typescript: '*' - resolution: - integrity: sha512-rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw== - /@typescript-eslint/experimental-utils/3.4.0_eslint@7.2.0+typescript@3.7.5: - dependencies: - '@types/json-schema': 7.0.6 - '@typescript-eslint/typescript-estree': 3.4.0_typescript@3.7.5 - eslint: 7.2.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - typescript: 3.7.5 - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - eslint: '*' - typescript: '*' - resolution: - integrity: sha512-rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw== /@typescript-eslint/experimental-utils/3.4.0_eslint@7.2.0+typescript@3.9.7: dependencies: '@types/json-schema': 7.0.6 @@ -3805,7 +3693,6 @@ packages: eslint-scope: 5.1.1 eslint-utils: 2.1.0 typescript: 3.9.7 - dev: true engines: node: ^10.12.0 || >=12.0.0 peerDependencies: @@ -3813,43 +3700,6 @@ packages: typescript: '*' resolution: integrity: sha512-rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw== - /@typescript-eslint/parser/3.4.0_eslint@7.2.0+typescript@3.5.3: - dependencies: - '@types/eslint-visitor-keys': 1.0.0 - '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.5.3 - '@typescript-eslint/typescript-estree': 3.4.0_typescript@3.5.3 - eslint: 7.2.0 - eslint-visitor-keys: 1.3.0 - typescript: 3.5.3 - dev: true - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - resolution: - integrity: sha512-ZUGI/de44L5x87uX5zM14UYcbn79HSXUR+kzcqU42gH0AgpdB/TjuJy3m4ezI7Q/jk3wTQd755mxSDLhQP79KA== - /@typescript-eslint/parser/3.4.0_eslint@7.2.0+typescript@3.7.5: - dependencies: - '@types/eslint-visitor-keys': 1.0.0 - '@typescript-eslint/experimental-utils': 3.4.0_eslint@7.2.0+typescript@3.7.5 - '@typescript-eslint/typescript-estree': 3.4.0_typescript@3.7.5 - eslint: 7.2.0 - eslint-visitor-keys: 1.3.0 - typescript: 3.7.5 - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - resolution: - integrity: sha512-ZUGI/de44L5x87uX5zM14UYcbn79HSXUR+kzcqU42gH0AgpdB/TjuJy3m4ezI7Q/jk3wTQd755mxSDLhQP79KA== /@typescript-eslint/parser/3.4.0_eslint@7.2.0+typescript@3.9.7: dependencies: '@types/eslint-visitor-keys': 1.0.0 @@ -3858,7 +3708,6 @@ packages: eslint: 7.2.0 eslint-visitor-keys: 1.3.0 typescript: 3.9.7 - dev: true engines: node: ^10.12.0 || >=12.0.0 peerDependencies: @@ -3869,45 +3718,6 @@ packages: optional: true resolution: integrity: sha512-ZUGI/de44L5x87uX5zM14UYcbn79HSXUR+kzcqU42gH0AgpdB/TjuJy3m4ezI7Q/jk3wTQd755mxSDLhQP79KA== - /@typescript-eslint/typescript-estree/3.4.0_typescript@3.5.3: - dependencies: - debug: 4.2.0 - eslint-visitor-keys: 1.3.0 - glob: 7.1.6 - is-glob: 4.0.1 - lodash: 4.17.20 - semver: 7.3.2 - tsutils: 3.17.1_typescript@3.5.3 - typescript: 3.5.3 - dev: true - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - resolution: - integrity: sha512-zKwLiybtt4uJb4mkG5q2t6+W7BuYx2IISiDNV+IY68VfoGwErDx/RfVI7SWL4gnZ2t1A1ytQQwZ+YOJbHHJ2rw== - /@typescript-eslint/typescript-estree/3.4.0_typescript@3.7.5: - dependencies: - debug: 4.2.0 - eslint-visitor-keys: 1.3.0 - glob: 7.1.6 - is-glob: 4.0.1 - lodash: 4.17.20 - semver: 7.3.2 - tsutils: 3.17.1_typescript@3.7.5 - typescript: 3.7.5 - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - resolution: - integrity: sha512-zKwLiybtt4uJb4mkG5q2t6+W7BuYx2IISiDNV+IY68VfoGwErDx/RfVI7SWL4gnZ2t1A1ytQQwZ+YOJbHHJ2rw== /@typescript-eslint/typescript-estree/3.4.0_typescript@3.9.7: dependencies: debug: 4.2.0 @@ -3918,7 +3728,6 @@ packages: semver: 7.3.2 tsutils: 3.17.1_typescript@3.9.7 typescript: 3.9.7 - dev: true engines: node: ^10.12.0 || >=12.0.0 peerDependencies: @@ -4326,10 +4135,6 @@ packages: /array-equal/1.0.0: resolution: integrity: sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - /array-filter/1.0.0: - dev: true - resolution: - integrity: sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= /array-find-index/1.0.2: dev: false engines: @@ -4439,10 +4244,6 @@ packages: util: 0.10.3 resolution: integrity: sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - /assertion-error/1.1.0: - dev: true - resolution: - integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== /assign-symbols/1.0.0: engines: node: '>=0.10.0' @@ -4510,14 +4311,6 @@ packages: hasBin: true resolution: integrity: sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - /available-typed-arrays/1.0.2: - dependencies: - array-filter: 1.0.0 - dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== /aws-sign2/0.7.0: resolution: integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= @@ -4856,7 +4649,7 @@ packages: /browserslist/4.14.5: dependencies: caniuse-lite: 1.0.30001137 - electron-to-chromium: 1.3.573 + electron-to-chromium: 1.3.575 escalade: 3.1.0 node-releases: 1.1.61 dev: false @@ -5034,16 +4827,6 @@ packages: /caseless/0.12.0: resolution: integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - /chai/3.5.0: - dependencies: - assertion-error: 1.1.0 - deep-eql: 0.1.3 - type-detect: 1.0.0 - dev: true - engines: - node: '>= 0.4.0' - resolution: - integrity: sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= /chalk/1.1.3: dependencies: ansi-styles: 2.2.1 @@ -5741,12 +5524,6 @@ packages: npm: '>=2.15' resolution: integrity: sha512-5skH5BfUL3n09RDmMVaHS1QGCiZRnl2nArUwmsE9JRY93Ueh3tihYl5wIrDdAuXnoFhxVis/DmRWREO2c6DG3w== - /deep-eql/0.1.3: - dependencies: - type-detect: 0.1.1 - dev: true - resolution: - integrity: sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= /deep-equal/1.1.1: dependencies: is-arguments: 1.0.4 @@ -6023,10 +5800,10 @@ packages: requiresBuild: true resolution: integrity: sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - /electron-to-chromium/1.3.573: + /electron-to-chromium/1.3.575: dev: false resolution: - integrity: sha512-oypaNmexr8w0m2GX67fGLQ0Xgsd7uXz7GcwaHZ9eW3ZdQ8uA2+V/wXmLdMTk3gcacbqQGAN7CXWG3fOkfKYftw== + integrity: sha512-031VrjcilnE8bXivDGhEeuGjMZrjTAeyAKm3XWPY9SvGYE6Hn8003gCqoNszFu6lh1v0gDx5hrM0VE1cPSMUkQ== /elliptic/6.5.3: dependencies: bn.js: 4.11.9 @@ -6902,10 +6679,6 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= - /foreach/2.0.5: - dev: true - resolution: - integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k= /forever-agent/0.6.1: resolution: integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= @@ -6921,13 +6694,6 @@ packages: node: '>= 0.12' resolution: integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - /formatio/1.1.1: - dependencies: - samsam: 1.1.2 - deprecated: This package is unmaintained. Use @sinonjs/formatio instead - dev: true - resolution: - integrity: sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek= /forwarded/0.1.2: engines: node: '>= 0.6' @@ -8139,12 +7905,6 @@ packages: node: '>=6' resolution: integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - /is-generator-function/1.0.7: - dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== /is-glob/3.1.0: dependencies: is-extglob: 2.1.1 @@ -8281,17 +8041,6 @@ packages: node: '>= 0.4' resolution: integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - /is-typed-array/1.1.3: - dependencies: - available-typed-arrays: 1.0.2 - es-abstract: 1.17.6 - foreach: 2.0.5 - has-symbols: 1.0.1 - dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ== /is-typedarray/1.0.0: resolution: integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -9341,10 +9090,6 @@ packages: node: '>= 0.6.0' resolution: integrity: sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== - /lolex/1.3.2: - dev: true - resolution: - integrity: sha1-fD2mL/yzDw9agKJWbKJORdigHzE= /lolex/5.1.2: dependencies: '@sinonjs/commons': 1.8.1 @@ -11482,11 +11227,6 @@ packages: /safer-buffer/2.1.2: resolution: integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - /samsam/1.1.2: - deprecated: This package has been deprecated in favour of @sinonjs/samsam - dev: true - resolution: - integrity: sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc= /sane/4.1.0: dependencies: '@cnakazawa/watch': 1.0.4 @@ -11762,17 +11502,6 @@ packages: /signal-exit/3.0.3: resolution: integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - /sinon/1.17.7: - dependencies: - formatio: 1.1.1 - lolex: 1.3.2 - samsam: 1.1.2 - util: 0.12.3 - dev: true - engines: - node: '>=0.1.103' - resolution: - integrity: sha1-RUKk9JugxFwF6y6d2dID4rjv4L8= /sisteransi/1.0.5: resolution: integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== @@ -12636,14 +12365,14 @@ packages: jest: '>=25 <26' resolution: integrity: sha512-1Lf576ulKhbxX5og+tG8udVg/5cgcMLPBxp1iCqbbf6VvUK4gEsgAtzMjl8u98izhLrzKMPB0LxCBKEZ5l19Hw== - /ts-loader/6.0.0_typescript@3.7.5: + /ts-loader/6.0.0_typescript@3.9.7: dependencies: chalk: 2.4.2 enhanced-resolve: 4.3.0 loader-utils: 1.1.0 micromatch: 4.0.2 semver: 6.3.0 - typescript: 3.7.5 + typescript: 3.9.7 dev: false engines: node: '>=8.6' @@ -12758,6 +12487,7 @@ packages: tslint: 5.20.1_typescript@3.5.3 tsutils: 2.28.0_typescript@3.5.3 typescript: 3.5.3 + dev: false peerDependencies: tslint: ^5.1.0 typescript: ^2.1.0 || ^3.0.0 @@ -12779,6 +12509,7 @@ packages: tslint: 5.20.1_typescript@3.7.5 tsutils: 2.28.0_typescript@3.7.5 typescript: 3.7.5 + dev: false peerDependencies: tslint: ^5.1.0 typescript: ^2.1.0 || ^3.0.0 @@ -13037,6 +12768,7 @@ packages: tslib: 1.13.0 tsutils: 2.29.0_typescript@3.5.3 typescript: 3.5.3 + dev: false engines: node: '>=4.8.0' hasBin: true @@ -13084,6 +12816,7 @@ packages: tslib: 1.13.0 tsutils: 2.29.0_typescript@3.7.5 typescript: 3.7.5 + dev: false engines: node: '>=4.8.0' hasBin: true @@ -13223,6 +12956,7 @@ packages: dependencies: tslib: 1.13.0 typescript: 3.5.3 + dev: false peerDependencies: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' resolution: @@ -13240,6 +12974,7 @@ packages: dependencies: tslib: 1.13.0 typescript: 3.7.5 + dev: false peerDependencies: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' resolution: @@ -13346,6 +13081,7 @@ packages: dependencies: tslib: 1.13.0 typescript: 3.5.3 + dev: false peerDependencies: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' resolution: @@ -13363,6 +13099,7 @@ packages: dependencies: tslib: 1.13.0 typescript: 3.7.5 + dev: false peerDependencies: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' resolution: @@ -13384,32 +13121,10 @@ packages: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' resolution: integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - /tsutils/3.17.1_typescript@3.5.3: - dependencies: - tslib: 1.13.0 - typescript: 3.5.3 - dev: true - engines: - node: '>= 6' - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - resolution: - integrity: sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== - /tsutils/3.17.1_typescript@3.7.5: - dependencies: - tslib: 1.13.0 - typescript: 3.7.5 - engines: - node: '>= 6' - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - resolution: - integrity: sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== /tsutils/3.17.1_typescript@3.9.7: dependencies: tslib: 1.13.0 typescript: 3.9.7 - dev: true engines: node: '>= 6' peerDependencies: @@ -13441,14 +13156,6 @@ packages: node: '>= 0.8.0' resolution: integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - /type-detect/0.1.1: - dev: true - resolution: - integrity: sha1-C6XsKohWQORw6k6FBZcZANrFiCI= - /type-detect/1.0.0: - dev: true - resolution: - integrity: sha1-diIXzAbbJY7EiQihKY6LlRIejqI= /type-detect/4.0.8: engines: node: '>=4' @@ -13533,6 +13240,7 @@ packages: resolution: integrity: sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== /typescript/3.2.4: + dev: false engines: node: '>=4.2.0' hasBin: true @@ -13553,6 +13261,7 @@ packages: resolution: integrity: sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== /typescript/3.5.3: + dev: false engines: node: '>=4.2.0' hasBin: true @@ -13566,6 +13275,7 @@ packages: resolution: integrity: sha512-BEjlc0Z06ORZKbtcxGrIvvwYs5hAnuo6TKdNFL55frVDlB+na3z5bsLhFaIxmT+dPWgBIjMo6aNnTOgHHmHgiQ== /typescript/3.7.5: + dev: false engines: node: '>=4.2.0' hasBin: true @@ -13737,17 +13447,6 @@ packages: inherits: 2.0.3 resolution: integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - /util/0.12.3: - dependencies: - inherits: 2.0.4 - is-arguments: 1.0.4 - is-generator-function: 1.0.7 - is-typed-array: 1.1.3 - safe-buffer: 5.2.1 - which-typed-array: 1.1.2 - dev: true - resolution: - integrity: sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== /utila/0.4.0: resolution: integrity: sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= @@ -14166,19 +13865,6 @@ packages: /which-module/2.0.0: resolution: integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - /which-typed-array/1.1.2: - dependencies: - available-typed-arrays: 1.0.2 - es-abstract: 1.17.6 - foreach: 2.0.5 - function-bind: 1.1.1 - has-symbols: 1.0.1 - is-typed-array: 1.1.3 - dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ== /which/1.3.1: dependencies: isexe: 2.0.0 @@ -14452,4 +14138,3 @@ packages: commander: 2.20.3 resolution: integrity: sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw== -registry: '' diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json index 890a65bddeb..c073836b06a 100644 --- a/common/config/rush/repo-state.json +++ b/common/config/rush/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "97caf0256fdfec1d0ea3500471409b80eb5c88f9", - "preferredVersionsHash": "334ea62b6a2798dcf80917b79555983377e7435e" + "pnpmShrinkwrapHash": "3875aac7f93a7c241f5616a2d19a586cc75ac4ea", + "preferredVersionsHash": "0f2f367d951f4cd546b698d668533c1ff056e334" } From 5b237aedd26bdbe006823fc82b52b64fbc3bd5ef Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 22:02:32 -0700 Subject: [PATCH 25/36] Update tsconfig files --- apps/api-extractor-model/tsconfig.json | 2 +- apps/api-extractor/tsconfig.json | 2 +- apps/heft/tsconfig.json | 2 +- build-tests/localization-plugin-test-01/tsconfig.json | 2 +- build-tests/localization-plugin-test-02/tsconfig.json | 2 +- build-tests/localization-plugin-test-03/tsconfig.json | 2 +- build-tests/node-library-build-eslint-test/tsconfig.json | 2 +- build-tests/node-library-build-tslint-test/tsconfig.json | 2 +- build-tests/web-library-build-test/tsconfig.json | 2 +- core-build/gulp-core-build-mocha/tsconfig.json | 2 +- core-build/gulp-core-build-sass/tsconfig.json | 2 +- core-build/gulp-core-build-serve/tsconfig.json | 2 +- core-build/gulp-core-build-typescript/tsconfig.json | 2 +- core-build/gulp-core-build-webpack/tsconfig.json | 2 +- core-build/gulp-core-build/tsconfig.json | 2 +- core-build/node-library-build/tsconfig.json | 2 +- core-build/web-library-build/tsconfig.json | 2 +- heft-plugins/pre-compile-hardlink-or-copy-plugin/tsconfig.json | 2 +- libraries/heft-config-file/tsconfig.json | 2 +- libraries/node-core-library/tsconfig.json | 2 +- libraries/rig-package/tsconfig.json | 2 +- libraries/tree-pattern/tsconfig.json | 2 +- libraries/ts-command-line/tsconfig.json | 2 +- stack/eslint-patch/tsconfig.json | 2 +- stack/rush-stack-compiler-2.4/tsconfig.json | 2 +- stack/rush-stack-compiler-2.7/tsconfig.json | 2 +- stack/rush-stack-compiler-2.8/tsconfig.json | 2 +- stack/rush-stack-compiler-2.9/tsconfig.json | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/apps/api-extractor-model/tsconfig.json b/apps/api-extractor-model/tsconfig.json index 07d008b280c..9b3c00b93ee 100644 --- a/apps/api-extractor-model/tsconfig.json +++ b/apps/api-extractor-model/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["heft-jest", "node"] diff --git a/apps/api-extractor/tsconfig.json b/apps/api-extractor/tsconfig.json index 07d008b280c..9b3c00b93ee 100644 --- a/apps/api-extractor/tsconfig.json +++ b/apps/api-extractor/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["heft-jest", "node"] diff --git a/apps/heft/tsconfig.json b/apps/heft/tsconfig.json index 657ad0cdf62..2f614bb1fc7 100644 --- a/apps/heft/tsconfig.json +++ b/apps/heft/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.7/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["heft-jest", "node"] } diff --git a/build-tests/localization-plugin-test-01/tsconfig.json b/build-tests/localization-plugin-test-01/tsconfig.json index 443e016ec69..c593594c2e3 100644 --- a/build-tests/localization-plugin-test-01/tsconfig.json +++ b/build-tests/localization-plugin-test-01/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-web.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-web.json", "compilerOptions": { "rootDirs": ["./src", "./temp/loc-json-ts/"], "types": ["webpack-env"] diff --git a/build-tests/localization-plugin-test-02/tsconfig.json b/build-tests/localization-plugin-test-02/tsconfig.json index 443e016ec69..c593594c2e3 100644 --- a/build-tests/localization-plugin-test-02/tsconfig.json +++ b/build-tests/localization-plugin-test-02/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-web.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-web.json", "compilerOptions": { "rootDirs": ["./src", "./temp/loc-json-ts/"], "types": ["webpack-env"] diff --git a/build-tests/localization-plugin-test-03/tsconfig.json b/build-tests/localization-plugin-test-03/tsconfig.json index 443e016ec69..c593594c2e3 100644 --- a/build-tests/localization-plugin-test-03/tsconfig.json +++ b/build-tests/localization-plugin-test-03/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-web.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-web.json", "compilerOptions": { "rootDirs": ["./src", "./temp/loc-json-ts/"], "types": ["webpack-env"] diff --git a/build-tests/node-library-build-eslint-test/tsconfig.json b/build-tests/node-library-build-eslint-test/tsconfig.json index a9d93bbacad..0fe2b074e27 100644 --- a/build-tests/node-library-build-eslint-test/tsconfig.json +++ b/build-tests/node-library-build-eslint-test/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["node"] } diff --git a/build-tests/node-library-build-tslint-test/tsconfig.json b/build-tests/node-library-build-tslint-test/tsconfig.json index b1abb9e5b4a..501b6181d8f 100644 --- a/build-tests/node-library-build-tslint-test/tsconfig.json +++ b/build-tests/node-library-build-tslint-test/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json" + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json" } diff --git a/build-tests/web-library-build-test/tsconfig.json b/build-tests/web-library-build-test/tsconfig.json index 9d919e33b85..0787857acf4 100644 --- a/build-tests/web-library-build-test/tsconfig.json +++ b/build-tests/web-library-build-test/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-web.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-web.json", "compilerOptions": { "types": ["jest"] } diff --git a/core-build/gulp-core-build-mocha/tsconfig.json b/core-build/gulp-core-build-mocha/tsconfig.json index b1abb9e5b4a..501b6181d8f 100644 --- a/core-build/gulp-core-build-mocha/tsconfig.json +++ b/core-build/gulp-core-build-mocha/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json" + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json" } diff --git a/core-build/gulp-core-build-sass/tsconfig.json b/core-build/gulp-core-build-sass/tsconfig.json index f81ee11ef26..edadcec8052 100644 --- a/core-build/gulp-core-build-sass/tsconfig.json +++ b/core-build/gulp-core-build-sass/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["jest"] } diff --git a/core-build/gulp-core-build-serve/tsconfig.json b/core-build/gulp-core-build-serve/tsconfig.json index f69e315c014..0f3e0210c4d 100644 --- a/core-build/gulp-core-build-serve/tsconfig.json +++ b/core-build/gulp-core-build-serve/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "strictNullChecks": false } diff --git a/core-build/gulp-core-build-typescript/tsconfig.json b/core-build/gulp-core-build-typescript/tsconfig.json index b1abb9e5b4a..501b6181d8f 100644 --- a/core-build/gulp-core-build-typescript/tsconfig.json +++ b/core-build/gulp-core-build-typescript/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json" + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json" } diff --git a/core-build/gulp-core-build-webpack/tsconfig.json b/core-build/gulp-core-build-webpack/tsconfig.json index b1abb9e5b4a..501b6181d8f 100644 --- a/core-build/gulp-core-build-webpack/tsconfig.json +++ b/core-build/gulp-core-build-webpack/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json" + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json" } diff --git a/core-build/gulp-core-build/tsconfig.json b/core-build/gulp-core-build/tsconfig.json index f81ee11ef26..edadcec8052 100644 --- a/core-build/gulp-core-build/tsconfig.json +++ b/core-build/gulp-core-build/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["jest"] } diff --git a/core-build/node-library-build/tsconfig.json b/core-build/node-library-build/tsconfig.json index b1abb9e5b4a..501b6181d8f 100644 --- a/core-build/node-library-build/tsconfig.json +++ b/core-build/node-library-build/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json" + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json" } diff --git a/core-build/web-library-build/tsconfig.json b/core-build/web-library-build/tsconfig.json index b1abb9e5b4a..501b6181d8f 100644 --- a/core-build/web-library-build/tsconfig.json +++ b/core-build/web-library-build/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json" + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json" } diff --git a/heft-plugins/pre-compile-hardlink-or-copy-plugin/tsconfig.json b/heft-plugins/pre-compile-hardlink-or-copy-plugin/tsconfig.json index 94f86315392..a4662c98191 100644 --- a/heft-plugins/pre-compile-hardlink-or-copy-plugin/tsconfig.json +++ b/heft-plugins/pre-compile-hardlink-or-copy-plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.7/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["node"] diff --git a/libraries/heft-config-file/tsconfig.json b/libraries/heft-config-file/tsconfig.json index 657ad0cdf62..2f614bb1fc7 100644 --- a/libraries/heft-config-file/tsconfig.json +++ b/libraries/heft-config-file/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.7/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["heft-jest", "node"] } diff --git a/libraries/node-core-library/tsconfig.json b/libraries/node-core-library/tsconfig.json index 07d008b280c..9b3c00b93ee 100644 --- a/libraries/node-core-library/tsconfig.json +++ b/libraries/node-core-library/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["heft-jest", "node"] diff --git a/libraries/rig-package/tsconfig.json b/libraries/rig-package/tsconfig.json index 07d008b280c..9b3c00b93ee 100644 --- a/libraries/rig-package/tsconfig.json +++ b/libraries/rig-package/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["heft-jest", "node"] diff --git a/libraries/tree-pattern/tsconfig.json b/libraries/tree-pattern/tsconfig.json index f09c0ef3131..5049b0e2b4d 100644 --- a/libraries/tree-pattern/tsconfig.json +++ b/libraries/tree-pattern/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["heft-jest"] diff --git a/libraries/ts-command-line/tsconfig.json b/libraries/ts-command-line/tsconfig.json index 07d008b280c..9b3c00b93ee 100644 --- a/libraries/ts-command-line/tsconfig.json +++ b/libraries/ts-command-line/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["heft-jest", "node"] diff --git a/stack/eslint-patch/tsconfig.json b/stack/eslint-patch/tsconfig.json index 51c71c4bdec..a4662c98191 100644 --- a/stack/eslint-patch/tsconfig.json +++ b/stack/eslint-patch/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "types": ["node"] diff --git a/stack/rush-stack-compiler-2.4/tsconfig.json b/stack/rush-stack-compiler-2.4/tsconfig.json index 56aa0598ed3..48d9d500810 100644 --- a/stack/rush-stack-compiler-2.4/tsconfig.json +++ b/stack/rush-stack-compiler-2.4/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "rootDir": "src" diff --git a/stack/rush-stack-compiler-2.7/tsconfig.json b/stack/rush-stack-compiler-2.7/tsconfig.json index 56aa0598ed3..48d9d500810 100644 --- a/stack/rush-stack-compiler-2.7/tsconfig.json +++ b/stack/rush-stack-compiler-2.7/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "rootDir": "src" diff --git a/stack/rush-stack-compiler-2.8/tsconfig.json b/stack/rush-stack-compiler-2.8/tsconfig.json index 56aa0598ed3..48d9d500810 100644 --- a/stack/rush-stack-compiler-2.8/tsconfig.json +++ b/stack/rush-stack-compiler-2.8/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "rootDir": "src" diff --git a/stack/rush-stack-compiler-2.9/tsconfig.json b/stack/rush-stack-compiler-2.9/tsconfig.json index 56aa0598ed3..48d9d500810 100644 --- a/stack/rush-stack-compiler-2.9/tsconfig.json +++ b/stack/rush-stack-compiler-2.9/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@microsoft/rush-stack-compiler-3.5/includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { "rootDir": "src" From 118fcf45762e9f2b6a4cfced304d213656b2efe6 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 22:10:48 -0700 Subject: [PATCH 26/36] Update .api.md files to reflect TypeScript's famous breaking change --- common/reviews/api/api-extractor-model.api.md | 124 +++++----- common/reviews/api/api-extractor.api.md | 10 +- .../api/debug-certificate-manager.api.md | 8 +- common/reviews/api/gulp-core-build.api.md | 2 +- .../reviews/api/module-minifier-plugin.api.md | 3 +- common/reviews/api/node-core-library.api.md | 22 +- common/reviews/api/rig-package.api.md | 2 +- common/reviews/api/rush-lib.api.md | 220 +++++++++--------- .../api/rush-stack-compiler-2.4.api.md | 26 +-- .../api/rush-stack-compiler-2.7.api.md | 26 +-- .../api/rush-stack-compiler-2.8.api.md | 26 +-- .../api/rush-stack-compiler-2.9.api.md | 26 +-- common/reviews/api/stream-collator.api.md | 10 +- common/reviews/api/terminal.api.md | 2 +- common/reviews/api/ts-command-line.api.md | 30 +-- 15 files changed, 271 insertions(+), 266 deletions(-) diff --git a/common/reviews/api/api-extractor-model.api.md b/common/reviews/api/api-extractor-model.api.md index 6a907f50114..6b677f4d74d 100644 --- a/common/reviews/api/api-extractor-model.api.md +++ b/common/reviews/api/api-extractor-model.api.md @@ -22,7 +22,7 @@ export class AedocDefinitions { // (undocumented) static readonly preapprovedTag: TSDocTagDefinition; // (undocumented) - static readonly tsdocConfiguration: TSDocConfiguration; + static get tsdocConfiguration(): TSDocConfiguration; } // Warning: (ae-forgotten-export) The symbol "ApiCallSignature_base" needs to be exported by the entry point index.d.ts @@ -33,11 +33,11 @@ export class ApiCallSignature extends ApiCallSignature_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(overloadIndex: number): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiClass_base" needs to be exported by the entry point index.d.ts @@ -48,13 +48,13 @@ export class ApiClass extends ApiClass_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; readonly extendsType: HeritageType | undefined; // (undocumented) static getContainerKey(name: string): string; - readonly implementsTypes: ReadonlyArray; + get implementsTypes(): ReadonlyArray; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // Warning: (ae-forgotten-export) The symbol "DeserializerContext" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "IApiClassJson" needs to be exported by the entry point index.d.ts // @@ -72,11 +72,11 @@ export class ApiConstructor extends ApiConstructor_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(overloadIndex: number): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiConstructSignature_base" needs to be exported by the entry point index.d.ts @@ -87,19 +87,19 @@ export class ApiConstructSignature extends ApiConstructSignature_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(overloadIndex: number): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // @public export class ApiDeclaredItem extends ApiDocumentedItem { constructor(options: IApiDeclaredItemOptions); buildExcerpt(tokenRange: IExcerptTokenRange): Excerpt; - readonly excerpt: Excerpt; - readonly excerptTokens: ReadonlyArray; + get excerpt(): Excerpt; + get excerptTokens(): ReadonlyArray; getExcerptWithModifiers(): string; // Warning: (ae-forgotten-export) The symbol "IApiDeclaredItemJson" needs to be exported by the entry point index.d.ts // @@ -121,7 +121,7 @@ export class ApiDocumentedItem extends ApiItem { // @override (undocumented) serializeInto(jsonObject: Partial): void; // (undocumented) - readonly tsdocComment: tsdoc.DocComment | undefined; + get tsdocComment(): tsdoc.DocComment | undefined; } // Warning: (ae-forgotten-export) The symbol "ApiEntryPoint_base" needs to be exported by the entry point index.d.ts @@ -132,10 +132,10 @@ export class ApiEntryPoint extends ApiEntryPoint_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; - readonly importPath: string; + get containerKey(): string; + get importPath(): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiEnum_base" needs to be exported by the entry point index.d.ts @@ -148,13 +148,13 @@ export class ApiEnum extends ApiEnum_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // @override (undocumented) - readonly members: ReadonlyArray; + get members(): ReadonlyArray; } // Warning: (ae-forgotten-export) The symbol "ApiEnumMember_base" needs to be exported by the entry point index.d.ts @@ -165,12 +165,12 @@ export class ApiEnumMember extends ApiEnumMember_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string): string; readonly initializerExcerpt: Excerpt; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // Warning: (ae-forgotten-export) The symbol "IApiEnumMemberJson" needs to be exported by the entry point index.d.ts // // @override (undocumented) @@ -187,11 +187,11 @@ export class ApiFunction extends ApiFunction_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string, overloadIndex: number): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiIndexSignature_base" needs to be exported by the entry point index.d.ts @@ -202,11 +202,11 @@ export class ApiIndexSignature extends ApiIndexSignature_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(overloadIndex: number): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiInterface_base" needs to be exported by the entry point index.d.ts @@ -217,12 +217,12 @@ export class ApiInterface extends ApiInterface_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; - readonly extendsTypes: ReadonlyArray; + get containerKey(): string; + get extendsTypes(): ReadonlyArray; // (undocumented) static getContainerKey(name: string): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // Warning: (ae-forgotten-export) The symbol "IApiInterfaceJson" needs to be exported by the entry point index.d.ts // // @override (undocumented) @@ -239,13 +239,13 @@ export class ApiItem { // @virtual protected buildCanonicalReference(): DeclarationReference; // @beta - readonly canonicalReference: DeclarationReference; + get canonicalReference(): DeclarationReference; // @virtual - readonly containerKey: string; + get containerKey(): string; // (undocumented) static deserialize(jsonObject: IApiItemJson, context: DeserializerContext): ApiItem; // @virtual - readonly displayName: string; + get displayName(): string; getAssociatedPackage(): ApiPackage | undefined; getHierarchy(): ReadonlyArray; getMergedSiblings(): ReadonlyArray; @@ -253,13 +253,13 @@ export class ApiItem { // @virtual (undocumented) getSortKey(): string; // @virtual - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // @virtual - readonly members: ReadonlyArray; + get members(): ReadonlyArray; // @virtual (undocumented) static onDeserializeInto(options: Partial, context: DeserializerContext, jsonObject: IApiItemJson): void; // @virtual - readonly parent: ApiItem | undefined; + get parent(): ApiItem | undefined; // @virtual (undocumented) serializeInto(jsonObject: Partial): void; } @@ -336,11 +336,11 @@ export class ApiMethod extends ApiMethod_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string, isStatic: boolean, overloadIndex: number): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiMethodSignature_base" needs to be exported by the entry point index.d.ts @@ -351,11 +351,11 @@ export class ApiMethodSignature extends ApiMethodSignature_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string, overloadIndex: number): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiModel_base" needs to be exported by the entry point index.d.ts @@ -368,13 +368,13 @@ export class ApiModel extends ApiModel_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // (undocumented) loadPackage(apiJsonFilename: string): ApiPackage; // (undocumented) - readonly packages: ReadonlyArray; + get packages(): ReadonlyArray; // (undocumented) resolveDeclarationReference(declarationReference: DocDeclarationReference | DeclarationReference, contextApiItem: ApiItem | undefined): IResolveDeclarationReferenceResult; tryGetPackageByName(packageName: string): ApiPackage | undefined; @@ -403,11 +403,11 @@ export class ApiNamespace extends ApiNamespace_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiPackage_base" needs to be exported by the entry point index.d.ts @@ -420,13 +420,13 @@ export class ApiPackage extends ApiPackage_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) - readonly entryPoints: ReadonlyArray; + get entryPoints(): ReadonlyArray; // (undocumented) findEntryPointsByPath(importPath: string): ReadonlyArray; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // (undocumented) static loadFromJsonFile(apiJsonFilename: string): ApiPackage; // (undocumented) @@ -457,11 +457,11 @@ export class ApiProperty extends ApiProperty_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string, isStatic: boolean): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // Warning: (ae-forgotten-export) The symbol "ApiPropertyItem_base" needs to be exported by the entry point index.d.ts @@ -469,7 +469,7 @@ export class ApiProperty extends ApiProperty_base { // @public export class ApiPropertyItem extends ApiPropertyItem_base { constructor(options: IApiPropertyItemOptions); - readonly isEventProperty: boolean; + get isEventProperty(): boolean; // Warning: (ae-forgotten-export) The symbol "IApiPropertyItemJson" needs to be exported by the entry point index.d.ts // // @override (undocumented) @@ -485,11 +485,11 @@ export class ApiPropertySignature extends ApiPropertyItem { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; } // @public @@ -547,11 +547,11 @@ export class ApiTypeAlias extends ApiTypeAlias_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // Warning: (ae-forgotten-export) The symbol "IApiTypeAliasJson" needs to be exported by the entry point index.d.ts // // @override (undocumented) @@ -584,11 +584,11 @@ export class ApiVariable extends ApiVariable_base { // @beta @override (undocumented) buildCanonicalReference(): DeclarationReference; // @override (undocumented) - readonly containerKey: string; + get containerKey(): string; // (undocumented) static getContainerKey(name: string): string; // @override (undocumented) - readonly kind: ApiItemKind; + get kind(): ApiItemKind; // Warning: (ae-forgotten-export) The symbol "IApiVariableJson" needs to be exported by the entry point index.d.ts // // @override (undocumented) @@ -604,9 +604,9 @@ export type Constructor = new (...args: any[]) => T; // @public export class Excerpt { constructor(tokens: ReadonlyArray, tokenRange: IExcerptTokenRange); - readonly isEmpty: boolean; + get isEmpty(): boolean; readonly spannedTokens: ReadonlyArray; - readonly text: string; + get text(): string; readonly tokenRange: Readonly; readonly tokens: ReadonlyArray; } @@ -614,9 +614,9 @@ export class Excerpt { // @public export class ExcerptToken { constructor(kind: ExcerptTokenKind, text: string, canonicalReference?: DeclarationReference); - readonly canonicalReference: DeclarationReference | undefined; - readonly kind: ExcerptTokenKind; - readonly text: string; + get canonicalReference(): DeclarationReference | undefined; + get kind(): ExcerptTokenKind; + get text(): string; } // @public (undocumented) @@ -859,7 +859,7 @@ export class Parameter { constructor(options: IParameterOptions); name: string; readonly parameterTypeExcerpt: Excerpt; - readonly tsdocParamBlock: tsdoc.DocParamBlock | undefined; + get tsdocParamBlock(): tsdoc.DocParamBlock | undefined; } // @public @@ -888,7 +888,7 @@ export class TypeParameter { readonly constraintExcerpt: Excerpt; readonly defaultTypeExcerpt: Excerpt; name: string; - readonly tsdocTypeParamBlock: tsdoc.DocParamBlock | undefined; + get tsdocTypeParamBlock(): tsdoc.DocParamBlock | undefined; } diff --git a/common/reviews/api/api-extractor.api.md b/common/reviews/api/api-extractor.api.md index d1689f7e60d..c89067be241 100644 --- a/common/reviews/api/api-extractor.api.md +++ b/common/reviews/api/api-extractor.api.md @@ -34,8 +34,8 @@ export const enum ConsoleMessageId { export class Extractor { static invoke(extractorConfig: ExtractorConfig, options?: IExtractorInvokeOptions): ExtractorResult; static loadConfigAndInvoke(configFilePath: string, options?: IExtractorInvokeOptions): ExtractorResult; - static readonly packageName: string; - static readonly version: string; + static get packageName(): string; + static get version(): string; } // @public @@ -93,8 +93,10 @@ export class ExtractorMessage { formatMessageWithLocation(workingPackageFolderPath: string | undefined): string; // (undocumented) formatMessageWithoutLocation(): string; - handled: boolean; - logLevel: ExtractorLogLevel; + get handled(): boolean; + set handled(value: boolean); + get logLevel(): ExtractorLogLevel; + set logLevel(value: ExtractorLogLevel); readonly messageId: tsdoc.TSDocMessageId | ExtractorMessageId | ConsoleMessageId | string; readonly properties: IExtractorMessageProperties; readonly sourceFileColumn: number | undefined; diff --git a/common/reviews/api/debug-certificate-manager.api.md b/common/reviews/api/debug-certificate-manager.api.md index 0fa887fc061..d8b96640255 100644 --- a/common/reviews/api/debug-certificate-manager.api.md +++ b/common/reviews/api/debug-certificate-manager.api.md @@ -16,9 +16,11 @@ export class CertificateManager { // @public export class CertificateStore { constructor(); - certificateData: string | undefined; - readonly certificatePath: string; - keyData: string | undefined; + get certificateData(): string | undefined; + set certificateData(certificate: string | undefined); + get certificatePath(): string; + get keyData(): string | undefined; + set keyData(key: string | undefined); } // @public diff --git a/common/reviews/api/gulp-core-build.api.md b/common/reviews/api/gulp-core-build.api.md index cec46164946..4374a690b1c 100644 --- a/common/reviews/api/gulp-core-build.api.md +++ b/common/reviews/api/gulp-core-build.api.md @@ -121,7 +121,7 @@ export abstract class GulpTask implements IExecutable { readJSONSync(localPath: string): JsonObject | undefined; replaceConfig(taskConfig: TTaskConfig): void; resolvePath(localPath: string): string; - readonly schema: JsonObject | undefined; + get schema(): JsonObject | undefined; setConfig(taskConfig: Partial): void; taskConfig: TTaskConfig; } diff --git a/common/reviews/api/module-minifier-plugin.api.md b/common/reviews/api/module-minifier-plugin.api.md index 92d7aab9b19..2b7d310d5f1 100644 --- a/common/reviews/api/module-minifier-plugin.api.md +++ b/common/reviews/api/module-minifier-plugin.api.md @@ -202,7 +202,8 @@ export class SynchronousMinifier implements IModuleMinifier { export class WorkerPoolMinifier implements IModuleMinifier { constructor(options: IWorkerPoolMinifierOptions); // (undocumented) - maxThreads: number; + get maxThreads(): number; + set maxThreads(threads: number); minify(request: IModuleMinificationRequest, callback: IModuleMinificationCallback): void; // (undocumented) ref(): () => Promise; diff --git a/common/reviews/api/node-core-library.api.md b/common/reviews/api/node-core-library.api.md index 44f57f51839..9135c28561f 100644 --- a/common/reviews/api/node-core-library.api.md +++ b/common/reviews/api/node-core-library.api.md @@ -111,8 +111,8 @@ export enum ColorValue { // @beta export class ConsoleTerminalProvider implements ITerminalProvider { constructor(options?: Partial); - readonly eolCharacter: string; - readonly supportsColor: boolean; + get eolCharacter(): string; + get supportsColor(): boolean; verboseEnabled: boolean; write(data: string, severity: TerminalProviderSeverity): void; } @@ -503,7 +503,7 @@ export class JsonSchema { ensureCompiled(): void; static fromFile(filename: string, options?: IJsonSchemaFromFileOptions): JsonSchema; static fromLoadedObject(schemaObject: JsonObject): JsonSchema; - readonly shortName: string; + get shortName(): string; validateObject(jsonObject: JsonObject, filenameForErrors: string, options?: IJsonSchemaValidateOptions): void; validateObjectWithCallback(jsonObject: JsonObject, errorCallback: (errorInfo: IJsonSchemaErrorInfo) => void): void; } @@ -529,10 +529,10 @@ export type LegacyCallback = (error: TError | null | undefined, // @public export class LockFile { static acquire(resourceFolder: string, resourceName: string, maxWaitMs?: number): Promise; - readonly dirtyWhenAcquired: boolean; - readonly filePath: string; + get dirtyWhenAcquired(): boolean; + get filePath(): string; static getLockFilePath(resourceFolder: string, resourceName: string, pid?: number): string; - readonly isReleased: boolean; + get isReleased(): boolean; release(): void; static tryAcquire(resourceFolder: string, resourceName: string): LockFile | undefined; } @@ -556,7 +556,7 @@ export const enum NewlineKind { export class PackageJsonLookup { constructor(parameters?: IPackageJsonLookupParameters); clearCache(): void; - static readonly instance: PackageJsonLookup; + static get instance(): PackageJsonLookup; loadNodePackageJson(jsonFilename: string): INodePackageJson; static loadOwnPackageJson(dirnameOfCaller: string): IPackageJson; loadPackageJson(jsonFilename: string): IPackageJson; @@ -620,9 +620,9 @@ export class ProtectableMap { forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void; get(key: K): V | undefined; has(key: K): boolean; - readonly protectedView: Map; + get protectedView(): Map; set(key: K, value: V): this; - readonly size: number; + get size(): number; } // @public @@ -639,12 +639,12 @@ export class Sort { // @beta export class StringBufferTerminalProvider implements ITerminalProvider { constructor(supportsColor?: boolean); - readonly eolCharacter: string; + get eolCharacter(): string; getErrorOutput(options?: IStringBufferOutputOptions): string; getOutput(options?: IStringBufferOutputOptions): string; getVerbose(options?: IStringBufferOutputOptions): string; getWarningOutput(options?: IStringBufferOutputOptions): string; - readonly supportsColor: boolean; + get supportsColor(): boolean; write(data: string, severity: TerminalProviderSeverity): void; } diff --git a/common/reviews/api/rig-package.api.md b/common/reviews/api/rig-package.api.md index 3c839547a3c..e030002b125 100644 --- a/common/reviews/api/rig-package.api.md +++ b/common/reviews/api/rig-package.api.md @@ -21,7 +21,7 @@ export class RigConfig { readonly filePath: string; getResolvedProfileFolder(): string; getResolvedProfileFolderAsync(): Promise; - static readonly jsonSchemaObject: object; + static get jsonSchemaObject(): object; static jsonSchemaPath: string; static loadForProjectFolder(options: ILoadForProjectFolderOptions): RigConfig; static loadForProjectFolderAsync(options: ILoadForProjectFolderOptions): Promise; diff --git a/common/reviews/api/rush-lib.api.md b/common/reviews/api/rush-lib.api.md index dd875c08cfd..261f47f3d00 100644 --- a/common/reviews/api/rush-lib.api.md +++ b/common/reviews/api/rush-lib.api.md @@ -37,11 +37,11 @@ export class ApprovedPackagesPolicy { // // @internal constructor(rushConfiguration: RushConfiguration, rushConfigurationJson: IRushConfigurationJson); - readonly browserApprovedPackages: ApprovedPackagesConfiguration; - readonly enabled: boolean; - readonly ignoredNpmScopes: Set; - readonly nonbrowserApprovedPackages: ApprovedPackagesConfiguration; - readonly reviewCategories: Set; + get browserApprovedPackages(): ApprovedPackagesConfiguration; + get enabled(): boolean; + get ignoredNpmScopes(): Set; + get nonbrowserApprovedPackages(): ApprovedPackagesConfiguration; + get reviewCategories(): Set; } // @beta @@ -67,15 +67,15 @@ export class ChangeManager { // @public export class CommonVersionsConfiguration { - readonly allowedAlternativeVersions: Map>; - readonly filePath: string; + get allowedAlternativeVersions(): Map>; + get filePath(): string; getAllPreferredVersions(): Map; getPreferredVersionsHash(): string; - readonly implicitlyPreferredVersions: boolean | undefined; + get implicitlyPreferredVersions(): boolean | undefined; static loadFromFile(jsonFilename: string): CommonVersionsConfiguration; - readonly preferredVersions: Map; + get preferredVersions(): Map; save(): boolean; - readonly xstitchPreferredVersions: Map; + get xstitchPreferredVersions(): Map; } // @beta (undocumented) @@ -124,7 +124,7 @@ export class EventHooks { export class ExperimentsConfiguration { // @internal constructor(jsonFileName: string); - readonly configuration: Readonly; + get configuration(): Readonly; } // @public @@ -160,8 +160,8 @@ export class IndividualVersionPolicy extends VersionPolicy { bump(bumpType?: BumpType, identifier?: string): void; ensure(project: IPackageJson, force?: boolean): IPackageJson | undefined; // @internal - readonly _json: IIndividualVersionJson; - readonly lockedMajor: number | undefined; + get _json(): IIndividualVersionJson; + get lockedMajor(): number | undefined; validate(versionString: string, packageName: string): void; } @@ -200,9 +200,9 @@ export class _LastInstallFlag { checkValidAndReportStoreIssues(): boolean; clear(): void; create(): void; - protected readonly flagName: string; + protected get flagName(): string; isValid(): boolean; - readonly path: string; + get path(): string; } // @beta @@ -214,12 +214,12 @@ export class LockStepVersionPolicy extends VersionPolicy { bump(bumpType?: BumpType, identifier?: string): void; ensure(project: IPackageJson, force?: boolean): IPackageJson | undefined; // @internal - readonly _json: ILockStepVersionJson; - readonly mainProject: string | undefined; - readonly nextBump: BumpType; + get _json(): ILockStepVersionJson; + get mainProject(): string | undefined; + get nextBump(): BumpType; update(newVersionString: string): boolean; validate(versionString: string, packageName: string): void; - readonly version: string; + get version(): string; } // @public @@ -232,29 +232,29 @@ export class NpmOptionsConfiguration extends PackageManagerOptionsConfigurationB export class PackageJsonDependency { constructor(name: string, version: string, type: DependencyType, onChange: () => void); // (undocumented) - readonly dependencyType: DependencyType; + get dependencyType(): DependencyType; // (undocumented) - readonly name: string; + get name(): string; // (undocumented) setVersion(newVersion: string): void; // (undocumented) - readonly version: string; + get version(): string; } // @beta (undocumented) export class PackageJsonEditor { // (undocumented) addOrUpdateDependency(packageName: string, newVersion: string, dependencyType: DependencyType): void; - readonly dependencyList: ReadonlyArray; - readonly devDependencyList: ReadonlyArray; + get dependencyList(): ReadonlyArray; + get devDependencyList(): ReadonlyArray; // (undocumented) - readonly filePath: string; + get filePath(): string; // (undocumented) static fromObject(object: IPackageJson, filename: string): PackageJsonEditor; // (undocumented) static load(filePath: string): PackageJsonEditor; // (undocumented) - readonly name: string; + get name(): string; // (undocumented) saveIfModified(): boolean; // (undocumented) @@ -262,7 +262,7 @@ export class PackageJsonEditor { // (undocumented) tryGetDevDependency(packageName: string): PackageJsonDependency | undefined; // (undocumented) - readonly version: string; + get version(): string; } // @beta @@ -270,7 +270,7 @@ export abstract class PackageManager { // @internal protected constructor(version: string, packageManager: PackageManagerName); readonly packageManager: PackageManagerName; - readonly shrinkwrapFilename: string; + get shrinkwrapFilename(): string; // (undocumented) protected _shrinkwrapFilename: string; readonly version: string; @@ -303,10 +303,10 @@ export type PnpmStoreOptions = 'local' | 'global'; // @public export class RepoStateFile { - readonly filePath: string; + get filePath(): string; static loadFromFile(jsonFilename: string, variant: string | undefined): RepoStateFile; - readonly pnpmShrinkwrapHash: string | undefined; - readonly preferredVersionsHash: string | undefined; + get pnpmShrinkwrapHash(): string | undefined; + get preferredVersionsHash(): string | undefined; refreshState(rushConfiguration: RushConfiguration): boolean; } @@ -317,30 +317,30 @@ export type ResolutionStrategy = 'fewer-dependencies' | 'fast'; export class Rush { static launch(launcherVersion: string, arg: ILaunchOptions): void; static launchRushX(launcherVersion: string, options: ILaunchOptions): void; - static readonly version: string; + static get version(): string; } // @public export class RushConfiguration { - readonly allowMostlyStandardPackageNames: boolean; - readonly approvedPackagesPolicy: ApprovedPackagesPolicy; - readonly changesFolder: string; + get allowMostlyStandardPackageNames(): boolean; + get approvedPackagesPolicy(): ApprovedPackagesPolicy; + get changesFolder(): string; // @deprecated - readonly committedShrinkwrapFilename: string; - readonly commonAutoinstallersFolder: string; - readonly commonFolder: string; - readonly commonRushConfigFolder: string; - readonly commonScriptsFolder: string; - readonly commonTempFolder: string; + get committedShrinkwrapFilename(): string; + get commonAutoinstallersFolder(): string; + get commonFolder(): string; + get commonRushConfigFolder(): string; + get commonScriptsFolder(): string; + get commonTempFolder(): string; // @deprecated - readonly commonVersions: CommonVersionsConfiguration; - readonly currentInstalledVariant: string | undefined; - readonly currentVariantJsonFilename: string; - readonly ensureConsistentVersions: boolean; + get commonVersions(): CommonVersionsConfiguration; + get currentInstalledVariant(): string | undefined; + get currentVariantJsonFilename(): string; + get ensureConsistentVersions(): boolean; // @beta - readonly eventHooks: EventHooks; + get eventHooks(): EventHooks; // @beta - readonly experimentsConfiguration: ExperimentsConfiguration; + get experimentsConfiguration(): ExperimentsConfiguration; findProjectByShorthandName(shorthandProjectName: string): RushConfigurationProject | undefined; findProjectByTempName(tempProjectName: string): RushConfigurationProject | undefined; getCommittedShrinkwrapFilename(variant?: string | undefined): string; @@ -350,53 +350,53 @@ export class RushConfiguration { getProjectByName(projectName: string): RushConfigurationProject | undefined; getRepoState(variant?: string | undefined): RepoStateFile; getRepoStateFilePath(variant?: string | undefined): string; - readonly gitAllowedEmailRegExps: string[]; - readonly gitSampleEmail: string; - readonly gitVersionBumpCommitMessage: string | undefined; - readonly hotfixChangeEnabled: boolean; + get gitAllowedEmailRegExps(): string[]; + get gitSampleEmail(): string; + get gitVersionBumpCommitMessage(): string | undefined; + get hotfixChangeEnabled(): boolean; static loadFromConfigurationFile(rushJsonFilename: string): RushConfiguration; // (undocumented) static loadFromDefaultLocation(options?: ITryFindRushJsonLocationOptions): RushConfiguration; - readonly npmCacheFolder: string; - readonly npmOptions: NpmOptionsConfiguration; - readonly npmTmpFolder: string; - readonly packageManager: PackageManagerName; - readonly packageManagerOptions: PackageManagerOptionsConfigurationBase; - readonly packageManagerToolFilename: string; - readonly packageManagerToolVersion: string; + get npmCacheFolder(): string; + get npmOptions(): NpmOptionsConfiguration; + get npmTmpFolder(): string; + get packageManager(): PackageManagerName; + get packageManagerOptions(): PackageManagerOptionsConfigurationBase; + get packageManagerToolFilename(): string; + get packageManagerToolVersion(): string; // @beta - readonly packageManagerWrapper: PackageManager; - readonly packageNameParser: PackageNameParser; - readonly pnpmOptions: PnpmOptionsConfiguration; - readonly projectFolderMaxDepth: number; - readonly projectFolderMinDepth: number; - // (undocumented) - readonly projects: RushConfigurationProject[]; - // (undocumented) - readonly projectsByName: Map; - readonly repositoryDefaultBranch: string; - readonly repositoryDefaultFullyQualifiedRemoteBranch: string; - readonly repositoryDefaultRemote: string; - readonly repositoryUrl: string | undefined; + get packageManagerWrapper(): PackageManager; + get packageNameParser(): PackageNameParser; + get pnpmOptions(): PnpmOptionsConfiguration; + get projectFolderMaxDepth(): number; + get projectFolderMinDepth(): number; + // (undocumented) + get projects(): RushConfigurationProject[]; + // (undocumented) + get projectsByName(): Map; + get repositoryDefaultBranch(): string; + get repositoryDefaultFullyQualifiedRemoteBranch(): string; + get repositoryDefaultRemote(): string; + get repositoryUrl(): string | undefined; // @internal - readonly rushConfigurationJson: IRushConfigurationJson; - readonly rushJsonFile: string; - readonly rushJsonFolder: string; + get rushConfigurationJson(): IRushConfigurationJson; + get rushJsonFile(): string; + get rushJsonFolder(): string; // @deprecated - readonly rushLinkJsonFilename: string; - readonly shrinkwrapFilename: string; - readonly shrinkwrapFilePhrase: string; - readonly suppressNodeLtsWarning: boolean; + get rushLinkJsonFilename(): string; + get shrinkwrapFilename(): string; + get shrinkwrapFilePhrase(): string; + get suppressNodeLtsWarning(): boolean; // @beta - readonly telemetryEnabled: boolean; - readonly tempShrinkwrapFilename: string; - readonly tempShrinkwrapPreinstallFilename: string; + get telemetryEnabled(): boolean; + get tempShrinkwrapFilename(): string; + get tempShrinkwrapPreinstallFilename(): string; static tryFindRushJsonLocation(options?: ITryFindRushJsonLocationOptions): string | undefined; tryGetProjectForPath(currentFolderPath: string): RushConfigurationProject | undefined; // @beta (undocumented) - readonly versionPolicyConfiguration: VersionPolicyConfiguration; - readonly yarnCacheFolder: string; - readonly yarnOptions: YarnOptionsConfiguration; + get versionPolicyConfiguration(): VersionPolicyConfiguration; + get yarnCacheFolder(): string; + get yarnOptions(): YarnOptionsConfiguration; } // @public @@ -405,36 +405,36 @@ export class RushConfigurationProject { // // @internal constructor(projectJson: IRushConfigurationProjectJson, rushConfiguration: RushConfiguration, tempProjectName: string); - readonly cyclicDependencyProjects: Set; - readonly downstreamDependencyProjects: string[]; + get cyclicDependencyProjects(): Set; + get downstreamDependencyProjects(): string[]; // @beta - readonly isMainProject: boolean; - readonly localDependencyProjects: ReadonlyArray; + get isMainProject(): boolean; + get localDependencyProjects(): ReadonlyArray; // @deprecated - readonly packageJson: IPackageJson; + get packageJson(): IPackageJson; // @beta - readonly packageJsonEditor: PackageJsonEditor; - readonly packageName: string; - readonly projectFolder: string; - readonly projectRelativeFolder: string; - readonly projectRushTempFolder: string; - readonly reviewCategory: string | undefined; - readonly rushConfiguration: RushConfiguration; - readonly shouldPublish: boolean; - readonly skipRushCheck: boolean; - readonly tempProjectName: string; - readonly unscopedTempProjectName: string; + get packageJsonEditor(): PackageJsonEditor; + get packageName(): string; + get projectFolder(): string; + get projectRelativeFolder(): string; + get projectRushTempFolder(): string; + get reviewCategory(): string | undefined; + get rushConfiguration(): RushConfiguration; + get shouldPublish(): boolean; + get skipRushCheck(): boolean; + get tempProjectName(): string; + get unscopedTempProjectName(): string; // @beta - readonly versionPolicy: VersionPolicy | undefined; + get versionPolicy(): VersionPolicy | undefined; // @beta - readonly versionPolicyName: string | undefined; + get versionPolicyName(): string | undefined; } // @internal export class _RushGlobalFolder { constructor(); - readonly nodeSpecificPath: string; - readonly path: string; + get nodeSpecificPath(): string; + get path(): string; } // @beta @@ -444,15 +444,15 @@ export abstract class VersionPolicy { // @internal constructor(versionPolicyJson: IVersionPolicyJson); abstract bump(bumpType?: BumpType, identifier?: string): void; - readonly definitionName: VersionPolicyDefinitionName; + get definitionName(): VersionPolicyDefinitionName; abstract ensure(project: IPackageJson, force?: boolean): IPackageJson | undefined; - readonly exemptFromRushChange: boolean; - readonly isLockstepped: boolean; + get exemptFromRushChange(): boolean; + get isLockstepped(): boolean; // @internal - abstract readonly _json: IVersionPolicyJson; + abstract get _json(): IVersionPolicyJson; // @internal static load(versionPolicyJson: IVersionPolicyJson): VersionPolicy | undefined; - readonly policyName: string; + get policyName(): string; setDependenciesBeforeCommit(packageName: string, configuration: RushConfiguration): void; setDependenciesBeforePublish(packageName: string, configuration: RushConfiguration): void; // @internal (undocumented) @@ -468,7 +468,7 @@ export class VersionPolicyConfiguration { getVersionPolicy(policyName: string): VersionPolicy; update(versionPolicyName: string, newVersion: string): void; validate(projectsByName: Map): void; - readonly versionPolicies: Map; + get versionPolicies(): Map; } // @beta diff --git a/common/reviews/api/rush-stack-compiler-2.4.api.md b/common/reviews/api/rush-stack-compiler-2.4.api.md index 0609f13d7b4..6f3467c565f 100644 --- a/common/reviews/api/rush-stack-compiler-2.4.api.md +++ b/common/reviews/api/rush-stack-compiler-2.4.api.md @@ -69,35 +69,35 @@ export abstract class RushStackCompilerBase; + get bufferedChunks(): ReadonlyArray; // @internal (undocumented) _flushBufferedChunks(): void; - readonly isActive: boolean; + get isActive(): boolean; // (undocumented) onClose(): void; // (undocumented) @@ -44,8 +44,8 @@ export interface IStreamCollatorOptions { // @beta export class StreamCollator { constructor(options: IStreamCollatorOptions); - readonly activeTaskName: string; - readonly activeWriter: CollatedWriter | undefined; + get activeTaskName(): string; + get activeWriter(): CollatedWriter | undefined; // (undocumented) readonly destination: TerminalWritable; registerTask(taskName: string): CollatedWriter; @@ -53,7 +53,7 @@ export class StreamCollator { readonly terminal: CollatedTerminal; // @internal (undocumented) _writerClose(writer: CollatedWriter, bufferedChunks: ITerminalChunk[]): void; - readonly writers: ReadonlySet; + get writers(): ReadonlySet; // @internal (undocumented) _writerWriteChunk(writer: CollatedWriter, chunk: ITerminalChunk, bufferedChunks: ITerminalChunk[]): void; } diff --git a/common/reviews/api/terminal.api.md b/common/reviews/api/terminal.api.md index ad17d849d53..0f009313338 100644 --- a/common/reviews/api/terminal.api.md +++ b/common/reviews/api/terminal.api.md @@ -177,7 +177,7 @@ export abstract class TerminalWritable { // @sealed close(): void; // @sealed - readonly isOpen: boolean; + get isOpen(): boolean; // @virtual protected onClose(): void; protected abstract onWriteChunk(chunk: ITerminalChunk): void; diff --git a/common/reviews/api/ts-command-line.api.md b/common/reviews/api/ts-command-line.api.md index 56a6b971ae1..47335f0e37e 100644 --- a/common/reviews/api/ts-command-line.api.md +++ b/common/reviews/api/ts-command-line.api.md @@ -35,10 +35,10 @@ export class CommandLineChoiceParameter extends CommandLineParameter { readonly defaultValue: string | undefined; // @internal _getSupplementaryNotes(supplementaryNotes: string[]): void; - readonly kind: CommandLineParameterKind; + get kind(): CommandLineParameterKind; // @internal _setValue(data: any): void; - readonly value: string | undefined; + get value(): string | undefined; } // @public @@ -52,10 +52,10 @@ export class CommandLineFlagParameter extends CommandLineParameter { constructor(definition: ICommandLineFlagDefinition); // @override appendToArgList(argList: string[]): void; - readonly kind: CommandLineParameterKind; + get kind(): CommandLineParameterKind; // @internal _setValue(data: any): void; - readonly value: boolean; + get value(): boolean; } // @public @@ -72,10 +72,10 @@ export class CommandLineIntegerParameter extends CommandLineParameterWithArgumen readonly defaultValue: number | undefined; // @internal _getSupplementaryNotes(supplementaryNotes: string[]): void; - readonly kind: CommandLineParameterKind; + get kind(): CommandLineParameterKind; // @internal _setValue(data: any): void; - readonly value: number | undefined; + get value(): number | undefined; } // @public @@ -87,7 +87,7 @@ export abstract class CommandLineParameter { readonly environmentVariable: string | undefined; // @internal _getSupplementaryNotes(supplementaryNotes: string[]): void; - abstract readonly kind: CommandLineParameterKind; + abstract get kind(): CommandLineParameterKind; readonly longName: string; // @internal _parserKey: string; @@ -128,10 +128,10 @@ export abstract class CommandLineParameterProvider { getStringListParameter(parameterLongName: string): CommandLineStringListParameter; getStringParameter(parameterLongName: string): CommandLineStringParameter; protected abstract onDefineParameters(): void; - readonly parameters: ReadonlyArray; + get parameters(): ReadonlyArray; // @internal (undocumented) protected _processParsedData(data: _ICommandLineParserData): void; - readonly remainder: CommandLineRemainder | undefined; + get remainder(): CommandLineRemainder | undefined; renderHelpText(): string; } @@ -146,7 +146,7 @@ export abstract class CommandLineParameterWithArgument extends CommandLineParame // @public export abstract class CommandLineParser extends CommandLineParameterProvider { constructor(options: ICommandLineParserOptions); - readonly actions: ReadonlyArray; + get actions(): ReadonlyArray; addAction(action: CommandLineAction): void; execute(args?: string[]): Promise; executeWithoutErrorHandling(args?: string[]): Promise; @@ -167,7 +167,7 @@ export class CommandLineRemainder { readonly description: string; // @internal _setValue(data: any): void; - readonly values: ReadonlyArray; + get values(): ReadonlyArray; } // @public @@ -176,10 +176,10 @@ export class CommandLineStringListParameter extends CommandLineParameterWithArgu constructor(definition: ICommandLineStringListDefinition); // @override appendToArgList(argList: string[]): void; - readonly kind: CommandLineParameterKind; + get kind(): CommandLineParameterKind; // @internal _setValue(data: any): void; - readonly values: ReadonlyArray; + get values(): ReadonlyArray; } // @public @@ -191,10 +191,10 @@ export class CommandLineStringParameter extends CommandLineParameterWithArgument readonly defaultValue: string | undefined; // @internal _getSupplementaryNotes(supplementaryNotes: string[]): void; - readonly kind: CommandLineParameterKind; + get kind(): CommandLineParameterKind; // @internal _setValue(data: any): void; - readonly value: string | undefined; + get value(): string | undefined; } // @public (undocumented) From 71e10e09b216998269c0687b09aea13475ead8f7 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 22:28:09 -0700 Subject: [PATCH 27/36] Fix up inconsistencies on how RSC projects build; enable older RSC versions to compile using TS 3.9 so they can use dependencies built with TS 3.9 --- rush.json | 2 +- stack/rush-stack-compiler-3.0/package.json | 1 + stack/rush-stack-compiler-3.0/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.1/package.json | 1 + stack/rush-stack-compiler-3.1/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.2/package.json | 1 + stack/rush-stack-compiler-3.2/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.3/package.json | 1 + stack/rush-stack-compiler-3.3/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.4/package.json | 1 + stack/rush-stack-compiler-3.4/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.5/package.json | 1 + stack/rush-stack-compiler-3.5/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.6/package.json | 1 + stack/rush-stack-compiler-3.6/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.7/package.json | 1 + stack/rush-stack-compiler-3.7/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.8/package.json | 1 + stack/rush-stack-compiler-3.8/tsconfig.json | 9 +++------ stack/rush-stack-compiler-3.9/package.json | 1 + stack/rush-stack-compiler-3.9/tsconfig.json | 9 +++------ 21 files changed, 41 insertions(+), 61 deletions(-) diff --git a/rush.json b/rush.json index 55ec9ed17c0..e9183aa9ac7 100644 --- a/rush.json +++ b/rush.json @@ -1041,7 +1041,7 @@ "projectFolder": "stack/rush-stack-compiler-3.9", "reviewCategory": "libraries", "shouldPublish": true, - "cyclicDependencyProjects": ["@rushstack/heft"] + "cyclicDependencyProjects": ["@microsoft/rush-stack-compiler-3.9", "@rushstack/heft"] }, { "packageName": "@microsoft/rush-stack-compiler-shared", diff --git a/stack/rush-stack-compiler-3.0/package.json b/stack/rush-stack-compiler-3.0/package.json index 24f873398e1..45f385c10a5 100644 --- a/stack/rush-stack-compiler-3.0/package.json +++ b/stack/rush-stack-compiler-3.0/package.json @@ -30,6 +30,7 @@ "typescript": "~3.0.3" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.0/tsconfig.json b/stack/rush-stack-compiler-3.0/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.0/tsconfig.json +++ b/stack/rush-stack-compiler-3.0/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.1/package.json b/stack/rush-stack-compiler-3.1/package.json index 36ad57c664f..f610ed2fa54 100644 --- a/stack/rush-stack-compiler-3.1/package.json +++ b/stack/rush-stack-compiler-3.1/package.json @@ -30,6 +30,7 @@ "typescript": "~3.1.6" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.1/tsconfig.json b/stack/rush-stack-compiler-3.1/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.1/tsconfig.json +++ b/stack/rush-stack-compiler-3.1/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.2/package.json b/stack/rush-stack-compiler-3.2/package.json index eace72efebb..992e2a29da9 100644 --- a/stack/rush-stack-compiler-3.2/package.json +++ b/stack/rush-stack-compiler-3.2/package.json @@ -30,6 +30,7 @@ "typescript": "~3.2.4" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.2/tsconfig.json b/stack/rush-stack-compiler-3.2/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.2/tsconfig.json +++ b/stack/rush-stack-compiler-3.2/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.3/package.json b/stack/rush-stack-compiler-3.3/package.json index f14274c052a..3ae8bb1245c 100644 --- a/stack/rush-stack-compiler-3.3/package.json +++ b/stack/rush-stack-compiler-3.3/package.json @@ -30,6 +30,7 @@ "typescript": "~3.3.3" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.3/tsconfig.json b/stack/rush-stack-compiler-3.3/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.3/tsconfig.json +++ b/stack/rush-stack-compiler-3.3/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.4/package.json b/stack/rush-stack-compiler-3.4/package.json index fc19a216b4a..4580045def9 100644 --- a/stack/rush-stack-compiler-3.4/package.json +++ b/stack/rush-stack-compiler-3.4/package.json @@ -30,6 +30,7 @@ "typescript": "~3.4.3" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.4/tsconfig.json b/stack/rush-stack-compiler-3.4/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.4/tsconfig.json +++ b/stack/rush-stack-compiler-3.4/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.5/package.json b/stack/rush-stack-compiler-3.5/package.json index 97b017a89b4..99bd847f3da 100644 --- a/stack/rush-stack-compiler-3.5/package.json +++ b/stack/rush-stack-compiler-3.5/package.json @@ -30,6 +30,7 @@ "typescript": "~3.5.3" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.5/tsconfig.json b/stack/rush-stack-compiler-3.5/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.5/tsconfig.json +++ b/stack/rush-stack-compiler-3.5/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.6/package.json b/stack/rush-stack-compiler-3.6/package.json index 63374214ced..19ca59dfca2 100644 --- a/stack/rush-stack-compiler-3.6/package.json +++ b/stack/rush-stack-compiler-3.6/package.json @@ -30,6 +30,7 @@ "typescript": "~3.6.4" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.6/tsconfig.json b/stack/rush-stack-compiler-3.6/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.6/tsconfig.json +++ b/stack/rush-stack-compiler-3.6/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.7/package.json b/stack/rush-stack-compiler-3.7/package.json index 90567f3a84e..aa3f616391d 100644 --- a/stack/rush-stack-compiler-3.7/package.json +++ b/stack/rush-stack-compiler-3.7/package.json @@ -30,6 +30,7 @@ "typescript": "~3.7.2" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.7/tsconfig.json b/stack/rush-stack-compiler-3.7/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.7/tsconfig.json +++ b/stack/rush-stack-compiler-3.7/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.8/package.json b/stack/rush-stack-compiler-3.8/package.json index f2eccc44f47..2f3655733d9 100644 --- a/stack/rush-stack-compiler-3.8/package.json +++ b/stack/rush-stack-compiler-3.8/package.json @@ -30,6 +30,7 @@ "typescript": "~3.8.3" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "workspace:*", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.8/tsconfig.json b/stack/rush-stack-compiler-3.8/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.8/tsconfig.json +++ b/stack/rush-stack-compiler-3.8/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } diff --git a/stack/rush-stack-compiler-3.9/package.json b/stack/rush-stack-compiler-3.9/package.json index b22993b3064..26e84324935 100644 --- a/stack/rush-stack-compiler-3.9/package.json +++ b/stack/rush-stack-compiler-3.9/package.json @@ -30,6 +30,7 @@ "typescript": "~3.9.7" }, "devDependencies": { + "@microsoft/rush-stack-compiler-3.9": "0.4.21", "@microsoft/rush-stack-compiler-shared": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "0.8.0", diff --git a/stack/rush-stack-compiler-3.9/tsconfig.json b/stack/rush-stack-compiler-3.9/tsconfig.json index 6650bf1827f..48d9d500810 100644 --- a/stack/rush-stack-compiler-3.9/tsconfig.json +++ b/stack/rush-stack-compiler-3.9/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "./includes/tsconfig-node.json", + "extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-node.json", "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src" - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - "exclude": ["./node_modules", "./lib"] + "rootDir": "src" + } } From 77591cc7a456d2c63fa1627092ab7e17b8cac0fb Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 22:28:14 -0700 Subject: [PATCH 28/36] rush update --- common/config/rush/pnpm-lock.yaml | 20 ++++++++++++++++++++ common/config/rush/repo-state.json | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index bcba10bb3b2..1e57c346be7 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1859,11 +1859,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.0.3 typescript: 3.0.3 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -1887,11 +1889,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.1.6 typescript: 3.1.6 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -1915,11 +1919,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.2.4 typescript: 3.2.4 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -1943,11 +1949,13 @@ importers: tslint-microsoft-contrib: 6.2.0_5de1f8fa14d12d0f8943ae8c5c9e10ce typescript: 3.3.4000 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -1971,11 +1979,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.4.5 typescript: 3.4.5 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -1999,11 +2009,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.5.3 typescript: 3.5.3 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -2027,11 +2039,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.6.5 typescript: 3.6.5 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -2055,11 +2069,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.7.5 typescript: 3.7.5 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -2083,11 +2099,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.8.3 typescript: 3.8.3 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 'link:../rush-stack-compiler-3.9' '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 'workspace:*' '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 @@ -2111,11 +2129,13 @@ importers: tslint-microsoft-contrib: 6.2.0_tslint@5.20.1+typescript@3.9.7 typescript: 3.9.7 devDependencies: + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@microsoft/rush-stack-compiler-shared': 'link:../rush-stack-compiler-shared' '@rushstack/heft': 0.8.0 '@rushstack/pre-compile-hardlink-or-copy-plugin': 'link:../../heft-plugins/pre-compile-hardlink-or-copy-plugin' specifiers: '@microsoft/api-extractor': 'workspace:*' + '@microsoft/rush-stack-compiler-3.9': 0.4.21 '@microsoft/rush-stack-compiler-shared': 'workspace:*' '@rushstack/eslint-config': 'workspace:*' '@rushstack/heft': 0.8.0 diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json index c073836b06a..efbc70054b4 100644 --- a/common/config/rush/repo-state.json +++ b/common/config/rush/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "3875aac7f93a7c241f5616a2d19a586cc75ac4ea", + "pnpmShrinkwrapHash": "ac4ac6b7387a987134826692342f08095a9196b4", "preferredVersionsHash": "0f2f367d951f4cd546b698d668533c1ff056e334" } From e0b3545da3a05f17f7593b96324e0ec410cd177b Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 22:32:26 -0700 Subject: [PATCH 29/36] rush change --- .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../rush/octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../heft/octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../rig-package/octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ .../octogonz-ts-3.9_2020-09-29-05-30.json | 11 +++++++++++ 18 files changed, 198 insertions(+) create mode 100644 common/changes/@microsoft/api-documenter/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/api-extractor-model/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/api-extractor/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/gulp-core-build-mocha/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/gulp-core-build-sass/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/gulp-core-build-serve/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/gulp-core-build-typescript/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/gulp-core-build-webpack/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/gulp-core-build/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/node-library-build/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/rush/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@microsoft/web-library-build/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@rushstack/heft-config-file/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@rushstack/heft/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@rushstack/node-core-library/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@rushstack/rig-package/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@rushstack/tree-pattern/octogonz-ts-3.9_2020-09-29-05-30.json create mode 100644 common/changes/@rushstack/ts-command-line/octogonz-ts-3.9_2020-09-29-05-30.json diff --git a/common/changes/@microsoft/api-documenter/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/api-documenter/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..0ae9af331f9 --- /dev/null +++ b/common/changes/@microsoft/api-documenter/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/api-documenter" + } + ], + "packageName": "@microsoft/api-documenter", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/api-extractor-model/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/api-extractor-model/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..736d141f1de --- /dev/null +++ b/common/changes/@microsoft/api-extractor-model/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/api-extractor-model" + } + ], + "packageName": "@microsoft/api-extractor-model", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/api-extractor/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/api-extractor/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..bb2799599e3 --- /dev/null +++ b/common/changes/@microsoft/api-extractor/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/api-extractor" + } + ], + "packageName": "@microsoft/api-extractor", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/gulp-core-build-mocha/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/gulp-core-build-mocha/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..2500cede46a --- /dev/null +++ b/common/changes/@microsoft/gulp-core-build-mocha/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/gulp-core-build-mocha" + } + ], + "packageName": "@microsoft/gulp-core-build-mocha", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/gulp-core-build-sass/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/gulp-core-build-sass/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..04f21fe3578 --- /dev/null +++ b/common/changes/@microsoft/gulp-core-build-sass/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/gulp-core-build-sass" + } + ], + "packageName": "@microsoft/gulp-core-build-sass", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/gulp-core-build-serve/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/gulp-core-build-serve/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..97ef04ed1bc --- /dev/null +++ b/common/changes/@microsoft/gulp-core-build-serve/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/gulp-core-build-serve" + } + ], + "packageName": "@microsoft/gulp-core-build-serve", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/gulp-core-build-typescript/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/gulp-core-build-typescript/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..498356e5050 --- /dev/null +++ b/common/changes/@microsoft/gulp-core-build-typescript/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/gulp-core-build-typescript" + } + ], + "packageName": "@microsoft/gulp-core-build-typescript", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/gulp-core-build-webpack/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/gulp-core-build-webpack/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..29bb7bbe28c --- /dev/null +++ b/common/changes/@microsoft/gulp-core-build-webpack/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/gulp-core-build-webpack" + } + ], + "packageName": "@microsoft/gulp-core-build-webpack", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/gulp-core-build/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/gulp-core-build/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..064995c5bee --- /dev/null +++ b/common/changes/@microsoft/gulp-core-build/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/gulp-core-build" + } + ], + "packageName": "@microsoft/gulp-core-build", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/node-library-build/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/node-library-build/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..9a354192868 --- /dev/null +++ b/common/changes/@microsoft/node-library-build/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/node-library-build" + } + ], + "packageName": "@microsoft/node-library-build", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/rush/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..cf9ebc68e5b --- /dev/null +++ b/common/changes/@microsoft/rush/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "none", + "packageName": "@microsoft/rush" + } + ], + "packageName": "@microsoft/rush", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/web-library-build/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@microsoft/web-library-build/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..1197cd82d5b --- /dev/null +++ b/common/changes/@microsoft/web-library-build/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@microsoft/web-library-build" + } + ], + "packageName": "@microsoft/web-library-build", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-config-file/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@rushstack/heft-config-file/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..f821e242d1c --- /dev/null +++ b/common/changes/@rushstack/heft-config-file/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@rushstack/heft-config-file" + } + ], + "packageName": "@rushstack/heft-config-file", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@rushstack/heft/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..79b6be73d9b --- /dev/null +++ b/common/changes/@rushstack/heft/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@rushstack/heft" + } + ], + "packageName": "@rushstack/heft", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/node-core-library/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@rushstack/node-core-library/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..5619158a514 --- /dev/null +++ b/common/changes/@rushstack/node-core-library/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@rushstack/node-core-library" + } + ], + "packageName": "@rushstack/node-core-library", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rig-package/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@rushstack/rig-package/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..4c522259dd1 --- /dev/null +++ b/common/changes/@rushstack/rig-package/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@rushstack/rig-package" + } + ], + "packageName": "@rushstack/rig-package", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/tree-pattern/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@rushstack/tree-pattern/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..9ade4f3703b --- /dev/null +++ b/common/changes/@rushstack/tree-pattern/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@rushstack/tree-pattern" + } + ], + "packageName": "@rushstack/tree-pattern", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/ts-command-line/octogonz-ts-3.9_2020-09-29-05-30.json b/common/changes/@rushstack/ts-command-line/octogonz-ts-3.9_2020-09-29-05-30.json new file mode 100644 index 00000000000..e33cba1ebf5 --- /dev/null +++ b/common/changes/@rushstack/ts-command-line/octogonz-ts-3.9_2020-09-29-05-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Upgrade compiler; the API now requires TypeScript 3.9 or newer", + "type": "minor", + "packageName": "@rushstack/ts-command-line" + } + ], + "packageName": "@rushstack/ts-command-line", + "email": "4673363+octogonz@users.noreply.github.com" +} \ No newline at end of file From d86090fc4daa7d3192c3ca18f99f9c170063de3d Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 22:32:49 -0700 Subject: [PATCH 30/36] Update .api.md files to reflect TypeScript's famous breaking change --- .../api/gulp-core-build-webpack.api.md | 2 +- .../api/rush-stack-compiler-3.0.api.md | 26 +++++++++---------- .../api/rush-stack-compiler-3.1.api.md | 26 +++++++++---------- .../api/rush-stack-compiler-3.2.api.md | 26 +++++++++---------- .../api/rush-stack-compiler-3.3.api.md | 26 +++++++++---------- .../api/rush-stack-compiler-3.4.api.md | 26 +++++++++---------- .../api/rush-stack-compiler-3.5.api.md | 26 +++++++++---------- .../api/rush-stack-compiler-3.6.api.md | 26 +++++++++---------- 8 files changed, 92 insertions(+), 92 deletions(-) diff --git a/common/reviews/api/gulp-core-build-webpack.api.md b/common/reviews/api/gulp-core-build-webpack.api.md index 0e464fe275b..c44e66ff41a 100644 --- a/common/reviews/api/gulp-core-build-webpack.api.md +++ b/common/reviews/api/gulp-core-build-webpack.api.md @@ -41,7 +41,7 @@ export class WebpackTask extends GulpTask Date: Mon, 28 Sep 2020 22:34:19 -0700 Subject: [PATCH 31/36] Fix lint issue --- apps/rundown/src/launcher.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/rundown/src/launcher.ts b/apps/rundown/src/launcher.ts index 6a4910442e7..a79b5426c75 100644 --- a/apps/rundown/src/launcher.ts +++ b/apps/rundown/src/launcher.ts @@ -63,7 +63,7 @@ class Launcher { const callingModuleInfo: NodeModule = this; // Paranoidly use "arguments" in case some implementor passes additional undocumented arguments - // @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const importedModule: unknown = (realRequire as any).apply(callingModuleInfo, arguments); if (!importedModules.has(importedModule)) { From d3092ada9c94ac2d8bde8491c14ec0ec332b0bb4 Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 22:50:25 -0700 Subject: [PATCH 32/36] Temporarily disable API Extractor until we can upgrade the cyclic dependencies to get the fix for "typeof" --- ...actor.json => api-extractor.json.disabled} | 38 +++++++++---------- libraries/node-core-library/package.json | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) rename libraries/node-core-library/config/{api-extractor.json => api-extractor.json.disabled} (95%) diff --git a/libraries/node-core-library/config/api-extractor.json b/libraries/node-core-library/config/api-extractor.json.disabled similarity index 95% rename from libraries/node-core-library/config/api-extractor.json rename to libraries/node-core-library/config/api-extractor.json.disabled index 996e271d3dd..11c35fd5af1 100644 --- a/libraries/node-core-library/config/api-extractor.json +++ b/libraries/node-core-library/config/api-extractor.json.disabled @@ -1,19 +1,19 @@ -{ - "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } -} +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + "mainEntryPointFilePath": "/lib/index.d.ts", + + "apiReport": { + "enabled": true, + "reportFolder": "../../../common/reviews/api" + }, + + "docModel": { + "enabled": true, + "apiJsonFilePath": "../../../common/temp/api/.api.json" + }, + + "dtsRollup": { + "enabled": true + } +} diff --git a/libraries/node-core-library/package.json b/libraries/node-core-library/package.json index 430f8bbef1f..81f6d57baa8 100644 --- a/libraries/node-core-library/package.json +++ b/libraries/node-core-library/package.json @@ -3,7 +3,7 @@ "version": "3.33.6", "description": "Core libraries that every NodeJS toolchain project should use", "main": "lib/index.js", - "typings": "dist/node-core-library.d.ts", + "typings": "lib/index.d.ts", "license": "MIT", "repository": { "url": "https://github.com/microsoft/rushstack/tree/master/libraries/node-core-library" From 7bbc48566da058cf95f673ca472fa849b3e5e81b Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 22:54:12 -0700 Subject: [PATCH 33/36] Update imports --- apps/heft/src/plugins/ApiExtractorPlugin/ApiExtractorRunner.ts | 2 +- apps/heft/src/plugins/TypeScriptPlugin/EmitFilesPatch.ts | 2 +- apps/heft/src/plugins/TypeScriptPlugin/Tslint.ts | 2 +- apps/heft/src/plugins/TypeScriptPlugin/TypeScriptBuilder.ts | 2 +- .../plugins/TypeScriptPlugin/internalTypings/TslintInternals.ts | 2 +- .../TypeScriptPlugin/internalTypings/TypeScriptInternals.ts | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/heft/src/plugins/ApiExtractorPlugin/ApiExtractorRunner.ts b/apps/heft/src/plugins/ApiExtractorPlugin/ApiExtractorRunner.ts index 604afe5fbb6..5b9e31f1311 100644 --- a/apps/heft/src/plugins/ApiExtractorPlugin/ApiExtractorRunner.ts +++ b/apps/heft/src/plugins/ApiExtractorPlugin/ApiExtractorRunner.ts @@ -3,7 +3,7 @@ import * as path from 'path'; import { Terminal, Path } from '@rushstack/node-core-library'; -import { ApiExtractor as TApiExtractor } from '@microsoft/rush-stack-compiler-3.7'; +import { ApiExtractor as TApiExtractor } from '@microsoft/rush-stack-compiler-3.9'; import { SubprocessRunnerBase } from '../../utilities/subprocess/SubprocessRunnerBase'; import { IScopedLogger } from '../../pluginFramework/logging/ScopedLogger'; diff --git a/apps/heft/src/plugins/TypeScriptPlugin/EmitFilesPatch.ts b/apps/heft/src/plugins/TypeScriptPlugin/EmitFilesPatch.ts index b4a6a36edde..b95edface1e 100644 --- a/apps/heft/src/plugins/TypeScriptPlugin/EmitFilesPatch.ts +++ b/apps/heft/src/plugins/TypeScriptPlugin/EmitFilesPatch.ts @@ -3,7 +3,7 @@ import * as path from 'path'; import { Path, InternalError } from '@rushstack/node-core-library'; -import { Typescript as TTypescript } from '@microsoft/rush-stack-compiler-3.7'; +import { Typescript as TTypescript } from '@microsoft/rush-stack-compiler-3.9'; import { ExtendedTypeScript, IEmitResolver, diff --git a/apps/heft/src/plugins/TypeScriptPlugin/Tslint.ts b/apps/heft/src/plugins/TypeScriptPlugin/Tslint.ts index cb3e72bb4c5..a1ebb1791ad 100644 --- a/apps/heft/src/plugins/TypeScriptPlugin/Tslint.ts +++ b/apps/heft/src/plugins/TypeScriptPlugin/Tslint.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as path from 'path'; -import { Tslint as TTslint } from '@microsoft/rush-stack-compiler-3.7'; +import { Tslint as TTslint } from '@microsoft/rush-stack-compiler-3.9'; import * as crypto from 'crypto'; import { Import, Terminal, JsonFile } from '@rushstack/node-core-library'; diff --git a/apps/heft/src/plugins/TypeScriptPlugin/TypeScriptBuilder.ts b/apps/heft/src/plugins/TypeScriptPlugin/TypeScriptBuilder.ts index 34df3f7173c..c826f36a9e2 100644 --- a/apps/heft/src/plugins/TypeScriptPlugin/TypeScriptBuilder.ts +++ b/apps/heft/src/plugins/TypeScriptPlugin/TypeScriptBuilder.ts @@ -14,7 +14,7 @@ import { FileSystem } from '@rushstack/node-core-library'; import * as crypto from 'crypto'; -import { Typescript as TTypescript } from '@microsoft/rush-stack-compiler-3.7'; +import { Typescript as TTypescript } from '@microsoft/rush-stack-compiler-3.9'; import { ExtendedTypeScript, IExtendedProgram, diff --git a/apps/heft/src/plugins/TypeScriptPlugin/internalTypings/TslintInternals.ts b/apps/heft/src/plugins/TypeScriptPlugin/internalTypings/TslintInternals.ts index 41b09733d5b..96c59e5d583 100644 --- a/apps/heft/src/plugins/TypeScriptPlugin/internalTypings/TslintInternals.ts +++ b/apps/heft/src/plugins/TypeScriptPlugin/internalTypings/TslintInternals.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import { Tslint as TTslint } from '@microsoft/rush-stack-compiler-3.7'; +import { Tslint as TTslint } from '@microsoft/rush-stack-compiler-3.9'; import { IExtendedSourceFile } from './TypeScriptInternals'; type TrimmedLinter = Omit; diff --git a/apps/heft/src/plugins/TypeScriptPlugin/internalTypings/TypeScriptInternals.ts b/apps/heft/src/plugins/TypeScriptPlugin/internalTypings/TypeScriptInternals.ts index 33a3094c8d5..37717030741 100644 --- a/apps/heft/src/plugins/TypeScriptPlugin/internalTypings/TypeScriptInternals.ts +++ b/apps/heft/src/plugins/TypeScriptPlugin/internalTypings/TypeScriptInternals.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import { Typescript as TTypescript } from '@microsoft/rush-stack-compiler-3.7'; +import { Typescript as TTypescript } from '@microsoft/rush-stack-compiler-3.9'; // The specifics of these types aren't important /** From 98b50e13db939120e3972b033c38e1314f04e0bd Mon Sep 17 00:00:00 2001 From: Pete Gonzalez <4673363+octogonz@users.noreply.github.com> Date: Mon, 28 Sep 2020 23:22:36 -0700 Subject: [PATCH 34/36] Replace duplicated enums with Enum.getValueByKey() --- apps/rush-lib/src/api/EventHooks.ts | 12 ++---- apps/rush-lib/src/api/VersionPolicy.ts | 39 ++++--------------- .../rush-lib/src/cli/actions/VersionAction.ts | 8 ++-- apps/rush-lib/src/logic/PublishUtilities.ts | 16 +------- .../installManager/RushInstallManager.ts | 3 +- common/reviews/api/rush-lib.api.md | 2 - 6 files changed, 18 insertions(+), 62 deletions(-) diff --git a/apps/rush-lib/src/api/EventHooks.ts b/apps/rush-lib/src/api/EventHooks.ts index 921295907e0..25a137094d4 100644 --- a/apps/rush-lib/src/api/EventHooks.ts +++ b/apps/rush-lib/src/api/EventHooks.ts @@ -2,6 +2,7 @@ // See LICENSE in the project root for license information. import { IEventHooksJson } from './RushConfiguration'; +import { Enum } from '@rushstack/node-core-library'; /** * Events happen during Rush runs. @@ -26,13 +27,6 @@ export enum Event { postRushBuild = 4 } -const EVENT_NAME_MAPPING: { [name: string]: Event } = { - preRushInstall: Event.preRushInstall, - postRushInstall: Event.postRushInstall, - preRushBuild: Event.preRushBuild, - postRushBuild: Event.postRushBuild -}; - /** * This class represents Rush event hooks configured for this repo. * Hooks are customized script actions that Rush executes when specific events occur. @@ -48,9 +42,9 @@ export class EventHooks { public constructor(eventHooksJson: IEventHooksJson) { this._hooks = new Map(); for (const [name, eventHooks] of Object.entries(eventHooksJson)) { - const eventName: Event | undefined = EVENT_NAME_MAPPING[name]; + const eventName: Event | undefined = Enum.tryGetValueByKey(Event, name); if (eventName) { - this._hooks.set(eventName, eventHooks || []); + this._hooks.set(eventName, [...eventHooks] || []); } } } diff --git a/apps/rush-lib/src/api/VersionPolicy.ts b/apps/rush-lib/src/api/VersionPolicy.ts index b7272e9b1df..d3eed5c5ee7 100644 --- a/apps/rush-lib/src/api/VersionPolicy.ts +++ b/apps/rush-lib/src/api/VersionPolicy.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. import * as semver from 'semver'; -import { IPackageJson, Import } from '@rushstack/node-core-library'; +import { IPackageJson, Import, Enum } from '@rushstack/node-core-library'; import { IVersionPolicyJson, @@ -46,20 +46,6 @@ export enum VersionPolicyDefinitionName { 'individualVersion' } -const BUMP_TYPE_NAME_MAP: { [name: string]: BumpType } = { - none: BumpType.none, - prerelease: BumpType.prerelease, - patch: BumpType.patch, - preminor: BumpType.preminor, - minor: BumpType.minor, - major: BumpType.major -}; - -const VERSION_POLICY_DEFINITION_NAME_NAME_MAP: { [name: string]: VersionPolicyDefinitionName } = { - lockStepVersion: VersionPolicyDefinitionName.lockStepVersion, - individualVersion: VersionPolicyDefinitionName.individualVersion -}; - /** * This is the base class for version policy which controls how versions get bumped. * @beta @@ -76,7 +62,7 @@ export abstract class VersionPolicy { */ public constructor(versionPolicyJson: IVersionPolicyJson) { this._policyName = versionPolicyJson.policyName; - this._definitionName = VERSION_POLICY_DEFINITION_NAME_NAME_MAP[versionPolicyJson.definitionName]; + this._definitionName = Enum.getValueByKey(VersionPolicyDefinitionName, versionPolicyJson.definitionName); this._exemptFromRushChange = versionPolicyJson.exemptFromRushChange || false; const jsonDependencies: IVersionPolicyDependencyJson = versionPolicyJson.dependencies || {}; @@ -85,13 +71,6 @@ export abstract class VersionPolicy { jsonDependencies.versionFormatForPublish || VersionFormatForPublish.original; } - /** - * @internal - */ - public static tryParseBumpType(bumpTypeName: string): BumpType | undefined { - return BUMP_TYPE_NAME_MAP[bumpTypeName]; - } - /** * Loads from version policy json * @@ -100,8 +79,10 @@ export abstract class VersionPolicy { * @internal */ public static load(versionPolicyJson: IVersionPolicyJson): VersionPolicy | undefined { - const definition: VersionPolicyDefinitionName = - VERSION_POLICY_DEFINITION_NAME_NAME_MAP[versionPolicyJson.definitionName]; + const definition: VersionPolicyDefinitionName = Enum.getValueByKey( + VersionPolicyDefinitionName, + versionPolicyJson.definitionName + ); if (definition === VersionPolicyDefinitionName.lockStepVersion) { // eslint-disable-next-line @typescript-eslint/no-use-before-define return new LockStepVersionPolicy(versionPolicyJson as ILockStepVersionJson); @@ -239,14 +220,8 @@ export class LockStepVersionPolicy extends VersionPolicy { public constructor(versionPolicyJson: ILockStepVersionJson) { super(versionPolicyJson); this._version = new semver.SemVer(versionPolicyJson.version); + this._nextBump = Enum.getValueByKey(BumpType, versionPolicyJson.nextBump); this._mainProject = versionPolicyJson.mainProject; - - const nextBump: BumpType | undefined = VersionPolicy.tryParseBumpType(versionPolicyJson.nextBump); - if (!nextBump) { - throw new Error(`Unknown bump type: ${versionPolicyJson.nextBump}`); - } - - this._nextBump = nextBump; } /** diff --git a/apps/rush-lib/src/cli/actions/VersionAction.ts b/apps/rush-lib/src/cli/actions/VersionAction.ts index 6f1a15d0ee4..e53c107c0f3 100644 --- a/apps/rush-lib/src/cli/actions/VersionAction.ts +++ b/apps/rush-lib/src/cli/actions/VersionAction.ts @@ -2,10 +2,10 @@ // See LICENSE in the project root for license information. import * as semver from 'semver'; -import { IPackageJson, FileConstants, Import } from '@rushstack/node-core-library'; +import { IPackageJson, FileConstants, Import, Enum } from '@rushstack/node-core-library'; import { CommandLineFlagParameter, CommandLineStringParameter } from '@rushstack/ts-command-line'; -import { LockStepVersionPolicy, VersionPolicy } from '../../api/VersionPolicy'; +import { BumpType, LockStepVersionPolicy } from '../../api/VersionPolicy'; import { VersionPolicyConfiguration } from '../../api/VersionPolicyConfiguration'; import { RushConfiguration } from '../../api/RushConfiguration'; import { VersionControl } from '../../utilities/VersionControl'; @@ -122,7 +122,7 @@ export class VersionAction extends BaseRushAction { const tempBranch: string = 'version/bump-' + new Date().getTime(); await versionManager.bumpAsync( this._versionPolicy.value, - this._overwriteBump.value ? VersionPolicy.tryParseBumpType(this._overwriteBump.value) : undefined, + this._overwriteBump.value ? Enum.getValueByKey(BumpType, this._overwriteBump.value) : undefined, this._prereleaseIdentifier.value, true ); @@ -186,7 +186,7 @@ export class VersionAction extends BaseRushAction { throw new Error('Please choose --bump or --ensure-version-policy but not together.'); } - if (this._overwriteBump.value && !VersionPolicy.tryParseBumpType(this._overwriteBump.value)) { + if (this._overwriteBump.value && !Enum.tryGetValueByKey(BumpType, this._overwriteBump.value)) { throw new Error( 'The value of override-bump is not valid. ' + 'Valid values include prerelease, patch, preminor, minor, and major' diff --git a/apps/rush-lib/src/logic/PublishUtilities.ts b/apps/rush-lib/src/logic/PublishUtilities.ts index e00690471a0..713f12c5f45 100644 --- a/apps/rush-lib/src/logic/PublishUtilities.ts +++ b/apps/rush-lib/src/logic/PublishUtilities.ts @@ -10,7 +10,7 @@ import { EOL } from 'os'; import * as path from 'path'; import * as semver from 'semver'; -import { IPackageJson, JsonFile, FileConstants, Text } from '@rushstack/node-core-library'; +import { IPackageJson, JsonFile, FileConstants, Text, Enum } from '@rushstack/node-core-library'; import { IChangeInfo, ChangeType } from '../api/ChangeManagement'; import { RushConfigurationProject } from '../api/RushConfigurationProject'; @@ -25,15 +25,6 @@ export interface IChangeInfoHash { [key: string]: IChangeInfo; } -const CHANGE_TYPE_NAME_MAP: { [name: string]: ChangeType } = { - none: ChangeType.none, - dependency: ChangeType.dependency, - hotfix: ChangeType.hotfix, - patch: ChangeType.patch, - minor: ChangeType.minor, - major: ChangeType.major -}; - export class PublishUtilities { /** * Finds change requests in the given folder. @@ -518,10 +509,7 @@ export class PublishUtilities { // If the given change does not have a changeType, derive it from the "type" string. if (change.changeType === undefined) { - change.changeType = CHANGE_TYPE_NAME_MAP[change.type!]; - if (change.changeType === undefined) { - throw new Error(`Unknown change type "${change.type}"`); - } + change.changeType = Enum.tryGetValueByKey(ChangeType, change.type!); } if (!allChanges[packageName]) { diff --git a/apps/rush-lib/src/logic/installManager/RushInstallManager.ts b/apps/rush-lib/src/logic/installManager/RushInstallManager.ts index 1a3b7fd3fec..db452f0af27 100644 --- a/apps/rush-lib/src/logic/installManager/RushInstallManager.ts +++ b/apps/rush-lib/src/logic/installManager/RushInstallManager.ts @@ -8,7 +8,6 @@ import * as os from 'os'; import * as path from 'path'; import * as semver from 'semver'; import * as ssri from 'ssri'; -const globEscape: (unescaped: string) => string = require('glob-escape'); // No @types/glob-escape package exists import { JsonFile, Text, @@ -37,6 +36,8 @@ import { LinkManagerFactory } from '../LinkManagerFactory'; import { BaseLinkManager } from '../base/BaseLinkManager'; import { PnpmShrinkwrapFile, IPnpmShrinkwrapDependencyYaml } from '../pnpm/PnpmShrinkwrapFile'; +const globEscape: (unescaped: string) => string = require('glob-escape'); // No @types/glob-escape package exists + /** * The "noMtime" flag is new in tar@4.4.1 and not available yet for \@types/tar. * As a temporary workaround, augment the type. diff --git a/common/reviews/api/rush-lib.api.md b/common/reviews/api/rush-lib.api.md index 261f47f3d00..194a9027dca 100644 --- a/common/reviews/api/rush-lib.api.md +++ b/common/reviews/api/rush-lib.api.md @@ -455,8 +455,6 @@ export abstract class VersionPolicy { get policyName(): string; setDependenciesBeforeCommit(packageName: string, configuration: RushConfiguration): void; setDependenciesBeforePublish(packageName: string, configuration: RushConfiguration): void; - // @internal (undocumented) - static tryParseBumpType(bumpTypeName: string): BumpType | undefined; abstract validate(versionString: string, packageName: string): void; } From 9ec58dcc176dc9bf7171df56988612a48bdbad03 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Mon, 28 Sep 2020 23:31:12 -0700 Subject: [PATCH 35/36] Rush change --- .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ .../ianc-strict-rigs_2020-09-29-06-31.json | 11 +++++++++++ 18 files changed, 198 insertions(+) create mode 100644 common/changes/@microsoft/rush-stack-compiler-2.4/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-2.7/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-2.8/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-2.9/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.0/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.1/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.2/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.3/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.4/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.5/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.6/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.7/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.8/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@microsoft/rush-stack-compiler-3.9/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@rushstack/eslint-config/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@rushstack/eslint-patch/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@rushstack/eslint-plugin-security/ianc-strict-rigs_2020-09-29-06-31.json create mode 100644 common/changes/@rushstack/eslint-plugin/ianc-strict-rigs_2020-09-29-06-31.json diff --git a/common/changes/@microsoft/rush-stack-compiler-2.4/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-2.4/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..51d83b49782 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-2.4/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-2.4", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-2.4", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-2.7/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-2.7/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..4332a606d95 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-2.7/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-2.7", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-2.7", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-2.8/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-2.8/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..d0c952ac783 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-2.8/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-2.8", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-2.8", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-2.9/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-2.9/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..d3ac7a4f26e --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-2.9/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-2.9", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-2.9", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.0/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.0/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..7d10a7ca60a --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.0/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.0", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.0", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.1/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.1/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..8f56f3a4fa8 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.1/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.1", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.1", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.2/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.2/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..0664aa58c61 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.2/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.2", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.2", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.3/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.3/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..287be8ee564 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.3/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.3", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.3", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.4/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.4/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..b9ac824f08c --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.4/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.4", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.4", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.5/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.5/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..0dd7f7acecc --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.5/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.5", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.5", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.6/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.6/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..639425f64b1 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.6/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.6", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.6", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.7/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.7/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..1bbc123fffa --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.7/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.7", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.7", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.8/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.8/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..09079c2ad17 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.8/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.8", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.8", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush-stack-compiler-3.9/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@microsoft/rush-stack-compiler-3.9/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..4442fa80609 --- /dev/null +++ b/common/changes/@microsoft/rush-stack-compiler-3.9/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush-stack-compiler-3.9", + "comment": "", + "type": "none" + } + ], + "packageName": "@microsoft/rush-stack-compiler-3.9", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-config/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@rushstack/eslint-config/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..321fcf6f048 --- /dev/null +++ b/common/changes/@rushstack/eslint-config/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-config", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-config", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-patch/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@rushstack/eslint-patch/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..f4f832659ee --- /dev/null +++ b/common/changes/@rushstack/eslint-patch/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-patch", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-patch", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-security/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@rushstack/eslint-plugin-security/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..fbab3fb31ad --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-security/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-plugin-security", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-plugin-security", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin/ianc-strict-rigs_2020-09-29-06-31.json b/common/changes/@rushstack/eslint-plugin/ianc-strict-rigs_2020-09-29-06-31.json new file mode 100644 index 00000000000..bc91cd1b42d --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin/ianc-strict-rigs_2020-09-29-06-31.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-plugin", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-plugin", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file From 380f7e9ae38bb8d9a8730215cb486b4cfb042af0 Mon Sep 17 00:00:00 2001 From: Ian Clanton-Thuon Date: Mon, 28 Sep 2020 23:48:32 -0700 Subject: [PATCH 36/36] Fix some RSC references. --- build-tests/localization-plugin-test-01/webpack.config.js | 2 +- build-tests/localization-plugin-test-02/webpack.config.js | 2 +- build-tests/localization-plugin-test-03/webpack.config.js | 2 +- build-tests/node-library-build-tslint-test/tslint.json | 2 +- build-tests/web-library-build-test/tslint.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build-tests/localization-plugin-test-01/webpack.config.js b/build-tests/localization-plugin-test-01/webpack.config.js index b4995b37f8f..e8b93a51f64 100644 --- a/build-tests/localization-plugin-test-01/webpack.config.js +++ b/build-tests/localization-plugin-test-01/webpack.config.js @@ -19,7 +19,7 @@ function generateConfiguration(mode, outputFolderName) { loader: require.resolve('ts-loader'), exclude: /(node_modules)/, options: { - compiler: require.resolve('@microsoft/rush-stack-compiler-3.5/node_modules/typescript'), + compiler: require.resolve('@microsoft/rush-stack-compiler-3.9/node_modules/typescript'), logLevel: 'ERROR', configFile: path.resolve(__dirname, 'tsconfig.json') } diff --git a/build-tests/localization-plugin-test-02/webpack.config.js b/build-tests/localization-plugin-test-02/webpack.config.js index b6afcbd6cb6..421c52c3f8d 100644 --- a/build-tests/localization-plugin-test-02/webpack.config.js +++ b/build-tests/localization-plugin-test-02/webpack.config.js @@ -19,7 +19,7 @@ function generateConfiguration(mode, outputFolderName) { loader: require.resolve('ts-loader'), exclude: /(node_modules)/, options: { - compiler: require.resolve('@microsoft/rush-stack-compiler-3.5/node_modules/typescript'), + compiler: require.resolve('@microsoft/rush-stack-compiler-3.9/node_modules/typescript'), logLevel: 'ERROR', configFile: path.resolve(__dirname, 'tsconfig.json') } diff --git a/build-tests/localization-plugin-test-03/webpack.config.js b/build-tests/localization-plugin-test-03/webpack.config.js index 52ee99dba01..30b3db905df 100644 --- a/build-tests/localization-plugin-test-03/webpack.config.js +++ b/build-tests/localization-plugin-test-03/webpack.config.js @@ -47,7 +47,7 @@ function generateConfiguration(mode, outputFolderName) { loader: require.resolve('ts-loader'), exclude: /(node_modules)/, options: { - compiler: require.resolve('@microsoft/rush-stack-compiler-3.5/node_modules/typescript'), + compiler: require.resolve('@microsoft/rush-stack-compiler-3.9/node_modules/typescript'), logLevel: 'ERROR', configFile: path.resolve(__dirname, 'tsconfig.json') } diff --git a/build-tests/node-library-build-tslint-test/tslint.json b/build-tests/node-library-build-tslint-test/tslint.json index 60db661e377..5011aa2764c 100644 --- a/build-tests/node-library-build-tslint-test/tslint.json +++ b/build-tests/node-library-build-tslint-test/tslint.json @@ -1,3 +1,3 @@ { - "extends": "@microsoft/rush-stack-compiler-3.5/includes/tslint.json" + "extends": "@microsoft/rush-stack-compiler-3.9/includes/tslint.json" } diff --git a/build-tests/web-library-build-test/tslint.json b/build-tests/web-library-build-test/tslint.json index 60db661e377..5011aa2764c 100644 --- a/build-tests/web-library-build-test/tslint.json +++ b/build-tests/web-library-build-test/tslint.json @@ -1,3 +1,3 @@ { - "extends": "@microsoft/rush-stack-compiler-3.5/includes/tslint.json" + "extends": "@microsoft/rush-stack-compiler-3.9/includes/tslint.json" }