@vandenberghinc/volt 1.2.6 → 1.2.7

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 (462) hide show
  1. package/backend/dist/cjs/backend/src/blacklist.d.ts +12 -0
  2. package/backend/dist/cjs/backend/src/blacklist.js +78 -0
  3. package/backend/dist/cjs/backend/src/cli.d.ts +2 -0
  4. package/backend/dist/cjs/backend/src/cli.js +198 -0
  5. package/backend/dist/cjs/backend/src/database/collection.d.ts +1765 -0
  6. package/backend/dist/cjs/backend/src/database/collection.js +3301 -0
  7. package/backend/dist/cjs/backend/src/database/database.d.ts +92 -0
  8. package/backend/dist/cjs/backend/src/database/database.js +170 -0
  9. package/backend/dist/cjs/backend/src/database/document.d.ts +1 -0
  10. package/backend/dist/cjs/backend/src/database/document.js +15 -0
  11. package/backend/dist/cjs/backend/src/database/filters/filters.d.ts +6 -0
  12. package/backend/dist/cjs/backend/src/database/filters/filters.js +15 -0
  13. package/backend/dist/cjs/backend/src/database/filters/strict_filter.d.ts +223 -0
  14. package/backend/dist/cjs/backend/src/database/filters/strict_filter.js +15 -0
  15. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test.d.ts +1 -0
  16. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test.js +443 -0
  17. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test_v0.d.ts +1 -0
  18. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test_v0.js +15 -0
  19. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
  20. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.js +15 -0
  21. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
  22. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.js +15 -0
  23. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
  24. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.js +15 -0
  25. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
  26. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.js +15 -0
  27. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  28. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.js +15 -0
  29. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
  30. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.js +355 -0
  31. package/backend/dist/cjs/backend/src/database/flatten.d.ts +78 -0
  32. package/backend/dist/cjs/backend/src/database/flatten.js +53 -0
  33. package/backend/dist/cjs/backend/src/database/flatten_test.d.ts +1 -0
  34. package/backend/dist/cjs/backend/src/database/flatten_test.js +175 -0
  35. package/backend/dist/cjs/backend/src/database/quota/quoata_v2.d.ts +533 -0
  36. package/backend/dist/cjs/backend/src/database/quota/quoata_v2.js +1046 -0
  37. package/backend/dist/cjs/backend/src/database/quota/quota.d.ts +551 -0
  38. package/backend/dist/cjs/backend/src/database/quota/quota.js +1108 -0
  39. package/backend/dist/cjs/backend/src/database/quota/quota_v1.d.ts +534 -0
  40. package/backend/dist/cjs/backend/src/database/quota/quota_v1.js +1087 -0
  41. package/backend/dist/cjs/backend/src/database/quota/safe_int.d.ts +412 -0
  42. package/backend/dist/cjs/backend/src/database/quota/safe_int.js +745 -0
  43. package/backend/dist/cjs/backend/src/endpoint.d.ts +346 -0
  44. package/backend/dist/cjs/backend/src/endpoint.js +468 -0
  45. package/backend/dist/cjs/backend/src/errors/index.d.ts +7 -0
  46. package/backend/dist/cjs/backend/src/errors/index.js +25 -0
  47. package/backend/dist/cjs/backend/src/errors/internal_external.d.ts +52 -0
  48. package/backend/dist/cjs/backend/src/errors/internal_external.js +95 -0
  49. package/backend/dist/cjs/backend/src/errors/invalid_usage_error.d.ts +41 -0
  50. package/backend/dist/cjs/backend/src/errors/invalid_usage_error.js +47 -0
  51. package/backend/dist/cjs/backend/src/errors/system_error.d.ts +261 -0
  52. package/backend/dist/cjs/backend/src/errors/system_error.js +436 -0
  53. package/backend/dist/cjs/backend/src/events.d.ts +97 -0
  54. package/backend/dist/cjs/backend/src/events.js +15 -0
  55. package/backend/dist/cjs/backend/src/frontend.d.ts +13 -0
  56. package/backend/dist/cjs/backend/src/frontend.js +56 -0
  57. package/backend/dist/cjs/backend/src/image_endpoint.d.ts +44 -0
  58. package/backend/dist/cjs/backend/src/image_endpoint.js +185 -0
  59. package/backend/dist/cjs/backend/src/index.d.ts +23 -0
  60. package/backend/dist/cjs/backend/src/index.js +70 -0
  61. package/backend/dist/cjs/backend/src/logger.d.ts +5 -0
  62. package/backend/dist/cjs/backend/src/logger.js +15 -0
  63. package/backend/dist/cjs/backend/src/meta.d.ts +112 -0
  64. package/backend/dist/cjs/backend/src/meta.js +181 -0
  65. package/backend/dist/cjs/backend/src/payments/paddle.d.ts +329 -0
  66. package/backend/dist/cjs/backend/src/payments/paddle.js +1996 -0
  67. package/backend/dist/cjs/backend/src/payments/stripe/checkout.d.ts +113 -0
  68. package/backend/dist/cjs/backend/src/payments/stripe/checkout.js +295 -0
  69. package/backend/dist/cjs/backend/src/payments/stripe/customers.d.ts +17 -0
  70. package/backend/dist/cjs/backend/src/payments/stripe/customers.js +164 -0
  71. package/backend/dist/cjs/backend/src/payments/stripe/error.d.ts +74 -0
  72. package/backend/dist/cjs/backend/src/payments/stripe/error.js +64 -0
  73. package/backend/dist/cjs/backend/src/payments/stripe/events.d.ts +155 -0
  74. package/backend/dist/cjs/backend/src/payments/stripe/events.js +15 -0
  75. package/backend/dist/cjs/backend/src/payments/stripe/meters.d.ts +105 -0
  76. package/backend/dist/cjs/backend/src/payments/stripe/meters.js +230 -0
  77. package/backend/dist/cjs/backend/src/payments/stripe/payment_methods.d.ts +58 -0
  78. package/backend/dist/cjs/backend/src/payments/stripe/payment_methods.js +109 -0
  79. package/backend/dist/cjs/backend/src/payments/stripe/products.d.ts +519 -0
  80. package/backend/dist/cjs/backend/src/payments/stripe/products.js +650 -0
  81. package/backend/dist/cjs/backend/src/payments/stripe/stripe.d.ts +215 -0
  82. package/backend/dist/cjs/backend/src/payments/stripe/stripe.js +468 -0
  83. package/backend/dist/cjs/backend/src/payments/stripe/subscriptions.d.ts +172 -0
  84. package/backend/dist/cjs/backend/src/payments/stripe/subscriptions.js +557 -0
  85. package/backend/dist/cjs/backend/src/payments/stripe/utils.d.ts +63 -0
  86. package/backend/dist/cjs/backend/src/payments/stripe/utils.js +118 -0
  87. package/backend/dist/cjs/backend/src/payments/stripe/webhooks.d.ts +105 -0
  88. package/backend/dist/cjs/backend/src/payments/stripe/webhooks.js +627 -0
  89. package/backend/dist/cjs/backend/src/plugins/browser.d.ts +1 -0
  90. package/backend/dist/cjs/backend/src/plugins/browser.js +15 -0
  91. package/backend/dist/cjs/backend/src/plugins/communication.d.ts +70 -0
  92. package/backend/dist/cjs/backend/src/plugins/communication.js +196 -0
  93. package/backend/dist/cjs/backend/src/plugins/mail/mail.d.ts +255 -0
  94. package/backend/dist/cjs/backend/src/plugins/mail/mail.js +381 -0
  95. package/backend/dist/cjs/backend/src/plugins/mail/ui.d.ts +297 -0
  96. package/backend/dist/cjs/backend/src/plugins/mail/ui.js +1370 -0
  97. package/backend/dist/cjs/backend/src/plugins/pdf.d.ts +1 -0
  98. package/backend/dist/cjs/backend/src/plugins/pdf.js +1456 -0
  99. package/backend/dist/cjs/backend/src/plugins/thread_monitor.d.ts +18 -0
  100. package/backend/dist/cjs/backend/src/plugins/thread_monitor.js +116 -0
  101. package/backend/dist/cjs/backend/src/rate_limit.d.ts +148 -0
  102. package/backend/dist/cjs/backend/src/rate_limit.js +543 -0
  103. package/backend/dist/cjs/backend/src/route.d.ts +39 -0
  104. package/backend/dist/cjs/backend/src/route.js +172 -0
  105. package/backend/dist/cjs/backend/src/server.d.ts +502 -0
  106. package/backend/dist/cjs/backend/src/server.js +1710 -0
  107. package/backend/dist/cjs/backend/src/server.old.d.ts +594 -0
  108. package/backend/dist/cjs/backend/src/server.old.js +2058 -0
  109. package/backend/dist/cjs/backend/src/splash_screen.d.ts +93 -0
  110. package/backend/dist/cjs/backend/src/splash_screen.js +119 -0
  111. package/backend/dist/cjs/backend/src/status.d.ts +89 -0
  112. package/backend/dist/cjs/backend/src/status.js +211 -0
  113. package/backend/dist/cjs/backend/src/stream.d.ts +494 -0
  114. package/backend/dist/cjs/backend/src/stream.js +1370 -0
  115. package/backend/dist/cjs/backend/src/users.d.ts +926 -0
  116. package/backend/dist/cjs/backend/src/users.js +2223 -0
  117. package/backend/dist/cjs/backend/src/utils.d.ts +22 -0
  118. package/backend/dist/cjs/backend/src/utils.js +626 -0
  119. package/backend/dist/cjs/backend/src/view.d.ts +115 -0
  120. package/backend/dist/cjs/backend/src/view.js +519 -0
  121. package/backend/dist/cjs/backend/src/vinc.d.ts +6 -0
  122. package/backend/dist/cjs/backend/src/vinc.js +40 -0
  123. package/backend/dist/cjs/backend/src/volt.d.ts +24 -0
  124. package/backend/dist/cjs/backend/src/volt.js +72 -0
  125. package/backend/dist/cjs/frontend/src/modules/request.d.ts +70 -0
  126. package/backend/dist/cjs/frontend/src/modules/request.js +99 -0
  127. package/backend/dist/cjs/package.json +1 -0
  128. package/backend/dist/esm/backend/src/blacklist.d.ts +12 -0
  129. package/backend/dist/esm/backend/src/blacklist.js +52 -0
  130. package/backend/dist/esm/backend/src/cli.d.ts +2 -0
  131. package/backend/dist/esm/backend/src/cli.js +211 -0
  132. package/backend/dist/esm/backend/src/database/collection.d.ts +1765 -0
  133. package/backend/dist/esm/backend/src/database/collection.js +3779 -0
  134. package/backend/dist/esm/backend/src/database/database.d.ts +92 -0
  135. package/backend/dist/esm/backend/src/database/database.js +214 -0
  136. package/backend/dist/esm/backend/src/database/document.d.ts +1 -0
  137. package/backend/dist/esm/backend/src/database/document.js +558 -0
  138. package/backend/dist/esm/backend/src/database/filters/filters.d.ts +6 -0
  139. package/backend/dist/esm/backend/src/database/filters/filters.js +1 -0
  140. package/backend/dist/esm/backend/src/database/filters/strict_filter.d.ts +223 -0
  141. package/backend/dist/esm/backend/src/database/filters/strict_filter.js +3 -0
  142. package/backend/dist/esm/backend/src/database/filters/strict_filter_test.d.ts +1 -0
  143. package/backend/dist/esm/backend/src/database/filters/strict_filter_test.js +505 -0
  144. package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.d.ts +1 -0
  145. package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.js +712 -0
  146. package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
  147. package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.js +5 -0
  148. package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
  149. package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.js +44 -0
  150. package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
  151. package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.js +5 -0
  152. package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
  153. package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.js +1 -0
  154. package/backend/dist/esm/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  155. package/backend/dist/esm/backend/src/database/filters/strict_update_filter.js +5 -0
  156. package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
  157. package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.js +415 -0
  158. package/backend/dist/esm/backend/src/database/flatten.d.ts +78 -0
  159. package/backend/dist/esm/backend/src/database/flatten.js +22 -0
  160. package/backend/dist/esm/backend/src/database/flatten_test.d.ts +1 -0
  161. package/backend/dist/esm/backend/src/database/flatten_test.js +174 -0
  162. package/backend/dist/esm/backend/src/database/quota/quoata_v2.d.ts +533 -0
  163. package/backend/dist/esm/backend/src/database/quota/quoata_v2.js +1155 -0
  164. package/backend/dist/esm/backend/src/database/quota/quota.d.ts +551 -0
  165. package/backend/dist/esm/backend/src/database/quota/quota.js +1219 -0
  166. package/backend/dist/esm/backend/src/database/quota/quota_v1.d.ts +534 -0
  167. package/backend/dist/esm/backend/src/database/quota/quota_v1.js +1242 -0
  168. package/backend/dist/esm/backend/src/database/quota/safe_int.d.ts +412 -0
  169. package/backend/dist/esm/backend/src/database/quota/safe_int.js +810 -0
  170. package/backend/dist/esm/backend/src/endpoint.d.ts +346 -0
  171. package/backend/dist/esm/backend/src/endpoint.js +479 -0
  172. package/backend/dist/esm/backend/src/errors/index.d.ts +7 -0
  173. package/backend/dist/esm/backend/src/errors/index.js +7 -0
  174. package/backend/dist/esm/backend/src/errors/internal_external.d.ts +52 -0
  175. package/backend/dist/esm/backend/src/errors/internal_external.js +86 -0
  176. package/backend/dist/esm/backend/src/errors/invalid_usage_error.d.ts +41 -0
  177. package/backend/dist/esm/backend/src/errors/invalid_usage_error.js +33 -0
  178. package/backend/dist/esm/backend/src/errors/system_error.d.ts +261 -0
  179. package/backend/dist/esm/backend/src/errors/system_error.js +444 -0
  180. package/backend/dist/esm/backend/src/events.d.ts +97 -0
  181. package/backend/dist/esm/backend/src/events.js +5 -0
  182. package/backend/dist/esm/backend/src/frontend.d.ts +13 -0
  183. package/backend/dist/esm/backend/src/frontend.js +23 -0
  184. package/backend/dist/esm/backend/src/image_endpoint.d.ts +44 -0
  185. package/backend/dist/esm/backend/src/image_endpoint.js +196 -0
  186. package/backend/dist/esm/backend/src/index.d.ts +23 -0
  187. package/backend/dist/esm/backend/src/index.js +26 -0
  188. package/backend/dist/esm/backend/src/logger.d.ts +5 -0
  189. package/backend/dist/esm/backend/src/logger.js +8 -0
  190. package/backend/dist/esm/backend/src/meta.d.ts +112 -0
  191. package/backend/dist/esm/backend/src/meta.js +152 -0
  192. package/backend/dist/esm/backend/src/payments/paddle.d.ts +329 -0
  193. package/backend/dist/esm/backend/src/payments/paddle.js +2276 -0
  194. package/backend/dist/esm/backend/src/payments/stripe/checkout.d.ts +113 -0
  195. package/backend/dist/esm/backend/src/payments/stripe/checkout.js +356 -0
  196. package/backend/dist/esm/backend/src/payments/stripe/customers.d.ts +17 -0
  197. package/backend/dist/esm/backend/src/payments/stripe/customers.js +193 -0
  198. package/backend/dist/esm/backend/src/payments/stripe/error.d.ts +74 -0
  199. package/backend/dist/esm/backend/src/payments/stripe/error.js +51 -0
  200. package/backend/dist/esm/backend/src/payments/stripe/events.d.ts +155 -0
  201. package/backend/dist/esm/backend/src/payments/stripe/events.js +5 -0
  202. package/backend/dist/esm/backend/src/payments/stripe/meters.d.ts +105 -0
  203. package/backend/dist/esm/backend/src/payments/stripe/meters.js +318 -0
  204. package/backend/dist/esm/backend/src/payments/stripe/payment_methods.d.ts +58 -0
  205. package/backend/dist/esm/backend/src/payments/stripe/payment_methods.js +135 -0
  206. package/backend/dist/esm/backend/src/payments/stripe/products.d.ts +519 -0
  207. package/backend/dist/esm/backend/src/payments/stripe/products.js +896 -0
  208. package/backend/dist/esm/backend/src/payments/stripe/stripe.d.ts +215 -0
  209. package/backend/dist/esm/backend/src/payments/stripe/stripe.js +464 -0
  210. package/backend/dist/esm/backend/src/payments/stripe/subscriptions.d.ts +172 -0
  211. package/backend/dist/esm/backend/src/payments/stripe/subscriptions.js +754 -0
  212. package/backend/dist/esm/backend/src/payments/stripe/utils.d.ts +63 -0
  213. package/backend/dist/esm/backend/src/payments/stripe/utils.js +131 -0
  214. package/backend/dist/esm/backend/src/payments/stripe/webhooks.d.ts +105 -0
  215. package/backend/dist/esm/backend/src/payments/stripe/webhooks.js +752 -0
  216. package/backend/dist/esm/backend/src/plugins/browser.d.ts +1 -0
  217. package/backend/dist/esm/backend/src/plugins/browser.js +170 -0
  218. package/backend/dist/esm/backend/src/plugins/communication.d.ts +70 -0
  219. package/backend/dist/esm/backend/src/plugins/communication.js +169 -0
  220. package/backend/dist/esm/backend/src/plugins/mail/mail.d.ts +255 -0
  221. package/backend/dist/esm/backend/src/plugins/mail/mail.js +396 -0
  222. package/backend/dist/esm/backend/src/plugins/mail/ui.d.ts +297 -0
  223. package/backend/dist/esm/backend/src/plugins/mail/ui.js +1400 -0
  224. package/backend/dist/esm/backend/src/plugins/pdf.d.ts +1 -0
  225. package/backend/dist/esm/backend/src/plugins/pdf.js +1694 -0
  226. package/backend/dist/esm/backend/src/plugins/thread_monitor.d.ts +18 -0
  227. package/backend/dist/esm/backend/src/plugins/thread_monitor.js +120 -0
  228. package/backend/dist/esm/backend/src/rate_limit.d.ts +148 -0
  229. package/backend/dist/esm/backend/src/rate_limit.js +667 -0
  230. package/backend/dist/esm/backend/src/route.d.ts +39 -0
  231. package/backend/dist/esm/backend/src/route.js +222 -0
  232. package/backend/dist/esm/backend/src/server.d.ts +502 -0
  233. package/backend/dist/esm/backend/src/server.js +2031 -0
  234. package/backend/dist/esm/backend/src/server.old.d.ts +594 -0
  235. package/backend/dist/esm/backend/src/server.old.js +2630 -0
  236. package/backend/dist/esm/backend/src/splash_screen.d.ts +93 -0
  237. package/backend/dist/esm/backend/src/splash_screen.js +156 -0
  238. package/backend/dist/esm/backend/src/status.d.ts +89 -0
  239. package/backend/dist/esm/backend/src/status.js +213 -0
  240. package/backend/dist/esm/backend/src/stream.d.ts +494 -0
  241. package/backend/dist/esm/backend/src/stream.js +1611 -0
  242. package/backend/dist/esm/backend/src/users.d.ts +926 -0
  243. package/backend/dist/esm/backend/src/users.js +2423 -0
  244. package/backend/dist/esm/backend/src/utils.d.ts +22 -0
  245. package/backend/dist/esm/backend/src/utils.js +463 -0
  246. package/backend/dist/esm/backend/src/view.d.ts +115 -0
  247. package/backend/dist/esm/backend/src/view.js +584 -0
  248. package/backend/dist/esm/backend/src/vinc.d.ts +6 -0
  249. package/backend/dist/esm/backend/src/vinc.js +6 -0
  250. package/backend/dist/esm/backend/src/volt.d.ts +24 -0
  251. package/backend/dist/esm/backend/src/volt.js +27 -0
  252. package/backend/dist/esm/frontend/src/modules/request.d.ts +70 -0
  253. package/backend/dist/esm/frontend/src/modules/request.js +117 -0
  254. package/frontend/dist/backend/src/database/collection.d.ts +1765 -0
  255. package/frontend/dist/backend/src/database/collection.js +3779 -0
  256. package/frontend/dist/backend/src/database/database.d.ts +92 -0
  257. package/frontend/dist/backend/src/database/database.js +214 -0
  258. package/frontend/dist/backend/src/database/filters/filters.d.ts +6 -0
  259. package/frontend/dist/backend/src/database/filters/filters.js +1 -0
  260. package/frontend/dist/backend/src/database/filters/strict_filter.d.ts +223 -0
  261. package/frontend/dist/backend/src/database/filters/strict_filter.js +3 -0
  262. package/frontend/dist/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  263. package/frontend/dist/backend/src/database/filters/strict_update_filter.js +5 -0
  264. package/frontend/dist/backend/src/database/flatten.d.ts +78 -0
  265. package/frontend/dist/backend/src/database/flatten.js +22 -0
  266. package/frontend/dist/backend/src/endpoint.d.ts +346 -0
  267. package/frontend/dist/backend/src/endpoint.js +479 -0
  268. package/frontend/dist/backend/src/errors/index.d.ts +7 -0
  269. package/frontend/dist/backend/src/errors/index.js +7 -0
  270. package/frontend/dist/backend/src/errors/internal_external.d.ts +52 -0
  271. package/frontend/dist/backend/src/errors/internal_external.js +86 -0
  272. package/frontend/dist/backend/src/errors/invalid_usage_error.d.ts +41 -0
  273. package/frontend/dist/backend/src/errors/invalid_usage_error.js +33 -0
  274. package/frontend/dist/backend/src/errors/system_error.d.ts +261 -0
  275. package/frontend/dist/backend/src/errors/system_error.js +444 -0
  276. package/frontend/dist/backend/src/events.d.ts +97 -0
  277. package/frontend/dist/backend/src/events.js +5 -0
  278. package/frontend/dist/backend/src/frontend.d.ts +13 -0
  279. package/frontend/dist/backend/src/frontend.js +23 -0
  280. package/frontend/dist/backend/src/image_endpoint.d.ts +44 -0
  281. package/frontend/dist/backend/src/image_endpoint.js +196 -0
  282. package/frontend/dist/backend/src/meta.d.ts +112 -0
  283. package/frontend/dist/backend/src/meta.js +152 -0
  284. package/frontend/dist/backend/src/payments/paddle.d.ts +329 -0
  285. package/frontend/dist/backend/src/payments/paddle.js +2276 -0
  286. package/frontend/dist/backend/src/payments/stripe/checkout.d.ts +113 -0
  287. package/frontend/dist/backend/src/payments/stripe/checkout.js +356 -0
  288. package/frontend/dist/backend/src/payments/stripe/customers.d.ts +17 -0
  289. package/frontend/dist/backend/src/payments/stripe/customers.js +193 -0
  290. package/frontend/dist/backend/src/payments/stripe/error.d.ts +74 -0
  291. package/frontend/dist/backend/src/payments/stripe/error.js +51 -0
  292. package/frontend/dist/backend/src/payments/stripe/events.d.ts +155 -0
  293. package/frontend/dist/backend/src/payments/stripe/events.js +5 -0
  294. package/frontend/dist/backend/src/payments/stripe/meters.d.ts +105 -0
  295. package/frontend/dist/backend/src/payments/stripe/meters.js +318 -0
  296. package/frontend/dist/backend/src/payments/stripe/payment_methods.d.ts +58 -0
  297. package/frontend/dist/backend/src/payments/stripe/payment_methods.js +135 -0
  298. package/frontend/dist/backend/src/payments/stripe/products.d.ts +519 -0
  299. package/frontend/dist/backend/src/payments/stripe/products.js +896 -0
  300. package/frontend/dist/backend/src/payments/stripe/stripe.d.ts +215 -0
  301. package/frontend/dist/backend/src/payments/stripe/stripe.js +464 -0
  302. package/frontend/dist/backend/src/payments/stripe/subscriptions.d.ts +172 -0
  303. package/frontend/dist/backend/src/payments/stripe/subscriptions.js +754 -0
  304. package/frontend/dist/backend/src/payments/stripe/utils.d.ts +63 -0
  305. package/frontend/dist/backend/src/payments/stripe/utils.js +131 -0
  306. package/frontend/dist/backend/src/payments/stripe/webhooks.d.ts +105 -0
  307. package/frontend/dist/backend/src/payments/stripe/webhooks.js +752 -0
  308. package/frontend/dist/backend/src/plugins/mail/mail.d.ts +255 -0
  309. package/frontend/dist/backend/src/plugins/mail/mail.js +396 -0
  310. package/frontend/dist/backend/src/plugins/mail/ui.d.ts +297 -0
  311. package/frontend/dist/backend/src/plugins/mail/ui.js +1400 -0
  312. package/frontend/dist/backend/src/rate_limit.d.ts +148 -0
  313. package/frontend/dist/backend/src/rate_limit.js +667 -0
  314. package/frontend/dist/backend/src/route.d.ts +39 -0
  315. package/frontend/dist/backend/src/route.js +222 -0
  316. package/frontend/dist/backend/src/server.d.ts +502 -0
  317. package/frontend/dist/backend/src/server.js +2031 -0
  318. package/frontend/dist/backend/src/splash_screen.d.ts +93 -0
  319. package/frontend/dist/backend/src/splash_screen.js +156 -0
  320. package/frontend/dist/backend/src/status.d.ts +89 -0
  321. package/frontend/dist/backend/src/status.js +213 -0
  322. package/frontend/dist/backend/src/stream.d.ts +494 -0
  323. package/frontend/dist/backend/src/stream.js +1611 -0
  324. package/frontend/dist/backend/src/users.d.ts +926 -0
  325. package/frontend/dist/backend/src/users.js +2423 -0
  326. package/frontend/dist/backend/src/utils.d.ts +22 -0
  327. package/frontend/dist/backend/src/utils.js +463 -0
  328. package/frontend/dist/backend/src/view.d.ts +115 -0
  329. package/frontend/dist/backend/src/view.js +584 -0
  330. package/frontend/dist/frontend/src/css/adyen.css +92 -0
  331. package/frontend/dist/frontend/src/css/volt.css +75 -0
  332. package/frontend/dist/frontend/src/elements/base.d.ts +3743 -0
  333. package/frontend/dist/frontend/src/elements/base.js +12151 -0
  334. package/frontend/dist/frontend/src/elements/module.d.ts +95 -0
  335. package/frontend/dist/frontend/src/elements/module.js +216 -0
  336. package/frontend/dist/frontend/src/elements/register_element.d.ts +3 -0
  337. package/frontend/dist/frontend/src/elements/register_element.js +22 -0
  338. package/frontend/dist/frontend/src/elements/resize_query_manager.d.ts +0 -0
  339. package/frontend/dist/frontend/src/elements/resize_query_manager.js +150 -0
  340. package/frontend/dist/frontend/src/elements/types.d.ts +52 -0
  341. package/frontend/dist/frontend/src/elements/types.js +5 -0
  342. package/frontend/dist/frontend/src/index.d.ts +21 -0
  343. package/frontend/dist/frontend/src/index.js +29 -0
  344. package/frontend/dist/frontend/src/modules/attachment.d.ts +126 -0
  345. package/frontend/dist/frontend/src/modules/attachment.js +306 -0
  346. package/frontend/dist/frontend/src/modules/auth.d.ts +44 -0
  347. package/frontend/dist/frontend/src/modules/auth.js +80 -0
  348. package/frontend/dist/frontend/src/modules/color.d.ts +160 -0
  349. package/frontend/dist/frontend/src/modules/color.js +316 -0
  350. package/frontend/dist/frontend/src/modules/compression.d.ts +39 -0
  351. package/frontend/dist/frontend/src/modules/compression.js +102 -0
  352. package/frontend/dist/frontend/src/modules/cookies.d.ts +44 -0
  353. package/frontend/dist/frontend/src/modules/cookies.js +143 -0
  354. package/frontend/dist/frontend/src/modules/events.d.ts +31 -0
  355. package/frontend/dist/frontend/src/modules/events.js +79 -0
  356. package/frontend/dist/frontend/src/modules/google.d.ts +23 -0
  357. package/frontend/dist/frontend/src/modules/google.js +52 -0
  358. package/frontend/dist/frontend/src/modules/meta.d.ts +14 -0
  359. package/frontend/dist/frontend/src/modules/meta.js +48 -0
  360. package/frontend/dist/frontend/src/modules/paddle.d.ts +1207 -0
  361. package/frontend/dist/frontend/src/modules/paddle.js +2594 -0
  362. package/frontend/dist/frontend/src/modules/request.d.ts +70 -0
  363. package/frontend/dist/frontend/src/modules/request.js +117 -0
  364. package/frontend/dist/frontend/src/modules/settings.d.ts +3 -0
  365. package/frontend/dist/frontend/src/modules/settings.js +5 -0
  366. package/frontend/dist/frontend/src/modules/statics.d.ts +21 -0
  367. package/frontend/dist/frontend/src/modules/statics.js +43 -0
  368. package/frontend/dist/frontend/src/modules/stripe/cart.d.ts +112 -0
  369. package/frontend/dist/frontend/src/modules/stripe/cart.js +321 -0
  370. package/frontend/dist/frontend/src/modules/stripe/checkout.d.ts +7 -0
  371. package/frontend/dist/frontend/src/modules/stripe/checkout.js +37 -0
  372. package/frontend/dist/frontend/src/modules/stripe/index.m.d.ts +6 -0
  373. package/frontend/dist/frontend/src/modules/stripe/index.m.js +6 -0
  374. package/frontend/dist/frontend/src/modules/stripe/payments.d.ts +58 -0
  375. package/frontend/dist/frontend/src/modules/stripe/payments.js +92 -0
  376. package/frontend/dist/frontend/src/modules/support.d.ts +30 -0
  377. package/frontend/dist/frontend/src/modules/support.js +53 -0
  378. package/frontend/dist/frontend/src/modules/theme.d.ts +133 -0
  379. package/frontend/dist/frontend/src/modules/theme.js +406 -0
  380. package/frontend/dist/frontend/src/modules/themes.d.ts +12 -0
  381. package/frontend/dist/frontend/src/modules/themes.js +22 -0
  382. package/frontend/dist/frontend/src/modules/user.d.ts +164 -0
  383. package/frontend/dist/frontend/src/modules/user.js +270 -0
  384. package/frontend/dist/frontend/src/modules/utils.d.ts +176 -0
  385. package/frontend/dist/frontend/src/modules/utils.js +569 -0
  386. package/frontend/dist/frontend/src/types/gradient.d.ts +29 -0
  387. package/frontend/dist/frontend/src/types/gradient.js +79 -0
  388. package/frontend/dist/frontend/src/ui/border_button.d.ts +94 -0
  389. package/frontend/dist/frontend/src/ui/border_button.js +228 -0
  390. package/frontend/dist/frontend/src/ui/button.d.ts +241 -0
  391. package/frontend/dist/frontend/src/ui/button.js +682 -0
  392. package/frontend/dist/frontend/src/ui/canvas.d.ts +138 -0
  393. package/frontend/dist/frontend/src/ui/canvas.js +444 -0
  394. package/frontend/dist/frontend/src/ui/checkbox.d.ts +74 -0
  395. package/frontend/dist/frontend/src/ui/checkbox.js +321 -0
  396. package/frontend/dist/frontend/src/ui/code.d.ts +235 -0
  397. package/frontend/dist/frontend/src/ui/code.js +1007 -0
  398. package/frontend/dist/frontend/src/ui/context_menu.d.ts +36 -0
  399. package/frontend/dist/frontend/src/ui/context_menu.js +205 -0
  400. package/frontend/dist/frontend/src/ui/css.d.ts +16 -0
  401. package/frontend/dist/frontend/src/ui/css.js +48 -0
  402. package/frontend/dist/frontend/src/ui/divider.d.ts +15 -0
  403. package/frontend/dist/frontend/src/ui/divider.js +78 -0
  404. package/frontend/dist/frontend/src/ui/dropdown.d.ts +176 -0
  405. package/frontend/dist/frontend/src/ui/dropdown.js +481 -0
  406. package/frontend/dist/frontend/src/ui/for_each.d.ts +37 -0
  407. package/frontend/dist/frontend/src/ui/for_each.js +92 -0
  408. package/frontend/dist/frontend/src/ui/form.d.ts +34 -0
  409. package/frontend/dist/frontend/src/ui/form.js +233 -0
  410. package/frontend/dist/frontend/src/ui/frame_modes.d.ts +37 -0
  411. package/frontend/dist/frontend/src/ui/frame_modes.js +108 -0
  412. package/frontend/dist/frontend/src/ui/google_map.d.ts +24 -0
  413. package/frontend/dist/frontend/src/ui/google_map.js +106 -0
  414. package/frontend/dist/frontend/src/ui/gradient.d.ts +25 -0
  415. package/frontend/dist/frontend/src/ui/gradient.js +131 -0
  416. package/frontend/dist/frontend/src/ui/image.d.ts +111 -0
  417. package/frontend/dist/frontend/src/ui/image.js +576 -0
  418. package/frontend/dist/frontend/src/ui/input.d.ts +392 -0
  419. package/frontend/dist/frontend/src/ui/input.js +1201 -0
  420. package/frontend/dist/frontend/src/ui/link.d.ts +25 -0
  421. package/frontend/dist/frontend/src/ui/link.js +140 -0
  422. package/frontend/dist/frontend/src/ui/list.d.ts +37 -0
  423. package/frontend/dist/frontend/src/ui/list.js +170 -0
  424. package/frontend/dist/frontend/src/ui/loader_button.d.ts +80 -0
  425. package/frontend/dist/frontend/src/ui/loader_button.js +193 -0
  426. package/frontend/dist/frontend/src/ui/loaders.d.ts +57 -0
  427. package/frontend/dist/frontend/src/ui/loaders.js +157 -0
  428. package/frontend/dist/frontend/src/ui/popup.d.ts +94 -0
  429. package/frontend/dist/frontend/src/ui/popup.js +510 -0
  430. package/frontend/dist/frontend/src/ui/pseudo.d.ts +44 -0
  431. package/frontend/dist/frontend/src/ui/pseudo.js +154 -0
  432. package/frontend/dist/frontend/src/ui/scroller.d.ts +105 -0
  433. package/frontend/dist/frontend/src/ui/scroller.js +1253 -0
  434. package/frontend/dist/frontend/src/ui/slider.d.ts +45 -0
  435. package/frontend/dist/frontend/src/ui/slider.js +217 -0
  436. package/frontend/dist/frontend/src/ui/spacer.d.ts +15 -0
  437. package/frontend/dist/frontend/src/ui/spacer.js +78 -0
  438. package/frontend/dist/frontend/src/ui/span.d.ts +15 -0
  439. package/frontend/dist/frontend/src/ui/span.js +73 -0
  440. package/frontend/dist/frontend/src/ui/stack.d.ts +66 -0
  441. package/frontend/dist/frontend/src/ui/stack.js +335 -0
  442. package/frontend/dist/frontend/src/ui/steps.d.ts +131 -0
  443. package/frontend/dist/frontend/src/ui/steps.js +308 -0
  444. package/frontend/dist/frontend/src/ui/style.d.ts +17 -0
  445. package/frontend/dist/frontend/src/ui/style.js +73 -0
  446. package/frontend/dist/frontend/src/ui/switch.d.ts +69 -0
  447. package/frontend/dist/frontend/src/ui/switch.js +357 -0
  448. package/frontend/dist/frontend/src/ui/table.d.ts +100 -0
  449. package/frontend/dist/frontend/src/ui/table.js +405 -0
  450. package/frontend/dist/frontend/src/ui/tabs.d.ts +111 -0
  451. package/frontend/dist/frontend/src/ui/tabs.js +424 -0
  452. package/frontend/dist/frontend/src/ui/text.d.ts +15 -0
  453. package/frontend/dist/frontend/src/ui/text.js +83 -0
  454. package/frontend/dist/frontend/src/ui/title.d.ts +91 -0
  455. package/frontend/dist/frontend/src/ui/title.js +272 -0
  456. package/frontend/dist/frontend/src/ui/ui.d.ts +35 -0
  457. package/frontend/dist/frontend/src/ui/ui.js +38 -0
  458. package/frontend/dist/frontend/src/ui/view.d.ts +15 -0
  459. package/frontend/dist/frontend/src/ui/view.js +88 -0
  460. package/frontend/dist/frontend/src/volt.d.ts +20 -0
  461. package/frontend/dist/frontend/src/volt.js +27 -0
  462. package/package.json +7 -2
