@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,762 @@
1
+ "use strict";
2
+ /*
3
+ * Author: Daan van den Bergh
4
+ * Copyright: © 2024 - 2024 Daan van den Bergh.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.Preprocessing = void 0;
41
+ exports.preprocess = preprocess;
42
+ exports.volt_auto_imports = volt_auto_imports;
43
+ const ts = __importStar(require("typescript"));
44
+ const _vinc_1 = require("../../vinc.js");
45
+ const _vinc_2 = require("../../vinc.js");
46
+ const utils_js_1 = require("../../utils.js");
47
+ const url_1 = require("url");
48
+ const path_1 = require("path");
49
+ var __dirname = typeof __dirname !== 'undefined' ? __dirname : (0, path_1.dirname)((0, url_1.fileURLToPath)(new URL('./package.json', import.meta.url)));
50
+ exports.Preprocessing = __importStar(require("./preprocessing.js"));
51
+ /*
52
+ * Preprocesses the input text, replacing non-string numeric literals
53
+ * suffixed with units and hex color codes with string literals.
54
+ */
55
+ function preprocess(path, input, opts = {}) {
56
+ const { macros = true, templates = undefined, } = opts;
57
+ // Initialize output and batch
58
+ let output = [];
59
+ let batch = [];
60
+ let State;
61
+ (function (State) {
62
+ State[State["code"] = 0] = "code";
63
+ State[State["string"] = 1] = "string";
64
+ State[State["comment"] = 2] = "comment";
65
+ State[State["regex"] = 3] = "regex";
66
+ })(State || (State = {}));
67
+ let state = State.code;
68
+ // Function to process the accumulated batch
69
+ const process_code_batch = () => {
70
+ let str = batch.join('')
71
+ // Replace numeric suffix to string.
72
+ .replace(/\b\d+(\.\d+)?(em\b|rem\b|px\b|vh\b|vw\b|%)/g, '"$&"')
73
+ // Replace hex colors.
74
+ .replace(/#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\b/g, '"$&"');
75
+ // Append the transformed segment to output
76
+ output.push(str);
77
+ // Clear the batch
78
+ batch = [];
79
+ };
80
+ // Process string batch.
81
+ const process_string_batch = () => {
82
+ let BaseIndentState;
83
+ (function (BaseIndentState) {
84
+ BaseIndentState[BaseIndentState["init"] = 0] = "init";
85
+ })(BaseIndentState || (BaseIndentState = {}));
86
+ let str = batch.join('')
87
+ // Dedent ``` code blocks.
88
+ .replace(/```([\s\S]*?)```/g, (match, code) => {
89
+ // console.log("===========================\nMatched\n"+ code)
90
+ // Remove leading and trailing empty lines
91
+ // Dont use trim() since that would also remove start indent.
92
+ code = code.replace(/^\s*\n|\s*$/g, '');
93
+ // Match the base indentation (4 spaces) from the first non-empty line
94
+ const base_indent_match = code.match(/^([ \t]+)/m);
95
+ if (!base_indent_match)
96
+ return '`' + code + '`'; // No base indent found
97
+ const base_indent = base_indent_match[1];
98
+ // Ensure base_indent contains only spaces
99
+ // if (/\t/.test(base_indent)) {
100
+ // throw new Error('Invalid indentation: Tabs are not allowed.');
101
+ // }
102
+ // Create a regex to remove the base_indent from the start of each line
103
+ const dedent_regex = new RegExp(`^${base_indent}`, 'gm');
104
+ // Dedent the code by removing base_indent
105
+ const dedented_code = code.replace(dedent_regex, '');
106
+ return `\`${dedented_code}\``;
107
+ });
108
+ // Append the transformed segment to output
109
+ output.push(str);
110
+ // Clear the batch
111
+ batch = [];
112
+ };
113
+ // Initialize the Iterator
114
+ new _vinc_2.vhighlight.Iterator({
115
+ tokenizer: _vinc_2.vhighlight.js,
116
+ language: _vinc_2.vhighlight.js.language,
117
+ code: input,
118
+ callback(s) {
119
+ // Get new state.
120
+ let new_state;
121
+ if (s.is_str || s.is_template_literal) {
122
+ new_state = State.string;
123
+ }
124
+ else if (s.is_comment || s.is_multi_line_comment) {
125
+ new_state = State.comment;
126
+ }
127
+ else if (s.is_str) {
128
+ new_state = State.regex;
129
+ }
130
+ else {
131
+ new_state = State.code;
132
+ }
133
+ // Process new state.
134
+ if (new_state !== state) {
135
+ if (state === State.code) {
136
+ process_code_batch();
137
+ }
138
+ else if (state === State.string) {
139
+ process_string_batch();
140
+ }
141
+ state = new_state;
142
+ }
143
+ // Push character.
144
+ if (state === State.code || state === State.string) {
145
+ batch.push(s.char);
146
+ }
147
+ else {
148
+ output.push(s.char);
149
+ }
150
+ },
151
+ }).iterate();
152
+ // Process any remaining batch after iteration
153
+ if (batch.length > 0) {
154
+ if (state === State.code) {
155
+ process_code_batch();
156
+ }
157
+ else if (state === State.string) {
158
+ process_string_batch();
159
+ }
160
+ }
161
+ let content = output.join("");
162
+ // Apply plugins.
163
+ content = _global_interface_plugin(content);
164
+ // if (path.includes("ui.ts")) {
165
+ // console.log(content)
166
+ // }
167
+ // Process macros.
168
+ if (macros) {
169
+ content = _apply_macro_preprocessing(path, content);
170
+ }
171
+ // Fill templates.
172
+ if (templates !== undefined && Object.keys(templates.length > 0)) {
173
+ content = utils_js_1.Utils.fill_templates(content, templates, true);
174
+ }
175
+ // Response.
176
+ return content;
177
+ }
178
+ // Split macro args `X, X` args.
179
+ function _split_macro_args(data) {
180
+ // Process args.
181
+ let args = [""];
182
+ const process_arg = () => {
183
+ let arg = args[args.length - 1].trim();
184
+ if ((arg.charAt(0) === "'" && arg.charAt(arg.length - 1) === "'") ||
185
+ (arg.charAt(0) === "\"" && arg.charAt(arg.length - 1) === "\"")) {
186
+ arg = arg.slice(1, -1);
187
+ }
188
+ args[args.length - 1] = arg;
189
+ };
190
+ // Iterate.
191
+ new _vinc_2.vhighlight.Iterator({
192
+ tokenizer: _vinc_2.vhighlight.js,
193
+ language: _vinc_2.vhighlight.js.language,
194
+ code: data,
195
+ callback(state) {
196
+ if (state.char === "," &&
197
+ state.curly_depth === 0 &&
198
+ state.bracket_depth === 0 &&
199
+ state.parenth_depth === 0 &&
200
+ !state.is_str &&
201
+ !state.is_regex &&
202
+ !state.is_comment &&
203
+ !state.is_multi_line_comment) {
204
+ process_arg();
205
+ args.push("");
206
+ }
207
+ else {
208
+ args[args.length - 1] += state.char;
209
+ }
210
+ },
211
+ }).iterate();
212
+ // Return empty array.
213
+ if (args.length === 1 && args[0] === "") {
214
+ return [];
215
+ }
216
+ // Process arg.
217
+ if (args.length > 0) {
218
+ process_arg();
219
+ }
220
+ // Return args.
221
+ return args;
222
+ }
223
+ /*
224
+ * Fill all #macro statements.
225
+ */
226
+ function _apply_macro_preprocessing(path, data) {
227
+ // ----------------------------------------
228
+ // Extract macro statements.
229
+ let output = [], is_preprocessor = null;
230
+ const macros = {};
231
+ let iterator = new _vinc_2.vhighlight.Iterator({
232
+ tokenizer: _vinc_2.vhighlight.js,
233
+ language: _vinc_2.vhighlight.js.language,
234
+ code: data,
235
+ allow_preprocessors: true,
236
+ callback(state) {
237
+ // End of preprocessor.
238
+ if (is_preprocessor !== undefined && !state.is_preprocessor) {
239
+ // Extract name & value.
240
+ let Modes;
241
+ (function (Modes) {
242
+ Modes[Modes["type"] = 0] = "type";
243
+ Modes[Modes["pre_name"] = 1] = "pre_name";
244
+ Modes[Modes["name"] = 2] = "name";
245
+ Modes[Modes["args"] = 3] = "args";
246
+ Modes[Modes["value"] = 4] = "value";
247
+ })(Modes || (Modes = {}));
248
+ ;
249
+ let type = "", name = "", value = "", full = "", args = "", args_depth = [0, 0, 0];
250
+ let s = is_preprocessor, mode = Modes.type;
251
+ while (s != null && s != state) {
252
+ if (mode === Modes.type) {
253
+ if (s.is_whitespace) {
254
+ mode = Modes.pre_name;
255
+ }
256
+ else {
257
+ type += s.char;
258
+ }
259
+ }
260
+ else if (mode === Modes.pre_name && !s.is_whitespace) {
261
+ mode = Modes.name;
262
+ name += s.char;
263
+ }
264
+ else if (mode === Modes.name) {
265
+ if (s.char === "(") {
266
+ mode = Modes.args;
267
+ args_depth = [s.curly_depth, s.parenth_depth - 1, s.bracket_depth];
268
+ }
269
+ else if (s.is_whitespace &&
270
+ s.curly_depth === is_preprocessor.curly_depth &&
271
+ s.parenth_depth === is_preprocessor.parenth_depth &&
272
+ s.bracket_depth === is_preprocessor.bracket_depth) {
273
+ mode = Modes.value;
274
+ }
275
+ else {
276
+ name += s.char;
277
+ }
278
+ }
279
+ else if (mode === Modes.args) {
280
+ if (s.char === ")" &&
281
+ s.curly_depth === args_depth[0] &&
282
+ s.parenth_depth === args_depth[1] &&
283
+ s.bracket_depth === args_depth[2]) {
284
+ mode = Modes.name;
285
+ }
286
+ else {
287
+ args += s.char;
288
+ }
289
+ }
290
+ else if (mode === Modes.value) {
291
+ if (s.char === "\\" && s.next?.is_line_break) {
292
+ // skip.
293
+ }
294
+ else {
295
+ value += s.char;
296
+ }
297
+ }
298
+ full += s.char;
299
+ s = s.next;
300
+ }
301
+ if (type === "#macro") {
302
+ name = name.trim();
303
+ macros[name] = {
304
+ name,
305
+ value: value.trim(),
306
+ args: args.length === 0 ? [] : _split_macro_args(args),
307
+ };
308
+ }
309
+ else {
310
+ output.push(full);
311
+ }
312
+ is_preprocessor = undefined;
313
+ }
314
+ // Start of preprocessor.
315
+ else if (state.is_preprocessor) {
316
+ if (is_preprocessor === undefined) {
317
+ is_preprocessor = state;
318
+ }
319
+ return; // dont add to new data.
320
+ }
321
+ output.push(state.char);
322
+ },
323
+ });
324
+ iterator.iterate();
325
+ data = output.join("");
326
+ // ----------------------------------------
327
+ // Fill macro statements.
328
+ output.length = 0;
329
+ let buff = [];
330
+ // Construct regex to match preprocessor variables
331
+ const macros_keys = Object.keys(macros);
332
+ const regex = new RegExp(`(\\#?|\\b)(${macros_keys.join("|")})(\\([^)]*\\)|\\b)`, 'g');
333
+ // Fill macro replacements.
334
+ const make_replacements = (buff) => {
335
+ return buff
336
+ .join('')
337
+ .replace(regex, (match, m1, m2, m3) => {
338
+ const macro = macros[m2];
339
+ if (macro == null) {
340
+ return match;
341
+ }
342
+ let value = "";
343
+ if (m1.charAt(0) !== "#") {
344
+ value = m1;
345
+ }
346
+ value += macro.value;
347
+ if (m3 && m3.charAt(0) === "(" && macro.args.length > 0) {
348
+ let args = _split_macro_args(m3.slice(1, -1));
349
+ for (let i = 0; i < macro.args.length; i++) {
350
+ value = value.replace(new RegExp(`\\b${macro.args[i]}\\b`, 'g'), args[i] ?? "");
351
+ }
352
+ return value;
353
+ }
354
+ return value;
355
+ });
356
+ };
357
+ // Iterator that processes the code
358
+ iterator = new _vinc_2.vhighlight.Iterator({
359
+ tokenizer: _vinc_2.vhighlight.js,
360
+ language: _vinc_2.vhighlight.js.language,
361
+ code: data,
362
+ allow_preprocessors: true,
363
+ callback(state) {
364
+ // Accumulate real code into the buffer
365
+ if (!state.is_str && !state.is_regex && !state.is_comment && !state.is_multi_line_comment) {
366
+ buff.push(state.char);
367
+ }
368
+ else {
369
+ // Process code buff.
370
+ if (buff.length > 0) {
371
+ output.push(make_replacements(buff));
372
+ buff = [];
373
+ }
374
+ // Push non-code characters directly to output (strings, comments, etc.)
375
+ output.push(state.char);
376
+ }
377
+ },
378
+ });
379
+ // Run the iterator to process the code
380
+ iterator.iterate();
381
+ // Process code buff.
382
+ if (buff.length > 0) {
383
+ output.push(make_replacements(buff));
384
+ }
385
+ // Return the processed output as a joined string
386
+ return output.join('');
387
+ }
388
+ // Process all code sections.
389
+ // function _process_code_sections(path: string, data: string, callback: ((code: string) => string) | ((code: string) => string)[]): string {
390
+ // let batch: string[] = [];
391
+ // let is_code = true, start_index: number | undefined = undefined;
392
+ // new vhighlight.Iterator({
393
+ // tokenizer: vhighlight.js,
394
+ // code: data,
395
+ // callback(state) {
396
+ // if (
397
+ // state.is_str ||
398
+ // state.is_regex ||
399
+ // state.is_comment ||
400
+ // state.is_multi_line_comment
401
+ // ) {
402
+ // if (start_index !== undefined) {
403
+ // let code: string = data.slice(start_index, state.index);
404
+ // if (Array.isArray(callback)) {
405
+ // for (const c of callback) {
406
+ // code = c(code);
407
+ // }
408
+ // } else {
409
+ // code = callback(code);
410
+ // }
411
+ // batch.push(code);
412
+ // start_index = undefined;
413
+ // }
414
+ // batch.push(state.char);
415
+ // } else {
416
+ // if (start_index === undefined) {
417
+ // start_index = state.index;
418
+ // }
419
+ // }
420
+ // },
421
+ // }).iterate();
422
+ // if (start_index !== undefined) {
423
+ // let code: string = data.slice(start_index);
424
+ // if (Array.isArray(callback)) {
425
+ // for (const c of callback) {
426
+ // code = c(code);
427
+ // }
428
+ // } else {
429
+ // code = callback(code);
430
+ // }
431
+ // batch.push(code);
432
+ // }
433
+ // return batch.join("");
434
+ // }
435
+ /* Apply global interfaces. Only used as internal plugin for preprocess().
436
+ With this plugin interfaces can be placed anywhere inside a code file supporting the following syntax.
437
+
438
+ [interface myinterface {
439
+ ...
440
+ }]
441
+ [export interface mynamespace.myothernamespace.myinterface {
442
+ ...
443
+ }]
444
+ */
445
+ function _global_interface_plugin(data) {
446
+ const prefix_output = [];
447
+ while (true) {
448
+ // Use a regex without brackets in the character class for clarity
449
+ // and ensure proper spacing handling.
450
+ const regex = /\[(\s*export)*\s*interface\s+([a-zA-Z0-9_.]+)\s*{/g;
451
+ const match = regex.exec(data);
452
+ if (match == null) {
453
+ break; // No more matches.
454
+ }
455
+ const start = match.index;
456
+ let end = -1;
457
+ let curly_start = -1;
458
+ let curly_end = -1;
459
+ // console.log("interface-plugin: Found global interface", match[0])
460
+ // Find closing ].
461
+ new _vinc_2.vhighlight.Iterator({
462
+ tokenizer: _vinc_2.vhighlight.js,
463
+ language: _vinc_2.vhighlight.js.language,
464
+ code: data.slice(start + 1),
465
+ callback(s) {
466
+ if (match[0].includes("UI.ReturnResponseDataOptions")) {
467
+ // console.log(({char: s.char, curly_depth: s.curly_depth, bracket_depth: s.bracket_depth}));
468
+ }
469
+ if (curly_start === -1 && s.curly_depth === 1) {
470
+ // console.log({state: 1});
471
+ curly_start = start + 1 + s.index;
472
+ }
473
+ else if (curly_start !== -1 && curly_end === -1 && s.curly_depth === 0) {
474
+ // console.log({state: 2});
475
+ curly_end = start + 1 + s.index + 1;
476
+ }
477
+ else if (s.bracket_depth === -1) {
478
+ // console.log({state: 3});
479
+ end = start + 1 + s.index + 1;
480
+ return false; // stop iteration
481
+ }
482
+ else {
483
+ // console.log({unmachted: true})
484
+ }
485
+ },
486
+ }).iterate();
487
+ // if (match[0].includes("UI.ReturnResponseDataOptions") && end === -1) {
488
+ // console.log("DATA:\n"+data)
489
+ // }
490
+ // If we found a closing brace successfully.
491
+ if (curly_end >= 0 && end !== -1) {
492
+ // console.log("interface-plugin: Found global interface", match[0], "proceed");
493
+ // Extract the interface body (excluding the initial '{' and final '}')
494
+ // 'start' points at 'i' of 'interface', so the '{' should be at some offset after that.
495
+ // We found 'end' where bracket_depth returned to -1, i.e., after the closing '}'.
496
+ // Adjust slicing as needed if off by one.
497
+ // Slice out the interface including 'interface ... { ... }'
498
+ // The interface block presumably starts at 'start' and ends at 'end'.
499
+ // We want the inside of the interface without the initial 'i' and final brace.
500
+ // If you want just the inside of the braces, ensure that start+1 and end-1 indices are correct.
501
+ // Push the interface code into prefix_output. Adjust indices if needed.
502
+ let export_statement = match[1] === undefined ? "" : "export ";
503
+ const names = match[2].split(".");
504
+ let closing_curlies = 0;
505
+ for (let i = 0; i < names.length; i++) {
506
+ if (i + 1 === names.length) {
507
+ prefix_output.push(export_statement, "interface ", names[i], " ", data.slice(curly_start, curly_end));
508
+ if (closing_curlies > 0) {
509
+ prefix_output.push("}".repeat(closing_curlies));
510
+ }
511
+ }
512
+ else {
513
+ export_statement = "export ";
514
+ prefix_output.push(export_statement, "namespace ", names[i], " { ");
515
+ ++closing_curlies;
516
+ }
517
+ }
518
+ prefix_output.push(";\n");
519
+ // Remove the interface from the original code.
520
+ data = (start > 0 ? data.slice(0, start) : "") + data.slice(end);
521
+ }
522
+ else {
523
+ // console.log("interface-plugin: Found global interface", match[0], "dont proceed -",curly_end, end)
524
+ break;
525
+ }
526
+ }
527
+ if (prefix_output.length > 0) {
528
+ return prefix_output.join("") + data;
529
+ }
530
+ return data;
531
+ }
532
+ // Variables.
533
+ const volt_frontend = new _vinc_1.vlib.Path(`${__dirname}/../../../../../frontend/dist/`).abs().str();
534
+ let volt_exports = undefined;
535
+ // Detect unused volt frontend imports.
536
+ function detect_unused_imports(source_file) {
537
+ // Load volt exports.
538
+ if (volt_exports === undefined) {
539
+ volt_exports = new _vinc_1.vlib.Path(`${__dirname}/../../../../../frontend/exports.json`).load_sync({ type: "object" });
540
+ volt_exports["ui/ui.ts"] = ["VoltUI"];
541
+ volt_exports["volt.ts"] = ["Volt"];
542
+ }
543
+ // Vars.
544
+ // const source_file = ts.createSourceFile(file_path, file_content, ts.ScriptTarget.Latest, true);
545
+ const imported_identifiers = new Set();
546
+ const declared_identifiers = new Set();
547
+ const used_identifiers = new Set();
548
+ // Helper function to recursively collect declared identifiers
549
+ function collect_declared_identifiers(name) {
550
+ if (ts.isIdentifier(name)) {
551
+ declared_identifiers.add(name.text);
552
+ }
553
+ else if (ts.isObjectBindingPattern(name) || ts.isArrayBindingPattern(name)) {
554
+ name.elements.forEach(element => {
555
+ if (ts.isBindingElement(element)) {
556
+ collect_declared_identifiers(element.name);
557
+ }
558
+ });
559
+ }
560
+ }
561
+ // First pass: Collect imported and declared identifiers
562
+ const visit_first_pass = (node) => {
563
+ if (ts.isImportDeclaration(node)) {
564
+ if (node.importClause) {
565
+ const { name, namedBindings } = node.importClause;
566
+ if (name)
567
+ imported_identifiers.add(name.text);
568
+ if (namedBindings) {
569
+ if (ts.isNamedImports(namedBindings)) {
570
+ namedBindings.elements.forEach(element => imported_identifiers.add(element.name.text));
571
+ }
572
+ else if (ts.isNamespaceImport(namedBindings)) {
573
+ imported_identifiers.add(namedBindings.name.text);
574
+ }
575
+ }
576
+ }
577
+ }
578
+ if (ts.isVariableDeclaration(node) && node.name) {
579
+ collect_declared_identifiers(node.name);
580
+ }
581
+ else if (ts.isFunctionDeclaration(node) && node.name) {
582
+ declared_identifiers.add(node.name.text);
583
+ }
584
+ else if (ts.isClassDeclaration(node) && node.name) {
585
+ declared_identifiers.add(node.name.text);
586
+ }
587
+ if (ts.isIdentifier(node)) {
588
+ used_identifiers.add(node.text);
589
+ }
590
+ ts.forEachChild(node, visit_first_pass);
591
+ };
592
+ // Second pass: Collect used identifiers
593
+ // const visit_second_pass = (node: ts.Node) => {
594
+ // if (ts.isIdentifier(node)) {
595
+ // used_identifiers.add(node.text);
596
+ // }
597
+ // ts.forEachChild(node, visit_second_pass);
598
+ // };
599
+ ts.forEachChild(source_file, visit_first_pass);
600
+ // ts.forEachChild(source_file, visit_second_pass);
601
+ const used_names_set = new Set();
602
+ // Determine which classes/variables are used without being imported
603
+ const classes_to_check = new Set(Object.values(volt_exports).flat());
604
+ classes_to_check.forEach(class_name => {
605
+ if (used_identifiers.has(class_name) &&
606
+ !imported_identifiers.has(class_name) &&
607
+ !declared_identifiers.has(class_name)) {
608
+ used_names_set.add(class_name);
609
+ }
610
+ });
611
+ return Array.from(used_names_set);
612
+ }
613
+ /**
614
+ * Apply volt frontend auto imports preprocessing
615
+ */
616
+ function volt_auto_imports(path, data) {
617
+ // Check auto import
618
+ if (data.includes("@volt-no-auto-import")) {
619
+ return undefined;
620
+ }
621
+ // console.log(path)
622
+ // Capture names.
623
+ const names = detect_unused_imports(ts.createSourceFile(path, data, ts.ScriptTarget.Latest, true));
624
+ // Create needed modules.
625
+ const names_per_module = {}, added_names = new Set;
626
+ for (const name of names) {
627
+ for (const m of Object.keys(volt_exports)) {
628
+ if (name === "VoltUI") {
629
+ names_per_module["VoltUI"] = [];
630
+ }
631
+ else if (name === "Volt") {
632
+ names_per_module["Volt"] = [];
633
+ }
634
+ else if (
635
+ // name !== "volt.ts" &&
636
+ !path.endsWith(m) &&
637
+ volt_exports[m].includes(name) &&
638
+ !added_names.has(name)) {
639
+ if (names_per_module[m] === undefined) {
640
+ names_per_module[m] = [];
641
+ }
642
+ names_per_module[m].push(name);
643
+ added_names.add(name);
644
+ // console.log(name, names_per_module[m])
645
+ }
646
+ }
647
+ }
648
+ // Add global types.
649
+ let prefix = `import "${volt_frontend}/modules/string.js"; ` +
650
+ `import "${volt_frontend}/modules/number.js"; ` +
651
+ `import "${volt_frontend}/modules/object.js"; ` +
652
+ `import "${volt_frontend}/modules/array.js"; `;
653
+ // Add ts code.
654
+ if (names.length > 0) {
655
+ for (const m of Object.keys(names_per_module)) {
656
+ if (m === "VoltUI") {
657
+ prefix += `import * as VoltUI from "${volt_frontend}/ui/ui.js"; `;
658
+ }
659
+ else if (m === "Volt") {
660
+ prefix += `import * as Volt from "${volt_frontend}/volt.js"; `;
661
+ }
662
+ else {
663
+ prefix += `import { ${names_per_module[m].join(", ")} } from "${volt_frontend}/${m.slice(0, -3)}.js"; `;
664
+ }
665
+ }
666
+ }
667
+ // Response.
668
+ return prefix + data;
669
+ }
670
+ // console.log("=========================\nOUTPUT\n"+
671
+ // preprocess("X", `
672
+ // tokenize({
673
+ // code = undefined,
674
+ // stop_callback = undefined,
675
+ // build_html = false,
676
+ // is_insert_tokens = false,
677
+ // state = undefined,
678
+ // }: TokenizeOptions = {}): string | Tokens {}
679
+ // [interface X.Y.TokenizeOptions {
680
+ // code?: string,
681
+ // stop_callback?: Function,
682
+ // build_html?: boolean,
683
+ // is_insert_tokens?: boolean,
684
+ // state?: TokenizerState,
685
+ // } ]
686
+ // [export interface X.Y.TokenizeOptions2 {
687
+ // code?: string,
688
+ // stop_callback?: Function,
689
+ // build_html?: boolean,
690
+ // is_insert_tokens?: boolean,
691
+ // state?: TokenizerState,
692
+ // } ]
693
+ // [interface TokenizeOptions3 {
694
+ // code?: string,
695
+ // stop_callback?: Function,
696
+ // build_html?: boolean,
697
+ // is_insert_tokens?: boolean,
698
+ // state?: TokenizerState,
699
+ // } ]
700
+ // tokenize({
701
+ // code = undefined,
702
+ // stop_callback = undefined,
703
+ // build_html = false,
704
+ // is_insert_tokens = false,
705
+ // state = undefined,
706
+ // }: string | Tokens;
707
+ // tokenize({
708
+ // code = undefined,
709
+ // stop_callback = undefined,
710
+ // build_html = false,
711
+ // is_insert_tokens = false,
712
+ // state = undefined,
713
+ // }: TokenizeOptions = {}): string | Tokens {
714
+ // // Rese
715
+ // `)
716
+ // );process.exit(1);
717
+ // console.log("=========================\nOUTPUT\n"+
718
+ // preprocess("X", `
719
+ // .inner_html(
720
+ // \`\`\`
721
+ // 1 Begin with installing the Libris Client via npm, offering seamless interaction through either the Libris Client API or the intuitive Libris CLI.
722
+ // <div style='height: 0.5em'></div>
723
+ // More information about installing libris can be found in the \${ThemeV2.Link("documentation", "/docs?id=getting_started/installation")}.
724
+ // \`\`\`
725
+ // ),
726
+ // .inner_html(
727
+ // \`\`\`
728
+ // 2 Begin with installing the Libris Client via npm, offering seamless interaction through either the Libris Client API or the intuitive Libris CLI.
729
+ // <div style='height: 0.5em'></div>
730
+ // More information about installing libris can be found in the \${ThemeV2.Link("documentation", "/docs?id=getting_started/installation")}.
731
+ // \`\`\`
732
+ // ),
733
+ // .inner_html(
734
+ // \`\`\`3 Begin with installing the Libris Client via npm, offering seamless interaction through either the Libris Client API or the intuitive Libris CLI.
735
+ // <div style='height: 0.5em'></div>
736
+ // More information about installing libris can be found in the \${ThemeV2.Link("documentation", "/docs?id=getting_started/installation")}.
737
+ // \`\`\`
738
+ // ),
739
+ // \`\`\`
740
+ // ---
741
+ // title: Lorem Ipsum
742
+ // name: lorem_ipsum.md
743
+ // ---
744
+ // # Lorem ipsum
745
+ // Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
746
+ // \`\`\`
747
+ // \`\`\`
748
+ // {
749
+ // "name": "My Project", // The name of your project.
750
+ // "version": "1.1", // The documentation version.
751
+ // "include": [ // The source files you want to include, directories are allowed.
752
+ // "src/load.js"
753
+ // ],
754
+ // "documents": [
755
+ // "pages/lorem_ipsum.md" // The source path to the document.
756
+ // ],
757
+ // "output": "docs.html" // The output path of the generated HTML data.
758
+ // }
759
+ // \`\`\`
760
+ // `)
761
+ // );process.exit(1);
762
+ exports.default = { preprocess, volt_auto_imports };