@rushstack/rush-http-build-cache-plugin 5.92.0
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.
- package/.heft/build-cache/heft-jest-data.json +7 -0
- package/.heft/build-cache/jest-cache/haste-map-bae913f9b9aa720eb4deeae0a60a4b27-22ae7f4ce9de4306889d8c05e5cc39b9-f6b1af01a3130057bdfe3d86807211f9 +0 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/00/CommandLineParser_0096ef3e73a0458d2c4e987ce6950ec8 +217 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/00/jsonfile_001c9f2c4a38c3ac08d195a597f3f40c +13 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/01/action_container_0168facd9c19526b921c2a176ff5e3dd +483 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/02/getPackageDeps_02bf27e4c49bd0d60a0d2a807f58ad64 +256 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/03/CommandLineChoiceListParameter_039f877c10997d8689457a3cc6126b9f +85 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/04/Hook_044e3585bd11395575af5f860b3449ca +176 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/05/StdioWritable_0514ac0d19d8447acf4fc997d4eb75c2 +34 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/06/ConfigurationFile_06d7f35feb0bd944d9b9a2a4d9e112c8 +532 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/07/FileError_07e325c2d038b4cc56e1dfe3830d6c3e +114 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/07/ltr_0715ee1731dbedafe7e26cfb1315c8db +5 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/08/homedir_086be402c636b5ef75b92acd986cbbcf +25 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/08/outputjsonsync_08a1ad9a9786d59f137a5ea6e1547f10 +19 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/09/Path_0996303466a12a84e221f1ca7e815489 +215 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0b/constant_0bebc93b25bd88f8e9694b48db821b00 +48 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0b/index_0b2321eff214a8a8c920ed4d283d606f +26 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0c/gracefulfs_0c1a237496d918be613bce417baa89f2 +449 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0d/indexumd_0dd8b4985260e5d98d86cd77c5feca27 +1073 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0e/index_0e154b4f09da1ddc6c89567be99e1184 +12 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0f/StringBuilder_0f79d7bd9ef44b22de47594852bebf54 +42 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0f/index_0f086ad263aa8ec1c88455f1c863d9c3 +13 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/10/CommandLineChoiceParameter_10f873b895c0c8bbfff1b3ca3be44551 +96 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/11/PackageName_11306194785ccb2ba264a8e77c4109de +214 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/12/runTest_12014d70f30cb7039d4e026bacc47665 +463 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/14/index_14189dd0bf5b37d264e85be625b19df0 +118 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/15/lt_15449967a28afb6ec5dbb008da254f3e +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/19/copysync_196045f8ccef3c2f2f82113b3d6322ea +194 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/19/intersects_1920dd31d7a2b696c913c6105b7aea5a +8 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1a/index_1a09c4b40e031dcc3464bf0de8642956 +190 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1a/tocomparators_1a8990095d92cfa18e5a3c7547951f9b +9 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1b/index_1b7c45ee5c2dbabcedc41ab6b1e02377 +220 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1c/CollatedWriter_1c603fd6e169333da45c34e3c6aba4f3 +52 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1d/ScopedCommandLineAction_1d44a994459da880ecd53a33e4e612aa +179 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1d/index_1d071d1d9c16561dc536eb16f991e9d1 +83 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1d/index_1dcfbe32546c5f673f2b614530fce0ef +78 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1f/safe_1fecf14f4050ef9c0f88c3c1e2dd85a8 +11 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/20/CollatedTerminal_204a6de6c99e4c915d6221e230a0fa4e +27 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/21/index_210551fcae12c5b3d27a6b0775228781 +215 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/coerce_224b5791f8f7b7cee6fac3237e26755b +53 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/core_2267298cab4959e0bc6a302739275617 +53 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/index_226f648122f5302b23da56fe470c16ac +34 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/supportscolors_2218a76b76fd61532d614e1b0bb928fd +152 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/urlstatemachine_2208634a5a2ffd9728d9dafaf9451e2d +1298 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/23/AlreadyReportedError_23dbb838b51752afa3d8495f3062de58 +55 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/23/minsatisfying_231e7868208d4f1c9e82cecdce4c81ef +25 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/24/error_245d118d6aaef020e6c9b74d975e24d7 +51 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/26/Enum_26f7c648b8042f36def6f28b90b3995f +137 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/26/index_269839caa72382caf6110fdff62b8b0f +89 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/26/symlinkpaths_269231f2a465387e8122e02bc23a585b +100 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/27/AsyncParallelBailHook_277e441e1512e36622369a45ebd3f58b +86 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/27/index_272b3290b49eb1250dd5383c4066d1d6 +44 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/27/index_27f9c09249b0c27a2bfad978196e060d +194 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/28/subparsers_2863fbc004ea15cbe9570a59d7688f82 +150 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2a/maxsatisfying_2a5f074207b66570ea099648b0cc07a2 +26 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2a/win32_2aa3d38608b9c19fb22bc6e49e6c17d8 +26 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2c/AsyncSeriesHook_2cb49a136f5dc18080ce2e75c6c685e7 +38 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2c/core_2cedf8a7e3f663d3d09ca6789bdf0c46 +156 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2d/normalizeoptions_2ddefac3c548a6a9d8c0eb3182ae2480 +11 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2e/ConsoleTerminalProvider_2e66ae3538bbf6aaa5dcd74944fc205c +72 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2f/DynamicCommandLineParser_2f63330ac83fd134e7e7164fb7730fee +14 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2f/comparebuild_2fa43366ea840981f043518d2912193b +8 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2f/yallist_2f0386bace7319ff5589bde4ad419b70 +427 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/31/TypeUuid_31520f7b55e4db7a1c37ae8a15fa9da8 +88 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/31/help_314cbae995ff508d97fba2240a5c2289 +48 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/33/URL_33382dd2bd04cfe3a63ad984d9d1495c +197 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/34/SyncHook_3450bad6af5c4ae6f675e42c4f3c8961 +47 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/35/CommandLineHelper_35432de5b9e0472d8b4b0363144700a3 +23 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/35/index_351599b17438e340506c874eb4c4d916 +70 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/36/index_36c8f6d5633e9389ceab255fbf71ae18 +6 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/37/RemoveColorsTextRewriter_3774df1d77755492e62324174f09d9e9 +96 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/37/Sort_37dfd29dc09c27aacc04846107b87488 +213 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/37/index_37474d53f1aec6000961e1f22d1c83ad +24 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/37/semver_37eefd4df46c11fd6ff7bbfa601cb07a +288 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/38/index_3845abe725b203bc5c4e6a1238cb36c9 +20 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/39/MultiHook_39ae7d5e7f9fb6b6c2daef78c7830798 +55 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/39/index_39a7e36288e762fe97d6899aff7bb080 +7 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/39/index_39f2106e77a53f183393c1eb12dc0abd +6 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3c/iscore_3cd337d75d2dc1446345a2444372d63e +6 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3d/index_3df2d3d9ea8e302f11de5ec1fc1aeec9 +15 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3e/JsonSchema_3e5211cb39cc2174977ac14cd08caab3 +219 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3e/StringBufferTerminalProvider_3eb3f66416fcf71c742d0d05f1c8be24 +109 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3e/re_3e3693784461f0e33578b04c0eab88d4 +183 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3f/CommandLineParameterProvider_3fb6e4bc8707b78de508dcdc2aad0dab +490 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/40/LockFile_400fe1e4cf3ae073f4cddf66c85b768c +425 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/42/Import_42731f0220476b7d949a2d8f3a6f3333 +248 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/43/CommandLineFlagParameter_4381def97a72b0f60c84f30b1acf59e9 +73 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/45/index_457f942d32e2a1d8bf2bd93782c18416 +95 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/49/ITerminalChunk_49865ff4a7b2620ddc8eb70b153d46db +6 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/49/minor_499fd4858add324322b2d7aac97495be +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/49/valid_490a9a03ccbefe3df7830c88aa76fa9e +7 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/4a/caller_4a52763deee17c1eabd62004bb6722b3 +9 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/4b/HookMap_4ba23f7fef2983971a4eb0ef8e3e933a +62 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/4c/valid_4c0a764095911643682868db2648d277 +12 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/50/core_50b22e73455ca8518c847bae97611bda +154 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/51/publicapi_5191d008e2683b44e2ec1184bbe13750 +12 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/52/cmp_5283aa608b609dad4611e3faace2a4cf +53 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/52/index_52fb4a8a0bc7c5a7f9414063c7efee91 +41 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/53/AsyncSeriesLoopHook_53405b02ad03aabaa1d426caeffbcf46 +38 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/53/TextRewriter_53f9b6ac0214eb849c77a20f19ebf99f +40 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/53/utils_53dfb762f99e59335c970a62a9e510a2 +58 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/56/identifiers_5666c8fdebf8bea43ee0cb13c2c4fb99 +24 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/57/Terminal_578f895bcff5950330288b7fbb82e347 +298 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/57/mkdirssync_57a474552ec95c9b8e2261bbaaf33e4c +55 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/58/index_58c57a8f2a96bf6fdf5db35a2e44baa7 +84 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/58/link_588215e47725c14ad798d475bb0fea94 +62 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5c/npa_5c7f076d9565dfd59727d5116cf9ccd7 +302 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/CommandLineIntegerParameter_5d2f433e98ce71e716006ab8ac983248 +87 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/InternalError_5dd9d2af36ccc351a963a526c009c8a5 +56 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/Text_5da85b5db9a2f06bbe29cdcd91e6fbca +187 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/mkdirs_5d126b371fc3eb56a986e5354ede8f8f +64 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/rsort_5d475d23748e66c70f21cab766127fe8 +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5e/index_5e83cfb096cb71c3c3b5071c51c76352 +29 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5f/major_5f17be93c674dbdf30dc56dca1ceeb61 +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/60/iterator_605cedebcb174a610571f444f3e35cb9 +9 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/61/index_61b111e1602c823e36866ed58bfa5c02 +225 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/62/package_62ad16cf4b73e547a38b9be0e0826b2e +37 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/63/HookCodeFactory_635a639b45eb6a18260466654465472e +469 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/66/index_66cb1263a037358a57670e4b63da0f5f +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/68/subset_6895b03eef5d710fb02eb441db91f05f +245 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/6c/legacystreams_6cc4e01cffc5492fbda70264b3e436f4 +119 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/6f/index_6f9d4619de3942194b764b51b436253a +1698 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/71/CommandLineStringParameter_7110656822e0c0e75681161f079c932f +86 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/73/DynamicCommandLineAction_731ac0ca1ec60f3665f5fb69da39d5c1 +18 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/73/unicode_7398d3d7f883f4ab7cf11c5db8d4d728 +71 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/76/CommandLineStringListParameter_7673af10944fc3c86e1d8b67dfbfb9a3 +74 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/76/index_7612803919a5c9008d58ae6ccfd3ff5a +33 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/76/jestglobalsetup_7682e971203cc7639e25d90ff1117ed6 +14 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/77/satisfies_77c1039e1bfe840713edc2ae742f25c2 +11 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/78/CommandLineRemainder_78035c057f5ba7a67eebb8bf5eff0948 +49 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/78/StdioSummarizer_78cb92918c2050d0ed4a91e761363d03 +99 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/79/SyncLoopHook_7926719c84b5956272d204a1a14f5a05 +47 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/79/index_791cd131fb0e2b5672d97cfe1f3b7900 +49 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/79/index_7996c009dbfc6e03f020903b4e0ea736 +105 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/79/random_790a273dde9b34fd1f868a19c1a26f9e +13 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/7b/zalgo_7b856872eb76fb730e32acbf1500bc70 +111 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/7c/rcompare_7c2ed9bf4fade2c7f3d1f5d241964080 +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/7d/AsyncSeriesBailHook_7dcd8ad992fcc7c9e285a4be8c1f4638 +43 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/7d/FileSystem_7dfdf678d0cba7fd01a405bfc86432f7 +1100 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/80/compareloose_80136cfdc57ee904f7908e1485f4edb0 +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/80/index_8021860f6bdaf0355b9b55768096ad1f +17 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/81/index_81958cb0f4d5af47c9f4ff027730a354 +335 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/86/RigConfig_8614551e6fbc38bf3f0d0dd1d1150e2e +316 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/86/mappingTable_86f2dfc435ef89190b3f1803ce21e9c8 +2 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/87/clone_8741d656a737c57873a2cb137fc3c2a2 +24 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/87/version_870188990057b0e5b35d6d9bd63f0eb6 +48 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/89/true_89b39ea93e164e1bb913772edd7a31cb +27 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/ProtectableMap_8a9fe29cb67257b4a7d9e2a2bdff47de +91 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/SyncWaterfallHook_8a739b54c97de3d2f978d3f281705b85 +58 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8c/FileWriter_8c34d45ee75dae06e4593e27ec9e6c99 +64 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8c/colors_8c84db0002e69a4cfd1c0798f7f1c18a +200 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8c/index_8ceede9e1085ff23f8671d696ecd7bdb +46 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8e/append_8e1ed839104f64988fca6d92799f11c8 +54 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/91/EnvironmentMap_9164c9ef57fe102a2485664129f6d55c +107 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/93/trap_93535875cbcf5257946ec047bb05b68b +47 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/93/types_938cea5406dd0f56f3b17b463d571060 +29 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/94/clean_94837a6a564c76b60fbb8c8ab6c19dc1 +7 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/94/comparator_94f63ab47adc67ef3b7426d6b8c12210 +137 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/94/group_94a0b10687068ed655e30792779c33ed +76 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/95/utils_955a20e43e3ae489688d1c74a75d5a2b +21 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/96/AsyncSeriesWaterfallHook_9637cc190622117769cc984f4be38d67 +48 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/96/CallbackWritable_9611294010bb59334d77e19aca8ffe90 +32 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/96/copy_96b340b66c576bda43a9adc5ddd9d5e8 +247 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/97/rainbow_976c14df0174a4c5f52ee98e5c558120 +15 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/99/ITerminalProvider_9968ff70dd6950d66e51c15e5bd0e22b +33 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/99/LegacyAdapters_994d50a9d99bca598923c5d0a78658a9 +75 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/99/argument_parser_99c82f41bebafcf12dc985c074661de3 +1162 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/99/constants_993db3d18bc6186d69bd3869e6686734 +18 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9a/index_9afc29e15688c6855cbfd3494af0f8e6 +45 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9b/const_9b7421e189c528d99006e6fe10ec68d0 +22 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9c/argparse_9c97ed9dfc279c7cfbd90530b5e22ca0 +15 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9e/Colors_9ecc4a155788090d261edabf2719d1f8 +185 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9e/MapExtensions_9e5b8afe723b86b4ee5b79a35287a9e0 +41 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9e/symlinktype_9e28e4f4457ee603d982b6fb686f0ed3 +32 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9f/EnvironmentVariableParser_9f0570850bed25007c419377e7c7340e +52 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a1/exclusive_a143a742fec2463ca3a09bb335d9db42 +55 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a1/implementation_a1723a009de8984b2f21159b10fc6520 +53 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a1/outside_a1760cf8e60702091d1e4d477923e3a6 +81 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a2/Executable_a27667ef327d1d227f03d7a0954c45a8 +429 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a4/file_a48a764ff3863fe34bfc4daa1ddaa746 +50 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a4/sync_a4bf19b74e558d2357595e14f82e75a0 +209 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a5/SyncBailHook_a52e9aaf0f808558574466e14a2f4c20 +52 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a6/hasflag_a64b2cc5845c94a8a4ff212a6480c528 +36 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a7/MockWritable_a745bd72731e0b51f6097d118713aa9d +33 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a7/TerminalTransform_a791046363f27a01a21b28a5fc18e159 +58 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a7/gtr_a7c6cf87054408dfaa332053e93e500f +5 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a7/simplify_a7134847013b1ea2f9417ee16c03824b +48 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a8/CommandLineAction_a8253bed5d1978bb6a92066326e38357 +77 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ac/NormalizeNewlinesTextRewriter_ac3af2a268ce9d6922f1294a58da6c4a +71 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b2/extendStringPrototype_b2f9a6c1379034ad868c5f667877fadc +107 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b4/namespace_b4914dcf7fc2fb8f7f972c13b48f6645 +77 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b5/constant_b5b769be9acb440042a7957665debf5a +44 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b6/JsonFile_b6b4a5937dbb9325053b19bc4e2b0450 +426 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b6/index_b6ba4dd47ab8e3f3e79ca88ec7825b15 +341 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b6/sprintf_b684d33114f728a6c356eb3bbb9156d5 +209 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b7/URLimpl_b7e473a6d12ed1315b560494844887bd +201 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b8/patch_b81e5f0e2e6da3056822bf2f4ed9e7e7 +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b9/ProtectableMapView_b9b1fd8ad3e74d9d06a42d6e7db85a90 +57 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bc/AnsiEscape_bc9207c145be8aaf6afacb84732c22e3 +134 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bc/runner_bc68aa9a21b7738e0d6c25423b185c0f +11 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bc/symlink_bc0175250b3ab636a40c845a9eddb39d +64 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bd/CommandLineParserExitError_bd2152fe7b2d6044694614b16bd42828 +58 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/be/index_be50ea9cf8c03c5389c9952e3199b3f0 +14 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/be/zebra_bee85ff6bfd6c73305c83bae9403032a +6 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bf/index_bff0217ff50de0880fe9c3dd5a042b61 +26 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c2/Async_c2ea5cc2edc0a460dcf394ef8277e88e +142 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c2/inc_c29ab8939670a598aaecd384c9d5ac0b +19 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c3/PrintUtilities_c35051579d48861512e413c8a14412a7 +85 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c4/index_c41f3b8b1d980e4a50a1f567ef3dfa55 +7 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c8/index_c849c0732b3c043d26dd7f83e42b0e82 +19 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c8/range_c82cd0a8e5f3ab26a390fc043d2fd6c1 +523 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/cb/index_cb910c0c44d500b1de395d308269b53c +77 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/PosixModeBits_ce06fd83b104c77fb11b25bbcb96cda0 +84 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/index_ce3464019fb882539ee9a6f3e36e615a +88 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/index_ce3464019fb882539ee9a6f3e36e615a.map +1 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/parseoptions_ce35dd2d295c4a7222a6222851e75566 +12 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/store_ce7210aaefb043cec971342bfc0cfdd0 +51 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d0/polyfills_d0ad94e2eb550e44630192458362dcb6 +356 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d1/AsyncParallelHook_d18cda50e690d0dbbc99a98a59de44bc +38 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d1/TabCompletionAction_d14027e38fb75b6d8c775fdfb5eeba25 +210 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d1/getRepoState_d169674c56b8de074a7b0bbf4e00fd38 +399 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d2/StdioLineTransform_d2f22c5a6ce4b53f293a12c214c78e9b +115 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d2/buffer_d24e8fbd314b1514e892b0037226d476 +13 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d2/neq_d231567796306add9d6c56edc5883cf8 +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d3/StreamCollator_d38868f25e405ca18337dd6c6c43bb7b +149 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d3/ZSchemabrowsermin_d390d636d452d49462407943a5567f28 +3 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d3/gt_d3738f1d28722401000112f671c9314f +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d3/jestAdapter_d364e6fc05fddde0141d1adf30928ab8 +118 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d4/count_d4f18f1fd57b57bd934e1aec406fd42b +41 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d4/index_d4ec4e13526fb09fdb434929a9393040 +6 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d6/SplitterTransform_d62b2e66ec6880c4fa2e0799bbe80845 +49 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d7/index_d745e3edab39ecf8b68f842aeda1f436 +10 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d7/index_d79ccb4a675bce07283a087905f1f2c1 +17 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d7/nodemodulespaths_d744d0bfa889ed50d6db4f1079fe6320 +43 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d8/index_d823010cbbbbee48e7338f71e799e46b +28 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d9/async_d9bc7cae91f957ecf449fffa5417f46b +330 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/dc/america_dc8321ced343699017efa55ce495cae9 +13 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/dc/outputjson_dc9bcfd272ece271d5ba1d88882aabd3 +28 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/dd/added_formatters_dddaa6b90e00843ac1493a1754ad8d35 +88 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/de/rimraf_de5bb2bceea542b599f79b32f00261b6 +315 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/df/debug_dfea87a09ee5f184765dd5d9c5f2907d +10 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e0/index_e0fb84b2cae789df813ab2fd47dab672 +2 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e1/action_e1aaa76264f13ca51849266a55660ed3 +147 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e2/commons_e2ab730ac4f4b46b65b2b8f85c8616c5 +23382 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e3/DiscardStdoutTransform_e3ca398d1799ec51a0da3262837e8907 +94 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e3/PackageJsonLookup_e391de8a3bc029ef14212787d6efef5a +328 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e4/lte_e41aef5564169e2c9a26d71b55ac32cc +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e4/minversion_e4899cb3e82f3792e99b5d72895f46d7 +62 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e4/styles_e45b23904077bb02545672de0f04ca03 +78 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/Constants_e5916bdbd55b7c5751c61c22c2d8ac34 +35 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941 +4367 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941.map +1 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/formatter_e5470f40e67b2ff71fa7e81816df9709 +796 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247 +362 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247.map +1 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/parse_e600979fefd4a38a2ee298d2c0620ade +761 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e7/parse_e7d763c8be3f06ca68dae801f67f74f0 +34 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e9/prerelease_e9273d37a4257d1ec90c3290bff01e38 +7 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ea/index_eac4fe91a50305745e819cc74aa7ecef +135 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/eb/SubprocessTerminator_ebf12d3f7deaa7ae1d03a93896142f71 +183 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ed/Constants_edd5c8fac126611f0aac2c21306624ce +8 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ee/CommandLineIntegerListParameter_ee2f3b50b51fed153ef44b020f23a401 +83 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ee/TextRewriterTransform_eea93c8f7ebdbdc06d142929eabdbf1a +94 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f0/sort_f08e51bfef63ae58474299f9e7546731 +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f1/false_f1144cdddaa535b00035b0fbe77ead5f +28 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f2/utimes_f2a55040651c41f48b71717467a0818a +80 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f5/index_f581df3f55b3b9bf7204b9154e41c668 +595 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa +73 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa.map +1 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f8/BaseClasses_f86545813589e9e0e828bd06fd6f483b +170 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f8/Helpers_f82226d33bc83e35ab5d60a911a8baa0 +72 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f8/eq_f83b8f41e78fb9dcd93f57ba31fd2fb7 +4 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f9/TerminalWritable_f95360cc0a4458d3f87824bca7c56ec7 +124 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f9/compare_f98f6def50e53b4e306f892abb74cc0e +6 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/fa/rushlib_fa830331d24a41292b5cb91040384188 +745 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/fc/diff_fc9e8ec97b9414c6564bfb456a67b499 +24 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/fc/gte_fce941d3a7388750c169856aaaa6ab09 +4 -0
- package/.heft/build-cache/jest-cache/perf-cache-bae913f9b9aa720eb4deeae0a60a4b27-da39a3ee5e6b4b0d3255bfef95601890 +1 -0
- package/.rush/temp/operation/_phase_build/state.json +3 -0
- package/.rush/temp/operation/_phase_test/all.log +29 -0
- package/.rush/temp/operation/_phase_test/state.json +3 -0
- package/.rush/temp/package-deps__phase_build.json +17 -0
- package/.rush/temp/package-deps__phase_test.json +17 -0
- package/.rush/temp/rushstack+rush-http-build-cache-plugin-_phase_build-b4c5586f0288094c9a07eba9c3a86a35d8839a48.log +10 -0
- package/.rush/temp/shrinkwrap-deps.json +70 -0
- package/README.md +116 -0
- package/config/jest.config.json +14 -0
- package/config/rig.json +18 -0
- package/lib/HttpBuildCacheProvider.d.ts +47 -0
- package/lib/HttpBuildCacheProvider.d.ts.map +1 -0
- package/lib/HttpBuildCacheProvider.js +274 -0
- package/lib/HttpBuildCacheProvider.js.map +1 -0
- package/lib/HttpBuildCacheProvider.test.d.ts +2 -0
- package/lib/HttpBuildCacheProvider.test.d.ts.map +1 -0
- package/lib/HttpBuildCacheProvider.test.js +72 -0
- package/lib/HttpBuildCacheProvider.test.js.map +1 -0
- package/lib/RushHttpBuildCachePlugin.d.ts +42 -0
- package/lib/RushHttpBuildCachePlugin.d.ts.map +1 -0
- package/lib/RushHttpBuildCachePlugin.js +35 -0
- package/lib/RushHttpBuildCachePlugin.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/schemas/plugin-config.schema.json +52 -0
- package/package.json +36 -0
- package/rush-logs/rush-http-build-cache-plugin._phase_build.log +5 -0
- package/rush-logs/rush-http-build-cache-plugin._phase_test.log +29 -0
- package/rush-plugin-manifest.json +11 -0
- package/src/HttpBuildCacheProvider.test.ts +58 -0
- package/src/HttpBuildCacheProvider.ts +395 -0
- package/src/RushHttpBuildCachePlugin.ts +86 -0
- package/src/index.ts +4 -0
- package/src/schemas/plugin-config.schema.json +52 -0
- package/temp/coverage/clover.xml +146 -0
- package/temp/coverage/coverage-final.json +4 -0
- package/temp/coverage/lcov-report/HttpBuildCacheProvider.ts.html +1270 -0
- package/temp/coverage/lcov-report/RushHttpBuildCachePlugin.ts.html +343 -0
- package/temp/coverage/lcov-report/base.css +224 -0
- package/temp/coverage/lcov-report/block-navigation.js +87 -0
- package/temp/coverage/lcov-report/favicon.png +0 -0
- package/temp/coverage/lcov-report/index.html +146 -0
- package/temp/coverage/lcov-report/index.ts.html +97 -0
- package/temp/coverage/lcov-report/prettify.css +1 -0
- package/temp/coverage/lcov-report/prettify.js +2 -0
- package/temp/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/temp/coverage/lcov-report/sorter.js +196 -0
- package/temp/coverage/lcov.info +284 -0
- package/tsconfig.json +6 -0
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
d6837b8ff38ccedf9fe5a5b21937eb6d
|
|
2
|
+
"use strict";
|
|
3
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
4
|
+
// See LICENSE in the project root for license information.
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.LockFile = exports.getProcessStartTime = exports.getProcessStartTimeFromProcStat = void 0;
|
|
30
|
+
const path = __importStar(require("path"));
|
|
31
|
+
const child_process = __importStar(require("child_process"));
|
|
32
|
+
const FileSystem_1 = require("./FileSystem");
|
|
33
|
+
const FileWriter_1 = require("./FileWriter");
|
|
34
|
+
const Async_1 = require("./Async");
|
|
35
|
+
/**
|
|
36
|
+
* http://man7.org/linux/man-pages/man5/proc.5.html
|
|
37
|
+
* (22) starttime %llu
|
|
38
|
+
* The time the process started after system boot. In kernels before Linux 2.6, this value was
|
|
39
|
+
* expressed in jiffies. Since Linux 2.6, the value is expressed in clock ticks (divide by
|
|
40
|
+
* sysconf(_SC_CLK_TCK)).
|
|
41
|
+
* The format for this field was %lu before Linux 2.6.
|
|
42
|
+
*/
|
|
43
|
+
const procStatStartTimePos = 22;
|
|
44
|
+
/**
|
|
45
|
+
* Parses the process start time from the contents of a linux /proc/[pid]/stat file.
|
|
46
|
+
* @param stat - The contents of a linux /proc/[pid]/stat file.
|
|
47
|
+
* @returns The process start time in jiffies, or undefined if stat has an unexpected format.
|
|
48
|
+
*/
|
|
49
|
+
function getProcessStartTimeFromProcStat(stat) {
|
|
50
|
+
// Parse the value at position procStatStartTimePos.
|
|
51
|
+
// We cannot just split stat on spaces, because value 2 may contain spaces.
|
|
52
|
+
// For example, when running the following Shell commands:
|
|
53
|
+
// > cp "$(which bash)" ./'bash 2)('
|
|
54
|
+
// > ./'bash 2)(' -c 'OWNPID=$BASHPID;cat /proc/$OWNPID/stat'
|
|
55
|
+
// 59389 (bash 2)() S 59358 59389 59358 34818 59389 4202496 329 0 0 0 0 0 0 0 20 0 1 0
|
|
56
|
+
// > rm -rf ./'bash 2)('
|
|
57
|
+
// The output shows a stat file such that value 2 contains spaces.
|
|
58
|
+
// To still umambiguously parse such output we assume no values after the second ends with a right parenthesis...
|
|
59
|
+
// trimRight to remove the trailing line terminator.
|
|
60
|
+
let values = stat.trimRight().split(' ');
|
|
61
|
+
let i = values.length - 1;
|
|
62
|
+
while (i >= 0 &&
|
|
63
|
+
// charAt returns an empty string if the index is out of bounds.
|
|
64
|
+
values[i].charAt(values[i].length - 1) !== ')') {
|
|
65
|
+
i -= 1;
|
|
66
|
+
}
|
|
67
|
+
// i is the index of the last part of the second value (but i need not be 1).
|
|
68
|
+
if (i < 1) {
|
|
69
|
+
// Format of stat has changed.
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const value2 = values.slice(1, i + 1).join(' ');
|
|
73
|
+
values = [values[0], value2].concat(values.slice(i + 1));
|
|
74
|
+
if (values.length < procStatStartTimePos) {
|
|
75
|
+
// Older version of linux, or non-standard configuration of linux.
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
const startTimeJiffies = values[procStatStartTimePos - 1];
|
|
79
|
+
// In theory, the representations of start time returned by `cat /proc/[pid]/stat` and `ps -o lstart` can change
|
|
80
|
+
// while the system is running, but we assume this does not happen.
|
|
81
|
+
// So the caller can safely use this value as part of a unique process id (on the machine, without comparing
|
|
82
|
+
// accross reboots).
|
|
83
|
+
return startTimeJiffies;
|
|
84
|
+
}
|
|
85
|
+
exports.getProcessStartTimeFromProcStat = getProcessStartTimeFromProcStat;
|
|
86
|
+
/**
|
|
87
|
+
* Helper function that is exported for unit tests only.
|
|
88
|
+
* Returns undefined if the process doesn't exist with that pid.
|
|
89
|
+
*/
|
|
90
|
+
function getProcessStartTime(pid) {
|
|
91
|
+
const pidString = pid.toString();
|
|
92
|
+
if (pid < 0 || pidString.indexOf('e') >= 0 || pidString.indexOf('E') >= 0) {
|
|
93
|
+
throw new Error(`"pid" is negative or too large`);
|
|
94
|
+
}
|
|
95
|
+
let args;
|
|
96
|
+
if (process.platform === 'darwin') {
|
|
97
|
+
args = [`-p ${pidString}`, '-o lstart'];
|
|
98
|
+
}
|
|
99
|
+
else if (process.platform === 'linux') {
|
|
100
|
+
args = ['-p', pidString, '-o', 'lstart'];
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
throw new Error(`Unsupported system: ${process.platform}`);
|
|
104
|
+
}
|
|
105
|
+
const psResult = child_process.spawnSync('ps', args, {
|
|
106
|
+
encoding: 'utf8'
|
|
107
|
+
});
|
|
108
|
+
const psStdout = psResult.stdout;
|
|
109
|
+
// If no process with PID pid exists then the exit code is non-zero on linux but stdout is not empty.
|
|
110
|
+
// But if no process exists we do not want to fall back on /proc/*/stat to determine the process
|
|
111
|
+
// start time, so we we additionally test for !psStdout. NOTE: !psStdout evaluates to true if
|
|
112
|
+
// zero bytes are written to stdout.
|
|
113
|
+
if (psResult.status !== 0 && !psStdout && process.platform === 'linux') {
|
|
114
|
+
// Try to read /proc/[pid]/stat and get the value at position procStatStartTimePos.
|
|
115
|
+
let stat;
|
|
116
|
+
try {
|
|
117
|
+
stat = FileSystem_1.FileSystem.readFile(`/proc/${pidString}/stat`);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
if (error.code !== 'ENOENT') {
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
// Either no process with PID pid exists, or this version/configuration of linux is non-standard.
|
|
124
|
+
// We assume the former.
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
if (stat !== undefined) {
|
|
128
|
+
const startTimeJiffies = getProcessStartTimeFromProcStat(stat);
|
|
129
|
+
if (startTimeJiffies === undefined) {
|
|
130
|
+
throw new Error(`Could not retrieve the start time of process ${pidString} from the OS because the ` +
|
|
131
|
+
`contents of /proc/${pidString}/stat have an unexpected format`);
|
|
132
|
+
}
|
|
133
|
+
return startTimeJiffies;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// there was an error executing ps (zero bytes were written to stdout).
|
|
137
|
+
if (!psStdout) {
|
|
138
|
+
throw new Error(`Unexpected output from "ps" command`);
|
|
139
|
+
}
|
|
140
|
+
const psSplit = psStdout.split('\n');
|
|
141
|
+
// successfuly able to run "ps", but no process was found
|
|
142
|
+
if (psSplit[1] === '') {
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
if (psSplit[1]) {
|
|
146
|
+
const trimmed = psSplit[1].trim();
|
|
147
|
+
if (trimmed.length > 10) {
|
|
148
|
+
return trimmed;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
throw new Error(`Unexpected output from the "ps" command`);
|
|
152
|
+
}
|
|
153
|
+
exports.getProcessStartTime = getProcessStartTime;
|
|
154
|
+
/**
|
|
155
|
+
* The `LockFile` implements a file-based mutex for synchronizing access to a shared resource
|
|
156
|
+
* between multiple Node.js processes. It is not recommended for synchronization solely within
|
|
157
|
+
* a single Node.js process.
|
|
158
|
+
* @remarks
|
|
159
|
+
* The implementation works on Windows, Mac, and Linux without requiring any native helpers.
|
|
160
|
+
* On non-Windows systems, the algorithm requires access to the `ps` shell command. On Linux,
|
|
161
|
+
* it requires access the `/proc/${pidString}/stat` filesystem.
|
|
162
|
+
* @public
|
|
163
|
+
*/
|
|
164
|
+
class LockFile {
|
|
165
|
+
constructor(fileWriter, filePath, dirtyWhenAcquired) {
|
|
166
|
+
this._fileWriter = fileWriter;
|
|
167
|
+
this._filePath = filePath;
|
|
168
|
+
this._dirtyWhenAcquired = dirtyWhenAcquired;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Returns the path of the lockfile that will be created when a lock is successfully acquired.
|
|
172
|
+
* @param resourceFolder - The folder where the lock file will be created
|
|
173
|
+
* @param resourceName - An alphanumeric name that describes the resource being locked. This will become
|
|
174
|
+
* the filename of the temporary file created to manage the lock.
|
|
175
|
+
* @param pid - The PID for the current Node.js process (`process.pid`), which is used by the locking algorithm.
|
|
176
|
+
*/
|
|
177
|
+
static getLockFilePath(resourceFolder, resourceName, pid = process.pid) {
|
|
178
|
+
if (!resourceName.match(/^[a-zA-Z0-9][a-zA-Z0-9-.]+[a-zA-Z0-9]$/)) {
|
|
179
|
+
throw new Error(`The resource name "${resourceName}" is invalid.` +
|
|
180
|
+
` It must be an alphanumberic string with only "-" or "." It must start with an alphanumeric character.`);
|
|
181
|
+
}
|
|
182
|
+
if (process.platform === 'win32') {
|
|
183
|
+
return path.join(path.resolve(resourceFolder), `${resourceName}.lock`);
|
|
184
|
+
}
|
|
185
|
+
else if (process.platform === 'linux' || process.platform === 'darwin') {
|
|
186
|
+
return path.join(path.resolve(resourceFolder), `${resourceName}#${pid}.lock`);
|
|
187
|
+
}
|
|
188
|
+
throw new Error(`File locking not implemented for platform: "${process.platform}"`);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Attempts to create a lockfile with the given filePath.
|
|
192
|
+
* @param resourceFolder - The folder where the lock file will be created
|
|
193
|
+
* @param resourceName - An alphanumeric name that describes the resource being locked. This will become
|
|
194
|
+
* the filename of the temporary file created to manage the lock.
|
|
195
|
+
* @returns If successful, returns a `LockFile` instance. If unable to get a lock, returns `undefined`.
|
|
196
|
+
*/
|
|
197
|
+
static tryAcquire(resourceFolder, resourceName) {
|
|
198
|
+
FileSystem_1.FileSystem.ensureFolder(resourceFolder);
|
|
199
|
+
if (process.platform === 'win32') {
|
|
200
|
+
return LockFile._tryAcquireWindows(resourceFolder, resourceName);
|
|
201
|
+
}
|
|
202
|
+
else if (process.platform === 'linux' || process.platform === 'darwin') {
|
|
203
|
+
return LockFile._tryAcquireMacOrLinux(resourceFolder, resourceName);
|
|
204
|
+
}
|
|
205
|
+
throw new Error(`File locking not implemented for platform: "${process.platform}"`);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Attempts to create the lockfile. Will continue to loop at every 100ms until the lock becomes available
|
|
209
|
+
* or the maxWaitMs is surpassed.
|
|
210
|
+
*
|
|
211
|
+
* @remarks
|
|
212
|
+
* This function is subject to starvation, whereby it does not ensure that the process that has been
|
|
213
|
+
* waiting the longest to acquire the lock will get it first. This means that a process could theoretically
|
|
214
|
+
* wait for the lock forever, while other processes skipped it in line and acquired the lock first.
|
|
215
|
+
*
|
|
216
|
+
* @param resourceFolder - The folder where the lock file will be created
|
|
217
|
+
* @param resourceName - An alphanumeric name that describes the resource being locked. This will become
|
|
218
|
+
* the filename of the temporary file created to manage the lock.
|
|
219
|
+
* @param maxWaitMs - The maximum number of milliseconds to wait for the lock before reporting an error
|
|
220
|
+
*/
|
|
221
|
+
static acquire(resourceFolder, resourceName, maxWaitMs) {
|
|
222
|
+
const interval = 100;
|
|
223
|
+
const startTime = Date.now();
|
|
224
|
+
const retryLoop = async () => {
|
|
225
|
+
const lock = LockFile.tryAcquire(resourceFolder, resourceName);
|
|
226
|
+
if (lock) {
|
|
227
|
+
return lock;
|
|
228
|
+
}
|
|
229
|
+
if (maxWaitMs && Date.now() > startTime + maxWaitMs) {
|
|
230
|
+
throw new Error(`Exceeded maximum wait time to acquire lock for resource "${resourceName}"`);
|
|
231
|
+
}
|
|
232
|
+
await Async_1.Async.sleep(interval);
|
|
233
|
+
return retryLoop();
|
|
234
|
+
};
|
|
235
|
+
return retryLoop();
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Attempts to acquire the lock on a Linux or OSX machine
|
|
239
|
+
*/
|
|
240
|
+
static _tryAcquireMacOrLinux(resourceFolder, resourceName) {
|
|
241
|
+
let dirtyWhenAcquired = false;
|
|
242
|
+
// get the current process' pid
|
|
243
|
+
const pid = process.pid;
|
|
244
|
+
const startTime = LockFile._getStartTime(pid);
|
|
245
|
+
if (!startTime) {
|
|
246
|
+
throw new Error(`Unable to calculate start time for current process.`);
|
|
247
|
+
}
|
|
248
|
+
const pidLockFilePath = LockFile.getLockFilePath(resourceFolder, resourceName);
|
|
249
|
+
let lockFileHandle;
|
|
250
|
+
let lockFile;
|
|
251
|
+
try {
|
|
252
|
+
// open in write mode since if this file exists, it cannot be from the current process
|
|
253
|
+
// TODO: This will malfunction if the same process tries to acquire two locks on the same file.
|
|
254
|
+
// We should ideally maintain a dictionary of normalized acquired filenames
|
|
255
|
+
lockFileHandle = FileWriter_1.FileWriter.open(pidLockFilePath);
|
|
256
|
+
lockFileHandle.write(startTime);
|
|
257
|
+
const currentBirthTimeMs = FileSystem_1.FileSystem.getStatistics(pidLockFilePath).birthtime.getTime();
|
|
258
|
+
let smallestBirthTimeMs = currentBirthTimeMs;
|
|
259
|
+
let smallestBirthTimePid = pid.toString();
|
|
260
|
+
// now, scan the directory for all lockfiles
|
|
261
|
+
const files = FileSystem_1.FileSystem.readFolderItemNames(resourceFolder);
|
|
262
|
+
// look for anything ending with # then numbers and ".lock"
|
|
263
|
+
const lockFileRegExp = /^(.+)#([0-9]+)\.lock$/;
|
|
264
|
+
let match;
|
|
265
|
+
let otherPid;
|
|
266
|
+
for (const fileInFolder of files) {
|
|
267
|
+
if ((match = fileInFolder.match(lockFileRegExp)) &&
|
|
268
|
+
match[1] === resourceName &&
|
|
269
|
+
(otherPid = match[2]) !== pid.toString()) {
|
|
270
|
+
// we found at least one lockfile hanging around that isn't ours
|
|
271
|
+
const fileInFolderPath = path.join(resourceFolder, fileInFolder);
|
|
272
|
+
dirtyWhenAcquired = true;
|
|
273
|
+
// console.log(`FOUND OTHER LOCKFILE: ${otherPid}`);
|
|
274
|
+
const otherPidCurrentStartTime = LockFile._getStartTime(parseInt(otherPid, 10));
|
|
275
|
+
let otherPidOldStartTime;
|
|
276
|
+
let otherBirthtimeMs;
|
|
277
|
+
try {
|
|
278
|
+
otherPidOldStartTime = FileSystem_1.FileSystem.readFile(fileInFolderPath);
|
|
279
|
+
// check the timestamp of the file
|
|
280
|
+
otherBirthtimeMs = FileSystem_1.FileSystem.getStatistics(fileInFolderPath).birthtime.getTime();
|
|
281
|
+
}
|
|
282
|
+
catch (err) {
|
|
283
|
+
// this means the file is probably deleted already
|
|
284
|
+
}
|
|
285
|
+
// if the otherPidOldStartTime is invalid, then we should look at the timestamp,
|
|
286
|
+
// if this file was created after us, ignore it
|
|
287
|
+
// if it was created within 1 second before us, then it could be good, so we
|
|
288
|
+
// will conservatively fail
|
|
289
|
+
// otherwise it is an old lock file and will be deleted
|
|
290
|
+
if (otherPidOldStartTime === '' && otherBirthtimeMs !== undefined) {
|
|
291
|
+
if (otherBirthtimeMs > currentBirthTimeMs) {
|
|
292
|
+
// ignore this file, he will be unable to get the lock since this process
|
|
293
|
+
// will hold it
|
|
294
|
+
// console.log(`Ignoring lock for pid ${otherPid} because its lockfile is newer than ours.`);
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
else if (otherBirthtimeMs - currentBirthTimeMs < 0 && // it was created before us AND
|
|
298
|
+
otherBirthtimeMs - currentBirthTimeMs > -1000) {
|
|
299
|
+
// it was created less than a second before
|
|
300
|
+
// conservatively be unable to keep the lock
|
|
301
|
+
return undefined;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// console.log(`Other pid ${otherPid} lockfile has start time: "${otherPidOldStartTime}"`);
|
|
305
|
+
// console.log(`Other pid ${otherPid} actually has start time: "${otherPidCurrentStartTime}"`);
|
|
306
|
+
// this means the process is no longer executing, delete the file
|
|
307
|
+
if (!otherPidCurrentStartTime || otherPidOldStartTime !== otherPidCurrentStartTime) {
|
|
308
|
+
// console.log(`Other pid ${otherPid} is no longer executing!`);
|
|
309
|
+
FileSystem_1.FileSystem.deleteFile(fileInFolderPath);
|
|
310
|
+
continue;
|
|
311
|
+
}
|
|
312
|
+
// console.log(`Pid ${otherPid} lockfile has birth time: ${otherBirthtimeMs}`);
|
|
313
|
+
// console.log(`Pid ${pid} lockfile has birth time: ${currentBirthTimeMs}`);
|
|
314
|
+
// this is a lockfile pointing at something valid
|
|
315
|
+
if (otherBirthtimeMs !== undefined) {
|
|
316
|
+
// the other lock file was created before the current earliest lock file
|
|
317
|
+
// or the other lock file was created at the same exact time, but has earlier pid
|
|
318
|
+
// note that it is acceptable to do a direct comparison of the PIDs in this case
|
|
319
|
+
// since we are establishing a consistent order to apply to the lock files in all
|
|
320
|
+
// execution instances.
|
|
321
|
+
// it doesn't matter that the PIDs roll over, we've already
|
|
322
|
+
// established that these processes all started at the same time, so we just
|
|
323
|
+
// need to get all instances of the lock test to agree which one won.
|
|
324
|
+
if (otherBirthtimeMs < smallestBirthTimeMs ||
|
|
325
|
+
(otherBirthtimeMs === smallestBirthTimeMs && otherPid < smallestBirthTimePid)) {
|
|
326
|
+
smallestBirthTimeMs = otherBirthtimeMs;
|
|
327
|
+
smallestBirthTimePid = otherPid;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
if (smallestBirthTimePid !== pid.toString()) {
|
|
333
|
+
// we do not have the lock
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
// we have the lock!
|
|
337
|
+
lockFile = new LockFile(lockFileHandle, pidLockFilePath, dirtyWhenAcquired);
|
|
338
|
+
lockFileHandle = undefined; // we have handed the descriptor off to the instance
|
|
339
|
+
}
|
|
340
|
+
finally {
|
|
341
|
+
if (lockFileHandle) {
|
|
342
|
+
// ensure our lock is closed
|
|
343
|
+
lockFileHandle.close();
|
|
344
|
+
FileSystem_1.FileSystem.deleteFile(pidLockFilePath);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return lockFile;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Attempts to acquire the lock using Windows
|
|
351
|
+
* This algorithm is much simpler since we can rely on the operating system
|
|
352
|
+
*/
|
|
353
|
+
static _tryAcquireWindows(resourceFolder, resourceName) {
|
|
354
|
+
const lockFilePath = LockFile.getLockFilePath(resourceFolder, resourceName);
|
|
355
|
+
let dirtyWhenAcquired = false;
|
|
356
|
+
let fileHandle;
|
|
357
|
+
let lockFile;
|
|
358
|
+
try {
|
|
359
|
+
if (FileSystem_1.FileSystem.exists(lockFilePath)) {
|
|
360
|
+
dirtyWhenAcquired = true;
|
|
361
|
+
// If the lockfile is held by an process with an exclusive lock, then removing it will
|
|
362
|
+
// silently fail. OpenSync() below will then fail and we will be unable to create a lock.
|
|
363
|
+
// Otherwise, the lockfile is sitting on disk, but nothing is holding it, implying that
|
|
364
|
+
// the last process to hold it died.
|
|
365
|
+
FileSystem_1.FileSystem.deleteFile(lockFilePath);
|
|
366
|
+
}
|
|
367
|
+
try {
|
|
368
|
+
// Attempt to open an exclusive lockfile
|
|
369
|
+
fileHandle = FileWriter_1.FileWriter.open(lockFilePath, { exclusive: true });
|
|
370
|
+
}
|
|
371
|
+
catch (error) {
|
|
372
|
+
// we tried to delete the lock, but something else is holding it,
|
|
373
|
+
// (probably an active process), therefore we are unable to create a lock
|
|
374
|
+
return undefined;
|
|
375
|
+
}
|
|
376
|
+
// Ensure we can hand off the file descriptor to the lockfile
|
|
377
|
+
lockFile = new LockFile(fileHandle, lockFilePath, dirtyWhenAcquired);
|
|
378
|
+
fileHandle = undefined;
|
|
379
|
+
}
|
|
380
|
+
finally {
|
|
381
|
+
if (fileHandle) {
|
|
382
|
+
fileHandle.close();
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
return lockFile;
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Unlocks a file and optionally removes it from disk.
|
|
389
|
+
* This can only be called once.
|
|
390
|
+
*
|
|
391
|
+
* @param deleteFile - Whether to delete the lockfile from disk. Defaults to true.
|
|
392
|
+
*/
|
|
393
|
+
release(deleteFile = true) {
|
|
394
|
+
if (this.isReleased) {
|
|
395
|
+
throw new Error(`The lock for file "${path.basename(this._filePath)}" has already been released.`);
|
|
396
|
+
}
|
|
397
|
+
this._fileWriter.close();
|
|
398
|
+
if (deleteFile) {
|
|
399
|
+
FileSystem_1.FileSystem.deleteFile(this._filePath);
|
|
400
|
+
}
|
|
401
|
+
this._fileWriter = undefined;
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Returns the initial state of the lock.
|
|
405
|
+
* This can be used to detect if the previous process was terminated before releasing the resource.
|
|
406
|
+
*/
|
|
407
|
+
get dirtyWhenAcquired() {
|
|
408
|
+
return this._dirtyWhenAcquired;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Returns the absolute path to the lockfile
|
|
412
|
+
*/
|
|
413
|
+
get filePath() {
|
|
414
|
+
return this._filePath;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Returns true if this lock is currently being held.
|
|
418
|
+
*/
|
|
419
|
+
get isReleased() {
|
|
420
|
+
return this._fileWriter === undefined;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
exports.LockFile = LockFile;
|
|
424
|
+
LockFile._getStartTime = getProcessStartTime;
|
|
425
|
+
//# sourceMappingURL=LockFile.js.map
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
209e9cf9090ea89efb6e5d699ef8c518
|
|
2
|
+
"use strict";
|
|
3
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
4
|
+
// See LICENSE in the project root for license information.
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Import = void 0;
|
|
30
|
+
const path = __importStar(require("path"));
|
|
31
|
+
const importLazy = require("import-lazy");
|
|
32
|
+
const Resolve = __importStar(require("resolve"));
|
|
33
|
+
const nodeModule = require("module");
|
|
34
|
+
const PackageJsonLookup_1 = require("./PackageJsonLookup");
|
|
35
|
+
const FileSystem_1 = require("./FileSystem");
|
|
36
|
+
const PackageName_1 = require("./PackageName");
|
|
37
|
+
/**
|
|
38
|
+
* Helpers for resolving and importing Node.js modules.
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
class Import {
|
|
42
|
+
static get _builtInModules() {
|
|
43
|
+
if (!Import.__builtInModules) {
|
|
44
|
+
Import.__builtInModules = new Set(nodeModule.builtinModules);
|
|
45
|
+
}
|
|
46
|
+
return Import.__builtInModules;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Provides a way to improve process startup times by lazy-loading imported modules.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* This is a more structured wrapper for the {@link https://www.npmjs.com/package/import-lazy|import-lazy}
|
|
53
|
+
* package. It enables you to replace an import like this:
|
|
54
|
+
*
|
|
55
|
+
* ```ts
|
|
56
|
+
* import * as example from 'example'; // <-- 100ms load time
|
|
57
|
+
*
|
|
58
|
+
* if (condition) {
|
|
59
|
+
* example.doSomething();
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* ...with a pattern like this:
|
|
64
|
+
*
|
|
65
|
+
* ```ts
|
|
66
|
+
* const example: typeof import('example') = Import.lazy('example', require);
|
|
67
|
+
*
|
|
68
|
+
* if (condition) {
|
|
69
|
+
* example.doSomething(); // <-- 100ms load time occurs here, only if needed
|
|
70
|
+
* }
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* The implementation relies on JavaScript's `Proxy` feature to intercept access to object members. Thus
|
|
74
|
+
* it will only work correctly with certain types of module exports. If a particular export isn't well behaved,
|
|
75
|
+
* you may need to find (or introduce) some other module in your dependency graph to apply the optimization to.
|
|
76
|
+
*
|
|
77
|
+
* Usage guidelines:
|
|
78
|
+
*
|
|
79
|
+
* - Always specify types using `typeof` as shown above.
|
|
80
|
+
*
|
|
81
|
+
* - Never apply lazy-loading in a way that would convert the module's type to `any`. Losing type safety
|
|
82
|
+
* seriously impacts the maintainability of the code base.
|
|
83
|
+
*
|
|
84
|
+
* - In cases where the non-runtime types are needed, import them separately using the `Types` suffix:
|
|
85
|
+
*
|
|
86
|
+
* ```ts
|
|
87
|
+
* const example: typeof import('example') = Import.lazy('example', require);
|
|
88
|
+
* import type * as exampleTypes from 'example';
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* - If the imported module confusingly has the same name as its export, then use the Module suffix:
|
|
92
|
+
*
|
|
93
|
+
* ```ts
|
|
94
|
+
* const exampleModule: typeof import('../../logic/Example') = Import.lazy(
|
|
95
|
+
* '../../logic/Example', require);
|
|
96
|
+
* import type * as exampleTypes from '../../logic/Example';
|
|
97
|
+
* ```
|
|
98
|
+
*
|
|
99
|
+
* - If the exports cause a lot of awkwardness (e.g. too many expressions need to have `exampleModule.` inserted
|
|
100
|
+
* into them), or if some exports cannot be proxied (e.g. `Import.lazy('example', require)` returns a function
|
|
101
|
+
* signature), then do not lazy-load that module. Instead, apply lazy-loading to some other module which is
|
|
102
|
+
* better behaved.
|
|
103
|
+
*
|
|
104
|
+
* - It's recommended to sort imports in a standard ordering:
|
|
105
|
+
*
|
|
106
|
+
* ```ts
|
|
107
|
+
* // 1. external imports
|
|
108
|
+
* import * as path from 'path';
|
|
109
|
+
* import { Import, JsonFile, JsonObject } from '@rushstack/node-core-library';
|
|
110
|
+
*
|
|
111
|
+
* // 2. local imports
|
|
112
|
+
* import { LocalFile } from './path/LocalFile';
|
|
113
|
+
*
|
|
114
|
+
* // 3. lazy-imports (which are technically variables, not imports)
|
|
115
|
+
* const semver: typeof import('semver') = Import.lazy('semver', require);
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
119
|
+
static lazy(moduleName, require) {
|
|
120
|
+
const importLazyLocal = importLazy(require);
|
|
121
|
+
return importLazyLocal(moduleName);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* This resolves a module path using similar logic as the Node.js `require.resolve()` API,
|
|
125
|
+
* but supporting extra features such as specifying the base folder.
|
|
126
|
+
*
|
|
127
|
+
* @remarks
|
|
128
|
+
* A module path is a text string that might appear in a statement such as
|
|
129
|
+
* `import { X } from "____";` or `const x = require("___");`. The implementation is based
|
|
130
|
+
* on the popular `resolve` NPM package.
|
|
131
|
+
*
|
|
132
|
+
* Suppose `example` is an NPM package whose entry point is `lib/index.js`:
|
|
133
|
+
* ```ts
|
|
134
|
+
* // Returns "/path/to/project/node_modules/example/lib/index.js"
|
|
135
|
+
* Import.resolveModule({ modulePath: 'example' });
|
|
136
|
+
*
|
|
137
|
+
* // Returns "/path/to/project/node_modules/example/lib/other.js"
|
|
138
|
+
* Import.resolveModule({ modulePath: 'example/lib/other' });
|
|
139
|
+
* ```
|
|
140
|
+
* If you need to determine the containing package folder
|
|
141
|
+
* (`/path/to/project/node_modules/example`), use {@link Import.resolvePackage} instead.
|
|
142
|
+
*
|
|
143
|
+
* @returns the absolute path of the resolved module.
|
|
144
|
+
* If {@link IImportResolveOptions.includeSystemModules} is specified
|
|
145
|
+
* and a system module is found, then its name is returned without any file path.
|
|
146
|
+
*/
|
|
147
|
+
static resolveModule(options) {
|
|
148
|
+
const { modulePath, baseFolderPath, includeSystemModules, allowSelfReference } = options;
|
|
149
|
+
if (path.isAbsolute(modulePath)) {
|
|
150
|
+
return modulePath;
|
|
151
|
+
}
|
|
152
|
+
const normalizedRootPath = FileSystem_1.FileSystem.getRealPath(baseFolderPath);
|
|
153
|
+
if (modulePath.startsWith('.')) {
|
|
154
|
+
// This looks like a conventional relative path
|
|
155
|
+
return path.resolve(normalizedRootPath, modulePath);
|
|
156
|
+
}
|
|
157
|
+
if (includeSystemModules === true && Import._builtInModules.has(modulePath)) {
|
|
158
|
+
return modulePath;
|
|
159
|
+
}
|
|
160
|
+
if (allowSelfReference === true) {
|
|
161
|
+
const ownPackage = Import._getPackageName(baseFolderPath);
|
|
162
|
+
if (ownPackage && modulePath.startsWith(ownPackage.packageName)) {
|
|
163
|
+
const packagePath = modulePath.substr(ownPackage.packageName.length + 1);
|
|
164
|
+
return path.resolve(ownPackage.packageRootPath, packagePath);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
return Resolve.sync(
|
|
169
|
+
// Append a slash to the package name to ensure `resolve.sync` doesn't attempt to return a system package
|
|
170
|
+
includeSystemModules !== true && modulePath.indexOf('/') === -1 ? `${modulePath}/` : modulePath, {
|
|
171
|
+
basedir: normalizedRootPath,
|
|
172
|
+
preserveSymlinks: false
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
catch (e) {
|
|
176
|
+
throw new Error(`Cannot find module "${modulePath}" from "${options.baseFolderPath}".`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Performs module resolution to determine the folder where a package is installed.
|
|
181
|
+
*
|
|
182
|
+
* @remarks
|
|
183
|
+
* Suppose `example` is an NPM package whose entry point is `lib/index.js`:
|
|
184
|
+
* ```ts
|
|
185
|
+
* // Returns "/path/to/project/node_modules/example"
|
|
186
|
+
* Import.resolvePackage({ packageName: 'example' });
|
|
187
|
+
* ```
|
|
188
|
+
*
|
|
189
|
+
* If you need to resolve a module path, use {@link Import.resolveModule} instead:
|
|
190
|
+
* ```ts
|
|
191
|
+
* // Returns "/path/to/project/node_modules/example/lib/index.js"
|
|
192
|
+
* Import.resolveModule({ modulePath: 'example' });
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* @returns the absolute path of the package folder.
|
|
196
|
+
* If {@link IImportResolveOptions.includeSystemModules} is specified
|
|
197
|
+
* and a system module is found, then its name is returned without any file path.
|
|
198
|
+
*/
|
|
199
|
+
static resolvePackage(options) {
|
|
200
|
+
const { packageName, includeSystemModules, baseFolderPath, allowSelfReference } = options;
|
|
201
|
+
if (includeSystemModules && Import._builtInModules.has(packageName)) {
|
|
202
|
+
return packageName;
|
|
203
|
+
}
|
|
204
|
+
const normalizedRootPath = FileSystem_1.FileSystem.getRealPath(baseFolderPath);
|
|
205
|
+
if (allowSelfReference) {
|
|
206
|
+
const ownPackage = Import._getPackageName(baseFolderPath);
|
|
207
|
+
if (ownPackage && ownPackage.packageName === packageName) {
|
|
208
|
+
return ownPackage.packageRootPath;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
PackageName_1.PackageName.parse(packageName); // Ensure the package name is valid and doesn't contain a path
|
|
212
|
+
try {
|
|
213
|
+
// Append a slash to the package name to ensure `resolve.sync` doesn't attempt to return a system package
|
|
214
|
+
const resolvedPath = Resolve.sync(`${packageName}/`, {
|
|
215
|
+
basedir: normalizedRootPath,
|
|
216
|
+
preserveSymlinks: false,
|
|
217
|
+
packageFilter: (pkg, pkgFile, dir) => {
|
|
218
|
+
// Hardwire "main" to point to a file that is guaranteed to exist.
|
|
219
|
+
// This helps resolve packages such as @types/node that have no entry point.
|
|
220
|
+
// And then we can use path.dirname() below to locate the package folder,
|
|
221
|
+
// even if the real entry point was in an subfolder with arbitrary nesting.
|
|
222
|
+
pkg.main = 'package.json';
|
|
223
|
+
return pkg;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
const packagePath = path.dirname(resolvedPath);
|
|
227
|
+
return packagePath;
|
|
228
|
+
}
|
|
229
|
+
catch (_a) {
|
|
230
|
+
throw new Error(`Cannot find package "${packageName}" from "${baseFolderPath}".`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
static _getPackageName(rootPath) {
|
|
234
|
+
const packageJsonPath = PackageJsonLookup_1.PackageJsonLookup.instance.tryGetPackageJsonFilePathFor(rootPath);
|
|
235
|
+
if (packageJsonPath) {
|
|
236
|
+
const packageJson = PackageJsonLookup_1.PackageJsonLookup.instance.loadPackageJson(packageJsonPath);
|
|
237
|
+
return {
|
|
238
|
+
packageRootPath: path.dirname(packageJsonPath),
|
|
239
|
+
packageName: packageJson.name
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
return undefined;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
exports.Import = Import;
|
|
248
|
+
//# sourceMappingURL=Import.js.map
|