@ohos-npm-ports/pnpm 12.8.1-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/README.md +280 -0
  2. package/THIRD-PARTY-NOTICES.md +42 -0
  3. package/bin/pnpm.mjs +144 -0
  4. package/bin/pnpx.mjs +9 -0
  5. package/dist/node-gyp-bin/node-gyp +6 -0
  6. package/dist/node-gyp-bin/node-gyp.cmd +5 -0
  7. package/dist/node_modules/.bin/get-pnpm +88 -0
  8. package/dist/node_modules/.bin/node-gyp +88 -0
  9. package/dist/node_modules/.bin/node-which +88 -0
  10. package/dist/node_modules/.bin/nopt +88 -0
  11. package/dist/node_modules/.bin/semver +88 -0
  12. package/dist/node_modules/.pnpm-workspace-state-v1.json +348 -0
  13. package/dist/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
  14. package/dist/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
  15. package/dist/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
  16. package/dist/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
  17. package/dist/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
  18. package/dist/node_modules/@isaacs/fs-minipass/package.json +72 -0
  19. package/dist/node_modules/abbrev/LICENSE +46 -0
  20. package/dist/node_modules/abbrev/lib/index.js +53 -0
  21. package/dist/node_modules/abbrev/package.json +41 -0
  22. package/dist/node_modules/chownr/dist/commonjs/index.js +93 -0
  23. package/dist/node_modules/chownr/dist/commonjs/package.json +3 -0
  24. package/dist/node_modules/chownr/dist/esm/index.js +85 -0
  25. package/dist/node_modules/chownr/dist/esm/package.json +3 -0
  26. package/dist/node_modules/chownr/package.json +69 -0
  27. package/dist/node_modules/env-paths/index.js +74 -0
  28. package/dist/node_modules/env-paths/license +9 -0
  29. package/dist/node_modules/env-paths/package.json +45 -0
  30. package/dist/node_modules/exponential-backoff/LICENSE +202 -0
  31. package/dist/node_modules/exponential-backoff/dist/backoff.js +124 -0
  32. package/dist/node_modules/exponential-backoff/dist/delay/always/always.delay.js +25 -0
  33. package/dist/node_modules/exponential-backoff/dist/delay/delay.base.js +45 -0
  34. package/dist/node_modules/exponential-backoff/dist/delay/delay.factory.js +17 -0
  35. package/dist/node_modules/exponential-backoff/dist/delay/delay.interface.js +3 -0
  36. package/dist/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js +82 -0
  37. package/dist/node_modules/exponential-backoff/dist/jitter/full/full.jitter.js +8 -0
  38. package/dist/node_modules/exponential-backoff/dist/jitter/jitter.factory.js +15 -0
  39. package/dist/node_modules/exponential-backoff/dist/jitter/no/no.jitter.js +7 -0
  40. package/dist/node_modules/exponential-backoff/dist/options.js +31 -0
  41. package/dist/node_modules/exponential-backoff/package.json +62 -0
  42. package/dist/node_modules/fdir/LICENSE +7 -0
  43. package/dist/node_modules/fdir/dist/index.cjs +588 -0
  44. package/dist/node_modules/fdir/dist/index.d.cts +155 -0
  45. package/dist/node_modules/fdir/dist/index.d.mts +155 -0
  46. package/dist/node_modules/fdir/dist/index.mjs +570 -0
  47. package/dist/node_modules/fdir/package.json +103 -0
  48. package/dist/node_modules/get-pnpm/bin/get-pnpm.js +11 -0
  49. package/dist/node_modules/get-pnpm/lib/downloadExecutable.js +108 -0
  50. package/dist/node_modules/get-pnpm/lib/extractTarball.js +23 -0
  51. package/dist/node_modules/get-pnpm/lib/extractTarballMember.js +128 -0
  52. package/dist/node_modules/get-pnpm/lib/index.js +220 -0
  53. package/dist/node_modules/get-pnpm/lib/npmSigningKeys.js +23 -0
  54. package/dist/node_modules/get-pnpm/lib/platformPackageName.js +75 -0
  55. package/dist/node_modules/get-pnpm/lib/registry.js +163 -0
  56. package/dist/node_modules/get-pnpm/lib/resolveVersion.js +36 -0
  57. package/dist/node_modules/get-pnpm/lib/sameFileContents.js +45 -0
  58. package/dist/node_modules/get-pnpm/lib/verifySignature.js +51 -0
  59. package/dist/node_modules/get-pnpm/package.json +45 -0
  60. package/dist/node_modules/graceful-fs/LICENSE +15 -0
  61. package/dist/node_modules/graceful-fs/clone.js +23 -0
  62. package/dist/node_modules/graceful-fs/graceful-fs.js +448 -0
  63. package/dist/node_modules/graceful-fs/legacy-streams.js +118 -0
  64. package/dist/node_modules/graceful-fs/package.json +53 -0
  65. package/dist/node_modules/graceful-fs/polyfills.js +355 -0
  66. package/dist/node_modules/isexe/dist/commonjs/index.js +56 -0
  67. package/dist/node_modules/isexe/dist/commonjs/index.min.js +2 -0
  68. package/dist/node_modules/isexe/dist/commonjs/options.js +3 -0
  69. package/dist/node_modules/isexe/dist/commonjs/package.json +3 -0
  70. package/dist/node_modules/isexe/dist/commonjs/posix.js +67 -0
  71. package/dist/node_modules/isexe/dist/commonjs/win32.js +63 -0
  72. package/dist/node_modules/isexe/dist/esm/index.js +16 -0
  73. package/dist/node_modules/isexe/dist/esm/index.min.js +2 -0
  74. package/dist/node_modules/isexe/dist/esm/options.js +2 -0
  75. package/dist/node_modules/isexe/dist/esm/package.json +3 -0
  76. package/dist/node_modules/isexe/dist/esm/posix.js +62 -0
  77. package/dist/node_modules/isexe/dist/esm/win32.js +58 -0
  78. package/dist/node_modules/isexe/package.json +78 -0
  79. package/dist/node_modules/minipass/dist/commonjs/index.js +1038 -0
  80. package/dist/node_modules/minipass/dist/commonjs/package.json +3 -0
  81. package/dist/node_modules/minipass/dist/esm/index.js +1020 -0
  82. package/dist/node_modules/minipass/dist/esm/package.json +3 -0
  83. package/dist/node_modules/minipass/package.json +77 -0
  84. package/dist/node_modules/minizlib/LICENSE +26 -0
  85. package/dist/node_modules/minizlib/dist/commonjs/constants.js +123 -0
  86. package/dist/node_modules/minizlib/dist/commonjs/index.js +416 -0
  87. package/dist/node_modules/minizlib/dist/commonjs/package.json +3 -0
  88. package/dist/node_modules/minizlib/dist/esm/constants.js +117 -0
  89. package/dist/node_modules/minizlib/dist/esm/index.js +363 -0
  90. package/dist/node_modules/minizlib/dist/esm/package.json +3 -0
  91. package/dist/node_modules/minizlib/package.json +80 -0
  92. package/dist/node_modules/node-gyp/.release-please-manifest.json +3 -0
  93. package/dist/node_modules/node-gyp/LICENSE +24 -0
  94. package/dist/node_modules/node-gyp/addon.gypi +204 -0
  95. package/dist/node_modules/node-gyp/bin/node-gyp.js +145 -0
  96. package/dist/node_modules/node-gyp/eslint.config.js +3 -0
  97. package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +3 -0
  98. package/dist/node_modules/node-gyp/gyp/LICENSE +28 -0
  99. package/dist/node_modules/node-gyp/gyp/data/ninja/build.ninja +4 -0
  100. package/dist/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +12 -0
  101. package/dist/node_modules/node-gyp/gyp/gyp +8 -0
  102. package/dist/node_modules/node-gyp/gyp/gyp.bat +5 -0
  103. package/dist/node_modules/node-gyp/gyp/gyp_main.py +45 -0
  104. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +365 -0
  105. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +206 -0
  106. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +1283 -0
  107. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +1545 -0
  108. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +59 -0
  109. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +152 -0
  110. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +270 -0
  111. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +607 -0
  112. package/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +706 -0
  113. package/dist/node_modules/node-gyp/gyp/pylib/gyp/common.py +725 -0
  114. package/dist/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +186 -0
  115. package/dist/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +170 -0
  116. package/dist/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +113 -0
  117. package/dist/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +55 -0
  118. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  119. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +805 -0
  120. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +1169 -0
  121. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +1316 -0
  122. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +128 -0
  123. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +104 -0
  124. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +461 -0
  125. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +88 -0
  126. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +55 -0
  127. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +2755 -0
  128. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +3970 -0
  129. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +44 -0
  130. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2957 -0
  131. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +77 -0
  132. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +1389 -0
  133. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +26 -0
  134. package/dist/node_modules/node-gyp/gyp/pylib/gyp/input.py +3097 -0
  135. package/dist/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +99 -0
  136. package/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +765 -0
  137. package/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1255 -0
  138. package/dist/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +174 -0
  139. package/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +61 -0
  140. package/dist/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +371 -0
  141. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +1936 -0
  142. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +54 -0
  143. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +301 -0
  144. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +3180 -0
  145. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +64 -0
  146. package/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE +3 -0
  147. package/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE +177 -0
  148. package/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD +23 -0
  149. package/dist/node_modules/node-gyp/gyp/pylib/packaging/__init__.py +15 -0
  150. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py +107 -0
  151. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py +252 -0
  152. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py +83 -0
  153. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_parser.py +359 -0
  154. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_structures.py +61 -0
  155. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py +192 -0
  156. package/dist/node_modules/node-gyp/gyp/pylib/packaging/markers.py +251 -0
  157. package/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +807 -0
  158. package/dist/node_modules/node-gyp/gyp/pylib/packaging/py.typed +0 -0
  159. package/dist/node_modules/node-gyp/gyp/pylib/packaging/requirements.py +90 -0
  160. package/dist/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py +1030 -0
  161. package/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +541 -0
  162. package/dist/node_modules/node-gyp/gyp/pylib/packaging/utils.py +172 -0
  163. package/dist/node_modules/node-gyp/gyp/pylib/packaging/version.py +563 -0
  164. package/dist/node_modules/node-gyp/gyp/pyproject.toml +116 -0
  165. package/dist/node_modules/node-gyp/gyp/release-please-config.json +11 -0
  166. package/dist/node_modules/node-gyp/gyp/test_gyp.py +260 -0
  167. package/dist/node_modules/node-gyp/lib/Find-VisualStudio.cs +250 -0
  168. package/dist/node_modules/node-gyp/lib/build.js +230 -0
  169. package/dist/node_modules/node-gyp/lib/clean.js +15 -0
  170. package/dist/node_modules/node-gyp/lib/configure.js +328 -0
  171. package/dist/node_modules/node-gyp/lib/create-config-gypi.js +153 -0
  172. package/dist/node_modules/node-gyp/lib/download.js +86 -0
  173. package/dist/node_modules/node-gyp/lib/find-node-directory.js +63 -0
  174. package/dist/node_modules/node-gyp/lib/find-python.js +304 -0
  175. package/dist/node_modules/node-gyp/lib/find-visualstudio.js +606 -0
  176. package/dist/node_modules/node-gyp/lib/install.js +411 -0
  177. package/dist/node_modules/node-gyp/lib/list.js +26 -0
  178. package/dist/node_modules/node-gyp/lib/log.js +168 -0
  179. package/dist/node_modules/node-gyp/lib/node-gyp.js +199 -0
  180. package/dist/node_modules/node-gyp/lib/process-release.js +144 -0
  181. package/dist/node_modules/node-gyp/lib/rebuild.js +12 -0
  182. package/dist/node_modules/node-gyp/lib/remove.js +43 -0
  183. package/dist/node_modules/node-gyp/lib/util.js +81 -0
  184. package/dist/node_modules/node-gyp/macOS_Catalina_acid_test.sh +21 -0
  185. package/dist/node_modules/node-gyp/package.json +52 -0
  186. package/dist/node_modules/node-gyp/release-please-config.json +40 -0
  187. package/dist/node_modules/node-gyp/src/win_delay_load_hook.cc +41 -0
  188. package/dist/node_modules/nopt/LICENSE +15 -0
  189. package/dist/node_modules/nopt/bin/nopt.js +29 -0
  190. package/dist/node_modules/nopt/lib/debug.js +5 -0
  191. package/dist/node_modules/nopt/lib/nopt-lib.js +514 -0
  192. package/dist/node_modules/nopt/lib/nopt.js +34 -0
  193. package/dist/node_modules/nopt/lib/type-defs.js +91 -0
  194. package/dist/node_modules/nopt/package.json +52 -0
  195. package/dist/node_modules/picomatch/LICENSE +21 -0
  196. package/dist/node_modules/picomatch/index.js +17 -0
  197. package/dist/node_modules/picomatch/lib/constants.js +184 -0
  198. package/dist/node_modules/picomatch/lib/parse.js +1425 -0
  199. package/dist/node_modules/picomatch/lib/picomatch.js +361 -0
  200. package/dist/node_modules/picomatch/lib/scan.js +403 -0
  201. package/dist/node_modules/picomatch/lib/utils.js +72 -0
  202. package/dist/node_modules/picomatch/package.json +83 -0
  203. package/dist/node_modules/picomatch/posix.js +3 -0
  204. package/dist/node_modules/proc-log/LICENSE +15 -0
  205. package/dist/node_modules/proc-log/lib/index.js +158 -0
  206. package/dist/node_modules/proc-log/package.json +46 -0
  207. package/dist/node_modules/semver/LICENSE +15 -0
  208. package/dist/node_modules/semver/bin/semver.js +195 -0
  209. package/dist/node_modules/semver/classes/comparator.js +143 -0
  210. package/dist/node_modules/semver/classes/index.js +7 -0
  211. package/dist/node_modules/semver/classes/range.js +577 -0
  212. package/dist/node_modules/semver/classes/semver.js +350 -0
  213. package/dist/node_modules/semver/functions/clean.js +8 -0
  214. package/dist/node_modules/semver/functions/cmp.js +54 -0
  215. package/dist/node_modules/semver/functions/coerce.js +62 -0
  216. package/dist/node_modules/semver/functions/compare-build.js +9 -0
  217. package/dist/node_modules/semver/functions/compare-loose.js +5 -0
  218. package/dist/node_modules/semver/functions/compare.js +7 -0
  219. package/dist/node_modules/semver/functions/diff.js +60 -0
  220. package/dist/node_modules/semver/functions/eq.js +5 -0
  221. package/dist/node_modules/semver/functions/gt.js +5 -0
  222. package/dist/node_modules/semver/functions/gte.js +5 -0
  223. package/dist/node_modules/semver/functions/inc.js +21 -0
  224. package/dist/node_modules/semver/functions/lt.js +5 -0
  225. package/dist/node_modules/semver/functions/lte.js +5 -0
  226. package/dist/node_modules/semver/functions/major.js +5 -0
  227. package/dist/node_modules/semver/functions/minor.js +5 -0
  228. package/dist/node_modules/semver/functions/neq.js +5 -0
  229. package/dist/node_modules/semver/functions/parse.js +18 -0
  230. package/dist/node_modules/semver/functions/patch.js +5 -0
  231. package/dist/node_modules/semver/functions/prerelease.js +8 -0
  232. package/dist/node_modules/semver/functions/rcompare.js +5 -0
  233. package/dist/node_modules/semver/functions/rsort.js +5 -0
  234. package/dist/node_modules/semver/functions/satisfies.js +12 -0
  235. package/dist/node_modules/semver/functions/sort.js +5 -0
  236. package/dist/node_modules/semver/functions/truncate.js +48 -0
  237. package/dist/node_modules/semver/functions/valid.js +8 -0
  238. package/dist/node_modules/semver/index.js +93 -0
  239. package/dist/node_modules/semver/internal/constants.js +37 -0
  240. package/dist/node_modules/semver/internal/debug.js +11 -0
  241. package/dist/node_modules/semver/internal/identifiers.js +29 -0
  242. package/dist/node_modules/semver/internal/lrucache.js +42 -0
  243. package/dist/node_modules/semver/internal/parse-options.js +17 -0
  244. package/dist/node_modules/semver/internal/re.js +223 -0
  245. package/dist/node_modules/semver/package.json +78 -0
  246. package/dist/node_modules/semver/preload.js +4 -0
  247. package/dist/node_modules/semver/range.bnf +17 -0
  248. package/dist/node_modules/semver/ranges/gtr.js +6 -0
  249. package/dist/node_modules/semver/ranges/intersects.js +9 -0
  250. package/dist/node_modules/semver/ranges/ltr.js +6 -0
  251. package/dist/node_modules/semver/ranges/max-satisfying.js +27 -0
  252. package/dist/node_modules/semver/ranges/min-satisfying.js +26 -0
  253. package/dist/node_modules/semver/ranges/min-version.js +63 -0
  254. package/dist/node_modules/semver/ranges/outside.js +82 -0
  255. package/dist/node_modules/semver/ranges/simplify.js +49 -0
  256. package/dist/node_modules/semver/ranges/subset.js +249 -0
  257. package/dist/node_modules/semver/ranges/to-comparators.js +10 -0
  258. package/dist/node_modules/semver/ranges/valid.js +13 -0
  259. package/dist/node_modules/tar/dist/commonjs/create.js +82 -0
  260. package/dist/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
  261. package/dist/node_modules/tar/dist/commonjs/extract.js +88 -0
  262. package/dist/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
  263. package/dist/node_modules/tar/dist/commonjs/header.js +348 -0
  264. package/dist/node_modules/tar/dist/commonjs/index.js +64 -0
  265. package/dist/node_modules/tar/dist/commonjs/index.min.js +4 -0
  266. package/dist/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
  267. package/dist/node_modules/tar/dist/commonjs/list.js +153 -0
  268. package/dist/node_modules/tar/dist/commonjs/make-command.js +52 -0
  269. package/dist/node_modules/tar/dist/commonjs/mkdir.js +187 -0
  270. package/dist/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
  271. package/dist/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
  272. package/dist/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
  273. package/dist/node_modules/tar/dist/commonjs/options.js +66 -0
  274. package/dist/node_modules/tar/dist/commonjs/pack.js +544 -0
  275. package/dist/node_modules/tar/dist/commonjs/package.json +3 -0
  276. package/dist/node_modules/tar/dist/commonjs/parse.js +655 -0
  277. package/dist/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
  278. package/dist/node_modules/tar/dist/commonjs/pax.js +182 -0
  279. package/dist/node_modules/tar/dist/commonjs/process-umask.js +7 -0
  280. package/dist/node_modules/tar/dist/commonjs/read-entry.js +136 -0
  281. package/dist/node_modules/tar/dist/commonjs/replace.js +227 -0
  282. package/dist/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
  283. package/dist/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
  284. package/dist/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
  285. package/dist/node_modules/tar/dist/commonjs/types.js +70 -0
  286. package/dist/node_modules/tar/dist/commonjs/unpack.js +932 -0
  287. package/dist/node_modules/tar/dist/commonjs/update.js +33 -0
  288. package/dist/node_modules/tar/dist/commonjs/warn-method.js +31 -0
  289. package/dist/node_modules/tar/dist/commonjs/winchars.js +14 -0
  290. package/dist/node_modules/tar/dist/commonjs/write-entry.js +698 -0
  291. package/dist/node_modules/tar/dist/esm/create.js +76 -0
  292. package/dist/node_modules/tar/dist/esm/cwd-error.js +14 -0
  293. package/dist/node_modules/tar/dist/esm/extract.js +49 -0
  294. package/dist/node_modules/tar/dist/esm/get-write-flag.js +26 -0
  295. package/dist/node_modules/tar/dist/esm/header.js +311 -0
  296. package/dist/node_modules/tar/dist/esm/index.js +20 -0
  297. package/dist/node_modules/tar/dist/esm/index.min.js +4 -0
  298. package/dist/node_modules/tar/dist/esm/large-numbers.js +94 -0
  299. package/dist/node_modules/tar/dist/esm/list.js +113 -0
  300. package/dist/node_modules/tar/dist/esm/make-command.js +48 -0
  301. package/dist/node_modules/tar/dist/esm/mkdir.js +179 -0
  302. package/dist/node_modules/tar/dist/esm/mode-fix.js +25 -0
  303. package/dist/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
  304. package/dist/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
  305. package/dist/node_modules/tar/dist/esm/options.js +54 -0
  306. package/dist/node_modules/tar/dist/esm/pack.js +502 -0
  307. package/dist/node_modules/tar/dist/esm/package.json +3 -0
  308. package/dist/node_modules/tar/dist/esm/parse.js +651 -0
  309. package/dist/node_modules/tar/dist/esm/path-reservations.js +166 -0
  310. package/dist/node_modules/tar/dist/esm/pax.js +178 -0
  311. package/dist/node_modules/tar/dist/esm/process-umask.js +3 -0
  312. package/dist/node_modules/tar/dist/esm/read-entry.js +132 -0
  313. package/dist/node_modules/tar/dist/esm/replace.js +221 -0
  314. package/dist/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
  315. package/dist/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
  316. package/dist/node_modules/tar/dist/esm/symlink-error.js +15 -0
  317. package/dist/node_modules/tar/dist/esm/types.js +65 -0
  318. package/dist/node_modules/tar/dist/esm/unpack.js +891 -0
  319. package/dist/node_modules/tar/dist/esm/update.js +30 -0
  320. package/dist/node_modules/tar/dist/esm/warn-method.js +27 -0
  321. package/dist/node_modules/tar/dist/esm/winchars.js +9 -0
  322. package/dist/node_modules/tar/dist/esm/write-entry.js +656 -0
  323. package/dist/node_modules/tar/package.json +298 -0
  324. package/dist/node_modules/tinyglobby/LICENSE +21 -0
  325. package/dist/node_modules/tinyglobby/dist/index.cjs +335 -0
  326. package/dist/node_modules/tinyglobby/dist/index.d.cts +148 -0
  327. package/dist/node_modules/tinyglobby/dist/index.d.mts +148 -0
  328. package/dist/node_modules/tinyglobby/dist/index.mjs +307 -0
  329. package/dist/node_modules/tinyglobby/package.json +70 -0
  330. package/dist/node_modules/undici/LICENSE +21 -0
  331. package/dist/node_modules/undici/index-fetch.js +35 -0
  332. package/dist/node_modules/undici/index.js +169 -0
  333. package/dist/node_modules/undici/lib/api/abort-signal.js +57 -0
  334. package/dist/node_modules/undici/lib/api/api-connect.js +108 -0
  335. package/dist/node_modules/undici/lib/api/api-pipeline.js +251 -0
  336. package/dist/node_modules/undici/lib/api/api-request.js +214 -0
  337. package/dist/node_modules/undici/lib/api/api-stream.js +220 -0
  338. package/dist/node_modules/undici/lib/api/api-upgrade.js +108 -0
  339. package/dist/node_modules/undici/lib/api/index.js +7 -0
  340. package/dist/node_modules/undici/lib/api/readable.js +385 -0
  341. package/dist/node_modules/undici/lib/api/util.js +93 -0
  342. package/dist/node_modules/undici/lib/core/connect.js +240 -0
  343. package/dist/node_modules/undici/lib/core/constants.js +118 -0
  344. package/dist/node_modules/undici/lib/core/diagnostics.js +202 -0
  345. package/dist/node_modules/undici/lib/core/errors.js +425 -0
  346. package/dist/node_modules/undici/lib/core/request.js +416 -0
  347. package/dist/node_modules/undici/lib/core/symbols.js +67 -0
  348. package/dist/node_modules/undici/lib/core/tree.js +152 -0
  349. package/dist/node_modules/undici/lib/core/util.js +719 -0
  350. package/dist/node_modules/undici/lib/dispatcher/agent.js +129 -0
  351. package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +209 -0
  352. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +1504 -0
  353. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +744 -0
  354. package/dist/node_modules/undici/lib/dispatcher/client.js +623 -0
  355. package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +199 -0
  356. package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +65 -0
  357. package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +160 -0
  358. package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +117 -0
  359. package/dist/node_modules/undici/lib/dispatcher/pool-base.js +194 -0
  360. package/dist/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
  361. package/dist/node_modules/undici/lib/dispatcher/pool.js +107 -0
  362. package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +274 -0
  363. package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
  364. package/dist/node_modules/undici/lib/global.js +32 -0
  365. package/dist/node_modules/undici/lib/handler/decorator-handler.js +44 -0
  366. package/dist/node_modules/undici/lib/handler/redirect-handler.js +232 -0
  367. package/dist/node_modules/undici/lib/handler/retry-handler.js +434 -0
  368. package/dist/node_modules/undici/lib/interceptor/dns.js +375 -0
  369. package/dist/node_modules/undici/lib/interceptor/dump.js +123 -0
  370. package/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
  371. package/dist/node_modules/undici/lib/interceptor/redirect.js +24 -0
  372. package/dist/node_modules/undici/lib/interceptor/response-error.js +86 -0
  373. package/dist/node_modules/undici/lib/interceptor/retry.js +19 -0
  374. package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  375. package/dist/node_modules/undici/lib/llhttp/constants.js +278 -0
  376. package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +5 -0
  377. package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +5 -0
  378. package/dist/node_modules/undici/lib/llhttp/utils.js +15 -0
  379. package/dist/node_modules/undici/lib/mock/mock-agent.js +160 -0
  380. package/dist/node_modules/undici/lib/mock/mock-client.js +59 -0
  381. package/dist/node_modules/undici/lib/mock/mock-errors.js +28 -0
  382. package/dist/node_modules/undici/lib/mock/mock-interceptor.js +207 -0
  383. package/dist/node_modules/undici/lib/mock/mock-pool.js +59 -0
  384. package/dist/node_modules/undici/lib/mock/mock-symbols.js +23 -0
  385. package/dist/node_modules/undici/lib/mock/mock-utils.js +367 -0
  386. package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  387. package/dist/node_modules/undici/lib/mock/pluralizer.js +29 -0
  388. package/dist/node_modules/undici/lib/util/timers.js +423 -0
  389. package/dist/node_modules/undici/lib/web/cache/cache.js +859 -0
  390. package/dist/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
  391. package/dist/node_modules/undici/lib/web/cache/symbols.js +5 -0
  392. package/dist/node_modules/undici/lib/web/cache/util.js +45 -0
  393. package/dist/node_modules/undici/lib/web/cookies/constants.js +12 -0
  394. package/dist/node_modules/undici/lib/web/cookies/index.js +184 -0
  395. package/dist/node_modules/undici/lib/web/cookies/parse.js +310 -0
  396. package/dist/node_modules/undici/lib/web/cookies/util.js +352 -0
  397. package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +493 -0
  398. package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +480 -0
  399. package/dist/node_modules/undici/lib/web/eventsource/util.js +37 -0
  400. package/dist/node_modules/undici/lib/web/fetch/LICENSE +21 -0
  401. package/dist/node_modules/undici/lib/web/fetch/body.js +529 -0
  402. package/dist/node_modules/undici/lib/web/fetch/constants.js +124 -0
  403. package/dist/node_modules/undici/lib/web/fetch/data-url.js +744 -0
  404. package/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
  405. package/dist/node_modules/undici/lib/web/fetch/file.js +126 -0
  406. package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +474 -0
  407. package/dist/node_modules/undici/lib/web/fetch/formdata.js +252 -0
  408. package/dist/node_modules/undici/lib/web/fetch/global.js +40 -0
  409. package/dist/node_modules/undici/lib/web/fetch/headers.js +687 -0
  410. package/dist/node_modules/undici/lib/web/fetch/index.js +2272 -0
  411. package/dist/node_modules/undici/lib/web/fetch/request.js +1037 -0
  412. package/dist/node_modules/undici/lib/web/fetch/response.js +610 -0
  413. package/dist/node_modules/undici/lib/web/fetch/symbols.js +9 -0
  414. package/dist/node_modules/undici/lib/web/fetch/util.js +1632 -0
  415. package/dist/node_modules/undici/lib/web/fetch/webidl.js +695 -0
  416. package/dist/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
  417. package/dist/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
  418. package/dist/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
  419. package/dist/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
  420. package/dist/node_modules/undici/lib/web/fileapi/util.js +391 -0
  421. package/dist/node_modules/undici/lib/web/websocket/connection.js +371 -0
  422. package/dist/node_modules/undici/lib/web/websocket/constants.js +66 -0
  423. package/dist/node_modules/undici/lib/web/websocket/events.js +329 -0
  424. package/dist/node_modules/undici/lib/web/websocket/frame.js +96 -0
  425. package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
  426. package/dist/node_modules/undici/lib/web/websocket/receiver.js +513 -0
  427. package/dist/node_modules/undici/lib/web/websocket/sender.js +104 -0
  428. package/dist/node_modules/undici/lib/web/websocket/symbols.js +12 -0
  429. package/dist/node_modules/undici/lib/web/websocket/util.js +322 -0
  430. package/dist/node_modules/undici/lib/web/websocket/websocket.js +595 -0
  431. package/dist/node_modules/undici/package.json +160 -0
  432. package/dist/node_modules/undici/scripts/strip-comments.js +8 -0
  433. package/dist/node_modules/which/LICENSE +15 -0
  434. package/dist/node_modules/which/bin/which.js +52 -0
  435. package/dist/node_modules/which/lib/index.js +111 -0
  436. package/dist/node_modules/which/package.json +52 -0
  437. package/dist/node_modules/yallist/dist/commonjs/index.js +384 -0
  438. package/dist/node_modules/yallist/dist/commonjs/package.json +3 -0
  439. package/dist/node_modules/yallist/dist/esm/index.js +379 -0
  440. package/dist/node_modules/yallist/dist/esm/package.json +3 -0
  441. package/dist/node_modules/yallist/package.json +68 -0
  442. package/install.js +205 -0
  443. package/native-binary.mjs +192 -0
  444. package/package.json +70 -0
  445. package/pn +70 -0
  446. package/pnpm +90 -0
  447. package/pnpx +70 -0
  448. package/pnx +70 -0
