Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

@rushstack/node-core-library

Package Overview
Dependencies
Maintainers
3
Versions
161
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rushstack/node-core-library - npm Package Compare versions

Comparing version
3.49.0
to
3.50.0
+15
-0
lib/Async.d.ts

@@ -17,2 +17,13 @@ /**

/**
* @remarks
* Used with {@link Async.runWithRetriesAsync}.
*
* @beta
*/
export interface IRunWithRetriesOptions<TResult> {
action: () => Promise<TResult> | TResult;
maxRetries: number;
retryDelayMs?: number;
}
/**
* Utilities for parallel asynchronous operations, for use with the system `Promise` APIs.

@@ -67,3 +78,7 @@ *

static sleep(ms: number): Promise<void>;
/**
* Executes an async function and optionally retries it if it fails.
*/
static runWithRetriesAsync<TResult>({ action, maxRetries, retryDelayMs }: IRunWithRetriesOptions<TResult>): Promise<TResult>;
}
//# sourceMappingURL=Async.d.ts.map
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"Async.d.ts","sourceRoot":"","sources":["../src/Async.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,KAAK;IAChB;;;;;;;;;;;;;;;;;;;OAmBG;WACiB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAClD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,GAC7C,OAAO,CAAC,OAAO,EAAE,CAAC;IAcrB;;;;;;;;;;;;;;;;;OAiBG;WACiB,YAAY,CAAC,MAAM,EACrC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAClD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAC9D,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,GAC7C,OAAO,CAAC,IAAI,CAAC;IA+DhB;;OAEG;WACiB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKrD"}
{"version":3,"file":"Async.d.ts","sourceRoot":"","sources":["../src/Async.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO;IAC7C,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,KAAK;IAChB;;;;;;;;;;;;;;;;;;;OAmBG;WACiB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAClD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,GAC7C,OAAO,CAAC,OAAO,EAAE,CAAC;IAcrB;;;;;;;;;;;;;;;;;OAiBG;WACiB,YAAY,CAAC,MAAM,EACrC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAClD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAC9D,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,GAC7C,OAAO,CAAC,IAAI,CAAC;IA+DhB;;OAEG;WACiB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD;;OAEG;WACiB,mBAAmB,CAAC,OAAO,EAAE,EAC/C,MAAM,EACN,UAAU,EACV,YAAgB,EACjB,EAAE,sBAAsB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAetD"}

@@ -119,4 +119,24 @@ "use strict";

}
/**
* Executes an async function and optionally retries it if it fails.
*/
static async runWithRetriesAsync({ action, maxRetries, retryDelayMs = 0 }) {
let retryCounter = 0;
// eslint-disable-next-line no-constant-condition
while (true) {
try {
return await action();
}
catch (e) {
if (++retryCounter > maxRetries) {
throw e;
}
else if (retryDelayMs > 0) {
await Async.sleep(retryDelayMs);
}
}
}
}
}
exports.Async = Async;
//# sourceMappingURL=Async.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"Async.js","sourceRoot":"","sources":["../src/Async.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\n/**\n * Options for controlling the parallelism of asynchronous operations.\n *\n * @remarks\n * Used with {@link Async.mapAsync} and {@link Async.forEachAsync}.\n *\n * @beta\n */\nexport interface IAsyncParallelismOptions {\n /**\n * Optionally used with the {@link Async.mapAsync} and {@link Async.forEachAsync}\n * to limit the maximum number of concurrent promises to the specified number.\n */\n concurrency?: number;\n}\n\n/**\n * Utilities for parallel asynchronous operations, for use with the system `Promise` APIs.\n *\n * @beta\n */\nexport class Async {\n /**\n * Given an input array and a `callback` function, invoke the callback to start a\n * promise for each element in the array. Returns an array containing the results.\n *\n * @remarks\n * This API is similar to the system `Array#map`, except that the loop is asynchronous,\n * and the maximum number of concurrent promises can be throttled\n * using {@link IAsyncParallelismOptions.concurrency}.\n *\n * If `callback` throws a synchronous exception, or if it returns a promise that rejects,\n * then the loop stops immediately. Any remaining array items will be skipped, and\n * overall operation will reject with the first error that was encountered.\n *\n * @param iterable - the array of inputs for the callback function\n * @param callback - a function that starts an asynchronous promise for an element\n * from the array\n * @param options - options for customizing the control flow\n * @returns an array containing the result for each callback, in the same order\n * as the original input `array`\n */\n public static async mapAsync<TEntry, TRetVal>(\n iterable: Iterable<TEntry> | AsyncIterable<TEntry>,\n callback: (entry: TEntry, arrayIndex: number) => Promise<TRetVal>,\n options?: IAsyncParallelismOptions | undefined\n ): Promise<TRetVal[]> {\n const result: TRetVal[] = [];\n\n await Async.forEachAsync(\n iterable,\n async (item: TEntry, arrayIndex: number): Promise<void> => {\n result[arrayIndex] = await callback(item, arrayIndex);\n },\n options\n );\n\n return result;\n }\n\n /**\n * Given an input array and a `callback` function, invoke the callback to start a\n * promise for each element in the array.\n *\n * @remarks\n * This API is similar to the system `Array#forEach`, except that the loop is asynchronous,\n * and the maximum number of concurrent promises can be throttled\n * using {@link IAsyncParallelismOptions.concurrency}.\n *\n * If `callback` throws a synchronous exception, or if it returns a promise that rejects,\n * then the loop stops immediately. Any remaining array items will be skipped, and\n * overall operation will reject with the first error that was encountered.\n *\n * @param iterable - the array of inputs for the callback function\n * @param callback - a function that starts an asynchronous promise for an element\n * from the array\n * @param options - options for customizing the control flow\n */\n public static async forEachAsync<TEntry>(\n iterable: Iterable<TEntry> | AsyncIterable<TEntry>,\n callback: (entry: TEntry, arrayIndex: number) => Promise<void>,\n options?: IAsyncParallelismOptions | undefined\n ): Promise<void> {\n await new Promise<void>((resolve: () => void, reject: (error: Error) => void) => {\n const concurrency: number =\n options?.concurrency && options.concurrency > 0 ? options.concurrency : Infinity;\n let operationsInProgress: number = 0;\n\n const iterator: Iterator<TEntry> | AsyncIterator<TEntry> = (\n (iterable as Iterable<TEntry>)[Symbol.iterator] ||\n (iterable as AsyncIterable<TEntry>)[Symbol.asyncIterator]\n ).call(iterable);\n\n let arrayIndex: number = 0;\n let iteratorIsComplete: boolean = false;\n let promiseHasResolvedOrRejected: boolean = false;\n\n async function queueOperationsAsync(): Promise<void> {\n while (operationsInProgress < concurrency && !iteratorIsComplete && !promiseHasResolvedOrRejected) {\n // Increment the concurrency while waiting for the iterator.\n // This function is reentrant, so this ensures that at most `concurrency` executions are waiting\n operationsInProgress++;\n const currentIteratorResult: IteratorResult<TEntry> = await iterator.next();\n // eslint-disable-next-line require-atomic-updates\n iteratorIsComplete = !!currentIteratorResult.done;\n\n if (!iteratorIsComplete) {\n Promise.resolve(callback(currentIteratorResult.value, arrayIndex++))\n .then(async () => {\n operationsInProgress--;\n await onOperationCompletionAsync();\n })\n .catch((error) => {\n promiseHasResolvedOrRejected = true;\n reject(error);\n });\n } else {\n // The iterator is complete and there wasn't a value, so untrack the waiting state.\n operationsInProgress--;\n }\n }\n\n if (iteratorIsComplete) {\n await onOperationCompletionAsync();\n }\n }\n\n async function onOperationCompletionAsync(): Promise<void> {\n if (!promiseHasResolvedOrRejected) {\n if (operationsInProgress === 0 && iteratorIsComplete) {\n promiseHasResolvedOrRejected = true;\n resolve();\n } else if (!iteratorIsComplete) {\n await queueOperationsAsync();\n }\n }\n }\n\n queueOperationsAsync().catch((error) => {\n promiseHasResolvedOrRejected = true;\n reject(error);\n });\n });\n }\n\n /**\n * Return a promise that resolves after the specified number of milliseconds.\n */\n public static async sleep(ms: number): Promise<void> {\n await new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n}\n"]}
{"version":3,"file":"Async.js","sourceRoot":"","sources":["../src/Async.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AA8B3D;;;;GAIG;AACH,MAAa,KAAK;IAChB;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,QAAkD,EAClD,QAAiE,EACjE,OAA8C;QAE9C,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,MAAM,KAAK,CAAC,YAAY,CACtB,QAAQ,EACR,KAAK,EAAE,IAAY,EAAE,UAAkB,EAAiB,EAAE;YACxD,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC,EACD,OAAO,CACR,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,MAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,QAAkD,EAClD,QAA8D,EAC9D,OAA8C;QAE9C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAmB,EAAE,MAA8B,EAAE,EAAE;YAC9E,MAAM,WAAW,GACf,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;YACnF,IAAI,oBAAoB,GAAW,CAAC,CAAC;YAErC,MAAM,QAAQ,GAA6C,CACxD,QAA6B,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC9C,QAAkC,CAAC,MAAM,CAAC,aAAa,CAAC,CAC1D,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEjB,IAAI,UAAU,GAAW,CAAC,CAAC;YAC3B,IAAI,kBAAkB,GAAY,KAAK,CAAC;YACxC,IAAI,4BAA4B,GAAY,KAAK,CAAC;YAElD,KAAK,UAAU,oBAAoB;gBACjC,OAAO,oBAAoB,GAAG,WAAW,IAAI,CAAC,kBAAkB,IAAI,CAAC,4BAA4B,EAAE;oBACjG,4DAA4D;oBAC5D,gGAAgG;oBAChG,oBAAoB,EAAE,CAAC;oBACvB,MAAM,qBAAqB,GAA2B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC5E,kDAAkD;oBAClD,kBAAkB,GAAG,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAElD,IAAI,CAAC,kBAAkB,EAAE;wBACvB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;6BACjE,IAAI,CAAC,KAAK,IAAI,EAAE;4BACf,oBAAoB,EAAE,CAAC;4BACvB,MAAM,0BAA0B,EAAE,CAAC;wBACrC,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;4BACf,4BAA4B,GAAG,IAAI,CAAC;4BACpC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAChB,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACL,mFAAmF;wBACnF,oBAAoB,EAAE,CAAC;qBACxB;iBACF;gBAED,IAAI,kBAAkB,EAAE;oBACtB,MAAM,0BAA0B,EAAE,CAAC;iBACpC;YACH,CAAC;YAED,KAAK,UAAU,0BAA0B;gBACvC,IAAI,CAAC,4BAA4B,EAAE;oBACjC,IAAI,oBAAoB,KAAK,CAAC,IAAI,kBAAkB,EAAE;wBACpD,4BAA4B,GAAG,IAAI,CAAC;wBACpC,OAAO,EAAE,CAAC;qBACX;yBAAM,IAAI,CAAC,kBAAkB,EAAE;wBAC9B,MAAM,oBAAoB,EAAE,CAAC;qBAC9B;iBACF;YACH,CAAC;YAED,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrC,4BAA4B,GAAG,IAAI,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAU;QAClC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAU,EAC/C,MAAM,EACN,UAAU,EACV,YAAY,GAAG,CAAC,EACgB;QAChC,IAAI,YAAY,GAAW,CAAC,CAAC;QAC7B,iDAAiD;QACjD,OAAO,IAAI,EAAE;YACX,IAAI;gBACF,OAAO,MAAM,MAAM,EAAE,CAAC;aACvB;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,EAAE,YAAY,GAAG,UAAU,EAAE;oBAC/B,MAAM,CAAC,CAAC;iBACT;qBAAM,IAAI,YAAY,GAAG,CAAC,EAAE;oBAC3B,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;iBACjC;aACF;SACF;IACH,CAAC;CACF;AA3JD,sBA2JC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\n/**\n * Options for controlling the parallelism of asynchronous operations.\n *\n * @remarks\n * Used with {@link Async.mapAsync} and {@link Async.forEachAsync}.\n *\n * @beta\n */\nexport interface IAsyncParallelismOptions {\n /**\n * Optionally used with the {@link Async.mapAsync} and {@link Async.forEachAsync}\n * to limit the maximum number of concurrent promises to the specified number.\n */\n concurrency?: number;\n}\n\n/**\n * @remarks\n * Used with {@link Async.runWithRetriesAsync}.\n *\n * @beta\n */\nexport interface IRunWithRetriesOptions<TResult> {\n action: () => Promise<TResult> | TResult;\n maxRetries: number;\n retryDelayMs?: number;\n}\n\n/**\n * Utilities for parallel asynchronous operations, for use with the system `Promise` APIs.\n *\n * @beta\n */\nexport class Async {\n /**\n * Given an input array and a `callback` function, invoke the callback to start a\n * promise for each element in the array. Returns an array containing the results.\n *\n * @remarks\n * This API is similar to the system `Array#map`, except that the loop is asynchronous,\n * and the maximum number of concurrent promises can be throttled\n * using {@link IAsyncParallelismOptions.concurrency}.\n *\n * If `callback` throws a synchronous exception, or if it returns a promise that rejects,\n * then the loop stops immediately. Any remaining array items will be skipped, and\n * overall operation will reject with the first error that was encountered.\n *\n * @param iterable - the array of inputs for the callback function\n * @param callback - a function that starts an asynchronous promise for an element\n * from the array\n * @param options - options for customizing the control flow\n * @returns an array containing the result for each callback, in the same order\n * as the original input `array`\n */\n public static async mapAsync<TEntry, TRetVal>(\n iterable: Iterable<TEntry> | AsyncIterable<TEntry>,\n callback: (entry: TEntry, arrayIndex: number) => Promise<TRetVal>,\n options?: IAsyncParallelismOptions | undefined\n ): Promise<TRetVal[]> {\n const result: TRetVal[] = [];\n\n await Async.forEachAsync(\n iterable,\n async (item: TEntry, arrayIndex: number): Promise<void> => {\n result[arrayIndex] = await callback(item, arrayIndex);\n },\n options\n );\n\n return result;\n }\n\n /**\n * Given an input array and a `callback` function, invoke the callback to start a\n * promise for each element in the array.\n *\n * @remarks\n * This API is similar to the system `Array#forEach`, except that the loop is asynchronous,\n * and the maximum number of concurrent promises can be throttled\n * using {@link IAsyncParallelismOptions.concurrency}.\n *\n * If `callback` throws a synchronous exception, or if it returns a promise that rejects,\n * then the loop stops immediately. Any remaining array items will be skipped, and\n * overall operation will reject with the first error that was encountered.\n *\n * @param iterable - the array of inputs for the callback function\n * @param callback - a function that starts an asynchronous promise for an element\n * from the array\n * @param options - options for customizing the control flow\n */\n public static async forEachAsync<TEntry>(\n iterable: Iterable<TEntry> | AsyncIterable<TEntry>,\n callback: (entry: TEntry, arrayIndex: number) => Promise<void>,\n options?: IAsyncParallelismOptions | undefined\n ): Promise<void> {\n await new Promise<void>((resolve: () => void, reject: (error: Error) => void) => {\n const concurrency: number =\n options?.concurrency && options.concurrency > 0 ? options.concurrency : Infinity;\n let operationsInProgress: number = 0;\n\n const iterator: Iterator<TEntry> | AsyncIterator<TEntry> = (\n (iterable as Iterable<TEntry>)[Symbol.iterator] ||\n (iterable as AsyncIterable<TEntry>)[Symbol.asyncIterator]\n ).call(iterable);\n\n let arrayIndex: number = 0;\n let iteratorIsComplete: boolean = false;\n let promiseHasResolvedOrRejected: boolean = false;\n\n async function queueOperationsAsync(): Promise<void> {\n while (operationsInProgress < concurrency && !iteratorIsComplete && !promiseHasResolvedOrRejected) {\n // Increment the concurrency while waiting for the iterator.\n // This function is reentrant, so this ensures that at most `concurrency` executions are waiting\n operationsInProgress++;\n const currentIteratorResult: IteratorResult<TEntry> = await iterator.next();\n // eslint-disable-next-line require-atomic-updates\n iteratorIsComplete = !!currentIteratorResult.done;\n\n if (!iteratorIsComplete) {\n Promise.resolve(callback(currentIteratorResult.value, arrayIndex++))\n .then(async () => {\n operationsInProgress--;\n await onOperationCompletionAsync();\n })\n .catch((error) => {\n promiseHasResolvedOrRejected = true;\n reject(error);\n });\n } else {\n // The iterator is complete and there wasn't a value, so untrack the waiting state.\n operationsInProgress--;\n }\n }\n\n if (iteratorIsComplete) {\n await onOperationCompletionAsync();\n }\n }\n\n async function onOperationCompletionAsync(): Promise<void> {\n if (!promiseHasResolvedOrRejected) {\n if (operationsInProgress === 0 && iteratorIsComplete) {\n promiseHasResolvedOrRejected = true;\n resolve();\n } else if (!iteratorIsComplete) {\n await queueOperationsAsync();\n }\n }\n }\n\n queueOperationsAsync().catch((error) => {\n promiseHasResolvedOrRejected = true;\n reject(error);\n });\n });\n }\n\n /**\n * Return a promise that resolves after the specified number of milliseconds.\n */\n public static async sleep(ms: number): Promise<void> {\n await new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * Executes an async function and optionally retries it if it fails.\n */\n public static async runWithRetriesAsync<TResult>({\n action,\n maxRetries,\n retryDelayMs = 0\n }: IRunWithRetriesOptions<TResult>): Promise<TResult> {\n let retryCounter: number = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n try {\n return await action();\n } catch (e) {\n if (++retryCounter > maxRetries) {\n throw e;\n } else if (retryDelayMs > 0) {\n await Async.sleep(retryDelayMs);\n }\n }\n }\n }\n}\n"]}

