dsh-remote 0.8.45 → 0.8.47

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 (391) hide show
  1. package/LICENSE +21 -21
  2. package/README.en.md +361 -361
  3. package/README.md +368 -368
  4. package/cordis.patch.yml +9 -9
  5. package/lib/binding.js +172 -172
  6. package/lib/client.js +3637 -3623
  7. package/lib/credential.js +177 -177
  8. package/lib/deploy-tasks.js +142 -142
  9. package/lib/errors.js +87 -87
  10. package/lib/file-reference.js +457 -457
  11. package/lib/forwards.js +258 -258
  12. package/lib/hostkey.js +108 -108
  13. package/lib/http-transport.js +196 -196
  14. package/lib/ignore.js +156 -156
  15. package/lib/index.js +3771 -3747
  16. package/lib/openssh.js +838 -838
  17. package/lib/paths.js +225 -225
  18. package/lib/pool.js +757 -754
  19. package/lib/registry.js +95 -95
  20. package/lib/remote-fs.js +148 -143
  21. package/lib/routes-fs.js +233 -233
  22. package/lib/search.js +230 -230
  23. package/lib/sftp-surface.js +76 -76
  24. package/lib/sshconfig.js +454 -454
  25. package/lib/sync.js +275 -275
  26. package/lib/tasks.js +95 -95
  27. package/lib/telemetry.js +213 -213
  28. package/lib/update.js +472 -472
  29. package/lib/web-attach.js +850 -846
  30. package/lib/web-deploy-skill.js +205 -205
  31. package/lib/web-deploy.js +694 -694
  32. package/node_modules/asn1/Jenkinsfile +65 -0
  33. package/node_modules/asn1/LICENSE +19 -0
  34. package/node_modules/asn1/README.md +50 -0
  35. package/node_modules/asn1/lib/ber/errors.js +13 -0
  36. package/node_modules/asn1/lib/ber/index.js +27 -0
  37. package/node_modules/asn1/lib/ber/reader.js +262 -0
  38. package/node_modules/asn1/lib/ber/types.js +36 -0
  39. package/node_modules/asn1/lib/ber/writer.js +317 -0
  40. package/node_modules/asn1/lib/index.js +20 -0
  41. package/node_modules/asn1/package.json +31 -0
  42. package/node_modules/bcrypt-pbkdf/CONTRIBUTING.md +13 -0
  43. package/node_modules/bcrypt-pbkdf/LICENSE +66 -0
  44. package/node_modules/bcrypt-pbkdf/README.md +45 -0
  45. package/node_modules/bcrypt-pbkdf/index.js +556 -0
  46. package/node_modules/bcrypt-pbkdf/package.json +15 -0
  47. package/node_modules/buildcheck/.eslintrc.js +5 -0
  48. package/node_modules/buildcheck/.github/workflows/ci.yml +88 -0
  49. package/node_modules/buildcheck/.github/workflows/lint.yml +27 -0
  50. package/node_modules/buildcheck/.npmignore +3 -0
  51. package/node_modules/buildcheck/LICENSE +19 -0
  52. package/node_modules/buildcheck/README.md +106 -0
  53. package/node_modules/buildcheck/deps/Find-VisualStudio.cs +250 -0
  54. package/node_modules/buildcheck/lib/findvs.js +361 -0
  55. package/node_modules/buildcheck/lib/index.js +738 -0
  56. package/node_modules/buildcheck/package.json +36 -0
  57. package/node_modules/buildcheck/test/test.js +8 -0
  58. package/node_modules/cpu-features/.eslintrc.js +5 -0
  59. package/node_modules/cpu-features/.github/workflows/ci.yml +74 -0
  60. package/node_modules/cpu-features/.github/workflows/lint.yml +27 -0
  61. package/node_modules/cpu-features/LICENSE +19 -0
  62. package/node_modules/cpu-features/README.md +59 -0
  63. package/node_modules/cpu-features/binding.gyp +16 -0
  64. package/node_modules/cpu-features/buildcheck.js +32 -0
  65. package/node_modules/cpu-features/deps/cpu_features/.clang-format +4 -0
  66. package/node_modules/cpu-features/deps/cpu_features/.dockerignore +31 -0
  67. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/Dockerfile +5 -0
  68. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/aarch64_linux_cmake.yml +30 -0
  69. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_freebsd_cmake.yml +22 -0
  70. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_linux_bazel.yml +26 -0
  71. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_linux_cmake.yml +31 -0
  72. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_macos_cmake.yml +43 -0
  73. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_windows_cmake.yml +25 -0
  74. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/arm_linux_cmake.yml +31 -0
  75. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/clang_format.yml +24 -0
  76. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/mips_linux_cmake.yml +30 -0
  77. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/power_linux_cmake.yml +29 -0
  78. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/riscv_linux_cmake.yml +28 -0
  79. package/node_modules/cpu-features/deps/cpu_features/.github/workflows/s390x_linux_cmake.yml +27 -0
  80. package/node_modules/cpu-features/deps/cpu_features/.grenrc.yml +21 -0
  81. package/node_modules/cpu-features/deps/cpu_features/BUILD.bazel +329 -0
  82. package/node_modules/cpu-features/deps/cpu_features/CMakeLists.txt +261 -0
  83. package/node_modules/cpu-features/deps/cpu_features/CONTRIBUTING.md +23 -0
  84. package/node_modules/cpu-features/deps/cpu_features/LICENSE +230 -0
  85. package/node_modules/cpu-features/deps/cpu_features/README.md +272 -0
  86. package/node_modules/cpu-features/deps/cpu_features/WORKSPACE +19 -0
  87. package/node_modules/cpu-features/deps/cpu_features/bazel/ci/README.md +5 -0
  88. package/node_modules/cpu-features/deps/cpu_features/bazel/platforms.bzl +11 -0
  89. package/node_modules/cpu-features/deps/cpu_features/cmake/CpuFeaturesConfig.cmake.in +3 -0
  90. package/node_modules/cpu-features/deps/cpu_features/cmake/CpuFeaturesNdkCompatConfig.cmake.in +3 -0
  91. package/node_modules/cpu-features/deps/cpu_features/cmake/README.md +30 -0
  92. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/Makefile +252 -0
  93. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/README.md +40 -0
  94. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/docker.dot +64 -0
  95. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/docker.svg +312 -0
  96. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/generate_image.sh +7 -0
  97. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/docker/amd64/Dockerfile +48 -0
  98. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/docker/toolchain/Dockerfile +34 -0
  99. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/sample/CMakeLists.txt +22 -0
  100. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/sample/main.cpp +11 -0
  101. package/node_modules/cpu-features/deps/cpu_features/cmake/ci/vagrant/freebsd/Vagrantfile +107 -0
  102. package/node_modules/cpu-features/deps/cpu_features/cmake/googletest.CMakeLists.txt.in +15 -0
  103. package/node_modules/cpu-features/deps/cpu_features/cpu_features.gyp +105 -0
  104. package/node_modules/cpu-features/deps/cpu_features/include/cpu_features_cache_info.h +54 -0
  105. package/node_modules/cpu-features/deps/cpu_features/include/cpu_features_macros.h +384 -0
  106. package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_aarch64.h +259 -0
  107. package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_arm.h +121 -0
  108. package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_mips.h +74 -0
  109. package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_ppc.h +149 -0
  110. package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_riscv.h +72 -0
  111. package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_s390x.h +108 -0
  112. package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_x86.h +288 -0
  113. package/node_modules/cpu-features/deps/cpu_features/include/internal/bit_utils.h +40 -0
  114. package/node_modules/cpu-features/deps/cpu_features/include/internal/cpuid_x86.h +37 -0
  115. package/node_modules/cpu-features/deps/cpu_features/include/internal/filesystem.h +39 -0
  116. package/node_modules/cpu-features/deps/cpu_features/include/internal/hwcaps.h +240 -0
  117. package/node_modules/cpu-features/deps/cpu_features/include/internal/stack_line_reader.h +49 -0
  118. package/node_modules/cpu-features/deps/cpu_features/include/internal/string_view.h +110 -0
  119. package/node_modules/cpu-features/deps/cpu_features/include/internal/windows_utils.h +70 -0
  120. package/node_modules/cpu-features/deps/cpu_features/ndk_compat/CMakeLists.txt +60 -0
  121. package/node_modules/cpu-features/deps/cpu_features/ndk_compat/README.md +4 -0
  122. package/node_modules/cpu-features/deps/cpu_features/ndk_compat/cpu-features.c +205 -0
  123. package/node_modules/cpu-features/deps/cpu_features/ndk_compat/cpu-features.h +320 -0
  124. package/node_modules/cpu-features/deps/cpu_features/ndk_compat/ndk-compat-test.c +12 -0
  125. package/node_modules/cpu-features/deps/cpu_features/patches/0001-Add-Apple-Silicon-Support.patch +456 -0
  126. package/node_modules/cpu-features/deps/cpu_features/scripts/generate_badges.d +165 -0
  127. package/node_modules/cpu-features/deps/cpu_features/scripts/make_release.sh +75 -0
  128. package/node_modules/cpu-features/deps/cpu_features/scripts/run_integration.sh +490 -0
  129. package/node_modules/cpu-features/deps/cpu_features/scripts/test_integration.sh +79 -0
  130. package/node_modules/cpu-features/deps/cpu_features/src/copy.inl +19 -0
  131. package/node_modules/cpu-features/deps/cpu_features/src/define_introspection.inl +86 -0
  132. package/node_modules/cpu-features/deps/cpu_features/src/define_introspection_and_hwcaps.inl +26 -0
  133. package/node_modules/cpu-features/deps/cpu_features/src/equals.inl +22 -0
  134. package/node_modules/cpu-features/deps/cpu_features/src/filesystem.c +62 -0
  135. package/node_modules/cpu-features/deps/cpu_features/src/hwcaps.c +169 -0
  136. package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64__base_implementation.inl +88 -0
  137. package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_linux_or_android.c +79 -0
  138. package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_macos_or_iphone.c +82 -0
  139. package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_windows.c +138 -0
  140. package/node_modules/cpu-features/deps/cpu_features/src/impl_arm_linux_or_android.c +212 -0
  141. package/node_modules/cpu-features/deps/cpu_features/src/impl_mips_linux_or_android.c +93 -0
  142. package/node_modules/cpu-features/deps/cpu_features/src/impl_ppc_linux.c +163 -0
  143. package/node_modules/cpu-features/deps/cpu_features/src/impl_riscv_linux.c +111 -0
  144. package/node_modules/cpu-features/deps/cpu_features/src/impl_s390x_linux.c +120 -0
  145. package/node_modules/cpu-features/deps/cpu_features/src/impl_x86__base_implementation.inl +2055 -0
  146. package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_freebsd.c +68 -0
  147. package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_linux_or_android.c +58 -0
  148. package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_macos.c +57 -0
  149. package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_windows.c +58 -0
  150. package/node_modules/cpu-features/deps/cpu_features/src/stack_line_reader.c +132 -0
  151. package/node_modules/cpu-features/deps/cpu_features/src/string_view.c +192 -0
  152. package/node_modules/cpu-features/deps/cpu_features/src/utils/list_cpu_features.c +461 -0
  153. package/node_modules/cpu-features/deps/cpu_features/test/CMakeLists.txt +114 -0
  154. package/node_modules/cpu-features/deps/cpu_features/test/bit_utils_test.cc +53 -0
  155. package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_aarch64_test.cc +396 -0
  156. package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_arm_test.cc +384 -0
  157. package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_mips_test.cc +176 -0
  158. package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_ppc_test.cc +131 -0
  159. package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_riscv_test.cc +180 -0
  160. package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_s390x_test.cc +82 -0
  161. package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_x86_test.cc +1729 -0
  162. package/node_modules/cpu-features/deps/cpu_features/test/filesystem_for_testing.cc +103 -0
  163. package/node_modules/cpu-features/deps/cpu_features/test/filesystem_for_testing.h +61 -0
  164. package/node_modules/cpu-features/deps/cpu_features/test/hwcaps_for_testing.cc +52 -0
  165. package/node_modules/cpu-features/deps/cpu_features/test/hwcaps_for_testing.h +31 -0
  166. package/node_modules/cpu-features/deps/cpu_features/test/stack_line_reader_test.cc +132 -0
  167. package/node_modules/cpu-features/deps/cpu_features/test/string_view_test.cc +202 -0
  168. package/node_modules/cpu-features/lib/index.js +5 -0
  169. package/node_modules/cpu-features/package.json +40 -0
  170. package/node_modules/cpu-features/src/binding.cc +151 -0
  171. package/node_modules/cpu-features/test/test.js +12 -0
  172. package/node_modules/nan/.github/workflows/ci.yml +46 -0
  173. package/node_modules/nan/.pre-commit-config.yaml +8 -0
  174. package/node_modules/nan/CHANGELOG.md +605 -0
  175. package/node_modules/nan/CMakeLists.txt +138 -0
  176. package/node_modules/nan/LICENSE.md +9 -0
  177. package/node_modules/nan/README.md +457 -0
  178. package/node_modules/nan/doc/asyncworker.md +146 -0
  179. package/node_modules/nan/doc/buffers.md +54 -0
  180. package/node_modules/nan/doc/callback.md +76 -0
  181. package/node_modules/nan/doc/converters.md +41 -0
  182. package/node_modules/nan/doc/errors.md +226 -0
  183. package/node_modules/nan/doc/json.md +62 -0
  184. package/node_modules/nan/doc/maybe_types.md +583 -0
  185. package/node_modules/nan/doc/methods.md +689 -0
  186. package/node_modules/nan/doc/new.md +147 -0
  187. package/node_modules/nan/doc/node_misc.md +123 -0
  188. package/node_modules/nan/doc/object_wrappers.md +263 -0
  189. package/node_modules/nan/doc/persistent.md +296 -0
  190. package/node_modules/nan/doc/scopes.md +73 -0
  191. package/node_modules/nan/doc/script.md +58 -0
  192. package/node_modules/nan/doc/string_bytes.md +81 -0
  193. package/node_modules/nan/doc/v8_internals.md +211 -0
  194. package/node_modules/nan/doc/v8_misc.md +85 -0
  195. package/node_modules/nan/include_dirs.js +1 -0
  196. package/node_modules/nan/nan.h +3202 -0
  197. package/node_modules/nan/nan_callbacks.h +141 -0
  198. package/node_modules/nan/nan_callbacks_12_inl.h +730 -0
  199. package/node_modules/nan/nan_callbacks_pre_12_inl.h +528 -0
  200. package/node_modules/nan/nan_converters.h +72 -0
  201. package/node_modules/nan/nan_converters_43_inl.h +68 -0
  202. package/node_modules/nan/nan_converters_pre_43_inl.h +42 -0
  203. package/node_modules/nan/nan_define_own_property_helper.h +29 -0
  204. package/node_modules/nan/nan_implementation_12_inl.h +446 -0
  205. package/node_modules/nan/nan_implementation_pre_12_inl.h +263 -0
  206. package/node_modules/nan/nan_json.h +166 -0
  207. package/node_modules/nan/nan_maybe_43_inl.h +360 -0
  208. package/node_modules/nan/nan_maybe_pre_43_inl.h +268 -0
  209. package/node_modules/nan/nan_new.h +340 -0
  210. package/node_modules/nan/nan_object_wrap.h +156 -0
  211. package/node_modules/nan/nan_persistent_12_inl.h +132 -0
  212. package/node_modules/nan/nan_persistent_pre_12_inl.h +242 -0
  213. package/node_modules/nan/nan_private.h +73 -0
  214. package/node_modules/nan/nan_scriptorigin.h +97 -0
  215. package/node_modules/nan/nan_string_bytes.h +305 -0
  216. package/node_modules/nan/nan_typedarray_contents.h +96 -0
  217. package/node_modules/nan/nan_weak.h +453 -0
  218. package/node_modules/nan/package.json +38 -0
  219. package/node_modules/nan/tools/1to2.js +412 -0
  220. package/node_modules/nan/tools/README.md +14 -0
  221. package/node_modules/nan/tools/package.json +19 -0
  222. package/node_modules/safer-buffer/LICENSE +21 -0
  223. package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  224. package/node_modules/safer-buffer/Readme.md +156 -0
  225. package/node_modules/safer-buffer/dangerous.js +58 -0
  226. package/node_modules/safer-buffer/package.json +34 -0
  227. package/node_modules/safer-buffer/safer.js +77 -0
  228. package/node_modules/safer-buffer/tests.js +406 -0
  229. package/node_modules/ssh2/.eslintignore +4 -0
  230. package/node_modules/ssh2/.eslintrc.js +5 -0
  231. package/node_modules/ssh2/.github/workflows/ci.yml +110 -0
  232. package/node_modules/ssh2/.github/workflows/lint.yml +27 -0
  233. package/node_modules/ssh2/LICENSE +19 -0
  234. package/node_modules/ssh2/README.md +1529 -0
  235. package/node_modules/ssh2/SFTP.md +413 -0
  236. package/node_modules/ssh2/examples/server-chat.js +238 -0
  237. package/node_modules/ssh2/examples/sftp-server-download-only.js +134 -0
  238. package/node_modules/ssh2/install.js +27 -0
  239. package/node_modules/ssh2/lib/Channel.js +295 -0
  240. package/node_modules/ssh2/lib/agent.js +1123 -0
  241. package/node_modules/ssh2/lib/client.js +2176 -0
  242. package/node_modules/ssh2/lib/http-agents.js +84 -0
  243. package/node_modules/ssh2/lib/index.js +44 -0
  244. package/node_modules/ssh2/lib/keygen.js +582 -0
  245. package/node_modules/ssh2/lib/protocol/Protocol.js +2136 -0
  246. package/node_modules/ssh2/lib/protocol/SFTP.js +4052 -0
  247. package/node_modules/ssh2/lib/protocol/constants.js +356 -0
  248. package/node_modules/ssh2/lib/protocol/crypto/binding.gyp +23 -0
  249. package/node_modules/ssh2/lib/protocol/crypto/poly1305.js +43 -0
  250. package/node_modules/ssh2/lib/protocol/crypto/src/binding.cc +2300 -0
  251. package/node_modules/ssh2/lib/protocol/crypto.js +1602 -0
  252. package/node_modules/ssh2/lib/protocol/handlers.js +16 -0
  253. package/node_modules/ssh2/lib/protocol/handlers.misc.js +1285 -0
  254. package/node_modules/ssh2/lib/protocol/kex.js +1908 -0
  255. package/node_modules/ssh2/lib/protocol/keyParser.js +1484 -0
  256. package/node_modules/ssh2/lib/protocol/node-fs-compat.js +115 -0
  257. package/node_modules/ssh2/lib/protocol/utils.js +356 -0
  258. package/node_modules/ssh2/lib/protocol/zlib.js +255 -0
  259. package/node_modules/ssh2/lib/server.js +1380 -0
  260. package/node_modules/ssh2/lib/utils.js +336 -0
  261. package/node_modules/ssh2/package.json +49 -0
  262. package/node_modules/ssh2/test/common.js +316 -0
  263. package/node_modules/ssh2/test/fixtures/bad_rsa_private_key +26 -0
  264. package/node_modules/ssh2/test/fixtures/https_cert.pem +33 -0
  265. package/node_modules/ssh2/test/fixtures/https_key.pem +52 -0
  266. package/node_modules/ssh2/test/fixtures/id_dsa +12 -0
  267. package/node_modules/ssh2/test/fixtures/id_ecdsa +5 -0
  268. package/node_modules/ssh2/test/fixtures/id_rsa +15 -0
  269. package/node_modules/ssh2/test/fixtures/id_rsa.ppk +26 -0
  270. package/node_modules/ssh2/test/fixtures/id_rsa_enc +30 -0
  271. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa +21 -0
  272. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.pub +1 -0
  273. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.pub.result +7 -0
  274. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.result +7 -0
  275. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc +22 -0
  276. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.pub +1 -0
  277. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.pub.result +7 -0
  278. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.result +7 -0
  279. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm +23 -0
  280. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.pub +1 -0
  281. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.pub.result +7 -0
  282. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.result +7 -0
  283. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa +9 -0
  284. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.pub +1 -0
  285. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.pub.result +7 -0
  286. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.result +7 -0
  287. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc +10 -0
  288. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.pub +1 -0
  289. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.pub.result +8 -0
  290. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.result +7 -0
  291. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm +10 -0
  292. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.pub +1 -0
  293. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.pub.result +8 -0
  294. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.result +7 -0
  295. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519 +7 -0
  296. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.pub +1 -0
  297. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.pub.result +7 -0
  298. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.result +7 -0
  299. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa +27 -0
  300. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.pub +1 -0
  301. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.pub.result +7 -0
  302. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.result +7 -0
  303. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc +28 -0
  304. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.pub +1 -0
  305. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.pub.result +8 -0
  306. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.result +7 -0
  307. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm +29 -0
  308. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.pub +1 -0
  309. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.pub.result +8 -0
  310. package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.result +7 -0
  311. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa +12 -0
  312. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.pub +1 -0
  313. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.pub.result +7 -0
  314. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.result +7 -0
  315. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc +15 -0
  316. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.pub +1 -0
  317. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.pub.result +8 -0
  318. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.result +7 -0
  319. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa +5 -0
  320. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.pub +1 -0
  321. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.pub.result +7 -0
  322. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.result +7 -0
  323. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc +8 -0
  324. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.pub +1 -0
  325. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.pub.result +8 -0
  326. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.result +7 -0
  327. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa +27 -0
  328. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.pub +1 -0
  329. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.pub.result +7 -0
  330. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.result +7 -0
  331. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc +30 -0
  332. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.pub +1 -0
  333. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.pub.result +8 -0
  334. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.result +7 -0
  335. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256 +54 -0
  336. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.pub +1 -0
  337. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.pub.result +6 -0
  338. package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.result +6 -0
  339. package/node_modules/ssh2/test/fixtures/keyParser/ppk_dsa_enc +17 -0
  340. package/node_modules/ssh2/test/fixtures/keyParser/ppk_dsa_enc.result +7 -0
  341. package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa +26 -0
  342. package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa.result +7 -0
  343. package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa_enc +18 -0
  344. package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa_enc.result +7 -0
  345. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa.pub +9 -0
  346. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa.pub.result +7 -0
  347. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa2.pub +10 -0
  348. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa2.pub.result +7 -0
  349. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa3.pub +11 -0
  350. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa3.pub.result +7 -0
  351. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa4.pub +11 -0
  352. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa4.pub.result +7 -0
  353. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa5.pub +8 -0
  354. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa5.pub.result +7 -0
  355. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa6.pub +13 -0
  356. package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa6.pub.result +7 -0
  357. package/node_modules/ssh2/test/fixtures/openssh_new_rsa +27 -0
  358. package/node_modules/ssh2/test/fixtures/ssh_host_dsa_key +12 -0
  359. package/node_modules/ssh2/test/fixtures/ssh_host_ecdsa_key +5 -0
  360. package/node_modules/ssh2/test/fixtures/ssh_host_rsa_key +15 -0
  361. package/node_modules/ssh2/test/test-exec.js +578 -0
  362. package/node_modules/ssh2/test/test-integration-openssh.js +486 -0
  363. package/node_modules/ssh2/test/test-keygen.js +60 -0
  364. package/node_modules/ssh2/test/test-misc-client-server.js +1460 -0
  365. package/node_modules/ssh2/test/test-openssh.js +261 -0
  366. package/node_modules/ssh2/test/test-protocol-crypto.js +631 -0
  367. package/node_modules/ssh2/test/test-protocol-keyparser.js +177 -0
  368. package/node_modules/ssh2/test/test-server-hostkeys.js +138 -0
  369. package/node_modules/ssh2/test/test-sftp.js +842 -0
  370. package/node_modules/ssh2/test/test-shell.js +109 -0
  371. package/node_modules/ssh2/test/test-userauth-agent-openssh.js +110 -0
  372. package/node_modules/ssh2/test/test-userauth-agent.js +171 -0
  373. package/node_modules/ssh2/test/test-userauth.js +611 -0
  374. package/node_modules/ssh2/test/test-worker-imports.js +25 -0
  375. package/node_modules/ssh2/test/test.js +20 -0
  376. package/node_modules/ssh2/util/build_pagent.bat +2 -0
  377. package/node_modules/ssh2/util/pagent.c +88 -0
  378. package/node_modules/ssh2/util/pagent.exe +0 -0
  379. package/node_modules/tweetnacl/.npmignore +4 -0
  380. package/node_modules/tweetnacl/AUTHORS.md +28 -0
  381. package/node_modules/tweetnacl/CHANGELOG.md +221 -0
  382. package/node_modules/tweetnacl/LICENSE +24 -0
  383. package/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
  384. package/node_modules/tweetnacl/README.md +459 -0
  385. package/node_modules/tweetnacl/nacl-fast.js +2388 -0
  386. package/node_modules/tweetnacl/nacl-fast.min.js +2 -0
  387. package/node_modules/tweetnacl/nacl.d.ts +98 -0
  388. package/node_modules/tweetnacl/nacl.js +1175 -0
  389. package/node_modules/tweetnacl/nacl.min.js +1 -0
  390. package/node_modules/tweetnacl/package.json +58 -0
  391. package/package.json +95 -89