package/README.md ADDED
@@ -0,0 +1,280 @@
1
+ [简体中文](https://pnpm.io/zh/) |
2
+ [日本語](https://pnpm.io/ja/) |
3
+ [한국어](https://pnpm.io/ko/) |
4
+ [Italiano](https://pnpm.io/it/) |
5
+ [Português Brasileiro](https://pnpm.io/pt/)
6
+
7
+ <picture>
8
+ <source media="(prefers-color-scheme: light)" srcset="https://i.imgur.com/qlW1eEG.png">
9
+ <source media="(prefers-color-scheme: dark)" srcset="https://i.imgur.com/qlW1eEG.png">
10
+ <img src="https://i.imgur.com/qlW1eEG.png" alt="pnpm">
11
+ </picture>
12
+
13
+ Fast, disk space efficient package manager:
14
+
15
+ * **Fast.** Up to 2x faster than the alternatives (see [benchmark](#benchmark)).
16
+ * **Efficient.** Files inside `node_modules` are linked from a single content-addressable storage.
17
+ * **[Great for monorepos](https://pnpm.io/workspaces).**
18
+ * **Strict.** A package can access only dependencies that are specified in its `package.json`.
19
+ * **Deterministic.** Has a lockfile called `pnpm-lock.yaml`.
20
+ * **Works as a Node.js version manager.** See [pnpm runtime](https://pnpm.io/11.x/cli/runtime).
21
+ * **Works everywhere.** Supports Windows, Linux, and macOS.
22
+ * **Battle-tested.** Used in production by teams of [all sizes](https://pnpm.io/workspaces#usage-examples) since 2016.
23
+ * [See the full feature comparison with npm and Yarn](https://pnpm.io/feature-comparison).
24
+
25
+ To quote the [Rush](https://rushjs.io/) team:
26
+
27
+ > Microsoft uses pnpm in Rush repos with hundreds of projects and hundreds of PRs per day, and we’ve found it to be very fast and reliable.
28
+
29
+ [![npm version](https://img.shields.io/npm/v/pnpm.svg?label=latest)](https://github.com/pnpm/pnpm/releases/latest)
30
+ [![OpenCollective](https://opencollective.com/pnpm/backers/badge.svg)](https://opencollective.com/pnpm)
31
+ [![OpenCollective](https://opencollective.com/pnpm/sponsors/badge.svg)](https://opencollective.com/pnpm)
32
+ [![X Follow](https://img.shields.io/twitter/follow/pnpmjs.svg?style=social&label=Follow)](https://x.com/intent/follow?screen_name=pnpmjs&region=follow_link)
33
+ [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)
34
+
35
+ <!-- sponsors -->
36
+
37
+ ## Platinum Sponsors
38
+
39
+ <table>
40
+ <tbody>
41
+ <tr>
42
+ <td align="center" valign="middle">
43
+ <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
44
+ </td>
45
+ <td align="center" valign="middle">
46
+ <a href="https://openai.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
47
+ <picture>
48
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/openai_dark.svg" />
49
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/openai_light.svg" />
50
+ <img src="https://pnpm.io/img/users/openai_dark.svg" width="160" alt="OpenAI" />
51
+ </picture>
52
+ </a>
53
+ </td>
54
+ <td align="center" valign="middle">
55
+ <a href="https://notion.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion"></a>
56
+ </td>
57
+ </tr>
58
+ <tr>
59
+ <td align="center" valign="middle">
60
+ <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
61
+ <picture>
62
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
63
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
64
+ <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" />
65
+ </picture>
66
+ </a>
67
+ </td>
68
+ </tr>
69
+ </tbody>
70
+ </table>
71
+
72
+ ## Gold Sponsors
73
+
74
+ <table>
75
+ <tbody>
76
+ <tr>
77
+ <td align="center" valign="middle">
78
+ <a href="https://sanity.io/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
79
+ <picture>
80
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" />
81
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" />
82
+ <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" />
83
+ </picture>
84
+ </a>
85
+ </td>
86
+ <td align="center" valign="middle">
87
+ <a href="https://discord.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
88
+ <picture>
89
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
90
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
91
+ <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" />
92
+ </picture>
93
+ </a>
94
+ </td>
95
+ <td align="center" valign="middle">
96
+ <a href="https://vite.dev/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
97
+ </td>
98
+ </tr>
99
+ <tr>
100
+ <td align="center" valign="middle">
101
+ <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
102
+ <picture>
103
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
104
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" />
105
+ <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" />
106
+ </picture>
107
+ </a>
108
+ </td>
109
+ <td align="center" valign="middle">
110
+ <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
111
+ <picture>
112
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" />
113
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
114
+ <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" />
115
+ </picture>
116
+ </a>
117
+ </td>
118
+ <td align="center" valign="middle">
119
+ <a href="https://workleap.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
120
+ <picture>
121
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" />
122
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" />
123
+ <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" />
124
+ </picture>
125
+ </a>
126
+ </td>
127
+ </tr>
128
+ <tr>
129
+ <td align="center" valign="middle">
130
+ <a href="https://nx.dev/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
131
+ <picture>
132
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
133
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
134
+ <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
135
+ </picture>
136
+ </a>
137
+ </td>
138
+ <td align="center" valign="middle">
139
+ <a href="https://latitude.so/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/latitude.svg" width="160" alt="Latitude"></a>
140
+ </td>
141
+ </tr>
142
+ </tbody>
143
+ </table>
144
+
145
+ ## Silver Sponsors
146
+
147
+ <table>
148
+ <tbody>
149
+ <tr>
150
+ <td align="center" valign="middle">
151
+ <a href="https://replit.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
152
+ <picture>
153
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/replit.png" />
154
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/replit_light.png" />
155
+ <img src="https://pnpm.io/img/users/replit.png" width="140" alt="Replit" />
156
+ </picture>
157
+ </a>
158
+ </td>
159
+ <td align="center" valign="middle">
160
+ <a href="https://cybozu.co.jp/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/cybozu.svg" width="70" alt="Cybozu"></a>
161
+ </td>
162
+ <td align="center" valign="middle">
163
+ <a href="https://www.bairesdev.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
164
+ <picture>
165
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/bairesdev.svg" />
166
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/bairesdev_light.svg" />
167
+ <img src="https://pnpm.io/img/users/bairesdev.svg" width="160" alt="BairesDev" />
168
+ </picture>
169
+ </a>
170
+ </td>
171
+ </tr>
172
+ <tr>
173
+ <td align="center" valign="middle">
174
+ <a href="https://www.thesys.dev/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
175
+ <picture>
176
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/thesys.svg" />
177
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/thesys_light.svg" />
178
+ <img src="https://pnpm.io/img/users/thesys.svg" width="120" alt="Thesys" />
179
+ </picture>
180
+ </a>
181
+ </td>
182
+ <td align="center" valign="middle">
183
+ <a href="https://devowl.io/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/devowlio.svg" width="100" alt="devowl.io"></a>
184
+ </td>
185
+ <td align="center" valign="middle">
186
+ <a href="https://uscreen.de/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
187
+ <picture>
188
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/uscreen.svg" />
189
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/uscreen_light.svg" />
190
+ <img src="https://pnpm.io/img/users/uscreen.svg" width="180" alt="u|screen" />
191
+ </picture>
192
+ </a>
193
+ </td>
194
+ </tr>
195
+ <tr>
196
+ <td align="center" valign="middle">
197
+ <a href="https://www.leniolabs.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/leniolabs.jpg" width="40" alt="Leniolabs_"></a>
198
+ </td>
199
+ <td align="center" valign="middle">
200
+ <a href="https://depot.dev/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
201
+ <picture>
202
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/depot.svg" />
203
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/depot_light.svg" />
204
+ <img src="https://pnpm.io/img/users/depot.svg" width="100" alt="Depot" />
205
+ </picture>
206
+ </a>
207
+ </td>
208
+ <td align="center" valign="middle">
209
+ <a href="https://cerbos.dev/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
210
+ <picture>
211
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/cerbos.svg" />
212
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/cerbos_light.svg" />
213
+ <img src="https://pnpm.io/img/users/cerbos.svg" width="90" alt="Cerbos" />
214
+ </picture>
215
+ </a>
216
+ </td>
217
+ </tr>
218
+ <tr>
219
+ <td align="center" valign="middle">
220
+ <a href="https://time.now/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">⏱️ Time.now</a>
221
+ </td>
222
+ </tr>
223
+ </tbody>
224
+ </table>
225
+
226
+ <!-- sponsors end -->
227
+
228
+ Support this project by [becoming a sponsor](https://opencollective.com/pnpm#sponsor).
229
+
230
+ ## Background
231
+
232
+ pnpm uses a content-addressable filesystem to store all files from all module directories on a disk.
233
+ When using npm, if you have 100 projects using lodash, you will have 100 copies of lodash on disk.
234
+ With pnpm, lodash will be stored in a content-addressable storage, so:
235
+
236
+ 1. If you depend on different versions of lodash, only the files that differ are added to the store.
237
+ If lodash has 100 files, and a new version has a change only in one of those files,
238
+ `pnpm update` will only add 1 new file to the storage.
239
+ 1. All the files are saved in a single place on the disk. When packages are installed, their files are linked
240
+ from that single place consuming no additional disk space. Linking is performed using either hard-links or reflinks (copy-on-write).
241
+
242
+ As a result, you save gigabytes of space on your disk and you have a lot faster installations!
243
+ If you'd like more details about the unique `node_modules` structure that pnpm creates and
244
+ why it works fine with the Node.js ecosystem, read this small article: [Flat node_modules is not the only way](https://pnpm.io/blog/2020/05/27/flat-node-modules-is-not-the-only-way).
245
+
246
+ 💖 Like this project? Let people know with a [tweet](https://r.pnpm.io/tweet)
247
+
248
+ ## Installation
249
+
250
+ For installation options [visit our website](https://pnpm.io/installation).
251
+
252
+ ## Usage
253
+
254
+ Just use pnpm in place of npm/Yarn. E.g., install dependencies via:
255
+
256
+ ```
257
+ pnpm install
258
+ ```
259
+
260
+ For more advanced usage, read [pnpm CLI](https://pnpm.io/pnpm-cli) on our website, or run `pnpm help`.
261
+
262
+ ## Benchmark
263
+
264
+ pnpm is up to 2x faster than npm and Yarn classic. See all benchmarks [here](https://r.pnpm.io/benchmarks).
265
+
266
+ Benchmarks on an app with lots of dependencies:
267
+
268
+ ![](https://pnpm.io/img/benchmarks/alotta-files.svg)
269
+
270
+ ## Support
271
+
272
+ - [Frequently Asked Questions](https://pnpm.io/faq)
273
+ - [X](https://x.com/pnpmjs)
274
+ - [Bluesky](https://bsky.app/profile/pnpm.io)
275
+ - [Discord](https://r.pnpm.io/chat)
276
+
277
+ ## License
278
+
279
+ [MIT](https://github.com/pnpm/pnpm/blob/main/LICENSE)
280
+
@@ -0,0 +1,42 @@
1
+ # Third-Party Notices
2
+
3
+ This product includes software derived from third-party sources. The
4
+ components below, and their license terms, are listed here in satisfaction
5
+ of those terms.
6
+
7
+ ## Yarn (`@yarnpkg/nm`, `@yarnpkg/extensions`)
8
+
9
+ - Source: <https://github.com/yarnpkg/berry>
10
+ - License: BSD 2-Clause
11
+
12
+ The `nodeLinker: hoisted` layout is produced by a Rust port of the hoisting
13
+ algorithm in `@yarnpkg/nm`, and the built-in package-compatibility database
14
+ is a copy of the one in `@yarnpkg/extensions`.
15
+
16
+ ```text
17
+ BSD 2-Clause License
18
+
19
+ Copyright (c) 2016-present, Yarn Contributors.
20
+ All rights reserved.
21
+
22
+ Redistribution and use in source and binary forms, with or without
23
+ modification, are permitted provided that the following conditions are met:
24
+
25
+ 1. Redistributions of source code must retain the above copyright notice, this
26
+ list of conditions and the following disclaimer.
27
+
28
+ 2. Redistributions in binary form must reproduce the above copyright notice,
29
+ this list of conditions and the following disclaimer in the documentation
30
+ and/or other materials provided with the distribution.
31
+
32
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
33
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
36
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
38
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
39
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
40
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
41
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42
+ ```
package/bin/pnpm.mjs ADDED
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env node
2
+ // Corepack's entry point into pnpm. Corepack hardcodes `./bin/pnpm.mjs` and
3
+ // `./bin/pnpx.mjs` for every pnpm >=11 (see its `config.json`) and loads them
4
+ // into its own Node.js process, which a native executable cannot be loaded into.
5
+ //
6
+ // The `pnpm` placeholder bin runs it too, on Unix, when the install script that
7
+ // replaces it with the native binary did not (build scripts blocked). An
8
+ // ordinary `npm install -g pnpm` never pays for a Node.js startup:
9
+ // `package.json#bin` points at the native binary.
10
+ //
11
+ // Corepack installs no dependencies and runs no lifecycle scripts, so the
12
+ // `@pnpm/exe.<target>` package that carries the binary is absent and
13
+ // `install.js` never ran. The binary is therefore downloaded on first use and
14
+ // kept next to this wrapper — where the native binary also finds the `dist/`
15
+ // payload it ships node-gyp in. The placeholder's installs usually do carry
16
+ // that package, and the binary is taken from there.
17
+ //
18
+ // The download itself is `get-pnpm`, the package behind https://get.pnpm.io,
19
+ // which already knows how to verify one; it travels in that same `dist/`
20
+ // payload. What is left here is Corepack's environment, which it does not know:
21
+ // where to download from, what credentials to use, and whose signature to trust.
22
+ import { Buffer } from 'node:buffer'
23
+ import { spawnSync } from 'node:child_process'
24
+ import console from 'node:console'
25
+ import fs from 'node:fs'
26
+ import os from 'node:os'
27
+ import path from 'node:path'
28
+ import process from 'node:process'
29
+ import { URL } from 'node:url'
30
+ import { readWrapperManifest, resolveInstalledBinary, wrapperDir } from '../native-binary.mjs'
31
+
32
+ // Deliberately not the `pnpm` placeholder that `install.js` overwrites: a name
33
+ // of its own is what tells a downloaded binary apart from the placeholder.
34
+ const DOWNLOADED_BINARY = path.join(
35
+ wrapperDir,
36
+ process.platform === 'win32' ? 'pnpm-native.exe' : 'pnpm-native'
37
+ )
38
+ const GET_PNPM = new URL('../dist/node_modules/get-pnpm/lib/index.js', import.meta.url)
39
+ const DEFAULT_REGISTRY = 'https://registry.npmjs.org'
40
+
41
+ run(await nativeBinary())
42
+
43
+ function run (binary) {
44
+ // Ctrl-C reaches the whole foreground process group, so the binary gets its
45
+ // own SIGINT; exiting here first would hand the terminal back while it is
46
+ // still shutting down.
47
+ process.on('SIGINT', () => {})
48
+
49
+ const result = spawnSync(binary, process.argv.slice(2), { stdio: 'inherit' })
50
+ if (result.error != null) {
51
+ fail(`Could not run the pnpm binary at ${binary}: ${result.error.message}`)
52
+ }
53
+ process.exitCode = result.signal == null
54
+ ? result.status ?? 1
55
+ : 128 + (os.constants.signals[result.signal] ?? 0)
56
+ }
57
+
58
+ async function nativeBinary () {
59
+ const installed = resolveInstalledBinary()
60
+ if (installed != null) {
61
+ return installed
62
+ }
63
+ // A plain file, not merely something at that path: what a previous run left
64
+ // is a file, and a directory there would be spawned as if it were a binary.
65
+ if (fs.lstatSync(DOWNLOADED_BINARY, { throwIfNoEntry: false })?.isFile() === true) {
66
+ return DOWNLOADED_BINARY
67
+ }
68
+
69
+ if (process.env.COREPACK_ENABLE_NETWORK === '0') {
70
+ fail('Network access is disabled by the environment, so the pnpm binary cannot be downloaded.')
71
+ }
72
+
73
+ const { version } = readWrapperManifest()
74
+ console.error(`Downloading the pnpm ${version} binary for ${process.platform}-${process.arch}...`)
75
+ const { downloadPnpmExecutable } = await import(GET_PNPM).catch((err) => {
76
+ fail(`This copy of the pnpm package is missing the downloader it needs: ${err.message}`)
77
+ })
78
+ try {
79
+ await downloadPnpmExecutable({
80
+ version,
81
+ registry: process.env.COREPACK_NPM_REGISTRY || DEFAULT_REGISTRY,
82
+ destPath: DOWNLOADED_BINARY,
83
+ headers: registryHeaders(),
84
+ ...signaturePolicy(),
85
+ })
86
+ } catch (err) {
87
+ fail(`Could not download the pnpm ${version} binary: ${err.message}`)
88
+ }
89
+ return DOWNLOADED_BINARY
90
+ }
91
+
92
+ /**
93
+ * Credentials for the registry, read the way Corepack reads its own. `get-pnpm`
94
+ * keeps them on that registry's origin, so a download host it names never
95
+ * receives them.
96
+ */
97
+ function registryHeaders () {
98
+ const { COREPACK_NPM_TOKEN, COREPACK_NPM_USERNAME, COREPACK_NPM_PASSWORD } = process.env
99
+ if (COREPACK_NPM_TOKEN) {
100
+ return { authorization: `Bearer ${COREPACK_NPM_TOKEN}` }
101
+ }
102
+ if (COREPACK_NPM_USERNAME && COREPACK_NPM_PASSWORD) {
103
+ const credentials = Buffer.from(`${COREPACK_NPM_USERNAME}:${COREPACK_NPM_PASSWORD}`, 'utf8')
104
+ return { authorization: `Basic ${credentials.toString('base64')}` }
105
+ }
106
+ return undefined
107
+ }
108
+
109
+ /**
110
+ * Whose signature over the download to trust, following `COREPACK_INTEGRITY_KEYS`
111
+ * exactly as Corepack does: npm's own keys when it is unset, the keys it names
112
+ * when it holds a key set, and no signature check at all when it is `0` or
113
+ * empty — which is the state a registry that re-publishes packages, and
114
+ * therefore carries no npm signatures, already has to be in for Corepack to
115
+ * have installed this wrapper from it.
116
+ */
117
+ function signaturePolicy () {
118
+ const configured = process.env.COREPACK_INTEGRITY_KEYS
119
+ if (configured == null) {
120
+ return {}
121
+ }
122
+ if (configured === '' || configured === '0') {
123
+ return { verifySignature: false }
124
+ }
125
+ let keys
126
+ try {
127
+ keys = JSON.parse(configured).npm
128
+ } catch (err) {
129
+ fail(`COREPACK_INTEGRITY_KEYS is not readable as JSON: ${err.message}`)
130
+ }
131
+ // An absent or malformed `npm` entry would otherwise be passed on as no keys
132
+ // at all, which falls back to npm's own — the opposite of what setting the
133
+ // variable asked for. An empty set is left alone: it names no key to trust,
134
+ // and Corepack reads it the same way, so every download is refused.
135
+ if (!Array.isArray(keys)) {
136
+ fail('COREPACK_INTEGRITY_KEYS holds no "npm" key set to verify the pnpm binary against.')
137
+ }
138
+ return { keys }
139
+ }
140
+
141
+ function fail (message) {
142
+ console.error(message)
143
+ process.exit(1)
144
+ }
package/bin/pnpx.mjs ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ // Corepack's `pnpx` entry point; see ./pnpm.mjs. The native binary infers the
3
+ // `dlx` subcommand from the name it was launched under, which does not survive
4
+ // being spawned from here, so inject it the way the `pnpx` shell script does.
5
+ import process from 'node:process'
6
+
7
+ process.argv = [...process.argv.slice(0, 2), 'dlx', ...process.argv.slice(2)]
8
+
9
+ await import('./pnpm.mjs')
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env sh
2
+ if [ "x$npm_config_node_gyp" = "x" ]; then
3
+ node "`dirname "$0"`/../node_modules/node-gyp/bin/node-gyp.js" "$@"
4
+ else
5
+ "$npm_config_node_gyp" "$@"
6
+ fi
@@ -0,0 +1,5 @@
1
+ if not defined npm_config_node_gyp (
2
+ node "%~dp0\..\node_modules\node-gyp\bin\node-gyp.js" %*
3
+ ) else (
4
+ node "%npm_config_node_gyp%" %*
5
+ )
@@ -0,0 +1,88 @@
1
+ #!/bin/sh
2
+ # Resolve $0 through symlinks so basedir is the shim's real directory.
3
+ # Cap hops at the kernel's ELOOP limit so a cycle cannot hang the shim.
4
+ #
5
+ # A shim runs with node_modules/.bin at the front of PATH, so readlink, sed,
6
+ # uname, and printf go through `command -p`, which searches the system default
7
+ # path instead. A dependency's bin cannot stand in for one of them and take over
8
+ # the shim before it reaches its target. Directories come from `${link%/*}`,
9
+ # which needs no helper at all.
10
+ #
11
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
12
+ # instead, so the helpers run with node_modules and relative entries dropped from
13
+ # PATH.
14
+ caller_path_set=${PATH+set}
15
+ caller_path=${PATH-}
16
+ helper_path=
17
+ rest=$caller_path:
18
+ while [ -n "$rest" ]; do
19
+ dir=${rest%%:*}
20
+ rest=${rest#*:}
21
+ case "$dir" in
22
+ */node_modules/*|*/node_modules) ;;
23
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
24
+ esac
25
+ done
26
+ # An empty PATH searches the current directory.
27
+ PATH=${helper_path:-/}
28
+ link="$0"
29
+ # `${link%/*}` needs a separator to strip. A bare name came from a PATH lookup
30
+ # and stands for a file in the current directory.
31
+ case "$link" in
32
+ */*|*\\*) ;;
33
+ *) link="./$link" ;;
34
+ esac
35
+ hops=0
36
+ while [ -L "$link" ] && [ "$hops" -lt 40 ]; do
37
+ hops=$((hops+1))
38
+ target=$(command -p readlink "$link")
39
+ case "$target" in
40
+ /*) link="$target" ;;
41
+ *) link="${link%/*}/$target" ;;
42
+ esac
43
+ done
44
+ basedir=$(command -p printf '%s\n' "$link" | command -p sed -e 's,\\,/,g')
45
+ basedir="${basedir%/*}"
46
+ basedir_win="$basedir"
47
+ exe=""
48
+ msys=""
49
+
50
+ case `command -p uname -a` in
51
+ *CYGWIN*|*MINGW*|*MSYS*)
52
+ if converted=$(command -p cygpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
53
+ basedir_win="$converted"
54
+ elif command -v cygpath > /dev/null 2>&1; then
55
+ basedir_win=`cygpath -w "$basedir"`
56
+ fi
57
+ exe=".exe"
58
+ msys="true"
59
+ ;;
60
+ *WSL2*)
61
+ if converted=$(command -p wslpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
62
+ basedir_win="$converted"
63
+ exe=".exe"
64
+ elif command -v wslpath > /dev/null 2>&1; then
65
+ basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
66
+ if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
67
+ basedir_win="$basedir"
68
+ else
69
+ exe=".exe"
70
+ fi
71
+ fi
72
+ ;;
73
+ esac
74
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
75
+
76
+ basedir_abs=$(CDPATH= cd -P -- "$basedir" && pwd -P) || exit $?
77
+ if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
78
+ exec "$basedir/node.exe" "$basedir_win/../get-pnpm/bin/get-pnpm.js" "$@"
79
+ elif [ -x "$basedir/node" ]; then
80
+ exec "$basedir/node" "$basedir_abs/../get-pnpm/bin/get-pnpm.js" "$@"
81
+ elif command -v node >/dev/null 2>&1; then
82
+ exec node "$basedir_abs/../get-pnpm/bin/get-pnpm.js" "$@"
83
+ elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
84
+ exec node.exe "$basedir_win/../get-pnpm/bin/get-pnpm.js" "$@"
85
+ else
86
+ exec node "$basedir_abs/../get-pnpm/bin/get-pnpm.js" "$@"
87
+ fi
88
+ # cmd-shim-target=../get-pnpm/bin/get-pnpm.js