@vandenberghinc/volt 1.1.26 → 1.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/backend/dist/cjs/{blacklist.d.ts → backend/src/blacklist.d.ts} +5 -3
- package/backend/dist/cjs/{blacklist.js → backend/src/blacklist.js} +8 -5
- package/backend/dist/cjs/{cli.js → backend/src/cli.js} +29 -47
- package/backend/dist/cjs/backend/src/database/collection.d.ts +1543 -0
- package/backend/dist/cjs/backend/src/database/collection.js +3042 -0
- package/backend/dist/cjs/backend/src/database/database.d.ts +66 -0
- package/backend/dist/cjs/{database → backend/src/database}/database.js +48 -43
- package/backend/dist/cjs/backend/src/database/filters/filters.d.ts +6 -0
- package/backend/dist/cjs/backend/src/database/filters/filters.js +15 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter.d.ts +223 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter.js +15 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_test.js +443 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_test_v0.js +15 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.js +15 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.js +15 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.js +15 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.js +15 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.d.ts +165 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.js +15 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
- package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.js +355 -0
- package/backend/dist/cjs/backend/src/database/flatten.d.ts +75 -0
- package/backend/dist/cjs/{logger.js → backend/src/database/flatten.js} +18 -7
- package/backend/dist/cjs/backend/src/database/flatten_test.js +175 -0
- package/backend/dist/cjs/backend/src/database/quota/quota.d.ts +461 -0
- package/backend/dist/cjs/backend/src/database/quota/quota.js +1014 -0
- package/backend/dist/cjs/backend/src/database/quota/quota_v1.d.ts +534 -0
- package/backend/dist/cjs/backend/src/database/quota/quota_v1.js +1087 -0
- package/backend/dist/cjs/backend/src/database/quota/safe_int.d.ts +293 -0
- package/backend/dist/cjs/backend/src/database/quota/safe_int.js +573 -0
- package/backend/dist/{esm → cjs/backend/src}/endpoint.d.ts +69 -46
- package/backend/dist/cjs/{endpoint.js → backend/src/endpoint.js} +87 -101
- package/backend/dist/cjs/backend/src/errors/index.d.ts +7 -0
- package/backend/dist/cjs/backend/src/errors/index.js +25 -0
- package/backend/dist/{esm/utils.d.ts → cjs/backend/src/errors/internal_external.d.ts} +14 -22
- package/backend/dist/cjs/backend/src/errors/internal_external.js +85 -0
- package/backend/dist/cjs/backend/src/errors/invalid_usage_error.d.ts +38 -0
- package/backend/dist/cjs/{mutex.js → backend/src/errors/invalid_usage_error.js} +20 -37
- package/backend/dist/cjs/backend/src/errors/system_error.d.ts +230 -0
- package/backend/dist/cjs/backend/src/errors/system_error.js +393 -0
- package/backend/dist/cjs/backend/src/events.d.ts +54 -0
- package/backend/dist/cjs/backend/src/events.js +15 -0
- package/backend/dist/cjs/{frontend.js → backend/src/frontend.js} +1 -1
- package/backend/dist/cjs/{image_endpoint.d.ts → backend/src/image_endpoint.d.ts} +16 -1
- package/backend/dist/cjs/{image_endpoint.js → backend/src/image_endpoint.js} +3 -5
- package/backend/dist/cjs/backend/src/logger.d.ts +5 -0
- package/backend/dist/cjs/backend/src/logger.js +15 -0
- package/backend/dist/cjs/backend/src/meta.d.ts +64 -0
- package/backend/dist/cjs/{meta.js → backend/src/meta.js} +9 -12
- package/backend/dist/cjs/backend/src/payments/paddle.d.ts +326 -0
- package/backend/dist/cjs/{payments → backend/src/payments}/paddle.js +377 -327
- package/backend/dist/cjs/backend/src/plugins/browser.d.ts +1 -0
- package/backend/dist/cjs/backend/src/plugins/browser.js +15 -0
- package/backend/dist/cjs/backend/src/plugins/mail/mail.d.ts +248 -0
- package/backend/dist/cjs/backend/src/plugins/mail/mail.js +379 -0
- package/backend/dist/{esm → cjs/backend/src}/plugins/mail/ui.d.ts +23 -0
- package/backend/dist/cjs/backend/src/plugins/pdf.d.ts +1 -0
- package/backend/dist/cjs/backend/src/rate_limit.d.ts +145 -0
- package/backend/dist/cjs/backend/src/rate_limit.js +549 -0
- package/backend/dist/cjs/{route.d.ts → backend/src/route.d.ts} +3 -10
- package/backend/dist/cjs/{route.js → backend/src/route.js} +23 -21
- package/backend/dist/cjs/backend/src/server.d.ts +485 -0
- package/backend/dist/cjs/{server.js → backend/src/server.js} +688 -873
- package/backend/dist/cjs/backend/src/splash_screen.d.ts +80 -0
- package/backend/dist/cjs/{splash_screen.js → backend/src/splash_screen.js} +24 -3
- package/backend/dist/cjs/backend/src/status.d.ts +74 -0
- package/backend/dist/cjs/{status.js → backend/src/status.js} +64 -64
- package/backend/dist/cjs/backend/src/stream.d.ts +376 -0
- package/backend/dist/cjs/{stream.js → backend/src/stream.js} +299 -276
- package/backend/dist/cjs/backend/src/users.d.ts +807 -0
- package/backend/dist/cjs/backend/src/users.js +1971 -0
- package/backend/dist/cjs/backend/src/utils.d.ts +16 -0
- package/backend/dist/cjs/{utils.js → backend/src/utils.js} +14 -77
- package/backend/dist/{esm → cjs/backend/src}/view.d.ts +33 -11
- package/backend/dist/cjs/backend/src/view.js +508 -0
- package/backend/dist/{esm → cjs/backend/src}/volt.d.ts +10 -1
- package/backend/dist/cjs/{volt.js → backend/src/volt.js} +8 -5
- package/backend/dist/cjs/frontend/src/modules/request.d.ts +70 -0
- package/backend/dist/cjs/frontend/src/modules/request.js +99 -0
- package/backend/dist/esm/{blacklist.d.ts → backend/src/blacklist.d.ts} +5 -3
- package/backend/dist/esm/{blacklist.js → backend/src/blacklist.js} +9 -6
- package/backend/dist/esm/{cli.js → backend/src/cli.js} +43 -60
- package/backend/dist/esm/backend/src/database/collection.d.ts +1543 -0
- package/backend/dist/esm/backend/src/database/collection.js +3510 -0
- package/backend/dist/esm/backend/src/database/database.d.ts +66 -0
- package/backend/dist/esm/{database → backend/src/database}/database.js +62 -103
- package/backend/dist/esm/backend/src/database/document.d.ts +1 -0
- package/backend/dist/esm/backend/src/database/document.js +558 -0
- package/backend/dist/esm/backend/src/database/filters/filters.d.ts +6 -0
- package/backend/dist/esm/backend/src/database/filters/filters.js +1 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter.d.ts +223 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter.js +3 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_test.d.ts +1 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_test.js +505 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.d.ts +1 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.js +712 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.js +5 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.js +44 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.js +5 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
- package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.js +1 -0
- package/backend/dist/esm/backend/src/database/filters/strict_update_filter.d.ts +165 -0
- package/backend/dist/esm/backend/src/database/filters/strict_update_filter.js +5 -0
- package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
- package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.js +405 -0
- package/backend/dist/esm/backend/src/database/flatten.d.ts +75 -0
- package/backend/dist/esm/backend/src/database/flatten.js +22 -0
- package/backend/dist/esm/backend/src/database/flatten_test.d.ts +1 -0
- package/backend/dist/esm/backend/src/database/flatten_test.js +174 -0
- package/backend/dist/esm/backend/src/database/quota/quota.d.ts +461 -0
- package/backend/dist/esm/backend/src/database/quota/quota.js +1118 -0
- package/backend/dist/esm/backend/src/database/quota/quota_v1.d.ts +534 -0
- package/backend/dist/esm/backend/src/database/quota/quota_v1.js +1242 -0
- package/backend/dist/esm/backend/src/database/quota/safe_int.d.ts +293 -0
- package/backend/dist/esm/backend/src/database/quota/safe_int.js +602 -0
- package/backend/dist/{cjs → esm/backend/src}/endpoint.d.ts +69 -46
- package/backend/dist/esm/{endpoint.js → backend/src/endpoint.js} +136 -127
- package/backend/dist/esm/backend/src/errors/index.d.ts +7 -0
- package/backend/dist/esm/backend/src/errors/index.js +7 -0
- package/backend/dist/{cjs/utils.d.ts → esm/backend/src/errors/internal_external.d.ts} +14 -22
- package/backend/dist/esm/backend/src/errors/internal_external.js +70 -0
- package/backend/dist/esm/backend/src/errors/invalid_usage_error.d.ts +38 -0
- package/backend/dist/esm/backend/src/errors/invalid_usage_error.js +30 -0
- package/backend/dist/esm/backend/src/errors/system_error.d.ts +230 -0
- package/backend/dist/esm/backend/src/errors/system_error.js +402 -0
- package/backend/dist/esm/backend/src/events.d.ts +54 -0
- package/backend/dist/esm/backend/src/events.js +5 -0
- package/backend/dist/esm/{frontend.js → backend/src/frontend.js} +1 -1
- package/backend/dist/esm/{image_endpoint.d.ts → backend/src/image_endpoint.d.ts} +16 -1
- package/backend/dist/esm/{image_endpoint.js → backend/src/image_endpoint.js} +16 -20
- package/backend/dist/esm/backend/src/logger.d.ts +5 -0
- package/backend/dist/esm/backend/src/logger.js +8 -0
- package/backend/dist/esm/backend/src/meta.d.ts +64 -0
- package/backend/dist/esm/{meta.js → backend/src/meta.js} +15 -54
- package/backend/dist/esm/backend/src/payments/paddle.d.ts +326 -0
- package/backend/dist/esm/{payments → backend/src/payments}/paddle.js +417 -452
- package/backend/dist/esm/backend/src/plugins/browser.d.ts +1 -0
- package/backend/dist/esm/backend/src/plugins/browser.js +170 -0
- package/backend/dist/esm/backend/src/plugins/mail/mail.d.ts +248 -0
- package/backend/dist/esm/backend/src/plugins/mail/mail.js +389 -0
- package/backend/dist/{cjs → esm/backend/src}/plugins/mail/ui.d.ts +23 -0
- package/backend/dist/esm/{plugins → backend/src/plugins}/mail/ui.js +3 -6
- package/backend/dist/esm/backend/src/plugins/pdf.d.ts +1 -0
- package/backend/dist/esm/{plugins → backend/src/plugins}/pdf.js +3 -3
- package/backend/dist/esm/backend/src/rate_limit.d.ts +145 -0
- package/backend/dist/esm/backend/src/rate_limit.js +667 -0
- package/backend/dist/esm/{route.d.ts → backend/src/route.d.ts} +3 -10
- package/backend/dist/esm/{route.js → backend/src/route.js} +26 -21
- package/backend/dist/esm/backend/src/server.d.ts +485 -0
- package/backend/dist/esm/{server.js → backend/src/server.js} +891 -1441
- package/backend/dist/esm/backend/src/splash_screen.d.ts +80 -0
- package/backend/dist/esm/{splash_screen.js → backend/src/splash_screen.js} +42 -55
- package/backend/dist/esm/backend/src/status.d.ts +74 -0
- package/backend/dist/esm/backend/src/status.js +199 -0
- package/backend/dist/esm/backend/src/stream.d.ts +376 -0
- package/backend/dist/esm/{stream.js → backend/src/stream.js} +327 -292
- package/backend/dist/esm/backend/src/users.d.ts +809 -0
- package/backend/dist/esm/backend/src/users.js +2140 -0
- package/backend/dist/esm/backend/src/utils.d.ts +16 -0
- package/backend/dist/esm/{utils.js → backend/src/utils.js} +20 -81
- package/backend/dist/{cjs → esm/backend/src}/view.d.ts +33 -11
- package/backend/dist/esm/{view.js → backend/src/view.js} +266 -86
- package/backend/dist/{cjs → esm/backend/src}/volt.d.ts +10 -1
- package/backend/dist/esm/{volt.js → backend/src/volt.js} +7 -4
- package/backend/dist/esm/frontend/src/modules/request.d.ts +70 -0
- package/backend/dist/esm/frontend/src/modules/request.js +117 -0
- package/frontend/dist/backend/src/database/collection.d.ts +1543 -0
- package/frontend/dist/backend/src/database/collection.js +3510 -0
- package/frontend/dist/backend/src/database/database.d.ts +66 -0
- package/frontend/dist/backend/src/database/database.js +196 -0
- package/frontend/dist/backend/src/database/filters/filters.d.ts +6 -0
- package/frontend/dist/backend/src/database/filters/filters.js +1 -0
- package/frontend/dist/backend/src/database/filters/strict_filter.d.ts +223 -0
- package/frontend/dist/backend/src/database/filters/strict_filter.js +3 -0
- package/frontend/dist/backend/src/database/filters/strict_update_filter.d.ts +165 -0
- package/frontend/dist/backend/src/database/filters/strict_update_filter.js +5 -0
- package/frontend/dist/backend/src/database/flatten.d.ts +75 -0
- package/frontend/dist/backend/src/database/flatten.js +22 -0
- package/frontend/dist/backend/src/endpoint.d.ts +204 -0
- package/frontend/dist/backend/src/endpoint.js +570 -0
- package/frontend/dist/backend/src/errors/index.d.ts +7 -0
- package/frontend/dist/backend/src/errors/index.js +7 -0
- package/frontend/dist/backend/src/errors/internal_external.d.ts +38 -0
- package/frontend/dist/backend/src/errors/internal_external.js +70 -0
- package/frontend/dist/backend/src/errors/invalid_usage_error.d.ts +38 -0
- package/frontend/dist/backend/src/errors/invalid_usage_error.js +30 -0
- package/frontend/dist/backend/src/errors/system_error.d.ts +230 -0
- package/frontend/dist/backend/src/errors/system_error.js +402 -0
- package/frontend/dist/backend/src/events.d.ts +54 -0
- package/frontend/dist/backend/src/events.js +5 -0
- package/frontend/dist/backend/src/frontend.d.ts +11 -0
- package/frontend/dist/backend/src/frontend.js +12 -0
- package/frontend/dist/backend/src/image_endpoint.d.ts +39 -0
- package/frontend/dist/backend/src/image_endpoint.js +202 -0
- package/frontend/dist/backend/src/meta.d.ts +64 -0
- package/frontend/dist/backend/src/meta.js +110 -0
- package/frontend/dist/backend/src/payments/paddle.d.ts +326 -0
- package/frontend/dist/backend/src/payments/paddle.js +2256 -0
- package/frontend/dist/backend/src/plugins/mail/mail.d.ts +248 -0
- package/frontend/dist/backend/src/plugins/mail/mail.js +389 -0
- package/{backend/dist/esm/plugins/mail.d.ts → frontend/dist/backend/src/plugins/mail/ui.d.ts} +23 -0
- package/{backend/dist/esm/plugins/mail.js → frontend/dist/backend/src/plugins/mail/ui.js} +3 -6
- package/frontend/dist/backend/src/rate_limit.d.ts +145 -0
- package/frontend/dist/backend/src/rate_limit.js +673 -0
- package/frontend/dist/backend/src/route.d.ts +35 -0
- package/frontend/dist/backend/src/route.js +212 -0
- package/frontend/dist/backend/src/server.d.ts +485 -0
- package/frontend/dist/backend/src/server.js +2670 -0
- package/frontend/dist/backend/src/splash_screen.d.ts +80 -0
- package/frontend/dist/backend/src/splash_screen.js +135 -0
- package/frontend/dist/backend/src/status.d.ts +74 -0
- package/frontend/dist/backend/src/status.js +199 -0
- package/frontend/dist/backend/src/stream.d.ts +376 -0
- package/frontend/dist/backend/src/stream.js +1007 -0
- package/frontend/dist/backend/src/users.d.ts +807 -0
- package/frontend/dist/backend/src/users.js +2118 -0
- package/frontend/dist/backend/src/utils.d.ts +16 -0
- package/frontend/dist/backend/src/utils.js +241 -0
- package/frontend/dist/backend/src/view.d.ts +162 -0
- package/frontend/dist/backend/src/view.js +720 -0
- package/frontend/dist/frontend/src/elements/base.d.ts +4414 -0
- package/frontend/dist/{elements → frontend/src/elements}/base.js +3624 -260
- package/frontend/dist/frontend/src/elements/module.d.ts +95 -0
- package/frontend/dist/{elements → frontend/src/elements}/module.js +53 -52
- package/frontend/dist/frontend/src/elements/types.d.ts +52 -0
- package/frontend/dist/frontend/src/elements/types.js +5 -0
- package/frontend/dist/frontend/src/modules/attachment.d.ts +126 -0
- package/frontend/dist/frontend/src/modules/attachment.js +306 -0
- package/frontend/dist/frontend/src/modules/auth.d.ts +44 -0
- package/frontend/dist/frontend/src/modules/auth.js +80 -0
- package/frontend/dist/{modules → frontend/src/modules}/color.js +2 -2
- package/frontend/dist/frontend/src/modules/compression.d.ts +39 -0
- package/frontend/dist/frontend/src/modules/compression.js +102 -0
- package/frontend/dist/frontend/src/modules/cookies.d.ts +44 -0
- package/frontend/dist/frontend/src/modules/cookies.js +143 -0
- package/frontend/dist/frontend/src/modules/events.d.ts +31 -0
- package/frontend/dist/frontend/src/modules/events.js +74 -0
- package/frontend/dist/frontend/src/modules/google.d.ts +23 -0
- package/frontend/dist/frontend/src/modules/google.js +52 -0
- package/frontend/dist/frontend/src/modules/meta.d.ts +14 -0
- package/frontend/dist/{modules → frontend/src/modules}/meta.js +9 -7
- package/frontend/dist/{modules → frontend/src/modules}/paddle.d.ts +37 -134
- package/frontend/dist/{modules → frontend/src/modules}/paddle.js +620 -568
- package/frontend/dist/frontend/src/modules/request.d.ts +70 -0
- package/frontend/dist/frontend/src/modules/request.js +117 -0
- package/frontend/dist/frontend/src/modules/settings.d.ts +3 -0
- package/frontend/dist/frontend/src/modules/settings.js +5 -0
- package/frontend/dist/frontend/src/modules/statics.d.ts +21 -0
- package/frontend/dist/{modules → frontend/src/modules}/statics.js +15 -18
- package/frontend/dist/frontend/src/modules/support.d.ts +30 -0
- package/frontend/dist/frontend/src/modules/support.js +53 -0
- package/frontend/dist/{modules → frontend/src/modules}/theme.d.ts +67 -0
- package/frontend/dist/{modules → frontend/src/modules}/theme.js +68 -38
- package/frontend/dist/frontend/src/modules/themes.d.ts +12 -0
- package/frontend/dist/frontend/src/modules/themes.js +22 -0
- package/frontend/dist/frontend/src/modules/user.d.ts +164 -0
- package/frontend/dist/frontend/src/modules/user.js +268 -0
- package/frontend/dist/frontend/src/modules/utils.d.ts +176 -0
- package/frontend/dist/frontend/src/modules/utils.js +569 -0
- package/frontend/dist/frontend/src/types/gradient.d.ts +29 -0
- package/frontend/dist/{types → frontend/src/types}/gradient.js +14 -18
- package/frontend/dist/frontend/src/ui/border_button.d.ts +94 -0
- package/frontend/dist/{ui → frontend/src/ui}/border_button.js +7 -13
- package/frontend/dist/frontend/src/ui/button.d.ts +28 -0
- package/frontend/dist/{ui → frontend/src/ui}/button.js +21 -12
- package/frontend/dist/frontend/src/ui/canvas.d.ts +138 -0
- package/frontend/dist/{ui → frontend/src/ui}/canvas.js +88 -55
- package/frontend/dist/frontend/src/ui/checkbox.d.ts +74 -0
- package/frontend/dist/{ui → frontend/src/ui}/checkbox.js +80 -41
- package/frontend/dist/{ui → frontend/src/ui}/code.d.ts +73 -6
- package/frontend/dist/{ui → frontend/src/ui}/code.js +55 -52
- package/frontend/dist/{ui → frontend/src/ui}/context_menu.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/context_menu.js +12 -17
- package/frontend/dist/{ui → frontend/src/ui}/css.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/css.js +3 -3
- package/frontend/dist/{ui → frontend/src/ui}/divider.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/divider.js +3 -3
- package/frontend/dist/{ui → frontend/src/ui}/dropdown.d.ts +57 -2
- package/frontend/dist/{ui → frontend/src/ui}/dropdown.js +87 -94
- package/frontend/dist/{ui → frontend/src/ui}/for_each.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/for_each.js +3 -3
- package/frontend/dist/{ui → frontend/src/ui}/form.d.ts +6 -2
- package/frontend/dist/{ui → frontend/src/ui}/form.js +10 -7
- package/frontend/dist/frontend/src/ui/frame_modes.d.ts +37 -0
- package/frontend/dist/{ui → frontend/src/ui}/frame_modes.js +16 -22
- package/frontend/dist/{ui → frontend/src/ui}/google_map.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/google_map.js +4 -4
- package/frontend/dist/{ui → frontend/src/ui}/gradient.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/gradient.js +3 -3
- package/frontend/dist/{ui → frontend/src/ui}/image.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/image.js +5 -5
- package/frontend/dist/frontend/src/ui/input.d.ts +392 -0
- package/frontend/dist/{ui → frontend/src/ui}/input.js +346 -360
- package/frontend/dist/{ui → frontend/src/ui}/link.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/link.js +3 -3
- package/frontend/dist/{ui → frontend/src/ui}/list.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/list.js +12 -6
- package/frontend/dist/frontend/src/ui/loader_button.d.ts +80 -0
- package/frontend/dist/{ui → frontend/src/ui}/loader_button.js +35 -47
- package/frontend/dist/frontend/src/ui/loaders.d.ts +57 -0
- package/frontend/dist/{ui → frontend/src/ui}/loaders.js +11 -11
- package/frontend/dist/{ui → frontend/src/ui}/popup.d.ts +11 -6
- package/frontend/dist/{ui → frontend/src/ui}/popup.js +32 -18
- package/frontend/dist/frontend/src/ui/pseudo.d.ts +44 -0
- package/frontend/dist/{ui → frontend/src/ui}/pseudo.js +84 -8
- package/frontend/dist/{ui → frontend/src/ui}/scroller.d.ts +14 -2
- package/frontend/dist/{ui → frontend/src/ui}/scroller.js +37 -43
- package/frontend/dist/{ui → frontend/src/ui}/slider.d.ts +5 -1
- package/frontend/dist/{ui → frontend/src/ui}/slider.js +4 -4
- package/frontend/dist/{ui → frontend/src/ui}/spacer.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/spacer.js +3 -3
- package/frontend/dist/{ui → frontend/src/ui}/span.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/span.js +3 -3
- package/frontend/dist/{ui → frontend/src/ui}/stack.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/stack.js +3 -9
- package/frontend/dist/frontend/src/ui/steps.d.ts +131 -0
- package/frontend/dist/{ui → frontend/src/ui}/steps.js +30 -45
- package/frontend/dist/{ui → frontend/src/ui}/style.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/style.js +3 -3
- package/frontend/dist/{ui → frontend/src/ui}/switch.d.ts +5 -1
- package/frontend/dist/{ui → frontend/src/ui}/switch.js +4 -4
- package/frontend/dist/{ui → frontend/src/ui}/table.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/table.js +6 -6
- package/frontend/dist/{ui → frontend/src/ui}/tabs.d.ts +45 -3
- package/frontend/dist/{ui → frontend/src/ui}/tabs.js +65 -40
- package/frontend/dist/{ui → frontend/src/ui}/text.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/text.js +3 -3
- package/frontend/dist/frontend/src/ui/title.d.ts +91 -0
- package/frontend/dist/frontend/src/ui/title.js +272 -0
- package/frontend/dist/{ui → frontend/src/ui}/view.d.ts +4 -0
- package/frontend/dist/{ui → frontend/src/ui}/view.js +3 -3
- package/frontend/dist/{volt.d.ts → frontend/src/volt.d.ts} +3 -0
- package/frontend/dist/{volt.js → frontend/src/volt.js} +4 -0
- package/frontend/tools/bundle_d_ts.js +71 -0
- package/frontend/tools/convert_to_jsdoc_input.txt +9452 -0
- package/frontend/tools/convert_to_jsdoc_output.txt +7626 -0
- package/frontend/tools/convert_to_jsdoc_tmp.js +345 -0
- package/package.json +11 -12
- package/backend/dist/cjs/database/collection.d.ts +0 -160
- package/backend/dist/cjs/database/collection.js +0 -842
- package/backend/dist/cjs/database/database.d.ts +0 -121
- package/backend/dist/cjs/database/document.d.ts +0 -131
- package/backend/dist/cjs/database/document.js +0 -224
- package/backend/dist/cjs/database.d.ts +0 -502
- package/backend/dist/cjs/database.js +0 -2248
- package/backend/dist/cjs/logger.d.ts +0 -3
- package/backend/dist/cjs/meta.d.ts +0 -50
- package/backend/dist/cjs/mutex.d.ts +0 -24
- package/backend/dist/cjs/payments/paddle.d.ts +0 -160
- package/backend/dist/cjs/plugins/browser.d.ts +0 -36
- package/backend/dist/cjs/plugins/browser.js +0 -198
- package/backend/dist/cjs/plugins/css.d.ts +0 -11
- package/backend/dist/cjs/plugins/css.js +0 -80
- package/backend/dist/cjs/plugins/mail.d.ts +0 -277
- package/backend/dist/cjs/plugins/mail.js +0 -1370
- package/backend/dist/cjs/plugins/ts/compiler.d.ts +0 -139
- package/backend/dist/cjs/plugins/ts/compiler.js +0 -750
- package/backend/dist/cjs/plugins/ts/preprocessing.d.ts +0 -14
- package/backend/dist/cjs/plugins/ts/preprocessing.js +0 -440
- package/backend/dist/cjs/rate_limit.d.ts +0 -63
- package/backend/dist/cjs/rate_limit.js +0 -348
- package/backend/dist/cjs/request.deprc.d.ts +0 -48
- package/backend/dist/cjs/request.deprc.js +0 -572
- package/backend/dist/cjs/response.deprc.d.ts +0 -55
- package/backend/dist/cjs/response.deprc.js +0 -275
- package/backend/dist/cjs/server.d.ts +0 -342
- package/backend/dist/cjs/splash_screen.d.ts +0 -35
- package/backend/dist/cjs/status.d.ts +0 -61
- package/backend/dist/cjs/stream.d.ts +0 -79
- package/backend/dist/cjs/users.d.ts +0 -111
- package/backend/dist/cjs/users.js +0 -1817
- package/backend/dist/cjs/view.js +0 -352
- package/backend/dist/cjs/vinc.dev.d.ts +0 -3
- package/backend/dist/cjs/vinc.dev.js +0 -7
- package/backend/dist/css/adyen.css +0 -92
- package/backend/dist/css/volt.css +0 -70
- package/backend/dist/esm/database/collection.d.ts +0 -160
- package/backend/dist/esm/database/collection.js +0 -1328
- package/backend/dist/esm/database/database.d.ts +0 -121
- package/backend/dist/esm/database/document.d.ts +0 -131
- package/backend/dist/esm/database/document.js +0 -247
- package/backend/dist/esm/database.d.ts +0 -502
- package/backend/dist/esm/database.js +0 -2423
- package/backend/dist/esm/file_watcher.js +0 -329
- package/backend/dist/esm/logger.d.ts +0 -3
- package/backend/dist/esm/logger.js +0 -11
- package/backend/dist/esm/meta.d.ts +0 -50
- package/backend/dist/esm/mutex.d.ts +0 -24
- package/backend/dist/esm/mutex.js +0 -48
- package/backend/dist/esm/payments/paddle.d.ts +0 -160
- package/backend/dist/esm/plugins/browser.d.ts +0 -36
- package/backend/dist/esm/plugins/browser.js +0 -176
- package/backend/dist/esm/plugins/css.d.ts +0 -11
- package/backend/dist/esm/plugins/css.js +0 -90
- package/backend/dist/esm/plugins/ts/compiler.d.ts +0 -139
- package/backend/dist/esm/plugins/ts/compiler.js +0 -1194
- package/backend/dist/esm/plugins/ts/preprocessing.d.ts +0 -14
- package/backend/dist/esm/plugins/ts/preprocessing.js +0 -726
- package/backend/dist/esm/rate_limit.d.ts +0 -63
- package/backend/dist/esm/rate_limit.js +0 -417
- package/backend/dist/esm/request.deprc.d.ts +0 -48
- package/backend/dist/esm/request.deprc.js +0 -572
- package/backend/dist/esm/response.deprc.d.ts +0 -55
- package/backend/dist/esm/response.deprc.js +0 -275
- package/backend/dist/esm/server.d.ts +0 -342
- package/backend/dist/esm/splash_screen.d.ts +0 -35
- package/backend/dist/esm/status.d.ts +0 -61
- package/backend/dist/esm/status.js +0 -197
- package/backend/dist/esm/stream.d.ts +0 -79
- package/backend/dist/esm/users.d.ts +0 -111
- package/backend/dist/esm/users.js +0 -1935
- package/backend/dist/esm/vinc.dev.d.ts +0 -3
- package/backend/dist/esm/vinc.dev.js +0 -7
- package/frontend/dist/elements/base.d.ts +0 -9889
- package/frontend/dist/elements/module.d.ts +0 -30
- package/frontend/dist/modules/array.d.ts +0 -94
- package/frontend/dist/modules/array.js +0 -634
- package/frontend/dist/modules/auth.d.ts +0 -46
- package/frontend/dist/modules/auth.js +0 -139
- package/frontend/dist/modules/colors.d.ts +0 -1
- package/frontend/dist/modules/colors.js +0 -417
- package/frontend/dist/modules/compression.d.ts +0 -6
- package/frontend/dist/modules/compression.js +0 -999
- package/frontend/dist/modules/cookies.d.ts +0 -18
- package/frontend/dist/modules/cookies.js +0 -167
- package/frontend/dist/modules/date.d.ts +0 -142
- package/frontend/dist/modules/date.js +0 -493
- package/frontend/dist/modules/events.d.ts +0 -8
- package/frontend/dist/modules/events.js +0 -91
- package/frontend/dist/modules/google.d.ts +0 -11
- package/frontend/dist/modules/google.js +0 -54
- package/frontend/dist/modules/meta.d.ts +0 -10
- package/frontend/dist/modules/mutex.d.ts +0 -7
- package/frontend/dist/modules/mutex.js +0 -51
- package/frontend/dist/modules/number.d.ts +0 -16
- package/frontend/dist/modules/number.js +0 -23
- package/frontend/dist/modules/object.d.ts +0 -52
- package/frontend/dist/modules/object.js +0 -383
- package/frontend/dist/modules/scheme.d.ts +0 -227
- package/frontend/dist/modules/scheme.js +0 -531
- package/frontend/dist/modules/settings.d.ts +0 -3
- package/frontend/dist/modules/settings.js +0 -4
- package/frontend/dist/modules/statics.d.ts +0 -5
- package/frontend/dist/modules/string.d.ts +0 -124
- package/frontend/dist/modules/string.js +0 -745
- package/frontend/dist/modules/support.d.ts +0 -19
- package/frontend/dist/modules/support.js +0 -103
- package/frontend/dist/modules/themes.d.ts +0 -8
- package/frontend/dist/modules/themes.js +0 -18
- package/frontend/dist/modules/user.d.ts +0 -59
- package/frontend/dist/modules/user.js +0 -280
- package/frontend/dist/modules/utils.d.ts +0 -87
- package/frontend/dist/modules/utils.js +0 -923
- package/frontend/dist/types/gradient.d.ts +0 -12
- package/frontend/dist/ui/border_button.d.ts +0 -152
- package/frontend/dist/ui/button.d.ts +0 -21
- package/frontend/dist/ui/canvas.d.ts +0 -56
- package/frontend/dist/ui/checkbox.d.ts +0 -52
- package/frontend/dist/ui/frame_modes.d.ts +0 -25
- package/frontend/dist/ui/input.d.ts +0 -241
- package/frontend/dist/ui/loader_button.d.ts +0 -93
- package/frontend/dist/ui/loaders.d.ts +0 -57
- package/frontend/dist/ui/pseudo.d.ts +0 -16
- package/frontend/dist/ui/steps.d.ts +0 -59
- package/frontend/dist/ui/title.d.ts +0 -21
- package/frontend/dist/ui/title.js +0 -121
- package/frontend/examples/dashboard/dashboard.ts +0 -776
- /package/backend/dist/cjs/{cli.d.ts → backend/src/cli.d.ts} +0 -0
- /package/backend/dist/cjs/{file_watcher.d.ts → backend/src/database/document.d.ts} +0 -0
- /package/backend/dist/cjs/{file_watcher.js → backend/src/database/document.js} +0 -0
- /package/backend/dist/cjs/{plugins/pdf.d.ts → backend/src/database/filters/strict_filter_test.d.ts} +0 -0
- /package/backend/dist/{esm/file_watcher.d.ts → cjs/backend/src/database/filters/strict_filter_test_v0.d.ts} +0 -0
- /package/backend/dist/{esm/plugins/pdf.d.ts → cjs/backend/src/database/flatten_test.d.ts} +0 -0
- /package/backend/dist/cjs/{frontend.d.ts → backend/src/frontend.d.ts} +0 -0
- /package/backend/dist/cjs/{plugins → backend/src/plugins}/communication.d.ts +0 -0
- /package/backend/dist/cjs/{plugins → backend/src/plugins}/communication.js +0 -0
- /package/backend/dist/cjs/{plugins → backend/src/plugins}/mail/ui.js +0 -0
- /package/backend/dist/cjs/{plugins → backend/src/plugins}/pdf.js +0 -0
- /package/backend/dist/cjs/{plugins → backend/src/plugins}/thread_monitor.d.ts +0 -0
- /package/backend/dist/cjs/{plugins → backend/src/plugins}/thread_monitor.js +0 -0
- /package/backend/dist/cjs/{vinc.d.ts → backend/src/vinc.d.ts} +0 -0
- /package/backend/dist/cjs/{vinc.js → backend/src/vinc.js} +0 -0
- /package/backend/dist/esm/{cli.d.ts → backend/src/cli.d.ts} +0 -0
- /package/backend/dist/esm/{frontend.d.ts → backend/src/frontend.d.ts} +0 -0
- /package/backend/dist/esm/{plugins → backend/src/plugins}/communication.d.ts +0 -0
- /package/backend/dist/esm/{plugins → backend/src/plugins}/communication.js +0 -0
- /package/backend/dist/esm/{plugins → backend/src/plugins}/thread_monitor.d.ts +0 -0
- /package/backend/dist/esm/{plugins → backend/src/plugins}/thread_monitor.js +0 -0
- /package/backend/dist/esm/{vinc.d.ts → backend/src/vinc.d.ts} +0 -0
- /package/backend/dist/esm/{vinc.js → backend/src/vinc.js} +0 -0
- /package/frontend/dist/{elements → frontend/src/elements}/register_element.d.ts +0 -0
- /package/frontend/dist/{elements → frontend/src/elements}/register_element.js +0 -0
- /package/frontend/dist/{modules → frontend/src/modules}/color.d.ts +0 -0
- /package/frontend/dist/{ui → frontend/src/ui}/ui.d.ts +0 -0
- /package/frontend/dist/{ui → frontend/src/ui}/ui.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Daan van den Bergh
|
|
3
|
+
* @copyright © 2022 - 2025 Daan van den Bergh. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
import * as https from "https";
|
|
6
|
+
import * as vlib from "@vandenberghinc/vlib";
|
|
7
|
+
import type { Server } from "./server.js";
|
|
8
|
+
export interface RateLimitGroup {
|
|
9
|
+
group?: string | null;
|
|
10
|
+
limit?: number | null;
|
|
11
|
+
interval?: number | null;
|
|
12
|
+
}
|
|
13
|
+
export interface RateLimitData {
|
|
14
|
+
group: string;
|
|
15
|
+
limit: number;
|
|
16
|
+
interval: number;
|
|
17
|
+
}
|
|
18
|
+
export interface RateLimitCacheData {
|
|
19
|
+
count: number;
|
|
20
|
+
expiration: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The rate limit groups for the endpoint.
|
|
24
|
+
*
|
|
25
|
+
* A group can either be registered through this class or by defining the rate limit group on an endpoint using `Endpoint.rate_limit`.
|
|
26
|
+
*
|
|
27
|
+
* This class will be accessable under `Server` attribute `rate_limits`.
|
|
28
|
+
* @nav Backend/Rate Limit
|
|
29
|
+
* @docs
|
|
30
|
+
*/
|
|
31
|
+
export declare namespace RateLimits {
|
|
32
|
+
const groups: Map<string, RateLimitData>;
|
|
33
|
+
/**
|
|
34
|
+
* Add a rate limit group.
|
|
35
|
+
* @param group The rate limit group.
|
|
36
|
+
* @param limit The maximum requests per rate limit interval, defaults to 50.
|
|
37
|
+
* @param interval The rate limit interval in seconds, defaults to 60.
|
|
38
|
+
* @docs
|
|
39
|
+
*/
|
|
40
|
+
function add({
|
|
41
|
+
/** The rate limit group name. */
|
|
42
|
+
group,
|
|
43
|
+
/** The maximum requests per rate limit interval. */
|
|
44
|
+
limit,
|
|
45
|
+
/** The rate limit interval in seconds. */
|
|
46
|
+
interval, }: RateLimitGroup): RateLimitData;
|
|
47
|
+
/**
|
|
48
|
+
* Normalize an IPv4 or IPv6 address into a unique, canonical string suitable for rate limiting keys.
|
|
49
|
+
*
|
|
50
|
+
* Behavior:
|
|
51
|
+
* - Trims surrounding whitespace.
|
|
52
|
+
* - If bracketed (`[addr]` or `[addr]:port`), removes brackets (and any trailing port).
|
|
53
|
+
* - Removes IPv6 zone/scope IDs (`%...`), e.g. `fe80::1%eth0` → `fe80::1`.
|
|
54
|
+
* - IPv4: returns dotted-decimal without leading zeros (e.g. `001.002.003.004` → `1.2.3.4`).
|
|
55
|
+
* - IPv6: emits RFC 5952 canonical form (lowercase hex, no leading zeros, single longest `::`).
|
|
56
|
+
* - IPv4-mapped IPv6 (`::ffff:0:0/96`) is normalized to plain IPv4 (e.g. `::ffff:203.0.113.7` → `203.0.113.7`).
|
|
57
|
+
*
|
|
58
|
+
* Notes:
|
|
59
|
+
* - This function expects a host/address string (not a full URL). It tolerates `[v6]:port`
|
|
60
|
+
* but intentionally does **not** accept non-bracketed `ipv4:port`.
|
|
61
|
+
*
|
|
62
|
+
* @param ip The input IPv4/IPv6 address.
|
|
63
|
+
* @returns Canonical address string.
|
|
64
|
+
* @throws {Error} If the input is not a valid IPv4 or IPv6 address.
|
|
65
|
+
*/
|
|
66
|
+
function normalize_ip(ip: string): string;
|
|
67
|
+
}
|
|
68
|
+
/** Nested types for the {@link RateLimitServer}. */
|
|
69
|
+
export declare namespace RateLimitServer {
|
|
70
|
+
/** Constructor options. */
|
|
71
|
+
interface Opts {
|
|
72
|
+
/** The port to which the rate limiting server will bind. The default is `51234`. */
|
|
73
|
+
port?: number;
|
|
74
|
+
/** The IP address to which the rate limiting server will bind. By default, it runs on localhost only. */
|
|
75
|
+
ip?: string;
|
|
76
|
+
/** Enable the https attribute to run on https. */
|
|
77
|
+
https?: https.ServerOptions;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The rate limit websocket class (server).
|
|
82
|
+
* Rate limiting is handled automatically when the endpoints has it enabled.
|
|
83
|
+
*
|
|
84
|
+
* @nav Backend/Rate Limit
|
|
85
|
+
*/
|
|
86
|
+
export declare class RateLimitServer {
|
|
87
|
+
static default_port: number;
|
|
88
|
+
private ip;
|
|
89
|
+
private port;
|
|
90
|
+
private https_config;
|
|
91
|
+
private server;
|
|
92
|
+
private limits;
|
|
93
|
+
ws?: vlib.websocket.Server;
|
|
94
|
+
private clear_caches_interval?;
|
|
95
|
+
constructor({ port, ip, https, _server, }: RateLimitServer.Opts & {
|
|
96
|
+
_server: Server;
|
|
97
|
+
});
|
|
98
|
+
/** Assert the server is running. */
|
|
99
|
+
private assert_connected;
|
|
100
|
+
start(): Promise<void>;
|
|
101
|
+
stop(): Promise<void>;
|
|
102
|
+
limit(ip: string, groups?: RateLimitGroup[]): Promise<number | null>;
|
|
103
|
+
reset(group: string): Promise<void>;
|
|
104
|
+
reset_all(): Promise<void>;
|
|
105
|
+
}
|
|
106
|
+
/** Nested types for the {@link RateLimitClient}. */
|
|
107
|
+
export declare namespace RateLimitClient {
|
|
108
|
+
/** Constructor options. */
|
|
109
|
+
interface Opts {
|
|
110
|
+
/** The port to which the rate limiting server will bind. The default is `51234`. */
|
|
111
|
+
port?: number;
|
|
112
|
+
/** The IP address to which the rate limiting server will bind. By default, it runs on localhost only. */
|
|
113
|
+
ip?: string;
|
|
114
|
+
/** A boolean flag indicating if the server runs on HTTPS. */
|
|
115
|
+
https?: boolean;
|
|
116
|
+
/** The websocket URL of the server. If defined this takes precedence over parameters `ip` and `port`. */
|
|
117
|
+
url?: string;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The secondary rate limit class (client).
|
|
122
|
+
*
|
|
123
|
+
* Rate limiting is handled automatically when the endpoints has it enabled.
|
|
124
|
+
*
|
|
125
|
+
* @nav Backend/Rate Limit
|
|
126
|
+
*/
|
|
127
|
+
export declare class RateLimitClient {
|
|
128
|
+
private ip;
|
|
129
|
+
private port;
|
|
130
|
+
private https;
|
|
131
|
+
private url?;
|
|
132
|
+
private server;
|
|
133
|
+
ws?: vlib.websocket.Client;
|
|
134
|
+
constructor({ ip, port, https, url, _server, }: RateLimitClient.Opts & {
|
|
135
|
+
_server: Server;
|
|
136
|
+
});
|
|
137
|
+
/** Assert the client is started & connected. */
|
|
138
|
+
private assert_connected;
|
|
139
|
+
start(): Promise<void>;
|
|
140
|
+
stop(): Promise<void>;
|
|
141
|
+
limit(ip: string, groups?: RateLimitGroup[]): Promise<number | null>;
|
|
142
|
+
reset(group: string): Promise<void>;
|
|
143
|
+
reset_all(): Promise<void>;
|
|
144
|
+
}
|
|
145
|
+
export default RateLimits;
|
|
@@ -0,0 +1,549 @@
|
|
|
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: 1e3 }]
|
|
42
|
+
]);
|
|
43
|
+
function add({
|
|
44
|
+
/** The rate limit group name. */
|
|
45
|
+
group = null,
|
|
46
|
+
/** The maximum requests per rate limit interval. */
|
|
47
|
+
limit = null,
|
|
48
|
+
/** The rate limit interval in seconds. */
|
|
49
|
+
interval = null
|
|
50
|
+
}) {
|
|
51
|
+
const settings = RateLimits2.groups.has(group) ? RateLimits2.groups.get(group) : { group: "", limit: 0, interval: 0 };
|
|
52
|
+
settings.group = group;
|
|
53
|
+
if (limit) {
|
|
54
|
+
settings.limit = limit;
|
|
55
|
+
} else if (!settings.limit) {
|
|
56
|
+
settings.limit = 50;
|
|
57
|
+
}
|
|
58
|
+
if (interval) {
|
|
59
|
+
settings.interval = interval;
|
|
60
|
+
} else if (!settings.interval) {
|
|
61
|
+
settings.interval = 60;
|
|
62
|
+
}
|
|
63
|
+
RateLimits2.groups.set(group, settings);
|
|
64
|
+
return settings;
|
|
65
|
+
}
|
|
66
|
+
RateLimits2.add = add;
|
|
67
|
+
function normalize_ip(ip) {
|
|
68
|
+
let s = strip_brackets_zone_and_port(ip);
|
|
69
|
+
const v4 = try_parse_ipv4_bytes(s);
|
|
70
|
+
if (v4) {
|
|
71
|
+
return ipv4_bytes_to_string(v4);
|
|
72
|
+
}
|
|
73
|
+
const hextets = parse_ipv6_to_hextets(s);
|
|
74
|
+
if (is_ipv4_mapped(hextets)) {
|
|
75
|
+
const b0 = hextets[6] >>> 8 & 255;
|
|
76
|
+
const b1 = hextets[6] & 255;
|
|
77
|
+
const b2 = hextets[7] >>> 8 & 255;
|
|
78
|
+
const b3 = hextets[7] & 255;
|
|
79
|
+
return `${b0}.${b1}.${b2}.${b3}`;
|
|
80
|
+
}
|
|
81
|
+
return ipv6_hextets_to_rfc5952(hextets);
|
|
82
|
+
}
|
|
83
|
+
RateLimits2.normalize_ip = normalize_ip;
|
|
84
|
+
function strip_brackets_zone_and_port(input) {
|
|
85
|
+
let s = input.trim();
|
|
86
|
+
if (s.startsWith("[")) {
|
|
87
|
+
const rb = s.indexOf("]");
|
|
88
|
+
if (rb === -1)
|
|
89
|
+
throw new Error("invalid ip: unmatched closing bracket");
|
|
90
|
+
s = s.slice(1, rb);
|
|
91
|
+
}
|
|
92
|
+
const pct = s.indexOf("%");
|
|
93
|
+
if (pct !== -1)
|
|
94
|
+
s = s.slice(0, pct);
|
|
95
|
+
return s;
|
|
96
|
+
}
|
|
97
|
+
function try_parse_ipv4_bytes(s) {
|
|
98
|
+
let a = 0, b = 0, c = 0, d = 0;
|
|
99
|
+
let val = 0, dots = 0, digits = 0;
|
|
100
|
+
for (let i = 0; i < s.length; i++) {
|
|
101
|
+
const ch = s.charCodeAt(i);
|
|
102
|
+
if (ch === 46) {
|
|
103
|
+
if (digits === 0)
|
|
104
|
+
return null;
|
|
105
|
+
if (dots === 0)
|
|
106
|
+
a = val;
|
|
107
|
+
else if (dots === 1)
|
|
108
|
+
b = val;
|
|
109
|
+
else if (dots === 2)
|
|
110
|
+
c = val;
|
|
111
|
+
else
|
|
112
|
+
return null;
|
|
113
|
+
dots++;
|
|
114
|
+
val = 0;
|
|
115
|
+
digits = 0;
|
|
116
|
+
} else if (ch >= 48 && ch <= 57) {
|
|
117
|
+
val = val * 10 + (ch - 48);
|
|
118
|
+
if (val > 255)
|
|
119
|
+
return null;
|
|
120
|
+
digits++;
|
|
121
|
+
} else {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (dots !== 3 || digits === 0)
|
|
126
|
+
return null;
|
|
127
|
+
d = val;
|
|
128
|
+
return [a, b, c, d];
|
|
129
|
+
}
|
|
130
|
+
function ipv4_bytes_to_string(bytes) {
|
|
131
|
+
return `${bytes[0]}.${bytes[1]}.${bytes[2]}.${bytes[3]}`;
|
|
132
|
+
}
|
|
133
|
+
function parse_ipv6_to_hextets(s) {
|
|
134
|
+
const dbl = s.indexOf("::");
|
|
135
|
+
const has_double = dbl !== -1;
|
|
136
|
+
if (has_double && s.indexOf("::", dbl + 2) !== -1) {
|
|
137
|
+
throw new Error("invalid ipv6: multiple ::");
|
|
138
|
+
}
|
|
139
|
+
const left_end = has_double ? dbl : s.length;
|
|
140
|
+
const right_start = has_double ? dbl + 2 : s.length;
|
|
141
|
+
const left = parse_ipv6_side_range(s, 0, left_end);
|
|
142
|
+
const right = has_double ? parse_ipv6_side_range(s, right_start, s.length) : [];
|
|
143
|
+
let zeros = 0;
|
|
144
|
+
if (has_double) {
|
|
145
|
+
zeros = 8 - (left.length + right.length);
|
|
146
|
+
if (zeros < 1)
|
|
147
|
+
throw new Error("invalid ipv6: bad :: compression");
|
|
148
|
+
} else {
|
|
149
|
+
if (left.length !== 8)
|
|
150
|
+
throw new Error("invalid ipv6: must have 8 hextets without ::");
|
|
151
|
+
}
|
|
152
|
+
const out = new Array(8);
|
|
153
|
+
let k = 0;
|
|
154
|
+
for (let i = 0; i < left.length; i++)
|
|
155
|
+
out[k++] = left[i];
|
|
156
|
+
for (let i = 0; i < zeros; i++)
|
|
157
|
+
out[k++] = 0;
|
|
158
|
+
for (let i = 0; i < right.length; i++)
|
|
159
|
+
out[k++] = right[i];
|
|
160
|
+
return [
|
|
161
|
+
out[0],
|
|
162
|
+
out[1],
|
|
163
|
+
out[2],
|
|
164
|
+
out[3],
|
|
165
|
+
out[4],
|
|
166
|
+
out[5],
|
|
167
|
+
out[6],
|
|
168
|
+
out[7]
|
|
169
|
+
];
|
|
170
|
+
}
|
|
171
|
+
function parse_ipv6_side_range(s, start, end) {
|
|
172
|
+
if (start === end)
|
|
173
|
+
return [];
|
|
174
|
+
const out = [];
|
|
175
|
+
let i = start;
|
|
176
|
+
while (i < end) {
|
|
177
|
+
const token_start = i;
|
|
178
|
+
while (i < end && s.charCodeAt(i) !== 58)
|
|
179
|
+
i++;
|
|
180
|
+
const token_end = i;
|
|
181
|
+
if (token_end === token_start)
|
|
182
|
+
throw new Error("invalid ipv6: empty hextet");
|
|
183
|
+
let has_dot = false;
|
|
184
|
+
for (let p = token_start; p < token_end; p++) {
|
|
185
|
+
if (s.charCodeAt(p) === 46) {
|
|
186
|
+
has_dot = true;
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (has_dot) {
|
|
191
|
+
if (i !== end)
|
|
192
|
+
throw new Error("invalid ipv6: embedded ipv4 must be last token");
|
|
193
|
+
const bytes = try_parse_ipv4_bytes(s.slice(token_start, token_end));
|
|
194
|
+
if (!bytes)
|
|
195
|
+
throw new Error("invalid ipv6: bad embedded ipv4");
|
|
196
|
+
out.push((bytes[0] << 8 | bytes[1]) & 65535);
|
|
197
|
+
out.push((bytes[2] << 8 | bytes[3]) & 65535);
|
|
198
|
+
} else {
|
|
199
|
+
out.push(parse_hextet_token(s, token_start, token_end));
|
|
200
|
+
}
|
|
201
|
+
if (++i > end)
|
|
202
|
+
break;
|
|
203
|
+
if (out.length > 8)
|
|
204
|
+
throw new Error("invalid ipv6: too many hextets");
|
|
205
|
+
}
|
|
206
|
+
return out;
|
|
207
|
+
}
|
|
208
|
+
function parse_hextet_token(s, start, end) {
|
|
209
|
+
const len = end - start;
|
|
210
|
+
if (len < 1 || len > 4)
|
|
211
|
+
throw new Error("invalid ipv6: hextet size");
|
|
212
|
+
let val = 0;
|
|
213
|
+
for (let i = 0; i < len; i++) {
|
|
214
|
+
const c = s.charCodeAt(start + i);
|
|
215
|
+
let nibble;
|
|
216
|
+
if (c >= 48 && c <= 57)
|
|
217
|
+
nibble = c - 48;
|
|
218
|
+
else if (c >= 97 && c <= 102)
|
|
219
|
+
nibble = 10 + (c - 97);
|
|
220
|
+
else if (c >= 65 && c <= 70)
|
|
221
|
+
nibble = 10 + (c - 65);
|
|
222
|
+
else
|
|
223
|
+
throw new Error("invalid ipv6: non-hex character");
|
|
224
|
+
val = val << 4 | nibble;
|
|
225
|
+
}
|
|
226
|
+
return val & 65535;
|
|
227
|
+
}
|
|
228
|
+
function is_ipv4_mapped(h) {
|
|
229
|
+
return h[0] === 0 && h[1] === 0 && h[2] === 0 && h[3] === 0 && h[4] === 0 && h[5] === 65535;
|
|
230
|
+
}
|
|
231
|
+
function ipv6_hextets_to_rfc5952(h) {
|
|
232
|
+
let best_start = -1, best_len = 0;
|
|
233
|
+
for (let i = 0; i < 8; ) {
|
|
234
|
+
if (h[i] !== 0) {
|
|
235
|
+
i++;
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
const start = i;
|
|
239
|
+
while (i < 8 && h[i] === 0)
|
|
240
|
+
i++;
|
|
241
|
+
const len = i - start;
|
|
242
|
+
if (len >= 2 && len > best_len) {
|
|
243
|
+
best_start = start;
|
|
244
|
+
best_len = len;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
let out = "";
|
|
248
|
+
for (let i = 0; i < 8; i++) {
|
|
249
|
+
if (best_len && i === best_start) {
|
|
250
|
+
if (i === 0)
|
|
251
|
+
out += "::";
|
|
252
|
+
else
|
|
253
|
+
out += ":::";
|
|
254
|
+
i += best_len - 1;
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
if (i > 0 && !(best_len && i === best_start + best_len))
|
|
258
|
+
out += ":";
|
|
259
|
+
out += h[i].toString(16);
|
|
260
|
+
}
|
|
261
|
+
if (out === "")
|
|
262
|
+
return "::";
|
|
263
|
+
if (out.startsWith(":::"))
|
|
264
|
+
out = out.slice(1);
|
|
265
|
+
return out;
|
|
266
|
+
}
|
|
267
|
+
})(RateLimits || (RateLimits = {}));
|
|
268
|
+
class RateLimitServer {
|
|
269
|
+
// Static attributes.
|
|
270
|
+
static default_port = 51234;
|
|
271
|
+
// Instance attributes
|
|
272
|
+
ip;
|
|
273
|
+
port;
|
|
274
|
+
https_config;
|
|
275
|
+
server;
|
|
276
|
+
limits;
|
|
277
|
+
ws;
|
|
278
|
+
clear_caches_interval;
|
|
279
|
+
constructor({ port = RateLimitServer.default_port, ip, https, _server }) {
|
|
280
|
+
vlib.schema.validate(arguments[0], {
|
|
281
|
+
unknown: false,
|
|
282
|
+
throw: true,
|
|
283
|
+
schema: {
|
|
284
|
+
port: { type: "number", default: RateLimitServer.default_port },
|
|
285
|
+
ip: { type: "string", required: false },
|
|
286
|
+
https: { type: "any", required: false },
|
|
287
|
+
_server: "object"
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
this.ip = ip;
|
|
291
|
+
this.port = port;
|
|
292
|
+
this.https_config = https;
|
|
293
|
+
this.server = _server;
|
|
294
|
+
this.limits = /* @__PURE__ */ new Map();
|
|
295
|
+
}
|
|
296
|
+
/** Assert the server is running. */
|
|
297
|
+
assert_connected() {
|
|
298
|
+
if (!this.ws) {
|
|
299
|
+
throw new Error("The rate limit server is not running.");
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
// Start.
|
|
303
|
+
async start() {
|
|
304
|
+
if (!this.server.rate_limit_api_key) {
|
|
305
|
+
throw new Error("Rate limit API key is not defined.");
|
|
306
|
+
}
|
|
307
|
+
this.ws = new vlib.websocket.Server({
|
|
308
|
+
ip: this.ip,
|
|
309
|
+
port: this.port,
|
|
310
|
+
https: this.https_config,
|
|
311
|
+
api_keys: [this.server.rate_limit_api_key],
|
|
312
|
+
rate_limit: {
|
|
313
|
+
limit: 100,
|
|
314
|
+
interval: 60
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
this.ws.on_event("listen", (address) => {
|
|
318
|
+
this.server.log(0, `Running on ${address}.`);
|
|
319
|
+
});
|
|
320
|
+
this.ws.on_event("error", (stream, e) => {
|
|
321
|
+
this.server.log.error(e);
|
|
322
|
+
});
|
|
323
|
+
this.ws.on("limit", async (stream, id, data) => {
|
|
324
|
+
this.assert_connected();
|
|
325
|
+
try {
|
|
326
|
+
this.ws.respond({
|
|
327
|
+
stream,
|
|
328
|
+
id,
|
|
329
|
+
data: { response: await this.limit(data.ip, data.groups) }
|
|
330
|
+
});
|
|
331
|
+
} catch (e) {
|
|
332
|
+
this.server.log.error(e);
|
|
333
|
+
this.ws.respond({ stream, id, data: { error: e.message } });
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
this.ws.on("reset", async (stream, id, data) => {
|
|
337
|
+
this.assert_connected();
|
|
338
|
+
try {
|
|
339
|
+
await this.reset(data.group);
|
|
340
|
+
this.ws.respond({ stream, id, data: { error: void 0 } });
|
|
341
|
+
} catch (e) {
|
|
342
|
+
this.server.log.error(e);
|
|
343
|
+
this.ws.respond({ stream, id, data: { error: e.message } });
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
this.ws.on("reset_all", async (stream, id) => {
|
|
347
|
+
this.assert_connected();
|
|
348
|
+
try {
|
|
349
|
+
await this.reset_all();
|
|
350
|
+
this.ws.respond({ stream, id, data: { error: void 0 } });
|
|
351
|
+
} catch (e) {
|
|
352
|
+
this.server.log.error(e);
|
|
353
|
+
this.ws.respond({ stream, id, data: { error: e.message } });
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
await this.ws.start();
|
|
357
|
+
this.clear_caches_interval = setInterval(() => {
|
|
358
|
+
const remove_after = Date.now() + 3600 * 1e3;
|
|
359
|
+
for (const [group, map] of this.limits.entries()) {
|
|
360
|
+
for (const [ip, data] of map.entries()) {
|
|
361
|
+
if (remove_after > data.expiration) {
|
|
362
|
+
map.delete(ip);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}, 3600 * 1e3);
|
|
367
|
+
}
|
|
368
|
+
// Stop.
|
|
369
|
+
async stop() {
|
|
370
|
+
this.server.log("Stopping the rate limit server.");
|
|
371
|
+
if (this.clear_caches_interval) {
|
|
372
|
+
clearInterval(this.clear_caches_interval);
|
|
373
|
+
}
|
|
374
|
+
if (this.ws) {
|
|
375
|
+
await this.ws.stop();
|
|
376
|
+
this.ws = void 0;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
// Returns null when rate limit is approved, and returns the unix timestamp (as str) of reset when rate limit has been exceeded.
|
|
380
|
+
async limit(ip, groups = [{ group: null, limit: null, interval: null }]) {
|
|
381
|
+
return groups.iterate((rate_limit) => {
|
|
382
|
+
for (let attempts = 2; attempts >= 0; --attempts) {
|
|
383
|
+
try {
|
|
384
|
+
let limits;
|
|
385
|
+
if (this.limits.has(rate_limit.group)) {
|
|
386
|
+
limits = this.limits.get(rate_limit.group);
|
|
387
|
+
} else {
|
|
388
|
+
limits = /* @__PURE__ */ new Map();
|
|
389
|
+
this.limits.set(rate_limit.group, limits);
|
|
390
|
+
}
|
|
391
|
+
const now = Date.now();
|
|
392
|
+
if (limits.has(ip)) {
|
|
393
|
+
let data = limits.get(ip);
|
|
394
|
+
if (now >= data.expiration) {
|
|
395
|
+
data = {
|
|
396
|
+
count: 0,
|
|
397
|
+
expiration: now + rate_limit.interval * 1e3
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
++data.count;
|
|
401
|
+
if (data.count > rate_limit.limit) {
|
|
402
|
+
return data.expiration;
|
|
403
|
+
}
|
|
404
|
+
limits.set(ip, data);
|
|
405
|
+
} else {
|
|
406
|
+
limits.set(ip, {
|
|
407
|
+
count: 1,
|
|
408
|
+
expiration: now + rate_limit.interval * 1e3
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
break;
|
|
412
|
+
} catch (e) {
|
|
413
|
+
if (attempts === 0) {
|
|
414
|
+
throw e;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}) ?? null;
|
|
419
|
+
}
|
|
420
|
+
// Reset a group limit.
|
|
421
|
+
async reset(group) {
|
|
422
|
+
for (const [key, group_limits] of this.limits.entries()) {
|
|
423
|
+
if (key === group) {
|
|
424
|
+
for (const cache of group_limits.values()) {
|
|
425
|
+
cache.count = 0;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
// Reset all rate limit groups.
|
|
431
|
+
async reset_all() {
|
|
432
|
+
for (const group_limits of this.limits.values()) {
|
|
433
|
+
for (const cache of group_limits.values()) {
|
|
434
|
+
cache.count = 0;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
class RateLimitClient {
|
|
440
|
+
ip;
|
|
441
|
+
port;
|
|
442
|
+
https;
|
|
443
|
+
url;
|
|
444
|
+
server;
|
|
445
|
+
ws;
|
|
446
|
+
constructor({ ip, port = RateLimitServer.default_port, https = false, url, _server }) {
|
|
447
|
+
vlib.schema.validate(arguments[0], {
|
|
448
|
+
unknown: false,
|
|
449
|
+
throw: true,
|
|
450
|
+
schema: {
|
|
451
|
+
ip: { type: "string", default: null },
|
|
452
|
+
port: { type: "number", default: RateLimitServer.default_port },
|
|
453
|
+
https: { type: "object", default: null },
|
|
454
|
+
url: { type: "string", default: null },
|
|
455
|
+
_server: "object"
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
this.ip = ip ? ip : "localhost";
|
|
459
|
+
this.port = port;
|
|
460
|
+
this.https = https;
|
|
461
|
+
this.url = url;
|
|
462
|
+
this.server = _server;
|
|
463
|
+
}
|
|
464
|
+
/** Assert the client is started & connected. */
|
|
465
|
+
assert_connected() {
|
|
466
|
+
if (!this.ws) {
|
|
467
|
+
throw new Error("The rate limit client is not started.");
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
// Start.
|
|
471
|
+
async start() {
|
|
472
|
+
if (!this.server.rate_limit_api_key) {
|
|
473
|
+
throw new Error("Rate limit API key is not defined.");
|
|
474
|
+
}
|
|
475
|
+
this.ws = new vlib.websocket.Client({
|
|
476
|
+
url: this.url ? this.url : `${this.https ? "wss" : "ws"}://${this.ip}:${this.port}`,
|
|
477
|
+
api_key: this.server.rate_limit_api_key,
|
|
478
|
+
reconnect: {
|
|
479
|
+
interval: 10,
|
|
480
|
+
max_interval: 3e4
|
|
481
|
+
},
|
|
482
|
+
ping: true
|
|
483
|
+
});
|
|
484
|
+
this.ws.on_event("error", (e) => {
|
|
485
|
+
this.server.log.error(e);
|
|
486
|
+
});
|
|
487
|
+
this.ws.on_event("reconnect", (e) => {
|
|
488
|
+
this.server.log("Attempting to reconnect with the server.");
|
|
489
|
+
});
|
|
490
|
+
this.ws.on_event("close", () => {
|
|
491
|
+
this.server.log("Websocket closed after exhausting all reconnect attempts.");
|
|
492
|
+
process.exit(1);
|
|
493
|
+
});
|
|
494
|
+
await this.ws.connect();
|
|
495
|
+
}
|
|
496
|
+
// Stop.
|
|
497
|
+
async stop() {
|
|
498
|
+
this.server.log("Stopping the rate limit client.");
|
|
499
|
+
if (this.ws) {
|
|
500
|
+
await this.ws.disconnect();
|
|
501
|
+
this.ws = void 0;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
// Limit function.
|
|
505
|
+
// Returns null when rate limit is approved, and returns the unix timestamp (as str) of reset when rate limit has been exceeded.
|
|
506
|
+
async limit(ip, groups = [{ group: null, limit: null, interval: null }]) {
|
|
507
|
+
this.assert_connected();
|
|
508
|
+
const { data } = await this.ws.request({
|
|
509
|
+
command: "limit",
|
|
510
|
+
timeout: 1e4,
|
|
511
|
+
data: { ip, groups }
|
|
512
|
+
});
|
|
513
|
+
if (data.error) {
|
|
514
|
+
throw new Error(data.error);
|
|
515
|
+
}
|
|
516
|
+
return data.response;
|
|
517
|
+
}
|
|
518
|
+
// Reset a group limit.
|
|
519
|
+
async reset(group) {
|
|
520
|
+
this.assert_connected();
|
|
521
|
+
const { data } = await this.ws.request({
|
|
522
|
+
command: "reset",
|
|
523
|
+
timeout: 1e4,
|
|
524
|
+
data: { group }
|
|
525
|
+
});
|
|
526
|
+
if (data.error) {
|
|
527
|
+
throw new Error(data.error);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
// Reset all rate limit groups.
|
|
531
|
+
async reset_all() {
|
|
532
|
+
this.assert_connected();
|
|
533
|
+
const { data } = await this.ws.request({
|
|
534
|
+
command: "reset_all",
|
|
535
|
+
timeout: 1e4,
|
|
536
|
+
data: {}
|
|
537
|
+
});
|
|
538
|
+
if (data.error) {
|
|
539
|
+
throw new Error(data.error);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
var stdin_default = RateLimits;
|
|
544
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
545
|
+
0 && (module.exports = {
|
|
546
|
+
RateLimitClient,
|
|
547
|
+
RateLimitServer,
|
|
548
|
+
RateLimits
|
|
549
|
+
});
|