@@ -8,3 +8,3 @@ /**

export { AnsiEscape, IAnsiEscapeConvertForTestsOptions } from './Terminal/AnsiEscape';
export { Async, IAsyncParallelismOptions } from './Async';
export { Async, IAsyncParallelismOptions, IRunWithRetriesOptions } from './Async';
export { Brand } from './PrimitiveTypes';

@@ -11,0 +11,0 @@ export { FileConstants, FolderConstants } from './Constants';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D;;;;GAIG;AAEH,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,oDAAsF;AAA7E,wGAAA,UAAU,OAAA;AACnB,iCAA0D;AAAjD,8FAAA,KAAK,OAAA;AAEd,yCAA6D;AAApD,0GAAA,aAAa,OAAA;AAAE,4GAAA,eAAe,OAAA;AACvC,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,mDAAqE;AAA5D,gHAAA,cAAc,OAAA;AACvB,2CAOsB;AADpB,wGAAA,UAAU,OAAA;AAEZ,yCAAwF;AAA/B,sGAAA,SAAS,OAAA;AAQlE,mCAKkB;AAJhB,gGAAA,MAAM,OAAA;AAKR,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uCAA6G;AAAxF,oGAAA,QAAQ,OAAA;AAC7B,2CAKsB;AAJpB,wGAAA,UAAU,OAAA;AAKZ,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,yDAAsF;AAA/C,sHAAA,iBAAiB,OAAA;AACxD,6CAMuB;AALrB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AAKnB,+BAA8G;AAArG,4FAAA,IAAI,OAAA;AACb,+BAAqD;AAA5C,gGAAA,QAAQ,OAAA;AAAE,4FAAA,IAAI,OAAA;AAAE,mGAAA,WAAW,OAAA;AACpC,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,2CAkBsB;AAjBpB,mHAAA,qBAAqB,OAAA;AACrB,wGAAA,UAAU,OAAA;AAiBZ,2CAA4D;AAAnD,wGAAA,UAAU,OAAA;AACnB,mDAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,iDAAgE;AAAvD,8GAAA,aAAa,OAAA;AACtB,+DAAkF;AAArD,4HAAA,oBAAoB,OAAA;AAEjD,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,4CAA0F;AAAjF,gGAAA,MAAM,OAAA;AAAsB,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAC9D,kEAA2F;AAA/D,6HAAA,wBAAwB,OAAA;AACpD,8EAA8G;AAArG,kIAAA,uBAAuB,OAAA;AAChC,wFAGiD;AAF/C,4IAAA,4BAA4B,OAAA;AAG9B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\n/**\n * Core libraries that every NodeJS toolchain project should use.\n *\n * @packageDocumentation\n */\n\nexport { AlreadyReportedError } from './AlreadyReportedError';\nexport { AnsiEscape, IAnsiEscapeConvertForTestsOptions } from './Terminal/AnsiEscape';\nexport { Async, IAsyncParallelismOptions } from './Async';\nexport { Brand } from './PrimitiveTypes';\nexport { FileConstants, FolderConstants } from './Constants';\nexport { Enum } from './Enum';\nexport { EnvironmentMap, IEnvironmentEntry } from './EnvironmentMap';\nexport {\n ExecutableStdioStreamMapping,\n ExecutableStdioMapping,\n IExecutableResolveOptions,\n IExecutableSpawnSyncOptions,\n IExecutableSpawnOptions,\n Executable\n} from './Executable';\nexport { IFileErrorOptions, IFileErrorFormattingOptions, FileError } from './FileError';\nexport {\n INodePackageJson,\n IPackageJson,\n IPackageJsonDependencyTable,\n IPackageJsonScriptTable,\n IPackageJsonRepository\n} from './IPackageJson';\nexport {\n Import,\n IImportResolveOptions,\n IImportResolveModuleOptions,\n IImportResolvePackageOptions\n} from './Import';\nexport { InternalError } from './InternalError';\nexport { JsonObject, JsonFile, JsonNull, IJsonFileSaveOptions, IJsonFileStringifyOptions } from './JsonFile';\nexport {\n JsonSchema,\n IJsonSchemaErrorInfo,\n IJsonSchemaValidateOptions,\n IJsonSchemaFromFileOptions\n} from './JsonSchema';\nexport { LockFile } from './LockFile';\nexport { MapExtensions } from './MapExtensions';\nexport { PosixModeBits } from './PosixModeBits';\nexport { ProtectableMap, IProtectableMapParameters } from './ProtectableMap';\nexport { IPackageJsonLookupParameters, PackageJsonLookup } from './PackageJsonLookup';\nexport {\n PackageName,\n PackageNameParser,\n IPackageNameParserOptions,\n IParsedPackageName,\n IParsedPackageNameOrError\n} from './PackageName';\nexport { Path, FileLocationStyle, IPathFormatFileLocationOptions, IPathFormatConciselyOptions } from './Path';\nexport { Encoding, Text, NewlineKind } from './Text';\nexport { Sort } from './Sort';\nexport {\n AlreadyExistsBehavior,\n FileSystem,\n FileSystemCopyFilesAsyncFilter,\n FileSystemCopyFilesFilter,\n FolderItem,\n FileSystemStats,\n IFileSystemCopyFileBaseOptions,\n IFileSystemCopyFileOptions,\n IFileSystemCopyFilesAsyncOptions,\n IFileSystemCopyFilesOptions,\n IFileSystemCreateLinkOptions,\n IFileSystemDeleteFileOptions,\n IFileSystemMoveOptions,\n IFileSystemReadFileOptions,\n IFileSystemReadFolderOptions,\n IFileSystemUpdateTimeParameters,\n IFileSystemWriteFileOptions\n} from './FileSystem';\nexport { FileWriter, IFileWriterFlags } from './FileWriter';\nexport { LegacyAdapters, LegacyCallback } from './LegacyAdapters';\nexport { StringBuilder, IStringBuilder } from './StringBuilder';\nexport { ISubprocessOptions, SubprocessTerminator } from './SubprocessTerminator';\nexport { ITerminal } from './Terminal/ITerminal';\nexport { Terminal } from './Terminal/Terminal';\nexport { Colors, IColorableSequence, ColorValue, TextAttribute } from './Terminal/Colors';\nexport { ITerminalProvider, TerminalProviderSeverity } from './Terminal/ITerminalProvider';\nexport { ConsoleTerminalProvider, IConsoleTerminalProviderOptions } from './Terminal/ConsoleTerminalProvider';\nexport {\n StringBufferTerminalProvider,\n IStringBufferOutputOptions\n} from './Terminal/StringBufferTerminalProvider';\nexport { TypeUuid } from './TypeUuid';\n"]}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D;;;;GAIG;AAEH,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,oDAAsF;AAA7E,wGAAA,UAAU,OAAA;AACnB,iCAAkF;AAAzE,8FAAA,KAAK,OAAA;AAEd,yCAA6D;AAApD,0GAAA,aAAa,OAAA;AAAE,4GAAA,eAAe,OAAA;AACvC,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,mDAAqE;AAA5D,gHAAA,cAAc,OAAA;AACvB,2CAOsB;AADpB,wGAAA,UAAU,OAAA;AAEZ,yCAAwF;AAA/B,sGAAA,SAAS,OAAA;AAQlE,mCAKkB;AAJhB,gGAAA,MAAM,OAAA;AAKR,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uCAA6G;AAAxF,oGAAA,QAAQ,OAAA;AAC7B,2CAKsB;AAJpB,wGAAA,UAAU,OAAA;AAKZ,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,yDAAsF;AAA/C,sHAAA,iBAAiB,OAAA;AACxD,6CAMuB;AALrB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AAKnB,+BAA8G;AAArG,4FAAA,IAAI,OAAA;AACb,+BAAqD;AAA5C,gGAAA,QAAQ,OAAA;AAAE,4FAAA,IAAI,OAAA;AAAE,mGAAA,WAAW,OAAA;AACpC,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,2CAkBsB;AAjBpB,mHAAA,qBAAqB,OAAA;AACrB,wGAAA,UAAU,OAAA;AAiBZ,2CAA4D;AAAnD,wGAAA,UAAU,OAAA;AACnB,mDAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,iDAAgE;AAAvD,8GAAA,aAAa,OAAA;AACtB,+DAAkF;AAArD,4HAAA,oBAAoB,OAAA;AAEjD,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,4CAA0F;AAAjF,gGAAA,MAAM,OAAA;AAAsB,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAC9D,kEAA2F;AAA/D,6HAAA,wBAAwB,OAAA;AACpD,8EAA8G;AAArG,kIAAA,uBAAuB,OAAA;AAChC,wFAGiD;AAF/C,4IAAA,4BAA4B,OAAA;AAG9B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\n/**\n * Core libraries that every NodeJS toolchain project should use.\n *\n * @packageDocumentation\n */\n\nexport { AlreadyReportedError } from './AlreadyReportedError';\nexport { AnsiEscape, IAnsiEscapeConvertForTestsOptions } from './Terminal/AnsiEscape';\nexport { Async, IAsyncParallelismOptions, IRunWithRetriesOptions } from './Async';\nexport { Brand } from './PrimitiveTypes';\nexport { FileConstants, FolderConstants } from './Constants';\nexport { Enum } from './Enum';\nexport { EnvironmentMap, IEnvironmentEntry } from './EnvironmentMap';\nexport {\n ExecutableStdioStreamMapping,\n ExecutableStdioMapping,\n IExecutableResolveOptions,\n IExecutableSpawnSyncOptions,\n IExecutableSpawnOptions,\n Executable\n} from './Executable';\nexport { IFileErrorOptions, IFileErrorFormattingOptions, FileError } from './FileError';\nexport {\n INodePackageJson,\n IPackageJson,\n IPackageJsonDependencyTable,\n IPackageJsonScriptTable,\n IPackageJsonRepository\n} from './IPackageJson';\nexport {\n Import,\n IImportResolveOptions,\n IImportResolveModuleOptions,\n IImportResolvePackageOptions\n} from './Import';\nexport { InternalError } from './InternalError';\nexport { JsonObject, JsonFile, JsonNull, IJsonFileSaveOptions, IJsonFileStringifyOptions } from './JsonFile';\nexport {\n JsonSchema,\n IJsonSchemaErrorInfo,\n IJsonSchemaValidateOptions,\n IJsonSchemaFromFileOptions\n} from './JsonSchema';\nexport { LockFile } from './LockFile';\nexport { MapExtensions } from './MapExtensions';\nexport { PosixModeBits } from './PosixModeBits';\nexport { ProtectableMap, IProtectableMapParameters } from './ProtectableMap';\nexport { IPackageJsonLookupParameters, PackageJsonLookup } from './PackageJsonLookup';\nexport {\n PackageName,\n PackageNameParser,\n IPackageNameParserOptions,\n IParsedPackageName,\n IParsedPackageNameOrError\n} from './PackageName';\nexport { Path, FileLocationStyle, IPathFormatFileLocationOptions, IPathFormatConciselyOptions } from './Path';\nexport { Encoding, Text, NewlineKind } from './Text';\nexport { Sort } from './Sort';\nexport {\n AlreadyExistsBehavior,\n FileSystem,\n FileSystemCopyFilesAsyncFilter,\n FileSystemCopyFilesFilter,\n FolderItem,\n FileSystemStats,\n IFileSystemCopyFileBaseOptions,\n IFileSystemCopyFileOptions,\n IFileSystemCopyFilesAsyncOptions,\n IFileSystemCopyFilesOptions,\n IFileSystemCreateLinkOptions,\n IFileSystemDeleteFileOptions,\n IFileSystemMoveOptions,\n IFileSystemReadFileOptions,\n IFileSystemReadFolderOptions,\n IFileSystemUpdateTimeParameters,\n IFileSystemWriteFileOptions\n} from './FileSystem';\nexport { FileWriter, IFileWriterFlags } from './FileWriter';\nexport { LegacyAdapters, LegacyCallback } from './LegacyAdapters';\nexport { StringBuilder, IStringBuilder } from './StringBuilder';\nexport { ISubprocessOptions, SubprocessTerminator } from './SubprocessTerminator';\nexport { ITerminal } from './Terminal/ITerminal';\nexport { Terminal } from './Terminal/Terminal';\nexport { Colors, IColorableSequence, ColorValue, TextAttribute } from './Terminal/Colors';\nexport { ITerminalProvider, TerminalProviderSeverity } from './Terminal/ITerminalProvider';\nexport { ConsoleTerminalProvider, IConsoleTerminalProviderOptions } from './Terminal/ConsoleTerminalProvider';\nexport {\n StringBufferTerminalProvider,\n IStringBufferOutputOptions\n} from './Terminal/StringBufferTerminalProvider';\nexport { TypeUuid } from './TypeUuid';\n"]}
{
"name": "@rushstack/node-core-library",
"version": "3.49.0",
"version": "3.50.0",
"description": "Core libraries that every NodeJS toolchain project should use",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

Sorry, the diff of this file is too big to display