@vandenberghinc/volt 1.1.2

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 (451) hide show
  1. package/.vrepo +28 -0
  2. package/.vscode/tasks.json +87 -0
  3. package/README.md +67 -0
  4. package/backend/dist/cjs/blacklist.d.ts +10 -0
  5. package/backend/dist/cjs/blacklist.js +53 -0
  6. package/backend/dist/cjs/cli.d.ts +2 -0
  7. package/backend/dist/cjs/cli.js +263 -0
  8. package/backend/dist/cjs/database.d.ts +364 -0
  9. package/backend/dist/cjs/database.js +1962 -0
  10. package/backend/dist/cjs/endpoint.d.ts +57 -0
  11. package/backend/dist/cjs/endpoint.js +425 -0
  12. package/backend/dist/cjs/file_watcher.d.ts +44 -0
  13. package/backend/dist/cjs/file_watcher.js +348 -0
  14. package/backend/dist/cjs/frontend.d.ts +13 -0
  15. package/backend/dist/cjs/frontend.js +30 -0
  16. package/backend/dist/cjs/image_endpoint.d.ts +24 -0
  17. package/backend/dist/cjs/image_endpoint.js +210 -0
  18. package/backend/dist/cjs/logger.d.ts +5 -0
  19. package/backend/dist/cjs/logger.js +16 -0
  20. package/backend/dist/cjs/meta.d.ts +50 -0
  21. package/backend/dist/cjs/meta.js +153 -0
  22. package/backend/dist/cjs/mutex.d.ts +24 -0
  23. package/backend/dist/cjs/mutex.js +52 -0
  24. package/backend/dist/cjs/package.json +1 -0
  25. package/backend/dist/cjs/payments/paddle.d.ts +161 -0
  26. package/backend/dist/cjs/payments/paddle.js +2301 -0
  27. package/backend/dist/cjs/plugins/browser.d.ts +36 -0
  28. package/backend/dist/cjs/plugins/browser.js +183 -0
  29. package/backend/dist/cjs/plugins/communication.d.ts +70 -0
  30. package/backend/dist/cjs/plugins/communication.js +177 -0
  31. package/backend/dist/cjs/plugins/css.d.ts +10 -0
  32. package/backend/dist/cjs/plugins/css.js +71 -0
  33. package/backend/dist/cjs/plugins/mail.d.ts +277 -0
  34. package/backend/dist/cjs/plugins/mail.js +1419 -0
  35. package/backend/dist/cjs/plugins/pdf.d.ts +757 -0
  36. package/backend/dist/cjs/plugins/pdf.js +1694 -0
  37. package/backend/dist/cjs/plugins/thread_monitor.d.ts +18 -0
  38. package/backend/dist/cjs/plugins/thread_monitor.js +127 -0
  39. package/backend/dist/cjs/plugins/ts/compiler.d.ts +132 -0
  40. package/backend/dist/cjs/plugins/ts/compiler.js +944 -0
  41. package/backend/dist/cjs/plugins/ts/preprocessing.d.ts +14 -0
  42. package/backend/dist/cjs/plugins/ts/preprocessing.js +762 -0
  43. package/backend/dist/cjs/rate_limit.d.ts +65 -0
  44. package/backend/dist/cjs/rate_limit.js +463 -0
  45. package/backend/dist/cjs/request.deprc.d.ts +48 -0
  46. package/backend/dist/cjs/request.deprc.js +572 -0
  47. package/backend/dist/cjs/response.deprc.d.ts +55 -0
  48. package/backend/dist/cjs/response.deprc.js +275 -0
  49. package/backend/dist/cjs/server.d.ts +311 -0
  50. package/backend/dist/cjs/server.js +3475 -0
  51. package/backend/dist/cjs/splash_screen.d.ts +35 -0
  52. package/backend/dist/cjs/splash_screen.js +152 -0
  53. package/backend/dist/cjs/status.d.ts +60 -0
  54. package/backend/dist/cjs/status.js +199 -0
  55. package/backend/dist/cjs/stream.d.ts +75 -0
  56. package/backend/dist/cjs/stream.js +954 -0
  57. package/backend/dist/cjs/users.d.ts +111 -0
  58. package/backend/dist/cjs/users.js +1945 -0
  59. package/backend/dist/cjs/utils.d.ts +27 -0
  60. package/backend/dist/cjs/utils.js +329 -0
  61. package/backend/dist/cjs/view.d.ts +52 -0
  62. package/backend/dist/cjs/view.js +568 -0
  63. package/backend/dist/cjs/vinc.d.ts +2 -0
  64. package/backend/dist/cjs/vinc.dev.d.ts +2 -0
  65. package/backend/dist/cjs/vinc.dev.js +42 -0
  66. package/backend/dist/cjs/vinc.js +42 -0
  67. package/backend/dist/cjs/volt.d.ts +15 -0
  68. package/backend/dist/cjs/volt.js +64 -0
  69. package/backend/dist/css/adyen.css +92 -0
  70. package/backend/dist/css/volt.css +65 -0
  71. package/backend/dist/esm/blacklist.d.ts +10 -0
  72. package/backend/dist/esm/blacklist.js +49 -0
  73. package/backend/dist/esm/cli.d.ts +2 -0
  74. package/backend/dist/esm/cli.js +228 -0
  75. package/backend/dist/esm/database.d.ts +364 -0
  76. package/backend/dist/esm/database.js +1957 -0
  77. package/backend/dist/esm/endpoint.d.ts +57 -0
  78. package/backend/dist/esm/endpoint.js +421 -0
  79. package/backend/dist/esm/file_watcher.d.ts +44 -0
  80. package/backend/dist/esm/file_watcher.js +313 -0
  81. package/backend/dist/esm/frontend.d.ts +13 -0
  82. package/backend/dist/esm/frontend.js +27 -0
  83. package/backend/dist/esm/image_endpoint.d.ts +24 -0
  84. package/backend/dist/esm/image_endpoint.js +206 -0
  85. package/backend/dist/esm/logger.d.ts +5 -0
  86. package/backend/dist/esm/logger.js +13 -0
  87. package/backend/dist/esm/meta.d.ts +50 -0
  88. package/backend/dist/esm/meta.js +149 -0
  89. package/backend/dist/esm/mutex.d.ts +24 -0
  90. package/backend/dist/esm/mutex.js +48 -0
  91. package/backend/dist/esm/payments/paddle.d.ts +161 -0
  92. package/backend/dist/esm/payments/paddle.js +2261 -0
  93. package/backend/dist/esm/plugins/browser.d.ts +36 -0
  94. package/backend/dist/esm/plugins/browser.js +176 -0
  95. package/backend/dist/esm/plugins/communication.d.ts +70 -0
  96. package/backend/dist/esm/plugins/communication.js +169 -0
  97. package/backend/dist/esm/plugins/css.d.ts +10 -0
  98. package/backend/dist/esm/plugins/css.js +64 -0
  99. package/backend/dist/esm/plugins/mail.d.ts +277 -0
  100. package/backend/dist/esm/plugins/mail.js +1403 -0
  101. package/backend/dist/esm/plugins/pdf.d.ts +757 -0
  102. package/backend/dist/esm/plugins/pdf.js +1694 -0
  103. package/backend/dist/esm/plugins/thread_monitor.d.ts +18 -0
  104. package/backend/dist/esm/plugins/thread_monitor.js +120 -0
  105. package/backend/dist/esm/plugins/ts/compiler.d.ts +132 -0
  106. package/backend/dist/esm/plugins/ts/compiler.js +907 -0
  107. package/backend/dist/esm/plugins/ts/preprocessing.d.ts +14 -0
  108. package/backend/dist/esm/plugins/ts/preprocessing.js +724 -0
  109. package/backend/dist/esm/rate_limit.d.ts +65 -0
  110. package/backend/dist/esm/rate_limit.js +425 -0
  111. package/backend/dist/esm/request.deprc.d.ts +48 -0
  112. package/backend/dist/esm/request.deprc.js +572 -0
  113. package/backend/dist/esm/response.deprc.d.ts +55 -0
  114. package/backend/dist/esm/response.deprc.js +275 -0
  115. package/backend/dist/esm/server.d.ts +311 -0
  116. package/backend/dist/esm/server.js +3435 -0
  117. package/backend/dist/esm/splash_screen.d.ts +35 -0
  118. package/backend/dist/esm/splash_screen.js +148 -0
  119. package/backend/dist/esm/status.d.ts +60 -0
  120. package/backend/dist/esm/status.js +196 -0
  121. package/backend/dist/esm/stream.d.ts +75 -0
  122. package/backend/dist/esm/stream.js +947 -0
  123. package/backend/dist/esm/users.d.ts +111 -0
  124. package/backend/dist/esm/users.js +1908 -0
  125. package/backend/dist/esm/utils.d.ts +27 -0
  126. package/backend/dist/esm/utils.js +324 -0
  127. package/backend/dist/esm/view.d.ts +52 -0
  128. package/backend/dist/esm/view.js +561 -0
  129. package/backend/dist/esm/vinc.d.ts +2 -0
  130. package/backend/dist/esm/vinc.dev.d.ts +2 -0
  131. package/backend/dist/esm/vinc.dev.js +6 -0
  132. package/backend/dist/esm/vinc.js +6 -0
  133. package/backend/dist/esm/volt.d.ts +15 -0
  134. package/backend/dist/esm/volt.js +23 -0
  135. package/backend/dist/esm-dev/blacklist.d.ts +10 -0
  136. package/backend/dist/esm-dev/blacklist.js +49 -0
  137. package/backend/dist/esm-dev/cli.d.ts +2 -0
  138. package/backend/dist/esm-dev/cli.js +228 -0
  139. package/backend/dist/esm-dev/database.d.ts +364 -0
  140. package/backend/dist/esm-dev/database.js +1957 -0
  141. package/backend/dist/esm-dev/endpoint.d.ts +57 -0
  142. package/backend/dist/esm-dev/endpoint.js +421 -0
  143. package/backend/dist/esm-dev/file_watcher.d.ts +44 -0
  144. package/backend/dist/esm-dev/file_watcher.js +313 -0
  145. package/backend/dist/esm-dev/frontend.d.ts +13 -0
  146. package/backend/dist/esm-dev/frontend.js +27 -0
  147. package/backend/dist/esm-dev/image_endpoint.d.ts +24 -0
  148. package/backend/dist/esm-dev/image_endpoint.js +206 -0
  149. package/backend/dist/esm-dev/logger.d.ts +5 -0
  150. package/backend/dist/esm-dev/logger.js +13 -0
  151. package/backend/dist/esm-dev/meta.d.ts +50 -0
  152. package/backend/dist/esm-dev/meta.js +149 -0
  153. package/backend/dist/esm-dev/mutex.d.ts +24 -0
  154. package/backend/dist/esm-dev/mutex.js +48 -0
  155. package/backend/dist/esm-dev/payments/paddle.d.ts +161 -0
  156. package/backend/dist/esm-dev/payments/paddle.js +2261 -0
  157. package/backend/dist/esm-dev/plugins/browser.d.ts +36 -0
  158. package/backend/dist/esm-dev/plugins/browser.js +176 -0
  159. package/backend/dist/esm-dev/plugins/communication.d.ts +70 -0
  160. package/backend/dist/esm-dev/plugins/communication.js +169 -0
  161. package/backend/dist/esm-dev/plugins/css.d.ts +10 -0
  162. package/backend/dist/esm-dev/plugins/css.js +64 -0
  163. package/backend/dist/esm-dev/plugins/mail.d.ts +277 -0
  164. package/backend/dist/esm-dev/plugins/mail.js +1403 -0
  165. package/backend/dist/esm-dev/plugins/pdf.d.ts +757 -0
  166. package/backend/dist/esm-dev/plugins/pdf.js +1694 -0
  167. package/backend/dist/esm-dev/plugins/thread_monitor.d.ts +18 -0
  168. package/backend/dist/esm-dev/plugins/thread_monitor.js +120 -0
  169. package/backend/dist/esm-dev/plugins/ts/compiler.d.ts +132 -0
  170. package/backend/dist/esm-dev/plugins/ts/compiler.js +907 -0
  171. package/backend/dist/esm-dev/plugins/ts/preprocessing.d.ts +14 -0
  172. package/backend/dist/esm-dev/plugins/ts/preprocessing.js +724 -0
  173. package/backend/dist/esm-dev/rate_limit.d.ts +65 -0
  174. package/backend/dist/esm-dev/rate_limit.js +425 -0
  175. package/backend/dist/esm-dev/request.deprc.d.ts +48 -0
  176. package/backend/dist/esm-dev/request.deprc.js +572 -0
  177. package/backend/dist/esm-dev/response.deprc.d.ts +55 -0
  178. package/backend/dist/esm-dev/response.deprc.js +275 -0
  179. package/backend/dist/esm-dev/server.d.ts +311 -0
  180. package/backend/dist/esm-dev/server.js +3435 -0
  181. package/backend/dist/esm-dev/splash_screen.d.ts +35 -0
  182. package/backend/dist/esm-dev/splash_screen.js +148 -0
  183. package/backend/dist/esm-dev/status.d.ts +60 -0
  184. package/backend/dist/esm-dev/status.js +196 -0
  185. package/backend/dist/esm-dev/stream.d.ts +75 -0
  186. package/backend/dist/esm-dev/stream.js +947 -0
  187. package/backend/dist/esm-dev/users.d.ts +111 -0
  188. package/backend/dist/esm-dev/users.js +1908 -0
  189. package/backend/dist/esm-dev/utils.d.ts +27 -0
  190. package/backend/dist/esm-dev/utils.js +324 -0
  191. package/backend/dist/esm-dev/view.d.ts +52 -0
  192. package/backend/dist/esm-dev/view.js +561 -0
  193. package/backend/dist/esm-dev/vinc.d.ts +2 -0
  194. package/backend/dist/esm-dev/vinc.dev.d.ts +2 -0
  195. package/backend/dist/esm-dev/vinc.dev.js +6 -0
  196. package/backend/dist/esm-dev/vinc.js +6 -0
  197. package/backend/dist/esm-dev/volt.d.ts +15 -0
  198. package/backend/dist/esm-dev/volt.js +23 -0
  199. package/backend/src/blacklist.ts +69 -0
  200. package/backend/src/cli.js +245 -0
  201. package/backend/src/database.ts +2241 -0
  202. package/backend/src/endpoint.ts +494 -0
  203. package/backend/src/file_watcher.ts +359 -0
  204. package/backend/src/frontend.ts +35 -0
  205. package/backend/src/globals.d.ts +8 -0
  206. package/backend/src/image_endpoint.ts +258 -0
  207. package/backend/src/logger.ts +18 -0
  208. package/backend/src/meta.ts +202 -0
  209. package/backend/src/mutex.ts +51 -0
  210. package/backend/src/payments/paddle.ts +2659 -0
  211. package/backend/src/plugins/browser.ts +188 -0
  212. package/backend/src/plugins/communication.ts +204 -0
  213. package/backend/src/plugins/css.ts +84 -0
  214. package/backend/src/plugins/fonts/Menlo-Bold.ttf +0 -0
  215. package/backend/src/plugins/fonts/Menlo-Regular.ttf +0 -0
  216. package/backend/src/plugins/mail.ts +1720 -0
  217. package/backend/src/plugins/pdf.js +1932 -0
  218. package/backend/src/plugins/thread_monitor.ts +164 -0
  219. package/backend/src/plugins/ts/compiler.ts +1242 -0
  220. package/backend/src/plugins/ts/preprocessing.ts +812 -0
  221. package/backend/src/rate_limit.ts +503 -0
  222. package/backend/src/request.deprc.js +626 -0
  223. package/backend/src/response.deprc.js +354 -0
  224. package/backend/src/server.ts +4149 -0
  225. package/backend/src/splash_screen.ts +192 -0
  226. package/backend/src/status.ts +199 -0
  227. package/backend/src/stream.ts +1070 -0
  228. package/backend/src/users.ts +2077 -0
  229. package/backend/src/utils.ts +359 -0
  230. package/backend/src/view.ts +655 -0
  231. package/backend/src/vinc.dev.js +6 -0
  232. package/backend/src/vinc.ts +6 -0
  233. package/backend/src/volt.js +25 -0
  234. package/backend/tsconfig.cjs.json +29 -0
  235. package/backend/tsconfig.esm.dev.json +34 -0
  236. package/backend/tsconfig.esm.json +30 -0
  237. package/backend/tsconfig.json +2 -0
  238. package/frontend/compile.js +436 -0
  239. package/frontend/dist/elements/base.d.ts +9891 -0
  240. package/frontend/dist/elements/base.js +8818 -0
  241. package/frontend/dist/elements/module.d.ts +16 -0
  242. package/frontend/dist/elements/module.js +178 -0
  243. package/frontend/dist/modules/array.d.ts +37 -0
  244. package/frontend/dist/modules/array.js +284 -0
  245. package/frontend/dist/modules/auth.d.ts +45 -0
  246. package/frontend/dist/modules/auth.js +138 -0
  247. package/frontend/dist/modules/colors.d.ts +26 -0
  248. package/frontend/dist/modules/colors.js +340 -0
  249. package/frontend/dist/modules/compression.d.ts +6 -0
  250. package/frontend/dist/modules/compression.js +999 -0
  251. package/frontend/dist/modules/cookies.d.ts +17 -0
  252. package/frontend/dist/modules/cookies.js +166 -0
  253. package/frontend/dist/modules/date.d.ts +142 -0
  254. package/frontend/dist/modules/date.js +493 -0
  255. package/frontend/dist/modules/events.d.ts +7 -0
  256. package/frontend/dist/modules/events.js +90 -0
  257. package/frontend/dist/modules/google.d.ts +10 -0
  258. package/frontend/dist/modules/google.js +53 -0
  259. package/frontend/dist/modules/meta.d.ts +9 -0
  260. package/frontend/dist/modules/meta.js +45 -0
  261. package/frontend/dist/modules/mutex.d.ts +8 -0
  262. package/frontend/dist/modules/mutex.js +52 -0
  263. package/frontend/dist/modules/number.d.ts +12 -0
  264. package/frontend/dist/modules/number.js +8 -0
  265. package/frontend/dist/modules/object.d.ts +50 -0
  266. package/frontend/dist/modules/object.js +147 -0
  267. package/frontend/dist/modules/paddle.d.ts +1403 -0
  268. package/frontend/dist/modules/paddle.js +2641 -0
  269. package/frontend/dist/modules/scheme.d.ts +207 -0
  270. package/frontend/dist/modules/scheme.js +649 -0
  271. package/frontend/dist/modules/settings.d.ts +3 -0
  272. package/frontend/dist/modules/settings.js +4 -0
  273. package/frontend/dist/modules/statics.d.ts +4 -0
  274. package/frontend/dist/modules/statics.js +45 -0
  275. package/frontend/dist/modules/string.d.ts +163 -0
  276. package/frontend/dist/modules/string.js +291 -0
  277. package/frontend/dist/modules/support.d.ts +18 -0
  278. package/frontend/dist/modules/support.js +102 -0
  279. package/frontend/dist/modules/themes.d.ts +8 -0
  280. package/frontend/dist/modules/themes.js +17 -0
  281. package/frontend/dist/modules/user.d.ts +58 -0
  282. package/frontend/dist/modules/user.js +279 -0
  283. package/frontend/dist/modules/utils.d.ts +58 -0
  284. package/frontend/dist/modules/utils.js +1159 -0
  285. package/frontend/dist/types/gradient.d.ts +12 -0
  286. package/frontend/dist/types/gradient.js +79 -0
  287. package/frontend/dist/ui/border_button.d.ts +177 -0
  288. package/frontend/dist/ui/border_button.js +235 -0
  289. package/frontend/dist/ui/button.d.ts +42 -0
  290. package/frontend/dist/ui/button.js +114 -0
  291. package/frontend/dist/ui/canvas.d.ts +56 -0
  292. package/frontend/dist/ui/canvas.js +411 -0
  293. package/frontend/dist/ui/checkbox.d.ts +72 -0
  294. package/frontend/dist/ui/checkbox.js +277 -0
  295. package/frontend/dist/ui/code.d.ts +232 -0
  296. package/frontend/dist/ui/code.js +977 -0
  297. package/frontend/dist/ui/color.d.ts +1 -0
  298. package/frontend/dist/ui/color.js +110 -0
  299. package/frontend/dist/ui/context_menu.d.ts +30 -0
  300. package/frontend/dist/ui/context_menu.js +211 -0
  301. package/frontend/dist/ui/css.d.ts +10 -0
  302. package/frontend/dist/ui/css.js +44 -0
  303. package/frontend/dist/ui/divider.d.ts +18 -0
  304. package/frontend/dist/ui/divider.js +82 -0
  305. package/frontend/dist/ui/dropdown.d.ts +115 -0
  306. package/frontend/dist/ui/dropdown.js +446 -0
  307. package/frontend/dist/ui/for_each.d.ts +38 -0
  308. package/frontend/dist/ui/for_each.js +97 -0
  309. package/frontend/dist/ui/form.d.ts +25 -0
  310. package/frontend/dist/ui/form.js +227 -0
  311. package/frontend/dist/ui/frame_modes.d.ts +28 -0
  312. package/frontend/dist/ui/frame_modes.js +116 -0
  313. package/frontend/dist/ui/google_map.d.ts +31 -0
  314. package/frontend/dist/ui/google_map.js +111 -0
  315. package/frontend/dist/ui/gradient.d.ts +24 -0
  316. package/frontend/dist/ui/gradient.js +115 -0
  317. package/frontend/dist/ui/image.d.ts +138 -0
  318. package/frontend/dist/ui/image.js +570 -0
  319. package/frontend/dist/ui/input.d.ts +316 -0
  320. package/frontend/dist/ui/input.js +1187 -0
  321. package/frontend/dist/ui/link.d.ts +39 -0
  322. package/frontend/dist/ui/link.js +146 -0
  323. package/frontend/dist/ui/list.d.ts +33 -0
  324. package/frontend/dist/ui/list.js +161 -0
  325. package/frontend/dist/ui/loader_button.d.ts +108 -0
  326. package/frontend/dist/ui/loader_button.js +207 -0
  327. package/frontend/dist/ui/loaders.d.ts +60 -0
  328. package/frontend/dist/ui/loaders.js +150 -0
  329. package/frontend/dist/ui/popup.d.ts +84 -0
  330. package/frontend/dist/ui/popup.js +331 -0
  331. package/frontend/dist/ui/pseudo.d.ts +16 -0
  332. package/frontend/dist/ui/pseudo.js +81 -0
  333. package/frontend/dist/ui/scroller.d.ts +131 -0
  334. package/frontend/dist/ui/scroller.js +1251 -0
  335. package/frontend/dist/ui/slider.d.ts +35 -0
  336. package/frontend/dist/ui/slider.js +203 -0
  337. package/frontend/dist/ui/spacer.d.ts +20 -0
  338. package/frontend/dist/ui/spacer.js +83 -0
  339. package/frontend/dist/ui/span.d.ts +11 -0
  340. package/frontend/dist/ui/span.js +75 -0
  341. package/frontend/dist/ui/stack.d.ts +123 -0
  342. package/frontend/dist/ui/stack.js +344 -0
  343. package/frontend/dist/ui/steps.d.ts +72 -0
  344. package/frontend/dist/ui/steps.js +306 -0
  345. package/frontend/dist/ui/style.d.ts +12 -0
  346. package/frontend/dist/ui/style.js +78 -0
  347. package/frontend/dist/ui/switch.d.ts +44 -0
  348. package/frontend/dist/ui/switch.js +280 -0
  349. package/frontend/dist/ui/table.d.ts +118 -0
  350. package/frontend/dist/ui/table.js +411 -0
  351. package/frontend/dist/ui/tabs.d.ts +85 -0
  352. package/frontend/dist/ui/tabs.js +392 -0
  353. package/frontend/dist/ui/text.d.ts +19 -0
  354. package/frontend/dist/ui/text.js +88 -0
  355. package/frontend/dist/ui/theme.d.ts +25 -0
  356. package/frontend/dist/ui/theme.js +237 -0
  357. package/frontend/dist/ui/title.d.ts +36 -0
  358. package/frontend/dist/ui/title.js +127 -0
  359. package/frontend/dist/ui/ui.d.ts +38 -0
  360. package/frontend/dist/ui/ui.js +41 -0
  361. package/frontend/dist/ui/view.d.ts +25 -0
  362. package/frontend/dist/ui/view.js +93 -0
  363. package/frontend/dist/volt.d.ts +22 -0
  364. package/frontend/dist/volt.js +27 -0
  365. package/frontend/exports.json +1340 -0
  366. package/frontend/src/css/adyen.css +92 -0
  367. package/frontend/src/css/volt.css +65 -0
  368. package/frontend/src/elements/base.ts +16790 -0
  369. package/frontend/src/elements/module.ts +184 -0
  370. package/frontend/src/elements/types.d.ts +155 -0
  371. package/frontend/src/modules/array.ts +366 -0
  372. package/frontend/src/modules/auth.ts +188 -0
  373. package/frontend/src/modules/colors.ts +449 -0
  374. package/frontend/src/modules/compression.ts +67 -0
  375. package/frontend/src/modules/cookies.ts +182 -0
  376. package/frontend/src/modules/date.js +535 -0
  377. package/frontend/src/modules/date.ts +583 -0
  378. package/frontend/src/modules/events.ts +96 -0
  379. package/frontend/src/modules/google.ts +60 -0
  380. package/frontend/src/modules/meta.ts +59 -0
  381. package/frontend/src/modules/mutex.ts +59 -0
  382. package/frontend/src/modules/number.ts +20 -0
  383. package/frontend/src/modules/object.ts +212 -0
  384. package/frontend/src/modules/paddle.ts +2990 -0
  385. package/frontend/src/modules/scheme.ts +740 -0
  386. package/frontend/src/modules/settings.ts +5 -0
  387. package/frontend/src/modules/statics.ts +47 -0
  388. package/frontend/src/modules/string.ts +500 -0
  389. package/frontend/src/modules/support.ts +118 -0
  390. package/frontend/src/modules/themes.ts +24 -0
  391. package/frontend/src/modules/user.ts +321 -0
  392. package/frontend/src/modules/utils.ts +1260 -0
  393. package/frontend/src/static/admin/admin.png +0 -0
  394. package/frontend/src/static/admin/password.webp +0 -0
  395. package/frontend/src/static/icons/copy.webp +0 -0
  396. package/frontend/src/static/payments/arrow.long.webp +0 -0
  397. package/frontend/src/static/payments/arrow.long2.webp +0 -0
  398. package/frontend/src/static/payments/cancelled.webp +0 -0
  399. package/frontend/src/static/payments/check.sign.webp +0 -0
  400. package/frontend/src/static/payments/check.webp +0 -0
  401. package/frontend/src/static/payments/close.webp +0 -0
  402. package/frontend/src/static/payments/error.webp +0 -0
  403. package/frontend/src/static/payments/exclamation.webp +0 -0
  404. package/frontend/src/static/payments/minus.webp +0 -0
  405. package/frontend/src/static/payments/party.webp +0 -0
  406. package/frontend/src/static/payments/plus.webp +0 -0
  407. package/frontend/src/static/payments/shopping_cart.webp +0 -0
  408. package/frontend/src/static/payments/trash.webp +0 -0
  409. package/frontend/src/types/global.d.ts +4 -0
  410. package/frontend/src/types/gradient.ts +87 -0
  411. package/frontend/src/ui/any_element.d.ts +5 -0
  412. package/frontend/src/ui/border_button.ts +320 -0
  413. package/frontend/src/ui/button.ts +62 -0
  414. package/frontend/src/ui/canvas.ts +431 -0
  415. package/frontend/src/ui/checkbox.ts +284 -0
  416. package/frontend/src/ui/code.ts +1049 -0
  417. package/frontend/src/ui/color.ts +117 -0
  418. package/frontend/src/ui/context_menu.ts +194 -0
  419. package/frontend/src/ui/css.ts +57 -0
  420. package/frontend/src/ui/divider.ts +28 -0
  421. package/frontend/src/ui/dropdown.ts +503 -0
  422. package/frontend/src/ui/for_each.ts +71 -0
  423. package/frontend/src/ui/form.ts +208 -0
  424. package/frontend/src/ui/frame_modes.ts +140 -0
  425. package/frontend/src/ui/google_map.ts +70 -0
  426. package/frontend/src/ui/gradient.ts +73 -0
  427. package/frontend/src/ui/image.ts +587 -0
  428. package/frontend/src/ui/input.ts +1284 -0
  429. package/frontend/src/ui/link.ts +77 -0
  430. package/frontend/src/ui/list.ts +88 -0
  431. package/frontend/src/ui/loader_button.ts +192 -0
  432. package/frontend/src/ui/loaders.ts +126 -0
  433. package/frontend/src/ui/popup.ts +370 -0
  434. package/frontend/src/ui/pseudo.ts +33 -0
  435. package/frontend/src/ui/scroller.ts +1324 -0
  436. package/frontend/src/ui/slider.ts +215 -0
  437. package/frontend/src/ui/spacer.ts +29 -0
  438. package/frontend/src/ui/span.ts +23 -0
  439. package/frontend/src/ui/stack.ts +238 -0
  440. package/frontend/src/ui/steps.ts +334 -0
  441. package/frontend/src/ui/style.ts +26 -0
  442. package/frontend/src/ui/switch.ts +286 -0
  443. package/frontend/src/ui/table.ts +323 -0
  444. package/frontend/src/ui/tabs.ts +441 -0
  445. package/frontend/src/ui/text.ts +38 -0
  446. package/frontend/src/ui/theme.ts +279 -0
  447. package/frontend/src/ui/title.ts +64 -0
  448. package/frontend/src/ui/ui.ts +47 -0
  449. package/frontend/src/ui/view.ts +44 -0
  450. package/frontend/src/volt.ts +31 -0
  451. package/package.json +58 -0
