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