@ardennguyen/zalo-agent-cli 1.0.7 → 2.0.0

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 (1267) hide show
  1. package/DISCLAIMER.md +2 -2
  2. package/README.md +146 -69
  3. package/node_modules/asynckit/LICENSE +21 -0
  4. package/node_modules/asynckit/README.md +233 -0
  5. package/node_modules/asynckit/bench.js +76 -0
  6. package/node_modules/asynckit/index.js +6 -0
  7. package/node_modules/asynckit/lib/abort.js +29 -0
  8. package/node_modules/asynckit/lib/async.js +34 -0
  9. package/node_modules/asynckit/lib/defer.js +26 -0
  10. package/node_modules/asynckit/lib/iterate.js +75 -0
  11. package/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  12. package/node_modules/asynckit/lib/readable_parallel.js +25 -0
  13. package/node_modules/asynckit/lib/readable_serial.js +25 -0
  14. package/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  15. package/node_modules/asynckit/lib/state.js +37 -0
  16. package/node_modules/asynckit/lib/streamify.js +141 -0
  17. package/node_modules/asynckit/lib/terminator.js +29 -0
  18. package/node_modules/asynckit/package.json +63 -0
  19. package/node_modules/asynckit/parallel.js +43 -0
  20. package/node_modules/asynckit/serial.js +17 -0
  21. package/node_modules/asynckit/serialOrdered.js +75 -0
  22. package/node_modules/asynckit/stream.js +21 -0
  23. package/node_modules/bignumber.js/CHANGELOG.md +381 -0
  24. package/node_modules/bignumber.js/LICENCE.md +26 -0
  25. package/node_modules/bignumber.js/README.md +289 -0
  26. package/node_modules/bignumber.js/bignumber.d.mts +6 -0
  27. package/node_modules/bignumber.js/bignumber.d.ts +5 -0
  28. package/node_modules/bignumber.js/bignumber.js +2922 -0
  29. package/node_modules/bignumber.js/bignumber.mjs +2907 -0
  30. package/node_modules/bignumber.js/doc/API.html +2249 -0
  31. package/node_modules/bignumber.js/package.json +60 -0
  32. package/node_modules/bignumber.js/types.d.ts +1821 -0
  33. package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  34. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  35. package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  36. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  37. package/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  38. package/node_modules/call-bind-apply-helpers/README.md +62 -0
  39. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  40. package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  41. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  42. package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  43. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  44. package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  45. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  46. package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  47. package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  48. package/node_modules/call-bind-apply-helpers/index.js +15 -0
  49. package/node_modules/call-bind-apply-helpers/package.json +85 -0
  50. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  51. package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  52. package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  53. package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  54. package/node_modules/combined-stream/License +19 -0
  55. package/node_modules/combined-stream/Readme.md +138 -0
  56. package/node_modules/combined-stream/lib/combined_stream.js +208 -0
  57. package/node_modules/combined-stream/package.json +25 -0
  58. package/node_modules/crypto-js/CONTRIBUTING.md +28 -0
  59. package/node_modules/crypto-js/LICENSE +24 -0
  60. package/node_modules/crypto-js/README.md +275 -0
  61. package/node_modules/crypto-js/aes.js +234 -0
  62. package/node_modules/crypto-js/blowfish.js +471 -0
  63. package/node_modules/crypto-js/bower.json +39 -0
  64. package/node_modules/crypto-js/cipher-core.js +895 -0
  65. package/node_modules/crypto-js/core.js +807 -0
  66. package/node_modules/crypto-js/crypto-js.js +6657 -0
  67. package/node_modules/crypto-js/docs/QuickStartGuide.wiki +470 -0
  68. package/node_modules/crypto-js/enc-base64.js +136 -0
  69. package/node_modules/crypto-js/enc-base64url.js +148 -0
  70. package/node_modules/crypto-js/enc-hex.js +18 -0
  71. package/node_modules/crypto-js/enc-latin1.js +18 -0
  72. package/node_modules/crypto-js/enc-utf16.js +149 -0
  73. package/node_modules/crypto-js/enc-utf8.js +18 -0
  74. package/node_modules/crypto-js/evpkdf.js +134 -0
  75. package/node_modules/crypto-js/format-hex.js +66 -0
  76. package/node_modules/crypto-js/format-openssl.js +18 -0
  77. package/node_modules/crypto-js/hmac-md5.js +18 -0
  78. package/node_modules/crypto-js/hmac-ripemd160.js +18 -0
  79. package/node_modules/crypto-js/hmac-sha1.js +18 -0
  80. package/node_modules/crypto-js/hmac-sha224.js +18 -0
  81. package/node_modules/crypto-js/hmac-sha256.js +18 -0
  82. package/node_modules/crypto-js/hmac-sha3.js +18 -0
  83. package/node_modules/crypto-js/hmac-sha384.js +18 -0
  84. package/node_modules/crypto-js/hmac-sha512.js +18 -0
  85. package/node_modules/crypto-js/hmac.js +143 -0
  86. package/node_modules/crypto-js/index.js +18 -0
  87. package/node_modules/crypto-js/lib-typedarrays.js +76 -0
  88. package/node_modules/crypto-js/md5.js +268 -0
  89. package/node_modules/crypto-js/mode-cfb.js +80 -0
  90. package/node_modules/crypto-js/mode-ctr-gladman.js +116 -0
  91. package/node_modules/crypto-js/mode-ctr.js +58 -0
  92. package/node_modules/crypto-js/mode-ecb.js +40 -0
  93. package/node_modules/crypto-js/mode-ofb.js +54 -0
  94. package/node_modules/crypto-js/package.json +42 -0
  95. package/node_modules/crypto-js/pad-ansix923.js +49 -0
  96. package/node_modules/crypto-js/pad-iso10126.js +44 -0
  97. package/node_modules/crypto-js/pad-iso97971.js +40 -0
  98. package/node_modules/crypto-js/pad-nopadding.js +30 -0
  99. package/node_modules/crypto-js/pad-pkcs7.js +18 -0
  100. package/node_modules/crypto-js/pad-zeropadding.js +47 -0
  101. package/node_modules/crypto-js/pbkdf2.js +145 -0
  102. package/node_modules/crypto-js/rabbit-legacy.js +190 -0
  103. package/node_modules/crypto-js/rabbit.js +192 -0
  104. package/node_modules/crypto-js/rc4.js +139 -0
  105. package/node_modules/crypto-js/ripemd160.js +267 -0
  106. package/node_modules/crypto-js/sha1.js +150 -0
  107. package/node_modules/crypto-js/sha224.js +80 -0
  108. package/node_modules/crypto-js/sha256.js +199 -0
  109. package/node_modules/crypto-js/sha3.js +326 -0
  110. package/node_modules/crypto-js/sha384.js +83 -0
  111. package/node_modules/crypto-js/sha512.js +326 -0
  112. package/node_modules/crypto-js/tripledes.js +779 -0
  113. package/node_modules/crypto-js/x64-core.js +304 -0
  114. package/node_modules/delayed-stream/.npmignore +1 -0
  115. package/node_modules/delayed-stream/License +19 -0
  116. package/node_modules/delayed-stream/Makefile +7 -0
  117. package/node_modules/delayed-stream/Readme.md +141 -0
  118. package/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  119. package/node_modules/delayed-stream/package.json +27 -0
  120. package/node_modules/dunder-proto/.eslintrc +5 -0
  121. package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  122. package/node_modules/dunder-proto/.nycrc +13 -0
  123. package/node_modules/dunder-proto/CHANGELOG.md +24 -0
  124. package/node_modules/dunder-proto/LICENSE +21 -0
  125. package/node_modules/dunder-proto/README.md +54 -0
  126. package/node_modules/dunder-proto/get.d.ts +5 -0
  127. package/node_modules/dunder-proto/get.js +30 -0
  128. package/node_modules/dunder-proto/package.json +76 -0
  129. package/node_modules/dunder-proto/set.d.ts +5 -0
  130. package/node_modules/dunder-proto/set.js +35 -0
  131. package/node_modules/dunder-proto/test/get.js +34 -0
  132. package/node_modules/dunder-proto/test/index.js +4 -0
  133. package/node_modules/dunder-proto/test/set.js +50 -0
  134. package/node_modules/dunder-proto/tsconfig.json +9 -0
  135. package/node_modules/es-define-property/.eslintrc +13 -0
  136. package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  137. package/node_modules/es-define-property/.nycrc +9 -0
  138. package/node_modules/es-define-property/CHANGELOG.md +29 -0
  139. package/node_modules/es-define-property/LICENSE +21 -0
  140. package/node_modules/es-define-property/README.md +49 -0
  141. package/node_modules/es-define-property/index.d.ts +3 -0
  142. package/node_modules/es-define-property/index.js +14 -0
  143. package/node_modules/es-define-property/package.json +81 -0
  144. package/node_modules/es-define-property/test/index.js +56 -0
  145. package/node_modules/es-define-property/tsconfig.json +10 -0
  146. package/node_modules/es-errors/.eslintrc +5 -0
  147. package/node_modules/es-errors/.github/FUNDING.yml +12 -0
  148. package/node_modules/es-errors/CHANGELOG.md +40 -0
  149. package/node_modules/es-errors/LICENSE +21 -0
  150. package/node_modules/es-errors/README.md +55 -0
  151. package/node_modules/es-errors/eval.d.ts +3 -0
  152. package/node_modules/es-errors/eval.js +4 -0
  153. package/node_modules/es-errors/index.d.ts +3 -0
  154. package/node_modules/es-errors/index.js +4 -0
  155. package/node_modules/es-errors/package.json +80 -0
  156. package/node_modules/es-errors/range.d.ts +3 -0
  157. package/node_modules/es-errors/range.js +4 -0
  158. package/node_modules/es-errors/ref.d.ts +3 -0
  159. package/node_modules/es-errors/ref.js +4 -0
  160. package/node_modules/es-errors/syntax.d.ts +3 -0
  161. package/node_modules/es-errors/syntax.js +4 -0
  162. package/node_modules/es-errors/test/index.js +19 -0
  163. package/node_modules/es-errors/tsconfig.json +49 -0
  164. package/node_modules/es-errors/type.d.ts +3 -0
  165. package/node_modules/es-errors/type.js +4 -0
  166. package/node_modules/es-errors/uri.d.ts +3 -0
  167. package/node_modules/es-errors/uri.js +4 -0
  168. package/node_modules/es-object-atoms/.eslintrc +16 -0
  169. package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  170. package/node_modules/es-object-atoms/CHANGELOG.md +44 -0
  171. package/node_modules/es-object-atoms/LICENSE +21 -0
  172. package/node_modules/es-object-atoms/README.md +63 -0
  173. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  174. package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  175. package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  176. package/node_modules/es-object-atoms/ToObject.js +10 -0
  177. package/node_modules/es-object-atoms/index.d.ts +3 -0
  178. package/node_modules/es-object-atoms/index.js +4 -0
  179. package/node_modules/es-object-atoms/isObject.d.ts +3 -0
  180. package/node_modules/es-object-atoms/isObject.js +6 -0
  181. package/node_modules/es-object-atoms/package.json +79 -0
  182. package/node_modules/es-object-atoms/test/index.js +38 -0
  183. package/node_modules/es-object-atoms/tsconfig.json +7 -0
  184. package/node_modules/es-set-tostringtag/.eslintrc +13 -0
  185. package/node_modules/es-set-tostringtag/.nycrc +9 -0
  186. package/node_modules/es-set-tostringtag/CHANGELOG.md +67 -0
  187. package/node_modules/es-set-tostringtag/LICENSE +21 -0
  188. package/node_modules/es-set-tostringtag/README.md +53 -0
  189. package/node_modules/es-set-tostringtag/index.d.ts +10 -0
  190. package/node_modules/es-set-tostringtag/index.js +35 -0
  191. package/node_modules/es-set-tostringtag/package.json +78 -0
  192. package/node_modules/es-set-tostringtag/test/index.js +85 -0
  193. package/node_modules/es-set-tostringtag/tsconfig.json +9 -0
  194. package/node_modules/form-data/CHANGELOG.md +686 -0
  195. package/node_modules/form-data/License +19 -0
  196. package/node_modules/form-data/README.md +355 -0
  197. package/node_modules/form-data/index.d.ts +62 -0
  198. package/node_modules/form-data/lib/browser.js +4 -0
  199. package/node_modules/form-data/lib/form_data.js +506 -0
  200. package/node_modules/form-data/lib/populate.js +10 -0
  201. package/node_modules/form-data/node_modules/mime-db/HISTORY.md +507 -0
  202. package/node_modules/form-data/node_modules/mime-db/LICENSE +23 -0
  203. package/node_modules/form-data/node_modules/mime-db/README.md +100 -0
  204. package/node_modules/form-data/node_modules/mime-db/db.json +8519 -0
  205. package/node_modules/form-data/node_modules/mime-db/index.js +12 -0
  206. package/node_modules/form-data/node_modules/mime-db/package.json +60 -0
  207. package/node_modules/form-data/node_modules/mime-types/HISTORY.md +397 -0
  208. package/node_modules/form-data/node_modules/mime-types/LICENSE +23 -0
  209. package/node_modules/form-data/node_modules/mime-types/README.md +113 -0
  210. package/node_modules/form-data/node_modules/mime-types/index.js +188 -0
  211. package/node_modules/form-data/node_modules/mime-types/package.json +44 -0
  212. package/node_modules/form-data/package.json +82 -0
  213. package/node_modules/function-bind/.eslintrc +21 -0
  214. package/node_modules/function-bind/.github/FUNDING.yml +12 -0
  215. package/node_modules/function-bind/.github/SECURITY.md +3 -0
  216. package/node_modules/function-bind/.nycrc +13 -0
  217. package/node_modules/function-bind/CHANGELOG.md +136 -0
  218. package/node_modules/function-bind/LICENSE +20 -0
  219. package/node_modules/function-bind/README.md +46 -0
  220. package/node_modules/function-bind/implementation.js +84 -0
  221. package/node_modules/function-bind/index.js +5 -0
  222. package/node_modules/function-bind/package.json +87 -0
  223. package/node_modules/function-bind/test/.eslintrc +9 -0
  224. package/node_modules/function-bind/test/index.js +252 -0
  225. package/node_modules/get-intrinsic/.eslintrc +42 -0
  226. package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  227. package/node_modules/get-intrinsic/.nycrc +9 -0
  228. package/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  229. package/node_modules/get-intrinsic/LICENSE +21 -0
  230. package/node_modules/get-intrinsic/README.md +71 -0
  231. package/node_modules/get-intrinsic/index.js +378 -0
  232. package/node_modules/get-intrinsic/package.json +97 -0
  233. package/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  234. package/node_modules/get-proto/.eslintrc +10 -0
  235. package/node_modules/get-proto/.github/FUNDING.yml +12 -0
  236. package/node_modules/get-proto/.nycrc +9 -0
  237. package/node_modules/get-proto/CHANGELOG.md +21 -0
  238. package/node_modules/get-proto/LICENSE +21 -0
  239. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  240. package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  241. package/node_modules/get-proto/README.md +50 -0
  242. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  243. package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  244. package/node_modules/get-proto/index.d.ts +5 -0
  245. package/node_modules/get-proto/index.js +27 -0
  246. package/node_modules/get-proto/package.json +81 -0
  247. package/node_modules/get-proto/test/index.js +68 -0
  248. package/node_modules/get-proto/tsconfig.json +9 -0
  249. package/node_modules/gopd/.eslintrc +16 -0
  250. package/node_modules/gopd/.github/FUNDING.yml +12 -0
  251. package/node_modules/gopd/CHANGELOG.md +45 -0
  252. package/node_modules/gopd/LICENSE +21 -0
  253. package/node_modules/gopd/README.md +40 -0
  254. package/node_modules/gopd/gOPD.d.ts +1 -0
  255. package/node_modules/gopd/gOPD.js +4 -0
  256. package/node_modules/gopd/index.d.ts +5 -0
  257. package/node_modules/gopd/index.js +15 -0
  258. package/node_modules/gopd/package.json +77 -0
  259. package/node_modules/gopd/test/index.js +36 -0
  260. package/node_modules/gopd/tsconfig.json +9 -0
  261. package/node_modules/has-symbols/.eslintrc +11 -0
  262. package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  263. package/node_modules/has-symbols/.nycrc +9 -0
  264. package/node_modules/has-symbols/CHANGELOG.md +91 -0
  265. package/node_modules/has-symbols/LICENSE +21 -0
  266. package/node_modules/has-symbols/README.md +46 -0
  267. package/node_modules/has-symbols/index.d.ts +3 -0
  268. package/node_modules/has-symbols/index.js +14 -0
  269. package/node_modules/has-symbols/package.json +111 -0
  270. package/node_modules/has-symbols/shams.d.ts +3 -0
  271. package/node_modules/has-symbols/shams.js +45 -0
  272. package/node_modules/has-symbols/test/index.js +22 -0
  273. package/node_modules/has-symbols/test/shams/core-js.js +29 -0
  274. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  275. package/node_modules/has-symbols/test/tests.js +58 -0
  276. package/node_modules/has-symbols/tsconfig.json +10 -0
  277. package/node_modules/has-tostringtag/.eslintrc +5 -0
  278. package/node_modules/has-tostringtag/.github/FUNDING.yml +12 -0
  279. package/node_modules/has-tostringtag/.nycrc +13 -0
  280. package/node_modules/has-tostringtag/CHANGELOG.md +42 -0
  281. package/node_modules/has-tostringtag/LICENSE +21 -0
  282. package/node_modules/has-tostringtag/README.md +46 -0
  283. package/node_modules/has-tostringtag/index.d.ts +3 -0
  284. package/node_modules/has-tostringtag/index.js +8 -0
  285. package/node_modules/has-tostringtag/package.json +108 -0
  286. package/node_modules/has-tostringtag/shams.d.ts +3 -0
  287. package/node_modules/has-tostringtag/shams.js +8 -0
  288. package/node_modules/has-tostringtag/test/index.js +21 -0
  289. package/node_modules/has-tostringtag/test/shams/core-js.js +31 -0
  290. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +30 -0
  291. package/node_modules/has-tostringtag/test/tests.js +15 -0
  292. package/node_modules/has-tostringtag/tsconfig.json +49 -0
  293. package/node_modules/hasown/.github/FUNDING.yml +12 -0
  294. package/node_modules/hasown/.nycrc +13 -0
  295. package/node_modules/hasown/CHANGELOG.md +58 -0
  296. package/node_modules/hasown/LICENSE +21 -0
  297. package/node_modules/hasown/README.md +40 -0
  298. package/node_modules/hasown/eslint.config.mjs +6 -0
  299. package/node_modules/hasown/index.d.ts +3 -0
  300. package/node_modules/hasown/index.js +8 -0
  301. package/node_modules/hasown/package.json +91 -0
  302. package/node_modules/hasown/tsconfig.json +6 -0
  303. package/node_modules/json-bigint/LICENSE +20 -0
  304. package/node_modules/json-bigint/README.md +240 -0
  305. package/node_modules/json-bigint/index.js +12 -0
  306. package/node_modules/json-bigint/lib/parse.js +443 -0
  307. package/node_modules/json-bigint/lib/stringify.js +384 -0
  308. package/node_modules/json-bigint/package.json +34 -0
  309. package/node_modules/math-intrinsics/.eslintrc +16 -0
  310. package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  311. package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  312. package/node_modules/math-intrinsics/LICENSE +21 -0
  313. package/node_modules/math-intrinsics/README.md +50 -0
  314. package/node_modules/math-intrinsics/abs.d.ts +1 -0
  315. package/node_modules/math-intrinsics/abs.js +4 -0
  316. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  317. package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  318. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  319. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  320. package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  321. package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  322. package/node_modules/math-intrinsics/floor.d.ts +1 -0
  323. package/node_modules/math-intrinsics/floor.js +4 -0
  324. package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  325. package/node_modules/math-intrinsics/isFinite.js +12 -0
  326. package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  327. package/node_modules/math-intrinsics/isInteger.js +16 -0
  328. package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  329. package/node_modules/math-intrinsics/isNaN.js +6 -0
  330. package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  331. package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  332. package/node_modules/math-intrinsics/max.d.ts +1 -0
  333. package/node_modules/math-intrinsics/max.js +4 -0
  334. package/node_modules/math-intrinsics/min.d.ts +1 -0
  335. package/node_modules/math-intrinsics/min.js +4 -0
  336. package/node_modules/math-intrinsics/mod.d.ts +3 -0
  337. package/node_modules/math-intrinsics/mod.js +9 -0
  338. package/node_modules/math-intrinsics/package.json +86 -0
  339. package/node_modules/math-intrinsics/pow.d.ts +1 -0
  340. package/node_modules/math-intrinsics/pow.js +4 -0
  341. package/node_modules/math-intrinsics/round.d.ts +1 -0
  342. package/node_modules/math-intrinsics/round.js +4 -0
  343. package/node_modules/math-intrinsics/sign.d.ts +3 -0
  344. package/node_modules/math-intrinsics/sign.js +11 -0
  345. package/node_modules/math-intrinsics/test/index.js +192 -0
  346. package/node_modules/math-intrinsics/tsconfig.json +3 -0
  347. package/node_modules/pako/LICENSE +21 -0
  348. package/node_modules/pako/README.md +155 -0
  349. package/node_modules/pako/dist/pako.es5.js +6760 -0
  350. package/node_modules/pako/dist/pako.es5.min.js +2 -0
  351. package/node_modules/pako/dist/pako.esm.mjs +6945 -0
  352. package/node_modules/pako/dist/pako.js +6964 -0
  353. package/node_modules/pako/dist/pako.min.js +2 -0
  354. package/node_modules/pako/dist/pako_deflate.es5.js +3953 -0
  355. package/node_modules/pako/dist/pako_deflate.es5.min.js +2 -0
  356. package/node_modules/pako/dist/pako_deflate.js +4154 -0
  357. package/node_modules/pako/dist/pako_deflate.min.js +2 -0
  358. package/node_modules/pako/dist/pako_inflate.es5.js +3272 -0
  359. package/node_modules/pako/dist/pako_inflate.es5.min.js +2 -0
  360. package/node_modules/pako/dist/pako_inflate.js +3279 -0
  361. package/node_modules/pako/dist/pako_inflate.min.js +2 -0
  362. package/node_modules/pako/index.js +18 -0
  363. package/node_modules/pako/lib/deflate.js +387 -0
  364. package/node_modules/pako/lib/inflate.js +456 -0
  365. package/node_modules/pako/lib/utils/common.js +48 -0
  366. package/node_modules/pako/lib/utils/strings.js +174 -0
  367. package/node_modules/pako/lib/zlib/README +59 -0
  368. package/node_modules/pako/lib/zlib/adler32.js +51 -0
  369. package/node_modules/pako/lib/zlib/constants.js +68 -0
  370. package/node_modules/pako/lib/zlib/crc32.js +59 -0
  371. package/node_modules/pako/lib/zlib/deflate.js +2069 -0
  372. package/node_modules/pako/lib/zlib/gzheader.js +58 -0
  373. package/node_modules/pako/lib/zlib/inffast.js +344 -0
  374. package/node_modules/pako/lib/zlib/inflate.js +1575 -0
  375. package/node_modules/pako/lib/zlib/inftrees.js +340 -0
  376. package/node_modules/pako/lib/zlib/messages.js +32 -0
  377. package/node_modules/pako/lib/zlib/trees.js +1179 -0
  378. package/node_modules/pako/lib/zlib/zstream.js +47 -0
  379. package/node_modules/pako/package.json +73 -0
  380. package/node_modules/semver/LICENSE +15 -0
  381. package/node_modules/semver/README.md +680 -0
  382. package/node_modules/semver/bin/semver.js +195 -0
  383. package/node_modules/semver/classes/comparator.js +143 -0
  384. package/node_modules/semver/classes/index.js +7 -0
  385. package/node_modules/semver/classes/range.js +577 -0
  386. package/node_modules/semver/classes/semver.js +350 -0
  387. package/node_modules/semver/functions/clean.js +8 -0
  388. package/node_modules/semver/functions/cmp.js +54 -0
  389. package/node_modules/semver/functions/coerce.js +62 -0
  390. package/node_modules/semver/functions/compare-build.js +9 -0
  391. package/node_modules/semver/functions/compare-loose.js +5 -0
  392. package/node_modules/semver/functions/compare.js +7 -0
  393. package/node_modules/semver/functions/diff.js +60 -0
  394. package/node_modules/semver/functions/eq.js +5 -0
  395. package/node_modules/semver/functions/gt.js +5 -0
  396. package/node_modules/semver/functions/gte.js +5 -0
  397. package/node_modules/semver/functions/inc.js +21 -0
  398. package/node_modules/semver/functions/lt.js +5 -0
  399. package/node_modules/semver/functions/lte.js +5 -0
  400. package/node_modules/semver/functions/major.js +5 -0
  401. package/node_modules/semver/functions/minor.js +5 -0
  402. package/node_modules/semver/functions/neq.js +5 -0
  403. package/node_modules/semver/functions/parse.js +18 -0
  404. package/node_modules/semver/functions/patch.js +5 -0
  405. package/node_modules/semver/functions/prerelease.js +8 -0
  406. package/node_modules/semver/functions/rcompare.js +5 -0
  407. package/node_modules/semver/functions/rsort.js +5 -0
  408. package/node_modules/semver/functions/satisfies.js +12 -0
  409. package/node_modules/semver/functions/sort.js +5 -0
  410. package/node_modules/semver/functions/truncate.js +48 -0
  411. package/node_modules/semver/functions/valid.js +8 -0
  412. package/node_modules/semver/index.js +93 -0
  413. package/node_modules/semver/internal/constants.js +37 -0
  414. package/node_modules/semver/internal/debug.js +11 -0
  415. package/node_modules/semver/internal/identifiers.js +29 -0
  416. package/node_modules/semver/internal/lrucache.js +42 -0
  417. package/node_modules/semver/internal/parse-options.js +17 -0
  418. package/node_modules/semver/internal/re.js +223 -0
  419. package/node_modules/semver/package.json +78 -0
  420. package/node_modules/semver/preload.js +4 -0
  421. package/node_modules/semver/range.bnf +17 -0
  422. package/node_modules/semver/ranges/gtr.js +6 -0
  423. package/node_modules/semver/ranges/intersects.js +9 -0
  424. package/node_modules/semver/ranges/ltr.js +6 -0
  425. package/node_modules/semver/ranges/max-satisfying.js +27 -0
  426. package/node_modules/semver/ranges/min-satisfying.js +26 -0
  427. package/node_modules/semver/ranges/min-version.js +63 -0
  428. package/node_modules/semver/ranges/outside.js +82 -0
  429. package/node_modules/semver/ranges/simplify.js +49 -0
  430. package/node_modules/semver/ranges/subset.js +249 -0
  431. package/node_modules/semver/ranges/to-comparators.js +10 -0
  432. package/node_modules/semver/ranges/valid.js +13 -0
  433. package/node_modules/spark-md5/LICENSE +13 -0
  434. package/node_modules/spark-md5/README.md +191 -0
  435. package/node_modules/spark-md5/package.json +35 -0
  436. package/node_modules/spark-md5/spark-md5.js +751 -0
  437. package/node_modules/spark-md5/spark-md5.min.js +1 -0
  438. package/node_modules/tldts/LICENSE +13 -0
  439. package/node_modules/tldts/README.md +327 -0
  440. package/node_modules/tldts/bin/cli.js +21 -0
  441. package/node_modules/tldts/dist/cjs/index.js +666 -0
  442. package/node_modules/tldts/dist/cjs/index.js.map +1 -0
  443. package/node_modules/tldts/dist/cjs/src/data/trie.js +14 -0
  444. package/node_modules/tldts/dist/cjs/src/data/trie.js.map +1 -0
  445. package/node_modules/tldts/dist/cjs/src/suffix-trie.js +67 -0
  446. package/node_modules/tldts/dist/cjs/src/suffix-trie.js.map +1 -0
  447. package/node_modules/tldts/dist/cjs/tsconfig.tsbuildinfo +1 -0
  448. package/node_modules/tldts/dist/es6/index.js +33 -0
  449. package/node_modules/tldts/dist/es6/index.js.map +1 -0
  450. package/node_modules/tldts/dist/es6/src/data/trie.js +11 -0
  451. package/node_modules/tldts/dist/es6/src/data/trie.js.map +1 -0
  452. package/node_modules/tldts/dist/es6/src/suffix-trie.js +64 -0
  453. package/node_modules/tldts/dist/es6/src/suffix-trie.js.map +1 -0
  454. package/node_modules/tldts/dist/es6/tsconfig.bundle.tsbuildinfo +1 -0
  455. package/node_modules/tldts/dist/index.cjs.min.js +2 -0
  456. package/node_modules/tldts/dist/index.cjs.min.js.map +1 -0
  457. package/node_modules/tldts/dist/index.esm.min.js +2 -0
  458. package/node_modules/tldts/dist/index.esm.min.js.map +1 -0
  459. package/node_modules/tldts/dist/index.umd.min.js +2 -0
  460. package/node_modules/tldts/dist/index.umd.min.js.map +1 -0
  461. package/node_modules/tldts/dist/types/index.d.ts +7 -0
  462. package/node_modules/tldts/dist/types/src/data/trie.d.ts +5 -0
  463. package/node_modules/tldts/dist/types/src/suffix-trie.d.ts +5 -0
  464. package/node_modules/tldts/index.ts +62 -0
  465. package/node_modules/tldts/package.json +91 -0
  466. package/node_modules/tldts/src/data/trie.ts +14 -0
  467. package/node_modules/tldts/src/suffix-trie.ts +110 -0
  468. package/node_modules/tldts-core/LICENSE +13 -0
  469. package/node_modules/tldts-core/README.md +3 -0
  470. package/node_modules/tldts-core/dist/cjs/index.js +561 -0
  471. package/node_modules/tldts-core/dist/cjs/index.js.map +1 -0
  472. package/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js +15 -0
  473. package/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js.map +1 -0
  474. package/node_modules/tldts-core/dist/cjs/src/domain.js +83 -0
  475. package/node_modules/tldts-core/dist/cjs/src/domain.js.map +1 -0
  476. package/node_modules/tldts-core/dist/cjs/src/extract-hostname.js +149 -0
  477. package/node_modules/tldts-core/dist/cjs/src/extract-hostname.js.map +1 -0
  478. package/node_modules/tldts-core/dist/cjs/src/factory.js +104 -0
  479. package/node_modules/tldts-core/dist/cjs/src/factory.js.map +1 -0
  480. package/node_modules/tldts-core/dist/cjs/src/is-ip.js +72 -0
  481. package/node_modules/tldts-core/dist/cjs/src/is-ip.js.map +1 -0
  482. package/node_modules/tldts-core/dist/cjs/src/is-valid.js +69 -0
  483. package/node_modules/tldts-core/dist/cjs/src/is-valid.js.map +1 -0
  484. package/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js +69 -0
  485. package/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js.map +1 -0
  486. package/node_modules/tldts-core/dist/cjs/src/lookup/interface.js +3 -0
  487. package/node_modules/tldts-core/dist/cjs/src/lookup/interface.js.map +1 -0
  488. package/node_modules/tldts-core/dist/cjs/src/options.js +22 -0
  489. package/node_modules/tldts-core/dist/cjs/src/options.js.map +1 -0
  490. package/node_modules/tldts-core/dist/cjs/src/subdomain.js +14 -0
  491. package/node_modules/tldts-core/dist/cjs/src/subdomain.js.map +1 -0
  492. package/node_modules/tldts-core/dist/cjs/tsconfig.tsbuildinfo +1 -0
  493. package/node_modules/tldts-core/dist/es6/index.js +4 -0
  494. package/node_modules/tldts-core/dist/es6/index.js.map +1 -0
  495. package/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js +12 -0
  496. package/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js.map +1 -0
  497. package/node_modules/tldts-core/dist/es6/src/domain.js +80 -0
  498. package/node_modules/tldts-core/dist/es6/src/domain.js.map +1 -0
  499. package/node_modules/tldts-core/dist/es6/src/extract-hostname.js +146 -0
  500. package/node_modules/tldts-core/dist/es6/src/extract-hostname.js.map +1 -0
  501. package/node_modules/tldts-core/dist/es6/src/factory.js +99 -0
  502. package/node_modules/tldts-core/dist/es6/src/factory.js.map +1 -0
  503. package/node_modules/tldts-core/dist/es6/src/is-ip.js +69 -0
  504. package/node_modules/tldts-core/dist/es6/src/is-ip.js.map +1 -0
  505. package/node_modules/tldts-core/dist/es6/src/is-valid.js +66 -0
  506. package/node_modules/tldts-core/dist/es6/src/is-valid.js.map +1 -0
  507. package/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js +66 -0
  508. package/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js.map +1 -0
  509. package/node_modules/tldts-core/dist/es6/src/lookup/interface.js +2 -0
  510. package/node_modules/tldts-core/dist/es6/src/lookup/interface.js.map +1 -0
  511. package/node_modules/tldts-core/dist/es6/src/options.js +19 -0
  512. package/node_modules/tldts-core/dist/es6/src/options.js.map +1 -0
  513. package/node_modules/tldts-core/dist/es6/src/subdomain.js +11 -0
  514. package/node_modules/tldts-core/dist/es6/src/subdomain.js.map +1 -0
  515. package/node_modules/tldts-core/dist/es6/tsconfig.bundle.tsbuildinfo +1 -0
  516. package/node_modules/tldts-core/dist/types/index.d.ts +4 -0
  517. package/node_modules/tldts-core/dist/types/src/domain-without-suffix.d.ts +6 -0
  518. package/node_modules/tldts-core/dist/types/src/domain.d.ts +5 -0
  519. package/node_modules/tldts-core/dist/types/src/extract-hostname.d.ts +5 -0
  520. package/node_modules/tldts-core/dist/types/src/factory.d.ts +28 -0
  521. package/node_modules/tldts-core/dist/types/src/is-ip.d.ts +6 -0
  522. package/node_modules/tldts-core/dist/types/src/is-valid.d.ts +15 -0
  523. package/node_modules/tldts-core/dist/types/src/lookup/fast-path.d.ts +2 -0
  524. package/node_modules/tldts-core/dist/types/src/lookup/interface.d.ts +9 -0
  525. package/node_modules/tldts-core/dist/types/src/options.d.ts +10 -0
  526. package/node_modules/tldts-core/dist/types/src/subdomain.d.ts +4 -0
  527. package/node_modules/tldts-core/index.ts +10 -0
  528. package/node_modules/tldts-core/package.json +68 -0
  529. package/node_modules/tldts-core/src/domain-without-suffix.ts +14 -0
  530. package/node_modules/tldts-core/src/domain.ts +100 -0
  531. package/node_modules/tldts-core/src/extract-hostname.ts +170 -0
  532. package/node_modules/tldts-core/src/factory.ts +160 -0
  533. package/node_modules/tldts-core/src/is-ip.ts +87 -0
  534. package/node_modules/tldts-core/src/is-valid.ts +79 -0
  535. package/node_modules/tldts-core/src/lookup/fast-path.ts +80 -0
  536. package/node_modules/tldts-core/src/lookup/interface.ts +10 -0
  537. package/node_modules/tldts-core/src/options.ts +39 -0
  538. package/node_modules/tldts-core/src/subdomain.ts +11 -0
  539. package/node_modules/tough-cookie/LICENSE +12 -0
  540. package/node_modules/tough-cookie/README.md +154 -0
  541. package/node_modules/tough-cookie/dist/cookie/canonicalDomain.d.ts +33 -0
  542. package/node_modules/tough-cookie/dist/cookie/canonicalDomain.js +65 -0
  543. package/node_modules/tough-cookie/dist/cookie/constants.d.ts +54 -0
  544. package/node_modules/tough-cookie/dist/cookie/constants.js +38 -0
  545. package/node_modules/tough-cookie/dist/cookie/cookie.d.ts +326 -0
  546. package/node_modules/tough-cookie/dist/cookie/cookie.js +831 -0
  547. package/node_modules/tough-cookie/dist/cookie/cookieCompare.d.ts +58 -0
  548. package/node_modules/tough-cookie/dist/cookie/cookieCompare.js +84 -0
  549. package/node_modules/tough-cookie/dist/cookie/cookieJar.d.ts +621 -0
  550. package/node_modules/tough-cookie/dist/cookie/cookieJar.js +1000 -0
  551. package/node_modules/tough-cookie/dist/cookie/defaultPath.d.ts +40 -0
  552. package/node_modules/tough-cookie/dist/cookie/defaultPath.js +60 -0
  553. package/node_modules/tough-cookie/dist/cookie/domainMatch.d.ts +38 -0
  554. package/node_modules/tough-cookie/dist/cookie/domainMatch.js +94 -0
  555. package/node_modules/tough-cookie/dist/cookie/formatDate.d.ts +15 -0
  556. package/node_modules/tough-cookie/dist/cookie/formatDate.js +20 -0
  557. package/node_modules/tough-cookie/dist/cookie/index.d.ts +29 -0
  558. package/node_modules/tough-cookie/dist/cookie/index.js +54 -0
  559. package/node_modules/tough-cookie/dist/cookie/parseDate.d.ts +103 -0
  560. package/node_modules/tough-cookie/dist/cookie/parseDate.js +323 -0
  561. package/node_modules/tough-cookie/dist/cookie/permutePath.d.ts +14 -0
  562. package/node_modules/tough-cookie/dist/cookie/permutePath.js +32 -0
  563. package/node_modules/tough-cookie/dist/getPublicSuffix.d.ts +55 -0
  564. package/node_modules/tough-cookie/dist/getPublicSuffix.js +71 -0
  565. package/node_modules/tough-cookie/dist/memstore.d.ts +220 -0
  566. package/node_modules/tough-cookie/dist/memstore.js +187 -0
  567. package/node_modules/tough-cookie/dist/pathMatch.d.ts +17 -0
  568. package/node_modules/tough-cookie/dist/pathMatch.js +40 -0
  569. package/node_modules/tough-cookie/dist/permuteDomain.d.ts +15 -0
  570. package/node_modules/tough-cookie/dist/permuteDomain.js +44 -0
  571. package/node_modules/tough-cookie/dist/store.d.ts +211 -0
  572. package/node_modules/tough-cookie/dist/store.js +76 -0
  573. package/node_modules/tough-cookie/dist/utils.d.ts +34 -0
  574. package/node_modules/tough-cookie/dist/utils.js +99 -0
  575. package/node_modules/tough-cookie/dist/validators.d.ts +24 -0
  576. package/node_modules/tough-cookie/dist/validators.js +90 -0
  577. package/node_modules/tough-cookie/dist/version.d.ts +5 -0
  578. package/node_modules/tough-cookie/dist/version.js +8 -0
  579. package/node_modules/tough-cookie/package.json +144 -0
  580. package/node_modules/ws/LICENSE +20 -0
  581. package/node_modules/ws/README.md +548 -0
  582. package/node_modules/ws/browser.js +8 -0
  583. package/node_modules/ws/index.js +22 -0
  584. package/node_modules/ws/lib/buffer-util.js +131 -0
  585. package/node_modules/ws/lib/constants.js +19 -0
  586. package/node_modules/ws/lib/event-target.js +292 -0
  587. package/node_modules/ws/lib/extension.js +203 -0
  588. package/node_modules/ws/lib/limiter.js +55 -0
  589. package/node_modules/ws/lib/permessage-deflate.js +530 -0
  590. package/node_modules/ws/lib/receiver.js +743 -0
  591. package/node_modules/ws/lib/sender.js +607 -0
  592. package/node_modules/ws/lib/stream.js +161 -0
  593. package/node_modules/ws/lib/subprotocol.js +62 -0
  594. package/node_modules/ws/lib/validation.js +152 -0
  595. package/node_modules/ws/lib/websocket-server.js +562 -0
  596. package/node_modules/ws/lib/websocket.js +1407 -0
  597. package/node_modules/ws/package.json +74 -0
  598. package/node_modules/ws/wrapper.mjs +21 -0
  599. package/node_modules/zca-js/.prettierrc +5 -0
  600. package/node_modules/zca-js/CODE_OF_CONDUCT.md +163 -0
  601. package/node_modules/zca-js/CONTRIBUTING.md +470 -0
  602. package/node_modules/zca-js/LICENSE +21 -0
  603. package/node_modules/zca-js/README.md +225 -0
  604. package/node_modules/zca-js/SECURITY.md +83 -0
  605. package/node_modules/zca-js/dist/Errors/ZaloApiError.d.ts +4 -0
  606. package/node_modules/zca-js/dist/Errors/ZaloApiError.js +7 -0
  607. package/node_modules/zca-js/dist/Errors/ZaloApiLoginQRAborted.d.ts +4 -0
  608. package/node_modules/zca-js/dist/Errors/ZaloApiLoginQRAborted.js +7 -0
  609. package/node_modules/zca-js/dist/Errors/ZaloApiLoginQRDeclined.d.ts +4 -0
  610. package/node_modules/zca-js/dist/Errors/ZaloApiLoginQRDeclined.js +7 -0
  611. package/node_modules/zca-js/dist/Errors/ZaloApiMissingImageMetadataGetter.d.ts +4 -0
  612. package/node_modules/zca-js/dist/Errors/ZaloApiMissingImageMetadataGetter.js +7 -0
  613. package/node_modules/zca-js/dist/Errors/index.d.ts +4 -0
  614. package/node_modules/zca-js/dist/Errors/index.js +4 -0
  615. package/node_modules/zca-js/dist/apis/acceptFriendRequest.d.ts +2 -0
  616. package/node_modules/zca-js/dist/apis/acceptFriendRequest.js +28 -0
  617. package/node_modules/zca-js/dist/apis/addGroupBlockedMember.d.ts +2 -0
  618. package/node_modules/zca-js/dist/apis/addGroupBlockedMember.js +28 -0
  619. package/node_modules/zca-js/dist/apis/addGroupDeputy.d.ts +2 -0
  620. package/node_modules/zca-js/dist/apis/addGroupDeputy.js +30 -0
  621. package/node_modules/zca-js/dist/apis/addPollOptions.d.ts +14 -0
  622. package/node_modules/zca-js/dist/apis/addPollOptions.js +26 -0
  623. package/node_modules/zca-js/dist/apis/addQuickMessage.d.ts +11 -0
  624. package/node_modules/zca-js/dist/apis/addQuickMessage.js +60 -0
  625. package/node_modules/zca-js/dist/apis/addReaction.d.ts +18 -0
  626. package/node_modules/zca-js/dist/apis/addReaction.js +294 -0
  627. package/node_modules/zca-js/dist/apis/addUnreadMark.d.ts +8 -0
  628. package/node_modules/zca-js/dist/apis/addUnreadMark.js +52 -0
  629. package/node_modules/zca-js/dist/apis/addUserToGroup.d.ts +5 -0
  630. package/node_modules/zca-js/dist/apis/addUserToGroup.js +34 -0
  631. package/node_modules/zca-js/dist/apis/blockUser.d.ts +2 -0
  632. package/node_modules/zca-js/dist/apis/blockUser.js +28 -0
  633. package/node_modules/zca-js/dist/apis/blockViewFeed.d.ts +2 -0
  634. package/node_modules/zca-js/dist/apis/blockViewFeed.js +30 -0
  635. package/node_modules/zca-js/dist/apis/changeAccountAvatar.d.ts +3 -0
  636. package/node_modules/zca-js/dist/apis/changeAccountAvatar.js +52 -0
  637. package/node_modules/zca-js/dist/apis/changeFriendAlias.d.ts +2 -0
  638. package/node_modules/zca-js/dist/apis/changeFriendAlias.js +27 -0
  639. package/node_modules/zca-js/dist/apis/changeGroupAvatar.d.ts +3 -0
  640. package/node_modules/zca-js/dist/apis/changeGroupAvatar.js +44 -0
  641. package/node_modules/zca-js/dist/apis/changeGroupName.d.ts +4 -0
  642. package/node_modules/zca-js/dist/apis/changeGroupName.js +32 -0
  643. package/node_modules/zca-js/dist/apis/changeGroupOwner.d.ts +4 -0
  644. package/node_modules/zca-js/dist/apis/changeGroupOwner.js +30 -0
  645. package/node_modules/zca-js/dist/apis/createAutoReply.d.ts +14 -0
  646. package/node_modules/zca-js/dist/apis/createAutoReply.js +37 -0
  647. package/node_modules/zca-js/dist/apis/createBankAccount.d.ts +8 -0
  648. package/node_modules/zca-js/dist/apis/createBankAccount.js +32 -0
  649. package/node_modules/zca-js/dist/apis/createCatalog.d.ts +7 -0
  650. package/node_modules/zca-js/dist/apis/createCatalog.js +29 -0
  651. package/node_modules/zca-js/dist/apis/createGroup.d.ts +28 -0
  652. package/node_modules/zca-js/dist/apis/createGroup.js +43 -0
  653. package/node_modules/zca-js/dist/apis/createNote.d.ts +7 -0
  654. package/node_modules/zca-js/dist/apis/createNote.js +47 -0
  655. package/node_modules/zca-js/dist/apis/createPoll.d.ts +36 -0
  656. package/node_modules/zca-js/dist/apis/createPoll.js +40 -0
  657. package/node_modules/zca-js/dist/apis/createProductCatalog.d.ts +23 -0
  658. package/node_modules/zca-js/dist/apis/createProductCatalog.js +50 -0
  659. package/node_modules/zca-js/dist/apis/createReminder.d.ts +12 -0
  660. package/node_modules/zca-js/dist/apis/createReminder.js +63 -0
  661. package/node_modules/zca-js/dist/apis/custom.d.ts +9 -0
  662. package/node_modules/zca-js/dist/apis/custom.js +15 -0
  663. package/node_modules/zca-js/dist/apis/deleteAutoReply.d.ts +5 -0
  664. package/node_modules/zca-js/dist/apis/deleteAutoReply.js +29 -0
  665. package/node_modules/zca-js/dist/apis/deleteAvatar.d.ts +9 -0
  666. package/node_modules/zca-js/dist/apis/deleteAvatar.js +27 -0
  667. package/node_modules/zca-js/dist/apis/deleteBankAccount.d.ts +11 -0
  668. package/node_modules/zca-js/dist/apis/deleteBankAccount.js +32 -0
  669. package/node_modules/zca-js/dist/apis/deleteCatalog.d.ts +2 -0
  670. package/node_modules/zca-js/dist/apis/deleteCatalog.js +28 -0
  671. package/node_modules/zca-js/dist/apis/deleteChat.d.ts +19 -0
  672. package/node_modules/zca-js/dist/apis/deleteChat.js +50 -0
  673. package/node_modules/zca-js/dist/apis/deleteGroupInviteBox.d.ts +9 -0
  674. package/node_modules/zca-js/dist/apis/deleteGroupInviteBox.js +27 -0
  675. package/node_modules/zca-js/dist/apis/deleteMessage.d.ts +14 -0
  676. package/node_modules/zca-js/dist/apis/deleteMessage.js +52 -0
  677. package/node_modules/zca-js/dist/apis/deleteProductCatalog.d.ts +10 -0
  678. package/node_modules/zca-js/dist/apis/deleteProductCatalog.js +31 -0
  679. package/node_modules/zca-js/dist/apis/deleteSnapshotMobileMsg.js +18 -0
  680. package/node_modules/zca-js/dist/apis/disableGroupLink.d.ts +2 -0
  681. package/node_modules/zca-js/dist/apis/disableGroupLink.js +24 -0
  682. package/node_modules/zca-js/dist/apis/disperseGroup.d.ts +2 -0
  683. package/node_modules/zca-js/dist/apis/disperseGroup.js +28 -0
  684. package/node_modules/zca-js/dist/apis/editNote.d.ts +17 -0
  685. package/node_modules/zca-js/dist/apis/editNote.js +46 -0
  686. package/node_modules/zca-js/dist/apis/editReminder.d.ts +13 -0
  687. package/node_modules/zca-js/dist/apis/editReminder.js +61 -0
  688. package/node_modules/zca-js/dist/apis/enableGroupLink.d.ts +6 -0
  689. package/node_modules/zca-js/dist/apis/enableGroupLink.js +25 -0
  690. package/node_modules/zca-js/dist/apis/fetchAccountInfo.d.ts +5 -0
  691. package/node_modules/zca-js/dist/apis/fetchAccountInfo.js +10 -0
  692. package/node_modules/zca-js/dist/apis/findUser.d.ts +3 -0
  693. package/node_modules/zca-js/dist/apis/findUser.js +42 -0
  694. package/node_modules/zca-js/dist/apis/findUserByUsername.d.ts +3 -0
  695. package/node_modules/zca-js/dist/apis/findUserByUsername.js +27 -0
  696. package/node_modules/zca-js/dist/apis/forwardMessage.d.ts +24 -0
  697. package/node_modules/zca-js/dist/apis/forwardMessage.js +114 -0
  698. package/node_modules/zca-js/dist/apis/getAliasList.d.ts +8 -0
  699. package/node_modules/zca-js/dist/apis/getAliasList.js +27 -0
  700. package/node_modules/zca-js/dist/apis/getAllFriends.d.ts +3 -0
  701. package/node_modules/zca-js/dist/apis/getAllFriends.js +34 -0
  702. package/node_modules/zca-js/dist/apis/getAllGroups.d.ts +7 -0
  703. package/node_modules/zca-js/dist/apis/getAllGroups.js +10 -0
  704. package/node_modules/zca-js/dist/apis/getArchivedChatList.d.ts +5 -0
  705. package/node_modules/zca-js/dist/apis/getArchivedChatList.js +23 -0
  706. package/node_modules/zca-js/dist/apis/getAutoDeleteChat.d.ts +9 -0
  707. package/node_modules/zca-js/dist/apis/getAutoDeleteChat.js +21 -0
  708. package/node_modules/zca-js/dist/apis/getAutoReplyList.d.ts +6 -0
  709. package/node_modules/zca-js/dist/apis/getAutoReplyList.js +24 -0
  710. package/node_modules/zca-js/dist/apis/getAvatarList.d.ts +12 -0
  711. package/node_modules/zca-js/dist/apis/getAvatarList.js +28 -0
  712. package/node_modules/zca-js/dist/apis/getAvatarUrlProfile.d.ts +7 -0
  713. package/node_modules/zca-js/dist/apis/getAvatarUrlProfile.js +30 -0
  714. package/node_modules/zca-js/dist/apis/getBizAccount.d.ts +24 -0
  715. package/node_modules/zca-js/dist/apis/getBizAccount.js +27 -0
  716. package/node_modules/zca-js/dist/apis/getCatalogList.d.ts +18 -0
  717. package/node_modules/zca-js/dist/apis/getCatalogList.js +32 -0
  718. package/node_modules/zca-js/dist/apis/getCloseFriends.d.ts +3 -0
  719. package/node_modules/zca-js/dist/apis/getCloseFriends.js +20 -0
  720. package/node_modules/zca-js/dist/apis/getContext.d.ts +1 -0
  721. package/node_modules/zca-js/dist/apis/getContext.js +4 -0
  722. package/node_modules/zca-js/dist/apis/getCookie.d.ts +1 -0
  723. package/node_modules/zca-js/dist/apis/getCookie.js +9 -0
  724. package/node_modules/zca-js/dist/apis/getCrossDB.js +18 -0
  725. package/node_modules/zca-js/dist/apis/getFriendBoardList.d.ts +5 -0
  726. package/node_modules/zca-js/dist/apis/getFriendBoardList.js +26 -0
  727. package/node_modules/zca-js/dist/apis/getFriendOnlines.d.ts +10 -0
  728. package/node_modules/zca-js/dist/apis/getFriendOnlines.js +35 -0
  729. package/node_modules/zca-js/dist/apis/getFriendRecommendations.d.ts +42 -0
  730. package/node_modules/zca-js/dist/apis/getFriendRecommendations.js +27 -0
  731. package/node_modules/zca-js/dist/apis/getFriendRequestStatus.d.ts +8 -0
  732. package/node_modules/zca-js/dist/apis/getFriendRequestStatus.js +25 -0
  733. package/node_modules/zca-js/dist/apis/getFullAvatar.d.ts +5 -0
  734. package/node_modules/zca-js/dist/apis/getFullAvatar.js +25 -0
  735. package/node_modules/zca-js/dist/apis/getGroupBlockedMember.d.ts +23 -0
  736. package/node_modules/zca-js/dist/apis/getGroupBlockedMember.js +29 -0
  737. package/node_modules/zca-js/dist/apis/getGroupChatHistory.d.ts +8 -0
  738. package/node_modules/zca-js/dist/apis/getGroupChatHistory.js +36 -0
  739. package/node_modules/zca-js/dist/apis/getGroupInfo.d.ts +16 -0
  740. package/node_modules/zca-js/dist/apis/getGroupInfo.js +32 -0
  741. package/node_modules/zca-js/dist/apis/getGroupInviteBoxInfo.d.ts +32 -0
  742. package/node_modules/zca-js/dist/apis/getGroupInviteBoxInfo.js +38 -0
  743. package/node_modules/zca-js/dist/apis/getGroupInviteBoxList.d.ts +38 -0
  744. package/node_modules/zca-js/dist/apis/getGroupInviteBoxList.js +31 -0
  745. package/node_modules/zca-js/dist/apis/getGroupLinkDetail.d.ts +9 -0
  746. package/node_modules/zca-js/dist/apis/getGroupLinkDetail.js +25 -0
  747. package/node_modules/zca-js/dist/apis/getGroupLinkInfo.d.ts +34 -0
  748. package/node_modules/zca-js/dist/apis/getGroupLinkInfo.js +28 -0
  749. package/node_modules/zca-js/dist/apis/getGroupMembersInfo.d.ts +17 -0
  750. package/node_modules/zca-js/dist/apis/getGroupMembersInfo.js +24 -0
  751. package/node_modules/zca-js/dist/apis/getHiddenConversations.d.ts +11 -0
  752. package/node_modules/zca-js/dist/apis/getHiddenConversations.js +23 -0
  753. package/node_modules/zca-js/dist/apis/getLabels.d.ts +7 -0
  754. package/node_modules/zca-js/dist/apis/getLabels.js +28 -0
  755. package/node_modules/zca-js/dist/apis/getListBank.d.ts +5 -0
  756. package/node_modules/zca-js/dist/apis/getListBank.js +20 -0
  757. package/node_modules/zca-js/dist/apis/getListBankAccount.d.ts +7 -0
  758. package/node_modules/zca-js/dist/apis/getListBankAccount.js +27 -0
  759. package/node_modules/zca-js/dist/apis/getListBoard.d.ts +21 -0
  760. package/node_modules/zca-js/dist/apis/getListBoard.js +45 -0
  761. package/node_modules/zca-js/dist/apis/getListDevice.d.ts +10 -0
  762. package/node_modules/zca-js/dist/apis/getListDevice.js +22 -0
  763. package/node_modules/zca-js/dist/apis/getListReminder.d.ts +28 -0
  764. package/node_modules/zca-js/dist/apis/getListReminder.js +47 -0
  765. package/node_modules/zca-js/dist/apis/getMultiUsersByPhones.d.ts +5 -0
  766. package/node_modules/zca-js/dist/apis/getMultiUsersByPhones.js +39 -0
  767. package/node_modules/zca-js/dist/apis/getMute.d.ts +13 -0
  768. package/node_modules/zca-js/dist/apis/getMute.js +22 -0
  769. package/node_modules/zca-js/dist/apis/getOwnId.d.ts +1 -0
  770. package/node_modules/zca-js/dist/apis/getOwnId.js +4 -0
  771. package/node_modules/zca-js/dist/apis/getPendingGroupMembers.d.ts +11 -0
  772. package/node_modules/zca-js/dist/apis/getPendingGroupMembers.js +27 -0
  773. package/node_modules/zca-js/dist/apis/getPinConversations.d.ts +5 -0
  774. package/node_modules/zca-js/dist/apis/getPinConversations.js +22 -0
  775. package/node_modules/zca-js/dist/apis/getPollDetail.d.ts +3 -0
  776. package/node_modules/zca-js/dist/apis/getPollDetail.js +30 -0
  777. package/node_modules/zca-js/dist/apis/getProductCatalogList.d.ts +20 -0
  778. package/node_modules/zca-js/dist/apis/getProductCatalogList.js +33 -0
  779. package/node_modules/zca-js/dist/apis/getQR.d.ts +4 -0
  780. package/node_modules/zca-js/dist/apis/getQR.js +29 -0
  781. package/node_modules/zca-js/dist/apis/getQuickMessageList.d.ts +7 -0
  782. package/node_modules/zca-js/dist/apis/getQuickMessageList.js +24 -0
  783. package/node_modules/zca-js/dist/apis/getRelatedFriendGroup.d.ts +6 -0
  784. package/node_modules/zca-js/dist/apis/getRelatedFriendGroup.js +30 -0
  785. package/node_modules/zca-js/dist/apis/getReminder.d.ts +3 -0
  786. package/node_modules/zca-js/dist/apis/getReminder.js +25 -0
  787. package/node_modules/zca-js/dist/apis/getReminderResponses.d.ts +5 -0
  788. package/node_modules/zca-js/dist/apis/getReminderResponses.js +24 -0
  789. package/node_modules/zca-js/dist/apis/getSentFriendRequest.d.ts +18 -0
  790. package/node_modules/zca-js/dist/apis/getSentFriendRequest.js +24 -0
  791. package/node_modules/zca-js/dist/apis/getSettings.d.ts +3 -0
  792. package/node_modules/zca-js/dist/apis/getSettings.js +20 -0
  793. package/node_modules/zca-js/dist/apis/getStickerCategoryDetail.d.ts +3 -0
  794. package/node_modules/zca-js/dist/apis/getStickerCategoryDetail.js +24 -0
  795. package/node_modules/zca-js/dist/apis/getStickers.d.ts +1 -0
  796. package/node_modules/zca-js/dist/apis/getStickers.js +40 -0
  797. package/node_modules/zca-js/dist/apis/getStickersDetail.d.ts +3 -0
  798. package/node_modules/zca-js/dist/apis/getStickersDetail.js +40 -0
  799. package/node_modules/zca-js/dist/apis/getUnreadMark.d.ts +14 -0
  800. package/node_modules/zca-js/dist/apis/getUnreadMark.js +30 -0
  801. package/node_modules/zca-js/dist/apis/getUserInfo.d.ts +8 -0
  802. package/node_modules/zca-js/dist/apis/getUserInfo.js +44 -0
  803. package/node_modules/zca-js/dist/apis/inviteUserToGroups.d.ts +10 -0
  804. package/node_modules/zca-js/dist/apis/inviteUserToGroups.js +30 -0
  805. package/node_modules/zca-js/dist/apis/joinGroupInviteBox.d.ts +2 -0
  806. package/node_modules/zca-js/dist/apis/joinGroupInviteBox.js +25 -0
  807. package/node_modules/zca-js/dist/apis/joinGroupLink.d.ts +2 -0
  808. package/node_modules/zca-js/dist/apis/joinGroupLink.js +27 -0
  809. package/node_modules/zca-js/dist/apis/keepAlive.d.ts +4 -0
  810. package/node_modules/zca-js/dist/apis/keepAlive.js +22 -0
  811. package/node_modules/zca-js/dist/apis/lastOnline.d.ts +7 -0
  812. package/node_modules/zca-js/dist/apis/lastOnline.js +26 -0
  813. package/node_modules/zca-js/dist/apis/leaveGroup.d.ts +4 -0
  814. package/node_modules/zca-js/dist/apis/leaveGroup.js +33 -0
  815. package/node_modules/zca-js/dist/apis/listen.d.ts +102 -0
  816. package/node_modules/zca-js/dist/apis/listen.js +425 -0
  817. package/node_modules/zca-js/dist/apis/lockPoll.d.ts +2 -0
  818. package/node_modules/zca-js/dist/apis/lockPoll.js +28 -0
  819. package/node_modules/zca-js/dist/apis/login.d.ts +3 -0
  820. package/node_modules/zca-js/dist/apis/login.js +96 -0
  821. package/node_modules/zca-js/dist/apis/loginQR.d.ts +71 -0
  822. package/node_modules/zca-js/dist/apis/loginQR.js +376 -0
  823. package/node_modules/zca-js/dist/apis/logoutV2.js +79 -0
  824. package/node_modules/zca-js/dist/apis/lostFocus.d.ts +4 -0
  825. package/node_modules/zca-js/dist/apis/lostFocus.js +23 -0
  826. package/node_modules/zca-js/dist/apis/parseLink.d.ts +21 -0
  827. package/node_modules/zca-js/dist/apis/parseLink.js +27 -0
  828. package/node_modules/zca-js/dist/apis/pullMobileMsg.js +22 -0
  829. package/node_modules/zca-js/dist/apis/registerCatalog.d.ts +2 -0
  830. package/node_modules/zca-js/dist/apis/registerCatalog.js +27 -0
  831. package/node_modules/zca-js/dist/apis/rejectFriendRequest.d.ts +2 -0
  832. package/node_modules/zca-js/dist/apis/rejectFriendRequest.js +27 -0
  833. package/node_modules/zca-js/dist/apis/removeFriend.d.ts +2 -0
  834. package/node_modules/zca-js/dist/apis/removeFriend.js +28 -0
  835. package/node_modules/zca-js/dist/apis/removeFriendAlias.d.ts +2 -0
  836. package/node_modules/zca-js/dist/apis/removeFriendAlias.js +24 -0
  837. package/node_modules/zca-js/dist/apis/removeGroupBlockedMember.d.ts +2 -0
  838. package/node_modules/zca-js/dist/apis/removeGroupBlockedMember.js +28 -0
  839. package/node_modules/zca-js/dist/apis/removeGroupDeputy.d.ts +2 -0
  840. package/node_modules/zca-js/dist/apis/removeGroupDeputy.js +30 -0
  841. package/node_modules/zca-js/dist/apis/removeQuickMessage.d.ts +5 -0
  842. package/node_modules/zca-js/dist/apis/removeQuickMessage.js +27 -0
  843. package/node_modules/zca-js/dist/apis/removeReminder.d.ts +3 -0
  844. package/node_modules/zca-js/dist/apis/removeReminder.js +40 -0
  845. package/node_modules/zca-js/dist/apis/removeUnreadMark.d.ts +8 -0
  846. package/node_modules/zca-js/dist/apis/removeUnreadMark.js +50 -0
  847. package/node_modules/zca-js/dist/apis/removeUserFromGroup.d.ts +4 -0
  848. package/node_modules/zca-js/dist/apis/removeUserFromGroup.js +34 -0
  849. package/node_modules/zca-js/dist/apis/requestSyncMessage.js +18 -0
  850. package/node_modules/zca-js/dist/apis/resetHiddenConversPin.d.ts +2 -0
  851. package/node_modules/zca-js/dist/apis/resetHiddenConversPin.js +20 -0
  852. package/node_modules/zca-js/dist/apis/reuseAvatar.d.ts +2 -0
  853. package/node_modules/zca-js/dist/apis/reuseAvatar.js +26 -0
  854. package/node_modules/zca-js/dist/apis/reviewPendingMemberRequest.d.ts +14 -0
  855. package/node_modules/zca-js/dist/apis/reviewPendingMemberRequest.js +38 -0
  856. package/node_modules/zca-js/dist/apis/scanURL.d.ts +4 -0
  857. package/node_modules/zca-js/dist/apis/scanURL.js +28 -0
  858. package/node_modules/zca-js/dist/apis/searchSticker.d.ts +3 -0
  859. package/node_modules/zca-js/dist/apis/searchSticker.js +28 -0
  860. package/node_modules/zca-js/dist/apis/sendBankCard.d.ts +9 -0
  861. package/node_modules/zca-js/dist/apis/sendBankCard.js +53 -0
  862. package/node_modules/zca-js/dist/apis/sendCard.d.ts +10 -0
  863. package/node_modules/zca-js/dist/apis/sendCard.js +75 -0
  864. package/node_modules/zca-js/dist/apis/sendDeliveredEvent.d.ts +16 -0
  865. package/node_modules/zca-js/dist/apis/sendDeliveredEvent.js +55 -0
  866. package/node_modules/zca-js/dist/apis/sendFriendRequest.d.ts +2 -0
  867. package/node_modules/zca-js/dist/apis/sendFriendRequest.js +39 -0
  868. package/node_modules/zca-js/dist/apis/sendLink.d.ts +10 -0
  869. package/node_modules/zca-js/dist/apis/sendLink.js +78 -0
  870. package/node_modules/zca-js/dist/apis/sendMessage.d.ts +105 -0
  871. package/node_modules/zca-js/dist/apis/sendMessage.js +486 -0
  872. package/node_modules/zca-js/dist/apis/sendReport.d.ts +17 -0
  873. package/node_modules/zca-js/dist/apis/sendReport.js +53 -0
  874. package/node_modules/zca-js/dist/apis/sendSeenEvent.d.ts +16 -0
  875. package/node_modules/zca-js/dist/apis/sendSeenEvent.js +63 -0
  876. package/node_modules/zca-js/dist/apis/sendSticker.d.ts +10 -0
  877. package/node_modules/zca-js/dist/apis/sendSticker.js +74 -0
  878. package/node_modules/zca-js/dist/apis/sendTypingEvent.d.ts +5 -0
  879. package/node_modules/zca-js/dist/apis/sendTypingEvent.js +33 -0
  880. package/node_modules/zca-js/dist/apis/sendVideo.d.ts +35 -0
  881. package/node_modules/zca-js/dist/apis/sendVideo.js +134 -0
  882. package/node_modules/zca-js/dist/apis/sendVoice.d.ts +12 -0
  883. package/node_modules/zca-js/dist/apis/sendVoice.js +89 -0
  884. package/node_modules/zca-js/dist/apis/setHiddenConversations.d.ts +3 -0
  885. package/node_modules/zca-js/dist/apis/setHiddenConversations.js +39 -0
  886. package/node_modules/zca-js/dist/apis/setMute.d.ts +20 -0
  887. package/node_modules/zca-js/dist/apis/setMute.js +67 -0
  888. package/node_modules/zca-js/dist/apis/setPinnedConversations.d.ts +3 -0
  889. package/node_modules/zca-js/dist/apis/setPinnedConversations.js +34 -0
  890. package/node_modules/zca-js/dist/apis/sharePoll.d.ts +2 -0
  891. package/node_modules/zca-js/dist/apis/sharePoll.js +28 -0
  892. package/node_modules/zca-js/dist/apis/unblockUser.d.ts +2 -0
  893. package/node_modules/zca-js/dist/apis/unblockUser.js +28 -0
  894. package/node_modules/zca-js/dist/apis/undo.d.ts +9 -0
  895. package/node_modules/zca-js/dist/apis/undo.js +42 -0
  896. package/node_modules/zca-js/dist/apis/undoFriendRequest.d.ts +2 -0
  897. package/node_modules/zca-js/dist/apis/undoFriendRequest.js +27 -0
  898. package/node_modules/zca-js/dist/apis/updateActiveStatus.d.ts +4 -0
  899. package/node_modules/zca-js/dist/apis/updateActiveStatus.js +27 -0
  900. package/node_modules/zca-js/dist/apis/updateArchivedChatList.d.ts +10 -0
  901. package/node_modules/zca-js/dist/apis/updateArchivedChatList.js +34 -0
  902. package/node_modules/zca-js/dist/apis/updateAutoDeleteChat.d.ts +9 -0
  903. package/node_modules/zca-js/dist/apis/updateAutoDeleteChat.js +40 -0
  904. package/node_modules/zca-js/dist/apis/updateAutoReply.d.ts +15 -0
  905. package/node_modules/zca-js/dist/apis/updateAutoReply.js +38 -0
  906. package/node_modules/zca-js/dist/apis/updateBankAccount.d.ts +9 -0
  907. package/node_modules/zca-js/dist/apis/updateBankAccount.js +31 -0
  908. package/node_modules/zca-js/dist/apis/updateCatalog.d.ts +11 -0
  909. package/node_modules/zca-js/dist/apis/updateCatalog.js +30 -0
  910. package/node_modules/zca-js/dist/apis/updateGroupSettings.d.ts +40 -0
  911. package/node_modules/zca-js/dist/apis/updateGroupSettings.js +43 -0
  912. package/node_modules/zca-js/dist/apis/updateHiddenConversPin.d.ts +2 -0
  913. package/node_modules/zca-js/dist/apis/updateHiddenConversPin.js +30 -0
  914. package/node_modules/zca-js/dist/apis/updateLabels.d.ts +15 -0
  915. package/node_modules/zca-js/dist/apis/updateLabels.js +34 -0
  916. package/node_modules/zca-js/dist/apis/updateLang.d.ts +6 -0
  917. package/node_modules/zca-js/dist/apis/updateLang.js +30 -0
  918. package/node_modules/zca-js/dist/apis/updateProductCatalog.d.ts +25 -0
  919. package/node_modules/zca-js/dist/apis/updateProductCatalog.js +51 -0
  920. package/node_modules/zca-js/dist/apis/updateProfile.d.ts +20 -0
  921. package/node_modules/zca-js/dist/apis/updateProfile.js +43 -0
  922. package/node_modules/zca-js/dist/apis/updateProfileBio.d.ts +2 -0
  923. package/node_modules/zca-js/dist/apis/updateProfileBio.js +27 -0
  924. package/node_modules/zca-js/dist/apis/updateQuickMessage.d.ts +11 -0
  925. package/node_modules/zca-js/dist/apis/updateQuickMessage.js +61 -0
  926. package/node_modules/zca-js/dist/apis/updateSettings.d.ts +16 -0
  927. package/node_modules/zca-js/dist/apis/updateSettings.js +90 -0
  928. package/node_modules/zca-js/dist/apis/upgradeGroupToCommunity.d.ts +2 -0
  929. package/node_modules/zca-js/dist/apis/upgradeGroupToCommunity.js +27 -0
  930. package/node_modules/zca-js/dist/apis/uploadAttachment.d.ts +50 -0
  931. package/node_modules/zca-js/dist/apis/uploadAttachment.js +197 -0
  932. package/node_modules/zca-js/dist/apis/uploadProductPhoto.d.ts +14 -0
  933. package/node_modules/zca-js/dist/apis/uploadProductPhoto.js +50 -0
  934. package/node_modules/zca-js/dist/apis/votePoll.d.ts +5 -0
  935. package/node_modules/zca-js/dist/apis/votePoll.js +29 -0
  936. package/node_modules/zca-js/dist/apis.d.ts +317 -0
  937. package/node_modules/zca-js/dist/apis.js +327 -0
  938. package/node_modules/zca-js/dist/cjs/Errors/ZaloApiError.cjs +11 -0
  939. package/node_modules/zca-js/dist/cjs/Errors/ZaloApiLoginQRAborted.cjs +12 -0
  940. package/node_modules/zca-js/dist/cjs/Errors/ZaloApiLoginQRDeclined.cjs +12 -0
  941. package/node_modules/zca-js/dist/cjs/Errors/ZaloApiMissingImageMetadataGetter.cjs +12 -0
  942. package/node_modules/zca-js/dist/cjs/apis/acceptFriendRequest.cjs +33 -0
  943. package/node_modules/zca-js/dist/cjs/apis/addGroupBlockedMember.cjs +33 -0
  944. package/node_modules/zca-js/dist/cjs/apis/addGroupDeputy.cjs +35 -0
  945. package/node_modules/zca-js/dist/cjs/apis/addPollOptions.cjs +31 -0
  946. package/node_modules/zca-js/dist/cjs/apis/addQuickMessage.cjs +65 -0
  947. package/node_modules/zca-js/dist/cjs/apis/addReaction.cjs +308 -0
  948. package/node_modules/zca-js/dist/cjs/apis/addUnreadMark.cjs +66 -0
  949. package/node_modules/zca-js/dist/cjs/apis/addUserToGroup.cjs +39 -0
  950. package/node_modules/zca-js/dist/cjs/apis/blockUser.cjs +33 -0
  951. package/node_modules/zca-js/dist/cjs/apis/blockViewFeed.cjs +35 -0
  952. package/node_modules/zca-js/dist/cjs/apis/changeAccountAvatar.cjs +57 -0
  953. package/node_modules/zca-js/dist/cjs/apis/changeFriendAlias.cjs +32 -0
  954. package/node_modules/zca-js/dist/cjs/apis/changeGroupAvatar.cjs +49 -0
  955. package/node_modules/zca-js/dist/cjs/apis/changeGroupName.cjs +37 -0
  956. package/node_modules/zca-js/dist/cjs/apis/changeGroupOwner.cjs +35 -0
  957. package/node_modules/zca-js/dist/cjs/apis/createAutoReply.cjs +42 -0
  958. package/node_modules/zca-js/dist/cjs/apis/createBankAccount.cjs +37 -0
  959. package/node_modules/zca-js/dist/cjs/apis/createCatalog.cjs +34 -0
  960. package/node_modules/zca-js/dist/cjs/apis/createGroup.cjs +48 -0
  961. package/node_modules/zca-js/dist/cjs/apis/createNote.cjs +52 -0
  962. package/node_modules/zca-js/dist/cjs/apis/createPoll.cjs +45 -0
  963. package/node_modules/zca-js/dist/cjs/apis/createProductCatalog.cjs +55 -0
  964. package/node_modules/zca-js/dist/cjs/apis/createReminder.cjs +77 -0
  965. package/node_modules/zca-js/dist/cjs/apis/custom.cjs +19 -0
  966. package/node_modules/zca-js/dist/cjs/apis/deleteAutoReply.cjs +34 -0
  967. package/node_modules/zca-js/dist/cjs/apis/deleteAvatar.cjs +32 -0
  968. package/node_modules/zca-js/dist/cjs/apis/deleteBankAccount.cjs +37 -0
  969. package/node_modules/zca-js/dist/cjs/apis/deleteCatalog.cjs +33 -0
  970. package/node_modules/zca-js/dist/cjs/apis/deleteChat.cjs +64 -0
  971. package/node_modules/zca-js/dist/cjs/apis/deleteGroupInviteBox.cjs +32 -0
  972. package/node_modules/zca-js/dist/cjs/apis/deleteMessage.cjs +66 -0
  973. package/node_modules/zca-js/dist/cjs/apis/deleteProductCatalog.cjs +36 -0
  974. package/node_modules/zca-js/dist/cjs/apis/deleteSnapshotMobileMsg.cjs +22 -0
  975. package/node_modules/zca-js/dist/cjs/apis/disableGroupLink.cjs +29 -0
  976. package/node_modules/zca-js/dist/cjs/apis/disperseGroup.cjs +33 -0
  977. package/node_modules/zca-js/dist/cjs/apis/editNote.cjs +51 -0
  978. package/node_modules/zca-js/dist/cjs/apis/editReminder.cjs +75 -0
  979. package/node_modules/zca-js/dist/cjs/apis/enableGroupLink.cjs +30 -0
  980. package/node_modules/zca-js/dist/cjs/apis/fetchAccountInfo.cjs +15 -0
  981. package/node_modules/zca-js/dist/cjs/apis/findUser.cjs +56 -0
  982. package/node_modules/zca-js/dist/cjs/apis/findUserByUsername.cjs +41 -0
  983. package/node_modules/zca-js/dist/cjs/apis/forwardMessage.cjs +129 -0
  984. package/node_modules/zca-js/dist/cjs/apis/getAliasList.cjs +32 -0
  985. package/node_modules/zca-js/dist/cjs/apis/getAllFriends.cjs +48 -0
  986. package/node_modules/zca-js/dist/cjs/apis/getAllGroups.cjs +15 -0
  987. package/node_modules/zca-js/dist/cjs/apis/getArchivedChatList.cjs +28 -0
  988. package/node_modules/zca-js/dist/cjs/apis/getAutoDeleteChat.cjs +26 -0
  989. package/node_modules/zca-js/dist/cjs/apis/getAutoReplyList.cjs +29 -0
  990. package/node_modules/zca-js/dist/cjs/apis/getAvatarList.cjs +33 -0
  991. package/node_modules/zca-js/dist/cjs/apis/getAvatarUrlProfile.cjs +44 -0
  992. package/node_modules/zca-js/dist/cjs/apis/getBizAccount.cjs +32 -0
  993. package/node_modules/zca-js/dist/cjs/apis/getCatalogList.cjs +37 -0
  994. package/node_modules/zca-js/dist/cjs/apis/getCloseFriends.cjs +25 -0
  995. package/node_modules/zca-js/dist/cjs/apis/getContext.cjs +9 -0
  996. package/node_modules/zca-js/dist/cjs/apis/getCookie.cjs +14 -0
  997. package/node_modules/zca-js/dist/cjs/apis/getCrossDB.cjs +22 -0
  998. package/node_modules/zca-js/dist/cjs/apis/getFriendBoardList.cjs +31 -0
  999. package/node_modules/zca-js/dist/cjs/apis/getFriendOnlines.cjs +40 -0
  1000. package/node_modules/zca-js/dist/cjs/apis/getFriendRecommendations.cjs +32 -0
  1001. package/node_modules/zca-js/dist/cjs/apis/getFriendRequestStatus.cjs +30 -0
  1002. package/node_modules/zca-js/dist/cjs/apis/getFullAvatar.cjs +30 -0
  1003. package/node_modules/zca-js/dist/cjs/apis/getGroupBlockedMember.cjs +34 -0
  1004. package/node_modules/zca-js/dist/cjs/apis/getGroupChatHistory.cjs +51 -0
  1005. package/node_modules/zca-js/dist/cjs/apis/getGroupInfo.cjs +37 -0
  1006. package/node_modules/zca-js/dist/cjs/apis/getGroupInviteBoxInfo.cjs +43 -0
  1007. package/node_modules/zca-js/dist/cjs/apis/getGroupInviteBoxList.cjs +36 -0
  1008. package/node_modules/zca-js/dist/cjs/apis/getGroupLinkDetail.cjs +30 -0
  1009. package/node_modules/zca-js/dist/cjs/apis/getGroupLinkInfo.cjs +33 -0
  1010. package/node_modules/zca-js/dist/cjs/apis/getGroupMembersInfo.cjs +29 -0
  1011. package/node_modules/zca-js/dist/cjs/apis/getHiddenConversations.cjs +28 -0
  1012. package/node_modules/zca-js/dist/cjs/apis/getLabels.cjs +33 -0
  1013. package/node_modules/zca-js/dist/cjs/apis/getListBank.cjs +25 -0
  1014. package/node_modules/zca-js/dist/cjs/apis/getListBankAccount.cjs +32 -0
  1015. package/node_modules/zca-js/dist/cjs/apis/getListBoard.cjs +59 -0
  1016. package/node_modules/zca-js/dist/cjs/apis/getListDevice.cjs +27 -0
  1017. package/node_modules/zca-js/dist/cjs/apis/getListReminder.cjs +61 -0
  1018. package/node_modules/zca-js/dist/cjs/apis/getMultiUsersByPhones.cjs +53 -0
  1019. package/node_modules/zca-js/dist/cjs/apis/getMute.cjs +27 -0
  1020. package/node_modules/zca-js/dist/cjs/apis/getOwnId.cjs +9 -0
  1021. package/node_modules/zca-js/dist/cjs/apis/getPendingGroupMembers.cjs +32 -0
  1022. package/node_modules/zca-js/dist/cjs/apis/getPinConversations.cjs +27 -0
  1023. package/node_modules/zca-js/dist/cjs/apis/getPollDetail.cjs +35 -0
  1024. package/node_modules/zca-js/dist/cjs/apis/getProductCatalogList.cjs +38 -0
  1025. package/node_modules/zca-js/dist/cjs/apis/getQR.cjs +34 -0
  1026. package/node_modules/zca-js/dist/cjs/apis/getQuickMessageList.cjs +29 -0
  1027. package/node_modules/zca-js/dist/cjs/apis/getRelatedFriendGroup.cjs +35 -0
  1028. package/node_modules/zca-js/dist/cjs/apis/getReminder.cjs +30 -0
  1029. package/node_modules/zca-js/dist/cjs/apis/getReminderResponses.cjs +29 -0
  1030. package/node_modules/zca-js/dist/cjs/apis/getSentFriendRequest.cjs +29 -0
  1031. package/node_modules/zca-js/dist/cjs/apis/getSettings.cjs +25 -0
  1032. package/node_modules/zca-js/dist/cjs/apis/getStickerCategoryDetail.cjs +29 -0
  1033. package/node_modules/zca-js/dist/cjs/apis/getStickers.cjs +45 -0
  1034. package/node_modules/zca-js/dist/cjs/apis/getStickersDetail.cjs +45 -0
  1035. package/node_modules/zca-js/dist/cjs/apis/getUnreadMark.cjs +35 -0
  1036. package/node_modules/zca-js/dist/cjs/apis/getUserInfo.cjs +58 -0
  1037. package/node_modules/zca-js/dist/cjs/apis/inviteUserToGroups.cjs +35 -0
  1038. package/node_modules/zca-js/dist/cjs/apis/joinGroupInviteBox.cjs +30 -0
  1039. package/node_modules/zca-js/dist/cjs/apis/joinGroupLink.cjs +32 -0
  1040. package/node_modules/zca-js/dist/cjs/apis/keepAlive.cjs +27 -0
  1041. package/node_modules/zca-js/dist/cjs/apis/lastOnline.cjs +31 -0
  1042. package/node_modules/zca-js/dist/cjs/apis/leaveGroup.cjs +38 -0
  1043. package/node_modules/zca-js/dist/cjs/apis/listen.cjs +440 -0
  1044. package/node_modules/zca-js/dist/cjs/apis/lockPoll.cjs +33 -0
  1045. package/node_modules/zca-js/dist/cjs/apis/login.cjs +102 -0
  1046. package/node_modules/zca-js/dist/cjs/apis/loginQR.cjs +368 -0
  1047. package/node_modules/zca-js/dist/cjs/apis/logoutV2.cjs +83 -0
  1048. package/node_modules/zca-js/dist/cjs/apis/lostFocus.cjs +28 -0
  1049. package/node_modules/zca-js/dist/cjs/apis/parseLink.cjs +32 -0
  1050. package/node_modules/zca-js/dist/cjs/apis/pullMobileMsg.cjs +26 -0
  1051. package/node_modules/zca-js/dist/cjs/apis/registerCatalog.cjs +32 -0
  1052. package/node_modules/zca-js/dist/cjs/apis/rejectFriendRequest.cjs +32 -0
  1053. package/node_modules/zca-js/dist/cjs/apis/removeFriend.cjs +33 -0
  1054. package/node_modules/zca-js/dist/cjs/apis/removeFriendAlias.cjs +29 -0
  1055. package/node_modules/zca-js/dist/cjs/apis/removeGroupBlockedMember.cjs +33 -0
  1056. package/node_modules/zca-js/dist/cjs/apis/removeGroupDeputy.cjs +35 -0
  1057. package/node_modules/zca-js/dist/cjs/apis/removeQuickMessage.cjs +32 -0
  1058. package/node_modules/zca-js/dist/cjs/apis/removeReminder.cjs +54 -0
  1059. package/node_modules/zca-js/dist/cjs/apis/removeUnreadMark.cjs +64 -0
  1060. package/node_modules/zca-js/dist/cjs/apis/removeUserFromGroup.cjs +39 -0
  1061. package/node_modules/zca-js/dist/cjs/apis/requestSyncMessage.cjs +22 -0
  1062. package/node_modules/zca-js/dist/cjs/apis/resetHiddenConversPin.cjs +25 -0
  1063. package/node_modules/zca-js/dist/cjs/apis/reuseAvatar.cjs +31 -0
  1064. package/node_modules/zca-js/dist/cjs/apis/reviewPendingMemberRequest.cjs +43 -0
  1065. package/node_modules/zca-js/dist/cjs/apis/scanURL.cjs +33 -0
  1066. package/node_modules/zca-js/dist/cjs/apis/searchSticker.cjs +33 -0
  1067. package/node_modules/zca-js/dist/cjs/apis/sendBankCard.cjs +68 -0
  1068. package/node_modules/zca-js/dist/cjs/apis/sendCard.cjs +89 -0
  1069. package/node_modules/zca-js/dist/cjs/apis/sendDeliveredEvent.cjs +69 -0
  1070. package/node_modules/zca-js/dist/cjs/apis/sendFriendRequest.cjs +44 -0
  1071. package/node_modules/zca-js/dist/cjs/apis/sendLink.cjs +92 -0
  1072. package/node_modules/zca-js/dist/cjs/apis/sendMessage.cjs +500 -0
  1073. package/node_modules/zca-js/dist/cjs/apis/sendReport.cjs +67 -0
  1074. package/node_modules/zca-js/dist/cjs/apis/sendSeenEvent.cjs +77 -0
  1075. package/node_modules/zca-js/dist/cjs/apis/sendSticker.cjs +88 -0
  1076. package/node_modules/zca-js/dist/cjs/apis/sendTypingEvent.cjs +47 -0
  1077. package/node_modules/zca-js/dist/cjs/apis/sendVideo.cjs +148 -0
  1078. package/node_modules/zca-js/dist/cjs/apis/sendVoice.cjs +103 -0
  1079. package/node_modules/zca-js/dist/cjs/apis/setHiddenConversations.cjs +53 -0
  1080. package/node_modules/zca-js/dist/cjs/apis/setMute.cjs +81 -0
  1081. package/node_modules/zca-js/dist/cjs/apis/setPinnedConversations.cjs +48 -0
  1082. package/node_modules/zca-js/dist/cjs/apis/sharePoll.cjs +33 -0
  1083. package/node_modules/zca-js/dist/cjs/apis/unblockUser.cjs +33 -0
  1084. package/node_modules/zca-js/dist/cjs/apis/undo.cjs +56 -0
  1085. package/node_modules/zca-js/dist/cjs/apis/undoFriendRequest.cjs +32 -0
  1086. package/node_modules/zca-js/dist/cjs/apis/updateActiveStatus.cjs +32 -0
  1087. package/node_modules/zca-js/dist/cjs/apis/updateArchivedChatList.cjs +39 -0
  1088. package/node_modules/zca-js/dist/cjs/apis/updateAutoDeleteChat.cjs +54 -0
  1089. package/node_modules/zca-js/dist/cjs/apis/updateAutoReply.cjs +43 -0
  1090. package/node_modules/zca-js/dist/cjs/apis/updateBankAccount.cjs +36 -0
  1091. package/node_modules/zca-js/dist/cjs/apis/updateCatalog.cjs +35 -0
  1092. package/node_modules/zca-js/dist/cjs/apis/updateGroupSettings.cjs +48 -0
  1093. package/node_modules/zca-js/dist/cjs/apis/updateHiddenConversPin.cjs +35 -0
  1094. package/node_modules/zca-js/dist/cjs/apis/updateLabels.cjs +39 -0
  1095. package/node_modules/zca-js/dist/cjs/apis/updateLang.cjs +35 -0
  1096. package/node_modules/zca-js/dist/cjs/apis/updateProductCatalog.cjs +56 -0
  1097. package/node_modules/zca-js/dist/cjs/apis/updateProfile.cjs +48 -0
  1098. package/node_modules/zca-js/dist/cjs/apis/updateProfileBio.cjs +32 -0
  1099. package/node_modules/zca-js/dist/cjs/apis/updateQuickMessage.cjs +66 -0
  1100. package/node_modules/zca-js/dist/cjs/apis/updateSettings.cjs +95 -0
  1101. package/node_modules/zca-js/dist/cjs/apis/upgradeGroupToCommunity.cjs +32 -0
  1102. package/node_modules/zca-js/dist/cjs/apis/uploadAttachment.cjs +211 -0
  1103. package/node_modules/zca-js/dist/cjs/apis/uploadProductPhoto.cjs +55 -0
  1104. package/node_modules/zca-js/dist/cjs/apis/votePoll.cjs +34 -0
  1105. package/node_modules/zca-js/dist/cjs/apis.cjs +332 -0
  1106. package/node_modules/zca-js/dist/cjs/context.cjs +34 -0
  1107. package/node_modules/zca-js/dist/cjs/index.cjs +159 -0
  1108. package/node_modules/zca-js/dist/cjs/models/AutoReply.cjs +9 -0
  1109. package/node_modules/zca-js/dist/cjs/models/Bank.cjs +263 -0
  1110. package/node_modules/zca-js/dist/cjs/models/Board.cjs +8 -0
  1111. package/node_modules/zca-js/dist/cjs/models/DeliveredMessage.cjs +23 -0
  1112. package/node_modules/zca-js/dist/cjs/models/Enum.cjs +27 -0
  1113. package/node_modules/zca-js/dist/cjs/models/FriendEvent.cjs +87 -0
  1114. package/node_modules/zca-js/dist/cjs/models/Group.cjs +13 -0
  1115. package/node_modules/zca-js/dist/cjs/models/GroupEvent.cjs +94 -0
  1116. package/node_modules/zca-js/dist/cjs/models/Message.cjs +35 -0
  1117. package/node_modules/zca-js/dist/cjs/models/Reaction.cjs +74 -0
  1118. package/node_modules/zca-js/dist/cjs/models/Reminder.cjs +9 -0
  1119. package/node_modules/zca-js/dist/cjs/models/SeenMessage.cjs +23 -0
  1120. package/node_modules/zca-js/dist/cjs/models/Typing.cjs +23 -0
  1121. package/node_modules/zca-js/dist/cjs/models/Undo.cjs +16 -0
  1122. package/node_modules/zca-js/dist/cjs/models/ZBusiness.cjs +39 -0
  1123. package/node_modules/zca-js/dist/cjs/update.cjs +34 -0
  1124. package/node_modules/zca-js/dist/cjs/utils.cjs +703 -0
  1125. package/node_modules/zca-js/dist/cjs/zalo.cjs +112 -0
  1126. package/node_modules/zca-js/dist/context.d.ts +179 -0
  1127. package/node_modules/zca-js/dist/context.js +28 -0
  1128. package/node_modules/zca-js/dist/index.d.ts +166 -0
  1129. package/node_modules/zca-js/dist/index.js +14 -0
  1130. package/node_modules/zca-js/dist/models/Attachment.d.ts +9 -0
  1131. package/node_modules/zca-js/dist/models/Attachment.js +1 -0
  1132. package/node_modules/zca-js/dist/models/AutoReply.d.ts +20 -0
  1133. package/node_modules/zca-js/dist/models/AutoReply.js +7 -0
  1134. package/node_modules/zca-js/dist/models/Bank.d.ts +291 -0
  1135. package/node_modules/zca-js/dist/models/Bank.js +262 -0
  1136. package/node_modules/zca-js/dist/models/Board.d.ts +60 -0
  1137. package/node_modules/zca-js/dist/models/Board.js +6 -0
  1138. package/node_modules/zca-js/dist/models/Catalog.d.ts +16 -0
  1139. package/node_modules/zca-js/dist/models/Catalog.js +1 -0
  1140. package/node_modules/zca-js/dist/models/DeliveredMessage.d.ts +27 -0
  1141. package/node_modules/zca-js/dist/models/DeliveredMessage.js +17 -0
  1142. package/node_modules/zca-js/dist/models/Enum.d.ts +21 -0
  1143. package/node_modules/zca-js/dist/models/Enum.js +25 -0
  1144. package/node_modules/zca-js/dist/models/FriendEvent.d.ts +107 -0
  1145. package/node_modules/zca-js/dist/models/FriendEvent.js +83 -0
  1146. package/node_modules/zca-js/dist/models/Group.d.ts +125 -0
  1147. package/node_modules/zca-js/dist/models/Group.js +11 -0
  1148. package/node_modules/zca-js/dist/models/GroupEvent.d.ts +178 -0
  1149. package/node_modules/zca-js/dist/models/GroupEvent.js +90 -0
  1150. package/node_modules/zca-js/dist/models/Label.d.ts +10 -0
  1151. package/node_modules/zca-js/dist/models/Label.js +1 -0
  1152. package/node_modules/zca-js/dist/models/Message.d.ts +91 -0
  1153. package/node_modules/zca-js/dist/models/Message.js +29 -0
  1154. package/node_modules/zca-js/dist/models/ProductCatalog.d.ts +17 -0
  1155. package/node_modules/zca-js/dist/models/ProductCatalog.js +1 -0
  1156. package/node_modules/zca-js/dist/models/QuickMessage.d.ts +25 -0
  1157. package/node_modules/zca-js/dist/models/QuickMessage.js +1 -0
  1158. package/node_modules/zca-js/dist/models/Reaction.d.ts +85 -0
  1159. package/node_modules/zca-js/dist/models/Reaction.js +70 -0
  1160. package/node_modules/zca-js/dist/models/Reminder.d.ts +51 -0
  1161. package/node_modules/zca-js/dist/models/Reminder.js +7 -0
  1162. package/node_modules/zca-js/dist/models/SeenMessage.d.ts +26 -0
  1163. package/node_modules/zca-js/dist/models/SeenMessage.js +17 -0
  1164. package/node_modules/zca-js/dist/models/Sticker.d.ts +27 -0
  1165. package/node_modules/zca-js/dist/models/Sticker.js +1 -0
  1166. package/node_modules/zca-js/dist/models/Typing.d.ts +24 -0
  1167. package/node_modules/zca-js/dist/models/Typing.js +17 -0
  1168. package/node_modules/zca-js/dist/models/Undo.d.ts +34 -0
  1169. package/node_modules/zca-js/dist/models/Undo.js +12 -0
  1170. package/node_modules/zca-js/dist/models/User.d.ts +70 -0
  1171. package/node_modules/zca-js/dist/models/User.js +1 -0
  1172. package/node_modules/zca-js/dist/models/ZBusiness.d.ts +22 -0
  1173. package/node_modules/zca-js/dist/models/ZBusiness.js +35 -0
  1174. package/node_modules/zca-js/dist/models/index.d.ts +22 -0
  1175. package/node_modules/zca-js/dist/models/index.js +22 -0
  1176. package/node_modules/zca-js/dist/update.d.ts +2 -0
  1177. package/node_modules/zca-js/dist/update.js +29 -0
  1178. package/node_modules/zca-js/dist/utils.d.ts +167 -0
  1179. package/node_modules/zca-js/dist/utils.js +719 -0
  1180. package/node_modules/zca-js/dist/zalo.d.ts +41 -0
  1181. package/node_modules/zca-js/dist/zalo.js +107 -0
  1182. package/node_modules/zca-js/eslint.config.js +21 -0
  1183. package/node_modules/zca-js/index.d.ts +2 -0
  1184. package/node_modules/zca-js/package.json +78 -0
  1185. package/node_modules/zca-js/rollup.config.js +28 -0
  1186. package/package.json +79 -62
  1187. package/patches/zca-js+2.2.0.patch +1677 -0
  1188. package/src/cli.test.js +34 -5
  1189. package/src/commands/account.js +98 -5
  1190. package/src/commands/auto-reply.js +30 -10
  1191. package/src/commands/catalog.js +5 -4
  1192. package/src/commands/conv.js +551 -14
  1193. package/src/commands/friend.js +19 -7
  1194. package/src/commands/group.js +82 -31
  1195. package/src/commands/listen.js +607 -65
  1196. package/src/commands/login.js +179 -20
  1197. package/src/commands/mcp.js +392 -41
  1198. package/src/commands/msg.js +1278 -139
  1199. package/src/commands/oa-listen.js +130 -20
  1200. package/src/commands/oa.js +26 -5
  1201. package/src/commands/poll.js +7 -2
  1202. package/src/commands/profile.js +3 -2
  1203. package/src/commands/sync.js +2052 -0
  1204. package/src/core/accounts.js +69 -6
  1205. package/src/core/cached-message.js +200 -0
  1206. package/src/core/coverage.js +90 -0
  1207. package/src/core/daemon-channel.js +638 -0
  1208. package/src/core/daemon-sync.js +181 -0
  1209. package/src/core/db.js +1610 -0
  1210. package/src/core/forward.js +112 -0
  1211. package/src/core/group-history.js +248 -0
  1212. package/src/core/group-members.js +68 -0
  1213. package/src/core/group-settings.js +250 -0
  1214. package/src/core/history-fetch.js +208 -0
  1215. package/src/core/listener-lifecycle.js +90 -0
  1216. package/src/core/live-api.js +47 -0
  1217. package/src/core/live-store.js +733 -0
  1218. package/src/core/lock.js +129 -0
  1219. package/src/core/logout.js +289 -0
  1220. package/src/core/offline-queue.js +194 -0
  1221. package/src/core/pin.js +222 -0
  1222. package/src/core/read-state.js +318 -0
  1223. package/src/core/receipts.js +679 -0
  1224. package/src/core/recent-conversations.js +30 -0
  1225. package/src/core/self-heal.js +522 -0
  1226. package/src/core/socket-tap.js +154 -0
  1227. package/src/core/sync-v2/assets.js +181 -0
  1228. package/src/core/sync-v2/board.js +338 -0
  1229. package/src/core/sync-v2/conv-state.js +152 -0
  1230. package/src/core/sync-v2/gap-advice.js +110 -0
  1231. package/src/core/sync-v2/gid.js +103 -0
  1232. package/src/core/sync-v2/index.js +1208 -0
  1233. package/src/core/sync-v2/keepalive.js +177 -0
  1234. package/src/core/sync-v2/media.js +704 -0
  1235. package/src/core/sync-v2/message-types.js +522 -0
  1236. package/src/core/sync-v2/plan.js +95 -0
  1237. package/src/core/sync-v2/reactions.js +236 -0
  1238. package/src/core/sync-v2/renewlink.js +124 -0
  1239. package/src/core/sync-v2/zcloud-cipher.js +88 -0
  1240. package/src/core/sync-v2/zcloud.js +675 -0
  1241. package/src/core/sync.js +540 -0
  1242. package/src/core/zalo-client.js +179 -61
  1243. package/src/core/zca-custom.js +78 -0
  1244. package/src/index.js +14 -3
  1245. package/src/mcp/mcp-config.js +40 -3
  1246. package/src/mcp/mcp-http-transport.js +11 -2
  1247. package/src/mcp/mcp-server.js +4 -2
  1248. package/src/mcp/mcp-tools.js +837 -97
  1249. package/src/mcp/message-buffer.js +38 -8
  1250. package/src/mcp/message-buffer.test.js +67 -15
  1251. package/src/mcp/notifier.js +17 -1
  1252. package/src/mcp/notifier.test.js +6 -0
  1253. package/src/utils/bank-helpers.js +8 -3
  1254. package/src/utils/device-fingerprint.js +72 -0
  1255. package/src/utils/mentions.js +140 -0
  1256. package/src/utils/my-documents.js +95 -0
  1257. package/src/utils/open-file.js +49 -0
  1258. package/src/utils/output.js +75 -4
  1259. package/src/utils/parse-options.js +56 -0
  1260. package/src/utils/qr-http-server.js +44 -7
  1261. package/src/utils/quote.js +203 -0
  1262. package/src/utils/thread-type.js +72 -0
  1263. package/src/utils/update-check.js +42 -1
  1264. package/src/utils/urgency.js +29 -0
  1265. package/src/mcp/media-downloader.js +0 -191
  1266. package/src/mcp/media-downloader.test.js +0 -45
  1267. package/src/utils/qr-display.test.js +0 -97
