tiny-essentials 1.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 (302) hide show
  1. package/.github/FUNDING.yml +4 -0
  2. package/.github/workflows/node.js.yml +31 -0
  3. package/LICENSE +674 -0
  4. package/README.md +67 -0
  5. package/dist/TinyEssentials.min.js +1 -0
  6. package/dist/_virtual/_commonjsHelpers.cjs +7 -0
  7. package/dist/_virtual/common.cjs +5 -0
  8. package/dist/_virtual/index.cjs +9 -0
  9. package/dist/_virtual/index2.cjs +5 -0
  10. package/dist/_virtual/trace.cjs +5 -0
  11. package/dist/legacy/crypto/decrypt.cjs +57 -0
  12. package/dist/legacy/crypto/decrypt.d.mts +18 -0
  13. package/dist/legacy/crypto/decrypt.mjs +47 -0
  14. package/dist/legacy/crypto/default.cjs +23 -0
  15. package/dist/legacy/crypto/default.d.mts +35 -0
  16. package/dist/legacy/crypto/default.mjs +19 -0
  17. package/dist/legacy/crypto/encrypt.cjs +54 -0
  18. package/dist/legacy/crypto/encrypt.d.mts +19 -0
  19. package/dist/legacy/crypto/encrypt.mjs +46 -0
  20. package/dist/legacy/crypto/index.cjs +11 -0
  21. package/dist/legacy/crypto/index.d.mts +4 -0
  22. package/dist/legacy/crypto/index.mjs +6 -0
  23. package/dist/legacy/firebase/cookieSession.cjs +121 -0
  24. package/dist/legacy/firebase/cookieSession.d.mts +56 -0
  25. package/dist/legacy/firebase/cookieSession.mjs +114 -0
  26. package/dist/legacy/firebase/database/index.cjs +11 -0
  27. package/dist/legacy/firebase/database/index.d.mts +7 -0
  28. package/dist/legacy/firebase/database/index.mjs +7 -0
  29. package/dist/legacy/firebase/database/presence.cjs +131 -0
  30. package/dist/legacy/firebase/database/presence.d.mts +9 -0
  31. package/dist/legacy/firebase/database/presence.mjs +111 -0
  32. package/dist/legacy/firebase/database/saveAsync.cjs +147 -0
  33. package/dist/legacy/firebase/database/saveAsync.d.mts +54 -0
  34. package/dist/legacy/firebase/database/saveAsync.mjs +147 -0
  35. package/dist/legacy/firebase/databaseEscape.cjs +42 -0
  36. package/dist/legacy/firebase/databaseEscape.d.mts +11 -0
  37. package/dist/legacy/firebase/databaseEscape.mjs +37 -0
  38. package/dist/legacy/firebase/databaseLogger.cjs +258 -0
  39. package/dist/legacy/firebase/databaseLogger.d.mts +7 -0
  40. package/dist/legacy/firebase/databaseLogger.mjs +234 -0
  41. package/dist/legacy/firebase/discord/api/addGuildMember.cjs +71 -0
  42. package/dist/legacy/firebase/discord/api/addGuildMember.d.mts +38 -0
  43. package/dist/legacy/firebase/discord/api/addGuildMember.mjs +64 -0
  44. package/dist/legacy/firebase/discord/api/getGuildWidget.cjs +47 -0
  45. package/dist/legacy/firebase/discord/api/getGuildWidget.d.mts +17 -0
  46. package/dist/legacy/firebase/discord/api/getGuildWidget.mjs +43 -0
  47. package/dist/legacy/firebase/discord/api/getToken.cjs +67 -0
  48. package/dist/legacy/firebase/discord/api/getToken.d.mts +35 -0
  49. package/dist/legacy/firebase/discord/api/getToken.mjs +63 -0
  50. package/dist/legacy/firebase/discord/api/getUser.cjs +58 -0
  51. package/dist/legacy/firebase/discord/api/getUser.d.mts +27 -0
  52. package/dist/legacy/firebase/discord/api/getUser.mjs +54 -0
  53. package/dist/legacy/firebase/discord/api/getUserConnections.cjs +57 -0
  54. package/dist/legacy/firebase/discord/api/getUserConnections.d.mts +26 -0
  55. package/dist/legacy/firebase/discord/api/getUserConnections.mjs +53 -0
  56. package/dist/legacy/firebase/discord/api/getUserGuilds.cjs +56 -0
  57. package/dist/legacy/firebase/discord/api/getUserGuilds.d.mts +25 -0
  58. package/dist/legacy/firebase/discord/api/getUserGuilds.mjs +52 -0
  59. package/dist/legacy/firebase/discord/api/index.cjs +24 -0
  60. package/dist/legacy/firebase/discord/api/index.d.mts +19 -0
  61. package/dist/legacy/firebase/discord/api/index.mjs +20 -0
  62. package/dist/legacy/firebase/discord/api/refreshToken.cjs +77 -0
  63. package/dist/legacy/firebase/discord/api/refreshToken.d.mts +45 -0
  64. package/dist/legacy/firebase/discord/api/refreshToken.mjs +73 -0
  65. package/dist/legacy/firebase/discord/api/revokeToken.cjs +61 -0
  66. package/dist/legacy/firebase/discord/api/revokeToken.d.mts +29 -0
  67. package/dist/legacy/firebase/discord/api/revokeToken.mjs +58 -0
  68. package/dist/legacy/firebase/discord/config.cjs +21 -0
  69. package/dist/legacy/firebase/discord/config.d.mts +27 -0
  70. package/dist/legacy/firebase/discord/config.mjs +17 -0
  71. package/dist/legacy/firebase/discord/firebase_redirect/index.cjs +11 -0
  72. package/dist/legacy/firebase/discord/firebase_redirect/index.d.mts +7 -0
  73. package/dist/legacy/firebase/discord/firebase_redirect/index.mjs +7 -0
  74. package/dist/legacy/firebase/discord/firebase_redirect/login.cjs +110 -0
  75. package/dist/legacy/firebase/discord/firebase_redirect/login.d.mts +4 -0
  76. package/dist/legacy/firebase/discord/firebase_redirect/login.mjs +107 -0
  77. package/dist/legacy/firebase/discord/firebase_redirect/logout.cjs +100 -0
  78. package/dist/legacy/firebase/discord/firebase_redirect/logout.d.mts +4 -0
  79. package/dist/legacy/firebase/discord/firebase_redirect/logout.mjs +97 -0
  80. package/dist/legacy/firebase/discord/get/authURLGenerator.cjs +76 -0
  81. package/dist/legacy/firebase/discord/get/authURLGenerator.d.mts +23 -0
  82. package/dist/legacy/firebase/discord/get/authURLGenerator.mjs +67 -0
  83. package/dist/legacy/firebase/discord/get/cookie-session.cjs +32 -0
  84. package/dist/legacy/firebase/discord/get/cookie-session.d.mts +20 -0
  85. package/dist/legacy/firebase/discord/get/cookie-session.mjs +28 -0
  86. package/dist/legacy/firebase/discord/get/credentials.cjs +24 -0
  87. package/dist/legacy/firebase/discord/get/credentials.d.mts +19 -0
  88. package/dist/legacy/firebase/discord/get/credentials.mjs +20 -0
  89. package/dist/legacy/firebase/discord/get/errorValidator.cjs +60 -0
  90. package/dist/legacy/firebase/discord/get/errorValidator.d.mts +28 -0
  91. package/dist/legacy/firebase/discord/get/errorValidator.mjs +55 -0
  92. package/dist/legacy/firebase/discord/get/index.cjs +17 -0
  93. package/dist/legacy/firebase/discord/get/index.d.mts +13 -0
  94. package/dist/legacy/firebase/discord/get/index.mjs +13 -0
  95. package/dist/legacy/firebase/discord/get/randomAvatar.cjs +37 -0
  96. package/dist/legacy/firebase/discord/get/randomAvatar.d.mts +22 -0
  97. package/dist/legacy/firebase/discord/get/randomAvatar.mjs +30 -0
  98. package/dist/legacy/firebase/discord/http/index.cjs +15 -0
  99. package/dist/legacy/firebase/discord/http/index.d.mts +11 -0
  100. package/dist/legacy/firebase/discord/http/index.mjs +11 -0
  101. package/dist/legacy/firebase/discord/http/login.cjs +127 -0
  102. package/dist/legacy/firebase/discord/http/login.d.mts +21 -0
  103. package/dist/legacy/firebase/discord/http/login.mjs +123 -0
  104. package/dist/legacy/firebase/discord/http/logout.cjs +155 -0
  105. package/dist/legacy/firebase/discord/http/logout.d.mts +22 -0
  106. package/dist/legacy/firebase/discord/http/logout.mjs +143 -0
  107. package/dist/legacy/firebase/discord/http/redirect.cjs +188 -0
  108. package/dist/legacy/firebase/discord/http/redirect.d.mts +24 -0
  109. package/dist/legacy/firebase/discord/http/redirect.mjs +178 -0
  110. package/dist/legacy/firebase/discord/http/refreshToken.cjs +133 -0
  111. package/dist/legacy/firebase/discord/http/refreshToken.d.mts +24 -0
  112. package/dist/legacy/firebase/discord/http/refreshToken.mjs +121 -0
  113. package/dist/legacy/firebase/discord/index.cjs +19 -0
  114. package/dist/legacy/firebase/discord/index.d.mts +15 -0
  115. package/dist/legacy/firebase/discord/index.mjs +15 -0
  116. package/dist/legacy/firebase/discord/template/cookie-session.cjs +1430 -0
  117. package/dist/legacy/firebase/discord/template/cookie-session.d.mts +22 -0
  118. package/dist/legacy/firebase/discord/template/cookie-session.mjs +1159 -0
  119. package/dist/legacy/firebase/domainRedirect.cjs +35 -0
  120. package/dist/legacy/firebase/domainRedirect.d.mts +12 -0
  121. package/dist/legacy/firebase/domainRedirect.mjs +27 -0
  122. package/dist/legacy/firebase/escape.cjs +75 -0
  123. package/dist/legacy/firebase/escape.d.mts +17 -0
  124. package/dist/legacy/firebase/escape.mjs +58 -0
  125. package/dist/legacy/firebase/getDBAsync.cjs +33 -0
  126. package/dist/legacy/firebase/getDBAsync.d.mts +10 -0
  127. package/dist/legacy/firebase/getDBAsync.mjs +26 -0
  128. package/dist/legacy/firebase/getDBData.cjs +21 -0
  129. package/dist/legacy/firebase/getDBData.d.mts +1 -0
  130. package/dist/legacy/firebase/getDBData.mjs +17 -0
  131. package/dist/legacy/firebase/getDBValue.cjs +17 -0
  132. package/dist/legacy/firebase/getDBValue.d.mts +9 -0
  133. package/dist/legacy/firebase/getDBValue.mjs +14 -0
  134. package/dist/legacy/firebase/index.cjs +261 -0
  135. package/dist/legacy/firebase/index.d.mts +51 -0
  136. package/dist/legacy/firebase/index.mjs +234 -0
  137. package/dist/legacy/firebase/isEmulator.cjs +14 -0
  138. package/dist/legacy/firebase/isEmulator.d.mts +8 -0
  139. package/dist/legacy/firebase/isEmulator.mjs +10 -0
  140. package/dist/legacy/firebase/logger.cjs +137 -0
  141. package/dist/legacy/firebase/logger.d.mts +7 -0
  142. package/dist/legacy/firebase/logger.mjs +125 -0
  143. package/dist/legacy/firebase/mySQL.cjs +26 -0
  144. package/dist/legacy/firebase/mySQL.d.mts +10 -0
  145. package/dist/legacy/firebase/mySQL.mjs +22 -0
  146. package/dist/legacy/firebase/mysqlConnector/create.cjs +119 -0
  147. package/dist/legacy/firebase/mysqlConnector/create.d.mts +36 -0
  148. package/dist/legacy/firebase/mysqlConnector/create.mjs +109 -0
  149. package/dist/legacy/firebase/mysqlConnector/index.cjs +23 -0
  150. package/dist/legacy/firebase/mysqlConnector/index.d.mts +11 -0
  151. package/dist/legacy/firebase/mysqlConnector/index.mjs +16 -0
  152. package/dist/legacy/firebase/mysqlConnector/nextPrev.cjs +75 -0
  153. package/dist/legacy/firebase/mysqlConnector/nextPrev.d.mts +31 -0
  154. package/dist/legacy/firebase/mysqlConnector/nextPrev.mjs +63 -0
  155. package/dist/legacy/firebase/mysqlConnector/pagination.cjs +91 -0
  156. package/dist/legacy/firebase/mysqlConnector/pagination.d.mts +33 -0
  157. package/dist/legacy/firebase/mysqlConnector/pagination.mjs +87 -0
  158. package/dist/legacy/firebase/mysqlConnector/sameUser.cjs +28 -0
  159. package/dist/legacy/firebase/mysqlConnector/sameUser.d.mts +12 -0
  160. package/dist/legacy/firebase/mysqlConnector/sameUser.mjs +23 -0
  161. package/dist/legacy/firebase/transactionDBAsync.cjs +33 -0
  162. package/dist/legacy/firebase/transactionDBAsync.d.mts +11 -0
  163. package/dist/legacy/firebase/transactionDBAsync.mjs +27 -0
  164. package/dist/legacy/get/countObj.cjs +24 -0
  165. package/dist/legacy/get/countObj.d.mts +11 -0
  166. package/dist/legacy/get/countObj.mjs +21 -0
  167. package/dist/legacy/get/decimalColor.cjs +60 -0
  168. package/dist/legacy/get/decimalColor.d.mts +12 -0
  169. package/dist/legacy/get/decimalColor.mjs +54 -0
  170. package/dist/legacy/get/objType.cjs +43 -0
  171. package/dist/legacy/get/objType.d.mts +19 -0
  172. package/dist/legacy/get/objType.mjs +40 -0
  173. package/dist/legacy/get/pagination.cjs +100 -0
  174. package/dist/legacy/get/pagination.d.mts +25 -0
  175. package/dist/legacy/get/pagination.mjs +91 -0
  176. package/dist/legacy/get/queryUrlByName.cjs +31 -0
  177. package/dist/legacy/get/queryUrlByName.d.mts +20 -0
  178. package/dist/legacy/get/queryUrlByName.mjs +28 -0
  179. package/dist/legacy/get/queryUrlJSON.cjs +54 -0
  180. package/dist/legacy/get/queryUrlJSON.d.mts +23 -0
  181. package/dist/legacy/get/queryUrlJSON.mjs +57 -0
  182. package/dist/legacy/get/super_string_filter.cjs +97 -0
  183. package/dist/legacy/get/super_string_filter.d.mts +25 -0
  184. package/dist/legacy/get/super_string_filter.mjs +83 -0
  185. package/dist/legacy/get/versionCheck.cjs +49 -0
  186. package/dist/legacy/get/versionCheck.d.mts +17 -0
  187. package/dist/legacy/get/versionCheck.mjs +38 -0
  188. package/dist/legacy/http/HTTP-1.0.cjs +151 -0
  189. package/dist/legacy/http/HTTP-1.0.d.mts +8 -0
  190. package/dist/legacy/http/HTTP-1.0.mjs +136 -0
  191. package/dist/legacy/http/auth.cjs +70 -0
  192. package/dist/legacy/http/auth.d.mts +41 -0
  193. package/dist/legacy/http/auth.mjs +63 -0
  194. package/dist/legacy/http/check_domain.cjs +84 -0
  195. package/dist/legacy/http/check_domain.d.mts +10 -0
  196. package/dist/legacy/http/check_domain.mjs +82 -0
  197. package/dist/legacy/http/csrfTokenAnalyze.cjs +46 -0
  198. package/dist/legacy/http/csrfTokenAnalyze.d.mts +21 -0
  199. package/dist/legacy/http/csrfTokenAnalyze.mjs +40 -0
  200. package/dist/legacy/http/domainValidator.cjs +98 -0
  201. package/dist/legacy/http/domainValidator.d.mts +30 -0
  202. package/dist/legacy/http/domainValidator.mjs +82 -0
  203. package/dist/legacy/http/errorsCallback.cjs +55 -0
  204. package/dist/legacy/http/errorsCallback.d.mts +29 -0
  205. package/dist/legacy/http/errorsCallback.mjs +48 -0
  206. package/dist/legacy/http/fetch/json.cjs +48 -0
  207. package/dist/legacy/http/fetch/json.d.mts +22 -0
  208. package/dist/legacy/http/fetch/json.mjs +41 -0
  209. package/dist/legacy/http/fetch/text.cjs +47 -0
  210. package/dist/legacy/http/fetch/text.d.mts +21 -0
  211. package/dist/legacy/http/fetch/text.mjs +40 -0
  212. package/dist/legacy/http/fileCache.cjs +79 -0
  213. package/dist/legacy/http/fileCache.d.mts +35 -0
  214. package/dist/legacy/http/fileCache.mjs +70 -0
  215. package/dist/legacy/http/getDomainURL.cjs +59 -0
  216. package/dist/legacy/http/getDomainURL.d.mts +18 -0
  217. package/dist/legacy/http/getDomainURL.mjs +54 -0
  218. package/dist/legacy/http/userIP.cjs +59 -0
  219. package/dist/legacy/http/userIP.d.mts +21 -0
  220. package/dist/legacy/http/userIP.mjs +48 -0
  221. package/dist/legacy/index.cjs +122 -0
  222. package/dist/legacy/index.d.mts +89 -0
  223. package/dist/legacy/index.mjs +92 -0
  224. package/dist/legacy/libs/arraySortPositions.cjs +30 -0
  225. package/dist/legacy/libs/arraySortPositions.d.mts +16 -0
  226. package/dist/legacy/libs/arraySortPositions.mjs +27 -0
  227. package/dist/legacy/libs/capitalize.cjs +21 -0
  228. package/dist/legacy/libs/capitalize.d.mts +13 -0
  229. package/dist/legacy/libs/capitalize.mjs +17 -0
  230. package/dist/legacy/libs/convertBytes.cjs +64 -0
  231. package/dist/legacy/libs/convertBytes.d.mts +17 -0
  232. package/dist/legacy/libs/convertBytes.mjs +55 -0
  233. package/dist/legacy/libs/custom_module_loader.cjs +82 -0
  234. package/dist/legacy/libs/custom_module_loader.d.mts +5 -0
  235. package/dist/legacy/libs/custom_module_loader.mjs +79 -0
  236. package/dist/legacy/libs/dice.cjs +35 -0
  237. package/dist/legacy/libs/dice.d.mts +5 -0
  238. package/dist/legacy/libs/dice.mjs +31 -0
  239. package/dist/legacy/libs/markdown.cjs +85 -0
  240. package/dist/legacy/libs/markdown.d.mts +75 -0
  241. package/dist/legacy/libs/markdown.mjs +78 -0
  242. package/dist/legacy/libs/percentage.cjs +22 -0
  243. package/dist/legacy/libs/percentage.d.mts +4 -0
  244. package/dist/legacy/libs/percentage.mjs +19 -0
  245. package/dist/legacy/libs/regex/getLetter.cjs +22 -0
  246. package/dist/legacy/libs/regex/getLetter.d.mts +12 -0
  247. package/dist/legacy/libs/regex/getLetter.mjs +19 -0
  248. package/dist/legacy/libs/replaceAsync.cjs +32 -0
  249. package/dist/legacy/libs/replaceAsync.d.mts +15 -0
  250. package/dist/legacy/libs/replaceAsync.mjs +25 -0
  251. package/dist/legacy/libs/rule3.cjs +58 -0
  252. package/dist/legacy/libs/rule3.d.mts +5 -0
  253. package/dist/legacy/libs/rule3.mjs +54 -0
  254. package/dist/legacy/libs/userLevel.cjs +134 -0
  255. package/dist/legacy/libs/userLevel.d.mts +69 -0
  256. package/dist/legacy/libs/userLevel.mjs +123 -0
  257. package/dist/legacy/momentjs/getAge.cjs +28 -0
  258. package/dist/legacy/momentjs/getAge.d.mts +8 -0
  259. package/dist/legacy/momentjs/getAge.mjs +22 -0
  260. package/dist/legacy/momentjs/index.cjs +9 -0
  261. package/dist/legacy/momentjs/index.d.mts +3 -0
  262. package/dist/legacy/momentjs/index.mjs +3 -0
  263. package/dist/legacy/momentjs/timeDuration.cjs +29 -0
  264. package/dist/legacy/momentjs/timeDuration.d.mts +9 -0
  265. package/dist/legacy/momentjs/timeDuration.mjs +23 -0
  266. package/dist/legacy/socket.io/antiFlood/index.cjs +9 -0
  267. package/dist/legacy/socket.io/antiFlood/index.d.mts +3 -0
  268. package/dist/legacy/socket.io/antiFlood/index.mjs +3 -0
  269. package/dist/legacy/socket.io/antiFlood/install.cjs +32 -0
  270. package/dist/legacy/socket.io/antiFlood/install.d.mts +14 -0
  271. package/dist/legacy/socket.io/antiFlood/install.mjs +27 -0
  272. package/dist/legacy/socket.io/antiFlood/verify.cjs +87 -0
  273. package/dist/legacy/socket.io/antiFlood/verify.d.mts +15 -0
  274. package/dist/legacy/socket.io/antiFlood/verify.mjs +73 -0
  275. package/dist/legacy/socket.io/cookie-session.cjs +25 -0
  276. package/dist/legacy/socket.io/cookie-session.d.mts +9 -0
  277. package/dist/legacy/socket.io/cookie-session.mjs +20 -0
  278. package/dist/legacy/socket.io/discord.cjs +61 -0
  279. package/dist/legacy/socket.io/discord.d.mts +10 -0
  280. package/dist/legacy/socket.io/discord.mjs +52 -0
  281. package/dist/legacy/socket.io/index.cjs +13 -0
  282. package/dist/legacy/socket.io/index.d.mts +9 -0
  283. package/dist/legacy/socket.io/index.mjs +9 -0
  284. package/dist/v1/basics/array.cjs +31 -0
  285. package/dist/v1/basics/array.d.mts +10 -0
  286. package/dist/v1/basics/array.mjs +22 -0
  287. package/dist/v1/basics/clock.cjs +187 -0
  288. package/dist/v1/basics/clock.d.mts +37 -0
  289. package/dist/v1/basics/clock.mjs +152 -0
  290. package/dist/v1/basics/objFilter.cjs +55 -0
  291. package/dist/v1/basics/objFilter.d.mts +27 -0
  292. package/dist/v1/basics/objFilter.mjs +52 -0
  293. package/dist/v1/basics/simpleMath.cjs +88 -0
  294. package/dist/v1/basics/simpleMath.d.mts +54 -0
  295. package/dist/v1/basics/simpleMath.mjs +75 -0
  296. package/dist/v1/basics/text.cjs +34 -0
  297. package/dist/v1/basics/text.d.mts +20 -0
  298. package/dist/v1/basics/text.mjs +25 -0
  299. package/dist/v1/index.cjs +26 -0
  300. package/dist/v1/index.d.mts +15 -0
  301. package/dist/v1/index.mjs +8 -0
  302. package/package.json +72 -0
