@vandenberghinc/volt 1.1.26 → 1.1.28

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 (502) hide show
  1. package/backend/dist/cjs/{blacklist.d.ts → backend/src/blacklist.d.ts} +5 -3
  2. package/backend/dist/cjs/{blacklist.js → backend/src/blacklist.js} +8 -5
  3. package/backend/dist/cjs/{cli.js → backend/src/cli.js} +29 -47
  4. package/backend/dist/cjs/backend/src/database/collection.d.ts +1543 -0
  5. package/backend/dist/cjs/backend/src/database/collection.js +3042 -0
  6. package/backend/dist/cjs/backend/src/database/database.d.ts +66 -0
  7. package/backend/dist/cjs/{database → backend/src/database}/database.js +48 -43
  8. package/backend/dist/cjs/backend/src/database/filters/filters.d.ts +6 -0
  9. package/backend/dist/cjs/backend/src/database/filters/filters.js +15 -0
  10. package/backend/dist/cjs/backend/src/database/filters/strict_filter.d.ts +223 -0
  11. package/backend/dist/cjs/backend/src/database/filters/strict_filter.js +15 -0
  12. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test.js +443 -0
  13. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test_v0.js +15 -0
  14. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
  15. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.js +15 -0
  16. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
  17. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.js +15 -0
  18. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
  19. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.js +15 -0
  20. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
  21. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.js +15 -0
  22. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  23. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.js +15 -0
  24. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
  25. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.js +355 -0
  26. package/backend/dist/cjs/backend/src/database/flatten.d.ts +75 -0
  27. package/backend/dist/cjs/{logger.js → backend/src/database/flatten.js} +18 -7
  28. package/backend/dist/cjs/backend/src/database/flatten_test.js +175 -0
  29. package/backend/dist/cjs/backend/src/database/quota/quota.d.ts +461 -0
  30. package/backend/dist/cjs/backend/src/database/quota/quota.js +1014 -0
  31. package/backend/dist/cjs/backend/src/database/quota/quota_v1.d.ts +534 -0
  32. package/backend/dist/cjs/backend/src/database/quota/quota_v1.js +1087 -0
  33. package/backend/dist/cjs/backend/src/database/quota/safe_int.d.ts +293 -0
  34. package/backend/dist/cjs/backend/src/database/quota/safe_int.js +573 -0
  35. package/backend/dist/{esm → cjs/backend/src}/endpoint.d.ts +69 -46
  36. package/backend/dist/cjs/{endpoint.js → backend/src/endpoint.js} +87 -101
  37. package/backend/dist/cjs/backend/src/errors/index.d.ts +7 -0
  38. package/backend/dist/cjs/backend/src/errors/index.js +25 -0
  39. package/backend/dist/{esm/utils.d.ts → cjs/backend/src/errors/internal_external.d.ts} +14 -22
  40. package/backend/dist/cjs/backend/src/errors/internal_external.js +85 -0
  41. package/backend/dist/cjs/backend/src/errors/invalid_usage_error.d.ts +38 -0
  42. package/backend/dist/cjs/{mutex.js → backend/src/errors/invalid_usage_error.js} +20 -37
  43. package/backend/dist/cjs/backend/src/errors/system_error.d.ts +230 -0
  44. package/backend/dist/cjs/backend/src/errors/system_error.js +393 -0
  45. package/backend/dist/cjs/backend/src/events.d.ts +54 -0
  46. package/backend/dist/cjs/backend/src/events.js +15 -0
  47. package/backend/dist/cjs/{frontend.js → backend/src/frontend.js} +1 -1
  48. package/backend/dist/cjs/{image_endpoint.d.ts → backend/src/image_endpoint.d.ts} +16 -1
  49. package/backend/dist/cjs/{image_endpoint.js → backend/src/image_endpoint.js} +3 -5
  50. package/backend/dist/cjs/backend/src/logger.d.ts +5 -0
  51. package/backend/dist/cjs/backend/src/logger.js +15 -0
  52. package/backend/dist/cjs/backend/src/meta.d.ts +64 -0
  53. package/backend/dist/cjs/{meta.js → backend/src/meta.js} +9 -12
  54. package/backend/dist/cjs/backend/src/payments/paddle.d.ts +326 -0
  55. package/backend/dist/cjs/{payments → backend/src/payments}/paddle.js +377 -327
  56. package/backend/dist/cjs/backend/src/plugins/browser.d.ts +1 -0
  57. package/backend/dist/cjs/backend/src/plugins/browser.js +15 -0
  58. package/backend/dist/cjs/backend/src/plugins/mail/mail.d.ts +248 -0
  59. package/backend/dist/cjs/backend/src/plugins/mail/mail.js +379 -0
  60. package/backend/dist/{esm → cjs/backend/src}/plugins/mail/ui.d.ts +23 -0
  61. package/backend/dist/cjs/backend/src/plugins/pdf.d.ts +1 -0
  62. package/backend/dist/cjs/backend/src/rate_limit.d.ts +145 -0
  63. package/backend/dist/cjs/backend/src/rate_limit.js +549 -0
  64. package/backend/dist/cjs/{route.d.ts → backend/src/route.d.ts} +3 -10
  65. package/backend/dist/cjs/{route.js → backend/src/route.js} +23 -21
  66. package/backend/dist/cjs/backend/src/server.d.ts +485 -0
  67. package/backend/dist/cjs/{server.js → backend/src/server.js} +688 -873
  68. package/backend/dist/cjs/backend/src/splash_screen.d.ts +80 -0
  69. package/backend/dist/cjs/{splash_screen.js → backend/src/splash_screen.js} +24 -3
  70. package/backend/dist/cjs/backend/src/status.d.ts +74 -0
  71. package/backend/dist/cjs/{status.js → backend/src/status.js} +64 -64
  72. package/backend/dist/cjs/backend/src/stream.d.ts +376 -0
  73. package/backend/dist/cjs/{stream.js → backend/src/stream.js} +299 -276
  74. package/backend/dist/cjs/backend/src/users.d.ts +807 -0
  75. package/backend/dist/cjs/backend/src/users.js +1971 -0
  76. package/backend/dist/cjs/backend/src/utils.d.ts +16 -0
  77. package/backend/dist/cjs/{utils.js → backend/src/utils.js} +14 -77
  78. package/backend/dist/{esm → cjs/backend/src}/view.d.ts +33 -11
  79. package/backend/dist/cjs/backend/src/view.js +508 -0
  80. package/backend/dist/{esm → cjs/backend/src}/volt.d.ts +10 -1
  81. package/backend/dist/cjs/{volt.js → backend/src/volt.js} +8 -5
  82. package/backend/dist/cjs/frontend/src/modules/request.d.ts +70 -0
  83. package/backend/dist/cjs/frontend/src/modules/request.js +99 -0
  84. package/backend/dist/esm/{blacklist.d.ts → backend/src/blacklist.d.ts} +5 -3
  85. package/backend/dist/esm/{blacklist.js → backend/src/blacklist.js} +9 -6
  86. package/backend/dist/esm/{cli.js → backend/src/cli.js} +43 -60
  87. package/backend/dist/esm/backend/src/database/collection.d.ts +1543 -0
  88. package/backend/dist/esm/backend/src/database/collection.js +3510 -0
  89. package/backend/dist/esm/backend/src/database/database.d.ts +66 -0
  90. package/backend/dist/esm/{database → backend/src/database}/database.js +62 -103
  91. package/backend/dist/esm/backend/src/database/document.d.ts +1 -0
  92. package/backend/dist/esm/backend/src/database/document.js +558 -0
  93. package/backend/dist/esm/backend/src/database/filters/filters.d.ts +6 -0
  94. package/backend/dist/esm/backend/src/database/filters/filters.js +1 -0
  95. package/backend/dist/esm/backend/src/database/filters/strict_filter.d.ts +223 -0
  96. package/backend/dist/esm/backend/src/database/filters/strict_filter.js +3 -0
  97. package/backend/dist/esm/backend/src/database/filters/strict_filter_test.d.ts +1 -0
  98. package/backend/dist/esm/backend/src/database/filters/strict_filter_test.js +505 -0
  99. package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.d.ts +1 -0
  100. package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.js +712 -0
  101. package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
  102. package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.js +5 -0
  103. package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
  104. package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.js +44 -0
  105. package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
  106. package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.js +5 -0
  107. package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
  108. package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.js +1 -0
  109. package/backend/dist/esm/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  110. package/backend/dist/esm/backend/src/database/filters/strict_update_filter.js +5 -0
  111. package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
  112. package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.js +405 -0
  113. package/backend/dist/esm/backend/src/database/flatten.d.ts +75 -0
  114. package/backend/dist/esm/backend/src/database/flatten.js +22 -0
  115. package/backend/dist/esm/backend/src/database/flatten_test.d.ts +1 -0
  116. package/backend/dist/esm/backend/src/database/flatten_test.js +174 -0
  117. package/backend/dist/esm/backend/src/database/quota/quota.d.ts +461 -0
  118. package/backend/dist/esm/backend/src/database/quota/quota.js +1118 -0
  119. package/backend/dist/esm/backend/src/database/quota/quota_v1.d.ts +534 -0
  120. package/backend/dist/esm/backend/src/database/quota/quota_v1.js +1242 -0
  121. package/backend/dist/esm/backend/src/database/quota/safe_int.d.ts +293 -0
  122. package/backend/dist/esm/backend/src/database/quota/safe_int.js +602 -0
  123. package/backend/dist/{cjs → esm/backend/src}/endpoint.d.ts +69 -46
  124. package/backend/dist/esm/{endpoint.js → backend/src/endpoint.js} +136 -127
  125. package/backend/dist/esm/backend/src/errors/index.d.ts +7 -0
  126. package/backend/dist/esm/backend/src/errors/index.js +7 -0
  127. package/backend/dist/{cjs/utils.d.ts → esm/backend/src/errors/internal_external.d.ts} +14 -22
  128. package/backend/dist/esm/backend/src/errors/internal_external.js +70 -0
  129. package/backend/dist/esm/backend/src/errors/invalid_usage_error.d.ts +38 -0
  130. package/backend/dist/esm/backend/src/errors/invalid_usage_error.js +30 -0
  131. package/backend/dist/esm/backend/src/errors/system_error.d.ts +230 -0
  132. package/backend/dist/esm/backend/src/errors/system_error.js +402 -0
  133. package/backend/dist/esm/backend/src/events.d.ts +54 -0
  134. package/backend/dist/esm/backend/src/events.js +5 -0
  135. package/backend/dist/esm/{frontend.js → backend/src/frontend.js} +1 -1
  136. package/backend/dist/esm/{image_endpoint.d.ts → backend/src/image_endpoint.d.ts} +16 -1
  137. package/backend/dist/esm/{image_endpoint.js → backend/src/image_endpoint.js} +16 -20
  138. package/backend/dist/esm/backend/src/logger.d.ts +5 -0
  139. package/backend/dist/esm/backend/src/logger.js +8 -0
  140. package/backend/dist/esm/backend/src/meta.d.ts +64 -0
  141. package/backend/dist/esm/{meta.js → backend/src/meta.js} +15 -54
  142. package/backend/dist/esm/backend/src/payments/paddle.d.ts +326 -0
  143. package/backend/dist/esm/{payments → backend/src/payments}/paddle.js +417 -452
  144. package/backend/dist/esm/backend/src/plugins/browser.d.ts +1 -0
  145. package/backend/dist/esm/backend/src/plugins/browser.js +170 -0
  146. package/backend/dist/esm/backend/src/plugins/mail/mail.d.ts +248 -0
  147. package/backend/dist/esm/backend/src/plugins/mail/mail.js +389 -0
  148. package/backend/dist/{cjs → esm/backend/src}/plugins/mail/ui.d.ts +23 -0
  149. package/backend/dist/esm/{plugins → backend/src/plugins}/mail/ui.js +3 -6
  150. package/backend/dist/esm/backend/src/plugins/pdf.d.ts +1 -0
  151. package/backend/dist/esm/{plugins → backend/src/plugins}/pdf.js +3 -3
  152. package/backend/dist/esm/backend/src/rate_limit.d.ts +145 -0
  153. package/backend/dist/esm/backend/src/rate_limit.js +667 -0
  154. package/backend/dist/esm/{route.d.ts → backend/src/route.d.ts} +3 -10
  155. package/backend/dist/esm/{route.js → backend/src/route.js} +26 -21
  156. package/backend/dist/esm/backend/src/server.d.ts +485 -0
  157. package/backend/dist/esm/{server.js → backend/src/server.js} +891 -1441
  158. package/backend/dist/esm/backend/src/splash_screen.d.ts +80 -0
  159. package/backend/dist/esm/{splash_screen.js → backend/src/splash_screen.js} +42 -55
  160. package/backend/dist/esm/backend/src/status.d.ts +74 -0
  161. package/backend/dist/esm/backend/src/status.js +199 -0
  162. package/backend/dist/esm/backend/src/stream.d.ts +376 -0
  163. package/backend/dist/esm/{stream.js → backend/src/stream.js} +327 -292
  164. package/backend/dist/esm/backend/src/users.d.ts +809 -0
  165. package/backend/dist/esm/backend/src/users.js +2140 -0
  166. package/backend/dist/esm/backend/src/utils.d.ts +16 -0
  167. package/backend/dist/esm/{utils.js → backend/src/utils.js} +20 -81
  168. package/backend/dist/{cjs → esm/backend/src}/view.d.ts +33 -11
  169. package/backend/dist/esm/{view.js → backend/src/view.js} +266 -86
  170. package/backend/dist/{cjs → esm/backend/src}/volt.d.ts +10 -1
  171. package/backend/dist/esm/{volt.js → backend/src/volt.js} +7 -4
  172. package/backend/dist/esm/frontend/src/modules/request.d.ts +70 -0
  173. package/backend/dist/esm/frontend/src/modules/request.js +117 -0
  174. package/frontend/dist/backend/src/database/collection.d.ts +1543 -0
  175. package/frontend/dist/backend/src/database/collection.js +3510 -0
  176. package/frontend/dist/backend/src/database/database.d.ts +66 -0
  177. package/frontend/dist/backend/src/database/database.js +196 -0
  178. package/frontend/dist/backend/src/database/filters/filters.d.ts +6 -0
  179. package/frontend/dist/backend/src/database/filters/filters.js +1 -0
  180. package/frontend/dist/backend/src/database/filters/strict_filter.d.ts +223 -0
  181. package/frontend/dist/backend/src/database/filters/strict_filter.js +3 -0
  182. package/frontend/dist/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  183. package/frontend/dist/backend/src/database/filters/strict_update_filter.js +5 -0
  184. package/frontend/dist/backend/src/database/flatten.d.ts +75 -0
  185. package/frontend/dist/backend/src/database/flatten.js +22 -0
  186. package/frontend/dist/backend/src/endpoint.d.ts +204 -0
  187. package/frontend/dist/backend/src/endpoint.js +570 -0
  188. package/frontend/dist/backend/src/errors/index.d.ts +7 -0
  189. package/frontend/dist/backend/src/errors/index.js +7 -0
  190. package/frontend/dist/backend/src/errors/internal_external.d.ts +38 -0
  191. package/frontend/dist/backend/src/errors/internal_external.js +70 -0
  192. package/frontend/dist/backend/src/errors/invalid_usage_error.d.ts +38 -0
  193. package/frontend/dist/backend/src/errors/invalid_usage_error.js +30 -0
  194. package/frontend/dist/backend/src/errors/system_error.d.ts +230 -0
  195. package/frontend/dist/backend/src/errors/system_error.js +402 -0
  196. package/frontend/dist/backend/src/events.d.ts +54 -0
  197. package/frontend/dist/backend/src/events.js +5 -0
  198. package/frontend/dist/backend/src/frontend.d.ts +11 -0
  199. package/frontend/dist/backend/src/frontend.js +12 -0
  200. package/frontend/dist/backend/src/image_endpoint.d.ts +39 -0
  201. package/frontend/dist/backend/src/image_endpoint.js +202 -0
  202. package/frontend/dist/backend/src/meta.d.ts +64 -0
  203. package/frontend/dist/backend/src/meta.js +110 -0
  204. package/frontend/dist/backend/src/payments/paddle.d.ts +326 -0
  205. package/frontend/dist/backend/src/payments/paddle.js +2256 -0
  206. package/frontend/dist/backend/src/plugins/mail/mail.d.ts +248 -0
  207. package/frontend/dist/backend/src/plugins/mail/mail.js +389 -0
  208. package/{backend/dist/esm/plugins/mail.d.ts → frontend/dist/backend/src/plugins/mail/ui.d.ts} +23 -0
  209. package/{backend/dist/esm/plugins/mail.js → frontend/dist/backend/src/plugins/mail/ui.js} +3 -6
  210. package/frontend/dist/backend/src/rate_limit.d.ts +145 -0
  211. package/frontend/dist/backend/src/rate_limit.js +673 -0
  212. package/frontend/dist/backend/src/route.d.ts +35 -0
  213. package/frontend/dist/backend/src/route.js +212 -0
  214. package/frontend/dist/backend/src/server.d.ts +485 -0
  215. package/frontend/dist/backend/src/server.js +2670 -0
  216. package/frontend/dist/backend/src/splash_screen.d.ts +80 -0
  217. package/frontend/dist/backend/src/splash_screen.js +135 -0
  218. package/frontend/dist/backend/src/status.d.ts +74 -0
  219. package/frontend/dist/backend/src/status.js +199 -0
  220. package/frontend/dist/backend/src/stream.d.ts +376 -0
  221. package/frontend/dist/backend/src/stream.js +1007 -0
  222. package/frontend/dist/backend/src/users.d.ts +807 -0
  223. package/frontend/dist/backend/src/users.js +2118 -0
  224. package/frontend/dist/backend/src/utils.d.ts +16 -0
  225. package/frontend/dist/backend/src/utils.js +241 -0
  226. package/frontend/dist/backend/src/view.d.ts +162 -0
  227. package/frontend/dist/backend/src/view.js +720 -0
  228. package/frontend/dist/frontend/src/elements/base.d.ts +4414 -0
  229. package/frontend/dist/{elements → frontend/src/elements}/base.js +3624 -260
  230. package/frontend/dist/frontend/src/elements/module.d.ts +95 -0
  231. package/frontend/dist/{elements → frontend/src/elements}/module.js +53 -52
  232. package/frontend/dist/frontend/src/elements/types.d.ts +52 -0
  233. package/frontend/dist/frontend/src/elements/types.js +5 -0
  234. package/frontend/dist/frontend/src/modules/attachment.d.ts +126 -0
  235. package/frontend/dist/frontend/src/modules/attachment.js +306 -0
  236. package/frontend/dist/frontend/src/modules/auth.d.ts +44 -0
  237. package/frontend/dist/frontend/src/modules/auth.js +80 -0
  238. package/frontend/dist/{modules → frontend/src/modules}/color.js +2 -2
  239. package/frontend/dist/frontend/src/modules/compression.d.ts +39 -0
  240. package/frontend/dist/frontend/src/modules/compression.js +102 -0
  241. package/frontend/dist/frontend/src/modules/cookies.d.ts +44 -0
  242. package/frontend/dist/frontend/src/modules/cookies.js +143 -0
  243. package/frontend/dist/frontend/src/modules/events.d.ts +31 -0
  244. package/frontend/dist/frontend/src/modules/events.js +74 -0
  245. package/frontend/dist/frontend/src/modules/google.d.ts +23 -0
  246. package/frontend/dist/frontend/src/modules/google.js +52 -0
  247. package/frontend/dist/frontend/src/modules/meta.d.ts +14 -0
  248. package/frontend/dist/{modules → frontend/src/modules}/meta.js +9 -7
  249. package/frontend/dist/{modules → frontend/src/modules}/paddle.d.ts +37 -134
  250. package/frontend/dist/{modules → frontend/src/modules}/paddle.js +620 -568
  251. package/frontend/dist/frontend/src/modules/request.d.ts +70 -0
  252. package/frontend/dist/frontend/src/modules/request.js +117 -0
  253. package/frontend/dist/frontend/src/modules/settings.d.ts +3 -0
  254. package/frontend/dist/frontend/src/modules/settings.js +5 -0
  255. package/frontend/dist/frontend/src/modules/statics.d.ts +21 -0
  256. package/frontend/dist/{modules → frontend/src/modules}/statics.js +15 -18
  257. package/frontend/dist/frontend/src/modules/support.d.ts +30 -0
  258. package/frontend/dist/frontend/src/modules/support.js +53 -0
  259. package/frontend/dist/{modules → frontend/src/modules}/theme.d.ts +67 -0
  260. package/frontend/dist/{modules → frontend/src/modules}/theme.js +68 -38
  261. package/frontend/dist/frontend/src/modules/themes.d.ts +12 -0
  262. package/frontend/dist/frontend/src/modules/themes.js +22 -0
  263. package/frontend/dist/frontend/src/modules/user.d.ts +164 -0
  264. package/frontend/dist/frontend/src/modules/user.js +268 -0
  265. package/frontend/dist/frontend/src/modules/utils.d.ts +176 -0
  266. package/frontend/dist/frontend/src/modules/utils.js +569 -0
  267. package/frontend/dist/frontend/src/types/gradient.d.ts +29 -0
  268. package/frontend/dist/{types → frontend/src/types}/gradient.js +14 -18
  269. package/frontend/dist/frontend/src/ui/border_button.d.ts +94 -0
  270. package/frontend/dist/{ui → frontend/src/ui}/border_button.js +7 -13
  271. package/frontend/dist/frontend/src/ui/button.d.ts +28 -0
  272. package/frontend/dist/{ui → frontend/src/ui}/button.js +21 -12
  273. package/frontend/dist/frontend/src/ui/canvas.d.ts +138 -0
  274. package/frontend/dist/{ui → frontend/src/ui}/canvas.js +88 -55
  275. package/frontend/dist/frontend/src/ui/checkbox.d.ts +74 -0
  276. package/frontend/dist/{ui → frontend/src/ui}/checkbox.js +80 -41
  277. package/frontend/dist/{ui → frontend/src/ui}/code.d.ts +73 -6
  278. package/frontend/dist/{ui → frontend/src/ui}/code.js +55 -52
  279. package/frontend/dist/{ui → frontend/src/ui}/context_menu.d.ts +4 -0
  280. package/frontend/dist/{ui → frontend/src/ui}/context_menu.js +12 -17
  281. package/frontend/dist/{ui → frontend/src/ui}/css.d.ts +4 -0
  282. package/frontend/dist/{ui → frontend/src/ui}/css.js +3 -3
  283. package/frontend/dist/{ui → frontend/src/ui}/divider.d.ts +4 -0
  284. package/frontend/dist/{ui → frontend/src/ui}/divider.js +3 -3
  285. package/frontend/dist/{ui → frontend/src/ui}/dropdown.d.ts +57 -2
  286. package/frontend/dist/{ui → frontend/src/ui}/dropdown.js +87 -94
  287. package/frontend/dist/{ui → frontend/src/ui}/for_each.d.ts +4 -0
  288. package/frontend/dist/{ui → frontend/src/ui}/for_each.js +3 -3
  289. package/frontend/dist/{ui → frontend/src/ui}/form.d.ts +6 -2
  290. package/frontend/dist/{ui → frontend/src/ui}/form.js +10 -7
  291. package/frontend/dist/frontend/src/ui/frame_modes.d.ts +37 -0
  292. package/frontend/dist/{ui → frontend/src/ui}/frame_modes.js +16 -22
  293. package/frontend/dist/{ui → frontend/src/ui}/google_map.d.ts +4 -0
  294. package/frontend/dist/{ui → frontend/src/ui}/google_map.js +4 -4
  295. package/frontend/dist/{ui → frontend/src/ui}/gradient.d.ts +4 -0
  296. package/frontend/dist/{ui → frontend/src/ui}/gradient.js +3 -3
  297. package/frontend/dist/{ui → frontend/src/ui}/image.d.ts +4 -0
  298. package/frontend/dist/{ui → frontend/src/ui}/image.js +5 -5
  299. package/frontend/dist/frontend/src/ui/input.d.ts +392 -0
  300. package/frontend/dist/{ui → frontend/src/ui}/input.js +346 -360
  301. package/frontend/dist/{ui → frontend/src/ui}/link.d.ts +4 -0
  302. package/frontend/dist/{ui → frontend/src/ui}/link.js +3 -3
  303. package/frontend/dist/{ui → frontend/src/ui}/list.d.ts +4 -0
  304. package/frontend/dist/{ui → frontend/src/ui}/list.js +12 -6
  305. package/frontend/dist/frontend/src/ui/loader_button.d.ts +80 -0
  306. package/frontend/dist/{ui → frontend/src/ui}/loader_button.js +35 -47
  307. package/frontend/dist/frontend/src/ui/loaders.d.ts +57 -0
  308. package/frontend/dist/{ui → frontend/src/ui}/loaders.js +11 -11
  309. package/frontend/dist/{ui → frontend/src/ui}/popup.d.ts +11 -6
  310. package/frontend/dist/{ui → frontend/src/ui}/popup.js +32 -18
  311. package/frontend/dist/frontend/src/ui/pseudo.d.ts +44 -0
  312. package/frontend/dist/{ui → frontend/src/ui}/pseudo.js +84 -8
  313. package/frontend/dist/{ui → frontend/src/ui}/scroller.d.ts +14 -2
  314. package/frontend/dist/{ui → frontend/src/ui}/scroller.js +37 -43
  315. package/frontend/dist/{ui → frontend/src/ui}/slider.d.ts +5 -1
  316. package/frontend/dist/{ui → frontend/src/ui}/slider.js +4 -4
  317. package/frontend/dist/{ui → frontend/src/ui}/spacer.d.ts +4 -0
  318. package/frontend/dist/{ui → frontend/src/ui}/spacer.js +3 -3
  319. package/frontend/dist/{ui → frontend/src/ui}/span.d.ts +4 -0
  320. package/frontend/dist/{ui → frontend/src/ui}/span.js +3 -3
  321. package/frontend/dist/{ui → frontend/src/ui}/stack.d.ts +4 -0
  322. package/frontend/dist/{ui → frontend/src/ui}/stack.js +3 -9
  323. package/frontend/dist/frontend/src/ui/steps.d.ts +131 -0
  324. package/frontend/dist/{ui → frontend/src/ui}/steps.js +30 -45
  325. package/frontend/dist/{ui → frontend/src/ui}/style.d.ts +4 -0
  326. package/frontend/dist/{ui → frontend/src/ui}/style.js +3 -3
  327. package/frontend/dist/{ui → frontend/src/ui}/switch.d.ts +5 -1
  328. package/frontend/dist/{ui → frontend/src/ui}/switch.js +4 -4
  329. package/frontend/dist/{ui → frontend/src/ui}/table.d.ts +4 -0
  330. package/frontend/dist/{ui → frontend/src/ui}/table.js +6 -6
  331. package/frontend/dist/{ui → frontend/src/ui}/tabs.d.ts +45 -3
  332. package/frontend/dist/{ui → frontend/src/ui}/tabs.js +65 -40
  333. package/frontend/dist/{ui → frontend/src/ui}/text.d.ts +4 -0
  334. package/frontend/dist/{ui → frontend/src/ui}/text.js +3 -3
  335. package/frontend/dist/frontend/src/ui/title.d.ts +91 -0
  336. package/frontend/dist/frontend/src/ui/title.js +272 -0
  337. package/frontend/dist/{ui → frontend/src/ui}/view.d.ts +4 -0
  338. package/frontend/dist/{ui → frontend/src/ui}/view.js +3 -3
  339. package/frontend/dist/{volt.d.ts → frontend/src/volt.d.ts} +3 -0
  340. package/frontend/dist/{volt.js → frontend/src/volt.js} +4 -0
  341. package/frontend/tools/bundle_d_ts.js +71 -0
  342. package/frontend/tools/convert_to_jsdoc_input.txt +9452 -0
  343. package/frontend/tools/convert_to_jsdoc_output.txt +7626 -0
  344. package/frontend/tools/convert_to_jsdoc_tmp.js +345 -0
  345. package/package.json +11 -12
  346. package/backend/dist/cjs/database/collection.d.ts +0 -160
  347. package/backend/dist/cjs/database/collection.js +0 -842
  348. package/backend/dist/cjs/database/database.d.ts +0 -121
  349. package/backend/dist/cjs/database/document.d.ts +0 -131
  350. package/backend/dist/cjs/database/document.js +0 -224
  351. package/backend/dist/cjs/database.d.ts +0 -502
  352. package/backend/dist/cjs/database.js +0 -2248
  353. package/backend/dist/cjs/logger.d.ts +0 -3
  354. package/backend/dist/cjs/meta.d.ts +0 -50
  355. package/backend/dist/cjs/mutex.d.ts +0 -24
  356. package/backend/dist/cjs/payments/paddle.d.ts +0 -160
  357. package/backend/dist/cjs/plugins/browser.d.ts +0 -36
  358. package/backend/dist/cjs/plugins/browser.js +0 -198
  359. package/backend/dist/cjs/plugins/css.d.ts +0 -11
  360. package/backend/dist/cjs/plugins/css.js +0 -80
  361. package/backend/dist/cjs/plugins/mail.d.ts +0 -277
  362. package/backend/dist/cjs/plugins/mail.js +0 -1370
  363. package/backend/dist/cjs/plugins/ts/compiler.d.ts +0 -139
  364. package/backend/dist/cjs/plugins/ts/compiler.js +0 -750
  365. package/backend/dist/cjs/plugins/ts/preprocessing.d.ts +0 -14
  366. package/backend/dist/cjs/plugins/ts/preprocessing.js +0 -440
  367. package/backend/dist/cjs/rate_limit.d.ts +0 -63
  368. package/backend/dist/cjs/rate_limit.js +0 -348
  369. package/backend/dist/cjs/request.deprc.d.ts +0 -48
  370. package/backend/dist/cjs/request.deprc.js +0 -572
  371. package/backend/dist/cjs/response.deprc.d.ts +0 -55
  372. package/backend/dist/cjs/response.deprc.js +0 -275
  373. package/backend/dist/cjs/server.d.ts +0 -342
  374. package/backend/dist/cjs/splash_screen.d.ts +0 -35
  375. package/backend/dist/cjs/status.d.ts +0 -61
  376. package/backend/dist/cjs/stream.d.ts +0 -79
  377. package/backend/dist/cjs/users.d.ts +0 -111
  378. package/backend/dist/cjs/users.js +0 -1817
  379. package/backend/dist/cjs/view.js +0 -352
  380. package/backend/dist/cjs/vinc.dev.d.ts +0 -3
  381. package/backend/dist/cjs/vinc.dev.js +0 -7
  382. package/backend/dist/css/adyen.css +0 -92
  383. package/backend/dist/css/volt.css +0 -70
  384. package/backend/dist/esm/database/collection.d.ts +0 -160
  385. package/backend/dist/esm/database/collection.js +0 -1328
  386. package/backend/dist/esm/database/database.d.ts +0 -121
  387. package/backend/dist/esm/database/document.d.ts +0 -131
  388. package/backend/dist/esm/database/document.js +0 -247
  389. package/backend/dist/esm/database.d.ts +0 -502
  390. package/backend/dist/esm/database.js +0 -2423
  391. package/backend/dist/esm/file_watcher.js +0 -329
  392. package/backend/dist/esm/logger.d.ts +0 -3
  393. package/backend/dist/esm/logger.js +0 -11
  394. package/backend/dist/esm/meta.d.ts +0 -50
  395. package/backend/dist/esm/mutex.d.ts +0 -24
  396. package/backend/dist/esm/mutex.js +0 -48
  397. package/backend/dist/esm/payments/paddle.d.ts +0 -160
  398. package/backend/dist/esm/plugins/browser.d.ts +0 -36
  399. package/backend/dist/esm/plugins/browser.js +0 -176
  400. package/backend/dist/esm/plugins/css.d.ts +0 -11
  401. package/backend/dist/esm/plugins/css.js +0 -90
  402. package/backend/dist/esm/plugins/ts/compiler.d.ts +0 -139
  403. package/backend/dist/esm/plugins/ts/compiler.js +0 -1194
  404. package/backend/dist/esm/plugins/ts/preprocessing.d.ts +0 -14
  405. package/backend/dist/esm/plugins/ts/preprocessing.js +0 -726
  406. package/backend/dist/esm/rate_limit.d.ts +0 -63
  407. package/backend/dist/esm/rate_limit.js +0 -417
  408. package/backend/dist/esm/request.deprc.d.ts +0 -48
  409. package/backend/dist/esm/request.deprc.js +0 -572
  410. package/backend/dist/esm/response.deprc.d.ts +0 -55
  411. package/backend/dist/esm/response.deprc.js +0 -275
  412. package/backend/dist/esm/server.d.ts +0 -342
  413. package/backend/dist/esm/splash_screen.d.ts +0 -35
  414. package/backend/dist/esm/status.d.ts +0 -61
  415. package/backend/dist/esm/status.js +0 -197
  416. package/backend/dist/esm/stream.d.ts +0 -79
  417. package/backend/dist/esm/users.d.ts +0 -111
  418. package/backend/dist/esm/users.js +0 -1935
  419. package/backend/dist/esm/vinc.dev.d.ts +0 -3
  420. package/backend/dist/esm/vinc.dev.js +0 -7
  421. package/frontend/dist/elements/base.d.ts +0 -9889
  422. package/frontend/dist/elements/module.d.ts +0 -30
  423. package/frontend/dist/modules/array.d.ts +0 -94
  424. package/frontend/dist/modules/array.js +0 -634
  425. package/frontend/dist/modules/auth.d.ts +0 -46
  426. package/frontend/dist/modules/auth.js +0 -139
  427. package/frontend/dist/modules/colors.d.ts +0 -1
  428. package/frontend/dist/modules/colors.js +0 -417
  429. package/frontend/dist/modules/compression.d.ts +0 -6
  430. package/frontend/dist/modules/compression.js +0 -999
  431. package/frontend/dist/modules/cookies.d.ts +0 -18
  432. package/frontend/dist/modules/cookies.js +0 -167
  433. package/frontend/dist/modules/date.d.ts +0 -142
  434. package/frontend/dist/modules/date.js +0 -493
  435. package/frontend/dist/modules/events.d.ts +0 -8
  436. package/frontend/dist/modules/events.js +0 -91
  437. package/frontend/dist/modules/google.d.ts +0 -11
  438. package/frontend/dist/modules/google.js +0 -54
  439. package/frontend/dist/modules/meta.d.ts +0 -10
  440. package/frontend/dist/modules/mutex.d.ts +0 -7
  441. package/frontend/dist/modules/mutex.js +0 -51
  442. package/frontend/dist/modules/number.d.ts +0 -16
  443. package/frontend/dist/modules/number.js +0 -23
  444. package/frontend/dist/modules/object.d.ts +0 -52
  445. package/frontend/dist/modules/object.js +0 -383
  446. package/frontend/dist/modules/scheme.d.ts +0 -227
  447. package/frontend/dist/modules/scheme.js +0 -531
  448. package/frontend/dist/modules/settings.d.ts +0 -3
  449. package/frontend/dist/modules/settings.js +0 -4
  450. package/frontend/dist/modules/statics.d.ts +0 -5
  451. package/frontend/dist/modules/string.d.ts +0 -124
  452. package/frontend/dist/modules/string.js +0 -745
  453. package/frontend/dist/modules/support.d.ts +0 -19
  454. package/frontend/dist/modules/support.js +0 -103
  455. package/frontend/dist/modules/themes.d.ts +0 -8
  456. package/frontend/dist/modules/themes.js +0 -18
  457. package/frontend/dist/modules/user.d.ts +0 -59
  458. package/frontend/dist/modules/user.js +0 -280
  459. package/frontend/dist/modules/utils.d.ts +0 -87
  460. package/frontend/dist/modules/utils.js +0 -923
  461. package/frontend/dist/types/gradient.d.ts +0 -12
  462. package/frontend/dist/ui/border_button.d.ts +0 -152
  463. package/frontend/dist/ui/button.d.ts +0 -21
  464. package/frontend/dist/ui/canvas.d.ts +0 -56
  465. package/frontend/dist/ui/checkbox.d.ts +0 -52
  466. package/frontend/dist/ui/frame_modes.d.ts +0 -25
  467. package/frontend/dist/ui/input.d.ts +0 -241
  468. package/frontend/dist/ui/loader_button.d.ts +0 -93
  469. package/frontend/dist/ui/loaders.d.ts +0 -57
  470. package/frontend/dist/ui/pseudo.d.ts +0 -16
  471. package/frontend/dist/ui/steps.d.ts +0 -59
  472. package/frontend/dist/ui/title.d.ts +0 -21
  473. package/frontend/dist/ui/title.js +0 -121
  474. package/frontend/examples/dashboard/dashboard.ts +0 -776
  475. /package/backend/dist/cjs/{cli.d.ts → backend/src/cli.d.ts} +0 -0
  476. /package/backend/dist/cjs/{file_watcher.d.ts → backend/src/database/document.d.ts} +0 -0
  477. /package/backend/dist/cjs/{file_watcher.js → backend/src/database/document.js} +0 -0
  478. /package/backend/dist/cjs/{plugins/pdf.d.ts → backend/src/database/filters/strict_filter_test.d.ts} +0 -0
  479. /package/backend/dist/{esm/file_watcher.d.ts → cjs/backend/src/database/filters/strict_filter_test_v0.d.ts} +0 -0
  480. /package/backend/dist/{esm/plugins/pdf.d.ts → cjs/backend/src/database/flatten_test.d.ts} +0 -0
  481. /package/backend/dist/cjs/{frontend.d.ts → backend/src/frontend.d.ts} +0 -0
  482. /package/backend/dist/cjs/{plugins → backend/src/plugins}/communication.d.ts +0 -0
  483. /package/backend/dist/cjs/{plugins → backend/src/plugins}/communication.js +0 -0
  484. /package/backend/dist/cjs/{plugins → backend/src/plugins}/mail/ui.js +0 -0
  485. /package/backend/dist/cjs/{plugins → backend/src/plugins}/pdf.js +0 -0
  486. /package/backend/dist/cjs/{plugins → backend/src/plugins}/thread_monitor.d.ts +0 -0
  487. /package/backend/dist/cjs/{plugins → backend/src/plugins}/thread_monitor.js +0 -0
  488. /package/backend/dist/cjs/{vinc.d.ts → backend/src/vinc.d.ts} +0 -0
  489. /package/backend/dist/cjs/{vinc.js → backend/src/vinc.js} +0 -0
  490. /package/backend/dist/esm/{cli.d.ts → backend/src/cli.d.ts} +0 -0
  491. /package/backend/dist/esm/{frontend.d.ts → backend/src/frontend.d.ts} +0 -0
  492. /package/backend/dist/esm/{plugins → backend/src/plugins}/communication.d.ts +0 -0
  493. /package/backend/dist/esm/{plugins → backend/src/plugins}/communication.js +0 -0
  494. /package/backend/dist/esm/{plugins → backend/src/plugins}/thread_monitor.d.ts +0 -0
  495. /package/backend/dist/esm/{plugins → backend/src/plugins}/thread_monitor.js +0 -0
  496. /package/backend/dist/esm/{vinc.d.ts → backend/src/vinc.d.ts} +0 -0
  497. /package/backend/dist/esm/{vinc.js → backend/src/vinc.js} +0 -0
  498. /package/frontend/dist/{elements → frontend/src/elements}/register_element.d.ts +0 -0
  499. /package/frontend/dist/{elements → frontend/src/elements}/register_element.js +0 -0
  500. /package/frontend/dist/{modules → frontend/src/modules}/color.d.ts +0 -0
  501. /package/frontend/dist/{ui → frontend/src/ui}/ui.d.ts +0 -0
  502. /package/frontend/dist/{ui → frontend/src/ui}/ui.js +0 -0