@@ -0,0 +1,103 @@
1
+ // Copyright 2017 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include "filesystem_for_testing.h"
16
+
17
+ #include <cassert>
18
+ #include <climits>
19
+ #include <cstdio>
20
+ #include <cstring>
21
+ #include <utility>
22
+
23
+ namespace cpu_features {
24
+
25
+ FakeFile::FakeFile(int file_descriptor, const char* content)
26
+ : file_descriptor_(file_descriptor), content_(content) {}
27
+
28
+ FakeFile::~FakeFile() { assert(!opened_); }
29
+
30
+ void FakeFile::Open() {
31
+ assert(!opened_);
32
+ opened_ = true;
33
+ }
34
+
35
+ void FakeFile::Close() {
36
+ assert(opened_);
37
+ opened_ = false;
38
+ }
39
+
40
+ int FakeFile::Read(int fd, void* buf, size_t count) {
41
+ assert(count < INT_MAX);
42
+ assert(fd == file_descriptor_);
43
+ const size_t remainder = content_.size() - head_index_;
44
+ const size_t read = count > remainder ? remainder : count;
45
+ memcpy(buf, content_.data() + head_index_, read);
46
+ head_index_ += read;
47
+ assert(read < INT_MAX);
48
+ return (int)read;
49
+ }
50
+
51
+ void FakeFilesystem::Reset() { files_.clear(); }
52
+
53
+ FakeFile* FakeFilesystem::CreateFile(const std::string& filename,
54
+ const char* content) {
55
+ auto& file = files_[filename];
56
+ file =
57
+ std::unique_ptr<FakeFile>(new FakeFile(next_file_descriptor_++, content));
58
+ return file.get();
59
+ }
60
+
61
+ FakeFile* FakeFilesystem::FindFileOrNull(const std::string& filename) const {
62
+ const auto itr = files_.find(filename);
63
+ return itr == files_.end() ? nullptr : itr->second.get();
64
+ }
65
+
66
+ FakeFile* FakeFilesystem::FindFileOrDie(const int file_descriptor) const {
67
+ for (const auto& filename_file_pair : files_) {
68
+ FakeFile* const file_ptr = filename_file_pair.second.get();
69
+ if (file_ptr->GetFileDescriptor() == file_descriptor) {
70
+ return file_ptr;
71
+ }
72
+ }
73
+ assert(false);
74
+ return nullptr;
75
+ }
76
+
77
+ static FakeFilesystem* kFilesystem = new FakeFilesystem();
78
+
79
+ FakeFilesystem& GetEmptyFilesystem() {
80
+ kFilesystem->Reset();
81
+ return *kFilesystem;
82
+ }
83
+
84
+ extern "C" int CpuFeatures_OpenFile(const char* filename) {
85
+ auto* const file = kFilesystem->FindFileOrNull(filename);
86
+ if (file) {
87
+ file->Open();
88
+ return file->GetFileDescriptor();
89
+ }
90
+ return -1;
91
+ }
92
+
93
+ extern "C" void CpuFeatures_CloseFile(int file_descriptor) {
94
+ kFilesystem->FindFileOrDie(file_descriptor)->Close();
95
+ }
96
+
97
+ extern "C" int CpuFeatures_ReadFile(int file_descriptor, void* buffer,
98
+ size_t buffer_size) {
99
+ return kFilesystem->FindFileOrDie(file_descriptor)
100
+ ->Read(file_descriptor, buffer, buffer_size);
101
+ }
102
+
103
+ } // namespace cpu_features
@@ -0,0 +1,61 @@
1
+ // Copyright 2017 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ // Implements a fake filesystem, useful for tests.
16
+ #ifndef CPU_FEATURES_TEST_FILESYSTEM_FOR_TESTING_H_
17
+ #define CPU_FEATURES_TEST_FILESYSTEM_FOR_TESTING_H_
18
+
19
+ #include <memory>
20
+ #include <string>
21
+ #include <unordered_map>
22
+
23
+ #include "internal/filesystem.h"
24
+
25
+ namespace cpu_features {
26
+
27
+ class FakeFile {
28
+ public:
29
+ explicit FakeFile(int file_descriptor, const char* content);
30
+ ~FakeFile();
31
+
32
+ void Open();
33
+ void Close();
34
+ int Read(int fd, void* buf, size_t count);
35
+
36
+ int GetFileDescriptor() const { return file_descriptor_; }
37
+
38
+ private:
39
+ const int file_descriptor_;
40
+ const std::string content_;
41
+ bool opened_ = false;
42
+ size_t head_index_ = 0;
43
+ };
44
+
45
+ class FakeFilesystem {
46
+ public:
47
+ void Reset();
48
+ FakeFile* CreateFile(const std::string& filename, const char* content);
49
+ FakeFile* FindFileOrDie(const int file_descriptor) const;
50
+ FakeFile* FindFileOrNull(const std::string& filename) const;
51
+
52
+ private:
53
+ int next_file_descriptor_ = 0;
54
+ std::unordered_map<std::string, std::unique_ptr<FakeFile>> files_;
55
+ };
56
+
57
+ FakeFilesystem& GetEmptyFilesystem();
58
+
59
+ } // namespace cpu_features
60
+
61
+ #endif // CPU_FEATURES_TEST_FILESYSTEM_FOR_TESTING_H_
@@ -0,0 +1,52 @@
1
+ // Copyright 2017 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include "hwcaps_for_testing.h"
16
+
17
+ #include <string.h>
18
+
19
+ #include "internal/string_view.h"
20
+
21
+ namespace cpu_features {
22
+
23
+ namespace {
24
+ static auto* const g_hardware_capabilities = new HardwareCapabilities();
25
+ static const char* g_platform_pointer = nullptr;
26
+ static const char* g_base_platform_pointer = nullptr;
27
+ } // namespace
28
+
29
+ void SetHardwareCapabilities(uint32_t hwcaps, uint32_t hwcaps2) {
30
+ g_hardware_capabilities->hwcaps = hwcaps;
31
+ g_hardware_capabilities->hwcaps2 = hwcaps2;
32
+ }
33
+ void SetPlatformPointer(const char* string) { g_platform_pointer = string; }
34
+ void SetBasePlatformPointer(const char* string) {
35
+ g_base_platform_pointer = string;
36
+ }
37
+
38
+ void ResetHwcaps() {
39
+ SetHardwareCapabilities(0, 0);
40
+ SetPlatformPointer(nullptr);
41
+ SetBasePlatformPointer(nullptr);
42
+ }
43
+
44
+ HardwareCapabilities CpuFeatures_GetHardwareCapabilities(void) {
45
+ return *g_hardware_capabilities;
46
+ }
47
+ const char* CpuFeatures_GetPlatformPointer(void) { return g_platform_pointer; }
48
+ const char* CpuFeatures_GetBasePlatformPointer(void) {
49
+ return g_base_platform_pointer;
50
+ }
51
+
52
+ } // namespace cpu_features
@@ -0,0 +1,31 @@
1
+ // Copyright 2017 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #ifndef CPU_FEATURES_TEST_HWCAPS_FOR_TESTING_H_
16
+ #define CPU_FEATURES_TEST_HWCAPS_FOR_TESTING_H_
17
+
18
+ #include "internal/hwcaps.h"
19
+
20
+ namespace cpu_features {
21
+
22
+ void SetHardwareCapabilities(uint32_t hwcaps, uint32_t hwcaps2);
23
+ void SetPlatformPointer(const char* string);
24
+ void SetBasePlatformPointer(const char* string);
25
+
26
+ // To be called before each test.
27
+ void ResetHwcaps();
28
+
29
+ } // namespace cpu_features
30
+
31
+ #endif // CPU_FEATURES_TEST_HWCAPS_FOR_TESTING_H_
@@ -0,0 +1,132 @@
1
+ // Copyright 2017 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include "internal/stack_line_reader.h"
16
+
17
+ #include "filesystem_for_testing.h"
18
+ #include "gtest/gtest.h"
19
+
20
+ namespace cpu_features {
21
+
22
+ bool operator==(const StringView& a, const StringView& b) {
23
+ return CpuFeatures_StringView_IsEquals(a, b);
24
+ }
25
+
26
+ namespace {
27
+
28
+ std::string ToString(StringView view) { return {view.ptr, view.size}; }
29
+
30
+ TEST(StackLineReaderTest, Empty) {
31
+ auto& fs = GetEmptyFilesystem();
32
+ auto* file = fs.CreateFile("/proc/cpuinfo", "");
33
+ StackLineReader reader;
34
+ StackLineReader_Initialize(&reader, file->GetFileDescriptor());
35
+ {
36
+ const auto result = StackLineReader_NextLine(&reader);
37
+ EXPECT_TRUE(result.eof);
38
+ EXPECT_TRUE(result.full_line);
39
+ EXPECT_EQ(result.line, str(""));
40
+ }
41
+ }
42
+
43
+ TEST(StackLineReaderTest, ManySmallLines) {
44
+ auto& fs = GetEmptyFilesystem();
45
+ auto* file = fs.CreateFile("/proc/cpuinfo", "a\nb\nc");
46
+
47
+ StackLineReader reader;
48
+ StackLineReader_Initialize(&reader, file->GetFileDescriptor());
49
+ {
50
+ const auto result = StackLineReader_NextLine(&reader);
51
+ EXPECT_FALSE(result.eof);
52
+ EXPECT_TRUE(result.full_line);
53
+ EXPECT_EQ(result.line, str("a"));
54
+ }
55
+ {
56
+ const auto result = StackLineReader_NextLine(&reader);
57
+ EXPECT_FALSE(result.eof);
58
+ EXPECT_TRUE(result.full_line);
59
+ EXPECT_EQ(result.line, str("b"));
60
+ }
61
+ {
62
+ const auto result = StackLineReader_NextLine(&reader);
63
+ EXPECT_TRUE(result.eof);
64
+ EXPECT_TRUE(result.full_line);
65
+ EXPECT_EQ(result.line, str("c"));
66
+ }
67
+ }
68
+
69
+ TEST(StackLineReaderTest, TruncatedLine) {
70
+ auto& fs = GetEmptyFilesystem();
71
+ auto* file = fs.CreateFile("/proc/cpuinfo", R"(First
72
+ Second
73
+ More than 16 characters, this will be truncated.
74
+ last)");
75
+
76
+ StackLineReader reader;
77
+ StackLineReader_Initialize(&reader, file->GetFileDescriptor());
78
+ {
79
+ const auto result = StackLineReader_NextLine(&reader);
80
+ EXPECT_FALSE(result.eof);
81
+ EXPECT_TRUE(result.full_line);
82
+ EXPECT_EQ(result.line, str("First"));
83
+ }
84
+ {
85
+ const auto result = StackLineReader_NextLine(&reader);
86
+ EXPECT_FALSE(result.eof);
87
+ EXPECT_TRUE(result.full_line);
88
+ EXPECT_EQ(result.line, str("Second"));
89
+ }
90
+ {
91
+ const auto result = StackLineReader_NextLine(&reader);
92
+ EXPECT_FALSE(result.eof);
93
+ EXPECT_FALSE(result.full_line);
94
+ EXPECT_EQ(result.line, str("More than 16 cha"));
95
+ }
96
+ {
97
+ const auto result = StackLineReader_NextLine(&reader);
98
+ EXPECT_TRUE(result.eof);
99
+ EXPECT_TRUE(result.full_line);
100
+ EXPECT_EQ(result.line, str("last"));
101
+ }
102
+ }
103
+
104
+ TEST(StackLineReaderTest, TruncatedLines) {
105
+ auto& fs = GetEmptyFilesystem();
106
+ auto* file = fs.CreateFile("/proc/cpuinfo", R"(More than 16 characters
107
+ Another line that is too long)");
108
+
109
+ StackLineReader reader;
110
+ StackLineReader_Initialize(&reader, file->GetFileDescriptor());
111
+ {
112
+ const auto result = StackLineReader_NextLine(&reader);
113
+ EXPECT_FALSE(result.eof);
114
+ EXPECT_FALSE(result.full_line);
115
+ EXPECT_EQ(result.line, str("More than 16 cha"));
116
+ }
117
+ {
118
+ const auto result = StackLineReader_NextLine(&reader);
119
+ EXPECT_FALSE(result.eof);
120
+ EXPECT_FALSE(result.full_line);
121
+ EXPECT_EQ(result.line, str("Another line tha"));
122
+ }
123
+ {
124
+ const auto result = StackLineReader_NextLine(&reader);
125
+ EXPECT_TRUE(result.eof);
126
+ EXPECT_TRUE(result.full_line);
127
+ EXPECT_EQ(result.line, str(""));
128
+ }
129
+ }
130
+
131
+ } // namespace
132
+ } // namespace cpu_features
@@ -0,0 +1,202 @@
1
+ // Copyright 2017 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include "internal/string_view.h"
16
+
17
+ #include "gtest/gtest.h"
18
+
19
+ namespace cpu_features {
20
+
21
+ bool operator==(const StringView& a, const StringView& b) {
22
+ return CpuFeatures_StringView_IsEquals(a, b);
23
+ }
24
+
25
+ namespace {
26
+
27
+ TEST(StringViewTest, Empty) {
28
+ EXPECT_EQ(kEmptyStringView.ptr, nullptr);
29
+ EXPECT_EQ(kEmptyStringView.size, 0);
30
+ }
31
+
32
+ TEST(StringViewTest, Build) {
33
+ const auto view = str("test");
34
+ EXPECT_EQ(view.ptr[0], 't');
35
+ EXPECT_EQ(view.size, 4);
36
+ }
37
+
38
+ TEST(StringViewTest, CpuFeatures_StringView_IndexOfChar) {
39
+ // Found.
40
+ EXPECT_EQ(CpuFeatures_StringView_IndexOfChar(str("test"), 'e'), 1);
41
+ EXPECT_EQ(CpuFeatures_StringView_IndexOfChar(str("test"), 't'), 0);
42
+ EXPECT_EQ(CpuFeatures_StringView_IndexOfChar(str("beef"), 'e'), 1);
43
+ // Not found.
44
+ EXPECT_EQ(CpuFeatures_StringView_IndexOfChar(str("test"), 'z'), -1);
45
+ // Empty.
46
+ EXPECT_EQ(CpuFeatures_StringView_IndexOfChar(kEmptyStringView, 'z'), -1);
47
+ }
48
+
49
+ TEST(StringViewTest, CpuFeatures_StringView_IndexOf) {
50
+ // Found.
51
+ EXPECT_EQ(CpuFeatures_StringView_IndexOf(str("test"), str("es")), 1);
52
+ EXPECT_EQ(CpuFeatures_StringView_IndexOf(str("test"), str("test")), 0);
53
+ EXPECT_EQ(CpuFeatures_StringView_IndexOf(str("tesstest"), str("test")), 4);
54
+ // Not found.
55
+ EXPECT_EQ(CpuFeatures_StringView_IndexOf(str("test"), str("aa")), -1);
56
+ // Empty.
57
+ EXPECT_EQ(CpuFeatures_StringView_IndexOf(kEmptyStringView, str("aa")), -1);
58
+ EXPECT_EQ(CpuFeatures_StringView_IndexOf(str("aa"), kEmptyStringView), -1);
59
+ }
60
+
61
+ TEST(StringViewTest, CpuFeatures_StringView_StartsWith) {
62
+ EXPECT_TRUE(CpuFeatures_StringView_StartsWith(str("test"), str("te")));
63
+ EXPECT_TRUE(CpuFeatures_StringView_StartsWith(str("test"), str("test")));
64
+ EXPECT_FALSE(CpuFeatures_StringView_StartsWith(str("test"), str("st")));
65
+ EXPECT_FALSE(CpuFeatures_StringView_StartsWith(str("test"), str("est")));
66
+ EXPECT_FALSE(CpuFeatures_StringView_StartsWith(str("test"), str("")));
67
+ EXPECT_FALSE(
68
+ CpuFeatures_StringView_StartsWith(str("test"), kEmptyStringView));
69
+ EXPECT_FALSE(
70
+ CpuFeatures_StringView_StartsWith(kEmptyStringView, str("test")));
71
+ }
72
+
73
+ TEST(StringViewTest, CpuFeatures_StringView_IsEquals) {
74
+ EXPECT_TRUE(
75
+ CpuFeatures_StringView_IsEquals(kEmptyStringView, kEmptyStringView));
76
+ EXPECT_TRUE(CpuFeatures_StringView_IsEquals(kEmptyStringView, str("")));
77
+ EXPECT_TRUE(CpuFeatures_StringView_IsEquals(str(""), kEmptyStringView));
78
+ EXPECT_TRUE(CpuFeatures_StringView_IsEquals(str("test"), str("test")));
79
+ EXPECT_TRUE(CpuFeatures_StringView_IsEquals(str("a"), str("a")));
80
+ EXPECT_FALSE(CpuFeatures_StringView_IsEquals(str("a"), str("b")));
81
+ EXPECT_FALSE(CpuFeatures_StringView_IsEquals(str("aa"), str("a")));
82
+ EXPECT_FALSE(CpuFeatures_StringView_IsEquals(str("a"), str("aa")));
83
+ EXPECT_FALSE(CpuFeatures_StringView_IsEquals(str("a"), kEmptyStringView));
84
+ EXPECT_FALSE(CpuFeatures_StringView_IsEquals(kEmptyStringView, str("a")));
85
+ }
86
+
87
+ TEST(StringViewTest, CpuFeatures_StringView_PopFront) {
88
+ EXPECT_EQ(CpuFeatures_StringView_PopFront(str("test"), 2), str("st"));
89
+ EXPECT_EQ(CpuFeatures_StringView_PopFront(str("test"), 0), str("test"));
90
+ EXPECT_EQ(CpuFeatures_StringView_PopFront(str("test"), 4), str(""));
91
+ EXPECT_EQ(CpuFeatures_StringView_PopFront(str("test"), 100), str(""));
92
+ }
93
+
94
+ TEST(StringViewTest, CpuFeatures_StringView_PopBack) {
95
+ EXPECT_EQ(CpuFeatures_StringView_PopBack(str("test"), 2), str("te"));
96
+ EXPECT_EQ(CpuFeatures_StringView_PopBack(str("test"), 0), str("test"));
97
+ EXPECT_EQ(CpuFeatures_StringView_PopBack(str("test"), 4), str(""));
98
+ EXPECT_EQ(CpuFeatures_StringView_PopBack(str("test"), 100), str(""));
99
+ }
100
+
101
+ TEST(StringViewTest, CpuFeatures_StringView_KeepFront) {
102
+ EXPECT_EQ(CpuFeatures_StringView_KeepFront(str("test"), 2), str("te"));
103
+ EXPECT_EQ(CpuFeatures_StringView_KeepFront(str("test"), 0), str(""));
104
+ EXPECT_EQ(CpuFeatures_StringView_KeepFront(str("test"), 4), str("test"));
105
+ EXPECT_EQ(CpuFeatures_StringView_KeepFront(str("test"), 6), str("test"));
106
+ }
107
+
108
+ TEST(StringViewTest, CpuFeatures_StringView_Front) {
109
+ EXPECT_EQ(CpuFeatures_StringView_Front(str("apple")), 'a');
110
+ EXPECT_EQ(CpuFeatures_StringView_Front(str("a")), 'a');
111
+ }
112
+
113
+ TEST(StringViewTest, CpuFeatures_StringView_Back) {
114
+ EXPECT_EQ(CpuFeatures_StringView_Back(str("apple")), 'e');
115
+ EXPECT_EQ(CpuFeatures_StringView_Back(str("a")), 'a');
116
+ }
117
+
118
+ TEST(StringViewTest, CpuFeatures_StringView_TrimWhitespace) {
119
+ EXPECT_EQ(CpuFeatures_StringView_TrimWhitespace(str(" first middle last ")),
120
+ str("first middle last"));
121
+ EXPECT_EQ(CpuFeatures_StringView_TrimWhitespace(str("first middle last ")),
122
+ str("first middle last"));
123
+ EXPECT_EQ(CpuFeatures_StringView_TrimWhitespace(str(" first middle last")),
124
+ str("first middle last"));
125
+ EXPECT_EQ(CpuFeatures_StringView_TrimWhitespace(str("first middle last")),
126
+ str("first middle last"));
127
+ }
128
+
129
+ TEST(StringViewTest, CpuFeatures_StringView_ParsePositiveNumber) {
130
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("42")), 42);
131
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("0x2a")), 42);
132
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("0x2A")), 42);
133
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("0x2A2a")), 10794);
134
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("0x2a2A")), 10794);
135
+
136
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("-10")), -1);
137
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("-0x2A")), -1);
138
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("abc")), -1);
139
+ EXPECT_EQ(CpuFeatures_StringView_ParsePositiveNumber(str("")), -1);
140
+ }
141
+
142
+ TEST(StringViewTest, CpuFeatures_StringView_CopyString) {
143
+ char buf[4];
144
+ buf[0] = 'X';
145
+
146
+ // Empty
147
+ CpuFeatures_StringView_CopyString(str(""), buf, sizeof(buf));
148
+ EXPECT_STREQ(buf, "");
149
+
150
+ // Less
151
+ CpuFeatures_StringView_CopyString(str("a"), buf, sizeof(buf));
152
+ EXPECT_STREQ(buf, "a");
153
+
154
+ // exact
155
+ CpuFeatures_StringView_CopyString(str("abc"), buf, sizeof(buf));
156
+ EXPECT_STREQ(buf, "abc");
157
+
158
+ // More
159
+ CpuFeatures_StringView_CopyString(str("abcd"), buf, sizeof(buf));
160
+ EXPECT_STREQ(buf, "abc");
161
+ }
162
+
163
+ TEST(StringViewTest, CpuFeatures_StringView_HasWord) {
164
+ // Find flags at beginning, middle and end.
165
+ EXPECT_TRUE(
166
+ CpuFeatures_StringView_HasWord(str("first middle last"), "first", ' '));
167
+ EXPECT_TRUE(
168
+ CpuFeatures_StringView_HasWord(str("first middle last"), "middle", ' '));
169
+ EXPECT_TRUE(
170
+ CpuFeatures_StringView_HasWord(str("first middle last"), "last", ' '));
171
+ // Find flags at beginning, middle and end with a different separator
172
+ EXPECT_TRUE(
173
+ CpuFeatures_StringView_HasWord(str("first-middle-last"), "first", '-'));
174
+ EXPECT_TRUE(
175
+ CpuFeatures_StringView_HasWord(str("first-middle-last"), "middle", '-'));
176
+ EXPECT_TRUE(
177
+ CpuFeatures_StringView_HasWord(str("first-middle-last"), "last", '-'));
178
+ // Do not match partial flags
179
+ EXPECT_FALSE(
180
+ CpuFeatures_StringView_HasWord(str("first middle last"), "irst", ' '));
181
+ EXPECT_FALSE(
182
+ CpuFeatures_StringView_HasWord(str("first middle last"), "mid", ' '));
183
+ EXPECT_FALSE(
184
+ CpuFeatures_StringView_HasWord(str("first middle last"), "las", ' '));
185
+ }
186
+
187
+ TEST(StringViewTest, CpuFeatures_StringView_GetAttributeKeyValue) {
188
+ const StringView line = str(" key : first middle last ");
189
+ StringView key, value;
190
+ EXPECT_TRUE(CpuFeatures_StringView_GetAttributeKeyValue(line, &key, &value));
191
+ EXPECT_EQ(key, str("key"));
192
+ EXPECT_EQ(value, str("first middle last"));
193
+ }
194
+
195
+ TEST(StringViewTest, FailingGetAttributeKeyValue) {
196
+ const StringView line = str("key first middle last");
197
+ StringView key, value;
198
+ EXPECT_FALSE(CpuFeatures_StringView_GetAttributeKeyValue(line, &key, &value));
199
+ }
200
+
201
+ } // namespace
202
+ } // namespace cpu_features
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ const binding = require('../build/Release/cpufeatures.node');
4
+
5
+ module.exports = binding.getCPUInfo;
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "cpu-features",
3
+ "version": "0.0.10",
4
+ "author": "Brian White <mscdex@mscdex.net>",
5
+ "description": "A simple binding to Google's cpu_features library for obtaining information about installed CPU(s)",
6
+ "main": "./lib/index",
7
+ "dependencies": {
8
+ "buildcheck": "~0.0.6",
9
+ "nan": "^2.19.0"
10
+ },
11
+ "devDependencies": {
12
+ "@mscdex/eslint-config": "^1.1.0",
13
+ "eslint": "^7.0.0"
14
+ },
15
+ "scripts": {
16
+ "install": "node buildcheck.js > buildcheck.gypi && node-gyp rebuild",
17
+ "test": "node test/test.js",
18
+ "lint": "eslint --cache --report-unused-disable-directives --ext=.js .eslintrc.js lib test",
19
+ "lint:fix": "npm run lint -- --fix"
20
+ },
21
+ "engines": {
22
+ "node": ">=10.0.0"
23
+ },
24
+ "keywords": [
25
+ "cpu",
26
+ "detect",
27
+ "detection",
28
+ "features"
29
+ ],
30
+ "licenses": [
31
+ {
32
+ "type": "MIT",
33
+ "url": "https://github.com/mscdex/cpu-features/raw/master/LICENSE"
34
+ }
35
+ ],
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/mscdex/cpu-features.git"
39
+ }
40
+ }