@@ -0,0 +1,69 @@
1
+ export default TinyLevelUp;
2
+ /**
3
+ * Class to manage user level-up logic based on experience points.
4
+ */
5
+ declare class TinyLevelUp {
6
+ /**
7
+ * Constructor
8
+ * @param {number} giveExp - Base experience value for random experience generation.
9
+ * @param {number} expLevel - Base experience needed to level up (per level).
10
+ */
11
+ constructor(giveExp: number, expLevel: number);
12
+ giveExp: number;
13
+ expLevel: number;
14
+ /**
15
+ * Validates and adjusts the user's level based on their current experience.
16
+ * @param {Object} user - The user object containing experience and level properties.
17
+ * @returns {Object} The updated user object.
18
+ */
19
+ expValidator(user: Object): Object;
20
+ /**
21
+ * Calculates the total experience based on the user's level.
22
+ * @param {Object} user - The user object containing experience and level properties.
23
+ * @returns {number} The total experience of the user.
24
+ */
25
+ getTotalExp(user: Object): number;
26
+ /**
27
+ * Generates random experience points based on the configured multiplier.
28
+ * @param {number} multi - A multiplier for the generated experience.
29
+ * @returns {number} The generated experience points.
30
+ */
31
+ expGenerator(multi?: number): number;
32
+ /**
33
+ * Gets the experience points required to reach the next level.
34
+ * @param {Object} user - The user object containing the level.
35
+ * @returns {number} The experience required for the next level.
36
+ */
37
+ progress(user: Object): number;
38
+ /**
39
+ * Gets the experience points required to reach the next level.
40
+ * @param {Object} user - The user object containing the level.
41
+ * @returns {number} The experience required for the next level.
42
+ */
43
+ getProgress(user: Object): number;
44
+ /**
45
+ * Sets the experience value for the user, adjusting their level if necessary.
46
+ * @param {Object} user - The user object.
47
+ * @param {number} value - The new experience value to set.
48
+ * @returns {Object} The updated user object.
49
+ */
50
+ set(user: Object, value: number): Object;
51
+ /**
52
+ * Adds experience to the user, adjusting their level if necessary.
53
+ * @param {Object} user - The user object.
54
+ * @param {number} extraExp - Additional experience to be added.
55
+ * @param {string} type - Type of addition ('add' or 'extra').
56
+ * @param {number} multi - Multiplier for experience generation.
57
+ * @returns {Object} The updated user object.
58
+ */
59
+ give(user: Object, extraExp?: number, type?: string, multi?: number): Object;
60
+ /**
61
+ * Removes experience from the user, adjusting their level if necessary.
62
+ * @param {Object} user - The user object.
63
+ * @param {number} extraExp - Experience to remove.
64
+ * @param {string} type - Type of removal ('add' or 'extra').
65
+ * @param {number} multi - Multiplier for experience generation.
66
+ * @returns {Object} The updated user object.
67
+ */
68
+ remove(user: Object, extraExp?: number, type?: string, multi?: number): Object;
69
+ }
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Class to manage user level-up logic based on experience points.
3
+ */
4
+ class TinyLevelUp {
5
+ /**
6
+ * Constructor
7
+ * @param {number} giveExp - Base experience value for random experience generation.
8
+ * @param {number} expLevel - Base experience needed to level up (per level).
9
+ */
10
+ constructor(giveExp, expLevel) {
11
+ this.giveExp = giveExp;
12
+ this.expLevel = expLevel;
13
+ }
14
+ /**
15
+ * Validates and adjusts the user's level based on their current experience.
16
+ * @param {Object} user - The user object containing experience and level properties.
17
+ * @returns {Object} The updated user object.
18
+ */
19
+ expValidator(user) {
20
+ let extraValue = 0;
21
+ const nextLevelExp = this.expLevel * user.level;
22
+ // Level Up
23
+ if (user.exp >= nextLevelExp) {
24
+ user.level++;
25
+ extraValue = user.exp - nextLevelExp;
26
+ user.exp = 0;
27
+ if (extraValue > 0)
28
+ return this.give(user, extraValue, 'extra');
29
+ }
30
+ // Level Down
31
+ if (user.exp < 1 && user.level > 1) {
32
+ user.level--;
33
+ extraValue = Math.abs(user.exp);
34
+ user.exp = this.expLevel * user.level;
35
+ if (extraValue > 0)
36
+ return this.remove(user, extraValue, 'extra');
37
+ }
38
+ return user;
39
+ }
40
+ /**
41
+ * Calculates the total experience based on the user's level.
42
+ * @param {Object} user - The user object containing experience and level properties.
43
+ * @returns {number} The total experience of the user.
44
+ */
45
+ getTotalExp(user) {
46
+ let totalExp = 0;
47
+ for (let p = 1; p <= user.level; p++)
48
+ totalExp += this.expLevel * p;
49
+ totalExp += user.exp;
50
+ return totalExp;
51
+ }
52
+ /**
53
+ * Generates random experience points based on the configured multiplier.
54
+ * @param {number} multi - A multiplier for the generated experience.
55
+ * @returns {number} The generated experience points.
56
+ */
57
+ expGenerator(multi = 1) {
58
+ return Math.floor(Math.random() * this.giveExp) + 1 * multi;
59
+ }
60
+ /**
61
+ * Gets the experience points required to reach the next level.
62
+ * @param {Object} user - The user object containing the level.
63
+ * @returns {number} The experience required for the next level.
64
+ */
65
+ progress(user) {
66
+ return this.expLevel * user.level;
67
+ }
68
+ /**
69
+ * Gets the experience points required to reach the next level.
70
+ * @param {Object} user - The user object containing the level.
71
+ * @returns {number} The experience required for the next level.
72
+ */
73
+ getProgress(user) {
74
+ return this.expLevel * user.level;
75
+ }
76
+ /**
77
+ * Sets the experience value for the user, adjusting their level if necessary.
78
+ * @param {Object} user - The user object.
79
+ * @param {number} value - The new experience value to set.
80
+ * @returns {Object} The updated user object.
81
+ */
82
+ set(user, value) {
83
+ user.exp = value;
84
+ this.expValidator(user);
85
+ user.totalExp = this.getTotalExp(user);
86
+ return user;
87
+ }
88
+ /**
89
+ * Adds experience to the user, adjusting their level if necessary.
90
+ * @param {Object} user - The user object.
91
+ * @param {number} extraExp - Additional experience to be added.
92
+ * @param {string} type - Type of addition ('add' or 'extra').
93
+ * @param {number} multi - Multiplier for experience generation.
94
+ * @returns {Object} The updated user object.
95
+ */
96
+ give(user, extraExp = 0, type = 'add', multi = 1) {
97
+ if (type === 'add')
98
+ user.exp += this.expGenerator(multi) + extraExp;
99
+ else if (type === 'extra')
100
+ user.exp += extraExp;
101
+ this.expValidator(user);
102
+ user.totalExp = this.getTotalExp(user);
103
+ return user;
104
+ }
105
+ /**
106
+ * Removes experience from the user, adjusting their level if necessary.
107
+ * @param {Object} user - The user object.
108
+ * @param {number} extraExp - Experience to remove.
109
+ * @param {string} type - Type of removal ('add' or 'extra').
110
+ * @param {number} multi - Multiplier for experience generation.
111
+ * @returns {Object} The updated user object.
112
+ */
113
+ remove(user, extraExp = 0, type = 'add', multi = 1) {
114
+ if (type === 'add')
115
+ user.exp -= this.expGenerator(multi) + extraExp;
116
+ else if (type === 'extra')
117
+ user.exp -= extraExp;
118
+ this.expValidator(user);
119
+ user.totalExp = this.getTotalExp(user);
120
+ return user;
121
+ }
122
+ }
123
+ export default TinyLevelUp;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var moment = require('moment');
4
+
5
+ /**
6
+ * Calculates the age based on the given date.
7
+ *
8
+ * @param {number|string} timeData - The birth date in a format accepted by moment.js (e.g., Unix timestamp, ISO 8601 string, etc.).
9
+ * @param {moment.Moment|null} [now=null] - The moment object representing the current date. Defaults to the current date and time if not provided.
10
+ * @returns {number|null} The age in years, or null if `timeData` is not provided.
11
+ */
12
+ function getAge(timeData = 0, now = null) {
13
+ // Number
14
+ if (typeof timeData !== 'undefined') {
15
+ if (!now) now = moment();
16
+
17
+ const birthday = moment(timeData);
18
+ const age = Math.abs(birthday.diff(now, 'years'));
19
+ return age;
20
+ }
21
+
22
+ // Nope
23
+ else {
24
+ return null;
25
+ }
26
+ }
27
+
28
+ module.exports = getAge;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Calculates the age based on the given date.
3
+ *
4
+ * @param {number|string} timeData - The birth date in a format accepted by moment.js (e.g., Unix timestamp, ISO 8601 string, etc.).
5
+ * @param {moment.Moment|null} [now=null] - The moment object representing the current date. Defaults to the current date and time if not provided.
6
+ * @returns {number|null} The age in years, or null if `timeData` is not provided.
7
+ */
8
+ export default function getAge(timeData?: number | string, now?: moment.Moment | null): number | null;
@@ -0,0 +1,22 @@
1
+ import moment from 'moment';
2
+ /**
3
+ * Calculates the age based on the given date.
4
+ *
5
+ * @param {number|string} timeData - The birth date in a format accepted by moment.js (e.g., Unix timestamp, ISO 8601 string, etc.).
6
+ * @param {moment.Moment|null} [now=null] - The moment object representing the current date. Defaults to the current date and time if not provided.
7
+ * @returns {number|null} The age in years, or null if `timeData` is not provided.
8
+ */
9
+ export default function getAge(timeData = 0, now = null) {
10
+ // Number
11
+ if (typeof timeData !== 'undefined') {
12
+ if (!now)
13
+ now = moment();
14
+ const birthday = moment(timeData);
15
+ const age = Math.abs(birthday.diff(now, 'years'));
16
+ return age;
17
+ }
18
+ // Nope
19
+ else {
20
+ return null;
21
+ }
22
+ }
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var timeDuration = require('./timeDuration.cjs');
4
+ var getAge = require('./getAge.cjs');
5
+
6
+
7
+
8
+ exports.timeDuration = timeDuration;
9
+ exports.getAge = getAge;
@@ -0,0 +1,3 @@
1
+ import timeDuration from './timeDuration.mjs';
2
+ import getAge from './getAge.mjs';
3
+ export { timeDuration, getAge };
@@ -0,0 +1,3 @@
1
+ import timeDuration from './timeDuration.mjs';
2
+ import getAge from './getAge.mjs';
3
+ export { timeDuration, getAge };
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var moment = require('moment');
4
+
5
+ /**
6
+ * Calculates the time duration between the current time and a given time offset.
7
+ *
8
+ * @param {number} timeData - The time offset in milliseconds. Can be positive or negative.
9
+ * @param {string} [durationType='asSeconds'] - The type of duration to return. Default is `'asSeconds'`. Can be any valid moment.js duration type (e.g., `'asMilliseconds'`, `'asMinutes'`, `'asHours'`, etc.).
10
+ * @param {moment.Moment|null} [now=null] - The moment object representing the current date and time. Defaults to the current date and time if not provided.
11
+ * @returns {number|null} The calculated duration in the specified unit (default: seconds), or `null` if `timeData` is not provided.
12
+ */
13
+ function timeDuration(timeData = 0, durationType = 'asSeconds', now = null) {
14
+ // Number
15
+ if (typeof timeData !== 'undefined') {
16
+ if (!now) now = moment();
17
+
18
+ var duration = moment.duration(now.clone().add(timeData, 'milliseconds').diff(now.clone()));
19
+ const result = duration[durationType]();
20
+
21
+ // Complete
22
+ return result;
23
+ }
24
+
25
+ // Nope
26
+ else return null;
27
+ }
28
+
29
+ module.exports = timeDuration;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Calculates the time duration between the current time and a given time offset.
3
+ *
4
+ * @param {number} timeData - The time offset in milliseconds. Can be positive or negative.
5
+ * @param {string} [durationType='asSeconds'] - The type of duration to return. Default is `'asSeconds'`. Can be any valid moment.js duration type (e.g., `'asMilliseconds'`, `'asMinutes'`, `'asHours'`, etc.).
6
+ * @param {moment.Moment|null} [now=null] - The moment object representing the current date and time. Defaults to the current date and time if not provided.
7
+ * @returns {number|null} The calculated duration in the specified unit (default: seconds), or `null` if `timeData` is not provided.
8
+ */
9
+ export default function timeDuration(timeData?: number, durationType?: string, now?: moment.Moment | null): number | null;
@@ -0,0 +1,23 @@
1
+ import moment from 'moment';
2
+ /**
3
+ * Calculates the time duration between the current time and a given time offset.
4
+ *
5
+ * @param {number} timeData - The time offset in milliseconds. Can be positive or negative.
6
+ * @param {string} [durationType='asSeconds'] - The type of duration to return. Default is `'asSeconds'`. Can be any valid moment.js duration type (e.g., `'asMilliseconds'`, `'asMinutes'`, `'asHours'`, etc.).
7
+ * @param {moment.Moment|null} [now=null] - The moment object representing the current date and time. Defaults to the current date and time if not provided.
8
+ * @returns {number|null} The calculated duration in the specified unit (default: seconds), or `null` if `timeData` is not provided.
9
+ */
10
+ export default function timeDuration(timeData = 0, durationType = 'asSeconds', now = null) {
11
+ // Number
12
+ if (typeof timeData !== 'undefined') {
13
+ if (!now)
14
+ now = moment();
15
+ var duration = moment.duration(now.clone().add(timeData, 'milliseconds').diff(now.clone()));
16
+ const result = duration[durationType]();
17
+ // Complete
18
+ return result;
19
+ }
20
+ // Nope
21
+ else
22
+ return null;
23
+ }
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var install = require('./install.cjs');
4
+ var verify = require('./verify.cjs');
5
+
6
+
7
+
8
+ exports.install = install;
9
+ exports.verify = verify;
@@ -0,0 +1,3 @@
1
+ import verify from './verify.mjs';
2
+ import install from './install.mjs';
3
+ export { verify, install };
@@ -0,0 +1,3 @@
1
+ import install from './install.mjs';
2
+ import verify from './verify.mjs';
3
+ export { verify, install };
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var userIP = require('../../http/userIP.cjs');
4
+
5
+ /**
6
+ * Installs the authorization middleware for socket connections.
7
+ *
8
+ * This middleware checks the user's IP address and allows or denies the socket connection based on whether
9
+ * the IP is in the block list or not.
10
+ *
11
+ * @param {Object} io - The Socket.IO server instance.
12
+ * @param {Object} ioCache - The cache object containing blocked IPs.
13
+ * @param {Array} ioCache.blocklick - The list of blocked IP addresses.
14
+ * @returns {void} This function does not return a value, it just sets the authorization logic for socket connections.
15
+ */
16
+ function install(io, ioCache) {
17
+ io.set('authorization', function (socket, callback) {
18
+ // Get User IP
19
+ const ip = userIP(socket.handshake);
20
+
21
+ // Check if the IP is blocked
22
+ if (!Array.isArray(ioCache.blocklick) || ioCache.blocklick.indexOf(ip) < 0) {
23
+ // Allow the socket to connect
24
+ callback(null, true);
25
+ } else {
26
+ // Prevent the socket handshake with an error
27
+ callback('socket.io is not accepting connections from this page', false);
28
+ }
29
+ });
30
+ }
31
+
32
+ module.exports = install;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Installs the authorization middleware for socket connections.
3
+ *
4
+ * This middleware checks the user's IP address and allows or denies the socket connection based on whether
5
+ * the IP is in the block list or not.
6
+ *
7
+ * @param {Object} io - The Socket.IO server instance.
8
+ * @param {Object} ioCache - The cache object containing blocked IPs.
9
+ * @param {Array} ioCache.blocklick - The list of blocked IP addresses.
10
+ * @returns {void} This function does not return a value, it just sets the authorization logic for socket connections.
11
+ */
12
+ export default function install(io: Object, ioCache: {
13
+ blocklick: any[];
14
+ }): void;
@@ -0,0 +1,27 @@
1
+ import userIp from '../../http/userIP.mjs';
2
+ /**
3
+ * Installs the authorization middleware for socket connections.
4
+ *
5
+ * This middleware checks the user's IP address and allows or denies the socket connection based on whether
6
+ * the IP is in the block list or not.
7
+ *
8
+ * @param {Object} io - The Socket.IO server instance.
9
+ * @param {Object} ioCache - The cache object containing blocked IPs.
10
+ * @param {Array} ioCache.blocklick - The list of blocked IP addresses.
11
+ * @returns {void} This function does not return a value, it just sets the authorization logic for socket connections.
12
+ */
13
+ export default function install(io, ioCache) {
14
+ io.set('authorization', function (socket, callback) {
15
+ // Get User IP
16
+ const ip = userIp(socket.handshake);
17
+ // Check if the IP is blocked
18
+ if (!Array.isArray(ioCache.blocklick) || ioCache.blocklick.indexOf(ip) < 0) {
19
+ // Allow the socket to connect
20
+ callback(null, true);
21
+ }
22
+ else {
23
+ // Prevent the socket handshake with an error
24
+ callback('socket.io is not accepting connections from this page', false);
25
+ }
26
+ });
27
+ }
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+
3
+ var userIP = require('../../http/userIP.cjs');
4
+
5
+ // Panel
6
+ const floodPanel = {};
7
+
8
+ /**
9
+ * Periodically decrements the timeout for each IP in the flood panel and removes expired entries.
10
+ * This is set to run every second.
11
+ */
12
+ setInterval(function () {
13
+ // IP Cache
14
+ for (const item in floodPanel) {
15
+ floodPanel[item].timeout--;
16
+ if (floodPanel[item].timeout < 0) delete floodPanel[item];
17
+ }
18
+ }, 1000);
19
+
20
+ /**
21
+ * Verifies the IP address of a user socket for flooding attempts.
22
+ *
23
+ * This function checks how many times an IP has attempted to interact with the socket.
24
+ * If the attempts exceed a threshold, the IP is temporarily banned and disconnected.
25
+ *
26
+ * @param {Object} socket - The socket object representing the connection.
27
+ * @param {Object} ioCache - The cache object that holds the blocklist and flood panel data.
28
+ * @param {Array} ioCache.blocklick - The list of blocked IPs.
29
+ * @param {Object} floodPanel - The object tracking flooding attempts and timeouts for each IP.
30
+ * @returns {void} This function does not return anything, it modifies the floodPanel and blocklist.
31
+ */
32
+ function verify(socket, ioCache) {
33
+ // Get User IP
34
+ const ip = userIP(socket.handshake);
35
+
36
+ /**
37
+ * Verifies the IP for flooding attempts and manages timeout and blocklist.
38
+ */
39
+ const verifyIP = function () {
40
+ // Create Item if it doesn't exist
41
+ if (!floodPanel[ip]) {
42
+ floodPanel[ip] = {
43
+ tries: 0,
44
+ timeout: 2,
45
+ };
46
+
47
+ // Remove Ban if any
48
+ const indexBan = ioCache.blocklick.indexOf(ip);
49
+ if (indexBan > -1) ioCache.blocklick.splice(indexBan, 1);
50
+ }
51
+
52
+ // Add Try for the current IP
53
+ floodPanel[ip].tries++;
54
+
55
+ // If tries exceed limit, block the IP
56
+ if (floodPanel[ip].tries > 1000) {
57
+ floodPanel[ip].timeout = 86400; // Set timeout to 24 hours
58
+ ioCache.blocklick.push(ip); // Add to blocklist
59
+
60
+ socket.disconnect(); // Disconnect the socket
61
+ }
62
+ };
63
+
64
+ // Create Blocklist if it doesn't exist
65
+ if (!Array.isArray(ioCache.blocklick)) {
66
+ ioCache.blocklick = [];
67
+ }
68
+
69
+ // Catch-all Event Listener
70
+ var onevent = socket.onevent;
71
+ socket.onevent = function (packet) {
72
+ var args = packet.data || [];
73
+ onevent.call(this, packet); // original call
74
+ packet.data = ['*'].concat(args);
75
+ onevent.call(this, packet); // additional call to catch-all
76
+ };
77
+
78
+ // Verify Action on All Events
79
+ socket.on('*', function () {
80
+ return verifyIP();
81
+ });
82
+
83
+ // First Verify IP
84
+ return verifyIP();
85
+ }
86
+
87
+ module.exports = verify;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Verifies the IP address of a user socket for flooding attempts.
3
+ *
4
+ * This function checks how many times an IP has attempted to interact with the socket.
5
+ * If the attempts exceed a threshold, the IP is temporarily banned and disconnected.
6
+ *
7
+ * @param {Object} socket - The socket object representing the connection.
8
+ * @param {Object} ioCache - The cache object that holds the blocklist and flood panel data.
9
+ * @param {Array} ioCache.blocklick - The list of blocked IPs.
10
+ * @param {Object} floodPanel - The object tracking flooding attempts and timeouts for each IP.
11
+ * @returns {void} This function does not return anything, it modifies the floodPanel and blocklist.
12
+ */
13
+ export default function verify(socket: Object, ioCache: {
14
+ blocklick: any[];
15
+ }): void;
@@ -0,0 +1,73 @@
1
+ import userIp from '../../http/userIP.mjs';
2
+ // Panel
3
+ const floodPanel = {};
4
+ /**
5
+ * Periodically decrements the timeout for each IP in the flood panel and removes expired entries.
6
+ * This is set to run every second.
7
+ */
8
+ setInterval(function () {
9
+ // IP Cache
10
+ for (const item in floodPanel) {
11
+ floodPanel[item].timeout--;
12
+ if (floodPanel[item].timeout < 0)
13
+ delete floodPanel[item];
14
+ }
15
+ }, 1000);
16
+ /**
17
+ * Verifies the IP address of a user socket for flooding attempts.
18
+ *
19
+ * This function checks how many times an IP has attempted to interact with the socket.
20
+ * If the attempts exceed a threshold, the IP is temporarily banned and disconnected.
21
+ *
22
+ * @param {Object} socket - The socket object representing the connection.
23
+ * @param {Object} ioCache - The cache object that holds the blocklist and flood panel data.
24
+ * @param {Array} ioCache.blocklick - The list of blocked IPs.
25
+ * @param {Object} floodPanel - The object tracking flooding attempts and timeouts for each IP.
26
+ * @returns {void} This function does not return anything, it modifies the floodPanel and blocklist.
27
+ */
28
+ export default function verify(socket, ioCache) {
29
+ // Get User IP
30
+ const ip = userIp(socket.handshake);
31
+ /**
32
+ * Verifies the IP for flooding attempts and manages timeout and blocklist.
33
+ */
34
+ const verifyIP = function () {
35
+ // Create Item if it doesn't exist
36
+ if (!floodPanel[ip]) {
37
+ floodPanel[ip] = {
38
+ tries: 0,
39
+ timeout: 2,
40
+ };
41
+ // Remove Ban if any
42
+ const indexBan = ioCache.blocklick.indexOf(ip);
43
+ if (indexBan > -1)
44
+ ioCache.blocklick.splice(indexBan, 1);
45
+ }
46
+ // Add Try for the current IP
47
+ floodPanel[ip].tries++;
48
+ // If tries exceed limit, block the IP
49
+ if (floodPanel[ip].tries > 1000) {
50
+ floodPanel[ip].timeout = 86400; // Set timeout to 24 hours
51
+ ioCache.blocklick.push(ip); // Add to blocklist
52
+ socket.disconnect(); // Disconnect the socket
53
+ }
54
+ };
55
+ // Create Blocklist if it doesn't exist
56
+ if (!Array.isArray(ioCache.blocklick)) {
57
+ ioCache.blocklick = [];
58
+ }
59
+ // Catch-all Event Listener
60
+ var onevent = socket.onevent;
61
+ socket.onevent = function (packet) {
62
+ var args = packet.data || [];
63
+ onevent.call(this, packet); // original call
64
+ packet.data = ['*'].concat(args);
65
+ onevent.call(this, packet); // additional call to catch-all
66
+ };
67
+ // Verify Action on All Events
68
+ socket.on('*', function () {
69
+ return verifyIP();
70
+ });
71
+ // First Verify IP
72
+ return verifyIP();
73
+ }
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Handles the cookie session for a socket connection by simulating an Express request and response.
5
+ * This function uses the provided session module to manage session data for the socket connection.
6
+ *
7
+ * @param {Object} socket - The socket object representing the connection.
8
+ * @param {Function} sessionModule - The session module function, typically used with Express, that handles session logic.
9
+ * @returns {Promise<Object>} A promise that resolves with the session object once the session is processed.
10
+ */
11
+ function cookieSession(socket, sessionModule) {
12
+ return new Promise((resolve) => {
13
+ // Express Simulator
14
+ let req = {
15
+ connection: { encrypted: false },
16
+ headers: { cookie: socket.request.headers.cookie },
17
+ };
18
+ let res = { getHeader: () => {}, setHeader: () => {} };
19
+
20
+ // Session
21
+ return sessionModule(req, res, async () => resolve(req.session));
22
+ });
23
+ }
24
+
25
+ module.exports = cookieSession;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Handles the cookie session for a socket connection by simulating an Express request and response.
3
+ * This function uses the provided session module to manage session data for the socket connection.
4
+ *
5
+ * @param {Object} socket - The socket object representing the connection.
6
+ * @param {Function} sessionModule - The session module function, typically used with Express, that handles session logic.
7
+ * @returns {Promise<Object>} A promise that resolves with the session object once the session is processed.
8
+ */
9
+ export default function cookieSession(socket: Object, sessionModule: Function): Promise<Object>;