@@ -0,0 +1,543 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var stdin_exports = {};
29
+ __export(stdin_exports, {
30
+ RateLimitClient: () => RateLimitClient,
31
+ RateLimitServer: () => RateLimitServer,
32
+ RateLimits: () => RateLimits,
33
+ default: () => stdin_default
34
+ });
35
+ module.exports = __toCommonJS(stdin_exports);
36
+ var vlib = __toESM(require("@vandenberghinc/vlib"));
37
+ var RateLimits;
38
+ (function(RateLimits2) {
39
+ RateLimits2.groups = /* @__PURE__ */ new Map([
40
+ /** The `global` rate settings. */
41
+ ["global", { group: "global", interval: 60, limit: 5e3 }]
42
+ ]);
43
+ function add({ group, limit, interval }) {
44
+ const settings = RateLimits2.groups.has(group) ? RateLimits2.groups.get(group) : { group: "", limit: 0, interval: 0 };
45
+ settings.group = group;
46
+ if (limit) {
47
+ settings.limit = limit;
48
+ } else if (!settings.limit) {
49
+ settings.limit = 50;
50
+ }
51
+ if (interval) {
52
+ settings.interval = interval;
53
+ } else if (!settings.interval) {
54
+ settings.interval = 60;
55
+ }
56
+ RateLimits2.groups.set(group, settings);
57
+ return settings;
58
+ }
59
+ RateLimits2.add = add;
60
+ function normalize_ip(ip) {
61
+ let s = strip_brackets_zone_and_port(ip);
62
+ const v4 = try_parse_ipv4_bytes(s);
63
+ if (v4) {
64
+ return ipv4_bytes_to_string(v4);
65
+ }
66
+ const hextets = parse_ipv6_to_hextets(s);
67
+ if (is_ipv4_mapped(hextets)) {
68
+ const b0 = hextets[6] >>> 8 & 255;
69
+ const b1 = hextets[6] & 255;
70
+ const b2 = hextets[7] >>> 8 & 255;
71
+ const b3 = hextets[7] & 255;
72
+ return `${b0}.${b1}.${b2}.${b3}`;
73
+ }
74
+ return ipv6_hextets_to_rfc5952(hextets);
75
+ }
76
+ RateLimits2.normalize_ip = normalize_ip;
77
+ function strip_brackets_zone_and_port(input) {
78
+ let s = input.trim();
79
+ if (s.startsWith("[")) {
80
+ const rb = s.indexOf("]");
81
+ if (rb === -1)
82
+ throw new Error("invalid ip: unmatched closing bracket");
83
+ s = s.slice(1, rb);
84
+ }
85
+ const pct = s.indexOf("%");
86
+ if (pct !== -1)
87
+ s = s.slice(0, pct);
88
+ return s;
89
+ }
90
+ function try_parse_ipv4_bytes(s) {
91
+ let a = 0, b = 0, c = 0, d = 0;
92
+ let val = 0, dots = 0, digits = 0;
93
+ for (let i = 0; i < s.length; i++) {
94
+ const ch = s.charCodeAt(i);
95
+ if (ch === 46) {
96
+ if (digits === 0)
97
+ return null;
98
+ if (dots === 0)
99
+ a = val;
100
+ else if (dots === 1)
101
+ b = val;
102
+ else if (dots === 2)
103
+ c = val;
104
+ else
105
+ return null;
106
+ dots++;
107
+ val = 0;
108
+ digits = 0;
109
+ } else if (ch >= 48 && ch <= 57) {
110
+ val = val * 10 + (ch - 48);
111
+ if (val > 255)
112
+ return null;
113
+ digits++;
114
+ } else {
115
+ return null;
116
+ }
117
+ }
118
+ if (dots !== 3 || digits === 0)
119
+ return null;
120
+ d = val;
121
+ return [a, b, c, d];
122
+ }
123
+ function ipv4_bytes_to_string(bytes) {
124
+ return `${bytes[0]}.${bytes[1]}.${bytes[2]}.${bytes[3]}`;
125
+ }
126
+ function parse_ipv6_to_hextets(s) {
127
+ const dbl = s.indexOf("::");
128
+ const has_double = dbl !== -1;
129
+ if (has_double && s.indexOf("::", dbl + 2) !== -1) {
130
+ throw new Error("invalid ipv6: multiple ::");
131
+ }
132
+ const left_end = has_double ? dbl : s.length;
133
+ const right_start = has_double ? dbl + 2 : s.length;
134
+ const left = parse_ipv6_side_range(s, 0, left_end);
135
+ const right = has_double ? parse_ipv6_side_range(s, right_start, s.length) : [];
136
+ let zeros = 0;
137
+ if (has_double) {
138
+ zeros = 8 - (left.length + right.length);
139
+ if (zeros < 1)
140
+ throw new Error("invalid ipv6: bad :: compression");
141
+ } else {
142
+ if (left.length !== 8)
143
+ throw new Error("invalid ipv6: must have 8 hextets without ::");
144
+ }
145
+ const out = new Array(8);
146
+ let k = 0;
147
+ for (let i = 0; i < left.length; i++)
148
+ out[k++] = left[i];
149
+ for (let i = 0; i < zeros; i++)
150
+ out[k++] = 0;
151
+ for (let i = 0; i < right.length; i++)
152
+ out[k++] = right[i];
153
+ return [
154
+ out[0],
155
+ out[1],
156
+ out[2],
157
+ out[3],
158
+ out[4],
159
+ out[5],
160
+ out[6],
161
+ out[7]
162
+ ];
163
+ }
164
+ function parse_ipv6_side_range(s, start, end) {
165
+ if (start === end)
166
+ return [];
167
+ const out = [];
168
+ let i = start;
169
+ while (i < end) {
170
+ const token_start = i;
171
+ while (i < end && s.charCodeAt(i) !== 58)
172
+ i++;
173
+ const token_end = i;
174
+ if (token_end === token_start)
175
+ throw new Error("invalid ipv6: empty hextet");
176
+ let has_dot = false;
177
+ for (let p = token_start; p < token_end; p++) {
178
+ if (s.charCodeAt(p) === 46) {
179
+ has_dot = true;
180
+ break;
181
+ }
182
+ }
183
+ if (has_dot) {
184
+ if (i !== end)
185
+ throw new Error("invalid ipv6: embedded ipv4 must be last token");
186
+ const bytes = try_parse_ipv4_bytes(s.slice(token_start, token_end));
187
+ if (!bytes)
188
+ throw new Error("invalid ipv6: bad embedded ipv4");
189
+ out.push((bytes[0] << 8 | bytes[1]) & 65535);
190
+ out.push((bytes[2] << 8 | bytes[3]) & 65535);
191
+ } else {
192
+ out.push(parse_hextet_token(s, token_start, token_end));
193
+ }
194
+ if (++i > end)
195
+ break;
196
+ if (out.length > 8)
197
+ throw new Error("invalid ipv6: too many hextets");
198
+ }
199
+ return out;
200
+ }
201
+ function parse_hextet_token(s, start, end) {
202
+ const len = end - start;
203
+ if (len < 1 || len > 4)
204
+ throw new Error("invalid ipv6: hextet size");
205
+ let val = 0;
206
+ for (let i = 0; i < len; i++) {
207
+ const c = s.charCodeAt(start + i);
208
+ let nibble;
209
+ if (c >= 48 && c <= 57)
210
+ nibble = c - 48;
211
+ else if (c >= 97 && c <= 102)
212
+ nibble = 10 + (c - 97);
213
+ else if (c >= 65 && c <= 70)
214
+ nibble = 10 + (c - 65);
215
+ else
216
+ throw new Error("invalid ipv6: non-hex character");
217
+ val = val << 4 | nibble;
218
+ }
219
+ return val & 65535;
220
+ }
221
+ function is_ipv4_mapped(h) {
222
+ return h[0] === 0 && h[1] === 0 && h[2] === 0 && h[3] === 0 && h[4] === 0 && h[5] === 65535;
223
+ }
224
+ function ipv6_hextets_to_rfc5952(h) {
225
+ let best_start = -1, best_len = 0;
226
+ for (let i = 0; i < 8; ) {
227
+ if (h[i] !== 0) {
228
+ i++;
229
+ continue;
230
+ }
231
+ const start = i;
232
+ while (i < 8 && h[i] === 0)
233
+ i++;
234
+ const len = i - start;
235
+ if (len >= 2 && len > best_len) {
236
+ best_start = start;
237
+ best_len = len;
238
+ }
239
+ }
240
+ let out = "";
241
+ for (let i = 0; i < 8; i++) {
242
+ if (best_len && i === best_start) {
243
+ if (i === 0)
244
+ out += "::";
245
+ else
246
+ out += ":::";
247
+ i += best_len - 1;
248
+ continue;
249
+ }
250
+ if (i > 0 && !(best_len && i === best_start + best_len))
251
+ out += ":";
252
+ out += h[i].toString(16);
253
+ }
254
+ if (out === "")
255
+ return "::";
256
+ if (out.startsWith(":::"))
257
+ out = out.slice(1);
258
+ return out;
259
+ }
260
+ })(RateLimits || (RateLimits = {}));
261
+ class RateLimitServer {
262
+ // Static attributes.
263
+ static default_port = 51234;
264
+ // Instance attributes
265
+ ip;
266
+ port;
267
+ https_config;
268
+ server;
269
+ limits;
270
+ ws;
271
+ clear_caches_interval;
272
+ constructor({ port = RateLimitServer.default_port, ip, https, _server }) {
273
+ vlib.schema.validate(arguments[0], {
274
+ unknown: false,
275
+ throw: true,
276
+ schema: {
277
+ port: { type: "number", default: RateLimitServer.default_port },
278
+ ip: { type: "string", required: false },
279
+ https: { type: "any", required: false },
280
+ _server: "object"
281
+ }
282
+ });
283
+ this.ip = ip;
284
+ this.port = port;
285
+ this.https_config = https;
286
+ this.server = _server;
287
+ this.limits = /* @__PURE__ */ new Map();
288
+ }
289
+ /** Assert the server is running. */
290
+ assert_connected() {
291
+ if (!this.ws) {
292
+ throw new Error("The rate limit server is not running.");
293
+ }
294
+ }
295
+ // Start.
296
+ async start() {
297
+ if (!this.server.rate_limit_api_key) {
298
+ throw new Error("Rate limit API key is not defined.");
299
+ }
300
+ this.ws = new vlib.websocket.Server({
301
+ ip: this.ip,
302
+ port: this.port,
303
+ https: this.https_config,
304
+ api_keys: [this.server.rate_limit_api_key],
305
+ rate_limit: {
306
+ limit: 100,
307
+ interval: 60
308
+ }
309
+ });
310
+ this.ws.on_event("listen", (address) => {
311
+ this.server.log(0, `Running on ${address}.`);
312
+ });
313
+ this.ws.on_event("error", (stream, e) => {
314
+ this.server.log.error(e);
315
+ });
316
+ this.ws.on("limit", async (stream, id, data) => {
317
+ this.assert_connected();
318
+ try {
319
+ this.ws.respond({
320
+ stream,
321
+ id,
322
+ data: { response: await this.limit(data.ip, data.groups) }
323
+ });
324
+ } catch (e) {
325
+ this.server.log.error(e);
326
+ this.ws.respond({ stream, id, data: { error: e.message } });
327
+ }
328
+ });
329
+ this.ws.on("reset", async (stream, id, data) => {
330
+ this.assert_connected();
331
+ try {
332
+ await this.reset(data.group);
333
+ this.ws.respond({ stream, id, data: { error: void 0 } });
334
+ } catch (e) {
335
+ this.server.log.error(e);
336
+ this.ws.respond({ stream, id, data: { error: e.message } });
337
+ }
338
+ });
339
+ this.ws.on("reset_all", async (stream, id) => {
340
+ this.assert_connected();
341
+ try {
342
+ await this.reset_all();
343
+ this.ws.respond({ stream, id, data: { error: void 0 } });
344
+ } catch (e) {
345
+ this.server.log.error(e);
346
+ this.ws.respond({ stream, id, data: { error: e.message } });
347
+ }
348
+ });
349
+ await this.ws.start();
350
+ this.clear_caches_interval = setInterval(() => {
351
+ const remove_after = Date.now() + 3600 * 1e3;
352
+ for (const [group, map] of this.limits.entries()) {
353
+ for (const [ip, data] of map.entries()) {
354
+ if (remove_after > data.expiration) {
355
+ map.delete(ip);
356
+ }
357
+ }
358
+ }
359
+ }, 3600 * 1e3);
360
+ }
361
+ // Stop.
362
+ async stop() {
363
+ this.server.log("Stopping the rate limit server.");
364
+ if (this.clear_caches_interval) {
365
+ clearInterval(this.clear_caches_interval);
366
+ }
367
+ if (this.ws) {
368
+ await this.ws.stop();
369
+ this.ws = void 0;
370
+ }
371
+ }
372
+ // Returns null when rate limit is approved, and returns the unix timestamp (as str) of reset when rate limit has been exceeded.
373
+ async limit(ip, groups = [{ group: null, limit: null, interval: null }]) {
374
+ for (const rate_limit of groups) {
375
+ for (let attempts = 2; attempts >= 0; --attempts) {
376
+ try {
377
+ let limits;
378
+ if (this.limits.has(rate_limit.group)) {
379
+ limits = this.limits.get(rate_limit.group);
380
+ } else {
381
+ limits = /* @__PURE__ */ new Map();
382
+ this.limits.set(rate_limit.group, limits);
383
+ }
384
+ const now = Date.now();
385
+ if (limits.has(ip)) {
386
+ let data = limits.get(ip);
387
+ if (now >= data.expiration) {
388
+ data = {
389
+ count: 0,
390
+ expiration: now + rate_limit.interval * 1e3
391
+ };
392
+ }
393
+ ++data.count;
394
+ if (data.count > rate_limit.limit) {
395
+ return data.expiration;
396
+ }
397
+ limits.set(ip, data);
398
+ } else {
399
+ limits.set(ip, {
400
+ count: 1,
401
+ expiration: now + rate_limit.interval * 1e3
402
+ });
403
+ }
404
+ break;
405
+ } catch (e) {
406
+ if (attempts === 0) {
407
+ throw e;
408
+ }
409
+ }
410
+ }
411
+ }
412
+ return null;
413
+ }
414
+ // Reset a group limit.
415
+ async reset(group) {
416
+ for (const [key, group_limits] of this.limits.entries()) {
417
+ if (key === group) {
418
+ for (const cache of group_limits.values()) {
419
+ cache.count = 0;
420
+ }
421
+ }
422
+ }
423
+ }
424
+ // Reset all rate limit groups.
425
+ async reset_all() {
426
+ for (const group_limits of this.limits.values()) {
427
+ for (const cache of group_limits.values()) {
428
+ cache.count = 0;
429
+ }
430
+ }
431
+ }
432
+ }
433
+ class RateLimitClient {
434
+ ip;
435
+ port;
436
+ https;
437
+ url;
438
+ server;
439
+ ws;
440
+ constructor({ ip, port = RateLimitServer.default_port, https = false, url, _server }) {
441
+ vlib.schema.validate(arguments[0], {
442
+ unknown: false,
443
+ throw: true,
444
+ schema: {
445
+ ip: { type: "string", default: null },
446
+ port: { type: "number", default: RateLimitServer.default_port },
447
+ https: { type: "object", default: null },
448
+ url: { type: "string", default: null },
449
+ _server: "object"
450
+ }
451
+ });
452
+ this.ip = ip ? ip : "localhost";
453
+ this.port = port;
454
+ this.https = https;
455
+ this.url = url;
456
+ this.server = _server;
457
+ }
458
+ /** Assert the client is started & connected. */
459
+ assert_connected() {
460
+ if (!this.ws) {
461
+ throw new Error("The rate limit client is not started.");
462
+ }
463
+ }
464
+ // Start.
465
+ async start() {
466
+ if (!this.server.rate_limit_api_key) {
467
+ throw new Error("Rate limit API key is not defined.");
468
+ }
469
+ this.ws = new vlib.websocket.Client({
470
+ url: this.url ? this.url : `${this.https ? "wss" : "ws"}://${this.ip}:${this.port}`,
471
+ api_key: this.server.rate_limit_api_key,
472
+ reconnect: {
473
+ interval: 10,
474
+ max_interval: 3e4
475
+ },
476
+ ping: true
477
+ });
478
+ this.ws.on_event("error", (e) => {
479
+ this.server.log.error(e);
480
+ });
481
+ this.ws.on_event("reconnect", (e) => {
482
+ this.server.log("Attempting to reconnect with the server.");
483
+ });
484
+ this.ws.on_event("close", () => {
485
+ this.server.log("Websocket closed after exhausting all reconnect attempts.");
486
+ process.exit(1);
487
+ });
488
+ await this.ws.connect();
489
+ }
490
+ // Stop.
491
+ async stop() {
492
+ this.server.log("Stopping the rate limit client.");
493
+ if (this.ws) {
494
+ await this.ws.disconnect();
495
+ this.ws = void 0;
496
+ }
497
+ }
498
+ // Limit function.
499
+ // Returns null when rate limit is approved, and returns the unix timestamp (as str) of reset when rate limit has been exceeded.
500
+ async limit(ip, groups = [{ group: null, limit: null, interval: null }]) {
501
+ this.assert_connected();
502
+ const { data } = await this.ws.request({
503
+ command: "limit",
504
+ timeout: 1e4,
505
+ data: { ip, groups }
506
+ });
507
+ if (data.error) {
508
+ throw new Error(data.error);
509
+ }
510
+ return data.response;
511
+ }
512
+ // Reset a group limit.
513
+ async reset(group) {
514
+ this.assert_connected();
515
+ const { data } = await this.ws.request({
516
+ command: "reset",
517
+ timeout: 1e4,
518
+ data: { group }
519
+ });
520
+ if (data.error) {
521
+ throw new Error(data.error);
522
+ }
523
+ }
524
+ // Reset all rate limit groups.
525
+ async reset_all() {
526
+ this.assert_connected();
527
+ const { data } = await this.ws.request({
528
+ command: "reset_all",
529
+ timeout: 1e4,
530
+ data: {}
531
+ });
532
+ if (data.error) {
533
+ throw new Error(data.error);
534
+ }
535
+ }
536
+ }
537
+ var stdin_default = RateLimits;
538
+ // Annotate the CommonJS export names for ESM import in node:
539
+ 0 && (module.exports = {
540
+ RateLimitClient,
541
+ RateLimitServer,
542
+ RateLimits
543
+ });
@@ -0,0 +1,39 @@
1
+ /**
2
+ * A Route encapsulates an HTTP method and an endpoint pattern (string, colon-style, or RegExp),
3
+ * and provides a `.match()` method which returns true/false and populates `.params` on success.
4
+ * @note A route is automatically created for each `Endpoint` inside the `Endpoint` class.
5
+ * @nav Endpoints
6
+ * @docs
7
+ */
8
+ export declare class Route {
9
+ readonly method: string;
10
+ readonly endpoint: string | RegExp;
11
+ readonly endpoint_str: string;
12
+ readonly id: string;
13
+ readonly is_regex: boolean;
14
+ readonly params: {
15
+ name: string;
16
+ required: boolean;
17
+ }[];
18
+ private matcher?;
19
+ /**
20
+ *
21
+ * @param method HTTP method (e.g. "GET", "post", etc.)
22
+ * @param endpoint The endpoint parameter supports the following input type.
23
+ * - A regex to match against the request URL, or a string with colon-style path parameters.
24
+ * - A string supporting colon-style path parameters (e.g. "/user/:id"), and simple `*` and `**` wildcards.
25
+ * Ensure the wildcards are encapsulated by / or at the start of end of the string.
26
+ */
27
+ constructor(method: string, endpoint: string | RegExp);
28
+ /**
29
+ * Tests this route against another Route (e.g. a “request” Route).
30
+ * @returns `false` when not matched, and a `params` object when matched.
31
+ * @docs
32
+ */
33
+ match(other: Route): false | Record<string, any>;
34
+ private _create_route_matcher;
35
+ private static _stringify_endpoint_regex;
36
+ /** Clean an endpoint url. */
37
+ static clean_endpoint(endpoint: RegExp): RegExp;
38
+ static clean_endpoint(endpoint: string): string;
39
+ }