@@ -0,0 +1,704 @@
1
+ /**
2
+ * Fetch the media that a transfer-sync only ever gave us references to.
3
+ *
4
+ * The sync stream carries no file bytes — just CDN URLs on `attach.href` /
5
+ * `attach.thumb`. Zalo Web does the same thing: it indexes those references at
6
+ * sync time and fetches lazily when you scroll to the message. This module is
7
+ * the deliberate, batched version of that fetch.
8
+ *
9
+ * Expiry is the interesting part. A Zalo CDN URL is signed with a lifetime
10
+ * tied to the message's age; once it lapses the server answers 200 with a JSON
11
+ * error body (`{"err_code":"1","message":"Invalid signature"}`) rather than an
12
+ * HTTP error, so "did this work" cannot be read off the status code alone.
13
+ * When a URL has lapsed we retry once through renewlink (cmd 12094), which
14
+ * works only while Zalo still holds the file. Past that the bytes exist solely
15
+ * on the sending device or in zCloud.
16
+ *
17
+ * That body sniff has to stay narrow, though. Reading a text response as
18
+ * guilty until proven innocent silently discarded every `.csv`/`.txt`/`.md`
19
+ * attachment this tool ever fetched, and reported the loss as rate limiting —
20
+ * so the rule is: a 200 is the file unless the body says otherwise about
21
+ * itself, and what the summary tells the user is what the response actually
22
+ * showed, never what the catch-all branch happened to be called.
23
+ */
24
+ import fs from "node:fs";
25
+ import { dirname, join, resolve } from "node:path";
26
+ import {
27
+ getAttachmentMessages,
28
+ setMessageLocalPath,
29
+ getDownloadedMediaBefore,
30
+ clearMessageLocalPath,
31
+ getThreadNames,
32
+ } from "../db.js";
33
+ import { extractRenewedUrls, makeRenewLink } from "./renewlink.js";
34
+
35
+ /** Kinds that point at a byte stream worth saving. */
36
+ export const DOWNLOADABLE_KINDS = new Set(["photo", "video", "file", "gif", "voice", "audio", "doodle"]);
37
+
38
+ /**
39
+ * Characters a filename must not contain on Windows or POSIX. Kept as a set
40
+ * and checked per character rather than as a regex character class: the
41
+ * control-character range has to be written as an escape, and a regex
42
+ * literal containing one gets rewritten to raw bytes by the formatter,
43
+ * which turns this source file into a binary blob.
44
+ */
45
+ // The first nine are the characters Windows forbids in a filename. The rest
46
+ // are the ones cmd.exe INTERPRETS: a downloaded file gets handed to
47
+ // openFile(), whose Windows branch goes through a shell, so a Zalo-supplied
48
+ // name like `holiday&calc.exe.jpg` used to survive sanitising and then split
49
+ // at the & inside `start "" <path>`. None of them is meaningful in a
50
+ // filename, so replacing them costs nothing.
51
+ const UNSAFE_CHARS = new Set(["/", "\\", ":", "*", "?", '"', "<", ">", "|", "&", "^", "%", "`", "!", "$"]);
52
+
53
+ /**
54
+ * Make a string safe to use as a file or folder name.
55
+ *
56
+ * @param {string} name
57
+ * @returns {string} never empty, never longer than 80 characters
58
+ */
59
+ export function sanitize(name) {
60
+ let out = "";
61
+ for (const ch of String(name ?? "")) {
62
+ out += UNSAFE_CHARS.has(ch) || ch.codePointAt(0) < 0x20 ? "_" : ch;
63
+ }
64
+ return out.trim().slice(0, 80) || "unknown";
65
+ }
66
+
67
+ const DEFAULT_EXT = { photo: "jpg", video: "mp4", gif: "gif", voice: "mp3", audio: "mp3", doodle: "jpg", file: "bin" };
68
+ const CONTENT_TYPE_EXT = {
69
+ "image/jpeg": "jpg",
70
+ "image/png": "png",
71
+ "image/gif": "gif",
72
+ "image/webp": "webp",
73
+ "video/mp4": "mp4",
74
+ "video/quicktime": "mov",
75
+ "audio/mpeg": "mp3",
76
+ "audio/mp4": "m4a",
77
+ "application/pdf": "pdf",
78
+ };
79
+
80
+ /** Extension from the filename, then the URL, then content-type, then the kind. */
81
+ function guessExt(att, url, contentType) {
82
+ if (att.ext) return String(att.ext).replace(/^\./, "").toLowerCase().slice(0, 8);
83
+ if (att.fileName && /\.([A-Za-z0-9]{1,8})$/.test(att.fileName)) return RegExp.$1.toLowerCase();
84
+ const inUrl = /\.([A-Za-z0-9]{2,5})(?:\?|$)/.exec(String(url || "").split("#")[0]);
85
+ if (inUrl) return inUrl[1].toLowerCase();
86
+ if (contentType) {
87
+ const ct = contentType.split(";")[0].trim().toLowerCase();
88
+ if (CONTENT_TYPE_EXT[ct]) return CONTENT_TYPE_EXT[ct];
89
+ }
90
+ return DEFAULT_EXT[att.kind] || "bin";
91
+ }
92
+
93
+ /**
94
+ * Every reason a download can end in, the verdict it belongs to, and how to
95
+ * name it to a human.
96
+ *
97
+ * The verdicts are deliberately four, not three. `throttled` used to be the
98
+ * catch-all, so a summary built on it claimed "almost certainly rate limiting"
99
+ * about a 403 the code had explicitly documented as ambiguous — advice that
100
+ * sends someone off to wait and retry forever when the signature has in fact
101
+ * lapsed. `unknown` is that catch-all, named honestly: retried exactly like
102
+ * `throttled`, reported as what it is.
103
+ *
104
+ * - `expired` the object is gone; only 404/410 or a lapsed-signature body
105
+ * - `throttled` the server said, in so many words, to slow down
106
+ * - `unknown` the response did not say, or there was no response
107
+ * - `failed` something on our side went wrong after the fetch
108
+ */
109
+ export const DOWNLOAD_REASONS = {
110
+ "not-found": { verdict: "expired", label: "HTTP 404/410" },
111
+ "lapsed-signature": { verdict: "expired", label: "a lapsed-signature body" },
112
+ "rate-limited": { verdict: "throttled", label: "HTTP 429" },
113
+ "server-error": { verdict: "throttled", label: "HTTP 5xx" },
114
+ "server-busy": { verdict: "throttled", label: "a server-busy body" },
115
+ forbidden: { verdict: "unknown", label: "HTTP 403" },
116
+ "unexpected-status": { verdict: "unknown", label: "an unexpected HTTP status" },
117
+ "unreadable-body": { verdict: "unknown", label: "an unrecognized body" },
118
+ "empty-body": { verdict: "unknown", label: "an empty body" },
119
+ network: { verdict: "unknown", label: "no response at all" },
120
+ "renew-failed": { verdict: "failed", label: "link renewal failed" },
121
+ };
122
+
123
+ /**
124
+ * Render a run's reason tally for one verdict, commonest first.
125
+ *
126
+ * This is what lets a summary say what actually happened — "HTTP 403 ×3" —
127
+ * instead of inferring a cause the classifier never established.
128
+ *
129
+ * @param {Record<string, number>} [reasons] - `stats.reasons` from a download run
130
+ * @param {"expired"|"throttled"|"unknown"|"failed"} verdict
131
+ * @returns {string} e.g. `HTTP 403 ×3, no response at all ×2`; empty when nothing matched
132
+ */
133
+ export function describeDownloadReasons(reasons, verdict) {
134
+ return Object.entries(reasons || {})
135
+ .filter(([code]) => DOWNLOAD_REASONS[code]?.verdict === verdict)
136
+ .sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
137
+ .map(([code, n]) => `${DOWNLOAD_REASONS[code].label} ×${n}`)
138
+ .join(", ");
139
+ }
140
+
141
+ /**
142
+ * Fields that mark a JSON body as an error envelope rather than a payload.
143
+ * Compared lower-cased, so `errCode` and `err_code` are one entry.
144
+ */
145
+ const ERROR_KEYS = new Set(["err_code", "errcode", "error_code", "errorcode", "err", "error", "err_msg", "errmsg"]);
146
+
147
+ /** Phrases a CDN or gateway error page says about itself. */
148
+ const ERROR_PHRASES = /invalid\s*signature|expired|too\s*many|rate\s*limit|busy|try\s*again/i;
149
+
150
+ /**
151
+ * Longest body still credible as a bare status page. Past this it is a
152
+ * document, and a document that merely contains the word "busy" is not an
153
+ * error — which is the whole reason the phrase test is bounded.
154
+ */
155
+ const MAX_ERROR_PAGE_BYTES = 1024;
156
+
157
+ /**
158
+ * Does a 200 body identify *itself* as an error, or is it simply the file?
159
+ *
160
+ * The default has to be "it is the file". Inverting it is what made this
161
+ * module throw away every text attachment it ever downloaded: the sniff below
162
+ * exists to catch Zalo's 200-plus-JSON expiry envelope, but it was reached for
163
+ * any `text/…` response, and an ordinary CSV matches none of the error
164
+ * patterns — so it fell through to the catch-all and was discarded as
165
+ * throttling. Measured 2026-09-29: two healthy 149-byte `data.csv`
166
+ * attachments, stuck across four runs at three different concurrencies,
167
+ * both served 200 with `content-type: text/csv` and the full bytes present.
168
+ *
169
+ * @param {string} text - the decoded head of the body
170
+ * @param {number} byteLength - the body's full length
171
+ * @param {string} disposition - the response's content-disposition, lower-cased
172
+ * @returns {boolean}
173
+ */
174
+ function looksLikeErrorBody(text, byteLength, disposition) {
175
+ // The server naming a file it is handing over settles it outright.
176
+ if (disposition.includes("attachment") || disposition.includes("filename")) return false;
177
+
178
+ const trimmed = text.trim();
179
+ if (trimmed.startsWith("{")) {
180
+ try {
181
+ const parsed = JSON.parse(trimmed);
182
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
183
+ return Object.keys(parsed).some((k) => ERROR_KEYS.has(k.toLowerCase()));
184
+ }
185
+ } catch {
186
+ // Truncated at 400 bytes, or never JSON to begin with. Either way
187
+ // it is not an envelope we can read, so fall through.
188
+ }
189
+ }
190
+ return byteLength <= MAX_ERROR_PAGE_BYTES && ERROR_PHRASES.test(trimmed);
191
+ }
192
+
193
+ /**
194
+ * Classify a non-file response: is the media gone, are we being told to slow
195
+ * down, or does the response simply not say?
196
+ *
197
+ * This distinction matters more than it looks. Treating throttling as expiry
198
+ * tells someone their photos are permanently lost when they are sitting on the
199
+ * CDN untouched — a real run reported 4,894 "expired" links, and a single
200
+ * request minutes later pulled one of them down as a 25 MB video. Only a
201
+ * signal that genuinely means "this object no longer exists" may be called
202
+ * expired; everything else is retryable.
203
+ *
204
+ * The converse is just as costly, which is why `unknown` exists. Zalo answers
205
+ * 403 both for a lapsed signature and under load, so calling it throttling
206
+ * sends someone to wait and retry when nothing but a fresh mobile sync can
207
+ * renew that link. Retrying is still the right first move — hence the same
208
+ * retry policy — but the summary must not claim to know which it was.
209
+ *
210
+ * @param {number} status - HTTP status as received
211
+ * @param {string|null} contentType
212
+ * @param {Buffer} head - the body, of which only the first 400 bytes are read
213
+ * @param {string|null} [contentDisposition] - the file the server says it is handing over
214
+ * @returns {{verdict: "ok"|"expired"|"throttled"|"unknown", code: string|null}}
215
+ * `code` keys into {@link DOWNLOAD_REASONS}; it is null only for `ok`
216
+ */
217
+ function classifyResponse(status, contentType, head, contentDisposition) {
218
+ // Explicit rate limiting, and the 5xx family, are the two the server
219
+ // genuinely told us about.
220
+ if (status === 429) return { verdict: "throttled", code: "rate-limited" };
221
+ if (status >= 500) return { verdict: "throttled", code: "server-error" };
222
+ // 404/410 are the only statuses that mean the object is gone. 403 is NOT:
223
+ // Zalo returns it both for a lapsed signature and under load, and nothing
224
+ // in the response distinguishes them — so it is neither, it is unknown.
225
+ if (status === 404 || status === 410) return { verdict: "expired", code: "not-found" };
226
+ if (status === 403) return { verdict: "unknown", code: "forbidden" };
227
+ if (status !== 200) return { verdict: "unknown", code: "unexpected-status" };
228
+
229
+ const ct = String(contentType || "").toLowerCase();
230
+ // A binary content-type is never one of Zalo's error envelopes, so it does
231
+ // not even need reading. Everything else is *read*, not condemned.
232
+ if (!ct.includes("json") && !ct.includes("text/")) return { verdict: "ok", code: null };
233
+ const text = head.toString("utf8", 0, Math.min(head.length, 400));
234
+ const disposition = String(contentDisposition || "").toLowerCase();
235
+ if (!looksLikeErrorBody(text, head.length, disposition)) return { verdict: "ok", code: null };
236
+
237
+ // The documented lapsed-signature body. Anything vaguer (a bare err_code)
238
+ // is retryable rather than terminal — and unexplained rather than throttled.
239
+ if (/invalid\s*signature|expired/i.test(text)) return { verdict: "expired", code: "lapsed-signature" };
240
+ if (/too\s*many|rate\s*limit|busy|try\s*again/i.test(text)) return { verdict: "throttled", code: "server-busy" };
241
+ return { verdict: "unknown", code: "unreadable-body" };
242
+ }
243
+
244
+ /** Per-attachment destination path. */
245
+ function destPath(baseDir, row, att, ext, index) {
246
+ const d = new Date(Number(row.timestamp) || 0);
247
+ const stamp = Number.isFinite(d.getTime()) ? d.toISOString().slice(0, 16).replace(/[T:]/g, "-") : "unknown";
248
+ const idPart = String(row.msgId || "noid").slice(-10);
249
+ const name = att.fileName ? sanitize(att.fileName.replace(/\.[^.]*$/, "")) : att.kind;
250
+ const suffix = index > 0 ? `_${index}` : "";
251
+ return join(baseDir, `${stamp}_${idPart}${suffix}_${name}.${ext}`);
252
+ }
253
+
254
+ /** Read a row's attachments back out of raw_data. */
255
+ function attachmentsOf(row) {
256
+ try {
257
+ const raw = JSON.parse(row.raw_data || "{}");
258
+ return Array.isArray(raw.attachments) ? raw.attachments : [];
259
+ } catch {
260
+ return [];
261
+ }
262
+ }
263
+
264
+ /**
265
+ * Default per-request deadline. Without one a stalled connection blocks its
266
+ * worker forever: `fetch()` has no built-in timeout, so four hung requests
267
+ * silently froze an entire download with the process still alive and healthy.
268
+ */
269
+ export const DEFAULT_REQUEST_TIMEOUT_MS = 60000;
270
+
271
+ /**
272
+ * Consecutive retryable responses before the run stops entirely. Pushing on
273
+ * past this point neither recovers files nor does the account any favours.
274
+ *
275
+ * Both `throttled` and `unknown` count toward it: retrying is the right first
276
+ * move for either, and splitting the counters changed the reporting, not the
277
+ * policy.
278
+ */
279
+ export const THROTTLE_GIVE_UP = 25;
280
+
281
+ /**
282
+ * Fetch a URL, returning the bytes or why it failed.
283
+ *
284
+ * `retryable` drives the backoff and the give-up streak; `verdict` and `code`
285
+ * exist so the caller can report what was observed rather than guess at it.
286
+ *
287
+ * @param {string} url
288
+ * @param {number} timeoutMs - hard deadline covering headers AND body
289
+ * @returns {Promise<{ok: boolean, buf?: Buffer, contentType?: string|null,
290
+ * retryable?: boolean, expired?: boolean, verdict?: string, code?: string,
291
+ * status?: number, reason?: string}>}
292
+ */
293
+ async function fetchBytes(url, timeoutMs = DEFAULT_REQUEST_TIMEOUT_MS) {
294
+ let res;
295
+ let buf;
296
+ let ct;
297
+ let disposition;
298
+ // One signal for the whole exchange: a server that sends headers promptly
299
+ // and then stops writing the body is exactly the stall this guards against.
300
+ const signal = AbortSignal.timeout(timeoutMs);
301
+ try {
302
+ res = await fetch(url, { signal, redirect: "follow" });
303
+ // Reading the body must be guarded too, not just the request. A
304
+ // connection dropped mid-body throws here ("terminated" from undici),
305
+ // and with this outside the try it escaped the worker and aborted an
306
+ // entire ten-thousand-file run over one flaky read.
307
+ buf = Buffer.from(await res.arrayBuffer());
308
+ ct = res.headers.get("content-type");
309
+ disposition = res.headers.get("content-disposition");
310
+ } catch (e) {
311
+ const why =
312
+ e?.name === "TimeoutError" || e?.name === "AbortError"
313
+ ? `timed out after ${timeoutMs}ms`
314
+ : e?.message || String(e);
315
+ // No response at all: nothing was observed, so nothing is claimed.
316
+ return {
317
+ ok: false,
318
+ retryable: true,
319
+ verdict: "unknown",
320
+ code: "network",
321
+ status: 0,
322
+ reason: `network: ${why}`,
323
+ };
324
+ }
325
+ const { verdict, code } = classifyResponse(res.status, ct, buf, disposition);
326
+ const status = res.status;
327
+ if (verdict === "expired") {
328
+ return { ok: false, retryable: false, expired: true, verdict, code, status, reason: `gone (HTTP ${status})` };
329
+ }
330
+ if (verdict !== "ok") {
331
+ return { ok: false, retryable: true, verdict, code, status, reason: `${verdict}: ${code} (HTTP ${status})` };
332
+ }
333
+ // A 200 of the right shape carrying no bytes tells us nothing either.
334
+ if (!buf.length) {
335
+ return {
336
+ ok: false,
337
+ retryable: true,
338
+ verdict: "unknown",
339
+ code: "empty-body",
340
+ status,
341
+ reason: `unknown: empty-body (HTTP ${status})`,
342
+ };
343
+ }
344
+ return { ok: true, buf, contentType: ct };
345
+ }
346
+
347
+ /**
348
+ * Write `<mediaRoot>/_conversations.json`: the id -> name map for the folders
349
+ * beside it. Best-effort by design -- a media run must never fail because an
350
+ * index could not be written.
351
+ *
352
+ * @param {string} mediaRoot
353
+ * @param {Map<string,{name:string,type:string}>} names
354
+ */
355
+ function writeConversationIndex(mediaRoot, names) {
356
+ try {
357
+ fs.mkdirSync(mediaRoot, { recursive: true });
358
+ let existing = {};
359
+ try {
360
+ existing = JSON.parse(fs.readFileSync(join(mediaRoot, "_conversations.json"), "utf8"));
361
+ } catch {
362
+ /* first run, or an unreadable index we are about to replace */
363
+ }
364
+ // Merge rather than replace: a run scoped to one thread must not drop
365
+ // the names of conversations it did not look at.
366
+ for (const [id, meta] of names) {
367
+ if (meta?.name) existing[String(id)] = { name: meta.name, type: meta.type || null };
368
+ }
369
+ const tmp = join(mediaRoot, "_conversations.json.tmp");
370
+ fs.writeFileSync(tmp, JSON.stringify(existing, null, 2));
371
+ fs.renameSync(tmp, join(mediaRoot, "_conversations.json"));
372
+ } catch {
373
+ /* an index is a convenience, never a reason to fail a download run */
374
+ }
375
+ }
376
+
377
+ /**
378
+ * Download the attachments recorded by a transfer sync.
379
+ *
380
+ * @param {object} opts
381
+ * @param {object} [opts.api] - logged-in zca-js api; without it expired URLs cannot be renewed
382
+ * @param {string} opts.accountDir - the account's data dir (media lands under `<dir>/media`)
383
+ * @param {string} [opts.threadId] - restrict to one thread
384
+ * @param {Set<string>|string[]} [opts.kinds] - restrict to these attachment kinds
385
+ * @param {number} [opts.limit=500] - max messages to consider
386
+ * @param {number} [opts.since] / @param {number} [opts.until] - epoch ms bounds
387
+ * @param {number} [opts.concurrency=4]
388
+ * @param {number} [opts.maxBytes] - skip attachments larger than this
389
+ * @param {boolean} [opts.thumbs=false] - also save thumbnails
390
+ * @param {boolean} [opts.dryRun=false] - report what would be fetched, write nothing
391
+ * @param {Map<string,{name:string,type:string}>} [opts.threadNames] - threadId -> display name;
392
+ * omit it to read the local cache, which is what keeps every caller's folders identical
393
+ * @param {boolean} [opts.includePruned=false] - re-fetch media that was deliberately pruned
394
+ * @param {string} [opts.mediaRoot] - override the media root (defaults to <accountDir>/media)
395
+ * @param {number} [opts.backoffBaseMs=1000] - base for the exponential backoff on throttling;
396
+ * 0 disables the pause (tests)
397
+ * @param {number} [opts.timeoutMs=60000] - per-request deadline; without one a stalled
398
+ * connection blocks its worker indefinitely
399
+ * @param {(req: object) => Promise<object>} [opts.renewLink] - pre-built renewal caller;
400
+ * defaults to one derived from `api`. Injectable so the renewal path can be
401
+ * exercised without round-tripping Zalo's request crypto.
402
+ * @param {(p: object) => void} [opts.onProgress]
403
+ * @returns {Promise<{considered:number, downloaded:number, skipped:number, failed:number, expired:number,
404
+ * throttled:number, unknown:number, renewed:number, bytes:number, abortedEarly:boolean,
405
+ * reasons:Record<string,number>, failures:Array<object>}>}
406
+ * `throttled` counts only responses that said to slow down; `unknown` counts the retryable
407
+ * failures that explained nothing. `reasons` tallies the observed codes — pass it to
408
+ * {@link describeDownloadReasons} rather than inferring a cause from a bucket.
409
+ */
410
+ export async function downloadSyncedMedia(opts = {}) {
411
+ const {
412
+ api,
413
+ accountDir,
414
+ threadId,
415
+ limit = 500,
416
+ since,
417
+ until,
418
+ concurrency = 4,
419
+ maxBytes,
420
+ thumbs = false,
421
+ dryRun = false,
422
+ threadNames,
423
+ timeoutMs = DEFAULT_REQUEST_TIMEOUT_MS,
424
+ includePruned = false,
425
+ mediaRoot: mediaRootOpt,
426
+ backoffBaseMs = 1000,
427
+ onProgress = () => {},
428
+ } = opts;
429
+ const kinds = opts.kinds ? new Set(opts.kinds) : DOWNLOADABLE_KINDS;
430
+
431
+ // One definition of a conversation's folder. A caller holding a fresher map
432
+ // passes it; everyone else gets the cache's, so the listener, `msg history`
433
+ // and a sync file the same conversation in one place instead of three
434
+ // (sender name / thread id / real name).
435
+ const names = threadNames || getThreadNames();
436
+
437
+ const rows = getAttachmentMessages({ threadId, since, until, limit, onlyMissing: true, includePruned });
438
+ const jobs = [];
439
+ for (const row of rows) {
440
+ let index = 0;
441
+ for (const att of attachmentsOf(row)) {
442
+ const url = att.url || (thumbs ? att.thumbUrl : null);
443
+ if (!url || !kinds.has(att.kind)) continue;
444
+ if (maxBytes && att.size && att.size > maxBytes) continue;
445
+ jobs.push({ row, att, url, index: index++ });
446
+ if (thumbs && att.thumbUrl && att.url) {
447
+ jobs.push({ row, att: { ...att, kind: att.kind, isThumb: true }, url: att.thumbUrl, index: index++ });
448
+ }
449
+ }
450
+ }
451
+
452
+ const stats = {
453
+ considered: jobs.length,
454
+ downloaded: 0,
455
+ skipped: 0,
456
+ failed: 0,
457
+ expired: 0,
458
+ // Only responses that said so: 429, 5xx, or a body asking us to wait.
459
+ throttled: 0,
460
+ // Everything retryable that explained nothing — 403 above all, which
461
+ // Zalo returns for a lapsed signature and under load alike. Kept apart
462
+ // from `throttled` so the summary can stop guessing which it was.
463
+ unknown: 0,
464
+ renewed: 0,
465
+ bytes: 0,
466
+ abortedEarly: false,
467
+ // code -> count over the jobs that ultimately failed, for the summary.
468
+ reasons: {},
469
+ failures: [],
470
+ };
471
+ if (!jobs.length || dryRun) {
472
+ if (dryRun) onProgress({ phase: "dry-run", detail: `${jobs.length} attachment(s) would be fetched` });
473
+ return stats;
474
+ }
475
+
476
+ let renewLink = opts.renewLink || null;
477
+ if (!renewLink && api) {
478
+ try {
479
+ renewLink = makeRenewLink(api);
480
+ } catch (e) {
481
+ onProgress({ phase: "warn", detail: `renewlink unavailable (${e.message}); expired URLs will be skipped` });
482
+ }
483
+ }
484
+
485
+ // The MCP server honours a configured download dir; everything else files
486
+ // media under the account's own data dir.
487
+ const mediaRoot = mediaRootOpt ? resolve(mediaRootOpt) : resolve(accountDir, "media");
488
+
489
+ // Folders are ids, so without this the media tree is unreadable by a human.
490
+ // Written before any download, so an interrupted run still leaves an index.
491
+ writeConversationIndex(mediaRoot, names);
492
+ let cursor = 0;
493
+ // Consecutive throttled responses across all workers. Zalo starts dropping
494
+ // connections under sustained load, and charging on through nine thousand
495
+ // attachments marking each one failed is both useless and the surest way to
496
+ // get an account flagged -- so the run backs off and then gives up.
497
+ let throttleStreak = 0;
498
+ let stopAll = false;
499
+ const backoff = async () => {
500
+ const wait = Math.min(30000, backoffBaseMs * 2 ** Math.min(throttleStreak, 5));
501
+ onProgress({ phase: "throttled", detail: `backing off ${Math.round(wait / 1000)}s`, streak: throttleStreak });
502
+ await new Promise((r) => setTimeout(r, wait));
503
+ };
504
+
505
+ const worker = async () => {
506
+ for (;;) {
507
+ if (stopAll) return;
508
+ const job = jobs[cursor++];
509
+ if (!job) return;
510
+ try {
511
+ await runJob(job);
512
+ } catch (e) {
513
+ // Belt and braces: whatever goes wrong with one attachment, the
514
+ // other nine thousand still get their chance.
515
+ stats.failed++;
516
+ if (stats.failures.length < 20) {
517
+ stats.failures.push({
518
+ msgId: job.row?.msgId,
519
+ kind: job.att?.kind,
520
+ reason: e?.message || String(e),
521
+ });
522
+ }
523
+ }
524
+ }
525
+ };
526
+
527
+ const runJob = async (job) => {
528
+ {
529
+ const { row, att, url } = job;
530
+ // The thread id, never the conversation name. A name is remote data:
531
+ // it can hold a path separator, a shell metacharacter, a reserved
532
+ // Windows device name, a right-to-left override, or 200 characters
533
+ // of emoji, and it CHANGES when someone renames the group -- which
534
+ // orphans every file already filed under the old spelling. An id is
535
+ // digits, stable for the life of the conversation, and needs no
536
+ // sanitising. `_conversations.json` at the media root carries the
537
+ // id -> name mapping a human needs to find anything.
538
+ const dir = join(mediaRoot, String(row.threadId));
539
+
540
+ let got = await fetchBytes(url, timeoutMs);
541
+
542
+ // One renewal attempt: only helps while Zalo still holds the file.
543
+ if (!got.ok && got.expired && renewLink) {
544
+ stats.expired++;
545
+ try {
546
+ const resp = await renewLink({
547
+ threadId: row.threadId,
548
+ threadType: names.get(String(row.threadId))?.type,
549
+ msgType: JSON.parse(row.raw_data || "{}").msgType,
550
+ msgInfo: { normalUrl: att.url, hdUrl: att.hdUrl, thumbUrl: att.thumbUrl },
551
+ clientId: JSON.parse(row.raw_data || "{}").cliMsgId,
552
+ });
553
+ const fresh = extractRenewedUrls(resp);
554
+ const next = fresh?.normalUrl || fresh?.hdUrl || fresh?.thumbUrl;
555
+ if (next) {
556
+ got = await fetchBytes(next, timeoutMs);
557
+ if (got.ok) stats.renewed++;
558
+ }
559
+ } catch (e) {
560
+ got = { ok: false, code: "renew-failed", reason: `renew failed: ${e.message}` };
561
+ }
562
+ } else if (!got.ok && got.expired) {
563
+ stats.expired++;
564
+ }
565
+
566
+ if (!got.ok) {
567
+ // Tally what was actually observed, so the summary reports it
568
+ // rather than inferring a cause from the bucket it landed in.
569
+ if (got.code) stats.reasons[got.code] = (stats.reasons[got.code] || 0) + 1;
570
+ // `retryable` covers exactly what used to set `throttled`, so
571
+ // the backoff and give-up behave as before; only the counters
572
+ // below tell a genuine 429/5xx apart from an unexplained 403.
573
+ if (got.retryable) {
574
+ if (got.verdict === "throttled") stats.throttled++;
575
+ else stats.unknown++;
576
+ throttleStreak++;
577
+ if (throttleStreak >= THROTTLE_GIVE_UP) {
578
+ stopAll = true;
579
+ stats.abortedEarly = true;
580
+ return;
581
+ }
582
+ await backoff();
583
+ } else {
584
+ throttleStreak = 0;
585
+ }
586
+ stats.failed++;
587
+ if (stats.failures.length < 20) {
588
+ stats.failures.push({
589
+ msgId: row.msgId,
590
+ kind: att.kind,
591
+ reason: got.reason,
592
+ code: got.code || null,
593
+ status: got.status ?? null,
594
+ });
595
+ }
596
+ onProgress({ phase: "fail", msgId: row.msgId, kind: att.kind, detail: got.reason });
597
+ return;
598
+ }
599
+
600
+ const ext = guessExt(att, url, got.contentType);
601
+ const path = destPath(dir, row, att, ext, job.index);
602
+ try {
603
+ fs.mkdirSync(dirname(path), { recursive: true });
604
+ fs.writeFileSync(path, got.buf);
605
+ } catch (e) {
606
+ stats.failed++;
607
+ onProgress({ phase: "fail", msgId: row.msgId, detail: `write: ${e.message}` });
608
+ return;
609
+ }
610
+ // Only the primary attachment claims the row's localPath.
611
+ if (!att.isThumb && job.index === 0) {
612
+ try {
613
+ setMessageLocalPath(row.msgId, path);
614
+ } catch {
615
+ /* a missing row is not worth failing the download over */
616
+ }
617
+ }
618
+ throttleStreak = 0;
619
+ stats.downloaded++;
620
+ stats.bytes += got.buf.length;
621
+ onProgress({
622
+ phase: "saved",
623
+ msgId: row.msgId,
624
+ kind: att.kind,
625
+ bytes: got.buf.length,
626
+ done: stats.downloaded,
627
+ total: jobs.length,
628
+ path,
629
+ });
630
+ }
631
+ };
632
+
633
+ await Promise.all(Array.from({ length: Math.max(1, Math.min(16, concurrency)) }, worker));
634
+ return stats;
635
+ }
636
+
637
+ /**
638
+ * Delete downloaded media for messages older than a cutoff.
639
+ *
640
+ * Only files this tool recorded are touched: the candidate list comes from rows
641
+ * that actually carry a `localPath`, so nothing outside the media directory is
642
+ * ever considered. Clearing `localPath` afterwards puts the row back in the
643
+ * download queue, so pruning is a space decision, not a permanent one -- the
644
+ * file can be refetched later if its link is still alive.
645
+ *
646
+ * The message row itself is never deleted. Losing the text of a conversation to
647
+ * reclaim disk space is not a trade anyone asked for.
648
+ *
649
+ * @param {object} opts
650
+ * @param {number} opts.olderThanDays - delete media attached to messages older than this
651
+ * @param {boolean} [opts.all=false] - delete every downloaded file regardless of age
652
+ * @param {string} [opts.threadId] - restrict to one thread
653
+ * @param {boolean} [opts.dryRun=false] - report what would go, delete nothing
654
+ * @param {number} [opts.now=Date.now()] - injectable for tests
655
+ * @param {(p: object) => void} [opts.onProgress]
656
+ * @returns {Promise<{considered:number, deleted:number, missing:number, failed:number, bytes:number, cutoff:number, failures:Array<object>}>}
657
+ */
658
+ export async function pruneDownloadedMedia(opts = {}) {
659
+ const { olderThanDays, threadId, all = false, dryRun = false, now = Date.now(), onProgress = () => {} } = opts;
660
+ const days = Number(olderThanDays);
661
+ const stats = { considered: 0, deleted: 0, missing: 0, failed: 0, bytes: 0, cutoff: 0, all: false, failures: [] };
662
+ // Two distinct modes. `all` is explicit rather than "a cutoff of now",
663
+ // so no arithmetic slip on a date can quietly become delete-everything.
664
+ if (!all && (!Number.isFinite(days) || days <= 0)) return stats;
665
+
666
+ const cutoff = all ? null : now - days * 86400000;
667
+ stats.all = Boolean(all);
668
+ stats.cutoff = cutoff === null ? 0 : cutoff;
669
+ const rows = getDownloadedMediaBefore(cutoff, threadId || null);
670
+ stats.considered = rows.length;
671
+
672
+ for (const row of rows) {
673
+ let size = 0;
674
+ try {
675
+ size = fs.statSync(row.localPath).size;
676
+ } catch {
677
+ // Already gone from disk -- still worth clearing the stale pointer.
678
+ stats.missing++;
679
+ if (!dryRun) {
680
+ try {
681
+ clearMessageLocalPath(row.msgId, now);
682
+ } catch {
683
+ /* the row may have been removed since */
684
+ }
685
+ }
686
+ continue;
687
+ }
688
+ if (dryRun) {
689
+ stats.bytes += size;
690
+ continue;
691
+ }
692
+ try {
693
+ fs.rmSync(row.localPath, { force: true });
694
+ clearMessageLocalPath(row.msgId, now);
695
+ stats.deleted++;
696
+ stats.bytes += size;
697
+ onProgress({ phase: "pruned", msgId: row.msgId, path: row.localPath, bytes: size });
698
+ } catch (e) {
699
+ stats.failed++;
700
+ if (stats.failures.length < 20) stats.failures.push({ msgId: row.msgId, reason: e.message });
701
+ }
702
+ }
703
+ return stats;
704
+ }