@rushstack/rush-bridge-cache-plugin 5.168.0 → 5.169.1

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.
Files changed (37) hide show
  1. package/{lib → lib-commonjs}/BridgeCachePlugin.js +3 -2
  2. package/lib-commonjs/BridgeCachePlugin.js.map +1 -0
  3. package/{lib → lib-dts}/BridgeCachePlugin.d.ts.map +1 -1
  4. package/lib-esm/BridgeCachePlugin.js +147 -0
  5. package/lib-esm/BridgeCachePlugin.js.map +1 -0
  6. package/{src/index.ts → lib-esm/index.js} +1 -1
  7. package/lib-esm/index.js.map +1 -0
  8. package/package.json +32 -8
  9. package/rush-plugin-manifest.json +2 -2
  10. package/.rush/temp/chunked-rush-logs/rush-bridge-cache-plugin._phase_build.chunks.jsonl +0 -8
  11. package/.rush/temp/operation/_phase_build/all.log +0 -8
  12. package/.rush/temp/operation/_phase_build/log-chunks.jsonl +0 -8
  13. package/.rush/temp/operation/_phase_build/state.json +0 -3
  14. package/.rush/temp/rushstack+rush-bridge-cache-plugin-_phase_build-3e1da8998ed45d48f791b6640f27b152630add44.tar.log +0 -27
  15. package/.rush/temp/shrinkwrap-deps.json +0 -90
  16. package/config/heft.json +0 -27
  17. package/config/jest.config.json +0 -3
  18. package/config/rig.json +0 -6
  19. package/eslint.config.js +0 -20
  20. package/lib/BridgeCachePlugin.js.map +0 -1
  21. package/rush-logs/rush-bridge-cache-plugin._phase_build.cache.log +0 -3
  22. package/rush-logs/rush-bridge-cache-plugin._phase_build.log +0 -8
  23. package/src/BridgeCachePlugin.ts +0 -244
  24. package/temp/build/copy-json-schemas/file-copy.json +0 -1
  25. package/temp/build/lint/_eslint-5eVG3S6w.json +0 -14
  26. package/temp/build/lint/lint.sarif +0 -29
  27. package/temp/build/typescript/file-copy.json +0 -1
  28. package/temp/build/typescript/ts_l9Fw4VUO.json +0 -1
  29. package/temp/json-schemas/rush/v5/bridge-cache-config.schema.json +0 -21
  30. package/tsconfig.json +0 -3
  31. /package/{lib → lib-commonjs}/index.js +0 -0
  32. /package/{lib → lib-commonjs}/index.js.map +0 -0
  33. /package/{lib → lib-commonjs}/schemas/bridge-cache-config.schema.json +0 -0
  34. /package/{lib → lib-dts}/BridgeCachePlugin.d.ts +0 -0
  35. /package/{lib → lib-dts}/index.d.ts +0 -0
  36. /package/{lib → lib-dts}/index.d.ts.map +0 -0
  37. /package/{src → lib-esm}/schemas/bridge-cache-config.schema.json +0 -0
@@ -41,7 +41,7 @@ class BridgeCachePlugin {
41
41
  });
42
42
  // populate the cache for each operation
