@vandenberghinc/volt 1.2.6 → 1.2.8

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 (472) hide show
  1. package/.libris/config.json +82 -0
  2. package/backend/dist/cjs/backend/src/blacklist.d.ts +12 -0
  3. package/backend/dist/cjs/backend/src/blacklist.js +78 -0
  4. package/backend/dist/cjs/backend/src/cli.d.ts +2 -0
  5. package/backend/dist/cjs/backend/src/cli.js +198 -0
  6. package/backend/dist/cjs/backend/src/database/collection.d.ts +1765 -0
  7. package/backend/dist/cjs/backend/src/database/collection.js +3301 -0
  8. package/backend/dist/cjs/backend/src/database/database.d.ts +92 -0
  9. package/backend/dist/cjs/backend/src/database/database.js +170 -0
  10. package/backend/dist/cjs/backend/src/database/document.d.ts +1 -0
  11. package/backend/dist/cjs/backend/src/database/document.js +15 -0
  12. package/backend/dist/cjs/backend/src/database/filters/filters.d.ts +6 -0
  13. package/backend/dist/cjs/backend/src/database/filters/filters.js +15 -0
  14. package/backend/dist/cjs/backend/src/database/filters/strict_filter.d.ts +223 -0
  15. package/backend/dist/cjs/backend/src/database/filters/strict_filter.js +15 -0
  16. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test.d.ts +1 -0
  17. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test.js +443 -0
  18. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test_v0.d.ts +1 -0
  19. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test_v0.js +15 -0
  20. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
  21. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.js +15 -0
  22. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
  23. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.js +15 -0
  24. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
  25. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.js +15 -0
  26. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
  27. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.js +15 -0
  28. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  29. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.js +15 -0
  30. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
  31. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.js +355 -0
  32. package/backend/dist/cjs/backend/src/database/flatten.d.ts +78 -0
  33. package/backend/dist/cjs/backend/src/database/flatten.js +53 -0
  34. package/backend/dist/cjs/backend/src/database/flatten_test.d.ts +1 -0
  35. package/backend/dist/cjs/backend/src/database/flatten_test.js +175 -0
  36. package/backend/dist/cjs/backend/src/database/quota/quoata_v2.d.ts +533 -0
  37. package/backend/dist/cjs/backend/src/database/quota/quoata_v2.js +1046 -0
  38. package/backend/dist/cjs/backend/src/database/quota/quota.d.ts +551 -0
  39. package/backend/dist/cjs/backend/src/database/quota/quota.js +1108 -0
  40. package/backend/dist/cjs/backend/src/database/quota/quota_v1.d.ts +534 -0
  41. package/backend/dist/cjs/backend/src/database/quota/quota_v1.js +1087 -0
  42. package/backend/dist/cjs/backend/src/database/quota/safe_int.d.ts +412 -0
  43. package/backend/dist/cjs/backend/src/database/quota/safe_int.js +745 -0
  44. package/backend/dist/cjs/backend/src/endpoint.d.ts +346 -0
  45. package/backend/dist/cjs/backend/src/endpoint.js +468 -0
  46. package/backend/dist/cjs/backend/src/errors/index.d.ts +7 -0
  47. package/backend/dist/cjs/backend/src/errors/index.js +25 -0
  48. package/backend/dist/cjs/backend/src/errors/internal_external.d.ts +52 -0
  49. package/backend/dist/cjs/backend/src/errors/internal_external.js +95 -0
  50. package/backend/dist/cjs/backend/src/errors/invalid_usage_error.d.ts +41 -0
  51. package/backend/dist/cjs/backend/src/errors/invalid_usage_error.js +47 -0
  52. package/backend/dist/cjs/backend/src/errors/system_error.d.ts +261 -0
  53. package/backend/dist/cjs/backend/src/errors/system_error.js +436 -0
  54. package/backend/dist/cjs/backend/src/events.d.ts +97 -0
  55. package/backend/dist/cjs/backend/src/events.js +15 -0
  56. package/backend/dist/cjs/backend/src/frontend.d.ts +13 -0
  57. package/backend/dist/cjs/backend/src/frontend.js +56 -0
  58. package/backend/dist/cjs/backend/src/image_endpoint.d.ts +44 -0
  59. package/backend/dist/cjs/backend/src/image_endpoint.js +185 -0
  60. package/backend/dist/cjs/backend/src/index.d.ts +23 -0
  61. package/backend/dist/cjs/backend/src/index.js +70 -0
  62. package/backend/dist/cjs/backend/src/logger.d.ts +5 -0
  63. package/backend/dist/cjs/backend/src/logger.js +15 -0
  64. package/backend/dist/cjs/backend/src/meta.d.ts +112 -0
  65. package/backend/dist/cjs/backend/src/meta.js +181 -0
  66. package/backend/dist/cjs/backend/src/payments/paddle.d.ts +329 -0
  67. package/backend/dist/cjs/backend/src/payments/paddle.js +1996 -0
  68. package/backend/dist/cjs/backend/src/payments/stripe/checkout.d.ts +113 -0
  69. package/backend/dist/cjs/backend/src/payments/stripe/checkout.js +295 -0
  70. package/backend/dist/cjs/backend/src/payments/stripe/customers.d.ts +17 -0
  71. package/backend/dist/cjs/backend/src/payments/stripe/customers.js +164 -0
  72. package/backend/dist/cjs/backend/src/payments/stripe/error.d.ts +74 -0
  73. package/backend/dist/cjs/backend/src/payments/stripe/error.js +64 -0
  74. package/backend/dist/cjs/backend/src/payments/stripe/events.d.ts +155 -0
  75. package/backend/dist/cjs/backend/src/payments/stripe/events.js +15 -0
  76. package/backend/dist/cjs/backend/src/payments/stripe/meters.d.ts +105 -0
  77. package/backend/dist/cjs/backend/src/payments/stripe/meters.js +230 -0
  78. package/backend/dist/cjs/backend/src/payments/stripe/payment_methods.d.ts +58 -0
  79. package/backend/dist/cjs/backend/src/payments/stripe/payment_methods.js +109 -0
  80. package/backend/dist/cjs/backend/src/payments/stripe/products.d.ts +519 -0
  81. package/backend/dist/cjs/backend/src/payments/stripe/products.js +650 -0
  82. package/backend/dist/cjs/backend/src/payments/stripe/stripe.d.ts +215 -0
  83. package/backend/dist/cjs/backend/src/payments/stripe/stripe.js +468 -0
  84. package/backend/dist/cjs/backend/src/payments/stripe/subscriptions.d.ts +172 -0
  85. package/backend/dist/cjs/backend/src/payments/stripe/subscriptions.js +557 -0
  86. package/backend/dist/cjs/backend/src/payments/stripe/utils.d.ts +63 -0
  87. package/backend/dist/cjs/backend/src/payments/stripe/utils.js +118 -0
  88. package/backend/dist/cjs/backend/src/payments/stripe/webhooks.d.ts +105 -0
  89. package/backend/dist/cjs/backend/src/payments/stripe/webhooks.js +627 -0
  90. package/backend/dist/cjs/backend/src/plugins/browser.d.ts +1 -0
  91. package/backend/dist/cjs/backend/src/plugins/browser.js +15 -0
  92. package/backend/dist/cjs/backend/src/plugins/communication.d.ts +70 -0
  93. package/backend/dist/cjs/backend/src/plugins/communication.js +196 -0
  94. package/backend/dist/cjs/backend/src/plugins/mail/mail.d.ts +255 -0
  95. package/backend/dist/cjs/backend/src/plugins/mail/mail.js +381 -0
  96. package/backend/dist/cjs/backend/src/plugins/mail/ui.d.ts +297 -0
  97. package/backend/dist/cjs/backend/src/plugins/mail/ui.js +1370 -0
  98. package/backend/dist/cjs/backend/src/plugins/pdf.d.ts +1 -0
  99. package/backend/dist/cjs/backend/src/plugins/pdf.js +1456 -0
  100. package/backend/dist/cjs/backend/src/plugins/thread_monitor.d.ts +18 -0
  101. package/backend/dist/cjs/backend/src/plugins/thread_monitor.js +116 -0
  102. package/backend/dist/cjs/backend/src/rate_limit.d.ts +148 -0
  103. package/backend/dist/cjs/backend/src/rate_limit.js +543 -0
  104. package/backend/dist/cjs/backend/src/route.d.ts +39 -0
  105. package/backend/dist/cjs/backend/src/route.js +172 -0
  106. package/backend/dist/cjs/backend/src/server.d.ts +502 -0
  107. package/backend/dist/cjs/backend/src/server.js +1710 -0
  108. package/backend/dist/cjs/backend/src/server.old.d.ts +594 -0
  109. package/backend/dist/cjs/backend/src/server.old.js +2058 -0
  110. package/backend/dist/cjs/backend/src/splash_screen.d.ts +93 -0
  111. package/backend/dist/cjs/backend/src/splash_screen.js +119 -0
  112. package/backend/dist/cjs/backend/src/status.d.ts +89 -0
  113. package/backend/dist/cjs/backend/src/status.js +211 -0
  114. package/backend/dist/cjs/backend/src/stream.d.ts +494 -0
  115. package/backend/dist/cjs/backend/src/stream.js +1370 -0
  116. package/backend/dist/cjs/backend/src/users.d.ts +926 -0
  117. package/backend/dist/cjs/backend/src/users.js +2223 -0
  118. package/backend/dist/cjs/backend/src/utils.d.ts +22 -0
  119. package/backend/dist/cjs/backend/src/utils.js +626 -0
  120. package/backend/dist/cjs/backend/src/view.d.ts +115 -0
  121. package/backend/dist/cjs/backend/src/view.js +519 -0
  122. package/backend/dist/cjs/backend/src/vinc.d.ts +6 -0
  123. package/backend/dist/cjs/backend/src/vinc.js +40 -0
  124. package/backend/dist/cjs/backend/src/volt.d.ts +24 -0
  125. package/backend/dist/cjs/backend/src/volt.js +72 -0
  126. package/backend/dist/cjs/frontend/src/modules/request.d.ts +70 -0
  127. package/backend/dist/cjs/frontend/src/modules/request.js +99 -0
  128. package/backend/dist/cjs/package.json +1 -0
  129. package/backend/dist/esm/backend/src/blacklist.d.ts +12 -0
  130. package/backend/dist/esm/backend/src/blacklist.js +52 -0
  131. package/backend/dist/esm/backend/src/cli.d.ts +2 -0
  132. package/backend/dist/esm/backend/src/cli.js +211 -0
  133. package/backend/dist/esm/backend/src/database/collection.d.ts +1765 -0
  134. package/backend/dist/esm/backend/src/database/collection.js +3779 -0
  135. package/backend/dist/esm/backend/src/database/database.d.ts +92 -0
  136. package/backend/dist/esm/backend/src/database/database.js +214 -0
  137. package/backend/dist/esm/backend/src/database/document.d.ts +1 -0
  138. package/backend/dist/esm/backend/src/database/document.js +558 -0
  139. package/backend/dist/esm/backend/src/database/filters/filters.d.ts +6 -0
  140. package/backend/dist/esm/backend/src/database/filters/filters.js +1 -0
  141. package/backend/dist/esm/backend/src/database/filters/strict_filter.d.ts +223 -0
  142. package/backend/dist/esm/backend/src/database/filters/strict_filter.js +3 -0
  143. package/backend/dist/esm/backend/src/database/filters/strict_filter_test.d.ts +1 -0
  144. package/backend/dist/esm/backend/src/database/filters/strict_filter_test.js +505 -0
  145. package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.d.ts +1 -0
  146. package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.js +712 -0
  147. package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
  148. package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.js +5 -0
  149. package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
  150. package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.js +44 -0
  151. package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
  152. package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.js +5 -0
  153. package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
  154. package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.js +1 -0
  155. package/backend/dist/esm/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  156. package/backend/dist/esm/backend/src/database/filters/strict_update_filter.js +5 -0
  157. package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
  158. package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.js +415 -0
  159. package/backend/dist/esm/backend/src/database/flatten.d.ts +78 -0
  160. package/backend/dist/esm/backend/src/database/flatten.js +22 -0
  161. package/backend/dist/esm/backend/src/database/flatten_test.d.ts +1 -0
  162. package/backend/dist/esm/backend/src/database/flatten_test.js +174 -0
  163. package/backend/dist/esm/backend/src/database/quota/quoata_v2.d.ts +533 -0
  164. package/backend/dist/esm/backend/src/database/quota/quoata_v2.js +1155 -0
  165. package/backend/dist/esm/backend/src/database/quota/quota.d.ts +551 -0
  166. package/backend/dist/esm/backend/src/database/quota/quota.js +1219 -0
  167. package/backend/dist/esm/backend/src/database/quota/quota_v1.d.ts +534 -0
  168. package/backend/dist/esm/backend/src/database/quota/quota_v1.js +1242 -0
  169. package/backend/dist/esm/backend/src/database/quota/safe_int.d.ts +412 -0
  170. package/backend/dist/esm/backend/src/database/quota/safe_int.js +810 -0
  171. package/backend/dist/esm/backend/src/endpoint.d.ts +346 -0
  172. package/backend/dist/esm/backend/src/endpoint.js +479 -0
  173. package/backend/dist/esm/backend/src/errors/index.d.ts +7 -0
  174. package/backend/dist/esm/backend/src/errors/index.js +7 -0
  175. package/backend/dist/esm/backend/src/errors/internal_external.d.ts +52 -0
  176. package/backend/dist/esm/backend/src/errors/internal_external.js +86 -0
  177. package/backend/dist/esm/backend/src/errors/invalid_usage_error.d.ts +41 -0
  178. package/backend/dist/esm/backend/src/errors/invalid_usage_error.js +33 -0
  179. package/backend/dist/esm/backend/src/errors/system_error.d.ts +261 -0
  180. package/backend/dist/esm/backend/src/errors/system_error.js +444 -0
  181. package/backend/dist/esm/backend/src/events.d.ts +97 -0
  182. package/backend/dist/esm/backend/src/events.js +5 -0
  183. package/backend/dist/esm/backend/src/frontend.d.ts +13 -0
  184. package/backend/dist/esm/backend/src/frontend.js +23 -0
  185. package/backend/dist/esm/backend/src/image_endpoint.d.ts +44 -0
  186. package/backend/dist/esm/backend/src/image_endpoint.js +196 -0
  187. package/backend/dist/esm/backend/src/index.d.ts +23 -0
  188. package/backend/dist/esm/backend/src/index.js +26 -0
  189. package/backend/dist/esm/backend/src/logger.d.ts +5 -0
  190. package/backend/dist/esm/backend/src/logger.js +8 -0
  191. package/backend/dist/esm/backend/src/meta.d.ts +112 -0
  192. package/backend/dist/esm/backend/src/meta.js +152 -0
  193. package/backend/dist/esm/backend/src/payments/paddle.d.ts +329 -0
  194. package/backend/dist/esm/backend/src/payments/paddle.js +2276 -0
  195. package/backend/dist/esm/backend/src/payments/stripe/checkout.d.ts +113 -0
  196. package/backend/dist/esm/backend/src/payments/stripe/checkout.js +356 -0
  197. package/backend/dist/esm/backend/src/payments/stripe/customers.d.ts +17 -0
  198. package/backend/dist/esm/backend/src/payments/stripe/customers.js +193 -0
  199. package/backend/dist/esm/backend/src/payments/stripe/error.d.ts +74 -0
  200. package/backend/dist/esm/backend/src/payments/stripe/error.js +51 -0
  201. package/backend/dist/esm/backend/src/payments/stripe/events.d.ts +155 -0
  202. package/backend/dist/esm/backend/src/payments/stripe/events.js +5 -0
  203. package/backend/dist/esm/backend/src/payments/stripe/meters.d.ts +105 -0
  204. package/backend/dist/esm/backend/src/payments/stripe/meters.js +318 -0
  205. package/backend/dist/esm/backend/src/payments/stripe/payment_methods.d.ts +58 -0
  206. package/backend/dist/esm/backend/src/payments/stripe/payment_methods.js +135 -0
  207. package/backend/dist/esm/backend/src/payments/stripe/products.d.ts +519 -0
  208. package/backend/dist/esm/backend/src/payments/stripe/products.js +896 -0
  209. package/backend/dist/esm/backend/src/payments/stripe/stripe.d.ts +215 -0
  210. package/backend/dist/esm/backend/src/payments/stripe/stripe.js +464 -0
  211. package/backend/dist/esm/backend/src/payments/stripe/subscriptions.d.ts +172 -0
  212. package/backend/dist/esm/backend/src/payments/stripe/subscriptions.js +754 -0
  213. package/backend/dist/esm/backend/src/payments/stripe/utils.d.ts +63 -0
  214. package/backend/dist/esm/backend/src/payments/stripe/utils.js +131 -0
  215. package/backend/dist/esm/backend/src/payments/stripe/webhooks.d.ts +105 -0
  216. package/backend/dist/esm/backend/src/payments/stripe/webhooks.js +752 -0
  217. package/backend/dist/esm/backend/src/plugins/browser.d.ts +1 -0
  218. package/backend/dist/esm/backend/src/plugins/browser.js +170 -0
  219. package/backend/dist/esm/backend/src/plugins/communication.d.ts +70 -0
  220. package/backend/dist/esm/backend/src/plugins/communication.js +169 -0
  221. package/backend/dist/esm/backend/src/plugins/mail/mail.d.ts +255 -0
  222. package/backend/dist/esm/backend/src/plugins/mail/mail.js +396 -0
  223. package/backend/dist/esm/backend/src/plugins/mail/ui.d.ts +297 -0
  224. package/backend/dist/esm/backend/src/plugins/mail/ui.js +1400 -0
  225. package/backend/dist/esm/backend/src/plugins/pdf.d.ts +1 -0
  226. package/backend/dist/esm/backend/src/plugins/pdf.js +1694 -0
  227. package/backend/dist/esm/backend/src/plugins/thread_monitor.d.ts +18 -0
  228. package/backend/dist/esm/backend/src/plugins/thread_monitor.js +120 -0
  229. package/backend/dist/esm/backend/src/rate_limit.d.ts +148 -0
  230. package/backend/dist/esm/backend/src/rate_limit.js +667 -0
  231. package/backend/dist/esm/backend/src/route.d.ts +39 -0
  232. package/backend/dist/esm/backend/src/route.js +222 -0
  233. package/backend/dist/esm/backend/src/server.d.ts +502 -0
  234. package/backend/dist/esm/backend/src/server.js +2031 -0
  235. package/backend/dist/esm/backend/src/server.old.d.ts +594 -0
  236. package/backend/dist/esm/backend/src/server.old.js +2630 -0
  237. package/backend/dist/esm/backend/src/splash_screen.d.ts +93 -0
  238. package/backend/dist/esm/backend/src/splash_screen.js +156 -0
  239. package/backend/dist/esm/backend/src/status.d.ts +89 -0
  240. package/backend/dist/esm/backend/src/status.js +213 -0
  241. package/backend/dist/esm/backend/src/stream.d.ts +494 -0
  242. package/backend/dist/esm/backend/src/stream.js +1611 -0
  243. package/backend/dist/esm/backend/src/users.d.ts +926 -0
  244. package/backend/dist/esm/backend/src/users.js +2423 -0
  245. package/backend/dist/esm/backend/src/utils.d.ts +22 -0
  246. package/backend/dist/esm/backend/src/utils.js +463 -0
  247. package/backend/dist/esm/backend/src/view.d.ts +115 -0
  248. package/backend/dist/esm/backend/src/view.js +584 -0
  249. package/backend/dist/esm/backend/src/vinc.d.ts +6 -0
  250. package/backend/dist/esm/backend/src/vinc.js +6 -0
  251. package/backend/dist/esm/backend/src/volt.d.ts +24 -0
  252. package/backend/dist/esm/backend/src/volt.js +27 -0
  253. package/backend/dist/esm/frontend/src/modules/request.d.ts +70 -0
  254. package/backend/dist/esm/frontend/src/modules/request.js +117 -0
  255. package/backend/old/file_watcher.ts +359 -0
  256. package/backend/old/request.deprc.js +626 -0
  257. package/backend/old/response.deprc.js +354 -0
  258. package/frontend/dist/backend/src/database/collection.d.ts +1765 -0
  259. package/frontend/dist/backend/src/database/collection.js +3779 -0
  260. package/frontend/dist/backend/src/database/database.d.ts +92 -0
  261. package/frontend/dist/backend/src/database/database.js +214 -0
  262. package/frontend/dist/backend/src/database/filters/filters.d.ts +6 -0
  263. package/frontend/dist/backend/src/database/filters/filters.js +1 -0
  264. package/frontend/dist/backend/src/database/filters/strict_filter.d.ts +223 -0
  265. package/frontend/dist/backend/src/database/filters/strict_filter.js +3 -0
  266. package/frontend/dist/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  267. package/frontend/dist/backend/src/database/filters/strict_update_filter.js +5 -0
  268. package/frontend/dist/backend/src/database/flatten.d.ts +78 -0
  269. package/frontend/dist/backend/src/database/flatten.js +22 -0
  270. package/frontend/dist/backend/src/endpoint.d.ts +346 -0
  271. package/frontend/dist/backend/src/endpoint.js +479 -0
  272. package/frontend/dist/backend/src/errors/index.d.ts +7 -0
  273. package/frontend/dist/backend/src/errors/index.js +7 -0
  274. package/frontend/dist/backend/src/errors/internal_external.d.ts +52 -0
  275. package/frontend/dist/backend/src/errors/internal_external.js +86 -0
  276. package/frontend/dist/backend/src/errors/invalid_usage_error.d.ts +41 -0
  277. package/frontend/dist/backend/src/errors/invalid_usage_error.js +33 -0
  278. package/frontend/dist/backend/src/errors/system_error.d.ts +261 -0
  279. package/frontend/dist/backend/src/errors/system_error.js +444 -0
  280. package/frontend/dist/backend/src/events.d.ts +97 -0
  281. package/frontend/dist/backend/src/events.js +5 -0
  282. package/frontend/dist/backend/src/frontend.d.ts +13 -0
  283. package/frontend/dist/backend/src/frontend.js +23 -0
  284. package/frontend/dist/backend/src/image_endpoint.d.ts +44 -0
  285. package/frontend/dist/backend/src/image_endpoint.js +196 -0
  286. package/frontend/dist/backend/src/meta.d.ts +112 -0
  287. package/frontend/dist/backend/src/meta.js +152 -0
  288. package/frontend/dist/backend/src/payments/paddle.d.ts +329 -0
  289. package/frontend/dist/backend/src/payments/paddle.js +2276 -0
  290. package/frontend/dist/backend/src/payments/stripe/checkout.d.ts +113 -0
  291. package/frontend/dist/backend/src/payments/stripe/checkout.js +356 -0
  292. package/frontend/dist/backend/src/payments/stripe/customers.d.ts +17 -0
  293. package/frontend/dist/backend/src/payments/stripe/customers.js +193 -0
  294. package/frontend/dist/backend/src/payments/stripe/error.d.ts +74 -0
  295. package/frontend/dist/backend/src/payments/stripe/error.js +51 -0
  296. package/frontend/dist/backend/src/payments/stripe/events.d.ts +155 -0
  297. package/frontend/dist/backend/src/payments/stripe/events.js +5 -0
  298. package/frontend/dist/backend/src/payments/stripe/meters.d.ts +105 -0
  299. package/frontend/dist/backend/src/payments/stripe/meters.js +318 -0
  300. package/frontend/dist/backend/src/payments/stripe/payment_methods.d.ts +58 -0
  301. package/frontend/dist/backend/src/payments/stripe/payment_methods.js +135 -0
  302. package/frontend/dist/backend/src/payments/stripe/products.d.ts +519 -0
  303. package/frontend/dist/backend/src/payments/stripe/products.js +896 -0
  304. package/frontend/dist/backend/src/payments/stripe/stripe.d.ts +215 -0
  305. package/frontend/dist/backend/src/payments/stripe/stripe.js +464 -0
  306. package/frontend/dist/backend/src/payments/stripe/subscriptions.d.ts +172 -0
  307. package/frontend/dist/backend/src/payments/stripe/subscriptions.js +754 -0
  308. package/frontend/dist/backend/src/payments/stripe/utils.d.ts +63 -0
  309. package/frontend/dist/backend/src/payments/stripe/utils.js +131 -0
  310. package/frontend/dist/backend/src/payments/stripe/webhooks.d.ts +105 -0
  311. package/frontend/dist/backend/src/payments/stripe/webhooks.js +752 -0
  312. package/frontend/dist/backend/src/plugins/mail/mail.d.ts +255 -0
  313. package/frontend/dist/backend/src/plugins/mail/mail.js +396 -0
  314. package/frontend/dist/backend/src/plugins/mail/ui.d.ts +297 -0
  315. package/frontend/dist/backend/src/plugins/mail/ui.js +1400 -0
  316. package/frontend/dist/backend/src/rate_limit.d.ts +148 -0
  317. package/frontend/dist/backend/src/rate_limit.js +667 -0
  318. package/frontend/dist/backend/src/route.d.ts +39 -0
  319. package/frontend/dist/backend/src/route.js +222 -0
  320. package/frontend/dist/backend/src/server.d.ts +502 -0
  321. package/frontend/dist/backend/src/server.js +2031 -0
  322. package/frontend/dist/backend/src/splash_screen.d.ts +93 -0
  323. package/frontend/dist/backend/src/splash_screen.js +156 -0
  324. package/frontend/dist/backend/src/status.d.ts +89 -0
  325. package/frontend/dist/backend/src/status.js +213 -0
  326. package/frontend/dist/backend/src/stream.d.ts +494 -0
  327. package/frontend/dist/backend/src/stream.js +1611 -0
  328. package/frontend/dist/backend/src/users.d.ts +926 -0
  329. package/frontend/dist/backend/src/users.js +2423 -0
  330. package/frontend/dist/backend/src/utils.d.ts +22 -0
  331. package/frontend/dist/backend/src/utils.js +463 -0
  332. package/frontend/dist/backend/src/view.d.ts +115 -0
  333. package/frontend/dist/backend/src/view.js +584 -0
  334. package/frontend/dist/frontend/src/css/adyen.css +92 -0
  335. package/frontend/dist/frontend/src/css/volt.css +75 -0
  336. package/frontend/dist/frontend/src/elements/base.d.ts +3743 -0
  337. package/frontend/dist/frontend/src/elements/base.js +12151 -0
  338. package/frontend/dist/frontend/src/elements/module.d.ts +95 -0
  339. package/frontend/dist/frontend/src/elements/module.js +216 -0
  340. package/frontend/dist/frontend/src/elements/register_element.d.ts +3 -0
  341. package/frontend/dist/frontend/src/elements/register_element.js +22 -0
  342. package/frontend/dist/frontend/src/elements/resize_query_manager.d.ts +0 -0
  343. package/frontend/dist/frontend/src/elements/resize_query_manager.js +150 -0
  344. package/frontend/dist/frontend/src/elements/types.d.ts +52 -0
  345. package/frontend/dist/frontend/src/elements/types.js +5 -0
  346. package/frontend/dist/frontend/src/index.d.ts +21 -0
  347. package/frontend/dist/frontend/src/index.js +29 -0
  348. package/frontend/dist/frontend/src/modules/attachment.d.ts +126 -0
  349. package/frontend/dist/frontend/src/modules/attachment.js +306 -0
  350. package/frontend/dist/frontend/src/modules/auth.d.ts +44 -0
  351. package/frontend/dist/frontend/src/modules/auth.js +80 -0
  352. package/frontend/dist/frontend/src/modules/color.d.ts +160 -0
  353. package/frontend/dist/frontend/src/modules/color.js +316 -0
  354. package/frontend/dist/frontend/src/modules/compression.d.ts +39 -0
  355. package/frontend/dist/frontend/src/modules/compression.js +102 -0
  356. package/frontend/dist/frontend/src/modules/cookies.d.ts +44 -0
  357. package/frontend/dist/frontend/src/modules/cookies.js +143 -0
  358. package/frontend/dist/frontend/src/modules/events.d.ts +31 -0
  359. package/frontend/dist/frontend/src/modules/events.js +79 -0
  360. package/frontend/dist/frontend/src/modules/google.d.ts +23 -0
  361. package/frontend/dist/frontend/src/modules/google.js +52 -0
  362. package/frontend/dist/frontend/src/modules/meta.d.ts +14 -0
  363. package/frontend/dist/frontend/src/modules/meta.js +48 -0
  364. package/frontend/dist/frontend/src/modules/paddle.d.ts +1207 -0
  365. package/frontend/dist/frontend/src/modules/paddle.js +2594 -0
  366. package/frontend/dist/frontend/src/modules/request.d.ts +70 -0
  367. package/frontend/dist/frontend/src/modules/request.js +117 -0
  368. package/frontend/dist/frontend/src/modules/settings.d.ts +3 -0
  369. package/frontend/dist/frontend/src/modules/settings.js +5 -0
  370. package/frontend/dist/frontend/src/modules/statics.d.ts +21 -0
  371. package/frontend/dist/frontend/src/modules/statics.js +43 -0
  372. package/frontend/dist/frontend/src/modules/stripe/cart.d.ts +112 -0
  373. package/frontend/dist/frontend/src/modules/stripe/cart.js +321 -0
  374. package/frontend/dist/frontend/src/modules/stripe/checkout.d.ts +7 -0
  375. package/frontend/dist/frontend/src/modules/stripe/checkout.js +37 -0
  376. package/frontend/dist/frontend/src/modules/stripe/index.m.d.ts +6 -0
  377. package/frontend/dist/frontend/src/modules/stripe/index.m.js +6 -0
  378. package/frontend/dist/frontend/src/modules/stripe/payments.d.ts +58 -0
  379. package/frontend/dist/frontend/src/modules/stripe/payments.js +92 -0
  380. package/frontend/dist/frontend/src/modules/support.d.ts +30 -0
  381. package/frontend/dist/frontend/src/modules/support.js +53 -0
  382. package/frontend/dist/frontend/src/modules/theme.d.ts +133 -0
  383. package/frontend/dist/frontend/src/modules/theme.js +406 -0
  384. package/frontend/dist/frontend/src/modules/themes.d.ts +12 -0
  385. package/frontend/dist/frontend/src/modules/themes.js +22 -0
  386. package/frontend/dist/frontend/src/modules/user.d.ts +164 -0
  387. package/frontend/dist/frontend/src/modules/user.js +270 -0
  388. package/frontend/dist/frontend/src/modules/utils.d.ts +176 -0
  389. package/frontend/dist/frontend/src/modules/utils.js +569 -0
  390. package/frontend/dist/frontend/src/types/gradient.d.ts +29 -0
  391. package/frontend/dist/frontend/src/types/gradient.js +79 -0
  392. package/frontend/dist/frontend/src/ui/border_button.d.ts +94 -0
  393. package/frontend/dist/frontend/src/ui/border_button.js +228 -0
  394. package/frontend/dist/frontend/src/ui/button.d.ts +241 -0
  395. package/frontend/dist/frontend/src/ui/button.js +682 -0
  396. package/frontend/dist/frontend/src/ui/canvas.d.ts +138 -0
  397. package/frontend/dist/frontend/src/ui/canvas.js +444 -0
  398. package/frontend/dist/frontend/src/ui/checkbox.d.ts +74 -0
  399. package/frontend/dist/frontend/src/ui/checkbox.js +321 -0
  400. package/frontend/dist/frontend/src/ui/code.d.ts +235 -0
  401. package/frontend/dist/frontend/src/ui/code.js +1007 -0
  402. package/frontend/dist/frontend/src/ui/context_menu.d.ts +36 -0
  403. package/frontend/dist/frontend/src/ui/context_menu.js +205 -0
  404. package/frontend/dist/frontend/src/ui/css.d.ts +16 -0
  405. package/frontend/dist/frontend/src/ui/css.js +48 -0
  406. package/frontend/dist/frontend/src/ui/divider.d.ts +15 -0
  407. package/frontend/dist/frontend/src/ui/divider.js +78 -0
  408. package/frontend/dist/frontend/src/ui/dropdown.d.ts +176 -0
  409. package/frontend/dist/frontend/src/ui/dropdown.js +481 -0
  410. package/frontend/dist/frontend/src/ui/for_each.d.ts +37 -0
  411. package/frontend/dist/frontend/src/ui/for_each.js +92 -0
  412. package/frontend/dist/frontend/src/ui/form.d.ts +34 -0
  413. package/frontend/dist/frontend/src/ui/form.js +233 -0
  414. package/frontend/dist/frontend/src/ui/frame_modes.d.ts +37 -0
  415. package/frontend/dist/frontend/src/ui/frame_modes.js +108 -0
  416. package/frontend/dist/frontend/src/ui/google_map.d.ts +24 -0
  417. package/frontend/dist/frontend/src/ui/google_map.js +106 -0
  418. package/frontend/dist/frontend/src/ui/gradient.d.ts +25 -0
  419. package/frontend/dist/frontend/src/ui/gradient.js +131 -0
  420. package/frontend/dist/frontend/src/ui/image.d.ts +111 -0
  421. package/frontend/dist/frontend/src/ui/image.js +576 -0
  422. package/frontend/dist/frontend/src/ui/input.d.ts +392 -0
  423. package/frontend/dist/frontend/src/ui/input.js +1201 -0
  424. package/frontend/dist/frontend/src/ui/link.d.ts +25 -0
  425. package/frontend/dist/frontend/src/ui/link.js +140 -0
  426. package/frontend/dist/frontend/src/ui/list.d.ts +37 -0
  427. package/frontend/dist/frontend/src/ui/list.js +170 -0
  428. package/frontend/dist/frontend/src/ui/loader_button.d.ts +80 -0
  429. package/frontend/dist/frontend/src/ui/loader_button.js +193 -0
  430. package/frontend/dist/frontend/src/ui/loaders.d.ts +57 -0
  431. package/frontend/dist/frontend/src/ui/loaders.js +157 -0
  432. package/frontend/dist/frontend/src/ui/popup.d.ts +94 -0
  433. package/frontend/dist/frontend/src/ui/popup.js +510 -0
  434. package/frontend/dist/frontend/src/ui/pseudo.d.ts +44 -0
  435. package/frontend/dist/frontend/src/ui/pseudo.js +154 -0
  436. package/frontend/dist/frontend/src/ui/scroller.d.ts +105 -0
  437. package/frontend/dist/frontend/src/ui/scroller.js +1253 -0
  438. package/frontend/dist/frontend/src/ui/slider.d.ts +45 -0
  439. package/frontend/dist/frontend/src/ui/slider.js +217 -0
  440. package/frontend/dist/frontend/src/ui/spacer.d.ts +15 -0
  441. package/frontend/dist/frontend/src/ui/spacer.js +78 -0
  442. package/frontend/dist/frontend/src/ui/span.d.ts +15 -0
  443. package/frontend/dist/frontend/src/ui/span.js +73 -0
  444. package/frontend/dist/frontend/src/ui/stack.d.ts +66 -0
  445. package/frontend/dist/frontend/src/ui/stack.js +335 -0
  446. package/frontend/dist/frontend/src/ui/steps.d.ts +131 -0
  447. package/frontend/dist/frontend/src/ui/steps.js +308 -0
  448. package/frontend/dist/frontend/src/ui/style.d.ts +17 -0
  449. package/frontend/dist/frontend/src/ui/style.js +73 -0
  450. package/frontend/dist/frontend/src/ui/switch.d.ts +69 -0
  451. package/frontend/dist/frontend/src/ui/switch.js +357 -0
  452. package/frontend/dist/frontend/src/ui/table.d.ts +100 -0
  453. package/frontend/dist/frontend/src/ui/table.js +405 -0
  454. package/frontend/dist/frontend/src/ui/tabs.d.ts +111 -0
  455. package/frontend/dist/frontend/src/ui/tabs.js +424 -0
  456. package/frontend/dist/frontend/src/ui/text.d.ts +15 -0
  457. package/frontend/dist/frontend/src/ui/text.js +83 -0
  458. package/frontend/dist/frontend/src/ui/title.d.ts +91 -0
  459. package/frontend/dist/frontend/src/ui/title.js +272 -0
  460. package/frontend/dist/frontend/src/ui/ui.d.ts +35 -0
  461. package/frontend/dist/frontend/src/ui/ui.js +38 -0
  462. package/frontend/dist/frontend/src/ui/view.d.ts +15 -0
  463. package/frontend/dist/frontend/src/ui/view.js +88 -0
  464. package/frontend/dist/frontend/src/volt.d.ts +20 -0
  465. package/frontend/dist/frontend/src/volt.js +27 -0
  466. package/frontend/examples/theme/theme.ts +58 -0
  467. package/frontend/tools/bundle_d_ts.js +71 -0
  468. package/frontend/tools/convert_to_jsdoc_input.txt +9452 -0
  469. package/frontend/tools/convert_to_jsdoc_output.txt +7626 -0
  470. package/frontend/tools/convert_to_jsdoc_tmp.js +345 -0
  471. package/frontend/tools/scan_mixed_imports.js +69 -0
  472. package/package.json +1 -5
