@btc-vision/bitcoin 6.4.10 → 6.5.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 (220) hide show
  1. package/.babelrc +13 -4
  2. package/.mocharc.json +13 -13
  3. package/.prettierrc.json +12 -12
  4. package/CHANGELOG.md +403 -403
  5. package/CONTRIBUTING.md +83 -83
  6. package/LICENSE +21 -21
  7. package/README.md +201 -201
  8. package/browser/chunks/crypto-C6FlKKmp.js +2006 -0
  9. package/browser/chunks/payments-BE4vwHhV.js +1045 -0
  10. package/browser/chunks/psbt-Dlosf9CT.js +3853 -0
  11. package/browser/chunks/script-COWGdiOo.js +318 -0
  12. package/browser/chunks/transaction-BiXwH2v4.js +421 -0
  13. package/browser/chunks/utils-BKmkTzNZ.js +759 -0
  14. package/browser/crypto/crypto.d.ts +1 -1
  15. package/browser/index.d.ts +7 -27
  16. package/browser/index.js +92 -2
  17. package/build/index.d.ts +7 -27
  18. package/build/index.js +2 -2
  19. package/cjs/package.json +3 -3
  20. package/gulpfile.js +42 -42
  21. package/package.json +153 -150
  22. package/src/bip66.ts +107 -107
  23. package/src/block.ts +233 -233
  24. package/src/bufferutils.ts +188 -188
  25. package/src/crypto.ts +108 -108
  26. package/src/ecc_lib.ts +94 -94
  27. package/src/hooks/AdvancedSignatureManager.ts +104 -104
  28. package/src/hooks/SignatureManager.ts +84 -84
  29. package/src/index.ts +83 -105
  30. package/src/merkle.ts +31 -31
  31. package/src/opcodes.ts +280 -280
  32. package/src/payments/bip341.ts +140 -140
  33. package/src/payments/embed.ts +61 -61
  34. package/src/payments/index.ts +172 -172
  35. package/src/payments/lazy.ts +28 -28
  36. package/src/payments/p2ms.ts +156 -156
  37. package/src/payments/p2op.ts +195 -195
  38. package/src/payments/p2pk.ts +93 -93
  39. package/src/payments/p2pkh.ts +214 -214
  40. package/src/payments/p2tr.ts +309 -309
  41. package/src/psbt/bip371.ts +441 -441
  42. package/src/push_data.ts +97 -97
  43. package/src/script.ts +247 -247
  44. package/src/script_number.ts +72 -72
  45. package/src/script_signature.ts +91 -91
  46. package/src/transaction.ts +656 -656
  47. package/test/address.spec.ts +155 -155
  48. package/test/bitcoin.core.spec.ts +212 -212
  49. package/test/block.spec.ts +171 -171
  50. package/test/bufferutils.spec.ts +450 -450
  51. package/test/crypto.spec.ts +49 -49
  52. package/test/fixtures/address.json +329 -329
  53. package/test/fixtures/block.json +148 -148
  54. package/test/fixtures/bufferutils.json +102 -102
  55. package/test/fixtures/core/README.md +26 -26
  56. package/test/fixtures/core/base58_encode_decode.json +50 -50
  57. package/test/fixtures/core/base58_keys_invalid.json +152 -152
  58. package/test/fixtures/core/base58_keys_valid.json +452 -452
  59. package/test/fixtures/core/blocks.json +27 -27
  60. package/test/fixtures/core/sig_canonical.json +7 -7
  61. package/test/fixtures/core/sig_noncanonical.json +33 -33
  62. package/test/fixtures/core/sighash.json +3505 -3505
  63. package/test/fixtures/core/tx_valid.json +2023 -2023
  64. package/test/fixtures/crypto.json +43 -43
  65. package/test/fixtures/ecdsa.json +217 -217
  66. package/test/fixtures/ecpair.json +141 -141
  67. package/test/fixtures/embed.json +108 -108
  68. package/test/fixtures/p2ms.json +434 -434
  69. package/test/fixtures/p2pk.json +179 -179
  70. package/test/fixtures/p2pkh.json +276 -276
  71. package/test/fixtures/p2sh.json +508 -508
  72. package/test/fixtures/p2tr.json +1198 -1198
  73. package/test/fixtures/p2wpkh.json +290 -290
  74. package/test/fixtures/p2wsh.json +489 -489
  75. package/test/fixtures/psbt.json +924 -924
  76. package/test/fixtures/script.json +465 -465
  77. package/test/fixtures/script_number.json +225 -225
  78. package/test/fixtures/signature.json +140 -140
  79. package/test/fixtures/transaction.json +916 -916
  80. package/test/integration/_regtest.ts +6 -6
  81. package/test/integration/addresses.spec.ts +142 -142
  82. package/test/integration/bip32.spec.ts +130 -130
  83. package/test/integration/blocks.spec.ts +28 -28
  84. package/test/integration/cltv.spec.ts +241 -241
  85. package/test/integration/csv.spec.ts +452 -452
  86. package/test/integration/payments.spec.ts +110 -110
  87. package/test/integration/taproot.spec.ts +663 -663
  88. package/test/integration/transactions.spec.ts +668 -668
  89. package/test/payments.spec.ts +114 -114
  90. package/test/payments.utils.ts +165 -165
  91. package/test/psbt.spec.ts +1285 -1285
  92. package/test/script.spec.ts +186 -186
  93. package/test/script_number.spec.ts +26 -26
  94. package/test/script_signature.spec.ts +66 -66
  95. package/test/transaction.spec.ts +337 -337
  96. package/test/ts-node-register.js +7 -7
  97. package/test/tsconfig.json +48 -48
  98. package/test/types.spec.ts +53 -53
  99. package/tsconfig.base.json +27 -27
  100. package/tsconfig.json +19 -19
  101. package/tsconfig.webpack.json +18 -18
  102. package/vite.config.browser.ts +93 -0
  103. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/.ready +0 -0
  104. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/.release-please-manifest.json +0 -3
  105. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/CHANGELOG.md +0 -962
  106. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/CONTRIBUTING.md +0 -34
  107. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/LICENSE +0 -24
  108. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/README.md +0 -273
  109. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/SECURITY.md +0 -2
  110. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/addon.gypi +0 -204
  111. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/bin/node-gyp.js +0 -138
  112. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/.release-please-manifest.json +0 -3
  113. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/LICENSE +0 -28
  114. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/data/ninja/build.ninja +0 -4
  115. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +0 -12
  116. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/GypVsCMake.md +0 -116
  117. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/Hacking.md +0 -46
  118. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/InputFormatReference.md +0 -1080
  119. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/LanguageSpecification.md +0 -430
  120. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/README.md +0 -27
  121. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/Testing.md +0 -450
  122. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/UserDocumentation.md +0 -965
  123. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp +0 -8
  124. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp.bat +0 -5
  125. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp_main.py +0 -45
  126. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -365
  127. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
  128. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1272
  129. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1547
  130. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
  131. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -153
  132. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -271
  133. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -574
  134. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -692
  135. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -711
  136. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -171
  137. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -169
  138. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -113
  139. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
  140. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  141. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -804
  142. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1173
  143. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1318
  144. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -127
  145. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -103
  146. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -461
  147. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -89
  148. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -57
  149. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2745
  150. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3976
  151. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
  152. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2964
  153. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -67
  154. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1391
  155. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -25
  156. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3115
  157. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -98
  158. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -771
  159. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1260
  160. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
  161. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
  162. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -373
  163. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1938
  164. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +0 -53
  165. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -302
  166. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3198
  167. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -65
  168. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE +0 -3
  169. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE +0 -177
  170. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD +0 -23
  171. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/__init__.py +0 -15
  172. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py +0 -108
  173. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py +0 -252
  174. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py +0 -83
  175. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_parser.py +0 -359
  176. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_structures.py +0 -61
  177. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py +0 -192
  178. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/markers.py +0 -252
  179. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +0 -825
  180. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/py.typed +0 -0
  181. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/requirements.py +0 -90
  182. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py +0 -1030
  183. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/tags.py +0 -553
  184. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/utils.py +0 -172
  185. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/version.py +0 -563
  186. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pyproject.toml +0 -120
  187. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/release-please-config.json +0 -11
  188. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/test_gyp.py +0 -261
  189. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/Find-VisualStudio.cs +0 -250
  190. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/build.js +0 -227
  191. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/clean.js +0 -15
  192. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/configure.js +0 -328
  193. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/create-config-gypi.js +0 -150
  194. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/download.js +0 -39
  195. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-node-directory.js +0 -63
  196. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-python.js +0 -310
  197. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-visualstudio.js +0 -590
  198. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/install.js +0 -415
  199. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/list.js +0 -26
  200. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/log.js +0 -168
  201. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/node-gyp.js +0 -188
  202. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/process-release.js +0 -146
  203. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/rebuild.js +0 -12
  204. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/remove.js +0 -43
  205. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/util.js +0 -81
  206. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/macOS_Catalina_acid_test.sh +0 -21
  207. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/package.json +0 -51
  208. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/release-please-config.json +0 -40
  209. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/src/win_delay_load_hook.cc +0 -39
  210. package/browser/index.js.LICENSE.txt +0 -14
  211. package/browser/ops.d.ts +0 -126
  212. package/build/ops.d.ts +0 -126
  213. package/build/ops.js +0 -127
  214. package/coverage/tmp/coverage-31752-1735543485354-0.json +0 -1
  215. package/coverage/tmp/coverage-59920-1735543484555-0.json +0 -1
  216. package/coverage/tmp/coverage-66252-1735543483919-0.json +0 -1
  217. package/coverage/tmp/coverage-68440-1735543485236-0.json +0 -1
  218. package/coverage/tmp/coverage-70588-1735543484426-0.json +0 -1
  219. package/coverage/tmp/coverage-79292-1735543485296-0.json +0 -1
  220. package/coverage/tmp/coverage-80212-1735543483980-0.json +0 -1
