@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,561 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+ import { fileURLToPath } from 'url';
6
+ import { dirname } from 'path';
7
+ if (typeof __dirname === 'undefined')
8
+ var __dirname = dirname(fileURLToPath(new URL('./package.json', import.meta.url)));
9
+ if (typeof __filename === 'undefined')
10
+ var __filename = fileURLToPath(import.meta.url);
11
+ // ---------------------------------------------------------
12
+ // Libraries.
13
+ // const Terser = require("terser");
14
+ // const esbuild = require('esbuild');
15
+ // ---------------------------------------------------------
16
+ // Imports.
17
+ import { vlib } from "./vinc.js";
18
+ import utils from "./utils.js";
19
+ import Meta from "./meta.js";
20
+ import TSCompiler from "./plugins/ts/compiler.js";
21
+ import logger from "./logger.js";
22
+ const log_source = logger.LogSource("View");
23
+ // ---------------------------------------------------------
24
+ // View.
25
+ // @todo add template vars for callback and css and js include files.
26
+ /* @docs:
27
+ * @nav: Backend
28
+ * @chapter: Endpoints
29
+ * @title: View
30
+ * @description: The `View` class can be utilized from within the `Endpoint` parameter `view`.
31
+ * @parameter:
32
+ * @name: source
33
+ * @description: The file path to the client side javascript source code.
34
+ * @type: string
35
+ * @parameter:
36
+ * @name: callback
37
+ * @description: The client side callback function, this function will be executed at the client side. For this feature the `Content-Security-Policy:script-src` must be updated with for example `unsafe-inline`.
38
+ * @type: function
39
+ * @parameter:
40
+ * @name: includes
41
+ * @description:
42
+ * The included static js files.
43
+ *
44
+ * By default the local includes will be embedded into the html page. However, this behaviour can be disabled by passing an include object with attribute `embed = false`.
45
+ * @type: array[string], array[InluceObject]
46
+ * @attributes_type: IncludeObject
47
+ * @attribute:
48
+ * @name: src
49
+ * @description: The source url of the script to include.
50
+ * @type: string
51
+ * @required: true
52
+ * @attribute:
53
+ * @name: embed
54
+ * @description: This attribute can be defined with the value of `false` to disable embedding the endpoint's content into the html page.
55
+ * @type: boolean
56
+ * @required: false
57
+ * @def: true
58
+ * @attribute:
59
+ * @name: **
60
+ * @description: Any other attributes will be assiged to the `<script>` line.
61
+ * @parameter:
62
+ * @name: links
63
+ * @description:
64
+ * The included static css files.
65
+ *
66
+ * By default the local scripts will be embedded into the html page. However, this behaviour can be disabled by passing a link object with attribute `embed = false`.
67
+ * @type: array[string], array[LinkObject]
68
+ * @attributes_type: LinkObject
69
+ * @attribute:
70
+ * @name: href
71
+ * @description: The source url of the link to include.
72
+ * @type: string
73
+ * @required: true
74
+ * @attribute:
75
+ * @name: rel
76
+ * @description: The source url of the link to include.
77
+ * @type: string
78
+ * @required: false
79
+ * @def: stylesheet
80
+ * @attribute:
81
+ * @name: embed
82
+ * @description: This attribute can be defined with the value of `false` to disable embedding the endpoint's content into the html page.
83
+ * @type: boolean
84
+ * @required: false
85
+ * @def: true
86
+ * @attribute:
87
+ * @name: **
88
+ * @description: Any other attributes will be assiged to the `<script>` line.
89
+ * @parameter:
90
+ * @name: templates
91
+ * @description:
92
+ * Templates that will be replace the `callback` code. Templates can be created using the `$TEMPLATE` template style.
93
+ * @warning: Templates will only be used on the code of the `callback` attribute.
94
+ * @parameter:
95
+ * @name: meta
96
+ * @description: The meta information object.
97
+ * @type: Meta
98
+ * @parameter:
99
+ * @name: jquery
100
+ * @description: Include jqeury by default.
101
+ * @type: boolean
102
+ * @parameter:
103
+ * @name: body_style
104
+ * @description: The style of the \<body> element. When left undefined, the static attribute `View.body_style` will be used.
105
+ * @type: null, string
106
+ * @parameter:
107
+ * @name: splash_screen
108
+ * @description: The splash screen settings. When left undefined, the static attribute `View.splash_screen` will be used.
109
+ * @type: null, SplashScreen
110
+ * @parameter:
111
+ * @name: tree_shaking
112
+ * @description: Optimize javascript source code by removing dead code.
113
+ * @type: boolean
114
+ * @parameter:
115
+ * @name: mangle
116
+ * @description: Optimize javascript source code by mangling function names.
117
+ * @type: boolean
118
+ * @parameter:
119
+ * @name: _src
120
+ * @ignore: true
121
+ *
122
+ * @attribute:
123
+ * @name: body_style
124
+ * @description: The style of the \<body> element. This static attribute will be used on all views when defined. However, it can be overridden for a single View by defining the parameter.
125
+ * @type: null, string
126
+ * @attribute:
127
+ * @name: splash_screen
128
+ * @description: The splash screen settings. This static attribute will be used on all views when defined. However, it can be overridden for a single View by defining the parameter.
129
+ * @type: null, SplashScreen
130
+ */
131
+ export class View {
132
+ // Global settings.
133
+ static includes = [];
134
+ static links = [];
135
+ static body_style = null; // css string style.
136
+ static splash_screen = null; // SplashScreen object.
137
+ // Attributes.
138
+ source;
139
+ source_path;
140
+ callback;
141
+ includes;
142
+ links;
143
+ templates;
144
+ meta;
145
+ jquery;
146
+ lang;
147
+ body_style;
148
+ splash_screen;
149
+ tree_shaking;
150
+ mangle;
151
+ _src;
152
+ _embedded_sources;
153
+ is_js_ts_view;
154
+ html;
155
+ raw_html;
156
+ bundle;
157
+ payments;
158
+ // vhighlight?: string | undefined;
159
+ min_device_width;
160
+ _server;
161
+ _endpoint;
162
+ // Constructor.
163
+ constructor({ source = null, callback = null, includes = [], links = [], templates = {}, meta = new Meta(), jquery = false, lang = "en", body_style = null, splash_screen = null, tree_shaking = false, mangle = false, min_device_width = 600, _src = __filename, }) {
164
+ // Arguments.
165
+ this.source = source;
166
+ this.callback = callback;
167
+ this.includes = [...View.includes, ...includes];
168
+ this.links = [...View.links, ...links];
169
+ this.templates = templates;
170
+ this.meta = meta;
171
+ this.jquery = jquery;
172
+ this.lang = lang;
173
+ this.body_style = body_style ?? View.body_style;
174
+ this.splash_screen = splash_screen ?? View.splash_screen;
175
+ this.tree_shaking = tree_shaking;
176
+ this.mangle = mangle;
177
+ this.min_device_width = min_device_width;
178
+ // System arguments.
179
+ this._src = _src;
180
+ this._embedded_sources = [];
181
+ // Clean source, required to match against endpoint's.
182
+ if (this.source != null) {
183
+ this.source_path = new vlib.Path(this.source);
184
+ if (!this.source_path.exists()) {
185
+ throw new Error(`Defined source path "${this.source}" does not exist.`);
186
+ }
187
+ this.source_path = this.source_path.abs();
188
+ this.source = this.source_path.str();
189
+ }
190
+ // Is js/ts bundle view.
191
+ this.is_js_ts_view = this.source != null && /\.(jsx?|tsx?)/.test(this.source_path.extension());
192
+ // Check args.
193
+ if (typeof source !== "string" && typeof callback !== "function") {
194
+ throw Error("Invalid usage, define either parameter \"source\" or \"callback\".");
195
+ }
196
+ // Drop duplicate includes.
197
+ this.includes = this.includes.drop_duplicates();
198
+ // Attributes.
199
+ this.html = undefined;
200
+ this.bundle = undefined;
201
+ }
202
+ // Initialize.
203
+ _initialize(server, endpoint) {
204
+ if (server === undefined) {
205
+ throw Error("Invalid usage, define parameter \"server\".");
206
+ }
207
+ if (endpoint === undefined) {
208
+ throw Error("Invalid usage, define parameter \"endpoint\".");
209
+ }
210
+ this._server = server;
211
+ this._endpoint = endpoint;
212
+ }
213
+ // Bundle the compiled typescript / javascript view.
214
+ async _bundle_ts(dist_path, bundle = null) {
215
+ // Server & endpoint.
216
+ if (this._server === undefined || this._endpoint === undefined) {
217
+ throw Error("View has not been initialized with \"View._initialize()\" yet.");
218
+ }
219
+ // Bundle.
220
+ const had_bundle = this.bundle !== undefined;
221
+ if (bundle != null) {
222
+ // also accept already bundled for server.js in case multiple endpoint paths serve the same bundle.
223
+ this.bundle = bundle;
224
+ }
225
+ else {
226
+ logger.log(2, log_source, `Bundling entry path "${dist_path}".`);
227
+ this.bundle = await TSCompiler.bundle({
228
+ entry_paths: [dist_path],
229
+ minify: this._server.production,
230
+ platform: "browser",
231
+ // format: "esm",
232
+ format: "iife",
233
+ target: "es2021",
234
+ // target: "esnext",
235
+ // sourcemap: this._server.production ? false : "inline",
236
+ extract_inputs: true, // since bundle.inputs is used by server.js.
237
+ tree_shaking: true,
238
+ });
239
+ if (this.bundle.errors.length > 0) {
240
+ logger.log(0, log_source, `Encountered an error while bundling "${this.source}".`);
241
+ this.bundle.debug();
242
+ return;
243
+ }
244
+ }
245
+ // Set options based on inputs.
246
+ this.payments = this.bundle.inputs.find((path) => path.endsWith("/modules/paddle.js"));
247
+ // this.vhighlight = this.bundle.inputs.find((path: string) => path.endsWith("/vhighlight.js"));
248
+ // Rebuild html.
249
+ await this._build_html();
250
+ if (had_bundle) {
251
+ logger.log(0, log_source, `Refreshing endpoint ${this._endpoint.method}:${this._endpoint.endpoint}.`);
252
+ }
253
+ else {
254
+ logger.log(1, log_source, `Refreshing endpoint ${this._endpoint.method}:${this._endpoint.endpoint}.`);
255
+ }
256
+ // Response.
257
+ return this.bundle;
258
+ }
259
+ // Build html.
260
+ async _build_html() {
261
+ // Server & endpoint.
262
+ if (this._server === undefined || this._endpoint === undefined) {
263
+ throw Error("View has not been initialized with \"View._initialize()\" yet.");
264
+ }
265
+ // Vars.
266
+ const line_break = this._server.production ? "" : "\n";
267
+ const has_bundle = this.bundle != null && typeof this.bundle === "object";
268
+ // Initialize html.
269
+ this.html = "";
270
+ // Doctype.
271
+ this.html += `<!DOCTYPE html><html style='min-width:100%;min-height:100%;' lang='${this.lang}'>${line_break}`;
272
+ // Headers.
273
+ this.html += `<head>${line_break}`;
274
+ // Meta.
275
+ if (this.meta) {
276
+ this.html += this.meta.build_html(this._server.full_domain) + line_break;
277
+ }
278
+ // this.html = "Hello World!";
279
+ // return;
280
+ // ------------------------------------------------------------------------------------------
281
+ // Stylesheets & links.
282
+ // Embed stylesheet.
283
+ const embed_stylesheet = (url) => {
284
+ let embed;
285
+ if (url != null &&
286
+ url.charAt(0) === "/") {
287
+ for (const endpoint of this._server.endpoints.values()) {
288
+ if (url === endpoint.endpoint && (endpoint.raw_data != null || endpoint.data != null)) {
289
+ embed = endpoint.raw_data || endpoint.data;
290
+ }
291
+ }
292
+ }
293
+ if (embed) {
294
+ this.html += `<style>${line_break}${embed}${line_break}</style>${line_break}`;
295
+ this._embedded_sources.push(url);
296
+ return true;
297
+ }
298
+ return false;
299
+ };
300
+ // Include a link async.
301
+ let include_links_script = null;
302
+ const include_link_async = (link) => {
303
+ if (include_links_script == null) {
304
+ include_links_script = "async function __incl_lnk(args){var link = document.createElement('link');for (let key in args) {if (args.hasOwnProperty(key)){link.setAttribute(key,args[key])}}document.head.appendChild(link)}" + line_break;
305
+ }
306
+ if (link.rel == null) {
307
+ link.rel = "stylesheet";
308
+ }
309
+ include_links_script += `__incl_lnk(${JSON.stringify(link)});${line_break}`;
310
+ };
311
+ // Stylesheets.
312
+ embed_stylesheet("/volt/volt.css");
313
+ embed_stylesheet("/vhighlight/vhighlight.css");
314
+ if (this.payments && this._server.payments) {
315
+ if (this._server.payments.type === "adyen") {
316
+ include_link_async({
317
+ rel: "stylesheet",
318
+ href: `https://checkoutshopper-${this._server.production ? "live" : "test"}.adyen.com/checkoutshopper/sdk/5.53.2/adyen.css`,
319
+ integrity: "sha384-9EdBqZRrjozkt+Be5ycjHBTi+4DYrafpC1KyPnNyTBfjBIZ5+oMp8BbgvPLGgsE0",
320
+ crossorigin: "anonymous",
321
+ });
322
+ }
323
+ }
324
+ // Add custom stylesheet for minimum device width on smaller screens.
325
+ if (this.min_device_width != null) {
326
+ this.html += `
327
+ <script>
328
+ let has_min_width = false;
329
+ const viewport = document.querySelector('meta[name="viewport"]');
330
+ function set_min_width() {
331
+ const device_width = window.innerWidth;
332
+ console.log("Device width [" + device_width + "] below min_device_width [${this.min_device_width} =", (device_width <= ${this.min_device_width}).toString() + "]");
333
+ if (device_width <= ${this.min_device_width}) {
334
+ const content = 'width=${this.min_device_width}, initial-scale=' + (device_width / ${this.min_device_width});
335
+ console.log("Below ${this.min_device_width}", {content, width: device_width, has_min_width, viewport: viewport.getAttribute('content')});
336
+ if (viewport.getAttribute('content') !== content) {
337
+ console.log('set min width viewport', device_width, device_width / ${this.min_device_width})
338
+ viewport.setAttribute('content', content);
339
+ has_min_width = true;
340
+ }
341
+ } else if (has_min_width) {
342
+ console.log('disable min width viewport', device_width)
343
+ viewport.setAttribute('content', 'width=device-width, initial-scale=1');
344
+ has_min_width = false;
345
+ }
346
+ }
347
+ let timeout_load; window.addEventListener('load', () => {clearTimeout(timeout_load); timeout_load = setTimeout(set_min_width, 25); } );
348
+ let timeout_resize; window.addEventListener('resize', () => {clearTimeout(timeout_resize); timeout_resize = setTimeout(set_min_width, 25); } );
349
+ set_min_width();
350
+ </script>
351
+ `.dedent();
352
+ }
353
+ // this.html += `<script>
354
+ // // This version prevents the infinite loop
355
+ // let resizeTimeout;
356
+ // let viewportChangeInProgress = false;
357
+ // const viewport = document.querySelector('meta[name="viewport"]');
358
+ // const originalContent = viewport.getAttribute('content');
359
+ // function set_min_width() {
360
+ // // Don't run if we're already processing a viewport change
361
+ // if (viewportChangeInProgress) return;
362
+ // // Clear any pending resize timeouts
363
+ // clearTimeout(resizeTimeout);
364
+ // // Set a small delay to prevent rapid successive calls
365
+ // resizeTimeout = setTimeout(() => {
366
+ // viewportChangeInProgress = true;
367
+ // if (window.innerWidth < 400) {
368
+ // // Only update if needed
369
+ // viewport.setAttribute('content', \`width = 400, initial - scale\${ window.innerWidth / 400 }, maximum - scale=1\`);
370
+ // } else {
371
+ // // Restore original viewport
372
+ // viewport.setAttribute('content', originalContent);
373
+ // }
374
+ // // Allow future updates after a delay
375
+ // setTimeout(() => {
376
+ // viewportChangeInProgress = false;
377
+ // }, 300);
378
+ // }, 200);
379
+ // }
380
+ // window.addEventListener('DOMContentLoaded', set_min_width);
381
+ // window.addEventListener('orientationchange', set_min_width);
382
+ // </script>`
383
+ // Custom links.
384
+ this.links.forEach((url) => {
385
+ if (typeof url === "string") {
386
+ this.html += `<link rel="stylesheet" href="${url}">`;
387
+ }
388
+ else if (typeof url === "object") {
389
+ // Embed content.
390
+ if ((typeof url === "object" && url.rel === "stylesheet" && url.embed !== true && typeof url.href === "string") &&
391
+ embed_stylesheet(utils.clean_endpoint(url.href))) { /* skip */ }
392
+ // Create link.
393
+ else {
394
+ if (url.async) {
395
+ include_link_async(url);
396
+ }
397
+ else {
398
+ this.html += "<link";
399
+ Object.keys(url).forEach((key) => {
400
+ if (key !== "embed") {
401
+ this.html += ` ${key}="${url[key]}"`;
402
+ }
403
+ });
404
+ this.html += ">" + line_break;
405
+ }
406
+ }
407
+ }
408
+ else {
409
+ throw Error("Invalid type for a css include, the valid value types are \"string\" and \"object\".");
410
+ }
411
+ });
412
+ // Add include links script.
413
+ if (include_links_script) {
414
+ this.html += `<script>${line_break}${include_links_script}${line_break}</script>${line_break}`;
415
+ }
416
+ // End headers.
417
+ this.html += "</head>" + line_break;
418
+ // ------------------------------------------------------------------------------------------
419
+ // Body.
420
+ // Body.
421
+ this.html += "<body id='body' style='width:100vw;height:100vh;margin:0;padding:0;";
422
+ if (this.body_style != null) {
423
+ this.html += this.body_style;
424
+ }
425
+ this.html += "'>" + line_break;
426
+ // Create splash screen.
427
+ if (this.splash_screen != null) {
428
+ this.html += this.splash_screen.html + line_break;
429
+ }
430
+ // ------------------------------------------------------------------------------------------
431
+ // Include scripts.
432
+ // Embed the data of an endpoint.
433
+ // Returns `false` when the endpoint is not found.
434
+ const embed_script = (url) => {
435
+ let embed;
436
+ for (const endpoint of this._server.endpoints.values()) {
437
+ if (url === endpoint.endpoint &&
438
+ (endpoint.raw_data != null || endpoint.data != null)) {
439
+ embed = endpoint;
440
+ }
441
+ }
442
+ // Check if the endpoint has data or raw data to embed.
443
+ if (embed && (embed.raw_data || embed.data)) {
444
+ // Dont embed code.
445
+ if (embed.content_type === "application/javascript") {
446
+ this.html += `<script>${line_break}${embed.raw_data || embed.data}${line_break}</script>${line_break}`;
447
+ }
448
+ else {
449
+ this.html += `<script type='${embed.content_type}'>${line_break}${embed.raw_data || embed.data}${line_break}</script>${line_break}`;
450
+ }
451
+ this._embedded_sources.push(url);
452
+ return true;
453
+ }
454
+ return false;
455
+ };
456
+ // Include js.
457
+ let include_js_script = `async function __volt_incl_js(url, async = true) {var script=document.createElement('script');if(async){script.async = true;}script.src=url;document.head.appendChild(script);};${line_break}`;
458
+ // 3rd party js includes.
459
+ if (this.jquery) {
460
+ // Keep first since it needs to be included before volt.
461
+ this.html += "<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js'></script>" + line_break;
462
+ }
463
+ if (this._server.google_tag !== undefined) {
464
+ // this.html += `<script async src="https://www.googletagmanager.com/gtag/js?id=${this._server.google_tag}" onload='volt.google._initialize()'></script>`;
465
+ include_js_script += `__volt_incl_js("https://www.googletagmanager.com/gtag/js?id=${this._server.google_tag}");${line_break}`;
466
+ }
467
+ // Primary volt includes do not add them to cached_code since they need to be included before any other includes.
468
+ // Otherwise when including several files, most of them embedded and one not, then the not embedded will not have access to volt.
469
+ // Since volt is
470
+ // embed_script("/volt/volt.js", false);
471
+ // Add volt static aspect ratios.
472
+ // @todo volt.static
473
+ this.html += `<script>${line_break}window.volt_statics_aspect_ratios = ${JSON.stringify(Object.fromEntries(this._server.statics_aspect_ratios))}${line_break}</script>${line_break}`;
474
+ // Embed other scripts.
475
+ if (this._server.payments) {
476
+ if (this._server.payments.type === "paddle") {
477
+ // embed_script("/volt/payments/paddle.js", false); // no longer required due to auto imports.
478
+ if (this.payments) {
479
+ include_js_script += `__volt_incl_js("https://cdn.paddle.com/paddle/v2/paddle.js");${line_break}`;
480
+ }
481
+ }
482
+ }
483
+ // Add the include js script.
484
+ this.html += `<script>${line_break}${include_js_script.trimEnd()}${line_break}</script>${line_break}`;
485
+ // Additional js includes.
486
+ this.includes.forEach((url) => {
487
+ // Embed content.
488
+ if (typeof url === "string" && embed_script(url)) { /* skip. */ }
489
+ // Include.
490
+ else {
491
+ if (typeof url === "string") {
492
+ this.html += `<script src='${url}'></script>${line_break}`;
493
+ }
494
+ else if (typeof url === "object") {
495
+ this.html += "<script";
496
+ Object.keys(url).forEach((key) => {
497
+ if (key !== "embed") {
498
+ this.html += ` ${key}="${url[key]}"`;
499
+ }
500
+ });
501
+ this.html += "></script>" + line_break;
502
+ }
503
+ else {
504
+ throw Error("Invalid type for a js include, the valid value types are \"string\" and \"object\".");
505
+ }
506
+ }
507
+ });
508
+ // Add direct source code.
509
+ if (has_bundle && typeof this.bundle.code === "string") {
510
+ this.html += `<script type='module'>${line_break}${this.bundle.code}${line_break}</script>${line_break}`;
511
+ }
512
+ // Include the source.
513
+ else if (typeof this.source === "string") {
514
+ this.html += `<script>${line_break}${await new vlib.Path(this.source).load()}${line_break}</script>${line_break}`;
515
+ }
516
+ // JS code.
517
+ else if (this.callback != null) {
518
+ let code = this.callback.toString();
519
+ // @deprecated compile using vhighlight, now esbuild is used for bundling, callback is not supported yet.
520
+ // // Fill templates.
521
+ // const code_hash = this._server.hash(code);
522
+ // // Check cache.
523
+ // const { cache_path, cache_hash, cache_data } = utils.get_compiled_cache(this._server.domain, this._endpoint.method, this._endpoint.endpoint);
524
+ // if (cache_data && code_hash === cache_hash) {
525
+ // code = cache_data;
526
+ // } else {
527
+ // // Compile.
528
+ // const compiler = new vhighlight.JSCompiler({
529
+ // line_breaks: true,
530
+ // double_line_breaks: true,
531
+ // comments: false,
532
+ // white_space: false,
533
+ // })
534
+ // try {
535
+ // code = compiler.compile_code(code, this._src);
536
+ // } catch (err) {
537
+ // console.error("JS Compile error:");
538
+ // console.error(err);
539
+ // }
540
+ // // Cache for restarts.
541
+ // utils.set_compiled_cache(cache_path, code, code_hash);
542
+ // }
543
+ // Add.
544
+ this.html += `<script>${line_break}(${code})()${line_break}</script>${line_break}`;
545
+ // cached_code += `;(${code})();`;
546
+ }
547
+ // Close body.
548
+ this.html += "</body>" + line_break;
549
+ // End.
550
+ this.html += "</html>" + line_break;
551
+ }
552
+ // Serve a client.
553
+ _serve(stream, status_code = 200) {
554
+ stream.send({
555
+ status: status_code,
556
+ headers: { "Content-Type": "text/html" },
557
+ data: this.html,
558
+ });
559
+ }
560
+ }
561
+ export default View;
@@ -0,0 +1,2 @@
1
+ export * as vlib from "@vandenberghinc/vlib";
2
+ export * as vhighlight from "@vandenberghinc/vhighlight";
@@ -0,0 +1,2 @@
1
+ export * as vlib from "../../../vlib/js/dist/esm/vlib.js";
2
+ export * as vhighlight from "../../../vhighlight/dist/esm/vhighlight.js";
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+ export * as vlib from "../../../vlib/js/dist/esm/vlib.js";
6
+ export * as vhighlight from "../../../vhighlight/dist/esm/vhighlight.js";
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+ export * as vlib from "@vandenberghinc/vlib";
6
+ export * as vhighlight from "@vandenberghinc/vhighlight";
@@ -0,0 +1,15 @@
1
+ export * from "./status.js";
2
+ export * from "./meta.js";
3
+ export * from "./splash_screen.js";
4
+ export * from "./view.js";
5
+ export * from "./stream.js";
6
+ export * from "./endpoint.js";
7
+ export * from "./server.js";
8
+ export * from "./database.js";
9
+ export * from "./rate_limit.js";
10
+ export * from "./logger.js";
11
+ export * from "./file_watcher.js";
12
+ export * from "./frontend.js";
13
+ export * as Mail from "./plugins/mail.js";
14
+ export * as TypeScript from "./plugins/ts/compiler.js";
15
+ export { FrontendError, APIError } from "./utils.js";
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+ // ---------------------------------------------------------
6
+ // Exports.
7
+ // Create volt lib.
8
+ export { FrontendError, APIError } from "./utils.js";
9
+ export * from "./status.js";
10
+ export * from "./meta.js";
11
+ export * from "./splash_screen.js";
12
+ export * from "./view.js";
13
+ export * from "./stream.js";
14
+ export * from "./endpoint.js";
15
+ export * from "./server.js";
16
+ export * from "./database.js";
17
+ export * from "./rate_limit.js";
18
+ export * from "./logger.js";
19
+ export * from "./file_watcher.js";
20
+ export * as Mail from "./plugins/mail.js";
21
+ // export * as PDF from "./plugins/pdf.js"
22
+ export * as TypeScript from "./plugins/ts/compiler.js";
23
+ export * from "./frontend.js";
@@ -0,0 +1,10 @@
1
+ export declare class Blacklist {
2
+ private api_key;
3
+ private cache;
4
+ constructor({ api_key, // honey pot api key
5
+ _server, }: {
6
+ api_key: string;
7
+ _server: any;
8
+ });
9
+ verify(ip: string): Promise<boolean>;
10
+ }