@@ -0,0 +1,165 @@
1
+ /**
2
+ * @author Daan van den Bergh
3
+ * @copyright © 2022 - 2025 Daan van den Bergh.
4
+ */
5
+ import * as mongodb from 'mongodb';
6
+ /**
7
+ * Helper type for recursive depth limiting
8
+ */
9
+ type PathsPrev = [never, 0, 1, 2, 3, 4];
10
+ /**
11
+ * Extract all valid paths from a schema including nested paths
12
+ * Supports dot notation for nested objects
13
+ */
14
+ type Paths<T, D extends number = 4> = [D] extends [never] ? never : T extends object ? {
15
+ [K in keyof T]-?: K extends string | number ? `${K}` | (T[K] extends object ? T[K] extends ReadonlyArray<any> ? never : Paths<T[K], PathsPrev[D]> extends infer P ? P extends string ? `${K}.${P}` : never : never : never) : never;
16
+ }[keyof T] : '';
17
+ /**
18
+ * Get the value type at a specific path in the schema
19
+ */
20
+ type PathValue<T, P extends string> = P extends keyof T ? T[P] : P extends `${infer K}.${infer Rest}` ? K extends keyof T ? PathValue<T[K], Rest> : never : never;
21
+ /**
22
+ * MongoDB bitwise operations — exactly one of 'and' | 'or' | 'xor',
23
+ * each requiring an integer value per the driver typings.
24
+ */
25
+ type BitwiseOperators = {
26
+ and: mongodb.IntegerType;
27
+ } | {
28
+ or: mongodb.IntegerType;
29
+ } | {
30
+ xor: mongodb.IntegerType;
31
+ };
32
+ /**
33
+ * Create an exact object type that doesn't allow extra properties
34
+ * This is the key to making our types strict
35
+ */
36
+ type Exact<T, Shape = T> = T extends Shape ? T extends infer O ? {
37
+ [K in keyof O]: O[K];
38
+ } & {
39
+ [K in Exclude<keyof T, keyof Shape>]?: never;
40
+ } : never : Shape;
41
+ /**
42
+ * Strict set/update fields
43
+ */
44
+ type SetFields<TSchema> = Exact<{
45
+ [K in Paths<TSchema>]?: PathValue<TSchema, K>;
46
+ }>;
47
+ /**
48
+ * Strict numeric fields for math operations
49
+ */
50
+ type NumericFields<TSchema> = Exact<{
51
+ [K in Paths<TSchema> as PathValue<TSchema, K> extends (number | bigint | undefined) ? K : never]?: Exclude<PathValue<TSchema, K>, undefined>;
52
+ }>;
53
+ /**
54
+ * Strict unset fields
55
+ */
56
+ type UnsetFields<TSchema> = Exact<{
57
+ [K in Paths<TSchema>]?: '' | true | 1;
58
+ }>;
59
+ /**
60
+ * Strict rename fields
61
+ */
62
+ type RenameFields<TSchema> = Exact<{
63
+ [K in Paths<TSchema>]?: string;
64
+ }>;
65
+ /**
66
+ * Strict date fields
67
+ */
68
+ type DateFields<TSchema> = Exact<{
69
+ [K in Paths<TSchema> as PathValue<TSchema, K> extends Date | mongodb.Timestamp | undefined ? K : never]?: true | {
70
+ $type: 'date' | 'timestamp';
71
+ };
72
+ }>;
73
+ /**
74
+ * Strict array fields for array operations
75
+ */
76
+ type ArrayAddFields<TSchema> = Exact<{
77
+ [K in Paths<TSchema> as PathValue<TSchema, K> extends any[] ? K : never]?: PathValue<TSchema, K> extends (infer U)[] ? U | {
78
+ $each: U[];
79
+ } : never;
80
+ }>;
81
+ type ArrayPopFields<TSchema> = Exact<{
82
+ [K in Paths<TSchema> as PathValue<TSchema, K> extends any[] ? K : never]?: 1 | -1;
83
+ }>;
84
+ type ArrayPullFields<TSchema> = Exact<{
85
+ [K in Paths<TSchema> as PathValue<TSchema, K> extends any[] ? K : never]?: PathValue<TSchema, K> extends (infer U)[] ? U | mongodb.FilterOperators<U> : never;
86
+ }>;
87
+ type ArrayPushFields<TSchema> = Exact<{
88
+ [K in Paths<TSchema> as PathValue<TSchema, K> extends any[] ? K : never]?: PathValue<TSchema, K> extends (infer U)[] ? U | mongodb.ArrayOperator<PathValue<TSchema, K>> : never;
89
+ }>;
90
+ type ArrayPullAllFields<TSchema> = Exact<{
91
+ [K in Paths<TSchema> as PathValue<TSchema, K> extends any[] ? K : never]?: PathValue<TSchema, K> extends (infer U)[] ? U[] : never;
92
+ }>;
93
+ /**
94
+ * Strict bit fields
95
+ */
96
+ type BitFields<TSchema> = Exact<{
97
+ [K in Paths<TSchema> as PathValue<TSchema, K> extends number | undefined ? K : never]?: BitwiseOperators;
98
+ }>;
99
+ /**
100
+ * Strict version of MongoDB UpdateFilter that only allows updating existing fields
101
+ * @template TSchema - The document schema type
102
+ */
103
+ export type StrictUpdateFilter<TSchema> = Exact<{
104
+ /**
105
+ * The $set operator replaces the value of a field with the specified value.
106
+ */
107
+ $set?: SetFields<TSchema>;
108
+ /**
109
+ * The $setOnInsert operator assigns values to fields during an upsert only when inserting a new document.
110
+ */
111
+ $setOnInsert?: SetFields<TSchema>;
112
+ /**
113
+ * The $unset operator deletes a particular field.
114
+ */
115
+ $unset?: UnsetFields<TSchema>;
116
+ /**
117
+ * The $inc operator increments a field by a specified value.
118
+ */
119
+ $inc?: NumericFields<TSchema>;
120
+ /**
121
+ * The $mul operator multiplies the value of a field by a number.
122
+ */
123
+ $mul?: NumericFields<TSchema>;
124
+ /**
125
+ * The $min operator updates the value of the field to a specified value if the specified value is less than the current value of the field.
126
+ */
127
+ $min?: SetFields<TSchema>;
128
+ /**
129
+ * The $max operator updates the value of the field to a specified value if the specified value is greater than the current value of the field.
130
+ */
131
+ $max?: SetFields<TSchema>;
132
+ /**
133
+ * The $currentDate operator sets the value of a field to the current date.
134
+ */
135
+ $currentDate?: DateFields<TSchema>;
136
+ /**
137
+ * The $rename operator updates the name of a field.
138
+ */
139
+ $rename?: RenameFields<TSchema>;
140
+ /**
141
+ * The $addToSet operator adds a value to an array unless the value is already present.
142
+ */
143
+ $addToSet?: ArrayAddFields<TSchema>;
144
+ /**
145
+ * The $pop operator removes the first or last element of an array.
146
+ */
147
+ $pop?: ArrayPopFields<TSchema>;
148
+ /**
149
+ * The $pull operator removes from an array all instances of a value or values that match a specified condition.
150
+ */
151
+ $pull?: ArrayPullFields<TSchema>;
152
+ /**
153
+ * The $push operator appends a specified value to an array.
154
+ */
155
+ $push?: ArrayPushFields<TSchema>;
156
+ /**
157
+ * The $pullAll operator removes all instances of the specified values from an array.
158
+ */
159
+ $pullAll?: ArrayPullAllFields<TSchema>;
160
+ /**
161
+ * The $bit operator performs a bitwise update of a field.
162
+ */
163
+ $bit?: BitFields<TSchema>;
164
+ }>;
165
+ export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @author Daan van den Bergh
3
+ * @copyright © 2022 - 2025 Daan van den Bergh.
4
+ */
5
+ export {};
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @author Daan van den Bergh
3
+ * @copyright © 2022 - 2025 Daan van den Bergh.
4
+ */
5
+ /**
6
+ * Flatten a nested object to a flat `key.subkey` like object, suitable for {@link set} and {@link save} $inc operations.
7
+ * @param obj The object to flatten.
8
+ * @param prefix The prefix to use for the keys, used for recursive calls, new keys will be formatted as `{prefix}.key`.
9
+ * @returns A flat object with keys in the format `key.subkey`.
10
+ * @example
11
+ * const nested = { a: { b: 1, c: { d: 2 } }, e: 3 };
12
+ * const flat = flatten(nested);
13
+ * // flat = { 'a.b': 1, 'a.c.d': 2, 'e': 3 }
14
+ *
15
+ * @nav Database
16
+ * @docs
17
+ */
18
+ export declare function flatten<T extends Record<string, any>>(obj: T, prefix?: string): FlattenToDotNotation<T>;
19
+ export declare function flatten<T extends Record<string, any>, const Prefix extends string>(obj: T, prefix: Prefix): FlattenToDotNotation<T, Prefix>;
20
+ /**
21
+ * Convert union to intersection
22
+ */
23
+ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
24
+ /**
25
+ * Check if a type should be flattened (is a plain object, not a primitive or array)
26
+ */
27
+ type IsPlainObject<T> = T extends string | number | boolean | bigint | symbol | null | undefined | Date | RegExp | Function | any[] ? false : T extends object ? true : false;
28
+ /** Make all properties optional (used when recursing through optional parents) */
29
+ type MakeOptional<T> = {
30
+ [P in keyof T]?: T[P];
31
+ };
32
+ /** Depth decrementer for 25 levels: Prev25[N] = N - 1, Prev25[0] = never */
33
+ type Prev25 = [
34
+ never,
35
+ 0,
36
+ 1,
37
+ 2,
38
+ 3,
39
+ 4,
40
+ 5,
41
+ 6,
42
+ 7,
43
+ 8,
44
+ 9,
45
+ 10,
46
+ 11,
47
+ 12,
48
+ 13,
49
+ 14,
50
+ 15,
51
+ 16,
52
+ 17,
53
+ 18,
54
+ 19,
55
+ 20,
56
+ 21,
57
+ 22,
58
+ 23,
59
+ 24,
60
+ 25
61
+ ];
62
+ /** Remove undefined from a type (used before object checks) */
63
+ type NonU<T> = Exclude<T, undefined>;
64
+ /**
65
+ * Create dot notation paths from an object type.
66
+ * - Handles optional parents by making *all* their dotted children optional.
67
+ * - Stops recursing at depth 25.
68
+ */
69
+ export type FlattenToDotNotation<T, Path extends string = "", D extends number = 25> = [
70
+ D
71
+ ] extends [never] ? {} : T extends object ? UnionToIntersection<{
72
+ [K in keyof T]-?: K extends string | number ? (T[K] extends infer Raw ? (IsPlainObject<NonU<Raw>> extends true ? (undefined extends Raw ? MakeOptional<FlattenToDotNotation<NonU<Raw>, Path extends "" ? `${K}` : `${Path}.${K}`, Prev25[D]>> : FlattenToDotNotation<NonU<Raw>, Path extends "" ? `${K}` : `${Path}.${K}`, Prev25[D]>) : (undefined extends Raw ? {
73
+ [P in (Path extends "" ? `${K}` : `${Path}.${K}`)]?: NonU<Raw>;
74
+ } : {
75
+ [P in (Path extends "" ? `${K}` : `${Path}.${K}`)]: Raw;
76
+ })) : never) : never;
77
+ }[keyof T]> : T;
78
+ export {};
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @author Daan van den Bergh
3
+ * @copyright © 2022 - 2025 Daan van den Bergh.
4
+ */
5
+ import * as vlib from "@vandenberghinc/vlib";
6
+ export function flatten(obj, prefix = "") {
7
+ if (typeof obj !== "object" || obj == null || Array.isArray(obj)) {
8
+ vlib.schema.throw_invalid_type("obj", obj, "object", true);
9
+ }
10
+ const result = {};
11
+ for (const key in obj) {
12
+ if (!Object.hasOwn(obj, key))
13
+ continue; // ES2022
14
+ if (vlib.object.is_plain(obj[key])) {
15
+ Object.assign(result, flatten(obj[key], prefix ? `${prefix}.${key}` : key));
16
+ }
17
+ else {
18
+ result[prefix ? `${prefix}.${key}` : key] = obj[key];
19
+ }
20
+ }
21
+ return result;
22
+ }
@@ -0,0 +1,346 @@
1
+ /**
2
+ * @author Daan van den Bergh
3
+ * @copyright © 2022 - 2025 Daan van den Bergh. All rights reserved
4
+ */
5
+ import { View } from './view.js';
6
+ import * as vlib from "@vandenberghinc/vlib";
7
+ import { RateLimitGroup, RateLimitData } from "./rate_limit.js";
8
+ import { Stream, AuthStream } from "./stream.js";
9
+ import { Server } from "./server.js";
10
+ import { Route } from './route.js';
11
+ import { Request } from '../../frontend/src/modules/request.js';
12
+ /**
13
+ * The endpoint class.
14
+ * @nav Endpoints
15
+ * @docs
16
+ */
17
+ export declare class Endpoint<const M extends Endpoint.Method = "GET", const E extends string | RegExp = string, const S extends vlib.Schema.Entries.Opts = {}> {
18
+ /** Route attributes */
19
+ id: string;
20
+ route: Route;
21
+ /** Requires authentication */
22
+ authenticated: boolean;
23
+ /** Parameter scheme validator */
24
+ params_validator: undefined | vlib.Schema.Validator<object>;
25
+ params_schema: undefined | vlib.Schema.Entries.Opts;
26
+ allow_unknown_params: undefined | boolean;
27
+ /** The default response headers */
28
+ headers: [string, string][];
29
+ /** Option 1) User callback - defined as method so a derived endpoint can do that as well. */
30
+ callback?(stream: Stream, params: vlib.Schema.Entries.Infer<S>): any;
31
+ callback?(stream: AuthStream, params: vlib.Schema.Entries.Infer<S>): any;
32
+ /** Option 2) View based endpoint */
33
+ view?: View;
34
+ /** Option 3) Data endpoint, raw */
35
+ data?: Buffer | string | any[] | Record<any, any>;
36
+ raw_data?: Buffer | string | any[] | Record<any, any>;
37
+ /** Option 4 Data endpoint by file path. */
38
+ file_path?: vlib.Path;
39
+ /** Content length & type */
40
+ content_type?: string;
41
+ /** Booleans */
42
+ is_static: boolean;
43
+ is_image_endpoint: boolean;
44
+ allow_sitemap: boolean;
45
+ allow_robots: boolean;
46
+ /** Rate limit groups for internal use. */
47
+ rate_limit_groups: RateLimitData[];
48
+ /** Private attributes */
49
+ private _compress;
50
+ private _cache;
51
+ private ip_whitelist?;
52
+ private _dynamic_initialized;
53
+ /** A reference to the server. */
54
+ server?: Server;
55
+ /**
56
+ * Clone this endpoint, used to create a modified copy of the current endpoint.
57
+ * @param override Override specific endpoint options, note that this will be shallow merged.
58
+ *
59
+ * @docs
60
+ */
61
+ static clone<const M extends Endpoint.Method = "GET", const E extends string | RegExp = string, const S extends vlib.Schema.Entries.Opts = {}>(endpoint: Endpoint<M, E, S>, override?: Partial<Endpoint.Opts<M, E, S>>): Endpoint<M, E, S>;
62
+ /**
63
+ * Static function to create a very strict method.
64
+ * This is a utility type that can be used when defining frontend `Request.Info` types.
65
+ * With this function we can enforce that the method matches the method defined in the `Request.Info` type,
66
+ * which can be useful to prevent mistakes when defining endpoints.
67
+ *
68
+ * @example
69
+ * {Create Strict Endpoint}
70
+ * Create a strict endpoint based on a frontend request info type.
71
+ * If there are any mismatches between the defined method,
72
+ * endpoint or result data with the `Request.Info` type,
73
+ * a TypeScript compile-time error will be thrown.
74
+ *
75
+ * ```ts
76
+ * import { Request } from "@vandenberghinc/volt/frontend";
77
+ * import * as volt from "@vandenberghinc/volt";
78
+ *
79
+ * type MyRequestInfo = Request.Info<
80
+ * "POST", // method
81
+ * "/api/my-endpoint", // endpoint
82
+ * { id: string } // params
83
+ * { name: string } // result
84
+ * undefined // error
85
+ * >;
86
+ *
87
+ * server.endpoint({
88
+ * method: volt.Endpoint.method<MyRequestInfo>("POST"),
89
+ * endpoint: volt.Endpoint.endpoint<MyRequestInfo>("/api/my-endpoint"),
90
+ * params: { id: "string" },
91
+ * callback: async (stream, params) => {
92
+ * // Send a success response.
93
+ * stream.send<MyRequestInfo["result"]>({
94
+ * status: 200,
95
+ * data: { name: "John Doe" },
96
+ * });
97
+ *. },
98
+ * })
99
+ * ```
100
+ */
101
+ static method<ReqInfo extends Request.Info<Request.Method, any, any, any, any>>(method: ReqInfo["method"]): ReqInfo["method"];
102
+ /**
103
+ * Static function to create a very strict endpoint.
104
+ * This is a utility type that can be used when defining frontend `Request.Info` types.
105
+ * With this function we can enforce that the endpoint matches the endpoint defined in the `Request.Info` type,
106
+ * which can be useful to prevent mistakes when defining endpoints.
107
+ *
108
+ * @example
109
+ * {Create Strict Endpoint}
110
+ * Create a strict endpoint based on a frontend request info type.
111
+ * If there are any mismatches between the defined method,
112
+ * endpoint or result data with the `Request.Info` type,
113
+ * a TypeScript compile-time error will be thrown.
114
+ *
115
+ * ```ts
116
+ * import { Request } from "@vandenberghinc/volt/frontend";
117
+ * import * as volt from "@vandenberghinc/volt";
118
+ *
119
+ * type MyRequestInfo = Request.Info<
120
+ * "POST", // method
121
+ * "/api/my-endpoint", // endpoint
122
+ * { id: string } // params
123
+ * { name: string } // result
124
+ * undefined // error
125
+ * >;
126
+ *
127
+ * server.endpoint({
128
+ * method: volt.Endpoint.method<MyRequestInfo>("POST"),
129
+ * endpoint: volt.Endpoint.endpoint<MyRequestInfo>("/api/my-endpoint"),
130
+ * params: { id: "string" },
131
+ * callback: async (stream, params) => {
132
+ * // Send a success response.
133
+ * stream.send<MyRequestInfo["result"]>({
134
+ * status: 200,
135
+ * data: { name: "John Doe" },
136
+ * });
137
+ *. },
138
+ * })
139
+ * ```
140
+ */
141
+ static endpoint<ReqInfo extends Request.Info<any, any, any, any, any>>(endpoint: ReqInfo["endpoint"]): ReqInfo["endpoint"];
142
+ /**
143
+ * Construct an endpoint.
144
+ * @docs
145
+ */
146
+ 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>);
147
+ /**
148
+ * Serve this endpoint manually from a stream.
149
+ * This can for instance be used to serve a HTML `/error` endpoint from within a callback.
150
+ * @docs
151
+ */
152
+ serve({ stream, status: status_code, templates, }: {
153
+ stream: Stream;
154
+ status?: number;
155
+ templates?: Record<string, any>;
156
+ }): Promise<void>;
157
+ /** Initialize with server. */
158
+ _initialize(server: Server): this;
159
+ _dynamic_initialize(): Promise<void>;
160
+ _set_headers(stream: Stream): void;
161
+ _serve_options(stream: Stream): Promise<void>;
162
+ }
163
+ export declare namespace Endpoint {
164
+ /**
165
+ * The endpoint method.
166
+ * @docs
167
+ */
168
+ type Method = "GET" | "POST" | "DELETE" | "PUT" | "PATCH" | "OPTIONS";
169
+ /**
170
+ * Options for constructing an endpoint.
171
+ * For more information on the different options see the nested types:
172
+ * - {@link Opts.ByData}
173
+ * - {@link Opts.ByFilePath}
174
+ * - {@link Opts.ByCallback}
175
+ * - {@link Opts.ByAuthCallback}
176
+ * - {@link Opts.ByView}
177
+ * @docs
178
+ */
179
+ type Opts<M extends Method = Method, E extends string | RegExp = string, S extends vlib.Schema.Entries.Opts = {}> = Opts.ByData<M, E, S> | Opts.ByFilePath<M, E, S> | Opts.ByCallback<M, E, S> | Opts.ByAuthCallback<M, E, S> | Opts.ByView<M, E, S>;
180
+ /** Nested types for the {@link Opts} type. */
181
+ namespace Opts {
182
+ /**
183
+ * The base options for constructing an endpoint.
184
+ */
185
+ interface Base<M extends Method = Method, E extends string | RegExp = string, S extends vlib.Schema.Entries.Opts = {}> {
186
+ /**
187
+ * The endpoint method.
188
+ * @default "GET"
189
+ */
190
+ method?: M extends undefined ? "GET" : M;
191
+ /** The endpoint sub url. */
192
+ endpoint: E;
193
+ /**
194
+ * The rate limit settings.
195
+ *
196
+ * Rate limiting works by creating a rate limit per group of endpoints. Multiple
197
+ * rate limiting groups can be applied by defining an array with rate limit objects.
198
+ * A group's interval and limit only need to be defined once on a single endpoint.
199
+ * When defined again these values will override the initial group settings.
200
+ *
201
+ * The rate limit parameter may be defined as three types:
202
+ * - `string`: Assign the rate limit group without any group parameters. Useful when the group is already defined.
203
+ * - `RateLimitGroup`: As a rate limit object.
204
+ * - An array with multiple rate limit objects.
205
+ *
206
+ * When left undefined no rate limiting will be applied.
207
+ */
208
+ rate_limit?: string | RateLimitGroup | (string | RateLimitGroup)[];
209
+ /**
210
+ * The parameter schema for validating request parameters.
211
+ */
212
+ params?: S;
213
+ /**
214
+ * Allow unknown parameters to be passed to the endpoint that are not
215
+ * defined in the parameter schema.
216
+ * @default false
217
+ */
218
+ allow_unknown_params?: boolean;
219
+ /** Compress data sent body. */
220
+ compress?: boolean;
221
+ /**
222
+ * Parameter cache can define the max age of the cached response in seconds or as a boolean `true`.
223
+ * Anything higher than zero enables caching.
224
+ *
225
+ * When server production mode is enabled caching is done automatically unless `cache` is `false`.
226
+ * When production mode is disabled responses are never cached, even though the parameter is assigned.
227
+ * The response of an endpoint that uses parameter `callback` is never cached.
228
+ */
229
+ cache?: boolean | number;
230
+ /**
231
+ * An IP whitelist for the endpoint. When the parameter is defined with an Array,
232
+ * the whitelist will become active.
233
+ */
234
+ ip_whitelist?: string[];
235
+ /**
236
+ * A boolean indicating if the endpoint should show up in the sitemap.
237
+ * By default only when the attribute `view` is defined and the endpoint is unauthenticated,
238
+ * the endpoint will show up in sitemap.
239
+ */
240
+ sitemap?: boolean;
241
+ /**
242
+ * A boolean indicating if the endpoint should be crawled by search engines.
243
+ * By default only endpoints with `view` enabled will be crawled, unless specified otherwise.
244
+ */
245
+ robots?: boolean;
246
+ /** System reserved property indicating whether the endpoint is from static files. */
247
+ _is_static?: boolean;
248
+ }
249
+ /**
250
+ * Options for constructing an endpoint by data & content type.
251
+ * @docs
252
+ */
253
+ interface ByData<M extends Method = Method, E extends string | RegExp = string, S extends vlib.Schema.Entries.Opts = {}> extends Base<M, E, S> {
254
+ /** The data that will be returned as the response body. */
255
+ data: Buffer | string | any[] | Record<any, any>;
256
+ /** Not allowed in this variant. */
257
+ file_path?: never;
258
+ /** Not allowed in this variant. */
259
+ view?: never;
260
+ /** Only allow authenticated requests. */
261
+ authenticated?: boolean;
262
+ /** Not allowed in this variant. */
263
+ callback?: never;
264
+ /** The content type. */
265
+ content_type: string;
266
+ }
267
+ /**
268
+ * Options for constructing an endpoint by file path & content type.
269
+ * @docs
270
+ */
271
+ interface ByFilePath<M extends Method = Method, E extends string | RegExp = string, S extends vlib.Schema.Entries.Opts = {}> extends Base<M, E, S> {
272
+ /** Not allowed in this variant. */
273
+ data?: never;
274
+ /** The file path to load the data from. */
275
+ file_path: string | vlib.Path;
276
+ /** Only allow authenticated requests. */
277
+ authenticated?: boolean;
278
+ /** Not allowed in this variant. */
279
+ callback?: never;
280
+ /** Not allowed in this variant. */
281
+ view?: never;
282
+ /** The content type. */
283
+ content_type?: never;
284
+ }
285
+ /**
286
+ * Options for constructing an endpoint by unauthenticated callback.
287
+ * @docs
288
+ */
289
+ interface ByCallback<M extends Method = Method, E extends string | RegExp = string, S extends vlib.Schema.Entries.Opts = {}> extends Base<M, E, S> {
290
+ /** Not allowed in this variant. */
291
+ data?: never;
292
+ /** Not allowed in this variant. */
293
+ file_path?: never;
294
+ /** Only allow authenticated requests. */
295
+ authenticated?: false;
296
+ /** The callback that will be executed when a client requests this endpoint. */
297
+ callback: ((stream: Stream, params: vlib.Schema.Entries.Infer<S>) => any);
298
+ /** Not allowed in this variant. */
299
+ view?: never;
300
+ /**
301
+ * The content type.
302
+ * Not required since a callback could have multiple different content types.
303
+ */
304
+ content_type?: string;
305
+ }
306
+ /**
307
+ * Options for constructing an endpoint by authenticated callback.
308
+ * @docs
309
+ */
310
+ interface ByAuthCallback<M extends Method = Method, E extends string | RegExp = string, S extends vlib.Schema.Entries.Opts = {}> extends Base<M, E, S> {
311
+ /** Not allowed in this variant. */
312
+ data?: never;
313
+ /** Not allowed in this variant. */
314
+ file_path?: never;
315
+ /** Only allow authenticated requests. */
316
+ authenticated: true;
317
+ /** The callback that will be executed when a client requests this endpoint. */
318
+ callback: ((stream: AuthStream, params: vlib.Schema.Entries.Infer<S>) => any);
319
+ /** Not allowed in this variant. */
320
+ view?: never;
321
+ /**
322
+ * The content type.
323
+ * Not required since a callback could have multiple different content types.
324
+ */
325
+ content_type?: string;
326
+ }
327
+ /**
328
+ * Options for constructing an endpoint by authenticated view.
329
+ * @docs
330
+ */
331
+ interface ByView<M extends Method = Method, E extends string | RegExp = string, S extends vlib.Schema.Entries.Opts = {}> extends Base<M, E, S> {
332
+ /** Not allowed in this variant. */
333
+ data?: never;
334
+ /** Not allowed in this variant. */
335
+ file_path?: never;
336
+ /** Only allow authenticated requests. */
337
+ authenticated?: boolean;
338
+ /** Not allowed in this variant. */
339
+ callback?: never;
340
+ /** The JavaScript view that will be executed on the client side. */
341
+ view: View | View.Opts;
342
+ /** The content type. */
343
+ content_type?: never;
344
+ }
345
+ }
346
+ }