@chilkat/react-native 11.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/ChilkatRN.podspec +44 -0
  3. package/LICENSE +254 -0
  4. package/README.md +67 -0
  5. package/android/CMakeLists.txt +60 -0
  6. package/android/build.gradle +148 -0
  7. package/android/gradle.properties +5 -0
  8. package/android/src/main/AndroidManifest.xml +2 -0
  9. package/android/src/main/cpp/cpp-adapter.cpp +12 -0
  10. package/android/src/main/java/com/margelo/nitro/chilkat/ChilkatRNPackage.java +33 -0
  11. package/chilkat-checksums.json +9 -0
  12. package/cpp/HybridAi.cpp +660 -0
  13. package/cpp/HybridAi.hpp +159 -0
  14. package/cpp/HybridAsn.cpp +403 -0
  15. package/cpp/HybridAsn.hpp +105 -0
  16. package/cpp/HybridAuthAws.cpp +188 -0
  17. package/cpp/HybridAuthAws.hpp +55 -0
  18. package/cpp/HybridAuthAzureSAS.cpp +142 -0
  19. package/cpp/HybridAuthAzureSAS.hpp +47 -0
  20. package/cpp/HybridAuthAzureStorage.cpp +144 -0
  21. package/cpp/HybridAuthAzureStorage.hpp +47 -0
  22. package/cpp/HybridAuthGoogle.cpp +215 -0
  23. package/cpp/HybridAuthGoogle.hpp +67 -0
  24. package/cpp/HybridBinData.cpp +439 -0
  25. package/cpp/HybridBinData.hpp +112 -0
  26. package/cpp/HybridBz2.cpp +177 -0
  27. package/cpp/HybridBz2.hpp +58 -0
  28. package/cpp/HybridCache.cpp +314 -0
  29. package/cpp/HybridCache.hpp +82 -0
  30. package/cpp/HybridCert.cpp +840 -0
  31. package/cpp/HybridCert.hpp +196 -0
  32. package/cpp/HybridCertChain.cpp +149 -0
  33. package/cpp/HybridCertChain.hpp +50 -0
  34. package/cpp/HybridCertStore.cpp +276 -0
  35. package/cpp/HybridCertStore.hpp +78 -0
  36. package/cpp/HybridCharset.cpp +333 -0
  37. package/cpp/HybridCharset.hpp +83 -0
  38. package/cpp/HybridCkDateTime.cpp +384 -0
  39. package/cpp/HybridCkDateTime.hpp +105 -0
  40. package/cpp/HybridCodeSign.cpp +156 -0
  41. package/cpp/HybridCodeSign.hpp +55 -0
  42. package/cpp/HybridCompression.cpp +422 -0
  43. package/cpp/HybridCompression.hpp +100 -0
  44. package/cpp/HybridCrypt2.cpp +1517 -0
  45. package/cpp/HybridCrypt2.hpp +320 -0
  46. package/cpp/HybridCsr.cpp +292 -0
  47. package/cpp/HybridCsr.hpp +77 -0
  48. package/cpp/HybridCsv.cpp +382 -0
  49. package/cpp/HybridCsv.hpp +101 -0
  50. package/cpp/HybridDh.cpp +137 -0
  51. package/cpp/HybridDh.hpp +47 -0
  52. package/cpp/HybridDirTree.cpp +167 -0
  53. package/cpp/HybridDirTree.hpp +53 -0
  54. package/cpp/HybridDkim.cpp +249 -0
  55. package/cpp/HybridDkim.hpp +74 -0
  56. package/cpp/HybridDns.cpp +193 -0
  57. package/cpp/HybridDns.hpp +64 -0
  58. package/cpp/HybridDsa.cpp +453 -0
  59. package/cpp/HybridDsa.hpp +112 -0
  60. package/cpp/HybridDtObj.cpp +172 -0
  61. package/cpp/HybridDtObj.hpp +57 -0
  62. package/cpp/HybridEcc.cpp +195 -0
  63. package/cpp/HybridEcc.hpp +55 -0
  64. package/cpp/HybridEdDSA.cpp +147 -0
  65. package/cpp/HybridEdDSA.hpp +47 -0
  66. package/cpp/HybridEmail.cpp +1911 -0
  67. package/cpp/HybridEmail.hpp +419 -0
  68. package/cpp/HybridEmailBundle.cpp +204 -0
  69. package/cpp/HybridEmailBundle.hpp +64 -0
  70. package/cpp/HybridFileAccess.cpp +631 -0
  71. package/cpp/HybridFileAccess.hpp +149 -0
  72. package/cpp/HybridFtp2.cpp +2308 -0
  73. package/cpp/HybridFtp2.hpp +462 -0
  74. package/cpp/HybridGlobal.cpp +221 -0
  75. package/cpp/HybridGlobal.hpp +68 -0
  76. package/cpp/HybridGzip.cpp +440 -0
  77. package/cpp/HybridGzip.hpp +105 -0
  78. package/cpp/HybridHashtable.cpp +211 -0
  79. package/cpp/HybridHashtable.hpp +64 -0
  80. package/cpp/HybridHtmlToText.cpp +136 -0
  81. package/cpp/HybridHtmlToText.hpp +47 -0
  82. package/cpp/HybridHtmlToXml.cpp +218 -0
  83. package/cpp/HybridHtmlToXml.hpp +65 -0
  84. package/cpp/HybridHttp.cpp +2067 -0
  85. package/cpp/HybridHttp.hpp +416 -0
  86. package/cpp/HybridHttpCurl.cpp +337 -0
  87. package/cpp/HybridHttpCurl.hpp +93 -0
  88. package/cpp/HybridHttpRequest.cpp +455 -0
  89. package/cpp/HybridHttpRequest.hpp +109 -0
  90. package/cpp/HybridHttpResponse.cpp +340 -0
  91. package/cpp/HybridHttpResponse.hpp +86 -0
  92. package/cpp/HybridImap.cpp +1818 -0
  93. package/cpp/HybridImap.hpp +363 -0
  94. package/cpp/HybridJavaKeyStore.cpp +387 -0
  95. package/cpp/HybridJavaKeyStore.hpp +98 -0
  96. package/cpp/HybridJs.cpp +154 -0
  97. package/cpp/HybridJs.hpp +54 -0
  98. package/cpp/HybridJsonArray.cpp +441 -0
  99. package/cpp/HybridJsonArray.hpp +120 -0
  100. package/cpp/HybridJsonObject.cpp +1125 -0
  101. package/cpp/HybridJsonObject.hpp +260 -0
  102. package/cpp/HybridJwe.cpp +294 -0
  103. package/cpp/HybridJwe.hpp +82 -0
  104. package/cpp/HybridJws.cpp +290 -0
  105. package/cpp/HybridJws.hpp +82 -0
  106. package/cpp/HybridJwt.cpp +198 -0
  107. package/cpp/HybridJwt.hpp +57 -0
  108. package/cpp/HybridLog.cpp +212 -0
  109. package/cpp/HybridLog.hpp +63 -0
  110. package/cpp/HybridMailMan.cpp +1853 -0
  111. package/cpp/HybridMailMan.hpp +386 -0
  112. package/cpp/HybridMailboxes.cpp +165 -0
  113. package/cpp/HybridMailboxes.hpp +54 -0
  114. package/cpp/HybridMcp.cpp +322 -0
  115. package/cpp/HybridMcp.hpp +85 -0
  116. package/cpp/HybridMessageSet.cpp +162 -0
  117. package/cpp/HybridMessageSet.hpp +54 -0
  118. package/cpp/HybridMht.cpp +700 -0
  119. package/cpp/HybridMht.hpp +165 -0
  120. package/cpp/HybridMime.cpp +1119 -0
  121. package/cpp/HybridMime.hpp +266 -0
  122. package/cpp/HybridNtlm.cpp +333 -0
  123. package/cpp/HybridNtlm.hpp +83 -0
  124. package/cpp/HybridOAuth1.cpp +307 -0
  125. package/cpp/HybridOAuth1.hpp +78 -0
  126. package/cpp/HybridOAuth2.cpp +515 -0
  127. package/cpp/HybridOAuth2.hpp +127 -0
  128. package/cpp/HybridPdf.cpp +370 -0
  129. package/cpp/HybridPdf.hpp +103 -0
  130. package/cpp/HybridPem.cpp +327 -0
  131. package/cpp/HybridPem.hpp +88 -0
  132. package/cpp/HybridPfx.cpp +343 -0
  133. package/cpp/HybridPfx.hpp +87 -0
  134. package/cpp/HybridPkcs11.cpp +318 -0
  135. package/cpp/HybridPkcs11.hpp +88 -0
  136. package/cpp/HybridPrivateKey.cpp +464 -0
  137. package/cpp/HybridPrivateKey.hpp +117 -0
  138. package/cpp/HybridPrng.cpp +192 -0
  139. package/cpp/HybridPrng.hpp +57 -0
  140. package/cpp/HybridPublicKey.cpp +238 -0
  141. package/cpp/HybridPublicKey.hpp +68 -0
  142. package/cpp/HybridRest.cpp +993 -0
  143. package/cpp/HybridRest.hpp +214 -0
  144. package/cpp/HybridRsa.cpp +348 -0
  145. package/cpp/HybridRsa.hpp +90 -0
  146. package/cpp/HybridSCard.cpp +328 -0
  147. package/cpp/HybridSCard.hpp +91 -0
  148. package/cpp/HybridSFtp.cpp +1889 -0
  149. package/cpp/HybridSFtp.hpp +366 -0
  150. package/cpp/HybridSFtpDir.cpp +119 -0
  151. package/cpp/HybridSFtpDir.hpp +43 -0
  152. package/cpp/HybridSFtpFile.cpp +203 -0
  153. package/cpp/HybridSFtpFile.hpp +60 -0
  154. package/cpp/HybridScMinidriver.cpp +341 -0
  155. package/cpp/HybridScMinidriver.hpp +88 -0
  156. package/cpp/HybridScp.cpp +398 -0
  157. package/cpp/HybridScp.hpp +96 -0
  158. package/cpp/HybridSecrets.cpp +328 -0
  159. package/cpp/HybridSecrets.hpp +84 -0
  160. package/cpp/HybridSecureString.cpp +175 -0
  161. package/cpp/HybridSecureString.hpp +55 -0
  162. package/cpp/HybridServerSentEvent.cpp +112 -0
  163. package/cpp/HybridServerSentEvent.hpp +41 -0
  164. package/cpp/HybridSocket.cpp +1567 -0
  165. package/cpp/HybridSocket.hpp +336 -0
  166. package/cpp/HybridSpider.cpp +543 -0
  167. package/cpp/HybridSpider.hpp +138 -0
  168. package/cpp/HybridSsh.cpp +1330 -0
  169. package/cpp/HybridSsh.hpp +282 -0
  170. package/cpp/HybridSshKey.cpp +310 -0
  171. package/cpp/HybridSshKey.hpp +83 -0
  172. package/cpp/HybridSshTunnel.cpp +687 -0
  173. package/cpp/HybridSshTunnel.hpp +159 -0
  174. package/cpp/HybridStream.cpp +496 -0
  175. package/cpp/HybridStream.hpp +123 -0
  176. package/cpp/HybridStringArray.cpp +368 -0
  177. package/cpp/HybridStringArray.hpp +99 -0
  178. package/cpp/HybridStringBuilder.cpp +739 -0
  179. package/cpp/HybridStringBuilder.hpp +178 -0
  180. package/cpp/HybridStringTable.cpp +218 -0
  181. package/cpp/HybridStringTable.hpp +66 -0
  182. package/cpp/HybridTar.cpp +547 -0
  183. package/cpp/HybridTar.hpp +134 -0
  184. package/cpp/HybridTrustedRoots.cpp +178 -0
  185. package/cpp/HybridTrustedRoots.hpp +61 -0
  186. package/cpp/HybridUnixCompress.cpp +191 -0
  187. package/cpp/HybridUnixCompress.hpp +60 -0
  188. package/cpp/HybridUpload.cpp +427 -0
  189. package/cpp/HybridUpload.hpp +114 -0
  190. package/cpp/HybridUrl.cpp +152 -0
  191. package/cpp/HybridUrl.hpp +48 -0
  192. package/cpp/HybridWebSocket.cpp +378 -0
  193. package/cpp/HybridWebSocket.hpp +103 -0
  194. package/cpp/HybridXml.cpp +1527 -0
  195. package/cpp/HybridXml.hpp +340 -0
  196. package/cpp/HybridXmlCertVault.cpp +215 -0
  197. package/cpp/HybridXmlCertVault.hpp +63 -0
  198. package/cpp/HybridXmlDSig.cpp +328 -0
  199. package/cpp/HybridXmlDSig.hpp +88 -0
  200. package/cpp/HybridXmlDSigGen.cpp +549 -0
  201. package/cpp/HybridXmlDSigGen.hpp +126 -0
  202. package/cpp/HybridXmp.cpp +329 -0
  203. package/cpp/HybridXmp.hpp +86 -0
  204. package/cpp/HybridZip.cpp +1000 -0
  205. package/cpp/HybridZip.hpp +226 -0
  206. package/cpp/HybridZipCrc.cpp +162 -0
  207. package/cpp/HybridZipCrc.hpp +57 -0
  208. package/cpp/HybridZipEntry.cpp +395 -0
  209. package/cpp/HybridZipEntry.hpp +102 -0
  210. package/cpp/runtime/AsyncCall.hpp +96 -0
  211. package/cpp/runtime/Bytes.hpp +49 -0
  212. package/cpp/runtime/ChilkatError.hpp +66 -0
  213. package/cpp/runtime/ChilkatObject.hpp +219 -0
  214. package/cpp/runtime/ProgLang.hpp +9 -0
  215. package/cpp/runtime/ProgressAdapter.hpp +43 -0
  216. package/nitro.json +113 -0
  217. package/nitrogen/generated/.gitattributes +1 -0
  218. package/nitrogen/generated/android/ChilkatRN+autolinking.cmake +179 -0
  219. package/nitrogen/generated/android/ChilkatRN+autolinking.gradle +27 -0
  220. package/nitrogen/generated/android/ChilkatRNOnLoad.cpp +1029 -0
  221. package/nitrogen/generated/android/ChilkatRNOnLoad.hpp +34 -0
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/chilkat/ChilkatRNOnLoad.kt +35 -0
  223. package/nitrogen/generated/ios/ChilkatRN+autolinking.rb +62 -0
  224. package/nitrogen/generated/ios/ChilkatRN-Swift-Cxx-Bridge.cpp +17 -0
  225. package/nitrogen/generated/ios/ChilkatRN-Swift-Cxx-Bridge.hpp +27 -0
  226. package/nitrogen/generated/ios/ChilkatRN-Swift-Cxx-Umbrella.hpp +38 -0
  227. package/nitrogen/generated/ios/ChilkatRNAutolinking.mm +1015 -0
  228. package/nitrogen/generated/ios/ChilkatRNAutolinking.swift +16 -0
  229. package/nitrogen/generated/shared/c++/HybridAiSpec.cpp +114 -0
  230. package/nitrogen/generated/shared/c++/HybridAiSpec.hpp +175 -0
  231. package/nitrogen/generated/shared/c++/HybridAsnSpec.cpp +70 -0
  232. package/nitrogen/generated/shared/c++/HybridAsnSpec.hpp +116 -0
  233. package/nitrogen/generated/shared/c++/HybridAuthAwsSpec.cpp +49 -0
  234. package/nitrogen/generated/shared/c++/HybridAuthAwsSpec.hpp +89 -0
  235. package/nitrogen/generated/shared/c++/HybridAuthAzureSASSpec.cpp +38 -0
  236. package/nitrogen/generated/shared/c++/HybridAuthAzureSASSpec.hpp +78 -0
  237. package/nitrogen/generated/shared/c++/HybridAuthAzureStorageSpec.cpp +41 -0
  238. package/nitrogen/generated/shared/c++/HybridAuthAzureStorageSpec.hpp +81 -0
  239. package/nitrogen/generated/shared/c++/HybridAuthGoogleSpec.cpp +56 -0
  240. package/nitrogen/generated/shared/c++/HybridAuthGoogleSpec.hpp +108 -0
  241. package/nitrogen/generated/shared/c++/HybridBinDataSpec.cpp +69 -0
  242. package/nitrogen/generated/shared/c++/HybridBinDataSpec.hpp +116 -0
  243. package/nitrogen/generated/shared/c++/HybridBz2Spec.cpp +47 -0
  244. package/nitrogen/generated/shared/c++/HybridBz2Spec.hpp +93 -0
  245. package/nitrogen/generated/shared/c++/HybridCacheSpec.cpp +57 -0
  246. package/nitrogen/generated/shared/c++/HybridCacheSpec.hpp +106 -0
  247. package/nitrogen/generated/shared/c++/HybridCertChainSpec.cpp +40 -0
  248. package/nitrogen/generated/shared/c++/HybridCertChainSpec.hpp +89 -0
  249. package/nitrogen/generated/shared/c++/HybridCertSpec.cpp +138 -0
  250. package/nitrogen/generated/shared/c++/HybridCertSpec.hpp +205 -0
  251. package/nitrogen/generated/shared/c++/HybridCertStoreSpec.cpp +55 -0
  252. package/nitrogen/generated/shared/c++/HybridCertStoreSpec.hpp +104 -0
  253. package/nitrogen/generated/shared/c++/HybridCharsetSpec.cpp +61 -0
  254. package/nitrogen/generated/shared/c++/HybridCharsetSpec.hpp +101 -0
  255. package/nitrogen/generated/shared/c++/HybridCkDateTimeSpec.cpp +66 -0
  256. package/nitrogen/generated/shared/c++/HybridCkDateTimeSpec.hpp +115 -0
  257. package/nitrogen/generated/shared/c++/HybridCodeSignSpec.cpp +44 -0
  258. package/nitrogen/generated/shared/c++/HybridCodeSignSpec.hpp +93 -0
  259. package/nitrogen/generated/shared/c++/HybridCompressionSpec.cpp +79 -0
  260. package/nitrogen/generated/shared/c++/HybridCompressionSpec.hpp +134 -0
  261. package/nitrogen/generated/shared/c++/HybridCrypt2Spec.cpp +215 -0
  262. package/nitrogen/generated/shared/c++/HybridCrypt2Spec.hpp +283 -0
  263. package/nitrogen/generated/shared/c++/HybridCsrSpec.cpp +61 -0
  264. package/nitrogen/generated/shared/c++/HybridCsrSpec.hpp +116 -0
  265. package/nitrogen/generated/shared/c++/HybridCsvSpec.cpp +72 -0
  266. package/nitrogen/generated/shared/c++/HybridCsvSpec.hpp +121 -0
  267. package/nitrogen/generated/shared/c++/HybridDhSpec.cpp +37 -0
  268. package/nitrogen/generated/shared/c++/HybridDhSpec.hpp +77 -0
  269. package/nitrogen/generated/shared/c++/HybridDirTreeSpec.cpp +46 -0
  270. package/nitrogen/generated/shared/c++/HybridDirTreeSpec.hpp +86 -0
  271. package/nitrogen/generated/shared/c++/HybridDkimSpec.cpp +60 -0
  272. package/nitrogen/generated/shared/c++/HybridDkimSpec.hpp +109 -0
  273. package/nitrogen/generated/shared/c++/HybridDnsSpec.cpp +51 -0
  274. package/nitrogen/generated/shared/c++/HybridDnsSpec.hpp +97 -0
  275. package/nitrogen/generated/shared/c++/HybridDsaSpec.cpp +73 -0
  276. package/nitrogen/generated/shared/c++/HybridDsaSpec.hpp +116 -0
  277. package/nitrogen/generated/shared/c++/HybridDtObjSpec.cpp +50 -0
  278. package/nitrogen/generated/shared/c++/HybridDtObjSpec.hpp +90 -0
  279. package/nitrogen/generated/shared/c++/HybridEccSpec.cpp +41 -0
  280. package/nitrogen/generated/shared/c++/HybridEccSpec.hpp +96 -0
  281. package/nitrogen/generated/shared/c++/HybridEdDSASpec.cpp +38 -0
  282. package/nitrogen/generated/shared/c++/HybridEdDSASpec.hpp +90 -0
  283. package/nitrogen/generated/shared/c++/HybridEmailBundleSpec.cpp +45 -0
  284. package/nitrogen/generated/shared/c++/HybridEmailBundleSpec.hpp +91 -0
  285. package/nitrogen/generated/shared/c++/HybridEmailSpec.cpp +259 -0
  286. package/nitrogen/generated/shared/c++/HybridEmailSpec.hpp +326 -0
  287. package/nitrogen/generated/shared/c++/HybridFileAccessSpec.cpp +90 -0
  288. package/nitrogen/generated/shared/c++/HybridFileAccessSpec.hpp +140 -0
  289. package/nitrogen/generated/shared/c++/HybridFtp2Spec.cpp +367 -0
  290. package/nitrogen/generated/shared/c++/HybridFtp2Spec.hpp +434 -0
  291. package/nitrogen/generated/shared/c++/HybridGlobalSpec.cpp +59 -0
  292. package/nitrogen/generated/shared/c++/HybridGlobalSpec.hpp +99 -0
  293. package/nitrogen/generated/shared/c++/HybridGzipSpec.cpp +79 -0
  294. package/nitrogen/generated/shared/c++/HybridGzipSpec.hpp +134 -0
  295. package/nitrogen/generated/shared/c++/HybridHashtableSpec.cpp +45 -0
  296. package/nitrogen/generated/shared/c++/HybridHashtableSpec.hpp +91 -0
  297. package/nitrogen/generated/shared/c++/HybridHtmlToTextSpec.cpp +40 -0
  298. package/nitrogen/generated/shared/c++/HybridHtmlToTextSpec.hpp +83 -0
  299. package/nitrogen/generated/shared/c++/HybridHtmlToXmlSpec.cpp +49 -0
  300. package/nitrogen/generated/shared/c++/HybridHtmlToXmlSpec.hpp +95 -0
  301. package/nitrogen/generated/shared/c++/HybridHttpCurlSpec.cpp +67 -0
  302. package/nitrogen/generated/shared/c++/HybridHttpCurlSpec.hpp +125 -0
  303. package/nitrogen/generated/shared/c++/HybridHttpRequestSpec.cpp +76 -0
  304. package/nitrogen/generated/shared/c++/HybridHttpRequestSpec.hpp +122 -0
  305. package/nitrogen/generated/shared/c++/HybridHttpResponseSpec.cpp +64 -0
  306. package/nitrogen/generated/shared/c++/HybridHttpResponseSpec.hpp +119 -0
  307. package/nitrogen/generated/shared/c++/HybridHttpSpec.cpp +334 -0
  308. package/nitrogen/generated/shared/c++/HybridHttpSpec.hpp +407 -0
  309. package/nitrogen/generated/shared/c++/HybridImapSpec.cpp +275 -0
  310. package/nitrogen/generated/shared/c++/HybridImapSpec.hpp +360 -0
  311. package/nitrogen/generated/shared/c++/HybridJavaKeyStoreSpec.cpp +65 -0
  312. package/nitrogen/generated/shared/c++/HybridJavaKeyStoreSpec.hpp +132 -0
  313. package/nitrogen/generated/shared/c++/HybridJsSpec.cpp +43 -0
  314. package/nitrogen/generated/shared/c++/HybridJsSpec.hpp +92 -0
  315. package/nitrogen/generated/shared/c++/HybridJsonArraySpec.cpp +76 -0
  316. package/nitrogen/generated/shared/c++/HybridJsonArraySpec.hpp +131 -0
  317. package/nitrogen/generated/shared/c++/HybridJsonObjectSpec.cpp +154 -0
  318. package/nitrogen/generated/shared/c++/HybridJsonObjectSpec.hpp +218 -0
  319. package/nitrogen/generated/shared/c++/HybridJweSpec.cpp +57 -0
  320. package/nitrogen/generated/shared/c++/HybridJweSpec.hpp +112 -0
  321. package/nitrogen/generated/shared/c++/HybridJwsSpec.cpp +57 -0
  322. package/nitrogen/generated/shared/c++/HybridJwsSpec.hpp +115 -0
  323. package/nitrogen/generated/shared/c++/HybridJwtSpec.cpp +43 -0
  324. package/nitrogen/generated/shared/c++/HybridJwtSpec.hpp +92 -0
  325. package/nitrogen/generated/shared/c++/HybridLogSpec.cpp +44 -0
  326. package/nitrogen/generated/shared/c++/HybridLogSpec.hpp +85 -0
  327. package/nitrogen/generated/shared/c++/HybridMailManSpec.cpp +311 -0
  328. package/nitrogen/generated/shared/c++/HybridMailManSpec.hpp +396 -0
  329. package/nitrogen/generated/shared/c++/HybridMailboxesSpec.cpp +40 -0
  330. package/nitrogen/generated/shared/c++/HybridMailboxesSpec.hpp +80 -0
  331. package/nitrogen/generated/shared/c++/HybridMcpSpec.cpp +68 -0
  332. package/nitrogen/generated/shared/c++/HybridMcpSpec.hpp +117 -0
  333. package/nitrogen/generated/shared/c++/HybridMessageSetSpec.cpp +41 -0
  334. package/nitrogen/generated/shared/c++/HybridMessageSetSpec.hpp +84 -0
  335. package/nitrogen/generated/shared/c++/HybridMhtSpec.cpp +138 -0
  336. package/nitrogen/generated/shared/c++/HybridMhtSpec.hpp +181 -0
  337. package/nitrogen/generated/shared/c++/HybridMimeSpec.cpp +169 -0
  338. package/nitrogen/generated/shared/c++/HybridMimeSpec.hpp +233 -0
  339. package/nitrogen/generated/shared/c++/HybridNtlmSpec.cpp +69 -0
  340. package/nitrogen/generated/shared/c++/HybridNtlmSpec.hpp +109 -0
  341. package/nitrogen/generated/shared/c++/HybridOAuth1Spec.cpp +67 -0
  342. package/nitrogen/generated/shared/c++/HybridOAuth1Spec.hpp +110 -0
  343. package/nitrogen/generated/shared/c++/HybridOAuth2Spec.cpp +107 -0
  344. package/nitrogen/generated/shared/c++/HybridOAuth2Spec.hpp +156 -0
  345. package/nitrogen/generated/shared/c++/HybridPdfSpec.cpp +73 -0
  346. package/nitrogen/generated/shared/c++/HybridPdfSpec.hpp +134 -0
  347. package/nitrogen/generated/shared/c++/HybridPemSpec.cpp +63 -0
  348. package/nitrogen/generated/shared/c++/HybridPemSpec.hpp +124 -0
  349. package/nitrogen/generated/shared/c++/HybridPfxSpec.cpp +61 -0
  350. package/nitrogen/generated/shared/c++/HybridPfxSpec.hpp +122 -0
  351. package/nitrogen/generated/shared/c++/HybridPkcs11Spec.cpp +60 -0
  352. package/nitrogen/generated/shared/c++/HybridPkcs11Spec.hpp +115 -0
  353. package/nitrogen/generated/shared/c++/HybridPrivateKeySpec.cpp +76 -0
  354. package/nitrogen/generated/shared/c++/HybridPrivateKeySpec.hpp +131 -0
  355. package/nitrogen/generated/shared/c++/HybridPrngSpec.cpp +42 -0
  356. package/nitrogen/generated/shared/c++/HybridPrngSpec.hpp +85 -0
  357. package/nitrogen/generated/shared/c++/HybridPublicKeySpec.cpp +48 -0
  358. package/nitrogen/generated/shared/c++/HybridPublicKeySpec.hpp +91 -0
  359. package/nitrogen/generated/shared/c++/HybridRestSpec.cpp +150 -0
  360. package/nitrogen/generated/shared/c++/HybridRestSpec.hpp +229 -0
  361. package/nitrogen/generated/shared/c++/HybridRsaSpec.cpp +68 -0
  362. package/nitrogen/generated/shared/c++/HybridRsaSpec.hpp +120 -0
  363. package/nitrogen/generated/shared/c++/HybridSCardSpec.cpp +64 -0
  364. package/nitrogen/generated/shared/c++/HybridSCardSpec.hpp +116 -0
  365. package/nitrogen/generated/shared/c++/HybridSFtpDirSpec.cpp +35 -0
  366. package/nitrogen/generated/shared/c++/HybridSFtpDirSpec.hpp +78 -0
  367. package/nitrogen/generated/shared/c++/HybridSFtpFileSpec.cpp +57 -0
  368. package/nitrogen/generated/shared/c++/HybridSFtpFileSpec.hpp +98 -0
  369. package/nitrogen/generated/shared/c++/HybridSFtpSpec.cpp +284 -0
  370. package/nitrogen/generated/shared/c++/HybridSFtpSpec.hpp +354 -0
  371. package/nitrogen/generated/shared/c++/HybridScMinidriverSpec.cpp +61 -0
  372. package/nitrogen/generated/shared/c++/HybridScMinidriverSpec.hpp +119 -0
  373. package/nitrogen/generated/shared/c++/HybridScpSpec.cpp +78 -0
  374. package/nitrogen/generated/shared/c++/HybridScpSpec.hpp +127 -0
  375. package/nitrogen/generated/shared/c++/HybridSecretsSpec.cpp +65 -0
  376. package/nitrogen/generated/shared/c++/HybridSecretsSpec.hpp +120 -0
  377. package/nitrogen/generated/shared/c++/HybridSecureStringSpec.cpp +42 -0
  378. package/nitrogen/generated/shared/c++/HybridSecureStringSpec.hpp +88 -0
  379. package/nitrogen/generated/shared/c++/HybridServerSentEventSpec.cpp +35 -0
  380. package/nitrogen/generated/shared/c++/HybridServerSentEventSpec.hpp +75 -0
  381. package/nitrogen/generated/shared/c++/HybridSocketSpec.cpp +262 -0
  382. package/nitrogen/generated/shared/c++/HybridSocketSpec.hpp +327 -0
  383. package/nitrogen/generated/shared/c++/HybridSpiderSpec.cpp +110 -0
  384. package/nitrogen/generated/shared/c++/HybridSpiderSpec.hpp +153 -0
  385. package/nitrogen/generated/shared/c++/HybridSshKeySpec.cpp +59 -0
  386. package/nitrogen/generated/shared/c++/HybridSshKeySpec.hpp +102 -0
  387. package/nitrogen/generated/shared/c++/HybridSshSpec.cpp +215 -0
  388. package/nitrogen/generated/shared/c++/HybridSshSpec.hpp +276 -0
  389. package/nitrogen/generated/shared/c++/HybridSshTunnelSpec.cpp +136 -0
  390. package/nitrogen/generated/shared/c++/HybridSshTunnelSpec.hpp +191 -0
  391. package/nitrogen/generated/shared/c++/HybridStreamSpec.cpp +100 -0
  392. package/nitrogen/generated/shared/c++/HybridStreamSpec.hpp +150 -0
  393. package/nitrogen/generated/shared/c++/HybridStringArraySpec.cpp +66 -0
  394. package/nitrogen/generated/shared/c++/HybridStringArraySpec.hpp +109 -0
  395. package/nitrogen/generated/shared/c++/HybridStringBuilderSpec.cpp +104 -0
  396. package/nitrogen/generated/shared/c++/HybridStringBuilderSpec.hpp +156 -0
  397. package/nitrogen/generated/shared/c++/HybridStringTableSpec.cpp +46 -0
  398. package/nitrogen/generated/shared/c++/HybridStringTableSpec.hpp +89 -0
  399. package/nitrogen/generated/shared/c++/HybridTarSpec.cpp +110 -0
  400. package/nitrogen/generated/shared/c++/HybridTarSpec.hpp +156 -0
  401. package/nitrogen/generated/shared/c++/HybridTrustedRootsSpec.cpp +48 -0
  402. package/nitrogen/generated/shared/c++/HybridTrustedRootsSpec.hpp +97 -0
  403. package/nitrogen/generated/shared/c++/HybridUnixCompressSpec.cpp +48 -0
  404. package/nitrogen/generated/shared/c++/HybridUnixCompressSpec.hpp +91 -0
  405. package/nitrogen/generated/shared/c++/HybridUploadSpec.cpp +98 -0
  406. package/nitrogen/generated/shared/c++/HybridUploadSpec.hpp +141 -0
  407. package/nitrogen/generated/shared/c++/HybridUrlSpec.cpp +42 -0
  408. package/nitrogen/generated/shared/c++/HybridUrlSpec.hpp +82 -0
  409. package/nitrogen/generated/shared/c++/HybridWebSocketSpec.cpp +80 -0
  410. package/nitrogen/generated/shared/c++/HybridWebSocketSpec.hpp +135 -0
  411. package/nitrogen/generated/shared/c++/HybridXmlCertVaultSpec.cpp +45 -0
  412. package/nitrogen/generated/shared/c++/HybridXmlCertVaultSpec.hpp +94 -0
  413. package/nitrogen/generated/shared/c++/HybridXmlDSigGenSpec.cpp +99 -0
  414. package/nitrogen/generated/shared/c++/HybridXmlDSigGenSpec.hpp +163 -0
  415. package/nitrogen/generated/shared/c++/HybridXmlDSigSpec.cpp +62 -0
  416. package/nitrogen/generated/shared/c++/HybridXmlDSigSpec.hpp +126 -0
  417. package/nitrogen/generated/shared/c++/HybridXmlSpec.cpp +203 -0
  418. package/nitrogen/generated/shared/c++/HybridXmlSpec.hpp +253 -0
  419. package/nitrogen/generated/shared/c++/HybridXmpSpec.cpp +58 -0
  420. package/nitrogen/generated/shared/c++/HybridXmpSpec.hpp +104 -0
  421. package/nitrogen/generated/shared/c++/HybridZipCrcSpec.cpp +43 -0
  422. package/nitrogen/generated/shared/c++/HybridZipCrcSpec.hpp +92 -0
  423. package/nitrogen/generated/shared/c++/HybridZipEntrySpec.cpp +82 -0
  424. package/nitrogen/generated/shared/c++/HybridZipEntrySpec.hpp +137 -0
  425. package/nitrogen/generated/shared/c++/HybridZipSpec.cpp +176 -0
  426. package/nitrogen/generated/shared/c++/HybridZipSpec.hpp +231 -0
  427. package/package.json +46 -0
  428. package/react-native.config.js +9 -0
  429. package/scripts/fetch-chilkat.js +184 -0
  430. package/src/index.ts +306 -0
  431. package/src/runtime/chilkat.ts +25 -0
  432. package/src/specs/Ai.nitro.ts +1288 -0
  433. package/src/specs/Asn.nitro.ts +509 -0
  434. package/src/specs/AuthAws.nitro.ts +234 -0
  435. package/src/specs/AuthAzureSAS.nitro.ts +205 -0
  436. package/src/specs/AuthAzureStorage.nitro.ts +172 -0
  437. package/src/specs/AuthGoogle.nitro.ts +291 -0
  438. package/src/specs/BinData.nitro.ts +470 -0
  439. package/src/specs/Bz2.nitro.ts +269 -0
  440. package/src/specs/Cache.nitro.ts +483 -0
  441. package/src/specs/Cert.nitro.ts +1279 -0
  442. package/src/specs/CertChain.nitro.ts +312 -0
  443. package/src/specs/CertStore.nitro.ts +430 -0
  444. package/src/specs/Charset.nitro.ts +518 -0
  445. package/src/specs/CkDateTime.nitro.ts +492 -0
  446. package/src/specs/CodeSign.nitro.ts +307 -0
  447. package/src/specs/Compression.nitro.ts +654 -0
  448. package/src/specs/Crypt2.nitro.ts +2387 -0
  449. package/src/specs/Csr.nitro.ts +461 -0
  450. package/src/specs/Csv.nitro.ts +670 -0
  451. package/src/specs/Dh.nitro.ts +343 -0
  452. package/src/specs/DirTree.nitro.ts +332 -0
  453. package/src/specs/Dkim.nitro.ts +595 -0
  454. package/src/specs/Dns.nitro.ts +271 -0
  455. package/src/specs/Dsa.nitro.ts +653 -0
  456. package/src/specs/DtObj.nitro.ts +198 -0
  457. package/src/specs/Ecc.nitro.ts +375 -0
  458. package/src/specs/EdDSA.nitro.ts +273 -0
  459. package/src/specs/Email.nitro.ts +2921 -0
  460. package/src/specs/EmailBundle.nitro.ts +334 -0
  461. package/src/specs/FileAccess.nitro.ts +836 -0
  462. package/src/specs/Ftp2.nitro.ts +3943 -0
  463. package/src/specs/Global.nitro.ts +319 -0
  464. package/src/specs/Gzip.nitro.ts +646 -0
  465. package/src/specs/Hashtable.nitro.ts +356 -0
  466. package/src/specs/HtmlToText.nitro.ts +238 -0
  467. package/src/specs/HtmlToXml.nitro.ts +323 -0
  468. package/src/specs/Http.nitro.ts +3095 -0
  469. package/src/specs/HttpCurl.nitro.ts +550 -0
  470. package/src/specs/HttpRequest.nitro.ts +522 -0
  471. package/src/specs/HttpResponse.nitro.ts +424 -0
  472. package/src/specs/Imap.nitro.ts +2991 -0
  473. package/src/specs/JavaKeyStore.nitro.ts +619 -0
  474. package/src/specs/Js.nitro.ts +263 -0
  475. package/src/specs/JsonArray.nitro.ts +681 -0
  476. package/src/specs/JsonObject.nitro.ts +1454 -0
  477. package/src/specs/Jwe.nitro.ts +756 -0
  478. package/src/specs/Jws.nitro.ts +733 -0
  479. package/src/specs/Jwt.nitro.ts +380 -0
  480. package/src/specs/Log.nitro.ts +258 -0
  481. package/src/specs/MailMan.nitro.ts +3571 -0
  482. package/src/specs/Mailboxes.nitro.ts +251 -0
  483. package/src/specs/Mcp.nitro.ts +491 -0
  484. package/src/specs/MessageSet.nitro.ts +320 -0
  485. package/src/specs/Mht.nitro.ts +1684 -0
  486. package/src/specs/Mime.nitro.ts +1745 -0
  487. package/src/specs/Ntlm.nitro.ts +556 -0
  488. package/src/specs/OAuth1.nitro.ts +331 -0
  489. package/src/specs/OAuth2.nitro.ts +1023 -0
  490. package/src/specs/Pdf.nitro.ts +740 -0
  491. package/src/specs/Pem.nitro.ts +484 -0
  492. package/src/specs/Pfx.nitro.ts +1003 -0
  493. package/src/specs/Pkcs11.nitro.ts +559 -0
  494. package/src/specs/PrivateKey.nitro.ts +994 -0
  495. package/src/specs/Prng.nitro.ts +348 -0
  496. package/src/specs/PublicKey.nitro.ts +610 -0
  497. package/src/specs/Rest.nitro.ts +1972 -0
  498. package/src/specs/Rsa.nitro.ts +453 -0
  499. package/src/specs/SCard.nitro.ts +739 -0
  500. package/src/specs/SFtp.nitro.ts +3138 -0
  501. package/src/specs/SFtpDir.nitro.ts +213 -0
  502. package/src/specs/SFtpFile.nitro.ts +452 -0
  503. package/src/specs/ScMinidriver.nitro.ts +443 -0
  504. package/src/specs/Scp.nitro.ts +708 -0
  505. package/src/specs/Secrets.nitro.ts +470 -0
  506. package/src/specs/SecureString.nitro.ts +231 -0
  507. package/src/specs/ServerSentEvent.nitro.ts +183 -0
  508. package/src/specs/Socket.nitro.ts +3335 -0
  509. package/src/specs/Spider.nitro.ts +609 -0
  510. package/src/specs/Ssh.nitro.ts +2842 -0
  511. package/src/specs/SshKey.nitro.ts +740 -0
  512. package/src/specs/SshTunnel.nitro.ts +1243 -0
  513. package/src/specs/Stream.nitro.ts +737 -0
  514. package/src/specs/StringArray.nitro.ts +396 -0
  515. package/src/specs/StringBuilder.nitro.ts +920 -0
  516. package/src/specs/StringTable.nitro.ts +271 -0
  517. package/src/specs/Tar.nitro.ts +804 -0
  518. package/src/specs/TrustedRoots.nitro.ts +360 -0
  519. package/src/specs/UnixCompress.nitro.ts +293 -0
  520. package/src/specs/Upload.nitro.ts +623 -0
  521. package/src/specs/Url.nitro.ts +246 -0
  522. package/src/specs/WebSocket.nitro.ts +840 -0
  523. package/src/specs/Xml.nitro.ts +1988 -0
  524. package/src/specs/XmlCertVault.nitro.ts +259 -0
  525. package/src/specs/XmlDSig.nitro.ts +464 -0
  526. package/src/specs/XmlDSigGen.nitro.ts +978 -0
  527. package/src/specs/Xmp.nitro.ts +364 -0
  528. package/src/specs/Zip.nitro.ts +1611 -0
  529. package/src/specs/ZipCrc.nitro.ts +229 -0
  530. package/src/specs/ZipEntry.nitro.ts +782 -0
