@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,3943 @@
1
+ // Generated by ReactNativeNs.RnGenerator -- do not edit.
2
+ import type { HybridObject } from 'react-native-nitro-modules'
3
+ import type { BinData } from './BinData.nitro'
4
+ import type { Cert } from './Cert.nitro'
5
+ import type { CkDateTime } from './CkDateTime.nitro'
6
+ import type { JsonObject } from './JsonObject.nitro'
7
+ import type { SecureString } from './SecureString.nitro'
8
+ import type { Stream } from './Stream.nitro'
9
+ import type { StringBuilder } from './StringBuilder.nitro'
10
+ import type { StringTable } from './StringTable.nitro'
11
+
12
+ /**
13
+ * Connect, secure, transfer, synchronize, and manage files on FTP servers.
14
+ *
15
+ * `Ftp2` is a comprehensive FTP and FTPS client class for
16
+ * applications that need reliable file transfer and remote file management. It
17
+ * supports connection setup, explicit and implicit TLS, passive and active data
18
+ * connections, uploads, downloads, directory listings, recursive operations,
19
+ * synchronization, proxy traversal, credential protection, and detailed
20
+ * diagnostics.
21
+ *
22
+ * **FTP and FTPS connections**
23
+ *
24
+ * Connect using plain FTP, explicit TLS, or implicit TLS, with control over
25
+ * ports, timeouts, passive mode, and IPv4/IPv6 behavior.
26
+ *
27
+ * **Upload and download files**
28
+ *
29
+ * Transfer files, text, binary data, streams, and in-memory content, with
30
+ * support for resume, append, and progress monitoring.
31
+ *
32
+ * **Remote file management**
33
+ *
34
+ * List directories, create and remove folders, rename files, delete files,
35
+ * inspect sizes and timestamps, and manage remote paths.
36
+ *
37
+ * **Recursive and sync operations**
38
+ *
39
+ * Upload or download directory trees, mirror folders, and synchronize local
40
+ * and remote content.
41
+ *
42
+ * **Security and credentials**
43
+ *
44
+ * Use TLS options, client certificates, secure password handling, and
45
+ * secret-backed credential references where appropriate.
46
+ *
47
+ * **Diagnostics and TLS details**
48
+ *
49
+ * Use `LastErrorText`, session logs, directory listings, and
50
+ * TLS negotiation details to troubleshoot server behavior.
51
+ *
52
+ * **Protocol note:**
53
+ * `Ftp2` implements FTP and FTP over TLS (FTPS). It does not implement
54
+ * SSH File Transfer Protocol. Use `SFtp` when the server requires SFTP over SSH.
55
+ *
56
+ * **Stateful session:**
57
+ * One `Ftp2` object represents one FTP session with a current remote
58
+ * directory, transfer type, detected server capabilities, and a cached directory
59
+ * listing. FTP commands and replies use the persistent control connection, while
60
+ * each listing, upload, or download uses a separate data connection.
61
+ *
62
+ * **Paths and encodings:**
63
+ * Remote paths are interpreted by the FTP server and are normally relative to the
64
+ * current remote directory unless the server recognizes an absolute path. Remote
65
+ * command text uses `CommandCharset`, directory-listing bytes use
66
+ * `DirListingCharset`, and text-transfer methods use their own content
67
+ * charset argument.
68
+ *
69
+ * **Partial operations:**
70
+ * FTP operations are not transactional. A transfer, recursive operation,
71
+ * deletion, or synchronization can complete some work before a later step fails.
72
+ * Chilkat does not generally roll back completed filesystem or server changes and
73
+ * does not automatically retry or resume a failed transfer unless the application
74
+ * explicitly uses the resume features.
75
+ *
76
+ * **Server variability:**
77
+ * FTP extensions and server behavior vary. Features such as `MLSD`,
78
+ * `EPSV`, `MODE Z`, checksum commands, timestamp-setting
79
+ * commands, wildcard matching, and rename-overwrite behavior depend on the server.
80
+ * Inspect `LastReply`, LastErrorText, and the session log when behavior
81
+ * differs between servers.
82
+ *
83
+ * **FTPS certificate verification:**
84
+ * `RequireSslCertVerify` defaults to `false`. Production FTPS clients
85
+ * should normally enable certificate-chain verification and use the expected
86
+ * server hostname. Certificate pinning and certificate requirements are additional
87
+ * checks and do not replace normal trust and hostname validation.
88
+ *
89
+ * **Tip:**
90
+ * For FTPS troubleshooting, inspect the detailed diagnostic output and, when
91
+ * available, the last JSON data describing the TLS negotiation, certificate
92
+ * validation, protocol version, and related connection details.
93
+ *
94
+ * For an extended overview, see
95
+ * [Ftp2 Class Overview](https://www.chilkatsoft.com/ftp2_class_overview.asp).
96
+ *
97
+ * Each `Ftp2` instance owns a native Chilkat object. It is released when the JavaScript object is
98
+ * garbage collected, or immediately by `dispose()`; any use after `dispose()` throws.
99
+ * Create one with `new Ftp2()`.
100
+ *
101
+ * Methods that can take a while (network, files, compression, key generation) also have an
102
+ * `...Async` form returning a `Promise`; it runs on a native worker thread so the UI keeps
103
+ * rendering. While such a call is pending, every other call on this object throws, except
104
+ * {@link Ftp2.abort} and assigning {@link Ftp2.onPercentDone} / {@link Ftp2.onProgressInfo}.
105
+ */
106
+ export interface Ftp2 extends HybridObject<{ ios: 'c++', android: 'c++' }> {
107
+ // ---- Properties ----
108
+
109
+ /**
110
+ * Provides HTML-formatted information about the last called method or property. If a method call
111
+ * fails or behaves unexpectedly, check this property for details. Note that information is
112
+ * available regardless of the method call's success.
113
+ *
114
+ * This property is read-only.
115
+ */
116
+ readonly lastErrorHtml: string
117
+
118
+ /**
119
+ * Provides plain text information about the last called method or property. If a method call
120
+ * fails or behaves unexpectedly, check this property for details. Note that information is
121
+ * available regardless of the method call's success.
122
+ *
123
+ * This property is read-only.
124
+ */
125
+ readonly lastErrorText: string
126
+
127
+ /**
128
+ * Provides XML-formatted information about the last called method or property. If a method call
129
+ * fails or behaves unexpectedly, check this property for details. Note that information is
130
+ * available regardless of the method call's success.
131
+ *
132
+ * This property is read-only.
133
+ */
134
+ readonly lastErrorXml: string
135
+
136
+ /**
137
+ * Version of the component/library, such as "10.1.0"
138
+ *
139
+ * This property is read-only.
140
+ */
141
+ readonly version: string
142
+
143
+ /**
144
+ * If set to a file path, this property logs the LastErrorText of each Chilkat method or property
145
+ * call to the specified file. This logging helps identify the context and history of Chilkat
146
+ * calls leading up to any crash or hang, aiding in debugging.
147
+ *
148
+ * Enabling the VerboseLogging property provides more detailed information.
149
+ *
150
+ * This property is mainly used for debugging rare instances where a Chilkat method call causes a
151
+ * hang or crash, which should generally not happen.
152
+ *
153
+ * Possible causes of hangs include:
154
+ *
155
+ * - A timeout property set to 0, indicating an infinite timeout.
156
+ *
157
+ * - A hang occurring within an event callback in the application code.
158
+ *
159
+ * - An internal bug in the Chilkat code causing the hang.
160
+ */
161
+ debugLogFilePath: string
162
+
163
+ /**
164
+ * If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may
165
+ * contain more verbose information. The default value is `false`. Verbose logging should only be
166
+ * used for debugging. The potentially large quantity of logged information may adversely affect
167
+ * peformance.
168
+ */
169
+ verboseLogging: boolean
170
+
171
+ /**
172
+ * Indicates the success or failure of the most recent method call: `true` means success, `false`
173
+ * means failure. This property remains unchanged by property setters or getters. This method is
174
+ * present to address challenges in checking for null or Nothing returns in certain programming
175
+ * languages. Note: This property does not apply to methods that return integer values or to
176
+ * boolean-returning methods where the boolean does not indicate success or failure.
177
+ */
178
+ lastMethodSuccess: boolean
179
+
180
+ /**
181
+ * Set to `true` to request cancellation of the operation currently running on this object.
182
+ * Long-running network and file-transfer methods periodically check this property; methods that
183
+ * complete quickly may finish before the request is observed.
184
+ *
185
+ * A synchronous call can be cancelled from another thread by setting this property on the same
186
+ * object. The property is reset to `false` after cancellation is processed, and a stale request
187
+ * is cleared when a later method begins.
188
+ *
189
+ * **Cancellation behavior:** Treat this as a cancellation request, not a guarantee of immediate
190
+ * termination. Use the method's normal return value and diagnostic properties to determine the
191
+ * outcome.
192
+ */
193
+ abortCurrent: boolean
194
+
195
+ /**
196
+ * **Very rarely needed today:** Almost all modern FTP servers rely exclusively on the `USER` and
197
+ * `PASS` commands for authentication and access control.
198
+ *
199
+ * The `ACCT` command is a legacy feature from early computing systems that sometimes required a
200
+ * separate account code for billing or resource allocation. Today, those details are usually
201
+ * associated directly with the user's server-side profile, making `ACCT` obsolete for most
202
+ * applications. Leave this property empty unless the server administrator or login instructions
203
+ * explicitly require an FTP account value.
204
+ *
205
+ * Specifies the FTP account string sent with the `ACCT` command when a server requires an account
206
+ * in addition to the username and password.
207
+ */
208
+ account: string
209
+
210
+ /**
211
+ * Specifies the last local TCP port that may be used for active-mode data connections. The
212
+ * default is `0`. Valid nonzero values are `1` through `65535`.
213
+ *
214
+ * The range beginning with {@link Ftp2.activePortRangeStart} is inclusive. If
215
+ * `ActivePortRangeStart` is `0`, this property is ignored and the operating system chooses an
216
+ * ephemeral listening port. If this value is `0` or is less than `ActivePortRangeStart`, Chilkat
217
+ * behaves as though both endpoints equal `ActivePortRangeStart`.
218
+ *
219
+ * Unavailable ports are skipped. Chilkat tries each port in the effective range until binding
220
+ * succeeds, and fails only after all ports have been tried. The range applies to both `PORT` and
221
+ * `EPRT` and may be changed while the control connection is already established.
222
+ *
223
+ * **Active mode setting:** This property is used only when {@link Ftp2.passive} is `false`.
224
+ * Passive mode is typically preferred because it avoids the server-initiated connection back to
225
+ * the client that many client-side firewalls block. When active mode is required, any fixed port
226
+ * range must be allowed by the client-side firewall and reachable through intervening NAT.
227
+ */
228
+ activePortRangeEnd: number
229
+
230
+ /**
231
+ * Specifies the first local TCP port that may be used for active-mode data connections. The
232
+ * default is `0`. Valid nonzero values are `1` through `65535`.
233
+ *
234
+ * When this property is `0`, {@link Ftp2.activePortRangeEnd} is ignored and Chilkat binds the
235
+ * listening socket to port `0`, allowing the operating system to choose an available ephemeral
236
+ * port. When this property is nonzero, the effective range is inclusive. If the ending value is
237
+ * `0` or is less than the starting value, Chilkat tries only the starting port.
238
+ *
239
+ * For each active-mode data connection, Chilkat tries the ports in the effective range in
240
+ * ascending order, skipping any port for which the listening socket cannot be bound. The
241
+ * operation fails only after every port in the range has been tried.
242
+ *
243
+ * **Scope:** The range applies to both `PORT` and `EPRT` operation and may be changed after the
244
+ * FTP control connection has been established.
245
+ *
246
+ * **Active mode setting:** This property is used only when {@link Ftp2.passive} is `false`.
247
+ * Passive mode is typically preferred because the client initiates both the control and data
248
+ * connections, making it much friendlier to client-side firewalls and NAT.
249
+ */
250
+ activePortRangeStart: number
251
+
252
+ /**
253
+ * **Rarely needed:** The FTP `ALLO` command pre-allocates disk space on the server before an
254
+ * upload. It is generally needed only by certain legacy systems, such as older mainframes, that
255
+ * require the exact file size in advance to reserve storage. Most modern FTP servers allocate
256
+ * space dynamically and either ignore `ALLO` or do not require it. Leave this property at its
257
+ * default value of `0` unless the server explicitly requires pre-allocation.
258
+ *
259
+ * Specifies the size, in bytes, to send in an `ALLO` command before the next applicable upload.
260
+ * For example, a value of `20` sends `ALLO 20`. The default value of `0` disables the command.
261
+ *
262
+ * This is a one-shot setting. It is consumed by the next applicable upload and automatically
263
+ * reset to `0`. It applies to normal, in-memory, text, and append uploads. A successful FTP reply
264
+ * indicating that allocation is unnecessary, such as reply code `202`, does not prevent the
265
+ * upload from continuing.
266
+ */
267
+ allocateSize: number
268
+
269
+ /**
270
+ * Controls whether machine-readable directory listings are requested with `MLSD` when the server
271
+ * advertises support. The default is `true`.
272
+ *
273
+ * When this property is `true` and `MLSD` is advertised, Chilkat uses `MLSD`. Otherwise, a legacy
274
+ * listing is used: `NLST` when {@link Ftp2.preferNlst} is `true`, or `LIST` when it is `false`.
275
+ *
276
+ * `MLSD` provides standardized facts such as type, size, and modification time and is generally
277
+ * more reliable than parsing server-specific `LIST` output. Facts not supplied by the server
278
+ * remain unavailable. When a `perm` fact is present, {@link Ftp2.getPermissions} returns it
279
+ * rather than a UNIX-style permission string.
280
+ *
281
+ * **Recommended setting:** Keep this property enabled unless a particular server has a broken
282
+ * MLSD implementation. Disabling it can reduce the accuracy or availability of timestamps, sizes,
283
+ * and other listing information.
284
+ */
285
+ allowMlsd: boolean
286
+
287
+ /**
288
+ * Returns the number of bytes received by the current or most recently completed FTP download as
289
+ * a 32-bit unsigned integer. The value is updated while the transfer is in progress and may be
290
+ * read from another thread to display progress. A subsequent upload does not clear the retained
291
+ * download count.
292
+ *
293
+ * This property is read-only.
294
+ */
295
+ readonly curBytesReceived: number
296
+
297
+ /**
298
+ * Returns the number of bytes received by the current or most recently completed FTP download as
299
+ * a 64-bit integer. The value is updated while the transfer is in progress and may be read from
300
+ * another thread to display progress. A subsequent upload does not clear the retained download
301
+ * count.
302
+ *
303
+ * This property is read-only.
304
+ *
305
+ * A 64-bit integer in Chilkat; JavaScript numbers are exact up to 2^53.
306
+ */
307
+ readonly curBytesReceived64: number
308
+
309
+ /**
310
+ * Returns the number of bytes received by the current or most recently completed FTP download as
311
+ * a decimal string. The value is updated while the transfer is in progress and may be read from
312
+ * another thread to display progress. A subsequent upload does not clear the retained download
313
+ * count.
314
+ *
315
+ * This property is read-only.
316
+ */
317
+ readonly curBytesReceivedStr: string
318
+
319
+ /**
320
+ * Returns the number of bytes sent by the current or most recently completed FTP upload as a
321
+ * 32-bit unsigned integer. The value is updated while the transfer is in progress and may be read
322
+ * from another thread to display progress. A subsequent download does not clear the retained
323
+ * upload count.
324
+ *
325
+ * This property is read-only.
326
+ */
327
+ readonly curBytesSent: number
328
+
329
+ /**
330
+ * Returns the number of bytes sent by the current or most recently completed FTP upload as a
331
+ * 64-bit integer. The value is updated while the transfer is in progress and may be read from
332
+ * another thread to display progress. A subsequent download does not clear the retained upload
333
+ * count.
334
+ *
335
+ * This property is read-only.
336
+ *
337
+ * A 64-bit integer in Chilkat; JavaScript numbers are exact up to 2^53.
338
+ */
339
+ readonly curBytesSent64: number
340
+
341
+ /**
342
+ * Returns the number of bytes sent by the current or most recently completed FTP upload as a
343
+ * decimal string. The value is updated while the transfer is in progress and may be read from
344
+ * another thread to display progress. A subsequent download does not clear the retained upload
345
+ * count.
346
+ *
347
+ * This property is read-only.
348
+ */
349
+ readonly curBytesSentStr: string
350
+
351
+ /**
352
+ * **Legacy and very uncommon:** `AUTH SSL` originated in early FTP security drafts from the era
353
+ * when SSL was the standard encryption protocol. For modern FTP servers, use {@link Ftp2.authTls}
354
+ * instead. Most security-conscious servers require `AUTH TLS` and may reject `AUTH SSL` to
355
+ * enforce current security policies and prevent protocol downgrades. This property is normally
356
+ * needed only for a decades-old legacy server that was never updated to support `AUTH TLS`.
357
+ *
358
+ * Set to `true` to use explicit FTP over TLS by sending `AUTH SSL` on the FTP control channel.
359
+ * The client first establishes a plain FTP control connection, receives the server greeting, and
360
+ * then upgrades that connection to TLS.
361
+ *
362
+ * The TLS upgrade is completed before `USER` and `PASS` are sent. {@link Ftp2.connectOnly}
363
+ * performs the explicit TLS upgrade but does not log in. During {@link Ftp2.connect}, Chilkat
364
+ * sends `PBSZ` and `PROT` as required by {@link Ftp2.dataProtection}. If the server responds with
365
+ * `530 Please login with USER and PASS`, Chilkat logs in and automatically retries those
366
+ * commands.
367
+ *
368
+ * If the server accepts the `AUTH` command but rejects a required `PBSZ` or `PROT` command, the
369
+ * connection attempt fails. A failed connection attempt does not leave the underlying plain FTP
370
+ * connection open.
371
+ *
372
+ * `AUTH SSL` is the alternative explicit-TLS command used by this property. If {@link Ftp2.ssl}
373
+ * is `true`, implicit TLS takes priority. If both this property and {@link Ftp2.authTls} are
374
+ * `true` while `Ssl` is `false`, `AuthTls` takes priority and Chilkat sends `AUTH TLS`.
375
+ */
376
+ authSsl: boolean
377
+
378
+ /**
379
+ * Set to `true` to use explicit FTP over TLS by sending `AUTH TLS` on the FTP control channel.
380
+ * The client first establishes a plain FTP control connection, receives the server greeting, and
381
+ * then upgrades that connection to TLS. Port `21` is conventionally used.
382
+ *
383
+ * The TLS upgrade is completed before `USER` and `PASS` are sent. {@link Ftp2.connectOnly}
384
+ * performs the explicit TLS upgrade but does not log in. During {@link Ftp2.connect}, Chilkat
385
+ * sends `PBSZ` and `PROT` as required by {@link Ftp2.dataProtection}. If the server responds with
386
+ * `530 Please login with USER and PASS`, Chilkat logs in and automatically retries those
387
+ * commands.
388
+ *
389
+ * If the server accepts the `AUTH` command but rejects a required `PBSZ` or `PROT` command, the
390
+ * connection attempt fails. A failed connection attempt does not leave the underlying plain FTP
391
+ * connection open.
392
+ *
393
+ * If {@link Ftp2.ssl} is `true`, implicit TLS takes priority and this property is ignored. If
394
+ * both `AuthTls` and {@link Ftp2.authSsl} are `true` while `Ssl` is `false`, `AuthTls` takes
395
+ * priority.
396
+ *
397
+ * **AuthTls versus AuthSsl:** Both properties select explicit FTPS. Their only difference is the
398
+ * command sent to initiate TLS: `AUTH TLS` for this property and `AUTH SSL` for `AuthSsl`.
399
+ */
400
+ authTls: boolean
401
+
402
+ /**
403
+ * **Rarely changed:** Leave this property at its default value of `true` for nearly all modern
404
+ * FTP servers. The `FEAT` command was standardized in RFC 2389 in 1998 and is broadly supported
405
+ * by mainstream FTP software, including FileZilla Server, vsftpd, ProFTPD, and IIS. Set it to
406
+ * `false` only for a legacy or nonconforming server that mishandles `FEAT`.
407
+ *
408
+ * Controls whether a `FEAT` command is sent automatically after login. The default is `true`. The
409
+ * response is processed to detect capabilities such as `MLSD`, `UTF8`, `EPSV`, `MODE Z`, and
410
+ * server-specific extensions.
411
+ *
412
+ * When {@link Ftp2.autoSyst} is also `true`, automatic `SYST` is sent first. If `UTF8` is
413
+ * advertised and {@link Ftp2.autoOptsUtf8} is `true`, capability processing is followed by `OPTS
414
+ * UTF8 ON`.
415
+ *
416
+ * The same capability processing can be performed later by calling {@link Ftp2.feat} explicitly.
417
+ */
418
+ autoFeat: boolean
419
+
420
+ /**
421
+ * Controls automatic adjustment of {@link Ftp2.ssl}, {@link Ftp2.authSsl}, and {@link
422
+ * Ftp2.authTls} based solely on {@link Ftp2.port}. The default is `true`. The only recognized
423
+ * ports are `21` and `990`.
424
+ *
425
+ * PortAutomatic adjustment
426
+ *
427
+ * | `21` | | Sets {@link Ftp2.ssl} to `false`. {@link Ftp2.authTls} and {@link Ftp2.authSsl}
428
+ * continue to determine whether explicit TLS is requested. |
429
+ *
430
+ * | `990` | | Sets {@link Ftp2.ssl} to `true` and sets {@link Ftp2.authTls} and {@link
431
+ * Ftp2.authSsl} to `false`. |
432
+ *
433
+ * | Any other port | | Makes no changes because the intended plain, explicit-TLS, or implicit-TLS
434
+ * mode cannot be inferred from a custom port number. |
435
+ *
436
+ * **Scope:** AutoFix does not probe the server or resolve arbitrary conflicting settings. It only
437
+ * applies the conventional meaning of ports `21` and `990`.
438
+ */
439
+ autoFix: boolean
440
+
441
+ /**
442
+ * Controls whether Chilkat sends a `SIZE` command before a download so percentage-based progress
443
+ * can be calculated. The default is `false`. Each size query adds a control-channel round trip.
444
+ *
445
+ * A nonzero one-shot value in {@link Ftp2.progressMonSize} or {@link Ftp2.progressMonSize64}
446
+ * supplies the expected size directly and avoids this additional query. Even when this property
447
+ * is `false`, percentage progress may be available if the server includes a usable size in its
448
+ * preliminary transfer reply.
449
+ */
450
+ autoGetSizeForProgress: boolean
451
+
452
+ /**
453
+ * Controls whether `OPTS UTF8 ON` is sent automatically when a processed `FEAT` response
454
+ * advertises `UTF8`. The default is `true`. When UTF-8 is advertised, Chilkat sets {@link
455
+ * Ftp2.commandCharset} and {@link Ftp2.dirListingCharset} to `utf-8`, overwriting values
456
+ * previously assigned by the application.
457
+ *
458
+ * If `UTF8` is not advertised, the existing charset property values are left unchanged. This
459
+ * behavior applies both during automatic capability discovery and when {@link Ftp2.feat} is
460
+ * called explicitly.
461
+ *
462
+ * Set to `false` for a server that advertises UTF-8 but rejects the option or uses a different
463
+ * encoding in practice.
464
+ */
465
+ autoOptsUtf8: boolean
466
+
467
+ /**
468
+ * **Recommended setting:** Applications should set this property to `true`. The default is
469
+ * `false` in current versions, but will change to `true` in Chilkat v12.0.0.
470
+ *
471
+ * `EPSV` is preferred on modern networks because it supports both IPv4 and IPv6, whereas `PASV`
472
+ * cannot represent an IPv6 address. It is also more reliable through NAT and firewalls because
473
+ * the `EPSV` reply contains only a port number and relies on the address of the existing control
474
+ * connection. In contrast, a `PASV` reply includes an IP address, which can fail when a server
475
+ * behind NAT returns its private internal address.
476
+ *
477
+ * Virtually all modern FTP servers, including vsftpd, ProFTPD, FileZilla Server, and IIS, support
478
+ * `EPSV`. It was standardized in RFC 2428 in 1998 and is widely implemented.
479
+ *
480
+ * Controls whether {@link Ftp2.useEpsv} is recalculated when server capabilities are processed.
481
+ * The default is `false`. Processing occurs during the initial connection when {@link
482
+ * Ftp2.autoFeat} is `true`, or when {@link Ftp2.feat} is called explicitly.
483
+ *
484
+ * The result is based on both the advertised capabilities and the connection context; it is not
485
+ * simply a copy of whether `EPSV` appears in the `FEAT` reply. For example, an IPv4 connection
486
+ * may retain `UseEpsv = FALSE` even when the server advertises `EPSV`. Automatic recalculation
487
+ * can overwrite an explicitly assigned value, and each new connection recalculates it for the new
488
+ * session.
489
+ *
490
+ * If an attempted `EPSV` command is rejected, Chilkat falls back to `PASV` for that data
491
+ * connection. The failed attempt is not remembered as a session-wide reason to disable future
492
+ * `EPSV` attempts.
493
+ */
494
+ autoSetUseEpsv: boolean
495
+
496
+ /**
497
+ * Controls whether a `SYST` command is sent automatically after login. The default is `true`. The
498
+ * server's operating-system type can help Chilkat interpret legacy `LIST` output and other
499
+ * server-specific behavior.
500
+ *
501
+ * When both this property and {@link Ftp2.autoFeat} are `true`, automatic `SYST` occurs before
502
+ * automatic `FEAT`.
503
+ *
504
+ * Set to `false` only when a particular server rejects or mishandles `SYST`.
505
+ */
506
+ autoSyst: boolean
507
+
508
+ /**
509
+ * Controls automatic post-upload verification with the server-specific `XCRC` command. The
510
+ * default is `false`. When enabled and the server supports `XCRC`, Chilkat requests a CRC after
511
+ * an upload and treats a mismatch as transfer failure.
512
+ *
513
+ * If `XCRC` support is not detected, Chilkat does not send the verification command and the
514
+ * upload proceeds normally. This extension is not part of the core FTP standard and is not
515
+ * supported by every server. Capability detection normally depends on a processed `FEAT`
516
+ * response.
517
+ *
518
+ * **Integrity scope:** CRC verification can detect accidental corruption in transit or storage,
519
+ * but it is not a cryptographic authenticity check.
520
+ */
521
+ autoXcrc: boolean
522
+
523
+ /**
524
+ * Specifies the approximate maximum download rate in bytes per second. The default value of `0`
525
+ * disables throttling.
526
+ *
527
+ * Client-side download throttling is approximate because the server continues sending as
528
+ * permitted by TCP. The operating system's socket buffers absorb data between reads, so very
529
+ * small transfers may complete before the configured rate can be meaningfully enforced.
530
+ */
531
+ bandwidthThrottleDown: number
532
+
533
+ /**
534
+ * Specifies the approximate maximum upload rate in bytes per second. The default value of `0`
535
+ * disables throttling.
536
+ *
537
+ * The limit is averaged over the transfer. Very small uploads may complete before the configured
538
+ * rate can be closely approximated.
539
+ */
540
+ bandwidthThrottleUp: number
541
+
542
+ /**
543
+ * **This property is normally left unset.** Set it only on a multihomed computer when the
544
+ * application must bind the outgoing connection to a specific local network interface.
545
+ *
546
+ * Specify a numeric IPv4 or IPv6 address, not a hostname. When the property is empty, the
547
+ * operating system automatically chooses the local address.
548
+ */
549
+ clientIpAddress: string
550
+
551
+ /**
552
+ * Specifies the character encoding used by high-level FTP operations for commands containing
553
+ * non-ASCII text, including remote paths and filenames. The default is `ANSI`. Charset names and
554
+ * the keyword `ANSI` are case-insensitive. An unrecognized charset name is clamped to `utf-8`,
555
+ * and the getter returns `utf-8`.
556
+ *
557
+ * **Usually changed automatically to UTF-8:** Although the default value is `ANSI`, when the
558
+ * server advertises UTF-8 and {@link Ftp2.autoOptsUtf8} is enabled, Chilkat automatically changes
559
+ * this property to `utf-8`. Nearly all modern FTP servers support UTF-8, so `utf-8` is typically
560
+ * the effective value after connecting. If UTF-8 is not advertised, the existing value is left
561
+ * unchanged.
562
+ *
563
+ * **What `ANSI` means:** It does not name one specific charset. It tells Chilkat to use the
564
+ * system-default encoding or default system locale. Typical examples include `windows-1252` on
565
+ * Western-language Windows systems, `windows-1251` for Cyrillic, `windows-1256` for Arabic, and
566
+ * `windows-932` (Shift_JIS) for Japanese. On many modern Unix-like systems, the default locale
567
+ * encoding is `utf-8`. The actual encoding therefore depends on the computer on which the
568
+ * application runs.
569
+ *
570
+ * Changing this property after connecting affects subsequent high-level FTP commands. If a
571
+ * character cannot be represented in a selected single-byte encoding, the character is omitted
572
+ * from the transmitted command; use `utf-8` to preserve full Unicode names.
573
+ *
574
+ * **FTP filename encoding:** The original FTP protocol did not define one universal encoding for
575
+ * path names. The client and server must use the same encoding; UTF-8 is preferred when the
576
+ * server supports it.
577
+ */
578
+ commandCharset: string
579
+
580
+ /**
581
+ * Contains a numeric reason code after {@link Ftp2.connect} or {@link Ftp2.connectOnly} fails.
582
+ * Use this value for broad classification and inspect `LastErrorText` for detailed diagnostics.
583
+ *
584
+ * CodeMeaning
585
+ *
586
+ * | `0` | | Success. |
587
+ *
588
+ * | `1` | | The hostname is empty. |
589
+ *
590
+ * | `2` | | DNS lookup failed. |
591
+ *
592
+ * | `3` | | DNS lookup timed out. |
593
+ *
594
+ * | `4` | | Cancelled by the application. |
595
+ *
596
+ * | `5` | | Internal failure. |
597
+ *
598
+ * | `6` | | TCP connection timed out. |
599
+ *
600
+ * | `7` | | TCP connection was rejected or otherwise failed. |
601
+ *
602
+ * | `100` | | Internal TLS failure. |
603
+ *
604
+ * | `101` | | Failed to send the TLS ClientHello. |
605
+ *
606
+ * | `102` | | An unexpected TLS handshake message was received. |
607
+ *
608
+ * | `103` | | Failed to read the ServerHello. |
609
+ *
610
+ * | `104` | | The server did not provide a certificate. |
611
+ *
612
+ * | `105` | | Unexpected TLS protocol version. |
613
+ *
614
+ * | `106` | | Server certificate verification failed. |
615
+ *
616
+ * | `107` | | The negotiated TLS version is not allowed. |
617
+ *
618
+ * | `109` | | Failed while reading TLS handshake messages. |
619
+ *
620
+ * | `110` | | Failed to send the client-certificate handshake message. |
621
+ *
622
+ * | `111` | | Failed to send the client key exchange. |
623
+ *
624
+ * | `112` | | The client certificate private key is not accessible. |
625
+ *
626
+ * | `113` | | Failed to send client certificate verification. |
627
+ *
628
+ * | `114` | | Failed to send ChangeCipherSpec. |
629
+ *
630
+ * | `115` | | Failed to send the Finished handshake message. |
631
+ *
632
+ * | `116` | | The server Finished message is invalid. |
633
+ *
634
+ * | `200` | | Connected, but the FTP greeting was not received. |
635
+ *
636
+ * | `201` | | The `AUTH TLS` or `AUTH SSL` upgrade failed. |
637
+ *
638
+ * | `300` | | An asynchronous operation is already in progress. |
639
+ *
640
+ * | `301` | | FTP authentication failed. |
641
+ *
642
+ * A successful connection sets this property to `0`. An authentication failure can set it to
643
+ * `301` while {@link Ftp2.connectVerified} remains `true`, because the TCP and FTP connection
644
+ * succeeded before the login was rejected.
645
+ *
646
+ * This property is read-only.
647
+ */
648
+ readonly connectFailReason: number
649
+
650
+ /**
651
+ * Specifies the maximum number of seconds to wait for a remote endpoint to accept a TCP
652
+ * connection. The default is `30`. A value of `0` or any negative value waits indefinitely.
653
+ *
654
+ * This timeout applies whenever Ftp2 establishes a TCP connection, including the FTP control
655
+ * connection, FTP data connections, and connections to configured proxy servers.
656
+ *
657
+ * It covers only TCP connection establishment. It does not apply to TLS handshakes, FTP greetings
658
+ * or replies, authentication, file data, or any other communication after the TCP connection has
659
+ * been accepted.
660
+ */
661
+ connectTimeout: number
662
+
663
+ /**
664
+ * Indicates whether the TCP connection to the FTP server was successfully established during the
665
+ * most recent connection attempt. It does not indicate that FTP authentication succeeded; see
666
+ * {@link Ftp2.loginVerified}.
667
+ *
668
+ * This is a verification result, not a current-socket-state property. It remains `true` after
669
+ * {@link Ftp2.disconnect} if the preceding connection was successfully established.
670
+ *
671
+ * This property is read-only.
672
+ */
673
+ readonly connectVerified: boolean
674
+
675
+ /**
676
+ * Controls line-ending conversion when downloading in ASCII transfer mode. The default is `0`.
677
+ *
678
+ * ValueDownloaded text
679
+ *
680
+ * | `0` | | Leaves line endings as received. |
681
+ *
682
+ * | `1` | | Converts line endings to CRLF. |
683
+ *
684
+ * | `2` | | Converts line endings to LF. |
685
+ *
686
+ * | `3` | | Converts line endings to CR. |
687
+ *
688
+ * **Binary mode:** This property has no effect on binary transfers. Use binary mode for files
689
+ * whose bytes must be preserved exactly.
690
+ */
691
+ crlfMode: number
692
+
693
+ /**
694
+ * Specifies the protection level for FTP data connections. The value is compared
695
+ * case-insensitively. The default is `control`.
696
+ *
697
+ * ValueBehavior
698
+ *
699
+ * | `control` | | Data connections use the same protection state as the control connection. If
700
+ * the control connection is unencrypted, no `PBSZ` or `PROT` commands are sent. |
701
+ *
702
+ * | `clear` | | Data connections are requested as unencrypted. If the control connection is also
703
+ * unencrypted, no `PBSZ` or `PROT` commands are sent. If the control connection uses TLS, Chilkat
704
+ * sends `PBSZ 0` followed by `PROT C`. If the server rejects `PROT C` but accepts `PROT P`,
705
+ * Chilkat falls back to private data protection. |
706
+ *
707
+ * | `private` | | Data connections are protected with TLS. For an encrypted control connection,
708
+ * Chilkat sends `PBSZ 0` followed by `PROT P`. |
709
+ *
710
+ * {@link Ftp2.connect} sends the required `PBSZ` and `PROT` commands. If the server requires
711
+ * login first and replies with `530 Please login with USER and PASS`, Chilkat authenticates and
712
+ * automatically retries them. A required protection setup fails only when no acceptable
713
+ * protection level can be established.
714
+ *
715
+ * **Control and data channels:** FTP uses one long-lived control connection and a separate data
716
+ * connection for each listing, upload, or download. FTPS can protect these channels
717
+ * independently.
718
+ */
719
+ dataProtection: string
720
+
721
+ /**
722
+ * Specifies the character encoding used only to decode directory-listing and related
723
+ * server-response bytes. It applies to responses from `LIST`, `NLST`, and `MLSD`. It does not
724
+ * affect commands, remote paths, filenames, usernames, passwords, or other text sent to the
725
+ * server.
726
+ *
727
+ * The default is `ANSI`. Charset names and the keyword `ANSI` are case-insensitive. `ANSI` means
728
+ * the platform's system-default single-byte encoding or default system locale; on Windows, this
729
+ * is the active code page (ACP).
730
+ *
731
+ * **What `ANSI` means:** It does not name one specific charset. It tells Chilkat to use the
732
+ * system-default encoding or default system locale. Typical examples include `windows-1252` on
733
+ * Western-language Windows systems, `windows-1251` for Cyrillic, `windows-1256` for Arabic, and
734
+ * `windows-932` (Shift_JIS) for Japanese. On many modern Unix-like systems, the default locale
735
+ * encoding is `utf-8`. The actual encoding therefore depends on the computer on which the
736
+ * application runs.
737
+ *
738
+ * Using the wrong encoding can produce incorrectly decoded names without causing the listing
739
+ * operation itself to fail. When {@link Ftp2.autoOptsUtf8} is enabled and UTF-8 support is
740
+ * advertised, Chilkat changes this property to `utf-8`, even if the application previously
741
+ * assigned another value. If UTF-8 is not advertised, the existing value is left unchanged.
742
+ */
743
+ dirListingCharset: string
744
+
745
+ /**
746
+ * Returns the current average download rate in bytes per second. The value is updated during
747
+ * synchronous and asynchronous downloads and describes the download in progress or the most
748
+ * recently completed download. A subsequent upload does not clear the retained download rate.
749
+ *
750
+ * This property is read-only.
751
+ */
752
+ readonly downloadTransferRate: number
753
+
754
+ /**
755
+ * Specifies the IPv4 address advertised to the server for active-mode data connections. This
756
+ * property affects both `PORT` and `EPRT`. Supply a numeric IPv4 address, the keyword `control`,
757
+ * or an IPv4 address prefixed with `bind-`. IPv6 values are not accepted. Keywords and prefixes
758
+ * are case-insensitive.
759
+ *
760
+ * - `control` uses the local IPv4 address of the established FTP control socket.
761
+ *
762
+ * - `bind-192.0.2.10` advertises the address and also binds the local data-listener socket to
763
+ * that address.
764
+ *
765
+ * - A plain IPv4 address changes the address sent in `PORT` or `EPRT` without explicitly binding
766
+ * the listener to that address.
767
+ *
768
+ * If {@link Ftp2.clientIpAddress} is set, this property should specify the same local address.
769
+ * When a `bind-` value is used with {@link Ftp2.activePortRangeStart} and {@link
770
+ * Ftp2.activePortRangeEnd}, Chilkat binds to the specified address while searching the effective
771
+ * range for an available port.
772
+ *
773
+ * **Active mode setting:** This property is used only when {@link Ftp2.passive} is `false`.
774
+ * Passive mode is typically preferred because the client initiates both the control and data
775
+ * connections, making it much friendlier to client-side firewalls and NAT.
776
+ *
777
+ * **NAT caution:** The advertised address must be reachable from the FTP server. Incorrect
778
+ * active-mode addressing commonly causes the control command to succeed while the subsequent data
779
+ * connection fails.
780
+ */
781
+ forcePortIpAddress: string
782
+
783
+ /**
784
+ * Contains the initial FTP server greeting received for the most recent connection immediately
785
+ * after the TCP or implicit-TLS connection was established. It normally begins with reply code
786
+ * `220` and may include server identification or policy information.
787
+ *
788
+ * The value remains available after {@link Ftp2.disconnect}.
789
+ *
790
+ * This property is read-only.
791
+ */
792
+ readonly greeting: string
793
+
794
+ /**
795
+ * Indicates whether the FTP server advertised support for `MODE Z`, which compresses FTP data
796
+ * streams using the DEFLATE algorithm.
797
+ *
798
+ * This property becomes meaningful after Chilkat has processed a successful `FEAT` response,
799
+ * either automatically because {@link Ftp2.autoFeat} is `true` or through an explicit call to
800
+ * {@link Ftp2.feat}. Before capability discovery, a value of `false` does not establish that the
801
+ * server lacks `MODE Z` support.
802
+ *
803
+ * Call {@link Ftp2.setModeZ} after connecting to enable or disable compressed transfer mode.
804
+ *
805
+ * This property is read-only.
806
+ */
807
+ readonly hasModeZ: boolean
808
+
809
+ /**
810
+ * Specifies the interval, in milliseconds, between `AbortCheck` callbacks during methods that
811
+ * support periodic cancellation checks. The default is `0`, which disables these callbacks.
812
+ *
813
+ * Smaller values can improve cancellation responsiveness but increase callback overhead. Methods
814
+ * that complete quickly may not generate a callback.
815
+ */
816
+ heartbeatMs: number
817
+
818
+ /**
819
+ * Specifies the FTP server hostname or numeric IPv4/IPv6 address. Do not include a URL scheme,
820
+ * path, or port; configure the port separately with `Port`.
821
+ */
822
+ hostname: string
823
+
824
+ /**
825
+ * Specifies the authentication method used with an HTTP proxy. Supported values are `Basic` and
826
+ * `NTLM`. Leave empty when the proxy does not require authentication.
827
+ */
828
+ httpProxyAuthMethod: string
829
+
830
+ /**
831
+ * Specifies the Windows domain used for NTLM authentication to the HTTP proxy. It is ignored for
832
+ * Basic authentication and may be left empty when the username already includes the required
833
+ * domain information.
834
+ */
835
+ httpProxyDomain: string
836
+
837
+ /**
838
+ * Specifies the hostname or numeric IP address of an HTTP proxy used to establish the FTP control
839
+ * connection. Leave empty to connect directly.
840
+ */
841
+ httpProxyHostname: string
842
+
843
+ /**
844
+ * Specifies the password used to authenticate to the HTTP proxy. It is used together with
845
+ * `HttpProxyUsername` and `HttpProxyAuthMethod`.
846
+ */
847
+ httpProxyPassword: string
848
+
849
+ /**
850
+ * Specifies the TCP port of the HTTP proxy. Common values include `8080` and `3128`, but the
851
+ * correct value is determined by the proxy configuration.
852
+ */
853
+ httpProxyPort: number
854
+
855
+ /**
856
+ * Specifies the username used to authenticate to the HTTP proxy. Leave empty when the proxy
857
+ * allows unauthenticated connections.
858
+ */
859
+ httpProxyUsername: string
860
+
861
+ /**
862
+ * Specifies the maximum period, in milliseconds, during which no control-channel response or
863
+ * forward upload progress is observed. The default is `60000`. A value of `0` or any negative
864
+ * value waits indefinitely.
865
+ *
866
+ * During an upload, the same limit applies when the operating-system send buffer remains full
867
+ * because the server is not consuming data.
868
+ */
869
+ idleTimeoutMs: number
870
+
871
+ /**
872
+ * Deprecated. Indicates whether the object appears to be connected and authenticated. Reading
873
+ * this property may send `NOOP` to test the session. Use {@link Ftp2.checkConnection} instead.
874
+ *
875
+ * This property is read-only.
876
+ */
877
+ readonly isConnected: boolean
878
+
879
+ /**
880
+ * Controls collection of an in-memory FTP protocol log. When enabled, commands and server replies
881
+ * are available in {@link Ftp2.sessionLog}. Use {@link Ftp2.clearSessionLog} to discard
882
+ * previously collected text.
883
+ */
884
+ keepSessionLog: boolean
885
+
886
+ /**
887
+ * Contains the most recent FTP control-channel reply, including its three-digit status code and
888
+ * message. Examples include `250 Directory successfully changed.` and `550 Failed to change
889
+ * directory.`
890
+ *
891
+ * The value is updated by successful as well as failed commands. After {@link Ftp2.disconnect},
892
+ * it normally contains the server's reply to `QUIT`, such as `221 Goodbye.`. Some replies are
893
+ * multiline; use this property together with the method return value and `LastErrorText` when
894
+ * diagnosing a failure.
895
+ *
896
+ * This property is read-only.
897
+ */
898
+ readonly lastReply: string
899
+
900
+ /**
901
+ * Specifies the case-insensitive wildcard pattern applied to the cached listing of the current
902
+ * remote directory. The default is `*`. It affects methods such as {@link Ftp2.getDirCount},
903
+ * {@link Ftp2.getFilename}, {@link Ftp2.getIsDirectory}, {@link Ftp2.getSize}, and the listing
904
+ * timestamp methods.
905
+ *
906
+ * Chilkat retrieves the full directory listing and applies this pattern locally; the pattern is
907
+ * not appended to `LIST`, `NLST`, or `MLSD`. For example, `*.txt` also matches a name such as
908
+ * `UPPER.TXT`.
909
+ *
910
+ * Specify only a name pattern, such as `*.txt`. To list `subdir/*.txt`, first call {@link
911
+ * Ftp2.changeRemoteDir} for `subdir`, then set this property to `*.txt`.
912
+ *
913
+ * **Listing cache:** Changing this property invalidates the cached directory listing, so the next
914
+ * indexed listing call retrieves a fresh listing from the server.
915
+ */
916
+ listPattern: string
917
+
918
+ /**
919
+ * Indicates whether FTP authentication succeeded during the most recent login attempt. A TCP
920
+ * connection may be established even when this property is `false`; for example, rejected
921
+ * credentials leave {@link Ftp2.connectVerified} `true` and this property `false`.
922
+ *
923
+ * This is a verification result, not a current-socket-state property. It remains `true` after
924
+ * {@link Ftp2.disconnect} if the preceding session was successfully authenticated.
925
+ *
926
+ * This property is read-only.
927
+ */
928
+ readonly loginVerified: boolean
929
+
930
+ /**
931
+ * Indicates whether the most recent download method received some, but not all, of the remote
932
+ * file. It is `false` when no data was received or when the complete file was received.
933
+ *
934
+ * This property helps distinguish a mid-transfer failure from a failure that occurred before any
935
+ * file data arrived.
936
+ *
937
+ * This property is read-only.
938
+ */
939
+ readonly partialTransfer: boolean
940
+
941
+ /**
942
+ * Selects the FTP data-connection mode. The default is `true` for passive mode. Set to `false`
943
+ * for active mode.
944
+ *
945
+ * ModeConnection direction
946
+ *
947
+ * | Passive | | The server listens and the client connects to the server for each data transfer.
948
+ * |
949
+ *
950
+ * | Active | | The client listens and the server connects back to the client. |
951
+ *
952
+ * **Typical choice: Passive mode.** Passive mode is typically used because it is much friendlier
953
+ * to client-side firewalls and NAT (Network Address Translation). In active mode, the server
954
+ * attempts to initiate a data connection back to the client, which many client-side firewalls
955
+ * block. In passive mode, the client initiates both the control and data connections to the
956
+ * server.
957
+ */
958
+ passive: boolean
959
+
960
+ /**
961
+ * Controls how the address returned by `PASV` is handled. The default is `true`. When enabled,
962
+ * Chilkat ignores the IP address embedded in the server's `PASV` reply and connects to the
963
+ * control connection's server address using only the returned port.
964
+ *
965
+ * This avoids private or otherwise unreachable addresses returned by FTP servers behind NAT,
966
+ * especially when TLS prevents a network device from rewriting the reply.
967
+ */
968
+ passiveUseHostAddr: boolean
969
+
970
+ /**
971
+ * Specifies the password used for FTP authentication. For anonymous FTP, this is commonly an
972
+ * email address or arbitrary identifying string. Applications that already store the password in
973
+ * a `SecureString` should use {@link Ftp2.setSecurePassword} instead.
974
+ */
975
+ password: string
976
+
977
+ /**
978
+ * Specifies the integer value that represents 100 percent in `PercentDone` callbacks. The default
979
+ * is `100`. For example, a scale of `1000` allows one-tenth-percent resolution, where callback
980
+ * value `453` represents 45.3 percent.
981
+ *
982
+ * The value is limited to the range `10` through `100000`. This property is relevant only in
983
+ * environments that support event callbacks and only for operations whose total work can be
984
+ * measured.
985
+ */
986
+ percentDoneScale: number
987
+
988
+ /**
989
+ * Specifies the FTP server port. Port `21` is conventionally used for plain FTP or explicit FTPS,
990
+ * and port `990` is conventionally used for implicit FTPS.
991
+ *
992
+ * When {@link Ftp2.autoFix} is `true`, only these two port numbers cause automatic changes to
993
+ * {@link Ftp2.ssl}, {@link Ftp2.authSsl}, and {@link Ftp2.authTls}. A custom port leaves all
994
+ * three TLS-mode properties unchanged.
995
+ */
996
+ port: number
997
+
998
+ /**
999
+ * Controls the preferred address family when DNS resolution returns both IPv4 and IPv6 addresses.
1000
+ * The default is `false`, which prefers IPv4. Set it to `true` to prefer IPv6.
1001
+ */
1002
+ preferIpv6: boolean
1003
+
1004
+ /**
1005
+ * Controls whether `NLST` is preferred over `LIST` when a legacy directory listing is required.
1006
+ * The default is `false`. This property is consulted only when {@link Ftp2.allowMlsd} does not
1007
+ * result in `MLSD` being used.
1008
+ *
1009
+ * `NLST` generally returns names only. Do not rely on indexed sizes, timestamps, ownership,
1010
+ * group, or permission information after an `NLST` listing. Because `NLST` does not reliably
1011
+ * identify entry types, Chilkat may send additional commands, such as directory-change tests, to
1012
+ * determine which names are directories.
1013
+ *
1014
+ * **When to use:** Enable this only for a server whose LIST output truncates or corrupts names.
1015
+ * Keep {@link Ftp2.allowMlsd} enabled whenever possible because MLSD is the standardized
1016
+ * machine-readable listing command.
1017
+ */
1018
+ preferNlst: boolean
1019
+
1020
+ /**
1021
+ * Specifies the expected size, in bytes, of the next file downloaded by {@link Ftp2.getFile} when
1022
+ * the size is not otherwise known. Chilkat uses the value to calculate percentage progress.
1023
+ *
1024
+ * This is a one-shot setting. It is consumed by the next applicable download and automatically
1025
+ * reset to `0`. Set it immediately before the download. When a nonzero value is supplied, Chilkat
1026
+ * does not need the additional size query controlled by {@link Ftp2.autoGetSizeForProgress}.
1027
+ *
1028
+ * If this property is zero, percentage progress may still be available when the server's
1029
+ * preliminary transfer reply includes the file size.
1030
+ */
1031
+ progressMonSize: number
1032
+
1033
+ /**
1034
+ * The 64-bit form of {@link Ftp2.progressMonSize}. Specifies the expected size, in bytes, of the
1035
+ * next download when the value may exceed the 32-bit integer range. It is consumed by the next
1036
+ * applicable download and automatically reset to `0`.
1037
+ *
1038
+ * A 64-bit integer in Chilkat; JavaScript numbers are exact up to 2^53.
1039
+ */
1040
+ progressMonSize64: number
1041
+
1042
+ /**
1043
+ * Specifies the hostname or IP address of a traditional FTP application proxy or firewall. This
1044
+ * is distinct from an HTTP CONNECT proxy and from a SOCKS proxy. The login sequence is selected
1045
+ * by `ProxyMethod`.
1046
+ */
1047
+ proxyHostname: string
1048
+
1049
+ /**
1050
+ * Selects the login sequence required by a traditional FTP proxy or firewall. The default is `0`,
1051
+ * meaning no FTP proxy. Configure {@link Ftp2.proxyHostname}, {@link Ftp2.proxyPort}, and the
1052
+ * required proxy credentials before connecting.
1053
+ *
1054
+ * ValueSequence sent
1055
+ *
1056
+ * | `1` — SITE | |
1057
+ * ```
1058
+ * USER ProxyUsername
1059
+ * PASS ProxyPassword
1060
+ * SITE Hostname
1061
+ * USER Username
1062
+ * PASS Password
1063
+ * ```
1064
+ * |
1065
+ *
1066
+ * | `2` — USER user@site | |
1067
+ * ```
1068
+ * USER Username@Hostname:Port
1069
+ * PASS Password
1070
+ * ```
1071
+ * |
1072
+ *
1073
+ * | `3` — USER with proxy login | |
1074
+ * ```
1075
+ * USER ProxyUsername
1076
+ * PASS ProxyPassword
1077
+ * USER Username@Hostname:Port
1078
+ * PASS Password
1079
+ * ```
1080
+ * |
1081
+ *
1082
+ * | `4` — USER/PASS/ACCT | |
1083
+ * ```
1084
+ * USER Username@Hostname:Port ProxyUsername
1085
+ * PASS Password
1086
+ * ACCT ProxyPassword
1087
+ * ```
1088
+ * |
1089
+ *
1090
+ * | `5` — OPEN | |
1091
+ * ```
1092
+ * USER ProxyUsername
1093
+ * PASS ProxyPassword
1094
+ * OPEN Hostname
1095
+ * USER Username
1096
+ * PASS Password
1097
+ * ```
1098
+ * |
1099
+ *
1100
+ * | `6` — firewall ID | |
1101
+ * ```
1102
+ * USER ProxyUsername@Hostname
1103
+ * USER Username
1104
+ * PASS Password
1105
+ * ```
1106
+ * |
1107
+ *
1108
+ * | `7` | |
1109
+ * ```
1110
+ * USER ProxyUsername
1111
+ * USER ProxyPassword
1112
+ * SITE Hostname:Port
1113
+ * USER Username
1114
+ * PASS Password
1115
+ * ```
1116
+ * |
1117
+ *
1118
+ * | `8` | |
1119
+ * ```
1120
+ * USER Username@ProxyUsername@Hostname
1121
+ * PASS Password@ProxyPassword
1122
+ * ```
1123
+ * |
1124
+ *
1125
+ * | `9` | |
1126
+ * ```
1127
+ * ProxyUsername
1128
+ * ProxyPassword
1129
+ * Username
1130
+ * Password
1131
+ * ```
1132
+ * |
1133
+ *
1134
+ * **Server-specific feature:** These sequences describe historical FTP firewall conventions, not
1135
+ * one standardized proxy protocol. Use the value required by the proxy administrator.
1136
+ */
1137
+ proxyMethod: number
1138
+
1139
+ /**
1140
+ * Specifies the password used to authenticate to a traditional FTP proxy or firewall. Its
1141
+ * placement in the login exchange depends on `ProxyMethod`.
1142
+ */
1143
+ proxyPassword: string
1144
+
1145
+ /**
1146
+ * Specifies the TCP port on which the traditional FTP proxy or firewall accepts connections.
1147
+ */
1148
+ proxyPort: number
1149
+
1150
+ /**
1151
+ * Specifies the username used to authenticate to a traditional FTP proxy or firewall. Its
1152
+ * placement in the login exchange depends on `ProxyMethod`.
1153
+ */
1154
+ proxyUsername: string
1155
+
1156
+ /**
1157
+ * Specifies the maximum number of seconds that a data connection may remain without receiving
1158
+ * another byte. The default is `60`. A value of `0` or any negative value waits indefinitely.
1159
+ *
1160
+ * This is an inactivity timeout, not a limit on total transfer duration. Receiving any data, even
1161
+ * a single byte, resets the timer and begins a new full timeout interval. A large download may
1162
+ * therefore continue indefinitely as long as data keeps arriving within the configured interval.
1163
+ */
1164
+ readTimeout: number
1165
+
1166
+ /**
1167
+ * Controls verification of the FTP server's TLS certificate chain.
1168
+ *
1169
+ * ValueBehavior
1170
+ *
1171
+ * | `false` (default) | | A connection is not rejected solely because normal certificate-chain
1172
+ * verification fails. |
1173
+ *
1174
+ * | `true` | | The connection fails when the certificate is expired, is not yet valid, its
1175
+ * signature is invalid, or its chain cannot be verified to a trusted root. |
1176
+ *
1177
+ * Certificate-chain verification is separate from hostname matching and public-key pinning.
1178
+ * Hostname matching, when required, is enforced independently even when this property is `false`.
1179
+ * {@link Ftp2.tlsPinSet} supplements rather than replaces normal certificate verification.
1180
+ *
1181
+ * The hostname used for the TLS connection is also used for Server Name Indication (SNI) and
1182
+ * certificate hostname comparison.
1183
+ */
1184
+ requireSslCertVerify: boolean
1185
+
1186
+ /**
1187
+ * Set to `true` to request that the next applicable upload or download resume from existing
1188
+ * content instead of starting over. Unrelated FTP commands do not consume the setting. The next
1189
+ * applicable transfer consumes it and automatically resets it to `false`.
1190
+ *
1191
+ * For a resumed upload, Chilkat obtains the existing remote size, begins reading the local
1192
+ * content at that offset, and appends the remaining bytes. For a resumed download, Chilkat uses
1193
+ * the existing destination length as the `REST` offset and appends the remaining remote bytes.
1194
+ *
1195
+ * The setting applies to the ordinary file, `BinData`, and `StringBuilder` upload and download
1196
+ * methods, including {@link Ftp2.putFile}, {@link Ftp2.putFileBd}, {@link Ftp2.putFileSb}, {@link
1197
+ * Ftp2.getFile}, {@link Ftp2.getFileBd}, and {@link Ftp2.getFileSb}.
1198
+ *
1199
+ * Resume requires compatible server support and a correct partial local or remote file. The
1200
+ * application should verify that the existing content belongs to the same file version before
1201
+ * resuming.
1202
+ */
1203
+ restartNext: boolean
1204
+
1205
+ /**
1206
+ * Contains the in-memory FTP session log collected while {@link Ftp2.keepSessionLog} is `true`.
1207
+ * The log includes protocol commands and server replies and is useful for troubleshooting.
1208
+ * Passwords and other sensitive information may appear; handle the text accordingly.
1209
+ *
1210
+ * This property is read-only.
1211
+ */
1212
+ readonly sessionLog: string
1213
+
1214
+ /**
1215
+ * Specifies the socket receive-buffer size. The default is `4194304` bytes. Normally this
1216
+ * property should remain unchanged.
1217
+ *
1218
+ * When download throughput is unexpectedly low, testing a larger value may help. Values should
1219
+ * generally be multiples of `4096`.
1220
+ */
1221
+ soRcvBuf: number
1222
+
1223
+ /**
1224
+ * Specifies the socket send-buffer size. The default is `262144` bytes. Normally this property
1225
+ * should remain unchanged.
1226
+ *
1227
+ * When upload throughput is unexpectedly low, testing values such as `524288` or `1048576` may
1228
+ * help. Values should generally be multiples of `4096`.
1229
+ */
1230
+ soSndBuf: number
1231
+
1232
+ /**
1233
+ * Specifies the hostname or IP address of the SOCKS proxy. It is used only when {@link
1234
+ * Ftp2.socksVersion} is `4` or `5`.
1235
+ */
1236
+ socksHostname: string
1237
+
1238
+ /**
1239
+ * Specifies the password for SOCKS5 username/password authentication. It is ignored for SOCKS4,
1240
+ * which has no password-authentication field.
1241
+ */
1242
+ socksPassword: string
1243
+
1244
+ /**
1245
+ * Specifies the SOCKS proxy port. The default is `1080`. It is used only when {@link
1246
+ * Ftp2.socksVersion} is `4` or `5`.
1247
+ */
1248
+ socksPort: number
1249
+
1250
+ /**
1251
+ * Specifies the SOCKS user identifier. SOCKS5 may use it with password authentication; SOCKS4
1252
+ * sends it as the protocol user ID. It is used only when {@link Ftp2.socksVersion} is `4` or `5`.
1253
+ */
1254
+ socksUsername: string
1255
+
1256
+ /**
1257
+ * Selects SOCKS proxy usage.
1258
+ *
1259
+ * ValueBehavior
1260
+ *
1261
+ * | `0` | | Default. Connect directly without a SOCKS proxy. |
1262
+ *
1263
+ * | `4` | | Connect through a SOCKS4 proxy. |
1264
+ *
1265
+ * | `5` | | Connect through a SOCKS5 proxy. |
1266
+ */
1267
+ socksVersion: number
1268
+
1269
+ /**
1270
+ * Set to `true` to use implicit FTP over TLS. TLS begins immediately after the TCP connection is
1271
+ * established, before the FTP greeting is received. Port `990` is conventionally used for
1272
+ * implicit FTPS.
1273
+ *
1274
+ * This property has priority over {@link Ftp2.authTls} and {@link Ftp2.authSsl}. If `Ssl` is
1275
+ * `true`, implicit TLS is used even when either explicit-TLS property is also `true`. {@link
1276
+ * Ftp2.connectOnly} performs the implicit TLS handshake but does not send `USER` or `PASS`.
1277
+ *
1278
+ * **TLS-mode precedence:** `Ssl` has highest priority. When it is `false`, `AuthTls` takes
1279
+ * priority over `AuthSsl`. When all three properties are `false`, plain FTP is used.
1280
+ *
1281
+ * **Protocol distinction:** FTPS is FTP protected by TLS. SFTP is a different protocol carried by
1282
+ * SSH and is implemented by the `SFtp` class.
1283
+ */
1284
+ ssl: boolean
1285
+
1286
+ /**
1287
+ * Restricts the cipher suites and selected TLS security requirements offered for FTP TLS
1288
+ * connections.
1289
+ *
1290
+ * Leave this property empty to allow all cipher suites implemented by the installed Chilkat
1291
+ * version. To restrict negotiation, provide a comma-separated list in preference order, for
1292
+ * example:
1293
+ *
1294
+ * ```
1295
+ * TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
1296
+ * ```
1297
+ *
1298
+ * The server chooses from the cipher suites offered by the client; the client cannot force a
1299
+ * suite the server does not support.
1300
+ *
1301
+ * The list may also contain these policy keywords:
1302
+ *
1303
+ * - `rsa1024` or `rsa2048` to require a minimum RSA server-key size.
1304
+ *
1305
+ * - `secure-renegotiation` to require secure TLS renegotiation.
1306
+ *
1307
+ * - `best-practices` to use the security policy recommended by the installed Chilkat version.
1308
+ *
1309
+ * Legacy keywords such as `aes256-cbc`, `aes128-cbc`, `3des-cbc`, and `rc4` remain recognized for
1310
+ * compatibility, but explicitly listing acceptable suites is preferred.
1311
+ */
1312
+ sslAllowedCiphers: string
1313
+
1314
+ /**
1315
+ * Selects the TLS protocol version or minimum version allowed for secure FTP connections.
1316
+ *
1317
+ * The complete list of accepted values is:
1318
+ *
1319
+ * ```
1320
+ * default
1321
+ * TLS 1.3
1322
+ * TLS 1.2
1323
+ * TLS 1.1
1324
+ * TLS 1.0
1325
+ * SSL 3.0
1326
+ * TLS 1.3 or higher
1327
+ * TLS 1.2 or higher
1328
+ * TLS 1.1 or higher
1329
+ * TLS 1.0 or higher
1330
+ * ```
1331
+ *
1332
+ * The default is `default`, which allows Chilkat to negotiate a protocol supported by both client
1333
+ * and server. A minimum-version setting is generally more interoperable than requiring one exact
1334
+ * version.
1335
+ */
1336
+ sslProtocol: string
1337
+
1338
+ /**
1339
+ * Indicates whether the FTP server certificate chain was successfully verified for the current or
1340
+ * most recent TLS connection.
1341
+ *
1342
+ * This property reports certificate-chain verification only. It does not report hostname matching
1343
+ * or public-key pinning. If hostname matching or {@link Ftp2.tlsPinSet} pinning is required and
1344
+ * the check fails, the TLS connection itself fails.
1345
+ *
1346
+ * This property is read-only.
1347
+ */
1348
+ readonly sslServerCertVerified: boolean
1349
+
1350
+ /**
1351
+ * Specifies a semicolon-separated list of case-insensitive wildcard patterns for files that are
1352
+ * eligible for synchronization and tree operations. For example: `*.xml;*.txt;*.csv`.
1353
+ *
1354
+ * When nonempty, a file must match at least one pattern. Matching is performed against the file's
1355
+ * basename, not its relative path. Thus `keep.txt` can match a file in any traversed
1356
+ * subdirectory, while a pattern such as `subdir/*.txt` does not match a nested relative path.
1357
+ *
1358
+ * This filter applies to synchronization methods and also to {@link Ftp2.putTree}, {@link
1359
+ * Ftp2.downloadTree}, and {@link Ftp2.dirTreeXml}.
1360
+ */
1361
+ syncMustMatch: string
1362
+
1363
+ /**
1364
+ * Specifies a semicolon-separated list of case-insensitive wildcard patterns for files that must
1365
+ * be excluded from synchronization and tree operations. For example: `*.tmp;*.bak;~*`.
1366
+ *
1367
+ * Matching is performed against the file's basename, not its relative path. Exclusion is applied
1368
+ * in addition to {@link Ftp2.syncMustMatch}.
1369
+ *
1370
+ * This filter also applies to {@link Ftp2.putTree}, {@link Ftp2.downloadTree}, and {@link
1371
+ * Ftp2.dirTreeXml}.
1372
+ */
1373
+ syncMustNotMatch: string
1374
+
1375
+ /**
1376
+ * Contains the preview produced by {@link Ftp2.syncRemoteTree2} when ARG4 is `true`. Each
1377
+ * CRLF-delimited line is an absolute local path that would be uploaded if preview mode were
1378
+ * disabled.
1379
+ *
1380
+ * The value is replaced at the start of each preview operation. It is empty when no files
1381
+ * qualify, when the preview fails, or when ARG2 is not a valid synchronization mode. A subsequent
1382
+ * non-preview synchronization operation also clears it. Unrelated methods do not clear the most
1383
+ * recent preview.
1384
+ *
1385
+ * This property is read-only.
1386
+ */
1387
+ readonly syncPreview: string
1388
+
1389
+ /**
1390
+ * Contains the cipher suite negotiated for the current or most recent successful TLS connection,
1391
+ * such as `TLS_AES_256_GCM_SHA384`. It is empty before a TLS session has been established or
1392
+ * after a failed attempt that produced no negotiated suite.
1393
+ *
1394
+ * This property is read-only.
1395
+ */
1396
+ readonly tlsCipherSuite: string
1397
+
1398
+ /**
1399
+ * Specifies one or more expected Subject Public Key Info (SPKI) fingerprints for TLS public-key
1400
+ * pinning. If none of the configured pins matches the server certificate, the TLS handshake
1401
+ * fails.
1402
+ *
1403
+ * Pinning supplements normal certificate-chain verification; it does not replace it. A matching
1404
+ * pin does not make an expired or otherwise invalid certificate acceptable. When a pin set is
1405
+ * configured, pin matching is enforced even if {@link Ftp2.requireSslCertVerify} is `false`.
1406
+ *
1407
+ * The format is:
1408
+ *
1409
+ * ```
1410
+ * hashAlgorithm, encoding, fingerprint1, fingerprint2, ...
1411
+ * ```
1412
+ *
1413
+ * Example:
1414
+ *
1415
+ * ```
1416
+ * sha256, base64, lKg1SIqyhPSK19tlPbjl8s02yChsVTDklQpkMCHvsTE=
1417
+ * ```
1418
+ *
1419
+ * Supported hash algorithms include `sha1`, `sha256`, `sha384`, `sha512`, `md2`, `md5`, `haval`,
1420
+ * `ripemd128`, `ripemd160`, `ripemd256`, and `ripemd320`. Supported encodings include `base64`,
1421
+ * `hex`, and other Chilkat-supported binary encodings.
1422
+ *
1423
+ * **FTP connection scope:** Pin matching is enforced for every TLS connection established by this
1424
+ * object, including the FTPS control connection and all TLS-protected data connections.
1425
+ */
1426
+ tlsPinSet: string
1427
+
1428
+ /**
1429
+ * Contains the protocol version negotiated for the current or most recent successful TLS
1430
+ * connection, such as `TLS 1.2` or `TLS 1.3`. It is empty when no TLS session has been
1431
+ * established.
1432
+ *
1433
+ * This property is read-only.
1434
+ */
1435
+ readonly tlsVersion: string
1436
+
1437
+ /**
1438
+ * Returns the current average upload rate in bytes per second. The value is updated during
1439
+ * synchronous and asynchronous uploads and describes the upload in progress or the most recently
1440
+ * completed upload. A subsequent download does not clear the retained upload rate.
1441
+ *
1442
+ * This property is read-only.
1443
+ */
1444
+ readonly uploadTransferRate: number
1445
+
1446
+ /**
1447
+ * Controls whether passive data connections first use `EPSV` instead of `PASV`. The default is
1448
+ * `false`. This property has no effect when {@link Ftp2.passive} is `false`.
1449
+ *
1450
+ * If `EPSV` is rejected, Chilkat automatically retries the data connection using `PASV`. The
1451
+ * rejection does not disable `EPSV` for the remainder of the session, so a later passive data
1452
+ * connection may try `EPSV` again.
1453
+ *
1454
+ * {@link Ftp2.autoSetUseEpsv} can change this property automatically when server capabilities are
1455
+ * examined.
1456
+ *
1457
+ * **Compatibility:** `EPSV` avoids embedding an IP address in the server reply and is the
1458
+ * passive-mode command defined for IPv6. Some legacy FTP-aware firewalls mishandle it.
1459
+ */
1460
+ useEpsv: boolean
1461
+
1462
+ /**
1463
+ * Specifies the FTP login name. The default is `anonymous`. Set it to an empty string to have
1464
+ * {@link Ftp2.connect} establish the connection without performing authentication; authentication
1465
+ * may then be handled separately with {@link Ftp2.loginAfterConnectOnly}.
1466
+ */
1467
+ username: string
1468
+
1469
+ /**
1470
+ * Controls an additional keepalive measure for very long uploads and downloads. The default is
1471
+ * `false`. When enabled, Chilkat sends `NOOP` on the FTP control channel once per minute while a
1472
+ * long-running file transfer is in progress.
1473
+ *
1474
+ * This helps prevent the otherwise idle control connection from being closed by the server, a
1475
+ * firewall, or a NAT device while file data continues on the separate data connection.
1476
+ *
1477
+ * **FTP connection model:** File contents travel over a data connection, while FTP commands and
1478
+ * replies use the control connection. During a long transfer, the control connection may appear
1479
+ * idle even though the data connection remains active.
1480
+ */
1481
+ largeFileMeasures: boolean
1482
+
1483
+ /**
1484
+ * Specifies a semicolon-separated list of case-insensitive wildcard patterns for directories that
1485
+ * synchronization methods are allowed to enter. For example: `src;data_*;reports`. When nonempty,
1486
+ * a directory must match at least one pattern before its contents are traversed.
1487
+ */
1488
+ syncMustMatchDir: string
1489
+
1490
+ /**
1491
+ * Specifies a semicolon-separated list of case-insensitive wildcard patterns for directories that
1492
+ * synchronization methods must not enter. For example: `.git;temp;archive_*`. Exclusion is
1493
+ * applied in addition to `SyncMustMatchDir`.
1494
+ */
1495
+ syncMustNotMatchDir: string
1496
+
1497
+ /**
1498
+ * Controls whether download synchronization creates empty remote directories on the local
1499
+ * filesystem. The default is `true`. When `false`, a local directory is created only when it is
1500
+ * needed to contain a downloaded file.
1501
+ */
1502
+ syncCreateAllLocalDirs: boolean
1503
+
1504
+ /**
1505
+ * Provides a comma-separated list of compatibility options for uncommon platform or server
1506
+ * requirements. The default is empty and should normally remain empty.
1507
+ *
1508
+ * KeywordEffect
1509
+ *
1510
+ * | `OpenNonExclusive` | | On Windows, opens a local download file without exclusive sharing so
1511
+ * another process may access it while data is being written. |
1512
+ *
1513
+ * | `ProtectFromVpn` | | On Android, requests that FTP sockets bypass an active VPN. |
1514
+ *
1515
+ * | `EnableTls13` | | Compatibility switch that explicitly enables offering TLS 1.3 in builds
1516
+ * where it is not already enabled by policy. |
1517
+ *
1518
+ * | `DisableTls13` | | Prevents TLS 1.3 negotiation for compatibility with a problematic peer. |
1519
+ *
1520
+ * | `NoPreserveFileTime` | | Leaves downloaded files with the current local time instead of
1521
+ * attempting to preserve the remote modification time. |
1522
+ *
1523
+ * **Use sparingly:** These options alter low-level behavior and may be platform-specific.
1524
+ * Configure one only when the documented default causes a known interoperability problem.
1525
+ */
1526
+ uncommonOptions: string
1527
+
1528
+ /**
1529
+ * Specifies an option string appended literally to the legacy `LIST` command, such as `-a`. For
1530
+ * example, setting this property to `-a` sends `LIST -a`. Chilkat does not interpret the option
1531
+ * locally. It has no effect when {@link Ftp2.allowMlsd} causes `MLSD` to be used or when {@link
1532
+ * Ftp2.preferNlst} causes `NLST` to be used.
1533
+ *
1534
+ * `LIST` options and output formats are not standardized by FTP. Many UNIX-like servers pass the
1535
+ * option to an underlying `ls` implementation, while other servers may reject or interpret it
1536
+ * differently.
1537
+ */
1538
+ listOption: string
1539
+
1540
+ /**
1541
+ * Controls automatic resolution of credential values from secure operating-system storage. The
1542
+ * default is `false`. When enabled, supported password properties may contain a secret
1543
+ * specification beginning with `!!` instead of the literal password.
1544
+ *
1545
+ * ```
1546
+ * !![appName|]service[|domain]|username
1547
+ * ```
1548
+ *
1549
+ * Secret specifications are supported by {@link Ftp2.password}, {@link Ftp2.httpProxyPassword},
1550
+ * {@link Ftp2.proxyPassword}, and {@link Ftp2.socksPassword}. Chilkat resolves them through
1551
+ * Windows Credential Manager on Windows or Apple Keychain on macOS.
1552
+ *
1553
+ * **Credential handling:** This feature avoids embedding plaintext credentials in source code or
1554
+ * configuration. Access to the secret still depends on the permissions of the process and
1555
+ * operating-system account.
1556
+ */
1557
+ enableSecrets: boolean
1558
+
1559
+ // ---- Methods ----
1560
+
1561
+ /**
1562
+ * Appends the contents of the local file at `localFilePath` to the remote file at
1563
+ * `remoteFilePath`. Both arguments are paths in their respective local and remote filesystems.
1564
+ *
1565
+ * Uses the FTP `APPE` command. On servers with normal APPE behavior, a missing remote file is
1566
+ * created and an existing file is extended. A failed or interrupted append can leave the bytes
1567
+ * already accepted by the server in place; the operation is not transactional.
1568
+ *
1569
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1570
+ * {@link Ftp2.appendFileAsync}.
1571
+ *
1572
+ * @throws Error if the call fails (the message names the reason); the full log is in
1573
+ * {@link Ftp2.lastErrorText}.
1574
+ */
1575
+ appendFile(localFilePath: string, remoteFilePath: string): void
1576
+
1577
+ /**
1578
+ * Asynchronous form of {@link Ftp2.appendFile}: the same call on a native worker thread,
1579
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1580
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1581
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1582
+ *
1583
+ * The promise rejects with an Error if the call fails; the full log is in
1584
+ * {@link Ftp2.lastErrorText}.
1585
+ */
1586
+ appendFileAsync(localFilePath: string, remoteFilePath: string): Promise<void>
1587
+
1588
+ /**
1589
+ * Encodes the text in `textData` using the character encoding named by `charset` and appends the
1590
+ * resulting bytes to the remote file at `remoteFilename`.
1591
+ *
1592
+ * This method controls the encoding of the file content. The encoding used for the remote
1593
+ * filename itself is controlled separately by {@link Ftp2.commandCharset}.
1594
+ *
1595
+ * Uses the FTP `APPE` command. On servers with normal APPE behavior, a missing remote file is
1596
+ * created and an existing file is extended. A failed or interrupted append can leave the bytes
1597
+ * already accepted by the server in place; the operation is not transactional.
1598
+ *
1599
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1600
+ * {@link Ftp2.appendFileFromTextDataAsync}.
1601
+ *
1602
+ * @throws Error if the call fails (the message names the reason); the full log is in
1603
+ * {@link Ftp2.lastErrorText}.
1604
+ */
1605
+ appendFileFromTextData(remoteFilename: string, textData: string, charset: string): void
1606
+
1607
+ /**
1608
+ * Asynchronous form of {@link Ftp2.appendFileFromTextData}: the same call on a native worker
1609
+ * thread,
1610
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1611
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1612
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1613
+ *
1614
+ * The promise rejects with an Error if the call fails; the full log is in
1615
+ * {@link Ftp2.lastErrorText}.
1616
+ */
1617
+ appendFileFromTextDataAsync(remoteFilename: string, textData: string, charset: string): Promise<void>
1618
+
1619
+ /**
1620
+ * Changes the current working directory on the FTP server to `remoteDirPath`. A relative path is
1621
+ * resolved from the current remote directory; an absolute path is interpreted according to the
1622
+ * server's path syntax.
1623
+ *
1624
+ * Chilkat sends one `CWD` command containing `remoteDirPath`. It does not split a multi-level
1625
+ * path into separate directory changes. A server may accept a path such as `a/b/c` in one command
1626
+ * or may require the application to change one level at a time.
1627
+ *
1628
+ * If the `CWD` command fails, the current remote directory remains unchanged.
1629
+ *
1630
+ * **Current directory:** Many Ftp2 methods operate relative to the current remote directory. Use
1631
+ * {@link Ftp2.getCurrentRemoteDir} to inspect it.
1632
+ *
1633
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1634
+ * {@link Ftp2.changeRemoteDirAsync}.
1635
+ *
1636
+ * @throws Error if the call fails (the message names the reason); the full log is in
1637
+ * {@link Ftp2.lastErrorText}.
1638
+ */
1639
+ changeRemoteDir(remoteDirPath: string): void
1640
+
1641
+ /**
1642
+ * Asynchronous form of {@link Ftp2.changeRemoteDir}: the same call on a native worker thread,
1643
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1644
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1645
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1646
+ *
1647
+ * The promise rejects with an Error if the call fails; the full log is in
1648
+ * {@link Ftp2.lastErrorText}.
1649
+ */
1650
+ changeRemoteDirAsync(remoteDirPath: string): Promise<void>
1651
+
1652
+ /**
1653
+ * Returns whether Chilkat currently considers the FTP control connection to be open. It does not
1654
+ * require that the session be authenticated: it can return `true` after {@link Ftp2.connectOnly}
1655
+ * and before {@link Ftp2.loginAfterConnectOnly}.
1656
+ *
1657
+ * This is a local connection-state check. It does not send `NOOP`, reconnect automatically, or
1658
+ * prove that a silently broken network path will carry the next command.
1659
+ *
1660
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1661
+ * {@link Ftp2.checkConnectionAsync}.
1662
+ */
1663
+ checkConnection(): boolean
1664
+
1665
+ /**
1666
+ * Asynchronous form of {@link Ftp2.checkConnection}: the same call on a native worker thread,
1667
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1668
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1669
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1670
+ */
1671
+ checkConnectionAsync(): Promise<boolean>
1672
+
1673
+ /**
1674
+ * Requests that an explicit-FTPS control connection return to clear text after authentication.
1675
+ * Data connections may remain protected according to {@link Ftp2.dataProtection}.
1676
+ *
1677
+ * **Security and compatibility:** This is a legacy workaround for FTP-aware NAT devices that must
1678
+ * inspect PORT or PASV commands. It exposes FTP commands and replies, including path names, and
1679
+ * should not be used unless required by the network environment.
1680
+ *
1681
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1682
+ * {@link Ftp2.clearControlChannelAsync}.
1683
+ *
1684
+ * @throws Error if the call fails (the message names the reason); the full log is in
1685
+ * {@link Ftp2.lastErrorText}.
1686
+ */
1687
+ clearControlChannel(): void
1688
+
1689
+ /**
1690
+ * Asynchronous form of {@link Ftp2.clearControlChannel}: the same call on a native worker thread,
1691
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1692
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1693
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1694
+ *
1695
+ * The promise rejects with an Error if the call fails; the full log is in
1696
+ * {@link Ftp2.lastErrorText}.
1697
+ */
1698
+ clearControlChannelAsync(): Promise<void>
1699
+
1700
+ /**
1701
+ * Clears the cached listing for the current remote directory. The next call to {@link
1702
+ * Ftp2.getDirCount} or another indexed listing method retrieves a fresh listing from the server.
1703
+ *
1704
+ * The cache is automatically invalidated when the current remote directory or {@link
1705
+ * Ftp2.listPattern} changes. Uploading, deleting, renaming, creating, or removing a remote item
1706
+ * does not automatically refresh the cache. Changing {@link Ftp2.allowMlsd}, {@link
1707
+ * Ftp2.preferNlst}, {@link Ftp2.listOption}, or {@link Ftp2.dirListingCharset} also leaves the
1708
+ * existing cache intact.
1709
+ *
1710
+ * **After a remote change:** Call this method before relying on indexed listing methods when the
1711
+ * application has uploaded, renamed, deleted, created, or removed an item in the current remote
1712
+ * directory.
1713
+ */
1714
+ clearDirCache(): void
1715
+
1716
+ /**
1717
+ * Clears the in-memory FTP protocol log collected while {@link Ftp2.keepSessionLog} is enabled.
1718
+ */
1719
+ clearSessionLog(): void
1720
+
1721
+ /**
1722
+ * Connects to the server specified by {@link Ftp2.hostname} and {@link Ftp2.port}, negotiates any
1723
+ * configured proxy and TLS layer, receives the FTP greeting, and authenticates using {@link
1724
+ * Ftp2.username}, {@link Ftp2.password}, and {@link Ftp2.account}.
1725
+ *
1726
+ * For implicit or explicit FTPS, TLS is established before `USER` and `PASS` are sent. Chilkat
1727
+ * sends `PBSZ 0` and the `PROT` command required by {@link Ftp2.dataProtection}. If the server
1728
+ * requires login before accepting those protection commands, Chilkat authenticates and retries
1729
+ * them. Rejection of a required protection command causes the connection attempt to fail.
1730
+ *
1731
+ * After login, Chilkat sets binary transfer mode with `TYPE I`, requests `SYST`, sends `FEAT`
1732
+ * when {@link Ftp2.autoFeat} is enabled, and may send `OPTS UTF8 ON` when UTF-8 support is
1733
+ * advertised and {@link Ftp2.autoOptsUtf8} is enabled. It also obtains the initial current remote
1734
+ * directory.
1735
+ *
1736
+ * Calling this method while already connected establishes a new FTP session and replaces the
1737
+ * previous session state. The current remote directory, capability state, and listing cache are
1738
+ * initialized for the new login.
1739
+ *
1740
+ * A failed connection attempt does not leave an underlying plain FTP connection open. To separate
1741
+ * connection establishment from authentication, call {@link Ftp2.connectOnly} followed by {@link
1742
+ * Ftp2.loginAfterConnectOnly}.
1743
+ *
1744
+ * **Failure diagnosis:** After failure, inspect {@link Ftp2.connectFailReason}, {@link
1745
+ * Ftp2.lastReply}, and LastErrorText. A failure before the FTP greeting is usually DNS, routing,
1746
+ * firewall, proxy, TCP, or implicit-TLS related; a failure after the greeting may involve
1747
+ * explicit TLS, data-protection setup, authentication, or server policy.
1748
+ *
1749
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1750
+ * {@link Ftp2.connectAsync}.
1751
+ *
1752
+ * @throws Error if the call fails (the message names the reason); the full log is in
1753
+ * {@link Ftp2.lastErrorText}.
1754
+ */
1755
+ connect(): void
1756
+
1757
+ /**
1758
+ * Asynchronous form of {@link Ftp2.connect}: the same call on a native worker thread,
1759
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1760
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1761
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1762
+ *
1763
+ * The promise rejects with an Error if the call fails; the full log is in
1764
+ * {@link Ftp2.lastErrorText}.
1765
+ */
1766
+ connectAsync(): Promise<void>
1767
+
1768
+ /**
1769
+ * Establishes the configured proxy and TCP connection, performs any configured implicit or
1770
+ * explicit TLS setup, and receives the FTP server greeting, but does not send `USER` or `PASS`.
1771
+ * Complete authentication by calling {@link Ftp2.loginAfterConnectOnly}.
1772
+ *
1773
+ * With implicit FTPS, the TLS handshake occurs immediately after the TCP connection is
1774
+ * established and before the greeting is received. With explicit FTPS, Chilkat first receives the
1775
+ * greeting, sends `AUTH TLS` or `AUTH SSL`, and then performs the TLS handshake. When the control
1776
+ * channel is protected, Chilkat also sends `PBSZ 0` and the `PROT` command required by {@link
1777
+ * Ftp2.dataProtection}, even though login has not yet occurred.
1778
+ *
1779
+ * After success, {@link Ftp2.connectVerified} is `true` and {@link Ftp2.loginVerified} remains
1780
+ * `false`. The current remote directory may be unavailable until login because many servers
1781
+ * reject `PWD` before authentication.
1782
+ *
1783
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1784
+ * {@link Ftp2.connectOnlyAsync}.
1785
+ *
1786
+ * @throws Error if the call fails (the message names the reason); the full log is in
1787
+ * {@link Ftp2.lastErrorText}.
1788
+ */
1789
+ connectOnly(): void
1790
+
1791
+ /**
1792
+ * Asynchronous form of {@link Ftp2.connectOnly}: the same call on a native worker thread,
1793
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1794
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1795
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1796
+ *
1797
+ * The promise rejects with an Error if the call fails; the full log is in
1798
+ * {@link Ftp2.lastErrorText}.
1799
+ */
1800
+ connectOnlyAsync(): Promise<void>
1801
+
1802
+ /**
1803
+ * Upgrades an already-connected clear FTP control channel to explicit TLS. This method is
1804
+ * intended for a manually staged connection created with {@link Ftp2.connectOnly} while {@link
1805
+ * Ftp2.ssl}, {@link Ftp2.authTls}, and {@link Ftp2.authSsl} were disabled.
1806
+ *
1807
+ * Chilkat sends `AUTH TLS`, performs the TLS handshake, sends `PBSZ 0`, and then sends the `PROT`
1808
+ * command required by {@link Ftp2.dataProtection}. The method does not authenticate; call {@link
1809
+ * Ftp2.loginAfterConnectOnly} afterward.
1810
+ *
1811
+ * Do not call it when explicit or implicit FTPS was already enabled before connecting.
1812
+ *
1813
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1814
+ * {@link Ftp2.convertToTlsAsync}.
1815
+ *
1816
+ * @throws Error if the call fails (the message names the reason); the full log is in
1817
+ * {@link Ftp2.lastErrorText}.
1818
+ */
1819
+ convertToTls(): void
1820
+
1821
+ /**
1822
+ * Asynchronous form of {@link Ftp2.convertToTls}: the same call on a native worker thread,
1823
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1824
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1825
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1826
+ *
1827
+ * The promise rejects with an Error if the call fails; the full log is in
1828
+ * {@link Ftp2.lastErrorText}.
1829
+ */
1830
+ convertToTlsAsync(): Promise<void>
1831
+
1832
+ /**
1833
+ * Creates and returns a textual upload plan for the local directory at `localDir`. The object
1834
+ * must be connected because the plan records the current absolute remote directory together with
1835
+ * the local source paths.
1836
+ *
1837
+ * The generated plan contains absolute local paths and absolute remote directory operations.
1838
+ * Treat the text as a Chilkat-generated plan for {@link Ftp2.putPlan} rather than as a portable
1839
+ * or stable interchange format.
1840
+ *
1841
+ * The plan records what to do, not a snapshot of file contents. If a local file changes before
1842
+ * `PutPlan` executes, the current file contents are uploaded.
1843
+ *
1844
+ * **Resumable bulk upload:** `PutPlan` records completed operations in a log file. Reusing the
1845
+ * plan and log after interruption allows already completed steps to be skipped.
1846
+ *
1847
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1848
+ * {@link Ftp2.createPlanAsync}.
1849
+ *
1850
+ * @throws Error if the call fails (the message names the reason); the full log is in
1851
+ * {@link Ftp2.lastErrorText}.
1852
+ */
1853
+ createPlan(localDir: string): string
1854
+
1855
+ /**
1856
+ * Asynchronous form of {@link Ftp2.createPlan}: the same call on a native worker thread,
1857
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1858
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1859
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1860
+ *
1861
+ * The promise rejects with an Error if the call fails; the full log is in
1862
+ * {@link Ftp2.lastErrorText}.
1863
+ */
1864
+ createPlanAsync(localDir: string): Promise<string>
1865
+
1866
+ /**
1867
+ * Creates the remote directory at `remoteDirPath` by sending one `MKD` command. The path is
1868
+ * interpreted relative to the current remote directory unless the server recognizes it as
1869
+ * absolute.
1870
+ *
1871
+ * Chilkat does not split a multi-level path and does not issue separate commands to create
1872
+ * missing parent directories. Some servers create all levels from one `MKD a/b/c` command, while
1873
+ * others require the parent directories to exist.
1874
+ *
1875
+ * If the directory already exists, the server commonly returns an error. A successful call does
1876
+ * not refresh the cached indexed listing; call {@link Ftp2.clearDirCache} when a fresh listing is
1877
+ * required.
1878
+ *
1879
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1880
+ * {@link Ftp2.createRemoteDirAsync}.
1881
+ *
1882
+ * @throws Error if the call fails (the message names the reason); the full log is in
1883
+ * {@link Ftp2.lastErrorText}.
1884
+ */
1885
+ createRemoteDir(remoteDirPath: string): void
1886
+
1887
+ /**
1888
+ * Asynchronous form of {@link Ftp2.createRemoteDir}: the same call on a native worker thread,
1889
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1890
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1891
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1892
+ *
1893
+ * The promise rejects with an Error if the call fails; the full log is in
1894
+ * {@link Ftp2.lastErrorText}.
1895
+ */
1896
+ createRemoteDirAsync(remoteDirPath: string): Promise<void>
1897
+
1898
+ /**
1899
+ * Deletes files in the current remote directory whose names match the wildcard pattern in
1900
+ * `remotePattern`. The method returns the number deleted, or `-1` if the operation fails.
1901
+ *
1902
+ * Chilkat sends a server-side legacy listing request such as `LIST *.txt`, parses the returned
1903
+ * entries, and sends `DELE` for matching files. Matching case sensitivity and wildcard behavior
1904
+ * therefore depend on the server. Matching directories are not removed by this method.
1905
+ *
1906
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1907
+ * {@link Ftp2.deleteMatchingAsync}.
1908
+ */
1909
+ deleteMatching(remotePattern: string): number
1910
+
1911
+ /**
1912
+ * Asynchronous form of {@link Ftp2.deleteMatching}: the same call on a native worker thread,
1913
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1914
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1915
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1916
+ */
1917
+ deleteMatchingAsync(remotePattern: string): Promise<number>
1918
+
1919
+ /**
1920
+ * Deletes the remote file at `remoteFilePath`. The path may be relative to the current remote
1921
+ * directory or absolute according to the server's path syntax.
1922
+ *
1923
+ * A successful deletion does not refresh the cached indexed listing. Call {@link
1924
+ * Ftp2.clearDirCache} when a fresh listing is required.
1925
+ *
1926
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1927
+ * {@link Ftp2.deleteRemoteFileAsync}.
1928
+ *
1929
+ * @throws Error if the call fails (the message names the reason); the full log is in
1930
+ * {@link Ftp2.lastErrorText}.
1931
+ */
1932
+ deleteRemoteFile(remoteFilePath: string): void
1933
+
1934
+ /**
1935
+ * Asynchronous form of {@link Ftp2.deleteRemoteFile}: the same call on a native worker thread,
1936
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1937
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1938
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1939
+ *
1940
+ * The promise rejects with an Error if the call fails; the full log is in
1941
+ * {@link Ftp2.lastErrorText}.
1942
+ */
1943
+ deleteRemoteFileAsync(remoteFilePath: string): Promise<void>
1944
+
1945
+ /**
1946
+ * Recursively deletes the files and subdirectories beneath the current remote directory. Child
1947
+ * directories are removed after their contents are deleted, but the current root directory itself
1948
+ * remains in place and remains the current remote directory.
1949
+ *
1950
+ * **Destructive operation:** Set the current remote directory carefully before calling this
1951
+ * method. The VerifyDeleteFile and VerifyDeleteDir callbacks can set their skip output to prevent
1952
+ * selected items from being deleted.
1953
+ *
1954
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1955
+ * {@link Ftp2.deleteTreeAsync}.
1956
+ *
1957
+ * @throws Error if the call fails (the message names the reason); the full log is in
1958
+ * {@link Ftp2.lastErrorText}.
1959
+ */
1960
+ deleteTree(): void
1961
+
1962
+ /**
1963
+ * Asynchronous form of {@link Ftp2.deleteTree}: the same call on a native worker thread,
1964
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
1965
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
1966
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
1967
+ *
1968
+ * The promise rejects with an Error if the call fails; the full log is in
1969
+ * {@link Ftp2.lastErrorText}.
1970
+ */
1971
+ deleteTreeAsync(): Promise<void>
1972
+
1973
+ /**
1974
+ * Returns an XML representation of the complete remote directory tree rooted at the current
1975
+ * remote directory. The result uses a `<dirTree>` root, nested `<dir name="...">` elements, and
1976
+ * file elements containing the name, size, and available modification time.
1977
+ *
1978
+ * ```
1979
+ * <dirTree>
1980
+ * <file sz="123" dt="Mon, 27 Jul 2026 06:55:00 -0500">root.txt</file>
1981
+ * <dir name="subdir">
1982
+ * <file sz="456" dt="...">nested.txt</file>
1983
+ * </dir>
1984
+ * </dirTree>
1985
+ * ```
1986
+ *
1987
+ * Chilkat traverses by listing each directory and temporarily changing the server's current
1988
+ * directory. Empty directories are included, and the original current remote directory is
1989
+ * restored after successful traversal.
1990
+ *
1991
+ * Traversal is affected by {@link Ftp2.syncMustMatch}, {@link Ftp2.syncMustNotMatch}, {@link
1992
+ * Ftp2.syncMustMatchDir}, and {@link Ftp2.syncMustNotMatchDir}. This method retrieves metadata;
1993
+ * it does not download file content.
1994
+ *
1995
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
1996
+ * {@link Ftp2.dirTreeXmlAsync}.
1997
+ *
1998
+ * @throws Error if the call fails (the message names the reason); the full log is in
1999
+ * {@link Ftp2.lastErrorText}.
2000
+ */
2001
+ dirTreeXml(): string
2002
+
2003
+ /**
2004
+ * Asynchronous form of {@link Ftp2.dirTreeXml}: the same call on a native worker thread,
2005
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2006
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2007
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2008
+ *
2009
+ * The promise rejects with an Error if the call fails; the full log is in
2010
+ * {@link Ftp2.lastErrorText}.
2011
+ */
2012
+ dirTreeXmlAsync(): Promise<string>
2013
+
2014
+ /**
2015
+ * Ends the FTP session and closes the control connection. When connected, Chilkat sends `QUIT`
2016
+ * when possible and then closes the socket.
2017
+ *
2018
+ * The method is idempotent. Calling it before a connection exists or calling it again after the
2019
+ * session is already closed succeeds without sending another FTP command. Historical properties
2020
+ * such as {@link Ftp2.connectVerified}, {@link Ftp2.loginVerified}, {@link Ftp2.greeting}, and
2021
+ * {@link Ftp2.lastReply} may retain information from the completed session; use {@link
2022
+ * Ftp2.checkConnection} for current connection state.
2023
+ *
2024
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2025
+ * {@link Ftp2.disconnectAsync}.
2026
+ *
2027
+ * @throws Error if the call fails (the message names the reason); the full log is in
2028
+ * {@link Ftp2.lastErrorText}.
2029
+ */
2030
+ disconnect(): void
2031
+
2032
+ /**
2033
+ * Asynchronous form of {@link Ftp2.disconnect}: the same call on a native worker thread,
2034
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2035
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2036
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2037
+ *
2038
+ * The promise rejects with an Error if the call fails; the full log is in
2039
+ * {@link Ftp2.lastErrorText}.
2040
+ */
2041
+ disconnectAsync(): Promise<void>
2042
+
2043
+ /**
2044
+ * Downloads all selected files and subdirectories beneath the current remote directory and
2045
+ * recreates the tree under the local directory at `localRoot`. Existing local files are
2046
+ * overwritten, and eligible empty remote directories are created locally.
2047
+ *
2048
+ * The file and directory filters in {@link Ftp2.syncMustMatch}, {@link Ftp2.syncMustNotMatch},
2049
+ * {@link Ftp2.syncMustMatchDir}, and {@link Ftp2.syncMustNotMatchDir} apply. Use {@link
2050
+ * Ftp2.setOldestDateStr} to exclude files older than a chosen date.
2051
+ *
2052
+ * **Windows filenames:** Remote names that contain characters invalid in a Windows filename are
2053
+ * sanitized when creating the local tree. Invalid characters are replaced with underscores and
2054
+ * trailing periods are removed. For example, `a<b>c:d|e?f*g.txt` is saved as `a_b_c_d_e_f_g.txt`.
2055
+ * Different remote names can potentially map to the same local path.
2056
+ *
2057
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2058
+ * {@link Ftp2.downloadTreeAsync}.
2059
+ *
2060
+ * @throws Error if the call fails (the message names the reason); the full log is in
2061
+ * {@link Ftp2.lastErrorText}.
2062
+ */
2063
+ downloadTree(localRoot: string): void
2064
+
2065
+ /**
2066
+ * Asynchronous form of {@link Ftp2.downloadTree}: the same call on a native worker thread,
2067
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2068
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2069
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2070
+ *
2071
+ * The promise rejects with an Error if the call fails; the full log is in
2072
+ * {@link Ftp2.lastErrorText}.
2073
+ */
2074
+ downloadTreeAsync(localRoot: string): Promise<void>
2075
+
2076
+ /**
2077
+ * Sends `FEAT` and returns the server's multiline capability reply. A server may return an error
2078
+ * when the command is unsupported or not permitted in the current session state.
2079
+ *
2080
+ * A successful explicit call performs the same capability processing as automatic `FEAT`. It can
2081
+ * update {@link Ftp2.hasModeZ}, listing-extension detection, UTF-8 handling through {@link
2082
+ * Ftp2.autoOptsUtf8}, and {@link Ftp2.useEpsv} through {@link Ftp2.autoSetUseEpsv}, even when
2083
+ * {@link Ftp2.autoFeat} is `false`.
2084
+ *
2085
+ * Some servers permit `FEAT` before authentication and others do not.
2086
+ *
2087
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2088
+ * {@link Ftp2.featAsync}.
2089
+ *
2090
+ * @throws Error if the call fails (the message names the reason); the full log is in
2091
+ * {@link Ftp2.lastErrorText}.
2092
+ */
2093
+ feat(): string
2094
+
2095
+ /**
2096
+ * Asynchronous form of {@link Ftp2.feat}: the same call on a native worker thread,
2097
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2098
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2099
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2100
+ *
2101
+ * The promise rejects with an Error if the call fails; the full log is in
2102
+ * {@link Ftp2.lastErrorText}.
2103
+ */
2104
+ featAsync(): Promise<string>
2105
+
2106
+ /**
2107
+ * Returns the creation time for the file or directory named by `filename` in the current remote
2108
+ * directory as an RFC 822 date-time string, such as `Fri, 21 Nov 1997 09:55:06 -0600`.
2109
+ *
2110
+ * `filename` must be a name, not a path. Set the current remote directory first, and ensure
2111
+ * {@link Ftp2.listPattern} matches the name so the item is present in the cached listing.
2112
+ *
2113
+ * **Creation times:** Many UNIX-like filesystems and FTP listing formats do not provide a file
2114
+ * creation time. In that case the server or parser may report the modification time instead.
2115
+ *
2116
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2117
+ * {@link Ftp2.getCreateTimeByNameStrAsync}.
2118
+ *
2119
+ * @throws Error if the call fails (the message names the reason); the full log is in
2120
+ * {@link Ftp2.lastErrorText}.
2121
+ */
2122
+ getCreateTimeByNameStr(filename: string): string
2123
+
2124
+ /**
2125
+ * Asynchronous form of {@link Ftp2.getCreateTimeByNameStr}: the same call on a native worker
2126
+ * thread,
2127
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2128
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2129
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2130
+ *
2131
+ * The promise rejects with an Error if the call fails; the full log is in
2132
+ * {@link Ftp2.lastErrorText}.
2133
+ */
2134
+ getCreateTimeByNameStrAsync(filename: string): Promise<string>
2135
+
2136
+ /**
2137
+ * Returns the creation time for cached directory-listing entry `index` as an RFC 822 date-time
2138
+ * string, such as `Fri, 21 Nov 1997 09:55:06 -0600`. `index` is a zero-based index from `0`
2139
+ * through one less than {@link Ftp2.getDirCount}. Creation-time availability depends on the
2140
+ * server and listing format.
2141
+ *
2142
+ * An invalid index or unavailable creation time is a method failure and sets `LastMethodSuccess`
2143
+ * to `false`.
2144
+ *
2145
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2146
+ * {@link Ftp2.getCreateTimeStrAsync}.
2147
+ *
2148
+ * @throws Error if the call fails (the message names the reason); the full log is in
2149
+ * {@link Ftp2.lastErrorText}.
2150
+ */
2151
+ getCreateTimeStr(index: number): string
2152
+
2153
+ /**
2154
+ * Asynchronous form of {@link Ftp2.getCreateTimeStr}: the same call on a native worker thread,
2155
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2156
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2157
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2158
+ *
2159
+ * The promise rejects with an Error if the call fails; the full log is in
2160
+ * {@link Ftp2.lastErrorText}.
2161
+ */
2162
+ getCreateTimeStrAsync(index: number): Promise<string>
2163
+
2164
+ /**
2165
+ * Returns the current working directory reported by the FTP server, normally by using the `PWD`
2166
+ * command.
2167
+ *
2168
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2169
+ * {@link Ftp2.getCurrentRemoteDirAsync}.
2170
+ *
2171
+ * @throws Error if the call fails (the message names the reason); the full log is in
2172
+ * {@link Ftp2.lastErrorText}.
2173
+ */
2174
+ getCurrentRemoteDir(): string
2175
+
2176
+ /**
2177
+ * Asynchronous form of {@link Ftp2.getCurrentRemoteDir}: the same call on a native worker thread,
2178
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2179
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2180
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2181
+ *
2182
+ * The promise rejects with an Error if the call fails; the full log is in
2183
+ * {@link Ftp2.lastErrorText}.
2184
+ */
2185
+ getCurrentRemoteDirAsync(): Promise<string>
2186
+
2187
+ /**
2188
+ * Returns the number of files and directories in the cached listing of the current remote
2189
+ * directory after applying the case-insensitive {@link Ftp2.listPattern}. On the first call,
2190
+ * Chilkat obtains and caches the full directory listing and then applies the pattern locally.
2191
+ * Repeated indexed listing calls use the cache until it is invalidated. Returns `-1` if the
2192
+ * listing cannot be obtained or parsed.
2193
+ *
2194
+ * The cache is not automatically refreshed by uploads, deletions, renames, directory
2195
+ * creation/removal, raw commands, or changes to the listing-command selection properties. Call
2196
+ * {@link Ftp2.clearDirCache} when the server contents or desired listing format may have changed.
2197
+ *
2198
+ * **Directory listings use a data connection:** An FTP listing is transferred over a separate
2199
+ * data connection, just like an upload or download. If this method stalls, investigate
2200
+ * passive/active mode, NAT, firewall rules, and the data-connection details in LastErrorText.
2201
+ *
2202
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2203
+ * {@link Ftp2.getDirCountAsync}.
2204
+ */
2205
+ getDirCount(): number
2206
+
2207
+ /**
2208
+ * Asynchronous form of {@link Ftp2.getDirCount}: the same call on a native worker thread,
2209
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2210
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2211
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2212
+ */
2213
+ getDirCountAsync(): Promise<number>
2214
+
2215
+ /**
2216
+ * Downloads the remote file at `remoteFilePath` to the local filesystem path at `localFilePath`.
2217
+ * The local parent directory must already exist; this method does not create missing local
2218
+ * directories.
2219
+ *
2220
+ * When not resuming, the downloaded file replaces an existing destination after the server
2221
+ * accepts the transfer. If the server rejects the request before transfer begins, such as when
2222
+ * the remote file does not exist, an existing destination file is preserved.
2223
+ *
2224
+ * Use {@link Ftp2.restartNext} immediately before this call to resume from the existing local
2225
+ * file length. {@link Ftp2.readTimeout} controls data-channel inactivity. If a transfer fails
2226
+ * after receiving some data, inspect {@link Ftp2.partialTransfer}; completed bytes are not rolled
2227
+ * back.
2228
+ *
2229
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2230
+ * {@link Ftp2.getFileAsync}.
2231
+ *
2232
+ * @throws Error if the call fails (the message names the reason); the full log is in
2233
+ * {@link Ftp2.lastErrorText}.
2234
+ */
2235
+ getFile(remoteFilePath: string, localFilePath: string): void
2236
+
2237
+ /**
2238
+ * Asynchronous form of {@link Ftp2.getFile}: the same call on a native worker thread,
2239
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2240
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2241
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2242
+ *
2243
+ * The promise rejects with an Error if the call fails; the full log is in
2244
+ * {@link Ftp2.lastErrorText}.
2245
+ */
2246
+ getFileAsync(remoteFilePath: string, localFilePath: string): Promise<void>
2247
+
2248
+ /**
2249
+ * Returns the name of cached directory-listing entry `index`. `index` is a zero-based index from
2250
+ * `0` through one less than {@link Ftp2.getDirCount}. The returned value is the name from the
2251
+ * listing, not necessarily a full remote path.
2252
+ *
2253
+ * An out-of-range or negative index is a method failure and sets `LastMethodSuccess` to `false`.
2254
+ *
2255
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2256
+ * {@link Ftp2.getFilenameAsync}.
2257
+ *
2258
+ * @throws Error if the call fails (the message names the reason); the full log is in
2259
+ * {@link Ftp2.lastErrorText}.
2260
+ */
2261
+ getFilename(index: number): string
2262
+
2263
+ /**
2264
+ * Asynchronous form of {@link Ftp2.getFilename}: the same call on a native worker thread,
2265
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2266
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2267
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2268
+ *
2269
+ * The promise rejects with an Error if the call fails; the full log is in
2270
+ * {@link Ftp2.lastErrorText}.
2271
+ */
2272
+ getFilenameAsync(index: number): Promise<string>
2273
+
2274
+ /**
2275
+ * Returns the group name or identifier for cached directory-listing entry `index`. The value is
2276
+ * empty when the server does not provide group metadata.
2277
+ *
2278
+ * **MLSD metadata:** MLSD commonly provides accurate size and time facts but often omits owner
2279
+ * and group. On a UNIX-like server, disabling {@link Ftp2.allowMlsd} may expose owner/group
2280
+ * through LIST, at the cost of less standardized and potentially less accurate listing data.
2281
+ *
2282
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2283
+ * {@link Ftp2.getGroupAsync}.
2284
+ *
2285
+ * @throws Error if the call fails (the message names the reason); the full log is in
2286
+ * {@link Ftp2.lastErrorText}.
2287
+ */
2288
+ getGroup(index: number): string
2289
+
2290
+ /**
2291
+ * Asynchronous form of {@link Ftp2.getGroup}: the same call on a native worker thread,
2292
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2293
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2294
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2295
+ *
2296
+ * The promise rejects with an Error if the call fails; the full log is in
2297
+ * {@link Ftp2.lastErrorText}.
2298
+ */
2299
+ getGroupAsync(index: number): Promise<string>
2300
+
2301
+ /**
2302
+ * Returns `true` when cached directory-listing entry `index` is identified as a directory.
2303
+ * `index` is a zero-based index into the current cached listing.
2304
+ *
2305
+ * For an invalid index the method returns `false` and sets `LastMethodSuccess` to `false`. Check
2306
+ * that property when `false` must be distinguished from a valid non-directory entry.
2307
+ *
2308
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2309
+ * {@link Ftp2.getIsDirectoryAsync}.
2310
+ */
2311
+ getIsDirectory(index: number): boolean
2312
+
2313
+ /**
2314
+ * Asynchronous form of {@link Ftp2.getIsDirectory}: the same call on a native worker thread,
2315
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2316
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2317
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2318
+ */
2319
+ getIsDirectoryAsync(index: number): Promise<boolean>
2320
+
2321
+ /**
2322
+ * Returns `true` when cached directory-listing entry `index` is identified as a symbolic link.
2323
+ * This information is available only when the server's listing format reports it.
2324
+ *
2325
+ * For an invalid index the method returns `false` and sets `LastMethodSuccess` to `false`. A
2326
+ * valid `false` result can also mean the entry is not a link or the listing did not provide link
2327
+ * metadata.
2328
+ *
2329
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2330
+ * {@link Ftp2.getIsSymbolicLinkAsync}.
2331
+ */
2332
+ getIsSymbolicLink(index: number): boolean
2333
+
2334
+ /**
2335
+ * Asynchronous form of {@link Ftp2.getIsSymbolicLink}: the same call on a native worker thread,
2336
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2337
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2338
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2339
+ */
2340
+ getIsSymbolicLinkAsync(index: number): Promise<boolean>
2341
+
2342
+ /**
2343
+ * Returns the last-modified time for the item named by `filename` in the current remote directory
2344
+ * as an RFC 822 date-time string, such as `Fri, 21 Nov 1997 09:55:06 -0600`.
2345
+ *
2346
+ * `filename` must be a name, not a path. Set the current remote directory first, and ensure
2347
+ * {@link Ftp2.listPattern} matches the name.
2348
+ *
2349
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2350
+ * {@link Ftp2.getLastModifiedTimeByNameStrAsync}.
2351
+ *
2352
+ * @throws Error if the call fails (the message names the reason); the full log is in
2353
+ * {@link Ftp2.lastErrorText}.
2354
+ */
2355
+ getLastModifiedTimeByNameStr(filename: string): string
2356
+
2357
+ /**
2358
+ * Asynchronous form of {@link Ftp2.getLastModifiedTimeByNameStr}: the same call on a native
2359
+ * worker thread,
2360
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2361
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2362
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2363
+ *
2364
+ * The promise rejects with an Error if the call fails; the full log is in
2365
+ * {@link Ftp2.lastErrorText}.
2366
+ */
2367
+ getLastModifiedTimeByNameStrAsync(filename: string): Promise<string>
2368
+
2369
+ /**
2370
+ * Returns the last-modified time for cached directory-listing entry `index` as an RFC 822
2371
+ * date-time string, such as `Fri, 21 Nov 1997 09:55:06 -0600`. `index` is a zero-based index into
2372
+ * the current cached listing.
2373
+ *
2374
+ * An invalid index or unavailable timestamp is a method failure and sets `LastMethodSuccess` to
2375
+ * `false`.
2376
+ *
2377
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2378
+ * {@link Ftp2.getLastModifiedTimeStrAsync}.
2379
+ *
2380
+ * @throws Error if the call fails (the message names the reason); the full log is in
2381
+ * {@link Ftp2.lastErrorText}.
2382
+ */
2383
+ getLastModifiedTimeStr(index: number): string
2384
+
2385
+ /**
2386
+ * Asynchronous form of {@link Ftp2.getLastModifiedTimeStr}: the same call on a native worker
2387
+ * thread,
2388
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2389
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2390
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2391
+ *
2392
+ * The promise rejects with an Error if the call fails; the full log is in
2393
+ * {@link Ftp2.lastErrorText}.
2394
+ */
2395
+ getLastModifiedTimeStrAsync(index: number): Promise<string>
2396
+
2397
+ /**
2398
+ * Returns the owner name or identifier for cached directory-listing entry `index`. The value is
2399
+ * empty when a valid entry has no owner metadata. An invalid index is a method failure and sets
2400
+ * `LastMethodSuccess` to `false`.
2401
+ *
2402
+ * **MLSD metadata:** MLSD commonly provides accurate size and time facts but often omits owner
2403
+ * and group. On a UNIX-like server, disabling {@link Ftp2.allowMlsd} may expose owner/group
2404
+ * through LIST, at the cost of less standardized and potentially less accurate listing data.
2405
+ *
2406
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2407
+ * {@link Ftp2.getOwnerAsync}.
2408
+ *
2409
+ * @throws Error if the call fails (the message names the reason); the full log is in
2410
+ * {@link Ftp2.lastErrorText}.
2411
+ */
2412
+ getOwner(index: number): string
2413
+
2414
+ /**
2415
+ * Asynchronous form of {@link Ftp2.getOwner}: the same call on a native worker thread,
2416
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2417
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2418
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2419
+ *
2420
+ * The promise rejects with an Error if the call fails; the full log is in
2421
+ * {@link Ftp2.lastErrorText}.
2422
+ */
2423
+ getOwnerAsync(index: number): Promise<string>
2424
+
2425
+ /**
2426
+ * Returns the format identifier for the permissions string available for cached listing entry
2427
+ * `index`. The value is empty when no permissions are available.
2428
+ *
2429
+ * ValueFormat
2430
+ *
2431
+ * | `mlsd` | | The RFC 3659 `perm` fact. |
2432
+ *
2433
+ * | `unix` | | A UNIX/POSIX-style mode string. |
2434
+ *
2435
+ * | `netware` | | NetWare trustee rights. |
2436
+ *
2437
+ * | `openvms` | | An OpenVMS protection string. |
2438
+ *
2439
+ * | `batchStatusFlags` | | Connect:Enterprise batch status flags. |
2440
+ *
2441
+ * Use {@link Ftp2.getPermissions} to obtain the corresponding value.
2442
+ *
2443
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2444
+ * {@link Ftp2.getPermTypeAsync}.
2445
+ *
2446
+ * @throws Error if the call fails (the message names the reason); the full log is in
2447
+ * {@link Ftp2.lastErrorText}.
2448
+ */
2449
+ getPermType(index: number): string
2450
+
2451
+ /**
2452
+ * Asynchronous form of {@link Ftp2.getPermType}: the same call on a native worker thread,
2453
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2454
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2455
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2456
+ *
2457
+ * The promise rejects with an Error if the call fails; the full log is in
2458
+ * {@link Ftp2.lastErrorText}.
2459
+ */
2460
+ getPermTypeAsync(index: number): Promise<string>
2461
+
2462
+ /**
2463
+ * Returns the permissions or status string for cached directory-listing entry `index`. The value
2464
+ * is empty when the server provides no such metadata. Use {@link Ftp2.getPermType} to determine
2465
+ * how to interpret the result.
2466
+ *
2467
+ * Permission typeReturned information
2468
+ *
2469
+ * | `mlsd` | | The RFC 3659 `perm` fact. Letters describe FTP operations available to the
2470
+ * logged-in user, such as append, create, delete, enter, list, rename, or write. |
2471
+ *
2472
+ * | `unix` | | A UNIX-style string such as `rwxr-xr-x`. |
2473
+ *
2474
+ * | `netware` | | NetWare trustee-right letters such as read, write, create, erase, modify, file
2475
+ * scan, access control, and supervisor. |
2476
+ *
2477
+ * | `openvms` | | An OpenVMS protection string such as `(RWED,RWED,R,R)`. |
2478
+ *
2479
+ * | `batchStatusFlags` | | A fixed-position Connect:Enterprise batch-status string such as
2480
+ * `-CR--M----`. |
2481
+ *
2482
+ * **MLSD perm is not a file mode:** The MLSD perm fact describes operations the current FTP
2483
+ * account may perform. It is not equivalent to UNIX owner/group/other permission bits.
2484
+ *
2485
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2486
+ * {@link Ftp2.getPermissionsAsync}.
2487
+ *
2488
+ * @throws Error if the call fails (the message names the reason); the full log is in
2489
+ * {@link Ftp2.lastErrorText}.
2490
+ */
2491
+ getPermissions(index: number): string
2492
+
2493
+ /**
2494
+ * Asynchronous form of {@link Ftp2.getPermissions}: 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 Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2497
+ * {@link Ftp2.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 Ftp2.lastErrorText}.
2501
+ */
2502
+ getPermissionsAsync(index: number): Promise<string>
2503
+
2504
+ /**
2505
+ * Downloads the remote file at `remoteFilename`, decodes the bytes using the character encoding
2506
+ * named by `charset`, and returns the text. A byte-order mark for the selected encoding is
2507
+ * recognized and omitted from the returned text.
2508
+ *
2509
+ * This method controls file-content decoding. The encoding used for the remote path itself is
2510
+ * controlled by {@link Ftp2.commandCharset}.
2511
+ *
2512
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2513
+ * {@link Ftp2.getRemoteFileTextCAsync}.
2514
+ *
2515
+ * @throws Error if the call fails (the message names the reason); the full log is in
2516
+ * {@link Ftp2.lastErrorText}.
2517
+ */
2518
+ getRemoteFileTextC(remoteFilename: string, charset: string): string
2519
+
2520
+ /**
2521
+ * Asynchronous form of {@link Ftp2.getRemoteFileTextC}: the same call on a native worker thread,
2522
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2523
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2524
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2525
+ *
2526
+ * The promise rejects with an Error if the call fails; the full log is in
2527
+ * {@link Ftp2.lastErrorText}.
2528
+ */
2529
+ getRemoteFileTextCAsync(remoteFilename: string, charset: string): Promise<string>
2530
+
2531
+ /**
2532
+ * Downloads the remote file at `remoteFilename` and returns its contents decoded using the ANSI
2533
+ * character encoding. Use {@link Ftp2.getRemoteFileTextC} when the file uses UTF-8 or another
2534
+ * explicitly known encoding.
2535
+ *
2536
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2537
+ * {@link Ftp2.getRemoteFileTextDataAsync}.
2538
+ *
2539
+ * @throws Error if the call fails (the message names the reason); the full log is in
2540
+ * {@link Ftp2.lastErrorText}.
2541
+ */
2542
+ getRemoteFileTextData(remoteFilename: string): string
2543
+
2544
+ /**
2545
+ * Asynchronous form of {@link Ftp2.getRemoteFileTextData}: the same call on a native worker
2546
+ * thread,
2547
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2548
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2549
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2550
+ *
2551
+ * The promise rejects with an Error if the call fails; the full log is in
2552
+ * {@link Ftp2.lastErrorText}.
2553
+ */
2554
+ getRemoteFileTextDataAsync(remoteFilename: string): Promise<string>
2555
+
2556
+ /**
2557
+ * Returns the size in bytes of cached directory-listing entry `index` as a 32-bit integer. Use
2558
+ * {@link Ftp2.getSize64} for large files.
2559
+ *
2560
+ * Returns `-1` when `index` is invalid or the size is unavailable. Because this method returns an
2561
+ * integer, do not use `LastMethodSuccess` to interpret the result.
2562
+ *
2563
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2564
+ * {@link Ftp2.getSizeAsync}.
2565
+ */
2566
+ getSize(index: number): number
2567
+
2568
+ /**
2569
+ * Asynchronous form of {@link Ftp2.getSize}: the same call on a native worker thread,
2570
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2571
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2572
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2573
+ */
2574
+ getSizeAsync(index: number): Promise<number>
2575
+
2576
+ /**
2577
+ * Returns the size in bytes of cached directory-listing entry `index` as a 64-bit integer.
2578
+ * Returns `-1` when `index` is invalid or the size is unavailable.
2579
+ *
2580
+ * Because this method returns an integer, do not use `LastMethodSuccess` to interpret the result.
2581
+ *
2582
+ * 64-bit integers are passed as JavaScript numbers (exact up to 2^53).
2583
+ *
2584
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2585
+ * {@link Ftp2.getSize64Async}.
2586
+ */
2587
+ getSize64(index: number): number
2588
+
2589
+ /**
2590
+ * Asynchronous form of {@link Ftp2.getSize64}: the same call on a native worker thread,
2591
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2592
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2593
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2594
+ */
2595
+ getSize64Async(index: number): Promise<number>
2596
+
2597
+ /**
2598
+ * Returns the size in bytes of the file named by `filename` in the current remote directory as a
2599
+ * 32-bit integer. Returns `-1` when the file is not found or the size cannot be obtained. Use
2600
+ * {@link Ftp2.getSizeByName64} for large files.
2601
+ *
2602
+ * `filename` must be a name, not a path. Set the current remote directory first, and ensure
2603
+ * {@link Ftp2.listPattern} matches the name.
2604
+ *
2605
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2606
+ * {@link Ftp2.getSizeByNameAsync}.
2607
+ */
2608
+ getSizeByName(filename: string): number
2609
+
2610
+ /**
2611
+ * Asynchronous form of {@link Ftp2.getSizeByName}: the same call on a native worker thread,
2612
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2613
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2614
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2615
+ */
2616
+ getSizeByNameAsync(filename: string): Promise<number>
2617
+
2618
+ /**
2619
+ * Sends a `SIZE` command for `filename` and returns the remote size in bytes as a 64-bit integer.
2620
+ * Returns `-1` when the server rejects the command, the item is not found, or the size is
2621
+ * unavailable.
2622
+ *
2623
+ * This method does not depend on the indexed directory cache or {@link Ftp2.listPattern}.
2624
+ * Filename and path case sensitivity are determined by the FTP server and its filesystem.
2625
+ *
2626
+ * 64-bit integers are passed as JavaScript numbers (exact up to 2^53).
2627
+ *
2628
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2629
+ * {@link Ftp2.getSizeByName64Async}.
2630
+ */
2631
+ getSizeByName64(filename: string): number
2632
+
2633
+ /**
2634
+ * Asynchronous form of {@link Ftp2.getSizeByName64}: the same call on a native worker thread,
2635
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2636
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2637
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2638
+ */
2639
+ getSizeByName64Async(filename: string): Promise<number>
2640
+
2641
+ /**
2642
+ * Returns the size in bytes of cached directory-listing entry `index` as a decimal string. This
2643
+ * form avoids integer-size limits in languages without a convenient 64-bit type.
2644
+ *
2645
+ * An out-of-range or negative index is a method failure and sets `LastMethodSuccess` to `false`.
2646
+ *
2647
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2648
+ * {@link Ftp2.getSizeStrAsync}.
2649
+ *
2650
+ * @throws Error if the call fails (the message names the reason); the full log is in
2651
+ * {@link Ftp2.lastErrorText}.
2652
+ */
2653
+ getSizeStr(index: number): string
2654
+
2655
+ /**
2656
+ * Asynchronous form of {@link Ftp2.getSizeStr}: the same call on a native worker thread,
2657
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2658
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2659
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2660
+ *
2661
+ * The promise rejects with an Error if the call fails; the full log is in
2662
+ * {@link Ftp2.lastErrorText}.
2663
+ */
2664
+ getSizeStrAsync(index: number): Promise<string>
2665
+
2666
+ /**
2667
+ * Returns the size in bytes of the file named by `filename` in the current remote directory as a
2668
+ * decimal string. This form avoids language-specific integer limits.
2669
+ *
2670
+ * `filename` must be a name, not a path. Set the current remote directory first, and ensure
2671
+ * {@link Ftp2.listPattern} matches the name.
2672
+ *
2673
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2674
+ * {@link Ftp2.getSizeStrByNameAsync}.
2675
+ *
2676
+ * @throws Error if the call fails (the message names the reason); the full log is in
2677
+ * {@link Ftp2.lastErrorText}.
2678
+ */
2679
+ getSizeStrByName(filename: string): string
2680
+
2681
+ /**
2682
+ * Asynchronous form of {@link Ftp2.getSizeStrByName}: the same call on a native worker thread,
2683
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2684
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2685
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2686
+ *
2687
+ * The promise rejects with an Error if the call fails; the full log is in
2688
+ * {@link Ftp2.lastErrorText}.
2689
+ */
2690
+ getSizeStrByNameAsync(filename: string): Promise<string>
2691
+
2692
+ /**
2693
+ * Sends a legacy `LIST` request and returns the server's raw textual listing. `pattern` is
2694
+ * appended literally as a server-side listing argument. An empty `pattern` lists the current
2695
+ * remote directory; a value such as `*.txt` sends a command such as `LIST *.txt`.
2696
+ *
2697
+ * {@link Ftp2.listOption} is also appended literally before `pattern`. For example, `ListOption =
2698
+ * "-a"` and `pattern` equal to `*.txt` send `LIST -a *.txt`.
2699
+ *
2700
+ * This method does not use `MLSD`, `NLST`, {@link Ftp2.listPattern}, or the indexed directory
2701
+ * cache. Wildcard matching and case sensitivity are determined by the server. The format of
2702
+ * `LIST` output is server-specific.
2703
+ *
2704
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2705
+ * {@link Ftp2.getTextDirListingAsync}.
2706
+ *
2707
+ * @throws Error if the call fails (the message names the reason); the full log is in
2708
+ * {@link Ftp2.lastErrorText}.
2709
+ */
2710
+ getTextDirListing(pattern: string): string
2711
+
2712
+ /**
2713
+ * Asynchronous form of {@link Ftp2.getTextDirListing}: the same call on a native worker thread,
2714
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2715
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2716
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2717
+ *
2718
+ * The promise rejects with an Error if the call fails; the full log is in
2719
+ * {@link Ftp2.lastErrorText}.
2720
+ */
2721
+ getTextDirListingAsync(pattern: string): Promise<string>
2722
+
2723
+ /**
2724
+ * Retrieves a directory listing for `pattern` and returns parsed entries as an XML document
2725
+ * rooted at `<remoteDir>`. Files are represented by `<file>` elements containing `<name>`,
2726
+ * `<size>`, and available time elements; directories are represented by `<dir>` elements.
2727
+ *
2728
+ * ```
2729
+ * <remoteDir>
2730
+ * <file>
2731
+ * <name>report.txt</name>
2732
+ * <size>1234</size>
2733
+ * <lastModTime full="20260727-065541" ... />
2734
+ * </file>
2735
+ * <dir lastModTime="20260727-065542" ...>archive</dir>
2736
+ * </remoteDir>
2737
+ * ```
2738
+ *
2739
+ * When `pattern` is empty, Chilkat uses the normal listing selection: `MLSD` when allowed and
2740
+ * advertised, otherwise `LIST` or `NLST` according to the listing properties. When `pattern` is
2741
+ * nonempty, Chilkat sends `LIST ARG1`, so wildcard matching and case sensitivity are
2742
+ * server-dependent.
2743
+ *
2744
+ * This method does not use or populate the indexed directory cache and {@link Ftp2.listPattern}
2745
+ * is not applied.
2746
+ *
2747
+ * **Timestamp interpretation:** Returned last-modified values are expressed in the client's local
2748
+ * time. `MLSD` timestamps are standardized as UTC, while legacy `LIST` timestamps may omit
2749
+ * timezone and seconds, so exact conversion can be impossible when the server timezone is
2750
+ * unknown.
2751
+ *
2752
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2753
+ * {@link Ftp2.getXmlDirListingAsync}.
2754
+ *
2755
+ * @throws Error if the call fails (the message names the reason); the full log is in
2756
+ * {@link Ftp2.lastErrorText}.
2757
+ */
2758
+ getXmlDirListing(pattern: string): string
2759
+
2760
+ /**
2761
+ * Asynchronous form of {@link Ftp2.getXmlDirListing}: the same call on a native worker thread,
2762
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2763
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2764
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2765
+ *
2766
+ * The promise rejects with an Error if the call fails; the full log is in
2767
+ * {@link Ftp2.lastErrorText}.
2768
+ */
2769
+ getXmlDirListingAsync(pattern: string): Promise<string>
2770
+
2771
+ /**
2772
+ * Uploads the local file at `localPath` to the remote path at `remotePath` as a sequence of data
2773
+ * transfers, each containing up to `chunkSize` bytes. The first chunk is sent with `STOR`, which
2774
+ * creates or replaces `remotePath`, and each later chunk is sent with `APPE`.
2775
+ *
2776
+ * This method addresses a specific FTP failure mode: during one very long data transfer, the
2777
+ * control connection is idle and may be silently dropped by a firewall, NAT device, or server
2778
+ * timeout. Completing the upload as multiple shorter transfers periodically uses the control
2779
+ * channel.
2780
+ *
2781
+ * `chunkSize` is the in-memory chunk size. Larger chunks reduce FTP command overhead but consume
2782
+ * more memory and leave the control channel idle longer; smaller chunks have the opposite
2783
+ * tradeoff. Transfer counters represent the complete source file, not only the final chunk.
2784
+ *
2785
+ * **Alternative:** For ordinary large files, first consider enabling {@link
2786
+ * Ftp2.largeFileMeasures}. Use chunked upload when infrastructure still drops the idle control
2787
+ * session.
2788
+ *
2789
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2790
+ * {@link Ftp2.largeFileUploadAsync}.
2791
+ *
2792
+ * @throws Error if the call fails (the message names the reason); the full log is in
2793
+ * {@link Ftp2.lastErrorText}.
2794
+ */
2795
+ largeFileUpload(localPath: string, remotePath: string, chunkSize: number): void
2796
+
2797
+ /**
2798
+ * Asynchronous form of {@link Ftp2.largeFileUpload}: the same call on a native worker thread,
2799
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2800
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2801
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2802
+ *
2803
+ * The promise rejects with an Error if the call fails; the full log is in
2804
+ * {@link Ftp2.lastErrorText}.
2805
+ */
2806
+ largeFileUploadAsync(localPath: string, remotePath: string, chunkSize: number): Promise<void>
2807
+
2808
+ /**
2809
+ * Authenticates an FTP control connection previously established by {@link Ftp2.connectOnly}.
2810
+ * Chilkat sends `USER`, `PASS`, and `ACCT` when required, then performs the normal post-login
2811
+ * initialization such as `TYPE I`, `SYST`, capability discovery, and UTF-8 setup.
2812
+ *
2813
+ * If authentication is rejected, the same connection cannot be retried by simply changing the
2814
+ * credentials and calling this method again. Disconnect or reconnect with {@link
2815
+ * Ftp2.connectOnly} before attempting another login.
2816
+ *
2817
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2818
+ * {@link Ftp2.loginAfterConnectOnlyAsync}.
2819
+ *
2820
+ * @throws Error if the call fails (the message names the reason); the full log is in
2821
+ * {@link Ftp2.lastErrorText}.
2822
+ */
2823
+ loginAfterConnectOnly(): void
2824
+
2825
+ /**
2826
+ * Asynchronous form of {@link Ftp2.loginAfterConnectOnly}: the same call on a native worker
2827
+ * thread,
2828
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2829
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2830
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2831
+ *
2832
+ * The promise rejects with an Error if the call fails; the full log is in
2833
+ * {@link Ftp2.lastErrorText}.
2834
+ */
2835
+ loginAfterConnectOnlyAsync(): Promise<void>
2836
+
2837
+ /**
2838
+ * Downloads files in the current remote directory that match `remotePattern` into the existing
2839
+ * local directory at `localDir`. Subdirectories are not traversed. The method returns the number
2840
+ * of files downloaded, or `-1` on failure.
2841
+ *
2842
+ * `localDir` must already exist; the method does not create it. Existing local files with
2843
+ * matching names are replaced. Chilkat sends a server-side listing request for `remotePattern`,
2844
+ * so wildcard matching and case sensitivity depend on the FTP server and remote filesystem.
2845
+ *
2846
+ * **Windows filenames:** Remote names that contain characters invalid in a Windows filename are
2847
+ * sanitized for the local file. Invalid characters are replaced with underscores and trailing
2848
+ * periods are removed. For example, `a<b>c:d|e?f*g.txt` is saved as `a_b_c_d_e_f_g.txt`.
2849
+ * Different remote names can potentially map to the same local name.
2850
+ *
2851
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2852
+ * {@link Ftp2.mGetFilesAsync}.
2853
+ */
2854
+ mGetFiles(remotePattern: string, localDir: string): number
2855
+
2856
+ /**
2857
+ * Asynchronous form of {@link Ftp2.mGetFiles}: the same call on a native worker thread,
2858
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2859
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2860
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2861
+ */
2862
+ mGetFilesAsync(remotePattern: string, localDir: string): Promise<number>
2863
+
2864
+ /**
2865
+ * Uploads each local file matching `pattern` to the current remote directory. `pattern` may
2866
+ * include a local directory and wildcard, such as `C:/data/*.txt`. Subdirectories are not
2867
+ * traversed.
2868
+ *
2869
+ * Local wildcard behavior follows the local operating system; for example, Windows matching is
2870
+ * case-insensitive. Only each matching file's basename is used as the remote filename. Existing
2871
+ * remote files are replaced using normal `STOR` behavior.
2872
+ *
2873
+ * The method returns the number of files uploaded, or `-1` on failure.
2874
+ *
2875
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2876
+ * {@link Ftp2.mPutFilesAsync}.
2877
+ */
2878
+ mPutFiles(pattern: string): number
2879
+
2880
+ /**
2881
+ * Asynchronous form of {@link Ftp2.mPutFiles}: the same call on a native worker thread,
2882
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2883
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2884
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2885
+ */
2886
+ mPutFilesAsync(pattern: string): Promise<number>
2887
+
2888
+ /**
2889
+ * Sends `NLST` with `remoteDirPattern` appended literally and returns the names in XML form. An
2890
+ * empty `remoteDirPattern` sends `NLST`; a value such as `*.txt` sends `NLST *.txt`.
2891
+ *
2892
+ * ```
2893
+ * <nlst>
2894
+ * <e>name1</e>
2895
+ * <e>name2</e>
2896
+ * </nlst>
2897
+ * ```
2898
+ *
2899
+ * The response is decoded using {@link Ftp2.dirListingCharset}. `NLST` normally returns names
2900
+ * only; the XML does not distinguish files from directories and does not provide reliable sizes,
2901
+ * times, ownership, or permissions. Wildcard matching and case sensitivity are server-dependent.
2902
+ *
2903
+ * This method does not use or populate the indexed directory cache.
2904
+ *
2905
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2906
+ * {@link Ftp2.nlstXmlAsync}.
2907
+ *
2908
+ * @throws Error if the call fails (the message names the reason); the full log is in
2909
+ * {@link Ftp2.lastErrorText}.
2910
+ */
2911
+ nlstXml(remoteDirPattern: string): string
2912
+
2913
+ /**
2914
+ * Asynchronous form of {@link Ftp2.nlstXml}: the same call on a native worker thread,
2915
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2916
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2917
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2918
+ *
2919
+ * The promise rejects with an Error if the call fails; the full log is in
2920
+ * {@link Ftp2.lastErrorText}.
2921
+ */
2922
+ nlstXmlAsync(remoteDirPattern: string): Promise<string>
2923
+
2924
+ /**
2925
+ * Sends the FTP `NOOP` command. The server must return a positive FTP reply for the method to
2926
+ * succeed.
2927
+ *
2928
+ * Whether `NOOP` is accepted before login is server-dependent. This method does not reconnect a
2929
+ * closed session.
2930
+ *
2931
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2932
+ * {@link Ftp2.noopAsync}.
2933
+ *
2934
+ * @throws Error if the call fails (the message names the reason); the full log is in
2935
+ * {@link Ftp2.lastErrorText}.
2936
+ */
2937
+ noop(): void
2938
+
2939
+ /**
2940
+ * Asynchronous form of {@link Ftp2.noop}: the same call on a native worker thread,
2941
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2942
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2943
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2944
+ *
2945
+ * The promise rejects with an Error if the call fails; the full log is in
2946
+ * {@link Ftp2.lastErrorText}.
2947
+ */
2948
+ noopAsync(): Promise<void>
2949
+
2950
+ /**
2951
+ * Uploads the local filesystem file at `localFilePath` to the remote path at `remoteFilePath`.
2952
+ *
2953
+ * Uses the FTP `STOR` command. A normal upload creates a missing remote file or truncates and
2954
+ * replaces an existing one. Chilkat does not create missing remote parent directories and does
2955
+ * not upload through a temporary remote name followed by an atomic rename.
2956
+ *
2957
+ * Use {@link Ftp2.restartNext} immediately before this call to resume an existing partial remote
2958
+ * file. {@link Ftp2.idleTimeoutMs} limits how long the upload may remain blocked without forward
2959
+ * progress.
2960
+ *
2961
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2962
+ * {@link Ftp2.putFileAsync}.
2963
+ *
2964
+ * @throws Error if the call fails (the message names the reason); the full log is in
2965
+ * {@link Ftp2.lastErrorText}.
2966
+ */
2967
+ putFile(localFilePath: string, remoteFilePath: string): void
2968
+
2969
+ /**
2970
+ * Asynchronous form of {@link Ftp2.putFile}: the same call on a native worker thread,
2971
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
2972
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
2973
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
2974
+ *
2975
+ * The promise rejects with an Error if the call fails; the full log is in
2976
+ * {@link Ftp2.lastErrorText}.
2977
+ */
2978
+ putFileAsync(localFilePath: string, remoteFilePath: string): Promise<void>
2979
+
2980
+ /**
2981
+ * Encodes the text in `textData` using the character encoding named by `charset` and uploads the
2982
+ * resulting bytes to the remote file at `remoteFilename`.
2983
+ *
2984
+ * Uses the FTP `STOR` command. A normal upload creates a missing remote file or truncates and
2985
+ * replaces an existing one. Chilkat does not create missing remote parent directories and does
2986
+ * not upload through a temporary remote name followed by an atomic rename.
2987
+ *
2988
+ * The content charset is independent of {@link Ftp2.commandCharset}, which controls the encoding
2989
+ * of the remote path sent in the FTP command.
2990
+ *
2991
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
2992
+ * {@link Ftp2.putFileFromTextDataAsync}.
2993
+ *
2994
+ * @throws Error if the call fails (the message names the reason); the full log is in
2995
+ * {@link Ftp2.lastErrorText}.
2996
+ */
2997
+ putFileFromTextData(remoteFilename: string, textData: string, charset: string): void
2998
+
2999
+ /**
3000
+ * Asynchronous form of {@link Ftp2.putFileFromTextData}: the same call on a native worker thread,
3001
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3002
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3003
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3004
+ *
3005
+ * The promise rejects with an Error if the call fails; the full log is in
3006
+ * {@link Ftp2.lastErrorText}.
3007
+ */
3008
+ putFileFromTextDataAsync(remoteFilename: string, textData: string, charset: string): Promise<void>
3009
+
3010
+ /**
3011
+ * Executes the upload plan in `plan`. `alreadyDoneFilename` is the local path of a completion
3012
+ * log; each successful plan operation is recorded there.
3013
+ *
3014
+ * The absolute remote paths stored in the plan are used even if the current remote directory has
3015
+ * changed since the plan was created. Local files are opened when this method executes, so
3016
+ * changes made after {@link Ftp2.createPlan} are reflected in the upload.
3017
+ *
3018
+ * To resume an interrupted plan, call this method again with the same plan and log path.
3019
+ * Operations already recorded as complete are skipped.
3020
+ *
3021
+ * **Log durability:** Store the completion log on reliable local storage and do not edit it while
3022
+ * the plan is running.
3023
+ *
3024
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3025
+ * {@link Ftp2.putPlanAsync}.
3026
+ *
3027
+ * @throws Error if the call fails (the message names the reason); the full log is in
3028
+ * {@link Ftp2.lastErrorText}.
3029
+ */
3030
+ putPlan(plan: string, alreadyDoneFilename: string): void
3031
+
3032
+ /**
3033
+ * Asynchronous form of {@link Ftp2.putPlan}: the same call on a native worker thread,
3034
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3035
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3036
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3037
+ *
3038
+ * The promise rejects with an Error if the call fails; the full log is in
3039
+ * {@link Ftp2.lastErrorText}.
3040
+ */
3041
+ putPlanAsync(plan: string, alreadyDoneFilename: string): Promise<void>
3042
+
3043
+ /**
3044
+ * Uploads the local directory tree rooted at `localDir` into the current remote directory,
3045
+ * creating remote subdirectories as needed. The contents of `localDir` become children of the
3046
+ * current remote directory.
3047
+ *
3048
+ * The file and directory filters in {@link Ftp2.syncMustMatch}, {@link Ftp2.syncMustNotMatch},
3049
+ * {@link Ftp2.syncMustMatchDir}, and {@link Ftp2.syncMustNotMatchDir} apply. Empty eligible local
3050
+ * directories are created remotely. Existing remote files are overwritten with `STOR`.
3051
+ *
3052
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3053
+ * {@link Ftp2.putTreeAsync}.
3054
+ *
3055
+ * @throws Error if the call fails (the message names the reason); the full log is in
3056
+ * {@link Ftp2.lastErrorText}.
3057
+ */
3058
+ putTree(localDir: string): void
3059
+
3060
+ /**
3061
+ * Asynchronous form of {@link Ftp2.putTree}: the same call on a native worker thread,
3062
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3063
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3064
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3065
+ *
3066
+ * The promise rejects with an Error if the call fails; the full log is in
3067
+ * {@link Ftp2.lastErrorText}.
3068
+ */
3069
+ putTreeAsync(localDir: string): Promise<void>
3070
+
3071
+ /**
3072
+ * Sends the raw FTP command text in `cmd` to the server. Use this for a command not otherwise
3073
+ * exposed by the API.
3074
+ *
3075
+ * `cmd` contains the command and parameters but must not contain CR or LF characters; such input
3076
+ * is rejected without sending anything. Chilkat considers the method successful only when the
3077
+ * server returns a positive FTP reply. A `4xx` or `5xx` reply causes failure and remains
3078
+ * available through {@link Ftp2.lastReply}.
3079
+ *
3080
+ * The method does not parse command-specific semantics. Use {@link Ftp2.sendCommand} when the
3081
+ * reply text is needed directly.
3082
+ *
3083
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3084
+ * {@link Ftp2.quoteAsync}.
3085
+ *
3086
+ * @throws Error if the call fails (the message names the reason); the full log is in
3087
+ * {@link Ftp2.lastErrorText}.
3088
+ */
3089
+ quote(cmd: string): void
3090
+
3091
+ /**
3092
+ * Asynchronous form of {@link Ftp2.quote}: the same call on a native worker thread,
3093
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3094
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3095
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3096
+ *
3097
+ * The promise rejects with an Error if the call fails; the full log is in
3098
+ * {@link Ftp2.lastErrorText}.
3099
+ */
3100
+ quoteAsync(cmd: string): Promise<void>
3101
+
3102
+ /**
3103
+ * Removes the remote directory at `remoteDirPath`. FTP servers generally require the directory to
3104
+ * be empty before it can be removed.
3105
+ *
3106
+ * A successful call does not refresh the cached indexed listing. Call {@link Ftp2.clearDirCache}
3107
+ * before relying on indexed listing methods.
3108
+ *
3109
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3110
+ * {@link Ftp2.removeRemoteDirAsync}.
3111
+ *
3112
+ * @throws Error if the call fails (the message names the reason); the full log is in
3113
+ * {@link Ftp2.lastErrorText}.
3114
+ */
3115
+ removeRemoteDir(remoteDirPath: string): void
3116
+
3117
+ /**
3118
+ * Asynchronous form of {@link Ftp2.removeRemoteDir}: the same call on a native worker thread,
3119
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3120
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3121
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3122
+ *
3123
+ * The promise rejects with an Error if the call fails; the full log is in
3124
+ * {@link Ftp2.lastErrorText}.
3125
+ */
3126
+ removeRemoteDirAsync(remoteDirPath: string): Promise<void>
3127
+
3128
+ /**
3129
+ * Renames or moves a remote file or directory from `existingRemoteFilePath` to
3130
+ * `newRemoteFilePath` using the FTP `RNFR`/`RNTO` sequence. Include directory components in
3131
+ * `newRemoteFilePath` to move the item within the same FTP server.
3132
+ *
3133
+ * Chilkat does not perform a protective destination-existence check. If `newRemoteFilePath`
3134
+ * already exists, one server may reject the rename while another may replace the destination.
3135
+ * Cross-directory or cross-filesystem moves are also subject to server policy.
3136
+ *
3137
+ * A successful rename does not refresh the cached indexed listing. Call {@link
3138
+ * Ftp2.clearDirCache} when a fresh listing is required.
3139
+ *
3140
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3141
+ * {@link Ftp2.renameRemoteFileAsync}.
3142
+ *
3143
+ * @throws Error if the call fails (the message names the reason); the full log is in
3144
+ * {@link Ftp2.lastErrorText}.
3145
+ */
3146
+ renameRemoteFile(existingRemoteFilePath: string, newRemoteFilePath: string): void
3147
+
3148
+ /**
3149
+ * Asynchronous form of {@link Ftp2.renameRemoteFile}: the same call on a native worker thread,
3150
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3151
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3152
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3153
+ *
3154
+ * The promise rejects with an Error if the call fails; the full log is in
3155
+ * {@link Ftp2.lastErrorText}.
3156
+ */
3157
+ renameRemoteFileAsync(existingRemoteFilePath: string, newRemoteFilePath: string): Promise<void>
3158
+
3159
+ /**
3160
+ * Sends the raw FTP command in `cmd` and returns the complete server reply. The command text is
3161
+ * sent as UTF-8; {@link Ftp2.commandCharset} is not applied.
3162
+ *
3163
+ * `cmd` must not contain CR or LF characters; such input is rejected without sending anything. A
3164
+ * positive FTP reply is returned normally. A `4xx` or `5xx` reply is treated as method failure
3165
+ * and sets `LastMethodSuccess` to `false`.
3166
+ *
3167
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3168
+ * {@link Ftp2.sendCommandAsync}.
3169
+ *
3170
+ * @throws Error if the call fails (the message names the reason); the full log is in
3171
+ * {@link Ftp2.lastErrorText}.
3172
+ */
3173
+ sendCommand(cmd: string): string
3174
+
3175
+ /**
3176
+ * Asynchronous form of {@link Ftp2.sendCommand}: the same call on a native worker thread,
3177
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3178
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3179
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3180
+ *
3181
+ * The promise rejects with an Error if the call fails; the full log is in
3182
+ * {@link Ftp2.lastErrorText}.
3183
+ */
3184
+ sendCommandAsync(cmd: string): Promise<string>
3185
+
3186
+ /**
3187
+ * Enables `MODE Z` compression for subsequent data connections. Call this after connecting and
3188
+ * only when {@link Ftp2.hasModeZ} is `true`. Uploads, downloads, and directory listings are then
3189
+ * transferred through a DEFLATE-compressed stream.
3190
+ *
3191
+ * **Performance tradeoff:** Compression can reduce network traffic for text and other
3192
+ * compressible data, but may increase CPU usage and provide little benefit for already-compressed
3193
+ * formats such as ZIP, JPEG, or MP4.
3194
+ *
3195
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3196
+ * {@link Ftp2.setModeZAsync}.
3197
+ *
3198
+ * @throws Error if the call fails (the message names the reason); the full log is in
3199
+ * {@link Ftp2.lastErrorText}.
3200
+ */
3201
+ setModeZ(): void
3202
+
3203
+ /**
3204
+ * Asynchronous form of {@link Ftp2.setModeZ}: the same call on a native worker thread,
3205
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3206
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3207
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3208
+ *
3209
+ * The promise rejects with an Error if the call fails; the full log is in
3210
+ * {@link Ftp2.lastErrorText}.
3211
+ */
3212
+ setModeZAsync(): Promise<void>
3213
+
3214
+ /**
3215
+ * Sets the oldest remote modification time eligible for {@link Ftp2.downloadTree}.
3216
+ * `oldestDateTimeStr` is an RFC 822 date-time string, such as `Fri, 21 Nov 1997 09:55:06 -0600`.
3217
+ * Files older than the configured value are skipped.
3218
+ *
3219
+ * The value remains active for subsequent `DownloadTree` calls; it is not consumed after one
3220
+ * operation. Avoid relying on exact equality at the boundary because legacy `LIST` timestamps can
3221
+ * have reduced precision or ambiguous timezone interpretation.
3222
+ */
3223
+ setOldestDateStr(oldestDateTimeStr: string): void
3224
+
3225
+ /**
3226
+ * Enables or disables a named compatibility option. Option-name matching is case-insensitive.
3227
+ * Prefix a recognized name with `No-` to disable it.
3228
+ *
3229
+ * The recognized option `Microsoft-TLS-1.2-Workaround` changes data-channel TLS behavior for
3230
+ * compatibility with an old Microsoft FTP server defect. It weakens protocol selection and should
3231
+ * be used only for the affected legacy server. An unrecognized option name is rejected.
3232
+ *
3233
+ * @throws Error if the call fails (the message names the reason); the full log is in
3234
+ * {@link Ftp2.lastErrorText}.
3235
+ */
3236
+ setOption(optionName: string): void
3237
+
3238
+ /**
3239
+ * Sets the last-modified time of the remote file at `remoteFilename`. `dateTimeStr` is an RFC 822
3240
+ * date-time string, such as `Fri, 21 Nov 1997 09:55:06 -0600`.
3241
+ *
3242
+ * Chilkat converts `dateTimeStr` to UTC and sends a server-supported timestamp-setting extension.
3243
+ * Depending on the server, the command may be `MFMT YYYYMMDDhhmmss path` or the nonstandard
3244
+ * timestamp-setting form of `MDTM YYYYMMDDhhmmss path`. Precision is one second.
3245
+ *
3246
+ * FTP has no universally implemented standard for changing a file timestamp; success depends on
3247
+ * server extensions and permissions.
3248
+ *
3249
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3250
+ * {@link Ftp2.setRemoteFileDateTimeStrAsync}.
3251
+ *
3252
+ * @throws Error if the call fails (the message names the reason); the full log is in
3253
+ * {@link Ftp2.lastErrorText}.
3254
+ */
3255
+ setRemoteFileDateTimeStr(dateTimeStr: string, remoteFilename: string): void
3256
+
3257
+ /**
3258
+ * Asynchronous form of {@link Ftp2.setRemoteFileDateTimeStr}: the same call on a native worker
3259
+ * thread,
3260
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3261
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3262
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3263
+ *
3264
+ * The promise rejects with an Error if the call fails; the full log is in
3265
+ * {@link Ftp2.lastErrorText}.
3266
+ */
3267
+ setRemoteFileDateTimeStrAsync(dateTimeStr: string, remoteFilename: string): Promise<void>
3268
+
3269
+ /**
3270
+ * Sets the last-modified time of the remote file at `remoteFilename` using the `CkDateTime` in
3271
+ * `dt`.
3272
+ *
3273
+ * Chilkat converts the value to UTC and sends a server-supported timestamp-setting extension.
3274
+ * Depending on the server, the command may be `MFMT YYYYMMDDhhmmss path` or the nonstandard
3275
+ * timestamp-setting form of `MDTM YYYYMMDDhhmmss path`. Precision is one second.
3276
+ *
3277
+ * FTP has no universally implemented standard for changing a file timestamp; success depends on
3278
+ * server extensions and permissions.
3279
+ *
3280
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3281
+ * {@link Ftp2.setRemoteFileDtAsync}.
3282
+ *
3283
+ * @throws Error if the call fails (the message names the reason); the full log is in
3284
+ * {@link Ftp2.lastErrorText}.
3285
+ */
3286
+ setRemoteFileDt(dt: CkDateTime, remoteFilename: string): void
3287
+
3288
+ /**
3289
+ * Asynchronous form of {@link Ftp2.setRemoteFileDt}: the same call on a native worker thread,
3290
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3291
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3292
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3293
+ *
3294
+ * The promise rejects with an Error if the call fails; the full log is in
3295
+ * {@link Ftp2.lastErrorText}.
3296
+ */
3297
+ setRemoteFileDtAsync(dt: CkDateTime, remoteFilename: string): Promise<void>
3298
+
3299
+ /**
3300
+ * Adds a required match against the FTP server certificate. `reqName` selects the certificate
3301
+ * field and `reqValue` specifies the required value. Supported field names include `SubjectDN`,
3302
+ * `SubjectCN`, `IssuerDN`, `IssuerCN`, and `SAN`. Wildcards such as `*` may be used in
3303
+ * `reqValue`.
3304
+ *
3305
+ * Requirement-value matching is case-sensitive. Multiple calls add requirements that are combined
3306
+ * with logical AND; every requirement must match.
3307
+ *
3308
+ * Requirements are evaluated when the FTPS control-channel TLS connection is established. Adding
3309
+ * a new requirement after connection does not retroactively reject the existing control channel
3310
+ * and is not applied to later protected data-channel handshakes within that session.
3311
+ *
3312
+ * **Additional check:** Certificate requirements supplement normal certificate validation; they
3313
+ * should not be used as a substitute for trust-chain, validity, and hostname verification.
3314
+ */
3315
+ setSslCertRequirement(reqName: string, reqValue: string): void
3316
+
3317
+ /**
3318
+ * Configures the `Cert` in `cert` as the client certificate for FTPS servers that request mutual
3319
+ * TLS authentication. The certificate must have access to its private key.
3320
+ *
3321
+ * @throws Error if the call fails (the message names the reason); the full log is in
3322
+ * {@link Ftp2.lastErrorText}.
3323
+ */
3324
+ setSslClientCert(cert: Cert): void
3325
+
3326
+ /**
3327
+ * Configures a client certificate and private key from PEM data or a PEM file.
3328
+ * `pemDataOrFilename` may contain the PEM text or the local filesystem path of a PEM file.
3329
+ * `pemPassword` is the private-key password, or an empty string when the key is not encrypted.
3330
+ *
3331
+ * @throws Error if the call fails (the message names the reason); the full log is in
3332
+ * {@link Ftp2.lastErrorText}.
3333
+ */
3334
+ setSslClientCertPem(pemDataOrFilename: string, pemPassword: string): void
3335
+
3336
+ /**
3337
+ * Loads a client certificate and private key from the local PFX/P12 file at `pfxFilename`.
3338
+ * `pfxPassword` is the file password. The certificate is used when the FTPS server requests
3339
+ * mutual TLS authentication.
3340
+ *
3341
+ * @throws Error if the call fails (the message names the reason); the full log is in
3342
+ * {@link Ftp2.lastErrorText}.
3343
+ */
3344
+ setSslClientCertPfx(pfxFilename: string, pfxPassword: string): void
3345
+
3346
+ /**
3347
+ * Sets the FTP representation type to ASCII for subsequent transfers. In ASCII mode, the FTP
3348
+ * endpoints may translate line endings, and {@link Ftp2.crlfMode} can apply additional conversion
3349
+ * on downloads.
3350
+ *
3351
+ * **Use carefully:** ASCII mode is intended for text. Use {@link Ftp2.setTypeBinary} for
3352
+ * executables, archives, images, encrypted data, and any file whose bytes must remain unchanged.
3353
+ *
3354
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3355
+ * {@link Ftp2.setTypeAsciiAsync}.
3356
+ *
3357
+ * @throws Error if the call fails (the message names the reason); the full log is in
3358
+ * {@link Ftp2.lastErrorText}.
3359
+ */
3360
+ setTypeAscii(): void
3361
+
3362
+ /**
3363
+ * Asynchronous form of {@link Ftp2.setTypeAscii}: the same call on a native worker thread,
3364
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3365
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3366
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3367
+ *
3368
+ * The promise rejects with an Error if the call fails; the full log is in
3369
+ * {@link Ftp2.lastErrorText}.
3370
+ */
3371
+ setTypeAsciiAsync(): Promise<void>
3372
+
3373
+ /**
3374
+ * Sets the FTP representation type to binary (`TYPE I`) for subsequent transfers. Binary mode
3375
+ * preserves file bytes and is the appropriate default for nearly all modern file types.
3376
+ *
3377
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3378
+ * {@link Ftp2.setTypeBinaryAsync}.
3379
+ *
3380
+ * @throws Error if the call fails (the message names the reason); the full log is in
3381
+ * {@link Ftp2.lastErrorText}.
3382
+ */
3383
+ setTypeBinary(): void
3384
+
3385
+ /**
3386
+ * Asynchronous form of {@link Ftp2.setTypeBinary}: the same call on a native worker thread,
3387
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3388
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3389
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3390
+ *
3391
+ * The promise rejects with an Error if the call fails; the full log is in
3392
+ * {@link Ftp2.lastErrorText}.
3393
+ */
3394
+ setTypeBinaryAsync(): Promise<void>
3395
+
3396
+ /**
3397
+ * Sends a server-specific `SITE` command. `siteCommand` contains the text following `SITE`, for
3398
+ * example `RECFM=FB LRECL=600`.
3399
+ *
3400
+ * `SITE` subcommands are defined by the server, not by the FTP standard, and may require special
3401
+ * permissions.
3402
+ *
3403
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3404
+ * {@link Ftp2.siteAsync}.
3405
+ *
3406
+ * @throws Error if the call fails (the message names the reason); the full log is in
3407
+ * {@link Ftp2.lastErrorText}.
3408
+ */
3409
+ site(siteCommand: string): void
3410
+
3411
+ /**
3412
+ * Asynchronous form of {@link Ftp2.site}: the same call on a native worker thread,
3413
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3414
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3415
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3416
+ *
3417
+ * The promise rejects with an Error if the call fails; the full log is in
3418
+ * {@link Ftp2.lastErrorText}.
3419
+ */
3420
+ siteAsync(siteCommand: string): Promise<void>
3421
+
3422
+ /**
3423
+ * Blocks the calling thread for `millisec` milliseconds. This is a utility method and performs no
3424
+ * FTP network operation.
3425
+ */
3426
+ sleepMs(millisec: number): void
3427
+
3428
+ /**
3429
+ * Sends the FTP `STAT` command and returns the server's reply. Depending on the server and
3430
+ * session state, the reply may contain status information or a directory listing.
3431
+ *
3432
+ * Support, accepted arguments, and whether the command is permitted before login are
3433
+ * server-dependent.
3434
+ *
3435
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3436
+ * {@link Ftp2.statAsync}.
3437
+ *
3438
+ * @throws Error if the call fails (the message names the reason); the full log is in
3439
+ * {@link Ftp2.lastErrorText}.
3440
+ */
3441
+ stat(): string
3442
+
3443
+ /**
3444
+ * Asynchronous form of {@link Ftp2.stat}: the same call on a native worker thread,
3445
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3446
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3447
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3448
+ *
3449
+ * The promise rejects with an Error if the call fails; the full log is in
3450
+ * {@link Ftp2.lastErrorText}.
3451
+ */
3452
+ statAsync(): Promise<string>
3453
+
3454
+ /**
3455
+ * Recursively compares the remote tree rooted at the current remote directory with the local tree
3456
+ * rooted at `localRoot` and deletes remote files that have no corresponding local file. The
3457
+ * synchronization file and directory filters apply. Empty remote directories are not deleted.
3458
+ *
3459
+ * **Destructive synchronization:** This method deletes server data. Verify the current remote
3460
+ * directory, local root, and synchronization filters before calling it.
3461
+ *
3462
+ * Use {@link Ftp2.getSyncedFiles} after the call to obtain the relative paths deleted.
3463
+ *
3464
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3465
+ * {@link Ftp2.syncDeleteRemoteAsync}.
3466
+ *
3467
+ * @throws Error if the call fails (the message names the reason); the full log is in
3468
+ * {@link Ftp2.lastErrorText}.
3469
+ */
3470
+ syncDeleteRemote(localRoot: string): void
3471
+
3472
+ /**
3473
+ * Asynchronous form of {@link Ftp2.syncDeleteRemote}: the same call on a native worker thread,
3474
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3475
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3476
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3477
+ *
3478
+ * The promise rejects with an Error if the call fails; the full log is in
3479
+ * {@link Ftp2.lastErrorText}.
3480
+ */
3481
+ syncDeleteRemoteAsync(localRoot: string): Promise<void>
3482
+
3483
+ /**
3484
+ * Synchronizes files from the current remote directory into the local directory at `localRoot`
3485
+ * without descending into subdirectories. `mode` selects the same download modes documented for
3486
+ * {@link Ftp2.syncLocalTree}.
3487
+ *
3488
+ * The filters are case-insensitive and match basenames. In mode `99`, only unmatched remote files
3489
+ * in the current directory are deleted; nested directories are not traversed and their contents
3490
+ * are not examined. Extra local files are not deleted.
3491
+ *
3492
+ * Unsupported mode values fail before an FTP command is sent. Use {@link Ftp2.getSyncedFiles}
3493
+ * afterward to obtain the affected relative paths.
3494
+ *
3495
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3496
+ * {@link Ftp2.syncLocalDirAsync}.
3497
+ *
3498
+ * @throws Error if the call fails (the message names the reason); the full log is in
3499
+ * {@link Ftp2.lastErrorText}.
3500
+ */
3501
+ syncLocalDir(localRoot: string, mode: number): void
3502
+
3503
+ /**
3504
+ * Asynchronous form of {@link Ftp2.syncLocalDir}: the same call on a native worker thread,
3505
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3506
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3507
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3508
+ *
3509
+ * The promise rejects with an Error if the call fails; the full log is in
3510
+ * {@link Ftp2.lastErrorText}.
3511
+ */
3512
+ syncLocalDirAsync(localRoot: string, mode: number): Promise<void>
3513
+
3514
+ /**
3515
+ * Synchronizes the remote tree rooted at the current remote directory into the local directory at
3516
+ * `localRoot`. `mode` selects which files are downloaded or deleted.
3517
+ *
3518
+ * ModeAction
3519
+ *
3520
+ * | `0` | | Download all selected files. |
3521
+ *
3522
+ * | `1` | | Download files missing locally. |
3523
+ *
3524
+ * | `2` | | Download files that are missing locally or newer on the server. |
3525
+ *
3526
+ * | `3` | | Download only files that already exist locally and are newer on the server. |
3527
+ *
3528
+ * | `5` | | Download files that are missing locally or have a different size. |
3529
+ *
3530
+ * | `6` | | Download files that are missing, have a different size, or are newer on the server. |
3531
+ *
3532
+ * | `99` | | Do not download; delete remote files that do not exist locally. |
3533
+ *
3534
+ * The synchronization filters are case-insensitive and match file basenames rather than relative
3535
+ * paths. A file is considered newer only when its timestamp is strictly later; equal timestamps
3536
+ * do not qualify.
3537
+ *
3538
+ * Mode `99` deletes remote files that do not exist locally; it does not delete extra local files.
3539
+ * Only the mode values shown in the table are valid. Other values fail before any FTP command is
3540
+ * sent. Use {@link Ftp2.getSyncedFiles} afterward to obtain the affected relative paths.
3541
+ *
3542
+ * **Mode numbers differ by direction:** The upload and download synchronization methods do not
3543
+ * assign the same meanings to all numeric modes. Use the table for the method being called.
3544
+ *
3545
+ * **Time comparison:** Newer-file modes depend on remote timestamps and local clock
3546
+ * interpretation. Size-based modes may be more predictable when server timestamp precision is
3547
+ * limited.
3548
+ *
3549
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3550
+ * {@link Ftp2.syncLocalTreeAsync}.
3551
+ *
3552
+ * @throws Error if the call fails (the message names the reason); the full log is in
3553
+ * {@link Ftp2.lastErrorText}.
3554
+ */
3555
+ syncLocalTree(localRoot: string, mode: number): void
3556
+
3557
+ /**
3558
+ * Asynchronous form of {@link Ftp2.syncLocalTree}: the same call on a native worker thread,
3559
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3560
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3561
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3562
+ *
3563
+ * The promise rejects with an Error if the call fails; the full log is in
3564
+ * {@link Ftp2.lastErrorText}.
3565
+ */
3566
+ syncLocalTreeAsync(localRoot: string, mode: number): Promise<void>
3567
+
3568
+ /**
3569
+ * Synchronizes the local tree rooted at `localRoot` into the current remote directory. `mode`
3570
+ * selects which files are uploaded.
3571
+ *
3572
+ * ModeAction
3573
+ *
3574
+ * | `0` | | Upload all selected files. |
3575
+ *
3576
+ * | `1` | | Upload files missing on the server. |
3577
+ *
3578
+ * | `2` | | Upload files that are missing or newer locally. |
3579
+ *
3580
+ * | `3` | | Upload only files that already exist remotely and are newer locally. |
3581
+ *
3582
+ * | `4` | | Upload files that are missing or have a different size. |
3583
+ *
3584
+ * | `5` | | Upload files that are missing, have a different size, or are newer locally. |
3585
+ *
3586
+ * The synchronization filters are case-insensitive and match file basenames rather than relative
3587
+ * paths. A file is considered newer only when its timestamp is strictly later; equal timestamps
3588
+ * do not qualify.
3589
+ *
3590
+ * Only the mode values shown in the table are valid. Other values fail before any FTP command is
3591
+ * sent. Use {@link Ftp2.getSyncedFiles} afterward to obtain the relative paths uploaded.
3592
+ *
3593
+ * **Mode numbers differ by direction:** The upload and download synchronization methods do not
3594
+ * assign the same meanings to all numeric modes. Use the table for the method being called rather
3595
+ * than reusing a mode number from a download operation.
3596
+ *
3597
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3598
+ * {@link Ftp2.syncRemoteTreeAsync}.
3599
+ *
3600
+ * @throws Error if the call fails (the message names the reason); the full log is in
3601
+ * {@link Ftp2.lastErrorText}.
3602
+ */
3603
+ syncRemoteTree(localRoot: string, mode: number): void
3604
+
3605
+ /**
3606
+ * Asynchronous form of {@link Ftp2.syncRemoteTree}: the same call on a native worker thread,
3607
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3608
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3609
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3610
+ *
3611
+ * The promise rejects with an Error if the call fails; the full log is in
3612
+ * {@link Ftp2.lastErrorText}.
3613
+ */
3614
+ syncRemoteTreeAsync(localRoot: string, mode: number): Promise<void>
3615
+
3616
+ /**
3617
+ * Provides the upload synchronization behavior and valid modes of {@link Ftp2.syncRemoteTree}
3618
+ * with traversal and preview controls. `localDirPath` is the local root, `mode` is the upload
3619
+ * synchronization mode, `bDescend` controls whether subdirectories are traversed, and
3620
+ * `bPreviewOnly` selects preview-only mode. File and directory filters apply in both normal and
3621
+ * preview operation.
3622
+ *
3623
+ * When `bPreviewOnly` is `true`, files are not uploaded and the absolute candidate file paths are
3624
+ * placed in {@link Ftp2.syncPreview}. Required remote directories may still be created during
3625
+ * preview. If no files qualify, the preview is empty.
3626
+ *
3627
+ * Unsupported mode values fail before any FTP command is sent and clear `SyncPreview`. A failed
3628
+ * preview also leaves it empty. A subsequent non-preview synchronization clears the previous
3629
+ * preview.
3630
+ *
3631
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3632
+ * {@link Ftp2.syncRemoteTree2Async}.
3633
+ *
3634
+ * @throws Error if the call fails (the message names the reason); the full log is in
3635
+ * {@link Ftp2.lastErrorText}.
3636
+ */
3637
+ syncRemoteTree2(localDirPath: string, mode: number, bDescend: boolean, bPreviewOnly: boolean): void
3638
+
3639
+ /**
3640
+ * Asynchronous form of {@link Ftp2.syncRemoteTree2}: the same call on a native worker thread,
3641
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3642
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3643
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3644
+ *
3645
+ * The promise rejects with an Error if the call fails; the full log is in
3646
+ * {@link Ftp2.lastErrorText}.
3647
+ */
3648
+ syncRemoteTree2Async(localDirPath: string, mode: number, bDescend: boolean, bPreviewOnly: boolean): Promise<void>
3649
+
3650
+ /**
3651
+ * Sends `SYST` and returns the server's operating-system type reply. Chilkat can use this
3652
+ * information when interpreting legacy directory listings.
3653
+ *
3654
+ * Whether the command is accepted before authentication is server-dependent.
3655
+ *
3656
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3657
+ * {@link Ftp2.systAsync}.
3658
+ *
3659
+ * @throws Error if the call fails (the message names the reason); the full log is in
3660
+ * {@link Ftp2.lastErrorText}.
3661
+ */
3662
+ syst(): string
3663
+
3664
+ /**
3665
+ * Asynchronous form of {@link Ftp2.syst}: the same call on a native worker thread,
3666
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3667
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3668
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3669
+ *
3670
+ * The promise rejects with an Error if the call fails; the full log is in
3671
+ * {@link Ftp2.lastErrorText}.
3672
+ */
3673
+ systAsync(): Promise<string>
3674
+
3675
+ /**
3676
+ * Downloads the remote file at `remoteFilePath` and appends its bytes to the existing contents of
3677
+ * the `BinData` object in `binData`. The object is not cleared automatically. No text decoding or
3678
+ * line-ending conversion is performed.
3679
+ *
3680
+ * When {@link Ftp2.restartNext} is `true`, the current byte count in `binData` is used as the
3681
+ * resume offset and only the remaining remote bytes are appended.
3682
+ *
3683
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3684
+ * {@link Ftp2.getFileBdAsync}.
3685
+ *
3686
+ * @throws Error if the call fails (the message names the reason); the full log is in
3687
+ * {@link Ftp2.lastErrorText}.
3688
+ */
3689
+ getFileBd(remoteFilePath: string, binData: BinData): void
3690
+
3691
+ /**
3692
+ * Asynchronous form of {@link Ftp2.getFileBd}: the same call on a native worker thread,
3693
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3694
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3695
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3696
+ *
3697
+ * The promise rejects with an Error if the call fails; the full log is in
3698
+ * {@link Ftp2.lastErrorText}.
3699
+ */
3700
+ getFileBdAsync(remoteFilePath: string, binData: BinData): Promise<void>
3701
+
3702
+ /**
3703
+ * Downloads the remote file at `remoteFilePath`, decodes its bytes using the charset named by
3704
+ * `charset`, and appends the resulting text to the existing contents of the `StringBuilder` in
3705
+ * `sb`. The destination is not cleared automatically.
3706
+ *
3707
+ * A byte-order mark for the selected encoding is recognized and removed from the decoded text.
3708
+ * Invalid byte sequences are replaced during decoding rather than causing the transfer itself to
3709
+ * fail.
3710
+ *
3711
+ * When {@link Ftp2.restartNext} is `true`, the existing destination content is used to determine
3712
+ * the resume offset, and the remaining decoded content is appended.
3713
+ *
3714
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3715
+ * {@link Ftp2.getFileSbAsync}.
3716
+ *
3717
+ * @throws Error if the call fails (the message names the reason); the full log is in
3718
+ * {@link Ftp2.lastErrorText}.
3719
+ */
3720
+ getFileSb(remoteFilePath: string, charset: string, sb: StringBuilder): void
3721
+
3722
+ /**
3723
+ * Asynchronous form of {@link Ftp2.getFileSb}: the same call on a native worker thread,
3724
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3725
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3726
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3727
+ *
3728
+ * The promise rejects with an Error if the call fails; the full log is in
3729
+ * {@link Ftp2.lastErrorText}.
3730
+ */
3731
+ getFileSbAsync(remoteFilePath: string, charset: string, sb: StringBuilder): Promise<void>
3732
+
3733
+ /**
3734
+ * Uploads the bytes contained in the `BinData` object in `binData` to the remote path at
3735
+ * `remoteFilePath`. No character encoding or line-ending conversion is performed.
3736
+ *
3737
+ * Uses the FTP `STOR` command. A normal upload creates a missing remote file or truncates and
3738
+ * replaces an existing one. Chilkat does not create missing remote parent directories and does
3739
+ * not upload through a temporary remote name followed by an atomic rename.
3740
+ *
3741
+ * {@link Ftp2.restartNext} can be used to upload only the bytes beyond the existing remote size.
3742
+ *
3743
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3744
+ * {@link Ftp2.putFileBdAsync}.
3745
+ *
3746
+ * @throws Error if the call fails (the message names the reason); the full log is in
3747
+ * {@link Ftp2.lastErrorText}.
3748
+ */
3749
+ putFileBd(binData: BinData, remoteFilePath: string): void
3750
+
3751
+ /**
3752
+ * Asynchronous form of {@link Ftp2.putFileBd}: the same call on a native worker thread,
3753
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3754
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3755
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3756
+ *
3757
+ * The promise rejects with an Error if the call fails; the full log is in
3758
+ * {@link Ftp2.lastErrorText}.
3759
+ */
3760
+ putFileBdAsync(binData: BinData, remoteFilePath: string): Promise<void>
3761
+
3762
+ /**
3763
+ * Encodes the text in the `StringBuilder` `sb` using the charset named by `charset` and uploads
3764
+ * it to the remote path at `remoteFilePath`. When `includeBom` is `true`, a byte-order mark is
3765
+ * included when the selected encoding defines one.
3766
+ *
3767
+ * Uses the FTP `STOR` command. A normal upload creates a missing remote file or truncates and
3768
+ * replaces an existing one. Chilkat does not create missing remote parent directories and does
3769
+ * not upload through a temporary remote name followed by an atomic rename.
3770
+ *
3771
+ * {@link Ftp2.restartNext} can be used for a resumed upload when the existing remote content and
3772
+ * encoded byte sequence are compatible.
3773
+ *
3774
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3775
+ * {@link Ftp2.putFileSbAsync}.
3776
+ *
3777
+ * @throws Error if the call fails (the message names the reason); the full log is in
3778
+ * {@link Ftp2.lastErrorText}.
3779
+ */
3780
+ putFileSb(sb: StringBuilder, charset: string, includeBom: boolean, remoteFilePath: string): void
3781
+
3782
+ /**
3783
+ * Asynchronous form of {@link Ftp2.putFileSb}: the same call on a native worker thread,
3784
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3785
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3786
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3787
+ *
3788
+ * The promise rejects with an Error if the call fails; the full log is in
3789
+ * {@link Ftp2.lastErrorText}.
3790
+ */
3791
+ putFileSbAsync(sb: StringBuilder, charset: string, includeBom: boolean, remoteFilePath: string): Promise<void>
3792
+
3793
+ /**
3794
+ * Downloads the remote file at `remoteFilePath` and writes its bytes to the `Stream` in
3795
+ * `toStream`.
3796
+ *
3797
+ * For a synchronous call, `toStream` must be configured with a destination sink before the method
3798
+ * begins. For an asynchronous call, application code may read from the stream while the
3799
+ * background download produces data.
3800
+ *
3801
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3802
+ * {@link Ftp2.getFileToStreamAsync}.
3803
+ *
3804
+ * @throws Error if the call fails (the message names the reason); the full log is in
3805
+ * {@link Ftp2.lastErrorText}.
3806
+ */
3807
+ getFileToStream(remoteFilePath: string, toStream: Stream): void
3808
+
3809
+ /**
3810
+ * Asynchronous form of {@link Ftp2.getFileToStream}: the same call on a native worker thread,
3811
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3812
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3813
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3814
+ *
3815
+ * The promise rejects with an Error if the call fails; the full log is in
3816
+ * {@link Ftp2.lastErrorText}.
3817
+ */
3818
+ getFileToStreamAsync(remoteFilePath: string, toStream: Stream): Promise<void>
3819
+
3820
+ /**
3821
+ * Copies the password from the `SecureString` in `password` for subsequent FTP authentication.
3822
+ * This avoids exposing the password as an ordinary immutable language string. It is equivalent to
3823
+ * setting {@link Ftp2.password} for login behavior.
3824
+ *
3825
+ * @throws Error if the call fails (the message names the reason); the full log is in
3826
+ * {@link Ftp2.lastErrorText}.
3827
+ */
3828
+ setSecurePassword(password: SecureString): void
3829
+
3830
+ /**
3831
+ * Appends to the `StringTable` in `strTable` the relative paths affected by the most recent
3832
+ * synchronization operation. Existing entries in `strTable` are preserved.
3833
+ *
3834
+ * The appended paths include files uploaded, downloaded, or deleted by {@link
3835
+ * Ftp2.syncDeleteRemote}, {@link Ftp2.syncLocalDir}, {@link Ftp2.syncLocalTree}, {@link
3836
+ * Ftp2.syncRemoteTree}, or {@link Ftp2.syncRemoteTree2}. When a successful preview has no
3837
+ * candidates, no placeholder or empty-string entry is appended.
3838
+ */
3839
+ getSyncedFiles(strTable: StringTable): void
3840
+
3841
+ /**
3842
+ * Loads into the `Cert` object in `cert` the leaf certificate presented on the currently
3843
+ * connected FTPS control channel.
3844
+ *
3845
+ * The method requires an active TLS control connection. A protected data connection does not
3846
+ * replace the control-channel certificate returned here, and the certificate is not retained for
3847
+ * retrieval after {@link Ftp2.disconnect}.
3848
+ *
3849
+ * @throws Error if the call fails (the message names the reason); the full log is in
3850
+ * {@link Ftp2.lastErrorText}.
3851
+ */
3852
+ getServerCert(cert: Cert): void
3853
+
3854
+ /**
3855
+ * Appends the bytes in the `BinData` object `bd` to the remote file at `remoteFilename`. No text
3856
+ * encoding or line-ending conversion is performed.
3857
+ *
3858
+ * Uses the FTP `APPE` command. On servers with normal APPE behavior, a missing remote file is
3859
+ * created and an existing file is extended. A failed or interrupted append can leave the bytes
3860
+ * already accepted by the server in place; the operation is not transactional.
3861
+ *
3862
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3863
+ * {@link Ftp2.appendFileBdAsync}.
3864
+ *
3865
+ * @throws Error if the call fails (the message names the reason); the full log is in
3866
+ * {@link Ftp2.lastErrorText}.
3867
+ */
3868
+ appendFileBd(remoteFilename: string, bd: BinData): void
3869
+
3870
+ /**
3871
+ * Asynchronous form of {@link Ftp2.appendFileBd}: the same call on a native worker thread,
3872
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3873
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3874
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3875
+ *
3876
+ * The promise rejects with an Error if the call fails; the full log is in
3877
+ * {@link Ftp2.lastErrorText}.
3878
+ */
3879
+ appendFileBdAsync(remoteFilename: string, bd: BinData): Promise<void>
3880
+
3881
+ /**
3882
+ * Encodes the text in the `StringBuilder` `sb` using the charset named by `charset` and appends
3883
+ * the resulting bytes to the remote file at `remoteFilename`.
3884
+ *
3885
+ * Uses the FTP `APPE` command. On servers with normal APPE behavior, a missing remote file is
3886
+ * created and an existing file is extended. A failed or interrupted append can leave the bytes
3887
+ * already accepted by the server in place; the operation is not transactional.
3888
+ *
3889
+ * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
3890
+ * {@link Ftp2.appendFileSbAsync}.
3891
+ *
3892
+ * @throws Error if the call fails (the message names the reason); the full log is in
3893
+ * {@link Ftp2.lastErrorText}.
3894
+ */
3895
+ appendFileSb(remoteFilename: string, sb: StringBuilder, charset: string): void
3896
+
3897
+ /**
3898
+ * Asynchronous form of {@link Ftp2.appendFileSb}: the same call on a native worker thread,
3899
+ * settling on the JavaScript thread. While it is pending, other calls on this object throw,
3900
+ * except {@link Ftp2.abort} (which cancels it) and the {@link Ftp2.onPercentDone} /
3901
+ * {@link Ftp2.onProgressInfo} callbacks, which report progress while it runs.
3902
+ *
3903
+ * The promise rejects with an Error if the call fails; the full log is in
3904
+ * {@link Ftp2.lastErrorText}.
3905
+ */
3906
+ appendFileSbAsync(remoteFilename: string, sb: StringBuilder, charset: string): Promise<void>
3907
+
3908
+ /**
3909
+ * Copies structured supplemental JSON produced by the immediately preceding method into the
3910
+ * `JsonObject` in `json`. TLS connection and protected data-connection operations can populate
3911
+ * information such as the negotiated TLS version.
3912
+ *
3913
+ * The data is transient. A later method may replace it or clear it to an empty object, including
3914
+ * ordinary commands such as `NOOP`, raw commands, or {@link Ftp2.disconnect}. Call this method
3915
+ * immediately after the operation whose details are needed.
3916
+ */
3917
+ getLastJsonData(json: JsonObject): void
3918
+
3919
+ // ---- Events (ReactNativeGen_DESIGN.md §6) ----
3920
+
3921
+ /**
3922
+ * Called with the percent completed (0..100) while a long-running method runs, when Chilkat
3923
+ * can measure progress. Runs on the JavaScript thread, so it is only useful with the
3924
+ * `...Async` methods (during a synchronous call the thread is busy and the events arrive
3925
+ * after it returns). Assign `undefined` to remove.
3926
+ */
3927
+ onPercentDone?: (pctDone: number) => void
3928
+
3929
+ /**
3930
+ * Called with a name/value pair of progress information while a long-running method runs
3931
+ * (what is reported depends on the class and method). Runs on the JavaScript thread; see
3932
+ * {@link Ftp2.onPercentDone}. Assign `undefined` to remove.
3933
+ */
3934
+ onProgressInfo?: (name: string, value: string) => void
3935
+
3936
+ /**
3937
+ * Requests that the pending `...Async` call on this object stop at its next progress check.
3938
+ * The promise then rejects with Chilkat's abort error. Chilkat checks at least every
3939
+ * `heartbeatMs` milliseconds on the classes that have that property, so set it (e.g. 250)
3940
+ * for a responsive cancel. Harmless when nothing is pending.
3941
+ */
3942
+ abort(): void
3943
+ }