netcron 1.0.7

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.

Potentially problematic release.


This version of netcron might be problematic. Click here for more details.

Files changed (425) hide show
  1. package/.cache/replit/__replit_disk_meta.json +1 -0
  2. package/.cache/replit/nix/env.json +1 -0
  3. package/.config/configstore/update-notifier-npm.json +4 -0
  4. package/.config/configstore/update-notifier-npm.json.1735545094 +4 -0
  5. package/.config/nvm/.dockerignore +16 -0
  6. package/.config/nvm/.editorconfig +28 -0
  7. package/.config/nvm/.gitattributes +1 -0
  8. package/.config/nvm/.github/FUNDING.yml +12 -0
  9. package/.config/nvm/.github/ISSUE_TEMPLATE.md +44 -0
  10. package/.config/nvm/.github/SECURITY.md +3 -0
  11. package/.config/nvm/.github/workflows/latest-npm.yml +81 -0
  12. package/.config/nvm/.github/workflows/lint.yml +77 -0
  13. package/.config/nvm/.github/workflows/rebase.yml +23 -0
  14. package/.config/nvm/.github/workflows/release.yml +32 -0
  15. package/.config/nvm/.github/workflows/require-allow-edits.yml +21 -0
  16. package/.config/nvm/.github/workflows/shellcheck.yml +58 -0
  17. package/.config/nvm/.github/workflows/tests.yml +56 -0
  18. package/.config/nvm/.github/workflows/toc.yml +37 -0
  19. package/.config/nvm/.github/workflows/windows-npm.yml +134 -0
  20. package/.config/nvm/.mailmap +1 -0
  21. package/.config/nvm/.travis.yml +100 -0
  22. package/.config/nvm/CODE_OF_CONDUCT.md +125 -0
  23. package/.config/nvm/CONTRIBUTING.md +115 -0
  24. package/.config/nvm/Dockerfile +111 -0
  25. package/.config/nvm/GOVERNANCE.md +10 -0
  26. package/.config/nvm/LICENSE.md +22 -0
  27. package/.config/nvm/Makefile +85 -0
  28. package/.config/nvm/PROJECT_CHARTER.md +49 -0
  29. package/.config/nvm/README.md +1047 -0
  30. package/.config/nvm/ROADMAP.md +9 -0
  31. package/.config/nvm/bash_completion +99 -0
  32. package/.config/nvm/install.sh +479 -0
  33. package/.config/nvm/nvm-exec +17 -0
  34. package/.config/nvm/nvm.sh +4417 -0
  35. package/.config/nvm/package.json +51 -0
  36. package/.config/nvm/rename_test.sh +52 -0
  37. package/.config/nvm/test/common.sh +103 -0
  38. package/.config/nvm/test/fast/Aliases/'nvm alias' should not accept aliases with slashes +26 -0
  39. package/.config/nvm/test/fast/Aliases/'nvm unalias' should accept aliases when they shadow a built-in alias +17 -0
  40. package/.config/nvm/test/fast/Aliases/'nvm unalias' should not accept aliases with names equal to built-in alias +25 -0
  41. package/.config/nvm/test/fast/Aliases/'nvm unalias' should not accept aliases with slashes +26 -0
  42. package/.config/nvm/test/fast/Aliases/Running 'nvm alias /313/202aliasname/313/203 /313/202target/313/203' again should change the target" +24 -0
  43. package/.config/nvm/test/fast/Aliases/Running 'nvm alias /313/202aliasname/313/203' should list but one alias" +4 -0
  44. package/.config/nvm/test/fast/Aliases/Running 'nvm alias' lists implicit aliases when they do not exist +26 -0
  45. package/.config/nvm/test/fast/Aliases/Running 'nvm alias' lists manual aliases instead of implicit aliases when present +49 -0
  46. package/.config/nvm/test/fast/Aliases/Running 'nvm alias' should list all aliases +48 -0
  47. package/.config/nvm/test/fast/Aliases/circular/nvm_resolve_alias +36 -0
  48. package/.config/nvm/test/fast/Aliases/circular/nvm_resolve_local_alias +36 -0
  49. package/.config/nvm/test/fast/Aliases/circular/setup +9 -0
  50. package/.config/nvm/test/fast/Aliases/circular/teardown +9 -0
  51. package/.config/nvm/test/fast/Aliases/lts/'nvm alias' should ensure LTS alias dir exists +18 -0
  52. package/.config/nvm/test/fast/Aliases/lts/setup_dir +10 -0
  53. package/.config/nvm/test/fast/Aliases/lts/teardown_dir +10 -0
  54. package/.config/nvm/test/fast/Aliases/nvm_ensure_default_set +20 -0
  55. package/.config/nvm/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors +22 -0
  56. package/.config/nvm/test/fast/Aliases/nvm_list_aliases works with LTS aliases +31 -0
  57. package/.config/nvm/test/fast/Aliases/nvm_list_aliases works with no LTS aliases present +21 -0
  58. package/.config/nvm/test/fast/Aliases/nvm_print_alias_path calls nvm_get_colors +28 -0
  59. package/.config/nvm/test/fast/Aliases/nvm_print_formatted_alias calls nvm_get_colors +21 -0
  60. package/.config/nvm/test/fast/Aliases/nvm_resolve_alias +33 -0
  61. package/.config/nvm/test/fast/Aliases/nvm_resolve_local_alias +35 -0
  62. package/.config/nvm/test/fast/Aliases/setup +16 -0
  63. package/.config/nvm/test/fast/Aliases/teardown +17 -0
  64. package/.config/nvm/test/fast/Listing paths/Running 'nvm which 0.0.2' should display only version 0.0.2 +27 -0
  65. package/.config/nvm/test/fast/Listing paths/Running 'nvm which foo' should return a nonzero exit code when not found +6 -0
  66. package/.config/nvm/test/fast/Listing paths/teardown +3 -0
  67. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls --no-alias' does not call into nvm_alias +34 -0
  68. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls --no-alias' with a pattern errors +15 -0
  69. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls 0.0.2' should display only version 0.0.2 +21 -0
  70. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls 0.2' should display only 0.2.x versions +42 -0
  71. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls foo' should return a nonzero exit code when not found +6 -0
  72. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls io' should return NA +6 -0
  73. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls node_' should return a nonzero exit code when not found +6 -0
  74. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls stable' and 'nvm ls unstable' should return the appropriate implicit alias +29 -0
  75. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls system' should include 'system' when appropriate +21 -0
  76. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' calls into nvm_alias +35 -0
  77. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' should display all installed versions +44 -0
  78. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' should filter out '.nvm' +10 -0
  79. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' should filter out 'versions' +10 -0
  80. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' should include 'system' when appropriate +21 -0
  81. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' should list versions in the 'versions' directory +12 -0
  82. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' should not show a trailing slash +42 -0
  83. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' with node-like versioning vx.x.x should only list a matched version +11 -0
  84. package/.config/nvm/test/fast/Listing versions/Running 'nvm ls' with nounset should not fail +23 -0
  85. package/.config/nvm/test/fast/Listing versions/Using a nonstandard IFS should not break +19 -0
  86. package/.config/nvm/test/fast/Listing versions/teardown +16 -0
  87. package/.config/nvm/test/fast/Running 'nvm alias' should create a file in the alias directory +11 -0
  88. package/.config/nvm/test/fast/Running 'nvm current' should display current nvm environment +13 -0
  89. package/.config/nvm/test/fast/Running 'nvm deactivate' should unset the nvm environment variables +25 -0
  90. package/.config/nvm/test/fast/Running 'nvm install' with '--reinstall-packages-from' requires a valid version +59 -0
  91. package/.config/nvm/test/fast/Running 'nvm install' with an invalid version fails nicely +15 -0
  92. package/.config/nvm/test/fast/Running 'nvm unalias' should remove the alias file +13 -0
  93. package/.config/nvm/test/fast/Running 'nvm uninstall' should remove the appropriate directory +12 -0
  94. package/.config/nvm/test/fast/Running 'nvm uninstall' with incorrect file permissions fails nicely +14 -0
  95. package/.config/nvm/test/fast/Running 'nvm unload' should unset all function and variables +30 -0
  96. package/.config/nvm/test/fast/Running 'nvm use foo' where 'foo' is circular aborts +39 -0
  97. package/.config/nvm/test/fast/Running 'nvm use iojs' uses latest io.js version +37 -0
  98. package/.config/nvm/test/fast/Running 'nvm use system' should work as expected +44 -0
  99. package/.config/nvm/test/fast/Running 'nvm use x' should create and change the 'current' symlink +36 -0
  100. package/.config/nvm/test/fast/Running 'nvm use x' should not create the 'current' symlink if $NVM_SYMLINK_CURRENT is false +86 -0
  101. package/.config/nvm/test/fast/Running 'nvm use' should drop CR char automatically +33 -0
  102. package/.config/nvm/test/fast/Set Colors/nvm_echo_with_colors +21 -0
  103. package/.config/nvm/test/fast/Set Colors/nvm_err_with_colors +19 -0
  104. package/.config/nvm/test/fast/Set Colors/nvm_print_default_alias calls nvm_get_colors +24 -0
  105. package/.config/nvm/test/fast/Set Colors/nvm_print_versions calls nvm_get_colors +52 -0
  106. package/.config/nvm/test/fast/Sourcing nvm.sh should make the nvm command available +7 -0
  107. package/.config/nvm/test/fast/Sourcing nvm.sh should not modify parameters of caller +7 -0
  108. package/.config/nvm/test/fast/Unit tests/mocks/LTS_names.txt +8 -0
  109. package/.config/nvm/test/fast/Unit tests/mocks/iojs.org-dist-index.tab +42 -0
  110. package/.config/nvm/test/fast/Unit tests/mocks/lts-star.txt +1 -0
  111. package/.config/nvm/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +671 -0
  112. package/.config/nvm/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab +2915 -0
  113. package/.config/nvm/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt +41 -0
  114. package/.config/nvm/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +194 -0
  115. package/.config/nvm/test/fast/Unit tests/mocks/nvm ls-remote node.txt +670 -0
  116. package/.config/nvm/test/fast/Unit tests/mocks/nvm ls-remote.txt +711 -0
  117. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +36 -0
  118. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt +1 -0
  119. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt +26 -0
  120. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +194 -0
  121. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt +150 -0
  122. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt +1 -0
  123. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +1 -0
  124. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote.txt +670 -0
  125. package/.config/nvm/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt +41 -0
  126. package/.config/nvm/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +9 -0
  127. package/.config/nvm/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt +1 -0
  128. package/.config/nvm/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +1 -0
  129. package/.config/nvm/test/fast/Unit tests/mocks/project_dirs/nested-both/a/b/c/d/.gitkeep +0 -0
  130. package/.config/nvm/test/fast/Unit tests/mocks/project_dirs/nested-both/package.json +0 -0
  131. package/.config/nvm/test/fast/Unit tests/mocks/project_dirs/nested-n_m/a/b/c/d/.gitkeep +0 -0
  132. package/.config/nvm/test/fast/Unit tests/mocks/project_dirs/nested-pkg/a/b/c/d/.gitkeep +0 -0
  133. package/.config/nvm/test/fast/Unit tests/mocks/project_dirs/nested-pkg/package.json +0 -0
  134. package/.config/nvm/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/package.json +0 -0
  135. package/.config/nvm/test/fast/Unit tests/mocks/project_dirs/no-nesting-pkg/package.json +0 -0
  136. package/.config/nvm/test/fast/Unit tests/nvm ls-remote +73 -0
  137. package/.config/nvm/test/fast/Unit tests/nvm set_colors +52 -0
  138. package/.config/nvm/test/fast/Unit tests/nvm version-remote +51 -0
  139. package/.config/nvm/test/fast/Unit tests/nvm_add_iojs_prefix +9 -0
  140. package/.config/nvm/test/fast/Unit tests/nvm_alias +32 -0
  141. package/.config/nvm/test/fast/Unit tests/nvm_alias LTS-N +36 -0
  142. package/.config/nvm/test/fast/Unit tests/nvm_alias_path +7 -0
  143. package/.config/nvm/test/fast/Unit tests/nvm_change_path +57 -0
  144. package/.config/nvm/test/fast/Unit tests/nvm_check_for_help +9 -0
  145. package/.config/nvm/test/fast/Unit tests/nvm_clang_version +62 -0
  146. package/.config/nvm/test/fast/Unit tests/nvm_command_info +58 -0
  147. package/.config/nvm/test/fast/Unit tests/nvm_compare_checksum +72 -0
  148. package/.config/nvm/test/fast/Unit tests/nvm_compute_checksum +23 -0
  149. package/.config/nvm/test/fast/Unit tests/nvm_curl_libz_support +39 -0
  150. package/.config/nvm/test/fast/Unit tests/nvm_curl_use_compression +38 -0
  151. package/.config/nvm/test/fast/Unit tests/nvm_curl_version +32 -0
  152. package/.config/nvm/test/fast/Unit tests/nvm_die_on_prefix +192 -0
  153. package/.config/nvm/test/fast/Unit tests/nvm_download +18 -0
  154. package/.config/nvm/test/fast/Unit tests/nvm_download_artifact +55 -0
  155. package/.config/nvm/test/fast/Unit tests/nvm_ensure_default_set +15 -0
  156. package/.config/nvm/test/fast/Unit tests/nvm_ensure_version_installed +72 -0
  157. package/.config/nvm/test/fast/Unit tests/nvm_ensure_version_prefix +12 -0
  158. package/.config/nvm/test/fast/Unit tests/nvm_extract_tarball +12 -0
  159. package/.config/nvm/test/fast/Unit tests/nvm_find_project_dir +36 -0
  160. package/.config/nvm/test/fast/Unit tests/nvm_find_up +26 -0
  161. package/.config/nvm/test/fast/Unit tests/nvm_format_version +20 -0
  162. package/.config/nvm/test/fast/Unit tests/nvm_get_arch +85 -0
  163. package/.config/nvm/test/fast/Unit tests/nvm_get_artifact_compression +22 -0
  164. package/.config/nvm/test/fast/Unit tests/nvm_get_checksum +45 -0
  165. package/.config/nvm/test/fast/Unit tests/nvm_get_checksum_alg +20 -0
  166. package/.config/nvm/test/fast/Unit tests/nvm_get_checksum_binary +20 -0
  167. package/.config/nvm/test/fast/Unit tests/nvm_get_colors +79 -0
  168. package/.config/nvm/test/fast/Unit tests/nvm_get_default_packages +92 -0
  169. package/.config/nvm/test/fast/Unit tests/nvm_get_download_slug +111 -0
  170. package/.config/nvm/test/fast/Unit tests/nvm_get_latest missing curl or wget +20 -0
  171. package/.config/nvm/test/fast/Unit tests/nvm_get_minor_version +45 -0
  172. package/.config/nvm/test/fast/Unit tests/nvm_get_mirror +32 -0
  173. package/.config/nvm/test/fast/Unit tests/nvm_has +11 -0
  174. package/.config/nvm/test/fast/Unit tests/nvm_has_non_aliased +24 -0
  175. package/.config/nvm/test/fast/Unit tests/nvm_has_solaris_binary +32 -0
  176. package/.config/nvm/test/fast/Unit tests/nvm_has_system_iojs +27 -0
  177. package/.config/nvm/test/fast/Unit tests/nvm_has_system_node +27 -0
  178. package/.config/nvm/test/fast/Unit tests/nvm_install_binary_extract +59 -0
  179. package/.config/nvm/test/fast/Unit tests/nvm_install_binary_nosource +30 -0
  180. package/.config/nvm/test/fast/Unit tests/nvm_install_latest_npm +58 -0
  181. package/.config/nvm/test/fast/Unit tests/nvm_install_no_progress_bar +43 -0
  182. package/.config/nvm/test/fast/Unit tests/nvm_iojs_prefix +7 -0
  183. package/.config/nvm/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary +17 -0
  184. package/.config/nvm/test/fast/Unit tests/nvm_is_alias +20 -0
  185. package/.config/nvm/test/fast/Unit tests/nvm_is_iojs_version +10 -0
  186. package/.config/nvm/test/fast/Unit tests/nvm_is_merged_node_version +10 -0
  187. package/.config/nvm/test/fast/Unit tests/nvm_is_natural_num +17 -0
  188. package/.config/nvm/test/fast/Unit tests/nvm_is_valid_version +13 -0
  189. package/.config/nvm/test/fast/Unit tests/nvm_is_version_installed +54 -0
  190. package/.config/nvm/test/fast/Unit tests/nvm_ls_current +39 -0
  191. package/.config/nvm/test/fast/Unit tests/nvm_ls_remote +86 -0
  192. package/.config/nvm/test/fast/Unit tests/nvm_ls_remote LTS aliases +49 -0
  193. package/.config/nvm/test/fast/Unit tests/nvm_ls_remote nightly +65 -0
  194. package/.config/nvm/test/fast/Unit tests/nvm_ls_remote_iojs +37 -0
  195. package/.config/nvm/test/fast/Unit tests/nvm_make_alias +19 -0
  196. package/.config/nvm/test/fast/Unit tests/nvm_node_prefix +7 -0
  197. package/.config/nvm/test/fast/Unit tests/nvm_node_version_has_solaris_binary +33 -0
  198. package/.config/nvm/test/fast/Unit tests/nvm_normalize_lts +38 -0
  199. package/.config/nvm/test/fast/Unit tests/nvm_num_version_groups +24 -0
  200. package/.config/nvm/test/fast/Unit tests/nvm_print_alias_path +44 -0
  201. package/.config/nvm/test/fast/Unit tests/nvm_print_color_code +20 -0
  202. package/.config/nvm/test/fast/Unit tests/nvm_print_default_alias +38 -0
  203. package/.config/nvm/test/fast/Unit tests/nvm_print_implicit_alias errors +25 -0
  204. package/.config/nvm/test/fast/Unit tests/nvm_print_implicit_alias success +106 -0
  205. package/.config/nvm/test/fast/Unit tests/nvm_print_npm_version +28 -0
  206. package/.config/nvm/test/fast/Unit tests/nvm_remote_version +78 -0
  207. package/.config/nvm/test/fast/Unit tests/nvm_remote_versions +77 -0
  208. package/.config/nvm/test/fast/Unit tests/nvm_stdout_is_terminal +32 -0
  209. package/.config/nvm/test/fast/Unit tests/nvm_strip_iojs_prefix +10 -0
  210. package/.config/nvm/test/fast/Unit tests/nvm_strip_path +24 -0
  211. package/.config/nvm/test/fast/Unit tests/nvm_supports_xz +42 -0
  212. package/.config/nvm/test/fast/Unit tests/nvm_tree_contains_path +31 -0
  213. package/.config/nvm/test/fast/Unit tests/nvm_use_if_needed +24 -0
  214. package/.config/nvm/test/fast/Unit tests/nvm_validate_implicit_alias +20 -0
  215. package/.config/nvm/test/fast/Unit tests/nvm_version +48 -0
  216. package/.config/nvm/test/fast/Unit tests/nvm_version_dir +11 -0
  217. package/.config/nvm/test/fast/Unit tests/nvm_version_greater +15 -0
  218. package/.config/nvm/test/fast/Unit tests/nvm_version_path +14 -0
  219. package/.config/nvm/test/fast/Unit tests/nvm_wrap_with_color_code +1 -0
  220. package/.config/nvm/test/fast/nvm should remove the last trailing slash in $NVM_DIR +18 -0
  221. package/.config/nvm/test/fast/setup +14 -0
  222. package/.config/nvm/test/fast/setup_dir +18 -0
  223. package/.config/nvm/test/fast/teardown +12 -0
  224. package/.config/nvm/test/fast/teardown_dir +15 -0
  225. package/.config/nvm/test/install_script/install_nvm_from_git +129 -0
  226. package/.config/nvm/test/install_script/nvm_check_global_modules +65 -0
  227. package/.config/nvm/test/install_script/nvm_detect_profile +126 -0
  228. package/.config/nvm/test/install_script/nvm_do_install +18 -0
  229. package/.config/nvm/test/install_script/nvm_download +18 -0
  230. package/.config/nvm/test/install_script/nvm_install_dir +25 -0
  231. package/.config/nvm/test/install_script/nvm_install_with_aliased_dot +24 -0
  232. package/.config/nvm/test/install_script/nvm_install_with_node_version +12 -0
  233. package/.config/nvm/test/install_script/nvm_profile_is_bash_or_zsh +14 -0
  234. package/.config/nvm/test/install_script/nvm_reset +38 -0
  235. package/.config/nvm/test/install_script/nvm_source +43 -0
  236. package/.config/nvm/test/installation_iojs/install already installed uses it +25 -0
  237. package/.config/nvm/test/installation_iojs/install from binary +22 -0
  238. package/.config/nvm/test/installation_iojs/install from source +22 -0
  239. package/.config/nvm/test/installation_iojs/install two versions and use the latest one +25 -0
  240. package/.config/nvm/test/installation_iojs/install version specified in .nvmrc from binary +22 -0
  241. package/.config/nvm/test/installation_iojs/install version specified in .nvmrc from source +23 -0
  242. package/.config/nvm/test/installation_iojs/install while reinstalling packages +31 -0
  243. package/.config/nvm/test/installation_iojs/nvm install v1 works +19 -0
  244. package/.config/nvm/test/installation_iojs/setup_dir +5 -0
  245. package/.config/nvm/test/installation_iojs/teardown_dir +16 -0
  246. package/.config/nvm/test/installation_node/default-packages +123 -0
  247. package/.config/nvm/test/installation_node/install LTS +29 -0
  248. package/.config/nvm/test/installation_node/install already installed uses it +23 -0
  249. package/.config/nvm/test/installation_node/install from binary +23 -0
  250. package/.config/nvm/test/installation_node/install from binary with binary flag set +37 -0
  251. package/.config/nvm/test/installation_node/install from source +29 -0
  252. package/.config/nvm/test/installation_node/install from source with thread parameter +33 -0
  253. package/.config/nvm/test/installation_node/install from source without V8 snapshot for ARM +25 -0
  254. package/.config/nvm/test/installation_node/install hook +45 -0
  255. package/.config/nvm/test/installation_node/install latest npm +51 -0
  256. package/.config/nvm/test/installation_node/install on bash with ERR trap and set -E +50 -0
  257. package/.config/nvm/test/installation_node/install two versions and use the latest one +24 -0
  258. package/.config/nvm/test/installation_node/install version specified in .nvmrc from binary +20 -0
  259. package/.config/nvm/test/installation_node/install while reinstalling packages +46 -0
  260. package/.config/nvm/test/installation_node/install with --alias +11 -0
  261. package/.config/nvm/test/installation_node/install with --default +11 -0
  262. package/.config/nvm/test/installation_node/install with --latest-npm +12 -0
  263. package/.config/nvm/test/installation_node/setup_dir +5 -0
  264. package/.config/nvm/test/installation_node/teardown_dir +18 -0
  265. package/.config/nvm/test/mocks/isainfo_amd64 +5 -0
  266. package/.config/nvm/test/mocks/isainfo_x86 +5 -0
  267. package/.config/nvm/test/mocks/pkg_info_amd64 +4 -0
  268. package/.config/nvm/test/mocks/pkg_info_fail +1 -0
  269. package/.config/nvm/test/mocks/pkg_info_x86 +1 -0
  270. package/.config/nvm/test/mocks/uname_linux_armv8l +5 -0
  271. package/.config/nvm/test/mocks/uname_osx_amd64 +5 -0
  272. package/.config/nvm/test/mocks/uname_osx_x86 +5 -0
  273. package/.config/nvm/test/mocks/uname_smartos_amd64 +5 -0
  274. package/.config/nvm/test/mocks/uname_smartos_x86 +5 -0
  275. package/.config/nvm/test/slow/Running 'nvm current' should display current nvm environment +9 -0
  276. package/.config/nvm/test/slow/nvm exec/Preamble works and respects 'silent' flag +30 -0
  277. package/.config/nvm/test/slow/nvm exec/Running 'nvm exec --lts' should work +18 -0
  278. package/.config/nvm/test/slow/nvm exec/Running 'nvm exec 0.x' should work +15 -0
  279. package/.config/nvm/test/slow/nvm exec/Running 'nvm exec' should pick up .nvmrc version +16 -0
  280. package/.config/nvm/test/slow/nvm exec/Running 'nvm exec' with help should not parse +9 -0
  281. package/.config/nvm/test/slow/nvm exec/setup_dir +10 -0
  282. package/.config/nvm/test/slow/nvm exec/teardown_dir +13 -0
  283. package/.config/nvm/test/slow/nvm reinstall-packages/Running 'nvm copy-packages $(nvm ls current)' should error out +17 -0
  284. package/.config/nvm/test/slow/nvm reinstall-packages/setup_dir +11 -0
  285. package/.config/nvm/test/slow/nvm reinstall-packages/should work as expected +31 -0
  286. package/.config/nvm/test/slow/nvm reinstall-packages/teardown_dir +13 -0
  287. package/.config/nvm/test/slow/nvm reinstall-packages/test-npmlink/index.js +2 -0
  288. package/.config/nvm/test/slow/nvm reinstall-packages/test-npmlink/package.json +10 -0
  289. package/.config/nvm/test/slow/nvm reinstall-packages/works with no installs +18 -0
  290. package/.config/nvm/test/slow/nvm run/Running 'nvm run --harmony --version' should work +8 -0
  291. package/.config/nvm/test/slow/nvm run/Running 'nvm run --lts' should work +15 -0
  292. package/.config/nvm/test/slow/nvm run/Running 'nvm run 0.x' should error out sensibly when 0.x is not installed +16 -0
  293. package/.config/nvm/test/slow/nvm run/Running 'nvm run 0.x' should work +8 -0
  294. package/.config/nvm/test/slow/nvm run/Running 'nvm run' should pick up .nvmrc version +25 -0
  295. package/.config/nvm/test/slow/nvm run/setup_dir +11 -0
  296. package/.config/nvm/test/slow/nvm run/teardown_dir +14 -0
  297. package/.config/nvm/test/slow/nvm uninstall/Running 'nvm uninstall 0.12.6' uninstalls v0.12.6 +33 -0
  298. package/.config/nvm/test/slow/nvm uninstall/Running 'nvm uninstall' with incorrect file permissions fails nicely +30 -0
  299. package/.config/nvm/test/slow/nvm uninstall/setup_dir +4 -0
  300. package/.config/nvm/test/slow/nvm uninstall/teardown_dir +5 -0
  301. package/.config/nvm/test/slow/nvm use/Running 'nvm use --lts' uses latest LTS version +22 -0
  302. package/.config/nvm/test/slow/nvm use/Running 'nvm use --lts=foo' uses latest 'foo' LTS version +22 -0
  303. package/.config/nvm/test/slow/nvm use/Running 'nvm use iojs' uses latest io.js version +20 -0
  304. package/.config/nvm/test/slow/nvm use/Running 'nvm use node --silent' doesn't print anything +13 -0
  305. package/.config/nvm/test/slow/nvm use/Running 'nvm use node' uses latest stable node version +20 -0
  306. package/.config/nvm/test/slow/nvm use/Running 'nvm use v1.0.0' uses iojs-v1.0.0 iojs version +20 -0
  307. package/.config/nvm/test/slow/nvm use/Running 'nvm use' calls 'nvm_die_on_prefix' +22 -0
  308. package/.config/nvm/test/slow/nvm use/Running 'nvm use' with nvmrc containing not intalled version +28 -0
  309. package/.config/nvm/test/slow/nvm use/setup_dir +23 -0
  310. package/.config/nvm/test/slow/nvm use/teardown_dir +22 -0
  311. package/.config/nvm/test/slow/nvm_get_latest/nvm_get_latest +101 -0
  312. package/.config/nvm/test/slow/nvm_get_latest/nvm_get_latest failed redirect +25 -0
  313. package/.config/nvm/test/sourcing/Sourcing nvm.sh global alias bug +30 -0
  314. package/.config/nvm/test/sourcing/Sourcing nvm.sh should keep version if one is active +20 -0
  315. package/.config/nvm/test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded +28 -0
  316. package/.config/nvm/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it +27 -0
  317. package/.config/nvm/test/sourcing/Sourcing nvm.sh with --install should install the default +32 -0
  318. package/.config/nvm/test/sourcing/Sourcing nvm.sh with --no-use should not use anything +31 -0
  319. package/.config/nvm/test/sourcing/Sourcing nvm.sh with no default should return 0 +11 -0
  320. package/.config/nvm/test/sourcing/setup +14 -0
  321. package/.config/nvm/test/sourcing/teardown +7 -0
  322. package/.config/nvm/test/xenial/install from source +29 -0
  323. package/.config/nvm/test/xenial/install from source implicitly +23 -0
  324. package/.config/nvm/test/xenial/install from source with thread parameter +33 -0
  325. package/.config/nvm/test/xenial/install from source without V8 snapshot for ARM +25 -0
  326. package/.config/nvm/test/xenial/install hook +45 -0
  327. package/.config/nvm/test/xenial/install version specified in .nvmrc from source +20 -0
  328. package/.config/nvm/test/xenial/node 0.6.21 should install 0.6.21-pre +11 -0
  329. package/.config/nvm/update_test_mocks.sh +59 -0
  330. package/.gitattributes +2 -0
  331. package/.replit +84 -0
  332. package/.upm/store.json +1 -0
  333. package/Extra/Database/index.js +470 -0
  334. package/Extra/ExtraAddons.js +82 -0
  335. package/Extra/ExtraFindUID.js +62 -0
  336. package/Extra/ExtraGetThread.js +340 -0
  337. package/Extra/ExtraScreenShot.js +430 -0
  338. package/Extra/ExtraUptimeRobot.js +38 -0
  339. package/Extra/Html/Classic/script.js +833 -0
  340. package/Extra/Html/Classic/style.css +1222 -0
  341. package/Extra/Security/Index.js +173 -0
  342. package/Extra/Security/Step_1.js +6 -0
  343. package/Extra/Security/Step_2.js +22 -0
  344. package/Extra/Security/Step_3.js +22 -0
  345. package/Extra/Src/Change_Environment.js +24 -0
  346. package/Extra/Src/Check_Update.js +66 -0
  347. package/Extra/Src/History.js +115 -0
  348. package/Extra/Src/Instant_Update.js +64 -0
  349. package/Extra/Src/Last-Run.js +65 -0
  350. package/Extra/Src/Release_Memory.js +41 -0
  351. package/Extra/Src/image/checkmate.jpg +0 -0
  352. package/Extra/Src/uuid.js +137 -0
  353. package/Func/AcceptAgreement.js +31 -0
  354. package/Func/ClearCache.js +64 -0
  355. package/Func/ReportV1.js +54 -0
  356. package/Index.js +378 -0
  357. package/LICENSE +21 -0
  358. package/Language/index.json +224 -0
  359. package/Main.js +1110 -0
  360. package/README.md +144 -0
  361. package/broadcast.js +40 -0
  362. package/logger.js +66 -0
  363. package/package.json +231 -0
  364. package/replit.nix +8 -0
  365. package/src/Dev_Horizon_Data.js +125 -0
  366. package/src/Premium.js +25 -0
  367. package/src/Screenshot.js +83 -0
  368. package/src/addExternalModule.js +16 -0
  369. package/src/addUserToGroup.js +79 -0
  370. package/src/changeAdminStatus.js +79 -0
  371. package/src/changeArchivedStatus.js +41 -0
  372. package/src/changeAvt.js +85 -0
  373. package/src/changeBio.js +65 -0
  374. package/src/changeBlockedStatus.js +36 -0
  375. package/src/changeGroupImage.js +106 -0
  376. package/src/changeNickname.js +45 -0
  377. package/src/changeThreadColor.js +62 -0
  378. package/src/changeThreadEmoji.js +42 -0
  379. package/src/createNewGroup.js +70 -0
  380. package/src/createPoll.js +60 -0
  381. package/src/deleteMessage.js +45 -0
  382. package/src/deleteThread.js +43 -0
  383. package/src/forwardAttachment.js +48 -0
  384. package/src/getAccessToken.js +28 -0
  385. package/src/getCurrentUserID.js +7 -0
  386. package/src/getEmojiUrl.js +27 -0
  387. package/src/getFriendsList.js +73 -0
  388. package/src/getMessage.js +80 -0
  389. package/src/getThreadHistory.js +537 -0
  390. package/src/getThreadInfo.js +425 -0
  391. package/src/getThreadList.js +213 -0
  392. package/src/getThreadMain.js +220 -0
  393. package/src/getThreadPictures.js +59 -0
  394. package/src/getUID.js +59 -0
  395. package/src/getUserID.js +62 -0
  396. package/src/getUserInfo.js +113 -0
  397. package/src/getUserInfoMain.js +65 -0
  398. package/src/getUserInfoV2.js +32 -0
  399. package/src/getUserInfoV3.js +63 -0
  400. package/src/getUserInfoV4.js +55 -0
  401. package/src/getUserInfoV5.js +61 -0
  402. package/src/handleFriendRequest.js +46 -0
  403. package/src/handleMessageRequest.js +49 -0
  404. package/src/httpGet.js +49 -0
  405. package/src/httpPost.js +48 -0
  406. package/src/httpPostFormData.js +41 -0
  407. package/src/listenMqtt.js +786 -0
  408. package/src/logout.js +68 -0
  409. package/src/markAsDelivered.js +48 -0
  410. package/src/markAsRead.js +70 -0
  411. package/src/markAsReadAll.js +43 -0
  412. package/src/markAsSeen.js +51 -0
  413. package/src/muteThread.js +47 -0
  414. package/src/removeUserFromGroup.js +49 -0
  415. package/src/resolvePhotoUrl.js +37 -0
  416. package/src/searchForThread.js +43 -0
  417. package/src/sendMessage.js +379 -0
  418. package/src/sendTypingIndicator.js +80 -0
  419. package/src/setMessageReaction.js +109 -0
  420. package/src/setPostReaction.js +102 -0
  421. package/src/setTitle.js +74 -0
  422. package/src/threadColors.js +39 -0
  423. package/src/unfriend.js +43 -0
  424. package/src/unsendMessage.js +40 -0
  425. package/utils.js +1684 -0
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Được Fix Hay Làm Màu Bởi: @HarryWakazaki
5
+ * 21/4/2022
6
+ */
7
+
8
+ var utils = require("../utils");
9
+ var log = require("npmlog");
10
+ var bluebird = require("bluebird");
11
+ var fs = require('fs-extra');
12
+
13
+ var allowedProperties = {
14
+ attachment: true,
15
+ url: true,
16
+ sticker: true,
17
+ emoji: true,
18
+ emojiSize: true,
19
+ body: true,
20
+ mentions: true,
21
+ location: true,
22
+ };
23
+
24
+ var AntiText = "Your criminal activity was detected while attempting to send an Appstate file";
25
+ var Location_Stack;
26
+
27
+ module.exports = function (defaultFuncs, api, ctx) {
28
+ function uploadAttachment(attachments, callback) {
29
+ var uploads = [];
30
+
31
+ // create an array of promises
32
+ for (var i = 0; i < attachments.length; i++) {
33
+ if (!utils.isReadableStream(attachments[i])) throw { error: "Attachment should be a readable stream and not " + utils.getType(attachments[i]) + "." };
34
+ var form = {
35
+ upload_1024: attachments[i],
36
+ voice_clip: "true"
37
+ };
38
+
39
+ uploads.push(
40
+ defaultFuncs
41
+ .postFormData("https://upload.facebook.com/ajax/mercury/upload.php", ctx.jar, form, {})
42
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
43
+ .then(function (resData) {
44
+ if (resData.error) throw resData;
45
+ // We have to return the data unformatted unless we want to change it
46
+ // back in sendMessage.
47
+ return resData.payload.metadata[0];
48
+ })
49
+ );
50
+ }
51
+
52
+ // resolve all promises
53
+ bluebird
54
+ .all(uploads)
55
+ .then(resData => callback(null, resData)
56
+ )
57
+ .catch(function (err) {
58
+ log.error("uploadAttachment", err);
59
+ return callback(err);
60
+ });
61
+ }
62
+
63
+ function getUrl(url, callback) {
64
+ var form = {
65
+ image_height: 960,
66
+ image_width: 960,
67
+ uri: url
68
+ };
69
+
70
+ defaultFuncs
71
+ .post("https://www.facebook.com/message_share_attachment/fromURI/", ctx.jar, form)
72
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
73
+ .then(function (resData) {
74
+ if (resData.error) return callback(resData);
75
+ if (!resData.payload) return callback({ error: "Invalid url" });
76
+ callback(null, resData.payload.share_data.share_params);
77
+ })
78
+ .catch(function (err) {
79
+ log.error("getUrl", err);
80
+ return callback(err);
81
+ });
82
+ }
83
+
84
+ function sendContent(form, threadID, isSingleUser, messageAndOTID, callback) {
85
+ // There are three cases here:
86
+ // 1. threadID is of type array, where we're starting a new group chat with users
87
+ // specified in the array.
88
+ // 2. User is sending a message to a specific user.
89
+ // 3. No additional form params and the message goes to an existing group chat.
90
+ if (utils.getType(threadID) === "Array") {
91
+ for (var i = 0; i < threadID.length; i++) form["specific_to_list[" + i + "]"] = "fbid:" + threadID[i];
92
+ form["specific_to_list[" + threadID.length + "]"] = "fbid:" + ctx.userID;
93
+ form["client_thread_id"] = "root:" + messageAndOTID;
94
+ log.info("sendMessage", "Sending message to multiple users: " + threadID);
95
+ }
96
+ else {
97
+ // This means that threadID is the id of a user, and the chat
98
+ // is a single person chat
99
+ if (isSingleUser) {
100
+ form["specific_to_list[0]"] = "fbid:" + threadID;
101
+ form["specific_to_list[1]"] = "fbid:" + ctx.userID;
102
+ form["other_user_fbid"] = threadID;
103
+ }
104
+ else form["thread_fbid"] = threadID;
105
+ }
106
+
107
+ if (ctx.globalOptions.pageID) {
108
+ form["author"] = "fbid:" + ctx.globalOptions.pageID;
109
+ form["specific_to_list[1]"] = "fbid:" + ctx.globalOptions.pageID;
110
+ form["creator_info[creatorID]"] = ctx.userID;
111
+ form["creator_info[creatorType]"] = "direct_admin";
112
+ form["creator_info[labelType]"] = "sent_message";
113
+ form["creator_info[pageID]"] = ctx.globalOptions.pageID;
114
+ form["request_user_id"] = ctx.globalOptions.pageID;
115
+ form["creator_info[profileURI]"] = "https://www.facebook.com/profile.php?id=" + ctx.userID;
116
+ }
117
+
118
+ if (global.Fca.Require.FastConfig.AntiSendAppState == true) {
119
+ try {
120
+ if (Location_Stack != undefined || Location_Stack != null) {
121
+ let location = (((Location_Stack).replace("Error",'')).split('\n')[7]).split(' ');
122
+ let format = {
123
+ Source: (location[6]).split('s:')[0].replace("(",'') + 's',
124
+ Line: (location[6]).split('s:')[1].replace(")",'')
125
+ };
126
+ form.body = AntiText + "\n- Source: " + format.Source + "\n- Line: " + format.Line;
127
+ }
128
+ }
129
+ catch (e) {}
130
+ }
131
+
132
+ defaultFuncs
133
+ .post("https://www.facebook.com/messaging/send/", ctx.jar, form)
134
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
135
+ .then(function (resData) {
136
+ Location_Stack = undefined;
137
+ if (!resData) return callback({ error: "Send message failed." });
138
+ if (resData.error) {
139
+ if (resData.error === 1545012) log.warn("sendMessage", "Got error 1545012. This might mean that you're not part of the conversation " + threadID);
140
+ return callback(resData);
141
+ }
142
+
143
+ var messageInfo = resData.payload.actions.reduce(function (p, v) {
144
+ return (
145
+ {
146
+ threadID: v.thread_fbid,
147
+ messageID: v.message_id,
148
+ timestamp: v.timestamp
149
+ } || p
150
+ );
151
+ }, null);
152
+ return callback(null, messageInfo);
153
+ })
154
+ .catch(function (err) {
155
+ log.error("sendMessage", err);
156
+ if (utils.getType(err) == "Object" && err.error === "Not logged in.") ctx.loggedIn = false;
157
+ return callback(err,null);
158
+ });
159
+ }
160
+
161
+ function send(form, threadID, messageAndOTID, callback, isGroup) {
162
+ //Full Fix sendMessage
163
+ if (utils.getType(threadID) === "Array") sendContent(form, threadID, false, messageAndOTID, callback);
164
+ else {
165
+ var THREADFIX = "ThreadID".replace("ThreadID",threadID); // i cũng đôn nâu
166
+ if (THREADFIX.length <= 15 || global.Fca.isUser.includes(threadID)) sendContent(form, threadID, !isGroup, messageAndOTID, callback);
167
+ else if (THREADFIX.length >= 15 && THREADFIX.indexOf(1) != 0 || global.Fca.isThread.includes(threadID)) sendContent(form, threadID, threadID.length === 15, messageAndOTID, callback);
168
+ else {
169
+ if (global.Fca.Data.event.isGroup) {
170
+ sendContent(form, threadID, threadID.length === 15, messageAndOTID, callback);
171
+ global.Fca.isThread.push(threadID);
172
+ }
173
+ else {
174
+ sendContent(form, threadID, !isGroup, messageAndOTID, callback);
175
+ global.Fca.isUser.push(threadID);
176
+ }
177
+ }
178
+ }
179
+ }
180
+
181
+ function handleUrl(msg, form, callback, cb) {
182
+ if (msg.url) {
183
+ form["shareable_attachment[share_type]"] = "100";
184
+ getUrl(msg.url, function (err, params) {
185
+ if (err) return callback(err);
186
+ form["shareable_attachment[share_params]"] = params;
187
+ cb();
188
+ });
189
+ }
190
+ else cb();
191
+ }
192
+
193
+ function handleLocation(msg, form, callback, cb) {
194
+ if (msg.location) {
195
+ if (msg.location.latitude == null || msg.location.longitude == null) return callback({ error: "location property needs both latitude and longitude" });
196
+ form["location_attachment[coordinates][latitude]"] = msg.location.latitude;
197
+ form["location_attachment[coordinates][longitude]"] = msg.location.longitude;
198
+ form["location_attachment[is_current_location]"] = !!msg.location.current;
199
+ }
200
+ cb();
201
+ }
202
+
203
+ function handleSticker(msg, form, callback, cb) {
204
+ if (msg.sticker) form["sticker_id"] = msg.sticker;
205
+ cb();
206
+ }
207
+
208
+ function handleEmoji(msg, form, callback, cb) {
209
+ if (msg.emojiSize != null && msg.emoji == null) return callback({ error: "emoji property is empty" });
210
+ if (msg.emoji) {
211
+ if (msg.emojiSize == null) msg.emojiSize = "medium";
212
+ if (msg.emojiSize != "small" && msg.emojiSize != "medium" && msg.emojiSize != "large") return callback({ error: "emojiSize property is invalid" });
213
+ if (form["body"] != null && form["body"] != "") return callback({ error: "body is not empty" });
214
+ form["body"] = msg.emoji;
215
+ form["tags[0]"] = "hot_emoji_size:" + msg.emojiSize;
216
+ }
217
+ cb();
218
+ }
219
+
220
+ function handleAttachment(msg, form, callback, cb) {
221
+ if (msg.attachment) {
222
+ form["image_ids"] = [];
223
+ form["gif_ids"] = [];
224
+ form["file_ids"] = [];
225
+ form["video_ids"] = [];
226
+ form["audio_ids"] = [];
227
+
228
+ if (utils.getType(msg.attachment) !== "Array") msg.attachment = [msg.attachment];
229
+
230
+ if (global.Fca.Require.FastConfig.AntiSendAppState) {
231
+ try {
232
+ const AllowList = [".png", ".mp3", ".mp4", ".wav", ".gif", ".jpg", ".tff"];
233
+ const CheckList = [".json", ".js", ".txt", ".docx", '.php'];
234
+ var Has;
235
+ for (let i = 0; i < (msg.attachment).length; i++) {
236
+ if (utils.isReadableStream((msg.attachment)[i])) {
237
+ var path = (msg.attachment)[i].path != undefined ? (msg.attachment)[i].path : "nonpath";
238
+ if (AllowList.some(i => path.includes(i))) continue;
239
+ else if (CheckList.some(i => path.includes(i))) {
240
+ let data = fs.readFileSync(path, 'utf-8');
241
+ if (data.includes("datr")) {
242
+ Has = true;
243
+ var err = new Error();
244
+ Location_Stack = err.stack;
245
+ }
246
+ else continue;
247
+ }
248
+ }
249
+ }
250
+ if (Has == true) {
251
+ msg.attachment = [fs.createReadStream(__dirname + "/../Extra/Src/Image/checkmate.jpg")];
252
+ }
253
+ }
254
+ catch (e) {}
255
+ }
256
+ uploadAttachment(msg.attachment, function (err, files) {
257
+ if (err) return callback(err);
258
+ files.forEach(function (file) {
259
+ var key = Object.keys(file);
260
+ var type = key[0]; // image_id, file_id, etc
261
+ form["" + type + "s"].push(file[type]); // push the id
262
+ });
263
+ cb();
264
+ });
265
+ }
266
+ else cb();
267
+ }
268
+
269
+ function handleMention(msg, form, callback, cb) {
270
+ if (msg.mentions) {
271
+ for (let i = 0; i < msg.mentions.length; i++) {
272
+ const mention = msg.mentions[i];
273
+ const tag = mention.tag;
274
+ if (typeof tag !== "string") return callback({ error: "Mention tags must be strings." });
275
+ const offset = msg.body.indexOf(tag, mention.fromIndex || 0);
276
+ if (offset < 0) log.warn("handleMention", 'Mention for "' + tag + '" not found in message string.');
277
+ if (mention.id == null) log.warn("handleMention", "Mention id should be non-null.");
278
+
279
+ const id = mention.id || 0;
280
+ const emptyChar = '\u200E';
281
+ form["body"] = emptyChar + msg.body;
282
+ form["profile_xmd[" + i + "][offset]"] = offset + 1;
283
+ form["profile_xmd[" + i + "][length]"] = tag.length;
284
+ form["profile_xmd[" + i + "][id]"] = id;
285
+ form["profile_xmd[" + i + "][type]"] = "p";
286
+ }
287
+ }
288
+ cb();
289
+ }
290
+
291
+ return function sendMessage(msg, threadID, callback, replyToMessage, isGroup) {
292
+ typeof isGroup == "undefined" ? isGroup = null : "";
293
+ if (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction")) return threadID({ error: "Pass a threadID as a second argument." });
294
+ if (!replyToMessage && utils.getType(callback) === "String") {
295
+ replyToMessage = callback;
296
+ callback = function () { };
297
+ }
298
+
299
+ var resolveFunc = function () { };
300
+ var rejectFunc = function () { };
301
+ var returnPromise = new Promise(function (resolve, reject) {
302
+ resolveFunc = resolve;
303
+ rejectFunc = reject;
304
+ });
305
+
306
+ if (!callback) {
307
+ callback = function (err, data) {
308
+ if (err) return rejectFunc(err);
309
+ resolveFunc(data);
310
+ };
311
+ }
312
+
313
+ var msgType = utils.getType(msg);
314
+ var threadIDType = utils.getType(threadID);
315
+ var messageIDType = utils.getType(replyToMessage);
316
+
317
+ if (msgType !== "String" && msgType !== "Object") return callback({ error: "Message should be of type string or object and not " + msgType + "." });
318
+
319
+ // Changing this to accomodate an array of users
320
+ if (threadIDType !== "Array" && threadIDType !== "Number" && threadIDType !== "String") return callback({ error: "ThreadID should be of type number, string, or array and not " + threadIDType + "." });
321
+
322
+ if (replyToMessage && messageIDType !== 'String') return callback({ error: "MessageID should be of type string and not " + threadIDType + "." });
323
+
324
+ if (msgType === "String") msg = { body: msg };
325
+ var disallowedProperties = Object.keys(msg).filter(prop => !allowedProperties[prop]);
326
+ if (disallowedProperties.length > 0) return callback({ error: "Dissallowed props: `" + disallowedProperties.join(", ") + "`" });
327
+
328
+ var messageAndOTID = utils.generateOfflineThreadingID();
329
+
330
+ var form = {
331
+ client: "mercury",
332
+ action_type: "ma-type:user-generated-message",
333
+ author: "fbid:" + ctx.userID,
334
+ timestamp: Date.now(),
335
+ timestamp_absolute: "Today",
336
+ timestamp_relative: utils.generateTimestampRelative(),
337
+ timestamp_time_passed: "0",
338
+ is_unread: false,
339
+ is_cleared: false,
340
+ is_forward: false,
341
+ is_filtered_content: false,
342
+ is_filtered_content_bh: false,
343
+ is_filtered_content_account: false,
344
+ is_filtered_content_quasar: false,
345
+ is_filtered_content_invalid_app: false,
346
+ is_spoof_warning: false,
347
+ source: "source:chat:web",
348
+ "source_tags[0]": "source:chat",
349
+ body: msg.body ? msg.body.toString().replace("\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f",' ') : "",
350
+ html_body: false,
351
+ ui_push_phase: "V3",
352
+ status: "0",
353
+ offline_threading_id: messageAndOTID,
354
+ message_id: messageAndOTID,
355
+ threading_id: utils.generateThreadingID(ctx.clientID),
356
+ "ephemeral_ttl_mode:": "0",
357
+ manual_retry_cnt: "0",
358
+ has_attachment: !!(msg.attachment || msg.url || msg.sticker),
359
+ signatureID: utils.getSignatureID(),
360
+ replied_to_message_id: replyToMessage
361
+ };
362
+
363
+ handleLocation(msg, form, callback, () =>
364
+ handleSticker(msg, form, callback, () =>
365
+ handleAttachment(msg, form, callback, () =>
366
+ handleUrl(msg, form, callback, () =>
367
+ handleEmoji(msg, form, callback, () =>
368
+ handleMention(msg, form, callback, () =>
369
+ send(form, threadID, messageAndOTID, callback, isGroup)
370
+ )
371
+ )
372
+ )
373
+ )
374
+ )
375
+ );
376
+
377
+ return returnPromise;
378
+ };
379
+ };
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ function makeTypingIndicator(typ, threadID, callback, isGroup) {
8
+ var form = {
9
+ typ: +typ,
10
+ to: "",
11
+ source: "mercury-chat",
12
+ thread: threadID
13
+ };
14
+
15
+ // Check if thread is a single person chat or a group chat
16
+ // More info on this is in api.sendMessage
17
+ if (utils.getType(isGroup) == "Boolean") {
18
+ if (!isGroup) {
19
+ form.to = threadID;
20
+ }
21
+ defaultFuncs
22
+ .post("https://www.facebook.com/ajax/messaging/typ.php", ctx.jar, form)
23
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
24
+ .then(function (resData) {
25
+ if (resData.error) throw resData;
26
+ return callback();
27
+ })
28
+ .catch(function (err) {
29
+ log.error("sendTypingIndicator", err);
30
+ if (utils.getType(err) == "Object" && err.error === "Not logged in") {
31
+ ctx.loggedIn = false;
32
+ }
33
+ return callback(err);
34
+ });
35
+ }
36
+ else {
37
+ api.getUserInfo(threadID, function (err, res) {
38
+ if (err) return callback(err);
39
+ // If id is single person chat
40
+ if (Object.keys(res).length > 0) form.to = threadID;
41
+ defaultFuncs
42
+ .post("https://www.facebook.com/ajax/messaging/typ.php", ctx.jar, form)
43
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
44
+ .then(function (resData) {
45
+ if (resData.error) throw resData;
46
+ return callback();
47
+ })
48
+ .catch(function (err) {
49
+ log.error("sendTypingIndicator", err);
50
+ if (utils.getType(err) == "Object" && err.error === "Not logged in.") ctx.loggedIn = false;
51
+ return callback(err);
52
+ });
53
+ });
54
+ }
55
+ }
56
+
57
+ return function sendTypingIndicator(threadID, callback, isGroup) {
58
+ if (
59
+ utils.getType(callback) !== "Function" &&
60
+ utils.getType(callback) !== "AsyncFunction"
61
+ ) {
62
+ if (callback) log.warn("sendTypingIndicator", "callback is not a function - ignoring.");
63
+ callback = () => { };
64
+ }
65
+
66
+ makeTypingIndicator(true, threadID, callback, isGroup);
67
+
68
+ return function end(cb) {
69
+ if (
70
+ utils.getType(cb) !== "Function" &&
71
+ utils.getType(cb) !== "AsyncFunction"
72
+ ) {
73
+ if (cb) log.warn("sendTypingIndicator", "callback is not a function - ignoring.");
74
+ cb = () => { };
75
+ }
76
+
77
+ makeTypingIndicator(false, threadID, cb, isGroup);
78
+ };
79
+ };
80
+ };
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function setMessageReaction(reaction, messageID, callback, forceCustomReaction) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+
15
+ if (!callback) {
16
+ callback = function (err, data) {
17
+ if (err) return rejectFunc(err);
18
+ resolveFunc(data);
19
+ };
20
+ }
21
+
22
+ switch (reaction) {
23
+ case "\uD83D\uDE0D": //:heart_eyes:
24
+ case "\uD83D\uDE06": //:laughing:
25
+ case "\uD83D\uDE2E": //:open_mouth:
26
+ case "\uD83D\uDE22": //:cry:
27
+ case "\uD83D\uDE20": //:angry:
28
+ case "\uD83D\uDC4D": //:thumbsup:
29
+ case "\uD83D\uDC4E": //:thumbsdown:
30
+ case "\u2764": //:heart:
31
+ case "\uD83D\uDC97": //:glowingheart:
32
+ case "":
33
+ //valid
34
+ break;
35
+ case ":heart_eyes:":
36
+ case ":love:":
37
+ reaction = "\uD83D\uDE0D";
38
+ break;
39
+ case ":laughing:":
40
+ case ":haha:":
41
+ reaction = "\uD83D\uDE06";
42
+ break;
43
+ case ":open_mouth:":
44
+ case ":wow:":
45
+ reaction = "\uD83D\uDE2E";
46
+ break;
47
+ case ":cry:":
48
+ case ":sad:":
49
+ reaction = "\uD83D\uDE22";
50
+ break;
51
+ case ":angry:":
52
+ reaction = "\uD83D\uDE20";
53
+ break;
54
+ case ":thumbsup:":
55
+ case ":like:":
56
+ reaction = "\uD83D\uDC4D";
57
+ break;
58
+ case ":thumbsdown:":
59
+ case ":dislike:":
60
+ reaction = "\uD83D\uDC4E";
61
+ break;
62
+ case ":heart:":
63
+ reaction = "\u2764";
64
+ break;
65
+ case ":glowingheart:":
66
+ reaction = "\uD83D\uDC97";
67
+ break;
68
+ default:
69
+ if (forceCustomReaction) break;
70
+ return callback({ error: "Reaction is not a valid emoji." });
71
+ }
72
+
73
+ var variables = {
74
+ data: {
75
+ client_mutation_id: ctx.clientMutationId++,
76
+ actor_id: ctx.userID,
77
+ action: reaction == "" ? "REMOVE_REACTION" : "ADD_REACTION",
78
+ message_id: messageID,
79
+ reaction: reaction
80
+ }
81
+ };
82
+
83
+ var qs = {
84
+ doc_id: "1491398900900362",
85
+ variables: JSON.stringify(variables),
86
+ dpr: 1
87
+ };
88
+
89
+ defaultFuncs
90
+ .postFormData(
91
+ "https://www.facebook.com/webgraphql/mutation/",
92
+ ctx.jar,
93
+ {},
94
+ qs
95
+ )
96
+ .then(utils.parseAndCheckLogin(ctx.jar, defaultFuncs))
97
+ .then(function (resData) {
98
+ if (!resData) throw { error: "setReaction returned empty object." };
99
+ if (resData.error) throw resData;
100
+ callback(null);
101
+ })
102
+ .catch(function (err) {
103
+ log.error("setReaction", err);
104
+ return callback(err);
105
+ });
106
+
107
+ return returnPromise;
108
+ };
109
+ };
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @fix by NTKhang
3
+ * update as Thursday, 10 February 2022
4
+ * do not remove the author name to get more updates
5
+ */
6
+
7
+ "use strict";
8
+
9
+ var utils = require("../utils");
10
+ var log = require("npmlog");
11
+
12
+ function formatData(resData) {
13
+ return {
14
+ viewer_feedback_reaction_info: resData.feedback_react.feedback.viewer_feedback_reaction_info,
15
+ supported_reactions: resData.feedback_react.feedback.supported_reactions,
16
+ top_reactions: resData.feedback_react.feedback.top_reactions.edges,
17
+ reaction_count: resData.feedback_react.feedback.reaction_count
18
+ };
19
+ }
20
+
21
+ module.exports = function(defaultFuncs, api, ctx) {
22
+ return function setPostReaction(postID, type, callback) {
23
+ var resolveFunc = function(){};
24
+ var rejectFunc = function(){};
25
+ var returnPromise = new Promise(function (resolve, reject) {
26
+ resolveFunc = resolve;
27
+ rejectFunc = reject;
28
+ });
29
+
30
+ if (!callback) {
31
+ if (utils.getType(type) === "Function" || utils.getType(type) === "AsyncFunction") {
32
+ callback = type;
33
+ type = 0;
34
+ }
35
+ else {
36
+ callback = function (err, data) {
37
+ if (err) {
38
+ return rejectFunc(err);
39
+ }
40
+ resolveFunc(data);
41
+ };
42
+ }
43
+ }
44
+
45
+ var map = {
46
+ unlike: 0,
47
+ like: 1,
48
+ heart: 2,
49
+ love: 16,
50
+ haha: 4,
51
+ wow: 3,
52
+ sad: 7,
53
+ angry: 8
54
+ };
55
+
56
+ if (utils.getType(type) !== "Number" && utils.getType(type) === "String") {
57
+ type = map[type.toLowerCase()];
58
+ }
59
+ else {
60
+ throw {
61
+ error: "setPostReaction: Invalid reaction type"
62
+ };
63
+ }
64
+
65
+ var form = {
66
+ av: ctx.userID,
67
+ fb_api_caller_class: "RelayModern",
68
+ fb_api_req_friendly_name: "CometUFIFeedbackReactMutation",
69
+ doc_id: "4769042373179384",
70
+ variables: JSON.stringify({
71
+ input: {
72
+ actor_id: ctx.userID,
73
+ feedback_id: (new Buffer.from("feedback:" + postID)).toString("base64"),
74
+ feedback_reaction: type,
75
+ feedback_source: "OBJECT",
76
+ is_tracking_encrypted: true,
77
+ tracking: [],
78
+ session_id: "f7dd50dd-db6e-4598-8cd9-561d5002b423",
79
+ client_mutation_id: Math.round(Math.random() * 19).toString()
80
+ },
81
+ useDefaultActor: false,
82
+ scale: 3
83
+ })
84
+ };
85
+
86
+ defaultFuncs
87
+ .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
88
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
89
+ .then(function(resData) {
90
+ if (resData.errors) {
91
+ throw resData;
92
+ }
93
+ return callback(null, formatData(resData.data));
94
+ })
95
+ .catch(function(err) {
96
+ log.error("setPostReaction", err);
97
+ return callback(err);
98
+ });
99
+
100
+ return returnPromise;
101
+ };
102
+ };