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,85 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * A lightweight Markdown parser that can convert to HTML or BBCode.
5
+ * @namespace markdownManager
6
+ */
7
+ const markdownManager = {
8
+ /**
9
+ * Conversion rules for Markdown elements.
10
+ * Each rule includes a regex pattern, an HTML output, and a BBCode equivalent.
11
+ */
12
+ values: {
13
+ h3: {
14
+ regex: /^### (.*$)/gim,
15
+ result: '<h3>$1</h3>',
16
+ bbcode: '[h3]$1[/h3]',
17
+ },
18
+ h2: {
19
+ regex: /^## (.*$)/gim,
20
+ result: '<h2>$1</h2>',
21
+ bbcode: '[h2]$1[/h2]',
22
+ },
23
+ h1: {
24
+ regex: /^# (.*$)/gim,
25
+ result: '<h1>$1</h1>',
26
+ bbcode: '[h1]$1[/h1]',
27
+ },
28
+ blockquote: {
29
+ regex: /^\> (.*$)/gim,
30
+ result: '<blockquote>$1</blockquote>',
31
+ bbcode: '[blockquote]$1[/blockquote]',
32
+ },
33
+ strong: {
34
+ regex: /\*\*(.*)\*\*/gim,
35
+ result: '<strong>$1</strong>',
36
+ bbcode: '[b]$1[/b]',
37
+ },
38
+ italic: {
39
+ regex: /\*(.*)\*/gim,
40
+ result: '<i>$1</i>',
41
+ bbcode: '[i]$1[/i]',
42
+ },
43
+ image: {
44
+ regex: /!\[(.*?)\]\((.*?)\)/gim,
45
+ result: "<img alt='$1' src='$2' />",
46
+ bbcode: '[img="$2"]',
47
+ },
48
+ url: {
49
+ regex: /\[(.*?)\]\((.*?)\)/gim,
50
+ result: "<a href='$2'>$1</a>",
51
+ bbcode: '[href="$2"]$1[/i]',
52
+ },
53
+ br: {
54
+ regex: /\n$/gim,
55
+ result: '<br />',
56
+ bbcode: '\n',
57
+ },
58
+ },
59
+
60
+ /**
61
+ * Parses Markdown content into HTML or BBCode.
62
+ * @param {string} markdownText - The input Markdown string.
63
+ * @param {'result' | 'bbcode'} [type='result'] - The desired output type.
64
+ * @returns {string} The converted string.
65
+ *
66
+ * @example
67
+ * markdownManager.parseMarkdown("**bold**"); // <strong>bold</strong>
68
+ * markdownManager.parseMarkdown("**bold**", "bbcode"); // [b]bold[/b]
69
+ */
70
+ parseMarkdown: function (markdownText, type = 'result') {
71
+ let htmlText = markdownText;
72
+
73
+ for (const item in markdownManager.values) {
74
+ const rule = markdownManager.values[item];
75
+ const replacer = rule[type];
76
+
77
+ if (typeof replacer === 'string' || typeof replacer === 'function')
78
+ htmlText = htmlText.replace(rule.regex, replacer);
79
+ }
80
+
81
+ return htmlText.trim();
82
+ },
83
+ };
84
+
85
+ module.exports = markdownManager;
@@ -0,0 +1,75 @@
1
+ export default markdownManager;
2
+ declare namespace markdownManager {
3
+ namespace values {
4
+ namespace h3 {
5
+ let regex: RegExp;
6
+ let result: string;
7
+ let bbcode: string;
8
+ }
9
+ namespace h2 {
10
+ let regex_1: RegExp;
11
+ export { regex_1 as regex };
12
+ let result_1: string;
13
+ export { result_1 as result };
14
+ let bbcode_1: string;
15
+ export { bbcode_1 as bbcode };
16
+ }
17
+ namespace h1 {
18
+ let regex_2: RegExp;
19
+ export { regex_2 as regex };
20
+ let result_2: string;
21
+ export { result_2 as result };
22
+ let bbcode_2: string;
23
+ export { bbcode_2 as bbcode };
24
+ }
25
+ namespace blockquote {
26
+ let regex_3: RegExp;
27
+ export { regex_3 as regex };
28
+ let result_3: string;
29
+ export { result_3 as result };
30
+ let bbcode_3: string;
31
+ export { bbcode_3 as bbcode };
32
+ }
33
+ namespace strong {
34
+ let regex_4: RegExp;
35
+ export { regex_4 as regex };
36
+ let result_4: string;
37
+ export { result_4 as result };
38
+ let bbcode_4: string;
39
+ export { bbcode_4 as bbcode };
40
+ }
41
+ namespace italic {
42
+ let regex_5: RegExp;
43
+ export { regex_5 as regex };
44
+ let result_5: string;
45
+ export { result_5 as result };
46
+ let bbcode_5: string;
47
+ export { bbcode_5 as bbcode };
48
+ }
49
+ namespace image {
50
+ let regex_6: RegExp;
51
+ export { regex_6 as regex };
52
+ let result_6: string;
53
+ export { result_6 as result };
54
+ let bbcode_6: string;
55
+ export { bbcode_6 as bbcode };
56
+ }
57
+ namespace url {
58
+ let regex_7: RegExp;
59
+ export { regex_7 as regex };
60
+ let result_7: string;
61
+ export { result_7 as result };
62
+ let bbcode_7: string;
63
+ export { bbcode_7 as bbcode };
64
+ }
65
+ namespace br {
66
+ let regex_8: RegExp;
67
+ export { regex_8 as regex };
68
+ let result_8: string;
69
+ export { result_8 as result };
70
+ let bbcode_8: string;
71
+ export { bbcode_8 as bbcode };
72
+ }
73
+ }
74
+ function parseMarkdown(markdownText: string, type?: "result" | "bbcode"): string;
75
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * A lightweight Markdown parser that can convert to HTML or BBCode.
3
+ * @namespace markdownManager
4
+ */
5
+ const markdownManager = {
6
+ /**
7
+ * Conversion rules for Markdown elements.
8
+ * Each rule includes a regex pattern, an HTML output, and a BBCode equivalent.
9
+ */
10
+ values: {
11
+ h3: {
12
+ regex: /^### (.*$)/gim,
13
+ result: '<h3>$1</h3>',
14
+ bbcode: '[h3]$1[/h3]',
15
+ },
16
+ h2: {
17
+ regex: /^## (.*$)/gim,
18
+ result: '<h2>$1</h2>',
19
+ bbcode: '[h2]$1[/h2]',
20
+ },
21
+ h1: {
22
+ regex: /^# (.*$)/gim,
23
+ result: '<h1>$1</h1>',
24
+ bbcode: '[h1]$1[/h1]',
25
+ },
26
+ blockquote: {
27
+ regex: /^\> (.*$)/gim,
28
+ result: '<blockquote>$1</blockquote>',
29
+ bbcode: '[blockquote]$1[/blockquote]',
30
+ },
31
+ strong: {
32
+ regex: /\*\*(.*)\*\*/gim,
33
+ result: '<strong>$1</strong>',
34
+ bbcode: '[b]$1[/b]',
35
+ },
36
+ italic: {
37
+ regex: /\*(.*)\*/gim,
38
+ result: '<i>$1</i>',
39
+ bbcode: '[i]$1[/i]',
40
+ },
41
+ image: {
42
+ regex: /!\[(.*?)\]\((.*?)\)/gim,
43
+ result: "<img alt='$1' src='$2' />",
44
+ bbcode: '[img="$2"]',
45
+ },
46
+ url: {
47
+ regex: /\[(.*?)\]\((.*?)\)/gim,
48
+ result: "<a href='$2'>$1</a>",
49
+ bbcode: '[href="$2"]$1[/i]',
50
+ },
51
+ br: {
52
+ regex: /\n$/gim,
53
+ result: '<br />',
54
+ bbcode: '\n',
55
+ },
56
+ },
57
+ /**
58
+ * Parses Markdown content into HTML or BBCode.
59
+ * @param {string} markdownText - The input Markdown string.
60
+ * @param {'result' | 'bbcode'} [type='result'] - The desired output type.
61
+ * @returns {string} The converted string.
62
+ *
63
+ * @example
64
+ * markdownManager.parseMarkdown("**bold**"); // <strong>bold</strong>
65
+ * markdownManager.parseMarkdown("**bold**", "bbcode"); // [b]bold[/b]
66
+ */
67
+ parseMarkdown: function (markdownText, type = 'result') {
68
+ let htmlText = markdownText;
69
+ for (const item in markdownManager.values) {
70
+ const rule = markdownManager.values[item];
71
+ const replacer = rule[type];
72
+ if (typeof replacer === 'string' || typeof replacer === 'function')
73
+ htmlText = htmlText.replace(rule.regex, replacer);
74
+ }
75
+ return htmlText.trim();
76
+ },
77
+ };
78
+ export default markdownManager;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Simple utility to calculate percentage values.
5
+ * @namespace percentageBase
6
+ */
7
+ const percentageBase = {
8
+ /**
9
+ * Calculates a percentage of a given base value.
10
+ * @param {number} preco - The base value.
11
+ * @param {number} porcentagem - The percentage to apply.
12
+ * @returns {number} The result of the percentage calculation.
13
+ *
14
+ * @example
15
+ * percentageBase.run(200, 15); // 30
16
+ */
17
+ run: function (preco, porcentagem) {
18
+ return preco * (porcentagem / 100);
19
+ },
20
+ };
21
+
22
+ module.exports = percentageBase;
@@ -0,0 +1,4 @@
1
+ export default percentageBase;
2
+ declare namespace percentageBase {
3
+ function run(preco: number, porcentagem: number): number;
4
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Simple utility to calculate percentage values.
3
+ * @namespace percentageBase
4
+ */
5
+ const percentageBase = {
6
+ /**
7
+ * Calculates a percentage of a given base value.
8
+ * @param {number} preco - The base value.
9
+ * @param {number} porcentagem - The percentage to apply.
10
+ * @returns {number} The result of the percentage calculation.
11
+ *
12
+ * @example
13
+ * percentageBase.run(200, 15); // 30
14
+ */
15
+ run: function (preco, porcentagem) {
16
+ return preco * (porcentagem / 100);
17
+ },
18
+ };
19
+ export default percentageBase;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Matches exactly one letter (lowercase or uppercase).
5
+ * @param {string} [type='g'] - The flag for the regular expression (default is 'g').
6
+ * @returns {RegExp} The regular expression to match exactly one letter.
7
+ */
8
+ function oneLetter(type = 'g') {
9
+ return new RegExp('^[a-zA-Z]+$', type); // Matches exactly one letter
10
+ }
11
+
12
+ /**
13
+ * Matches one or more letters (lowercase or uppercase).
14
+ * @param {string} [type='g'] - The flag for the regular expression (default is 'g').
15
+ * @returns {RegExp} The regular expression to match one or more letters.
16
+ */
17
+ function multiLetters(type = 'g') {
18
+ return new RegExp('[a-zA-Z]+', type); // Matches one or more letters
19
+ }
20
+
21
+ exports.multiLetters = multiLetters;
22
+ exports.oneLetter = oneLetter;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Matches exactly one letter (lowercase or uppercase).
3
+ * @param {string} [type='g'] - The flag for the regular expression (default is 'g').
4
+ * @returns {RegExp} The regular expression to match exactly one letter.
5
+ */
6
+ export function oneLetter(type?: string): RegExp;
7
+ /**
8
+ * Matches one or more letters (lowercase or uppercase).
9
+ * @param {string} [type='g'] - The flag for the regular expression (default is 'g').
10
+ * @returns {RegExp} The regular expression to match one or more letters.
11
+ */
12
+ export function multiLetters(type?: string): RegExp;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Matches exactly one letter (lowercase or uppercase).
3
+ * @param {string} [type='g'] - The flag for the regular expression (default is 'g').
4
+ * @returns {RegExp} The regular expression to match exactly one letter.
5
+ */
6
+ function oneLetter(type = 'g') {
7
+ return new RegExp('^[a-zA-Z]+$', type); // Matches exactly one letter
8
+ }
9
+ /**
10
+ * Matches one or more letters (lowercase or uppercase).
11
+ * @param {string} [type='g'] - The flag for the regular expression (default is 'g').
12
+ * @returns {RegExp} The regular expression to match one or more letters.
13
+ */
14
+ function multiLetters(type = 'g') {
15
+ return new RegExp('[a-zA-Z]+', type); // Matches one or more letters
16
+ }
17
+ export { oneLetter, // Matches exactly one letter
18
+ multiLetters, // Matches one or more letters
19
+ };
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Asynchronously replaces matches in a string using a regex and an async function.
5
+ *
6
+ * @param {string} str - The input string to perform replacements on.
7
+ * @param {RegExp} regex - The regular expression to match substrings for replacement.
8
+ * @param {Function} asyncFn - An asynchronous function that returns a replacement for each match.
9
+ * It receives the same arguments as a standard `replace` callback.
10
+ * @returns {Promise<string>} The resulting string with all async replacements applied.
11
+ *
12
+ * @example
13
+ * await asyncReplace("Hello @user1 and @user2!", /@\w+/g, async (mention) => {
14
+ * return await getUserNameFromMention(mention);
15
+ * });
16
+ */
17
+ async function asyncReplace(str, regex, asyncFn) {
18
+ const promises = [];
19
+
20
+ // Collect promises
21
+ str.replace(regex, (match, ...args) => {
22
+ promises.push(asyncFn(match, ...args));
23
+ return match;
24
+ });
25
+
26
+ const data = await Promise.all(promises);
27
+
28
+ // Replace using the resolved data
29
+ return str.replace(regex, () => data.shift());
30
+ }
31
+
32
+ module.exports = asyncReplace;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Asynchronously replaces matches in a string using a regex and an async function.
3
+ *
4
+ * @param {string} str - The input string to perform replacements on.
5
+ * @param {RegExp} regex - The regular expression to match substrings for replacement.
6
+ * @param {Function} asyncFn - An asynchronous function that returns a replacement for each match.
7
+ * It receives the same arguments as a standard `replace` callback.
8
+ * @returns {Promise<string>} The resulting string with all async replacements applied.
9
+ *
10
+ * @example
11
+ * await asyncReplace("Hello @user1 and @user2!", /@\w+/g, async (mention) => {
12
+ * return await getUserNameFromMention(mention);
13
+ * });
14
+ */
15
+ export default function asyncReplace(str: string, regex: RegExp, asyncFn: Function): Promise<string>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Asynchronously replaces matches in a string using a regex and an async function.
3
+ *
4
+ * @param {string} str - The input string to perform replacements on.
5
+ * @param {RegExp} regex - The regular expression to match substrings for replacement.
6
+ * @param {Function} asyncFn - An asynchronous function that returns a replacement for each match.
7
+ * It receives the same arguments as a standard `replace` callback.
8
+ * @returns {Promise<string>} The resulting string with all async replacements applied.
9
+ *
10
+ * @example
11
+ * await asyncReplace("Hello @user1 and @user2!", /@\w+/g, async (mention) => {
12
+ * return await getUserNameFromMention(mention);
13
+ * });
14
+ */
15
+ export default async function asyncReplace(str, regex, asyncFn) {
16
+ const promises = [];
17
+ // Collect promises
18
+ str.replace(regex, (match, ...args) => {
19
+ promises.push(asyncFn(match, ...args));
20
+ return match;
21
+ });
22
+ const data = await Promise.all(promises);
23
+ // Replace using the resolved data
24
+ return str.replace(regex, () => data.shift());
25
+ }
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Rule of Three utility.
5
+ * Performs direct or inverse proportional calculation.
6
+ */
7
+ const ruleOfThree = {
8
+ /**
9
+ * Returns the client-side version of the `execute` function as a string.
10
+ * Useful for embedding logic in the frontend.
11
+ *
12
+ * @returns {string} Function as string.
13
+ */
14
+ getClient: function () {
15
+ return ruleOfThree.execute.toString();
16
+ },
17
+
18
+ /**
19
+ * Executes a Rule of Three calculation.
20
+ *
21
+ * @param {number} val1 - The first reference value (numerator in direct proportion, denominator in inverse).
22
+ * @param {number} val2 - The second reference value (denominator in direct proportion, numerator in inverse).
23
+ * @param {number} val3 - The third value (numerator in direct proportion, denominator in inverse).
24
+ * @param {boolean} inverse - Whether the calculation should use inverse proportion (true for inverse, false for direct).
25
+ * @returns {number} The result of the Rule of Three operation.
26
+ *
27
+ * Rule of Three Formula (Direct Proportion):
28
+ * val1 / val2 = val3 / result
29
+ *
30
+ * For Inverse Proportion:
31
+ * val1 / val3 = val2 / result
32
+ *
33
+ * Visual Representation:
34
+ *
35
+ * For Direct Proportion:
36
+ * val1 val2
37
+ * ----- = ------
38
+ * val3 result
39
+ *
40
+ * For Inverse Proportion:
41
+ * val1 val2
42
+ * ----- = ------
43
+ * val3 result
44
+ *
45
+ * @example
46
+ * // Direct proportion:
47
+ * ruleOfThree.execute(2, 6, 3, false); // → 9
48
+ *
49
+ * @example
50
+ * // Inverse proportion:
51
+ * ruleOfThree.execute(2, 6, 3, true); // → 4
52
+ */
53
+ execute: function (val1, val2, val3, inverse) {
54
+ return inverse ? Number(val1 * val2) / val3 : Number(val3 * val2) / val1;
55
+ },
56
+ };
57
+
58
+ module.exports = ruleOfThree;
@@ -0,0 +1,5 @@
1
+ export default ruleOfThree;
2
+ declare namespace ruleOfThree {
3
+ function getClient(): string;
4
+ function execute(val1: number, val2: number, val3: number, inverse: boolean): number;
5
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Rule of Three utility.
3
+ * Performs direct or inverse proportional calculation.
4
+ */
5
+ const ruleOfThree = {
6
+ /**
7
+ * Returns the client-side version of the `execute` function as a string.
8
+ * Useful for embedding logic in the frontend.
9
+ *
10
+ * @returns {string} Function as string.
11
+ */
12
+ getClient: function () {
13
+ return ruleOfThree.execute.toString();
14
+ },
15
+ /**
16
+ * Executes a Rule of Three calculation.
17
+ *
18
+ * @param {number} val1 - The first reference value (numerator in direct proportion, denominator in inverse).
19
+ * @param {number} val2 - The second reference value (denominator in direct proportion, numerator in inverse).
20
+ * @param {number} val3 - The third value (numerator in direct proportion, denominator in inverse).
21
+ * @param {boolean} inverse - Whether the calculation should use inverse proportion (true for inverse, false for direct).
22
+ * @returns {number} The result of the Rule of Three operation.
23
+ *
24
+ * Rule of Three Formula (Direct Proportion):
25
+ * val1 / val2 = val3 / result
26
+ *
27
+ * For Inverse Proportion:
28
+ * val1 / val3 = val2 / result
29
+ *
30
+ * Visual Representation:
31
+ *
32
+ * For Direct Proportion:
33
+ * val1 val2
34
+ * ----- = ------
35
+ * val3 result
36
+ *
37
+ * For Inverse Proportion:
38
+ * val1 val2
39
+ * ----- = ------
40
+ * val3 result
41
+ *
42
+ * @example
43
+ * // Direct proportion:
44
+ * ruleOfThree.execute(2, 6, 3, false); // → 9
45
+ *
46
+ * @example
47
+ * // Inverse proportion:
48
+ * ruleOfThree.execute(2, 6, 3, true); // → 4
49
+ */
50
+ execute: function (val1, val2, val3, inverse) {
51
+ return inverse ? Number(val1 * val2) / val3 : Number(val3 * val2) / val1;
52
+ },
53
+ };
54
+ export default ruleOfThree;
@@ -0,0 +1,134 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Class to manage user level-up logic based on experience points.
5
+ */
6
+ class TinyLevelUp {
7
+ /**
8
+ * Constructor
9
+ * @param {number} giveExp - Base experience value for random experience generation.
10
+ * @param {number} expLevel - Base experience needed to level up (per level).
11
+ */
12
+ constructor(giveExp, expLevel) {
13
+ this.giveExp = giveExp;
14
+ this.expLevel = expLevel;
15
+ }
16
+
17
+ /**
18
+ * Validates and adjusts the user's level based on their current experience.
19
+ * @param {Object} user - The user object containing experience and level properties.
20
+ * @returns {Object} The updated user object.
21
+ */
22
+ expValidator(user) {
23
+ let extraValue = 0;
24
+ const nextLevelExp = this.expLevel * user.level;
25
+
26
+ // Level Up
27
+ if (user.exp >= nextLevelExp) {
28
+ user.level++;
29
+ extraValue = user.exp - nextLevelExp;
30
+ user.exp = 0;
31
+
32
+ if (extraValue > 0) return this.give(user, extraValue, 'extra');
33
+ }
34
+
35
+ // Level Down
36
+ if (user.exp < 1 && user.level > 1) {
37
+ user.level--;
38
+ extraValue = Math.abs(user.exp);
39
+ user.exp = this.expLevel * user.level;
40
+
41
+ if (extraValue > 0) return this.remove(user, extraValue, 'extra');
42
+ }
43
+
44
+ return user;
45
+ }
46
+
47
+ /**
48
+ * Calculates the total experience based on the user's level.
49
+ * @param {Object} user - The user object containing experience and level properties.
50
+ * @returns {number} The total experience of the user.
51
+ */
52
+ getTotalExp(user) {
53
+ let totalExp = 0;
54
+ for (let p = 1; p <= user.level; p++) totalExp += this.expLevel * p;
55
+ totalExp += user.exp;
56
+ return totalExp;
57
+ }
58
+
59
+ /**
60
+ * Generates random experience points based on the configured multiplier.
61
+ * @param {number} multi - A multiplier for the generated experience.
62
+ * @returns {number} The generated experience points.
63
+ */
64
+ expGenerator(multi = 1) {
65
+ return Math.floor(Math.random() * this.giveExp) + 1 * multi;
66
+ }
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
+ progress(user) {
74
+ return this.expLevel * user.level;
75
+ }
76
+
77
+ /**
78
+ * Gets the experience points required to reach the next level.
79
+ * @param {Object} user - The user object containing the level.
80
+ * @returns {number} The experience required for the next level.
81
+ */
82
+ getProgress(user) {
83
+ return this.expLevel * user.level;
84
+ }
85
+
86
+ /**
87
+ * Sets the experience value for the user, adjusting their level if necessary.
88
+ * @param {Object} user - The user object.
89
+ * @param {number} value - The new experience value to set.
90
+ * @returns {Object} The updated user object.
91
+ */
92
+ set(user, value) {
93
+ user.exp = value;
94
+ this.expValidator(user);
95
+ user.totalExp = this.getTotalExp(user);
96
+ return user;
97
+ }
98
+
99
+ /**
100
+ * Adds experience to the user, adjusting their level if necessary.
101
+ * @param {Object} user - The user object.
102
+ * @param {number} extraExp - Additional experience to be added.
103
+ * @param {string} type - Type of addition ('add' or 'extra').
104
+ * @param {number} multi - Multiplier for experience generation.
105
+ * @returns {Object} The updated user object.
106
+ */
107
+ give(user, extraExp = 0, type = 'add', multi = 1) {
108
+ if (type === 'add') user.exp += this.expGenerator(multi) + extraExp;
109
+ else if (type === 'extra') user.exp += extraExp;
110
+
111
+ this.expValidator(user);
112
+ user.totalExp = this.getTotalExp(user);
113
+ return user;
114
+ }
115
+
116
+ /**
117
+ * Removes experience from the user, adjusting their level if necessary.
118
+ * @param {Object} user - The user object.
119
+ * @param {number} extraExp - Experience to remove.
120
+ * @param {string} type - Type of removal ('add' or 'extra').
121
+ * @param {number} multi - Multiplier for experience generation.
122
+ * @returns {Object} The updated user object.
123
+ */
124
+ remove(user, extraExp = 0, type = 'add', multi = 1) {
125
+ if (type === 'add') user.exp -= this.expGenerator(multi) + extraExp;
126
+ else if (type === 'extra') user.exp -= extraExp;
127
+
128
+ this.expValidator(user);
129
+ user.totalExp = this.getTotalExp(user);
130
+ return user;
131
+ }
132
+ }
133
+
134
+ module.exports = TinyLevelUp;