@@ -0,0 +1,65 @@
1
+ import { Collection } from "./database.js";
2
+ export interface RateLimitGroup {
3
+ group?: string | null;
4
+ limit?: number | null;
5
+ interval?: number | null;
6
+ }
7
+ export interface RateLimitData {
8
+ group: string;
9
+ limit: number;
10
+ interval: number;
11
+ }
12
+ export interface RateLimitCacheData {
13
+ count: number;
14
+ expiration: number;
15
+ }
16
+ export declare const RateLimits: {
17
+ groups: Map<string, RateLimitData>;
18
+ add({ group, limit, interval, }: RateLimitGroup): RateLimitData;
19
+ };
20
+ export declare class RateLimitServer {
21
+ static default_port: number;
22
+ private ip;
23
+ private port;
24
+ private https_config;
25
+ private server;
26
+ private limits;
27
+ private log_source;
28
+ private ws?;
29
+ private clear_caches_interval?;
30
+ constructor({ port, ip, https, _server, }: {
31
+ port?: number;
32
+ ip?: string | null;
33
+ https?: any | null;
34
+ _server: {
35
+ _sys_db: Collection;
36
+ };
37
+ });
38
+ start(): Promise<void>;
39
+ stop(): Promise<void>;
40
+ limit(ip: string, groups?: RateLimitGroup[]): Promise<number | null>;
41
+ reset(group: string): Promise<void>;
42
+ reset_all(): Promise<void>;
43
+ }
44
+ export declare class RateLimitClient {
45
+ private ip;
46
+ private port;
47
+ private https;
48
+ private url;
49
+ private server;
50
+ private log_source;
51
+ private ws?;
52
+ constructor({ ip, port, https, url, _server, }: {
53
+ ip?: string | null;
54
+ port?: number;
55
+ https?: boolean;
56
+ url?: string | null;
57
+ _server: any;
58
+ });
59
+ start(): Promise<void>;
60
+ stop(): Promise<void>;
61
+ limit(ip: string, groups?: RateLimitGroup[]): Promise<number | null>;
62
+ reset(group: string): Promise<void>;
63
+ reset_all(): Promise<void>;
64
+ }
65
+ export default RateLimits;
@@ -0,0 +1,425 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+ // ---------------------------------------------------------
6
+ // Imports.
7
+ import { vlib } from "/Users/administrator/persistance/private/dev/vinc/volt/backend/./src/vinc.dev.js";
8
+ import logger, { LogSource } from "./logger.js";
9
+ // ---------------------------------------------------------
10
+ // Rate limit groups.
11
+ /* @docs:
12
+ @nav: Backend
13
+ @chapter: Rate Limit
14
+ @title: Rate Limit Groups
15
+ @desc:
16
+ The rate limit groups for the endpoint.
17
+
18
+ A group can either be registered through this class or by defining the rate limit group on an endpoint using `Endpoint.rate_limit`.
19
+
20
+ This class will be accessable under `Server` attribute `rate_limits`.
21
+ */
22
+ export const RateLimits = {
23
+ groups: new Map(),
24
+ /* @docs:
25
+ @title: Add group
26
+ @desc:
27
+ Add a rate limit group.
28
+ @param:
29
+ @name: group
30
+ @description: The rate limit group.
31
+ @type: string
32
+ @default: "global"
33
+ @param:
34
+ @name: limit
35
+ @description: The maximum requests per rate limit interval.
36
+ @type: number
37
+ @default: 50
38
+ @param:
39
+ @name: interval
40
+ @description: The rate limit interval in seconds.
41
+ @type: number
42
+ @default: 60
43
+ */
44
+ add({ group = null, limit = null, interval = null, }) {
45
+ const settings = this.groups.has(group)
46
+ ? this.groups.get(group)
47
+ : { group: "", limit: 0, interval: 0 };
48
+ settings.group = group;
49
+ if (limit) {
50
+ settings.limit = limit;
51
+ }
52
+ else if (!settings.limit) {
53
+ settings.limit = 50;
54
+ }
55
+ if (interval) {
56
+ settings.interval = interval;
57
+ }
58
+ else if (!settings.interval) {
59
+ settings.interval = 60;
60
+ }
61
+ this.groups.set(group, settings);
62
+ return settings;
63
+ }
64
+ };
65
+ // ---------------------------------------------------------
66
+ // Server.
67
+ /* @docs:
68
+ @nav: Backend
69
+ @chapter: Rate Limit
70
+ @title: Rate Limit Server
71
+ @desc:
72
+ The rate limit websocket class (server).
73
+
74
+ Rate limiting is handled automatically when the endpoints has it enabled.
75
+ @param:
76
+ @name: ip
77
+ @desc: The rate limit server ip. By default localhost will be used.
78
+ @type: null, string
79
+ @param:
80
+ @name: port
81
+ @desc: The rate limit server port. The default port is `51234`.
82
+ @def: 51234
83
+ @type: number
84
+ @param:
85
+ @name: https
86
+ @desc: To enable https on the server you must define a `https.createServer` configuration.
87
+ @type: boolean
88
+ @param:
89
+ @name: _server
90
+ @ignore: true
91
+ */
92
+ export class RateLimitServer {
93
+ // Static attributes.
94
+ static default_port = 51234;
95
+ // Instance attributes
96
+ ip;
97
+ port;
98
+ https_config;
99
+ server;
100
+ limits;
101
+ // @ts-ignore
102
+ log_source;
103
+ ws;
104
+ clear_caches_interval;
105
+ constructor({ port = RateLimitServer.default_port, ip = null, https = null, _server, }) {
106
+ // Checks.
107
+ vlib.Scheme.verify({
108
+ object: arguments[0],
109
+ check_unknown: true,
110
+ scheme: {
111
+ port: { type: "number", default: RateLimitServer.default_port },
112
+ ip: { type: "string", default: null },
113
+ https: { type: "https", default: null },
114
+ _server: "object",
115
+ }
116
+ });
117
+ // Arguments.
118
+ this.ip = ip;
119
+ this.port = port;
120
+ this.https_config = https;
121
+ this.server = _server;
122
+ // Attributes.
123
+ this.limits = new Map();
124
+ this.log_source = new LogSource("RateLimitServer");
125
+ }
126
+ // Start.
127
+ async start() {
128
+ // Load/generate api key.
129
+ const data = await this.server._sys_db.load("rate_limit", {
130
+ default: {
131
+ api_key: null,
132
+ }
133
+ });
134
+ if (data.api_key == null) {
135
+ data.api_key = String.random(32);
136
+ await this.server._sys_db.save("rate_limit", data);
137
+ }
138
+ // Initialize server.
139
+ this.ws = new vlib.websocket.Server({
140
+ ip: this.ip,
141
+ port: this.port,
142
+ https: this.https_config,
143
+ api_keys: [data.api_key],
144
+ rate_limit: {
145
+ limit: 100,
146
+ interval: 60,
147
+ },
148
+ });
149
+ // Listen event.
150
+ this.ws.on_event("listen", (address) => {
151
+ logger.log(0, this.log_source, `Running on ${address}.`);
152
+ });
153
+ // Error event.
154
+ this.ws.on_event('error', (stream, e) => {
155
+ logger.error(this.log_source, e);
156
+ });
157
+ // Create limit command.
158
+ this.ws.on("limit", async (stream, id, data) => {
159
+ try {
160
+ this.ws.send({
161
+ stream,
162
+ id,
163
+ data: { response: await this.limit(data.ip, data.groups) }
164
+ });
165
+ }
166
+ catch (e) {
167
+ logger.error(this.log_source, e);
168
+ this.ws.send({ stream, id, data: { error: e.message } });
169
+ }
170
+ });
171
+ // Create command: reset & reset_all.
172
+ this.ws.on("reset", async (stream, id, data) => {
173
+ try {
174
+ await this.reset(data.group);
175
+ this.ws.send({ stream, id, data: { error: undefined } });
176
+ }
177
+ catch (e) {
178
+ logger.error(this.log_source, e);
179
+ this.ws.send({ stream, id, data: { error: e.message } });
180
+ }
181
+ });
182
+ this.ws.on("reset_all", async (stream, id) => {
183
+ try {
184
+ await this.reset_all();
185
+ this.ws.send({ stream, id, data: { error: undefined } });
186
+ }
187
+ catch (e) {
188
+ logger.error(this.log_source, e);
189
+ this.ws.send({ stream, id, data: { error: e.message } });
190
+ }
191
+ });
192
+ // Start.
193
+ await this.ws.start();
194
+ // Clear caches once every 1h.
195
+ this.clear_caches_interval = setInterval(() => {
196
+ const remove_after = Date.now() + (3600 * 1000);
197
+ for (const [group, map] of this.limits.entries()) {
198
+ for (const [ip, data] of map.entries()) {
199
+ if (remove_after > data.expiration) {
200
+ map.delete(ip);
201
+ }
202
+ }
203
+ }
204
+ }, 3600 * 1000);
205
+ }
206
+ // Stop.
207
+ async stop() {
208
+ logger.log(0, this.log_source, "Stopping the rate limit server.");
209
+ if (this.clear_caches_interval) {
210
+ clearInterval(this.clear_caches_interval);
211
+ }
212
+ if (this.ws) {
213
+ await this.ws.stop();
214
+ this.ws = undefined;
215
+ }
216
+ }
217
+ // Returns null when rate limit is approved, and returns the unix timestamp (as str) of reset when rate limit has been exceeded.
218
+ async limit(ip, groups = [{ group: null, limit: null, interval: null }]) {
219
+ return groups.iterate((rate_limit) => {
220
+ for (let attempts = 2; attempts >= 0; --attempts) {
221
+ try {
222
+ // Get endpoint limits.
223
+ let limits;
224
+ if (this.limits.has(rate_limit.group)) {
225
+ limits = this.limits.get(rate_limit.group);
226
+ }
227
+ else {
228
+ limits = new Map();
229
+ this.limits.set(rate_limit.group, limits);
230
+ }
231
+ // Limit.
232
+ const now = Date.now();
233
+ if (limits.has(ip)) {
234
+ let data = limits.get(ip);
235
+ if (now >= data.expiration) {
236
+ data = {
237
+ count: 0,
238
+ expiration: now + rate_limit.interval * 1000,
239
+ };
240
+ }
241
+ ++data.count;
242
+ if (data.count > rate_limit.limit) {
243
+ return data.expiration;
244
+ }
245
+ limits.set(ip, data);
246
+ }
247
+ else {
248
+ limits.set(ip, {
249
+ count: 1,
250
+ expiration: now + rate_limit.interval * 1000,
251
+ });
252
+ }
253
+ break;
254
+ }
255
+ catch (e) {
256
+ if (attempts === 0) {
257
+ throw e;
258
+ }
259
+ }
260
+ }
261
+ }) ?? null;
262
+ }
263
+ // Reset a group limit.
264
+ async reset(group) {
265
+ for (const [key, group_limits] of this.limits.entries()) {
266
+ if (key === group) {
267
+ for (const cache of group_limits.values()) {
268
+ cache.count = 0;
269
+ }
270
+ }
271
+ }
272
+ }
273
+ // Reset all rate limit groups.
274
+ async reset_all() {
275
+ for (const group_limits of this.limits.values()) {
276
+ for (const cache of group_limits.values()) {
277
+ cache.count = 0;
278
+ }
279
+ }
280
+ }
281
+ }
282
+ // ---------------------------------------------------------
283
+ // Client.
284
+ /* @docs:
285
+ @nav: Backend
286
+ @chapter: Rate Limit
287
+ @title: Rate Limit Client
288
+ @desc:
289
+ The secondary rate limit class (client).
290
+
291
+ Rate limiting is handled automatically when the endpoints has it enabled.
292
+ @param:
293
+ @name: ip
294
+ @desc: The rate limit server ip. By default localhost will be used.
295
+ @type: null, string
296
+ @param:
297
+ @name: port
298
+ @desc: The rate limit server port. The default port is `51234`.
299
+ @def: 51234
300
+ @type: number
301
+ @param:
302
+ @name: https
303
+ @desc: A boolean indicating if the rate limit server has https enabled.
304
+ @type: boolean
305
+ @param:
306
+ @name: url
307
+ @desc: The websocket url of the server. If defined this takes precedence over parameters `ip` and `port`.
308
+ @type: null, string
309
+ @param:
310
+ @name: _server
311
+ @ignore: true
312
+ */
313
+ export class RateLimitClient {
314
+ ip;
315
+ port;
316
+ https;
317
+ url;
318
+ server;
319
+ // @ts-ignore
320
+ log_source;
321
+ ws;
322
+ constructor({ ip = null, port = RateLimitServer.default_port, https = false, url = null, _server, }) {
323
+ // Checks.
324
+ vlib.Scheme.verify({
325
+ object: arguments[0],
326
+ check_unknown: true,
327
+ scheme: {
328
+ ip: { type: "string", default: null },
329
+ port: { type: "number", default: RateLimitServer.default_port },
330
+ https: { type: "object", default: null },
331
+ url: { type: "string", default: null },
332
+ _server: "object",
333
+ }
334
+ });
335
+ // Arguments.
336
+ this.ip = ip ? ip : "localhost";
337
+ this.port = port;
338
+ this.https = https;
339
+ this.url = url;
340
+ this.server = _server;
341
+ this.log_source = new LogSource("RateLimitClient");
342
+ }
343
+ // Start.
344
+ async start() {
345
+ // Create websocket.
346
+ const data = await this.server._sys_db.load("rate_limit", {
347
+ default: {
348
+ api_key: null,
349
+ }
350
+ });
351
+ if (data.api_key == null) {
352
+ throw new Error("No rate limit api key has been generated yet.");
353
+ }
354
+ // Initialize server.
355
+ this.ws = new vlib.websocket.Client({
356
+ url: this.url ? this.url : `${this.https ? "wss" : "ws"}://${this.ip}:${this.port}`,
357
+ api_key: data.api_key,
358
+ reconnect: {
359
+ interval: 10,
360
+ max_interval: 30000,
361
+ },
362
+ ping: true,
363
+ });
364
+ // Error event.
365
+ this.ws.on_event('error', (e) => {
366
+ logger.error(this.log_source, e);
367
+ });
368
+ // Reconnect event.
369
+ this.ws.on_event('reconnect', (e) => {
370
+ logger.log(0, this.log_source, 'Attempting to reconnect with the server.');
371
+ });
372
+ // Close event.
373
+ this.ws.on_event('close', () => {
374
+ logger.log(0, this.log_source, 'Websocket closed after exhausting all reconnect attempts.');
375
+ process.exit(1); // stop the thread.
376
+ });
377
+ // Connect.
378
+ await this.ws.connect();
379
+ }
380
+ // Stop.
381
+ async stop() {
382
+ logger.log(0, this.log_source, "Stopping the rate limit client.");
383
+ if (this.ws) {
384
+ await this.ws.disconnect();
385
+ this.ws = undefined;
386
+ }
387
+ }
388
+ // Limit function.
389
+ // Returns null when rate limit is approved, and returns the unix timestamp (as str) of reset when rate limit has been exceeded.
390
+ async limit(ip, groups = [{ group: null, limit: null, interval: null }]) {
391
+ const { data } = await this.ws.request({
392
+ command: "limit",
393
+ timeout: 10000,
394
+ data: { ip, groups }
395
+ });
396
+ if (data.error) {
397
+ throw new Error(data.error);
398
+ }
399
+ return data.response;
400
+ }
401
+ // Reset a group limit.
402
+ async reset(group) {
403
+ const { data } = await this.ws.request({
404
+ command: "reset",
405
+ timeout: 10000,
406
+ data: { group }
407
+ });
408
+ if (data.error) {
409
+ throw new Error(data.error);
410
+ }
411
+ }
412
+ // Reset all rate limit groups.
413
+ async reset_all() {
414
+ const { data } = await this.ws.request({
415
+ command: "reset_all",
416
+ timeout: 10000,
417
+ });
418
+ if (data.error) {
419
+ throw new Error(data.error);
420
+ }
421
+ }
422
+ }
423
+ // ---------------------------------------------------------
424
+ // Exports.
425
+ export default RateLimits;
@@ -0,0 +1,48 @@
1
+ export = Request;
2
+ declare class Request {
3
+ constructor(req: any);
4
+ req: any;
5
+ body: string;
6
+ promise: Promise<any>;
7
+ on: any;
8
+ destroy: any;
9
+ set_timeout: any;
10
+ _params: any;
11
+ _is_query_params: boolean;
12
+ _endpoint: any;
13
+ _query_string: any;
14
+ _cookies: {} | undefined;
15
+ _uid: any;
16
+ _parse_endoint(): void;
17
+ _parse_params(): any;
18
+ _parse_cookies(name: any, request: any): null | undefined;
19
+ get ip(): any;
20
+ get port(): any;
21
+ set uid(value: any);
22
+ get uid(): any;
23
+ get endpoint(): any;
24
+ get params(): any;
25
+ param(name: any, type?: null, def?: undefined): any;
26
+ get cookies(): {} | undefined;
27
+ get headers(): any;
28
+ set destroyed(val: any);
29
+ get destroyed(): any;
30
+ set path(val: any);
31
+ get path(): any;
32
+ set method(val: any);
33
+ get method(): any;
34
+ set url(val: any);
35
+ get url(): any;
36
+ set host(val: any);
37
+ get host(): any;
38
+ set protocol(val: any);
39
+ get protocol(): any;
40
+ set reused_socket(val: any);
41
+ get reused_socket(): any;
42
+ set socket(val: any);
43
+ get socket(): any;
44
+ set writable_ended(val: any);
45
+ get writable_ended(): any;
46
+ set writable_finished(val: any);
47
+ get writable_finished(): any;
48
+ }