@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.
Files changed (329) hide show
  1. package/.heft/build-cache/heft-jest-data.json +7 -0
  2. package/.heft/build-cache/jest-cache/haste-map-bae913f9b9aa720eb4deeae0a60a4b27-22ae7f4ce9de4306889d8c05e5cc39b9-f6b1af01a3130057bdfe3d86807211f9 +0 -0
  3. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/00/CommandLineParser_0096ef3e73a0458d2c4e987ce6950ec8 +217 -0
  4. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/00/jsonfile_001c9f2c4a38c3ac08d195a597f3f40c +13 -0
  5. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/01/action_container_0168facd9c19526b921c2a176ff5e3dd +483 -0
  6. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/02/getPackageDeps_02bf27e4c49bd0d60a0d2a807f58ad64 +256 -0
  7. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/03/CommandLineChoiceListParameter_039f877c10997d8689457a3cc6126b9f +85 -0
  8. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/04/Hook_044e3585bd11395575af5f860b3449ca +176 -0
  9. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/05/StdioWritable_0514ac0d19d8447acf4fc997d4eb75c2 +34 -0
  10. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/06/ConfigurationFile_06d7f35feb0bd944d9b9a2a4d9e112c8 +532 -0
  11. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/07/FileError_07e325c2d038b4cc56e1dfe3830d6c3e +114 -0
  12. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/07/ltr_0715ee1731dbedafe7e26cfb1315c8db +5 -0
  13. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/08/homedir_086be402c636b5ef75b92acd986cbbcf +25 -0
  14. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/08/outputjsonsync_08a1ad9a9786d59f137a5ea6e1547f10 +19 -0
  15. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/09/Path_0996303466a12a84e221f1ca7e815489 +215 -0
  16. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0b/constant_0bebc93b25bd88f8e9694b48db821b00 +48 -0
  17. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0b/index_0b2321eff214a8a8c920ed4d283d606f +26 -0
  18. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0c/gracefulfs_0c1a237496d918be613bce417baa89f2 +449 -0
  19. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0d/indexumd_0dd8b4985260e5d98d86cd77c5feca27 +1073 -0
  20. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0e/index_0e154b4f09da1ddc6c89567be99e1184 +12 -0
  21. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0f/StringBuilder_0f79d7bd9ef44b22de47594852bebf54 +42 -0
  22. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/0f/index_0f086ad263aa8ec1c88455f1c863d9c3 +13 -0
  23. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/10/CommandLineChoiceParameter_10f873b895c0c8bbfff1b3ca3be44551 +96 -0
  24. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/11/PackageName_11306194785ccb2ba264a8e77c4109de +214 -0
  25. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/12/runTest_12014d70f30cb7039d4e026bacc47665 +463 -0
  26. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/14/index_14189dd0bf5b37d264e85be625b19df0 +118 -0
  27. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/15/lt_15449967a28afb6ec5dbb008da254f3e +4 -0
  28. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/19/copysync_196045f8ccef3c2f2f82113b3d6322ea +194 -0
  29. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/19/intersects_1920dd31d7a2b696c913c6105b7aea5a +8 -0
  30. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1a/index_1a09c4b40e031dcc3464bf0de8642956 +190 -0
  31. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1a/tocomparators_1a8990095d92cfa18e5a3c7547951f9b +9 -0
  32. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1b/index_1b7c45ee5c2dbabcedc41ab6b1e02377 +220 -0
  33. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1c/CollatedWriter_1c603fd6e169333da45c34e3c6aba4f3 +52 -0
  34. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1d/ScopedCommandLineAction_1d44a994459da880ecd53a33e4e612aa +179 -0
  35. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1d/index_1d071d1d9c16561dc536eb16f991e9d1 +83 -0
  36. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1d/index_1dcfbe32546c5f673f2b614530fce0ef +78 -0
  37. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/1f/safe_1fecf14f4050ef9c0f88c3c1e2dd85a8 +11 -0
  38. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/20/CollatedTerminal_204a6de6c99e4c915d6221e230a0fa4e +27 -0
  39. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/21/index_210551fcae12c5b3d27a6b0775228781 +215 -0
  40. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/coerce_224b5791f8f7b7cee6fac3237e26755b +53 -0
  41. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/core_2267298cab4959e0bc6a302739275617 +53 -0
  42. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/index_226f648122f5302b23da56fe470c16ac +34 -0
  43. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/supportscolors_2218a76b76fd61532d614e1b0bb928fd +152 -0
  44. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/22/urlstatemachine_2208634a5a2ffd9728d9dafaf9451e2d +1298 -0
  45. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/23/AlreadyReportedError_23dbb838b51752afa3d8495f3062de58 +55 -0
  46. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/23/minsatisfying_231e7868208d4f1c9e82cecdce4c81ef +25 -0
  47. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/24/error_245d118d6aaef020e6c9b74d975e24d7 +51 -0
  48. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/26/Enum_26f7c648b8042f36def6f28b90b3995f +137 -0
  49. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/26/index_269839caa72382caf6110fdff62b8b0f +89 -0
  50. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/26/symlinkpaths_269231f2a465387e8122e02bc23a585b +100 -0
  51. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/27/AsyncParallelBailHook_277e441e1512e36622369a45ebd3f58b +86 -0
  52. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/27/index_272b3290b49eb1250dd5383c4066d1d6 +44 -0
  53. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/27/index_27f9c09249b0c27a2bfad978196e060d +194 -0
  54. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/28/subparsers_2863fbc004ea15cbe9570a59d7688f82 +150 -0
  55. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2a/maxsatisfying_2a5f074207b66570ea099648b0cc07a2 +26 -0
  56. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2a/win32_2aa3d38608b9c19fb22bc6e49e6c17d8 +26 -0
  57. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2c/AsyncSeriesHook_2cb49a136f5dc18080ce2e75c6c685e7 +38 -0
  58. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2c/core_2cedf8a7e3f663d3d09ca6789bdf0c46 +156 -0
  59. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2d/normalizeoptions_2ddefac3c548a6a9d8c0eb3182ae2480 +11 -0
  60. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2e/ConsoleTerminalProvider_2e66ae3538bbf6aaa5dcd74944fc205c +72 -0
  61. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2f/DynamicCommandLineParser_2f63330ac83fd134e7e7164fb7730fee +14 -0
  62. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2f/comparebuild_2fa43366ea840981f043518d2912193b +8 -0
  63. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/2f/yallist_2f0386bace7319ff5589bde4ad419b70 +427 -0
  64. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/31/TypeUuid_31520f7b55e4db7a1c37ae8a15fa9da8 +88 -0
  65. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/31/help_314cbae995ff508d97fba2240a5c2289 +48 -0
  66. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/33/URL_33382dd2bd04cfe3a63ad984d9d1495c +197 -0
  67. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/34/SyncHook_3450bad6af5c4ae6f675e42c4f3c8961 +47 -0
  68. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/35/CommandLineHelper_35432de5b9e0472d8b4b0363144700a3 +23 -0
  69. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/35/index_351599b17438e340506c874eb4c4d916 +70 -0
  70. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/36/index_36c8f6d5633e9389ceab255fbf71ae18 +6 -0
  71. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/37/RemoveColorsTextRewriter_3774df1d77755492e62324174f09d9e9 +96 -0
  72. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/37/Sort_37dfd29dc09c27aacc04846107b87488 +213 -0
  73. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/37/index_37474d53f1aec6000961e1f22d1c83ad +24 -0
  74. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/37/semver_37eefd4df46c11fd6ff7bbfa601cb07a +288 -0
  75. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/38/index_3845abe725b203bc5c4e6a1238cb36c9 +20 -0
  76. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/39/MultiHook_39ae7d5e7f9fb6b6c2daef78c7830798 +55 -0
  77. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/39/index_39a7e36288e762fe97d6899aff7bb080 +7 -0
  78. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/39/index_39f2106e77a53f183393c1eb12dc0abd +6 -0
  79. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3c/iscore_3cd337d75d2dc1446345a2444372d63e +6 -0
  80. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3d/index_3df2d3d9ea8e302f11de5ec1fc1aeec9 +15 -0
  81. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3e/JsonSchema_3e5211cb39cc2174977ac14cd08caab3 +219 -0
  82. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3e/StringBufferTerminalProvider_3eb3f66416fcf71c742d0d05f1c8be24 +109 -0
  83. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3e/re_3e3693784461f0e33578b04c0eab88d4 +183 -0
  84. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/3f/CommandLineParameterProvider_3fb6e4bc8707b78de508dcdc2aad0dab +490 -0
  85. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/40/LockFile_400fe1e4cf3ae073f4cddf66c85b768c +425 -0
  86. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/42/Import_42731f0220476b7d949a2d8f3a6f3333 +248 -0
  87. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/43/CommandLineFlagParameter_4381def97a72b0f60c84f30b1acf59e9 +73 -0
  88. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/45/index_457f942d32e2a1d8bf2bd93782c18416 +95 -0
  89. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/49/ITerminalChunk_49865ff4a7b2620ddc8eb70b153d46db +6 -0
  90. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/49/minor_499fd4858add324322b2d7aac97495be +4 -0
  91. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/49/valid_490a9a03ccbefe3df7830c88aa76fa9e +7 -0
  92. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/4a/caller_4a52763deee17c1eabd62004bb6722b3 +9 -0
  93. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/4b/HookMap_4ba23f7fef2983971a4eb0ef8e3e933a +62 -0
  94. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/4c/valid_4c0a764095911643682868db2648d277 +12 -0
  95. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/50/core_50b22e73455ca8518c847bae97611bda +154 -0
  96. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/51/publicapi_5191d008e2683b44e2ec1184bbe13750 +12 -0
  97. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/52/cmp_5283aa608b609dad4611e3faace2a4cf +53 -0
  98. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/52/index_52fb4a8a0bc7c5a7f9414063c7efee91 +41 -0
  99. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/53/AsyncSeriesLoopHook_53405b02ad03aabaa1d426caeffbcf46 +38 -0
  100. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/53/TextRewriter_53f9b6ac0214eb849c77a20f19ebf99f +40 -0
  101. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/53/utils_53dfb762f99e59335c970a62a9e510a2 +58 -0
  102. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/56/identifiers_5666c8fdebf8bea43ee0cb13c2c4fb99 +24 -0
  103. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/57/Terminal_578f895bcff5950330288b7fbb82e347 +298 -0
  104. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/57/mkdirssync_57a474552ec95c9b8e2261bbaaf33e4c +55 -0
  105. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/58/index_58c57a8f2a96bf6fdf5db35a2e44baa7 +84 -0
  106. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/58/link_588215e47725c14ad798d475bb0fea94 +62 -0
  107. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5c/npa_5c7f076d9565dfd59727d5116cf9ccd7 +302 -0
  108. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/CommandLineIntegerParameter_5d2f433e98ce71e716006ab8ac983248 +87 -0
  109. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/InternalError_5dd9d2af36ccc351a963a526c009c8a5 +56 -0
  110. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/Text_5da85b5db9a2f06bbe29cdcd91e6fbca +187 -0
  111. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/mkdirs_5d126b371fc3eb56a986e5354ede8f8f +64 -0
  112. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5d/rsort_5d475d23748e66c70f21cab766127fe8 +4 -0
  113. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5e/index_5e83cfb096cb71c3c3b5071c51c76352 +29 -0
  114. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/5f/major_5f17be93c674dbdf30dc56dca1ceeb61 +4 -0
  115. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/60/iterator_605cedebcb174a610571f444f3e35cb9 +9 -0
  116. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/61/index_61b111e1602c823e36866ed58bfa5c02 +225 -0
  117. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/62/package_62ad16cf4b73e547a38b9be0e0826b2e +37 -0
  118. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/63/HookCodeFactory_635a639b45eb6a18260466654465472e +469 -0
  119. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/66/index_66cb1263a037358a57670e4b63da0f5f +4 -0
  120. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/68/subset_6895b03eef5d710fb02eb441db91f05f +245 -0
  121. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/6c/legacystreams_6cc4e01cffc5492fbda70264b3e436f4 +119 -0
  122. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/6f/index_6f9d4619de3942194b764b51b436253a +1698 -0
  123. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/71/CommandLineStringParameter_7110656822e0c0e75681161f079c932f +86 -0
  124. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/73/DynamicCommandLineAction_731ac0ca1ec60f3665f5fb69da39d5c1 +18 -0
  125. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/73/unicode_7398d3d7f883f4ab7cf11c5db8d4d728 +71 -0
  126. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/76/CommandLineStringListParameter_7673af10944fc3c86e1d8b67dfbfb9a3 +74 -0
  127. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/76/index_7612803919a5c9008d58ae6ccfd3ff5a +33 -0
  128. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/76/jestglobalsetup_7682e971203cc7639e25d90ff1117ed6 +14 -0
  129. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/77/satisfies_77c1039e1bfe840713edc2ae742f25c2 +11 -0
  130. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/78/CommandLineRemainder_78035c057f5ba7a67eebb8bf5eff0948 +49 -0
  131. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/78/StdioSummarizer_78cb92918c2050d0ed4a91e761363d03 +99 -0
  132. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/79/SyncLoopHook_7926719c84b5956272d204a1a14f5a05 +47 -0
  133. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/79/index_791cd131fb0e2b5672d97cfe1f3b7900 +49 -0
  134. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/79/index_7996c009dbfc6e03f020903b4e0ea736 +105 -0
  135. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/79/random_790a273dde9b34fd1f868a19c1a26f9e +13 -0
  136. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/7b/zalgo_7b856872eb76fb730e32acbf1500bc70 +111 -0
  137. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/7c/rcompare_7c2ed9bf4fade2c7f3d1f5d241964080 +4 -0
  138. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/7d/AsyncSeriesBailHook_7dcd8ad992fcc7c9e285a4be8c1f4638 +43 -0
  139. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/7d/FileSystem_7dfdf678d0cba7fd01a405bfc86432f7 +1100 -0
  140. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/80/compareloose_80136cfdc57ee904f7908e1485f4edb0 +4 -0
  141. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/80/index_8021860f6bdaf0355b9b55768096ad1f +17 -0
  142. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/81/index_81958cb0f4d5af47c9f4ff027730a354 +335 -0
  143. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/86/RigConfig_8614551e6fbc38bf3f0d0dd1d1150e2e +316 -0
  144. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/86/mappingTable_86f2dfc435ef89190b3f1803ce21e9c8 +2 -0
  145. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/87/clone_8741d656a737c57873a2cb137fc3c2a2 +24 -0
  146. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/87/version_870188990057b0e5b35d6d9bd63f0eb6 +48 -0
  147. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/89/true_89b39ea93e164e1bb913772edd7a31cb +27 -0
  148. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/ProtectableMap_8a9fe29cb67257b4a7d9e2a2bdff47de +91 -0
  149. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/SyncWaterfallHook_8a739b54c97de3d2f978d3f281705b85 +58 -0
  150. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8c/FileWriter_8c34d45ee75dae06e4593e27ec9e6c99 +64 -0
  151. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8c/colors_8c84db0002e69a4cfd1c0798f7f1c18a +200 -0
  152. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8c/index_8ceede9e1085ff23f8671d696ecd7bdb +46 -0
  153. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8e/append_8e1ed839104f64988fca6d92799f11c8 +54 -0
  154. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/91/EnvironmentMap_9164c9ef57fe102a2485664129f6d55c +107 -0
  155. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/93/trap_93535875cbcf5257946ec047bb05b68b +47 -0
  156. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/93/types_938cea5406dd0f56f3b17b463d571060 +29 -0
  157. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/94/clean_94837a6a564c76b60fbb8c8ab6c19dc1 +7 -0
  158. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/94/comparator_94f63ab47adc67ef3b7426d6b8c12210 +137 -0
  159. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/94/group_94a0b10687068ed655e30792779c33ed +76 -0
  160. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/95/utils_955a20e43e3ae489688d1c74a75d5a2b +21 -0
  161. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/96/AsyncSeriesWaterfallHook_9637cc190622117769cc984f4be38d67 +48 -0
  162. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/96/CallbackWritable_9611294010bb59334d77e19aca8ffe90 +32 -0
  163. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/96/copy_96b340b66c576bda43a9adc5ddd9d5e8 +247 -0
  164. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/97/rainbow_976c14df0174a4c5f52ee98e5c558120 +15 -0
  165. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/99/ITerminalProvider_9968ff70dd6950d66e51c15e5bd0e22b +33 -0
  166. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/99/LegacyAdapters_994d50a9d99bca598923c5d0a78658a9 +75 -0
  167. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/99/argument_parser_99c82f41bebafcf12dc985c074661de3 +1162 -0
  168. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/99/constants_993db3d18bc6186d69bd3869e6686734 +18 -0
  169. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9a/index_9afc29e15688c6855cbfd3494af0f8e6 +45 -0
  170. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9b/const_9b7421e189c528d99006e6fe10ec68d0 +22 -0
  171. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9c/argparse_9c97ed9dfc279c7cfbd90530b5e22ca0 +15 -0
  172. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9e/Colors_9ecc4a155788090d261edabf2719d1f8 +185 -0
  173. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9e/MapExtensions_9e5b8afe723b86b4ee5b79a35287a9e0 +41 -0
  174. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9e/symlinktype_9e28e4f4457ee603d982b6fb686f0ed3 +32 -0
  175. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/9f/EnvironmentVariableParser_9f0570850bed25007c419377e7c7340e +52 -0
  176. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a1/exclusive_a143a742fec2463ca3a09bb335d9db42 +55 -0
  177. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a1/implementation_a1723a009de8984b2f21159b10fc6520 +53 -0
  178. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a1/outside_a1760cf8e60702091d1e4d477923e3a6 +81 -0
  179. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a2/Executable_a27667ef327d1d227f03d7a0954c45a8 +429 -0
  180. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a4/file_a48a764ff3863fe34bfc4daa1ddaa746 +50 -0
  181. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a4/sync_a4bf19b74e558d2357595e14f82e75a0 +209 -0
  182. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a5/SyncBailHook_a52e9aaf0f808558574466e14a2f4c20 +52 -0
  183. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a6/hasflag_a64b2cc5845c94a8a4ff212a6480c528 +36 -0
  184. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a7/MockWritable_a745bd72731e0b51f6097d118713aa9d +33 -0
  185. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a7/TerminalTransform_a791046363f27a01a21b28a5fc18e159 +58 -0
  186. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a7/gtr_a7c6cf87054408dfaa332053e93e500f +5 -0
  187. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a7/simplify_a7134847013b1ea2f9417ee16c03824b +48 -0
  188. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a8/CommandLineAction_a8253bed5d1978bb6a92066326e38357 +77 -0
  189. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ac/NormalizeNewlinesTextRewriter_ac3af2a268ce9d6922f1294a58da6c4a +71 -0
  190. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b2/extendStringPrototype_b2f9a6c1379034ad868c5f667877fadc +107 -0
  191. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b4/namespace_b4914dcf7fc2fb8f7f972c13b48f6645 +77 -0
  192. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b5/constant_b5b769be9acb440042a7957665debf5a +44 -0
  193. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b6/JsonFile_b6b4a5937dbb9325053b19bc4e2b0450 +426 -0
  194. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b6/index_b6ba4dd47ab8e3f3e79ca88ec7825b15 +341 -0
  195. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b6/sprintf_b684d33114f728a6c356eb3bbb9156d5 +209 -0
  196. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b7/URLimpl_b7e473a6d12ed1315b560494844887bd +201 -0
  197. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b8/patch_b81e5f0e2e6da3056822bf2f4ed9e7e7 +4 -0
  198. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/b9/ProtectableMapView_b9b1fd8ad3e74d9d06a42d6e7db85a90 +57 -0
  199. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bc/AnsiEscape_bc9207c145be8aaf6afacb84732c22e3 +134 -0
  200. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bc/runner_bc68aa9a21b7738e0d6c25423b185c0f +11 -0
  201. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bc/symlink_bc0175250b3ab636a40c845a9eddb39d +64 -0
  202. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bd/CommandLineParserExitError_bd2152fe7b2d6044694614b16bd42828 +58 -0
  203. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/be/index_be50ea9cf8c03c5389c9952e3199b3f0 +14 -0
  204. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/be/zebra_bee85ff6bfd6c73305c83bae9403032a +6 -0
  205. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/bf/index_bff0217ff50de0880fe9c3dd5a042b61 +26 -0
  206. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c2/Async_c2ea5cc2edc0a460dcf394ef8277e88e +142 -0
  207. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c2/inc_c29ab8939670a598aaecd384c9d5ac0b +19 -0
  208. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c3/PrintUtilities_c35051579d48861512e413c8a14412a7 +85 -0
  209. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c4/index_c41f3b8b1d980e4a50a1f567ef3dfa55 +7 -0
  210. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c8/index_c849c0732b3c043d26dd7f83e42b0e82 +19 -0
  211. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/c8/range_c82cd0a8e5f3ab26a390fc043d2fd6c1 +523 -0
  212. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/cb/index_cb910c0c44d500b1de395d308269b53c +77 -0
  213. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/PosixModeBits_ce06fd83b104c77fb11b25bbcb96cda0 +84 -0
  214. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/index_ce3464019fb882539ee9a6f3e36e615a +88 -0
  215. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/index_ce3464019fb882539ee9a6f3e36e615a.map +1 -0
  216. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/parseoptions_ce35dd2d295c4a7222a6222851e75566 +12 -0
  217. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ce/store_ce7210aaefb043cec971342bfc0cfdd0 +51 -0
  218. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d0/polyfills_d0ad94e2eb550e44630192458362dcb6 +356 -0
  219. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d1/AsyncParallelHook_d18cda50e690d0dbbc99a98a59de44bc +38 -0
  220. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d1/TabCompletionAction_d14027e38fb75b6d8c775fdfb5eeba25 +210 -0
  221. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d1/getRepoState_d169674c56b8de074a7b0bbf4e00fd38 +399 -0
  222. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d2/StdioLineTransform_d2f22c5a6ce4b53f293a12c214c78e9b +115 -0
  223. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d2/buffer_d24e8fbd314b1514e892b0037226d476 +13 -0
  224. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d2/neq_d231567796306add9d6c56edc5883cf8 +4 -0
  225. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d3/StreamCollator_d38868f25e405ca18337dd6c6c43bb7b +149 -0
  226. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d3/ZSchemabrowsermin_d390d636d452d49462407943a5567f28 +3 -0
  227. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d3/gt_d3738f1d28722401000112f671c9314f +4 -0
  228. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d3/jestAdapter_d364e6fc05fddde0141d1adf30928ab8 +118 -0
  229. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d4/count_d4f18f1fd57b57bd934e1aec406fd42b +41 -0
  230. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d4/index_d4ec4e13526fb09fdb434929a9393040 +6 -0
  231. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d6/SplitterTransform_d62b2e66ec6880c4fa2e0799bbe80845 +49 -0
  232. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d7/index_d745e3edab39ecf8b68f842aeda1f436 +10 -0
  233. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d7/index_d79ccb4a675bce07283a087905f1f2c1 +17 -0
  234. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d7/nodemodulespaths_d744d0bfa889ed50d6db4f1079fe6320 +43 -0
  235. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d8/index_d823010cbbbbee48e7338f71e799e46b +28 -0
  236. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/d9/async_d9bc7cae91f957ecf449fffa5417f46b +330 -0
  237. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/dc/america_dc8321ced343699017efa55ce495cae9 +13 -0
  238. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/dc/outputjson_dc9bcfd272ece271d5ba1d88882aabd3 +28 -0
  239. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/dd/added_formatters_dddaa6b90e00843ac1493a1754ad8d35 +88 -0
  240. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/de/rimraf_de5bb2bceea542b599f79b32f00261b6 +315 -0
  241. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/df/debug_dfea87a09ee5f184765dd5d9c5f2907d +10 -0
  242. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e0/index_e0fb84b2cae789df813ab2fd47dab672 +2 -0
  243. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e1/action_e1aaa76264f13ca51849266a55660ed3 +147 -0
  244. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e2/commons_e2ab730ac4f4b46b65b2b8f85c8616c5 +23382 -0
  245. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e3/DiscardStdoutTransform_e3ca398d1799ec51a0da3262837e8907 +94 -0
  246. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e3/PackageJsonLookup_e391de8a3bc029ef14212787d6efef5a +328 -0
  247. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e4/lte_e41aef5564169e2c9a26d71b55ac32cc +4 -0
  248. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e4/minversion_e4899cb3e82f3792e99b5d72895f46d7 +62 -0
  249. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e4/styles_e45b23904077bb02545672de0f04ca03 +78 -0
  250. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/Constants_e5916bdbd55b7c5751c61c22c2d8ac34 +35 -0
  251. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941 +4367 -0
  252. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941.map +1 -0
  253. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/formatter_e5470f40e67b2ff71fa7e81816df9709 +796 -0
  254. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247 +362 -0
  255. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247.map +1 -0
  256. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/parse_e600979fefd4a38a2ee298d2c0620ade +761 -0
  257. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e7/parse_e7d763c8be3f06ca68dae801f67f74f0 +34 -0
  258. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e9/prerelease_e9273d37a4257d1ec90c3290bff01e38 +7 -0
  259. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ea/index_eac4fe91a50305745e819cc74aa7ecef +135 -0
  260. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/eb/SubprocessTerminator_ebf12d3f7deaa7ae1d03a93896142f71 +183 -0
  261. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ed/Constants_edd5c8fac126611f0aac2c21306624ce +8 -0
  262. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ee/CommandLineIntegerListParameter_ee2f3b50b51fed153ef44b020f23a401 +83 -0
  263. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ee/TextRewriterTransform_eea93c8f7ebdbdc06d142929eabdbf1a +94 -0
  264. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f0/sort_f08e51bfef63ae58474299f9e7546731 +4 -0
  265. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f1/false_f1144cdddaa535b00035b0fbe77ead5f +28 -0
  266. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f2/utimes_f2a55040651c41f48b71717467a0818a +80 -0
  267. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f5/index_f581df3f55b3b9bf7204b9154e41c668 +595 -0
  268. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa +73 -0
  269. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa.map +1 -0
  270. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f8/BaseClasses_f86545813589e9e0e828bd06fd6f483b +170 -0
  271. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f8/Helpers_f82226d33bc83e35ab5d60a911a8baa0 +72 -0
  272. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f8/eq_f83b8f41e78fb9dcd93f57ba31fd2fb7 +4 -0
  273. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f9/TerminalWritable_f95360cc0a4458d3f87824bca7c56ec7 +124 -0
  274. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f9/compare_f98f6def50e53b4e306f892abb74cc0e +6 -0
  275. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/fa/rushlib_fa830331d24a41292b5cb91040384188 +745 -0
  276. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/fc/diff_fc9e8ec97b9414c6564bfb456a67b499 +24 -0
  277. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/fc/gte_fce941d3a7388750c169856aaaa6ab09 +4 -0
  278. package/.heft/build-cache/jest-cache/perf-cache-bae913f9b9aa720eb4deeae0a60a4b27-da39a3ee5e6b4b0d3255bfef95601890 +1 -0
  279. package/.rush/temp/operation/_phase_build/state.json +3 -0
  280. package/.rush/temp/operation/_phase_test/all.log +29 -0
  281. package/.rush/temp/operation/_phase_test/state.json +3 -0
  282. package/.rush/temp/package-deps__phase_build.json +17 -0
  283. package/.rush/temp/package-deps__phase_test.json +17 -0
  284. package/.rush/temp/rushstack+rush-http-build-cache-plugin-_phase_build-b4c5586f0288094c9a07eba9c3a86a35d8839a48.log +10 -0
  285. package/.rush/temp/shrinkwrap-deps.json +70 -0
  286. package/README.md +116 -0
  287. package/config/jest.config.json +14 -0
  288. package/config/rig.json +18 -0
  289. package/lib/HttpBuildCacheProvider.d.ts +47 -0
  290. package/lib/HttpBuildCacheProvider.d.ts.map +1 -0
  291. package/lib/HttpBuildCacheProvider.js +274 -0
  292. package/lib/HttpBuildCacheProvider.js.map +1 -0
  293. package/lib/HttpBuildCacheProvider.test.d.ts +2 -0
  294. package/lib/HttpBuildCacheProvider.test.d.ts.map +1 -0
  295. package/lib/HttpBuildCacheProvider.test.js +72 -0
  296. package/lib/HttpBuildCacheProvider.test.js.map +1 -0
  297. package/lib/RushHttpBuildCachePlugin.d.ts +42 -0
  298. package/lib/RushHttpBuildCachePlugin.d.ts.map +1 -0
  299. package/lib/RushHttpBuildCachePlugin.js +35 -0
  300. package/lib/RushHttpBuildCachePlugin.js.map +1 -0
  301. package/lib/index.d.ts +4 -0
  302. package/lib/index.d.ts.map +1 -0
  303. package/lib/index.js +5 -0
  304. package/lib/index.js.map +1 -0
  305. package/lib/schemas/plugin-config.schema.json +52 -0
  306. package/package.json +36 -0
  307. package/rush-logs/rush-http-build-cache-plugin._phase_build.log +5 -0
  308. package/rush-logs/rush-http-build-cache-plugin._phase_test.log +29 -0
  309. package/rush-plugin-manifest.json +11 -0
  310. package/src/HttpBuildCacheProvider.test.ts +58 -0
  311. package/src/HttpBuildCacheProvider.ts +395 -0
  312. package/src/RushHttpBuildCachePlugin.ts +86 -0
  313. package/src/index.ts +4 -0
  314. package/src/schemas/plugin-config.schema.json +52 -0
  315. package/temp/coverage/clover.xml +146 -0
  316. package/temp/coverage/coverage-final.json +4 -0
  317. package/temp/coverage/lcov-report/HttpBuildCacheProvider.ts.html +1270 -0
  318. package/temp/coverage/lcov-report/RushHttpBuildCachePlugin.ts.html +343 -0
  319. package/temp/coverage/lcov-report/base.css +224 -0
  320. package/temp/coverage/lcov-report/block-navigation.js +87 -0
  321. package/temp/coverage/lcov-report/favicon.png +0 -0
  322. package/temp/coverage/lcov-report/index.html +146 -0
  323. package/temp/coverage/lcov-report/index.ts.html +97 -0
  324. package/temp/coverage/lcov-report/prettify.css +1 -0
  325. package/temp/coverage/lcov-report/prettify.js +2 -0
  326. package/temp/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  327. package/temp/coverage/lcov-report/sorter.js +196 -0
  328. package/temp/coverage/lcov.info +284 -0
  329. package/tsconfig.json +6 -0
