pnpm 11.22.0 → 11.24.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 (441) hide show
  1. package/CHANGELOG.md +234 -0
  2. package/README.md +12 -0
  3. package/dist/pnpm.mjs +9230 -7674
  4. package/dist/worker.js +40 -8
  5. package/package.json +1 -1
  6. package/artifacts/exe/dist/node-gyp-bin/node-gyp +0 -6
  7. package/artifacts/exe/dist/node-gyp-bin/node-gyp.cmd +0 -5
  8. package/artifacts/exe/dist/node_modules/.bin/node-gyp +0 -50
  9. package/artifacts/exe/dist/node_modules/.bin/node-which +0 -50
  10. package/artifacts/exe/dist/node_modules/.bin/nopt +0 -50
  11. package/artifacts/exe/dist/node_modules/.bin/semver +0 -50
  12. package/artifacts/exe/dist/node_modules/.package-map.json +0 -1
  13. package/artifacts/exe/dist/node_modules/@isaacs/fs-minipass/LICENSE +0 -15
  14. package/artifacts/exe/dist/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +0 -430
  15. package/artifacts/exe/dist/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +0 -3
  16. package/artifacts/exe/dist/node_modules/@isaacs/fs-minipass/dist/esm/index.js +0 -420
  17. package/artifacts/exe/dist/node_modules/@isaacs/fs-minipass/dist/esm/package.json +0 -3
  18. package/artifacts/exe/dist/node_modules/@isaacs/fs-minipass/package.json +0 -72
  19. package/artifacts/exe/dist/node_modules/abbrev/LICENSE +0 -46
  20. package/artifacts/exe/dist/node_modules/abbrev/lib/index.js +0 -53
  21. package/artifacts/exe/dist/node_modules/abbrev/package.json +0 -41
  22. package/artifacts/exe/dist/node_modules/chownr/dist/commonjs/index.js +0 -93
  23. package/artifacts/exe/dist/node_modules/chownr/dist/commonjs/package.json +0 -3
  24. package/artifacts/exe/dist/node_modules/chownr/dist/esm/index.js +0 -85
  25. package/artifacts/exe/dist/node_modules/chownr/dist/esm/package.json +0 -3
  26. package/artifacts/exe/dist/node_modules/chownr/package.json +0 -69
  27. package/artifacts/exe/dist/node_modules/env-paths/index.js +0 -74
  28. package/artifacts/exe/dist/node_modules/env-paths/license +0 -9
  29. package/artifacts/exe/dist/node_modules/env-paths/package.json +0 -45
  30. package/artifacts/exe/dist/node_modules/exponential-backoff/LICENSE +0 -202
  31. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/backoff.js +0 -124
  32. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/delay/always/always.delay.js +0 -25
  33. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/delay/delay.base.js +0 -45
  34. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/delay/delay.factory.js +0 -17
  35. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/delay/delay.interface.js +0 -3
  36. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js +0 -82
  37. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/jitter/full/full.jitter.js +0 -8
  38. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/jitter/jitter.factory.js +0 -15
  39. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/jitter/no/no.jitter.js +0 -7
  40. package/artifacts/exe/dist/node_modules/exponential-backoff/dist/options.js +0 -31
  41. package/artifacts/exe/dist/node_modules/exponential-backoff/package.json +0 -62
  42. package/artifacts/exe/dist/node_modules/fdir/LICENSE +0 -7
  43. package/artifacts/exe/dist/node_modules/fdir/dist/index.cjs +0 -588
  44. package/artifacts/exe/dist/node_modules/fdir/dist/index.d.cts +0 -155
  45. package/artifacts/exe/dist/node_modules/fdir/dist/index.d.mts +0 -155
  46. package/artifacts/exe/dist/node_modules/fdir/dist/index.mjs +0 -570
  47. package/artifacts/exe/dist/node_modules/fdir/package.json +0 -103
  48. package/artifacts/exe/dist/node_modules/graceful-fs/LICENSE +0 -15
  49. package/artifacts/exe/dist/node_modules/graceful-fs/clone.js +0 -23
  50. package/artifacts/exe/dist/node_modules/graceful-fs/graceful-fs.js +0 -448
  51. package/artifacts/exe/dist/node_modules/graceful-fs/legacy-streams.js +0 -118
  52. package/artifacts/exe/dist/node_modules/graceful-fs/package.json +0 -53
  53. package/artifacts/exe/dist/node_modules/graceful-fs/polyfills.js +0 -355
  54. package/artifacts/exe/dist/node_modules/isexe/dist/commonjs/index.js +0 -56
  55. package/artifacts/exe/dist/node_modules/isexe/dist/commonjs/index.min.js +0 -2
  56. package/artifacts/exe/dist/node_modules/isexe/dist/commonjs/options.js +0 -3
  57. package/artifacts/exe/dist/node_modules/isexe/dist/commonjs/package.json +0 -3
  58. package/artifacts/exe/dist/node_modules/isexe/dist/commonjs/posix.js +0 -67
  59. package/artifacts/exe/dist/node_modules/isexe/dist/commonjs/win32.js +0 -63
  60. package/artifacts/exe/dist/node_modules/isexe/dist/esm/index.js +0 -16
  61. package/artifacts/exe/dist/node_modules/isexe/dist/esm/index.min.js +0 -2
  62. package/artifacts/exe/dist/node_modules/isexe/dist/esm/options.js +0 -2
  63. package/artifacts/exe/dist/node_modules/isexe/dist/esm/package.json +0 -3
  64. package/artifacts/exe/dist/node_modules/isexe/dist/esm/posix.js +0 -62
  65. package/artifacts/exe/dist/node_modules/isexe/dist/esm/win32.js +0 -58
  66. package/artifacts/exe/dist/node_modules/isexe/package.json +0 -78
  67. package/artifacts/exe/dist/node_modules/minipass/dist/commonjs/index.js +0 -1038
  68. package/artifacts/exe/dist/node_modules/minipass/dist/commonjs/package.json +0 -3
  69. package/artifacts/exe/dist/node_modules/minipass/dist/esm/index.js +0 -1020
  70. package/artifacts/exe/dist/node_modules/minipass/dist/esm/package.json +0 -3
  71. package/artifacts/exe/dist/node_modules/minipass/package.json +0 -77
  72. package/artifacts/exe/dist/node_modules/minizlib/LICENSE +0 -26
  73. package/artifacts/exe/dist/node_modules/minizlib/dist/commonjs/constants.js +0 -123
  74. package/artifacts/exe/dist/node_modules/minizlib/dist/commonjs/index.js +0 -416
  75. package/artifacts/exe/dist/node_modules/minizlib/dist/commonjs/package.json +0 -3
  76. package/artifacts/exe/dist/node_modules/minizlib/dist/esm/constants.js +0 -117
  77. package/artifacts/exe/dist/node_modules/minizlib/dist/esm/index.js +0 -363
  78. package/artifacts/exe/dist/node_modules/minizlib/dist/esm/package.json +0 -3
  79. package/artifacts/exe/dist/node_modules/minizlib/package.json +0 -80
  80. package/artifacts/exe/dist/node_modules/node-gyp/.release-please-manifest.json +0 -3
  81. package/artifacts/exe/dist/node_modules/node-gyp/LICENSE +0 -24
  82. package/artifacts/exe/dist/node_modules/node-gyp/addon.gypi +0 -204
  83. package/artifacts/exe/dist/node_modules/node-gyp/bin/node-gyp.js +0 -145
  84. package/artifacts/exe/dist/node_modules/node-gyp/eslint.config.js +0 -3
  85. package/artifacts/exe/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +0 -3
  86. package/artifacts/exe/dist/node_modules/node-gyp/gyp/LICENSE +0 -28
  87. package/artifacts/exe/dist/node_modules/node-gyp/gyp/data/ninja/build.ninja +0 -4
  88. package/artifacts/exe/dist/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +0 -12
  89. package/artifacts/exe/dist/node_modules/node-gyp/gyp/gyp +0 -8
  90. package/artifacts/exe/dist/node_modules/node-gyp/gyp/gyp.bat +0 -5
  91. package/artifacts/exe/dist/node_modules/node-gyp/gyp/gyp_main.py +0 -45
  92. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -365
  93. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
  94. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1283
  95. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1545
  96. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
  97. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -152
  98. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -270
  99. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -607
  100. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -706
  101. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -725
  102. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -186
  103. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -170
  104. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -113
  105. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
  106. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  107. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -805
  108. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1169
  109. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1316
  110. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -128
  111. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -104
  112. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -461
  113. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -88
  114. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -55
  115. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2755
  116. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3970
  117. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
  118. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2957
  119. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -77
  120. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1389
  121. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -26
  122. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3097
  123. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -99
  124. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -765
  125. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1255
  126. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
  127. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
  128. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -371
  129. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1936
  130. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +0 -54
  131. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -301
  132. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3180
  133. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -64
  134. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE +0 -3
  135. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE +0 -177
  136. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD +0 -23
  137. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/__init__.py +0 -15
  138. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py +0 -107
  139. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py +0 -252
  140. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py +0 -83
  141. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/_parser.py +0 -359
  142. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/_structures.py +0 -61
  143. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py +0 -192
  144. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/markers.py +0 -251
  145. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +0 -807
  146. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/py.typed +0 -0
  147. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/requirements.py +0 -90
  148. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py +0 -1030
  149. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +0 -541
  150. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/utils.py +0 -172
  151. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pylib/packaging/version.py +0 -563
  152. package/artifacts/exe/dist/node_modules/node-gyp/gyp/pyproject.toml +0 -116
  153. package/artifacts/exe/dist/node_modules/node-gyp/gyp/release-please-config.json +0 -11
  154. package/artifacts/exe/dist/node_modules/node-gyp/gyp/test_gyp.py +0 -260
  155. package/artifacts/exe/dist/node_modules/node-gyp/lib/Find-VisualStudio.cs +0 -250
  156. package/artifacts/exe/dist/node_modules/node-gyp/lib/build.js +0 -230
  157. package/artifacts/exe/dist/node_modules/node-gyp/lib/clean.js +0 -15
  158. package/artifacts/exe/dist/node_modules/node-gyp/lib/configure.js +0 -328
  159. package/artifacts/exe/dist/node_modules/node-gyp/lib/create-config-gypi.js +0 -153
  160. package/artifacts/exe/dist/node_modules/node-gyp/lib/download.js +0 -86
  161. package/artifacts/exe/dist/node_modules/node-gyp/lib/find-node-directory.js +0 -63
  162. package/artifacts/exe/dist/node_modules/node-gyp/lib/find-python.js +0 -304
  163. package/artifacts/exe/dist/node_modules/node-gyp/lib/find-visualstudio.js +0 -606
  164. package/artifacts/exe/dist/node_modules/node-gyp/lib/install.js +0 -411
  165. package/artifacts/exe/dist/node_modules/node-gyp/lib/list.js +0 -26
  166. package/artifacts/exe/dist/node_modules/node-gyp/lib/log.js +0 -168
  167. package/artifacts/exe/dist/node_modules/node-gyp/lib/node-gyp.js +0 -199
  168. package/artifacts/exe/dist/node_modules/node-gyp/lib/process-release.js +0 -144
  169. package/artifacts/exe/dist/node_modules/node-gyp/lib/rebuild.js +0 -12
  170. package/artifacts/exe/dist/node_modules/node-gyp/lib/remove.js +0 -43
  171. package/artifacts/exe/dist/node_modules/node-gyp/lib/util.js +0 -81
  172. package/artifacts/exe/dist/node_modules/node-gyp/macOS_Catalina_acid_test.sh +0 -21
  173. package/artifacts/exe/dist/node_modules/node-gyp/package.json +0 -52
  174. package/artifacts/exe/dist/node_modules/node-gyp/release-please-config.json +0 -40
  175. package/artifacts/exe/dist/node_modules/node-gyp/src/win_delay_load_hook.cc +0 -41
  176. package/artifacts/exe/dist/node_modules/nopt/LICENSE +0 -15
  177. package/artifacts/exe/dist/node_modules/nopt/bin/nopt.js +0 -29
  178. package/artifacts/exe/dist/node_modules/nopt/lib/debug.js +0 -5
  179. package/artifacts/exe/dist/node_modules/nopt/lib/nopt-lib.js +0 -514
  180. package/artifacts/exe/dist/node_modules/nopt/lib/nopt.js +0 -34
  181. package/artifacts/exe/dist/node_modules/nopt/lib/type-defs.js +0 -91
  182. package/artifacts/exe/dist/node_modules/nopt/package.json +0 -52
  183. package/artifacts/exe/dist/node_modules/picomatch/LICENSE +0 -21
  184. package/artifacts/exe/dist/node_modules/picomatch/index.js +0 -17
  185. package/artifacts/exe/dist/node_modules/picomatch/lib/constants.js +0 -184
  186. package/artifacts/exe/dist/node_modules/picomatch/lib/parse.js +0 -1416
  187. package/artifacts/exe/dist/node_modules/picomatch/lib/picomatch.js +0 -361
  188. package/artifacts/exe/dist/node_modules/picomatch/lib/scan.js +0 -391
  189. package/artifacts/exe/dist/node_modules/picomatch/lib/utils.js +0 -72
  190. package/artifacts/exe/dist/node_modules/picomatch/package.json +0 -83
  191. package/artifacts/exe/dist/node_modules/picomatch/posix.js +0 -3
  192. package/artifacts/exe/dist/node_modules/proc-log/LICENSE +0 -15
  193. package/artifacts/exe/dist/node_modules/proc-log/lib/index.js +0 -158
  194. package/artifacts/exe/dist/node_modules/proc-log/package.json +0 -46
  195. package/artifacts/exe/dist/node_modules/semver/LICENSE +0 -15
  196. package/artifacts/exe/dist/node_modules/semver/bin/semver.js +0 -195
  197. package/artifacts/exe/dist/node_modules/semver/classes/comparator.js +0 -143
  198. package/artifacts/exe/dist/node_modules/semver/classes/index.js +0 -7
  199. package/artifacts/exe/dist/node_modules/semver/classes/range.js +0 -577
  200. package/artifacts/exe/dist/node_modules/semver/classes/semver.js +0 -350
  201. package/artifacts/exe/dist/node_modules/semver/functions/clean.js +0 -8
  202. package/artifacts/exe/dist/node_modules/semver/functions/cmp.js +0 -54
  203. package/artifacts/exe/dist/node_modules/semver/functions/coerce.js +0 -62
  204. package/artifacts/exe/dist/node_modules/semver/functions/compare-build.js +0 -9
  205. package/artifacts/exe/dist/node_modules/semver/functions/compare-loose.js +0 -5
  206. package/artifacts/exe/dist/node_modules/semver/functions/compare.js +0 -7
  207. package/artifacts/exe/dist/node_modules/semver/functions/diff.js +0 -60
  208. package/artifacts/exe/dist/node_modules/semver/functions/eq.js +0 -5
  209. package/artifacts/exe/dist/node_modules/semver/functions/gt.js +0 -5
  210. package/artifacts/exe/dist/node_modules/semver/functions/gte.js +0 -5
  211. package/artifacts/exe/dist/node_modules/semver/functions/inc.js +0 -21
  212. package/artifacts/exe/dist/node_modules/semver/functions/lt.js +0 -5
  213. package/artifacts/exe/dist/node_modules/semver/functions/lte.js +0 -5
  214. package/artifacts/exe/dist/node_modules/semver/functions/major.js +0 -5
  215. package/artifacts/exe/dist/node_modules/semver/functions/minor.js +0 -5
  216. package/artifacts/exe/dist/node_modules/semver/functions/neq.js +0 -5
  217. package/artifacts/exe/dist/node_modules/semver/functions/parse.js +0 -18
  218. package/artifacts/exe/dist/node_modules/semver/functions/patch.js +0 -5
  219. package/artifacts/exe/dist/node_modules/semver/functions/prerelease.js +0 -8
  220. package/artifacts/exe/dist/node_modules/semver/functions/rcompare.js +0 -5
  221. package/artifacts/exe/dist/node_modules/semver/functions/rsort.js +0 -5
  222. package/artifacts/exe/dist/node_modules/semver/functions/satisfies.js +0 -12
  223. package/artifacts/exe/dist/node_modules/semver/functions/sort.js +0 -5
  224. package/artifacts/exe/dist/node_modules/semver/functions/truncate.js +0 -48
  225. package/artifacts/exe/dist/node_modules/semver/functions/valid.js +0 -8
  226. package/artifacts/exe/dist/node_modules/semver/index.js +0 -93
  227. package/artifacts/exe/dist/node_modules/semver/internal/constants.js +0 -37
  228. package/artifacts/exe/dist/node_modules/semver/internal/debug.js +0 -11
  229. package/artifacts/exe/dist/node_modules/semver/internal/identifiers.js +0 -29
  230. package/artifacts/exe/dist/node_modules/semver/internal/lrucache.js +0 -42
  231. package/artifacts/exe/dist/node_modules/semver/internal/parse-options.js +0 -17
  232. package/artifacts/exe/dist/node_modules/semver/internal/re.js +0 -223
  233. package/artifacts/exe/dist/node_modules/semver/package.json +0 -78
  234. package/artifacts/exe/dist/node_modules/semver/preload.js +0 -4
  235. package/artifacts/exe/dist/node_modules/semver/range.bnf +0 -17
  236. package/artifacts/exe/dist/node_modules/semver/ranges/gtr.js +0 -6
  237. package/artifacts/exe/dist/node_modules/semver/ranges/intersects.js +0 -9
  238. package/artifacts/exe/dist/node_modules/semver/ranges/ltr.js +0 -6
  239. package/artifacts/exe/dist/node_modules/semver/ranges/max-satisfying.js +0 -27
  240. package/artifacts/exe/dist/node_modules/semver/ranges/min-satisfying.js +0 -26
  241. package/artifacts/exe/dist/node_modules/semver/ranges/min-version.js +0 -63
  242. package/artifacts/exe/dist/node_modules/semver/ranges/outside.js +0 -82
  243. package/artifacts/exe/dist/node_modules/semver/ranges/simplify.js +0 -49
  244. package/artifacts/exe/dist/node_modules/semver/ranges/subset.js +0 -249
  245. package/artifacts/exe/dist/node_modules/semver/ranges/to-comparators.js +0 -10
  246. package/artifacts/exe/dist/node_modules/semver/ranges/valid.js +0 -13
  247. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/create.js +0 -82
  248. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/cwd-error.js +0 -18
  249. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/extract.js +0 -88
  250. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/get-write-flag.js +0 -32
  251. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/header.js +0 -348
  252. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/index.js +0 -64
  253. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/index.min.js +0 -4
  254. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/large-numbers.js +0 -99
  255. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/list.js +0 -153
  256. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/make-command.js +0 -52
  257. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/mkdir.js +0 -187
  258. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/mode-fix.js +0 -29
  259. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/normalize-unicode.js +0 -38
  260. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/normalize-windows-path.js +0 -12
  261. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/options.js +0 -66
  262. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/pack.js +0 -544
  263. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/package.json +0 -3
  264. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/parse.js +0 -655
  265. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/path-reservations.js +0 -170
  266. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/pax.js +0 -182
  267. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/process-umask.js +0 -7
  268. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/read-entry.js +0 -136
  269. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/replace.js +0 -227
  270. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/strip-absolute-path.js +0 -29
  271. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +0 -18
  272. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/symlink-error.js +0 -19
  273. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/types.js +0 -70
  274. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/unpack.js +0 -932
  275. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/update.js +0 -33
  276. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/warn-method.js +0 -31
  277. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/winchars.js +0 -14
  278. package/artifacts/exe/dist/node_modules/tar/dist/commonjs/write-entry.js +0 -698
  279. package/artifacts/exe/dist/node_modules/tar/dist/esm/create.js +0 -76
  280. package/artifacts/exe/dist/node_modules/tar/dist/esm/cwd-error.js +0 -14
  281. package/artifacts/exe/dist/node_modules/tar/dist/esm/extract.js +0 -49
  282. package/artifacts/exe/dist/node_modules/tar/dist/esm/get-write-flag.js +0 -26
  283. package/artifacts/exe/dist/node_modules/tar/dist/esm/header.js +0 -311
  284. package/artifacts/exe/dist/node_modules/tar/dist/esm/index.js +0 -20
  285. package/artifacts/exe/dist/node_modules/tar/dist/esm/index.min.js +0 -4
  286. package/artifacts/exe/dist/node_modules/tar/dist/esm/large-numbers.js +0 -94
  287. package/artifacts/exe/dist/node_modules/tar/dist/esm/list.js +0 -113
  288. package/artifacts/exe/dist/node_modules/tar/dist/esm/make-command.js +0 -48
  289. package/artifacts/exe/dist/node_modules/tar/dist/esm/mkdir.js +0 -179
  290. package/artifacts/exe/dist/node_modules/tar/dist/esm/mode-fix.js +0 -25
  291. package/artifacts/exe/dist/node_modules/tar/dist/esm/normalize-unicode.js +0 -34
  292. package/artifacts/exe/dist/node_modules/tar/dist/esm/normalize-windows-path.js +0 -9
  293. package/artifacts/exe/dist/node_modules/tar/dist/esm/options.js +0 -54
  294. package/artifacts/exe/dist/node_modules/tar/dist/esm/pack.js +0 -502
  295. package/artifacts/exe/dist/node_modules/tar/dist/esm/package.json +0 -3
  296. package/artifacts/exe/dist/node_modules/tar/dist/esm/parse.js +0 -651
  297. package/artifacts/exe/dist/node_modules/tar/dist/esm/path-reservations.js +0 -166
  298. package/artifacts/exe/dist/node_modules/tar/dist/esm/pax.js +0 -178
  299. package/artifacts/exe/dist/node_modules/tar/dist/esm/process-umask.js +0 -3
  300. package/artifacts/exe/dist/node_modules/tar/dist/esm/read-entry.js +0 -132
  301. package/artifacts/exe/dist/node_modules/tar/dist/esm/replace.js +0 -221
  302. package/artifacts/exe/dist/node_modules/tar/dist/esm/strip-absolute-path.js +0 -25
  303. package/artifacts/exe/dist/node_modules/tar/dist/esm/strip-trailing-slashes.js +0 -14
  304. package/artifacts/exe/dist/node_modules/tar/dist/esm/symlink-error.js +0 -15
  305. package/artifacts/exe/dist/node_modules/tar/dist/esm/types.js +0 -65
  306. package/artifacts/exe/dist/node_modules/tar/dist/esm/unpack.js +0 -891
  307. package/artifacts/exe/dist/node_modules/tar/dist/esm/update.js +0 -30
  308. package/artifacts/exe/dist/node_modules/tar/dist/esm/warn-method.js +0 -27
  309. package/artifacts/exe/dist/node_modules/tar/dist/esm/winchars.js +0 -9
  310. package/artifacts/exe/dist/node_modules/tar/dist/esm/write-entry.js +0 -656
  311. package/artifacts/exe/dist/node_modules/tar/package.json +0 -298
  312. package/artifacts/exe/dist/node_modules/tinyglobby/LICENSE +0 -21
  313. package/artifacts/exe/dist/node_modules/tinyglobby/dist/index.cjs +0 -335
  314. package/artifacts/exe/dist/node_modules/tinyglobby/dist/index.d.cts +0 -148
  315. package/artifacts/exe/dist/node_modules/tinyglobby/dist/index.d.mts +0 -148
  316. package/artifacts/exe/dist/node_modules/tinyglobby/dist/index.mjs +0 -307
  317. package/artifacts/exe/dist/node_modules/tinyglobby/package.json +0 -70
  318. package/artifacts/exe/dist/node_modules/undici/LICENSE +0 -21
  319. package/artifacts/exe/dist/node_modules/undici/index-fetch.js +0 -35
  320. package/artifacts/exe/dist/node_modules/undici/index.js +0 -169
  321. package/artifacts/exe/dist/node_modules/undici/lib/api/abort-signal.js +0 -57
  322. package/artifacts/exe/dist/node_modules/undici/lib/api/api-connect.js +0 -108
  323. package/artifacts/exe/dist/node_modules/undici/lib/api/api-pipeline.js +0 -251
  324. package/artifacts/exe/dist/node_modules/undici/lib/api/api-request.js +0 -214
  325. package/artifacts/exe/dist/node_modules/undici/lib/api/api-stream.js +0 -220
  326. package/artifacts/exe/dist/node_modules/undici/lib/api/api-upgrade.js +0 -108
  327. package/artifacts/exe/dist/node_modules/undici/lib/api/index.js +0 -7
  328. package/artifacts/exe/dist/node_modules/undici/lib/api/readable.js +0 -385
  329. package/artifacts/exe/dist/node_modules/undici/lib/api/util.js +0 -93
  330. package/artifacts/exe/dist/node_modules/undici/lib/core/connect.js +0 -240
  331. package/artifacts/exe/dist/node_modules/undici/lib/core/constants.js +0 -118
  332. package/artifacts/exe/dist/node_modules/undici/lib/core/diagnostics.js +0 -202
  333. package/artifacts/exe/dist/node_modules/undici/lib/core/errors.js +0 -425
  334. package/artifacts/exe/dist/node_modules/undici/lib/core/request.js +0 -416
  335. package/artifacts/exe/dist/node_modules/undici/lib/core/symbols.js +0 -67
  336. package/artifacts/exe/dist/node_modules/undici/lib/core/tree.js +0 -152
  337. package/artifacts/exe/dist/node_modules/undici/lib/core/util.js +0 -719
  338. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/agent.js +0 -129
  339. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -209
  340. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/client-h1.js +0 -1496
  341. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/client-h2.js +0 -744
  342. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/client.js +0 -623
  343. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -199
  344. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/dispatcher.js +0 -65
  345. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -160
  346. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -117
  347. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/pool-base.js +0 -194
  348. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/pool-stats.js +0 -34
  349. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/pool.js +0 -107
  350. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -274
  351. package/artifacts/exe/dist/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
  352. package/artifacts/exe/dist/node_modules/undici/lib/global.js +0 -32
  353. package/artifacts/exe/dist/node_modules/undici/lib/handler/decorator-handler.js +0 -44
  354. package/artifacts/exe/dist/node_modules/undici/lib/handler/redirect-handler.js +0 -232
  355. package/artifacts/exe/dist/node_modules/undici/lib/handler/retry-handler.js +0 -408
  356. package/artifacts/exe/dist/node_modules/undici/lib/interceptor/dns.js +0 -375
  357. package/artifacts/exe/dist/node_modules/undici/lib/interceptor/dump.js +0 -123
  358. package/artifacts/exe/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +0 -21
  359. package/artifacts/exe/dist/node_modules/undici/lib/interceptor/redirect.js +0 -24
  360. package/artifacts/exe/dist/node_modules/undici/lib/interceptor/response-error.js +0 -86
  361. package/artifacts/exe/dist/node_modules/undici/lib/interceptor/retry.js +0 -19
  362. package/artifacts/exe/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  363. package/artifacts/exe/dist/node_modules/undici/lib/llhttp/constants.js +0 -278
  364. package/artifacts/exe/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -5
  365. package/artifacts/exe/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -5
  366. package/artifacts/exe/dist/node_modules/undici/lib/llhttp/utils.js +0 -15
  367. package/artifacts/exe/dist/node_modules/undici/lib/mock/mock-agent.js +0 -160
  368. package/artifacts/exe/dist/node_modules/undici/lib/mock/mock-client.js +0 -59
  369. package/artifacts/exe/dist/node_modules/undici/lib/mock/mock-errors.js +0 -28
  370. package/artifacts/exe/dist/node_modules/undici/lib/mock/mock-interceptor.js +0 -207
  371. package/artifacts/exe/dist/node_modules/undici/lib/mock/mock-pool.js +0 -59
  372. package/artifacts/exe/dist/node_modules/undici/lib/mock/mock-symbols.js +0 -23
  373. package/artifacts/exe/dist/node_modules/undici/lib/mock/mock-utils.js +0 -367
  374. package/artifacts/exe/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
  375. package/artifacts/exe/dist/node_modules/undici/lib/mock/pluralizer.js +0 -29
  376. package/artifacts/exe/dist/node_modules/undici/lib/util/timers.js +0 -423
  377. package/artifacts/exe/dist/node_modules/undici/lib/web/cache/cache.js +0 -859
  378. package/artifacts/exe/dist/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
  379. package/artifacts/exe/dist/node_modules/undici/lib/web/cache/symbols.js +0 -5
  380. package/artifacts/exe/dist/node_modules/undici/lib/web/cache/util.js +0 -45
  381. package/artifacts/exe/dist/node_modules/undici/lib/web/cookies/constants.js +0 -12
  382. package/artifacts/exe/dist/node_modules/undici/lib/web/cookies/index.js +0 -184
  383. package/artifacts/exe/dist/node_modules/undici/lib/web/cookies/parse.js +0 -310
  384. package/artifacts/exe/dist/node_modules/undici/lib/web/cookies/util.js +0 -352
  385. package/artifacts/exe/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -398
  386. package/artifacts/exe/dist/node_modules/undici/lib/web/eventsource/eventsource.js +0 -480
  387. package/artifacts/exe/dist/node_modules/undici/lib/web/eventsource/util.js +0 -37
  388. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/LICENSE +0 -21
  389. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/body.js +0 -529
  390. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/constants.js +0 -124
  391. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/data-url.js +0 -744
  392. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +0 -46
  393. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/file.js +0 -126
  394. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -474
  395. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/formdata.js +0 -252
  396. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/global.js +0 -40
  397. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/headers.js +0 -687
  398. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/index.js +0 -2272
  399. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/request.js +0 -1037
  400. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/response.js +0 -610
  401. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/symbols.js +0 -9
  402. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/util.js +0 -1632
  403. package/artifacts/exe/dist/node_modules/undici/lib/web/fetch/webidl.js +0 -695
  404. package/artifacts/exe/dist/node_modules/undici/lib/web/fileapi/encoding.js +0 -290
  405. package/artifacts/exe/dist/node_modules/undici/lib/web/fileapi/filereader.js +0 -344
  406. package/artifacts/exe/dist/node_modules/undici/lib/web/fileapi/progressevent.js +0 -78
  407. package/artifacts/exe/dist/node_modules/undici/lib/web/fileapi/symbols.js +0 -10
  408. package/artifacts/exe/dist/node_modules/undici/lib/web/fileapi/util.js +0 -391
  409. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/connection.js +0 -371
  410. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/constants.js +0 -66
  411. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/events.js +0 -329
  412. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/frame.js +0 -96
  413. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -100
  414. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/receiver.js +0 -513
  415. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/sender.js +0 -104
  416. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/symbols.js +0 -12
  417. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/util.js +0 -322
  418. package/artifacts/exe/dist/node_modules/undici/lib/web/websocket/websocket.js +0 -595
  419. package/artifacts/exe/dist/node_modules/undici/package.json +0 -160
  420. package/artifacts/exe/dist/node_modules/undici/scripts/strip-comments.js +0 -8
  421. package/artifacts/exe/dist/node_modules/v8-compile-cache/LICENSE +0 -21
  422. package/artifacts/exe/dist/node_modules/v8-compile-cache/package.json +0 -34
  423. package/artifacts/exe/dist/node_modules/v8-compile-cache/v8-compile-cache.js +0 -373
  424. package/artifacts/exe/dist/node_modules/which/LICENSE +0 -15
  425. package/artifacts/exe/dist/node_modules/which/bin/which.js +0 -52
  426. package/artifacts/exe/dist/node_modules/which/lib/index.js +0 -111
  427. package/artifacts/exe/dist/node_modules/which/package.json +0 -52
  428. package/artifacts/exe/dist/node_modules/yallist/dist/commonjs/index.js +0 -384
  429. package/artifacts/exe/dist/node_modules/yallist/dist/commonjs/package.json +0 -3
  430. package/artifacts/exe/dist/node_modules/yallist/dist/esm/index.js +0 -379
  431. package/artifacts/exe/dist/node_modules/yallist/dist/esm/package.json +0 -3
  432. package/artifacts/exe/dist/node_modules/yallist/package.json +0 -68
  433. package/artifacts/exe/dist/pnpm.mjs +0 -323057
  434. package/artifacts/exe/dist/pnpmrc +0 -2
  435. package/artifacts/exe/dist/templates/completion.bash +0 -31
  436. package/artifacts/exe/dist/templates/completion.fish +0 -22
  437. package/artifacts/exe/dist/templates/completion.ps1 +0 -193
  438. package/artifacts/exe/dist/templates/completion.zsh +0 -27
  439. package/artifacts/exe/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  440. package/artifacts/exe/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  441. package/artifacts/exe/dist/worker.js +0 -12117
@@ -1,1416 +0,0 @@
1
- 'use strict';
2
-
3
- const constants = require('./constants');
4
- const utils = require('./utils');
5
-
6
- /**
7
- * Constants
8
- */
9
-
10
- const {
11
- MAX_LENGTH,
12
- POSIX_REGEX_SOURCE,
13
- REGEX_NON_SPECIAL_CHARS,
14
- REGEX_SPECIAL_CHARS_BACKREF,
15
- REPLACEMENTS
16
- } = constants;
17
-
18
- /**
19
- * Helpers
20
- */
21
-
22
- const expandRange = (args, options) => {
23
- if (typeof options.expandRange === 'function') {
24
- return options.expandRange(...args, options);
25
- }
26
-
27
- args.sort();
28
- const value = `[${args.join('-')}]`;
29
-
30
- try {
31
- /* eslint-disable-next-line no-new */
32
- new RegExp(value);
33
- } catch (ex) {
34
- return args.map(v => utils.escapeRegex(v)).join('..');
35
- }
36
-
37
- return value;
38
- };
39
-
40
- /**
41
- * Create the message for a syntax error
42
- */
43
-
44
- const syntaxError = (type, char) => {
45
- return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
46
- };
47
-
48
- const splitTopLevel = input => {
49
- const parts = [];
50
- let bracket = 0;
51
- let paren = 0;
52
- let quote = 0;
53
- let value = '';
54
- let escaped = false;
55
-
56
- for (const ch of input) {
57
- if (escaped === true) {
58
- value += ch;
59
- escaped = false;
60
- continue;
61
- }
62
-
63
- if (ch === '\\') {
64
- value += ch;
65
- escaped = true;
66
- continue;
67
- }
68
-
69
- if (ch === '"') {
70
- quote = quote === 1 ? 0 : 1;
71
- value += ch;
72
- continue;
73
- }
74
-
75
- if (quote === 0) {
76
- if (ch === '[') {
77
- bracket++;
78
- } else if (ch === ']' && bracket > 0) {
79
- bracket--;
80
- } else if (bracket === 0) {
81
- if (ch === '(') {
82
- paren++;
83
- } else if (ch === ')' && paren > 0) {
84
- paren--;
85
- } else if (ch === '|' && paren === 0) {
86
- parts.push(value);
87
- value = '';
88
- continue;
89
- }
90
- }
91
- }
92
-
93
- value += ch;
94
- }
95
-
96
- parts.push(value);
97
- return parts;
98
- };
99
-
100
- const isPlainBranch = branch => {
101
- let escaped = false;
102
-
103
- for (const ch of branch) {
104
- if (escaped === true) {
105
- escaped = false;
106
- continue;
107
- }
108
-
109
- if (ch === '\\') {
110
- escaped = true;
111
- continue;
112
- }
113
-
114
- if (/[?*+@!()[\]{}]/.test(ch)) {
115
- return false;
116
- }
117
- }
118
-
119
- return true;
120
- };
121
-
122
- const normalizeSimpleBranch = branch => {
123
- let value = branch.trim();
124
- let changed = true;
125
-
126
- while (changed === true) {
127
- changed = false;
128
-
129
- if (/^@\([^\\()[\]{}|]+\)$/.test(value)) {
130
- value = value.slice(2, -1);
131
- changed = true;
132
- }
133
- }
134
-
135
- if (!isPlainBranch(value)) {
136
- return;
137
- }
138
-
139
- return value.replace(/\\(.)/g, '$1');
140
- };
141
-
142
- const hasRepeatedCharPrefixOverlap = branches => {
143
- const values = branches.map(normalizeSimpleBranch).filter(Boolean);
144
-
145
- for (let i = 0; i < values.length; i++) {
146
- for (let j = i + 1; j < values.length; j++) {
147
- const a = values[i];
148
- const b = values[j];
149
- const char = a[0];
150
-
151
- if (!char || a !== char.repeat(a.length) || b !== char.repeat(b.length)) {
152
- continue;
153
- }
154
-
155
- if (a === b || a.startsWith(b) || b.startsWith(a)) {
156
- return true;
157
- }
158
- }
159
- }
160
-
161
- return false;
162
- };
163
-
164
- const parseRepeatedExtglob = (pattern, requireEnd = true) => {
165
- if ((pattern[0] !== '+' && pattern[0] !== '*') || pattern[1] !== '(') {
166
- return;
167
- }
168
-
169
- let bracket = 0;
170
- let paren = 0;
171
- let quote = 0;
172
- let escaped = false;
173
-
174
- for (let i = 1; i < pattern.length; i++) {
175
- const ch = pattern[i];
176
-
177
- if (escaped === true) {
178
- escaped = false;
179
- continue;
180
- }
181
-
182
- if (ch === '\\') {
183
- escaped = true;
184
- continue;
185
- }
186
-
187
- if (ch === '"') {
188
- quote = quote === 1 ? 0 : 1;
189
- continue;
190
- }
191
-
192
- if (quote === 1) {
193
- continue;
194
- }
195
-
196
- if (ch === '[') {
197
- bracket++;
198
- continue;
199
- }
200
-
201
- if (ch === ']' && bracket > 0) {
202
- bracket--;
203
- continue;
204
- }
205
-
206
- if (bracket > 0) {
207
- continue;
208
- }
209
-
210
- if (ch === '(') {
211
- paren++;
212
- continue;
213
- }
214
-
215
- if (ch === ')') {
216
- paren--;
217
-
218
- if (paren === 0) {
219
- if (requireEnd === true && i !== pattern.length - 1) {
220
- return;
221
- }
222
-
223
- return {
224
- type: pattern[0],
225
- body: pattern.slice(2, i),
226
- end: i
227
- };
228
- }
229
- }
230
- }
231
- };
232
-
233
- const buildCharClassStar = chars => {
234
- const source = chars.length === 1
235
- ? utils.escapeRegex(chars[0])
236
- : `[${chars.map(ch => utils.escapeRegex(ch)).join('')}]`;
237
-
238
- return `${source}*`;
239
- };
240
-
241
- const getStarExtglobSequenceChars = pattern => {
242
- let index = 0;
243
- const chars = [];
244
-
245
- while (index < pattern.length) {
246
- const match = parseRepeatedExtglob(pattern.slice(index), false);
247
-
248
- if (!match || match.type !== '*') {
249
- return;
250
- }
251
-
252
- const branches = splitTopLevel(match.body).map(branch => branch.trim());
253
- if (branches.length !== 1) {
254
- return;
255
- }
256
-
257
- const branch = normalizeSimpleBranch(branches[0]);
258
- if (!branch || branch.length !== 1) {
259
- return;
260
- }
261
-
262
- chars.push(branch);
263
- index += match.end + 1;
264
- }
265
-
266
- if (chars.length < 1) {
267
- return;
268
- }
269
-
270
- return chars;
271
- };
272
-
273
- const repeatedExtglobRecursion = pattern => {
274
- let depth = 0;
275
- let value = pattern.trim();
276
- let match = parseRepeatedExtglob(value);
277
-
278
- while (match) {
279
- depth++;
280
- value = match.body.trim();
281
- match = parseRepeatedExtglob(value);
282
- }
283
-
284
- return depth;
285
- };
286
-
287
- const analyzeRepeatedExtglob = (body, options) => {
288
- if (options.maxExtglobRecursion === false) {
289
- return { risky: false };
290
- }
291
-
292
- const max =
293
- typeof options.maxExtglobRecursion === 'number'
294
- ? options.maxExtglobRecursion
295
- : constants.DEFAULT_MAX_EXTGLOB_RECURSION;
296
-
297
- const branches = splitTopLevel(body).map(branch => branch.trim());
298
-
299
- if (branches.length > 1) {
300
- if (
301
- branches.some(branch => branch === '') ||
302
- branches.some(branch => /^[*?]+$/.test(branch)) ||
303
- hasRepeatedCharPrefixOverlap(branches)
304
- ) {
305
- return { risky: true };
306
- }
307
- }
308
-
309
- // A repeated extglob is "risky" (prone to catastrophic backtracking) when a
310
- // branch is itself a `*(...)` sequence, since that nests an unbounded quantifier
311
- // inside the outer `+(...)`/`*(...)`. When *every* branch reduces to single
312
- // characters we can emit one flat, ReDoS-safe character class that preserves the
313
- // meaning of ALL branches (e.g. `+(*(a)|*(b))` -> `[ab]*`), rather than dropping
314
- // every branch but the first.
315
- const safeChars = [];
316
- let sawStarSequence = false;
317
- let combinable = true;
318
-
319
- for (const branch of branches) {
320
- const chars = getStarExtglobSequenceChars(branch);
321
- if (chars) {
322
- sawStarSequence = true;
323
- safeChars.push(...chars);
324
- continue;
325
- }
326
-
327
- const literal = normalizeSimpleBranch(branch);
328
- if (literal && literal.length === 1) {
329
- safeChars.push(literal);
330
- continue;
331
- }
332
-
333
- combinable = false;
334
-
335
- if (repeatedExtglobRecursion(branch) > max) {
336
- return { risky: true };
337
- }
338
- }
339
-
340
- if (sawStarSequence) {
341
- return combinable
342
- ? { risky: true, safeOutput: buildCharClassStar([...new Set(safeChars)]) }
343
- : { risky: true };
344
- }
345
-
346
- return { risky: false };
347
- };
348
-
349
- /**
350
- * Parse the given input string.
351
- * @param {String} input
352
- * @param {Object} options
353
- * @return {Object}
354
- */
355
-
356
- const parse = (input, options) => {
357
- if (typeof input !== 'string') {
358
- throw new TypeError('Expected a string');
359
- }
360
-
361
- input = REPLACEMENTS[input] || input;
362
-
363
- const opts = { ...options };
364
- const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
365
-
366
- let len = input.length;
367
- if (len > max) {
368
- throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
369
- }
370
-
371
- const bos = { type: 'bos', value: '', output: opts.prepend || '' };
372
- const tokens = [bos];
373
-
374
- const capture = opts.capture ? '' : '?:';
375
-
376
- // create constants based on platform, for windows or posix
377
- const PLATFORM_CHARS = constants.globChars(opts.windows);
378
- const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);
379
-
380
- const {
381
- DOT_LITERAL,
382
- PLUS_LITERAL,
383
- SLASH_LITERAL,
384
- ONE_CHAR,
385
- DOTS_SLASH,
386
- NO_DOT,
387
- NO_DOT_SLASH,
388
- NO_DOTS_SLASH,
389
- QMARK,
390
- QMARK_NO_DOT,
391
- STAR,
392
- START_ANCHOR
393
- } = PLATFORM_CHARS;
394
-
395
- const globstar = opts => {
396
- return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
397
- };
398
-
399
- const nodot = opts.dot ? '' : NO_DOT;
400
- const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;
401
- let star = opts.bash === true ? globstar(opts) : STAR;
402
-
403
- if (opts.capture) {
404
- star = `(${star})`;
405
- }
406
-
407
- // minimatch options support
408
- if (typeof opts.noext === 'boolean') {
409
- opts.noextglob = opts.noext;
410
- }
411
-
412
- const state = {
413
- input,
414
- index: -1,
415
- start: 0,
416
- dot: opts.dot === true,
417
- consumed: '',
418
- output: '',
419
- prefix: '',
420
- backtrack: false,
421
- negated: false,
422
- brackets: 0,
423
- braces: 0,
424
- parens: 0,
425
- quotes: 0,
426
- globstar: false,
427
- tokens
428
- };
429
-
430
- input = utils.removePrefix(input, state);
431
- len = input.length;
432
-
433
- const extglobs = [];
434
- const braces = [];
435
- const stack = [];
436
- let prev = bos;
437
- let value;
438
-
439
- /**
440
- * Tokenizing helpers
441
- */
442
-
443
- const eos = () => state.index === len - 1;
444
- const peek = state.peek = (n = 1) => input[state.index + n];
445
- const advance = state.advance = () => input[++state.index] || '';
446
- const remaining = () => input.slice(state.index + 1);
447
- const consume = (value = '', num = 0) => {
448
- state.consumed += value;
449
- state.index += num;
450
- };
451
-
452
- const append = token => {
453
- state.output += token.output != null ? token.output : token.value;
454
- consume(token.value);
455
- };
456
-
457
- const negate = () => {
458
- let count = 1;
459
-
460
- while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {
461
- advance();
462
- state.start++;
463
- count++;
464
- }
465
-
466
- if (count % 2 === 0) {
467
- return false;
468
- }
469
-
470
- state.negated = true;
471
- state.start++;
472
- return true;
473
- };
474
-
475
- const increment = type => {
476
- state[type]++;
477
- stack.push(type);
478
- };
479
-
480
- const decrement = type => {
481
- state[type]--;
482
- stack.pop();
483
- };
484
-
485
- /**
486
- * Push tokens onto the tokens array. This helper speeds up
487
- * tokenizing by 1) helping us avoid backtracking as much as possible,
488
- * and 2) helping us avoid creating extra tokens when consecutive
489
- * characters are plain text. This improves performance and simplifies
490
- * lookbehinds.
491
- */
492
-
493
- const push = tok => {
494
- if (prev.type === 'globstar') {
495
- const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');
496
- const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));
497
-
498
- if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {
499
- state.output = state.output.slice(0, -prev.output.length);
500
- prev.type = 'star';
501
- prev.value = '*';
502
- prev.output = star;
503
- state.output += prev.output;
504
- }
505
- }
506
-
507
- if (extglobs.length && tok.type !== 'paren') {
508
- extglobs[extglobs.length - 1].inner += tok.value;
509
- }
510
-
511
- if (tok.value || tok.output) append(tok);
512
- if (prev && prev.type === 'text' && tok.type === 'text') {
513
- prev.output = (prev.output || prev.value) + tok.value;
514
- prev.value += tok.value;
515
- return;
516
- }
517
-
518
- tok.prev = prev;
519
- tokens.push(tok);
520
- prev = tok;
521
- };
522
-
523
- const extglobOpen = (type, value) => {
524
- const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };
525
-
526
- token.prev = prev;
527
- token.parens = state.parens;
528
- token.output = state.output;
529
- token.startIndex = state.index;
530
- token.tokensIndex = tokens.length;
531
- const output = (opts.capture ? '(' : '') + token.open;
532
-
533
- increment('parens');
534
- push({ type, value, output: state.output ? '' : ONE_CHAR });
535
- push({ type: 'paren', extglob: true, value: advance(), output });
536
- extglobs.push(token);
537
- };
538
-
539
- const extglobClose = token => {
540
- const literal = input.slice(token.startIndex, state.index + 1);
541
- const body = input.slice(token.startIndex + 2, state.index);
542
- const analysis = analyzeRepeatedExtglob(body, opts);
543
-
544
- if ((token.type === 'plus' || token.type === 'star') && analysis.risky) {
545
- const safeOutput = analysis.safeOutput
546
- ? (token.output ? '' : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput)
547
- : undefined;
548
- const open = tokens[token.tokensIndex];
549
-
550
- open.type = 'text';
551
- open.value = literal;
552
- open.output = safeOutput || utils.escapeRegex(literal);
553
-
554
- for (let i = token.tokensIndex + 1; i < tokens.length; i++) {
555
- tokens[i].value = '';
556
- tokens[i].output = '';
557
- delete tokens[i].suffix;
558
- }
559
-
560
- state.output = token.output + open.output;
561
- state.backtrack = true;
562
-
563
- push({ type: 'paren', extglob: true, value, output: '' });
564
- decrement('parens');
565
- return;
566
- }
567
-
568
- let output = token.close + (opts.capture ? ')' : '');
569
- let rest;
570
-
571
- if (token.type === 'negate') {
572
- let extglobStar = star;
573
-
574
- if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {
575
- extglobStar = globstar(opts);
576
- }
577
-
578
- if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) {
579
- output = token.close = `)$))${extglobStar}`;
580
- }
581
-
582
- if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
583
- // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.
584
- // In this case, we need to parse the string and use it in the output of the original pattern.
585
- // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.
586
- //
587
- // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.
588
- const expression = parse(rest, { ...options, fastpaths: false }).output;
589
-
590
- output = token.close = `)${expression})${extglobStar})`;
591
- }
592
-
593
- if (token.prev.type === 'bos') {
594
- state.negatedExtglob = true;
595
- }
596
- }
597
-
598
- push({ type: 'paren', extglob: true, value, output });
599
- decrement('parens');
600
- };
601
-
602
- /**
603
- * Fast paths
604
- */
605
-
606
- if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) {
607
- let backslashes = false;
608
-
609
- let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {
610
- if (first === '\\') {
611
- backslashes = true;
612
- return m;
613
- }
614
-
615
- if (first === '?') {
616
- if (esc) {
617
- return esc + first + (rest ? QMARK.repeat(rest.length) : '');
618
- }
619
- if (index === 0) {
620
- return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');
621
- }
622
- return QMARK.repeat(chars.length);
623
- }
624
-
625
- if (first === '.') {
626
- return DOT_LITERAL.repeat(chars.length);
627
- }
628
-
629
- if (first === '*') {
630
- if (esc) {
631
- return esc + first + (rest ? star : '');
632
- }
633
- return star;
634
- }
635
- return esc ? m : `\\${m}`;
636
- });
637
-
638
- if (backslashes === true) {
639
- if (opts.unescape === true) {
640
- output = output.replace(/\\/g, '');
641
- } else {
642
- output = output.replace(/\\+/g, m => {
643
- return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : '');
644
- });
645
- }
646
- }
647
-
648
- if (output === input && opts.contains === true) {
649
- state.output = input;
650
- return state;
651
- }
652
-
653
- state.output = utils.wrapOutput(output, state, options);
654
- return state;
655
- }
656
-
657
- /**
658
- * Tokenize input until we reach end-of-string
659
- */
660
-
661
- while (!eos()) {
662
- value = advance();
663
-
664
- if (value === '\u0000') {
665
- continue;
666
- }
667
-
668
- /**
669
- * Escaped characters
670
- */
671
-
672
- if (value === '\\') {
673
- const next = peek();
674
-
675
- if (next === '/' && opts.bash !== true) {
676
- continue;
677
- }
678
-
679
- if (next === '.' || next === ';') {
680
- continue;
681
- }
682
-
683
- if (!next) {
684
- value += '\\';
685
- push({ type: 'text', value });
686
- continue;
687
- }
688
-
689
- // collapse slashes to reduce potential for exploits
690
- const match = /^\\+/.exec(remaining());
691
- let slashes = 0;
692
-
693
- if (match && match[0].length > 2) {
694
- slashes = match[0].length;
695
- state.index += slashes;
696
- if (slashes % 2 !== 0) {
697
- value += '\\';
698
- }
699
- }
700
-
701
- if (opts.unescape === true) {
702
- value = advance();
703
- } else {
704
- value += advance();
705
- }
706
-
707
- if (state.brackets === 0) {
708
- push({ type: 'text', value });
709
- continue;
710
- }
711
- }
712
-
713
- /**
714
- * If we're inside a regex character class, continue
715
- * until we reach the closing bracket.
716
- */
717
-
718
- if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {
719
- if (opts.posix !== false && value === ':') {
720
- const inner = prev.value.slice(1);
721
- if (inner.includes('[')) {
722
- prev.posix = true;
723
-
724
- if (inner.includes(':')) {
725
- const idx = prev.value.lastIndexOf('[');
726
- const pre = prev.value.slice(0, idx);
727
- const rest = prev.value.slice(idx + 2);
728
- const posix = POSIX_REGEX_SOURCE[rest];
729
- if (posix) {
730
- prev.value = pre + posix;
731
- state.backtrack = true;
732
- advance();
733
-
734
- if (!bos.output && tokens.indexOf(prev) === 1) {
735
- bos.output = ONE_CHAR;
736
- }
737
- continue;
738
- }
739
- }
740
- }
741
- }
742
-
743
- if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {
744
- value = `\\${value}`;
745
- }
746
-
747
- if (value === ']' && (prev.value === '[' || prev.value === '[^')) {
748
- value = `\\${value}`;
749
- }
750
-
751
- if (opts.posix === true && value === '!' && prev.value === '[') {
752
- value = '^';
753
- }
754
-
755
- prev.value += value;
756
- append({ value });
757
- continue;
758
- }
759
-
760
- /**
761
- * If we're inside a quoted string, continue
762
- * until we reach the closing double quote.
763
- */
764
-
765
- if (state.quotes === 1 && value !== '"') {
766
- value = utils.escapeRegex(value);
767
- prev.value += value;
768
- append({ value });
769
- continue;
770
- }
771
-
772
- /**
773
- * Double quotes
774
- */
775
-
776
- if (value === '"') {
777
- state.quotes = state.quotes === 1 ? 0 : 1;
778
- if (opts.keepQuotes === true) {
779
- push({ type: 'text', value });
780
- }
781
- continue;
782
- }
783
-
784
- /**
785
- * Parentheses
786
- */
787
-
788
- if (value === '(') {
789
- increment('parens');
790
- push({ type: 'paren', value });
791
- continue;
792
- }
793
-
794
- if (value === ')') {
795
- if (state.parens === 0 && opts.strictBrackets === true) {
796
- throw new SyntaxError(syntaxError('opening', '('));
797
- }
798
-
799
- const extglob = extglobs[extglobs.length - 1];
800
- if (extglob && state.parens === extglob.parens + 1) {
801
- extglobClose(extglobs.pop());
802
- continue;
803
- }
804
-
805
- push({ type: 'paren', value, output: state.parens ? ')' : '\\)' });
806
- decrement('parens');
807
- continue;
808
- }
809
-
810
- /**
811
- * Square brackets
812
- */
813
-
814
- if (value === '[') {
815
- if (opts.nobracket === true || !remaining().includes(']')) {
816
- if (opts.nobracket !== true && opts.strictBrackets === true) {
817
- throw new SyntaxError(syntaxError('closing', ']'));
818
- }
819
-
820
- value = `\\${value}`;
821
- } else {
822
- increment('brackets');
823
- }
824
-
825
- push({ type: 'bracket', value });
826
- continue;
827
- }
828
-
829
- if (value === ']') {
830
- if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {
831
- push({ type: 'text', value, output: `\\${value}` });
832
- continue;
833
- }
834
-
835
- if (state.brackets === 0) {
836
- if (opts.strictBrackets === true) {
837
- throw new SyntaxError(syntaxError('opening', '['));
838
- }
839
-
840
- push({ type: 'text', value, output: `\\${value}` });
841
- continue;
842
- }
843
-
844
- decrement('brackets');
845
-
846
- const prevValue = prev.value.slice(1);
847
- if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {
848
- value = `/${value}`;
849
- }
850
-
851
- prev.value += value;
852
- append({ value });
853
-
854
- // when literal brackets are explicitly disabled
855
- // assume we should match with a regex character class
856
- if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {
857
- continue;
858
- }
859
-
860
- const escaped = utils.escapeRegex(prev.value);
861
- state.output = state.output.slice(0, -prev.value.length);
862
-
863
- // when literal brackets are explicitly enabled
864
- // assume we should escape the brackets to match literal characters
865
- if (opts.literalBrackets === true) {
866
- state.output += escaped;
867
- prev.value = escaped;
868
- continue;
869
- }
870
-
871
- // when the user specifies nothing, try to match both
872
- prev.value = `(${capture}${escaped}|${prev.value})`;
873
- state.output += prev.value;
874
- continue;
875
- }
876
-
877
- /**
878
- * Braces
879
- */
880
-
881
- if (value === '{' && opts.nobrace !== true) {
882
- increment('braces');
883
-
884
- const open = {
885
- type: 'brace',
886
- value,
887
- output: '(',
888
- outputIndex: state.output.length,
889
- tokensIndex: state.tokens.length
890
- };
891
-
892
- braces.push(open);
893
- push(open);
894
- continue;
895
- }
896
-
897
- if (value === '}') {
898
- const brace = braces[braces.length - 1];
899
-
900
- if (opts.nobrace === true || !brace) {
901
- push({ type: 'text', value, output: value });
902
- continue;
903
- }
904
-
905
- let output = ')';
906
-
907
- if (brace.dots === true) {
908
- const arr = tokens.slice();
909
- const range = [];
910
-
911
- for (let i = arr.length - 1; i >= 0; i--) {
912
- tokens.pop();
913
- if (arr[i].type === 'brace') {
914
- break;
915
- }
916
- if (arr[i].type !== 'dots') {
917
- range.unshift(arr[i].value);
918
- }
919
- }
920
-
921
- output = expandRange(range, opts);
922
- state.backtrack = true;
923
- }
924
-
925
- if (brace.comma !== true && brace.dots !== true) {
926
- const out = state.output.slice(0, brace.outputIndex);
927
- const toks = state.tokens.slice(brace.tokensIndex);
928
- brace.value = brace.output = '\\{';
929
- value = output = '\\}';
930
- state.output = out;
931
- for (const t of toks) {
932
- state.output += (t.output || t.value);
933
- }
934
- }
935
-
936
- push({ type: 'brace', value, output });
937
- decrement('braces');
938
- braces.pop();
939
- continue;
940
- }
941
-
942
- /**
943
- * Pipes
944
- */
945
-
946
- if (value === '|') {
947
- if (extglobs.length > 0) {
948
- extglobs[extglobs.length - 1].conditions++;
949
- }
950
- push({ type: 'text', value });
951
- continue;
952
- }
953
-
954
- /**
955
- * Commas
956
- */
957
-
958
- if (value === ',') {
959
- let output = value;
960
-
961
- const brace = braces[braces.length - 1];
962
- if (brace && stack[stack.length - 1] === 'braces') {
963
- brace.comma = true;
964
- output = '|';
965
- }
966
-
967
- push({ type: 'comma', value, output });
968
- continue;
969
- }
970
-
971
- /**
972
- * Slashes
973
- */
974
-
975
- if (value === '/') {
976
- // if the beginning of the glob is "./", advance the start
977
- // to the current index, and don't add the "./" characters
978
- // to the state. This greatly simplifies lookbehinds when
979
- // checking for BOS characters like "!" and "." (not "./")
980
- if (prev.type === 'dot' && state.index === state.start + 1) {
981
- state.start = state.index + 1;
982
- state.consumed = '';
983
- state.output = '';
984
- tokens.pop();
985
- prev = bos; // reset "prev" to the first token
986
- continue;
987
- }
988
-
989
- push({ type: 'slash', value, output: SLASH_LITERAL });
990
- continue;
991
- }
992
-
993
- /**
994
- * Dots
995
- */
996
-
997
- if (value === '.') {
998
- if (state.braces > 0 && prev.type === 'dot') {
999
- if (prev.value === '.') prev.output = DOT_LITERAL;
1000
- const brace = braces[braces.length - 1];
1001
- prev.type = 'dots';
1002
- prev.output += value;
1003
- prev.value += value;
1004
- brace.dots = true;
1005
- continue;
1006
- }
1007
-
1008
- if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {
1009
- push({ type: 'text', value, output: DOT_LITERAL });
1010
- continue;
1011
- }
1012
-
1013
- push({ type: 'dot', value, output: DOT_LITERAL });
1014
- continue;
1015
- }
1016
-
1017
- /**
1018
- * Question marks
1019
- */
1020
-
1021
- if (value === '?') {
1022
- const isGroup = prev && prev.value === '(';
1023
- if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
1024
- extglobOpen('qmark', value);
1025
- continue;
1026
- }
1027
-
1028
- if (prev && prev.type === 'paren') {
1029
- const next = peek();
1030
- let output = value;
1031
-
1032
- if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) {
1033
- output = `\\${value}`;
1034
- }
1035
-
1036
- push({ type: 'text', value, output });
1037
- continue;
1038
- }
1039
-
1040
- if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {
1041
- push({ type: 'qmark', value, output: QMARK_NO_DOT });
1042
- continue;
1043
- }
1044
-
1045
- push({ type: 'qmark', value, output: QMARK });
1046
- continue;
1047
- }
1048
-
1049
- /**
1050
- * Exclamation
1051
- */
1052
-
1053
- if (value === '!') {
1054
- if (opts.noextglob !== true && peek() === '(') {
1055
- if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {
1056
- extglobOpen('negate', value);
1057
- continue;
1058
- }
1059
- }
1060
-
1061
- if (opts.nonegate !== true && state.index === 0) {
1062
- negate();
1063
- continue;
1064
- }
1065
- }
1066
-
1067
- /**
1068
- * Plus
1069
- */
1070
-
1071
- if (value === '+') {
1072
- if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
1073
- extglobOpen('plus', value);
1074
- continue;
1075
- }
1076
-
1077
- if ((prev && prev.value === '(') || opts.regex === false) {
1078
- push({ type: 'plus', value, output: PLUS_LITERAL });
1079
- continue;
1080
- }
1081
-
1082
- if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {
1083
- push({ type: 'plus', value });
1084
- continue;
1085
- }
1086
-
1087
- push({ type: 'plus', value: PLUS_LITERAL });
1088
- continue;
1089
- }
1090
-
1091
- /**
1092
- * Plain text
1093
- */
1094
-
1095
- if (value === '@') {
1096
- if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
1097
- push({ type: 'at', extglob: true, value, output: '' });
1098
- continue;
1099
- }
1100
-
1101
- push({ type: 'text', value });
1102
- continue;
1103
- }
1104
-
1105
- /**
1106
- * Plain text
1107
- */
1108
-
1109
- if (value !== '*') {
1110
- if (value === '$' || value === '^') {
1111
- value = `\\${value}`;
1112
- }
1113
-
1114
- const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());
1115
- if (match) {
1116
- value += match[0];
1117
- state.index += match[0].length;
1118
- }
1119
-
1120
- push({ type: 'text', value });
1121
- continue;
1122
- }
1123
-
1124
- /**
1125
- * Stars
1126
- */
1127
-
1128
- if (prev && (prev.type === 'globstar' || prev.star === true)) {
1129
- prev.type = 'star';
1130
- prev.star = true;
1131
- prev.value += value;
1132
- prev.output = star;
1133
- state.backtrack = true;
1134
- state.globstar = true;
1135
- consume(value);
1136
- continue;
1137
- }
1138
-
1139
- let rest = remaining();
1140
- if (opts.noextglob !== true && /^\([^?]/.test(rest)) {
1141
- extglobOpen('star', value);
1142
- continue;
1143
- }
1144
-
1145
- if (prev.type === 'star') {
1146
- if (opts.noglobstar === true) {
1147
- consume(value);
1148
- continue;
1149
- }
1150
-
1151
- const prior = prev.prev;
1152
- const before = prior.prev;
1153
- const isStart = prior.type === 'slash' || prior.type === 'bos';
1154
- const afterStar = before && (before.type === 'star' || before.type === 'globstar');
1155
-
1156
- if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {
1157
- push({ type: 'star', value, output: '' });
1158
- continue;
1159
- }
1160
-
1161
- const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');
1162
- const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');
1163
- if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {
1164
- push({ type: 'star', value, output: '' });
1165
- continue;
1166
- }
1167
-
1168
- // strip consecutive `/**/`
1169
- while (rest.slice(0, 3) === '/**') {
1170
- const after = input[state.index + 4];
1171
- if (after && after !== '/') {
1172
- break;
1173
- }
1174
- rest = rest.slice(3);
1175
- consume('/**', 3);
1176
- }
1177
-
1178
- if (prior.type === 'bos' && eos()) {
1179
- prev.type = 'globstar';
1180
- prev.value += value;
1181
- prev.output = globstar(opts);
1182
- state.output = prev.output;
1183
- state.globstar = true;
1184
- consume(value);
1185
- continue;
1186
- }
1187
-
1188
- if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {
1189
- state.output = state.output.slice(0, -(prior.output + prev.output).length);
1190
- prior.output = `(?:${prior.output}`;
1191
-
1192
- prev.type = 'globstar';
1193
- prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');
1194
- prev.value += value;
1195
- state.globstar = true;
1196
- state.output += prior.output + prev.output;
1197
- consume(value);
1198
- continue;
1199
- }
1200
-
1201
- if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {
1202
- const end = rest[1] !== void 0 ? '|$' : '';
1203
-
1204
- state.output = state.output.slice(0, -(prior.output + prev.output).length);
1205
- prior.output = `(?:${prior.output}`;
1206
-
1207
- prev.type = 'globstar';
1208
- prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;
1209
- prev.value += value;
1210
-
1211
- state.output += prior.output + prev.output;
1212
- state.globstar = true;
1213
-
1214
- consume(value + advance());
1215
-
1216
- push({ type: 'slash', value: '/', output: '' });
1217
- continue;
1218
- }
1219
-
1220
- if (prior.type === 'bos' && rest[0] === '/') {
1221
- prev.type = 'globstar';
1222
- prev.value += value;
1223
- prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;
1224
- state.output = prev.output;
1225
- state.globstar = true;
1226
- consume(value + advance());
1227
- push({ type: 'slash', value: '/', output: '' });
1228
- continue;
1229
- }
1230
-
1231
- // remove single star from output
1232
- state.output = state.output.slice(0, -prev.output.length);
1233
-
1234
- // reset previous token to globstar
1235
- prev.type = 'globstar';
1236
- prev.output = globstar(opts);
1237
- prev.value += value;
1238
-
1239
- // reset output with globstar
1240
- state.output += prev.output;
1241
- state.globstar = true;
1242
- consume(value);
1243
- continue;
1244
- }
1245
-
1246
- const token = { type: 'star', value, output: star };
1247
-
1248
- if (opts.bash === true) {
1249
- token.output = '.*?';
1250
- if (prev.type === 'bos' || prev.type === 'slash') {
1251
- token.output = nodot + token.output;
1252
- }
1253
- push(token);
1254
- continue;
1255
- }
1256
-
1257
- if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {
1258
- token.output = value;
1259
- push(token);
1260
- continue;
1261
- }
1262
-
1263
- if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {
1264
- if (prev.type === 'dot') {
1265
- state.output += NO_DOT_SLASH;
1266
- prev.output += NO_DOT_SLASH;
1267
-
1268
- } else if (opts.dot === true) {
1269
- state.output += NO_DOTS_SLASH;
1270
- prev.output += NO_DOTS_SLASH;
1271
-
1272
- } else {
1273
- state.output += nodot;
1274
- prev.output += nodot;
1275
- }
1276
-
1277
- if (peek() !== '*') {
1278
- state.output += ONE_CHAR;
1279
- prev.output += ONE_CHAR;
1280
- }
1281
- }
1282
-
1283
- push(token);
1284
- }
1285
-
1286
- while (state.brackets > 0) {
1287
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));
1288
- state.output = utils.escapeLast(state.output, '[');
1289
- decrement('brackets');
1290
- }
1291
-
1292
- while (state.parens > 0) {
1293
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));
1294
- state.output = utils.escapeLast(state.output, '(');
1295
- decrement('parens');
1296
- }
1297
-
1298
- while (state.braces > 0) {
1299
- if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));
1300
- state.output = utils.escapeLast(state.output, '{');
1301
- decrement('braces');
1302
- }
1303
-
1304
- if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {
1305
- push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });
1306
- }
1307
-
1308
- // rebuild the output if we had to backtrack at any point
1309
- if (state.backtrack === true) {
1310
- state.output = '';
1311
-
1312
- for (const token of state.tokens) {
1313
- state.output += token.output != null ? token.output : token.value;
1314
-
1315
- if (token.suffix) {
1316
- state.output += token.suffix;
1317
- }
1318
- }
1319
- }
1320
-
1321
- return state;
1322
- };
1323
-
1324
- /**
1325
- * Fast paths for creating regular expressions for common glob patterns.
1326
- * This can significantly speed up processing and has very little downside
1327
- * impact when none of the fast paths match.
1328
- */
1329
-
1330
- parse.fastpaths = (input, options) => {
1331
- const opts = { ...options };
1332
- const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
1333
- const len = input.length;
1334
- if (len > max) {
1335
- throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
1336
- }
1337
-
1338
- input = REPLACEMENTS[input] || input;
1339
-
1340
- // create constants based on platform, for windows or posix
1341
- const {
1342
- DOT_LITERAL,
1343
- SLASH_LITERAL,
1344
- ONE_CHAR,
1345
- DOTS_SLASH,
1346
- NO_DOT,
1347
- NO_DOTS,
1348
- NO_DOTS_SLASH,
1349
- STAR,
1350
- START_ANCHOR
1351
- } = constants.globChars(opts.windows);
1352
-
1353
- const nodot = opts.dot ? NO_DOTS : NO_DOT;
1354
- const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;
1355
- const capture = opts.capture ? '' : '?:';
1356
- const state = { negated: false, prefix: '' };
1357
- let star = opts.bash === true ? '.*?' : STAR;
1358
-
1359
- if (opts.capture) {
1360
- star = `(${star})`;
1361
- }
1362
-
1363
- const globstar = opts => {
1364
- if (opts.noglobstar === true) return star;
1365
- return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
1366
- };
1367
-
1368
- const create = str => {
1369
- switch (str) {
1370
- case '*':
1371
- return `${nodot}${ONE_CHAR}${star}`;
1372
-
1373
- case '.*':
1374
- return `${DOT_LITERAL}${ONE_CHAR}${star}`;
1375
-
1376
- case '*.*':
1377
- return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
1378
-
1379
- case '*/*':
1380
- return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;
1381
-
1382
- case '**':
1383
- return nodot + globstar(opts);
1384
-
1385
- case '**/*':
1386
- return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;
1387
-
1388
- case '**/*.*':
1389
- return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
1390
-
1391
- case '**/.*':
1392
- return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;
1393
-
1394
- default: {
1395
- const match = /^(.*?)\.(\w+)$/.exec(str);
1396
- if (!match) return;
1397
-
1398
- const source = create(match[1]);
1399
- if (!source) return;
1400
-
1401
- return source + DOT_LITERAL + match[2];
1402
- }
1403
- }
1404
- };
1405
-
1406
- const output = utils.removePrefix(input, state);
1407
- let source = create(output);
1408
-
1409
- if (source && opts.strictSlashes !== true) {
1410
- source += `${SLASH_LITERAL}?`;
1411
- }
1412
-
1413
- return source;
1414
- };
1415
-
1416
- module.exports = parse;