UNPKG

@rushstack/node-core-library

Version:

Core libraries that every NodeJS toolchain project should use

1,779 lines (1,035 loc) 35 kB
# Change Log - @rushstack/node-core-library This log was last generated on Sat, 06 Dec 2025 01:12:28 GMT and should not be manually modified. ## 5.19.1 Sat, 06 Dec 2025 01:12:28 GMT ### Patches - Replace fs-extra with node:fs in FileWriter ## 5.19.0 Fri, 21 Nov 2025 16:13:56 GMT ### Minor changes - Update `Executable.getProcessInfoBy*` APIs to use PowerShell on Windows to support latest Windows 11 versions. ## 5.18.0 Fri, 24 Oct 2025 00:13:38 GMT ### Minor changes - Add "Objects.areDeepEqual" and "User.getHomeFolder" APIs. ## 5.17.1 Wed, 22 Oct 2025 00:57:54 GMT ### Patches - Update the return type of `Executable.waitForExitAsync` to omit `stdout` and `stderr` if an `encoding` parameter isn't passed to the options object. ## 5.17.0 Wed, 08 Oct 2025 00:13:28 GMT ### Minor changes - Add an `allowOversubscription` option to the `Async` API functions which prevents running tasks from exceeding concurrency. Change its default to `false`. ## 5.16.0 Fri, 03 Oct 2025 20:09:59 GMT ### Minor changes - Normalize import of builtin modules to use the `node:` protocol. ## 5.15.1 Tue, 30 Sep 2025 23:57:45 GMT _Version update only_ ## 5.15.0 Tue, 30 Sep 2025 20:33:51 GMT ### Minor changes - Add `FileError.getProblemMatcher()` which returns the problem matcher compatible with `IOperationExecutionResult.problemCollector` as well as VS Code, GitHub Actions ## 5.14.0 Wed, 23 Jul 2025 20:55:57 GMT ### Minor changes - Add a `Async.runWithTimeoutAsync` function that executes an async function, resolving if the specified timeout elapses first. ## 5.13.1 Thu, 01 May 2025 00:11:12 GMT ### Patches - Fix a bug in `FileSystem.isErrnoException` that failed to identify errors if the underlying method was invoked using only a file descriptor, e.g. for `fs.readSync`. ## 5.13.0 Tue, 25 Mar 2025 15:11:15 GMT ### Minor changes - Expand `FileSystem.writeBuffersToFile` and `FileSystem.writeBuffersToFileAsync` to take more kinds of buffers. ## 5.12.0 Tue, 11 Mar 2025 02:12:33 GMT ### Minor changes - Add `useNodeJSResolver` option to `Import.resolvePackage` to rely on the built-in `require.resolve` and share its cache. - In `RealNodeModulePathResolver`, add the option to configure to throw or not throw for non-existent paths. ### Patches - In `RealNodeModulePathResolver`, add negative caching when a path segment that might be a symbolic link is not. ## 5.11.0 Thu, 30 Jan 2025 01:11:42 GMT ### Minor changes - Update fs-extra to 11.3.0. ## 5.10.2 Thu, 09 Jan 2025 01:10:10 GMT ### Patches - Provide the `retryCount` parameter to actions executed using `Async.runWithRetriesAsync` ## 5.10.1 Sat, 14 Dec 2024 01:11:07 GMT ### Patches - Fix handling of trailing slashes and relative paths in RealNodeModulePath to match semantics of `fs.realpathSync.native`. ## 5.10.0 Fri, 22 Nov 2024 01:10:43 GMT ### Minor changes - Add `RealNodeModulePathResolver` class to get equivalent behavior to `realpath` with fewer system calls (and therefore higher performance) in the typical scenario where the only symlinks in the repository are inside of `node_modules` folders and are links to package folders. ## 5.9.0 Fri, 13 Sep 2024 00:11:42 GMT ### Minor changes - Add a `Sort.sortKeys` function for sorting keys in an object - Rename `LockFile.acquire` to `Lockfile.acquireAsync`. ### Patches - Fix an issue where attempting to acquire multiple `LockFile`s at the same time on POSIX would cause the second to immediately be acquired without releasing the first. ## 5.8.0 Tue, 10 Sep 2024 20:08:11 GMT ### Minor changes - Add a `customFormats` option to `JsonSchema`. ## 5.7.0 Wed, 21 Aug 2024 05:43:04 GMT ### Minor changes - Introduce a `Text.splitByNewLines` function. ## 5.6.0 Mon, 12 Aug 2024 22:16:04 GMT ### Minor changes - Add a `ignoreSchemaField` option to the `JsonSchema.validateObject` options to ignore `$schema` properties and add an options object argument to `JsonSchema.validateObjectWithCallback` with the same `ignoreSchemaField` option. ## 5.5.1 Sat, 27 Jul 2024 00:10:27 GMT ### Patches - Include CHANGELOG.md in published releases again ## 5.5.0 Tue, 16 Jul 2024 00:36:21 GMT ### Minor changes - Add support for the `jsonSyntax` option to the `JsonFile.save`, `JsonFile.saveAsync`, and `JsonFile.stringify` functions. ## 5.4.1 Thu, 30 May 2024 00:13:05 GMT ### Patches - Include missing `type` modifiers on type-only exports. ## 5.4.0 Wed, 29 May 2024 02:03:50 GMT ### Minor changes - Add a `throwOnSignal` option to the `Executable.waitForExitAsync` to control if that function should throw if the process is terminated with a signal. - Add a `signal` property to the result of `Executable.waitForExitAsync` that includes a signal if the process was termianted by a signal. ## 5.3.0 Tue, 28 May 2024 15:10:09 GMT ### Minor changes - Include typings for the the `"files"` field in `IPackageJson`. ## 5.2.0 Tue, 28 May 2024 00:09:47 GMT ### Minor changes - Include typings for the `"exports"` and `"typesVersions"` fields in `IPackageJson`. ## 5.1.0 Sat, 25 May 2024 04:54:07 GMT ### Minor changes - Update `JsonFile` to support loading JSON files that include object keys that are members of `Object.prototype`. ### Patches - Fix an issue with `JsonSchema` where `"uniqueItems": true` would throw an error if the `"item"` type in the schema has `"type": "object"`. ## 5.0.0 Thu, 23 May 2024 02:26:56 GMT ### Breaking changes - Replace z-schema with ajv for schema validation and add support for json-schema draft-07. - Remove the deprecated `Async.sleep` function. - Convert `FileConstants` and `FolderConstants` from enums to const objects. ### Patches - Fix an issue where waitForExitAsync() might reject before all output was collected ## 4.3.0 Wed, 15 May 2024 06:04:17 GMT ### Minor changes - Rename `Async.sleep` to `Async.sleepAsync`. The old function is marked as `@deprecated`. ## 4.2.1 Fri, 10 May 2024 05:33:33 GMT ### Patches - Fix a bug in `Async.forEachAsync` where weight wasn't respected. ## 4.2.0 Mon, 06 May 2024 15:11:04 GMT ### Minor changes - Add a new `weighted: true` option to the `Async.forEachAsync` method that allows each element to specify how much of the allowed parallelism the callback uses. ### Patches - Add a new `weighted: true` option to the `Async.mapAsync` method that allows each element to specify how much of the allowed parallelism the callback uses. ## 4.1.0 Wed, 10 Apr 2024 15:10:08 GMT ### Minor changes - Add `writeBuffersToFile` and `writeBuffersToFileAsync` methods to `FileSystem` for efficient writing of concatenated files. ## 4.0.2 Wed, 21 Feb 2024 21:45:28 GMT ### Patches - Replace the dependency on the `colors` package with `Colorize` from `@rushstack/terminal`. ## 4.0.1 Tue, 20 Feb 2024 21:45:10 GMT ### Patches - Remove a no longer needed dependency on the `colors` package ## 4.0.0 Mon, 19 Feb 2024 21:54:27 GMT ### Breaking changes - (BREAKING CHANGE) Remove the Terminal and related APIs (Colors, AsciEscape, etc). These have been moved into the @rushstack/terminal package. See https://github.com/microsoft/rushstack/pull/3176 for details. - Remove deprecated `FileSystem.readFolder`, `FileSystem.readFolderAsync`, and `LegacyAdapters.sortStable` APIs. ### Minor changes - Graduate `Async` and `MinimumHeap` APIs from beta to public. ## 3.66.1 Sat, 17 Feb 2024 06:24:35 GMT ### Patches - Fix broken link to API documentation ## 3.66.0 Thu, 08 Feb 2024 01:09:21 GMT ### Minor changes - Add getStatistics() method to FileWriter instances ### Patches - LockFile: prevent accidentaly deleting freshly created lockfile when multiple processes try to acquire the same lock on macOS/Linux ## 3.65.0 Mon, 05 Feb 2024 23:46:52 GMT ### Minor changes - Inclue a `Text.reverse` API for reversing a string. ## 3.64.2 Thu, 25 Jan 2024 01:09:29 GMT ### Patches - Improve 'bin' definition in `IPackageJson` type ## 3.64.1 Tue, 23 Jan 2024 20:12:57 GMT ### Patches - Fix Executable.getProcessInfoBy* methods truncating the process name on MacOS ## 3.64.0 Tue, 23 Jan 2024 16:15:05 GMT ### Minor changes - Add the `dependenciesMeta` property to the `INodePackageJson` interface. ## 3.63.0 Wed, 03 Jan 2024 00:31:18 GMT ### Minor changes - Updates the `JsonFile` API to format JSON as JSON5 if an existing string is being updated to preserve the style of the existing JSON. ## 3.62.0 Thu, 07 Dec 2023 03:44:13 GMT ### Minor changes - Add functions inside the `Executable` API to list all process trees (`getProcessInfoById`, `getProcessInfoByIdAsync`, `getProcessInfoByName`, and `getProcessInfoByNameAsync`). - Add functions inside the `Text` API to split iterables (or async iterables) that produce strings or buffers on newlines (`readLinesFromIterable` and `readLinesFromIterableAsync`). - Add the `waitForExitAsync` method inside the `Executable` API used to wait for a provided child process to exit. ## 3.61.0 Thu, 28 Sep 2023 20:53:17 GMT ### Minor changes - Add Async.getSignal for promise-based signaling. Add MinimumHeap for use as a priority queue. ## 3.60.1 Tue, 26 Sep 2023 09:30:33 GMT ### Patches - Update type-only imports to include the type modifier. ## 3.60.0 Fri, 15 Sep 2023 00:36:58 GMT ### Minor changes - Update @types/node from 14 to 18 ## 3.59.7 Tue, 08 Aug 2023 07:10:39 GMT _Version update only_ ## 3.59.6 Wed, 19 Jul 2023 00:20:31 GMT ### Patches - Updated semver dependency ## 3.59.5 Thu, 06 Jul 2023 00:16:19 GMT ### Patches - Fix Import.resolveModule* and Import.resolvePackage* methods to return real-paths when resolving self-referencing specs ## 3.59.4 Thu, 15 Jun 2023 00:21:01 GMT _Version update only_ ## 3.59.3 Wed, 07 Jun 2023 22:45:16 GMT _Version update only_ ## 3.59.2 Mon, 29 May 2023 15:21:15 GMT ### Patches - Remove extraneous string encode/decode of final output during `JsonFile.save`/`JsonFile.saveAsync`. ## 3.59.1 Mon, 22 May 2023 06:34:33 GMT _Version update only_ ## 3.59.0 Fri, 12 May 2023 00:23:05 GMT ### Minor changes - Add an option to the `PrefixProxyTerminalProvider` to create a dynamic prefix, which can be used for something like prefixing logging lines with a timestamp. ## 3.58.0 Mon, 01 May 2023 15:23:19 GMT ### Minor changes - Expose a `Text.escapeRegExp` function to escape regexp special characters. ## 3.57.0 Sat, 29 Apr 2023 00:23:02 GMT ### Minor changes - Add PrefixProxyTerminalProvider to allow for prefixing a provided string before writing to a terminal provider - Add a Writable stream adapter for ITerminal to allow writing to a terminal as a stream ## 3.56.0 Thu, 27 Apr 2023 17:18:42 GMT ### Minor changes - Adds the AsyncQueue class, a queue type that allows for iterating and concurrently adding to the queue - Adds support for async Import.resolve* APIs ### Patches - Fix a typings issue in FileSystem.copyFilesAsync - Fix issues with Import.resolve* APIs when attempting to resolve system modules paths (ex. 'fs/promises') and self-referencing module paths ## 3.55.2 Fri, 10 Feb 2023 01:18:51 GMT _Version update only_ ## 3.55.1 Sun, 05 Feb 2023 03:02:02 GMT ### Patches - Change the peer dependency selector on `@types/node` to a wildcard (`*`). ## 3.55.0 Wed, 01 Feb 2023 02:16:34 GMT ### Minor changes - Bump @types/node peerDependency to ^14.18.36. ## 3.54.0 Mon, 30 Jan 2023 16:22:30 GMT ### Minor changes - Add a `peerDependenciesMeta` property to `IPackageJson`. - Move the @types/node dependency to an optional peerDependency. ## 3.53.3 Fri, 09 Dec 2022 16:18:27 GMT ### Patches - Improve performance of `Import.resolvePackage`. - Improve the error message emitted when a path inside a package is passed to `Import.resolvePackage`. ## 3.53.2 Thu, 13 Oct 2022 00:20:15 GMT ### Patches - Fix a bug where `Sort.isSorted` and `Sort.isSortedBy` unexpectedly compared the first element against `undefined`. Optimize `Sort.sortMapKeys` to run the check for already being sorted against the original Map instead of a derived array. ## 3.53.1 Mon, 10 Oct 2022 15:23:44 GMT _Version update only_ ## 3.53.0 Thu, 29 Sep 2022 07:13:06 GMT ### Minor changes - Add a Path.convertToPlatformDefault API to convert a path to use the platform-default slashes. ## 3.52.0 Wed, 21 Sep 2022 20:21:10 GMT ### Minor changes - Add a "FileSystem.isNotDirectoryError" function that returns `true` if the passed-in error object is an ENOTDIR error. - Add a parameter to the `LockFile.release` function to optionally delete the lockfile. ## 3.51.2 Thu, 15 Sep 2022 00:18:51 GMT _Version update only_ ## 3.51.1 Wed, 24 Aug 2022 03:01:22 GMT ### Patches - Introduce JsonSyntax option for JsonFile.load() and related APIs ## 3.51.0 Wed, 24 Aug 2022 00:14:38 GMT ### Minor changes - Deprecate LegacyAdapters.sortStable and remove support for NodeJS < 11. If you are using NodeJS < 11, this is a breaking change. ## 3.50.2 Fri, 19 Aug 2022 00:17:19 GMT ### Patches - Update `PackageJsonLookup` to only resolve to `package.json` files that contain a `"name"` field. See GitHub issue #2070 ## 3.50.1 Wed, 03 Aug 2022 18:40:35 GMT _Version update only_ ## 3.50.0 Mon, 01 Aug 2022 02:45:32 GMT ### Minor changes - Add an Async.runWithRetriesAsync() API to run and a retry an async function that may intermittently fail. ## 3.49.0 Tue, 28 Jun 2022 22:47:13 GMT ### Minor changes - Add SubprocessTerminator utility, which can be used to kill a process and all of its child processes on demand or on termination of the host process. ## 3.48.0 Tue, 28 Jun 2022 00:23:32 GMT ### Minor changes - Add FileSystem.isDirectoryError utility function to determine if an error has the code "EISDIR". This error code may be returned (for example) when attempting to delete a folder as if it were a file using the FileSystem.deleteFile API. ## 3.47.0 Mon, 27 Jun 2022 18:43:09 GMT ### Minor changes - Add a "trimLeadingDotSlash" option to the Path.formatConcisely function to not include the leading "./" in paths under the baseFolder. - Change the FileError relative path output to not include the leading "./" ## 3.46.0 Sat, 25 Jun 2022 01:54:29 GMT ### Minor changes - Add FileError class. This error type can be thrown when encountering an error at a specific line and column of a target file. ## 3.45.7 Fri, 17 Jun 2022 09:17:54 GMT ### Patches - Fix a race condition affecting the LockFile API on the Linux operating system ## 3.45.6 Fri, 17 Jun 2022 00:16:18 GMT _Version update only_ ## 3.45.5 Tue, 10 May 2022 01:20:43 GMT ### Patches - Fix and issue where Async.forEachAsync with an async iterator can overflow the max concurrency ## 3.45.4 Sat, 23 Apr 2022 02:13:07 GMT _Version update only_ ## 3.45.3 Fri, 15 Apr 2022 00:12:36 GMT _Version update only_ ## 3.45.2 Sat, 09 Apr 2022 02:24:26 GMT ### Patches - Rename the "master" branch to "main". ## 3.45.1 Tue, 15 Mar 2022 19:15:53 GMT _Version update only_ ## 3.45.0 Wed, 05 Jan 2022 16:07:47 GMT ### Minor changes - Expose a FileSystem.readFolderItems and FileSystem.readFolderItemsAsync API to get folder entries with types in a single API call. - Deprecate FileSystem.readFolder in favor of FileSystem.readFolderItemNames. ## 3.44.3 Mon, 27 Dec 2021 16:10:40 GMT _Version update only_ ## 3.44.2 Thu, 09 Dec 2021 20:34:41 GMT ### Patches - Update z-schema to ~5.0.2. ## 3.44.1 Mon, 06 Dec 2021 16:08:33 GMT _Version update only_ ## 3.44.0 Fri, 03 Dec 2021 03:05:22 GMT ### Minor changes - Replace const enums with conventional enums to allow for compatability with JavaScript consumers. ## 3.43.2 Sat, 06 Nov 2021 00:09:13 GMT ### Patches - Updated Path.convertToSlashes() to use replace(/\\/g, '/') instead of split/join for better performance. ## 3.43.1 Fri, 05 Nov 2021 15:09:18 GMT _Version update only_ ## 3.43.0 Wed, 27 Oct 2021 00:08:15 GMT ### Minor changes - Add more elaborate "repository" field types in IPackageJson. ### Patches - Update the package.json repository field to include the directory property. ## 3.42.3 Wed, 13 Oct 2021 15:09:54 GMT _Version update only_ ## 3.42.2 Fri, 08 Oct 2021 08:08:34 GMT ### Patches - Fix an issue where Async.foreEachAsync can never resolve when operating on a large array. ## 3.42.1 Thu, 07 Oct 2021 07:13:35 GMT _Version update only_ ## 3.42.0 Tue, 05 Oct 2021 15:08:38 GMT ### Minor changes - Expose an ITerminal interface. ## 3.41.0 Fri, 24 Sep 2021 00:09:29 GMT ### Minor changes - Allow Async.mapAsync and Async.forEachAsync to take an iterator. ## 3.40.3 Thu, 23 Sep 2021 00:10:41 GMT ### Patches - Upgrade the `@types/node` dependency to version to version 12. ## 3.40.2 Tue, 14 Sep 2021 01:17:04 GMT ### Patches - Improve documentation to clarify usage for FileSystem APIs related to symbolic links ## 3.40.1 Mon, 13 Sep 2021 15:07:05 GMT ### Patches - Add support for AlreadyExistsBehavior in symlink and junction scenarios ## 3.40.0 Wed, 11 Aug 2021 00:07:21 GMT ### Minor changes - Add new Terminal message severity "debug", below verbose. ## 3.39.1 Mon, 12 Jul 2021 23:08:26 GMT _Version update only_ ## 3.39.0 Fri, 04 Jun 2021 19:59:53 GMT ### Minor changes - BREAKING CHANGE: Remove FileSystem.copyFileToManyAsync API. It was determined that this API was a likely source of 0-length file copies. Recommended replacement is to call copyFileAsync. ## 3.38.0 Wed, 19 May 2021 00:11:39 GMT ### Minor changes - Add `ignoreUndefinedValues` option to JsonFile to discard keys with undefined values during serialization; this is the standard behavior of `JSON.stringify()` and other JSON serializers. ## 3.37.0 Mon, 03 May 2021 15:10:28 GMT ### Minor changes - Add a new API "Async" with some utilities for working with promises ## 3.36.2 Mon, 12 Apr 2021 15:10:28 GMT _Version update only_ ## 3.36.1 Tue, 06 Apr 2021 15:14:22 GMT _Version update only_ ## 3.36.0 Fri, 05 Feb 2021 16:10:42 GMT ### Minor changes - Add EnvironmentMap API - Add Executable.spawn() API ## 3.35.2 Thu, 10 Dec 2020 23:25:49 GMT _Version update only_ ## 3.35.1 Wed, 11 Nov 2020 01:08:59 GMT _Version update only_ ## 3.35.0 Tue, 10 Nov 2020 23:13:11 GMT ### Minor changes - Add new "copyFileToMany" API to copy a single file to multiple locations - Add an alreadyExistsBehavior option to the options for creating links in FileSystem. ## 3.34.7 Fri, 30 Oct 2020 06:38:39 GMT _Version update only_ ## 3.34.6 Fri, 30 Oct 2020 00:10:14 GMT _Version update only_ ## 3.34.5 Wed, 28 Oct 2020 01:18:03 GMT _Version update only_ ## 3.34.4 Tue, 27 Oct 2020 15:10:13 GMT ### Patches - Fix an issue where the TextAttribute.Bold ANSI escape was not rendered correctly by Linux ## 3.34.3 Tue, 06 Oct 2020 00:24:06 GMT _Version update only_ ## 3.34.2 Mon, 05 Oct 2020 22:36:57 GMT _Version update only_ ## 3.34.1 Wed, 30 Sep 2020 18:39:17 GMT ### Patches - Update to build with @rushstack/heft-node-rig ## 3.34.0 Wed, 30 Sep 2020 06:53:53 GMT ### Minor changes - Add Path.isEqual(), Path.formatConcisely(), Path.convertToSlashes(), Path.convertToBackslashes(), and Path.isDownwardRelative() - Upgrade compiler; the API now requires TypeScript 3.9 or newer ### Patches - Update README.md ## 3.33.6 Tue, 22 Sep 2020 05:45:57 GMT _Version update only_ ## 3.33.5 Tue, 22 Sep 2020 01:45:31 GMT _Version update only_ ## 3.33.4 Tue, 22 Sep 2020 00:08:53 GMT _Version update only_ ## 3.33.3 Sat, 19 Sep 2020 04:37:27 GMT _Version update only_ ## 3.33.2 Sat, 19 Sep 2020 03:33:07 GMT _Version update only_ ## 3.33.1 Fri, 18 Sep 2020 22:57:25 GMT _Version update only_ ## 3.33.0 Fri, 18 Sep 2020 21:49:53 GMT ### Minor changes - Add a missing "existsAsync" function to the FileSystem API. ## 3.32.0 Fri, 11 Sep 2020 02:13:35 GMT ### Minor changes - Add Text.getNewline() and FileWriter.filePath - Add Brand API ## 3.31.0 Mon, 07 Sep 2020 07:37:37 GMT ### Minor changes - Replace Colors.normalizeColorTokensForTest() (which was marked as "beta") with AnsiEscape.formatForTests() ## 3.30.0 Thu, 27 Aug 2020 11:27:06 GMT ### Minor changes - Include an API for resolving packages and modules. ## 3.29.1 Mon, 24 Aug 2020 07:35:20 GMT _Version update only_ ## 3.29.0 Sat, 22 Aug 2020 05:55:42 GMT ### Minor changes - Introduce a "JsonNull" type for describing legacy JSON structures without triggering the "@rushstack/no-new-null" lint rule ## 3.28.0 Tue, 18 Aug 2020 23:59:42 GMT ### Minor changes - Add a utility function for making console color codes human-readable. - Create a lighter weight function to get own package version. ### Patches - Lazy-import some packages to improve spin up times. ## 3.27.0 Mon, 17 Aug 2020 04:53:23 GMT ### Minor changes - Add new APIs AlreadyReportedError and TypeUuid ## 3.26.2 Wed, 12 Aug 2020 00:10:05 GMT ### Patches - Updated project to build with Heft ## 3.26.1 Wed, 05 Aug 2020 18:27:32 GMT ### Patches - Triggering publish of dependents ## 3.26.0 Mon, 03 Aug 2020 06:55:14 GMT ### Minor changes - Added IJsonFileStringifyOptions.headerComment ## 3.25.0 Fri, 03 Jul 2020 15:09:04 GMT ### Minor changes - Add a utility method to convert a map into an object ## 3.24.4 Thu, 25 Jun 2020 06:43:35 GMT _Version update only_ ## 3.24.3 Wed, 24 Jun 2020 09:50:48 GMT _Version update only_ ## 3.24.2 Wed, 24 Jun 2020 09:04:28 GMT _Version update only_ ## 3.24.1 Wed, 10 Jun 2020 20:48:30 GMT ### Patches - Improve API docs for "LockFile" ## 3.24.0 Sat, 30 May 2020 02:59:54 GMT ### Minor changes - Add a FileSystem.copyFiles() API for recursively copying folders, and clarify that FileSystem.copyFile() only copies a single file ## 3.23.1 Thu, 28 May 2020 05:59:02 GMT ### Patches - Improve async callstacks for FileSystem API (when using Node 12) ## 3.23.0 Wed, 27 May 2020 05:15:10 GMT ### Minor changes - Add an "FileSystemStats" alias to avoid the need to import "fs" when using the FileSystem API - Add FileSystem.readLink() and readLinkAsync() ## 3.22.1 Tue, 26 May 2020 23:00:25 GMT ### Patches - Make not-exist error messages more readable. ## 3.22.0 Fri, 22 May 2020 15:08:42 GMT ### Minor changes - Expose string parsing APIs from JsonFile. ## 3.21.0 Thu, 21 May 2020 23:09:44 GMT ### Minor changes - Create async versions of FileSystem and JsonFile APIs. ## 3.20.0 Thu, 21 May 2020 15:41:59 GMT ### Minor changes - Add PackageNameParser class, which is a configurable version of the PackageName API ## 3.19.7 Wed, 08 Apr 2020 04:07:34 GMT _Version update only_ ## 3.19.6 Sat, 28 Mar 2020 00:37:16 GMT _Version update only_ ## 3.19.5 Wed, 18 Mar 2020 15:07:47 GMT ### Patches - Upgrade cyclic dependencies ## 3.19.4 Tue, 17 Mar 2020 23:55:58 GMT ### Patches - PACKAGE NAME CHANGE: The NPM scope was changed from `@microsoft/node-core-library` to `@rushstack/node-core-library` ## 3.19.3 Tue, 28 Jan 2020 02:23:44 GMT ### Patches - Fix a typing issue that prevented LegacyAdapters from being used with the new glob typings. ## 3.19.2 Thu, 23 Jan 2020 01:07:56 GMT ### Patches - Fix an issue with a missing type in LegacyAdapters ## 3.19.1 Tue, 21 Jan 2020 21:56:14 GMT _Version update only_ ## 3.19.0 Sun, 19 Jan 2020 02:26:52 GMT ### Minor changes - Upgrade Node typings to Node 10 ## 3.18.3 Fri, 17 Jan 2020 01:08:23 GMT _Version update only_ ## 3.18.2 Thu, 09 Jan 2020 06:44:13 GMT _Version update only_ ## 3.18.1 Wed, 08 Jan 2020 00:11:31 GMT _Version update only_ ## 3.18.0 Fri, 15 Nov 2019 04:50:50 GMT ### Minor changes - Add NewlineKind.OsDefault and fix some comments ## 3.17.1 Mon, 11 Nov 2019 16:07:56 GMT _Version update only_ ## 3.17.0 Tue, 05 Nov 2019 06:49:28 GMT ### Minor changes - Add new API LegacyAdapters.stableSort(), and update the Sort API to be stable ## 3.16.0 Tue, 22 Oct 2019 06:24:44 GMT ### Minor changes - Add JsonObject type ### Patches - Refactor some code as part of migration from TSLint to ESLint ## 3.15.1 Sun, 29 Sep 2019 23:56:29 GMT ### Patches - Update repository URL ## 3.15.0 Mon, 23 Sep 2019 15:14:55 GMT ### Minor changes - Upgrade @types/node dependency and remove unnecessary dependencies on @types/fs-extra, @types/jju, and @types/z-schema ## 3.14.2 Tue, 10 Sep 2019 22:32:23 GMT ### Patches - Update documentation ## 3.14.1 Wed, 04 Sep 2019 18:28:06 GMT ### Patches - Add support for two more arguments in LegacyAdapters.convertCallbackToPromise. ## 3.14.0 Thu, 08 Aug 2019 15:14:17 GMT ### Minor changes - Remove experimental IPackageJsonTsdocConfiguration API, since the "tsdocFlavor" field is no longer used by API Extractor ## 3.13.0 Wed, 20 Mar 2019 19:14:49 GMT ### Minor changes - Introduce an interface INodePackageJson for loading package.json files whose "version" field may be missing. - Add two new APIs PackageJsonLookup.loadNodePackageJson() and tryLoadNodePackageJsonFor() that return INodePackageJson ## 3.12.1 Mon, 18 Mar 2019 04:28:43 GMT ### Patches - Export ColorValue and TextAttribute to eliminate the ae-forgotten-export warning ## 3.12.0 Wed, 27 Feb 2019 22:13:58 GMT ### Minor changes - Treat `types` as an alias for `typings` in package.json ## 3.11.1 Wed, 27 Feb 2019 17:13:17 GMT ### Patches - Include an enum that had been missing from the exports. ## 3.11.0 Mon, 18 Feb 2019 17:13:23 GMT ### Minor changes - Exposing field tsdocMetadata in package.json ## 3.10.0 Mon, 11 Feb 2019 03:31:55 GMT ### Minor changes - Include support for text formatting in the Terminal API. - Add new API `InternalError.breakInDebugger` ### Patches - Exposing utility class StringBufferTerminalProvider, useful to clients of Terminal API for their own unit tests ## 3.9.0 Thu, 10 Jan 2019 01:57:52 GMT ### Minor changes - Remove deprecated FileDiffTest API for unit tests; please use Jest snapshots instead ## 3.8.3 Wed, 19 Dec 2018 05:57:33 GMT ### Patches - Add missing space in error message ## 3.8.2 Thu, 13 Dec 2018 02:58:10 GMT ### Patches - Use @types/jju not custom typings ## 3.8.1 Wed, 12 Dec 2018 17:04:19 GMT ### Patches - Clarify error message reported by JsonFile._validateNoUndefinedMembers() ## 3.8.0 Fri, 07 Dec 2018 17:04:56 GMT ### Minor changes - Added a new "InternalError" API for reporting software defects ## 3.7.1 Thu, 29 Nov 2018 07:02:09 GMT ### Patches - Improve Sort.compareByValue() to consistently order "null" and "undefined" values ## 3.7.0 Wed, 28 Nov 2018 02:17:11 GMT ### Minor changes - Add new API PackageJsonLookup.loadOwnPackageJson() ## 3.6.0 Fri, 16 Nov 2018 21:37:10 GMT ### Minor changes - Add new APIs Sort.sortSet() and Sort.sortSetBy() ## 3.5.2 Wed, 07 Nov 2018 21:04:35 GMT ### Patches - Upgrade fs-extra to eliminate the "ERROR: ENOTEMPTY: directory not empty, rmdir" error that sometimes occurred with FileSystem.deleteFolder() ## 3.5.1 Mon, 05 Nov 2018 17:04:24 GMT ### Patches - Remove all dependencies on the "rimraf" library ## 3.5.0 Thu, 25 Oct 2018 23:20:40 GMT ### Minor changes - Add Sort API ## 3.4.0 Wed, 24 Oct 2018 16:03:10 GMT ### Minor changes - Adding Terminal API. ## 3.3.1 Wed, 17 Oct 2018 21:04:49 GMT ### Patches - Remove use of a deprecated Buffer API. ## 3.3.0 Mon, 08 Oct 2018 16:04:27 GMT ### Minor changes - Renaming PromiseUtilities to LegacyAdapters ## 3.2.0 Sun, 07 Oct 2018 06:15:56 GMT ### Minor changes - Introduce promiseify utility function. ### Patches - Update documentation ## 3.1.0 Fri, 28 Sep 2018 16:05:35 GMT ### Minor changes - Add `Path.isUnderOrEquals()` ## 3.0.1 Thu, 06 Sep 2018 01:25:26 GMT ### Patches - Update "repository" field in package.json ## 3.0.0 Wed, 29 Aug 2018 06:36:50 GMT ### Breaking changes - (Breaking API change) The FileSystem move/copy/createLink operations now require the source/target parameters to be explicitly specified, to avoid confusion ## 2.2.1 Thu, 23 Aug 2018 18:18:53 GMT ### Patches - Republish all packages in web-build-tools to resolve GitHub issue #782 ## 2.2.0 Wed, 22 Aug 2018 20:58:58 GMT ### Minor changes - Add features to JsonFile API to update an existing JSON file while preserving comments and whitespace ## 2.1.1 Wed, 22 Aug 2018 16:03:25 GMT ### Patches - Fix an issue where Executable.spawnSync() was returning SpawnSyncReturns<Buffer> instead of SpawnSyncReturns<string> - Fix an issue where Executable.spawnSync() did not support command paths containing spaces ## 2.1.0 Thu, 09 Aug 2018 21:03:22 GMT ### Minor changes - Add a new API "Executable" for spawning child processes ## 2.0.0 Thu, 26 Jul 2018 16:04:17 GMT ### Breaking changes - Replace IFileModeBits with a more flexible PosixModeBits enum - Rename FileSystem.changePermissionBits() to changePosixModeBits() ### Minor changes - Add new APIs FileSystem.getPosixModeBits() and FileSystem.formatPosixModeBits() ## 1.5.0 Tue, 03 Jul 2018 21:03:31 GMT ### Minor changes - Add a FileSystem API that wraps and replaces fs and fs-extra ## 1.4.1 Thu, 21 Jun 2018 08:27:29 GMT ### Patches - issue #705: fallback on linux to /proc/{n}/stat if 'ps -p 1 -o lstart' is not supported ## 1.4.0 Fri, 08 Jun 2018 08:43:52 GMT ### Minor changes - Add Text.truncateWithEllipsis() API ## 1.3.2 Thu, 31 May 2018 01:39:33 GMT ### Patches - Add missing "repository" property in IPackageJSON. ## 1.3.1 Tue, 15 May 2018 02:26:45 GMT ### Patches - Fix an issue where the PackageName class could not parse the package name "Base64" ## 1.3.0 Fri, 04 May 2018 00:42:38 GMT ### Minor changes - Update the package resolution logic to preserve symlinks in paths ## 1.2.0 Tue, 03 Apr 2018 16:05:29 GMT ### Minor changes - Add a new API "MapExtensions.mergeFromMap" ## 1.1.0 Mon, 02 Apr 2018 16:05:24 GMT ### Minor changes - Add new API "PackageName" for validating package names and extracting scopes - Add new API "ProtectableMap" for tracking/restricting how a map is consumed ## 1.0.0 Sat, 17 Mar 2018 02:54:22 GMT ### Breaking changes - Redesign the PackageJsonLookup API. This is a breaking change. ### Minor changes - Add new APIs IPackageJson, FileConstants, and FolderConstants ### Patches - Add "tsdoc" field to the IPackageJson API - Improve PackageJsonLookup.tryGetPackageFolderFor() to deduplicate symlinks by using fs.realpathSync() ## 0.8.0 Thu, 15 Mar 2018 16:05:43 GMT ### Minor changes - Add new Text API ## 0.7.3 Fri, 02 Mar 2018 01:13:59 GMT _Version update only_ ## 0.7.2 Tue, 27 Feb 2018 22:05:57 GMT ### Patches - Fix an issue where the LockFile was unable to acquire the lock if the resource dir doesn't exist. ## 0.7.1 Wed, 21 Feb 2018 22:04:19 GMT _Version update only_ ## 0.7.0 Wed, 21 Feb 2018 03:13:28 GMT ### Minor changes - Add "Path.isUnder()" API ## 0.6.1 Sat, 17 Feb 2018 02:53:49 GMT ### Patches - Fix an issue for LockFiles where not all filesystem operations were wrapped in a try/catch block. ## 0.6.0 Fri, 16 Feb 2018 22:05:23 GMT ### Minor changes - Add an API to `LockFile` which allows the caller to asyncronously wait for a LockFile to become available. ## 0.5.1 Fri, 16 Feb 2018 17:05:11 GMT _Version update only_ ## 0.5.0 Wed, 07 Feb 2018 17:05:11 GMT ### Minor changes - Add a LockFile class to work with LockFile's that manage resources across multiple processes. ## 0.4.10 Fri, 26 Jan 2018 22:05:30 GMT _Version update only_ ## 0.4.9 Fri, 26 Jan 2018 17:53:38 GMT ### Patches - Force a patch bump in case the previous version was an empty package ## 0.4.8 Fri, 26 Jan 2018 00:36:51 GMT _Version update only_ ## 0.4.7 Tue, 23 Jan 2018 17:05:28 GMT _Version update only_ ## 0.4.6 Thu, 18 Jan 2018 03:23:46 GMT _Version update only_ ## 0.4.5 Thu, 18 Jan 2018 00:48:06 GMT _Version update only_ ## 0.4.4 Thu, 18 Jan 2018 00:27:23 GMT ### Patches - Enable package typings generated by api-extractor ## 0.4.3 Wed, 17 Jan 2018 10:49:31 GMT _Version update only_ ## 0.4.2 Fri, 12 Jan 2018 03:35:22 GMT _Version update only_ ## 0.4.1 Thu, 11 Jan 2018 22:31:51 GMT _Version update only_ ## 0.4.0 Wed, 10 Jan 2018 20:40:01 GMT ### Minor changes - Upgrade to Node 8 ## 0.3.26 Tue, 09 Jan 2018 17:05:51 GMT ### Patches - Get web-build-tools building with pnpm ## 0.3.25 Sun, 07 Jan 2018 05:12:08 GMT _Version update only_ ## 0.3.24 Fri, 05 Jan 2018 20:26:45 GMT _Version update only_ ## 0.3.23 Fri, 05 Jan 2018 00:48:41 GMT _Version update only_ ## 0.3.22 Fri, 22 Dec 2017 17:04:46 GMT _Version update only_ ## 0.3.21 Tue, 12 Dec 2017 03:33:27 GMT _Version update only_ ## 0.3.20 Thu, 30 Nov 2017 23:59:09 GMT _Version update only_ ## 0.3.19 Thu, 30 Nov 2017 23:12:21 GMT _Version update only_ ## 0.3.18 Wed, 29 Nov 2017 17:05:37 GMT _Version update only_ ## 0.3.17 Tue, 28 Nov 2017 23:43:55 GMT _Version update only_ ## 0.3.16 Mon, 13 Nov 2017 17:04:50 GMT _Version update only_ ## 0.3.15 Mon, 06 Nov 2017 17:04:18 GMT _Version update only_ ## 0.3.14 Thu, 02 Nov 2017 16:05:24 GMT ### Patches - lock the reference version between web build tools projects ## 0.3.13 Wed, 01 Nov 2017 21:06:08 GMT ### Patches - Upgrade cyclic dependencies ## 0.3.12 Tue, 31 Oct 2017 21:04:04 GMT _Version update only_ ## 0.3.11 Tue, 31 Oct 2017 16:04:55 GMT _Version update only_ ## 0.3.10 Wed, 25 Oct 2017 20:03:59 GMT _Version update only_ ## 0.3.9 Tue, 24 Oct 2017 18:17:12 GMT _Version update only_ ## 0.3.8 Mon, 23 Oct 2017 21:53:12 GMT ### Patches - Updated cyclic dependencies ## 0.3.7 Fri, 20 Oct 2017 19:57:12 GMT _Version update only_ ## 0.3.6 Fri, 20 Oct 2017 01:52:54 GMT _Version update only_ ## 0.3.5 Fri, 20 Oct 2017 01:04:44 GMT _Version update only_ ## 0.3.4 Fri, 13 Oct 2017 19:02:46 GMT ### Patches - When FileDiffTest creates a copy of the expected output for comparison, it is now marked as read-only to avoid confusion ## 0.3.3 Thu, 05 Oct 2017 01:05:02 GMT _Version update only_ ## 0.3.2 Fri, 29 Sep 2017 01:03:42 GMT ### Patches - FileDiffTest now copies the expected file into the same folder as the actual file for easier comparisons ## 0.3.1 Thu, 28 Sep 2017 01:04:28 GMT _Version update only_ ## 0.3.0 Fri, 22 Sep 2017 01:04:02 GMT ### Minor changes - Upgrade to es6 ## 0.2.11 Wed, 20 Sep 2017 22:10:17 GMT _Version update only_ ## 0.2.10 Mon, 11 Sep 2017 13:04:55 GMT _Version update only_ ## 0.2.9 Fri, 08 Sep 2017 13:04:00 GMT ### Patches - Improve error reporting for JsonFile.validateNoUndefinedMembers() ## 0.2.8 Fri, 08 Sep 2017 01:28:04 GMT ### Patches - Deprecate @types/es6-coll ections in favor of built-in typescript typings 'es2015.collection' a nd 'es2015.iterable' ## 0.2.7 Thu, 07 Sep 2017 13:04:35 GMT _Version update only_ ## 0.2.6 Thu, 07 Sep 2017 00:11:12 GMT _Version update only_ ## 0.2.5 Wed, 06 Sep 2017 13:03:42 GMT _Version update only_ ## 0.2.4 Tue, 05 Sep 2017 19:03:56 GMT _Version update only_ ## 0.2.3 Sat, 02 Sep 2017 01:04:26 GMT _Version update only_ ## 0.2.2 Thu, 31 Aug 2017 18:41:18 GMT _Version update only_ ## 0.2.1 Thu, 31 Aug 2017 17:46:25 GMT _Version update only_ ## 0.2.0 Wed, 30 Aug 2017 01:04:34 GMT ### Minor changes - Initial implementation of DiffTest, JsonFile, and PackageJsonLookup