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