@@ -0,0 +1,1100 @@
1
+ 05bb03c201f61913dbd8b9feb04fc1fa
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.FileSystem = exports.AlreadyExistsBehavior = void 0;
30
+ const nodeJsPath = __importStar(require("path"));
31
+ const fs = __importStar(require("fs"));
32
+ const fsx = __importStar(require("fs-extra"));
33
+ const Text_1 = require("./Text");
34
+ const PosixModeBits_1 = require("./PosixModeBits");
35
+ const LegacyAdapters_1 = require("./LegacyAdapters");
36
+ /**
37
+ * Specifies the behavior of APIs such as {@link FileSystem.copyFile} or
38
+ * {@link FileSystem.createSymbolicLinkFile} when the output file path already exists.
39
+ *
40
+ * @remarks
41
+ * For {@link FileSystem.copyFile} and related APIs, the "output file path" is
42
+ * {@link IFileSystemCopyFileOptions.destinationPath}.
43
+ *
44
+ * For {@link FileSystem.createSymbolicLinkFile} and related APIs, the "output file path" is
45
+ * {@link IFileSystemCreateLinkOptions.newLinkPath}.
46
+ *
47
+ * @public
48
+ */
49
+ var AlreadyExistsBehavior;
50
+ (function (AlreadyExistsBehavior) {
51
+ /**
52
+ * If the output file path already exists, try to overwrite the existing object.
53
+ *
54
+ * @remarks
55
+ * If overwriting the object would require recursively deleting a folder tree,
56
+ * then the operation will fail. As an example, suppose {@link FileSystem.copyFile}
57
+ * is copying a single file `/a/b/c` to the destination path `/d/e`, and `/d/e` is a
58
+ * nonempty folder. In this situation, an error will be reported; specifying
59
+ * `AlreadyExistsBehavior.Overwrite` does not help. Empty folders can be overwritten
60
+ * depending on the details of the implementation.
61
+ */
62
+ AlreadyExistsBehavior["Overwrite"] = "overwrite";
63
+ /**
64
+ * If the output file path already exists, the operation will fail, and an error
65
+ * will be reported.
66
+ */
67
+ AlreadyExistsBehavior["Error"] = "error";
68
+ /**
69
+ * If the output file path already exists, skip this item, and continue the operation.
70
+ */
71
+ AlreadyExistsBehavior["Ignore"] = "ignore";
72
+ })(AlreadyExistsBehavior = exports.AlreadyExistsBehavior || (exports.AlreadyExistsBehavior = {}));
73
+ const MOVE_DEFAULT_OPTIONS = {
74
+ overwrite: true,
75
+ ensureFolderExists: false
76
+ };
77
+ const READ_FOLDER_DEFAULT_OPTIONS = {
78
+ absolutePaths: false
79
+ };
80
+ const WRITE_FILE_DEFAULT_OPTIONS = {
81
+ ensureFolderExists: false,
82
+ convertLineEndings: undefined,
83
+ encoding: Text_1.Encoding.Utf8
84
+ };
85
+ const APPEND_TO_FILE_DEFAULT_OPTIONS = Object.assign({}, WRITE_FILE_DEFAULT_OPTIONS);
86
+ const READ_FILE_DEFAULT_OPTIONS = {
87
+ encoding: Text_1.Encoding.Utf8,
88
+ convertLineEndings: undefined
89
+ };
90
+ const COPY_FILE_DEFAULT_OPTIONS = {
91
+ alreadyExistsBehavior: AlreadyExistsBehavior.Overwrite
92
+ };
93
+ const COPY_FILES_DEFAULT_OPTIONS = {
94
+ alreadyExistsBehavior: AlreadyExistsBehavior.Overwrite
95
+ };
96
+ const DELETE_FILE_DEFAULT_OPTIONS = {
97
+ throwIfNotExists: false
98
+ };
99
+ /**
100
+ * The FileSystem API provides a complete set of recommended operations for interacting with the file system.
101
+ *
102
+ * @remarks
103
+ * We recommend to use this instead of the native `fs` API, because `fs` is a minimal set of low-level
104
+ * primitives that must be mapped for each supported operating system. The FileSystem API takes a
105
+ * philosophical approach of providing "one obvious way" to do each operation. We also prefer synchronous
106
+ * operations except in cases where there would be a clear performance benefit for using async, since synchronous
107
+ * code is much easier to read and debug. Also, indiscriminate parallelism has been seen to actually worsen
108
+ * performance, versus improving it.
109
+ *
110
+ * Note that in the documentation, we refer to "filesystem objects", this can be a
111
+ * file, folder, symbolic link, hard link, directory junction, etc.
112
+ *
113
+ * @public
114
+ */
115
+ class FileSystem {
116
+ // ===============
117
+ // COMMON OPERATIONS
118
+ // ===============
119
+ /**
120
+ * Returns true if the path exists on disk.
121
+ * Behind the scenes it uses `fs.existsSync()`.
122
+ * @remarks
123
+ * There is a debate about the fact that after `fs.existsSync()` returns true,
124
+ * the file might be deleted before fs.readSync() is called, which would imply that everybody
125
+ * should catch a `readSync()` exception, and nobody should ever use `fs.existsSync()`.
126
+ * We find this to be unpersuasive, since "unexceptional exceptions" really hinder the
127
+ * break-on-exception debugging experience. Also, throwing/catching is generally slow.
128
+ * @param path - The absolute or relative path to the filesystem object.
129
+ */
130
+ static exists(path) {
131
+ return FileSystem._wrapException(() => {
132
+ return fsx.existsSync(path);
133
+ });
134
+ }
135
+ /**
136
+ * An async version of {@link FileSystem.exists}.
137
+ */
138
+ static async existsAsync(path) {
139
+ return await FileSystem._wrapExceptionAsync(() => {
140
+ return new Promise((resolve) => {
141
+ fsx.exists(path, resolve);
142
+ });
143
+ });
144
+ }
145
+ /**
146
+ * Gets the statistics for a particular filesystem object.
147
+ * If the path is a link, this function follows the link and returns statistics about the link target.
148
+ * Behind the scenes it uses `fs.statSync()`.
149
+ * @param path - The absolute or relative path to the filesystem object.
150
+ */
151
+ static getStatistics(path) {
152
+ return FileSystem._wrapException(() => {
153
+ return fsx.statSync(path);
154
+ });
155
+ }
156
+ /**
157
+ * An async version of {@link FileSystem.getStatistics}.
158
+ */
159
+ static async getStatisticsAsync(path) {
160
+ return await FileSystem._wrapExceptionAsync(() => {
161
+ return fsx.stat(path);
162
+ });
163
+ }
164
+ /**
165
+ * Updates the accessed and modified timestamps of the filesystem object referenced by path.
166
+ * Behind the scenes it uses `fs.utimesSync()`.
167
+ * The caller should specify both times in the `times` parameter.
168
+ * @param path - The path of the file that should be modified.
169
+ * @param times - The times that the object should be updated to reflect.
170
+ */
171
+ static updateTimes(path, times) {
172
+ return FileSystem._wrapException(() => {
173
+ fsx.utimesSync(path, times.accessedTime, times.modifiedTime);
174
+ });
175
+ }
176
+ /**
177
+ * An async version of {@link FileSystem.updateTimes}.
178
+ */
179
+ static async updateTimesAsync(path, times) {
180
+ await FileSystem._wrapExceptionAsync(() => {
181
+ // This cast is needed because the fs-extra typings require both parameters
182
+ // to have the same type (number or Date), whereas Node.js does not require that.
183
+ return fsx.utimes(path, times.accessedTime, times.modifiedTime);
184
+ });
185
+ }
186
+ /**
187
+ * Changes the permissions (i.e. file mode bits) for a filesystem object.
188
+ * Behind the scenes it uses `fs.chmodSync()`.
189
+ * @param path - The absolute or relative path to the object that should be updated.
190
+ * @param modeBits - POSIX-style file mode bits specified using the {@link PosixModeBits} enum
191
+ */
192
+ static changePosixModeBits(path, mode) {
193
+ FileSystem._wrapException(() => {
194
+ fs.chmodSync(path, mode);
195
+ });
196
+ }
197
+ /**
198
+ * An async version of {@link FileSystem.changePosixModeBits}.
199
+ */
200
+ static async changePosixModeBitsAsync(path, mode) {
201
+ await FileSystem._wrapExceptionAsync(() => {
202
+ return fsx.chmod(path, mode);
203
+ });
204
+ }
205
+ /**
206
+ * Retrieves the permissions (i.e. file mode bits) for a filesystem object.
207
+ * Behind the scenes it uses `fs.chmodSync()`.
208
+ * @param path - The absolute or relative path to the object that should be updated.
209
+ *
210
+ * @remarks
211
+ * This calls {@link FileSystem.getStatistics} to get the POSIX mode bits.
212
+ * If statistics in addition to the mode bits are needed, it is more efficient
213
+ * to call {@link FileSystem.getStatistics} directly instead.
214
+ */
215
+ static getPosixModeBits(path) {
216
+ return FileSystem._wrapException(() => {
217
+ return FileSystem.getStatistics(path).mode;
218
+ });
219
+ }
220
+ /**
221
+ * An async version of {@link FileSystem.getPosixModeBits}.
222
+ */
223
+ static async getPosixModeBitsAsync(path) {
224
+ return await FileSystem._wrapExceptionAsync(async () => {
225
+ return (await FileSystem.getStatisticsAsync(path)).mode;
226
+ });
227
+ }
228
+ /**
229
+ * Returns a 10-character string representation of a PosixModeBits value similar to what
230
+ * would be displayed by a command such as "ls -l" on a POSIX-like operating system.
231
+ * @remarks
232
+ * For example, `PosixModeBits.AllRead | PosixModeBits.AllWrite` would be formatted as "-rw-rw-rw-".
233
+ * @param modeBits - POSIX-style file mode bits specified using the {@link PosixModeBits} enum
234
+ */
235
+ static formatPosixModeBits(modeBits) {
236
+ let result = '-'; // (later we may add support for additional states such as S_IFDIR or S_ISUID)
237
+ result += modeBits & PosixModeBits_1.PosixModeBits.UserRead ? 'r' : '-';
238
+ result += modeBits & PosixModeBits_1.PosixModeBits.UserWrite ? 'w' : '-';
239
+ result += modeBits & PosixModeBits_1.PosixModeBits.UserExecute ? 'x' : '-';
240
+ result += modeBits & PosixModeBits_1.PosixModeBits.GroupRead ? 'r' : '-';
241
+ result += modeBits & PosixModeBits_1.PosixModeBits.GroupWrite ? 'w' : '-';
242
+ result += modeBits & PosixModeBits_1.PosixModeBits.GroupExecute ? 'x' : '-';
243
+ result += modeBits & PosixModeBits_1.PosixModeBits.OthersRead ? 'r' : '-';
244
+ result += modeBits & PosixModeBits_1.PosixModeBits.OthersWrite ? 'w' : '-';
245
+ result += modeBits & PosixModeBits_1.PosixModeBits.OthersExecute ? 'x' : '-';
246
+ return result;
247
+ }
248
+ /**
249
+ * Moves a file. The folder must exist, unless the `ensureFolderExists` option is provided.
250
+ * Behind the scenes it uses `fs-extra.moveSync()`
251
+ */
252
+ static move(options) {
253
+ FileSystem._wrapException(() => {
254
+ options = Object.assign(Object.assign({}, MOVE_DEFAULT_OPTIONS), options);
255
+ try {
256
+ fsx.moveSync(options.sourcePath, options.destinationPath, { overwrite: options.overwrite });
257
+ }
258
+ catch (error) {
259
+ if (options.ensureFolderExists) {
260
+ if (!FileSystem.isNotExistError(error)) {
261
+ throw error;
262
+ }
263
+ const folderPath = nodeJsPath.dirname(options.destinationPath);
264
+ FileSystem.ensureFolder(folderPath);
265
+ fsx.moveSync(options.sourcePath, options.destinationPath, { overwrite: options.overwrite });
266
+ }
267
+ else {
268
+ throw error;
269
+ }
270
+ }
271
+ });
272
+ }
273
+ /**
274
+ * An async version of {@link FileSystem.move}.
275
+ */
276
+ static async moveAsync(options) {
277
+ await FileSystem._wrapExceptionAsync(async () => {
278
+ options = Object.assign(Object.assign({}, MOVE_DEFAULT_OPTIONS), options);
279
+ try {
280
+ await fsx.move(options.sourcePath, options.destinationPath, { overwrite: options.overwrite });
281
+ }
282
+ catch (error) {
283
+ if (options.ensureFolderExists) {
284
+ if (!FileSystem.isNotExistError(error)) {
285
+ throw error;
286
+ }
287
+ const folderPath = nodeJsPath.dirname(options.destinationPath);
288
+ await FileSystem.ensureFolderAsync(nodeJsPath.dirname(folderPath));
289
+ await fsx.move(options.sourcePath, options.destinationPath, { overwrite: options.overwrite });
290
+ }
291
+ else {
292
+ throw error;
293
+ }
294
+ }
295
+ });
296
+ }
297
+ // ===============
298
+ // FOLDER OPERATIONS
299
+ // ===============
300
+ /**
301
+ * Recursively creates a folder at a given path.
302
+ * Behind the scenes is uses `fs-extra.ensureDirSync()`.
303
+ * @remarks
304
+ * Throws an exception if anything in the folderPath is not a folder.
305
+ * @param folderPath - The absolute or relative path of the folder which should be created.
306
+ */
307
+ static ensureFolder(folderPath) {
308
+ FileSystem._wrapException(() => {
309
+ fsx.ensureDirSync(folderPath);
310
+ });
311
+ }
312
+ /**
313
+ * An async version of {@link FileSystem.ensureFolder}.
314
+ */
315
+ static async ensureFolderAsync(folderPath) {
316
+ await FileSystem._wrapExceptionAsync(() => {
317
+ return fsx.ensureDir(folderPath);
318
+ });
319
+ }
320
+ /**
321
+ * @deprecated
322
+ * Use {@link FileSystem.readFolderItemNames} instead.
323
+ */
324
+ static readFolder(folderPath, options) {
325
+ return FileSystem.readFolderItemNames(folderPath, options);
326
+ }
327
+ /**
328
+ * @deprecated
329
+ * Use {@link FileSystem.readFolderItemNamesAsync} instead.
330
+ */
331
+ static async readFolderAsync(folderPath, options) {
332
+ return await FileSystem.readFolderItemNamesAsync(folderPath, options);
333
+ }
334
+ /**
335
+ * Reads the names of folder entries, not including "." or "..".
336
+ * Behind the scenes it uses `fs.readdirSync()`.
337
+ * @param folderPath - The absolute or relative path to the folder which should be read.
338
+ * @param options - Optional settings that can change the behavior. Type: `IReadFolderOptions`
339
+ */
340
+ static readFolderItemNames(folderPath, options) {
341
+ return FileSystem._wrapException(() => {
342
+ options = Object.assign(Object.assign({}, READ_FOLDER_DEFAULT_OPTIONS), options);
343
+ const fileNames = fsx.readdirSync(folderPath);
344
+ if (options.absolutePaths) {
345
+ return fileNames.map((fileName) => nodeJsPath.resolve(folderPath, fileName));
346
+ }
347
+ else {
348
+ return fileNames;
349
+ }
350
+ });
351
+ }
352
+ /**
353
+ * An async version of {@link FileSystem.readFolderItemNames}.
354
+ */
355
+ static async readFolderItemNamesAsync(folderPath, options) {
356
+ return await FileSystem._wrapExceptionAsync(async () => {
357
+ options = Object.assign(Object.assign({}, READ_FOLDER_DEFAULT_OPTIONS), options);
358
+ const fileNames = await fsx.readdir(folderPath);
359
+ if (options.absolutePaths) {
360
+ return fileNames.map((fileName) => nodeJsPath.resolve(folderPath, fileName));
361
+ }
362
+ else {
363
+ return fileNames;
364
+ }
365
+ });
366
+ }
367
+ /**
368
+ * Reads the contents of the folder, not including "." or "..", returning objects including the
369
+ * entry names and types.
370
+ * Behind the scenes it uses `fs.readdirSync()`.
371
+ * @param folderPath - The absolute or relative path to the folder which should be read.
372
+ * @param options - Optional settings that can change the behavior. Type: `IReadFolderOptions`
373
+ */
374
+ static readFolderItems(folderPath, options) {
375
+ return FileSystem._wrapException(() => {
376
+ options = Object.assign(Object.assign({}, READ_FOLDER_DEFAULT_OPTIONS), options);
377
+ const folderEntries = fsx.readdirSync(folderPath, { withFileTypes: true });
378
+ if (options.absolutePaths) {
379
+ return folderEntries.map((folderEntry) => {
380
+ folderEntry.name = nodeJsPath.resolve(folderPath, folderEntry.name);
381
+ return folderEntry;
382
+ });
383
+ }
384
+ else {
385
+ return folderEntries;
386
+ }
387
+ });
388
+ }
389
+ /**
390
+ * An async version of {@link FileSystem.readFolderItems}.
391
+ */
392
+ static async readFolderItemsAsync(folderPath, options) {
393
+ return await FileSystem._wrapExceptionAsync(async () => {
394
+ options = Object.assign(Object.assign({}, READ_FOLDER_DEFAULT_OPTIONS), options);
395
+ const folderEntries = await LegacyAdapters_1.LegacyAdapters.convertCallbackToPromise(fs.readdir, folderPath, { withFileTypes: true });
396
+ if (options.absolutePaths) {
397
+ return folderEntries.map((folderEntry) => {
398
+ folderEntry.name = nodeJsPath.resolve(folderPath, folderEntry.name);
399
+ return folderEntry;
400
+ });
401
+ }
402
+ else {
403
+ return folderEntries;
404
+ }
405
+ });
406
+ }
407
+ /**
408
+ * Deletes a folder, including all of its contents.
409
+ * Behind the scenes is uses `fs-extra.removeSync()`.
410
+ * @remarks
411
+ * Does not throw if the folderPath does not exist.
412
+ * @param folderPath - The absolute or relative path to the folder which should be deleted.
413
+ */
414
+ static deleteFolder(folderPath) {
415
+ FileSystem._wrapException(() => {
416
+ fsx.removeSync(folderPath);
417
+ });
418
+ }
419
+ /**
420
+ * An async version of {@link FileSystem.deleteFolder}.
421
+ */
422
+ static async deleteFolderAsync(folderPath) {
423
+ await FileSystem._wrapExceptionAsync(() => {
424
+ return fsx.remove(folderPath);
425
+ });
426
+ }
427
+ /**
428
+ * Deletes the content of a folder, but not the folder itself. Also ensures the folder exists.
429
+ * Behind the scenes it uses `fs-extra.emptyDirSync()`.
430
+ * @remarks
431
+ * This is a workaround for a common race condition, where the virus scanner holds a lock on the folder
432
+ * for a brief period after it was deleted, causing EBUSY errors for any code that tries to recreate the folder.
433
+ * @param folderPath - The absolute or relative path to the folder which should have its contents deleted.
434
+ */
435
+ static ensureEmptyFolder(folderPath) {
436
+ FileSystem._wrapException(() => {
437
+ fsx.emptyDirSync(folderPath);
438
+ });
439
+ }
440
+ /**
441
+ * An async version of {@link FileSystem.ensureEmptyFolder}.
442
+ */
443
+ static async ensureEmptyFolderAsync(folderPath) {
444
+ await FileSystem._wrapExceptionAsync(() => {
445
+ return fsx.emptyDir(folderPath);
446
+ });
447
+ }
448
+ // ===============
449
+ // FILE OPERATIONS
450
+ // ===============
451
+ /**
452
+ * Writes a text string to a file on disk, overwriting the file if it already exists.
453
+ * Behind the scenes it uses `fs.writeFileSync()`.
454
+ * @remarks
455
+ * Throws an error if the folder doesn't exist, unless ensureFolder=true.
456
+ * @param filePath - The absolute or relative path of the file.
457
+ * @param contents - The text that should be written to the file.
458
+ * @param options - Optional settings that can change the behavior. Type: `IWriteFileOptions`
459
+ */
460
+ static writeFile(filePath, contents, options) {
461
+ FileSystem._wrapException(() => {
462
+ options = Object.assign(Object.assign({}, WRITE_FILE_DEFAULT_OPTIONS), options);
463
+ if (options.convertLineEndings) {
464
+ contents = Text_1.Text.convertTo(contents.toString(), options.convertLineEndings);
465
+ }
466
+ try {
467
+ fsx.writeFileSync(filePath, contents, { encoding: options.encoding });
468
+ }
469
+ catch (error) {
470
+ if (options.ensureFolderExists) {
471
+ if (!FileSystem.isNotExistError(error)) {
472
+ throw error;
473
+ }
474
+ const folderPath = nodeJsPath.dirname(filePath);
475
+ FileSystem.ensureFolder(folderPath);
476
+ fsx.writeFileSync(filePath, contents, { encoding: options.encoding });
477
+ }
478
+ else {
479
+ throw error;
480
+ }
481
+ }
482
+ });
483
+ }
484
+ /**
485
+ * An async version of {@link FileSystem.writeFile}.
486
+ */
487
+ static async writeFileAsync(filePath, contents, options) {
488
+ await FileSystem._wrapExceptionAsync(async () => {
489
+ options = Object.assign(Object.assign({}, WRITE_FILE_DEFAULT_OPTIONS), options);
490
+ if (options.convertLineEndings) {
491
+ contents = Text_1.Text.convertTo(contents.toString(), options.convertLineEndings);
492
+ }
493
+ try {
494
+ await fsx.writeFile(filePath, contents, { encoding: options.encoding });
495
+ }
496
+ catch (error) {
497
+ if (options.ensureFolderExists) {
498
+ if (!FileSystem.isNotExistError(error)) {
499
+ throw error;
500
+ }
501
+ const folderPath = nodeJsPath.dirname(filePath);
502
+ await FileSystem.ensureFolderAsync(folderPath);
503
+ await fsx.writeFile(filePath, contents, { encoding: options.encoding });
504
+ }
505
+ else {
506
+ throw error;
507
+ }
508
+ }
509
+ });
510
+ }
511
+ /**
512
+ * Writes a text string to a file on disk, appending to the file if it already exists.
513
+ * Behind the scenes it uses `fs.appendFileSync()`.
514
+ * @remarks
515
+ * Throws an error if the folder doesn't exist, unless ensureFolder=true.
516
+ * @param filePath - The absolute or relative path of the file.
517
+ * @param contents - The text that should be written to the file.
518
+ * @param options - Optional settings that can change the behavior. Type: `IWriteFileOptions`
519
+ */
520
+ static appendToFile(filePath, contents, options) {
521
+ FileSystem._wrapException(() => {
522
+ options = Object.assign(Object.assign({}, APPEND_TO_FILE_DEFAULT_OPTIONS), options);
523
+ if (options.convertLineEndings) {
524
+ contents = Text_1.Text.convertTo(contents.toString(), options.convertLineEndings);
525
+ }
526
+ try {
527
+ fsx.appendFileSync(filePath, contents, { encoding: options.encoding });
528
+ }
529
+ catch (error) {
530
+ if (options.ensureFolderExists) {
531
+ if (!FileSystem.isNotExistError(error)) {
532
+ throw error;
533
+ }
534
+ const folderPath = nodeJsPath.dirname(filePath);
535
+ FileSystem.ensureFolder(folderPath);
536
+ fsx.appendFileSync(filePath, contents, { encoding: options.encoding });
537
+ }
538
+ else {
539
+ throw error;
540
+ }
541
+ }
542
+ });
543
+ }
544
+ /**
545
+ * An async version of {@link FileSystem.appendToFile}.
546
+ */
547
+ static async appendToFileAsync(filePath, contents, options) {
548
+ await FileSystem._wrapExceptionAsync(async () => {
549
+ options = Object.assign(Object.assign({}, APPEND_TO_FILE_DEFAULT_OPTIONS), options);
550
+ if (options.convertLineEndings) {
551
+ contents = Text_1.Text.convertTo(contents.toString(), options.convertLineEndings);
552
+ }
553
+ try {
554
+ await fsx.appendFile(filePath, contents, { encoding: options.encoding });
555
+ }
556
+ catch (error) {
557
+ if (options.ensureFolderExists) {
558
+ if (!FileSystem.isNotExistError(error)) {
559
+ throw error;
560
+ }
561
+ const folderPath = nodeJsPath.dirname(filePath);
562
+ await FileSystem.ensureFolderAsync(folderPath);
563
+ await fsx.appendFile(filePath, contents, { encoding: options.encoding });
564
+ }
565
+ else {
566
+ throw error;
567
+ }
568
+ }
569
+ });
570
+ }
571
+ /**
572
+ * Reads the contents of a file into a string.
573
+ * Behind the scenes it uses `fs.readFileSync()`.
574
+ * @param filePath - The relative or absolute path to the file whose contents should be read.
575
+ * @param options - Optional settings that can change the behavior. Type: `IReadFileOptions`
576
+ */
577
+ static readFile(filePath, options) {
578
+ return FileSystem._wrapException(() => {
579
+ options = Object.assign(Object.assign({}, READ_FILE_DEFAULT_OPTIONS), options);
580
+ let contents = FileSystem.readFileToBuffer(filePath).toString(options.encoding);
581
+ if (options.convertLineEndings) {
582
+ contents = Text_1.Text.convertTo(contents, options.convertLineEndings);
583
+ }
584
+ return contents;
585
+ });
586
+ }
587
+ /**
588
+ * An async version of {@link FileSystem.readFile}.
589
+ */
590
+ static async readFileAsync(filePath, options) {
591
+ return await FileSystem._wrapExceptionAsync(async () => {
592
+ options = Object.assign(Object.assign({}, READ_FILE_DEFAULT_OPTIONS), options);
593
+ let contents = (await FileSystem.readFileToBufferAsync(filePath)).toString(options.encoding);
594
+ if (options.convertLineEndings) {
595
+ contents = Text_1.Text.convertTo(contents, options.convertLineEndings);
596
+ }
597
+ return contents;
598
+ });
599
+ }
600
+ /**
601
+ * Reads the contents of a file into a buffer.
602
+ * Behind the scenes is uses `fs.readFileSync()`.
603
+ * @param filePath - The relative or absolute path to the file whose contents should be read.
604
+ */
605
+ static readFileToBuffer(filePath) {
606
+ return FileSystem._wrapException(() => {
607
+ return fsx.readFileSync(filePath);
608
+ });
609
+ }
610
+ /**
611
+ * An async version of {@link FileSystem.readFileToBuffer}.
612
+ */
613
+ static async readFileToBufferAsync(filePath) {
614
+ return await FileSystem._wrapExceptionAsync(() => {
615
+ return fsx.readFile(filePath);
616
+ });
617
+ }
618
+ /**
619
+ * Copies a single file from one location to another.
620
+ * By default, destinationPath is overwritten if it already exists.
621
+ *
622
+ * @remarks
623
+ * The `copyFile()` API cannot be used to copy folders. It copies at most one file.
624
+ * Use {@link FileSystem.copyFiles} if you need to recursively copy a tree of folders.
625
+ *
626
+ * The implementation is based on `copySync()` from the `fs-extra` package.
627
+ */
628
+ static copyFile(options) {
629
+ options = Object.assign(Object.assign({}, COPY_FILE_DEFAULT_OPTIONS), options);
630
+ if (FileSystem.getStatistics(options.sourcePath).isDirectory()) {
631
+ throw new Error('The specified path refers to a folder; this operation expects a file object:\n' + options.sourcePath);
632
+ }
633
+ FileSystem._wrapException(() => {
634
+ fsx.copySync(options.sourcePath, options.destinationPath, {
635
+ errorOnExist: options.alreadyExistsBehavior === AlreadyExistsBehavior.Error,
636
+ overwrite: options.alreadyExistsBehavior === AlreadyExistsBehavior.Overwrite
637
+ });
638
+ });
639
+ }
640
+ /**
641
+ * An async version of {@link FileSystem.copyFile}.
642
+ */
643
+ static async copyFileAsync(options) {
644
+ options = Object.assign(Object.assign({}, COPY_FILE_DEFAULT_OPTIONS), options);
645
+ if ((await FileSystem.getStatisticsAsync(options.sourcePath)).isDirectory()) {
646
+ throw new Error('The specified path refers to a folder; this operation expects a file object:\n' + options.sourcePath);
647
+ }
648
+ await FileSystem._wrapExceptionAsync(() => {
649
+ return fsx.copy(options.sourcePath, options.destinationPath, {
650
+ errorOnExist: options.alreadyExistsBehavior === AlreadyExistsBehavior.Error,
651
+ overwrite: options.alreadyExistsBehavior === AlreadyExistsBehavior.Overwrite
652
+ });
653
+ });
654
+ }
655
+ /**
656
+ * Copies a file or folder from one location to another, recursively copying any folder contents.
657
+ * By default, destinationPath is overwritten if it already exists.
658
+ *
659
+ * @remarks
660
+ * If you only intend to copy a single file, it is recommended to use {@link FileSystem.copyFile}
661
+ * instead to more clearly communicate the intended operation.
662
+ *
663
+ * The implementation is based on `copySync()` from the `fs-extra` package.
664
+ */
665
+ static copyFiles(options) {
666
+ options = Object.assign(Object.assign({}, COPY_FILES_DEFAULT_OPTIONS), options);
667
+ FileSystem._wrapException(() => {
668
+ fsx.copySync(options.sourcePath, options.destinationPath, {
669
+ dereference: !!options.dereferenceSymlinks,
670
+ errorOnExist: options.alreadyExistsBehavior === AlreadyExistsBehavior.Error,
671
+ overwrite: options.alreadyExistsBehavior === AlreadyExistsBehavior.Overwrite,
672
+ preserveTimestamps: !!options.preserveTimestamps,
673
+ filter: options.filter
674
+ });
675
+ });
676
+ }
677
+ /**
678
+ * An async version of {@link FileSystem.copyFiles}.
679
+ */
680
+ static async copyFilesAsync(options) {
681
+ options = Object.assign(Object.assign({}, COPY_FILES_DEFAULT_OPTIONS), options);
682
+ await FileSystem._wrapExceptionAsync(async () => {
683
+ await fsx.copy(options.sourcePath, options.destinationPath, {
684
+ dereference: !!options.dereferenceSymlinks,
685
+ errorOnExist: options.alreadyExistsBehavior === AlreadyExistsBehavior.Error,
686
+ overwrite: options.alreadyExistsBehavior === AlreadyExistsBehavior.Overwrite,
687
+ preserveTimestamps: !!options.preserveTimestamps,
688
+ filter: options.filter
689
+ });
690
+ });
691
+ }
692
+ /**
693
+ * Deletes a file. Can optionally throw if the file doesn't exist.
694
+ * Behind the scenes it uses `fs.unlinkSync()`.
695
+ * @param filePath - The absolute or relative path to the file that should be deleted.
696
+ * @param options - Optional settings that can change the behavior. Type: `IDeleteFileOptions`
697
+ */
698
+ static deleteFile(filePath, options) {
699
+ FileSystem._wrapException(() => {
700
+ options = Object.assign(Object.assign({}, DELETE_FILE_DEFAULT_OPTIONS), options);
701
+ try {
702
+ fsx.unlinkSync(filePath);
703
+ }
704
+ catch (error) {
705
+ if (options.throwIfNotExists || !FileSystem.isNotExistError(error)) {
706
+ throw error;
707
+ }
708
+ }
709
+ });
710
+ }
711
+ /**
712
+ * An async version of {@link FileSystem.deleteFile}.
713
+ */
714
+ static async deleteFileAsync(filePath, options) {
715
+ await FileSystem._wrapExceptionAsync(async () => {
716
+ options = Object.assign(Object.assign({}, DELETE_FILE_DEFAULT_OPTIONS), options);
717
+ try {
718
+ await fsx.unlink(filePath);
719
+ }
720
+ catch (error) {
721
+ if (options.throwIfNotExists || !FileSystem.isNotExistError(error)) {
722
+ throw error;
723
+ }
724
+ }
725
+ });
726
+ }
727
+ // ===============
728
+ // LINK OPERATIONS
729
+ // ===============
730
+ /**
731
+ * Gets the statistics of a filesystem object. Does NOT follow the link to its target.
732
+ * Behind the scenes it uses `fs.lstatSync()`.
733
+ * @param path - The absolute or relative path to the filesystem object.
734
+ */
735
+ static getLinkStatistics(path) {
736
+ return FileSystem._wrapException(() => {
737
+ return fsx.lstatSync(path);
738
+ });
739
+ }
740
+ /**
741
+ * An async version of {@link FileSystem.getLinkStatistics}.
742
+ */
743
+ static async getLinkStatisticsAsync(path) {
744
+ return await FileSystem._wrapExceptionAsync(() => {
745
+ return fsx.lstat(path);
746
+ });
747
+ }
748
+ /**
749
+ * If `path` refers to a symbolic link, this returns the path of the link target, which may be
750
+ * an absolute or relative path.
751
+ *
752
+ * @remarks
753
+ * If `path` refers to a filesystem object that is not a symbolic link, then an `ErrnoException` is thrown
754
+ * with code 'UNKNOWN'. If `path` does not exist, then an `ErrnoException` is thrown with code `ENOENT`.
755
+ *
756
+ * @param path - The absolute or relative path to the symbolic link.
757
+ * @returns the path of the link target
758
+ */
759
+ static readLink(path) {
760
+ return FileSystem._wrapException(() => {
761
+ return fsx.readlinkSync(path);
762
+ });
763
+ }
764
+ /**
765
+ * An async version of {@link FileSystem.readLink}.
766
+ */
767
+ static async readLinkAsync(path) {
768
+ return await FileSystem._wrapExceptionAsync(() => {
769
+ return fsx.readlink(path);
770
+ });
771
+ }
772
+ /**
773
+ * Creates an NTFS "directory junction" on Windows operating systems; for other operating systems, it
774
+ * creates a regular symbolic link. The link target must be a folder, not a file.
775
+ * Behind the scenes it uses `fs.symlinkSync()`.
776
+ *
777
+ * @remarks
778
+ * For security reasons, Windows operating systems by default require administrator elevation to create
779
+ * symbolic links. As a result, on Windows it's generally recommended for Node.js tools to use hard links
780
+ * (for files) or NTFS directory junctions (for folders), since regular users are allowed to create them.
781
+ * Hard links and junctions are less vulnerable to symlink attacks because they cannot reference a network share,
782
+ * and their target must exist at the time of link creation. Non-Windows operating systems generally don't
783
+ * restrict symlink creation, and as such are more vulnerable to symlink attacks. Note that Windows can be
784
+ * configured to permit regular users to create symlinks, for example by enabling Windows 10 "developer mode."
785
+ *
786
+ * A directory junction requires the link source and target to both be located on local disk volumes;
787
+ * if not, use a symbolic link instead.
788
+ */
789
+ static createSymbolicLinkJunction(options) {
790
+ FileSystem._wrapException(() => {
791
+ return FileSystem._handleLink(() => {
792
+ // For directories, we use a Windows "junction". On POSIX operating systems, this produces a regular symlink.
793
+ return fsx.symlinkSync(options.linkTargetPath, options.newLinkPath, 'junction');
794
+ }, options);
795
+ });
796
+ }
797
+ /**
798
+ * An async version of {@link FileSystem.createSymbolicLinkJunction}.
799
+ */
800
+ static async createSymbolicLinkJunctionAsync(options) {
801
+ await FileSystem._wrapExceptionAsync(() => {
802
+ return FileSystem._handleLinkAsync(() => {
803
+ // For directories, we use a Windows "junction". On POSIX operating systems, this produces a regular symlink.
804
+ return fsx.symlink(options.linkTargetPath, options.newLinkPath, 'junction');
805
+ }, options);
806
+ });
807
+ }
808
+ /**
809
+ * Creates a symbolic link to a file. On Windows operating systems, this may require administrator elevation.
810
+ * Behind the scenes it uses `fs.symlinkSync()`.
811
+ *
812
+ * @remarks
813
+ * To avoid administrator elevation on Windows, use {@link FileSystem.createHardLink} instead.
814
+ *
815
+ * On Windows operating systems, the NTFS file system distinguishes file symlinks versus directory symlinks:
816
+ * If the target is not the correct type, the symlink will be created successfully, but will fail to resolve.
817
+ * Other operating systems do not make this distinction, in which case {@link FileSystem.createSymbolicLinkFile}
818
+ * and {@link FileSystem.createSymbolicLinkFolder} can be used interchangeably, but doing so will make your
819
+ * tool incompatible with Windows.
820
+ */
821
+ static createSymbolicLinkFile(options) {
822
+ FileSystem._wrapException(() => {
823
+ return FileSystem._handleLink(() => {
824
+ return fsx.symlinkSync(options.linkTargetPath, options.newLinkPath, 'file');
825
+ }, options);
826
+ });
827
+ }
828
+ /**
829
+ * An async version of {@link FileSystem.createSymbolicLinkFile}.
830
+ */
831
+ static async createSymbolicLinkFileAsync(options) {
832
+ await FileSystem._wrapExceptionAsync(() => {
833
+ return FileSystem._handleLinkAsync(() => {
834
+ return fsx.symlink(options.linkTargetPath, options.newLinkPath, 'file');
835
+ }, options);
836
+ });
837
+ }
838
+ /**
839
+ * Creates a symbolic link to a folder. On Windows operating systems, this may require administrator elevation.
840
+ * Behind the scenes it uses `fs.symlinkSync()`.
841
+ *
842
+ * @remarks
843
+ * To avoid administrator elevation on Windows, use {@link FileSystem.createSymbolicLinkJunction} instead.
844
+ *
845
+ * On Windows operating systems, the NTFS file system distinguishes file symlinks versus directory symlinks:
846
+ * If the target is not the correct type, the symlink will be created successfully, but will fail to resolve.
847
+ * Other operating systems do not make this distinction, in which case {@link FileSystem.createSymbolicLinkFile}
848
+ * and {@link FileSystem.createSymbolicLinkFolder} can be used interchangeably, but doing so will make your
849
+ * tool incompatible with Windows.
850
+ */
851
+ static createSymbolicLinkFolder(options) {
852
+ FileSystem._wrapException(() => {
853
+ return FileSystem._handleLink(() => {
854
+ return fsx.symlinkSync(options.linkTargetPath, options.newLinkPath, 'dir');
855
+ }, options);
856
+ });
857
+ }
858
+ /**
859
+ * An async version of {@link FileSystem.createSymbolicLinkFolder}.
860
+ */
861
+ static async createSymbolicLinkFolderAsync(options) {
862
+ await FileSystem._wrapExceptionAsync(() => {
863
+ return FileSystem._handleLinkAsync(() => {
864
+ return fsx.symlink(options.linkTargetPath, options.newLinkPath, 'dir');
865
+ }, options);
866
+ });
867
+ }
868
+ /**
869
+ * Creates a hard link. The link target must be a file, not a folder.
870
+ * Behind the scenes it uses `fs.linkSync()`.
871
+ *
872
+ * @remarks
873
+ * For security reasons, Windows operating systems by default require administrator elevation to create
874
+ * symbolic links. As a result, on Windows it's generally recommended for Node.js tools to use hard links
875
+ * (for files) or NTFS directory junctions (for folders), since regular users are allowed to create them.
876
+ * Hard links and junctions are less vulnerable to symlink attacks because they cannot reference a network share,
877
+ * and their target must exist at the time of link creation. Non-Windows operating systems generally don't
878
+ * restrict symlink creation, and as such are more vulnerable to symlink attacks. Note that Windows can be
879
+ * configured to permit regular users to create symlinks, for example by enabling Windows 10 "developer mode."
880
+ *
881
+ * A hard link requires the link source and target to both be located on same disk volume;
882
+ * if not, use a symbolic link instead.
883
+ */
884
+ static createHardLink(options) {
885
+ FileSystem._wrapException(() => {
886
+ return FileSystem._handleLink(() => {
887
+ return fsx.linkSync(options.linkTargetPath, options.newLinkPath);
888
+ }, Object.assign(Object.assign({}, options), { linkTargetMustExist: true }));
889
+ });
890
+ }
891
+ /**
892
+ * An async version of {@link FileSystem.createHardLink}.
893
+ */
894
+ static async createHardLinkAsync(options) {
895
+ await FileSystem._wrapExceptionAsync(() => {
896
+ return FileSystem._handleLinkAsync(() => {
897
+ return fsx.link(options.linkTargetPath, options.newLinkPath);
898
+ }, Object.assign(Object.assign({}, options), { linkTargetMustExist: true }));
899
+ });
900
+ }
901
+ /**
902
+ * Follows a link to its destination and returns the absolute path to the final target of the link.
903
+ * Behind the scenes it uses `fs.realpathSync()`.
904
+ * @param linkPath - The path to the link.
905
+ */
906
+ static getRealPath(linkPath) {
907
+ return FileSystem._wrapException(() => {
908
+ return fsx.realpathSync(linkPath);
909
+ });
910
+ }
911
+ /**
912
+ * An async version of {@link FileSystem.getRealPath}.
913
+ */
914
+ static async getRealPathAsync(linkPath) {
915
+ return await FileSystem._wrapExceptionAsync(() => {
916
+ return fsx.realpath(linkPath);
917
+ });
918
+ }
919
+ // ===============
920
+ // UTILITY FUNCTIONS
921
+ // ===============
922
+ /**
923
+ * Returns true if the error object indicates the file or folder already exists (`EEXIST`).
924
+ */
925
+ static isExistError(error) {
926
+ return FileSystem.isErrnoException(error) && error.code === 'EEXIST';
927
+ }
928
+ /**
929
+ * Returns true if the error object indicates the file or folder does not exist (`ENOENT` or `ENOTDIR`)
930
+ */
931
+ static isNotExistError(error) {
932
+ return FileSystem.isFileDoesNotExistError(error) || FileSystem.isFolderDoesNotExistError(error);
933
+ }
934
+ /**
935
+ * Returns true if the error object indicates the file does not exist (`ENOENT`).
936
+ */
937
+ static isFileDoesNotExistError(error) {
938
+ return FileSystem.isErrnoException(error) && error.code === 'ENOENT';
939
+ }
940
+ /**
941
+ * Returns true if the error object indicates the folder does not exist (`ENOTDIR`).
942
+ */
943
+ static isFolderDoesNotExistError(error) {
944
+ return FileSystem.isErrnoException(error) && error.code === 'ENOTDIR';
945
+ }
946
+ /**
947
+ * Returns true if the error object indicates the target is a directory (`EISDIR`).
948
+ */
949
+ static isDirectoryError(error) {
950
+ return FileSystem.isErrnoException(error) && error.code === 'EISDIR';
951
+ }
952
+ /**
953
+ * Returns true if the error object indicates the target is not a directory (`ENOTDIR`).
954
+ */
955
+ static isNotDirectoryError(error) {
956
+ return FileSystem.isErrnoException(error) && error.code === 'ENOTDIR';
957
+ }
958
+ /**
959
+ * Returns true if the error object indicates that the `unlink` system call failed
960
+ * due to a permissions issue (`EPERM`).
961
+ */
962
+ static isUnlinkNotPermittedError(error) {
963
+ return FileSystem.isErrnoException(error) && error.code === 'EPERM' && error.syscall === 'unlink';
964
+ }
965
+ /**
966
+ * Detects if the provided error object is a `NodeJS.ErrnoException`
967
+ */
968
+ static isErrnoException(error) {
969
+ const typedError = error;
970
+ return (typeof typedError.code === 'string' &&
971
+ typeof typedError.errno === 'number' &&
972
+ typeof typedError.path === 'string' &&
973
+ typeof typedError.syscall === 'string');
974
+ }
975
+ static _handleLink(linkFn, options) {
976
+ try {
977
+ linkFn();
978
+ }
979
+ catch (error) {
980
+ if (FileSystem.isExistError(error)) {
981
+ // Link exists, handle it
982
+ switch (options.alreadyExistsBehavior) {
983
+ case AlreadyExistsBehavior.Ignore:
984
+ break;
985
+ case AlreadyExistsBehavior.Overwrite:
986
+ // fsx.linkSync does not allow overwriting so we must manually delete. If it's
987
+ // a folder, it will throw an error.
988
+ this.deleteFile(options.newLinkPath);
989
+ linkFn();
990
+ break;
991
+ case AlreadyExistsBehavior.Error:
992
+ default:
993
+ throw error;
994
+ }
995
+ }
996
+ else {
997
+ // When attempting to create a link in a directory that does not exist, an ENOENT
998
+ // or ENOTDIR error is thrown, so we should ensure the directory exists before
999
+ // retrying. There are also cases where the target file must exist, so validate in
1000
+ // those cases to avoid confusing the missing directory with the missing target file.
1001
+ if (FileSystem.isNotExistError(error) &&
1002
+ (!options.linkTargetMustExist || FileSystem.exists(options.linkTargetPath))) {
1003
+ this.ensureFolder(nodeJsPath.dirname(options.newLinkPath));
1004
+ linkFn();
1005
+ }
1006
+ else {
1007
+ throw error;
1008
+ }
1009
+ }
1010
+ }
1011
+ }
1012
+ static async _handleLinkAsync(linkFn, options) {
1013
+ try {
1014
+ await linkFn();
1015
+ }
1016
+ catch (error) {
1017
+ if (FileSystem.isExistError(error)) {
1018
+ // Link exists, handle it
1019
+ switch (options.alreadyExistsBehavior) {
1020
+ case AlreadyExistsBehavior.Ignore:
1021
+ break;
1022
+ case AlreadyExistsBehavior.Overwrite:
1023
+ // fsx.linkSync does not allow overwriting so we must manually delete. If it's
1024
+ // a folder, it will throw an error.
1025
+ await this.deleteFileAsync(options.newLinkPath);
1026
+ await linkFn();
1027
+ break;
1028
+ case AlreadyExistsBehavior.Error:
1029
+ default:
1030
+ throw error;
1031
+ }
1032
+ }
1033
+ else {
1034
+ // When attempting to create a link in a directory that does not exist, an ENOENT
1035
+ // or ENOTDIR error is thrown, so we should ensure the directory exists before
1036
+ // retrying. There are also cases where the target file must exist, so validate in
1037
+ // those cases to avoid confusing the missing directory with the missing target file.
1038
+ if (FileSystem.isNotExistError(error) &&
1039
+ (!options.linkTargetMustExist || (await FileSystem.existsAsync(options.linkTargetPath)))) {
1040
+ await this.ensureFolderAsync(nodeJsPath.dirname(options.newLinkPath));
1041
+ await linkFn();
1042
+ }
1043
+ else {
1044
+ throw error;
1045
+ }
1046
+ }
1047
+ }
1048
+ }
1049
+ static _wrapException(fn) {
1050
+ try {
1051
+ return fn();
1052
+ }
1053
+ catch (error) {
1054
+ FileSystem._updateErrorMessage(error);
1055
+ throw error;
1056
+ }
1057
+ }
1058
+ static async _wrapExceptionAsync(fn) {
1059
+ try {
1060
+ return await fn();
1061
+ }
1062
+ catch (error) {
1063
+ FileSystem._updateErrorMessage(error);
1064
+ throw error;
1065
+ }
1066
+ }
1067
+ static _updateErrorMessage(error) {
1068
+ if (FileSystem.isErrnoException(error)) {
1069
+ if (FileSystem.isFileDoesNotExistError(error)) {
1070
+ // eslint-disable-line @typescript-eslint/no-use-before-define
1071
+ error.message = `File does not exist: ${error.path}\n${error.message}`;
1072
+ }
1073
+ else if (FileSystem.isFolderDoesNotExistError(error)) {
1074
+ // eslint-disable-line @typescript-eslint/no-use-before-define
1075
+ error.message = `Folder does not exist: ${error.path}\n${error.message}`;
1076
+ }
1077
+ else if (FileSystem.isExistError(error)) {
1078
+ // Oddly, the typing does not include the `dest` property even though the documentation
1079
+ // indicates it is there: https://nodejs.org/docs/latest-v10.x/api/errors.html#errors_error_dest
1080
+ const extendedError = error;
1081
+ // eslint-disable-line @typescript-eslint/no-use-before-define
1082
+ error.message = `File or folder already exists: ${extendedError.dest}\n${error.message}`;
1083
+ }
1084
+ else if (FileSystem.isUnlinkNotPermittedError(error)) {
1085
+ // eslint-disable-line @typescript-eslint/no-use-before-define
1086
+ error.message = `File or folder could not be deleted: ${error.path}\n${error.message}`;
1087
+ }
1088
+ else if (FileSystem.isDirectoryError(error)) {
1089
+ // eslint-disable-line @typescript-eslint/no-use-before-define
1090
+ error.message = `Target is a folder, not a file: ${error.path}\n${error.message}`;
1091
+ }
1092
+ else if (FileSystem.isNotDirectoryError(error)) {
1093
+ // eslint-disable-line @typescript-eslint/no-use-before-define
1094
+ error.message = `Target is not a folder: ${error.path}\n${error.message}`;
1095
+ }
1096
+ }
1097
+ }
1098
+ }
1099
+ exports.FileSystem = FileSystem;
1100
+ //# sourceMappingURL=FileSystem.js.map