@@ -0,0 +1,2842 @@
1
+ // Generated by ReactNativeNs.RnGenerator -- do not edit.
2
+ import type { HybridObject } from 'react-native-nitro-modules'
3
+ import type { JsonObject } from './JsonObject.nitro'
4
+ import type { SecureString } from './SecureString.nitro'
5
+ import type { SshKey } from './SshKey.nitro'
6
+ import type { StringArray } from './StringArray.nitro'
7
+ import type { StringBuilder } from './StringBuilder.nitro'
8
+
9
+ /**
10
+ * Connect to SSH servers, authenticate, run commands, open channels, and manage secure sessions.
11
+ *
12
+ * `Ssh` is Chilkat's primary SSH client class for
13
+ * applications that need secure remote command execution, shell sessions,
14
+ * channel-based communication, port forwarding, and detailed control over SSH
15
+ * transport behavior. It supports password and public-key authentication,
16
+ * keyboard-interactive authentication, stdout and stderr handling, proxies,
17
+ * host key inspection, algorithm selection, connection reuse, and detailed
18
+ * diagnostics for authentication, transport, channel, and disconnect issues.
19
+ *
20
+ * **SSH connection setup**
21
+ *
22
+ * Connect to SSH servers with configurable timeouts, host key handling,
23
+ * proxy settings, preferred IP behavior, and detailed connection logging.
24
+ *
25
+ * **Authentication options**
26
+ *
27
+ * Authenticate with passwords, private keys, combined password/key
28
+ * workflows, or keyboard-interactive authentication when required by the
29
+ * server.
30
+ *
31
+ * **Remote commands**
32
+ *
33
+ * Execute commands on the server, read stdout and stderr, inspect exit
34
+ * status, and manage command channels.
35
+ *
36
+ * **Shell sessions**
37
+ *
38
+ * Open interactive shell channels for command-line sessions that require
39
+ * ongoing input and output rather than a single command result.
40
+ *
41
+ * **Port forwarding**
42
+ *
43
+ * Open SSH channels for direct TCP/IP forwarding scenarios, such as
44
+ * connecting securely through an SSH server to another host and port.
45
+ *
46
+ * **Algorithm and diagnostics**
47
+ *
48
+ * Control allowed SSH algorithms and use detailed error text, session
49
+ * information, and logs to troubleshoot negotiation or server behavior.
50
+ *
51
+ * **Common pattern:**
52
+ * Connect to the SSH server, authenticate, open a command, shell, or forwarding
53
+ * channel, read the channel output until complete, close the channel, and then
54
+ * disconnect. Use algorithm controls and diagnostics when working with strict
55
+ * servers, legacy systems, or security-policy requirements.
56
+ *
57
+ * For an extended overview, see
58
+ * [Ssh Class Overview](https://www.chilkatsoft.com/ssh_class_overview.asp).
59
+ *
60
+ * Each `Ssh` instance owns a native Chilkat object. It is released when the JavaScript object is
61
+ * garbage collected, or immediately by `dispose()`; any use after `dispose()` throws.
62
+ * Create one with `new Ssh()`.
63
+ *
64
+ * Methods that can take a while (network, files, compression, key generation) also have an
65
+ * `...Async` form returning a `Promise`; it runs on a native worker thread so the UI keeps
66
+ * rendering. While such a call is pending, every other call on this object throws, except
67
+ * {@link Ssh.abort} and assigning {@link Ssh.onPercentDone} / {@link Ssh.onProgressInfo}.
68
+ */
69
+ export interface Ssh extends HybridObject<{ ios: 'c++', android: 'c++' }> {
70
+ // ---- Properties ----
71
+
72
+ /**
73
+ * Provides HTML-formatted information about the last called method or property. If a method call
74
+ * fails or behaves unexpectedly, check this property for details. Note that information is
75
+ * available regardless of the method call's success.
76
+ *
77
+ * This property is read-only.
78
+ */
79
+ readonly lastErrorHtml: string
80
+
81
+ /**
82
+ * Provides plain text information about the last called method or property. If a method call
83
+ * fails or behaves unexpectedly, check this property for details. Note that information is
84
+ * available regardless of the method call's success.
85
+ *
86
+ * This property is read-only.
87
+ */
88
+ readonly lastErrorText: string
89
+
90
+ /**
91
+ * Provides XML-formatted information about the last called method or property. If a method call
92
+ * fails or behaves unexpectedly, check this property for details. Note that information is
93
+ * available regardless of the method call's success.
94
+ *
95
+ * This property is read-only.
96
+ */
97
+ readonly lastErrorXml: string
98
+
99
+ /**
100
+ * Version of the component/library, such as "10.1.0"
101
+ *
102
+ * This property is read-only.
103
+ */
104
+ readonly version: string
105
+
106
+ /**
107
+ * If set to a file path, this property logs the LastErrorText of each Chilkat method or property
108
+ * call to the specified file. This logging helps identify the context and history of Chilkat
109
+ * calls leading up to any crash or hang, aiding in debugging.
110
+ *
111
+ * Enabling the VerboseLogging property provides more detailed information.
112
+ *
113
+ * This property is mainly used for debugging rare instances where a Chilkat method call causes a
114
+ * hang or crash, which should generally not happen.
115
+ *
116
+ * Possible causes of hangs include:
117
+ *
118
+ * - A timeout property set to 0, indicating an infinite timeout.
119
+ *
120
+ * - A hang occurring within an event callback in the application code.
121
+ *
122
+ * - An internal bug in the Chilkat code causing the hang.
123
+ */
124
+ debugLogFilePath: string
125
+
126
+ /**
127
+ * If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may
128
+ * contain more verbose information. The default value is `false`. Verbose logging should only be
129
+ * used for debugging. The potentially large quantity of logged information may adversely affect
130
+ * peformance.
131
+ */
132
+ verboseLogging: boolean
133
+
134
+ /**
135
+ * Indicates the success or failure of the most recent method call: `true` means success, `false`
136
+ * means failure. This property remains unchanged by property setters or getters. This method is
137
+ * present to address challenges in checking for null or Nothing returns in certain programming
138
+ * languages. Note: This property does not apply to methods that return integer values or to
139
+ * boolean-returning methods where the boolean does not indicate success or failure.
140
+ */
141
+ lastMethodSuccess: boolean
142
+
143
+ /**
144
+ * Contains the result code from the most recent call to an SSH authentication method, including
145
+ * {@link Ssh.authenticatePw}, {@link Ssh.authenticatePk}, {@link Ssh.authenticatePwPk}, and their
146
+ * `SecureString` variants. The initial value is `0`, and a successful authentication resets it to
147
+ * `0`. A failed attempt sets one of the following values.
148
+ *
149
+ * ValueMeaning
150
+ *
151
+ * | `1` | | Transport failure. The connection is unavailable, communication was lost, or a read
152
+ * operation failed or timed out. Calling an authentication method before {@link Ssh.connect} also
153
+ * produces this value. |
154
+ *
155
+ * | `2` | | Invalid key for public-key authentication. For example, the `SshKey` is empty,
156
+ * public-only, malformed, unsupported, or otherwise unsuitable. |
157
+ *
158
+ * | `3` | | No mutually supported authentication method was available. |
159
+ *
160
+ * | `4` | | SSH authentication protocol error. An unexpected or invalid message was received. |
161
+ *
162
+ * | `5` | | The password or private key was rejected by the server. |
163
+ *
164
+ * | `6` | | The SSH session is already authenticated. |
165
+ *
166
+ * | `7` | | The server requires a password change. See {@link Ssh.passwordChangeRequested}. |
167
+ *
168
+ * This property is not cleared by unrelated operations such as {@link Ssh.sendIgnore} or {@link
169
+ * Ssh.disconnect}. Read it immediately after an authentication method returns. If the server
170
+ * closes the connection because of an authentication-attempt limit, the result may be `1`;
171
+ * inspect {@link Ssh.disconnectCode}, {@link Ssh.disconnectReason}, and `LastErrorText`.
172
+ *
173
+ * This property is read-only.
174
+ */
175
+ readonly authFailReason: number
176
+
177
+ /**
178
+ * Controls whether recognized caret notation is converted to ASCII control characters in strings
179
+ * passed to {@link Ssh.sendReqExec} and {@link Ssh.channelSendString}. The default is `false`.
180
+ *
181
+ * When set to `true`, recognized uppercase sequences such as `^C`, `^M`, `^?`, and `^^` are
182
+ * translated before the text is sent. An unrecognized sequence, such as lowercase `^a`, is sent
183
+ * literally.
184
+ *
185
+ * ```
186
+ * Caret Dec Hex Name Description
187
+ * ^@ 0 00 NUL Null
188
+ * ^A 1 01 SOH Start of Heading
189
+ * ^B 2 02 STX Start of Text
190
+ * ^C 3 03 ETX End of Text
191
+ * ^D 4 04 EOT End of Transmission
192
+ * ^E 5 05 ENQ Enquiry
193
+ * ^F 6 06 ACK Acknowledge
194
+ * ^G 7 07 BEL Bell
195
+ * ^H 8 08 BS Backspace
196
+ * ^I 9 09 HT Horizontal Tab
197
+ * ^J 10 0A LF Line Feed
198
+ * ^K 11 0B VT Vertical Tab
199
+ * ^L 12 0C FF Form Feed
200
+ * ^M 13 0D CR Carriage Return
201
+ * ^N 14 0E SO Shift Out
202
+ * ^O 15 0F SI Shift In
203
+ * ^P 16 10 DLE Data Link Escape
204
+ * ^Q 17 11 DC1 Device Control One (XON)
205
+ * ^R 18 12 DC2 Device Control Two
206
+ * ^S 19 13 DC3 Device Control Three (XOFF)
207
+ * ^T 20 14 DC4 Device Control Four
208
+ * ^U 21 15 NAK Negative Acknowledge
209
+ * ^V 22 16 SYN Synchronous Idle
210
+ * ^W 23 17 ETB End of Transmission Block
211
+ * ^X 24 18 CAN Cancel
212
+ * ^Y 25 19 EM End of Medium
213
+ * ^Z 26 1A SUB Substitute
214
+ * ^[ 27 1B ESC Escape
215
+ * ^\ 28 1C FS File Separator
216
+ * ^] 29 1D GS Group Separator
217
+ * ^^ 30 1E RS Record Separator
218
+ * ^_ 31 1F US Unit Separator
219
+ * ^? 127 7F DEL Delete
220
+ * ```
221
+ */
222
+ caretControl: boolean
223
+
224
+ /**
225
+ * Contains the SSH channel-open failure code when the server rejects a request to open a channel.
226
+ * The values are defined by RFC 4254.
227
+ *
228
+ * CodeSymbolic name
229
+ *
230
+ * | `1` | | `SSH_OPEN_ADMINISTRATIVELY_PROHIBITED` |
231
+ *
232
+ * | `2` | | `SSH_OPEN_CONNECT_FAILED` |
233
+ *
234
+ * | `3` | | `SSH_OPEN_UNKNOWN_CHANNEL_TYPE` |
235
+ *
236
+ * | `4` | | `SSH_OPEN_RESOURCE_SHORTAGE` |
237
+ *
238
+ * The initial value is `0`. A local failure, such as attempting to open a channel before
239
+ * connecting, can also leave this property at `0` because no SSH channel-open failure message was
240
+ * received. Read this property immediately after a channel-open method returns `-1`.
241
+ *
242
+ * This property is read-only.
243
+ */
244
+ readonly channelOpenFailCode: number
245
+
246
+ /**
247
+ * Contains the descriptive text associated with {@link Ssh.channelOpenFailCode} when the server
248
+ * rejects a channel-open request. The text is supplied by the server and may be empty or generic.
249
+ * The initial value is an empty string.
250
+ *
251
+ * A rejected channel-open request normally leaves the underlying SSH connection open. Local
252
+ * failures that occur before a request reaches the server may leave both this property and {@link
253
+ * Ssh.channelOpenFailCode} unchanged.
254
+ *
255
+ * This property is read-only.
256
+ */
257
+ readonly channelOpenFailReason: string
258
+
259
+ /**
260
+ * Specifies the SSH client-identification string sent when a connection is established. The
261
+ * default is `SSH-2.0-Chilkat_` followed by the Chilkat version, for example
262
+ * `SSH-2.0-Chilkat_11.6.0`.
263
+ *
264
+ * The value should begin with `SSH-2.0-`. A server may disconnect if the identification string is
265
+ * not valid.
266
+ */
267
+ clientIdentifier: string
268
+
269
+ /**
270
+ * **This property is normally left unset.** Set it only when the computer has multiple network
271
+ * interfaces or multiple local IP addresses and the application needs to use a specific one.
272
+ *
273
+ * The value may be a numeric IPv4 or IPv6 address. Do not specify a domain name. When this
274
+ * property is empty, Chilkat and the operating system automatically select the appropriate local
275
+ * address.
276
+ *
277
+ * The specified address must be available on the local computer and must be compatible with the
278
+ * address family used for the connection. If the address is invalid or unavailable, the
279
+ * connection fails.
280
+ *
281
+ * This setting applies to all connection paths, including direct SSH connections, HTTP and SOCKS
282
+ * proxy connections, {@link Ssh.connectThroughSsh}, and multi-hop SSH connections.
283
+ */
284
+ clientIpAddress: string
285
+
286
+ /**
287
+ * Specifies the maximum number of milliseconds allowed for the remote endpoint to accept the TCP
288
+ * connection. The default is `30000` (30 seconds).
289
+ *
290
+ * A value of `0` removes the Chilkat-imposed connect timeout; in practice, the attempt ends when
291
+ * the operating system reports that the connection failed. Negative values are treated as `0`.
292
+ *
293
+ * This timeout applies whether the destination is specified by a DNS hostname or an IP address,
294
+ * and to direct connections and connections made through HTTP proxies, SOCKS proxies, and {@link
295
+ * Ssh.connectThroughSsh}. For `ConnectThroughSsh`, the inner `Ssh` object’s value is used.
296
+ *
297
+ * **Scope:** This property covers only TCP connection establishment. Proxy authentication, the
298
+ * SSH identification exchange, key exchange, and other server communication are controlled by
299
+ * {@link Ssh.readTimeoutMs}.
300
+ */
301
+ connectTimeoutMs: number
302
+
303
+ /**
304
+ * Contains the reason code from the most recent SSH `DISCONNECT` message received from the
305
+ * server. The values are defined by RFC 4253.
306
+ *
307
+ * The initial value is `0`. It also remains `0` after a normal local {@link Ssh.disconnect}, an
308
+ * ordinary TCP connection loss that did not include an SSH `DISCONNECT` message, a failed
309
+ * connection attempt, authentication rejection, receive timeout, receive abort, or rejected
310
+ * channel-open request.
311
+ *
312
+ * When the server sends an SSH `DISCONNECT`, this property contains the server-provided code and
313
+ * remains available after {@link Ssh.checkConnection}. A subsequent call to {@link Ssh.connect}
314
+ * clears the value to `0`, whether that new attempt succeeds or fails.
315
+ *
316
+ * CodeSymbolic name
317
+ *
318
+ * | `1` | | `SSH_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT` |
319
+ *
320
+ * | `2` | | `SSH_DISCONNECT_PROTOCOL_ERROR` |
321
+ *
322
+ * | `3` | | `SSH_DISCONNECT_KEY_EXCHANGE_FAILED` |
323
+ *
324
+ * | `4` | | `SSH_DISCONNECT_RESERVED` |
325
+ *
326
+ * | `5` | | `SSH_DISCONNECT_MAC_ERROR` |
327
+ *
328
+ * | `6` | | `SSH_DISCONNECT_COMPRESSION_ERROR` |
329
+ *
330
+ * | `7` | | `SSH_DISCONNECT_SERVICE_NOT_AVAILABLE` |
331
+ *
332
+ * | `8` | | `SSH_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED` |
333
+ *
334
+ * | `9` | | `SSH_DISCONNECT_HOST_KEY_NOT_VERIFIABLE` |
335
+ *
336
+ * | `10` | | `SSH_DISCONNECT_CONNECTION_LOST` |
337
+ *
338
+ * | `11` | | `SSH_DISCONNECT_BY_APPLICATION` |
339
+ *
340
+ * | `12` | | `SSH_DISCONNECT_TOO_MANY_CONNECTIONS` |
341
+ *
342
+ * | `13` | | `SSH_DISCONNECT_AUTH_CANCELLED_BY_USER` |
343
+ *
344
+ * | `14` | | `SSH_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE` |
345
+ *
346
+ * | `15` | | `SSH_DISCONNECT_ILLEGAL_USER_NAME` |
347
+ *
348
+ * This property is read-only.
349
+ */
350
+ readonly disconnectCode: number
351
+
352
+ /**
353
+ * Contains the descriptive text sent with the most recent server SSH `DISCONNECT` message. See
354
+ * {@link Ssh.disconnectCode} for the corresponding RFC 4253 reason code.
355
+ *
356
+ * The initial value is an empty string. It remains empty after a normal local {@link
357
+ * Ssh.disconnect}, an ordinary TCP connection loss without an SSH `DISCONNECT` message, a failed
358
+ * connection attempt, authentication rejection, receive timeout, receive abort, or rejected
359
+ * channel-open request.
360
+ *
361
+ * When a server-sent SSH `DISCONNECT` is received, the text remains available after {@link
362
+ * Ssh.checkConnection}. A subsequent call to {@link Ssh.connect} clears it, whether the new
363
+ * attempt succeeds or fails. The returned string is empty rather than null when no reason is
364
+ * available.
365
+ *
366
+ * This property is read-only.
367
+ */
368
+ readonly disconnectReason: string
369
+
370
+ /**
371
+ * Restricts SSH cipher negotiation to one cipher or a comma-separated preference list. Leave this
372
+ * property empty to let Chilkat choose the first mutually supported cipher from its normal
373
+ * preference order.
374
+ *
375
+ * Supported cipher names
376
+ *
377
+ * | `chacha20-poly1305@openssh.com` |
378
+ *
379
+ * | `aes128-ctr`, `aes192-ctr`, `aes256-ctr` |
380
+ *
381
+ * | `aes128-cbc`, `aes192-cbc`, `aes256-cbc` |
382
+ *
383
+ * | `aes128-gcm@openssh.com`, `aes256-gcm@openssh.com` |
384
+ *
385
+ * | `twofish128-cbc`, `twofish256-cbc` |
386
+ *
387
+ * | `blowfish-cbc`, `3des-cbc` |
388
+ *
389
+ * | `arcfour128`, `arcfour256` |
390
+ *
391
+ * Cipher names must use the exact lowercase spelling shown above. If none of the specified
392
+ * ciphers is supported by the server, {@link Ssh.connect} fails.
393
+ */
394
+ forceCipher: string
395
+
396
+ /**
397
+ * Specifies the interval, in milliseconds, between `AbortCheck` event callbacks during operations
398
+ * that support progress events. The callback gives the application an opportunity to abort an
399
+ * operation before it completes.
400
+ *
401
+ * The default is `0`, which disables periodic `AbortCheck` callbacks.
402
+ */
403
+ heartbeatMs: number
404
+
405
+ /**
406
+ * Specifies the preferred host-key algorithm used during SSH connection establishment. The
407
+ * default is `DSS`; set it to `RSA` only when required for compatibility with a particular
408
+ * server.
409
+ *
410
+ * Normally this property should be left unchanged.
411
+ */
412
+ hostKeyAlg: string
413
+
414
+ /**
415
+ * Contains the connected server’s host-key fingerprint in Chilkat’s legacy MD5 format:
416
+ *
417
+ * ```
418
+ * ssh-ed25519 256 c8:73:22:c7:82:aa:09:f1:1c:4e:99:8a:a0:62:a7:87
419
+ * ```
420
+ *
421
+ * The value consists of the SSH host-key type, key size, and the MD5 digest represented as
422
+ * colon-separated hexadecimal bytes. It is empty before a successful connection and after a
423
+ * normal {@link Ssh.disconnect}, a server-sent SSH `DISCONNECT`, or a failed connection attempt.
424
+ *
425
+ * After an abrupt TCP loss, a previously obtained fingerprint can temporarily remain even when
426
+ * {@link Ssh.isConnected} is `false`. Therefore, a nonempty value is not proof that the
427
+ * connection is currently usable. Check `IsConnected` before relying on per-session state.
428
+ *
429
+ * **Server identity:** Compare the fingerprint with a value obtained from a trusted source before
430
+ * sending credentials. For new applications, use {@link Ssh.getHostKeyFP} with `SHA256`.
431
+ *
432
+ * This property is read-only.
433
+ */
434
+ readonly hostKeyFingerprint: string
435
+
436
+ /**
437
+ * Specifies the authentication method used by an HTTP proxy. Matching is case-insensitive.
438
+ *
439
+ * ValueBehavior
440
+ *
441
+ * | \*empty\* | | Automatically negotiate a supported authentication method with the proxy. |
442
+ *
443
+ * | `Basic` | | Use HTTP Basic authentication. |
444
+ *
445
+ * | `NTLM` | | Use NTLM authentication. |
446
+ *
447
+ * Basic and NTLM are the supported methods. Chilkat automatically handles a `407 Proxy
448
+ * Authentication Required` response and performs the required authentication exchange.
449
+ *
450
+ * NTLMv2 is used unless NTLMv1 is explicitly selected by setting `Global.DefaultNtlmVersion` to
451
+ * `1`.
452
+ */
453
+ httpProxyAuthMethod: string
454
+
455
+ /**
456
+ * Specifies the optional Windows domain used for NTLM authentication with an HTTP proxy.
457
+ *
458
+ * The value is the legacy Windows NetBIOS domain name. It is not a DNS domain name and is not the
459
+ * workstation name. This property is ignored unless NTLM proxy authentication is used.
460
+ */
461
+ httpProxyDomain: string
462
+
463
+ /**
464
+ * Specifies the hostname or numeric IP address of an HTTP proxy.
465
+ *
466
+ * Chilkat uses the HTTP `CONNECT` method to establish the SSH tunnel through the proxy. The TCP
467
+ * connection to the proxy is not itself protected by TLS for this SSH use case.
468
+ *
469
+ * The HTTP proxy is used only when {@link Ssh.socksVersion} is `0`, this property is nonempty,
470
+ * and {@link Ssh.httpProxyPort} is nonzero. A configured SOCKS proxy takes precedence. These
471
+ * settings apply to both {@link Ssh.connect} and {@link Ssh.connectThroughSsh}.
472
+ */
473
+ httpProxyHostname: string
474
+
475
+ /**
476
+ * Specifies the password used to authenticate with an HTTP proxy.
477
+ *
478
+ * If the proxy requires authentication and this property is empty, the connection fails.
479
+ */
480
+ httpProxyPassword: string
481
+
482
+ /**
483
+ * Specifies the HTTP proxy port.
484
+ *
485
+ * An HTTP proxy is used only when {@link Ssh.socksVersion} is `0`, {@link Ssh.httpProxyHostname}
486
+ * is nonempty, and this property is nonzero. A configured SOCKS proxy takes precedence.
487
+ *
488
+ * Common proxy ports are:
489
+ *
490
+ * - `8080` — the most common general-purpose HTTP proxy port. It is non-privileged, so the proxy
491
+ * service typically does not require administrator or root privileges to bind to it.
492
+ *
493
+ * - `3128` — commonly used by Squid and enterprise proxy infrastructure.
494
+ *
495
+ * - `8888` — commonly used by development and debugging proxies such as Charles Proxy, Fiddler,
496
+ * and Burp Suite.
497
+ */
498
+ httpProxyPort: number
499
+
500
+ /**
501
+ * Specifies the username used to authenticate with an HTTP proxy.
502
+ *
503
+ * If the proxy requires authentication and this property is empty, the connection fails.
504
+ */
505
+ httpProxyUsername: string
506
+
507
+ /**
508
+ * Specifies an inactivity interval, in milliseconds, for SSH receive waits that use this
509
+ * property. The default is `0`, meaning no inactivity limit.
510
+ *
511
+ * This is not simply an application-output timeout. Receiving any SSH packet, including transport
512
+ * or channel-control traffic that contains no stdout or stderr bytes, counts as communication and
513
+ * restarts the interval. A remote command can therefore remain silent longer than this value
514
+ * without necessarily causing a timeout.
515
+ *
516
+ * Timeout handling is method-specific. Methods having an explicit timeout argument, such as
517
+ * {@link Ssh.channelPoll} and {@link Ssh.waitForChannelMessage}, use that argument for the
518
+ * corresponding wait. In v11.6.0 testing, {@link Ssh.channelReadAndPoll} used `IdleTimeoutMs` for
519
+ * its initial read when {@link Ssh.readTimeoutMs} was `0`.
520
+ *
521
+ * This property governs receiving. It is not a send-progress timeout.
522
+ */
523
+ idleTimeoutMs: number
524
+
525
+ /**
526
+ * Returns `true` when Chilkat currently considers the SSH transport connected. It becomes `true`
527
+ * after {@link Ssh.connect} establishes the secure transport. It is `false` before connecting,
528
+ * after {@link Ssh.disconnect}, after a failed connection attempt, after a server-sent SSH
529
+ * `DISCONNECT`, or when socket closure is detected.
530
+ *
531
+ * An authentication failure, channel-open rejection, receive timeout, or aborted receive does not
532
+ * by itself set this property to `false`. If the underlying transport remains usable, the
533
+ * application can retry the operation on the same connection.
534
+ *
535
+ * Reading this property can reflect a remote close that the operating system has already
536
+ * reported. In testing, it became `false` before {@link Ssh.checkConnection} was called. However,
537
+ * `true` does not prove that the remote server is responsive or that a silent network failure has
538
+ * not occurred.
539
+ *
540
+ * To verify that SSH traffic can still be exchanged, call {@link Ssh.sendIgnore} and check its
541
+ * return value.
542
+ *
543
+ * After abrupt transport loss or a server protocol disconnect, retained per-channel state can be
544
+ * stale even though this property is `false`. Treat `IsConnected = _FALSE_` as authoritative for
545
+ * network I/O. Bytes received before the loss can remain available in a retained channel buffer.
546
+ *
547
+ * This property is read-only.
548
+ */
549
+ readonly isConnected: boolean
550
+
551
+ /**
552
+ * Controls whether SSH protocol traffic is accumulated in {@link Ssh.sessionLog}. The default is
553
+ * `false`. This object-level setting persists across disconnects, failed operations, and
554
+ * subsequent connections until changed by the application.
555
+ *
556
+ * The log for a completed session remains available after disconnect or transport loss. A later
557
+ * successful connection begins a new session log.
558
+ *
559
+ * Session logging is intended for diagnostics. The log grows as a session proceeds, so disable it
560
+ * when no longer needed. Chilkat does not write literal authentication passwords or private-key
561
+ * passphrases to the session log, but diagnostic logs should still be handled as potentially
562
+ * sensitive.
563
+ */
564
+ keepSessionLog: boolean
565
+
566
+ /**
567
+ * Specifies the maximum SSH channel packet size advertised in the `SSH_MSG_CHANNEL_OPEN` message.
568
+ * The default is `8192`.
569
+ *
570
+ * For high-volume transfers, a value such as `32768` may improve performance.
571
+ */
572
+ maxPacketSize: number
573
+
574
+ /**
575
+ * Returns the number of channel records in the active SSH channel collection. A channel is
576
+ * normally added after its open request is accepted and removed when final remote-close
577
+ * processing occurs.
578
+ *
579
+ * After {@link Ssh.disconnect} or transport loss, this property returns `0` because former
580
+ * channels are no longer active or enumerable. Buffered data for a former channel can
581
+ * nevertheless remain retrievable by its channel number until it is released or a new connection
582
+ * clears it.
583
+ *
584
+ * A channel closed locally with {@link Ssh.channelSendClose} can have {@link Ssh.channelIsOpen}
585
+ * return `false` while it is still counted until final cleanup. Conversely, a remotely closed
586
+ * channel can cease to be counted while its results are only temporarily retained.
587
+ *
588
+ * **Result-lifetime warning:** Querying this property is an SSH operation that can process
589
+ * pending final cleanup. After {@link Ssh.channelReceiveToClose} or another completion receive
590
+ * returns, retrieve stdout, stderr, and exit status before reading `NumOpenChannels`; otherwise
591
+ * the completed channel record can be discarded.
592
+ *
593
+ * Use {@link Ssh.getChannelNumber} and {@link Ssh.getChannelType} with zero-based indexes from
594
+ * `0` through `NumOpenChannels - 1`. Do not assume every enumerated channel is still open for
595
+ * application I/O.
596
+ *
597
+ * This property is read-only.
598
+ */
599
+ readonly numOpenChannels: number
600
+
601
+ /**
602
+ * Indicates that the server rejected password authentication because it requires the user to
603
+ * change the password. This property is set by {@link Ssh.authenticatePw} and {@link
604
+ * Ssh.authenticatePwPk}.
605
+ *
606
+ * When `true`, call the authentication method again and pass both passwords in this form:
607
+ *
608
+ * ```
609
+ * |oldPassword|newPassword|
610
+ * ```
611
+ *
612
+ * This property is read-only.
613
+ */
614
+ readonly passwordChangeRequested: boolean
615
+
616
+ /**
617
+ * Controls which address family is selected when DNS resolution for a hostname returns both an
618
+ * IPv4 address and an IPv6 address.
619
+ *
620
+ * - When `false` (the default), Chilkat selects the IPv4 address when one is available.
621
+ *
622
+ * - When `true`, Chilkat selects the IPv6 address when one is available.
623
+ *
624
+ * This property expresses a preference; it does not prohibit use of the other address family when
625
+ * the preferred family is unavailable.
626
+ *
627
+ * **No address fallback:** Chilkat attempts only the first address selected from the DNS results.
628
+ * If that connection attempt fails, it does not automatically try another resolved address or
629
+ * fall back to the other address family. For example, when IPv6 is preferred and the selected
630
+ * IPv6 connection fails, an available IPv4 address is not subsequently tried.
631
+ */
632
+ preferIpv6: boolean
633
+
634
+ /**
635
+ * Specifies a receive timeout, in milliseconds, for SSH methods that use this property. The
636
+ * default is `0`, meaning no `ReadTimeoutMs` limit.
637
+ *
638
+ * The exact scope is method-specific:
639
+ *
640
+ * MethodObserved timeout scope
641
+ *
642
+ * | {@link Ssh.channelRead} | | Limits the wait for channel input. |
643
+ *
644
+ * | {@link Ssh.channelReadAndPoll} | | Limits the initial wait when nonzero. After the first data
645
+ * arrives, `pollTimeoutMs` controls the additional quiet-period wait. |
646
+ *
647
+ * | {@link Ssh.channelReceiveToClose} | | Limits the receive operation while waiting for channel
648
+ * closure. |
649
+ *
650
+ * | {@link Ssh.channelReceiveUntilMatch} and {@link Ssh.channelReceiveUntilMatchN} | | Limits the
651
+ * wait for a matching pattern. |
652
+ *
653
+ * | {@link Ssh.channelPoll} and {@link Ssh.waitForChannelMessage} | | Use their explicit
654
+ * `pollTimeoutMs` arguments instead. |
655
+ *
656
+ * A receive timeout does not discard bytes already received. The connection and channel can
657
+ * remain usable, and a later receive call can continue. Always inspect and preserve buffered
658
+ * stdout and stderr after a timeout.
659
+ */
660
+ readTimeoutMs: number
661
+
662
+ /**
663
+ * Specifies the character encoding used for command text sent by {@link Ssh.sendReqExec}, {@link
664
+ * Ssh.quickCommand}, and {@link Ssh.quickCmdSend}. The default is `ANSI`.
665
+ *
666
+ * On Windows, `ANSI` uses the Windows ANSI code page returned by `GetACP`, not the OEM code page.
667
+ * Its exact meaning on non-Windows platforms is environment-dependent. For portable behavior,
668
+ * specify an explicit charset such as `utf-8` or `windows-1252`.
669
+ *
670
+ * This property applies to the command string itself. It does not override the explicit `charset`
671
+ * argument passed to {@link Ssh.channelSendString}.
672
+ *
673
+ * Use a supported charset name. In v11.6.0, an unrecognized charset name was observed to fall
674
+ * back to UTF-8 rather than fail; applications should not rely on that fallback.
675
+ */
676
+ reqExecCharset: string
677
+
678
+ /**
679
+ * Contains the in-memory SSH protocol log for the current or most recently completed successful
680
+ * session. Enable logging by setting {@link Ssh.keepSessionLog} to `true`.
681
+ *
682
+ * The initial value is an empty string. A normal disconnect, server disconnect, or transport loss
683
+ * leaves the existing session log available. A later successful {@link Ssh.connect} starts a new
684
+ * session log rather than appending indefinitely to the previous session. A failed TCP connection
685
+ * attempt does not necessarily replace an existing session log; inspect `LastErrorText` for the
686
+ * failed call.
687
+ *
688
+ * Authentication passwords and private-key passphrases are not included in the log. The log may
689
+ * contain server identifiers, negotiated algorithms, authentication method names, and other
690
+ * connection diagnostics.
691
+ *
692
+ * This property contains log text; it is not a file path. Treat diagnostic output as potentially
693
+ * sensitive and avoid retaining it longer than necessary.
694
+ *
695
+ * This property is read-only.
696
+ */
697
+ readonly sessionLog: string
698
+
699
+ /**
700
+ * Specifies the socket receive-buffer size. The default is `4194304` bytes. Normally this
701
+ * property should remain unchanged.
702
+ *
703
+ * When download throughput is unexpectedly low, testing a larger value may help. Values should
704
+ * generally be multiples of `4096`.
705
+ *
706
+ * When a proxy is used, this setting applies to the TCP connection made to the proxy.
707
+ */
708
+ soRcvBuf: number
709
+
710
+ /**
711
+ * Specifies the socket send-buffer size. The default is `262144` bytes. Normally this property
712
+ * should remain unchanged.
713
+ *
714
+ * When upload throughput is unexpectedly low, testing values such as `524288` or `1048576` may
715
+ * help. Values should generally be multiples of `4096`.
716
+ *
717
+ * When a proxy is used, this setting applies to the TCP connection made to the proxy.
718
+ */
719
+ soSndBuf: number
720
+
721
+ /**
722
+ * Specifies the SOCKS proxy hostname or IPv4 address. This property is used only when {@link
723
+ * Ssh.socksVersion} is `4` or `5`. An IPv6 address cannot be used for the SOCKS proxy.
724
+ *
725
+ * SOCKS4a is not supported. With SOCKS5, the destination hostname is sent to the proxy and
726
+ * resolved remotely by the proxy. IPv6 destination addresses are not supported through SOCKS5.
727
+ */
728
+ socksHostname: string
729
+
730
+ /**
731
+ * Specifies the SOCKS5 password when username/password authentication is required. SOCKS4 does
732
+ * not define password authentication, so this property is ignored for SOCKS4.
733
+ *
734
+ * SOCKS5 supports either no authentication or username/password authentication. Leave both {@link
735
+ * Ssh.socksUsername} and this property empty to request no authentication. The connection fails
736
+ * if the proxy requires an unsupported authentication method.
737
+ */
738
+ socksPassword: string
739
+
740
+ /**
741
+ * Specifies the SOCKS proxy port. The default is `1080`. This property is used only when {@link
742
+ * Ssh.socksVersion} is `4` or `5`.
743
+ */
744
+ socksPort: number
745
+
746
+ /**
747
+ * Specifies the SOCKS username. For SOCKS4, it is sent as the SOCKS user ID. For SOCKS5, it is
748
+ * used with {@link Ssh.socksPassword} for username/password authentication.
749
+ *
750
+ * For SOCKS5, leave both properties empty to request no authentication.
751
+ */
752
+ socksUsername: string
753
+
754
+ /**
755
+ * Selects whether and how a SOCKS proxy is used.
756
+ *
757
+ * ValueBehavior
758
+ *
759
+ * | `0` | | Do not use a SOCKS proxy. This is the default. Chilkat may still use an HTTP proxy if
760
+ * both {@link Ssh.httpProxyHostname} and {@link Ssh.httpProxyPort} are set. |
761
+ *
762
+ * | `4` | | Connect through a SOCKS4 proxy. SOCKS4a is not supported. |
763
+ *
764
+ * | `5` | | Connect through a SOCKS5 proxy. |
765
+ *
766
+ * **Proxy selection:** A SOCKS proxy takes precedence over an HTTP proxy. When this property is
767
+ * `4` or `5`, Chilkat uses the configured SOCKS proxy. When it is `0`, Chilkat uses an HTTP proxy
768
+ * only if `HttpProxyHostname` is nonempty and `HttpProxyPort` is nonzero. Otherwise, Chilkat
769
+ * connects directly to the SSH server.
770
+ *
771
+ * Assigning a value other than `4` or `5` sets the property to `0`. These proxy settings apply to
772
+ * both {@link Ssh.connect} and {@link Ssh.connectThroughSsh}.
773
+ */
774
+ socksVersion: number
775
+
776
+ /**
777
+ * Controls whether SSH extended-data received as stderr is merged into the normal channel receive
778
+ * buffer. The default is `true`.
779
+ *
780
+ * When `true`, retrieve combined stdout and stderr with `GetReceivedData`, `GetReceivedDataN`,
781
+ * {@link Ssh.getReceivedText}, or {@link Ssh.getReceivedTextS}. When `false`, retrieve SSH stderr
782
+ * separately with `GetReceivedStderr` or {@link Ssh.getReceivedStderrText}.
783
+ *
784
+ * The setting is applied when each incoming stderr packet is processed. Changing it while a
785
+ * channel is active affects only stderr received afterward. Already separated stderr is not moved
786
+ * into stdout, and already merged stderr cannot later be separated.
787
+ *
788
+ * Read-method return values count bytes in both the normal and separate stderr buffers. {@link
789
+ * Ssh.getReceivedNumBytes} counts only the normal receive buffer.
790
+ *
791
+ * This setting also affects {@link Ssh.quickCommand}. When `false`, its returned string contains
792
+ * stdout but does not include separately received stderr.
793
+ *
794
+ * **PTY channels:** When a pseudo-terminal is allocated, the remote terminal normally combines
795
+ * the process's stdout and stderr into a single PTY byte stream before SSH transports it. In that
796
+ * case both appear in the normal receive buffer and the stderr buffer is empty regardless of this
797
+ * property.
798
+ */
799
+ stderrToStdout: boolean
800
+
801
+ /**
802
+ * Controls the `TCP_NODELAY` setting for the underlying TCP connection. The default is `true`,
803
+ * which disables the Nagle algorithm and generally improves responsiveness when many small
804
+ * messages are exchanged.
805
+ *
806
+ * When a proxy is used, this setting applies to the TCP connection made to the proxy.
807
+ */
808
+ tcpNoDelay: boolean
809
+
810
+ /**
811
+ * Contains a user-authentication banner received from the server during authentication. Check
812
+ * this property after {@link Ssh.startKeyboardAuth} or another authentication attempt and display
813
+ * it to the user when appropriate.
814
+ *
815
+ * This is per-authentication runtime state, not a persistent connection setting. A value assigned
816
+ * by the application can remain before authentication begins, including across a failed
817
+ * connection attempt, but an authentication attempt clears or replaces the value. In testing,
818
+ * both successful and rejected password authentication cleared a previously assigned value when
819
+ * the server sent no banner.
820
+ *
821
+ * When no banner is available, the property returns an empty string rather than null.
822
+ */
823
+ userAuthBanner: string
824
+
825
+ /**
826
+ * Controls whether SSH compression may be negotiated. The default is `true`, meaning compression
827
+ * is used when the server supports it.
828
+ *
829
+ * Some older servers advertise compression but fail when it is enabled. If the server disconnects
830
+ * during or immediately after connection/authentication, try setting this property to `false`.
831
+ */
832
+ enableCompression: boolean
833
+
834
+ /**
835
+ * Set to `true` to request that the currently running Chilkat operation abort. This applies to
836
+ * synchronous and asynchronous methods that may block on network or lengthy processing.
837
+ *
838
+ * A synchronous call can be interrupted by setting this property from another thread. When the
839
+ * abort is observed, the current method returns failure, but the SSH connection and channel are
840
+ * not automatically closed. Bytes already buffered remain available, the remote process can
841
+ * continue running, and a later receive call can continue on the same channel. The same object
842
+ * and connection can also be used to open new channels afterward.
843
+ *
844
+ * An aborted receive does not set {@link Ssh.disconnectCode} or {@link Ssh.disconnectReason}, and
845
+ * object-level configuration settings remain unchanged. An aborted {@link Ssh.connect} leaves the
846
+ * object disconnected but reusable for a later connection attempt.
847
+ *
848
+ * When the abort is observed, Chilkat resets the property to `false`. If no operation is running,
849
+ * it is reset when the next method begins.
850
+ */
851
+ abortCurrent: boolean
852
+
853
+ /**
854
+ * Controls whether ANSI SGR color and text-style sequences are removed from normal received text
855
+ * returned by {@link Ssh.getReceivedText} and {@link Ssh.getReceivedTextS}. The default is
856
+ * `true`.
857
+ *
858
+ * It removes ESC-prefixed CSI sequences ending in `m`, including empty, semicolon-separated, and
859
+ * colon-separated parameter forms such as `ESC[m`, `ESC[1;31m`, `ESC[38;5;196m`, and
860
+ * `ESC[38:5:196m`.
861
+ *
862
+ * It does not remove non-SGR CSI sequences such as `ESC[2J`, OSC sequences, 8-bit C1 CSI
863
+ * sequences beginning with byte `0x9B`, or an incomplete trailing SGR sequence.
864
+ *
865
+ * For `GetReceivedTextS`, stripping applies to both the literal substring search and the returned
866
+ * value; the corresponding original raw escape-sequence bytes are consumed.
867
+ *
868
+ * It does not affect raw-byte getters, {@link Ssh.peekReceivedText}, {@link
869
+ * Ssh.getReceivedStderrText}, pattern matching in {@link Ssh.channelReceiveUntilMatch}, or the
870
+ * string returned by {@link Ssh.quickCommand}.
871
+ *
872
+ * An SGR sequence split across SSH packets can still be removed if all of its bytes remain
873
+ * buffered until the text is retrieved.
874
+ */
875
+ stripColorCodes: boolean
876
+
877
+ /**
878
+ * Contains the SSH server-identification string received during connection establishment. For
879
+ * example:
880
+ *
881
+ * ```
882
+ * SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.16
883
+ * ```
884
+ *
885
+ * The initial value is an empty string. After a successful connection, the value remains
886
+ * available after a normal {@link Ssh.disconnect}, a server-sent SSH `DISCONNECT`, or an abrupt
887
+ * transport loss.
888
+ *
889
+ * A subsequent failed connection attempt clears this property rather than retaining the
890
+ * identifier from an earlier session. A successful reconnect replaces it with the newly received
891
+ * identifier. The empty result is an empty string, not null.
892
+ *
893
+ * This property is read-only.
894
+ */
895
+ readonly serverIdentifier: string
896
+
897
+ /**
898
+ * Provides comma-separated compatibility and security options for uncommon SSH scenarios. The
899
+ * default is an empty string, which is appropriate for most applications.
900
+ *
901
+ * KeywordEffect
902
+ *
903
+ * | `ForceUserAuthRsaSha1` | | Forces `ssh-rsa`/SHA-1 for RSA user authentication. Set before
904
+ * connecting when a server advertises RSA-SHA2 but still requires the legacy SHA-1 user-auth
905
+ * signature. |
906
+ *
907
+ * | `no-weak-mac-algs` | | Removes `hmac-sha1-96`, `hmac-sha1`, `hmac-md5`, and `hmac-ripemd160`
908
+ * from the offered MAC algorithms. |
909
+ *
910
+ * | `ProtectFromVpn` | | On Android, bypasses an installed or active VPN. |
911
+ *
912
+ * | `+ssh-hmac-etm` | | Re-enables Encrypt-then-MAC algorithms that are disabled by default as a
913
+ * Terrapin mitigation. |
914
+ *
915
+ * | `+chacha20-poly1305@openssh.com` | | Re-enables `chacha20-poly1305@openssh.com`, which is
916
+ * disabled by default as a Terrapin mitigation. |
917
+ *
918
+ * Set connection-negotiation options before calling {@link Ssh.connect}.
919
+ */
920
+ uncommonOptions: string
921
+
922
+ /**
923
+ * **This property is normally left at its default value of `0`.** In this case, the operating
924
+ * system automatically chooses an unused local port from its ephemeral-port range. Applications
925
+ * should set a specific local port only when a remote system or network policy requires the
926
+ * connection to originate from that port.
927
+ *
928
+ * When set to a nonzero value, Chilkat requests that exact local port. The connection fails if
929
+ * the port is already in use or is otherwise unavailable. A specifically chosen port might also
930
+ * be temporarily unavailable for reuse after a connection closes because of operating-system TCP
931
+ * connection management. These port-reuse concerns do not normally apply when this property
932
+ * remains `0`.
933
+ *
934
+ * This property applies to all connection paths, including direct SSH connections, HTTP and SOCKS
935
+ * proxy connections, {@link Ssh.connectThroughSsh}, and multi-hop SSH connections.
936
+ *
937
+ * Starting in Chilkat v11.6.0, assigned values must be in the range `0` through `65535`. If a
938
+ * negative value or a value greater than `65535` is assigned, it is ignored and the existing
939
+ * property value remains unchanged.
940
+ */
941
+ clientPort: number
942
+
943
+ /**
944
+ * Enables automatic resolution of secret specification strings from secure operating-system
945
+ * storage. The default is `false`.
946
+ *
947
+ * When `true`, supported password properties and authentication methods may receive a value
948
+ * beginning with `!!` instead of a literal credential. Chilkat resolves the secret from Windows
949
+ * Credential Manager on Windows or Apple Keychain on macOS.
950
+ *
951
+ * Secret specification format:
952
+ *
953
+ * ```
954
+ * !![appName|]service[|domain]|username
955
+ * ```
956
+ *
957
+ * This feature applies to {@link Ssh.httpProxyPassword}, {@link Ssh.socksPassword}, {@link
958
+ * Ssh.authenticatePw}, and {@link Ssh.authenticatePwPk}.
959
+ */
960
+ enableSecrets: boolean
961
+
962
+ // ---- Methods ----
963
+
964
+ /**
965
+ * Authenticates an active, unauthenticated SSH connection using public-key authentication.
966
+ * `username` identifies the server account, and `privateKey` must contain the corresponding
967
+ * private key. The public key must already be authorized for that account on the server.
968
+ *
969
+ * An empty or public-only `SshKey` is rejected locally with {@link Ssh.authFailReason} equal to
970
+ * `2`; this local validation failure does not close the SSH connection.
971
+ *
972
+ * If the server rejects the key but keeps the connection open, the application may retry on the
973
+ * same connection with another private key or a different authentication method. The server may
974
+ * instead disconnect after an authentication-attempt limit is reached. Reconnect before retrying
975
+ * when {@link Ssh.isConnected} is `false`.
976
+ *
977
+ * Calling this method before {@link Ssh.connect} fails with reason `1`. Calling it after the
978
+ * session is already authenticated fails with reason `6`.
979
+ *
980
+ * After a failure, inspect {@link Ssh.authFailReason}, `LastErrorText`, and, if the connection
981
+ * was closed, {@link Ssh.disconnectReason}.
982
+ *
983
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
984
+ * {@link Ssh.authenticatePkAsync}.
985
+ *
986
+ * @throws Error if the call fails (the message names the reason); the full log is in
987
+ * {@link Ssh.lastErrorText}.
988
+ */
989
+ authenticatePk(username: string, privateKey: SshKey): void
990
+
991
+ /**
992
+ * Asynchronous form of {@link Ssh.authenticatePk}: the same call on a native worker thread,
993
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
994
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
995
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
996
+ *
997
+ * The promise rejects with an Error if the call fails; the full log is in
998
+ * {@link Ssh.lastErrorText}.
999
+ */
1000
+ authenticatePkAsync(username: string, privateKey: SshKey): Promise<void>
1001
+
1002
+ /**
1003
+ * Authenticates an active, unauthenticated SSH connection using `login` and `password`.
1004
+ *
1005
+ * Call {@link Ssh.connect} first. Calling this method without a connection fails with {@link
1006
+ * Ssh.authFailReason} equal to `1`. Calling it after the session is already authenticated fails
1007
+ * with reason `6`.
1008
+ *
1009
+ * If authentication fails and the server keeps the SSH connection open, {@link Ssh.isConnected}
1010
+ * remains `true` and the application may retry on the same connection with corrected credentials
1011
+ * or a different authentication method. A later correct password succeeded on the same connection
1012
+ * in testing. A server can disconnect after too many failed attempts; reconnect before retrying
1013
+ * when `IsConnected` is `false`.
1014
+ *
1015
+ * An authentication attempt clears or replaces {@link Ssh.userAuthBanner}. Object-level
1016
+ * configuration settings remain unchanged.
1017
+ *
1018
+ * If the server requests a password change, see {@link Ssh.passwordChangeRequested}.
1019
+ *
1020
+ * After a failure, inspect {@link Ssh.authFailReason} and `LastErrorText`. {@link
1021
+ * Ssh.disconnectCode} and {@link Ssh.disconnectReason} remain zero and empty unless the server
1022
+ * actually sends an SSH `DISCONNECT`.
1023
+ *
1024
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1025
+ * {@link Ssh.authenticatePwAsync}.
1026
+ *
1027
+ * @throws Error if the call fails (the message names the reason); the full log is in
1028
+ * {@link Ssh.lastErrorText}.
1029
+ */
1030
+ authenticatePw(login: string, password: string): void
1031
+
1032
+ /**
1033
+ * Asynchronous form of {@link Ssh.authenticatePw}: the same call on a native worker thread,
1034
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1035
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1036
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1037
+ *
1038
+ * The promise rejects with an Error if the call fails; the full log is in
1039
+ * {@link Ssh.lastErrorText}.
1040
+ */
1041
+ authenticatePwAsync(login: string, password: string): Promise<void>
1042
+
1043
+ /**
1044
+ * Authenticates with a server that requires both a password and a private key. `username` is the
1045
+ * username, `password` is the password, and `privateKey` is the private key.
1046
+ *
1047
+ * Most servers require either password or public-key authentication rather than both. After a
1048
+ * failure, inspect {@link Ssh.authFailReason} and `LastErrorText`.
1049
+ *
1050
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1051
+ * {@link Ssh.authenticatePwPkAsync}.
1052
+ *
1053
+ * @throws Error if the call fails (the message names the reason); the full log is in
1054
+ * {@link Ssh.lastErrorText}.
1055
+ */
1056
+ authenticatePwPk(username: string, password: string, privateKey: SshKey): void
1057
+
1058
+ /**
1059
+ * Asynchronous form of {@link Ssh.authenticatePwPk}: the same call on a native worker thread,
1060
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1061
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1062
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1063
+ *
1064
+ * The promise rejects with an Error if the call fails; the full log is in
1065
+ * {@link Ssh.lastErrorText}.
1066
+ */
1067
+ authenticatePwPkAsync(username: string, password: string, privateKey: SshKey): Promise<void>
1068
+
1069
+ /**
1070
+ * Returns `true` when `channelNum` identifies a channel that Chilkat currently considers open for
1071
+ * application I/O; otherwise returns `false`. It returns `false` for invalid or nonexistent
1072
+ * channel numbers, after a normal local {@link Ssh.disconnect}, after remote closure is
1073
+ * processed, and immediately after {@link Ssh.channelSendClose} closes the channel locally.
1074
+ *
1075
+ * {@link Ssh.numOpenChannels} can temporarily continue counting a locally closed channel until
1076
+ * final remote-close processing occurs.
1077
+ *
1078
+ * **Connection loss:** After abrupt transport loss or a server-sent SSH `DISCONNECT`, a retained
1079
+ * channel record can temporarily cause this method to return `true` even though {@link
1080
+ * Ssh.isConnected} is `false`. Treat `IsConnected = _FALSE_` as authoritative. Buffered bytes
1081
+ * from before the loss can still be retrievable.
1082
+ */
1083
+ channelIsOpen(channelNum: number): boolean
1084
+
1085
+ /**
1086
+ * Polls `channelNum` for incoming SSH channel messages, waiting at most `pollTimeoutMs`
1087
+ * milliseconds. Pass `0` for a nonblocking poll. The explicit `pollTimeoutMs` controls this wait;
1088
+ * shorter values of {@link Ssh.readTimeoutMs} or {@link Ssh.idleTimeoutMs} do not shorten it.
1089
+ *
1090
+ * Data received is appended to the normal receive buffer or separate stderr buffer according to
1091
+ * {@link Ssh.stderrToStdout}.
1092
+ *
1093
+ * Return valueMeaning
1094
+ *
1095
+ * | `-1` | | An error occurred. Inspect `LastErrorText`, {@link Ssh.isConnected}, and {@link
1096
+ * Ssh.channelIsOpen}. |
1097
+ *
1098
+ * | `-2` | | No additional applicable channel message arrived before the applicable timeout.
1099
+ * Previously buffered stdout or stderr can still be available. |
1100
+ *
1101
+ * | `0` | | EOF or channel closure was processed. Buffered data can still remain and should be
1102
+ * drained. |
1103
+ *
1104
+ * | `> 0` | | The total number of bytes currently buffered for the channel, counting both the
1105
+ * normal receive buffer and a separate stderr buffer. It is not the number of bytes newly
1106
+ * received by this call. |
1107
+ *
1108
+ * The return value is not a newly received byte count. Inspect {@link Ssh.getReceivedNumBytes},
1109
+ * retrieve separate stderr when applicable, and check EOF, CLOSE, and exit-status flags.
1110
+ * Processing a final channel message can remove a completed channel record, so drain buffered
1111
+ * output before polling again.
1112
+ *
1113
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1114
+ * {@link Ssh.channelPollAsync}.
1115
+ */
1116
+ channelPoll(channelNum: number, pollTimeoutMs: number): number
1117
+
1118
+ /**
1119
+ * Asynchronous form of {@link Ssh.channelPoll}: the same call on a native worker thread,
1120
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1121
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1122
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1123
+ */
1124
+ channelPollAsync(channelNum: number, pollTimeoutMs: number): Promise<number>
1125
+
1126
+ /**
1127
+ * Reads incoming SSH channel messages for `channelNum`. A nonzero {@link Ssh.readTimeoutMs}
1128
+ * limits the wait for channel input. Received data is appended to the normal receive buffer or
1129
+ * separate stderr buffer according to {@link Ssh.stderrToStdout}.
1130
+ *
1131
+ * Return valueMeaning
1132
+ *
1133
+ * | `-1` | | An error occurred. Inspect `LastErrorText`, {@link Ssh.isConnected}, and {@link
1134
+ * Ssh.channelIsOpen}. |
1135
+ *
1136
+ * | `-2` | | No additional applicable channel message arrived before the applicable timeout.
1137
+ * Previously buffered stdout or stderr can still be available. |
1138
+ *
1139
+ * | `0` | | EOF or channel closure was processed. Buffered data can still remain and should be
1140
+ * drained. |
1141
+ *
1142
+ * | `> 0` | | The total number of bytes currently buffered for the channel, counting both the
1143
+ * normal receive buffer and a separate stderr buffer. It is not the number of bytes newly
1144
+ * received by this call. |
1145
+ *
1146
+ * A timeout returns `-2` rather than closing the channel. A later read can continue on the same
1147
+ * channel.
1148
+ *
1149
+ * Because all channels share one SSH transport, this method can also process and buffer packets
1150
+ * for other open channels while waiting for `channelNum`.
1151
+ *
1152
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1153
+ * {@link Ssh.channelReadAsync}.
1154
+ */
1155
+ channelRead(channelNum: number): number
1156
+
1157
+ /**
1158
+ * Asynchronous form of {@link Ssh.channelRead}: the same call on a native worker thread,
1159
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1160
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1161
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1162
+ */
1163
+ channelReadAsync(channelNum: number): Promise<number>
1164
+
1165
+ /**
1166
+ * Reads `channelNum` in two phases:
1167
+ *
1168
+ * - Waits for the first applicable channel message. A nonzero {@link Ssh.readTimeoutMs} limits
1169
+ * this initial wait. When `ReadTimeoutMs` is `0`, {@link Ssh.idleTimeoutMs} can provide the
1170
+ * initial-read timeout.
1171
+ *
1172
+ * - After data begins arriving, continues processing until no additional data arrives for
1173
+ * `pollTimeoutMs` milliseconds.
1174
+ *
1175
+ * The second phase is governed by `pollTimeoutMs`; a shorter `ReadTimeoutMs` does not shorten
1176
+ * that quiet-period wait.
1177
+ *
1178
+ * This pattern is useful for shell commands: allow a longer wait for the first output, then stop
1179
+ * shortly after the output stream becomes idle.
1180
+ *
1181
+ * Return valueMeaning
1182
+ *
1183
+ * | `-1` | | An error occurred. Inspect `LastErrorText`, {@link Ssh.isConnected}, and {@link
1184
+ * Ssh.channelIsOpen}. |
1185
+ *
1186
+ * | `-2` | | No additional applicable channel message arrived before the applicable timeout.
1187
+ * Previously buffered stdout or stderr can still be available. |
1188
+ *
1189
+ * | `0` | | EOF or channel closure was processed. Buffered data can still remain and should be
1190
+ * drained. |
1191
+ *
1192
+ * | `> 0` | | The total number of bytes currently buffered for the channel, counting both the
1193
+ * normal receive buffer and a separate stderr buffer. It is not the number of bytes newly
1194
+ * received by this call. |
1195
+ *
1196
+ * The method can return `0` or `-2` while bytes remain buffered. Drain the normal and stderr
1197
+ * buffers based on their actual contents, not solely on the method return value.
1198
+ *
1199
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1200
+ * {@link Ssh.channelReadAndPollAsync}.
1201
+ */
1202
+ channelReadAndPoll(channelNum: number, pollTimeoutMs: number): number
1203
+
1204
+ /**
1205
+ * Asynchronous form of {@link Ssh.channelReadAndPoll}: the same call on a native worker thread,
1206
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1207
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1208
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1209
+ */
1210
+ channelReadAndPollAsync(channelNum: number, pollTimeoutMs: number): Promise<number>
1211
+
1212
+ /**
1213
+ * Works like {@link Ssh.channelReadAndPoll}, but also returns after newly processed data causes
1214
+ * the total buffered channel data to reach or exceed `maxNumBytes`.
1215
+ *
1216
+ * `maxNumBytes` is a return threshold, not a hard receive-buffer limit. An entire SSH packet can
1217
+ * be buffered, so the amount returned can exceed the requested threshold. Data already buffered
1218
+ * before the call does not by itself cause an immediate threshold return.
1219
+ *
1220
+ * A value of `0` or a negative value does not impose a useful threshold. For streaming large
1221
+ * output, use a positive threshold, drain the buffer after each call, and perform a final drain
1222
+ * when EOF or CLOSE is observed.
1223
+ *
1224
+ * Return valueMeaning
1225
+ *
1226
+ * | `-1` | | An error occurred. Inspect `LastErrorText`, {@link Ssh.isConnected}, and {@link
1227
+ * Ssh.channelIsOpen}. |
1228
+ *
1229
+ * | `-2` | | No additional applicable channel message arrived before the timeout. Previously
1230
+ * buffered stdout or stderr can still be available. |
1231
+ *
1232
+ * | `0` | | EOF or channel closure was processed. Buffered data can still remain and should be
1233
+ * drained. |
1234
+ *
1235
+ * | `> 0` | | The total number of bytes currently buffered for the channel, counting both the
1236
+ * normal receive buffer and a separate stderr buffer. It is not the number of bytes newly
1237
+ * received by this call. |
1238
+ *
1239
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1240
+ * {@link Ssh.channelReadAndPoll2Async}.
1241
+ */
1242
+ channelReadAndPoll2(channelNum: number, pollTimeoutMs: number, maxNumBytes: number): number
1243
+
1244
+ /**
1245
+ * Asynchronous form of {@link Ssh.channelReadAndPoll2}: the same call on a native worker thread,
1246
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1247
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1248
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1249
+ */
1250
+ channelReadAndPoll2Async(channelNum: number, pollTimeoutMs: number, maxNumBytes: number): Promise<number>
1251
+
1252
+ /**
1253
+ * Receives data on `channelNum` until the server sends and Chilkat processes channel `CLOSE`. The
1254
+ * server can send EOF earlier; EOF alone does not complete this method.
1255
+ *
1256
+ * Both normal data and stderr are processed. Stderr is merged or kept separate according to
1257
+ * {@link Ssh.stderrToStdout}. A nonzero {@link Ssh.readTimeoutMs} limits the receive operation.
1258
+ * {@link Ssh.idleTimeoutMs} is not a simple stdout/stderr inactivity timer because any SSH
1259
+ * communication can restart it.
1260
+ *
1261
+ * If the method times out or is canceled, bytes received before the failure remain buffered, the
1262
+ * SSH connection and channel can remain open, and a later call can continue receiving on the same
1263
+ * channel. These outcomes do not set {@link Ssh.disconnectCode} or {@link Ssh.disconnectReason}.
1264
+ * If the SSH transport is lost, the method fails and {@link Ssh.isConnected} becomes `false`, but
1265
+ * bytes received before the loss can still remain retrievable.
1266
+ *
1267
+ * This method buffers all received output in memory. It successfully accumulated at least 8 MiB
1268
+ * in testing, but no upper limit was established. For potentially large or unbounded output, use
1269
+ * incremental reads and drain the buffers as data arrives.
1270
+ *
1271
+ * **Retrieve completed-channel results immediately.** After this method returns, get stdout,
1272
+ * stderr, and exit status before calling unrelated SSH methods or querying {@link
1273
+ * Ssh.numOpenChannels}. A later SSH operation can finalize and discard the completed channel
1274
+ * record.
1275
+ *
1276
+ * A `true` return means the SSH receive operation completed. It does not mean the remote command
1277
+ * exited successfully.
1278
+ *
1279
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1280
+ * {@link Ssh.channelReceiveToCloseAsync}.
1281
+ *
1282
+ * @throws Error if the call fails (the message names the reason); the full log is in
1283
+ * {@link Ssh.lastErrorText}.
1284
+ */
1285
+ channelReceiveToClose(channelNum: number): void
1286
+
1287
+ /**
1288
+ * Asynchronous form of {@link Ssh.channelReceiveToClose}: the same call on a native worker
1289
+ * thread,
1290
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1291
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1292
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1293
+ *
1294
+ * The promise rejects with an Error if the call fails; the full log is in
1295
+ * {@link Ssh.lastErrorText}.
1296
+ */
1297
+ channelReceiveToCloseAsync(channelNum: number): Promise<void>
1298
+
1299
+ /**
1300
+ * Receives text on `channelNum` until the accumulated text matches `matchPattern`. Existing
1301
+ * buffered text is checked before waiting for additional network data.
1302
+ *
1303
+ * The supported pattern syntax consists of literal characters plus `*`, which matches zero or
1304
+ * more characters and can span line breaks. It can appear anywhere in the pattern. The `?`
1305
+ * wildcard and bracket character classes are not supported, and backslash does not escape a
1306
+ * literal `*`. A pattern containing only `*` waits until at least some text has arrived rather
1307
+ * than matching an empty buffer immediately.
1308
+ *
1309
+ * `charset` specifies the character encoding, and `caseSensitive` controls comparison. The method
1310
+ * can read beyond the matched text because an entire SSH packet may already be available.
1311
+ *
1312
+ * Matching considers stderr even when {@link Ssh.stderrToStdout} is `false`. {@link
1313
+ * Ssh.stripColorCodes} is not applied before matching.
1314
+ *
1315
+ * A nonzero {@link Ssh.readTimeoutMs} limits the wait. {@link Ssh.idleTimeoutMs} is not a
1316
+ * substitute for this limit because unrelated SSH traffic can restart the inactivity interval.
1317
+ *
1318
+ * **Usage notes:**
1319
+ *
1320
+ * - Use distinctive literal sentinels when exact command boundaries are required.
1321
+ *
1322
+ * - After success, {@link Ssh.getReceivedTextS} can remove and return text through a known
1323
+ * literal terminator.
1324
+ *
1325
+ * - Avoid an empty `matchPattern`; it does not define a useful boundary.
1326
+ *
1327
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1328
+ * {@link Ssh.channelReceiveUntilMatchAsync}.
1329
+ *
1330
+ * @throws Error if the call fails (the message names the reason); the full log is in
1331
+ * {@link Ssh.lastErrorText}.
1332
+ */
1333
+ channelReceiveUntilMatch(channelNum: number, matchPattern: string, charset: string, caseSensitive: boolean): void
1334
+
1335
+ /**
1336
+ * Asynchronous form of {@link Ssh.channelReceiveUntilMatch}: the same call on a native worker
1337
+ * thread,
1338
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1339
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1340
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1341
+ *
1342
+ * The promise rejects with an Error if the call fails; the full log is in
1343
+ * {@link Ssh.lastErrorText}.
1344
+ */
1345
+ channelReceiveUntilMatchAsync(channelNum: number, matchPattern: string, charset: string, caseSensitive: boolean): Promise<void>
1346
+
1347
+ /**
1348
+ * Works like {@link Ssh.channelReceiveUntilMatch}, but returns when any pattern in
1349
+ * `matchPatterns` is matched. The array must contain at least one element.
1350
+ *
1351
+ * The first matching content encountered in the received stream determines when the method
1352
+ * returns; array order does not override an earlier token in the stream. Existing buffered text
1353
+ * is checked before waiting. Empty elements are ignored, and duplicate patterns are allowed.
1354
+ *
1355
+ * The method does not return the index or value of the pattern that matched, and {@link
1356
+ * Ssh.getLastJsonData} does not identify it. After success, inspect the buffered text or use
1357
+ * distinct nonoverlapping sentinels that the application can identify reliably.
1358
+ *
1359
+ * The same pattern grammar, stderr behavior, and {@link Ssh.readTimeoutMs} behavior described for
1360
+ * `ChannelReceiveUntilMatch` apply.
1361
+ *
1362
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1363
+ * {@link Ssh.channelReceiveUntilMatchNAsync}.
1364
+ *
1365
+ * @throws Error if the call fails (the message names the reason); the full log is in
1366
+ * {@link Ssh.lastErrorText}.
1367
+ */
1368
+ channelReceiveUntilMatchN(channelNum: number, matchPatterns: StringArray, charset: string, caseSensitive: boolean): void
1369
+
1370
+ /**
1371
+ * Asynchronous form of {@link Ssh.channelReceiveUntilMatchN}: the same call on a native worker
1372
+ * thread,
1373
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1374
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1375
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1376
+ *
1377
+ * The promise rejects with an Error if the call fails; the full log is in
1378
+ * {@link Ssh.lastErrorText}.
1379
+ */
1380
+ channelReceiveUntilMatchNAsync(channelNum: number, matchPatterns: StringArray, charset: string, caseSensitive: boolean): Promise<void>
1381
+
1382
+ /**
1383
+ * Returns `true` if an SSH `CLOSE` message has been received for `channelNum`. Remote CLOSE is
1384
+ * distinct from EOF and closes the channel in both directions. When it is processed, {@link
1385
+ * Ssh.channelIsOpen} becomes `false` and the channel is normally removed from {@link
1386
+ * Ssh.numOpenChannels}.
1387
+ *
1388
+ * Returns `false` for an invalid, released, locally disconnected, or no-longer-retained channel
1389
+ * number. A transport can be lost without receiving a channel CLOSE; check {@link
1390
+ * Ssh.isConnected} separately.
1391
+ *
1392
+ * Retrieve buffered output, stderr, and exit status promptly after the receive method completes
1393
+ * and before calling {@link Ssh.channelRelease}.
1394
+ */
1395
+ channelReceivedClose(channelNum: number): boolean
1396
+
1397
+ /**
1398
+ * Returns `true` if an SSH `EOF` message has been received for `channelNum`. EOF means the server
1399
+ * will send no more ordinary channel data. It does not close the channel.
1400
+ *
1401
+ * The server can send EOF before it sends `CLOSE`. During that interval, this method is `true`,
1402
+ * {@link Ssh.channelReceivedClose} is `false`, and the channel can remain open and counted by
1403
+ * {@link Ssh.numOpenChannels}. Exit status and CLOSE can arrive later.
1404
+ *
1405
+ * Returns `false` for an invalid, released, disconnected, or no-longer-retained channel number.
1406
+ * After transport failure, channel flags can be stale or unavailable; check {@link
1407
+ * Ssh.isConnected} first.
1408
+ */
1409
+ channelReceivedEof(channelNum: number): boolean
1410
+
1411
+ /**
1412
+ * Returns `true` if the server supplied an exit-status value for `channelNum`. When `true`, call
1413
+ * {@link Ssh.getChannelExitStatus}.
1414
+ *
1415
+ * Exit status is independent of EOF and CLOSE. It can arrive after EOF and before or with CLOSE.
1416
+ * The server is not required to send an exit status for every channel type or command.
1417
+ *
1418
+ * Returns `false` for an invalid, released, disconnected, or no-longer-retained channel number. A
1419
+ * connection failure does not synthesize an exit status.
1420
+ *
1421
+ * Check this flag and retrieve the value immediately after the receive method completes. A later
1422
+ * unrelated SSH operation, including channel enumeration, can finalize and remove the completed
1423
+ * channel record.
1424
+ */
1425
+ channelReceivedExitStatus(channelNum: number): boolean
1426
+
1427
+ /**
1428
+ * Releases Chilkat’s retained local resources for `channelNum` after all required output and exit
1429
+ * information has been retrieved. It does not send EOF or CLOSE and is not a channel-closing
1430
+ * method.
1431
+ *
1432
+ * Calling it while a channel is still protocol-open has no effect. It can also be called after
1433
+ * {@link Ssh.disconnect} to discard buffered data retained for a former channel. After release,
1434
+ * methods such as {@link Ssh.getReceivedNumBytes} report that the channel is unavailable.
1435
+ *
1436
+ * Calling this method with an invalid channel number is a harmless no-op. Repeated calls are
1437
+ * harmless.
1438
+ *
1439
+ * Do not release a completed channel until stdout, stderr, and exit status have been retrieved.
1440
+ * Also avoid unrelated SSH calls between completion and result retrieval because they can
1441
+ * finalize and remove the completed channel record.
1442
+ *
1443
+ * ```
1444
+ * ChannelReceiveToClose(channelNum)
1445
+ * GetReceivedText(...)
1446
+ * GetReceivedStderrText(...)
1447
+ * if (ChannelReceivedExitStatus(channelNum))
1448
+ * GetChannelExitStatus(channelNum)
1449
+ * ChannelRelease(channelNum)
1450
+ * ```
1451
+ */
1452
+ channelRelease(channelNum: number): void
1453
+
1454
+ /**
1455
+ * Sends an SSH `CLOSE` message for `channelNum` and immediately marks the channel locally closed.
1456
+ * The method does not wait for remote EOF, remote CLOSE, or an exit status, and it does not
1457
+ * guarantee that the remote process has terminated.
1458
+ *
1459
+ * After a successful call, {@link Ssh.channelIsOpen} returns `false`, but {@link
1460
+ * Ssh.numOpenChannels} can continue counting the channel until final remote-close processing
1461
+ * occurs. A repeated call can succeed while the local channel record remains; after the remote
1462
+ * CLOSE removes the channel, another call fails because the channel no longer exists.
1463
+ *
1464
+ * For normal exec completion, prefer receiving through the remote CLOSE so all output and exit
1465
+ * information can be collected. Use this method when the application intentionally abandons or
1466
+ * closes the channel early.
1467
+ *
1468
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1469
+ * {@link Ssh.channelSendCloseAsync}.
1470
+ *
1471
+ * @throws Error if the call fails (the message names the reason); the full log is in
1472
+ * {@link Ssh.lastErrorText}.
1473
+ */
1474
+ channelSendClose(channelNum: number): void
1475
+
1476
+ /**
1477
+ * Asynchronous form of {@link Ssh.channelSendClose}: the same call on a native worker thread,
1478
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1479
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1480
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1481
+ *
1482
+ * The promise rejects with an Error if the call fails; the full log is in
1483
+ * {@link Ssh.lastErrorText}.
1484
+ */
1485
+ channelSendCloseAsync(channelNum: number): Promise<void>
1486
+
1487
+ /**
1488
+ * Sends an SSH `EOF` message on `channelNum`. This closes only the client-to-server data
1489
+ * direction. The application may continue receiving stdout, stderr, exit status, EOF, and CLOSE
1490
+ * from the server.
1491
+ *
1492
+ * After EOF is sent, do not call `ChannelSendData` or {@link Ssh.channelSendString} again for
1493
+ * that channel. A later send call can return `true` even though the data is not delivered to the
1494
+ * remote process. Repeated calls to `ChannelSendEof` are harmless but unnecessary.
1495
+ *
1496
+ * For an exec request that reads standard input, EOF is the normal way to indicate that all input
1497
+ * has been supplied.
1498
+ *
1499
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1500
+ * {@link Ssh.channelSendEofAsync}.
1501
+ *
1502
+ * @throws Error if the call fails (the message names the reason); the full log is in
1503
+ * {@link Ssh.lastErrorText}.
1504
+ */
1505
+ channelSendEof(channelNum: number): void
1506
+
1507
+ /**
1508
+ * Asynchronous form of {@link Ssh.channelSendEof}: the same call on a native worker thread,
1509
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1510
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1511
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1512
+ *
1513
+ * The promise rejects with an Error if the call fails; the full log is in
1514
+ * {@link Ssh.lastErrorText}.
1515
+ */
1516
+ channelSendEofAsync(channelNum: number): Promise<void>
1517
+
1518
+ /**
1519
+ * Encodes `textData` using `charset`, then sends the resulting bytes on `channelNum`. No line
1520
+ * ending or terminator is added automatically.
1521
+ *
1522
+ * An empty string is valid and sends zero bytes. When {@link Ssh.caretControl} is `true`,
1523
+ * recognized caret sequences are translated to control characters before sending.
1524
+ *
1525
+ * On Windows, `ANSI` uses the Windows ANSI code page returned by `GetACP`, not the OEM code page.
1526
+ * Its meaning on other platforms is environment-dependent. Use an explicit charset such as
1527
+ * `utf-8` or `windows-1252` for portable behavior.
1528
+ *
1529
+ * Use a supported charset name. In v11.6.0, an unrecognized charset name was observed to fall
1530
+ * back to UTF-8 rather than fail; applications should not rely on that fallback.
1531
+ *
1532
+ * The method handles SSH packet sizing and channel-window flow control internally. It does not
1533
+ * expose a partial-byte count if an error occurs.
1534
+ *
1535
+ * Do not call this method after {@link Ssh.channelSendEof}. A successful return after EOF does
1536
+ * not guarantee that the text was delivered.
1537
+ *
1538
+ * See [Supported Charsets](https://www.chilkatsoft.com/charsets_supported_by_chilkat.asp).
1539
+ *
1540
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1541
+ * {@link Ssh.channelSendStringAsync}.
1542
+ *
1543
+ * @throws Error if the call fails (the message names the reason); the full log is in
1544
+ * {@link Ssh.lastErrorText}.
1545
+ */
1546
+ channelSendString(channelNum: number, textData: string, charset: string): void
1547
+
1548
+ /**
1549
+ * Asynchronous form of {@link Ssh.channelSendString}: the same call on a native worker thread,
1550
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1551
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1552
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1553
+ *
1554
+ * The promise rejects with an Error if the call fails; the full log is in
1555
+ * {@link Ssh.lastErrorText}.
1556
+ */
1557
+ channelSendStringAsync(channelNum: number, textData: string, charset: string): Promise<void>
1558
+
1559
+ /**
1560
+ * Returns `true` when the underlying SSH transport currently appears connected, and `false` when
1561
+ * the object is unconnected, has been disconnected, a connection attempt failed, or transport
1562
+ * loss has already been detected.
1563
+ *
1564
+ * In testing, this method returned immediately and matched {@link Ssh.isConnected}. It should not
1565
+ * be treated as an end-to-end SSH round trip or proof that the remote server is responsive. Use
1566
+ * {@link Ssh.sendIgnore} when an active SSH exchange is required.
1567
+ *
1568
+ * This method does not authenticate the session. A failed authentication, receive timeout,
1569
+ * receive abort, or rejected channel-open request can leave it returning `true` because those
1570
+ * failures do not necessarily close the transport.
1571
+ *
1572
+ * A `false` result can simply mean that no connection exists. The method does not necessarily
1573
+ * replace `LastErrorText`, so an existing error string may describe an earlier operation.
1574
+ *
1575
+ * Returns `true` if the underlying TCP socket does not currently appear to be
1576
+ * closed, or `false` if the connection is known to be closed or invalid.
1577
+ *
1578
+ * Unlike {@link Ssh.isConnected}, which reports the
1579
+ * connection state already known by the `Ssh` object, this method performs
1580
+ * an additional non-consuming check of the socket. It calls the operating system's
1581
+ * `recv` function with `MSG_PEEK` to inspect up to one byte
1582
+ * without removing any data from the socket's receive buffer.
1583
+ *
1584
+ * **Important:**
1585
+ * This is a local socket-state check. It does not send an SSH message, wait for
1586
+ * an SSH response, authenticate the session, or prove that the remote SSH server
1587
+ * is responsive. For example, it may still return `true` when the network path
1588
+ * is silently broken but the operating system has not yet detected the failure.
1589
+ * Use {@link Ssh.sendIgnore} when an active SSH
1590
+ * round trip is required.
1591
+ *
1592
+ * A receive timeout, aborted operation, authentication failure, or rejected
1593
+ * channel request does not necessarily close the socket. In those cases,
1594
+ * `CheckConnection` may continue to return `true`.
1595
+ *
1596
+ * A `false` result can simply mean that no connection exists. This method may not
1597
+ * replace `LastErrorText` when no new socket error is generated, so the
1598
+ * existing diagnostic text can describe an earlier operation.
1599
+ */
1600
+ checkConnection(): boolean
1601
+
1602
+ /**
1603
+ * Clears all TTY mode settings previously added with {@link Ssh.setTtyMode}. The next {@link
1604
+ * Ssh.sendReqPty} request will not include those cleared modes.
1605
+ */
1606
+ clearTtyModes(): void
1607
+
1608
+ /**
1609
+ * Establishes an SSH connection to `domainName` on the TCP port specified by `port`. The
1610
+ * `domainName` may be a DNS hostname or a numeric IPv4 or IPv6 address. A null or empty
1611
+ * `domainName` is treated as a zero-length hostname and causes the call to fail.
1612
+ *
1613
+ * **Proxy selection:** If {@link Ssh.socksVersion} is `4` or `5`, Chilkat connects through the
1614
+ * configured SOCKS proxy. Otherwise, if {@link Ssh.httpProxyHostname} is nonempty and {@link
1615
+ * Ssh.httpProxyPort} is nonzero, Chilkat connects through the HTTP proxy. If neither condition
1616
+ * applies, Chilkat connects directly to the SSH server.
1617
+ *
1618
+ * **Connection state after success:** A successful call means the TCP connection and secure SSH
1619
+ * transport are established. The client and server identification strings have been exchanged,
1620
+ * key exchange has completed, and the server host key has been received and cryptographically
1621
+ * verified as part of the SSH key exchange. User authentication has not yet started, so every
1622
+ * newly connected session is unauthenticated. Next call an authentication method such as {@link
1623
+ * Ssh.authenticatePw}, {@link Ssh.authenticatePk}, {@link Ssh.authenticatePwPk}, or {@link
1624
+ * Ssh.startKeyboardAuth}.
1625
+ *
1626
+ * If this method is called while the object is already connected, Chilkat first disconnects the
1627
+ * existing session and then establishes a new connection. This occurs even when connecting again
1628
+ * to the same server. The existing connection and active channel collection are replaced. A new
1629
+ * connection attempt also clears retained data belonging to channels from an earlier disconnected
1630
+ * or lost session.
1631
+ *
1632
+ * The same `Ssh` object may be reused after {@link Ssh.disconnect}, connection refusal, connect
1633
+ * timeout, connect abort, server protocol disconnect, or abrupt transport loss. A failed call
1634
+ * leaves {@link Ssh.isConnected} equal to `false`. Every successful new connection is
1635
+ * unauthenticated and must be authenticated again. Channel numbers are opaque and can continue
1636
+ * increasing across reconnects; do not assume they restart at zero.
1637
+ *
1638
+ * **Persistent configuration:** Representative writable settings remained unchanged across normal
1639
+ * disconnects, failed connection attempts, authentication failures, receive timeouts and aborts,
1640
+ * rejected channel opens, server disconnects, transport loss, and subsequent reconnects. Tested
1641
+ * settings included connection and receive timeouts, socket settings, proxy-independent client
1642
+ * settings, logging options, character-set and output options, compression, and uncommon options.
1643
+ * Runtime state such as authentication, channels, disconnect diagnostics, host-key state,
1644
+ * authentication banners, and session-log contents has a separate lifecycle.
1645
+ *
1646
+ * **Typical state sequence:** disconnected → SSH transport connected → authenticated → channels
1647
+ * open. The operations valid in each state follow the SSH protocol.
1648
+ *
1649
+ * **Supported negotiation algorithms include:**
1650
+ *
1651
+ * CategoryAlgorithms
1652
+ *
1653
+ * | Host key | | `ssh-ed25519`, `rsa-sha2-256`, `rsa-sha2-512`, `ecdsa-sha2-nistp256`,
1654
+ * `ecdsa-sha2-nistp384`, `ecdsa-sha2-nistp521`, `ssh-rsa`, `ssh-dss` |
1655
+ *
1656
+ * | Key exchange | | `curve25519-sha256`, `curve25519-sha256@libssh.org`, NIST ECDH, DH group
1657
+ * 1/14/16/18, and group-exchange SHA-1/SHA-256 |
1658
+ *
1659
+ * | Ciphers | | AES CTR/CBC/GCM, Twofish CBC, Blowfish CBC, and optionally
1660
+ * `chacha20-poly1305@openssh.com` |
1661
+ *
1662
+ * | MAC | | SHA-2, SHA-1, RIPEMD-160, MD5, and optionally OpenSSH Encrypt-then-MAC variants |
1663
+ *
1664
+ * | Compression | | `none`, `zlib`, and `zlib@openssh.com` |
1665
+ *
1666
+ * **Connection failures:** Every Internet protocol begins with a TCP connection. Firewalls,
1667
+ * endpoint security software, network ACLs, routing, proxies, or server-side policy may block the
1668
+ * connection before SSH negotiation begins.
1669
+ *
1670
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1671
+ * {@link Ssh.connectAsync}.
1672
+ *
1673
+ * @throws Error if the call fails (the message names the reason); the full log is in
1674
+ * {@link Ssh.lastErrorText}.
1675
+ */
1676
+ connect(domainName: string, port: number): void
1677
+
1678
+ /**
1679
+ * Asynchronous form of {@link Ssh.connect}: the same call on a native worker thread,
1680
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1681
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1682
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1683
+ *
1684
+ * The promise rejects with an Error if the call fails; the full log is in
1685
+ * {@link Ssh.lastErrorText}.
1686
+ */
1687
+ connectAsync(domainName: string, port: number): Promise<void>
1688
+
1689
+ /**
1690
+ * Connects to another SSH server through the already connected and authenticated `Ssh` object in
1691
+ * `ssh`. `hostname` and `port` identify the destination host and port.
1692
+ *
1693
+ * ```
1694
+ * application → first SSH server → destination SSH server
1695
+ * ```
1696
+ *
1697
+ * After this method succeeds, authenticate separately with the destination server by calling one
1698
+ * of its `Authenticate*` methods.
1699
+ *
1700
+ * The proxy properties, {@link Ssh.clientIpAddress}, {@link Ssh.clientPort}, and socket options
1701
+ * on the inner object apply to this connection. SOCKS takes precedence over HTTP proxy settings,
1702
+ * using the same selection rules as {@link Ssh.connect}.
1703
+ *
1704
+ * The inner object’s {@link Ssh.connectTimeoutMs} controls the timeout for establishing this
1705
+ * connection.
1706
+ *
1707
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1708
+ * {@link Ssh.connectThroughSshAsync}.
1709
+ *
1710
+ * @throws Error if the call fails (the message names the reason); the full log is in
1711
+ * {@link Ssh.lastErrorText}.
1712
+ */
1713
+ connectThroughSsh(ssh: Ssh, hostname: string, port: number): void
1714
+
1715
+ /**
1716
+ * Asynchronous form of {@link Ssh.connectThroughSsh}: the same call on a native worker thread,
1717
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1718
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1719
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1720
+ *
1721
+ * The promise rejects with an Error if the call fails; the full log is in
1722
+ * {@link Ssh.lastErrorText}.
1723
+ */
1724
+ connectThroughSshAsync(ssh: Ssh, hostname: string, port: number): Promise<void>
1725
+
1726
+ /**
1727
+ * Continues keyboard-interactive authentication by submitting the response in `response`. For a
1728
+ * single prompt, `response` may be the response text. When the preceding information request
1729
+ * contains multiple prompts, supply an XML response:
1730
+ *
1731
+ * ```
1732
+ * <response>
1733
+ * <response1>response to first prompt</response1>
1734
+ * <response2>response to second prompt</response2>
1735
+ * ...
1736
+ * </response>
1737
+ * ```
1738
+ *
1739
+ * The returned XML has one of three forms: authentication success, authentication failure, or
1740
+ * another information request containing additional prompts.
1741
+ *
1742
+ * ```
1743
+ * <success>success message</success>
1744
+ *
1745
+ * <error>error message</error>
1746
+ *
1747
+ * <infoRequest numPrompts="N">
1748
+ * <name>name</name>
1749
+ * <instruction>instructions</instruction>
1750
+ * <prompt1 echo="1_or_0">prompt text</prompt1>
1751
+ * ...
1752
+ * </infoRequest>
1753
+ * ```
1754
+ *
1755
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1756
+ * {@link Ssh.continueKeyboardAuthAsync}.
1757
+ *
1758
+ * @throws Error if the call fails (the message names the reason); the full log is in
1759
+ * {@link Ssh.lastErrorText}.
1760
+ */
1761
+ continueKeyboardAuth(response: string): string
1762
+
1763
+ /**
1764
+ * Asynchronous form of {@link Ssh.continueKeyboardAuth}: the same call on a native worker thread,
1765
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1766
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1767
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1768
+ *
1769
+ * The promise rejects with an Error if the call fails; the full log is in
1770
+ * {@link Ssh.lastErrorText}.
1771
+ */
1772
+ continueKeyboardAuthAsync(response: string): Promise<string>
1773
+
1774
+ /**
1775
+ * Closes the current SSH transport. It is harmless to call when no connection exists and may be
1776
+ * called repeatedly.
1777
+ *
1778
+ * After this method returns, {@link Ssh.isConnected} is `false`, {@link Ssh.numOpenChannels} is
1779
+ * `0`, and former channels are no longer open or enumerated. However, bytes that were already
1780
+ * buffered for a former channel can remain retrievable by its channel number after the
1781
+ * disconnect. Retrieve the data and call {@link Ssh.channelRelease}, or allow the next {@link
1782
+ * Ssh.connect} call to clear retained old-channel data.
1783
+ *
1784
+ * A local disconnect does not set {@link Ssh.disconnectCode} or {@link Ssh.disconnectReason};
1785
+ * they remain `0` and an empty string. {@link Ssh.serverIdentifier} remains available, while
1786
+ * {@link Ssh.hostKeyFingerprint} is cleared.
1787
+ *
1788
+ * The `Ssh` object remains reusable. Writable configuration settings are not reset and remain in
1789
+ * effect for subsequent calls to {@link Ssh.connect}. Every new connection begins
1790
+ * unauthenticated.
1791
+ */
1792
+ disconnect(): void
1793
+
1794
+ /**
1795
+ * Returns the remote process exit status received for `channelNum`. Call this method only after
1796
+ * {@link Ssh.channelReceivedExitStatus} returns `true`.
1797
+ *
1798
+ * Retrieve the value immediately after the receive operation and before calling unrelated SSH
1799
+ * methods, querying {@link Ssh.numOpenChannels}, or releasing the channel. After the completed
1800
+ * channel record is removed, a returned numeric `0` is not a valid substitute for checking method
1801
+ * success.
1802
+ *
1803
+ * An exit status of `0` conventionally indicates success on Unix-like systems; nonzero meanings
1804
+ * are determined by the remote program and operating system. A nonzero exit status is not a
1805
+ * Chilkat API failure and does not cause {@link Ssh.sendReqExec} or {@link
1806
+ * Ssh.channelReceiveToClose} to fail.
1807
+ */
1808
+ getChannelExitStatus(channelNum: number): number
1809
+
1810
+ /**
1811
+ * Returns the channel number at zero-based enumeration `index` in the active channel collection.
1812
+ * The index is an enumeration position, not a channel number. Use {@link Ssh.numOpenChannels} to
1813
+ * determine the valid range from `0` through `NumOpenChannels - 1`.
1814
+ *
1815
+ * Returns `-1` when `index` is negative or otherwise out of range, including index `0` when the
1816
+ * collection is empty. Channel numbers are opaque identifiers; do not assume they start at `0`,
1817
+ * reset after reconnect, are sequential, or are reused predictably.
1818
+ *
1819
+ * The active collection can temporarily include a channel that was closed locally and is awaiting
1820
+ * final remote-close processing. Former channels retained only for buffered-result retrieval
1821
+ * after disconnect are not enumerated.
1822
+ */
1823
+ getChannelNumber(index: number): number
1824
+
1825
+ /**
1826
+ * Returns the type of the channel at zero-based enumeration `index` in the active channel
1827
+ * collection. The index is an enumeration position, not a channel number. Possible values include
1828
+ * `session`, `x11`, `forwarded-tcpip`, and `direct-tcpip`.
1829
+ *
1830
+ * If `index` is negative or otherwise out of range, the string-returning method reports failure,
1831
+ * returns null, and sets `LastMethodSuccess` to `false`. This includes index `0` when {@link
1832
+ * Ssh.numOpenChannels} is `0`.
1833
+ *
1834
+ * The active collection can temporarily include a channel that was closed locally but is still
1835
+ * awaiting final remote-close processing. Former channels retained only for buffered-result
1836
+ * retrieval after disconnect are not enumerated.
1837
+ *
1838
+ * @throws Error if the call fails (the message names the reason); the full log is in
1839
+ * {@link Ssh.lastErrorText}.
1840
+ */
1841
+ getChannelType(index: number): string
1842
+
1843
+ /**
1844
+ * Returns the number of bytes currently available in the normal receive buffer for `channelNum`.
1845
+ * It does not include bytes in the separate stderr buffer when {@link Ssh.stderrToStdout} is
1846
+ * `false`.
1847
+ *
1848
+ * Returns `-1` when the channel number is invalid or its retained resources have been released.
1849
+ * After a normal {@link Ssh.disconnect} or abrupt transport loss, bytes received earlier can
1850
+ * remain available and this method can still return their count even though the channel is no
1851
+ * longer active or enumerable. A subsequent {@link Ssh.connect} clears retained data from the
1852
+ * previous session.
1853
+ *
1854
+ * Buffered bytes can also remain after a timeout or cancellation. After normal channel
1855
+ * completion, a later unrelated SSH operation can finalize and discard the completed channel
1856
+ * record. Query and drain the buffer promptly.
1857
+ *
1858
+ * Retrieve normal bytes with `GetReceivedData`, `GetReceivedDataN`, `GetReceivedBd`, or a text
1859
+ * getter. Retrieve separate stderr with `GetReceivedStderr` or {@link Ssh.getReceivedStderrText}.
1860
+ */
1861
+ getReceivedNumBytes(channelNum: number): number
1862
+
1863
+ /**
1864
+ * Decodes and returns all text currently accumulated in the separate stderr buffer for
1865
+ * `channelNum`, using `charset`. The stderr buffer is cleared after the text is returned.
1866
+ *
1867
+ * For a valid retained channel with no separate stderr, an empty string is returned successfully.
1868
+ * For an invalid or no-longer-retained channel, the string-returning API reports failure.
1869
+ * Retrieve stderr immediately after completion, before another SSH operation can discard the
1870
+ * completed channel record.
1871
+ *
1872
+ * {@link Ssh.stripColorCodes} is not applied to stderr text. Text getters do not retain an
1873
+ * incomplete multibyte sequence for a later call; use raw bytes and a stateful application
1874
+ * decoder for streaming multibyte data.
1875
+ *
1876
+ * See [Supported Charsets](https://www.chilkatsoft.com/charsets_supported_by_chilkat.asp).
1877
+ *
1878
+ * @throws Error if the call fails (the message names the reason); the full log is in
1879
+ * {@link Ssh.lastErrorText}.
1880
+ */
1881
+ getReceivedStderrText(channelNum: number, charset: string): string
1882
+
1883
+ /**
1884
+ * Decodes and returns all text currently accumulated in the normal receive buffer for
1885
+ * `channelNum`, using `charset`. The receive buffer is cleared after the text is returned.
1886
+ *
1887
+ * For a valid retained channel with no buffered data, an empty string is returned successfully.
1888
+ * For an invalid or no-longer-retained channel, the string-returning API reports failure. After
1889
+ * channel completion, retrieve text immediately before unrelated SSH operations can discard the
1890
+ * completed channel record.
1891
+ *
1892
+ * When {@link Ssh.stripColorCodes} is `true`, ANSI SGR color/style sequences are removed from the
1893
+ * returned normal text. Other terminal-control sequences can remain.
1894
+ *
1895
+ * See [Supported Charsets](https://www.chilkatsoft.com/charsets_supported_by_chilkat.asp).
1896
+ *
1897
+ * @throws Error if the call fails (the message names the reason); the full log is in
1898
+ * {@link Ssh.lastErrorText}.
1899
+ */
1900
+ getReceivedText(channelNum: number, charset: string): string
1901
+
1902
+ /**
1903
+ * Decodes text in the normal receive buffer for `channelNum` and performs a literal,
1904
+ * case-sensitive search for `substr` using `charset`.
1905
+ *
1906
+ * If found, the method returns and removes everything through and including the first occurrence.
1907
+ * If not found, it returns an empty string successfully and leaves the buffer unchanged. An empty
1908
+ * `substr` is invalid and causes failure without consuming the buffer.
1909
+ *
1910
+ * When {@link Ssh.stripColorCodes} is `true`, SGR sequences are removed for both the substring
1911
+ * search and the returned value. The method consumes the corresponding original raw bytes,
1912
+ * including the stripped escape sequences.
1913
+ *
1914
+ * As with other destructive text getters, incomplete multibyte sequences are not retained as
1915
+ * decoder state for a later call. Retrieve completed-channel text before unrelated SSH operations
1916
+ * can remove the retained channel record.
1917
+ *
1918
+ * @throws Error if the call fails (the message names the reason); the full log is in
1919
+ * {@link Ssh.lastErrorText}.
1920
+ */
1921
+ getReceivedTextS(channelNum: number, substr: string, charset: string): string
1922
+
1923
+ /**
1924
+ * Requests a custom SSH channel whose application-defined channel type is supplied in
1925
+ * `channelType`. The SSH server must implement that channel type. On success, returns the channel
1926
+ * number used by the normal channel send, receive, EOF, CLOSE, and release methods.
1927
+ *
1928
+ * Returns `-1` if the server rejects the channel. In that case, {@link Ssh.channelOpenFailCode}
1929
+ * and {@link Ssh.channelOpenFailReason} contain the server-provided failure information. The
1930
+ * underlying SSH connection normally remains open, {@link Ssh.checkConnection} remains `true`,
1931
+ * and other channels can be opened and used afterward.
1932
+ *
1933
+ * A channel-open rejection does not set {@link Ssh.disconnectCode} or {@link
1934
+ * Ssh.disconnectReason} unless the server also sends an SSH `DISCONNECT`. Object-level
1935
+ * configuration settings are unchanged.
1936
+ *
1937
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1938
+ * {@link Ssh.openCustomChannelAsync}.
1939
+ */
1940
+ openCustomChannel(channelType: string): number
1941
+
1942
+ /**
1943
+ * Asynchronous form of {@link Ssh.openCustomChannel}: the same call on a native worker thread,
1944
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1945
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1946
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1947
+ */
1948
+ openCustomChannelAsync(channelType: string): Promise<number>
1949
+
1950
+ /**
1951
+ * Opens a `direct-tcpip` channel through the SSH server to `targetHostname` and `targetPort`. The
1952
+ * target name is sent to and resolved by the SSH server, not by the client computer. It must
1953
+ * therefore be resolvable and reachable from the server's network environment. A numeric IPv4
1954
+ * address may be supplied to avoid remote DNS-name resolution.
1955
+ *
1956
+ * Each successful call creates one independent raw TCP byte stream. Multiple channels to the same
1957
+ * target may be open concurrently. Bytes sent with `ChannelSend*` methods are forwarded to the
1958
+ * target, and bytes returned by the target are read with `ChannelRead*` or `ChannelReceive*`
1959
+ * methods. For example, when the target is an SSH server, its SSH identification line is received
1960
+ * as ordinary channel data. The channel is enumerated with type `direct-tcpip`.
1961
+ *
1962
+ * Returns the new channel number on success, or `-1` if the SSH server rejects or cannot
1963
+ * establish the target connection. On server rejection, inspect {@link Ssh.channelOpenFailCode}
1964
+ * and {@link Ssh.channelOpenFailReason}. Name-resolution and target-connection failures normally
1965
+ * leave the underlying SSH connection open.
1966
+ *
1967
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1968
+ * {@link Ssh.openDirectTcpIpChannelAsync}.
1969
+ */
1970
+ openDirectTcpIpChannel(targetHostname: string, targetPort: number): number
1971
+
1972
+ /**
1973
+ * Asynchronous form of {@link Ssh.openDirectTcpIpChannel}: the same call on a native worker
1974
+ * thread,
1975
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1976
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
1977
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
1978
+ */
1979
+ openDirectTcpIpChannelAsync(targetHostname: string, targetPort: number): Promise<number>
1980
+
1981
+ /**
1982
+ * Opens a new SSH session channel. The SSH transport must already be connected and user
1983
+ * authentication must have completed successfully. Calling this method before {@link Ssh.connect}
1984
+ * or before authentication returns `-1`. A failure caused by missing authentication does not by
1985
+ * itself close the SSH transport.
1986
+ *
1987
+ * Opening a session channel does not start a shell, execute a command, or start a subsystem.
1988
+ * After opening the channel, send the appropriate session request.
1989
+ *
1990
+ * ```
1991
+ * 1. Connect
1992
+ * 2. Authenticate
1993
+ * 3. OpenSessionChannel
1994
+ * 4. Optionally send preparatory requests such as SendReqPty or SendReqSetEnv
1995
+ * 5. Send one primary request: SendReqExec, SendReqShell, or SendReqSubsystem
1996
+ * ```
1997
+ *
1998
+ * Returns an opaque channel number on success, or `-1` on failure. Do not assume channel numbers
1999
+ * start at `0`, are sequential, or are reused in a predictable way.
2000
+ *
2001
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2002
+ * {@link Ssh.openSessionChannelAsync}.
2003
+ */
2004
+ openSessionChannel(): number
2005
+
2006
+ /**
2007
+ * Asynchronous form of {@link Ssh.openSessionChannel}: the same call on a native worker thread,
2008
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2009
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2010
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2011
+ */
2012
+ openSessionChannelAsync(): Promise<number>
2013
+
2014
+ /**
2015
+ * Returns the text currently buffered in the normal receive buffer for `channelNum`, decoded
2016
+ * using `charset`, without removing any bytes.
2017
+ *
2018
+ * For a valid empty buffer, it returns an empty string successfully. {@link Ssh.stripColorCodes}
2019
+ * is not applied; terminal escape sequences are returned as buffered. Because the operation is
2020
+ * nondestructive, it is useful for checking whether a complete multibyte sequence or logical
2021
+ * delimiter has arrived before calling a destructive text getter.
2022
+ *
2023
+ * @throws Error if the call fails (the message names the reason); the full log is in
2024
+ * {@link Ssh.lastErrorText}.
2025
+ */
2026
+ peekReceivedText(channelNum: number, charset: string): string
2027
+
2028
+ /**
2029
+ * Initiates SSH key re-exchange and waits for it to complete. Either client or server may
2030
+ * initiate rekeying at any time.
2031
+ *
2032
+ * RFC 4253 recommends changing keys after approximately one gigabyte of transferred data or one
2033
+ * hour of connection time, whichever occurs first. In normal use, servers initiate rekeying as
2034
+ * needed and Chilkat handles it transparently.
2035
+ *
2036
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2037
+ * {@link Ssh.reKeyAsync}.
2038
+ *
2039
+ * @throws Error if the call fails (the message names the reason); the full log is in
2040
+ * {@link Ssh.lastErrorText}.
2041
+ */
2042
+ reKey(): void
2043
+
2044
+ /**
2045
+ * Asynchronous form of {@link Ssh.reKey}: the same call on a native worker thread,
2046
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2047
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2048
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2049
+ *
2050
+ * The promise rejects with an Error if the call fails; the full log is in
2051
+ * {@link Ssh.lastErrorText}.
2052
+ */
2053
+ reKeyAsync(): Promise<void>
2054
+
2055
+ /**
2056
+ * Sends an SSH `IGNORE` message. The server does not reply, but a successful send helps verify
2057
+ * that the connection is still writable. No channel is required.
2058
+ *
2059
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2060
+ * {@link Ssh.sendIgnoreAsync}.
2061
+ *
2062
+ * @throws Error if the call fails (the message names the reason); the full log is in
2063
+ * {@link Ssh.lastErrorText}.
2064
+ */
2065
+ sendIgnore(): void
2066
+
2067
+ /**
2068
+ * Asynchronous form of {@link Ssh.sendIgnore}: the same call on a native worker thread,
2069
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2070
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2071
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2072
+ *
2073
+ * The promise rejects with an Error if the call fails; the full log is in
2074
+ * {@link Ssh.lastErrorText}.
2075
+ */
2076
+ sendIgnoreAsync(): Promise<void>
2077
+
2078
+ /**
2079
+ * Requests execution of `commandLine` on the session channel identified by `channelNum`. The
2080
+ * command text is sent using {@link Ssh.reqExecCharset}.
2081
+ *
2082
+ * **Request acceptance is not command success:** A `true` return means the SSH server accepted
2083
+ * the `exec` request. The remote command can still fail, be missing, or exit with a nonzero
2084
+ * status. Receive the channel to completion, then use {@link Ssh.channelReceivedExitStatus} and
2085
+ * {@link Ssh.getChannelExitStatus} to determine the remote process result.
2086
+ *
2087
+ * An exec channel is used for one command. Open a new session channel for each independent
2088
+ * command. A second exec request on the same channel is normally rejected, while the first
2089
+ * command continues running.
2090
+ *
2091
+ * After the request is accepted, data sent with `ChannelSendData` or {@link
2092
+ * Ssh.channelSendString} becomes the command’s standard input. Call {@link Ssh.channelSendEof}
2093
+ * when no more input will be sent; stdout and stderr may still be received afterward.
2094
+ *
2095
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2096
+ * {@link Ssh.sendReqExecAsync}.
2097
+ *
2098
+ * @throws Error if the call fails (the message names the reason); the full log is in
2099
+ * {@link Ssh.lastErrorText}.
2100
+ */
2101
+ sendReqExec(channelNum: number, commandLine: string): void
2102
+
2103
+ /**
2104
+ * Asynchronous form of {@link Ssh.sendReqExec}: the same call on a native worker thread,
2105
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2106
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2107
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2108
+ *
2109
+ * The promise rejects with an Error if the call fails; the full log is in
2110
+ * {@link Ssh.lastErrorText}.
2111
+ */
2112
+ sendReqExecAsync(channelNum: number, commandLine: string): Promise<void>
2113
+
2114
+ /**
2115
+ * **Recommendation for automation:** Do not request a pseudo-terminal unless the remote command
2116
+ * or application specifically requires terminal behavior. Most automated SSH applications should
2117
+ * operate without a PTY so that stdout and stderr remain clean, predictable, and easier to parse.
2118
+ *
2119
+ * Requests a pseudo-terminal for session channel `channelNum`. The request must be sent before
2120
+ * the primary {@link Ssh.sendReqExec} or {@link Ssh.sendReqShell} request.
2121
+ *
2122
+ * The `termType` argument identifies the terminal type and normally becomes the remote session's
2123
+ * `TERM` environment variable. The server and remote applications use this value to look up
2124
+ * terminal capabilities in their `terminfo` or `termcap` database. The character and pixel
2125
+ * dimensions describe the terminal window. Terminal modes previously added with {@link
2126
+ * Ssh.setTtyMode} are included in the request.
2127
+ *
2128
+ * When no PTY is requested, the remote shell or command normally sees standard input and output
2129
+ * as pipes rather than a terminal. Shells and programs commonly detect this using a check such as
2130
+ * `isatty()` and operate in non-interactive mode. In that mode, the server normally does not send
2131
+ * a shell prompt, does not echo submitted commands, and avoids terminal-oriented output such as
2132
+ * ANSI color and cursor-control sequences. Shell startup behavior can vary according to the
2133
+ * remote shell and its configuration.
2134
+ *
2135
+ * Request type without a PTYTypical behavior
2136
+ *
2137
+ * | `exec` | | The server runs the requested command, returns its stdout and stderr, supplies
2138
+ * EOF/CLOSE and usually an exit status, and then ends the channel. No command prompt is included.
2139
+ * |
2140
+ *
2141
+ * | `shell` | | The application may stream multiple newline-terminated commands through the
2142
+ * channel as through a raw pipe. The server normally returns only command output, without prompts
2143
+ * or echoed input. |
2144
+ *
2145
+ * Without a prompt, an application must not wait for text such as `user@host:~$` to determine
2146
+ * when a command is finished. For an `exec` request, use the SSH protocol state: receive through
2147
+ * channel EOF/CLOSE and inspect the exit status with {@link Ssh.channelReceivedExitStatus} and
2148
+ * {@link Ssh.getChannelExitStatus}. For a long-lived shell channel, append a unique sentinel to
2149
+ * each submitted command and receive until that sentinel is found.
2150
+ *
2151
+ * **If a PTY is required for automation:** Prefer `dumb` for `termType` unless the remote program
2152
+ * genuinely needs a more capable terminal. A `dumb` terminal advertises little more than
2153
+ * sequential text input and output, so well-behaved programs generally avoid color, cursor
2154
+ * movement, screen clearing, and other terminal-control sequences. This is often the best choice
2155
+ * for commands such as `sudo` prompts or network-device CLIs that require a PTY but whose output
2156
+ * still needs to be parsed.
2157
+ *
2158
+ * Terminal typeWhen to use it
2159
+ *
2160
+ * | `dumb` | | Recommended when a PTY is mandatory but plain, sequential text is preferred.
2161
+ * Full-screen programs such as `vim`, `top`, or `htop` may refuse to run or work poorly because
2162
+ * cursor addressing is unavailable. |
2163
+ *
2164
+ * | `xterm` or `xterm-256color` | | Use only when the client is prepared to handle a capable
2165
+ * terminal stream containing cursor movement, screen-control sequences, text attributes, and
2166
+ * possibly color. Chilkat does not emulate an xterm terminal. |
2167
+ *
2168
+ * | `vt100` or `vt220` | | Useful for compatibility with older terminal-oriented systems or
2169
+ * devices. These still support cursor movement and control sequences. |
2170
+ *
2171
+ * | `linux` or `console` | | Describe operating-system console terminals and should be used only
2172
+ * when the application behaves like that console. |
2173
+ *
2174
+ * | `screen` or `tmux` | | Describe terminal-multiplexer environments and are appropriate only
2175
+ * when their capabilities are actually expected. |
2176
+ *
2177
+ * The terminal type is a declaration of capabilities, not a filter applied by Chilkat. A remote
2178
+ * application can ignore `TERM`, force color, or emit escape sequences regardless of the selected
2179
+ * type. If needed, also try sending environment requests such as `NO_COLOR=1` with {@link
2180
+ * Ssh.sendReqSetEnv}. Servers commonly restrict client-supplied environment variables, so setting
2181
+ * `termType` to `dumb` in the PTY request is generally more reliable than attempting to set
2182
+ * `TERM` separately.
2183
+ *
2184
+ * A PTY changes remote-process behavior. Programs may display prompts, echo input, enable line
2185
+ * buffering, execute interactive startup logic, emit terminal-control sequences, or alter
2186
+ * formatting. Chilkat does not perform terminal emulation. A PTY also normally combines the
2187
+ * remote process's stdout and stderr into one terminal stream, so {@link Ssh.stderrToStdout}
2188
+ * cannot preserve separate stderr on such a channel.
2189
+ *
2190
+ * **Only one PTY request per channel:** Do not call this method a second time for the same
2191
+ * channel. Some SSH servers treat a duplicate PTY request as a protocol error and disconnect the
2192
+ * entire SSH session.
2193
+ *
2194
+ * ```
2195
+ * Recommended automation workflow:
2196
+ * 1. OpenSessionChannel
2197
+ * 2. Do not call SendReqPty unless terminal behavior is required
2198
+ * 3. If a PTY is required but plain text is preferred, use termType = "dumb"
2199
+ * 4. SendReqExec, or SendReqShell when multiple commands are required
2200
+ * 5. Receive output and use SSH channel state, exit status, or a unique sentinel to detect completion
2201
+ * ```
2202
+ *
2203
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2204
+ * {@link Ssh.sendReqPtyAsync}.
2205
+ *
2206
+ * @throws Error if the call fails (the message names the reason); the full log is in
2207
+ * {@link Ssh.lastErrorText}.
2208
+ */
2209
+ sendReqPty(channelNum: number, termType: string, widthInChars: number, heightInChars: number, widthInPixels: number, heightInPixels: number): void
2210
+
2211
+ /**
2212
+ * Asynchronous form of {@link Ssh.sendReqPty}: the same call on a native worker thread,
2213
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2214
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2215
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2216
+ *
2217
+ * The promise rejects with an Error if the call fails; the full log is in
2218
+ * {@link Ssh.lastErrorText}.
2219
+ */
2220
+ sendReqPtyAsync(channelNum: number, termType: string, widthInChars: number, heightInChars: number, widthInPixels: number, heightInPixels: number): Promise<void>
2221
+
2222
+ /**
2223
+ * Requests that the server set environment variable `name` to `value` for the session channel
2224
+ * identified by `channelNum`. Send environment requests before the primary `exec`, `shell`, or
2225
+ * `subsystem` request.
2226
+ *
2227
+ * Multiple variables may be requested. If the server accepts repeated requests for the same name,
2228
+ * the later value is used. An empty value is allowed. The server controls which names are
2229
+ * accepted; for example, an OpenSSH configuration can accept selected locale variables while
2230
+ * rejecting arbitrary names.
2231
+ *
2232
+ * A `true` return means the server accepted this environment request. A rejected request returns
2233
+ * `false` but normally leaves the channel and SSH connection usable, so the application can
2234
+ * continue with the primary request. A request sent after the primary request has started is
2235
+ * normally rejected.
2236
+ *
2237
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2238
+ * {@link Ssh.sendReqSetEnvAsync}.
2239
+ *
2240
+ * @throws Error if the call fails (the message names the reason); the full log is in
2241
+ * {@link Ssh.lastErrorText}.
2242
+ */
2243
+ sendReqSetEnv(channelNum: number, name: string, value: string): void
2244
+
2245
+ /**
2246
+ * Asynchronous form of {@link Ssh.sendReqSetEnv}: the same call on a native worker thread,
2247
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2248
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2249
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2250
+ *
2251
+ * The promise rejects with an Error if the call fails; the full log is in
2252
+ * {@link Ssh.lastErrorText}.
2253
+ */
2254
+ sendReqSetEnvAsync(channelNum: number, name: string, value: string): Promise<void>
2255
+
2256
+ /**
2257
+ * Starts a remote shell on the open session channel identified by `channelNum`. A shell can be
2258
+ * requested without a PTY when the server permits it. For an interactive terminal session, call
2259
+ * {@link Ssh.sendReqPty} first.
2260
+ *
2261
+ * A `true` return means the server accepted the shell request. This method does not wait for,
2262
+ * detect, or remove a shell prompt. Login messages, prompts, command echo, and command output all
2263
+ * arrive as ordinary channel data.
2264
+ *
2265
+ * **Command boundaries are application-defined:** SSH does not identify when an individual shell
2266
+ * command finishes. Use a prompt pattern only when it is reliably known, or append a unique
2267
+ * sentinel to each command and receive until that sentinel is found.
2268
+ *
2269
+ * Send commands with {@link Ssh.channelSendString} using the line ending expected by the remote
2270
+ * shell or device. Unix-like shells normally accept LF; other systems may require CRLF or another
2271
+ * terminator. Multiple commands may be sent sequentially until the shell exits or the channel
2272
+ * closes.
2273
+ *
2274
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2275
+ * {@link Ssh.sendReqShellAsync}.
2276
+ *
2277
+ * @throws Error if the call fails (the message names the reason); the full log is in
2278
+ * {@link Ssh.lastErrorText}.
2279
+ */
2280
+ sendReqShell(channelNum: number): void
2281
+
2282
+ /**
2283
+ * Asynchronous form of {@link Ssh.sendReqShell}: the same call on a native worker thread,
2284
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2285
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2286
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2287
+ *
2288
+ * The promise rejects with an Error if the call fails; the full log is in
2289
+ * {@link Ssh.lastErrorText}.
2290
+ */
2291
+ sendReqShellAsync(channelNum: number): Promise<void>
2292
+
2293
+ /**
2294
+ * Requests delivery of `signalName` to the remote process running on `channelNum`. Send the
2295
+ * request after the exec process, shell, or subsystem has started. Supported signal names are:
2296
+ *
2297
+ * ```
2298
+ * ABRT ALRM FPE HUP ILL INT KILL
2299
+ * PIPE QUIT SEGV TERM USR1 USR2
2300
+ * ```
2301
+ *
2302
+ * These are Unix-style signals and are effective only when supported by the SSH server, remote
2303
+ * operating system, and target process. A `true` return indicates that the SSH request succeeded;
2304
+ * the process may handle, ignore, or otherwise respond to the signal according to remote
2305
+ * behavior.
2306
+ *
2307
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2308
+ * {@link Ssh.sendReqSignalAsync}.
2309
+ *
2310
+ * @throws Error if the call fails (the message names the reason); the full log is in
2311
+ * {@link Ssh.lastErrorText}.
2312
+ */
2313
+ sendReqSignal(channelNum: number, signalName: string): void
2314
+
2315
+ /**
2316
+ * Asynchronous form of {@link Ssh.sendReqSignal}: the same call on a native worker thread,
2317
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2318
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2319
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2320
+ *
2321
+ * The promise rejects with an Error if the call fails; the full log is in
2322
+ * {@link Ssh.lastErrorText}.
2323
+ */
2324
+ sendReqSignalAsync(channelNum: number, signalName: string): Promise<void>
2325
+
2326
+ /**
2327
+ * Requests the predefined subsystem named by `subsystemName` on session channel `channelNum`. A
2328
+ * `true` return means the server accepted the subsystem request; subsequent protocol data is
2329
+ * exchanged with the normal channel send and receive methods.
2330
+ *
2331
+ * If the server rejects the subsystem, this method returns `false` and the channel normally
2332
+ * remains open and reusable for another primary request such as {@link Ssh.sendReqExec}. Once a
2333
+ * subsystem request is accepted, do not send an `exec`, `shell`, or second subsystem request on
2334
+ * that channel.
2335
+ *
2336
+ * For example, the SSH `sftp` subsystem can be started this way, but applications should normally
2337
+ * use the `SFtp` class instead of implementing the SFTP protocol directly over an `Ssh` channel.
2338
+ *
2339
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2340
+ * {@link Ssh.sendReqSubsystemAsync}.
2341
+ *
2342
+ * @throws Error if the call fails (the message names the reason); the full log is in
2343
+ * {@link Ssh.lastErrorText}.
2344
+ */
2345
+ sendReqSubsystem(channelNum: number, subsystemName: string): void
2346
+
2347
+ /**
2348
+ * Asynchronous form of {@link Ssh.sendReqSubsystem}: the same call on a native worker thread,
2349
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2350
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2351
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2352
+ *
2353
+ * The promise rejects with an Error if the call fails; the full log is in
2354
+ * {@link Ssh.lastErrorText}.
2355
+ */
2356
+ sendReqSubsystemAsync(channelNum: number, subsystemName: string): Promise<void>
2357
+
2358
+ /**
2359
+ * Notifies the server that the terminal dimensions changed for the PTY associated with
2360
+ * `channelNum`. `widthInChars` and `heightInRows` specify the character dimensions; `pixWidth`
2361
+ * and `pixHeight` specify the pixel dimensions.
2362
+ *
2363
+ * This request may be sent after the PTY is allocated, either before or after starting the shell
2364
+ * or exec process. The tested OpenSSH servers applied the new character dimensions to an active
2365
+ * shell.
2366
+ *
2367
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2368
+ * {@link Ssh.sendReqWindowChangeAsync}.
2369
+ *
2370
+ * @throws Error if the call fails (the message names the reason); the full log is in
2371
+ * {@link Ssh.lastErrorText}.
2372
+ */
2373
+ sendReqWindowChange(channelNum: number, widthInChars: number, heightInRows: number, pixWidth: number, pixHeight: number): void
2374
+
2375
+ /**
2376
+ * Asynchronous form of {@link Ssh.sendReqWindowChange}: the same call on a native worker thread,
2377
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2378
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2379
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2380
+ *
2381
+ * The promise rejects with an Error if the call fails; the full log is in
2382
+ * {@link Ssh.lastErrorText}.
2383
+ */
2384
+ sendReqWindowChangeAsync(channelNum: number, widthInChars: number, heightInRows: number, pixWidth: number, pixHeight: number): Promise<void>
2385
+
2386
+ /**
2387
+ * Sends an SSH X11-forwarding request on the session channel in `channelNum`. `singleConnection`
2388
+ * controls whether forwarding is limited to a single connection; `authProt` through `screenNum`
2389
+ * provide the X11 authentication protocol, cookie, and screen number.
2390
+ *
2391
+ * This low-level method exposes the SSH connection-protocol request. The application is
2392
+ * responsible for supplying appropriate X11 values and handling forwarded X11 channels.
2393
+ *
2394
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2395
+ * {@link Ssh.sendReqX11ForwardingAsync}.
2396
+ *
2397
+ * @throws Error if the call fails (the message names the reason); the full log is in
2398
+ * {@link Ssh.lastErrorText}.
2399
+ */
2400
+ sendReqX11Forwarding(channelNum: number, singleConnection: boolean, authProt: string, authCookie: string, screenNum: number): void
2401
+
2402
+ /**
2403
+ * Asynchronous form of {@link Ssh.sendReqX11Forwarding}: the same call on a native worker thread,
2404
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2405
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2406
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2407
+ *
2408
+ * The promise rejects with an Error if the call fails; the full log is in
2409
+ * {@link Ssh.lastErrorText}.
2410
+ */
2411
+ sendReqX11ForwardingAsync(channelNum: number, singleConnection: boolean, authProt: string, authCookie: string, screenNum: number): Promise<void>
2412
+
2413
+ /**
2414
+ * Deprecated for practical use. This method should not be used.
2415
+ *
2416
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2417
+ * {@link Ssh.sendReqXonXoffAsync}.
2418
+ *
2419
+ * @throws Error if the call fails (the message names the reason); the full log is in
2420
+ * {@link Ssh.lastErrorText}.
2421
+ */
2422
+ sendReqXonXoff(channelNum: number, clientCanDo: boolean): void
2423
+
2424
+ /**
2425
+ * Asynchronous form of {@link Ssh.sendReqXonXoff}: the same call on a native worker thread,
2426
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2427
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2428
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2429
+ *
2430
+ * The promise rejects with an Error if the call fails; the full log is in
2431
+ * {@link Ssh.lastErrorText}.
2432
+ */
2433
+ sendReqXonXoffAsync(channelNum: number, clientCanDo: boolean): Promise<void>
2434
+
2435
+ /**
2436
+ * Adds or updates one TTY mode to be included in a later {@link Ssh.sendReqPty} request.
2437
+ * `ttyName` is the mode name and `ttyValue` is its integer value. Call this method before
2438
+ * `SendReqPty`, once for each mode to set. For example, `SetTtyMode("ECHO", 0)` requests that
2439
+ * command input not be echoed by the allocated terminal.
2440
+ *
2441
+ * Supported mode names include:
2442
+ *
2443
+ * ```
2444
+ * VINTR VQUIT VERASE VKILL VEOF VEOL VEOL2 VSTART VSTOP
2445
+ * VSUSP VDSUSP VREPRINT VWERASE VLNEXT VFLUSH VSWTCH VSTATUS
2446
+ * VDISCARD IGNPAR PARMRK INPCK ISTRIP INLCR IGNCR ICRNL IUCLC
2447
+ * IXON IXANY IXOFF IMAXBEL ISIG ICANON XCASE ECHO ECHOE ECHOK
2448
+ * ECHONL NOFLSH TOSTOP IEXTEN ECHOCTL ECHOKE PENDIN OPOST OLCUC
2449
+ * ONLCR OCRNL ONOCR ONLRET CS7 CS8 PARENB PARODD
2450
+ * TTY_OP_ISPEED TTY_OP_OSPEED
2451
+ * ```
2452
+ *
2453
+ * Most applications do not need to set TTY modes explicitly. Use {@link Ssh.clearTtyModes} before
2454
+ * a later PTY request when previously configured modes should no longer be included.
2455
+ *
2456
+ * @throws Error if the call fails (the message names the reason); the full log is in
2457
+ * {@link Ssh.lastErrorText}.
2458
+ */
2459
+ setTtyMode(ttyName: string, ttyValue: number): void
2460
+
2461
+ /**
2462
+ * Begins keyboard-interactive authentication for the login in `login`. The returned XML describes
2463
+ * the server’s prompts and whether each response should be echoed.
2464
+ *
2465
+ * ```
2466
+ * <infoRequest numPrompts="N">
2467
+ * <name>name</name>
2468
+ * <instruction>instructions</instruction>
2469
+ * <prompt1 echo="1_or_0">prompt text</prompt1>
2470
+ * ...
2471
+ * </infoRequest>
2472
+ * ```
2473
+ *
2474
+ * If authentication immediately succeeds or fails, the returned XML instead has one of these
2475
+ * forms:
2476
+ *
2477
+ * ```
2478
+ * <success>success message</success>
2479
+ *
2480
+ * <error>error message</error>
2481
+ * ```
2482
+ *
2483
+ * Submit responses with {@link Ssh.continueKeyboardAuth}.
2484
+ *
2485
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2486
+ * {@link Ssh.startKeyboardAuthAsync}.
2487
+ *
2488
+ * @throws Error if the call fails (the message names the reason); the full log is in
2489
+ * {@link Ssh.lastErrorText}.
2490
+ */
2491
+ startKeyboardAuth(login: string): string
2492
+
2493
+ /**
2494
+ * Asynchronous form of {@link Ssh.startKeyboardAuth}: the same call on a native worker thread,
2495
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2496
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2497
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2498
+ *
2499
+ * The promise rejects with an Error if the call fails; the full log is in
2500
+ * {@link Ssh.lastErrorText}.
2501
+ */
2502
+ startKeyboardAuthAsync(login: string): Promise<string>
2503
+
2504
+ /**
2505
+ * Waits for the next SSH channel message on any channel. The `pollTimeoutMs` argument controls
2506
+ * this method:
2507
+ *
2508
+ * - `0`: nonblocking check.
2509
+ *
2510
+ * - `> 0`: wait up to the specified number of milliseconds.
2511
+ *
2512
+ * - `< 0`: wait without a method-level timeout.
2513
+ *
2514
+ * The explicit argument governs the wait; shorter values of {@link Ssh.readTimeoutMs} or {@link
2515
+ * Ssh.idleTimeoutMs} do not shorten it.
2516
+ *
2517
+ * Return valueMeaning
2518
+ *
2519
+ * | `>= 0` | | The channel number associated with the message that was processed. |
2520
+ *
2521
+ * | `-1` | | No channel message arrived before the timeout. |
2522
+ *
2523
+ * | `-2` | | Another error occurred, such as a lost connection. |
2524
+ *
2525
+ * The method processes one pending channel message. Ordinary data is appended to the appropriate
2526
+ * channel buffer, and control messages can update EOF, CLOSE, and exit-status state. It does not
2527
+ * consume bytes already buffered for the application.
2528
+ *
2529
+ * A channel is not returned again merely because unread bytes remain buffered, but it can be
2530
+ * returned again for a later stderr, EOF, exit-status, or CLOSE message.
2531
+ *
2532
+ * Drain available stdout and stderr promptly after a channel number is returned. A later wait or
2533
+ * poll that processes final closure can remove the completed channel record and make its buffered
2534
+ * data and status unavailable.
2535
+ *
2536
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2537
+ * {@link Ssh.waitForChannelMessageAsync}.
2538
+ */
2539
+ waitForChannelMessage(pollTimeoutMs: number): number
2540
+
2541
+ /**
2542
+ * Asynchronous form of {@link Ssh.waitForChannelMessage}: the same call on a native worker
2543
+ * thread,
2544
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2545
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2546
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2547
+ */
2548
+ waitForChannelMessageAsync(pollTimeoutMs: number): Promise<number>
2549
+
2550
+ /**
2551
+ * Executes one noninteractive remote command and returns the stdout collected as text.
2552
+ * Internally, this method opens a session channel, sends an exec request, receives the command
2553
+ * output through EOF, and decodes the stdout using `charset`. {@link Ssh.reqExecCharset} controls
2554
+ * the encoding used to send `command`.
2555
+ *
2556
+ * The final SSH channel `CLOSE` can still be pending when this method returns. The internal
2557
+ * channel may therefore remain temporarily visible in {@link Ssh.numOpenChannels}, often with EOF
2558
+ * already received but CLOSE not yet processed. Simply sleeping does not process pending SSH
2559
+ * messages. A later SSH operation, such as {@link Ssh.waitForChannelMessage} or another
2560
+ * `QuickCommand`, processes the final close and removes the previous channel.
2561
+ *
2562
+ * **Remote exit status is not reflected in the return value:** A command that exits nonzero may
2563
+ * still return its stdout normally. An empty string can mean a successful command produced no
2564
+ * stdout, or that a failed command wrote only to stderr. When {@link Ssh.stderrToStdout} is
2565
+ * `false`, separately received stderr is not included in the returned text. Exit status may or
2566
+ * may not have arrived at the instant this method returns.
2567
+ *
2568
+ * Use {@link Ssh.quickCmdSend}/{@link Ssh.quickCmdCheck} or the explicit channel workflow when
2569
+ * the application must reliably inspect stderr, provide stdin, or obtain the remote exit status.
2570
+ * Do not depend on the temporary internal channel created by this convenience method.
2571
+ *
2572
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2573
+ * {@link Ssh.quickCommandAsync}.
2574
+ *
2575
+ * @throws Error if the call fails (the message names the reason); the full log is in
2576
+ * {@link Ssh.lastErrorText}.
2577
+ */
2578
+ quickCommand(command: string, charset: string): string
2579
+
2580
+ /**
2581
+ * Asynchronous form of {@link Ssh.quickCommand}: the same call on a native worker thread,
2582
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2583
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2584
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2585
+ *
2586
+ * The promise rejects with an Error if the call fails; the full log is in
2587
+ * {@link Ssh.lastErrorText}.
2588
+ */
2589
+ quickCommandAsync(command: string, charset: string): Promise<string>
2590
+
2591
+ /**
2592
+ * Starts a remote shell using the simplified sequence `OpenSessionChannel` → `SendReqPty` →
2593
+ * `SendReqShell`. The default PTY size is 80 columns by 24 rows. Returns the open shell channel
2594
+ * number on success, or `-1` on failure.
2595
+ *
2596
+ * The method returns after the shell request is accepted; it does not wait for or consume the
2597
+ * initial login text or shell prompt. Use the returned channel with the normal send and receive
2598
+ * methods, then allow the shell to close and call {@link Ssh.channelRelease} after retrieving the
2599
+ * required output and exit information.
2600
+ *
2601
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2602
+ * {@link Ssh.quickShellAsync}.
2603
+ */
2604
+ quickShell(): number
2605
+
2606
+ /**
2607
+ * Asynchronous form of {@link Ssh.quickShell}: the same call on a native worker thread,
2608
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2609
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2610
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2611
+ */
2612
+ quickShellAsync(): Promise<number>
2613
+
2614
+ /**
2615
+ * Starts a remote command and immediately returns its channel number, allowing multiple commands
2616
+ * to run concurrently on the same authenticated SSH connection. Internally, this method opens a
2617
+ * session channel and sends an exec request.
2618
+ *
2619
+ * `command` is encoded according to {@link Ssh.reqExecCharset}. The returned channel is visible
2620
+ * through {@link Ssh.numOpenChannels}, {@link Ssh.getChannelNumber}, and {@link
2621
+ * Ssh.getChannelType}, and remains owned by the application. Use {@link Ssh.quickCmdCheck} to
2622
+ * detect completion, retrieve output and exit status with the normal channel methods, and then
2623
+ * call {@link Ssh.channelRelease}. Returns `-1` on failure.
2624
+ *
2625
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2626
+ * {@link Ssh.quickCmdSendAsync}.
2627
+ */
2628
+ quickCmdSend(command: string): number
2629
+
2630
+ /**
2631
+ * Asynchronous form of {@link Ssh.quickCmdSend}: the same call on a native worker thread,
2632
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2633
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2634
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2635
+ */
2636
+ quickCmdSendAsync(command: string): Promise<number>
2637
+
2638
+ /**
2639
+ * Waits up to `pollTimeoutMs` milliseconds for any command previously started by {@link
2640
+ * Ssh.quickCmdSend} to complete. A value of `0` performs a nonblocking check. Manually opened
2641
+ * exec channels are not returned by this method.
2642
+ *
2643
+ * Return valueMeaning
2644
+ *
2645
+ * | `>= 0` | | The channel number of a completed quick command. Each completed channel is
2646
+ * returned only once. |
2647
+ *
2648
+ * | `-1` | | Pending quick commands exist, but none completed before the timeout. |
2649
+ *
2650
+ * | `-2` | | No quick commands remain to be checked, or an error occurred such as loss of the SSH
2651
+ * connection. Examine `LastErrorText` and the connection state when the distinction matters. |
2652
+ *
2653
+ * After a channel number is returned, retrieve its stdout, stderr, and exit status with the
2654
+ * normal channel methods. The channel is not returned again on the next check, even before {@link
2655
+ * Ssh.channelRelease} is called.
2656
+ *
2657
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2658
+ * {@link Ssh.quickCmdCheckAsync}.
2659
+ */
2660
+ quickCmdCheck(pollTimeoutMs: number): number
2661
+
2662
+ /**
2663
+ * Asynchronous form of {@link Ssh.quickCmdCheck}: the same call on a native worker thread,
2664
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2665
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2666
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2667
+ */
2668
+ quickCmdCheckAsync(pollTimeoutMs: number): Promise<number>
2669
+
2670
+ /**
2671
+ * Performs the same authentication as {@link Ssh.authenticatePw}, but receives the login and
2672
+ * password in `SecureString` objects.
2673
+ *
2674
+ * The connection-state, retry, timeout, and {@link Ssh.authFailReason} behavior is the same as
2675
+ * for `AuthenticatePw`.
2676
+ *
2677
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2678
+ * {@link Ssh.authenticateSecPwAsync}.
2679
+ *
2680
+ * @throws Error if the call fails (the message names the reason); the full log is in
2681
+ * {@link Ssh.lastErrorText}.
2682
+ */
2683
+ authenticateSecPw(login: SecureString, password: SecureString): void
2684
+
2685
+ /**
2686
+ * Asynchronous form of {@link Ssh.authenticateSecPw}: the same call on a native worker thread,
2687
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2688
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2689
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2690
+ *
2691
+ * The promise rejects with an Error if the call fails; the full log is in
2692
+ * {@link Ssh.lastErrorText}.
2693
+ */
2694
+ authenticateSecPwAsync(login: SecureString, password: SecureString): Promise<void>
2695
+
2696
+ /**
2697
+ * Performs the same combined password/private-key authentication as {@link Ssh.authenticatePwPk},
2698
+ * but receives the username and password in `SecureString` objects.
2699
+ *
2700
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2701
+ * {@link Ssh.authenticateSecPwPkAsync}.
2702
+ *
2703
+ * @throws Error if the call fails (the message names the reason); the full log is in
2704
+ * {@link Ssh.lastErrorText}.
2705
+ */
2706
+ authenticateSecPwPk(username: SecureString, password: SecureString, privateKey: SshKey): void
2707
+
2708
+ /**
2709
+ * Asynchronous form of {@link Ssh.authenticateSecPwPk}: the same call on a native worker thread,
2710
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2711
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2712
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2713
+ *
2714
+ * The promise rejects with an Error if the call fails; the full log is in
2715
+ * {@link Ssh.lastErrorText}.
2716
+ */
2717
+ authenticateSecPwPkAsync(username: SecureString, password: SecureString, privateKey: SshKey): Promise<void>
2718
+
2719
+ /**
2720
+ * Queries a connected, unauthenticated SSH server for its advertised user-authentication methods.
2721
+ * The result is a lowercase, comma-separated list without spaces, such as
2722
+ * `publickey,password,keyboard-interactive`.
2723
+ *
2724
+ * **Connection side effect:** Call this method after {@link Ssh.connect} and before
2725
+ * authenticating. It intentionally disconnects after the query, so call `Connect` again before
2726
+ * authenticating. Calling it after successful authentication fails and also leaves the object
2727
+ * disconnected.
2728
+ *
2729
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2730
+ * {@link Ssh.getAuthMethodsAsync}.
2731
+ *
2732
+ * @throws Error if the call fails (the message names the reason); the full log is in
2733
+ * {@link Ssh.lastErrorText}.
2734
+ */
2735
+ getAuthMethods(): string
2736
+
2737
+ /**
2738
+ * Asynchronous form of {@link Ssh.getAuthMethods}: the same call on a native worker thread,
2739
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2740
+ * except {@link Ssh.abort} (which cancels it) and the {@link Ssh.onPercentDone} /
2741
+ * {@link Ssh.onProgressInfo} callbacks, which report progress while it runs.
2742
+ *
2743
+ * The promise rejects with an Error if the call fails; the full log is in
2744
+ * {@link Ssh.lastErrorText}.
2745
+ */
2746
+ getAuthMethodsAsync(): Promise<string>
2747
+
2748
+ /**
2749
+ * Returns the active connection’s server host-key fingerprint. `hashAlg` specifies the hash
2750
+ * algorithm. Hash-algorithm names are case-insensitive. Common choices include `SHA256`,
2751
+ * `SHA384`, `SHA512`, `SHA1`, `MD5`, and the supported SHA-3 algorithms.
2752
+ *
2753
+ * The digest is Base64 encoded without trailing padding characters. `includeKeyType` controls
2754
+ * whether the host-key type is included, and `includeHashName` controls whether the canonical
2755
+ * hash name is included.
2756
+ *
2757
+ * `includeKeyType``includeHashName`Example format
2758
+ *
2759
+ * | `true` | | `true` | | `ssh-ed25519 SHA256:S1GreiGjlHBf1QlPPaHs2qxor4nDYl9bhFcPRN4FwF0` |
2760
+ *
2761
+ * | `true` | | `false` | | `ssh-ed25519 S1GreiGjlHBf1QlPPaHs2qxor4nDYl9bhFcPRN4FwF0` |
2762
+ *
2763
+ * | `false` | | `true` | | `SHA256:S1GreiGjlHBf1QlPPaHs2qxor4nDYl9bhFcPRN4FwF0` |
2764
+ *
2765
+ * | `false` | | `false` | | `S1GreiGjlHBf1QlPPaHs2qxor4nDYl9bhFcPRN4FwF0` |
2766
+ *
2767
+ * An active SSH connection is required. The method fails when called before connecting or after
2768
+ * disconnecting. For `MD5`, this method still returns an unpadded Base64 digest; it does not
2769
+ * return the colon-separated hexadecimal form used by {@link Ssh.hostKeyFingerprint}.
2770
+ *
2771
+ * **Important:** If `hashAlg` is not recognized, Chilkat falls back to `SHA1`. Applications
2772
+ * should therefore pass a known algorithm name explicitly. Compare the returned fingerprint with
2773
+ * a value obtained from a trusted source before sending credentials.
2774
+ *
2775
+ * @throws Error if the call fails (the message names the reason); the full log is in
2776
+ * {@link Ssh.lastErrorText}.
2777
+ */
2778
+ getHostKeyFP(hashAlg: string, includeKeyType: boolean, includeHashName: boolean): string
2779
+
2780
+ /**
2781
+ * Applies an explicit allow-list of SSH negotiation algorithms supplied in `json`. Use this
2782
+ * method before {@link Ssh.connect} when security policy or server compatibility requires precise
2783
+ * control over accepted host-key, key-exchange, cipher, MAC, or compression algorithms.
2784
+ *
2785
+ * @throws Error if the call fails (the message names the reason); the full log is in
2786
+ * {@link Ssh.lastErrorText}.
2787
+ */
2788
+ setAllowedAlgorithms(json: JsonObject): void
2789
+
2790
+ /**
2791
+ * Copies structured diagnostic information from the most recently called method into the
2792
+ * `JsonObject` in `json`. Many methods do not produce additional JSON details; in those cases the
2793
+ * object may contain little or no information.
2794
+ *
2795
+ * Authentication passwords and private-key passphrases are not included in this diagnostic JSON.
2796
+ */
2797
+ getLastJsonData(json: JsonObject): void
2798
+
2799
+ /**
2800
+ * Decodes and appends to `sb` all text currently accumulated in the normal receive buffer for
2801
+ * `channelNum`, using `charset`. The receive buffer is cleared after the text is returned.
2802
+ *
2803
+ * For a valid retained channel with no buffered data, an empty string is returned successfully.
2804
+ * For an invalid or no-longer-retained channel, the string-returning API reports failure. After
2805
+ * channel completion, retrieve text immediately before unrelated SSH operations can discard the
2806
+ * completed channel record.
2807
+ *
2808
+ * When {@link Ssh.stripColorCodes} is `true`, ANSI SGR color/style sequences are removed from the
2809
+ * returned normal text. Other terminal-control sequences can remain.
2810
+ *
2811
+ * See [Supported Charsets](https://www.chilkatsoft.com/charsets_supported_by_chilkat.asp).
2812
+ *
2813
+ * @throws Error if the call fails (the message names the reason); the full log is in
2814
+ * {@link Ssh.lastErrorText}.
2815
+ */
2816
+ getReceivedSb(channelNum: number, charset: string, sb: StringBuilder): void
2817
+
2818
+ // ---- Events (ReactNativeGen_DESIGN.md §6) ----
2819
+
2820
+ /**
2821
+ * Called with the percent completed (0..100) while a long-running method runs, when Chilkat
2822
+ * can measure progress. Runs on the JavaScript thread, so it is only useful with the
2823
+ * `...Async` methods (during a synchronous call the thread is busy and the events arrive
2824
+ * after it returns). Assign `undefined` to remove.
2825
+ */
2826
+ onPercentDone?: (pctDone: number) => void
2827
+
2828
+ /**
2829
+ * Called with a name/value pair of progress information while a long-running method runs
2830
+ * (what is reported depends on the class and method). Runs on the JavaScript thread; see
2831
+ * {@link Ssh.onPercentDone}. Assign `undefined` to remove.
2832
+ */
2833
+ onProgressInfo?: (name: string, value: string) => void
2834
+
2835
+ /**
2836
+ * Requests that the pending `...Async` call on this object stop at its next progress check.
2837
+ * The promise then rejects with Chilkat's abort error. Chilkat checks at least every
2838
+ * `heartbeatMs` milliseconds on the classes that have that property, so set it (e.g. 250)
2839
+ * for a responsive cancel. Harmless when nothing is pending.
2840
+ */
2841
+ abort(): void
2842
+ }