@rushstack/package-extractor 0.10.24 → 0.10.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.52.3"
8
+ "packageVersion": "7.52.4"
9
9
  }
10
10
  ]
11
11
  }
@@ -3,6 +3,6 @@ import type { ITerminal } from '@rushstack/terminal';
3
3
  export declare class CreateLinksCommandLineParser extends CommandLineParser {
4
4
  private readonly _terminal;
5
5
  constructor(terminal: ITerminal);
6
- protected onExecute(): Promise<void>;
6
+ protected onExecuteAsync(): Promise<void>;
7
7
  }
8
8
  //# sourceMappingURL=CreateLinksCommandLineParser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateLinksCommandLineParser.d.ts","sourceRoot":"","sources":["../../../../src/scripts/createLinks/cli/CreateLinksCommandLineParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKrD,qBAAa,4BAA6B,SAAQ,iBAAiB;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAEnB,QAAQ,EAAE,SAAS;cAYtB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAc3C"}
1
+ {"version":3,"file":"CreateLinksCommandLineParser.d.ts","sourceRoot":"","sources":["../../../../src/scripts/createLinks/cli/CreateLinksCommandLineParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKrD,qBAAa,4BAA6B,SAAQ,iBAAiB;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAEnB,QAAQ,EAAE,SAAS;cAYb,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAazD"}
@@ -17,11 +17,10 @@ class CreateLinksCommandLineParser extends ts_command_line_1.CommandLineParser {
17
17
  this.addAction(new CreateLinksAction_1.CreateLinksAction(this._terminal));
18
18
  this.addAction(new RemoveLinksAction_1.RemoveLinksAction(this._terminal));
19
19
  }
20
- async onExecute() {
21
- // override
20
+ async onExecuteAsync() {
22
21
  process.exitCode = 1;
23
22
  try {
24
- await super.onExecute();
23
+ await super.onExecuteAsync();
25
24
  process.exitCode = 0;
26
25
  }
27
26
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateLinksCommandLineParser.js","sourceRoot":"","sources":["../../../../src/scripts/createLinks/cli/CreateLinksCommandLineParser.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,gEAA+D;AAC/D,oEAAoE;AAGpE,mEAAgE;AAChE,mEAAgE;AAEhE,MAAa,4BAA6B,SAAQ,mCAAiB;IAGjE,YAAmB,QAAmB;QACpC,KAAK,CAAC;YACJ,YAAY,EAAE,cAAc;YAC5B,eAAe,EAAE,sDAAsD;SACxE,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,CAAC,SAAS,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,KAAK,CAAC,SAAS;QACvB,WAAW;QACX,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,wCAAoB,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA7BD,oEA6BC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport { CommandLineParser } from '@rushstack/ts-command-line';\nimport { AlreadyReportedError } from '@rushstack/node-core-library';\nimport type { ITerminal } from '@rushstack/terminal';\n\nimport { CreateLinksAction } from './actions/CreateLinksAction';\nimport { RemoveLinksAction } from './actions/RemoveLinksAction';\n\nexport class CreateLinksCommandLineParser extends CommandLineParser {\n private readonly _terminal: ITerminal;\n\n public constructor(terminal: ITerminal) {\n super({\n toolFilename: 'create-links',\n toolDescription: 'Create or remove symlinks for the extracted packages'\n });\n\n this._terminal = terminal;\n\n this.addAction(new CreateLinksAction(this._terminal));\n this.addAction(new RemoveLinksAction(this._terminal));\n }\n\n protected async onExecute(): Promise<void> {\n // override\n process.exitCode = 1;\n\n try {\n await super.onExecute();\n process.exitCode = 0;\n } catch (error) {\n if (!(error instanceof AlreadyReportedError)) {\n this._terminal.writeErrorLine();\n this._terminal.writeErrorLine('ERROR: ' + error.message.trim());\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"CreateLinksCommandLineParser.js","sourceRoot":"","sources":["../../../../src/scripts/createLinks/cli/CreateLinksCommandLineParser.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,gEAA+D;AAC/D,oEAAoE;AAGpE,mEAAgE;AAChE,mEAAgE;AAEhE,MAAa,4BAA6B,SAAQ,mCAAiB;IAGjE,YAAmB,QAAmB;QACpC,KAAK,CAAC;YACJ,YAAY,EAAE,cAAc;YAC5B,eAAe,EAAE,sDAAsD;SACxE,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,CAAC,SAAS,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC;IAEkB,KAAK,CAAC,cAAc;QACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;YAC7B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,wCAAoB,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA5BD,oEA4BC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport { CommandLineParser } from '@rushstack/ts-command-line';\nimport { AlreadyReportedError } from '@rushstack/node-core-library';\nimport type { ITerminal } from '@rushstack/terminal';\n\nimport { CreateLinksAction } from './actions/CreateLinksAction';\nimport { RemoveLinksAction } from './actions/RemoveLinksAction';\n\nexport class CreateLinksCommandLineParser extends CommandLineParser {\n private readonly _terminal: ITerminal;\n\n public constructor(terminal: ITerminal) {\n super({\n toolFilename: 'create-links',\n toolDescription: 'Create or remove symlinks for the extracted packages'\n });\n\n this._terminal = terminal;\n\n this.addAction(new CreateLinksAction(this._terminal));\n this.addAction(new RemoveLinksAction(this._terminal));\n }\n\n protected override async onExecuteAsync(): Promise<void> {\n process.exitCode = 1;\n\n try {\n await super.onExecuteAsync();\n process.exitCode = 0;\n } catch (error) {\n if (!(error instanceof AlreadyReportedError)) {\n this._terminal.writeErrorLine();\n this._terminal.writeErrorLine('ERROR: ' + error.message.trim());\n }\n }\n }\n}\n"]}
@@ -5,6 +5,6 @@ export declare class CreateLinksAction extends CommandLineAction {
5
5
  private _realizeFilesParameter;
6
6
  private _linkBinsParameter;
7
7
  constructor(terminal: ITerminal);
8
- protected onExecute(): Promise<void>;
8
+ protected onExecuteAsync(): Promise<void>;
9
9
  }
10
10
  //# sourceMappingURL=CreateLinksAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateLinksAction.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/createLinks/cli/actions/CreateLinksAction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,4BAA4B,CAAC;AAqE9F,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,sBAAsB,CAA2B;IACzD,OAAO,CAAC,kBAAkB,CAA2B;gBAElC,QAAQ,EAAE,SAAS;cAoBtB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB3C"}
1
+ {"version":3,"file":"CreateLinksAction.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/createLinks/cli/actions/CreateLinksAction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,4BAA4B,CAAC;AAqE9F,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,sBAAsB,CAA2B;IACzD,OAAO,CAAC,kBAAkB,CAA2B;gBAElC,QAAQ,EAAE,SAAS;cAoBb,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAsBzD"}
@@ -69,7 +69,7 @@ class CreateLinksAction extends ts_command_line_1.CommandLineAction {
69
69
  description: 'Create the .bin files for extracted packages'
70
70
  });
71
71
  }
72
- async onExecute() {
72
+ async onExecuteAsync() {
73
73
  const extractorMetadataObject = await (0, CreateLinksUtilities_1.getExtractorMetadataAsync)();
74
74
  const realizeFiles = this._realizeFilesParameter.value;
75
75
  const linkBins = this._linkBinsParameter.value;
@@ -1 +1 @@
1
- {"version":3,"file":"CreateLinksAction.js","sourceRoot":"","sources":["../../../../../src/scripts/createLinks/cli/actions/CreateLinksAction.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport path from 'node:path';\nimport { Async, FileSystem, Path } from '@rushstack/node-core-library';\nimport type { ITerminal } from '@rushstack/terminal';\nimport { CommandLineAction, type CommandLineFlagParameter } from '@rushstack/ts-command-line';\nimport type { IExtractorMetadataJson, IProjectInfoJson } from '../../../../PackageExtractor';\nimport { makeBinLinksAsync } from '../../../../Utils';\nimport { getExtractorMetadataAsync } from '../../utilities/CreateLinksUtilities';\nimport {\n TARGET_ROOT_FOLDER,\n REALIZE_FILES_PARAMETER_NAME,\n LINK_BINS_PARAMETER_NAME,\n MAX_CONCURRENCY\n} from '../../utilities/constants';\nimport { removeLinksAsync } from './RemoveLinksAction';\n\nasync function createLinksAsync(\n terminal: ITerminal,\n targetRootFolder: string,\n extractorMetadataObject: IExtractorMetadataJson\n): Promise<void> {\n await Async.forEachAsync(\n extractorMetadataObject.links,\n async (linkInfo) => {\n // Link to the relative path for symlinks\n const newLinkPath: string = path.join(targetRootFolder, linkInfo.linkPath);\n const linkTargetPath: string = path.join(targetRootFolder, linkInfo.targetPath);\n\n // Make sure the containing folder exists\n await FileSystem.ensureFolderAsync(path.dirname(newLinkPath));\n\n // NOTE: This logic is based on NpmLinkManager._createSymlink()\n if (linkInfo.kind === 'folderLink') {\n terminal.writeVerboseLine(`Creating linked folder at path \"${newLinkPath}\"`);\n await FileSystem.createSymbolicLinkJunctionAsync({ newLinkPath, linkTargetPath });\n } else if (linkInfo.kind === 'fileLink') {\n // Use hardlinks for Windows and symlinks for other platforms since creating a symbolic link\n // requires administrator permission on Windows. This may cause unexpected behaviour for consumers\n // of the hardlinked files. If this becomes an issue, we may need to revisit this.\n terminal.writeVerboseLine(`Creating linked file at path \"${newLinkPath}\"`);\n if (process.platform === 'win32') {\n await FileSystem.createHardLinkAsync({ newLinkPath, linkTargetPath });\n } else {\n await FileSystem.createSymbolicLinkFileAsync({ newLinkPath, linkTargetPath });\n }\n }\n },\n { concurrency: MAX_CONCURRENCY }\n );\n}\n\nasync function realizeFilesAsync(\n terminal: ITerminal,\n targetRootFolder: string,\n extractorMetadataObject: IExtractorMetadataJson\n): Promise<void> {\n await Async.forEachAsync(\n extractorMetadataObject.files,\n async (relativeFilePath) => {\n const filePath: string = `${targetRootFolder}/${relativeFilePath}`;\n const realFilePath: string = await FileSystem.getRealPathAsync(filePath);\n if (!Path.isEqual(realFilePath, filePath)) {\n // Delete the existing symlink and create a hardlink to the real file, since creating hardlinks\n // is less overhead than copying the file.\n terminal.writeVerboseLine(`Realizing file at path \"${filePath}\"`);\n await FileSystem.deleteFileAsync(filePath);\n await FileSystem.createHardLinkAsync({ newLinkPath: filePath, linkTargetPath: realFilePath });\n }\n },\n { concurrency: MAX_CONCURRENCY }\n );\n}\n\nexport class CreateLinksAction extends CommandLineAction {\n private _terminal: ITerminal;\n private _realizeFilesParameter: CommandLineFlagParameter;\n private _linkBinsParameter: CommandLineFlagParameter;\n\n public constructor(terminal: ITerminal) {\n super({\n actionName: 'create',\n summary: 'Create symlinks for extraction',\n documentation: 'This action creates symlinks for the extraction process.'\n });\n\n this._terminal = terminal;\n\n this._realizeFilesParameter = this.defineFlagParameter({\n parameterLongName: REALIZE_FILES_PARAMETER_NAME,\n description: 'Realize files instead of creating symlinks'\n });\n\n this._linkBinsParameter = this.defineFlagParameter({\n parameterLongName: LINK_BINS_PARAMETER_NAME,\n description: 'Create the .bin files for extracted packages'\n });\n }\n\n protected async onExecute(): Promise<void> {\n const extractorMetadataObject: IExtractorMetadataJson = await getExtractorMetadataAsync();\n const realizeFiles: boolean = this._realizeFilesParameter.value;\n const linkBins: boolean = this._linkBinsParameter.value;\n\n this._terminal.writeLine(`Creating links for extraction at path \"${TARGET_ROOT_FOLDER}\"`);\n await removeLinksAsync(this._terminal, TARGET_ROOT_FOLDER, extractorMetadataObject);\n await createLinksAsync(this._terminal, TARGET_ROOT_FOLDER, extractorMetadataObject);\n\n if (realizeFiles) {\n this._terminal.writeLine(`Realizing files for extraction at path \"${TARGET_ROOT_FOLDER}\"`);\n await realizeFilesAsync(this._terminal, TARGET_ROOT_FOLDER, extractorMetadataObject);\n }\n\n if (linkBins) {\n this._terminal.writeLine(`Linking bins for extraction at path \"${TARGET_ROOT_FOLDER}\"`);\n const extractedProjectFolderPaths: string[] = extractorMetadataObject.projects.map(\n (project: IProjectInfoJson) => path.join(TARGET_ROOT_FOLDER, project.path)\n );\n await makeBinLinksAsync(this._terminal, extractedProjectFolderPaths);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"CreateLinksAction.js","sourceRoot":"","sources":["../../../../../src/scripts/createLinks/cli/actions/CreateLinksAction.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport path from 'node:path';\nimport { Async, FileSystem, Path } from '@rushstack/node-core-library';\nimport type { ITerminal } from '@rushstack/terminal';\nimport { CommandLineAction, type CommandLineFlagParameter } from '@rushstack/ts-command-line';\nimport type { IExtractorMetadataJson, IProjectInfoJson } from '../../../../PackageExtractor';\nimport { makeBinLinksAsync } from '../../../../Utils';\nimport { getExtractorMetadataAsync } from '../../utilities/CreateLinksUtilities';\nimport {\n TARGET_ROOT_FOLDER,\n REALIZE_FILES_PARAMETER_NAME,\n LINK_BINS_PARAMETER_NAME,\n MAX_CONCURRENCY\n} from '../../utilities/constants';\nimport { removeLinksAsync } from './RemoveLinksAction';\n\nasync function createLinksAsync(\n terminal: ITerminal,\n targetRootFolder: string,\n extractorMetadataObject: IExtractorMetadataJson\n): Promise<void> {\n await Async.forEachAsync(\n extractorMetadataObject.links,\n async (linkInfo) => {\n // Link to the relative path for symlinks\n const newLinkPath: string = path.join(targetRootFolder, linkInfo.linkPath);\n const linkTargetPath: string = path.join(targetRootFolder, linkInfo.targetPath);\n\n // Make sure the containing folder exists\n await FileSystem.ensureFolderAsync(path.dirname(newLinkPath));\n\n // NOTE: This logic is based on NpmLinkManager._createSymlink()\n if (linkInfo.kind === 'folderLink') {\n terminal.writeVerboseLine(`Creating linked folder at path \"${newLinkPath}\"`);\n await FileSystem.createSymbolicLinkJunctionAsync({ newLinkPath, linkTargetPath });\n } else if (linkInfo.kind === 'fileLink') {\n // Use hardlinks for Windows and symlinks for other platforms since creating a symbolic link\n // requires administrator permission on Windows. This may cause unexpected behaviour for consumers\n // of the hardlinked files. If this becomes an issue, we may need to revisit this.\n terminal.writeVerboseLine(`Creating linked file at path \"${newLinkPath}\"`);\n if (process.platform === 'win32') {\n await FileSystem.createHardLinkAsync({ newLinkPath, linkTargetPath });\n } else {\n await FileSystem.createSymbolicLinkFileAsync({ newLinkPath, linkTargetPath });\n }\n }\n },\n { concurrency: MAX_CONCURRENCY }\n );\n}\n\nasync function realizeFilesAsync(\n terminal: ITerminal,\n targetRootFolder: string,\n extractorMetadataObject: IExtractorMetadataJson\n): Promise<void> {\n await Async.forEachAsync(\n extractorMetadataObject.files,\n async (relativeFilePath) => {\n const filePath: string = `${targetRootFolder}/${relativeFilePath}`;\n const realFilePath: string = await FileSystem.getRealPathAsync(filePath);\n if (!Path.isEqual(realFilePath, filePath)) {\n // Delete the existing symlink and create a hardlink to the real file, since creating hardlinks\n // is less overhead than copying the file.\n terminal.writeVerboseLine(`Realizing file at path \"${filePath}\"`);\n await FileSystem.deleteFileAsync(filePath);\n await FileSystem.createHardLinkAsync({ newLinkPath: filePath, linkTargetPath: realFilePath });\n }\n },\n { concurrency: MAX_CONCURRENCY }\n );\n}\n\nexport class CreateLinksAction extends CommandLineAction {\n private _terminal: ITerminal;\n private _realizeFilesParameter: CommandLineFlagParameter;\n private _linkBinsParameter: CommandLineFlagParameter;\n\n public constructor(terminal: ITerminal) {\n super({\n actionName: 'create',\n summary: 'Create symlinks for extraction',\n documentation: 'This action creates symlinks for the extraction process.'\n });\n\n this._terminal = terminal;\n\n this._realizeFilesParameter = this.defineFlagParameter({\n parameterLongName: REALIZE_FILES_PARAMETER_NAME,\n description: 'Realize files instead of creating symlinks'\n });\n\n this._linkBinsParameter = this.defineFlagParameter({\n parameterLongName: LINK_BINS_PARAMETER_NAME,\n description: 'Create the .bin files for extracted packages'\n });\n }\n\n protected override async onExecuteAsync(): Promise<void> {\n const extractorMetadataObject: IExtractorMetadataJson = await getExtractorMetadataAsync();\n const realizeFiles: boolean = this._realizeFilesParameter.value;\n const linkBins: boolean = this._linkBinsParameter.value;\n\n this._terminal.writeLine(`Creating links for extraction at path \"${TARGET_ROOT_FOLDER}\"`);\n await removeLinksAsync(this._terminal, TARGET_ROOT_FOLDER, extractorMetadataObject);\n await createLinksAsync(this._terminal, TARGET_ROOT_FOLDER, extractorMetadataObject);\n\n if (realizeFiles) {\n this._terminal.writeLine(`Realizing files for extraction at path \"${TARGET_ROOT_FOLDER}\"`);\n await realizeFilesAsync(this._terminal, TARGET_ROOT_FOLDER, extractorMetadataObject);\n }\n\n if (linkBins) {\n this._terminal.writeLine(`Linking bins for extraction at path \"${TARGET_ROOT_FOLDER}\"`);\n const extractedProjectFolderPaths: string[] = extractorMetadataObject.projects.map(\n (project: IProjectInfoJson) => path.join(TARGET_ROOT_FOLDER, project.path)\n );\n await makeBinLinksAsync(this._terminal, extractedProjectFolderPaths);\n }\n }\n}\n"]}
@@ -5,6 +5,6 @@ export declare function removeLinksAsync(terminal: ITerminal, targetRootFolder:
5
5
  export declare class RemoveLinksAction extends CommandLineAction {
6
6
  private _terminal;
7
7
  constructor(terminal: ITerminal);
8
- protected onExecute(): Promise<void>;
8
+ protected onExecuteAsync(): Promise<void>;
9
9
  }
10
10
  //# sourceMappingURL=RemoveLinksAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveLinksAction.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/createLinks/cli/actions/RemoveLinksAction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAI3E,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,MAAM,EACxB,uBAAuB,EAAE,sBAAsB,GAC9C,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,OAAO,CAAC,SAAS,CAAY;gBAEV,QAAQ,EAAE,SAAS;cAUtB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAM3C"}
1
+ {"version":3,"file":"RemoveLinksAction.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/createLinks/cli/actions/RemoveLinksAction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAI3E,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,MAAM,EACxB,uBAAuB,EAAE,sBAAsB,GAC9C,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,OAAO,CAAC,SAAS,CAAY;gBAEV,QAAQ,EAAE,SAAS;cAUb,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAMzD"}
@@ -28,7 +28,7 @@ class RemoveLinksAction extends ts_command_line_1.CommandLineAction {
28
28
  });
29
29
  this._terminal = terminal;
30
30
  }
31
- async onExecute() {
31
+ async onExecuteAsync() {
32
32
  const extractorMetadataObject = await (0, CreateLinksUtilities_1.getExtractorMetadataAsync)();
33
33
  this._terminal.writeLine(`Removing links for extraction at path "${constants_1.TARGET_ROOT_FOLDER}"`);
34
34
  await removeLinksAsync(this._terminal, constants_1.TARGET_ROOT_FOLDER, extractorMetadataObject);
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveLinksAction.js","sourceRoot":"","sources":["../../../../../src/scripts/createLinks/cli/actions/RemoveLinksAction.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;AAU3D,4CAcC;AAtBD,0DAA6B;AAC7B,oEAAiE;AAEjE,gEAA+D;AAE/D,+EAAiF;AACjF,yDAAgF;AAEzE,KAAK,UAAU,gBAAgB,CACpC,QAAmB,EACnB,gBAAwB,EACxB,uBAA+C;IAE/C,MAAM,yBAAK,CAAC,YAAY,CACtB,uBAAuB,CAAC,KAAK,EAC7B,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,WAAW,GAAW,mBAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAClE,QAAQ,CAAC,gBAAgB,CAAC,0BAA0B,WAAW,GAAG,CAAC,CAAC;QACpE,MAAM,8BAAU,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC,EACD,EAAE,WAAW,EAAE,2BAAe,EAAE,CACjC,CAAC;AACJ,CAAC;AAED,MAAa,iBAAkB,SAAQ,mCAAiB;IAGtD,YAAmB,QAAmB;QACpC,KAAK,CAAC;YACJ,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,gDAAgD;YACzD,aAAa,EAAE,kEAAkE;SAClF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,SAAS;QACvB,MAAM,uBAAuB,GAA2B,MAAM,IAAA,gDAAyB,GAAE,CAAC;QAE1F,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,0CAA0C,8BAAkB,GAAG,CAAC,CAAC;QAC1F,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,8BAAkB,EAAE,uBAAuB,CAAC,CAAC;IACtF,CAAC;CACF;AAnBD,8CAmBC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport path from 'node:path';\nimport { Async, FileSystem } from '@rushstack/node-core-library';\nimport type { ITerminal } from '@rushstack/terminal';\nimport { CommandLineAction } from '@rushstack/ts-command-line';\nimport type { IExtractorMetadataJson } from '../../../../PackageExtractor';\nimport { getExtractorMetadataAsync } from '../../utilities/CreateLinksUtilities';\nimport { TARGET_ROOT_FOLDER, MAX_CONCURRENCY } from '../../utilities/constants';\n\nexport async function removeLinksAsync(\n terminal: ITerminal,\n targetRootFolder: string,\n extractorMetadataObject: IExtractorMetadataJson\n): Promise<void> {\n await Async.forEachAsync(\n extractorMetadataObject.links,\n async ({ linkPath }) => {\n const newLinkPath: string = path.join(targetRootFolder, linkPath);\n terminal.writeVerboseLine(`Removing link at path \"${newLinkPath}\"`);\n await FileSystem.deleteFileAsync(newLinkPath, { throwIfNotExists: false });\n },\n { concurrency: MAX_CONCURRENCY }\n );\n}\n\nexport class RemoveLinksAction extends CommandLineAction {\n private _terminal: ITerminal;\n\n public constructor(terminal: ITerminal) {\n super({\n actionName: 'remove',\n summary: 'Remove symlinks created by the \"create\" action',\n documentation: 'This action removes the symlinks created by the \"create\" action.'\n });\n\n this._terminal = terminal;\n }\n\n protected async onExecute(): Promise<void> {\n const extractorMetadataObject: IExtractorMetadataJson = await getExtractorMetadataAsync();\n\n this._terminal.writeLine(`Removing links for extraction at path \"${TARGET_ROOT_FOLDER}\"`);\n await removeLinksAsync(this._terminal, TARGET_ROOT_FOLDER, extractorMetadataObject);\n }\n}\n"]}
1
+ {"version":3,"file":"RemoveLinksAction.js","sourceRoot":"","sources":["../../../../../src/scripts/createLinks/cli/actions/RemoveLinksAction.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;AAU3D,4CAcC;AAtBD,0DAA6B;AAC7B,oEAAiE;AAEjE,gEAA+D;AAE/D,+EAAiF;AACjF,yDAAgF;AAEzE,KAAK,UAAU,gBAAgB,CACpC,QAAmB,EACnB,gBAAwB,EACxB,uBAA+C;IAE/C,MAAM,yBAAK,CAAC,YAAY,CACtB,uBAAuB,CAAC,KAAK,EAC7B,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,WAAW,GAAW,mBAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAClE,QAAQ,CAAC,gBAAgB,CAAC,0BAA0B,WAAW,GAAG,CAAC,CAAC;QACpE,MAAM,8BAAU,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC,EACD,EAAE,WAAW,EAAE,2BAAe,EAAE,CACjC,CAAC;AACJ,CAAC;AAED,MAAa,iBAAkB,SAAQ,mCAAiB;IAGtD,YAAmB,QAAmB;QACpC,KAAK,CAAC;YACJ,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,gDAAgD;YACzD,aAAa,EAAE,kEAAkE;SAClF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEkB,KAAK,CAAC,cAAc;QACrC,MAAM,uBAAuB,GAA2B,MAAM,IAAA,gDAAyB,GAAE,CAAC;QAE1F,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,0CAA0C,8BAAkB,GAAG,CAAC,CAAC;QAC1F,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,8BAAkB,EAAE,uBAAuB,CAAC,CAAC;IACtF,CAAC;CACF;AAnBD,8CAmBC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport path from 'node:path';\nimport { Async, FileSystem } from '@rushstack/node-core-library';\nimport type { ITerminal } from '@rushstack/terminal';\nimport { CommandLineAction } from '@rushstack/ts-command-line';\nimport type { IExtractorMetadataJson } from '../../../../PackageExtractor';\nimport { getExtractorMetadataAsync } from '../../utilities/CreateLinksUtilities';\nimport { TARGET_ROOT_FOLDER, MAX_CONCURRENCY } from '../../utilities/constants';\n\nexport async function removeLinksAsync(\n terminal: ITerminal,\n targetRootFolder: string,\n extractorMetadataObject: IExtractorMetadataJson\n): Promise<void> {\n await Async.forEachAsync(\n extractorMetadataObject.links,\n async ({ linkPath }) => {\n const newLinkPath: string = path.join(targetRootFolder, linkPath);\n terminal.writeVerboseLine(`Removing link at path \"${newLinkPath}\"`);\n await FileSystem.deleteFileAsync(newLinkPath, { throwIfNotExists: false });\n },\n { concurrency: MAX_CONCURRENCY }\n );\n}\n\nexport class RemoveLinksAction extends CommandLineAction {\n private _terminal: ITerminal;\n\n public constructor(terminal: ITerminal) {\n super({\n actionName: 'remove',\n summary: 'Remove symlinks created by the \"create\" action',\n documentation: 'This action removes the symlinks created by the \"create\" action.'\n });\n\n this._terminal = terminal;\n }\n\n protected override async onExecuteAsync(): Promise<void> {\n const extractorMetadataObject: IExtractorMetadataJson = await getExtractorMetadataAsync();\n\n this._terminal.writeLine(`Removing links for extraction at path \"${TARGET_ROOT_FOLDER}\"`);\n await removeLinksAsync(this._terminal, TARGET_ROOT_FOLDER, extractorMetadataObject);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/package-extractor",
3
- "version": "0.10.24",
3
+ "version": "0.10.25",
4
4
  "description": "A library for bundling selected files and dependencies into a deployable package.",
5
5
  "main": "lib/index.js",
6
6
  "typings": "dist/package-extractor.d.ts",
@@ -19,7 +19,7 @@
19
19
  "semver": "~7.5.4",
20
20
  "@rushstack/node-core-library": "5.13.0",
21
21
  "@rushstack/terminal": "0.15.2",
22
- "@rushstack/ts-command-line": "4.23.7"
22
+ "@rushstack/ts-command-line": "5.0.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/glob": "7.1.1",
@@ -28,10 +28,10 @@
28
28
  "eslint": "~8.57.0",
29
29
  "webpack": "~5.98.0",
30
30
  "@types/semver": "7.5.0",
31
- "@rushstack/heft": "0.73.1",
32
- "@rushstack/heft-webpack5-plugin": "0.11.28",
33
- "@rushstack/webpack-preserve-dynamic-require-plugin": "0.11.97",
34
- "local-node-rig": "1.0.0"
31
+ "@rushstack/heft-webpack5-plugin": "0.11.29",
32
+ "@rushstack/heft": "0.73.2",
33
+ "local-node-rig": "1.0.0",
34
+ "@rushstack/webpack-preserve-dynamic-require-plugin": "0.11.98"
35
35
  },
36
36
  "scripts": {
37
37
  "build": "heft build --clean",