43
43
  command.hooks.beforeExecuteOperations.tapPromise(PLUGIN_NAME, async (recordByOperation, context) => {
44
- const { buildCacheConfiguration } = context;
44
+ const { buildCacheConfiguration, rushConfiguration: { experimentsConfiguration: { configuration: { omitAppleDoubleFilesFromBuildCache } } } } = context;
45
45
  const { terminal } = logger;
46
46
  if (cacheAction === undefined) {
47
47
  return;
@@ -60,7 +60,8 @@ class BridgeCachePlugin {
60
60
  var _a, _b, _c, _d;
61
61
  const projectBuildCache = rush_sdk_1._OperationBuildCache.forOperation(operationExecutionResult, {
62
62
  buildCacheConfiguration,
63
- terminal
63
+ terminal,
64
+ excludeAppleDoubleFiles: !!omitAppleDoubleFilesFromBuildCache
64
65
  });
65
66
  const { operation } = operationExecutionResult;
66
67
  if (cacheAction === CACHE_ACTION_READ) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgeCachePlugin.js","sourceRoot":"","sources":["../src/BridgeCachePlugin.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,oEAAiE;AACjE,kDAAkF;AAWlF,gEAAsE;AAGtE,MAAM,WAAW,GAA4B,uBAAuB,CAAC;AAErE,MAAM,iBAAiB,GAAW,MAAM,CAAC;AACzC,MAAM,kBAAkB,GAAY,OAAO,CAAC;AAS5C,MAAa,iBAAiB;IAK5B,YAAmB,OAAkC;QAJrC,eAAU,GAAW,WAAW,CAAC;QAK/C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,kCAAkC,GAAG,OAAO,CAAC,iCAAiC,CAAC;QAEpF,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAoB;QAC/B,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,OAAuB,EAAE,EAAE;YAC1F,MAAM,MAAM,GAAY,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAEvD,IAAI,WAAoC,CAAC;YACzC,IAAI,oBAAoB,GAAY,KAAK,CAAC;YAE1C,wGAAwG;YACxG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAChC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,EACrD,CAAC,UAA0B,EAAE,OAAiC,EAAkB,EAAE;;gBAChF,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;gBACrC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBAErD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,uBAAuB,0CAAE,iBAAiB,CAAA,EAAE,CAAC;wBACxD,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,oBAAoB,cAAc,CACvF,CAAC;oBACJ,CAAC;oBAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC5B,CAAC;oBAED,oBAAoB,GAAG,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;gBAC/E,CAAC;gBAED,OAAO,UAAU,CAAC;YACpB,CAAC,CACF,CAAC;YACF,wCAAwC;YACxC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAC9C,WAAW,EACX,KAAK,EACH,iBAA4D,EAC5D,OAAkC,EACnB,EAAE;gBACjB,MAAM,EACJ,uBAAuB,EACvB,iBAAiB,EAAE,EACjB,wBAAwB,EAAE,EACxB,aAAa,EAAE,EAAE,kCAAkC,EAAE,EACtD,EACF,EACF,GAAG,OAAO,CAAC;gBACZ,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;gBAE5B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,iBAAiB,CAAA,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,oBAAoB,cAAc,CACvF,CAAC;gBACJ,CAAC;gBAED,MAAM,kBAAkB,GAAmC,IAAI,GAAG,EAAE,CAAC;gBACrE,KAAK,MAAM,wBAAwB,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;oBAClE,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;wBAC/C,kBAAkB,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY,GAAW,CAAC,CAAC;gBAE7B,MAAM,yBAAK,CAAC,YAAY,CACtB,kBAAkB,EAClB,KAAK,EAAE,wBAAmD,EAAE,EAAE;;oBAC5D,MAAM,iBAAiB,GAAwB,+BAAmB,CAAC,YAAY,CAC7E,wBAAwB,EACxB;wBACE,uBAAuB;wBACvB,QAAQ;wBACR,uBAAuB,EAAE,CAAC,CAAC,kCAAkC;qBAC9D,CACF,CAAC;oBAEF,MAAM,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC;oBAE/C,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAY,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;wBACpF,IAAI,OAAO,EAAE,CAAC;4BACZ,EAAE,YAAY,CAAC;4BACf,QAAQ,CAAC,SAAS,CAChB,cAAc,SAAS,CAAC,IAAI,sDAAsD,CACnF,CAAC;4BACF,QAAQ,CAAC,SAAS,CAAC,cAAc,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;wBAChE,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,gBAAgB,CACvB,cAAc,SAAS,CAAC,IAAI,wDAAwD,CACrF,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;wBAC9C,qIAAqI;wBACrI,IACE,oBAAoB;6BACpB,MAAA,SAAS,CAAC,QAAQ,0CAAE,iBAAiB,CAAA;4BACrC,CAAA,MAAA,MAAA,SAAS,CAAC,QAAQ,0CAAE,iBAAiB,0CAAE,MAAM,IAAG,CAAC,EACjD,CAAC;4BACD,MAAM,aAAa,GAAW,MAAA,SAAS,CAAC,iBAAiB,0CAAE,aAAa,CAAC;4BACzE,MAAM,cAAc,GAAa,EAAE,CAAC;4BACpC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAwB,EAAE,EAAE;gCACxE,IAAI,CAAC,8BAAU,CAAC,MAAM,CAAC,GAAG,aAAa,IAAI,gBAAgB,EAAE,CAAC,EAAE,CAAC;oCAC/D,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gCACxC,CAAC;4BACH,CAAC,CAAC,CAAC;4BACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC9B,QAAQ,CAAC,gBAAgB,CACvB,cAAc,SAAS,CAAC,IAAI,kDAAkD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,+BAA+B,CACzI,CAAC;gCACF,OAAO;4BACT,CAAC;wBACH,CAAC;wBAED,MAAM,OAAO,GAAY,MAAM,iBAAiB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wBACjF,IAAI,OAAO,EAAE,CAAC;4BACZ,EAAE,YAAY,CAAC;4BACf,QAAQ,CAAC,SAAS,CAChB,cAAc,SAAS,CAAC,IAAI,yEAAyE,CACtG,CAAC;4BACF,QAAQ,CAAC,SAAS,CAAC,cAAc,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;wBAChE,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,cAAc,CACrB,cAAc,SAAS,CAAC,IAAI,yEAAyE,CACtG,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC,EACD;oBACE,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CACF,CAAC;gBAEF,QAAQ,CAAC,SAAS,CAChB,oBAAoB,WAAW,gCAAgC,YAAY,WAAW,kBAAkB,CAAC,IAAI,cAAc,CAC5H,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CACrB,gBAA2D;QAE3D,MAAM,oBAAoB,GAAqC,gBAAgB,CAAC,GAAG,CACjF,IAAI,CAAC,oBAAoB,CAC1B,CAAC;QAEF,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,oBAAoB,CAAC,IAAI,KAAK,0CAAwB,CAAC,MAAM,EAAE,CAAC;gBAClE,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,oBAAoB,4DAA4D,CACxG,CAAC;YACJ,CAAC;YAED,IACE,oBAAoB,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;gBAC5C,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBACzD,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAC1D,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,oBAAoB,qCAAqC,iBAAiB,UAAU,kBAAkB,2CAA2C,CACzK,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAuB,oBAAoB,CAAC,KAAK,CAAC;YAC7D,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,iBAAiB,CAAC;gBACvB,KAAK,kBAAkB;oBACrB,OAAO,KAAK,CAAC;gBACf,KAAK,SAAS;oBACZ,OAAO,SAAS,CAAC;gBACnB;oBACE,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,oBAAoB,sBAAsB,iBAAiB,SAAS,kBAAkB,iBAAiB,KAAK,2CAA2C,CAC/K,CAAC;YACN,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,8BAA8B,CACpC,gBAA2D;QAE3D,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,yBAAyB,GAAqC,gBAAgB,CAAC,GAAG,CACtF,IAAI,CAAC,kCAAkC,CACxC,CAAC;QAEF,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,yBAAyB,CAAC,IAAI,KAAK,0CAAwB,CAAC,IAAI,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,kCAAkC,mBAAmB,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,yBAAyB,CAAC,KAAK,CAAC;IACzC,CAAC;CACF;AA7ND,8CA6NC","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 { Async, FileSystem } from '@rushstack/node-core-library';\nimport { _OperationBuildCache as OperationBuildCache } from '@rushstack/rush-sdk';\nimport type {\n ICreateOperationsContext,\n IExecuteOperationsContext,\n ILogger,\n IOperationExecutionResult,\n IPhasedCommand,\n IRushPlugin,\n Operation,\n RushSession\n} from '@rushstack/rush-sdk';\nimport { CommandLineParameterKind } from '@rushstack/ts-command-line';\nimport type { CommandLineParameter } from '@rushstack/ts-command-line';\n\nconst PLUGIN_NAME: 'RushBridgeCachePlugin' = 'RushBridgeCachePlugin';\n\nconst CACHE_ACTION_READ: 'read' = 'read';\nconst CACHE_ACTION_WRITE: 'write' = 'write';\n\ntype CacheAction = typeof CACHE_ACTION_READ | typeof CACHE_ACTION_WRITE;\n\nexport interface IBridgeCachePluginOptions {\n readonly actionParameterName: string;\n readonly requireOutputFoldersParameterName: string | undefined;\n}\n\nexport class BridgeCachePlugin implements IRushPlugin {\n public readonly pluginName: string = PLUGIN_NAME;\n private readonly _actionParameterName: string;\n private readonly _requireOutputFoldersParameterName: string | undefined;\n\n public constructor(options: IBridgeCachePluginOptions) {\n this._actionParameterName = options.actionParameterName;\n this._requireOutputFoldersParameterName = options.requireOutputFoldersParameterName;\n\n if (!this._actionParameterName) {\n throw new Error(\n 'The \"actionParameterName\" option must be provided for the BridgeCachePlugin. Please see the plugin README for details.'\n );\n }\n }\n\n public apply(session: RushSession): void {\n session.hooks.runAnyPhasedCommand.tapPromise(PLUGIN_NAME, async (command: IPhasedCommand) => {\n const logger: ILogger = session.getLogger(PLUGIN_NAME);\n\n let cacheAction: CacheAction | undefined;\n let requireOutputFolders: boolean = false;\n\n // cancel the actual operations. We don't want to run the command, just cache the output folders on disk\n command.hooks.createOperations.tap(\n { name: PLUGIN_NAME, stage: Number.MAX_SAFE_INTEGER },\n (operations: Set<Operation>, context: ICreateOperationsContext): Set<Operation> => {\n const { customParameters } = context;\n cacheAction = this._getCacheAction(customParameters);\n\n if (cacheAction !== undefined) {\n if (!context.buildCacheConfiguration?.buildCacheEnabled) {\n throw new Error(\n `The build cache must be enabled to use the \"${this._actionParameterName}\" parameter.`\n );\n }\n\n for (const operation of operations) {\n operation.enabled = false;\n }\n\n requireOutputFolders = this._isRequireOutputFoldersFlagSet(customParameters);\n }\n\n return operations;\n }\n );\n // populate the cache for each operation\n command.hooks.beforeExecuteOperations.tapPromise(\n PLUGIN_NAME,\n async (\n recordByOperation: Map<Operation, IOperationExecutionResult>,\n context: IExecuteOperationsContext\n ): Promise<void> => {\n const {\n buildCacheConfiguration,\n rushConfiguration: {\n experimentsConfiguration: {\n configuration: { omitAppleDoubleFilesFromBuildCache }\n }\n }\n } = context;\n const { terminal } = logger;\n\n if (cacheAction === undefined) {\n return;\n }\n\n if (!buildCacheConfiguration?.buildCacheEnabled) {\n throw new Error(\n `The build cache must be enabled to use the \"${this._actionParameterName}\" parameter.`\n );\n }\n\n const filteredOperations: Set<IOperationExecutionResult> = new Set();\n for (const operationExecutionResult of recordByOperation.values()) {\n if (!operationExecutionResult.operation.isNoOp) {\n filteredOperations.add(operationExecutionResult);\n }\n }\n\n let successCount: number = 0;\n\n await Async.forEachAsync(\n filteredOperations,\n async (operationExecutionResult: IOperationExecutionResult) => {\n const projectBuildCache: OperationBuildCache = OperationBuildCache.forOperation(\n operationExecutionResult,\n {\n buildCacheConfiguration,\n terminal,\n excludeAppleDoubleFiles: !!omitAppleDoubleFilesFromBuildCache\n }\n );\n\n const { operation } = operationExecutionResult;\n\n if (cacheAction === CACHE_ACTION_READ) {\n const success: boolean = await projectBuildCache.tryRestoreFromCacheAsync(terminal);\n if (success) {\n ++successCount;\n terminal.writeLine(\n `Operation \"${operation.name}\": Outputs have been restored from the build cache.\"`\n );\n terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);\n } else {\n terminal.writeWarningLine(\n `Operation \"${operation.name}\": Outputs could not be restored from the build cache.`\n );\n }\n } else if (cacheAction === CACHE_ACTION_WRITE) {\n // if the require output folders flag has been passed, skip populating the cache if any of the expected output folders does not exist\n if (\n requireOutputFolders &&\n operation.settings?.outputFolderNames &&\n operation.settings?.outputFolderNames?.length > 0\n ) {\n const projectFolder: string = operation.associatedProject?.projectFolder;\n const missingFolders: string[] = [];\n operation.settings.outputFolderNames.forEach((outputFolderName: string) => {\n if (!FileSystem.exists(`${projectFolder}/${outputFolderName}`)) {\n missingFolders.push(outputFolderName);\n }\n });\n if (missingFolders.length > 0) {\n terminal.writeWarningLine(\n `Operation \"${operation.name}\": The following output folders do not exist: \"${missingFolders.join('\", \"')}\". Skipping cache population.`\n );\n return;\n }\n }\n\n const success: boolean = await projectBuildCache.trySetCacheEntryAsync(terminal);\n if (success) {\n ++successCount;\n terminal.writeLine(\n `Operation \"${operation.name}\": Existing outputs have been successfully written to the build cache.\"`\n );\n terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);\n } else {\n terminal.writeErrorLine(\n `Operation \"${operation.name}\": An error occurred while writing existing outputs to the build cache.`\n );\n }\n }\n },\n {\n concurrency: context.parallelism\n }\n );\n\n terminal.writeLine(\n `Cache operation \"${cacheAction}\" completed successfully for ${successCount} out of ${filteredOperations.size} operations.`\n );\n }\n );\n });\n }\n\n private _getCacheAction(\n customParameters: ReadonlyMap<string, CommandLineParameter>\n ): CacheAction | undefined {\n const cacheActionParameter: CommandLineParameter | undefined = customParameters.get(\n this._actionParameterName\n );\n\n if (cacheActionParameter) {\n if (cacheActionParameter.kind !== CommandLineParameterKind.Choice) {\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must be a choice. Please check the plugin configuration.`\n );\n }\n\n if (\n cacheActionParameter.alternatives.size !== 2 ||\n !cacheActionParameter.alternatives.has(CACHE_ACTION_READ) ||\n !cacheActionParameter.alternatives.has(CACHE_ACTION_WRITE)\n ) {\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must have exactly two choices: \"${CACHE_ACTION_READ}\" and \"${CACHE_ACTION_WRITE}\". Please check the plugin configuration.`\n );\n }\n\n const value: string | undefined = cacheActionParameter.value;\n switch (value) {\n case CACHE_ACTION_READ:\n case CACHE_ACTION_WRITE:\n return value;\n case undefined:\n return undefined;\n default:\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must be one of: \"${CACHE_ACTION_READ}\" or \"${CACHE_ACTION_WRITE}\". Received: \"${value}\". Please check the plugin configuration.`\n );\n }\n }\n\n return undefined;\n }\n\n private _isRequireOutputFoldersFlagSet(\n customParameters: ReadonlyMap<string, CommandLineParameter>\n ): boolean {\n if (!this._requireOutputFoldersParameterName) {\n return false;\n }\n\n const requireOutputFoldersParam: CommandLineParameter | undefined = customParameters.get(\n this._requireOutputFoldersParameterName\n );\n\n if (!requireOutputFoldersParam) {\n return false;\n }\n\n if (requireOutputFoldersParam.kind !== CommandLineParameterKind.Flag) {\n throw new Error(`The parameter \"${this._requireOutputFoldersParameterName}\" must be a flag.`);\n }\n\n return requireOutputFoldersParam.value;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeCachePlugin.d.ts","sourceRoot":"","sources":["../src/BridgeCachePlugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAMV,WAAW,EAEX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAW7B,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iCAAiC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChE;AAED,qBAAa,iBAAkB,YAAW,WAAW;IACnD,SAAgB,UAAU,EAAE,MAAM,CAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAqB;gBAErD,OAAO,EAAE,yBAAyB;IAW9C,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAuIxC,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,8BAA8B;CAqBvC"}
1
+ {"version":3,"file":"BridgeCachePlugin.d.ts","sourceRoot":"","sources":["../src/BridgeCachePlugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAMV,WAAW,EAEX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAW7B,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iCAAiC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChE;AAED,qBAAa,iBAAkB,YAAW,WAAW;IACnD,SAAgB,UAAU,EAAE,MAAM,CAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAqB;gBAErD,OAAO,EAAE,yBAAyB;IAW9C,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IA+IxC,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,8BAA8B;CAqBvC"}
@@ -0,0 +1,147 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
2
+ // See LICENSE in the project root for license information.
3
+ import { Async, FileSystem } from '@rushstack/node-core-library';
4
+ import { _OperationBuildCache as OperationBuildCache } from '@rushstack/rush-sdk';
5
+ import { CommandLineParameterKind } from '@rushstack/ts-command-line';
6
+ const PLUGIN_NAME = 'RushBridgeCachePlugin';
7
+ const CACHE_ACTION_READ = 'read';
8
+ const CACHE_ACTION_WRITE = 'write';
9
+ export class BridgeCachePlugin {
10
+ constructor(options) {
11
+ this.pluginName = PLUGIN_NAME;
12
+ this._actionParameterName = options.actionParameterName;
13
+ this._requireOutputFoldersParameterName = options.requireOutputFoldersParameterName;
14
+ if (!this._actionParameterName) {
15
+ throw new Error('The "actionParameterName" option must be provided for the BridgeCachePlugin. Please see the plugin README for details.');
16
+ }
17
+ }
18
+ apply(session) {
19
+ session.hooks.runAnyPhasedCommand.tapPromise(PLUGIN_NAME, async (command) => {
20
+ const logger = session.getLogger(PLUGIN_NAME);
21
+ let cacheAction;
22
+ let requireOutputFolders = false;
23
+ // cancel the actual operations. We don't want to run the command, just cache the output folders on disk
24
+ command.hooks.createOperations.tap({ name: PLUGIN_NAME, stage: Number.MAX_SAFE_INTEGER }, (operations, context) => {
25
+ var _a;
26
+ const { customParameters } = context;
27
+ cacheAction = this._getCacheAction(customParameters);
28
+ if (cacheAction !== undefined) {
29
+ if (!((_a = context.buildCacheConfiguration) === null || _a === void 0 ? void 0 : _a.buildCacheEnabled)) {
30
+ throw new Error(`The build cache must be enabled to use the "${this._actionParameterName}" parameter.`);
31
+ }
32
+ for (const operation of operations) {
33
+ operation.enabled = false;
34
+ }
35
+ requireOutputFolders = this._isRequireOutputFoldersFlagSet(customParameters);
36
+ }
37
+ return operations;
38
+ });
39
+ // populate the cache for each operation
40
+ command.hooks.beforeExecuteOperations.tapPromise(PLUGIN_NAME, async (recordByOperation, context) => {
41
+ const { buildCacheConfiguration, rushConfiguration: { experimentsConfiguration: { configuration: { omitAppleDoubleFilesFromBuildCache } } } } = context;
42
+ const { terminal } = logger;
43
+ if (cacheAction === undefined) {
44
+ return;
45
+ }
46
+ if (!(buildCacheConfiguration === null || buildCacheConfiguration === void 0 ? void 0 : buildCacheConfiguration.buildCacheEnabled)) {
47
+ throw new Error(`The build cache must be enabled to use the "${this._actionParameterName}" parameter.`);
48
+ }
49
+ const filteredOperations = new Set();
50
+ for (const operationExecutionResult of recordByOperation.values()) {
51
+ if (!operationExecutionResult.operation.isNoOp) {
52
+ filteredOperations.add(operationExecutionResult);
53
+ }
54
+ }
55
+ let successCount = 0;
56
+ await Async.forEachAsync(filteredOperations, async (operationExecutionResult) => {
57
+ var _a, _b, _c, _d;
58
+ const projectBuildCache = OperationBuildCache.forOperation(operationExecutionResult, {
59
+ buildCacheConfiguration,
60
+ terminal,
61
+ excludeAppleDoubleFiles: !!omitAppleDoubleFilesFromBuildCache
62
+ });
63
+ const { operation } = operationExecutionResult;
64
+ if (cacheAction === CACHE_ACTION_READ) {
65
+ const success = await projectBuildCache.tryRestoreFromCacheAsync(terminal);
66
+ if (success) {
67
+ ++successCount;
68
+ terminal.writeLine(`Operation "${operation.name}": Outputs have been restored from the build cache."`);
69
+ terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);
70
+ }
71
+ else {
72
+ terminal.writeWarningLine(`Operation "${operation.name}": Outputs could not be restored from the build cache.`);
73
+ }
74
+ }
75
+ else if (cacheAction === CACHE_ACTION_WRITE) {
76
+ // if the require output folders flag has been passed, skip populating the cache if any of the expected output folders does not exist
77
+ if (requireOutputFolders &&
78
+ ((_a = operation.settings) === null || _a === void 0 ? void 0 : _a.outputFolderNames) &&
79
+ ((_c = (_b = operation.settings) === null || _b === void 0 ? void 0 : _b.outputFolderNames) === null || _c === void 0 ? void 0 : _c.length) > 0) {
80
+ const projectFolder = (_d = operation.associatedProject) === null || _d === void 0 ? void 0 : _d.projectFolder;
81
+ const missingFolders = [];
82
+ operation.settings.outputFolderNames.forEach((outputFolderName) => {
83
+ if (!FileSystem.exists(`${projectFolder}/${outputFolderName}`)) {
84
+ missingFolders.push(outputFolderName);
85
+ }
86
+ });
87
+ if (missingFolders.length > 0) {
88
+ terminal.writeWarningLine(`Operation "${operation.name}": The following output folders do not exist: "${missingFolders.join('", "')}". Skipping cache population.`);
89
+ return;
90
+ }
91
+ }
92
+ const success = await projectBuildCache.trySetCacheEntryAsync(terminal);
93
+ if (success) {
94
+ ++successCount;
95
+ terminal.writeLine(`Operation "${operation.name}": Existing outputs have been successfully written to the build cache."`);
96
+ terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);
97
+ }
98
+ else {
99
+ terminal.writeErrorLine(`Operation "${operation.name}": An error occurred while writing existing outputs to the build cache.`);
100
+ }
101
+ }
102
+ }, {
103
+ concurrency: context.parallelism
104
+ });
105
+ terminal.writeLine(`Cache operation "${cacheAction}" completed successfully for ${successCount} out of ${filteredOperations.size} operations.`);
106
+ });
107
+ });
108
+ }
109
+ _getCacheAction(customParameters) {
110
+ const cacheActionParameter = customParameters.get(this._actionParameterName);
111
+ if (cacheActionParameter) {
112
+ if (cacheActionParameter.kind !== CommandLineParameterKind.Choice) {
113
+ throw new Error(`The parameter "${this._actionParameterName}" must be a choice. Please check the plugin configuration.`);
114
+ }
115
+ if (cacheActionParameter.alternatives.size !== 2 ||
116
+ !cacheActionParameter.alternatives.has(CACHE_ACTION_READ) ||
117
+ !cacheActionParameter.alternatives.has(CACHE_ACTION_WRITE)) {
118
+ throw new Error(`The parameter "${this._actionParameterName}" must have exactly two choices: "${CACHE_ACTION_READ}" and "${CACHE_ACTION_WRITE}". Please check the plugin configuration.`);
119
+ }
120
+ const value = cacheActionParameter.value;
121
+ switch (value) {
122
+ case CACHE_ACTION_READ:
123
+ case CACHE_ACTION_WRITE:
124
+ return value;
125
+ case undefined:
126
+ return undefined;
127
+ default:
128
+ throw new Error(`The parameter "${this._actionParameterName}" must be one of: "${CACHE_ACTION_READ}" or "${CACHE_ACTION_WRITE}". Received: "${value}". Please check the plugin configuration.`);
129
+ }
130
+ }
131
+ return undefined;
132
+ }
133
+ _isRequireOutputFoldersFlagSet(customParameters) {
134
+ if (!this._requireOutputFoldersParameterName) {
135
+ return false;
136
+ }
137
+ const requireOutputFoldersParam = customParameters.get(this._requireOutputFoldersParameterName);
138
+ if (!requireOutputFoldersParam) {
139
+ return false;
140
+ }
141
+ if (requireOutputFoldersParam.kind !== CommandLineParameterKind.Flag) {
142
+ throw new Error(`The parameter "${this._requireOutputFoldersParameterName}" must be a flag.`);
143
+ }
144
+ return requireOutputFoldersParam.value;
145
+ }
146
+ }
147
+ //# sourceMappingURL=BridgeCachePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgeCachePlugin.js","sourceRoot":"","sources":["../src/BridgeCachePlugin.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 { Async, FileSystem } from '@rushstack/node-core-library';\nimport { _OperationBuildCache as OperationBuildCache } from '@rushstack/rush-sdk';\nimport type {\n ICreateOperationsContext,\n IExecuteOperationsContext,\n ILogger,\n IOperationExecutionResult,\n IPhasedCommand,\n IRushPlugin,\n Operation,\n RushSession\n} from '@rushstack/rush-sdk';\nimport { CommandLineParameterKind } from '@rushstack/ts-command-line';\nimport type { CommandLineParameter } from '@rushstack/ts-command-line';\n\nconst PLUGIN_NAME: 'RushBridgeCachePlugin' = 'RushBridgeCachePlugin';\n\nconst CACHE_ACTION_READ: 'read' = 'read';\nconst CACHE_ACTION_WRITE: 'write' = 'write';\n\ntype CacheAction = typeof CACHE_ACTION_READ | typeof CACHE_ACTION_WRITE;\n\nexport interface IBridgeCachePluginOptions {\n readonly actionParameterName: string;\n readonly requireOutputFoldersParameterName: string | undefined;\n}\n\nexport class BridgeCachePlugin implements IRushPlugin {\n public readonly pluginName: string = PLUGIN_NAME;\n private readonly _actionParameterName: string;\n private readonly _requireOutputFoldersParameterName: string | undefined;\n\n public constructor(options: IBridgeCachePluginOptions) {\n this._actionParameterName = options.actionParameterName;\n this._requireOutputFoldersParameterName = options.requireOutputFoldersParameterName;\n\n if (!this._actionParameterName) {\n throw new Error(\n 'The \"actionParameterName\" option must be provided for the BridgeCachePlugin. Please see the plugin README for details.'\n );\n }\n }\n\n public apply(session: RushSession): void {\n session.hooks.runAnyPhasedCommand.tapPromise(PLUGIN_NAME, async (command: IPhasedCommand) => {\n const logger: ILogger = session.getLogger(PLUGIN_NAME);\n\n let cacheAction: CacheAction | undefined;\n let requireOutputFolders: boolean = false;\n\n // cancel the actual operations. We don't want to run the command, just cache the output folders on disk\n command.hooks.createOperations.tap(\n { name: PLUGIN_NAME, stage: Number.MAX_SAFE_INTEGER },\n (operations: Set<Operation>, context: ICreateOperationsContext): Set<Operation> => {\n const { customParameters } = context;\n cacheAction = this._getCacheAction(customParameters);\n\n if (cacheAction !== undefined) {\n if (!context.buildCacheConfiguration?.buildCacheEnabled) {\n throw new Error(\n `The build cache must be enabled to use the \"${this._actionParameterName}\" parameter.`\n );\n }\n\n for (const operation of operations) {\n operation.enabled = false;\n }\n\n requireOutputFolders = this._isRequireOutputFoldersFlagSet(customParameters);\n }\n\n return operations;\n }\n );\n // populate the cache for each operation\n command.hooks.beforeExecuteOperations.tapPromise(\n PLUGIN_NAME,\n async (\n recordByOperation: Map<Operation, IOperationExecutionResult>,\n context: IExecuteOperationsContext\n ): Promise<void> => {\n const {\n buildCacheConfiguration,\n rushConfiguration: {\n experimentsConfiguration: {\n configuration: { omitAppleDoubleFilesFromBuildCache }\n }\n }\n } = context;\n const { terminal } = logger;\n\n if (cacheAction === undefined) {\n return;\n }\n\n if (!buildCacheConfiguration?.buildCacheEnabled) {\n throw new Error(\n `The build cache must be enabled to use the \"${this._actionParameterName}\" parameter.`\n );\n }\n\n const filteredOperations: Set<IOperationExecutionResult> = new Set();\n for (const operationExecutionResult of recordByOperation.values()) {\n if (!operationExecutionResult.operation.isNoOp) {\n filteredOperations.add(operationExecutionResult);\n }\n }\n\n let successCount: number = 0;\n\n await Async.forEachAsync(\n filteredOperations,\n async (operationExecutionResult: IOperationExecutionResult) => {\n const projectBuildCache: OperationBuildCache = OperationBuildCache.forOperation(\n operationExecutionResult,\n {\n buildCacheConfiguration,\n terminal,\n excludeAppleDoubleFiles: !!omitAppleDoubleFilesFromBuildCache\n }\n );\n\n const { operation } = operationExecutionResult;\n\n if (cacheAction === CACHE_ACTION_READ) {\n const success: boolean = await projectBuildCache.tryRestoreFromCacheAsync(terminal);\n if (success) {\n ++successCount;\n terminal.writeLine(\n `Operation \"${operation.name}\": Outputs have been restored from the build cache.\"`\n );\n terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);\n } else {\n terminal.writeWarningLine(\n `Operation \"${operation.name}\": Outputs could not be restored from the build cache.`\n );\n }\n } else if (cacheAction === CACHE_ACTION_WRITE) {\n // if the require output folders flag has been passed, skip populating the cache if any of the expected output folders does not exist\n if (\n requireOutputFolders &&\n operation.settings?.outputFolderNames &&\n operation.settings?.outputFolderNames?.length > 0\n ) {\n const projectFolder: string = operation.associatedProject?.projectFolder;\n const missingFolders: string[] = [];\n operation.settings.outputFolderNames.forEach((outputFolderName: string) => {\n if (!FileSystem.exists(`${projectFolder}/${outputFolderName}`)) {\n missingFolders.push(outputFolderName);\n }\n });\n if (missingFolders.length > 0) {\n terminal.writeWarningLine(\n `Operation \"${operation.name}\": The following output folders do not exist: \"${missingFolders.join('\", \"')}\". Skipping cache population.`\n );\n return;\n }\n }\n\n const success: boolean = await projectBuildCache.trySetCacheEntryAsync(terminal);\n if (success) {\n ++successCount;\n terminal.writeLine(\n `Operation \"${operation.name}\": Existing outputs have been successfully written to the build cache.\"`\n );\n terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);\n } else {\n terminal.writeErrorLine(\n `Operation \"${operation.name}\": An error occurred while writing existing outputs to the build cache.`\n );\n }\n }\n },\n {\n concurrency: context.parallelism\n }\n );\n\n terminal.writeLine(\n `Cache operation \"${cacheAction}\" completed successfully for ${successCount} out of ${filteredOperations.size} operations.`\n );\n }\n );\n });\n }\n\n private _getCacheAction(\n customParameters: ReadonlyMap<string, CommandLineParameter>\n ): CacheAction | undefined {\n const cacheActionParameter: CommandLineParameter | undefined = customParameters.get(\n this._actionParameterName\n );\n\n if (cacheActionParameter) {\n if (cacheActionParameter.kind !== CommandLineParameterKind.Choice) {\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must be a choice. Please check the plugin configuration.`\n );\n }\n\n if (\n cacheActionParameter.alternatives.size !== 2 ||\n !cacheActionParameter.alternatives.has(CACHE_ACTION_READ) ||\n !cacheActionParameter.alternatives.has(CACHE_ACTION_WRITE)\n ) {\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must have exactly two choices: \"${CACHE_ACTION_READ}\" and \"${CACHE_ACTION_WRITE}\". Please check the plugin configuration.`\n );\n }\n\n const value: string | undefined = cacheActionParameter.value;\n switch (value) {\n case CACHE_ACTION_READ:\n case CACHE_ACTION_WRITE:\n return value;\n case undefined:\n return undefined;\n default:\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must be one of: \"${CACHE_ACTION_READ}\" or \"${CACHE_ACTION_WRITE}\". Received: \"${value}\". Please check the plugin configuration.`\n );\n }\n }\n\n return undefined;\n }\n\n private _isRequireOutputFoldersFlagSet(\n customParameters: ReadonlyMap<string, CommandLineParameter>\n ): boolean {\n if (!this._requireOutputFoldersParameterName) {\n return false;\n }\n\n const requireOutputFoldersParam: CommandLineParameter | undefined = customParameters.get(\n this._requireOutputFoldersParameterName\n );\n\n if (!requireOutputFoldersParam) {\n return false;\n }\n\n if (requireOutputFoldersParam.kind !== CommandLineParameterKind.Flag) {\n throw new Error(`The parameter \"${this._requireOutputFoldersParameterName}\" must be a flag.`);\n }\n\n return requireOutputFoldersParam.value;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
2
2
  // See LICENSE in the project root for license information.
3
-
4
3
  export { BridgeCachePlugin as default } from './BridgeCachePlugin';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,2DAA2D;AAE3D,OAAO,EAAE,iBAAiB,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nexport { BridgeCachePlugin as default } from './BridgeCachePlugin';\n"]}
package/package.json CHANGED
@@ -1,27 +1,51 @@
1
1
  {
2
2
  "name": "@rushstack/rush-bridge-cache-plugin",
3
- "version": "5.168.0",
3
+ "version": "5.169.1",
4
4
  "description": "Rush plugin that provides a --set-cache-only command flag to populate the cache from content on disk.",
5
5
  "license": "MIT",
6
- "main": "lib/index.js",
6
+ "main": "./lib-commonjs/index.js",
7
+ "module": "./lib-esm/index.js",
7
8
  "repository": {
8
9
  "url": "https://github.com/microsoft/rushstack",
9
10
  "type": "git",
10
11
  "directory": "rush-plugins/rush-bridge-cache-plugin"
11
12
  },
12
13
  "homepage": "https://rushjs.io",
13
- "types": "lib/index.d.ts",
14
+ "types": "./lib-dts/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./lib-dts/index.d.ts",
18
+ "import": "./lib-esm/index.js",
19
+ "require": "./lib-commonjs/index.js"
20
+ },
21
+ "./lib/*.schema.json": "./lib-commonjs/*.schema.json",
22
+ "./lib/*": {
23
+ "types": "./lib-dts/*.d.ts",
24
+ "import": "./lib-esm/*.js",
25
+ "require": "./lib-commonjs/*.js"
26
+ },
27
+ "./rush-plugin-manifest.json": "./rush-plugin-manifest.json",
28
+ "./package.json": "./package.json"
29
+ },
30
+ "typesVersions": {
31
+ "*": {
32
+ "lib/*": [
33
+ "lib-dts/*"
34
+ ]
35
+ }
36
+ },
14
37
  "dependencies": {
15
- "@rushstack/ts-command-line": "5.2.0",
16
- "@rushstack/node-core-library": "5.19.1",
17
- "@rushstack/terminal": "0.21.0",
18
- "@rushstack/rush-sdk": "5.168.0"
38
+ "@rushstack/ts-command-line": "5.3.0",
39
+ "@rushstack/node-core-library": "5.20.0",
40
+ "@rushstack/rush-sdk": "5.169.1",
41
+ "@rushstack/terminal": "0.22.0"
19
42
  },
20
43
  "devDependencies": {
21
44
  "eslint": "~9.37.0",
22
- "@rushstack/heft": "1.1.14",
45
+ "@rushstack/heft": "1.2.0",
23
46
  "local-node-rig": "1.0.0"
24
47
  },
48
+ "sideEffects": false,
25
49
  "scripts": {
26
50
  "build": "heft test --clean",
27
51
  "start": "heft test --clean --watch",
@@ -4,8 +4,8 @@
4
4
  {
5
5
  "pluginName": "rush-bridge-cache-plugin",
6
6
  "description": "Rush plugin that provides the ability to directly read or write the build cache from the command line via a custom choice parameter on build commands.",
7
- "entryPoint": "./lib/index.js",
8
- "optionsSchema": "lib/schemas/bridge-cache-config.schema.json"
7
+ "entryPoint": "./lib-commonjs/index.js",
8
+ "optionsSchema": "./lib-commonjs/schemas/bridge-cache-config.schema.json"
9
9
  }
10
10
  ]
11
11
  }
@@ -1,8 +0,0 @@
1
- {"kind":"O","text":"Invoking: heft run --only build -- --clean --production\n"}
2
- {"kind":"O","text":" ---- build started ---- \n"}
3
- {"kind":"O","text":"[build:copy-json-schemas] Copied 0 files and linked 1 file\n"}
4
- {"kind":"O","text":"[build:typescript] Using TypeScript version 5.8.2\n"}
5
- {"kind":"O","text":"[build:typescript] Copied 1 file and linked 0 files\n"}
6
- {"kind":"O","text":"[build:lint] Using ESLint version 9.37.0\n"}
7
- {"kind":"O","text":" ---- build finished (10.226s) ---- \n"}
8
- {"kind":"O","text":"\u001b[1m\u001b[32m-------------------- Finished (10.23s) --------------------\u001b[39m\u001b[22m\n"}
@@ -1,8 +0,0 @@
1
- Invoking: heft run --only build -- --clean --production
2
- ---- build started ----
3
- [build:copy-json-schemas] Copied 0 files and linked 1 file
4
- [build:typescript] Using TypeScript version 5.8.2
5
- [build:typescript] Copied 1 file and linked 0 files
6
- [build:lint] Using ESLint version 9.37.0
7
- ---- build finished (10.226s) ----
8
- -------------------- Finished (10.23s) --------------------
@@ -1,8 +0,0 @@
1
- {"kind":"O","text":"Invoking: heft run --only build -- --clean --production\n"}
2
- {"kind":"O","text":" ---- build started ---- \n"}
3
- {"kind":"O","text":"[build:copy-json-schemas] Copied 0 files and linked 1 file\n"}
4
- {"kind":"O","text":"[build:typescript] Using TypeScript version 5.8.2\n"}
5
- {"kind":"O","text":"[build:typescript] Copied 1 file and linked 0 files\n"}
6
- {"kind":"O","text":"[build:lint] Using ESLint version 9.37.0\n"}
7
- {"kind":"O","text":" ---- build finished (10.226s) ---- \n"}
8
- {"kind":"O","text":"\u001b[1m\u001b[32m-------------------- Finished (10.23s) --------------------\u001b[39m\u001b[22m\n"}
@@ -1,3 +0,0 @@
1
- {
2
- "nonCachedDurationMs": 11606.589957999997
3
- }
@@ -1,27 +0,0 @@
1
- Start time: Thu Feb 12 2026 22:59:48 GMT+0000 (Coordinated Universal Time)
2
- Invoking "/usr/bin/tar -c -f /mnt/vss/_work/1/s/common/temp/build-cache/rushstack+rush-bridge-cache-plugin-_phase_build-3e1da8998ed45d48f791b6640f27b152630add44-c8f880c415bba2e0.temp -z --files-from=-"
3
-
4
- ======= BEGIN PROCESS INPUT ======
5
- .rush/temp/operation/_phase_build/all.log
6
- .rush/temp/operation/_phase_build/log-chunks.jsonl
7
- .rush/temp/operation/_phase_build/state.json
8
- lib/BridgeCachePlugin.d.ts
9
- lib/BridgeCachePlugin.d.ts.map
10
- lib/BridgeCachePlugin.js
11
- lib/BridgeCachePlugin.js.map
12
- lib/index.d.ts
13
- lib/index.d.ts.map
14
- lib/index.js
15
- lib/index.js.map
16
- lib/schemas/bridge-cache-config.schema.json
17
- temp/build/copy-json-schemas/file-copy.json
18
- temp/build/lint/_eslint-5eVG3S6w.json
19
- temp/build/lint/lint.sarif
20
- temp/build/typescript/file-copy.json
21
- temp/build/typescript/ts_l9Fw4VUO.json
22
- temp/json-schemas/rush/v5/bridge-cache-config.schema.json
23
- ======== END PROCESS INPUT =======
24
- ======= BEGIN PROCESS OUTPUT =======
25
- ======== END PROCESS OUTPUT ========
26
-
27
- Exited with code "0"
@@ -1,90 +0,0 @@
1
- {
2
- "../../../rush-plugins/rush-bridge-cache-plugin": "../../../rush-plugins/rush-bridge-cache-plugin:MlgmJOSj/cNw2dvG80sGaFcslLzhV83T0mX8mWrR1QI=:",
3
- "@eslint-community/eslint-utils@4.9.1(eslint@9.37.0)": "@eslint-community/eslint-utils@4.9.1(eslint@9.37.0):pV7d94Vt5clzbavGnpkK+61F+5rS6yhGRWSY9HuA0As=:",
4
- "@eslint-community/regexpp@4.12.2": "@eslint-community/regexpp@4.12.2:uyU80Ai40ZGDQuC92buVjo14SacTIk973Fr0MVtegFM=:",
5
- "@eslint/config-array@0.21.1(supports-color@8.1.1)": "@eslint/config-array@0.21.1(supports-color@8.1.1):BjPPdCV5Gps4AZbqok+KhAPNwYuYHqaV7Ykl9pzMX+8=:",
6
- "@eslint/config-helpers@0.4.2": "@eslint/config-helpers@0.4.2:OQdwP6BWyWIP2cHcj6QsSKp4aZLy4SIvBcCT09oBoBQ=:",
7
- "@eslint/core@0.16.0": "@eslint/core@0.16.0:uzexS4qhmTDm8p5iApsOFpljpWgc7qKg9r9GGqrWzEE=:",
8
- "@eslint/core@0.17.0": "@eslint/core@0.17.0:cHGqSr/9YApIhRP1zR3cifWv6FHEI/8z3xArH1WgAmE=:",
9
- "@eslint/eslintrc@3.3.3(supports-color@8.1.1)": "@eslint/eslintrc@3.3.3(supports-color@8.1.1):ShwO2tSNyy1rB84VRfRN2uZ9v6C8pnoNqEGUth4xQAA=:",
10
- "@eslint/js@9.37.0": "@eslint/js@9.37.0:1lHv+cylTPmaROJN1v+8t/cCOs2jawM8vupYMA3wfiw=:",
11
- "@eslint/object-schema@2.1.7": "@eslint/object-schema@2.1.7:jSARpbAJ2LddSiVdJ/haY5BZQWoFbBzpJbgwBNzsK/Q=:",
12
- "@eslint/plugin-kit@0.4.1": "@eslint/plugin-kit@0.4.1:U6S4UH9ougLAXu8snBF6KcGRAXOoHRNhy7UdpKr7P6M=:",
13
- "@humanfs/core@0.19.1": "@humanfs/core@0.19.1:wVMMJ7xR7qZsFBWq1CxNkTDgR8snl9RoLZ4sH6O/HZM=:",
14
- "@humanfs/node@0.16.7": "@humanfs/node@0.16.7:xINqZCR6kwIO6xT8DoNiqgB3td5hBnIvvaDgHS4UdEY=:",
15
- "@humanwhocodes/module-importer@1.0.1": "@humanwhocodes/module-importer@1.0.1:fCoQC76P4Q2f226CjJ4vv5EpSL0Ainb2lbdIe97K1Rc=:",
16
- "@humanwhocodes/retry@0.4.3": "@humanwhocodes/retry@0.4.3:dWob8oSma9FiVHp6V9fD4fB7S4qF4lhJOj7e6ZgdmOs=:",
17
- "@types/estree@1.0.8": "@types/estree@1.0.8:727QzLEbjgy3FW8Yk/uPIap1d/zZp1OEZ2HILIT9sT0=:",
18
- "@types/json-schema@7.0.15": "@types/json-schema@7.0.15:5S/TXvz5YP0wDZWCWUSdt1XDMkd9xx63ujRzhL/gHU4=:",
19
- "acorn-jsx@5.3.2(acorn@8.15.0)": "acorn-jsx@5.3.2(acorn@8.15.0):fYH9IGa681Wprd2CRN1aUjancVsqumDOmywpFTf5AtI=:",
20
- "acorn@8.15.0": "acorn@8.15.0:mx7eZhL1y7nHABvAD/MxE7xMMjwGbTabG8ZBsg09kTA=:",
21
- "ajv@6.12.6": "ajv@6.12.6:Ryd2S/pDCZXGjaJ48IE14Vqa2/k+mLa4SA86apZM7p8=:",
22
- "ansi-styles@4.3.0": "ansi-styles@4.3.0:ZWSFBwfXYCdLBmX2ZXoVqBWX7sfMR5ZmhLs9Hyh39XY=:",
23
- "argparse@2.0.1": "argparse@2.0.1:CP2O+CSzekXy2j3jQ2OmDYinunOHtc5Csm3rkUFULc8=:",
24
- "balanced-match@1.0.2": "balanced-match@1.0.2:gfGr4W+ea8r5s//ubOMelyZUtW6NYxDKRn7E320nT9E=:",
25
- "brace-expansion@1.1.12": "brace-expansion@1.1.12:WZ7loigFQpKsxn/o3ZZyFCIEJvMvQqIiWubBtlXlQFE=:",
26
- "callsites@3.1.0": "callsites@3.1.0:idWjoLeDJlAOwomjUQAaBzJpd4IMT3jWXtplCrKm6Ww=:",
27
- "chalk@4.1.2": "chalk@4.1.2:Ye65wHsxO5agCiS0ku7VLLTcMR3e7m+jrhWtLo91SF4=:",
28
- "color-convert@2.0.1": "color-convert@2.0.1:hZZd3CXw35XLVUEhmk6HzkHqcS6buTTuyYdCKAwTOK0=:",
29
- "color-name@1.1.4": "color-name@1.1.4:Hgpi2Zjl2gtvUFUeFu42DzFvXVPruG3eFssCSCVbWE8=:",
30
- "concat-map@0.0.1": "concat-map@0.0.1:GoKrPWMm+s3dcLfPBXyb8fDpbzIk2Y+KRd32fgfdNAM=:",
31
- "cross-spawn@7.0.6": "cross-spawn@7.0.6:QjGdMcMYECyN5KGfM8tKE6N8fydsYKJWcjXEKd2LNC0=:",
32
- "debug@4.4.3(supports-color@8.1.1)": "debug@4.4.3(supports-color@8.1.1):ANJDTwuR2ff7h9OW74kfn2QhH6QfrX46YyeOCgPXZ14=:",
33
- "deep-is@0.1.4": "deep-is@0.1.4:9bzdBDlCEbKIHwMcLTgO5A7Cx9Qt2EvGWJ6rFD82XiU=:",
34
- "escape-string-regexp@4.0.0": "escape-string-regexp@4.0.0:CPzYl7HWqJw841Bt4gVlED3dDts6LmLIZgDLWvZQwBY=:",
35
- "eslint-scope@8.4.0": "eslint-scope@8.4.0:8sCuk/6sg3/iCXu4ikInhuUYyvcQoTXETHdBY6JCzr0=:",
36
- "eslint-visitor-keys@3.4.3": "eslint-visitor-keys@3.4.3:JgR2rf9Jpzva8lFrKE+5yhxLwgC8qNXtm9LsuSBeAT8=:",
37
- "eslint-visitor-keys@4.2.1": "eslint-visitor-keys@4.2.1:uyQNsuDcPZL1cJ29uclbt/ITeoMox36b0gbaWL8EB2E=:",
38
- "eslint@9.37.0": "eslint@9.37.0:rk3skjy1IyyOhzGEhT2sq+UKUs3RmcUrWMaScHhroz0=:",
39
- "espree@10.4.0": "espree@10.4.0:NLXs2uyUi7cK0j1u0OxWFDO6zYcblsb73pCi4SupIOE=:",
40
- "esquery@1.7.0": "esquery@1.7.0:7lTtVBqirWgWzvUR2UO+6Vgzeyg40AnBbmtPEJHSYnI=:",
41
- "esrecurse@4.3.0": "esrecurse@4.3.0:Uyo8CNm+VUgeJSS5C3ZgOky7Jzoy9NqvDpoJmqgzC1s=:",
42
- "estraverse@5.3.0": "estraverse@5.3.0:00AEUywuhKDu6n0lVb10DR2UWrNOIvYuMGqHj0CdwnU=:",
43
- "esutils@2.0.3": "esutils@2.0.3:aJX9PGT17yCKr7iAZ5tgGa3YKT3+hJEsQnqywiqu4Ls=:",
44
- "fast-deep-equal@3.1.3": "fast-deep-equal@3.1.3:sQzlu0W93kExDoLpH+J9nRYeCD3IKRR56QR+L5402As=:",
45
- "fast-json-stable-stringify@2.1.0": "fast-json-stable-stringify@2.1.0:K10zIkqqk5HN6fyP489Qokzz+PPha5DypCjM/vsSlHQ=:",
46
- "fast-levenshtein@2.0.6": "fast-levenshtein@2.0.6:cj7tvs40k4b5TCsQAzLpftvxrNH656DEVTohBtwuznY=:",
47
- "file-entry-cache@8.0.0": "file-entry-cache@8.0.0:SQqaU0bN18sw2FrNETBKmQ2diPepNTukqj8c1h6Z17M=:",
48
- "find-up@5.0.0": "find-up@5.0.0:qGgTzQhtN9dzd8OFSODArCGrmz7K7p1ru5REFT+nuJM=:",
49
- "flat-cache@4.0.1": "flat-cache@4.0.1:a+DWDtWKRdbcXR3b2WwRzt19oEmJI2bzSsPiFD4OftY=:",
50
- "flatted@3.3.3": "flatted@3.3.3:n/tySR+oJ9GqN0MHUglQk6rKnm/pocLOndnVVqnwZX8=:",
51
- "glob-parent@6.0.2": "glob-parent@6.0.2:0p37uOI61LJEBi5J0LqvCZpybCryfpCHpgXAbdojSAU=:",
52
- "globals@14.0.0": "globals@14.0.0:8M+Pg41xX4x7jxpJEHvAkp8r+p6TD38x0LOnrLneS38=:",
53
- "has-flag@4.0.0": "has-flag@4.0.0:zgfmr3OsDLCMHlibU0ENn6OJauYzOf52DD0KUMi60HM=:",
54
- "ignore@5.3.2": "ignore@5.3.2:yDHLBnXz3uWHnrTYakTFCNYHQ8taE2k5y6mSNt2aPIA=:",
55
- "import-fresh@3.3.1": "import-fresh@3.3.1:V85oxEIxh/3C01hNHGqCBxZvLr0D/OsKG70pMGc2c0U=:",
56
- "imurmurhash@0.1.4": "imurmurhash@0.1.4:Do4JJP58nt9bhIKZ6PdBxKNLuILFDd2QEH8LRaO9rvE=:",
57
- "is-extglob@2.1.1": "is-extglob@2.1.1:AMteoIRG/AM61zOJM8SDhzp+j5Az1DLUiE+Xa0axHgc=:",
58
- "is-glob@4.0.3": "is-glob@4.0.3:IV1BYKFvh0lG6Iv4rcSZbUF8fezvPI6gta6HezidaLA=:",
59
- "isexe@2.0.0": "isexe@2.0.0:8n/cuvODXVLGPi7fczU6oeUOBtC1KPQg3RpBNdTdLPc=:",
60
- "js-yaml@4.1.1": "js-yaml@4.1.1:U1+0lgDx+2f92l4id3YhAISRxaHOuGpc0d+LD6yKbrI=:",
61
- "json-buffer@3.0.1": "json-buffer@3.0.1:KnG+FGWhYZ7WwE6FB1gTZ1x+vLjjpFK5hEP3osbgBos=:",
62
- "json-schema-traverse@0.4.1": "json-schema-traverse@0.4.1:MmYShm+RH8i/sFAvj54xnWkkSkqqYi7EpDgoXnyqus4=:",
63
- "json-stable-stringify-without-jsonify@1.0.1": "json-stable-stringify-without-jsonify@1.0.1:TDV4Iv8qj2BIUNgKi3LYEx9gKwYu2Azddhj50w6wTws=:",
64
- "keyv@4.5.4": "keyv@4.5.4:IOAKQ0jOlet3hwxtEDYImR5HjaBV79JKkCnqiVDhjwM=:",
65
- "levn@0.4.1": "levn@0.4.1:RV/RjN8oIKM36mly7RXqmmuZwnsfJvN9fuLBZK+Ht10=:",
66
- "locate-path@6.0.0": "locate-path@6.0.0:E+wgrR8ZCmpCgttUQXSCTlPKs302KbvcF8qt5X/MbcU=:",
67
- "lodash.merge@4.6.2": "lodash.merge@4.6.2:EXgcubv0+a/3dVPS5zFM1runKQWf9swiWEUu51lBRqw=:",
68
- "minimatch@3.1.2": "minimatch@3.1.2:760dxYkpzsi3CWx9C5IcpXx924w+anGnFHkN6mxMxto=:",
69
- "ms@2.1.3": "ms@2.1.3:xgLWg3kVMamVjHxNqBOX2ye0Wk7IMAMEzH0+Ih3GdAI=:",
70
- "natural-compare@1.4.0": "natural-compare@1.4.0:TYI1bmKu+ZHaobZXs/B5hNXj1gFjP1MbXA/aTJrSvXk=:",
71
- "optionator@0.9.4": "optionator@0.9.4:VXQcNvIxRkutRM+nV1xLnPEIz3OkO0yzxnaUtDpUbFE=:",
72
- "p-limit@3.1.0": "p-limit@3.1.0:LdKRSSgTab016qRCjAyMxtMfWqqbZWRWjYN5Azfl13Q=:",
73
- "p-locate@5.0.0": "p-locate@5.0.0:jSPkRsfoMWQdFIprhJqMLiq3pQVVMpAKDWCH+Jzzyhc=:",
74
- "parent-module@1.0.1": "parent-module@1.0.1:7jcQBBr0dPfjyj7XXd1T3kplUES6v+rOhYu0x8cMK5I=:",
75
- "path-exists@4.0.0": "path-exists@4.0.0:U8NGTjSfw+tTNMrI25cZA7Kr4QZlrBG6tOCKmu3WuJA=:",
76
- "path-key@3.1.1": "path-key@3.1.1:G/7uS4scwsLV/mJitoXLEoSeLcbOLyC7mq3JaNY5L/Y=:",
77
- "prelude-ls@1.2.1": "prelude-ls@1.2.1:77jm+R+stVYevlHR6mLJHVcOyB9clSWbWPCMOrhoFM4=:",
78
- "punycode@2.3.1": "punycode@2.3.1:hBQ2kq3SCuY+AhrWXH8OhCuKpGtK75O10qdh6clgs7g=:",
79
- "resolve-from@4.0.0": "resolve-from@4.0.0:DX1R0DdeDdDijEG++piS/gfwnUozHRPIUEeE+d9jpuk=:",
80
- "shebang-command@2.0.0": "shebang-command@2.0.0:OLAZ6j51uPEAszP1K4Rex7GU7xSTv4E8umEZftOq2Ag=:",
81
- "shebang-regex@3.0.0": "shebang-regex@3.0.0:ny+KjAiF2rsJrYeyelqno4XXRBhG1xbGdeGqew0SiFE=:",
82
- "strip-json-comments@3.1.1": "strip-json-comments@3.1.1:b7Guud8xp0BNfyZNDrMqD/tnkn5cu9tjzD+P3X7OI9Y=:",
83
- "supports-color@7.2.0": "supports-color@7.2.0:sYeXIOoG2x32GA0jy95SyyfTIGn4njaK3SOfylJNpbE=:",
84
- "supports-color@8.1.1": "supports-color@8.1.1:IlKnJib+1wvgnU/NB8X/o14yZNJZAaN87xE6uQ0OU7I=:",
85
- "type-check@0.4.0": "type-check@0.4.0:IVtRP5BW1I8SGLuymCsuyGHe6YzISs02l3ZaR/nY1kw=:",
86
- "uri-js@4.4.1": "uri-js@4.4.1:Q2BobLd4waRYnsj44SvcxeaDwkPIjLhPfH3BclqOaF4=:",
87
- "which@2.0.2": "which@2.0.2:80HW1PmNzsNX+pyT6n7O+c62iDakyLL2/dI8hSmvNlk=:",
88
- "word-wrap@1.2.5": "word-wrap@1.2.5:lNGZNaQ0hxB5pVG85e6u0w4w0K+uOJi6Y2P1fJqOqRo=:",
89
- "yocto-queue@0.1.0": "yocto-queue@0.1.0:Dtxi56M74yiecaLhTY5kTZuzXvCHfjZlLQG4jzDqAAc=:"
90
- }
package/config/heft.json DELETED
@@ -1,27 +0,0 @@
1
- {
2
- "$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft.schema.json",
3
-
4
- "extends": "local-node-rig/profiles/default/config/heft.json",
5
- "phasesByName": {
6
- "build": {
7
- "tasksByName": {
8
- "copy-json-schemas": {
9
- "taskPlugin": {
10
- "pluginPackage": "@rushstack/heft",
11
- "pluginName": "copy-files-plugin",
12
- "options": {
13
- "copyOperations": [
14
- {
15
- "sourcePath": "src/schemas",
16
- "destinationFolders": ["temp/json-schemas/rush/v5"],
17
- "fileExtensions": [".schema.json"],
18
- "hardlink": true
19
- }
20
- ]
21
- }
22
- }
23
- }
24
- }
25
- }
26
- }
27
- }
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "local-node-rig/profiles/default/config/jest.config.json"
3
- }
package/config/rig.json DELETED
@@ -1,6 +0,0 @@
1
- {
2
- // The "rig.json" file directs tools to look for their config files in an external package.
3
- // Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package
4
- "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
5
- "rigPackageName": "local-node-rig"
6
- }
package/eslint.config.js DELETED
@@ -1,20 +0,0 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
2
- // See LICENSE in the project root for license information.
3
-
4
- const nodeProfile = require('local-node-rig/profiles/default/includes/eslint/flat/profile/node');
5
- const friendlyLocalsMixin = require('local-node-rig/profiles/default/includes/eslint/flat/mixins/friendly-locals');
6
- const tsdocMixin = require('local-node-rig/profiles/default/includes/eslint/flat/mixins/tsdoc');
7
-
8
- module.exports = [
9
- ...nodeProfile,
10
- ...friendlyLocalsMixin,
11
- ...tsdocMixin,
12
- {
13
- files: ['**/*.ts', '**/*.tsx'],
14
- languageOptions: {
15
- parserOptions: {
16
- tsconfigRootDir: __dirname
17
- }
18
- }
19
- }
20
- ];
@@ -1 +0,0 @@
1
- {"version":3,"file":"BridgeCachePlugin.js","sourceRoot":"","sources":["../src/BridgeCachePlugin.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,oEAAiE;AACjE,kDAAkF;AAWlF,gEAAsE;AAGtE,MAAM,WAAW,GAA4B,uBAAuB,CAAC;AAErE,MAAM,iBAAiB,GAAW,MAAM,CAAC;AACzC,MAAM,kBAAkB,GAAY,OAAO,CAAC;AAS5C,MAAa,iBAAiB;IAK5B,YAAmB,OAAkC;QAJrC,eAAU,GAAW,WAAW,CAAC;QAK/C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,kCAAkC,GAAG,OAAO,CAAC,iCAAiC,CAAC;QAEpF,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAoB;QAC/B,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,OAAuB,EAAE,EAAE;YAC1F,MAAM,MAAM,GAAY,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAEvD,IAAI,WAAoC,CAAC;YACzC,IAAI,oBAAoB,GAAY,KAAK,CAAC;YAE1C,wGAAwG;YACxG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAChC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,EACrD,CAAC,UAA0B,EAAE,OAAiC,EAAkB,EAAE;;gBAChF,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;gBACrC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBAErD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,uBAAuB,0CAAE,iBAAiB,CAAA,EAAE,CAAC;wBACxD,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,oBAAoB,cAAc,CACvF,CAAC;oBACJ,CAAC;oBAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC5B,CAAC;oBAED,oBAAoB,GAAG,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;gBAC/E,CAAC;gBAED,OAAO,UAAU,CAAC;YACpB,CAAC,CACF,CAAC;YACF,wCAAwC;YACxC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAC9C,WAAW,EACX,KAAK,EACH,iBAA4D,EAC5D,OAAkC,EACnB,EAAE;gBACjB,MAAM,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC;gBAC5C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;gBAE5B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,iBAAiB,CAAA,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,oBAAoB,cAAc,CACvF,CAAC;gBACJ,CAAC;gBAED,MAAM,kBAAkB,GAAmC,IAAI,GAAG,EAAE,CAAC;gBACrE,KAAK,MAAM,wBAAwB,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;oBAClE,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;wBAC/C,kBAAkB,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY,GAAW,CAAC,CAAC;gBAE7B,MAAM,yBAAK,CAAC,YAAY,CACtB,kBAAkB,EAClB,KAAK,EAAE,wBAAmD,EAAE,EAAE;;oBAC5D,MAAM,iBAAiB,GAAwB,+BAAmB,CAAC,YAAY,CAC7E,wBAAwB,EACxB;wBACE,uBAAuB;wBACvB,QAAQ;qBACT,CACF,CAAC;oBAEF,MAAM,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC;oBAE/C,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAY,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;wBACpF,IAAI,OAAO,EAAE,CAAC;4BACZ,EAAE,YAAY,CAAC;4BACf,QAAQ,CAAC,SAAS,CAChB,cAAc,SAAS,CAAC,IAAI,sDAAsD,CACnF,CAAC;4BACF,QAAQ,CAAC,SAAS,CAAC,cAAc,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;wBAChE,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,gBAAgB,CACvB,cAAc,SAAS,CAAC,IAAI,wDAAwD,CACrF,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;wBAC9C,qIAAqI;wBACrI,IACE,oBAAoB;6BACpB,MAAA,SAAS,CAAC,QAAQ,0CAAE,iBAAiB,CAAA;4BACrC,CAAA,MAAA,MAAA,SAAS,CAAC,QAAQ,0CAAE,iBAAiB,0CAAE,MAAM,IAAG,CAAC,EACjD,CAAC;4BACD,MAAM,aAAa,GAAW,MAAA,SAAS,CAAC,iBAAiB,0CAAE,aAAa,CAAC;4BACzE,MAAM,cAAc,GAAa,EAAE,CAAC;4BACpC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAwB,EAAE,EAAE;gCACxE,IAAI,CAAC,8BAAU,CAAC,MAAM,CAAC,GAAG,aAAa,IAAI,gBAAgB,EAAE,CAAC,EAAE,CAAC;oCAC/D,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gCACxC,CAAC;4BACH,CAAC,CAAC,CAAC;4BACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC9B,QAAQ,CAAC,gBAAgB,CACvB,cAAc,SAAS,CAAC,IAAI,kDAAkD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,+BAA+B,CACzI,CAAC;gCACF,OAAO;4BACT,CAAC;wBACH,CAAC;wBAED,MAAM,OAAO,GAAY,MAAM,iBAAiB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wBACjF,IAAI,OAAO,EAAE,CAAC;4BACZ,EAAE,YAAY,CAAC;4BACf,QAAQ,CAAC,SAAS,CAChB,cAAc,SAAS,CAAC,IAAI,yEAAyE,CACtG,CAAC;4BACF,QAAQ,CAAC,SAAS,CAAC,cAAc,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;wBAChE,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,cAAc,CACrB,cAAc,SAAS,CAAC,IAAI,yEAAyE,CACtG,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC,EACD;oBACE,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CACF,CAAC;gBAEF,QAAQ,CAAC,SAAS,CAChB,oBAAoB,WAAW,gCAAgC,YAAY,WAAW,kBAAkB,CAAC,IAAI,cAAc,CAC5H,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CACrB,gBAA2D;QAE3D,MAAM,oBAAoB,GAAqC,gBAAgB,CAAC,GAAG,CACjF,IAAI,CAAC,oBAAoB,CAC1B,CAAC;QAEF,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,oBAAoB,CAAC,IAAI,KAAK,0CAAwB,CAAC,MAAM,EAAE,CAAC;gBAClE,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,oBAAoB,4DAA4D,CACxG,CAAC;YACJ,CAAC;YAED,IACE,oBAAoB,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;gBAC5C,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBACzD,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAC1D,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,oBAAoB,qCAAqC,iBAAiB,UAAU,kBAAkB,2CAA2C,CACzK,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAuB,oBAAoB,CAAC,KAAK,CAAC;YAC7D,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,iBAAiB,CAAC;gBACvB,KAAK,kBAAkB;oBACrB,OAAO,KAAK,CAAC;gBACf,KAAK,SAAS;oBACZ,OAAO,SAAS,CAAC;gBACnB;oBACE,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,oBAAoB,sBAAsB,iBAAiB,SAAS,kBAAkB,iBAAiB,KAAK,2CAA2C,CAC/K,CAAC;YACN,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,8BAA8B,CACpC,gBAA2D;QAE3D,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,yBAAyB,GAAqC,gBAAgB,CAAC,GAAG,CACtF,IAAI,CAAC,kCAAkC,CACxC,CAAC;QAEF,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,yBAAyB,CAAC,IAAI,KAAK,0CAAwB,CAAC,IAAI,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,kCAAkC,mBAAmB,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,yBAAyB,CAAC,KAAK,CAAC;IACzC,CAAC;CACF;AArND,8CAqNC","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 { Async, FileSystem } from '@rushstack/node-core-library';\nimport { _OperationBuildCache as OperationBuildCache } from '@rushstack/rush-sdk';\nimport type {\n ICreateOperationsContext,\n IExecuteOperationsContext,\n ILogger,\n IOperationExecutionResult,\n IPhasedCommand,\n IRushPlugin,\n Operation,\n RushSession\n} from '@rushstack/rush-sdk';\nimport { CommandLineParameterKind } from '@rushstack/ts-command-line';\nimport type { CommandLineParameter } from '@rushstack/ts-command-line';\n\nconst PLUGIN_NAME: 'RushBridgeCachePlugin' = 'RushBridgeCachePlugin';\n\nconst CACHE_ACTION_READ: 'read' = 'read';\nconst CACHE_ACTION_WRITE: 'write' = 'write';\n\ntype CacheAction = typeof CACHE_ACTION_READ | typeof CACHE_ACTION_WRITE;\n\nexport interface IBridgeCachePluginOptions {\n readonly actionParameterName: string;\n readonly requireOutputFoldersParameterName: string | undefined;\n}\n\nexport class BridgeCachePlugin implements IRushPlugin {\n public readonly pluginName: string = PLUGIN_NAME;\n private readonly _actionParameterName: string;\n private readonly _requireOutputFoldersParameterName: string | undefined;\n\n public constructor(options: IBridgeCachePluginOptions) {\n this._actionParameterName = options.actionParameterName;\n this._requireOutputFoldersParameterName = options.requireOutputFoldersParameterName;\n\n if (!this._actionParameterName) {\n throw new Error(\n 'The \"actionParameterName\" option must be provided for the BridgeCachePlugin. Please see the plugin README for details.'\n );\n }\n }\n\n public apply(session: RushSession): void {\n session.hooks.runAnyPhasedCommand.tapPromise(PLUGIN_NAME, async (command: IPhasedCommand) => {\n const logger: ILogger = session.getLogger(PLUGIN_NAME);\n\n let cacheAction: CacheAction | undefined;\n let requireOutputFolders: boolean = false;\n\n // cancel the actual operations. We don't want to run the command, just cache the output folders on disk\n command.hooks.createOperations.tap(\n { name: PLUGIN_NAME, stage: Number.MAX_SAFE_INTEGER },\n (operations: Set<Operation>, context: ICreateOperationsContext): Set<Operation> => {\n const { customParameters } = context;\n cacheAction = this._getCacheAction(customParameters);\n\n if (cacheAction !== undefined) {\n if (!context.buildCacheConfiguration?.buildCacheEnabled) {\n throw new Error(\n `The build cache must be enabled to use the \"${this._actionParameterName}\" parameter.`\n );\n }\n\n for (const operation of operations) {\n operation.enabled = false;\n }\n\n requireOutputFolders = this._isRequireOutputFoldersFlagSet(customParameters);\n }\n\n return operations;\n }\n );\n // populate the cache for each operation\n command.hooks.beforeExecuteOperations.tapPromise(\n PLUGIN_NAME,\n async (\n recordByOperation: Map<Operation, IOperationExecutionResult>,\n context: IExecuteOperationsContext\n ): Promise<void> => {\n const { buildCacheConfiguration } = context;\n const { terminal } = logger;\n\n if (cacheAction === undefined) {\n return;\n }\n\n if (!buildCacheConfiguration?.buildCacheEnabled) {\n throw new Error(\n `The build cache must be enabled to use the \"${this._actionParameterName}\" parameter.`\n );\n }\n\n const filteredOperations: Set<IOperationExecutionResult> = new Set();\n for (const operationExecutionResult of recordByOperation.values()) {\n if (!operationExecutionResult.operation.isNoOp) {\n filteredOperations.add(operationExecutionResult);\n }\n }\n\n let successCount: number = 0;\n\n await Async.forEachAsync(\n filteredOperations,\n async (operationExecutionResult: IOperationExecutionResult) => {\n const projectBuildCache: OperationBuildCache = OperationBuildCache.forOperation(\n operationExecutionResult,\n {\n buildCacheConfiguration,\n terminal\n }\n );\n\n const { operation } = operationExecutionResult;\n\n if (cacheAction === CACHE_ACTION_READ) {\n const success: boolean = await projectBuildCache.tryRestoreFromCacheAsync(terminal);\n if (success) {\n ++successCount;\n terminal.writeLine(\n `Operation \"${operation.name}\": Outputs have been restored from the build cache.\"`\n );\n terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);\n } else {\n terminal.writeWarningLine(\n `Operation \"${operation.name}\": Outputs could not be restored from the build cache.`\n );\n }\n } else if (cacheAction === CACHE_ACTION_WRITE) {\n // if the require output folders flag has been passed, skip populating the cache if any of the expected output folders does not exist\n if (\n requireOutputFolders &&\n operation.settings?.outputFolderNames &&\n operation.settings?.outputFolderNames?.length > 0\n ) {\n const projectFolder: string = operation.associatedProject?.projectFolder;\n const missingFolders: string[] = [];\n operation.settings.outputFolderNames.forEach((outputFolderName: string) => {\n if (!FileSystem.exists(`${projectFolder}/${outputFolderName}`)) {\n missingFolders.push(outputFolderName);\n }\n });\n if (missingFolders.length > 0) {\n terminal.writeWarningLine(\n `Operation \"${operation.name}\": The following output folders do not exist: \"${missingFolders.join('\", \"')}\". Skipping cache population.`\n );\n return;\n }\n }\n\n const success: boolean = await projectBuildCache.trySetCacheEntryAsync(terminal);\n if (success) {\n ++successCount;\n terminal.writeLine(\n `Operation \"${operation.name}\": Existing outputs have been successfully written to the build cache.\"`\n );\n terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);\n } else {\n terminal.writeErrorLine(\n `Operation \"${operation.name}\": An error occurred while writing existing outputs to the build cache.`\n );\n }\n }\n },\n {\n concurrency: context.parallelism\n }\n );\n\n terminal.writeLine(\n `Cache operation \"${cacheAction}\" completed successfully for ${successCount} out of ${filteredOperations.size} operations.`\n );\n }\n );\n });\n }\n\n private _getCacheAction(\n customParameters: ReadonlyMap<string, CommandLineParameter>\n ): CacheAction | undefined {\n const cacheActionParameter: CommandLineParameter | undefined = customParameters.get(\n this._actionParameterName\n );\n\n if (cacheActionParameter) {\n if (cacheActionParameter.kind !== CommandLineParameterKind.Choice) {\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must be a choice. Please check the plugin configuration.`\n );\n }\n\n if (\n cacheActionParameter.alternatives.size !== 2 ||\n !cacheActionParameter.alternatives.has(CACHE_ACTION_READ) ||\n !cacheActionParameter.alternatives.has(CACHE_ACTION_WRITE)\n ) {\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must have exactly two choices: \"${CACHE_ACTION_READ}\" and \"${CACHE_ACTION_WRITE}\". Please check the plugin configuration.`\n );\n }\n\n const value: string | undefined = cacheActionParameter.value;\n switch (value) {\n case CACHE_ACTION_READ:\n case CACHE_ACTION_WRITE:\n return value;\n case undefined:\n return undefined;\n default:\n throw new Error(\n `The parameter \"${this._actionParameterName}\" must be one of: \"${CACHE_ACTION_READ}\" or \"${CACHE_ACTION_WRITE}\". Received: \"${value}\". Please check the plugin configuration.`\n );\n }\n }\n\n return undefined;\n }\n\n private _isRequireOutputFoldersFlagSet(\n customParameters: ReadonlyMap<string, CommandLineParameter>\n ): boolean {\n if (!this._requireOutputFoldersParameterName) {\n return false;\n }\n\n const requireOutputFoldersParam: CommandLineParameter | undefined = customParameters.get(\n this._requireOutputFoldersParameterName\n );\n\n if (!requireOutputFoldersParam) {\n return false;\n }\n\n if (requireOutputFoldersParam.kind !== CommandLineParameterKind.Flag) {\n throw new Error(`The parameter \"${this._requireOutputFoldersParameterName}\" must be a flag.`);\n }\n\n return requireOutputFoldersParam.value;\n }\n}\n"]}
@@ -1,3 +0,0 @@
1
- Caching build output folders: lib, temp, .rush/temp/operation/_phase_build
2
- Successfully set cache entry.
3
- Cache key: rushstack+rush-bridge-cache-plugin-_phase_build-3e1da8998ed45d48f791b6640f27b152630add44
@@ -1,8 +0,0 @@
1
- Invoking: heft run --only build -- --clean --production
2
- ---- build started ----
3
- [build:copy-json-schemas] Copied 0 files and linked 1 file
4
- [build:typescript] Using TypeScript version 5.8.2
5
- [build:typescript] Copied 1 file and linked 0 files
6
- [build:lint] Using ESLint version 9.37.0
7
- ---- build finished (10.226s) ----
8
- -------------------- Finished (10.23s) --------------------
@@ -1,244 +0,0 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
2
- // See LICENSE in the project root for license information.
3
-
4
- import { Async, FileSystem } from '@rushstack/node-core-library';
5
- import { _OperationBuildCache as OperationBuildCache } from '@rushstack/rush-sdk';
6
- import type {
7
- ICreateOperationsContext,
8
- IExecuteOperationsContext,
9
- ILogger,
10
- IOperationExecutionResult,
11
- IPhasedCommand,
12
- IRushPlugin,
13
- Operation,
14
- RushSession
15
- } from '@rushstack/rush-sdk';
16
- import { CommandLineParameterKind } from '@rushstack/ts-command-line';
17
- import type { CommandLineParameter } from '@rushstack/ts-command-line';
18
-
19
- const PLUGIN_NAME: 'RushBridgeCachePlugin' = 'RushBridgeCachePlugin';
20
-
21
- const CACHE_ACTION_READ: 'read' = 'read';
22
- const CACHE_ACTION_WRITE: 'write' = 'write';
23
-
24
- type CacheAction = typeof CACHE_ACTION_READ | typeof CACHE_ACTION_WRITE;
25
-
26
- export interface IBridgeCachePluginOptions {
27
- readonly actionParameterName: string;
28
- readonly requireOutputFoldersParameterName: string | undefined;
29
- }
30
-
31
- export class BridgeCachePlugin implements IRushPlugin {
32
- public readonly pluginName: string = PLUGIN_NAME;
33
- private readonly _actionParameterName: string;
34
- private readonly _requireOutputFoldersParameterName: string | undefined;
35
-
36
- public constructor(options: IBridgeCachePluginOptions) {
37
- this._actionParameterName = options.actionParameterName;
38
- this._requireOutputFoldersParameterName = options.requireOutputFoldersParameterName;
39
-
40
- if (!this._actionParameterName) {
41
- throw new Error(
42
- 'The "actionParameterName" option must be provided for the BridgeCachePlugin. Please see the plugin README for details.'
43
- );
44
- }
45
- }
46
-
47
- public apply(session: RushSession): void {
48
- session.hooks.runAnyPhasedCommand.tapPromise(PLUGIN_NAME, async (command: IPhasedCommand) => {
49
- const logger: ILogger = session.getLogger(PLUGIN_NAME);
50
-
51
- let cacheAction: CacheAction | undefined;
52
- let requireOutputFolders: boolean = false;
53
-
54
- // cancel the actual operations. We don't want to run the command, just cache the output folders on disk
55
- command.hooks.createOperations.tap(
56
- { name: PLUGIN_NAME, stage: Number.MAX_SAFE_INTEGER },
57
- (operations: Set<Operation>, context: ICreateOperationsContext): Set<Operation> => {
58
- const { customParameters } = context;
59
- cacheAction = this._getCacheAction(customParameters);
60
-
61
- if (cacheAction !== undefined) {
62
- if (!context.buildCacheConfiguration?.buildCacheEnabled) {
63
- throw new Error(
64
- `The build cache must be enabled to use the "${this._actionParameterName}" parameter.`
65
- );
66
- }
67
-
68
- for (const operation of operations) {
69
- operation.enabled = false;
70
- }
71
-
72
- requireOutputFolders = this._isRequireOutputFoldersFlagSet(customParameters);
73
- }
74
-
75
- return operations;
76
- }
77
- );
78
- // populate the cache for each operation
79
- command.hooks.beforeExecuteOperations.tapPromise(
80
- PLUGIN_NAME,
81
- async (
82
- recordByOperation: Map<Operation, IOperationExecutionResult>,
83
- context: IExecuteOperationsContext
84
- ): Promise<void> => {
85
- const { buildCacheConfiguration } = context;
86
- const { terminal } = logger;
87
-
88
- if (cacheAction === undefined) {
89
- return;
90
- }
91
-
92
- if (!buildCacheConfiguration?.buildCacheEnabled) {
93
- throw new Error(
94
- `The build cache must be enabled to use the "${this._actionParameterName}" parameter.`
95
- );
96
- }
97
-
98
- const filteredOperations: Set<IOperationExecutionResult> = new Set();
99
- for (const operationExecutionResult of recordByOperation.values()) {
100
- if (!operationExecutionResult.operation.isNoOp) {
101
- filteredOperations.add(operationExecutionResult);
102
- }
103
- }
104
-
105
- let successCount: number = 0;
106
-
107
- await Async.forEachAsync(
108
- filteredOperations,
109
- async (operationExecutionResult: IOperationExecutionResult) => {
110
- const projectBuildCache: OperationBuildCache = OperationBuildCache.forOperation(
111
- operationExecutionResult,
112
- {
113
- buildCacheConfiguration,
114
- terminal
115
- }
116
- );
117
-
118
- const { operation } = operationExecutionResult;
119
-
120
- if (cacheAction === CACHE_ACTION_READ) {
121
- const success: boolean = await projectBuildCache.tryRestoreFromCacheAsync(terminal);
122
- if (success) {
123
- ++successCount;
124
- terminal.writeLine(
125
- `Operation "${operation.name}": Outputs have been restored from the build cache."`
126
- );
127
- terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);
128
- } else {
129
- terminal.writeWarningLine(
130
- `Operation "${operation.name}": Outputs could not be restored from the build cache.`
131
- );
132
- }
133
- } else if (cacheAction === CACHE_ACTION_WRITE) {
134
- // if the require output folders flag has been passed, skip populating the cache if any of the expected output folders does not exist
135
- if (
136
- requireOutputFolders &&
137
- operation.settings?.outputFolderNames &&
138
- operation.settings?.outputFolderNames?.length > 0
139
- ) {
140
- const projectFolder: string = operation.associatedProject?.projectFolder;
141
- const missingFolders: string[] = [];
142
- operation.settings.outputFolderNames.forEach((outputFolderName: string) => {
143
- if (!FileSystem.exists(`${projectFolder}/${outputFolderName}`)) {
144
- missingFolders.push(outputFolderName);
145
- }
146
- });
147
- if (missingFolders.length > 0) {
148
- terminal.writeWarningLine(
149
- `Operation "${operation.name}": The following output folders do not exist: "${missingFolders.join('", "')}". Skipping cache population.`
150
- );
151
- return;
152
- }
153
- }
154
-
155
- const success: boolean = await projectBuildCache.trySetCacheEntryAsync(terminal);
156
- if (success) {
157
- ++successCount;
158
- terminal.writeLine(
159
- `Operation "${operation.name}": Existing outputs have been successfully written to the build cache."`
160
- );
161
- terminal.writeLine(`Cache key: ${projectBuildCache.cacheId}`);
162
- } else {
163
- terminal.writeErrorLine(
164
- `Operation "${operation.name}": An error occurred while writing existing outputs to the build cache.`
165
- );
166
- }
167
- }
168
- },
169
- {
170
- concurrency: context.parallelism
171
- }
172
- );
173
-
174
- terminal.writeLine(
175
- `Cache operation "${cacheAction}" completed successfully for ${successCount} out of ${filteredOperations.size} operations.`
176
- );
177
- }
178
- );
179
- });
180
- }
181
-
182
- private _getCacheAction(
183
- customParameters: ReadonlyMap<string, CommandLineParameter>
184
- ): CacheAction | undefined {
185
- const cacheActionParameter: CommandLineParameter | undefined = customParameters.get(
186
- this._actionParameterName
187
- );
188
-
189
- if (cacheActionParameter) {
190
- if (cacheActionParameter.kind !== CommandLineParameterKind.Choice) {
191
- throw new Error(
192
- `The parameter "${this._actionParameterName}" must be a choice. Please check the plugin configuration.`
193
- );
194
- }
195
-
196
- if (
197
- cacheActionParameter.alternatives.size !== 2 ||
198
- !cacheActionParameter.alternatives.has(CACHE_ACTION_READ) ||
199
- !cacheActionParameter.alternatives.has(CACHE_ACTION_WRITE)
200
- ) {
201
- throw new Error(
202
- `The parameter "${this._actionParameterName}" must have exactly two choices: "${CACHE_ACTION_READ}" and "${CACHE_ACTION_WRITE}". Please check the plugin configuration.`
203
- );
204
- }
205
-
206
- const value: string | undefined = cacheActionParameter.value;
207
- switch (value) {
208
- case CACHE_ACTION_READ:
209
- case CACHE_ACTION_WRITE:
210
- return value;
211
- case undefined:
212
- return undefined;
213
- default:
214
- throw new Error(
215
- `The parameter "${this._actionParameterName}" must be one of: "${CACHE_ACTION_READ}" or "${CACHE_ACTION_WRITE}". Received: "${value}". Please check the plugin configuration.`
216
- );
217
- }
218
- }
219
-
220
- return undefined;
221
- }
222
-
223
- private _isRequireOutputFoldersFlagSet(
224
- customParameters: ReadonlyMap<string, CommandLineParameter>
225
- ): boolean {
226
- if (!this._requireOutputFoldersParameterName) {
227
- return false;
228
- }
229
-
230
- const requireOutputFoldersParam: CommandLineParameter | undefined = customParameters.get(
231
- this._requireOutputFoldersParameterName
232
- );
233
-
234
- if (!requireOutputFoldersParam) {
235
- return false;
236
- }
237
-
238
- if (requireOutputFoldersParam.kind !== CommandLineParameterKind.Flag) {
239
- throw new Error(`The parameter "${this._requireOutputFoldersParameterName}" must be a flag.`);
240
- }
241
-
242
- return requireOutputFoldersParam.value;
243
- }
244
- }
@@ -1 +0,0 @@
1
- {"configHash":"7l3QItR/koM83+sIRGBct8kqvPFIOyi41BwAc9nKqXg=","inputFileVersions":{"../../../src/schemas/bridge-cache-config.schema.json":"Ekcq18T2DrUryhmi7nCVAKymHlZXcAKYk1jbYNCswUg="}}
@@ -1,14 +0,0 @@
1
- {
2
- "cacheVersion": "9.37.0_v22.21.1",
3
- "fileVersions": [
4
- [
5
- "BridgeCachePlugin.ts",
6
- "3d2db618e3d263f3ec01bca9843cb0bc28039cf8c9c8a150c63551d348c6802e_KMaKa3RgzpjaSyTez4iyvVU+ql4="
7
- ],
8
- [
9
- "index.ts",
10
- "ab91918f2264768a35513d00951722d5df668d07c19c884f9b70eef2c29f03f8_KMaKa3RgzpjaSyTez4iyvVU+ql4="
11
- ]
12
- ],
13
- "filesHash": "v89sUwRxk-d352rvOE9KKg"
14
- }
@@ -1,29 +0,0 @@
1
- {
2
- "version": "2.1.0",
3
- "$schema": "http://json.schemastore.org/sarif-2.1.0-rtm.5",
4
- "runs": [
5
- {
6
- "tool": {
7
- "driver": {
8
- "name": "ESLint",
9
- "informationUri": "https://eslint.org",
10
- "version": "9.37.0",
11
- "rules": []
12
- }
13
- },
14
- "artifacts": [
15
- {
16
- "location": {
17
- "uri": "src/BridgeCachePlugin.ts"
18
- }
19
- },
20
- {
21
- "location": {
22
- "uri": "src/index.ts"
23
- }
24
- }
25
- ],
26
- "results": []
27
- }
28
- ]
29
- }
@@ -1 +0,0 @@
1
- {"configHash":"rQpL3YlrQEaiR14A1Mh/WSNG5FO0xhO1ZVduXLI4U74=","inputFileVersions":{"../../../src/schemas/bridge-cache-config.schema.json":"Ekcq18T2DrUryhmi7nCVAKymHlZXcAKYk1jbYNCswUg="}}
@@ -1 +0,0 @@
1
- {"fileNames":["../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es5.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/compatibility/disposable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/compatibility/indexable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/compatibility/iterators.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/compatibility/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/globals.typedarray.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/buffer.buffer.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/header.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/readable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/file.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/fetch.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/formdata.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/connector.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/client.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/errors.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/dispatcher.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/global-dispatcher.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/global-origin.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/pool-stats.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/pool.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/handlers.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/balanced-pool.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/agent.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-interceptor.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-agent.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-client.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-pool.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-errors.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/proxy-agent.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/retry-handler.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/retry-agent.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/api.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/interceptors.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/util.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/cookies.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/patch.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/websocket.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/eventsource.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/filereader.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/diagnostics-channel.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/content-type.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/cache.d.ts","../../../../../common/temp/default/node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/globals.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/assert.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/assert/strict.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/async_hooks.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/buffer.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/child_process.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/cluster.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/console.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/constants.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/crypto.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/dgram.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/dns.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/dns/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/domain.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/dom-events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/fs.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/fs/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/http.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/http2.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/https.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/inspector.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/module.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/net.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/os.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/path.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/perf_hooks.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/process.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/punycode.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/querystring.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/readline.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/readline/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/repl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/sea.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/stream.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/stream/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/stream/consumers.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/stream/web.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/string_decoder.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/test.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/timers.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/timers/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/tls.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/trace_events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/tty.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/url.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/util.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/v8.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/vm.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/wasi.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/worker_threads.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/zlib.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@20.17.19/node_modules/@types/node/index.d.ts","../../../../../libraries/node-core-library/dist/node-core-library.d.ts","../../../../../common/temp/default/node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/tapable.d.ts","../../../../../libraries/problem-matcher/dist/problem-matcher.d.ts","../../../../../libraries/terminal/dist/terminal.d.ts","../../../../../libraries/stream-collator/dist/stream-collator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+argparse@1.0.38/node_modules/@types/argparse/index.d.ts","../../../../../libraries/ts-command-line/dist/ts-command-line.d.ts","../../../../../libraries/credential-cache/dist/credential-cache.d.ts","../../../../../libraries/package-deps-hash/dist/package-deps-hash.d.ts","../../../../../libraries/lookup-by-path/dist/lookup-by-path.d.ts","../../../../../libraries/rush-sdk/dist/rush-lib.d.ts","../../../src/BridgeCachePlugin.ts","../../../src/index.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+heft-jest@1.0.1/node_modules/@types/heft-jest/mocked.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@jest+expect-utils@29.7.0/node_modules/@jest/expect-utils/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@sinclair+typebox@0.27.8/node_modules/@sinclair/typebox/typebox.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@jest+schemas@29.6.3/node_modules/@jest/schemas/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/pretty-format@29.7.0/node_modules/pretty-format/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/jest-diff@29.7.0/node_modules/jest-diff/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/jest-matcher-utils@29.7.0/node_modules/jest-matcher-utils/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/expect@29.7.0/node_modules/expect/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+jest@29.5.14/node_modules/@types/jest/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+heft-jest@1.0.1/node_modules/@types/heft-jest/index.d.ts"],"fileIdsList":[[51,93],[51,93,159],[51,93,156,165],[51,93,161,164],[51,90,93],[51,92,93],[93],[51,93,98,127],[51,93,94,99,105,106,113,124,135],[51,93,94,95,105,113],[46,47,48,51,93],[51,93,96,136],[51,93,97,98,106,114],[51,93,98,124,132],[51,93,99,101,105,113],[51,92,93,100],[51,93,101,102],[51,93,105],[51,93,103,105],[51,92,93,105],[51,93,105,106,107,124,135],[51,93,105,106,107,120,124,127],[51,88,93,140],[51,93,101,105,108,113,124,135],[51,93,105,106,108,109,113,124,132,135],[51,93,108,110,124,132,135],[49,50,51,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141],[51,93,105,111],[51,93,112,135,140],[51,93,101,105,113,124],[51,93,114],[51,93,115],[51,92,93,116],[51,90,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141],[51,93,118],[51,93,119],[51,93,105,120,121],[51,93,120,122,136,138],[51,93,105,124,125,126,127],[51,93,124,126],[51,93,124,125],[51,93,127],[51,93,128],[51,90,93,124],[51,93,105,130,131],[51,93,130,131],[51,93,98,113,124,132],[51,93,133],[51,93,113,134],[51,93,108,119,135],[51,93,98,136],[51,93,124,137],[51,93,112,138],[51,93,139],[51,93,98,105,107,116,124,135,138,140],[51,93,124,141],[51,93,157,163],[51,93,161],[51,93,158,162],[51,93,160],[51,60,64,93,135],[51,60,93,124,135],[51,55,93],[51,57,60,93,132,135],[51,93,113,132],[51,93,142],[51,55,93,142],[51,57,60,93,113,135],[51,52,53,56,59,93,105,124,135],[51,60,67,93],[51,52,58,93],[51,60,81,82,93],[51,56,60,93,127,135,142],[51,81,93,142],[51,54,55,93,142],[51,60,93],[51,54,55,56,57,58,59,60,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,93],[51,60,75,93],[51,60,67,68,93],[51,58,60,68,69,93],[51,59,93],[51,52,55,60,93],[51,60,64,68,69,93],[51,64,93],[51,58,60,63,93,135],[51,52,57,60,67,93],[51,93,124],[51,55,60,81,93,140,142],[51,93,94,106,115,142],[51,93,116,142,143,144,146,147,149,150,151,152],[51,93,146],[51,93,124,142,143,145],[51,93,148],[51,93,143,149,153],[51,93,154]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fd06258805d26c72f5997e07a23155d322d5f05387adb3744a791fe6a0b042d","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","impliedFormat":1},{"version":"93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"08faa97886e71757779428dd4c69a545c32c85fd629d1116d42710b32c6378bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b042aa5d277ad6963e2837179fd2f8fbb01968ac67115b0833c0244e93d1d50","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"d674383111e06b6741c4ad2db962131b5b0fa4d0294b998566c635e86195a453","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"a3e8bafb2af8e850c644f4be7f5156cf7d23b7bfdc3b786bd4d10ed40329649c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"f77d9188e41291acf14f476e931972460a303e1952538f9546e7b370cb8d0d20","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d04e3640dd9eb67f7f1e5bd3d0bf96c784666f7aefc8ac1537af6f2d38d4c29","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"5a369483ac4cfbdf0331c248deeb36140e6907db5e1daed241546b4a2055f82c","impliedFormat":1},{"version":"e8f5b5cc36615c17d330eaf8eebbc0d6bdd942c25991f96ef122f246f4ff722f","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ada07543808f3b967624645a8e1ccd446f8b01ade47842acf1328aec899fed0","affectsGlobalScope":true,"impliedFormat":1},{"version":"c4a806152acbef81593f96cae6f2b04784d776457d97adbe2694478b243fcf03","impliedFormat":1},{"version":"71adf5dbc59568663d252a46179e71e4d544c053978bfc526d11543a3f716f42","impliedFormat":1},{"version":"c60db41f7bee80fb80c0b12819f5e465c8c8b465578da43e36d04f4a4646f57d","impliedFormat":1},{"version":"93bd413918fa921c8729cef45302b24d8b6c7855d72d5bf82d3972595ae8dcbf","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e","impliedFormat":1},{"version":"e184c4b8918ef56c8c9e68bd79f3f3780e2d0d75bf2b8a41da1509a40c2deb46","affectsGlobalScope":true,"impliedFormat":1},{"version":"d206b4baf4ddcc15d9d69a9a2f4999a72a2c6adeaa8af20fa7a9960816287555","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"70731d10d5311bd4cf710ef7f6539b62660f4b0bfdbb3f9fbe1d25fe6366a7fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b19db3600a17af69d4f33d08cc7076a7d19fb65bb36e442cac58929ec7c9482","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"137c2894e8f3e9672d401cc0a305dc7b1db7c69511cf6d3970fb53302f9eae09","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"e9992149869ea538d17dc29a3df8348a1280508f49dba86a2c84dc5e6fbea012","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"bb715efb4857eb94539eafb420352105a0cff40746837c5140bf6b035dd220ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"09d479208911ac3ac6a7c2fe86217fc1abe6c4f04e2d52e4890e500699eeab32","affectsGlobalScope":true,"impliedFormat":1},{"version":"27d8987fd22d92efe6560cf0ce11767bf089903ffe26047727debfd1f3bf438b","affectsGlobalScope":true,"impliedFormat":1},{"version":"578d8bb6dcb2a1c03c4c3f8eb71abc9677e1a5c788b7f24848e3138ce17f3400","impliedFormat":1},{"version":"4f029899f9bae07e225c43aef893590541b2b43267383bf5e32e3a884d219ed5","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"5b566927cad2ed2139655d55d690ffa87df378b956e7fe1c96024c4d9f75c4cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"bce947017cb7a2deebcc4f5ba04cead891ce6ad1602a4438ae45ed9aa1f39104","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3dffd70e6375b872f0b4e152de4ae682d762c61a24881ecc5eb9f04c5caf76f","impliedFormat":1},{"version":"e2c72c065a36bc9ab2a00ac6a6f51e71501619a72c0609defd304d46610487a4","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"616075a6ac578cf5a013ee12964188b4412823796ce0b202c6f1d2e4ca8480d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"cac793cc47c29e26e4ac3601dcb00b4435ebed26203485790e44f2ad8b6ad847","impliedFormat":1},"7605a2420e3be9865317c9926d1264397567d402aaa1f8c45b1c44e5518c4dcf",{"version":"cd74c8275483d3fe0d07a9b4bba28845a8a611f0aa399e961dbd40e5d46dd9ad","impliedFormat":1},"fb01f7d60e9e9a089b3db908a7085a4e9b4508c2b05c85912d150a88a530a7cc","74fd7c58685db202ff6f446be24bf77691bd992d3176f7dad5996b42aa9240e8","51deb9261c4607f2eaaf15144bf5fe42f74c8d250c62806e30f957cbd09ddff6",{"version":"dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","impliedFormat":1},"ea5e147084b612cde5b871e0c2d8086ef777c9df77a3704fd20a78bc2e3eea9e","40ed5210c779a82c9c5afce5177c767e0d5fe49c3ddc0005eeba72791e130988","ad83fa88e17502c6e8d6ffc7c0bdaf1c2cf5c58fd16b5253ca936b1440474f75","abff490c2ff85972c2974fd2e2f6b095827041cb254ddb5982baa24b6de40e77","f6921f4ee4dea18fca81956d6b626e7f7bb467346112949f544ac0d021137a7c",{"version":"3d2db618e3d263f3ec01bca9843cb0bc28039cf8c9c8a150c63551d348c6802e","signature":"e2e0d0e6c175502186fe5f16bda3ebbc7e7eab239f6d0d5f6291c74b49ba3d6c"},{"version":"ab91918f2264768a35513d00951722d5df668d07c19c884f9b70eef2c29f03f8","signature":"0dfada6072f9e6b8a4d4b5c00d3fc28cb79a1bb5305ae319bb4126e8bb1cda7d"},{"version":"ef948381fb93e21b69bb6581851b1c1c15c9a9d59752fc3b30d223cb16539534","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d94851f2e2797a812fdaaae6ba87e91e894be0198b107e544fb5a992eaa6b00","affectsGlobalScope":true,"impliedFormat":1}],"root":[154,155],"options":{"allowUnreachableCode":false,"declaration":true,"declarationMap":true,"esModuleInterop":true,"experimentalDecorators":true,"inlineSources":true,"jsx":2,"module":1,"noEmitOnError":false,"outDir":"../../../lib","rootDir":"../../../src","sourceMap":true,"strict":true,"target":5,"tsBuildInfoFile":"./ts_l9Fw4VUO.json","useUnknownInCatchVariables":false},"referencedMap":[[157,1],[160,2],[159,1],[148,1],[166,3],[156,1],[165,4],[90,5],[91,5],[92,6],[51,7],[93,8],[94,9],[95,10],[46,1],[49,11],[47,1],[48,1],[96,12],[97,13],[98,14],[99,15],[100,16],[101,17],[102,17],[104,18],[103,19],[105,20],[106,21],[107,22],[89,23],[50,1],[108,24],[109,25],[110,26],[142,27],[111,28],[112,29],[113,30],[114,31],[115,32],[116,33],[117,34],[118,35],[119,36],[120,37],[121,37],[122,38],[123,1],[124,39],[126,40],[125,41],[127,42],[128,43],[129,44],[130,45],[131,46],[132,47],[133,48],[134,49],[135,50],[136,51],[137,52],[138,53],[139,54],[140,55],[141,56],[158,1],[164,57],[162,58],[163,59],[161,60],[144,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[19,1],[4,1],[20,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[35,1],[32,1],[33,1],[34,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[67,61],[77,62],[66,61],[87,63],[58,64],[57,65],[86,66],[80,67],[85,68],[60,69],[74,70],[59,71],[83,72],[55,73],[54,66],[84,74],[56,75],[61,76],[62,1],[65,76],[52,1],[88,77],[78,78],[69,79],[70,80],[72,81],[68,82],[71,83],[81,66],[63,84],[64,85],[73,86],[53,87],[76,78],[75,76],[79,1],[82,88],[150,1],[152,1],[143,89],[151,1],[145,1],[153,90],[147,91],[146,92],[149,93],[154,94],[155,95]],"version":"5.8.2"}
@@ -1,21 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-04/schema#",
3
- "title": "Configuration for bridge cache plugin",
4
- "type": "object",
5
- "oneOf": [
6
- {
7
- "type": "object",
8
- "required": ["actionParameterName"],
9
- "properties": {
10
- "actionParameterName": {
11
- "type": "string",
12
- "description": "(Required) The name of the choice parameter used to trigger this plugin on your phased commands. It should accept two values, 'read' and 'write'."
13
- },
14
- "requireOutputFoldersParameterName": {
15
- "type": "string",
16
- "description": "(Optional) The name of the parameter used to specify whether the output folders must exist for the action in order to populate the cache."
17
- }
18
- }
19
- }
20
- ]
21
- }
package/tsconfig.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "./node_modules/local-node-rig/profiles/default/tsconfig-base.json"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes