@pnpm/exe 12.8.1 → 12.9.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 (612) hide show
  1. package/bin/pnpm.mjs +5 -1
  2. package/bin/pnpx.mjs +1 -1
  3. package/dist/node_modules/.bin/get-pnpm +4 -1
  4. package/dist/node_modules/.bin/node-gyp +4 -1
  5. package/dist/node_modules/.bin/node-which +4 -1
  6. package/dist/node_modules/.bin/nopt +4 -1
  7. package/dist/node_modules/.bin/semver +4 -1
  8. package/dist/node_modules/.pnpm-workspace-state-v1.json +18 -11
  9. package/dist/node_modules/undici/lib/core/request.js +68 -2
  10. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +18 -7
  11. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +70 -18
  12. package/dist/node_modules/undici/lib/handler/retry-handler.js +4 -1
  13. package/dist/node_modules/undici/package.json +1 -1
  14. package/dist/wasm/LICENSE +22 -0
  15. package/dist/wasm/README.md +140 -0
  16. package/dist/wasm/THIRD-PARTY-NOTICES.md +42 -0
  17. package/dist/wasm/host/atomic-waits.mjs +43 -0
  18. package/dist/wasm/host/cancellation.mjs +6 -0
  19. package/dist/wasm/host/executable-mode.mjs +8 -0
  20. package/dist/wasm/host/file-locks.mjs +40 -0
  21. package/dist/wasm/host/filesystem.mjs +318 -0
  22. package/dist/wasm/host/guest-imports.mjs +45 -0
  23. package/dist/wasm/host/guest-operations.mjs +148 -0
  24. package/dist/wasm/host/lock-registry.mjs +167 -0
  25. package/dist/wasm/host/network.mjs +76 -0
  26. package/dist/wasm/host/operations.mjs +67 -0
  27. package/dist/wasm/host/poll.mjs +74 -0
  28. package/dist/wasm/host/process-stdio.mjs +41 -0
  29. package/dist/wasm/host/process-tree.mjs +54 -0
  30. package/dist/wasm/host/process.mjs +126 -0
  31. package/dist/wasm/host/protocol.mjs +1 -0
  32. package/dist/wasm/host/resources.mjs +76 -0
  33. package/dist/wasm/host/shell-runner.mjs +8 -0
  34. package/dist/wasm/host/shell.mjs +19 -0
  35. package/dist/wasm/host/signals.mjs +49 -0
  36. package/dist/wasm/host/terminal-input.mjs +7 -0
  37. package/dist/wasm/host/terminal-password.mjs +32 -0
  38. package/dist/wasm/host/terminal-session.mjs +114 -0
  39. package/dist/wasm/host/terminal.mjs +61 -0
  40. package/dist/wasm/host/thread-spawn.mjs +21 -0
  41. package/dist/wasm/host/upload.mjs +21 -0
  42. package/dist/wasm/host/wait-for-reply.mjs +7 -0
  43. package/dist/wasm/host/wasi-errno.mjs +81 -0
  44. package/dist/wasm/host/wasi-imports.mjs +58 -0
  45. package/dist/wasm/node_modules/.bin/js-yaml +91 -0
  46. package/dist/wasm/node_modules/.bin/node-which +91 -0
  47. package/dist/wasm/node_modules/.bin/shell +91 -0
  48. package/dist/wasm/node_modules/.pnpm-workspace-state-v1.json +355 -0
  49. package/dist/wasm/node_modules/@emnapi/wasi-threads/LICENSE +21 -0
  50. package/dist/wasm/node_modules/@emnapi/wasi-threads/README.md +203 -0
  51. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.js +894 -0
  52. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.d.ts +272 -0
  53. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.cjs.min.js +1 -0
  54. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.mts +272 -0
  55. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.d.ts +274 -0
  56. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.esm-bundler.js +942 -0
  57. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.js +954 -0
  58. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.d.mts +272 -0
  59. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.js +1 -0
  60. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.min.mjs +1 -0
  61. package/dist/wasm/node_modules/@emnapi/wasi-threads/dist/wasi-threads.mjs +889 -0
  62. package/dist/wasm/node_modules/@emnapi/wasi-threads/index.js +5 -0
  63. package/dist/wasm/node_modules/@emnapi/wasi-threads/package.json +50 -0
  64. package/dist/wasm/node_modules/@nodelib/fs.scandir/LICENSE +21 -0
  65. package/dist/wasm/node_modules/@nodelib/fs.scandir/README.md +171 -0
  66. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts +20 -0
  67. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/adapters/fs.js +19 -0
  68. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/constants.d.ts +4 -0
  69. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/constants.js +17 -0
  70. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/index.d.ts +12 -0
  71. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/index.js +26 -0
  72. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts +7 -0
  73. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/providers/async.js +104 -0
  74. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts +1 -0
  75. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/providers/common.js +13 -0
  76. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts +5 -0
  77. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/providers/sync.js +54 -0
  78. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/settings.d.ts +20 -0
  79. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/settings.js +24 -0
  80. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/types/index.d.ts +20 -0
  81. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/types/index.js +2 -0
  82. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts +2 -0
  83. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/utils/fs.js +19 -0
  84. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts +2 -0
  85. package/dist/wasm/node_modules/@nodelib/fs.scandir/out/utils/index.js +5 -0
  86. package/dist/wasm/node_modules/@nodelib/fs.scandir/package.json +44 -0
  87. package/dist/wasm/node_modules/@nodelib/fs.stat/LICENSE +21 -0
  88. package/dist/wasm/node_modules/@nodelib/fs.stat/README.md +126 -0
  89. package/dist/wasm/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts +13 -0
  90. package/dist/wasm/node_modules/@nodelib/fs.stat/out/adapters/fs.js +17 -0
  91. package/dist/wasm/node_modules/@nodelib/fs.stat/out/index.d.ts +12 -0
  92. package/dist/wasm/node_modules/@nodelib/fs.stat/out/index.js +26 -0
  93. package/dist/wasm/node_modules/@nodelib/fs.stat/out/providers/async.d.ts +4 -0
  94. package/dist/wasm/node_modules/@nodelib/fs.stat/out/providers/async.js +36 -0
  95. package/dist/wasm/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts +3 -0
  96. package/dist/wasm/node_modules/@nodelib/fs.stat/out/providers/sync.js +23 -0
  97. package/dist/wasm/node_modules/@nodelib/fs.stat/out/settings.d.ts +16 -0
  98. package/dist/wasm/node_modules/@nodelib/fs.stat/out/settings.js +16 -0
  99. package/dist/wasm/node_modules/@nodelib/fs.stat/out/types/index.d.ts +4 -0
  100. package/dist/wasm/node_modules/@nodelib/fs.stat/out/types/index.js +2 -0
  101. package/dist/wasm/node_modules/@nodelib/fs.stat/package.json +37 -0
  102. package/dist/wasm/node_modules/@nodelib/fs.walk/LICENSE +21 -0
  103. package/dist/wasm/node_modules/@nodelib/fs.walk/README.md +215 -0
  104. package/dist/wasm/node_modules/@nodelib/fs.walk/out/index.d.ts +14 -0
  105. package/dist/wasm/node_modules/@nodelib/fs.walk/out/index.js +34 -0
  106. package/dist/wasm/node_modules/@nodelib/fs.walk/out/providers/async.d.ts +12 -0
  107. package/dist/wasm/node_modules/@nodelib/fs.walk/out/providers/async.js +30 -0
  108. package/dist/wasm/node_modules/@nodelib/fs.walk/out/providers/index.d.ts +4 -0
  109. package/dist/wasm/node_modules/@nodelib/fs.walk/out/providers/index.js +9 -0
  110. package/dist/wasm/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts +12 -0
  111. package/dist/wasm/node_modules/@nodelib/fs.walk/out/providers/stream.js +34 -0
  112. package/dist/wasm/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts +10 -0
  113. package/dist/wasm/node_modules/@nodelib/fs.walk/out/providers/sync.js +14 -0
  114. package/dist/wasm/node_modules/@nodelib/fs.walk/out/readers/async.d.ts +30 -0
  115. package/dist/wasm/node_modules/@nodelib/fs.walk/out/readers/async.js +97 -0
  116. package/dist/wasm/node_modules/@nodelib/fs.walk/out/readers/common.d.ts +7 -0
  117. package/dist/wasm/node_modules/@nodelib/fs.walk/out/readers/common.js +31 -0
  118. package/dist/wasm/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts +6 -0
  119. package/dist/wasm/node_modules/@nodelib/fs.walk/out/readers/reader.js +11 -0
  120. package/dist/wasm/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts +15 -0
  121. package/dist/wasm/node_modules/@nodelib/fs.walk/out/readers/sync.js +59 -0
  122. package/dist/wasm/node_modules/@nodelib/fs.walk/out/settings.d.ts +30 -0
  123. package/dist/wasm/node_modules/@nodelib/fs.walk/out/settings.js +26 -0
  124. package/dist/wasm/node_modules/@nodelib/fs.walk/out/types/index.d.ts +8 -0
  125. package/dist/wasm/node_modules/@nodelib/fs.walk/out/types/index.js +2 -0
  126. package/dist/wasm/node_modules/@nodelib/fs.walk/package.json +44 -0
  127. package/dist/wasm/node_modules/@tybys/wasm-util/LICENSE +21 -0
  128. package/dist/wasm/node_modules/@tybys/wasm-util/README.md +193 -0
  129. package/dist/wasm/node_modules/@tybys/wasm-util/dist/tsdoc-metadata.json +11 -0
  130. package/dist/wasm/node_modules/@tybys/wasm-util/dist/wasm-util.d.ts +423 -0
  131. package/dist/wasm/node_modules/@tybys/wasm-util/dist/wasm-util.esm-bundler.js +2932 -0
  132. package/dist/wasm/node_modules/@tybys/wasm-util/dist/wasm-util.esm.js +2932 -0
  133. package/dist/wasm/node_modules/@tybys/wasm-util/dist/wasm-util.esm.min.js +1 -0
  134. package/dist/wasm/node_modules/@tybys/wasm-util/dist/wasm-util.js +2954 -0
  135. package/dist/wasm/node_modules/@tybys/wasm-util/dist/wasm-util.min.js +1 -0
  136. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/asyncify.js +158 -0
  137. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/index.js +13 -0
  138. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/jspi.js +46 -0
  139. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/load.js +97 -0
  140. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/memory.js +35 -0
  141. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/error.js +103 -0
  142. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/fd.js +268 -0
  143. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/fs.js +3 -0
  144. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/index.js +192 -0
  145. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/path.js +316 -0
  146. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/preview1.js +1599 -0
  147. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/rights.js +141 -0
  148. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/types.js +220 -0
  149. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/wasi/util.js +128 -0
  150. package/dist/wasm/node_modules/@tybys/wasm-util/lib/cjs/webassembly.js +13 -0
  151. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/asyncify.mjs +153 -0
  152. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/index.mjs +9 -0
  153. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/jspi.mjs +39 -0
  154. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/load.mjs +89 -0
  155. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/memory.mjs +28 -0
  156. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/error.mjs +97 -0
  157. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/fd.mjs +256 -0
  158. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/fs.mjs +1 -0
  159. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/index.mjs +186 -0
  160. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/path.mjs +310 -0
  161. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/preview1.mjs +1593 -0
  162. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/rights.mjs +135 -0
  163. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/types.mjs +216 -0
  164. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/wasi/util.mjs +113 -0
  165. package/dist/wasm/node_modules/@tybys/wasm-util/lib/mjs/webassembly.mjs +9 -0
  166. package/dist/wasm/node_modules/@tybys/wasm-util/package.json +58 -0
  167. package/dist/wasm/node_modules/@types/braces/LICENSE +21 -0
  168. package/dist/wasm/node_modules/@types/braces/README.md +15 -0
  169. package/dist/wasm/node_modules/@types/braces/index.d.ts +100 -0
  170. package/dist/wasm/node_modules/@types/braces/package.json +36 -0
  171. package/dist/wasm/node_modules/@types/micromatch/LICENSE +21 -0
  172. package/dist/wasm/node_modules/@types/micromatch/README.md +15 -0
  173. package/dist/wasm/node_modules/@types/micromatch/index.d.ts +670 -0
  174. package/dist/wasm/node_modules/@types/micromatch/package.json +28 -0
  175. package/dist/wasm/node_modules/@yarnpkg/fslib/README.md +17 -0
  176. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/AliasFS.d.ts +16 -0
  177. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/AliasFS.js +24 -0
  178. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/CwdFS.d.ts +15 -0
  179. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/CwdFS.js +36 -0
  180. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/FakeFS.d.ts +398 -0
  181. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/FakeFS.js +451 -0
  182. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/JailFS.d.ts +16 -0
  183. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/JailFS.js +35 -0
  184. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/LazyFS.d.ts +13 -0
  185. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/LazyFS.js +26 -0
  186. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/MountFS.d.ts +278 -0
  187. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/MountFS.js +873 -0
  188. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/NoFS.d.ts +78 -0
  189. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/NoFS.js +229 -0
  190. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/NodeFS.d.ts +223 -0
  191. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/NodeFS.js +476 -0
  192. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/NodePathFS.d.ts +18 -0
  193. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/NodePathFS.js +47 -0
  194. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/PosixFS.d.ts +9 -0
  195. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/PosixFS.js +18 -0
  196. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/ProxiedFS.d.ts +229 -0
  197. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/ProxiedFS.js +255 -0
  198. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/VirtualFS.d.ts +19 -0
  199. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/VirtualFS.js +89 -0
  200. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/algorithms/copyPromise.d.ts +19 -0
  201. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/algorithms/copyPromise.js +271 -0
  202. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/algorithms/opendir.d.ts +22 -0
  203. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/algorithms/opendir.js +65 -0
  204. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/algorithms/watchFile/CustomStatWatcher.d.ts +59 -0
  205. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/algorithms/watchFile/CustomStatWatcher.js +139 -0
  206. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/algorithms/watchFile.d.ts +6 -0
  207. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/algorithms/watchFile.js +67 -0
  208. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/constants.d.ts +13 -0
  209. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/constants.js +16 -0
  210. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/errors.d.ts +36 -0
  211. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/errors.js +54 -0
  212. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/index.d.ts +48 -0
  213. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/index.js +55 -0
  214. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/patchFs/FileHandle.d.ts +81 -0
  215. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/patchFs/FileHandle.js +254 -0
  216. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/patchFs/patchFs.d.ts +5 -0
  217. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/patchFs/patchFs.js +265 -0
  218. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/path.d.ts +84 -0
  219. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/path.js +103 -0
  220. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/statUtils.d.ts +81 -0
  221. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/statUtils.js +238 -0
  222. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/xfs.d.ts +18 -0
  223. package/dist/wasm/node_modules/@yarnpkg/fslib/lib/xfs.js +123 -0
  224. package/dist/wasm/node_modules/@yarnpkg/fslib/package.json +42 -0
  225. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/resolution.d.ts +1 -0
  226. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/resolution.js +530 -0
  227. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/resolution.pegjs +17 -0
  228. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/shell.d.ts +92 -0
  229. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/shell.js +3653 -0
  230. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/shell.pegjs +189 -0
  231. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/syml.d.ts +1 -0
  232. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/syml.js +1911 -0
  233. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/grammars/syml.pegjs +125 -0
  234. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/index.d.ts +6 -0
  235. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/index.js +24 -0
  236. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/resolution.d.ts +12 -0
  237. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/resolution.js +31 -0
  238. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/shell.d.ts +19 -0
  239. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/shell.js +170 -0
  240. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/syml.d.ts +11 -0
  241. package/dist/wasm/node_modules/@yarnpkg/parsers/lib/syml.js +132 -0
  242. package/dist/wasm/node_modules/@yarnpkg/parsers/package.json +46 -0
  243. package/dist/wasm/node_modules/@yarnpkg/shell/README.md +38 -0
  244. package/dist/wasm/node_modules/@yarnpkg/shell/lib/boot-cli-dev.js +3 -0
  245. package/dist/wasm/node_modules/@yarnpkg/shell/lib/cli.d.ts +2 -0
  246. package/dist/wasm/node_modules/@yarnpkg/shell/lib/cli.js +19 -0
  247. package/dist/wasm/node_modules/@yarnpkg/shell/lib/commands/entry.d.ts +8 -0
  248. package/dist/wasm/node_modules/@yarnpkg/shell/lib/commands/entry.js +60 -0
  249. package/dist/wasm/node_modules/@yarnpkg/shell/lib/errors.d.ts +6 -0
  250. package/dist/wasm/node_modules/@yarnpkg/shell/lib/errors.js +13 -0
  251. package/dist/wasm/node_modules/@yarnpkg/shell/lib/globUtils.d.ts +23 -0
  252. package/dist/wasm/node_modules/@yarnpkg/shell/lib/globUtils.js +47 -0
  253. package/dist/wasm/node_modules/@yarnpkg/shell/lib/index.d.ts +56 -0
  254. package/dist/wasm/node_modules/@yarnpkg/shell/lib/index.js +926 -0
  255. package/dist/wasm/node_modules/@yarnpkg/shell/lib/pipe.d.ts +54 -0
  256. package/dist/wasm/node_modules/@yarnpkg/shell/lib/pipe.js +281 -0
  257. package/dist/wasm/node_modules/@yarnpkg/shell/package.json +54 -0
  258. package/dist/wasm/node_modules/ansi-styles/index.d.ts +345 -0
  259. package/dist/wasm/node_modules/ansi-styles/index.js +163 -0
  260. package/dist/wasm/node_modules/ansi-styles/license +9 -0
  261. package/dist/wasm/node_modules/ansi-styles/package.json +56 -0
  262. package/dist/wasm/node_modules/ansi-styles/readme.md +152 -0
  263. package/dist/wasm/node_modules/argparse/CHANGELOG.md +216 -0
  264. package/dist/wasm/node_modules/argparse/LICENSE +254 -0
  265. package/dist/wasm/node_modules/argparse/README.md +84 -0
  266. package/dist/wasm/node_modules/argparse/argparse.js +3707 -0
  267. package/dist/wasm/node_modules/argparse/lib/sub.js +67 -0
  268. package/dist/wasm/node_modules/argparse/lib/textwrap.js +440 -0
  269. package/dist/wasm/node_modules/argparse/package.json +31 -0
  270. package/dist/wasm/node_modules/braces/LICENSE +21 -0
  271. package/dist/wasm/node_modules/braces/README.md +586 -0
  272. package/dist/wasm/node_modules/braces/index.js +170 -0
  273. package/dist/wasm/node_modules/braces/lib/compile.js +60 -0
  274. package/dist/wasm/node_modules/braces/lib/constants.js +57 -0
  275. package/dist/wasm/node_modules/braces/lib/expand.js +113 -0
  276. package/dist/wasm/node_modules/braces/lib/parse.js +331 -0
  277. package/dist/wasm/node_modules/braces/lib/stringify.js +32 -0
  278. package/dist/wasm/node_modules/braces/lib/utils.js +122 -0
  279. package/dist/wasm/node_modules/braces/package.json +77 -0
  280. package/dist/wasm/node_modules/chalk/index.d.ts +415 -0
  281. package/dist/wasm/node_modules/chalk/license +9 -0
  282. package/dist/wasm/node_modules/chalk/package.json +68 -0
  283. package/dist/wasm/node_modules/chalk/readme.md +341 -0
  284. package/dist/wasm/node_modules/chalk/source/index.js +229 -0
  285. package/dist/wasm/node_modules/chalk/source/templates.js +134 -0
  286. package/dist/wasm/node_modules/chalk/source/util.js +39 -0
  287. package/dist/wasm/node_modules/clipanion/README.md +98 -0
  288. package/dist/wasm/node_modules/clipanion/lib/advanced/Cli.d.ts +225 -0
  289. package/dist/wasm/node_modules/clipanion/lib/advanced/Cli.js +406 -0
  290. package/dist/wasm/node_modules/clipanion/lib/advanced/Cli.mjs +398 -0
  291. package/dist/wasm/node_modules/clipanion/lib/advanced/Command.d.ts +144 -0
  292. package/dist/wasm/node_modules/clipanion/lib/advanced/Command.js +91 -0
  293. package/dist/wasm/node_modules/clipanion/lib/advanced/Command.mjs +67 -0
  294. package/dist/wasm/node_modules/clipanion/lib/advanced/HelpCommand.d.ts +11 -0
  295. package/dist/wasm/node_modules/clipanion/lib/advanced/HelpCommand.js +54 -0
  296. package/dist/wasm/node_modules/clipanion/lib/advanced/HelpCommand.mjs +50 -0
  297. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/definitions.d.ts +8 -0
  298. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/definitions.js +17 -0
  299. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/definitions.mjs +13 -0
  300. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/help.d.ts +10 -0
  301. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/help.js +19 -0
  302. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/help.mjs +15 -0
  303. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/index.d.ts +3 -0
  304. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/index.js +13 -0
  305. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/index.mjs +3 -0
  306. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/version.d.ts +10 -0
  307. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/version.js +20 -0
  308. package/dist/wasm/node_modules/clipanion/lib/advanced/builtins/version.mjs +16 -0
  309. package/dist/wasm/node_modules/clipanion/lib/advanced/index.d.ts +7 -0
  310. package/dist/wasm/node_modules/clipanion/lib/advanced/index.js +19 -0
  311. package/dist/wasm/node_modules/clipanion/lib/advanced/index.mjs +8 -0
  312. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Array.d.ts +17 -0
  313. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Array.js +37 -0
  314. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Array.mjs +33 -0
  315. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Boolean.d.ts +14 -0
  316. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Boolean.js +34 -0
  317. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Boolean.mjs +30 -0
  318. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Counter.d.ts +15 -0
  319. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Counter.js +41 -0
  320. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Counter.mjs +37 -0
  321. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Proxy.d.ts +18 -0
  322. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Proxy.js +35 -0
  323. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Proxy.mjs +31 -0
  324. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Rest.d.ts +18 -0
  325. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Rest.js +51 -0
  326. package/dist/wasm/node_modules/clipanion/lib/advanced/options/Rest.mjs +47 -0
  327. package/dist/wasm/node_modules/clipanion/lib/advanced/options/String.d.ts +49 -0
  328. package/dist/wasm/node_modules/clipanion/lib/advanced/options/String.js +84 -0
  329. package/dist/wasm/node_modules/clipanion/lib/advanced/options/String.mjs +80 -0
  330. package/dist/wasm/node_modules/clipanion/lib/advanced/options/index.d.ts +7 -0
  331. package/dist/wasm/node_modules/clipanion/lib/advanced/options/index.js +26 -0
  332. package/dist/wasm/node_modules/clipanion/lib/advanced/options/index.mjs +7 -0
  333. package/dist/wasm/node_modules/clipanion/lib/advanced/options/utils.d.ts +25 -0
  334. package/dist/wasm/node_modules/clipanion/lib/advanced/options/utils.js +59 -0
  335. package/dist/wasm/node_modules/clipanion/lib/advanced/options/utils.mjs +50 -0
  336. package/dist/wasm/node_modules/clipanion/lib/constants.d.ts +11 -0
  337. package/dist/wasm/node_modules/clipanion/lib/constants.js +27 -0
  338. package/dist/wasm/node_modules/clipanion/lib/constants.mjs +13 -0
  339. package/dist/wasm/node_modules/clipanion/lib/core.d.ts +462 -0
  340. package/dist/wasm/node_modules/clipanion/lib/core.js +827 -0
  341. package/dist/wasm/node_modules/clipanion/lib/core.mjs +800 -0
  342. package/dist/wasm/node_modules/clipanion/lib/demos/advanced.d.ts +22 -0
  343. package/dist/wasm/node_modules/clipanion/lib/errors.d.ts +52 -0
  344. package/dist/wasm/node_modules/clipanion/lib/errors.js +70 -0
  345. package/dist/wasm/node_modules/clipanion/lib/errors.mjs +64 -0
  346. package/dist/wasm/node_modules/clipanion/lib/format.d.ts +19 -0
  347. package/dist/wasm/node_modules/clipanion/lib/format.js +74 -0
  348. package/dist/wasm/node_modules/clipanion/lib/format.mjs +68 -0
  349. package/dist/wasm/node_modules/clipanion/package.json +68 -0
  350. package/dist/wasm/node_modules/color-convert/CHANGELOG.md +54 -0
  351. package/dist/wasm/node_modules/color-convert/LICENSE +21 -0
  352. package/dist/wasm/node_modules/color-convert/README.md +68 -0
  353. package/dist/wasm/node_modules/color-convert/conversions.js +839 -0
  354. package/dist/wasm/node_modules/color-convert/index.js +81 -0
  355. package/dist/wasm/node_modules/color-convert/package.json +48 -0
  356. package/dist/wasm/node_modules/color-convert/route.js +97 -0
  357. package/dist/wasm/node_modules/color-name/LICENSE +8 -0
  358. package/dist/wasm/node_modules/color-name/README.md +11 -0
  359. package/dist/wasm/node_modules/color-name/index.js +152 -0
  360. package/dist/wasm/node_modules/color-name/package.json +28 -0
  361. package/dist/wasm/node_modules/cross-spawn/LICENSE +21 -0
  362. package/dist/wasm/node_modules/cross-spawn/README.md +89 -0
  363. package/dist/wasm/node_modules/cross-spawn/index.js +39 -0
  364. package/dist/wasm/node_modules/cross-spawn/lib/enoent.js +59 -0
  365. package/dist/wasm/node_modules/cross-spawn/lib/parse.js +91 -0
  366. package/dist/wasm/node_modules/cross-spawn/lib/util/escape.js +47 -0
  367. package/dist/wasm/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  368. package/dist/wasm/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  369. package/dist/wasm/node_modules/cross-spawn/package.json +73 -0
  370. package/dist/wasm/node_modules/fast-glob/LICENSE +21 -0
  371. package/dist/wasm/node_modules/fast-glob/README.md +830 -0
  372. package/dist/wasm/node_modules/fast-glob/out/index.d.ts +40 -0
  373. package/dist/wasm/node_modules/fast-glob/out/index.js +102 -0
  374. package/dist/wasm/node_modules/fast-glob/out/managers/tasks.d.ts +22 -0
  375. package/dist/wasm/node_modules/fast-glob/out/managers/tasks.js +110 -0
  376. package/dist/wasm/node_modules/fast-glob/out/providers/async.d.ts +9 -0
  377. package/dist/wasm/node_modules/fast-glob/out/providers/async.js +23 -0
  378. package/dist/wasm/node_modules/fast-glob/out/providers/filters/deep.d.ts +16 -0
  379. package/dist/wasm/node_modules/fast-glob/out/providers/filters/deep.js +62 -0
  380. package/dist/wasm/node_modules/fast-glob/out/providers/filters/entry.d.ts +17 -0
  381. package/dist/wasm/node_modules/fast-glob/out/providers/filters/entry.js +85 -0
  382. package/dist/wasm/node_modules/fast-glob/out/providers/filters/error.d.ts +8 -0
  383. package/dist/wasm/node_modules/fast-glob/out/providers/filters/error.js +15 -0
  384. package/dist/wasm/node_modules/fast-glob/out/providers/matchers/matcher.d.ts +33 -0
  385. package/dist/wasm/node_modules/fast-glob/out/providers/matchers/matcher.js +45 -0
  386. package/dist/wasm/node_modules/fast-glob/out/providers/matchers/partial.d.ts +4 -0
  387. package/dist/wasm/node_modules/fast-glob/out/providers/matchers/partial.js +38 -0
  388. package/dist/wasm/node_modules/fast-glob/out/providers/provider.d.ts +19 -0
  389. package/dist/wasm/node_modules/fast-glob/out/providers/provider.js +48 -0
  390. package/dist/wasm/node_modules/fast-glob/out/providers/stream.d.ts +11 -0
  391. package/dist/wasm/node_modules/fast-glob/out/providers/stream.js +31 -0
  392. package/dist/wasm/node_modules/fast-glob/out/providers/sync.d.ts +9 -0
  393. package/dist/wasm/node_modules/fast-glob/out/providers/sync.js +23 -0
  394. package/dist/wasm/node_modules/fast-glob/out/providers/transformers/entry.d.ts +8 -0
  395. package/dist/wasm/node_modules/fast-glob/out/providers/transformers/entry.js +26 -0
  396. package/dist/wasm/node_modules/fast-glob/out/readers/async.d.ts +10 -0
  397. package/dist/wasm/node_modules/fast-glob/out/readers/async.js +35 -0
  398. package/dist/wasm/node_modules/fast-glob/out/readers/reader.d.ts +15 -0
  399. package/dist/wasm/node_modules/fast-glob/out/readers/reader.js +33 -0
  400. package/dist/wasm/node_modules/fast-glob/out/readers/stream.d.ts +14 -0
  401. package/dist/wasm/node_modules/fast-glob/out/readers/stream.js +55 -0
  402. package/dist/wasm/node_modules/fast-glob/out/readers/sync.d.ts +12 -0
  403. package/dist/wasm/node_modules/fast-glob/out/readers/sync.js +43 -0
  404. package/dist/wasm/node_modules/fast-glob/out/settings.d.ts +164 -0
  405. package/dist/wasm/node_modules/fast-glob/out/settings.js +59 -0
  406. package/dist/wasm/node_modules/fast-glob/out/types/index.d.ts +31 -0
  407. package/dist/wasm/node_modules/fast-glob/out/types/index.js +2 -0
  408. package/dist/wasm/node_modules/fast-glob/out/utils/array.d.ts +2 -0
  409. package/dist/wasm/node_modules/fast-glob/out/utils/array.js +22 -0
  410. package/dist/wasm/node_modules/fast-glob/out/utils/errno.d.ts +2 -0
  411. package/dist/wasm/node_modules/fast-glob/out/utils/errno.js +7 -0
  412. package/dist/wasm/node_modules/fast-glob/out/utils/fs.d.ts +4 -0
  413. package/dist/wasm/node_modules/fast-glob/out/utils/fs.js +19 -0
  414. package/dist/wasm/node_modules/fast-glob/out/utils/index.d.ts +8 -0
  415. package/dist/wasm/node_modules/fast-glob/out/utils/index.js +17 -0
  416. package/dist/wasm/node_modules/fast-glob/out/utils/path.d.ts +13 -0
  417. package/dist/wasm/node_modules/fast-glob/out/utils/path.js +68 -0
  418. package/dist/wasm/node_modules/fast-glob/out/utils/pattern.d.ts +49 -0
  419. package/dist/wasm/node_modules/fast-glob/out/utils/pattern.js +206 -0
  420. package/dist/wasm/node_modules/fast-glob/out/utils/stream.d.ts +4 -0
  421. package/dist/wasm/node_modules/fast-glob/out/utils/stream.js +17 -0
  422. package/dist/wasm/node_modules/fast-glob/out/utils/string.d.ts +2 -0
  423. package/dist/wasm/node_modules/fast-glob/out/utils/string.js +11 -0
  424. package/dist/wasm/node_modules/fast-glob/package.json +81 -0
  425. package/dist/wasm/node_modules/fastq/LICENSE +13 -0
  426. package/dist/wasm/node_modules/fastq/README.md +310 -0
  427. package/dist/wasm/node_modules/fastq/SECURITY.md +15 -0
  428. package/dist/wasm/node_modules/fastq/bench.js +66 -0
  429. package/dist/wasm/node_modules/fastq/eslint.config.js +11 -0
  430. package/dist/wasm/node_modules/fastq/example.js +14 -0
  431. package/dist/wasm/node_modules/fastq/example.mjs +9 -0
  432. package/dist/wasm/node_modules/fastq/index.d.ts +59 -0
  433. package/dist/wasm/node_modules/fastq/package.json +49 -0
  434. package/dist/wasm/node_modules/fastq/queue.js +348 -0
  435. package/dist/wasm/node_modules/fastq/test/example.ts +83 -0
  436. package/dist/wasm/node_modules/fastq/test/promise.js +356 -0
  437. package/dist/wasm/node_modules/fastq/test/test.js +808 -0
  438. package/dist/wasm/node_modules/fastq/test/tsconfig.json +11 -0
  439. package/dist/wasm/node_modules/fill-range/LICENSE +21 -0
  440. package/dist/wasm/node_modules/fill-range/README.md +237 -0
  441. package/dist/wasm/node_modules/fill-range/index.js +248 -0
  442. package/dist/wasm/node_modules/fill-range/package.json +74 -0
  443. package/dist/wasm/node_modules/glob-parent/CHANGELOG.md +110 -0
  444. package/dist/wasm/node_modules/glob-parent/LICENSE +15 -0
  445. package/dist/wasm/node_modules/glob-parent/README.md +137 -0
  446. package/dist/wasm/node_modules/glob-parent/index.js +42 -0
  447. package/dist/wasm/node_modules/glob-parent/package.json +48 -0
  448. package/dist/wasm/node_modules/has-flag/index.d.ts +39 -0
  449. package/dist/wasm/node_modules/has-flag/index.js +8 -0
  450. package/dist/wasm/node_modules/has-flag/license +9 -0
  451. package/dist/wasm/node_modules/has-flag/package.json +46 -0
  452. package/dist/wasm/node_modules/has-flag/readme.md +89 -0
  453. package/dist/wasm/node_modules/is-extglob/LICENSE +21 -0
  454. package/dist/wasm/node_modules/is-extglob/README.md +107 -0
  455. package/dist/wasm/node_modules/is-extglob/index.js +20 -0
  456. package/dist/wasm/node_modules/is-extglob/package.json +69 -0
  457. package/dist/wasm/node_modules/is-glob/LICENSE +21 -0
  458. package/dist/wasm/node_modules/is-glob/README.md +206 -0
  459. package/dist/wasm/node_modules/is-glob/index.js +150 -0
  460. package/dist/wasm/node_modules/is-glob/package.json +81 -0
  461. package/dist/wasm/node_modules/is-number/LICENSE +21 -0
  462. package/dist/wasm/node_modules/is-number/README.md +187 -0
  463. package/dist/wasm/node_modules/is-number/index.js +18 -0
  464. package/dist/wasm/node_modules/is-number/package.json +82 -0
  465. package/dist/wasm/node_modules/isexe/.npmignore +2 -0
  466. package/dist/wasm/node_modules/isexe/LICENSE +15 -0
  467. package/dist/wasm/node_modules/isexe/README.md +51 -0
  468. package/dist/wasm/node_modules/isexe/index.js +57 -0
  469. package/dist/wasm/node_modules/isexe/mode.js +41 -0
  470. package/dist/wasm/node_modules/isexe/package.json +31 -0
  471. package/dist/wasm/node_modules/isexe/test/basic.js +221 -0
  472. package/dist/wasm/node_modules/isexe/windows.js +42 -0
  473. package/dist/wasm/node_modules/js-yaml/LICENSE +21 -0
  474. package/dist/wasm/node_modules/js-yaml/README.md +246 -0
  475. package/dist/wasm/node_modules/js-yaml/bin/js-yaml.js +126 -0
  476. package/dist/wasm/node_modules/js-yaml/dist/js-yaml.js +3874 -0
  477. package/dist/wasm/node_modules/js-yaml/dist/js-yaml.min.js +2 -0
  478. package/dist/wasm/node_modules/js-yaml/dist/js-yaml.mjs +3851 -0
  479. package/dist/wasm/node_modules/js-yaml/index.js +30 -0
  480. package/dist/wasm/node_modules/js-yaml/lib/common.js +59 -0
  481. package/dist/wasm/node_modules/js-yaml/lib/dumper.js +979 -0
  482. package/dist/wasm/node_modules/js-yaml/lib/exception.js +55 -0
  483. package/dist/wasm/node_modules/js-yaml/lib/loader.js +1733 -0
  484. package/dist/wasm/node_modules/js-yaml/lib/schema/core.js +11 -0
  485. package/dist/wasm/node_modules/js-yaml/lib/schema/default.js +22 -0
  486. package/dist/wasm/node_modules/js-yaml/lib/schema/failsafe.js +17 -0
  487. package/dist/wasm/node_modules/js-yaml/lib/schema/json.js +19 -0
  488. package/dist/wasm/node_modules/js-yaml/lib/schema.js +121 -0
  489. package/dist/wasm/node_modules/js-yaml/lib/snippet.js +101 -0
  490. package/dist/wasm/node_modules/js-yaml/lib/type/binary.js +125 -0
  491. package/dist/wasm/node_modules/js-yaml/lib/type/bool.js +35 -0
  492. package/dist/wasm/node_modules/js-yaml/lib/type/float.js +97 -0
  493. package/dist/wasm/node_modules/js-yaml/lib/type/int.js +156 -0
  494. package/dist/wasm/node_modules/js-yaml/lib/type/map.js +8 -0
  495. package/dist/wasm/node_modules/js-yaml/lib/type/merge.js +12 -0
  496. package/dist/wasm/node_modules/js-yaml/lib/type/null.js +35 -0
  497. package/dist/wasm/node_modules/js-yaml/lib/type/omap.js +44 -0
  498. package/dist/wasm/node_modules/js-yaml/lib/type/pairs.js +53 -0
  499. package/dist/wasm/node_modules/js-yaml/lib/type/seq.js +8 -0
  500. package/dist/wasm/node_modules/js-yaml/lib/type/set.js +29 -0
  501. package/dist/wasm/node_modules/js-yaml/lib/type/str.js +8 -0
  502. package/dist/wasm/node_modules/js-yaml/lib/type/timestamp.js +88 -0
  503. package/dist/wasm/node_modules/js-yaml/lib/type.js +65 -0
  504. package/dist/wasm/node_modules/js-yaml/package.json +65 -0
  505. package/dist/wasm/node_modules/merge2/LICENSE +21 -0
  506. package/dist/wasm/node_modules/merge2/README.md +144 -0
  507. package/dist/wasm/node_modules/merge2/index.js +144 -0
  508. package/dist/wasm/node_modules/merge2/package.json +43 -0
  509. package/dist/wasm/node_modules/micromatch/LICENSE +21 -0
  510. package/dist/wasm/node_modules/micromatch/README.md +1024 -0
  511. package/dist/wasm/node_modules/micromatch/index.js +474 -0
  512. package/dist/wasm/node_modules/micromatch/package.json +119 -0
  513. package/dist/wasm/node_modules/path-key/index.d.ts +40 -0
  514. package/dist/wasm/node_modules/path-key/index.js +16 -0
  515. package/dist/wasm/node_modules/path-key/license +9 -0
  516. package/dist/wasm/node_modules/path-key/package.json +39 -0
  517. package/dist/wasm/node_modules/path-key/readme.md +61 -0
  518. package/dist/wasm/node_modules/picomatch/LICENSE +21 -0
  519. package/dist/wasm/node_modules/picomatch/README.md +716 -0
  520. package/dist/wasm/node_modules/picomatch/index.js +3 -0
  521. package/dist/wasm/node_modules/picomatch/lib/constants.js +184 -0
  522. package/dist/wasm/node_modules/picomatch/lib/parse.js +1392 -0
  523. package/dist/wasm/node_modules/picomatch/lib/picomatch.js +342 -0
  524. package/dist/wasm/node_modules/picomatch/lib/scan.js +391 -0
  525. package/dist/wasm/node_modules/picomatch/lib/utils.js +64 -0
  526. package/dist/wasm/node_modules/picomatch/package.json +81 -0
  527. package/dist/wasm/node_modules/queue-microtask/LICENSE +20 -0
  528. package/dist/wasm/node_modules/queue-microtask/README.md +90 -0
  529. package/dist/wasm/node_modules/queue-microtask/index.d.ts +2 -0
  530. package/dist/wasm/node_modules/queue-microtask/index.js +9 -0
  531. package/dist/wasm/node_modules/queue-microtask/package.json +55 -0
  532. package/dist/wasm/node_modules/reusify/.github/dependabot.yml +7 -0
  533. package/dist/wasm/node_modules/reusify/.github/workflows/ci.yml +96 -0
  534. package/dist/wasm/node_modules/reusify/LICENSE +22 -0
  535. package/dist/wasm/node_modules/reusify/README.md +139 -0
  536. package/dist/wasm/node_modules/reusify/SECURITY.md +15 -0
  537. package/dist/wasm/node_modules/reusify/benchmarks/createNoCodeFunction.js +30 -0
  538. package/dist/wasm/node_modules/reusify/benchmarks/fib.js +13 -0
  539. package/dist/wasm/node_modules/reusify/benchmarks/reuseNoCodeFunction.js +38 -0
  540. package/dist/wasm/node_modules/reusify/eslint.config.js +14 -0
  541. package/dist/wasm/node_modules/reusify/package.json +50 -0
  542. package/dist/wasm/node_modules/reusify/reusify.d.ts +14 -0
  543. package/dist/wasm/node_modules/reusify/reusify.js +33 -0
  544. package/dist/wasm/node_modules/reusify/test.js +66 -0
  545. package/dist/wasm/node_modules/reusify/tsconfig.json +11 -0
  546. package/dist/wasm/node_modules/run-parallel/LICENSE +20 -0
  547. package/dist/wasm/node_modules/run-parallel/README.md +85 -0
  548. package/dist/wasm/node_modules/run-parallel/index.js +51 -0
  549. package/dist/wasm/node_modules/run-parallel/package.json +58 -0
  550. package/dist/wasm/node_modules/shebang-command/index.js +19 -0
  551. package/dist/wasm/node_modules/shebang-command/license +9 -0
  552. package/dist/wasm/node_modules/shebang-command/package.json +34 -0
  553. package/dist/wasm/node_modules/shebang-command/readme.md +34 -0
  554. package/dist/wasm/node_modules/shebang-regex/index.d.ts +22 -0
  555. package/dist/wasm/node_modules/shebang-regex/index.js +2 -0
  556. package/dist/wasm/node_modules/shebang-regex/license +9 -0
  557. package/dist/wasm/node_modules/shebang-regex/package.json +35 -0
  558. package/dist/wasm/node_modules/shebang-regex/readme.md +33 -0
  559. package/dist/wasm/node_modules/supports-color/browser.js +5 -0
  560. package/dist/wasm/node_modules/supports-color/index.js +135 -0
  561. package/dist/wasm/node_modules/supports-color/license +9 -0
  562. package/dist/wasm/node_modules/supports-color/package.json +53 -0
  563. package/dist/wasm/node_modules/supports-color/readme.md +76 -0
  564. package/dist/wasm/node_modules/to-regex-range/LICENSE +21 -0
  565. package/dist/wasm/node_modules/to-regex-range/README.md +305 -0
  566. package/dist/wasm/node_modules/to-regex-range/index.js +288 -0
  567. package/dist/wasm/node_modules/to-regex-range/package.json +88 -0
  568. package/dist/wasm/node_modules/tslib/CopyrightNotice.txt +15 -0
  569. package/dist/wasm/node_modules/tslib/LICENSE.txt +12 -0
  570. package/dist/wasm/node_modules/tslib/README.md +164 -0
  571. package/dist/wasm/node_modules/tslib/SECURITY.md +41 -0
  572. package/dist/wasm/node_modules/tslib/modules/index.d.ts +38 -0
  573. package/dist/wasm/node_modules/tslib/modules/index.js +70 -0
  574. package/dist/wasm/node_modules/tslib/modules/package.json +3 -0
  575. package/dist/wasm/node_modules/tslib/package.json +47 -0
  576. package/dist/wasm/node_modules/tslib/tslib.d.ts +460 -0
  577. package/dist/wasm/node_modules/tslib/tslib.es6.html +1 -0
  578. package/dist/wasm/node_modules/tslib/tslib.es6.js +402 -0
  579. package/dist/wasm/node_modules/tslib/tslib.es6.mjs +401 -0
  580. package/dist/wasm/node_modules/tslib/tslib.html +1 -0
  581. package/dist/wasm/node_modules/tslib/tslib.js +484 -0
  582. package/dist/wasm/node_modules/typanion/README.md +117 -0
  583. package/dist/wasm/node_modules/typanion/lib/index.d.ts +5 -0
  584. package/dist/wasm/node_modules/typanion/lib/index.js +1305 -0
  585. package/dist/wasm/node_modules/typanion/lib/index.mjs +1249 -0
  586. package/dist/wasm/node_modules/typanion/lib/internal/format.d.ts +5 -0
  587. package/dist/wasm/node_modules/typanion/lib/internal/regexps.d.ts +5 -0
  588. package/dist/wasm/node_modules/typanion/lib/internal/tools.d.ts +5 -0
  589. package/dist/wasm/node_modules/typanion/lib/predicates/cascadingPredicates.d.ts +114 -0
  590. package/dist/wasm/node_modules/typanion/lib/predicates/helperPredicates.d.ts +80 -0
  591. package/dist/wasm/node_modules/typanion/lib/predicates/typePredicates.d.ts +205 -0
  592. package/dist/wasm/node_modules/typanion/lib/tools.d.ts +90 -0
  593. package/dist/wasm/node_modules/typanion/lib/types.d.ts +22 -0
  594. package/dist/wasm/node_modules/typanion/package.json +40 -0
  595. package/dist/wasm/node_modules/which/CHANGELOG.md +166 -0
  596. package/dist/wasm/node_modules/which/LICENSE +15 -0
  597. package/dist/wasm/node_modules/which/README.md +54 -0
  598. package/dist/wasm/node_modules/which/bin/node-which +52 -0
  599. package/dist/wasm/node_modules/which/package.json +43 -0
  600. package/dist/wasm/node_modules/which/which.js +125 -0
  601. package/dist/wasm/package.json +10 -0
  602. package/dist/wasm/pnpm.mjs +8 -0
  603. package/dist/wasm/pnpm.wasm +4 -0
  604. package/dist/wasm/pnpx.mjs +8 -0
  605. package/dist/wasm/run.mjs +147 -0
  606. package/dist/wasm/worker.mjs +56 -0
  607. package/install.js +18 -21
  608. package/package.json +16 -16
  609. package/pn +2 -70
  610. package/pnpm +2 -90
  611. package/pnpx +2 -70
  612. package/pnx +2 -70
@@ -0,0 +1,926 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.globUtils = exports.ShellError = exports.EntryCommand = void 0;
4
+ exports.execute = execute;
5
+ const tslib_1 = require("tslib");
6
+ const fslib_1 = require("@yarnpkg/fslib");
7
+ const parsers_1 = require("@yarnpkg/parsers");
8
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
9
+ const os_1 = require("os");
10
+ const stream_1 = require("stream");
11
+ const promises_1 = require("timers/promises");
12
+ const entry_1 = tslib_1.__importDefault(require("./commands/entry"));
13
+ exports.EntryCommand = entry_1.default;
14
+ const errors_1 = require("./errors");
15
+ Object.defineProperty(exports, "ShellError", { enumerable: true, get: function () { return errors_1.ShellError; } });
16
+ const globUtils = tslib_1.__importStar(require("./globUtils"));
17
+ exports.globUtils = globUtils;
18
+ const pipe_1 = require("./pipe");
19
+ const pipe_2 = require("./pipe");
20
+ var StreamType;
21
+ (function (StreamType) {
22
+ StreamType[StreamType["Readable"] = 1] = "Readable";
23
+ StreamType[StreamType["Writable"] = 2] = "Writable";
24
+ })(StreamType || (StreamType = {}));
25
+ function getFileDescriptorStream(fd, type, state) {
26
+ const stream = new stream_1.PassThrough({ autoDestroy: true });
27
+ switch (fd) {
28
+ case pipe_2.Pipe.STDIN:
29
+ {
30
+ if ((type & StreamType.Readable) === StreamType.Readable)
31
+ state.stdin.pipe(stream, { end: false });
32
+ if ((type & StreamType.Writable) === StreamType.Writable && state.stdin instanceof stream_1.Writable) {
33
+ stream.pipe(state.stdin, { end: false });
34
+ }
35
+ }
36
+ break;
37
+ case pipe_2.Pipe.STDOUT:
38
+ {
39
+ if ((type & StreamType.Readable) === StreamType.Readable)
40
+ state.stdout.pipe(stream, { end: false });
41
+ if ((type & StreamType.Writable) === StreamType.Writable) {
42
+ stream.pipe(state.stdout, { end: false });
43
+ }
44
+ }
45
+ break;
46
+ case pipe_2.Pipe.STDERR:
47
+ {
48
+ if ((type & StreamType.Readable) === StreamType.Readable)
49
+ state.stderr.pipe(stream, { end: false });
50
+ if ((type & StreamType.Writable) === StreamType.Writable) {
51
+ stream.pipe(state.stderr, { end: false });
52
+ }
53
+ }
54
+ break;
55
+ default: {
56
+ throw new errors_1.ShellError(`Bad file descriptor: "${fd}"`);
57
+ }
58
+ }
59
+ return stream;
60
+ }
61
+ function cloneState(state, mergeWith = {}) {
62
+ const newState = { ...state, ...mergeWith };
63
+ newState.environment = { ...state.environment, ...mergeWith.environment };
64
+ newState.variables = { ...state.variables, ...mergeWith.variables };
65
+ return newState;
66
+ }
67
+ const BUILTINS = new Map([
68
+ [`cd`, async ([target = (0, os_1.homedir)(), ...rest], opts, state) => {
69
+ const resolvedTarget = fslib_1.ppath.resolve(state.cwd, fslib_1.npath.toPortablePath(target));
70
+ const stat = await opts.baseFs.statPromise(resolvedTarget).catch(error => {
71
+ throw error.code === `ENOENT`
72
+ ? new errors_1.ShellError(`cd: no such file or directory: ${target}`)
73
+ : error;
74
+ });
75
+ if (!stat.isDirectory())
76
+ throw new errors_1.ShellError(`cd: not a directory: ${target}`);
77
+ state.cwd = resolvedTarget;
78
+ return 0;
79
+ }],
80
+ [`pwd`, async (args, opts, state) => {
81
+ state.stdout.write(`${fslib_1.npath.fromPortablePath(state.cwd)}\n`);
82
+ return 0;
83
+ }],
84
+ [`:`, async (args, opts, state) => {
85
+ return 0;
86
+ }],
87
+ [`true`, async (args, opts, state) => {
88
+ return 0;
89
+ }],
90
+ [`false`, async (args, opts, state) => {
91
+ return 1;
92
+ }],
93
+ [`exit`, async ([code, ...rest], opts, state) => {
94
+ return state.exitCode = parseInt(code ?? state.variables[`?`], 10);
95
+ }],
96
+ [`echo`, async (args, opts, state) => {
97
+ state.stdout.write(`${args.join(` `)}\n`);
98
+ return 0;
99
+ }],
100
+ [`sleep`, async ([time], opts, state) => {
101
+ if (typeof time === `undefined`)
102
+ throw new errors_1.ShellError(`sleep: missing operand`);
103
+ // TODO: make it support unit suffixes
104
+ const seconds = Number(time);
105
+ if (Number.isNaN(seconds))
106
+ throw new errors_1.ShellError(`sleep: invalid time interval '${time}'`);
107
+ return await (0, promises_1.setTimeout)(1000 * seconds, 0);
108
+ }],
109
+ [`unset`, async (args, opts, state) => {
110
+ for (const name of args) {
111
+ delete state.environment[name];
112
+ delete state.variables[name];
113
+ }
114
+ return 0;
115
+ }],
116
+ [`__ysh_run_procedure`, async (args, opts, state) => {
117
+ const procedure = state.procedures[args[0]];
118
+ const exitCode = await (0, pipe_2.start)(procedure, {
119
+ stdin: new pipe_2.ProtectedStream(state.stdin),
120
+ stdout: new pipe_2.ProtectedStream(state.stdout),
121
+ stderr: new pipe_2.ProtectedStream(state.stderr),
122
+ }).run();
123
+ return exitCode;
124
+ }],
125
+ [`__ysh_set_redirects`, async (args, opts, state) => {
126
+ let stdin = state.stdin;
127
+ let stdout = state.stdout;
128
+ let stderr = state.stderr;
129
+ const inputs = [];
130
+ const outputs = [];
131
+ const errors = [];
132
+ let t = 0;
133
+ while (args[t] !== `--`) {
134
+ const key = args[t++];
135
+ const { type, fd } = JSON.parse(key);
136
+ const pushInput = (readableFactory) => {
137
+ switch (fd) {
138
+ case null:
139
+ case 0:
140
+ {
141
+ inputs.push(readableFactory);
142
+ }
143
+ break;
144
+ default:
145
+ throw new Error(`Unsupported file descriptor: "${fd}"`);
146
+ }
147
+ };
148
+ const pushOutput = (writable) => {
149
+ switch (fd) {
150
+ case null:
151
+ case 1:
152
+ {
153
+ outputs.push(writable);
154
+ }
155
+ break;
156
+ case 2:
157
+ {
158
+ errors.push(writable);
159
+ }
160
+ break;
161
+ default:
162
+ throw new Error(`Unsupported file descriptor: "${fd}"`);
163
+ }
164
+ };
165
+ const count = Number(args[t++]);
166
+ const last = t + count;
167
+ for (let u = t; u < last; ++t, ++u) {
168
+ switch (type) {
169
+ case `<`:
170
+ {
171
+ pushInput(() => {
172
+ return opts.baseFs.createReadStream(fslib_1.ppath.resolve(state.cwd, fslib_1.npath.toPortablePath(args[u])));
173
+ });
174
+ }
175
+ break;
176
+ case `<<<`:
177
+ {
178
+ pushInput(() => {
179
+ const input = new stream_1.PassThrough();
180
+ process.nextTick(() => {
181
+ input.write(`${args[u]}\n`);
182
+ input.end();
183
+ });
184
+ return input;
185
+ });
186
+ }
187
+ break;
188
+ case `<&`:
189
+ {
190
+ pushInput(() => getFileDescriptorStream(Number(args[u]), StreamType.Readable, state));
191
+ }
192
+ break;
193
+ case `>`:
194
+ case `>>`:
195
+ {
196
+ const outputPath = fslib_1.ppath.resolve(state.cwd, fslib_1.npath.toPortablePath(args[u]));
197
+ if (outputPath === `/dev/null`) {
198
+ pushOutput(new stream_1.Writable({
199
+ autoDestroy: true,
200
+ emitClose: true,
201
+ write(chunk, encoding, callback) {
202
+ setImmediate(callback);
203
+ },
204
+ }));
205
+ }
206
+ else {
207
+ pushOutput(opts.baseFs.createWriteStream(outputPath, type === `>>` ? { flags: `a` } : undefined));
208
+ }
209
+ }
210
+ break;
211
+ case `>&`:
212
+ {
213
+ pushOutput(getFileDescriptorStream(Number(args[u]), StreamType.Writable, state));
214
+ }
215
+ break;
216
+ default: {
217
+ throw new Error(`Assertion failed: Unsupported redirection type: "${type}"`);
218
+ }
219
+ }
220
+ }
221
+ }
222
+ if (inputs.length > 0) {
223
+ const pipe = new stream_1.PassThrough();
224
+ stdin = pipe;
225
+ const bindInput = (n) => {
226
+ if (n === inputs.length) {
227
+ pipe.end();
228
+ }
229
+ else {
230
+ const input = inputs[n]();
231
+ input.pipe(pipe, { end: false });
232
+ input.on(`end`, () => {
233
+ bindInput(n + 1);
234
+ });
235
+ }
236
+ };
237
+ bindInput(0);
238
+ }
239
+ if (outputs.length > 0) {
240
+ const pipe = new stream_1.PassThrough();
241
+ stdout = pipe;
242
+ for (const output of outputs) {
243
+ pipe.pipe(output);
244
+ }
245
+ }
246
+ if (errors.length > 0) {
247
+ const pipe = new stream_1.PassThrough();
248
+ stderr = pipe;
249
+ for (const error of errors) {
250
+ pipe.pipe(error);
251
+ }
252
+ }
253
+ const exitCode = await (0, pipe_2.start)(makeCommandAction(args.slice(t + 1), opts, state), {
254
+ stdin: new pipe_2.ProtectedStream(stdin),
255
+ stdout: new pipe_2.ProtectedStream(stdout),
256
+ stderr: new pipe_2.ProtectedStream(stderr),
257
+ }).run();
258
+ // Close all the outputs (since the shell never closes the output stream)
259
+ await Promise.all(outputs.map(output => {
260
+ // Wait until the output got flushed to the disk
261
+ return new Promise((resolve, reject) => {
262
+ output.on(`error`, error => {
263
+ reject(error);
264
+ });
265
+ output.on(`close`, () => {
266
+ resolve();
267
+ });
268
+ output.end();
269
+ });
270
+ }));
271
+ // Close all the errors (since the shell never closes the error stream)
272
+ await Promise.all(errors.map(err => {
273
+ // Wait until the error got flushed to the disk
274
+ return new Promise((resolve, reject) => {
275
+ err.on(`error`, error => {
276
+ reject(error);
277
+ });
278
+ err.on(`close`, () => {
279
+ resolve();
280
+ });
281
+ err.end();
282
+ });
283
+ }));
284
+ return exitCode;
285
+ }],
286
+ ]);
287
+ async function executeBufferedSubshell(ast, opts, state) {
288
+ const chunks = [];
289
+ const stdout = new stream_1.PassThrough();
290
+ stdout.on(`data`, chunk => chunks.push(chunk));
291
+ await executeShellLine(ast, opts, cloneState(state, { stdout }));
292
+ return Buffer.concat(chunks).toString().replace(/[\r\n]+$/, ``);
293
+ }
294
+ async function applyEnvVariables(environmentSegments, opts, state) {
295
+ const envPromises = environmentSegments.map(async (envSegment) => {
296
+ const interpolatedArgs = await interpolateArguments(envSegment.args, opts, state);
297
+ return {
298
+ name: envSegment.name,
299
+ value: interpolatedArgs.join(` `),
300
+ };
301
+ });
302
+ const interpolatedEnvs = await Promise.all(envPromises);
303
+ return interpolatedEnvs.reduce((envs, env) => {
304
+ envs[env.name] = env.value;
305
+ return envs;
306
+ }, {});
307
+ }
308
+ function split(raw) {
309
+ return raw.match(/[^ \r\n\t]+/g) || [];
310
+ }
311
+ async function evaluateVariable(segment, opts, state, push, pushAndClose = push) {
312
+ switch (segment.name) {
313
+ case `$`:
314
+ {
315
+ push(String(process.pid));
316
+ }
317
+ break;
318
+ case `#`:
319
+ {
320
+ push(String(opts.args.length));
321
+ }
322
+ break;
323
+ case `@`:
324
+ {
325
+ if (segment.quoted) {
326
+ for (const raw of opts.args) {
327
+ pushAndClose(raw);
328
+ }
329
+ }
330
+ else {
331
+ for (const raw of opts.args) {
332
+ const parts = split(raw);
333
+ for (let t = 0; t < parts.length - 1; ++t)
334
+ pushAndClose(parts[t]);
335
+ push(parts[parts.length - 1]);
336
+ }
337
+ }
338
+ }
339
+ break;
340
+ case `*`:
341
+ {
342
+ const raw = opts.args.join(` `);
343
+ if (segment.quoted) {
344
+ push(raw);
345
+ }
346
+ else {
347
+ for (const part of split(raw)) {
348
+ pushAndClose(part);
349
+ }
350
+ }
351
+ }
352
+ break;
353
+ case `PPID`:
354
+ {
355
+ push(String(process.ppid));
356
+ }
357
+ break;
358
+ case `RANDOM`:
359
+ {
360
+ push(String(Math.floor(Math.random() * 32768)));
361
+ }
362
+ break;
363
+ default:
364
+ {
365
+ const argIndex = parseInt(segment.name, 10);
366
+ let raw;
367
+ const isArgument = Number.isFinite(argIndex);
368
+ if (isArgument) {
369
+ if (argIndex >= 0 && argIndex < opts.args.length) {
370
+ raw = opts.args[argIndex];
371
+ }
372
+ }
373
+ else {
374
+ if (Object.hasOwn(state.variables, segment.name)) {
375
+ raw = state.variables[segment.name];
376
+ }
377
+ else if (Object.hasOwn(state.environment, segment.name)) {
378
+ raw = state.environment[segment.name];
379
+ }
380
+ }
381
+ if (typeof raw !== `undefined` && segment.alternativeValue) {
382
+ raw = (await interpolateArguments(segment.alternativeValue, opts, state)).join(` `);
383
+ }
384
+ else if (typeof raw === `undefined`) {
385
+ if (segment.defaultValue) {
386
+ raw = (await interpolateArguments(segment.defaultValue, opts, state)).join(` `);
387
+ }
388
+ else if (segment.alternativeValue) {
389
+ raw = ``; // if raw === `undefined`, but there is an alternative value, it should not be thrown.
390
+ }
391
+ }
392
+ if (typeof raw === `undefined`) {
393
+ if (isArgument)
394
+ throw new errors_1.ShellError(`Unbound argument #${argIndex}`);
395
+ throw new errors_1.ShellError(`Unbound variable "${segment.name}"`);
396
+ }
397
+ if (segment.quoted) {
398
+ push(raw);
399
+ }
400
+ else {
401
+ const parts = split(raw);
402
+ for (let t = 0; t < parts.length - 1; ++t)
403
+ pushAndClose(parts[t]);
404
+ const part = parts[parts.length - 1];
405
+ if (typeof part !== `undefined`) {
406
+ push(part);
407
+ }
408
+ }
409
+ }
410
+ break;
411
+ }
412
+ }
413
+ const operators = {
414
+ addition: (left, right) => left + right,
415
+ subtraction: (left, right) => left - right,
416
+ multiplication: (left, right) => left * right,
417
+ division: (left, right) => Math.trunc(left / right),
418
+ };
419
+ async function evaluateArithmetic(arithmetic, opts, state) {
420
+ if (arithmetic.type === `number`) {
421
+ if (!Number.isInteger(arithmetic.value)) {
422
+ // ZSH allows non-integers, while bash throws at the parser level (unrecoverable)
423
+ throw new Error(`Invalid number: "${arithmetic.value}", only integers are allowed`);
424
+ }
425
+ else {
426
+ return arithmetic.value;
427
+ }
428
+ }
429
+ else if (arithmetic.type === `variable`) {
430
+ const parts = [];
431
+ await evaluateVariable({ ...arithmetic, quoted: true }, opts, state, result => parts.push(result));
432
+ const number = Number(parts.join(` `));
433
+ if (Number.isNaN(number)) {
434
+ return evaluateArithmetic({ type: `variable`, name: parts.join(` `) }, opts, state);
435
+ }
436
+ else {
437
+ return evaluateArithmetic({ type: `number`, value: number }, opts, state);
438
+ }
439
+ }
440
+ else {
441
+ return operators[arithmetic.type](await evaluateArithmetic(arithmetic.left, opts, state), await evaluateArithmetic(arithmetic.right, opts, state));
442
+ }
443
+ }
444
+ async function interpolateArguments(commandArgs, opts, state) {
445
+ const redirections = new Map();
446
+ const interpolated = [];
447
+ let interpolatedSegments = [];
448
+ const push = (segment) => {
449
+ interpolatedSegments.push(segment);
450
+ };
451
+ const close = () => {
452
+ if (interpolatedSegments.length > 0)
453
+ interpolated.push(interpolatedSegments.join(``));
454
+ interpolatedSegments = [];
455
+ };
456
+ const pushAndClose = (segment) => {
457
+ push(segment);
458
+ close();
459
+ };
460
+ const redirect = (type, fd, target) => {
461
+ const key = JSON.stringify({ type, fd });
462
+ let targets = redirections.get(key);
463
+ if (typeof targets === `undefined`)
464
+ redirections.set(key, targets = []);
465
+ targets.push(target);
466
+ };
467
+ for (const commandArg of commandArgs) {
468
+ let isGlob = false;
469
+ switch (commandArg.type) {
470
+ case `redirection`:
471
+ {
472
+ const interpolatedArgs = await interpolateArguments(commandArg.args, opts, state);
473
+ for (const interpolatedArg of interpolatedArgs) {
474
+ redirect(commandArg.subtype, commandArg.fd, interpolatedArg);
475
+ }
476
+ }
477
+ break;
478
+ case `argument`:
479
+ {
480
+ for (const segment of commandArg.segments) {
481
+ switch (segment.type) {
482
+ case `text`:
483
+ {
484
+ push(segment.text);
485
+ }
486
+ break;
487
+ case `glob`:
488
+ {
489
+ push(segment.pattern);
490
+ isGlob = true;
491
+ }
492
+ break;
493
+ case `shell`:
494
+ {
495
+ const raw = await executeBufferedSubshell(segment.shell, opts, state);
496
+ if (segment.quoted) {
497
+ push(raw);
498
+ }
499
+ else {
500
+ const parts = split(raw);
501
+ for (let t = 0; t < parts.length - 1; ++t)
502
+ pushAndClose(parts[t]);
503
+ push(parts[parts.length - 1]);
504
+ }
505
+ }
506
+ break;
507
+ case `variable`:
508
+ {
509
+ await evaluateVariable(segment, opts, state, push, pushAndClose);
510
+ }
511
+ break;
512
+ case `arithmetic`:
513
+ {
514
+ push(String(await evaluateArithmetic(segment.arithmetic, opts, state)));
515
+ }
516
+ break;
517
+ }
518
+ }
519
+ }
520
+ break;
521
+ }
522
+ close();
523
+ if (isGlob) {
524
+ const pattern = interpolated.pop();
525
+ if (typeof pattern === `undefined`)
526
+ throw new Error(`Assertion failed: Expected a glob pattern to have been set`);
527
+ const matches = await opts.glob.match(pattern, { cwd: state.cwd, baseFs: opts.baseFs });
528
+ if (matches.length === 0) {
529
+ const braceExpansionNotice = globUtils.isBraceExpansion(pattern)
530
+ ? `. Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22`
531
+ : ``;
532
+ throw new errors_1.ShellError(`No matches found: "${pattern}"${braceExpansionNotice}`);
533
+ }
534
+ for (const match of matches.sort()) {
535
+ pushAndClose(match);
536
+ }
537
+ }
538
+ }
539
+ if (redirections.size > 0) {
540
+ const redirectionArgs = [];
541
+ for (const [key, targets] of redirections.entries())
542
+ redirectionArgs.splice(redirectionArgs.length, 0, key, String(targets.length), ...targets);
543
+ interpolated.splice(0, 0, `__ysh_set_redirects`, ...redirectionArgs, `--`);
544
+ }
545
+ return interpolated;
546
+ }
547
+ /**
548
+ * Executes a command chain. A command chain is a list of commands linked
549
+ * together thanks to the use of either of the `|` or `|&` operators:
550
+ *
551
+ * $ cat hello | grep world | grep -v foobar
552
+ */
553
+ function makeCommandAction(args, opts, state) {
554
+ if (!opts.builtins.has(args[0]))
555
+ args = [`command`, ...args];
556
+ const nativeCwd = fslib_1.npath.fromPortablePath(state.cwd);
557
+ let env = state.environment;
558
+ if (typeof env.PWD !== `undefined`)
559
+ env = { ...env, PWD: nativeCwd };
560
+ const [name, ...rest] = args;
561
+ if (name === `command`) {
562
+ return (0, pipe_1.makeProcess)(rest[0], rest.slice(1), opts, {
563
+ cwd: nativeCwd,
564
+ env,
565
+ });
566
+ }
567
+ const builtin = opts.builtins.get(name);
568
+ if (typeof builtin === `undefined`)
569
+ throw new Error(`Assertion failed: A builtin should exist for "${name}"`);
570
+ return (0, pipe_1.makeBuiltin)(async ({ stdin, stdout, stderr }) => {
571
+ const { stdin: initialStdin, stdout: initialStdout, stderr: initialStderr, } = state;
572
+ state.stdin = stdin;
573
+ state.stdout = stdout;
574
+ state.stderr = stderr;
575
+ try {
576
+ return await builtin(rest, opts, state);
577
+ }
578
+ finally {
579
+ state.stdin = initialStdin;
580
+ state.stdout = initialStdout;
581
+ state.stderr = initialStderr;
582
+ }
583
+ });
584
+ }
585
+ function makeSubshellAction(ast, opts, state) {
586
+ return (stdio) => {
587
+ const stdin = new stream_1.PassThrough();
588
+ const promise = executeShellLine(ast, opts, cloneState(state, { stdin }));
589
+ return { stdin, promise };
590
+ };
591
+ }
592
+ function makeGroupAction(ast, opts, state) {
593
+ return (stdio) => {
594
+ const stdin = new stream_1.PassThrough();
595
+ const promise = executeShellLine(ast, opts, state);
596
+ return { stdin, promise };
597
+ };
598
+ }
599
+ function makeActionFromProcedure(procedure, args, opts, activeState) {
600
+ if (args.length === 0) {
601
+ return procedure;
602
+ }
603
+ else {
604
+ let key;
605
+ do {
606
+ key = String(Math.random());
607
+ } while (Object.hasOwn(activeState.procedures, key));
608
+ activeState.procedures = { ...activeState.procedures };
609
+ activeState.procedures[key] = procedure;
610
+ return makeCommandAction([...args, `__ysh_run_procedure`, key], opts, activeState);
611
+ }
612
+ }
613
+ async function executeCommandChainImpl(node, opts, state) {
614
+ let current = node;
615
+ let pipeType = null;
616
+ let execution = null;
617
+ while (current) {
618
+ // Only the final segment is allowed to modify the shell state; all the
619
+ // other ones are isolated
620
+ const activeState = current.then
621
+ ? { ...state }
622
+ : state;
623
+ let action;
624
+ switch (current.type) {
625
+ case `command`:
626
+ {
627
+ const args = await interpolateArguments(current.args, opts, state);
628
+ const environment = await applyEnvVariables(current.envs, opts, state);
629
+ action = current.envs.length
630
+ ? makeCommandAction(args, opts, cloneState(activeState, { environment }))
631
+ : makeCommandAction(args, opts, activeState);
632
+ }
633
+ break;
634
+ case `subshell`:
635
+ {
636
+ const args = await interpolateArguments(current.args, opts, state);
637
+ // We don't interpolate the subshell because it will be recursively
638
+ // interpolated within its own context
639
+ const procedure = makeSubshellAction(current.subshell, opts, activeState);
640
+ action = makeActionFromProcedure(procedure, args, opts, activeState);
641
+ }
642
+ break;
643
+ case `group`:
644
+ {
645
+ const args = await interpolateArguments(current.args, opts, state);
646
+ const procedure = makeGroupAction(current.group, opts, activeState);
647
+ action = makeActionFromProcedure(procedure, args, opts, activeState);
648
+ }
649
+ break;
650
+ case `envs`:
651
+ {
652
+ const environment = await applyEnvVariables(current.envs, opts, state);
653
+ activeState.environment = { ...activeState.environment, ...environment };
654
+ action = makeCommandAction([`true`], opts, activeState);
655
+ }
656
+ break;
657
+ }
658
+ if (typeof action === `undefined`)
659
+ throw new Error(`Assertion failed: An action should have been generated`);
660
+ if (pipeType === null) {
661
+ // If we're processing the left-most segment of the command, we start a
662
+ // new execution pipeline
663
+ execution = (0, pipe_2.start)(action, {
664
+ stdin: new pipe_2.ProtectedStream(activeState.stdin),
665
+ stdout: new pipe_2.ProtectedStream(activeState.stdout),
666
+ stderr: new pipe_2.ProtectedStream(activeState.stderr),
667
+ });
668
+ }
669
+ else {
670
+ if (execution === null)
671
+ throw new Error(`Assertion failed: The execution pipeline should have been setup`);
672
+ // Otherwise, depending on the exaxct pipe type, we either pipe stdout
673
+ // only or stdout and stderr
674
+ switch (pipeType) {
675
+ case `|`:
676
+ {
677
+ execution = execution.pipeTo(action, pipe_2.Pipe.STDOUT);
678
+ }
679
+ break;
680
+ case `|&`:
681
+ {
682
+ execution = execution.pipeTo(action, pipe_2.Pipe.STDOUT | pipe_2.Pipe.STDERR);
683
+ }
684
+ break;
685
+ }
686
+ }
687
+ if (current.then) {
688
+ pipeType = current.then.type;
689
+ current = current.then.chain;
690
+ }
691
+ else {
692
+ current = null;
693
+ }
694
+ }
695
+ if (execution === null)
696
+ throw new Error(`Assertion failed: The execution pipeline should have been setup`);
697
+ return await execution.run();
698
+ }
699
+ async function executeCommandChain(node, opts, state, { background = false } = {}) {
700
+ function getColorizer(index) {
701
+ const colors = [`#2E86AB`, `#A23B72`, `#F18F01`, `#C73E1D`, `#CCE2A3`];
702
+ const colorName = colors[index % colors.length];
703
+ return chalk_1.default.hex(colorName);
704
+ }
705
+ if (background) {
706
+ const index = state.nextBackgroundJobIndex++;
707
+ const colorizer = getColorizer(index);
708
+ const rawPrefix = `[${index}]`;
709
+ const prefix = colorizer(rawPrefix);
710
+ const { stdout, stderr } = (0, pipe_1.createOutputStreamsWithPrefix)(state, { prefix });
711
+ state.backgroundJobs.push(executeCommandChainImpl(node, opts, cloneState(state, { stdout, stderr }))
712
+ .catch(error => stderr.write(`${error.message}\n`))
713
+ .finally(() => {
714
+ if (state.stdout.isTTY) {
715
+ state.stdout.write(`Job ${prefix}, '${colorizer((0, parsers_1.stringifyCommandChain)(node))}' has ended\n`);
716
+ }
717
+ }));
718
+ return 0;
719
+ }
720
+ return await executeCommandChainImpl(node, opts, state);
721
+ }
722
+ /**
723
+ * Execute a command line. A command line is a list of command shells linked
724
+ * together thanks to the use of either of the `||` or `&&` operators.
725
+ */
726
+ async function executeCommandLine(node, opts, state, { background = false } = {}) {
727
+ let code;
728
+ const setCode = (newCode) => {
729
+ code = newCode;
730
+ // We must update $?, which always contains the exit code from
731
+ // the right-most command
732
+ state.variables[`?`] = String(newCode);
733
+ };
734
+ const executeChain = async (line) => {
735
+ try {
736
+ return await executeCommandChain(line.chain, opts, state, { background: background && typeof line.then === `undefined` });
737
+ }
738
+ catch (error) {
739
+ if (!(error instanceof errors_1.ShellError))
740
+ throw error;
741
+ state.stderr.write(`${error.message}\n`);
742
+ return 1;
743
+ }
744
+ };
745
+ setCode(await executeChain(node));
746
+ // We use a loop because we must make sure that we respect
747
+ // the left associativity of lists, as per the bash spec.
748
+ // (e.g. `inexistent && echo yes || echo no` must be
749
+ // the same as `{inexistent && echo yes} || echo no`)
750
+ while (node.then) {
751
+ // If the execution aborted (usually through "exit"), we must bailout
752
+ if (state.exitCode !== null)
753
+ return state.exitCode;
754
+ switch (node.then.type) {
755
+ case `&&`:
756
+ {
757
+ if (code === 0) {
758
+ setCode(await executeChain(node.then.line));
759
+ }
760
+ }
761
+ break;
762
+ case `||`:
763
+ {
764
+ if (code !== 0) {
765
+ setCode(await executeChain(node.then.line));
766
+ }
767
+ }
768
+ break;
769
+ default: {
770
+ throw new Error(`Assertion failed: Unsupported command type: "${node.then.type}"`);
771
+ }
772
+ }
773
+ node = node.then.line;
774
+ }
775
+ return code;
776
+ }
777
+ async function executeShellLine(node, opts, state) {
778
+ const originalBackgroundJobs = state.backgroundJobs;
779
+ state.backgroundJobs = [];
780
+ let rightMostExitCode = 0;
781
+ for (const { command, type } of node) {
782
+ rightMostExitCode = await executeCommandLine(command, opts, state, { background: type === `&` });
783
+ // If the execution aborted (usually through "exit"), we must bailout
784
+ if (state.exitCode !== null)
785
+ return state.exitCode;
786
+ // We must update $?, which always contains the exit code from
787
+ // the right-most command
788
+ state.variables[`?`] = String(rightMostExitCode);
789
+ }
790
+ await Promise.all(state.backgroundJobs);
791
+ state.backgroundJobs = originalBackgroundJobs;
792
+ return rightMostExitCode;
793
+ }
794
+ function locateArgsVariableInSegment(segment) {
795
+ switch (segment.type) {
796
+ case `variable`: {
797
+ return segment.name === `@` || segment.name === `#` || segment.name === `*` || Number.isFinite(parseInt(segment.name, 10)) || (`defaultValue` in segment && !!segment.defaultValue && segment.defaultValue.some(arg => locateArgsVariableInArgument(arg))) || (`alternativeValue` in segment && !!segment.alternativeValue && segment.alternativeValue.some(arg => locateArgsVariableInArgument(arg)));
798
+ }
799
+ case `arithmetic`: {
800
+ return locateArgsVariableInArithmetic(segment.arithmetic);
801
+ }
802
+ case `shell`: {
803
+ return locateArgsVariable(segment.shell);
804
+ }
805
+ default: {
806
+ return false;
807
+ }
808
+ }
809
+ }
810
+ function locateArgsVariableInArgument(arg) {
811
+ switch (arg.type) {
812
+ case `redirection`: {
813
+ return arg.args.some(arg => locateArgsVariableInArgument(arg));
814
+ }
815
+ case `argument`: {
816
+ return arg.segments.some(segment => locateArgsVariableInSegment(segment));
817
+ }
818
+ default:
819
+ throw new Error(`Assertion failed: Unsupported argument type: "${arg.type}"`);
820
+ }
821
+ }
822
+ function locateArgsVariableInArithmetic(arg) {
823
+ switch (arg.type) {
824
+ case `variable`: {
825
+ return locateArgsVariableInSegment(arg);
826
+ }
827
+ case `number`: {
828
+ return false;
829
+ }
830
+ default:
831
+ return locateArgsVariableInArithmetic(arg.left) || locateArgsVariableInArithmetic(arg.right);
832
+ }
833
+ }
834
+ function locateArgsVariable(node) {
835
+ return node.some(({ command }) => {
836
+ while (command) {
837
+ let chain = command.chain;
838
+ while (chain) {
839
+ let hasArgs;
840
+ switch (chain.type) {
841
+ case `subshell`:
842
+ {
843
+ hasArgs = locateArgsVariable(chain.subshell);
844
+ }
845
+ break;
846
+ case `command`:
847
+ {
848
+ hasArgs = chain.envs.some(env => env.args.some(arg => {
849
+ return locateArgsVariableInArgument(arg);
850
+ })) || chain.args.some(arg => {
851
+ return locateArgsVariableInArgument(arg);
852
+ });
853
+ }
854
+ break;
855
+ }
856
+ if (hasArgs)
857
+ return true;
858
+ if (!chain.then)
859
+ break;
860
+ chain = chain.then.chain;
861
+ }
862
+ if (!command.then)
863
+ break;
864
+ command = command.then.line;
865
+ }
866
+ return false;
867
+ });
868
+ }
869
+ async function execute(command, args = [], { baseFs = new fslib_1.NodeFS(), builtins = {}, cwd = fslib_1.npath.toPortablePath(process.cwd()), env = process.env, stdin = process.stdin, stdout = process.stdout, stderr = process.stderr, variables = {}, glob = globUtils, } = {}) {
870
+ const normalizedEnv = {};
871
+ for (const [key, value] of Object.entries(env))
872
+ if (typeof value !== `undefined`)
873
+ normalizedEnv[key] = value;
874
+ const normalizedBuiltins = new Map(BUILTINS);
875
+ for (const [key, builtin] of Object.entries(builtins))
876
+ normalizedBuiltins.set(key, builtin);
877
+ // This is meant to be the equivalent of /dev/null
878
+ if (stdin === null) {
879
+ stdin = new stream_1.PassThrough();
880
+ stdin.end();
881
+ }
882
+ const ast = (0, parsers_1.parseShell)(command, glob);
883
+ // If the shell line doesn't use the args, inject it at the end of the
884
+ // right-most command
885
+ if (!locateArgsVariable(ast) && ast.length > 0 && args.length > 0) {
886
+ let { command } = ast[ast.length - 1];
887
+ while (command.then)
888
+ command = command.then.line;
889
+ let chain = command.chain;
890
+ while (chain.then)
891
+ chain = chain.then.chain;
892
+ if (chain.type === `command`) {
893
+ chain.args = chain.args.concat(args.map(arg => {
894
+ return {
895
+ type: `argument`,
896
+ segments: [{
897
+ type: `text`,
898
+ text: arg,
899
+ }],
900
+ };
901
+ }));
902
+ }
903
+ }
904
+ return await executeShellLine(ast, {
905
+ args,
906
+ baseFs,
907
+ builtins: normalizedBuiltins,
908
+ initialStdin: stdin,
909
+ initialStdout: stdout,
910
+ initialStderr: stderr,
911
+ glob,
912
+ }, {
913
+ cwd,
914
+ environment: normalizedEnv,
915
+ exitCode: null,
916
+ procedures: {},
917
+ stdin,
918
+ stdout,
919
+ stderr,
920
+ variables: Object.assign({}, variables, {
921
+ [`?`]: 0,
922
+ }),
923
+ nextBackgroundJobIndex: 1,
924
+ backgroundJobs: [],
925
+ });
926
+ }