@@ -1,6 +1,10 @@
1
+ /**
2
+ * @author Daan van den Bergh
3
+ * @copyright © 2022 - 2025 Daan van den Bergh. All rights reserved
4
+ */
1
5
  import { View } from './view.js';
2
6
  import * as vlib from "@vandenberghinc/vlib";
3
- import { RateLimits, RateLimitGroup } from "./rate_limit.js";
7
+ import { RateLimitGroup, RateLimitData } from "./rate_limit.js";
4
8
  import { Stream, AuthStream } from "./stream.js";
5
9
  import type { Server } from "./server.js";
6
10
  import { Route } from './route.js';
@@ -93,8 +97,7 @@ import { Route } from './route.js';
93
97
  * and only have to be assigned once. The assigned attributes will be overridden when
94
98
  * these attributes are reassigned for the same group.
95
99
  */
96
- export declare class Endpoint<const S extends vlib.scheme.Infer.Scheme.S = {}> {
97
- static rate_limits: Map<string, any>;
100
+ export declare class Endpoint<const M extends Endpoint.Method = "GET", const E extends string | RegExp = string, const S extends vlib.Schema.Entries.Opts = {}> {
98
101
  static compressed_content_types: string[];
99
102
  /** Route attributes */
100
103
  id: string;
@@ -102,17 +105,19 @@ export declare class Endpoint<const S extends vlib.scheme.Infer.Scheme.S = {}> {
102
105
  /** Requires authentication */
103
106
  authenticated: boolean;
104
107
  /** Parameter scheme validator */
105
- params_val?: vlib.scheme.Validator<object, object, "object">;
108
+ params_schema?: vlib.Schema.Validator<object>;
106
109
  /** The default response headers */
107
110
  headers: [string, string][];
108
111
  /** Option 1) User callback - defined as method so a derived endpoint can do that as well. */
109
- callback?(stream: Stream, params: vlib.scheme.Infer.Scheme<S>): any;
110
- callback?(stream: AuthStream, params: vlib.scheme.Infer.Scheme<S>): any;
112
+ callback?(stream: Stream, params: vlib.Schema.Entries.Infer<S>): any;
113
+ callback?(stream: AuthStream, params: vlib.Schema.Entries.Infer<S>): any;
111
114
  /** Option 2) View based endpoint */
112
115
  view?: View;
113
116
  /** Option 3) Data endpoint, raw */
114
- data: Buffer | string | any[] | Record<any, any>;
117
+ data?: Buffer | string | any[] | Record<any, any>;
115
118
  raw_data?: Buffer | string | any[] | Record<any, any>;
119
+ /** Option 4 Data endpoint by file path. */
120
+ file_path?: vlib.Path;
116
121
  /** Content length & type */
117
122
  content_length?: number;
118
123
  content_type?: string;
@@ -122,60 +127,78 @@ export declare class Endpoint<const S extends vlib.scheme.Infer.Scheme.S = {}> {
122
127
  allow_sitemap: boolean;
123
128
  allow_robots: boolean;
124
129
  /** Rate limit groups for internal use. */
125
- rate_limit_groups: ReturnType<typeof RateLimits.add>[];
130
+ rate_limit_groups: RateLimitData[];
126
131
  /** Private attributes */
127
132
  private _compress;
128
133
  private _cache;
129
- _static_path?: string;
130
- private _templates;
131
134
  private ip_whitelist?;
132
135
  private _is_compressed?;
133
136
  private _initialized;
134
- private _server?;
135
- constructor({ method, endpoint, authenticated, rate_limit, params, callback, view, data, content_type, // = "text/plain",
136
- compress, cache, ip_whitelist, sitemap, robots, allow_unknown_params, _templates, // only used in loading static files.
137
- _static_path, _is_static, }: {
138
- method?: string;
139
- endpoint: string | RegExp;
140
- authenticated?: boolean;
141
- rate_limit?: string | RateLimitGroup | RateLimitGroup[];
137
+ /** A reference to the server. */
138
+ server?: Server;
139
+ constructor({ method, endpoint, authenticated, rate_limit, params, compress, cache, ip_whitelist, sitemap, robots, allow_unknown_params, _is_static, callback, view, data, file_path, content_type, }: Endpoint.Opts<M, E, S>);
140
+ /** Initialize with server. */
141
+ _initialize(server: Server): this;
142
+ _dynamic_initialize(): Promise<void>;
143
+ _set_headers(stream: Stream): void;
144
+ _serve_options(stream: Stream): Promise<void>;
145
+ _serve(stream: Stream, status_code?: number): Promise<void>;
146
+ private _load_data_by_path;
147
+ }
148
+ export declare namespace Endpoint {
149
+ /** The endpoint method. */
150
+ type Method = "GET" | "POST" | "DELETE" | "PUT" | "PATCH" | "OPTIONS";
151
+ /** Options for constructing an endpoint. */
152
+ type Opts<M extends Method = Method, E extends string | RegExp = string, S extends vlib.Schema.Entries.Opts = {}> = {
153
+ /**
154
+ * The endpoint method.
155
+ * @default "GET"
156
+ */
157
+ method?: M extends undefined ? "GET" : M;
158
+ endpoint: E;
159
+ rate_limit?: string | RateLimitGroup | (string | RateLimitGroup)[];
142
160
  params?: S;
143
- callback?: ((stream: Stream, params: vlib.scheme.Infer.Scheme<S>) => any) | ((stream: AuthStream, params: vlib.scheme.Infer.Scheme<S>) => any);
144
- data?: any;
145
161
  compress?: "auto" | boolean;
146
162
  cache?: boolean | number;
147
163
  ip_whitelist?: string[];
148
164
  sitemap?: boolean;
149
165
  robots?: boolean;
150
- _templates?: Record<string, any>;
151
- _static_path?: string;
152
166
  _is_static?: boolean;
153
167
  allow_unknown_params?: boolean;
154
168
  } & ({
155
- view: View | View.Opts;
156
- content_type?: string;
169
+ data?: Buffer | string | any[] | Record<any, any>;
170
+ file_path?: never;
171
+ view?: never;
172
+ authenticated?: boolean;
173
+ callback?: never;
174
+ content_type: string;
175
+ } | {
176
+ data?: never;
177
+ file_path: string | vlib.Path;
178
+ authenticated?: boolean;
179
+ callback?: never;
180
+ view?: never;
181
+ content_type: string;
157
182
  } | {
158
- view?: null | undefined;
183
+ data?: never;
184
+ file_path?: never;
185
+ authenticated?: false;
186
+ callback: ((stream: Stream, params: vlib.Schema.Entries.Infer<S>) => any);
187
+ view?: never;
159
188
  content_type: string;
160
- }));
161
- /** Initialize with server. */
162
- _initialize(server: Server): this;
163
- /**
164
- * Convert a RegExp into a readable path:
165
- * - strips ^…$ anchors
166
- * - unescapes `\/` → `/`
167
- * - `(?<name>…)` → `:name`
168
- * - anonymous captures `(…)` → `:param1`, `:param2`, …
169
- */
170
- _stringify_endpoint_regex(re: RegExp): string;
171
- _load_data_by_path(server: any): this;
172
- _set_headers(stream: any): void;
173
- _refresh(server: any): Promise<void>;
174
- _dynamic_initialize(): Promise<void>;
175
- _serve_options(stream: Stream): Promise<void>;
176
- _serve(stream: Stream, status_code?: number): Promise<void>;
177
- }
178
- export declare namespace Endpoint {
179
- /** Constructor options without the `_server` attribute. */
180
- type Opts<S extends vlib.scheme.Infer.Scheme.S = {}> = ConstructorParameters<typeof Endpoint<S>>[0];
189
+ } | {
190
+ data?: never;
191
+ file_path?: never;
192
+ authenticated: true;
193
+ callback: ((stream: AuthStream, params: vlib.Schema.Entries.Infer<S>) => any);
194
+ view?: never;
195
+ content_type: string;
196
+ } | {
197
+ data?: never;
198
+ file_path?: never;
199
+ authenticated?: boolean;
200
+ callback?: never;
201
+ view: View | View.Opts;
202
+ content_type?: string;
203
+ });
181
204
  }
@@ -34,17 +34,14 @@ var import_clean_css = __toESM(require("clean-css"));
34
34
  var import_zlib = __toESM(require("zlib"));
35
35
  var import_view = require("./view.js");
36
36
  var vlib = __toESM(require("@vandenberghinc/vlib"));
37
- var import_utils = require("./utils.js");
37
+ var import_internal_external = require("./errors/internal_external.js");
38
38
  var import_status = require("./status.js");
39
- var import_logger = require("./logger.js");
40
39
  var import_rate_limit = require("./rate_limit.js");
41
40
  var import_route = require("./route.js");
42
41
  var import_meta = __toESM(require("./meta.js"));
43
- const { log, error, warn } = import_logger.logger;
44
42
  const { debug } = vlib;
45
43
  class Endpoint {
46
44
  // Static attributes.
47
- static rate_limits = /* @__PURE__ */ new Map();
48
45
  static compressed_content_types = [
49
46
  // Image formats (often already compressed)
50
47
  "image/jpeg",
@@ -106,7 +103,7 @@ class Endpoint {
106
103
  /** Requires authentication */
107
104
  authenticated;
108
105
  /** Parameter scheme validator */
109
- params_val;
106
+ params_schema;
110
107
  /** The default response headers */
111
108
  headers;
112
109
  /** Option 2) View based endpoint */
@@ -114,6 +111,8 @@ class Endpoint {
114
111
  /** Option 3) Data endpoint, raw */
115
112
  data;
116
113
  raw_data;
114
+ /** Option 4 Data endpoint by file path. */
115
+ file_path;
117
116
  /** Content length & type */
118
117
  content_length;
119
118
  content_type;
@@ -127,35 +126,33 @@ class Endpoint {
127
126
  /** Private attributes */
128
127
  _compress;
129
128
  _cache;
130
- _static_path;
131
- _templates;
132
129
  ip_whitelist;
133
130
  _is_compressed;
134
131
  _initialized = false;
135
- _server;
132
+ /** A reference to the server. */
133
+ server;
136
134
  constructor({
137
- method = "GET",
138
- endpoint = "/",
135
+ method,
136
+ endpoint,
139
137
  authenticated = false,
140
138
  rate_limit = void 0,
141
139
  params = void 0,
142
- callback = void 0,
143
- view = void 0,
144
- data = void 0,
145
- content_type,
146
- // = "text/plain",
147
140
  compress = "auto",
148
141
  cache = true,
149
142
  ip_whitelist = void 0,
150
143
  sitemap = void 0,
151
144
  robots = void 0,
152
145
  allow_unknown_params = false,
153
- _templates = {},
154
- // only used in loading static files.
155
- _static_path = void 0,
156
- _is_static = false
146
+ _is_static = false,
147
+ // mode options.
148
+ callback = void 0,
149
+ view = void 0,
150
+ data = void 0,
151
+ file_path = void 0,
152
+ content_type
153
+ // = "text/plain",
157
154
  }) {
158
- this.route = new import_route.Route(method, endpoint);
155
+ this.route = new import_route.Route(method ?? "GET", endpoint);
159
156
  this.id = this.route.id;
160
157
  this.authenticated = authenticated;
161
158
  if (this.callback === void 0) {
@@ -166,8 +163,7 @@ class Endpoint {
166
163
  this._cache = cache;
167
164
  this.allow_sitemap = sitemap ?? true;
168
165
  this.allow_robots = robots ?? true;
169
- this._templates = _templates;
170
- this._static_path = _static_path == null ? void 0 : new vlib.Path(_static_path).abs().str();
166
+ this.file_path = file_path == null ? file_path : new vlib.Path(file_path).abs();
171
167
  this.ip_whitelist = Array.isArray(ip_whitelist) ? ip_whitelist : void 0;
172
168
  this.is_static = _is_static;
173
169
  this.headers = [];
@@ -209,10 +205,20 @@ class Endpoint {
209
205
  this.rate_limit_groups = [];
210
206
  if (Array.isArray(rate_limit)) {
211
207
  rate_limit.forEach((item) => {
212
- this.rate_limit_groups.push(import_rate_limit.RateLimits.add(item));
208
+ if (typeof item === "string") {
209
+ const group = import_rate_limit.RateLimits.groups.get(item);
210
+ if (!group)
211
+ throw new Error(`Rate limit group "${item}" does not exist.`);
212
+ this.rate_limit_groups.push(group);
213
+ } else {
214
+ this.rate_limit_groups.push(import_rate_limit.RateLimits.add(item));
215
+ }
213
216
  });
214
217
  } else if (typeof rate_limit === "string") {
215
- this.rate_limit_groups.push(import_rate_limit.RateLimits.add({ group: rate_limit }));
218
+ const group = import_rate_limit.RateLimits.groups.get(rate_limit);
219
+ if (!group)
220
+ throw new Error(`Rate limit group "${rate_limit}" does not exist.`);
221
+ this.rate_limit_groups.push(group);
216
222
  } else if (typeof rate_limit === "object" && rate_limit != null) {
217
223
  this.rate_limit_groups.push(import_rate_limit.RateLimits.add(rate_limit));
218
224
  }
@@ -230,9 +236,9 @@ class Endpoint {
230
236
  });
231
237
  }
232
238
  if (params_scheme != null) {
233
- this.params_val = new vlib.scheme.Validator("object", {
234
- scheme: params,
235
- strict: !allow_unknown_params,
239
+ this.params_schema = new vlib.Schema.Validator({
240
+ schema: params_scheme,
241
+ unknown: !allow_unknown_params,
236
242
  parent: this.route.id + ":",
237
243
  throw: false
238
244
  });
@@ -240,7 +246,7 @@ class Endpoint {
240
246
  }
241
247
  /** Initialize with server. */
242
248
  _initialize(server) {
243
- this._server = server;
249
+ this.server = server;
244
250
  if (this.view != null) {
245
251
  this.view._initialize(server, this);
246
252
  }
@@ -253,78 +259,30 @@ class Endpoint {
253
259
  }
254
260
  return this;
255
261
  }
256
- /**
257
- * Convert a RegExp into a readable path:
258
- * - strips ^…$ anchors
259
- * - unescapes `\/` → `/`
260
- * - `(?<name>…)` → `:name`
261
- * - anonymous captures `(…)` → `:param1`, `:param2`, …
262
- */
263
- _stringify_endpoint_regex(re) {
264
- let src = re.source;
265
- src = src.replace(/^\^/, "").replace(/\$$/, "");
266
- src = src.replace(/\\\//g, "/");
267
- src = src.replace(/\(\?<([^>]+)>[^)]+\)/g, (_match, name) => `:${name}`);
268
- let idx = 1;
269
- src = src.replace(/\((?!\?)[^)]+\)/g, () => `:param${idx++}`);
270
- return src;
271
- }
272
- // Load data by path.
273
- _load_data_by_path(server) {
274
- const path = new vlib.Path(this._static_path);
275
- let data;
276
- if (path.extension() === ".js") {
277
- data = path.load_sync();
278
- } else if (path.extension() === ".css") {
279
- const minifier = new import_clean_css.default();
280
- data = minifier.minify(path.load_sync()).styles;
281
- } else {
282
- data = path.load_sync({ type: "buffer" });
283
- }
284
- if (this._templates && typeof data === "string") {
285
- data = import_utils.Utils.fill_templates(data, this._templates);
286
- }
287
- this.data = data;
288
- return this;
289
- }
290
- // Set default headers.
291
- _set_headers(stream) {
292
- this.headers.forEach((item) => {
293
- stream.set_header(item[0], item[1]);
294
- });
295
- }
296
- // Refresh for file watcher.
297
- async _refresh(server) {
298
- if (server.production) {
299
- throw new Error("This function is not designed for production mode.");
300
- }
301
- if (this.view != null) {
302
- await this.view._build_html();
303
- }
304
- }
305
262
  // Initialize.
306
263
  async _dynamic_initialize() {
307
- if (!this._server) {
264
+ if (!this.server) {
308
265
  throw new Error(`Endpoint "${this.id}" is not initialized by the server yet.`);
309
266
  }
310
- if (this.view != null) {
311
- await this.view._build_html();
267
+ if (this.file_path != null) {
268
+ this._load_data_by_path(this.server);
312
269
  }
313
- if (this._server.production && this.callback == null && this._compress) {
270
+ if (this.server.production && this.callback == null && this._compress) {
314
271
  this._is_compressed = true;
315
272
  if (this.data != null && (this.data instanceof Buffer || typeof this.data === "string")) {
316
273
  this.raw_data = this.data;
317
274
  this.data = import_zlib.default.gzipSync(this.data, { level: import_zlib.default.constants.Z_BEST_COMPRESSION });
318
275
  this.content_length = this.data.length;
319
- } else if (this.view != null) {
320
- this.view.raw_html = this.view.html;
321
- this.view.html = import_zlib.default.gzipSync(this.view.html, { level: import_zlib.default.constants.Z_BEST_COMPRESSION });
322
- this.content_length = this.view.html.length;
323
276
  }
324
277
  debug(2, this.route.id, ": ", "Compressed - content_length:", this.content_length);
325
278
  }
326
- this._cache = false;
327
- if ((this.callback == null || this.is_image_endpoint) && (typeof this._cache === "number" || this._cache === true)) {
279
+ if (!this.server.production) {
280
+ this._cache = false;
281
+ }
282
+ if (
283
+ // (this.callback == null || this.is_image_endpoint) &&
284
+ typeof this._cache === "number" || this._cache === true
285
+ ) {
328
286
  if (this._cache === 1 || this._cache === true) {
329
287
  this.headers.push(["Cache-Control", "max-age=86400"]);
330
288
  } else {
@@ -346,6 +304,12 @@ class Endpoint {
346
304
  }
347
305
  this._initialized = true;
348
306
  }
307
+ // Set default headers.
308
+ _set_headers(stream) {
309
+ this.headers.forEach((item) => {
310
+ stream.set_header(item[0], item[1]);
311
+ });
312
+ }
349
313
  // Serve a client.
350
314
  async _serve_options(stream) {
351
315
  if (!this._initialized) {
@@ -353,13 +317,17 @@ class Endpoint {
353
317
  }
354
318
  try {
355
319
  if (this.ip_whitelist && !this.ip_whitelist.includes(stream.ip)) {
356
- stream.send({
320
+ stream.error({
357
321
  status: import_status.Status.unauthorized,
358
- body: "Unauthorized."
322
+ type: "Unauthorized",
323
+ message: "Unauthorized."
359
324
  });
360
325
  return;
361
326
  }
362
327
  this._set_headers(stream);
328
+ if (this.content_length == null && this.view != null) {
329
+ stream.set_header("Content-Length", (await this.view.content_length()).toString());
330
+ }
363
331
  stream.send({ status: import_status.Status.no_content });
364
332
  } catch (err) {
365
333
  throw err;
@@ -371,7 +339,7 @@ class Endpoint {
371
339
  }
372
340
  try {
373
341
  if (this.ip_whitelist && !this.ip_whitelist.includes(stream.ip)) {
374
- log(2, this.route.id, ": ", "Blocking ip ", stream.ip, " per ip whitelist.");
342
+ this.server?.log(2, this.route.id, ": ", "Blocking ip ", stream.ip, " per ip whitelist.");
375
343
  stream.send({
376
344
  status: import_status.Status.unauthorized,
377
345
  data: "Unauthorized."
@@ -380,15 +348,15 @@ class Endpoint {
380
348
  }
381
349
  this._set_headers(stream);
382
350
  if (this.callback != null) {
383
- log(3, this.route.id, ": ", "Serving endpoint in callback mode.");
384
- if (this.params_val != null) {
385
- const { error: error2, invalid_fields } = this.params_val.validate(stream.param);
386
- if (error2) {
351
+ this.server?.log(3, this.route.id, ": ", "Serving endpoint in callback mode.");
352
+ if (this.params_schema != null) {
353
+ const { error, invalid_fields } = this.params_schema.validate(stream.params ?? {});
354
+ if (error) {
387
355
  stream.send({
388
356
  status: import_status.Status.bad_request,
389
357
  headers: { "Content-Type": "application/json" },
390
358
  data: {
391
- error: error2,
359
+ error,
392
360
  invalid_fields
393
361
  }
394
362
  });
@@ -397,7 +365,7 @@ class Endpoint {
397
365
  }
398
366
  try {
399
367
  let promise;
400
- if (this.params_val != null) {
368
+ if (this.params_schema != null) {
401
369
  promise = this.callback(stream, stream.params ?? {});
402
370
  } else {
403
371
  promise = this.callback(stream, {});
@@ -406,7 +374,7 @@ class Endpoint {
406
374
  await promise;
407
375
  }
408
376
  } catch (err) {
409
- if (err instanceof import_utils.ExternalError || err instanceof import_utils.InternalError) {
377
+ if (err instanceof import_internal_external.ExternalError || err instanceof import_internal_external.InternalError) {
410
378
  err.serve(stream);
411
379
  } else {
412
380
  stream.error({
@@ -416,15 +384,15 @@ class Endpoint {
416
384
  type: "InternalServerError"
417
385
  });
418
386
  }
419
- error(`${this.id}: `, err);
387
+ this.server?.log.error(`${this.id}: `, err);
420
388
  }
421
389
  return;
422
390
  } else if (this.view != null) {
423
- log(3, this.route.id, ": ", "Serving endpoint in view mode.");
424
- this.view._serve(stream, status_code);
391
+ this.server?.log(3, this.route.id, ": ", "Serving endpoint in view mode.");
392
+ await this.view._serve(stream, status_code, { compress: this._compress });
425
393
  return;
426
394
  } else if (this.data != null) {
427
- log(3, this.route.id, ": ", "Serving endpoint in data mode.");
395
+ this.server?.log(3, this.route.id, ": ", "Serving endpoint in data mode.");
428
396
  stream.send({
429
397
  status: status_code,
430
398
  data: this.data
@@ -437,6 +405,24 @@ class Endpoint {
437
405
  throw err;
438
406
  }
439
407
  }
408
+ // Load data by path.
409
+ _load_data_by_path(server) {
410
+ if (!this.file_path) {
411
+ throw new Error(`Endpoint "${this.id}" has no file path assigned.`);
412
+ }
413
+ const path = new vlib.Path(this.file_path);
414
+ let data;
415
+ if (path.extension() === ".js") {
416
+ data = path.load_sync();
417
+ } else if (path.extension() === ".css") {
418
+ const minifier = new import_clean_css.default();
419
+ data = minifier.minify(path.load_sync()).styles;
420
+ } else {
421
+ data = path.load_sync({ type: "buffer" });
422
+ }
423
+ this.data = data;
424
+ return this;
425
+ }
440
426
  }
441
427
  // Annotate the CommonJS export names for ESM import in node:
442
428
  0 && (module.exports = {
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @author Daan van den Bergh
3
+ * @copyright © 2022 - 2025 Daan van den Bergh.
4
+ */
5
+ export * from './invalid_usage_error.js';
6
+ export * from './system_error.js';
7
+ export * from './internal_external.js';
@@ -0,0 +1,25 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var stdin_exports = {};
16
+ module.exports = __toCommonJS(stdin_exports);
17
+ __reExport(stdin_exports, require("./invalid_usage_error.js"), module.exports);
18
+ __reExport(stdin_exports, require("./system_error.js"), module.exports);
19
+ __reExport(stdin_exports, require("./internal_external.js"), module.exports);
20
+ // Annotate the CommonJS export names for ESM import in node:
21
+ 0 && (module.exports = {
22
+ ...require("./invalid_usage_error.js"),
23
+ ...require("./system_error.js"),
24
+ ...require("./internal_external.js")
25
+ });
@@ -1,4 +1,8 @@
1
- import type { Stream } from "./stream.js";
1
+ /**
2
+ * @author Daan van den Bergh
3
+ * @copyright © 2022 - 2025 Daan van den Bergh.
4
+ */
5
+ import type { Stream } from "../stream.js";
2
6
  /**
3
7
  * The base class for internal and external errors.
4
8
  */
@@ -7,40 +11,28 @@ declare class BaseError extends Error {
7
11
  status: number;
8
12
  data?: any[] | Record<string, any>;
9
13
  invalid_fields: Record<string, string>;
10
- constructor({ type, message, status, data, invalid_fields }: {
11
- type?: string;
14
+ constructor({ type, message, status, data, invalid_fields, cause }: {
12
15
  message: string;
16
+ type?: string;
13
17
  status?: number;
14
- data?: any;
18
+ data?: any[] | Record<string, any>;
15
19
  invalid_fields?: Record<string, string>;
20
+ cause?: unknown;
16
21
  });
17
22
  serve(stream: Stream): this;
18
23
  }
19
24
  /**
20
- * Thrown external errors are presented to the user.
25
+ * Thrown internal errors are not presented to the user, isntead an internal server error message is shown.
21
26
  */
22
- export declare class ExternalError extends BaseError {
27
+ export declare class InternalError extends BaseError {
23
28
  constructor(args: ConstructorParameters<typeof BaseError>[0]);
24
29
  serve(stream: Stream): this;
25
30
  }
26
31
  /**
27
- * Thrown internal errors are not presented to the user, isntead an internal server error message is shown.
32
+ * Thrown external errors are presented to the user.
28
33
  */
29
- export declare class InternalError extends BaseError {
34
+ export declare class ExternalError extends BaseError {
30
35
  constructor(args: ConstructorParameters<typeof BaseError>[0]);
31
36
  serve(stream: Stream): this;
32
37
  }
33
- interface UtilsInt {
34
- "APIError": typeof ExternalError;
35
- fill_templates(data: string, templates: Record<string, any>, curly_style?: boolean): string;
36
- get_currency_symbol(currency: string): string | null;
37
- get_compiled_cache(domain: string, method: string, endpoint: string): {
38
- cache_path: any;
39
- cache_hash: any;
40
- cache_data: any;
41
- };
42
- set_compiled_cache(path: any, data: string, hash: string): void;
43
- }
44
- export declare const Utils: UtilsInt;
45
- export { Utils as utils };
46
- export default Utils;
38
+ export {};