@@ -1,188 +0,0 @@
1
- 'use strict'
2
-
3
- const path = require('path')
4
- const nopt = require('nopt')
5
- const log = require('./log')
6
- const childProcess = require('child_process')
7
- const { EventEmitter } = require('events')
8
-
9
- const commands = [
10
- // Module build commands
11
- 'build',
12
- 'clean',
13
- 'configure',
14
- 'rebuild',
15
- // Development Header File management commands
16
- 'install',
17
- 'list',
18
- 'remove'
19
- ]
20
-
21
- class Gyp extends EventEmitter {
22
- /**
23
- * Export the contents of the package.json.
24
- */
25
- package = require('../package.json')
26
-
27
- /**
28
- * nopt configuration definitions
29
- */
30
- configDefs = {
31
- help: Boolean, // everywhere
32
- arch: String, // 'configure'
33
- cafile: String, // 'install'
34
- debug: Boolean, // 'build'
35
- directory: String, // bin
36
- make: String, // 'build'
37
- 'msvs-version': String, // 'configure'
38
- ensure: Boolean, // 'install'
39
- solution: String, // 'build' (windows only)
40
- proxy: String, // 'install'
41
- noproxy: String, // 'install'
42
- devdir: String, // everywhere
43
- nodedir: String, // 'configure'
44
- loglevel: String, // everywhere
45
- python: String, // 'configure'
46
- 'dist-url': String, // 'install'
47
- tarball: String, // 'install'
48
- jobs: String, // 'build'
49
- thin: String, // 'configure'
50
- 'force-process-config': Boolean // 'configure'
51
- }
52
-
53
- /**
54
- * nopt shorthands
55
- */
56
- shorthands = {
57
- release: '--no-debug',
58
- C: '--directory',
59
- debug: '--debug',
60
- j: '--jobs',
61
- silly: '--loglevel=silly',
62
- verbose: '--loglevel=verbose',
63
- silent: '--loglevel=silent'
64
- }
65
-
66
- /**
67
- * expose the command aliases for the bin file to use.
68
- */
69
- aliases = {
70
- ls: 'list',
71
- rm: 'remove'
72
- }
73
-
74
- constructor (...args) {
75
- super(...args)
76
-
77
- this.devDir = ''
78
-
79
- this.commands = commands.reduce((acc, command) => {
80
- acc[command] = (argv) => require('./' + command)(this, argv)
81
- return acc
82
- }, {})
83
-
84
- Object.defineProperty(this, 'version', {
85
- enumerable: true,
86
- get: function () { return this.package.version }
87
- })
88
- }
89
-
90
- /**
91
- * Parses the given argv array and sets the 'opts',
92
- * 'argv' and 'command' properties.
93
- */
94
- parseArgv (argv) {
95
- this.opts = nopt(this.configDefs, this.shorthands, argv)
96
- this.argv = this.opts.argv.remain.slice()
97
-
98
- const commands = this.todo = []
99
-
100
- // create a copy of the argv array with aliases mapped
101
- argv = this.argv.map((arg) => {
102
- // is this an alias?
103
- if (arg in this.aliases) {
104
- arg = this.aliases[arg]
105
- }
106
- return arg
107
- })
108
-
109
- // process the mapped args into "command" objects ("name" and "args" props)
110
- argv.slice().forEach((arg) => {
111
- if (arg in this.commands) {
112
- const args = argv.splice(0, argv.indexOf(arg))
113
- argv.shift()
114
- if (commands.length > 0) {
115
- commands[commands.length - 1].args = args
116
- }
117
- commands.push({ name: arg, args: [] })
118
- }
119
- })
120
- if (commands.length > 0) {
121
- commands[commands.length - 1].args = argv.splice(0)
122
- }
123
-
124
- // support for inheriting config env variables from npm
125
- const npmConfigPrefix = 'npm_config_'
126
- Object.keys(process.env).forEach((name) => {
127
- if (name.indexOf(npmConfigPrefix) !== 0) {
128
- return
129
- }
130
- const val = process.env[name]
131
- if (name === npmConfigPrefix + 'loglevel') {
132
- log.logger.level = val
133
- } else {
134
- // add the user-defined options to the config
135
- name = name.substring(npmConfigPrefix.length)
136
- // gyp@741b7f1 enters an infinite loop when it encounters
137
- // zero-length options so ensure those don't get through.
138
- if (name) {
139
- // convert names like force_process_config to force-process-config
140
- if (name.includes('_')) {
141
- name = name.replace(/_/g, '-')
142
- }
143
- this.opts[name] = val
144
- }
145
- }
146
- })
147
-
148
- if (this.opts.loglevel) {
149
- log.logger.level = this.opts.loglevel
150
- }
151
- log.resume()
152
- }
153
-
154
- /**
155
- * Spawns a child process and emits a 'spawn' event.
156
- */
157
- spawn (command, args, opts) {
158
- if (!opts) {
159
- opts = {}
160
- }
161
- if (!opts.silent && !opts.stdio) {
162
- opts.stdio = [0, 1, 2]
163
- }
164
- const cp = childProcess.spawn(command, args, opts)
165
- log.info('spawn', command)
166
- log.info('spawn args', args)
167
- return cp
168
- }
169
-
170
- /**
171
- * Returns the usage instructions for node-gyp.
172
- */
173
- usage () {
174
- return [
175
- '',
176
- ' Usage: node-gyp <command> [options]',
177
- '',
178
- ' where <command> is one of:',
179
- commands.map((c) => ' - ' + c + ' - ' + require('./' + c).usage).join('\n'),
180
- '',
181
- 'node-gyp@' + this.version + ' ' + path.resolve(__dirname, '..'),
182
- 'node@' + process.versions.node
183
- ].join('\n')
184
- }
185
- }
186
-
187
- module.exports = () => new Gyp()
188
- module.exports.Gyp = Gyp
@@ -1,146 +0,0 @@
1
- /* eslint-disable n/no-deprecated-api */
2
-
3
- 'use strict'
4
-
5
- const semver = require('semver')
6
- const url = require('url')
7
- const path = require('path')
8
- const log = require('./log')
9
-
10
- // versions where -headers.tar.gz started shipping
11
- const headersTarballRange = '>= 3.0.0 || ~0.12.10 || ~0.10.42'
12
- const bitsre = /\/win-(x86|x64|arm64)\//
13
- const bitsreV3 = /\/win-(x86|ia32|x64)\// // io.js v3.x.x shipped with "ia32" but should
14
- // have been "x86"
15
-
16
- // Captures all the logic required to determine download URLs, local directory and
17
- // file names. Inputs come from command-line switches (--target, --dist-url),
18
- // `process.version` and `process.release` where it exists.
19
- function processRelease (argv, gyp, defaultVersion, defaultRelease) {
20
- let version = (semver.valid(argv[0]) && argv[0]) || gyp.opts.target || defaultVersion
21
- const versionSemver = semver.parse(version)
22
- let overrideDistUrl = gyp.opts['dist-url'] || gyp.opts.disturl
23
- let isNamedForLegacyIojs
24
- let name
25
- let distBaseUrl
26
- let baseUrl
27
- let libUrl32
28
- let libUrl64
29
- let libUrlArm64
30
- let tarballUrl
31
- let canGetHeaders
32
-
33
- if (!versionSemver) {
34
- // not a valid semver string, nothing we can do
35
- return { version }
36
- }
37
- // flatten version into String
38
- version = versionSemver.version
39
-
40
- // defaultVersion should come from process.version so ought to be valid semver
41
- const isDefaultVersion = version === semver.parse(defaultVersion).version
42
-
43
- // can't use process.release if we're using --target=x.y.z
44
- if (!isDefaultVersion) {
45
- defaultRelease = null
46
- }
47
-
48
- if (defaultRelease) {
49
- // v3 onward, has process.release
50
- name = defaultRelease.name.replace(/io\.js/, 'iojs') // remove the '.' for directory naming purposes
51
- } else {
52
- // old node or alternative --target=
53
- // semver.satisfies() doesn't like prerelease tags so test major directly
54
- isNamedForLegacyIojs = versionSemver.major >= 1 && versionSemver.major < 4
55
- // isNamedForLegacyIojs is required to support Electron < 4 (in particular Electron 3)
56
- // as previously this logic was used to ensure "iojs" was used to download iojs releases
57
- // and "node" for node releases. Unfortunately the logic was broad enough that electron@3
58
- // published release assets as "iojs" so that the node-gyp logic worked. Once Electron@3 has
59
- // been EOL for a while (late 2019) we should remove this hack.
60
- name = isNamedForLegacyIojs ? 'iojs' : 'node'
61
- }
62
-
63
- // check for the nvm.sh standard mirror env variables
64
- if (!overrideDistUrl && process.env.NODEJS_ORG_MIRROR) {
65
- overrideDistUrl = process.env.NODEJS_ORG_MIRROR
66
- }
67
-
68
- if (overrideDistUrl) {
69
- log.verbose('download', 'using dist-url', overrideDistUrl)
70
- }
71
-
72
- if (overrideDistUrl) {
73
- distBaseUrl = overrideDistUrl.replace(/\/+$/, '')
74
- } else {
75
- distBaseUrl = 'https://nodejs.org/dist'
76
- }
77
- distBaseUrl += '/v' + version + '/'
78
-
79
- // new style, based on process.release so we have a lot of the data we need
80
- if (defaultRelease && defaultRelease.headersUrl && !overrideDistUrl) {
81
- baseUrl = url.resolve(defaultRelease.headersUrl, './')
82
- libUrl32 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x86', versionSemver.major)
83
- libUrl64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x64', versionSemver.major)
84
- libUrlArm64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'arm64', versionSemver.major)
85
- tarballUrl = defaultRelease.headersUrl
86
- } else {
87
- // older versions without process.release are captured here and we have to make
88
- // a lot of assumptions, additionally if you --target=x.y.z then we can't use the
89
- // current process.release
90
- baseUrl = distBaseUrl
91
- libUrl32 = resolveLibUrl(name, baseUrl, 'x86', versionSemver.major)
92
- libUrl64 = resolveLibUrl(name, baseUrl, 'x64', versionSemver.major)
93
- libUrlArm64 = resolveLibUrl(name, baseUrl, 'arm64', versionSemver.major)
94
-
95
- // making the bold assumption that anything with a version number >3.0.0 will
96
- // have a *-headers.tar.gz file in its dist location, even some frankenstein
97
- // custom version
98
- canGetHeaders = semver.satisfies(versionSemver, headersTarballRange)
99
- tarballUrl = url.resolve(baseUrl, name + '-v' + version + (canGetHeaders ? '-headers' : '') + '.tar.gz')
100
- }
101
-
102
- return {
103
- version,
104
- semver: versionSemver,
105
- name,
106
- baseUrl,
107
- tarballUrl,
108
- shasumsUrl: url.resolve(baseUrl, 'SHASUMS256.txt'),
109
- versionDir: (name !== 'node' ? name + '-' : '') + version,
110
- ia32: {
111
- libUrl: libUrl32,
112
- libPath: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl32).path))
113
- },
114
- x64: {
115
- libUrl: libUrl64,
116
- libPath: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrl64).path))
117
- },
118
- arm64: {
119
- libUrl: libUrlArm64,
120
- libPath: normalizePath(path.relative(url.parse(baseUrl).path, url.parse(libUrlArm64).path))
121
- }
122
- }
123
- }
124
-
125
- function normalizePath (p) {
126
- return path.normalize(p).replace(/\\/g, '/')
127
- }
128
-
129
- function resolveLibUrl (name, defaultUrl, arch, versionMajor) {
130
- const base = url.resolve(defaultUrl, './')
131
- const hasLibUrl = bitsre.test(defaultUrl) || (versionMajor === 3 && bitsreV3.test(defaultUrl))
132
-
133
- if (!hasLibUrl) {
134
- // let's assume it's a baseUrl then
135
- if (versionMajor >= 1) {
136
- return url.resolve(base, 'win-' + arch + '/' + name + '.lib')
137
- }
138
- // prior to io.js@1.0.0 32-bit node.lib lives in /, 64-bit lives in /x64/
139
- return url.resolve(base, (arch === 'x86' ? '' : arch + '/') + name + '.lib')
140
- }
141
-
142
- // else we have a proper url to a .lib, just make sure it's the right arch
143
- return defaultUrl.replace(versionMajor === 3 ? bitsreV3 : bitsre, '/win-' + arch + '/')
144
- }
145
-
146
- module.exports = processRelease
@@ -1,12 +0,0 @@
1
- 'use strict'
2
-
3
- async function rebuild (gyp, argv) {
4
- gyp.todo.push(
5
- { name: 'clean', args: [] }
6
- , { name: 'configure', args: argv }
7
- , { name: 'build', args: [] }
8
- )
9
- }
10
-
11
- module.exports = rebuild
12
- module.exports.usage = 'Runs "clean", "configure" and "build" all at once'
@@ -1,43 +0,0 @@
1
- 'use strict'
2
-
3
- const fs = require('graceful-fs').promises
4
- const path = require('path')
5
- const log = require('./log')
6
- const semver = require('semver')
7
-
8
- async function remove (gyp, argv) {
9
- const devDir = gyp.devDir
10
- log.verbose('remove', 'using node-gyp dir:', devDir)
11
-
12
- // get the user-specified version to remove
13
- let version = argv[0] || gyp.opts.target
14
- log.verbose('remove', 'removing target version:', version)
15
-
16
- if (!version) {
17
- throw new Error('You must specify a version number to remove. Ex: "' + process.version + '"')
18
- }
19
-
20
- const versionSemver = semver.parse(version)
21
- if (versionSemver) {
22
- // flatten the version Array into a String
23
- version = versionSemver.version
24
- }
25
-
26
- const versionPath = path.resolve(gyp.devDir, version)
27
- log.verbose('remove', 'removing development files for version:', version)
28
-
29
- // first check if its even installed
30
- try {
31
- await fs.stat(versionPath)
32
- } catch (err) {
33
- if (err.code === 'ENOENT') {
34
- return 'version was already uninstalled: ' + version
35
- }
36
- throw err
37
- }
38
-
39
- await fs.rm(versionPath, { recursive: true, force: true })
40
- }
41
-
42
- module.exports = remove
43
- module.exports.usage = 'Removes the node development files for the specified version'
@@ -1,81 +0,0 @@
1
- 'use strict'
2
-
3
- const cp = require('child_process')
4
- const path = require('path')
5
- const { openSync, closeSync } = require('graceful-fs')
6
- const log = require('./log')
7
-
8
- const execFile = async (...args) => new Promise((resolve) => {
9
- const child = cp.execFile(...args, (...a) => resolve(a))
10
- child.stdin.end()
11
- })
12
-
13
- async function regGetValue (key, value, addOpts) {
14
- const outReValue = value.replace(/\W/g, '.')
15
- const outRe = new RegExp(`^\\s+${outReValue}\\s+REG_\\w+\\s+(\\S.*)$`, 'im')
16
- const reg = path.join(process.env.SystemRoot, 'System32', 'reg.exe')
17
- const regArgs = ['query', key, '/v', value].concat(addOpts)
18
-
19
- log.silly('reg', 'running', reg, regArgs)
20
- const [err, stdout, stderr] = await execFile(reg, regArgs, { encoding: 'utf8' })
21
-
22
- log.silly('reg', 'reg.exe stdout = %j', stdout)
23
- if (err || stderr.trim() !== '') {
24
- log.silly('reg', 'reg.exe err = %j', err && (err.stack || err))
25
- log.silly('reg', 'reg.exe stderr = %j', stderr)
26
- if (err) {
27
- throw err
28
- }
29
- throw new Error(stderr)
30
- }
31
-
32
- const result = outRe.exec(stdout)
33
- if (!result) {
34
- log.silly('reg', 'error parsing stdout')
35
- throw new Error('Could not parse output of reg.exe')
36
- }
37
-
38
- log.silly('reg', 'found: %j', result[1])
39
- return result[1]
40
- }
41
-
42
- async function regSearchKeys (keys, value, addOpts) {
43
- for (const key of keys) {
44
- try {
45
- return await regGetValue(key, value, addOpts)
46
- } catch {
47
- continue
48
- }
49
- }
50
- }
51
-
52
- /**
53
- * Returns the first file or directory from an array of candidates that is
54
- * readable by the current user, or undefined if none of the candidates are
55
- * readable.
56
- */
57
- function findAccessibleSync (logprefix, dir, candidates) {
58
- for (let next = 0; next < candidates.length; next++) {
59
- const candidate = path.resolve(dir, candidates[next])
60
- let fd
61
- try {
62
- fd = openSync(candidate, 'r')
63
- } catch (e) {
64
- // this candidate was not found or not readable, do nothing
65
- log.silly(logprefix, 'Could not open %s: %s', candidate, e.message)
66
- continue
67
- }
68
- closeSync(fd)
69
- log.silly(logprefix, 'Found readable %s', candidate)
70
- return candidate
71
- }
72
-
73
- return undefined
74
- }
75
-
76
- module.exports = {
77
- execFile,
78
- regGetValue,
79
- regSearchKeys,
80
- findAccessibleSync
81
- }
@@ -1,21 +0,0 @@
1
- #!/bin/bash
2
-
3
- pkgs=(
4
- "com.apple.pkg.DeveloperToolsCLILeo" # standalone
5
- "com.apple.pkg.DeveloperToolsCLI" # from XCode
6
- "com.apple.pkg.CLTools_Executables" # Mavericks
7
- )
8
-
9
- for pkg in "${pkgs[@]}"; do
10
- output=$(/usr/sbin/pkgutil --pkg-info "$pkg" 2>/dev/null)
11
- if [ "$output" ]; then
12
- version=$(echo "$output" | grep 'version' | cut -d' ' -f2)
13
- break
14
- fi
15
- done
16
-
17
- if [ "$version" ]; then
18
- echo "Command Line Tools version: $version"
19
- else
20
- echo >&2 'Command Line Tools not found'
21
- fi
@@ -1,51 +0,0 @@
1
- {
2
- "name": "node-gyp",
3
- "description": "Node.js native addon build tool",
4
- "license": "MIT",
5
- "keywords": [
6
- "native",
7
- "addon",
8
- "module",
9
- "c",
10
- "c++",
11
- "bindings",
12
- "gyp"
13
- ],
14
- "version": "10.2.0",
15
- "installVersion": 11,
16
- "author": "Nathan Rajlich <nathan@tootallnate.net> (http://tootallnate.net)",
17
- "repository": {
18
- "type": "git",
19
- "url": "git://github.com/nodejs/node-gyp.git"
20
- },
21
- "preferGlobal": true,
22
- "bin": "./bin/node-gyp.js",
23
- "main": "./lib/node-gyp.js",
24
- "dependencies": {
25
- "env-paths": "^2.2.0",
26
- "exponential-backoff": "^3.1.1",
27
- "glob": "^10.3.10",
28
- "graceful-fs": "^4.2.6",
29
- "make-fetch-happen": "^13.0.0",
30
- "nopt": "^7.0.0",
31
- "proc-log": "^4.1.0",
32
- "semver": "^7.3.5",
33
- "tar": "^6.2.1",
34
- "which": "^4.0.0"
35
- },
36
- "engines": {
37
- "node": "^16.14.0 || >=18.0.0"
38
- },
39
- "devDependencies": {
40
- "bindings": "^1.5.0",
41
- "cross-env": "^7.0.3",
42
- "mocha": "^10.2.0",
43
- "nan": "^2.14.2",
44
- "require-inject": "^1.4.4",
45
- "standard": "^17.0.0"
46
- },
47
- "scripts": {
48
- "lint": "standard \"*/*.js\" \"test/**/*.js\" \".github/**/*.js\"",
49
- "test": "cross-env NODE_GYP_NULL_LOGGER=true mocha --timeout 15000 test/test-download.js test/test-*"
50
- }
51
- }
@@ -1,40 +0,0 @@
1
- {
2
- "packages": {
3
- ".": {
4
- "include-component-in-tag": false,
5
- "release-type": "node",
6
- "changelog-sections": [
7
- { "type": "feat", "section": "Features", "hidden": false },
8
- { "type": "fix", "section": "Bug Fixes", "hidden": false },
9
- { "type": "bin", "section": "Core", "hidden": false },
10
- { "type": "gyp", "section": "Core", "hidden": false },
11
- { "type": "lib", "section": "Core", "hidden": false },
12
- { "type": "src", "section": "Core", "hidden": false },
13
- { "type": "test", "section": "Tests", "hidden": false },
14
- { "type": "build", "section": "Core", "hidden": false },
15
- { "type": "clean", "section": "Core", "hidden": false },
16
- { "type": "configure", "section": "Core", "hidden": false },
17
- { "type": "install", "section": "Core", "hidden": false },
18
- { "type": "list", "section": "Core", "hidden": false },
19
- { "type": "rebuild", "section": "Core", "hidden": false },
20
- { "type": "remove", "section": "Core", "hidden": false },
21
- { "type": "deps", "section": "Core", "hidden": false },
22
- { "type": "python", "section": "Core", "hidden": false },
23
- { "type": "lin", "section": "Core", "hidden": false },
24
- { "type": "linux", "section": "Core", "hidden": false },
25
- { "type": "mac", "section": "Core", "hidden": false },
26
- { "type": "macos", "section": "Core", "hidden": false },
27
- { "type": "win", "section": "Core", "hidden": false },
28
- { "type": "windows", "section": "Core", "hidden": false },
29
- { "type": "zos", "section": "Core", "hidden": false },
30
- { "type": "doc", "section": "Doc", "hidden": false },
31
- { "type": "docs", "section": "Doc", "hidden": false },
32
- { "type": "readme", "section": "Doc", "hidden": false },
33
- { "type": "chore", "section": "Miscellaneous", "hidden": false },
34
- { "type": "refactor", "section": "Miscellaneous", "hidden": false },
35
- { "type": "ci", "section": "Miscellaneous", "hidden": false },
36
- { "type": "meta", "section": "Miscellaneous", "hidden": false }
37
- ]
38
- }
39
- }
40
- }
@@ -1,39 +0,0 @@
1
- /*
2
- * When this file is linked to a DLL, it sets up a delay-load hook that
3
- * intervenes when the DLL is trying to load the host executable
4
- * dynamically. Instead of trying to locate the .exe file it'll just
5
- * return a handle to the process image.
6
- *
7
- * This allows compiled addons to work when the host executable is renamed.
8
- */
9
-
10
- #ifdef _MSC_VER
11
-
12
- #pragma managed(push, off)
13
-
14
- #ifndef WIN32_LEAN_AND_MEAN
15
- #define WIN32_LEAN_AND_MEAN
16
- #endif
17
-
18
- #include <windows.h>
19
-
20
- #include <delayimp.h>
21
- #include <string.h>
22
-
23
- static FARPROC WINAPI load_exe_hook(unsigned int event, DelayLoadInfo* info) {
24
- HMODULE m;
25
- if (event != dliNotePreLoadLibrary)
26
- return NULL;
27
-
28
- if (_stricmp(info->szDll, HOST_BINARY) != 0)
29
- return NULL;
30
-
31
- m = GetModuleHandle(NULL);
32
- return (FARPROC) m;
33
- }
34
-
35
- decltype(__pfnDliNotifyHook2) __pfnDliNotifyHook2 = load_exe_hook;
36
-
37
- #pragma managed(pop)
38
-
39
- #endif
@@ -1,14 +0,0 @@
1
- /*!
2
- * The buffer module from node.js, for the browser.
3
- *
4
- * @author Feross Aboukhadijeh <https://feross.org>
5
- * @license MIT
6
- */
7
-
8
- /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
9
-
10
- /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
11
-
12
- /*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */
13
-
14
- /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */