@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,463 @@
1
+ "use strict";
2
+ /*
3
+ * Author: Daan van den Bergh
4
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.RateLimitClient = exports.RateLimitServer = exports.RateLimits = void 0;
41
+ // ---------------------------------------------------------
42
+ // Imports.
43
+ const _vinc_1 = require("./vinc.js");
44
+ const logger_js_1 = __importStar(require("./logger.js"));
45
+ // ---------------------------------------------------------
46
+ // Rate limit groups.
47
+ /* @docs:
48
+ @nav: Backend
49
+ @chapter: Rate Limit
50
+ @title: Rate Limit Groups
51
+ @desc:
52
+ The rate limit groups for the endpoint.
53
+
54
+ A group can either be registered through this class or by defining the rate limit group on an endpoint using `Endpoint.rate_limit`.
55
+
56
+ This class will be accessable under `Server` attribute `rate_limits`.
57
+ */
58
+ exports.RateLimits = {
59
+ groups: new Map(),
60
+ /* @docs:
61
+ @title: Add group
62
+ @desc:
63
+ Add a rate limit group.
64
+ @param:
65
+ @name: group
66
+ @description: The rate limit group.
67
+ @type: string
68
+ @default: "global"
69
+ @param:
70
+ @name: limit
71
+ @description: The maximum requests per rate limit interval.
72
+ @type: number
73
+ @default: 50
74
+ @param:
75
+ @name: interval
76
+ @description: The rate limit interval in seconds.
77
+ @type: number
78
+ @default: 60
79
+ */
80
+ add({ group = null, limit = null, interval = null, }) {
81
+ const settings = this.groups.has(group)
82
+ ? this.groups.get(group)
83
+ : { group: "", limit: 0, interval: 0 };
84
+ settings.group = group;
85
+ if (limit) {
86
+ settings.limit = limit;
87
+ }
88
+ else if (!settings.limit) {
89
+ settings.limit = 50;
90
+ }
91
+ if (interval) {
92
+ settings.interval = interval;
93
+ }
94
+ else if (!settings.interval) {
95
+ settings.interval = 60;
96
+ }
97
+ this.groups.set(group, settings);
98
+ return settings;
99
+ }
100
+ };
101
+ // ---------------------------------------------------------
102
+ // Server.
103
+ /* @docs:
104
+ @nav: Backend
105
+ @chapter: Rate Limit
106
+ @title: Rate Limit Server
107
+ @desc:
108
+ The rate limit websocket class (server).
109
+
110
+ Rate limiting is handled automatically when the endpoints has it enabled.
111
+ @param:
112
+ @name: ip
113
+ @desc: The rate limit server ip. By default localhost will be used.
114
+ @type: null, string
115
+ @param:
116
+ @name: port
117
+ @desc: The rate limit server port. The default port is `51234`.
118
+ @def: 51234
119
+ @type: number
120
+ @param:
121
+ @name: https
122
+ @desc: To enable https on the server you must define a `https.createServer` configuration.
123
+ @type: boolean
124
+ @param:
125
+ @name: _server
126
+ @ignore: true
127
+ */
128
+ class RateLimitServer {
129
+ // Static attributes.
130
+ static default_port = 51234;
131
+ // Instance attributes
132
+ ip;
133
+ port;
134
+ https_config;
135
+ server;
136
+ limits;
137
+ // @ts-ignore
138
+ log_source;
139
+ ws;
140
+ clear_caches_interval;
141
+ constructor({ port = RateLimitServer.default_port, ip = null, https = null, _server, }) {
142
+ // Checks.
143
+ _vinc_1.vlib.Scheme.verify({
144
+ object: arguments[0],
145
+ check_unknown: true,
146
+ scheme: {
147
+ port: { type: "number", default: RateLimitServer.default_port },
148
+ ip: { type: "string", default: null },
149
+ https: { type: "https", default: null },
150
+ _server: "object",
151
+ }
152
+ });
153
+ // Arguments.
154
+ this.ip = ip;
155
+ this.port = port;
156
+ this.https_config = https;
157
+ this.server = _server;
158
+ // Attributes.
159
+ this.limits = new Map();
160
+ this.log_source = new logger_js_1.LogSource("RateLimitServer");
161
+ }
162
+ // Start.
163
+ async start() {
164
+ // Load/generate api key.
165
+ const data = await this.server._sys_db.load("rate_limit", {
166
+ default: {
167
+ api_key: null,
168
+ }
169
+ });
170
+ if (data.api_key == null) {
171
+ data.api_key = String.random(32);
172
+ await this.server._sys_db.save("rate_limit", data);
173
+ }
174
+ // Initialize server.
175
+ this.ws = new _vinc_1.vlib.websocket.Server({
176
+ ip: this.ip,
177
+ port: this.port,
178
+ https: this.https_config,
179
+ api_keys: [data.api_key],
180
+ rate_limit: {
181
+ limit: 100,
182
+ interval: 60,
183
+ },
184
+ });
185
+ // Listen event.
186
+ this.ws.on_event("listen", (address) => {
187
+ logger_js_1.default.log(0, this.log_source, `Running on ${address}.`);
188
+ });
189
+ // Error event.
190
+ this.ws.on_event('error', (stream, e) => {
191
+ logger_js_1.default.error(this.log_source, e);
192
+ });
193
+ // Create limit command.
194
+ this.ws.on("limit", async (stream, id, data) => {
195
+ try {
196
+ this.ws.send({
197
+ stream,
198
+ id,
199
+ data: { response: await this.limit(data.ip, data.groups) }
200
+ });
201
+ }
202
+ catch (e) {
203
+ logger_js_1.default.error(this.log_source, e);
204
+ this.ws.send({ stream, id, data: { error: e.message } });
205
+ }
206
+ });
207
+ // Create command: reset & reset_all.
208
+ this.ws.on("reset", async (stream, id, data) => {
209
+ try {
210
+ await this.reset(data.group);
211
+ this.ws.send({ stream, id, data: { error: undefined } });
212
+ }
213
+ catch (e) {
214
+ logger_js_1.default.error(this.log_source, e);
215
+ this.ws.send({ stream, id, data: { error: e.message } });
216
+ }
217
+ });
218
+ this.ws.on("reset_all", async (stream, id) => {
219
+ try {
220
+ await this.reset_all();
221
+ this.ws.send({ stream, id, data: { error: undefined } });
222
+ }
223
+ catch (e) {
224
+ logger_js_1.default.error(this.log_source, e);
225
+ this.ws.send({ stream, id, data: { error: e.message } });
226
+ }
227
+ });
228
+ // Start.
229
+ await this.ws.start();
230
+ // Clear caches once every 1h.
231
+ this.clear_caches_interval = setInterval(() => {
232
+ const remove_after = Date.now() + (3600 * 1000);
233
+ for (const [group, map] of this.limits.entries()) {
234
+ for (const [ip, data] of map.entries()) {
235
+ if (remove_after > data.expiration) {
236
+ map.delete(ip);
237
+ }
238
+ }
239
+ }
240
+ }, 3600 * 1000);
241
+ }
242
+ // Stop.
243
+ async stop() {
244
+ logger_js_1.default.log(0, this.log_source, "Stopping the rate limit server.");
245
+ if (this.clear_caches_interval) {
246
+ clearInterval(this.clear_caches_interval);
247
+ }
248
+ if (this.ws) {
249
+ await this.ws.stop();
250
+ this.ws = undefined;
251
+ }
252
+ }
253
+ // Returns null when rate limit is approved, and returns the unix timestamp (as str) of reset when rate limit has been exceeded.
254
+ async limit(ip, groups = [{ group: null, limit: null, interval: null }]) {
255
+ return groups.iterate((rate_limit) => {
256
+ for (let attempts = 2; attempts >= 0; --attempts) {
257
+ try {
258
+ // Get endpoint limits.
259
+ let limits;
260
+ if (this.limits.has(rate_limit.group)) {
261
+ limits = this.limits.get(rate_limit.group);
262
+ }
263
+ else {
264
+ limits = new Map();
265
+ this.limits.set(rate_limit.group, limits);
266
+ }
267
+ // Limit.
268
+ const now = Date.now();
269
+ if (limits.has(ip)) {
270
+ let data = limits.get(ip);
271
+ if (now >= data.expiration) {
272
+ data = {
273
+ count: 0,
274
+ expiration: now + rate_limit.interval * 1000,
275
+ };
276
+ }
277
+ ++data.count;
278
+ if (data.count > rate_limit.limit) {
279
+ return data.expiration;
280
+ }
281
+ limits.set(ip, data);
282
+ }
283
+ else {
284
+ limits.set(ip, {
285
+ count: 1,
286
+ expiration: now + rate_limit.interval * 1000,
287
+ });
288
+ }
289
+ break;
290
+ }
291
+ catch (e) {
292
+ if (attempts === 0) {
293
+ throw e;
294
+ }
295
+ }
296
+ }
297
+ }) ?? null;
298
+ }
299
+ // Reset a group limit.
300
+ async reset(group) {
301
+ for (const [key, group_limits] of this.limits.entries()) {
302
+ if (key === group) {
303
+ for (const cache of group_limits.values()) {
304
+ cache.count = 0;
305
+ }
306
+ }
307
+ }
308
+ }
309
+ // Reset all rate limit groups.
310
+ async reset_all() {
311
+ for (const group_limits of this.limits.values()) {
312
+ for (const cache of group_limits.values()) {
313
+ cache.count = 0;
314
+ }
315
+ }
316
+ }
317
+ }
318
+ exports.RateLimitServer = RateLimitServer;
319
+ // ---------------------------------------------------------
320
+ // Client.
321
+ /* @docs:
322
+ @nav: Backend
323
+ @chapter: Rate Limit
324
+ @title: Rate Limit Client
325
+ @desc:
326
+ The secondary rate limit class (client).
327
+
328
+ Rate limiting is handled automatically when the endpoints has it enabled.
329
+ @param:
330
+ @name: ip
331
+ @desc: The rate limit server ip. By default localhost will be used.
332
+ @type: null, string
333
+ @param:
334
+ @name: port
335
+ @desc: The rate limit server port. The default port is `51234`.
336
+ @def: 51234
337
+ @type: number
338
+ @param:
339
+ @name: https
340
+ @desc: A boolean indicating if the rate limit server has https enabled.
341
+ @type: boolean
342
+ @param:
343
+ @name: url
344
+ @desc: The websocket url of the server. If defined this takes precedence over parameters `ip` and `port`.
345
+ @type: null, string
346
+ @param:
347
+ @name: _server
348
+ @ignore: true
349
+ */
350
+ class RateLimitClient {
351
+ ip;
352
+ port;
353
+ https;
354
+ url;
355
+ server;
356
+ // @ts-ignore
357
+ log_source;
358
+ ws;
359
+ constructor({ ip = null, port = RateLimitServer.default_port, https = false, url = null, _server, }) {
360
+ // Checks.
361
+ _vinc_1.vlib.Scheme.verify({
362
+ object: arguments[0],
363
+ check_unknown: true,
364
+ scheme: {
365
+ ip: { type: "string", default: null },
366
+ port: { type: "number", default: RateLimitServer.default_port },
367
+ https: { type: "object", default: null },
368
+ url: { type: "string", default: null },
369
+ _server: "object",
370
+ }
371
+ });
372
+ // Arguments.
373
+ this.ip = ip ? ip : "localhost";
374
+ this.port = port;
375
+ this.https = https;
376
+ this.url = url;
377
+ this.server = _server;
378
+ this.log_source = new logger_js_1.LogSource("RateLimitClient");
379
+ }
380
+ // Start.
381
+ async start() {
382
+ // Create websocket.
383
+ const data = await this.server._sys_db.load("rate_limit", {
384
+ default: {
385
+ api_key: null,
386
+ }
387
+ });
388
+ if (data.api_key == null) {
389
+ throw new Error("No rate limit api key has been generated yet.");
390
+ }
391
+ // Initialize server.
392
+ this.ws = new _vinc_1.vlib.websocket.Client({
393
+ url: this.url ? this.url : `${this.https ? "wss" : "ws"}://${this.ip}:${this.port}`,
394
+ api_key: data.api_key,
395
+ reconnect: {
396
+ interval: 10,
397
+ max_interval: 30000,
398
+ },
399
+ ping: true,
400
+ });
401
+ // Error event.
402
+ this.ws.on_event('error', (e) => {
403
+ logger_js_1.default.error(this.log_source, e);
404
+ });
405
+ // Reconnect event.
406
+ this.ws.on_event('reconnect', (e) => {
407
+ logger_js_1.default.log(0, this.log_source, 'Attempting to reconnect with the server.');
408
+ });
409
+ // Close event.
410
+ this.ws.on_event('close', () => {
411
+ logger_js_1.default.log(0, this.log_source, 'Websocket closed after exhausting all reconnect attempts.');
412
+ process.exit(1); // stop the thread.
413
+ });
414
+ // Connect.
415
+ await this.ws.connect();
416
+ }
417
+ // Stop.
418
+ async stop() {
419
+ logger_js_1.default.log(0, this.log_source, "Stopping the rate limit client.");
420
+ if (this.ws) {
421
+ await this.ws.disconnect();
422
+ this.ws = undefined;
423
+ }
424
+ }
425
+ // Limit function.
426
+ // Returns null when rate limit is approved, and returns the unix timestamp (as str) of reset when rate limit has been exceeded.
427
+ async limit(ip, groups = [{ group: null, limit: null, interval: null }]) {
428
+ const { data } = await this.ws.request({
429
+ command: "limit",
430
+ timeout: 10000,
431
+ data: { ip, groups }
432
+ });
433
+ if (data.error) {
434
+ throw new Error(data.error);
435
+ }
436
+ return data.response;
437
+ }
438
+ // Reset a group limit.
439
+ async reset(group) {
440
+ const { data } = await this.ws.request({
441
+ command: "reset",
442
+ timeout: 10000,
443
+ data: { group }
444
+ });
445
+ if (data.error) {
446
+ throw new Error(data.error);
447
+ }
448
+ }
449
+ // Reset all rate limit groups.
450
+ async reset_all() {
451
+ const { data } = await this.ws.request({
452
+ command: "reset_all",
453
+ timeout: 10000,
454
+ });
455
+ if (data.error) {
456
+ throw new Error(data.error);
457
+ }
458
+ }
459
+ }
460
+ exports.RateLimitClient = RateLimitClient;
461
+ // ---------------------------------------------------------
462
+ // Exports.
463
+ exports.default = exports.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
+ }