@btc-vision/bitcoin 6.4.9 → 6.4.11

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 (230) hide show
  1. package/.babelrc +4 -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/index.d.ts +1 -1
  9. package/browser/index.js +1 -1
  10. package/browser/{ops.d.ts → opcodes.d.ts} +2 -3
  11. package/browser/script.d.ts +2 -2
  12. package/build/address.js +2 -1
  13. package/build/index.d.ts +1 -1
  14. package/build/index.js +1 -1
  15. package/build/{ops.d.ts → opcodes.d.ts} +2 -3
  16. package/build/{ops.js → opcodes.js} +4 -5
  17. package/build/payments/embed.js +1 -1
  18. package/build/payments/p2ms.js +1 -1
  19. package/build/payments/p2op.js +1 -1
  20. package/build/payments/p2pk.js +1 -1
  21. package/build/payments/p2pkh.js +1 -1
  22. package/build/payments/p2sh.js +3 -3
  23. package/build/payments/p2tr.js +1 -1
  24. package/build/payments/p2wpkh.js +2 -2
  25. package/build/payments/p2wsh.js +2 -2
  26. package/build/push_data.js +9 -9
  27. package/build/script.d.ts +2 -2
  28. package/build/script.js +12 -12
  29. package/build/transaction.js +1 -1
  30. package/cjs/package.json +3 -3
  31. package/gulpfile.js +42 -42
  32. package/package.json +150 -150
  33. package/src/address.ts +304 -303
  34. package/src/bip66.ts +107 -107
  35. package/src/block.ts +233 -233
  36. package/src/bufferutils.ts +188 -188
  37. package/src/crypto.ts +108 -108
  38. package/src/ecc_lib.ts +94 -94
  39. package/src/hooks/AdvancedSignatureManager.ts +104 -104
  40. package/src/hooks/SignatureManager.ts +84 -84
  41. package/src/index.ts +105 -105
  42. package/src/merkle.ts +31 -31
  43. package/src/{ops.ts → opcodes.ts} +280 -282
  44. package/src/payments/bip341.ts +140 -140
  45. package/src/payments/embed.ts +61 -61
  46. package/src/payments/index.ts +172 -172
  47. package/src/payments/lazy.ts +28 -28
  48. package/src/payments/p2ms.ts +156 -156
  49. package/src/payments/p2op.ts +195 -195
  50. package/src/payments/p2pk.ts +93 -93
  51. package/src/payments/p2pkh.ts +214 -214
  52. package/src/payments/p2sh.ts +210 -210
  53. package/src/payments/p2tr.ts +309 -309
  54. package/src/payments/p2wpkh.ts +144 -144
  55. package/src/payments/p2wsh.ts +217 -217
  56. package/src/psbt/bip371.ts +441 -441
  57. package/src/push_data.ts +97 -97
  58. package/src/script.ts +247 -247
  59. package/src/script_number.ts +72 -72
  60. package/src/script_signature.ts +91 -91
  61. package/src/transaction.ts +656 -656
  62. package/test/address.spec.ts +155 -155
  63. package/test/bitcoin.core.spec.ts +212 -212
  64. package/test/block.spec.ts +171 -171
  65. package/test/bufferutils.spec.ts +450 -450
  66. package/test/crypto.spec.ts +49 -49
  67. package/test/fixtures/address.json +329 -329
  68. package/test/fixtures/block.json +148 -148
  69. package/test/fixtures/bufferutils.json +102 -102
  70. package/test/fixtures/core/README.md +26 -26
  71. package/test/fixtures/core/base58_encode_decode.json +50 -50
  72. package/test/fixtures/core/base58_keys_invalid.json +152 -152
  73. package/test/fixtures/core/base58_keys_valid.json +452 -452
  74. package/test/fixtures/core/blocks.json +27 -27
  75. package/test/fixtures/core/sig_canonical.json +7 -7
  76. package/test/fixtures/core/sig_noncanonical.json +33 -33
  77. package/test/fixtures/core/sighash.json +3505 -3505
  78. package/test/fixtures/core/tx_valid.json +2023 -2023
  79. package/test/fixtures/crypto.json +43 -43
  80. package/test/fixtures/ecdsa.json +217 -217
  81. package/test/fixtures/ecpair.json +141 -141
  82. package/test/fixtures/embed.json +108 -108
  83. package/test/fixtures/p2ms.json +434 -434
  84. package/test/fixtures/p2pk.json +179 -179
  85. package/test/fixtures/p2pkh.json +276 -276
  86. package/test/fixtures/p2sh.json +508 -508
  87. package/test/fixtures/p2tr.json +1198 -1198
  88. package/test/fixtures/p2wpkh.json +290 -290
  89. package/test/fixtures/p2wsh.json +489 -489
  90. package/test/fixtures/psbt.json +924 -924
  91. package/test/fixtures/script.json +465 -465
  92. package/test/fixtures/script_number.json +225 -225
  93. package/test/fixtures/signature.json +140 -140
  94. package/test/fixtures/transaction.json +916 -916
  95. package/test/integration/_regtest.ts +6 -6
  96. package/test/integration/addresses.spec.ts +142 -142
  97. package/test/integration/bip32.spec.ts +130 -130
  98. package/test/integration/blocks.spec.ts +28 -28
  99. package/test/integration/cltv.spec.ts +241 -241
  100. package/test/integration/csv.spec.ts +452 -452
  101. package/test/integration/payments.spec.ts +110 -110
  102. package/test/integration/taproot.spec.ts +663 -663
  103. package/test/integration/transactions.spec.ts +668 -668
  104. package/test/payments.spec.ts +114 -114
  105. package/test/payments.utils.ts +165 -165
  106. package/test/psbt.spec.ts +1285 -1285
  107. package/test/script.spec.ts +186 -186
  108. package/test/script_number.spec.ts +26 -26
  109. package/test/script_signature.spec.ts +66 -66
  110. package/test/transaction.spec.ts +337 -337
  111. package/test/ts-node-register.js +7 -7
  112. package/test/tsconfig.json +48 -48
  113. package/test/types.spec.ts +53 -53
  114. package/tsconfig.base.json +27 -27
  115. package/tsconfig.json +19 -19
  116. package/tsconfig.webpack.json +18 -18
  117. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/.ready +0 -0
  118. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/.release-please-manifest.json +0 -3
  119. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/CHANGELOG.md +0 -962
  120. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/CONTRIBUTING.md +0 -34
  121. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/LICENSE +0 -24
  122. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/README.md +0 -273
  123. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/SECURITY.md +0 -2
  124. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/addon.gypi +0 -204
  125. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/bin/node-gyp.js +0 -138
  126. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/.release-please-manifest.json +0 -3
  127. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/LICENSE +0 -28
  128. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/data/ninja/build.ninja +0 -4
  129. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +0 -12
  130. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/GypVsCMake.md +0 -116
  131. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/Hacking.md +0 -46
  132. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/InputFormatReference.md +0 -1080
  133. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/LanguageSpecification.md +0 -430
  134. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/README.md +0 -27
  135. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/Testing.md +0 -450
  136. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/UserDocumentation.md +0 -965
  137. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp +0 -8
  138. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp.bat +0 -5
  139. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp_main.py +0 -45
  140. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -365
  141. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
  142. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1272
  143. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1547
  144. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
  145. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -153
  146. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -271
  147. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -574
  148. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -692
  149. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -711
  150. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -171
  151. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -169
  152. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -113
  153. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
  154. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  155. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -804
  156. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1173
  157. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1318
  158. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -127
  159. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -103
  160. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -461
  161. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -89
  162. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -57
  163. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2745
  164. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3976
  165. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
  166. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2964
  167. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -67
  168. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1391
  169. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -25
  170. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3115
  171. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -98
  172. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -771
  173. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1260
  174. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
  175. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
  176. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -373
  177. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1938
  178. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +0 -53
  179. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -302
  180. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3198
  181. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -65
  182. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE +0 -3
  183. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE +0 -177
  184. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD +0 -23
  185. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/__init__.py +0 -15
  186. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py +0 -108
  187. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py +0 -252
  188. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py +0 -83
  189. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_parser.py +0 -359
  190. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_structures.py +0 -61
  191. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py +0 -192
  192. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/markers.py +0 -252
  193. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +0 -825
  194. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/py.typed +0 -0
  195. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/requirements.py +0 -90
  196. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py +0 -1030
  197. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/tags.py +0 -553
  198. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/utils.py +0 -172
  199. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/version.py +0 -563
  200. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pyproject.toml +0 -120
  201. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/release-please-config.json +0 -11
  202. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/test_gyp.py +0 -261
  203. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/Find-VisualStudio.cs +0 -250
  204. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/build.js +0 -227
  205. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/clean.js +0 -15
  206. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/configure.js +0 -328
  207. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/create-config-gypi.js +0 -150
  208. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/download.js +0 -39
  209. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-node-directory.js +0 -63
  210. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-python.js +0 -310
  211. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-visualstudio.js +0 -590
  212. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/install.js +0 -415
  213. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/list.js +0 -26
  214. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/log.js +0 -168
  215. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/node-gyp.js +0 -188
  216. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/process-release.js +0 -146
  217. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/rebuild.js +0 -12
  218. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/remove.js +0 -43
  219. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/util.js +0 -81
  220. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/macOS_Catalina_acid_test.sh +0 -21
  221. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/package.json +0 -51
  222. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/release-please-config.json +0 -40
  223. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/src/win_delay_load_hook.cc +0 -39
  224. package/coverage/tmp/coverage-31752-1735543485354-0.json +0 -1
  225. package/coverage/tmp/coverage-59920-1735543484555-0.json +0 -1
  226. package/coverage/tmp/coverage-66252-1735543483919-0.json +0 -1
  227. package/coverage/tmp/coverage-68440-1735543485236-0.json +0 -1
  228. package/coverage/tmp/coverage-70588-1735543484426-0.json +0 -1
  229. package/coverage/tmp/coverage-79292-1735543485296-0.json +0 -1
  230. 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